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
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/devel