#21 Support subpackage scriptlets
Merged 5 years ago by jhutar. Opened 5 years ago by dshea.
dshea/rpmfluff subpackage-scriptlets  into  master

file modified
+89
@@ -580,6 +580,11 @@ 

          self.section_conflicts = ""

          self.section_files = ""

  

+         self.section_pre = ""

+         self.section_post = ""

+         self.section_preun = ""

+         self.section_postun = ""

+ 

          self.triggers = []

  

      def add_group(self, groupName):
@@ -626,6 +631,18 @@ 

          "Add a Conflicts: line"

          self.section_conflicts += "Conflicts: %s\n"%conflicts

  

+     def add_pre(self, preLine):

+         self.section_pre += preLine

+ 

+     def add_post(self, postLine):

+         self.section_post += postLine

+ 

+     def add_preun(self, preunLine):

+         self.section_preun += preunLine

+ 

+     def add_postun(self, postunLine):

+         self.section_postun += postunLine

+ 

      def add_trigger(self, trigger):

          "Add a trigger"

          self.triggers.append(trigger)
@@ -857,6 +874,26 @@ 

  

          self.basePackage.write_triggers(specFile)

          for sub in self.subPackages:

+             if sub.section_pre != '':

+                 specFile.write("%%pre %s\n"%sub.suffix)

+                 specFile.write(sub.section_pre)

+                 specFile.write("\n")

+ 

+             if sub.section_post != '':

+                 specFile.write("%%post %s\n"%sub.suffix)

+                 specFile.write(sub.section_post)

+                 specFile.write("\n")

+ 

+             if sub.section_preun != '':

+                 specFile.write("%%preun %s\n"%sub.suffix)

+                 specFile.write(sub.section_preun)

+                 specFile.write("\n")

+ 

+             if sub.section_postun != '':

+                 specFile.write("%%postun %s\n"%sub.suffix)

+                 specFile.write(sub.section_postun)

+                 specFile.write("\n")

+ 

              sub.write_triggers(specFile)

  

          specFile.write("%files\n")
@@ -1603,6 +1640,58 @@ 

  

              self.assert_header_has_item(rpmFile, rpm.RPMTAG_POSTUN, script)

  

+     def test_add_sub_pre(self):

+         script = 'echo "Hello World!"'

+         self.rpmbuild.add_subpackage('subpackage-pre-test')

+         sub = self.rpmbuild.get_subpackage('subpackage-pre-test')

+         sub.add_pre(script)

+         self.rpmbuild.make()

+         # FIXME: sort out architecture properly

+         for arch in [expectedArch]:

+             rpmFile = self.rpmbuild.get_built_rpm(arch, "%s-%s" % (self.rpmbuild.name, sub.suffix))

+             self.assert_is_file(rpmFile)

+ 

+             self.assert_header_has_item(rpmFile, rpm.RPMTAG_PREIN, script)

+ 

+     def test_add_sub_post(self):

+         script = 'echo "Hello World!"'

+         self.rpmbuild.add_subpackage('subpackage-post-test')

+         sub = self.rpmbuild.get_subpackage('subpackage-post-test')

+         sub.add_post(script)

+         self.rpmbuild.make()

+         # FIXME: sort out architecture properly

+         for arch in [expectedArch]:

+             rpmFile = self.rpmbuild.get_built_rpm(arch, "%s-%s" % (self.rpmbuild.name, sub.suffix))

+             self.assert_is_file(rpmFile)

+ 

+             self.assert_header_has_item(rpmFile, rpm.RPMTAG_POSTIN, script)

+ 

+     def test_add_sub_preun(self):

+         script = 'echo "Hello World!"'

+         self.rpmbuild.add_subpackage('subpackage-preun-test')

+         sub = self.rpmbuild.get_subpackage('subpackage-preun-test')

+         sub.add_preun(script)

+         self.rpmbuild.make()

+         # FIXME: sort out architecture properly

+         for arch in [expectedArch]:

+             rpmFile = self.rpmbuild.get_built_rpm(arch, "%s-%s" % (self.rpmbuild.name, sub.suffix))

+             self.assert_is_file(rpmFile)

+ 

+             self.assert_header_has_item(rpmFile, rpm.RPMTAG_PREUN, script)

+ 

+     def test_add_sub_postun(self):

+         script = 'echo "Hello World!"'

+         self.rpmbuild.add_subpackage('subpackage-postun-test')

+         sub = self.rpmbuild.get_subpackage('subpackage-postun-test')

+         sub.add_postun(script)

+         self.rpmbuild.make()

+         # FIXME: sort out architecture properly

+         for arch in [expectedArch]:

+             rpmFile = self.rpmbuild.get_built_rpm(arch, "%s-%s" % (self.rpmbuild.name, sub.suffix))

+             self.assert_is_file(rpmFile)

+ 

+             self.assert_header_has_item(rpmFile, rpm.RPMTAG_POSTUN, script)

+ 

      def test_subpackage_names_A(self):

          self.assertEquals(self.rpmbuild.get_subpackage_names(), ["test-subpackage-names-A"])

  

Add add_(pre|post|preun|postun) to Subpackage, and write out subpackage
scriptlets in gather_spec_file

rebased onto 7784f1e

5 years ago

Pull-Request has been merged by jhutar

5 years ago
Metadata