Discussion:
6 commits - createrepo/__init__.py createrepo/yumbased.py genpkgmetadata.py
James Antill
2012-11-06 21:45:12 UTC
Permalink
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 <***@and.org>
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 <***@and.org>
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 <***@and.org>
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 <***@and.org>
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 <***@and.org>
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 <***@and.org>
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])

Loading...