]> git.ipfire.org Git - pbs.git/commitdiff
repos: Allow to include source packages
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 May 2023 09:12:12 +0000 (09:12 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 May 2023 09:12:12 +0000 (09:12 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/config.py
src/buildservice/repository.py

index 34e5eaf07a346f869daf3ff7eadab1925f85e1f1..a7ea57bbd7674b200dac10eb86c824f5edfc3301 100644 (file)
@@ -12,7 +12,7 @@ log = logging.getLogger("pbs.config")
 
 class PakfireConfig(base.Object):
        def init(self, distro=None, repos=None, vendor=None, contact=None,
-                       arch=None, mirrored=True):
+                       arch=None, include_source=False, mirrored=True):
                self.distro = distro
                self.repos = set()
 
@@ -23,6 +23,9 @@ class PakfireConfig(base.Object):
                # Architecture
                self.arch = arch
 
+               # Should the configuration include the source repositories?
+               self.include_source = include_source
+
                # Should the repositories use any mirrors?
                self.mirrored = mirrored
 
@@ -101,6 +104,7 @@ class PakfireConfig(base.Object):
 
                # Add the repository configurations
                for repo in self.repos:
-                       repo.write_config(config, local=local, mirrored=self.mirrored)
+                       repo.write_config(config, local=local,
+                               include_source=self.include_source, mirrored=self.mirrored)
 
                return config
index a351bb40ea5b4e0f1c7dabaf5a5cce6a3c241ed9..7f922e3b24061174e03fa30e6f6c19aff26a0c60 100644 (file)
@@ -287,17 +287,25 @@ class Repository(base.DataObject):
                        "mirrorlist?arch=%{arch}"
                ))
 
-       def write_config(self, config, local=False, mirrored=True):
+       def write_config(self, config, include_source=False, **kwargs):
+               # Write the default configuration
+               self._write_config(config, self.slug, "%{arch}", **kwargs)
+
+               # Add another entry for the source repository
+               if include_source:
+                       self._write_config(config, "%s-source" % self.slug, "src", **kwargs)
+
+       def _write_config(self, config, name, arch, local=False, mirrored=True):
                # Disable mirroring if local or not mirrored
                if local or not self.mirrored:
                        mirrored = False
 
-               config["repo:%s" % self.slug] = {
+               config["repo:%s" % name] = {
                        # Description
                        "description" : "%s - %s" % (self.distro.name, self.name),
 
                        # Base URL
-                       "baseurl" : "file://%s" % self.local_path("%{arch}") if local else self.download_url,
+                       "baseurl" : "file://%s" % self.local_path(arch) if local else self.download_url,
 
                        # Key
                        "key" : self.key.public_key or "",