[game-data-packager] 01/02: generic rpm: increment local 'release' number on repacking

Alexandre Detiste detiste-guest at moszumanska.debian.org
Fri Jan 8 15:56:14 UTC 2016


This is an automated email from the git hooks/post-receive script.

detiste-guest pushed a commit to branch master
in repository game-data-packager.

commit f9fd3e413b4def5b6c03da8f9f4bf9563eb0fb6a
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Fri Jan 8 16:43:25 2016 +0100

    generic rpm: increment local 'release' number on repacking
    
    without that "rpm -U" will fail
---
 game_data_packager/build.py | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/game_data_packager/build.py b/game_data_packager/build.py
index bc27efc..fe6a11d 100644
--- a/game_data_packager/build.py
+++ b/game_data_packager/build.py
@@ -1475,7 +1475,7 @@ class PackagingTask(object):
 
         return related
 
-    def fill_dest_dir_rpm(self, package, destdir, compress, architecture):
+    def fill_dest_dir_rpm(self, package, destdir, compress, architecture, release):
         specfile = os.path.join(self.get_workdir(), '%s.spec' % package.name)
         short_desc, long_desc = self.generate_description(package)
         short_desc = short_desc[0].upper() + short_desc[1:]
@@ -1523,7 +1523,7 @@ class PackagingTask(object):
             spec.write('Name: %s\n' % package.name)
             spec.write('Version: %s\n' % package.version)
             spec.write('Url: %s\n' % url)
-            spec.write('Release: 0\n')
+            spec.write('Release: %s\n' % release)
             spec.write('License: Commercial\n')
             spec.write('Group: Amusements/Games\n')
             spec.write('BuildArch: %s\n' % architecture)
@@ -1555,9 +1555,9 @@ class PackagingTask(object):
                 login = os.getlogin()
             except FileNotFoundError:
                 login = 'game-data-packager'
-            spec.write('* %s %s@%s - %s-0\n' %
+            spec.write('* %s %s@%s - %s-%s\n' %
                         (time.strftime("%a %b %d %Y"),
-                         login, os.uname()[1], package.version))
+                         login, os.uname()[1], package.version, release))
             spec.write('- Package generated by game-data-packager'
                        ' for local use only\n')
 
@@ -2685,7 +2685,21 @@ class PackagingTask(object):
         else:
             setarch = ['setarch', arch]
 
-        specfile = self.fill_dest_dir_rpm(package, destdir, compress, arch)
+        # increase local 'release' number on repacking
+        if not self.packaging.is_installed(package.name):
+            release = '0'
+        elif Version(package.version) > Version(self.packaging.current_version(package.name)):
+            release = '0'
+        else:
+            try:
+                release = check_output(['rpm', '-q', '--qf' ,'%{RELEASE}',
+                                         package.name]).decode('ascii')
+                release = str(int(release) + 1)
+            except (subprocess.CalledProcessError, ValueError):
+                release = '0'
+
+        specfile = self.fill_dest_dir_rpm(package, destdir, compress,
+                                          arch, release)
         self.our_dh_fixperms(destdir)
 
         assert os.path.isdir(os.path.join(destdir, 'usr')), destdir
@@ -2701,7 +2715,8 @@ class PackagingTask(object):
             raise
 
         return(os.path.expanduser('~/rpmbuild/RPMS/') + arch + '/'
-                + package.name + '-' + package.version + '-0.' + arch + '.rpm')
+                + package.name + '-'
+                + package.version + '-' + release + '.' + arch + '.rpm')
 
     def check_unpacker(self, wanted):
         if not wanted.unpack:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list