6 commits - createrepo/__init__.py createrepo/yumbased.py genpkgmetadata.py
[email protected] (James Antill) Tue, 6 Nov 2012 21:45:12 +0000 (UTC)
| Newsgroups | gmane.linux.rpm.metadata |
|---|---|
| Message-ID | <[email protected]> |
createrepo/__init__.py | 17 +++++++++++++++-- createrepo/yumbased.py | 8 ++++++++ genpkgmetadata.py | 8 +++++++- 3 files changed, 30 insertions(+), 3 deletions(-) New commits: commit 7831e49bf8377829066c8b65218e89d72c5ff446 Author: James Antill <[email protected]> Date: Tue Nov 6 16:44:47 2012 -0500 float => int on st_mtime before str, stupid python API. diff --git a/createrepo/__init__.py b/createrepo/__init__.py index 25b5565..7e75789 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -897,7 +897,7 @@ class MetaDataGenerator: thisdata.openchecksum = (self.conf.sumtype, open_csum) thisdata.size = str(os.stat(outfn).st_size) - thisdata.timestamp = str(os.stat(outfn).st_mtime) + thisdata.timestamp = str(int(os.stat(outfn).st_mtime)) for (k, v) in attribs.items(): setattr(thisdata, k, str(v)) @@ -1028,7 +1028,7 @@ class MetaDataGenerator: data.location = (self.conf.baseurl, os.path.join(self.conf.finaldir, compressed_name)) data.checksum = (sumtype, db_compressed_sums[ftype]) - data.timestamp = str(db_stat.st_mtime) + data.timestamp = str(int(db_stat.st_mtime)) data.size = str(db_stat.st_size) data.opensize = str(un_stat.st_size) data.openchecksum = (sumtype, db_csums[ftype]) commit 9361bbef7362785e47a08e8700dd52a52948c69c Merge: b38e0ad 248a834 Author: James Antill <[email protected]> Date: Mon Oct 22 16:33:25 2012 -0400 Merge branch 'master' of ssh://yum.baseurl.org/srv/projects/createrepo/git/createrepo * 'master' of ssh://yum.baseurl.org/srv/projects/createrepo/git/createrepo: modifyrepo: use available compression only. BZ 865845. commit b38e0ade29d3bcb621f4e271a2169f02217dae89 Author: James Antill <[email protected]> Date: Thu Oct 4 17:09:46 2012 -0400 Manually set the permmissions for tempfile created cachefiles. BZ 833350. diff --git a/createrepo/yumbased.py b/createrepo/yumbased.py index ac06196..f87ac6d 100644 --- a/createrepo/yumbased.py +++ b/createrepo/yumbased.py @@ -16,6 +16,11 @@ import os +def _get_umask(): + oumask = os.umask(0) + os.umask(oumask) + return oumask +_b4rpm_oumask = _get_umask() import rpm import types @@ -86,6 +91,9 @@ class CreateRepoPackage(YumLocalPackage): csumo = os.fdopen(csumo, 'w', -1) csumo.write(checksum) csumo.close() + # tempfile forces 002 ... we want to undo that, so that users + # can share the cache. BZ 833350. + os.chmod(tmpfilename, 0666 ^ _b4rpm_oumask) os.rename(tmpfilename, csumfile) except: pass commit 934b847107f05b06c1ca2d269e5a96ad3c1c2f53 Author: James Antill <[email protected]> Date: Fri Sep 14 17:30:37 2012 -0400 Setup a default for workers based on nice. diff --git a/genpkgmetadata.py b/genpkgmetadata.py index 9bf8c8d..c46e441 100755 --- a/genpkgmetadata.py +++ b/genpkgmetadata.py @@ -37,6 +37,12 @@ def parse_args(args, conf): Sanity check all the things being passed in. """ + def_workers = os.nice(0) + if def_workers > 0: + def_workers = 1 # We are niced, so just use a single worker. + else: + def_workers = 0 # zoooom.... + _def = yum.misc._default_checksums[0] _avail = yum.misc._available_checksums parser = OptionParser(version = "createrepo %s" % createrepo.__version__) @@ -121,7 +127,7 @@ def parse_args(args, conf): parser.add_option("--max-delta-rpm-size", default=100000000, dest='max_delta_rpm_size', type='int', help="max size of an rpm that to run deltarpm against (in bytes)") - parser.add_option("--workers", default=1, + parser.add_option("--workers", default=def_workers, dest='workers', type='int', help="number of workers to spawn to read rpms") parser.add_option("--xz", default=False, commit 151a31113f7fb37c4c8ba0ecba46c30da8d70840 Merge: 079d4c3 71cd4c4 Author: James Antill <[email protected]> Date: Thu Sep 13 15:51:06 2012 -0400 Merge branch 'master' of ssh://yum.baseurl.org/srv/projects/createrepo/git/createrepo * 'master' of ssh://yum.baseurl.org/srv/projects/createrepo/git/createrepo: Fix the deadlock issue. BZ 856363 commit 079d4c38333a10321a28ef930c3774d0b7602e7d Author: James Antill <[email protected]> Date: Mon Sep 10 15:39:01 2012 -0400 Filter rpm files to pkglist, when in split media mode. BZ 646644 diff --git a/createrepo/__init__.py b/createrepo/__init__.py index d2e2039..6495e85 100644 --- a/createrepo/__init__.py +++ b/createrepo/__init__.py @@ -1307,6 +1307,19 @@ class SplitMetaDataGenerator(MetaDataGenerator): thisdir = os.path.join(self.conf.basedir, mydir) filematrix[mydir] = self.getFileList(thisdir, '.rpm') + + # pkglist is a bit different for split media, as we have to know + # which dir. it belongs to. So we walk the dir. and then filter. + # We could be faster by not walking the dir. ... but meh. + if self.conf.pkglist: + pkglist = set(self.conf.pkglist) + pkgs = [] + for fname in filematrix[mydir]: + if fname not in pkglist: + continue + pkgs.append(fname) + filematrix[mydir] = pkgs + self.trimRpms(filematrix[mydir]) self.pkgcount += len(filematrix[mydir])