diff options
Diffstat (limited to 'meta/packages/ipkg-utils/ipkg-utils/ipkg-make-index-track-stamps.patch')
-rw-r--r-- | meta/packages/ipkg-utils/ipkg-utils/ipkg-make-index-track-stamps.patch | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/meta/packages/ipkg-utils/ipkg-utils/ipkg-make-index-track-stamps.patch b/meta/packages/ipkg-utils/ipkg-utils/ipkg-make-index-track-stamps.patch new file mode 100644 index 0000000000..9f9b9359ce --- /dev/null +++ b/meta/packages/ipkg-utils/ipkg-utils/ipkg-make-index-track-stamps.patch | |||
@@ -0,0 +1,97 @@ | |||
1 | --- | ||
2 | ipkg-make-index | 31 +++++++++++++++++++++++++++---- | ||
3 | 1 file changed, 27 insertions(+), 4 deletions(-) | ||
4 | |||
5 | Index: ipkg-utils/ipkg-make-index | ||
6 | =================================================================== | ||
7 | --- ipkg-utils.orig/ipkg-make-index 2007-05-26 23:45:56.000000000 +0100 | ||
8 | +++ ipkg-utils/ipkg-make-index 2007-05-26 23:47:25.000000000 +0100 | ||
9 | @@ -40,6 +40,7 @@ def to_locale(filename, locale): | ||
10 | old_filename = None | ||
11 | packages_filename = None | ||
12 | filelist_filename = "Packages.filelist" | ||
13 | +stamplist_filename = "Packages.stamps" | ||
14 | opt_s = 0 | ||
15 | opt_m = 0 | ||
16 | (opts, remaining_args) = getopt.getopt(sys.argv[1:], "hl:p:vsmr:L:") | ||
17 | @@ -50,6 +51,7 @@ for (optkey, optval) in opts: | ||
18 | opt_s = 1 | ||
19 | if optkey == '-p': | ||
20 | packages_filename = optval | ||
21 | + stamplist_filename = optval + ".stamps" | ||
22 | if optkey == '-l': | ||
23 | filelist_filename = optval | ||
24 | if optkey == '-v': | ||
25 | @@ -72,6 +74,7 @@ old_pkg_hash = {} | ||
26 | if packages_filename and not old_filename and os.path.exists(packages_filename): | ||
27 | old_filename = packages_filename | ||
28 | |||
29 | +pkgsStamps = {} | ||
30 | if old_filename: | ||
31 | if (verbose): | ||
32 | sys.stderr.write("Reading package list from " + old_filename + "\n") | ||
33 | @@ -80,6 +83,14 @@ if old_filename: | ||
34 | for k in old_packages.packages.keys(): | ||
35 | p = old_packages.packages[k] | ||
36 | old_pkg_hash[p.filename] = p | ||
37 | + try: | ||
38 | + f = open(stamplist_filename, "r") | ||
39 | + for l in f: | ||
40 | + l = l.strip() | ||
41 | + s, f = l.split(" ", 1) | ||
42 | + pkgsStamps[f] = int(s) | ||
43 | + except IOError: | ||
44 | + pass | ||
45 | |||
46 | if (verbose): | ||
47 | sys.stderr.write("Reading in all the package info from %s\n" % (pkg_dir, )) | ||
48 | @@ -87,11 +98,17 @@ files=glob(pkg_dir + '/*.ipk') + glob(pk | ||
49 | files.sort() | ||
50 | for filename in files: | ||
51 | basename = os.path.basename(filename) | ||
52 | + pkg = None | ||
53 | + fnameStat = os.stat(filename) | ||
54 | if old_pkg_hash.has_key(basename): | ||
55 | - if (verbose): | ||
56 | + if pkgsStamps.has_key(basename) and fnameStat.st_mtime == pkgsStamps[basename]: | ||
57 | + if (verbose): | ||
58 | sys.stderr.write("Found %s in Packages\n" % (filename,)) | ||
59 | - pkg = old_pkg_hash[basename] | ||
60 | - else: | ||
61 | + pkg = old_pkg_hash[basename] | ||
62 | + else: | ||
63 | + sys.stderr.write("Found %s in Packages, but mtime differs - re-reading\n" % (filename,)) | ||
64 | + | ||
65 | + if not pkg: | ||
66 | if (verbose): | ||
67 | sys.stderr.write("Reading info for package %s\n" % (filename,)) | ||
68 | pkg = ipkg.Package(filename) | ||
69 | @@ -101,6 +118,7 @@ for filename in files: | ||
70 | else: | ||
71 | old_filename = "" | ||
72 | s = packages.add_package(pkg) | ||
73 | + pkgsStamps[basename] = fnameStat.st_mtime | ||
74 | if s == 0: | ||
75 | if old_filename: | ||
76 | # old package was displaced by newer | ||
77 | @@ -114,6 +132,11 @@ for filename in files: | ||
78 | if opt_s: | ||
79 | print filename | ||
80 | |||
81 | +pkgsStampsFile = open(stamplist_filename, "w") | ||
82 | +for f in pkgsStamps.keys(): | ||
83 | + pkgsStampsFile.write("%d %s\n" % (pkgsStamps[f], f)) | ||
84 | +pkgsStampsFile.close() | ||
85 | + | ||
86 | if opt_s: | ||
87 | sys.exit(0) | ||
88 | |||
89 | @@ -154,7 +177,7 @@ if packages_filename: | ||
90 | os.rename(tmp_packages_filename, packages_filename) | ||
91 | os.rename(tmp_gzip_filename, gzip_filename) | ||
92 | |||
93 | -if verbose: | ||
94 | +if verbose: | ||
95 | sys.stderr.write("Generate Packages.filelist file\n") | ||
96 | files = {} | ||
97 | names = packages.packages.keys() | ||