On 11/06/2012 02:00 PM, Tom Callaway wrote: > Okay, so here are two patches: > > fedpkg-1.10-use-nil-to-unset-distunset.patch (this one uses %nil instead > of 0 in my previous fix) > fedpkg-1.10-unset-runtime-disttag.patch (this patch detects the runtime > environment and unsets the version specific tag (e.g. %{fc17} or > %{el6}), except in the case where the runtime env matches the build > target exactly) > > Jesse, please review and apply these upstream and make a new update. Fixed comments. Other patch (fedpkg-1.10-use-nil-to-unset-distunset.patch) is fine as is. ~tom == Fedora Project
diff -up fedpkg-1.10/src/pyrpkg/fedpkg/__init__.py.unset-runtime-disttag fedpkg-1.10/src/pyrpkg/fedpkg/__init__.py --- fedpkg-1.10/src/pyrpkg/fedpkg/__init__.py.unset-runtime-disttag 2012-11-06 13:46:22.767693545 -0500 +++ fedpkg-1.10/src/pyrpkg/fedpkg/__init__.py 2012-11-06 13:54:08.767907308 -0500 @@ -17,6 +17,7 @@ import git import re import pycurl import fedora_cert +import platform # This check (decorator) can go away after a few months def _check_newstyle_branches(func): @@ -153,6 +154,9 @@ class Commands(pyrpkg.Commands): def load_rpmdefines(self): """Populate rpmdefines based on branch data""" + # Determine runtime environment + self._runtime_disttag = self._determine_runtime_env() + # We only match the top level branch name exactly. # Anything else is too dangerous and --dist should be used # This regex works until after Fedora 99. @@ -199,6 +203,11 @@ class Commands(pyrpkg.Commands): "--define '%s %s'" % (self._distvar, self._distval), "--define '%s %%{nil}'" % self._distunset, "--define '%s 1'" % self.dist] + if self._runtime_disttag: + if self.dist != self._runtime_disttag: + # This means that the runtime is known, and is different from the target, + # so we need to unset the _runtime_disttag + self._rpmdefines.append("--define '%s %%{nil}'" % self._runtime_disttag) def load_target(self): """This creates the target attribute based on branch merge""" @@ -313,6 +322,33 @@ class Commands(pyrpkg.Commands): desttag = rawhidetarget['dest_tag_name'] return desttag.replace('f', '') + def _determine_runtime_env(self): + """Need to know what the runtime env is, so we can unset anything conflicting""" + try: + mydist = platform.linux_distribution() + except: + # This is marked as eventually being deprecated. + try: + mydist = platform.dist() + except: + runtime_os = 'unknown' + runtime_version = '0' + + if mydist: + runtime_os = mydist[0] + runtime_version = mydist[1] + else: + runtime_os = 'unknown' + runtime_version = '0' + + if runtime_os == 'redhat' or runtime_os == 'centos': + return 'el%s' % runtime_version + if runtime_os == 'Fedora': + return 'fc%s' % runtime_version + + # fall through, return None + return None + def new_ticket(self, passwd, desc, build=None): """Open a new ticket on Rel-Eng trac instance.
-- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel