mirror of
https://git.yoctoproject.org/git/opkg-utils
synced 2026-07-08 11:51:33 +02:00
opkg: Fix common linter warnings
This patch fixes common linter warnings Signed-off-by: Robert Lehmann <robert.lehmann@sitec-systems.de> Signed-off-by: Alex Stewart <astewart.49c6@gmail.com>
This commit is contained in:
committed by
Alex Stewart
parent
858312ba2c
commit
d179a334f7
165
opkg.py
165
opkg.py
@@ -38,14 +38,12 @@ from __future__ import print_function
|
||||
import tempfile
|
||||
import os
|
||||
import sys
|
||||
import glob
|
||||
import hashlib
|
||||
import re
|
||||
import subprocess
|
||||
from stat import ST_SIZE
|
||||
import arfile
|
||||
import tarfile
|
||||
import textwrap
|
||||
import collections
|
||||
|
||||
|
||||
@@ -64,6 +62,7 @@ def order(x):
|
||||
|
||||
class Version(object):
|
||||
"""A class for holding parsed package version information."""
|
||||
|
||||
def __init__(self, epoch, version):
|
||||
self.epoch = epoch
|
||||
self.version = version
|
||||
@@ -77,8 +76,10 @@ class Version(object):
|
||||
|
||||
One slight modification, the original version can return any value, whereas this one is limited to -1, 0, +1
|
||||
"""
|
||||
if not selfversion: selfversion = ""
|
||||
if not refversion: refversion = ""
|
||||
if not selfversion:
|
||||
selfversion = ""
|
||||
if not refversion:
|
||||
refversion = ""
|
||||
|
||||
value = list(selfversion)
|
||||
ref = list(refversion)
|
||||
@@ -125,17 +126,15 @@ class Version(object):
|
||||
else:
|
||||
self_ver_comps = re.match(r"(.+?)(-r.+)?$", self.version)
|
||||
ref_ver_comps = re.match(r"(.+?)(-r.+)?$", ref.version)
|
||||
#print((self_ver_comps.group(1), self_ver_comps.group(2)))
|
||||
#print((ref_ver_comps.group(1), ref_ver_comps.group(2)))
|
||||
r = self._versioncompare(self_ver_comps.group(1), ref_ver_comps.group(1))
|
||||
if r == 0:
|
||||
r = self._versioncompare(self_ver_comps.group(2), ref_ver_comps.group(2))
|
||||
#print("compare: %s vs %s = %d" % (self, ref, r))
|
||||
return r
|
||||
|
||||
def __str__(self):
|
||||
return str(self.epoch) + ":" + self.version
|
||||
|
||||
|
||||
def parse_version(versionstr):
|
||||
epoch = 0
|
||||
# check for epoch
|
||||
@@ -145,6 +144,7 @@ def parse_version(versionstr):
|
||||
epoch = int(epochstr)
|
||||
return Version(epoch, versionstr)
|
||||
|
||||
|
||||
class Package(object):
|
||||
"""A class for creating objects to manipulate (e.g. create) opkg
|
||||
packages."""
|
||||
@@ -170,9 +170,6 @@ class Package(object):
|
||||
self.section = None
|
||||
self.filename_header = None
|
||||
self.file_list = []
|
||||
# md5 and size is lazy attribute, computed on demand
|
||||
#self.md5 = None
|
||||
#self.size = None
|
||||
self.installed_size = None
|
||||
self.filename = None
|
||||
self.file_ext_opk = "ipk"
|
||||
@@ -193,8 +190,6 @@ class Package(object):
|
||||
else:
|
||||
self.filename = os.path.basename(fn)
|
||||
|
||||
## sys.stderr.write(" extracting control.tar.gz from %s\n"% (fn,))
|
||||
|
||||
if tarfile.is_tarfile(fn):
|
||||
tar = tarfile.open(fn, "r", f)
|
||||
tarStream = tar.extractfile("./control.tar.gz")
|
||||
@@ -235,9 +230,10 @@ class Package(object):
|
||||
f = open(self.fn, "rb")
|
||||
sum = hashlib.md5()
|
||||
while True:
|
||||
data = f.read(1024)
|
||||
if not data: break
|
||||
sum.update(data)
|
||||
data = f.read(1024)
|
||||
if not data:
|
||||
break
|
||||
sum.update(data)
|
||||
f.close()
|
||||
self.md5 = sum.hexdigest()
|
||||
|
||||
@@ -249,26 +245,26 @@ class Package(object):
|
||||
f = open(self.fn, "rb")
|
||||
sum = hashlib.sha256()
|
||||
while True:
|
||||
data = f.read(1024)
|
||||
if not data: break
|
||||
sum.update(data)
|
||||
data = f.read(1024)
|
||||
if not data:
|
||||
break
|
||||
sum.update(data)
|
||||
f.close()
|
||||
self.sha256 = sum.hexdigest()
|
||||
|
||||
def _get_file_size(self):
|
||||
if not self.fn:
|
||||
self.size = 0;
|
||||
self.size = 0
|
||||
else:
|
||||
stat = os.stat(self.fn)
|
||||
self.size = stat[ST_SIZE]
|
||||
return int(self.size)
|
||||
|
||||
def read_control(self, control, all_fields=None):
|
||||
import os
|
||||
|
||||
line = control.readline()
|
||||
while 1:
|
||||
if not line: break
|
||||
if not line:
|
||||
break
|
||||
# Decode if stream has byte strings
|
||||
if not isinstance(line, str):
|
||||
line = line.decode()
|
||||
@@ -280,8 +276,11 @@ class Package(object):
|
||||
value = lineparts.group(2)
|
||||
while 1:
|
||||
line = control.readline().rstrip()
|
||||
if not line: break
|
||||
if line[0] != ' ': break
|
||||
if not line:
|
||||
break
|
||||
if line[0] != ' ':
|
||||
break
|
||||
|
||||
value = value + '\n' + line
|
||||
if name_lowercase == 'size':
|
||||
self.size = int(value)
|
||||
@@ -298,15 +297,14 @@ class Package(object):
|
||||
pass
|
||||
|
||||
if line and line[0] == '\n':
|
||||
return # consumes one blank line at end of package descriptoin
|
||||
return # consumes one blank line at end of package description
|
||||
else:
|
||||
line = control.readline()
|
||||
pass
|
||||
return
|
||||
return
|
||||
|
||||
def _setup_scratch_area(self):
|
||||
self.scratch_dir = "%s/%sopkg" % (tempfile.gettempdir(),
|
||||
tempfile.gettempprefix())
|
||||
self.scratch_dir = "%s/%sopkg" % (tempfile.gettempdir(), tempfile.gettempprefix())
|
||||
self.file_dir = "%s/files" % (self.scratch_dir)
|
||||
self.meta_dir = "%s/meta" % (self.scratch_dir)
|
||||
|
||||
@@ -429,7 +427,6 @@ class Package(object):
|
||||
sys.stderr.write("Cannot find current fn for package '%s' filename '%s' in dir '%s'\n(%s)\n" % (self.package, self.filename, directory, e))
|
||||
return self.get_file_list()
|
||||
|
||||
|
||||
def get_file_list(self):
|
||||
if not self.fn:
|
||||
sys.stderr.write("Package '%s' has empty fn, returning empty filelist\n" % (self.package))
|
||||
@@ -460,11 +457,10 @@ class Package(object):
|
||||
file.write(str(self))
|
||||
file.close()
|
||||
|
||||
cmd = "cd %s ; tar cvz --format=gnu -f %s/control.tar.gz control" % (self.meta_dir,
|
||||
self.scratch_dir)
|
||||
cmd = "cd %s ; tar cvz --format=gnu -f %s/control.tar.gz control" % (self.meta_dir, self.scratch_dir)
|
||||
|
||||
cmd_out, cmd_in, cmd_err = os.popen3(cmd)
|
||||
|
||||
|
||||
while cmd_err.readline() != "":
|
||||
pass
|
||||
|
||||
@@ -475,25 +471,20 @@ class Package(object):
|
||||
bits = "control.tar.gz"
|
||||
|
||||
if self.file_list:
|
||||
cmd = "cd %s ; tar cvz --format=gnu -f %s/data.tar.gz" % (self.file_dir,
|
||||
self.scratch_dir)
|
||||
cmd = "cd %s ; tar cvz --format=gnu -f %s/data.tar.gz" % (self.file_dir, self.scratch_dir)
|
||||
cmd_out, cmd_in, cmd_err = os.popen3(cmd)
|
||||
|
||||
cmd_out, cmd_in, cmd_err = os.popen3(cmd)
|
||||
while cmd_err.readline() != "":
|
||||
pass
|
||||
|
||||
while cmd_err.readline() != "":
|
||||
pass
|
||||
cmd_out.close()
|
||||
cmd_in.close()
|
||||
cmd_err.close()
|
||||
|
||||
cmd_out.close()
|
||||
cmd_in.close()
|
||||
cmd_err.close()
|
||||
|
||||
bits = bits + " data.tar.gz"
|
||||
bits = bits + " data.tar.gz"
|
||||
|
||||
file = "%s_%s_%s.%s" % (self.package, self.version, self.architecture, self.get_package_extension())
|
||||
cmd = "cd %s ; tar cvz --format=gnu -f %s/%s %s" % (self.scratch_dir,
|
||||
dirname,
|
||||
file,
|
||||
bits)
|
||||
cmd = "cd %s ; tar cvz --format=gnu -f %s/%s %s" % (self.scratch_dir, dirname, file, bits)
|
||||
|
||||
cmd_out, cmd_in, cmd_err = os.popen3(cmd)
|
||||
|
||||
@@ -522,31 +513,54 @@ class Package(object):
|
||||
# XXX - Some checks need to be made, and some exceptions
|
||||
# need to be thrown. -- a7r
|
||||
|
||||
if self.package: out = out + "Package: %s\n" % (self.package)
|
||||
if self.version: out = out + "Version: %s\n" % (self.version)
|
||||
if self.depends: out = out + "Depends: %s\n" % (self.depends)
|
||||
if self.provides: out = out + "Provides: %s\n" % (self.provides)
|
||||
if self.replaces: out = out + "Replaces: %s\n" % (self.replaces)
|
||||
if self.conflicts: out = out + "Conflicts: %s\n" % (self.conflicts)
|
||||
if self.suggests: out = out + "Suggests: %s\n" % (self.suggests)
|
||||
if self.recommends: out = out + "Recommends: %s\n" % (self.recommends)
|
||||
if self.section: out = out + "Section: %s\n" % (self.section)
|
||||
if self.architecture: out = out + "Architecture: %s\n" % (self.architecture)
|
||||
if self.maintainer: out = out + "Maintainer: %s\n" % (self.maintainer)
|
||||
if self.package:
|
||||
out = out + "Package: %s\n" % (self.package)
|
||||
if self.version:
|
||||
out = out + "Version: %s\n" % (self.version)
|
||||
if self.depends:
|
||||
out = out + "Depends: %s\n" % (self.depends)
|
||||
if self.provides:
|
||||
out = out + "Provides: %s\n" % (self.provides)
|
||||
if self.replaces:
|
||||
out = out + "Replaces: %s\n" % (self.replaces)
|
||||
if self.conflicts:
|
||||
out = out + "Conflicts: %s\n" % (self.conflicts)
|
||||
if self.suggests:
|
||||
out = out + "Suggests: %s\n" % (self.suggests)
|
||||
if self.recommends:
|
||||
out = out + "Recommends: %s\n" % (self.recommends)
|
||||
if self.section:
|
||||
out = out + "Section: %s\n" % (self.section)
|
||||
if self.architecture:
|
||||
out = out + "Architecture: %s\n" % (self.architecture)
|
||||
if self.maintainer:
|
||||
out = out + "Maintainer: %s\n" % (self.maintainer)
|
||||
if 'md5' in checksum:
|
||||
if self.md5: out = out + "MD5Sum: %s\n" % (self.md5)
|
||||
if self.md5:
|
||||
out = out + "MD5Sum: %s\n" % (self.md5)
|
||||
if 'sha256' in checksum:
|
||||
if self.sha256: out = out + "SHA256sum: %s\n" % (self.sha256)
|
||||
if self.size: out = out + "Size: %d\n" % int(self.size)
|
||||
if self.installed_size: out = out + "InstalledSize: %d\n" % int(self.installed_size)
|
||||
if self.filename: out = out + "Filename: %s\n" % (self.filename)
|
||||
if self.source: out = out + "Source: %s\n" % (self.source)
|
||||
if self.description: out = out + "Description: %s\n" % (self.description)
|
||||
if self.oe: out = out + "OE: %s\n" % (self.oe)
|
||||
if self.homepage: out = out + "HomePage: %s\n" % (self.homepage)
|
||||
if self.license: out = out + "License: %s\n" % (self.license)
|
||||
if self.priority: out = out + "Priority: %s\n" % (self.priority)
|
||||
if self.tags: out = out + "Tags: %s\n" % (self.tags)
|
||||
if self.sha256:
|
||||
out = out + "SHA256sum: %s\n" % (self.sha256)
|
||||
if self.size:
|
||||
out = out + "Size: %d\n" % int(self.size)
|
||||
if self.installed_size:
|
||||
out = out + "InstalledSize: %d\n" % int(self.installed_size)
|
||||
if self.filename:
|
||||
out = out + "Filename: %s\n" % (self.filename)
|
||||
if self.source:
|
||||
out = out + "Source: %s\n" % (self.source)
|
||||
if self.description:
|
||||
out = out + "Description: %s\n" % (self.description)
|
||||
if self.oe:
|
||||
out = out + "OE: %s\n" % (self.oe)
|
||||
if self.homepage:
|
||||
out = out + "HomePage: %s\n" % (self.homepage)
|
||||
if self.license:
|
||||
out = out + "License: %s\n" % (self.license)
|
||||
if self.priority:
|
||||
out = out + "Priority: %s\n" % (self.priority)
|
||||
if self.tags:
|
||||
out = out + "Tags: %s\n" % (self.tags)
|
||||
if self.user_defined_fields:
|
||||
for k, v in self.user_defined_fields.items():
|
||||
out = out + "%s: %s\n" % (k, v)
|
||||
@@ -559,8 +573,10 @@ class Package(object):
|
||||
# are being destroyed? -- a7r
|
||||
pass
|
||||
|
||||
|
||||
class Packages(object):
|
||||
"""A currently unimplemented wrapper around the opkg utility."""
|
||||
|
||||
def __init__(self):
|
||||
self.packages = {}
|
||||
return
|
||||
@@ -576,7 +592,7 @@ class Packages(object):
|
||||
|
||||
if (name not in self.packages):
|
||||
self.packages[name] = pkg
|
||||
|
||||
|
||||
if pkg.compare_version(self.packages[name]) >= 0:
|
||||
self.packages[name] = pkg
|
||||
return 0
|
||||
@@ -596,7 +612,7 @@ class Packages(object):
|
||||
self.add_package(pkg)
|
||||
else:
|
||||
break
|
||||
f.close()
|
||||
f.close()
|
||||
return
|
||||
|
||||
def write_packages_file(self, fn):
|
||||
@@ -605,7 +621,7 @@ class Packages(object):
|
||||
names.sort()
|
||||
for name in names:
|
||||
f.write(self.packages[name].__str__())
|
||||
return
|
||||
return
|
||||
|
||||
def keys(self):
|
||||
return list(self.packages.keys())
|
||||
@@ -613,8 +629,8 @@ class Packages(object):
|
||||
def __getitem__(self, key):
|
||||
return self.packages[key]
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
def main():
|
||||
assert Version(0, "1.2.2-r1").compare(Version(0, "1.2.3-r0")) == -1
|
||||
assert Version(0, "1.2.2-r0").compare(Version(0, "1.2.2+cvs20070308-r0")) == -1
|
||||
assert Version(0, "1.2.2+cvs20070308").compare(Version(0, "1.2.2-r0")) == 1
|
||||
@@ -647,3 +663,6 @@ if __name__ == "__main__":
|
||||
|
||||
package.write_package("/tmp")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user