apt-native: fix the creation of apt.conf.sample
cover apt-native: fix the creation of apt.conf.sample
The following changes since commit 7e1f8faad0c4b6f490c26f87acc698dd6e002b15:
perl: Remove bashism from perl-tests.inc (2013-01-07 22:37:37 +0000)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib hongxu/apt-native
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/apt-native
Hongxu Jia (1):
apt-native: fix the creation of apt.conf.sample
meta/recipes-devtools/apt/apt-native.inc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
Signature · 1 line
1.7.10.4
PATCH 1/1 apt-native: fix the creation of apt.conf.sample
The file of apt.conf.sample is kept in outdir, and outdir is assigned by "os.path.join" with the params of ${D}, ${sysconfdir} and "apt". But ${sysconfdir} is an absolute dir and that is not allowed by "os.path.join".
The following is the help on function os.path.join(a, *p):
Join two or more pathname components, inserting '/' as needed. If any component is an absolute path, all previous path components will be discarded.
So remove "/" in ${sysconfdir} to create "apt.conf.sample" if it doesn't exist, not by the existance of prefix dir.
[YOCTO #3677]
--- meta/recipes-devtools/apt/apt-native.inc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
meta/recipes-devtools/apt/apt-native.inc +4 -2
@@ -20,11 +20,13 @@ python do_install_config () { data = d.expand(data) - outdir = os.path.join(d.getVar('D', True), d.getVar('sysconfdir', True), 'apt') + # os.path.join does not allow sysconfdir to be a absolute dir + outdir = os.path.join(d.getVar('D', True), d.getVar('sysconfdir', True)[1:], 'apt') if not os.path.exists(outdir): os.makedirs(outdir) - outpath = os.path.join(outdir, 'apt.conf.sample') + outpath = os.path.join(outdir, 'apt.conf.sample') + if not os.path.exists(outpath): outfile = file(outpath, 'w') outfile.write(data) outfile.close()
Signature · 1 line
1.7.10.4
Quoted 11 lines · Hongxu Jia
The file of apt.conf.sample is kept in outdir, and outdir is assigned by "os.path.join" with the params of ${D}, ${sysconfdir} and "apt". But ${sysconfdir} is an absolute dir and that is not allowed by "os.path.join".
The following is the help on function
os.path.join(a, *p):
Join two or more pathname components, inserting '/' as needed. If any component is an absolute path, all previous path components will be discarded.So remove "/" in ${sysconfdir} to create "apt.conf.sample" if it doesn't exist, not by the existance of prefix dir.
Use oe.path.join() instead which doesn't have this problem iirc.
Cheers,
Richard