summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOla x Nilsson <ola.x.nilsson@axis.com>2019-10-21 12:30:32 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-10-23 16:30:36 +0100
commit95dca0ec5a89a6b4277abb7100dbeacede1cc4e3 (patch)
tree0b156ec8740d5bde3279d6e339c697482c211b25
parenta92ef13e3dc417c0dbb0543eccb3ed2223d02b92 (diff)
downloadpoky-95dca0ec5a89a6b4277abb7100dbeacede1cc4e3.tar.gz
package.bbclass: Use with to manage file handle lifetimes
(From OE-Core rev: e90978056c4b49e138b3d422939bf995829ec3b0) Signed-off-by: Ola x Nilsson <olani@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/package.bbclass76
1 files changed, 34 insertions, 42 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index d8bef3afb0..f955df1111 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -826,8 +826,9 @@ python fixup_perms () {
826 826
827 # Now we actually load from the configuration files 827 # Now we actually load from the configuration files
828 for conf in get_fs_perms_list(d).split(): 828 for conf in get_fs_perms_list(d).split():
829 if os.path.exists(conf): 829 if not os.path.exists(conf):
830 f = open(conf) 830 continue
831 with open(conf) as f:
831 for line in f: 832 for line in f:
832 if line.startswith('#'): 833 if line.startswith('#'):
833 continue 834 continue
@@ -848,7 +849,6 @@ python fixup_perms () {
848 fs_perms_table[entry.path] = entry 849 fs_perms_table[entry.path] = entry
849 if entry.path in fs_link_table: 850 if entry.path in fs_link_table:
850 fs_link_table.pop(entry.path) 851 fs_link_table.pop(entry.path)
851 f.close()
852 852
853 # Debug -- list out in-memory table 853 # Debug -- list out in-memory table
854 #for dir in fs_perms_table: 854 #for dir in fs_perms_table:
@@ -1424,10 +1424,9 @@ fi
1424 pkgdest = d.getVar('PKGDEST') 1424 pkgdest = d.getVar('PKGDEST')
1425 pkgdatadir = d.getVar('PKGDESTWORK') 1425 pkgdatadir = d.getVar('PKGDESTWORK')
1426 1426
1427 data_file = pkgdatadir + d.expand("/${PN}" ) 1427 data_file = pkgdatadir + d.expand("/${PN}")
1428 f = open(data_file, 'w') 1428 with open(data_file, 'w') as fd:
1429 f.write("PACKAGES: %s\n" % packages) 1429 fd.write("PACKAGES: %s\n" % packages)
1430 f.close()
1431 1430
1432 pn = d.getVar('PN') 1431 pn = d.getVar('PN')
1433 global_variants = (d.getVar('MULTILIB_GLOBAL_VARIANTS') or "").split() 1432 global_variants = (d.getVar('MULTILIB_GLOBAL_VARIANTS') or "").split()
@@ -1778,21 +1777,20 @@ python package_do_shlibs() {
1778 bb.note("Renaming %s to %s" % (old, new)) 1777 bb.note("Renaming %s to %s" % (old, new))
1779 os.rename(old, new) 1778 os.rename(old, new)
1780 pkgfiles[pkg].remove(old) 1779 pkgfiles[pkg].remove(old)
1781 1780
1782 shlibs_file = os.path.join(shlibswork_dir, pkg + ".list") 1781 shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
1783 if len(sonames): 1782 if len(sonames):
1784 fd = open(shlibs_file, 'w') 1783 with open(shlibs_file, 'w') as fd:
1785 for s in sonames: 1784 for s in sonames:
1786 if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]: 1785 if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]:
1787 (old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]] 1786 (old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]]
1788 if old_pkg != pkg: 1787 if old_pkg != pkg:
1789 bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver)) 1788 bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver))
1790 bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0])) 1789 bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0]))
1791 fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n') 1790 fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n')
1792 if s[0] not in shlib_provider: 1791 if s[0] not in shlib_provider:
1793 shlib_provider[s[0]] = {} 1792 shlib_provider[s[0]] = {}
1794 shlib_provider[s[0]][s[1]] = (pkg, pkgver) 1793 shlib_provider[s[0]][s[1]] = (pkg, pkgver)
1795 fd.close()
1796 if needs_ldconfig and use_ldconfig: 1794 if needs_ldconfig and use_ldconfig:
1797 bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg) 1795 bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg)
1798 postinst = d.getVar('pkg_postinst_%s' % pkg) 1796 postinst = d.getVar('pkg_postinst_%s' % pkg)
@@ -1864,11 +1862,10 @@ python package_do_shlibs() {
1864 deps_file = os.path.join(pkgdest, pkg + ".shlibdeps") 1862 deps_file = os.path.join(pkgdest, pkg + ".shlibdeps")
1865 if os.path.exists(deps_file): 1863 if os.path.exists(deps_file):
1866 os.remove(deps_file) 1864 os.remove(deps_file)
1867 if len(deps): 1865 if deps:
1868 fd = open(deps_file, 'w') 1866 with open(deps_file, 'w') as fd:
1869 for dep in sorted(deps): 1867 for dep in sorted(deps):
1870 fd.write(dep + '\n') 1868 fd.write(dep + '\n')
1871 fd.close()
1872} 1869}
1873 1870
1874python package_do_pkgconfig () { 1871python package_do_pkgconfig () {
@@ -1898,9 +1895,8 @@ python package_do_pkgconfig () {
1898 pkgconfig_provided[pkg].append(name) 1895 pkgconfig_provided[pkg].append(name)
1899 if not os.access(file, os.R_OK): 1896 if not os.access(file, os.R_OK):
1900 continue 1897 continue
1901 f = open(file, 'r') 1898 with open(file, 'r') as f:
1902 lines = f.readlines() 1899 lines = f.readlines()
1903 f.close()
1904 for l in lines: 1900 for l in lines:
1905 m = var_re.match(l) 1901 m = var_re.match(l)
1906 if m: 1902 if m:
@@ -1918,10 +1914,9 @@ python package_do_pkgconfig () {
1918 for pkg in packages.split(): 1914 for pkg in packages.split():
1919 pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist") 1915 pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")
1920 if pkgconfig_provided[pkg] != []: 1916 if pkgconfig_provided[pkg] != []:
1921 f = open(pkgs_file, 'w') 1917 with open(pkgs_file, 'w') as f:
1922 for p in pkgconfig_provided[pkg]: 1918 for p in pkgconfig_provided[pkg]:
1923 f.write('%s\n' % p) 1919 f.write('%s\n' % p)
1924 f.close()
1925 1920
1926 # Go from least to most specific since the last one found wins 1921 # Go from least to most specific since the last one found wins
1927 for dir in reversed(shlibs_dirs): 1922 for dir in reversed(shlibs_dirs):
@@ -1931,9 +1926,8 @@ python package_do_pkgconfig () {
1931 m = re.match(r'^(.*)\.pclist$', file) 1926 m = re.match(r'^(.*)\.pclist$', file)
1932 if m: 1927 if m:
1933 pkg = m.group(1) 1928 pkg = m.group(1)
1934 fd = open(os.path.join(dir, file)) 1929 with open(os.path.join(dir, file)) as fd:
1935 lines = fd.readlines() 1930 lines = fd.readlines()
1936 fd.close()
1937 pkgconfig_provided[pkg] = [] 1931 pkgconfig_provided[pkg] = []
1938 for l in lines: 1932 for l in lines:
1939 pkgconfig_provided[pkg].append(l.rstrip()) 1933 pkgconfig_provided[pkg].append(l.rstrip())
@@ -1951,10 +1945,9 @@ python package_do_pkgconfig () {
1951 bb.note("couldn't find pkgconfig module '%s' in any package" % n) 1945 bb.note("couldn't find pkgconfig module '%s' in any package" % n)
1952 deps_file = os.path.join(pkgdest, pkg + ".pcdeps") 1946 deps_file = os.path.join(pkgdest, pkg + ".pcdeps")
1953 if len(deps): 1947 if len(deps):
1954 fd = open(deps_file, 'w') 1948 with open(deps_file, 'w') as fd:
1955 for dep in deps: 1949 for dep in deps:
1956 fd.write(dep + '\n') 1950 fd.write(dep + '\n')
1957 fd.close()
1958} 1951}
1959 1952
1960def read_libdep_files(d): 1953def read_libdep_files(d):
@@ -1965,9 +1958,8 @@ def read_libdep_files(d):
1965 for extension in ".shlibdeps", ".pcdeps", ".clilibdeps": 1958 for extension in ".shlibdeps", ".pcdeps", ".clilibdeps":
1966 depsfile = d.expand("${PKGDEST}/" + pkg + extension) 1959 depsfile = d.expand("${PKGDEST}/" + pkg + extension)
1967 if os.access(depsfile, os.R_OK): 1960 if os.access(depsfile, os.R_OK):
1968 fd = open(depsfile) 1961 with open(depsfile) as fd:
1969 lines = fd.readlines() 1962 lines = fd.readlines()
1970 fd.close()
1971 for l in lines: 1963 for l in lines:
1972 l.rstrip() 1964 l.rstrip()
1973 deps = bb.utils.explode_dep_versions2(l) 1965 deps = bb.utils.explode_dep_versions2(l)