#22 Allow file directives to be added to symlinks
Merged 5 years ago by jhutar. Opened 5 years ago by dshea.
dshea/rpmfluff symlink-directives  into  master

file modified
+54 -2
@@ -1140,12 +1140,19 @@ 

          sub.section_files += "/%s\n"%installPath

          self.add_payload_check(installPath, subpackageSuffix)

  

-     def add_installed_symlink(self, installedPath, target, subpackageSuffix=None):

+     def add_installed_symlink(self, installedPath, target, subpackageSuffix=None, isConfig=False, isDoc=False, isGhost=False):

          """Add a simple symlinking into the %install phase, and pick it up in the %files list"""

          self.create_parent_dirs(installedPath)

          self.section_install += "ln -s %s $RPM_BUILD_ROOT/%s\n"%(target, installedPath)

          sub = self.get_subpackage(subpackageSuffix)

-         sub.section_files += "/%s\n"%installedPath

+         tag = ""

+         if isConfig:

+             tag+="%config "

+         if isDoc:

+             tag+="%doc "

+         if isGhost:

+             tag+="%ghost "

+         sub.section_files += '%s"/%s"\n'%(tag, installedPath)

          self.add_payload_check(installedPath, subpackageSuffix)

  

      def add_simple_payload_file(self):
@@ -1842,6 +1849,51 @@ 

              self.assertEqual(1, len(files))

              self.assertEqual("/foo", files[0][0])

  

+     def test_config_symlink(self):

+         self.rpmbuild.add_installed_symlink("foo", "bar", isConfig=True)

+         self.rpmbuild.make()

+ 

+         rpmsDir = self.rpmbuild.get_rpms_dir()

+         self.assert_is_dir(rpmsDir)

+ 

+         for arch in [expectedArch]:

+             # FIXME: sort out architecture properly

+             rpmFile = self.rpmbuild.get_built_rpm(arch)

+             h = get_rpm_header(rpmFile)

+             files = list(h.fiFromHeader())

+             self.assertEqual(1, len(files))

+             self.assertEqual("/foo", files[0][0])

+ 

+     def test_doc_symlink(self):

+         self.rpmbuild.add_installed_symlink("foo", "bar", isDoc=True)

+         self.rpmbuild.make()

+ 

+         rpmsDir = self.rpmbuild.get_rpms_dir()

+         self.assert_is_dir(rpmsDir)

+ 

+         for arch in [expectedArch]:

+             # FIXME: sort out architecture properly

+             rpmFile = self.rpmbuild.get_built_rpm(arch)

+             h = get_rpm_header(rpmFile)

+             files = list(h.fiFromHeader())

+             self.assertEqual(1, len(files))

+             self.assertEqual("/foo", files[0][0])

+ 

+     def test_ghost_symlink(self):

+         self.rpmbuild.add_installed_symlink("foo", "bar", isGhost=True)

+         self.rpmbuild.make()

+ 

+         rpmsDir = self.rpmbuild.get_rpms_dir()

+         self.assert_is_dir(rpmsDir)

+ 

+         for arch in [expectedArch]:

+             # FIXME: sort out architecture properly

+             rpmFile = self.rpmbuild.get_built_rpm(arch)

+             h = get_rpm_header(rpmFile)

+             files = list(h.fiFromHeader())

+             self.assertEqual(1, len(files))

+             self.assertEqual("/foo", files[0][0])

+ 

      def test_fake_virus(self):

          """Ensure that adding a fake virus works as expected"""

          self.rpmbuild.add_fake_virus('fake-virus-infectee.exe', 'fake-virus-infectee.exe')

Add isConfig, isDoc, and isGhost to add_installed_symlink.

rebased onto ca41397

5 years ago

Pull-Request has been merged by jhutar

5 years ago
Metadata