blob: bef28a9df1c81b1a7ae2b34cfdda6654a02be72e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
Index: ipkg-utils/ipkg-make-index
===================================================================
--- ipkg-utils.orig/ipkg-make-index 2005-03-20 18:10:54.000000000 +0000
+++ ipkg-utils/ipkg-make-index 2006-07-24 09:18:16.000000000 +0100
@@ -37,6 +37,21 @@
if os.path.exists(pkg_dir + "/" + filename + ".asc"):
os.rename(pkg_dir + "/" + filename + ".asc", locale_dir + "/" + filename + ".asc")
+def md5sum(file):
+ import md5
+ sum = md5.new()
+ f = open(file, "r")
+ while 1:
+ data = f.read(1024)
+ if not data: break
+ sum.update(data)
+ f.close()
+ if sys.version[:1] > '2':
+ # when using Python 2.0 or newer
+ return sum.hexdigest()
+ else:
+ return string.join(map((lambda x:"%02x" % ord(x)),sum.digest()),'')
+
old_filename = None
packages_filename = None
filelist_filename = "Packages.filelist"
@@ -87,7 +102,7 @@
files.sort()
for filename in files:
basename = os.path.basename(filename)
- if old_pkg_hash.has_key(basename):
+ if old_pkg_hash.has_key(basename) and old_pkg_hash[basename].md5 == md5sum(filename) and old_pkg_hash[basename].size == os.stat(filename)[6]:
if (verbose):
sys.stderr.write("Found %s in Packages\n" % (filename,))
pkg = old_pkg_hash[basename]
Index: ipkg-utils/ipkg.py
===================================================================
--- ipkg-utils.orig/ipkg.py 2005-01-20 23:09:10.000000000 +0000
+++ ipkg-utils/ipkg.py 2006-07-24 09:16:44.000000000 +0100
@@ -210,8 +210,13 @@
value = value + '\n' + line
if name == 'size':
self.size = int(value)
+ elif name == 'md5sum':
+ self.md5 = value
elif self.__dict__.has_key(name):
self.__dict__[name] = value
+ else:
+ print "Lost field %s, %s" % (name,value)
+
if line[0] == '\n':
return # consumes one blank line at end of package descriptoin
else:
|