summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRobert Yang <liezhi.yang@windriver.com>2012-08-01 17:14:53 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-08-01 23:03:06 +0100
commit72d673bef385e756bd858f9eca7fe419efaceb39 (patch)
tree7abdc2f582f04b83dc0ac205cc7b6d5f41e18b33 /scripts
parent674d65c94478a1ff33ef9d9c1e49f677091301f4 (diff)
downloadopenembedded-core-72d673bef385e756bd858f9eca7fe419efaceb39.tar.gz
openembedded-core-72d673bef385e756bd858f9eca7fe419efaceb39.tar.bz2
openembedded-core-72d673bef385e756bd858f9eca7fe419efaceb39.zip
createrepo 0.4.11: add rpm-createsolvedb.py
Move scripts/rpm-createsolvedb.py to meta/recipes-support/createrepo/createrepo/ since we should wrap it to use the native python. [YOCTO #2822] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/rpm-createsolvedb.py64
1 files changed, 0 insertions, 64 deletions
diff --git a/scripts/rpm-createsolvedb.py b/scripts/rpm-createsolvedb.py
deleted file mode 100755
index a5b61bade7..0000000000
--- a/scripts/rpm-createsolvedb.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env python
-#
-# This script generates a solution database for a directory containing rpm packages
-# but tries to be efficient about this, only doing so when the packages have changed
-# in some way.
-#
-# It is assumed something already went through and removed all the solvedb.done stamp files
-# in advance.
-#
-# First argument - the rpm binary to use
-# Subsequent arguments - paths to process solution databases for
-#
-
-import sys, os
-import hashlib
-import stat
-import subprocess
-
-if len(sys.argv) < 1:
- print("Error, rpm command not specified")
- sys.exit(1)
-
-if len(sys.argv) < 2:
- print("Error, no paths specified")
- sys.exit(1)
-
-paths = sys.argv[2:]
-
-for path in paths:
- if os.path.exists(path + "/solvedb.done"):
- continue
- data = ""
- manifest = []
- for root, dirs, files in os.walk(path):
- for file in files:
- f = os.path.join(root, file)
- if f.startswith(path + "/" + "solvedb"):
- continue
- data = data + str(os.stat(f)[stat.ST_MTIME])
- manifest.append(f)
- checksum = hashlib.md5(data).hexdigest()
-
- if os.path.exists(path + "/solvedb.checksum") and open(path + "/solvedb.checksum", "r").read() == checksum:
- open(path + "/solvedb.done", "w")
- continue
-
- if os.path.exists(path + "/solvedb"):
- subprocess.call("rm -rf %s" % (path + "/solvedb"), shell=True)
- os.mkdir(path + "/solvedb")
- m = open(path + "/solvedb/manifest", "w")
- m.write("# Dynamically generated solve manifest\n")
- for f in manifest:
- m.write(f + "\n")
- m.close()
-
- cmd = sys.argv[1] + ' -i --replacepkgs --replacefiles --oldpackage -D "_dbpath ' + path + '/solvedb" --justdb \
- --noaid --nodeps --noorder --noscripts --notriggers --noparentdirs --nolinktos --stats \
- --ignoresize --nosignature --nodigest -D "__dbi_txn create nofsync" \
- ' + path + '/solvedb/manifest'
- subprocess.call(cmd, shell=True)
-
- open(path + "/solvedb.checksum", "w").write(checksum)
- open(path + "/solvedb.done", "w")
-