diff options
author | André Erdmann <dywi@mailerd.de> | 2013-06-22 17:03:05 +0200 |
---|---|---|
committer | André Erdmann <dywi@mailerd.de> | 2013-06-22 17:03:05 +0200 |
commit | 5374a6066d9f8615243bba9b0a2d0c5be487f653 (patch) | |
tree | f1d06333d93cdc706bb92c78ddeb3d9ec6ee4a8c /roverlay/packageinfo.py | |
parent | roverlay/packageinfo: fixup; remove update lock (diff) | |
download | R_overlay-5374a6066d9f8615243bba9b0a2d0c5be487f653.tar.gz R_overlay-5374a6066d9f8615243bba9b0a2d0c5be487f653.tar.bz2 R_overlay-5374a6066d9f8615243bba9b0a2d0c5be487f653.zip |
roverlay/packageinfo, revbump: set src_uri_dest
Rename distfiles of rev-bumped ebuilds.
Diffstat (limited to 'roverlay/packageinfo.py')
-rw-r--r-- | roverlay/packageinfo.py | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py index 7b74425..b86d69d 100644 --- a/roverlay/packageinfo.py +++ b/roverlay/packageinfo.py @@ -94,6 +94,7 @@ class PackageInfo ( object ): PKGSUFFIX_REGEX = re.compile ( config.get_or_fail ( 'R_PACKAGE.suffix_regex' ) + '$' ) + EBUILDREV_REGEX = re.compile ( '[-]r[0-9]+$' ) ALWAYS_FALLBACK = frozenset ( ( 'ebuild', 'ebuild_file' ) ) _UPDATE_KEYS_SIMPLE = frozenset (( @@ -505,19 +506,36 @@ class PackageInfo ( object ): def revbump ( self, newrev=None ): """Do whatever necessary to revbump this pakages, that is set/update - all data like src_uri_destfile. + all data like src_uri_dest and ebuild_verstr. arguments: * newrev -- new revision, (current rev + 1) is used if this is None """ - if newrev is None: - # get old rev and increment it - ## direct dict access - self._info ['rev'] += 1 - else: - self._info ['rev'] = int ( newrev ) + rev = self._info['rev'] + 1 if newrev is None else int ( newrev ) + rev_str = ( '-r' + str ( rev ) ) if rev > 0 else '' + vstr = '.'.join ( str ( k ) for k in self ['version'] ) + rev_str + + # preserve destpath directory + # (this allows to handle paths like "a/b.tar/pkg.tgz" properly) + # + old_destpath = self ['package_src_destpath'].rpartition ( os.path.sep ) + + # os.path.splitext does not "recognize" .tar.gz + fhead, ftar, fext = old_destpath[2].rpartition ( '.tar' ) + if not ftar: + fhead, fext = os.path.splitext ( fext ) + + # FIXME: any way to get this reliably (+faster) done without a regex? + # ( a,b,c=fhead.rpartition ( '-r' ); try int(c) ...; ?) + distfile = ( + old_destpath[0] + old_destpath[1] + + self.EBUILDREV_REGEX.sub ( '', fhead ) + rev_str + ftar + fext + ) + + self._info ['rev'] = rev + self._info ['ebuild_verstr'] = vstr + self._info ['src_uri_dest'] = distfile - self._reset_version_str() return self # --- end of revbump (...) --- @@ -620,20 +638,6 @@ class PackageInfo ( object ): return None # --- end of get_evars (...) --- - def _reset_version_str ( self ): - """Recreates the version_str ($PVR) of this PackageInfo instance.""" - rev = self ['rev'] - version = self ['version'] - - if rev > 0: - vstr = '.'.join ( str ( k ) for k in version ) + '-r' + str ( rev ) - else: - vstr = '.'.join ( str ( k ) for k in version ) - - self._info ['ebuild_verstr'] = vstr - #return vstr - # --- end of _reset_version_str (...) --- - def _update ( self, info ): """Updates self._info using the given info dict. |