From bcaec55e4e64f6bca21cf0e50eaec787bd29b735 Mon Sep 17 00:00:00 2001 From: Henryk Ploetz Date: Tue, 2 Oct 2007 18:51:53 +0000 Subject: mono 1.2.5.1: added mono.bbclass, many changes required for packaging New file: packages/mono/mono-mcs-intermediate_1.2.5.1.bb Compiles mono in native mode with standard prefix, then tars up the resulting tree and puts the tarfile into staging New file: packages/mono/mono_files.py Automatically generated using collect-path.py (attached to this mail) and contains a list that maps file patterns to package names (and contained assemblies, see below). New file: classes/mono.bbclass Has a helper function for the list that maps file patterns to package names and assemblies (see below). Also has a function mono_do_clilibs and inserts that function into PACKAGEFUNCS. This function calls mono_find_provides_and_requires which finds out (through calls to monodis --assembly and monodis --assemblyref) which assemblies are provided and required by a particular package. mono_do_clilibs then puts the information about provided assemblies into ${STAGING_DIR}/clilibs/${packagename}.list and information about the required packages into ${PKGDEST}/{packagename}.clilibdeps where it will later be picked up by the modified read_shlibdeps. Originally I had dependency resolution through the partial list in mono_files.py but obviously this doens't scale, so I implemented the new method with mono_do_clilibs. The benefit is now that I don't really need the extra information in mono_files.py anymore and can in principle get rid of mono_get_file_table and related code. Instead it should be possible to modify collect-paths.py to output bitbake .inc code (e.g. PACKAGES = "..." and a whole lot of FILES_... = "...") instead of python code. There's still the minor problem of how to handle the .mdb files, that's why I didn't implement it yet but instead opted for an approach that I knew would work. (Debian just puts the .mdb files into the individual packages, while I would argue that they do belong into corresponding -dbg packages.) Modified file: classes/package.bbclass In read_shlibdeps I folded the two identical code blocks dealing with *.shlibdeps and *.pcdeps into one and added *.clilibdeps (generated by mono_do_clilibs above). Modified file: packages/mono/mono_1.2.5.1.bb Add the mono-mcs-intermediate workaround. Add a whole lot of python code in populate_packages_prepend in order to split up the packages based on information from mono_files.py (via mono.bbclass' mono_get_file_table). As I said above a lot of this code can hopefully be replaced in the future. --- classes/mono.bbclass | 214 ++++++++++++++++++++++++++++++++++++++++++++++++ classes/package.bbclass | 22 ++--- 2 files changed, 222 insertions(+), 14 deletions(-) create mode 100644 classes/mono.bbclass (limited to 'classes') diff --git a/classes/mono.bbclass b/classes/mono.bbclass new file mode 100644 index 0000000000..dcf5f7272c --- /dev/null +++ b/classes/mono.bbclass @@ -0,0 +1,214 @@ +def mono_get_file_table(packageversion, d): + # The packageversion is currently ignored, but might be used in the future + # if more than one mono version is available and different versions + # need to use different tables + + import bb, sys, os, glob, commands + curdir = os.path.dirname( bb.data.getVar('FILE', d, 1) ) + if curdir not in sys.path: sys.path.append( curdir ) + from mono_files import debian_mono_file_table + + # mono-jay is not being built (for all platforms at least) + IGNORE = ("mono-jay", ) + file_table = [ + # Standard package + {"name": "mono-doc"}, + + # Virtual packages + {"name": "mono"}, + {"name": "mono-runtime"}, + + # Not provided by Debian: + {"name": "libnunit2.2-cil", + "patterns": [ + "/usr/lib/mono/gac/nunit.*/2.2.*", + "/usr/lib/mono/1.0/nunit.*.dll", + "/usr/lib/pkgconfig/mono-nunit.pc", + ], + "assemblies": [ + ("nunit.core", "2.2.0.0"), + ("nunit.framework", "2.2.0.0"), + ("nunit.util", "2.2.0.0"), + ("nunit.mocks", "2.2.8.0"), + ], + }, + {"name": "libmono-cecil0.5-cil", + "patterns": [ + "/usr/lib/mono/gac/Mono.Cecil/0.5.*", + ], + "assemblies": [ + ("Mono.Cecil", "0.5.*"), + ], + }, + {"name": "libmono-db2-1.0-cil", + "patterns": [ + "/usr/lib/mono/gac/IBM.Data.DB2/1.0*", + "/usr/lib/mono/1.0/IBM.Data.DB2.dll", + ], + "assemblies": [ + ("IBM.Data.DB2", "1.0*"), + ], + }, + ] + debian_mono_file_table + + file_table = [e for e in file_table + if not (e.has_key("name") and e["name"] in IGNORE)] + + return file_table + +def mono_find_provides_and_requires(files, d): + provides = [] + requires = [] + + import bb, os, commands + + pathprefix = "export PATH=%s; export LANG=; export LC_ALL=; " % bb.data.getVar('PATH', d, 1) + for filename in files: + if not filename.endswith(".dll") and not filename.endswith(".exe"): + continue + if not os.path.isfile(filename) or os.path.islink(filename): + continue + + ## Provides + name, version = None, None + + ret, result = commands.getstatusoutput("%smonodis --assembly '%s'" % (pathprefix, filename)) + if ret: + bb.error("raw_provides_and_requires: monodis --assembly '%s' failed, dependency information will be inaccurate" % filename) + continue + for line in result.splitlines(): + if not ":" in line: continue + key, value = line.split(":", 1) + if key.strip() == "Name": + name = value.strip() + elif key.strip() == "Version": + version = value.strip() + if name is not None and version is not None: + if (name, version) not in provides: + provides.append( (name, version) ) + + ## Requires + name, version = None, None + ret, result = commands.getstatusoutput("%smonodis --assemblyref '%s'" % (pathprefix, filename)) + if ret: + bb.error("raw_provides_and_requires: monodis --assemblyref '%s' failed, dependency information will be inaccurate" % filename) + continue + for line in result.splitlines(): + if not "=" in line: continue + key, value = line.split("=", 1) + if ":" in key and key.split(":",1)[1].strip() == "Version": + version = value.strip() + elif key.strip() == "Name": + name = value.strip() + if name is not None and version is not None: + if (name, version) not in requires: + requires.append( (name, version) ) + name, version = None, None + + # Remove everything from requires that's already in provides as it's not actually required + # to be provided externally + requires = [e for e in requires if not e in provides] + return provides, requires + +python mono_do_clilibs() { + import bb, os, re, os.path + + exclude_clilibs = bb.data.getVar('EXCLUDE_FROM_CLILIBS', d, 0) + if exclude_clilibs: + bb.note("not generating clilibs") + return + + lib_re = re.compile("^lib.*\.so") + libdir_re = re.compile(".*/lib$") + + packages = bb.data.getVar('PACKAGES', d, 1) + + workdir = bb.data.getVar('WORKDIR', d, 1) + if not workdir: + bb.error("WORKDIR not defined") + return + + staging = bb.data.getVar('STAGING_DIR', d, 1) + if not staging: + bb.error("STAGING_DIR not defined") + return + + pkgdest = bb.data.getVar('PKGDEST', d, 1) + + clilibs_dir = os.path.join(staging, "clilibs") + bb.mkdirhier(clilibs_dir) + + provides, requires = {}, {} + private_libs = bb.data.getVar('PRIVATE_CLILIBS', d, 1) + for pkg in packages.split(): + bb.debug(2, "calculating clilib provides for %s" % pkg) + + files_to_check = [] + top = os.path.join(pkgdest, pkg) + for root, dirs, files in os.walk(top): + for file in files: + path = os.path.join(root, file) + if file.endswith(".exe") or file.endswith(".dll"): + files_to_check.append( path ) + provides[pkg], requires[pkg] = mono_find_provides_and_requires(files_to_check, d) + clilibs_file = os.path.join(clilibs_dir, pkg + ".list") + if os.path.exists(clilibs_file): + os.remove(clilibs_file) + if len(provides[pkg]) > 0: + fd = open(clilibs_file, 'w') + for s in provides[pkg]: + fd.write(" ".join(s) + '\n') + fd.close() + + clilib_provider = {} + list_re = re.compile('^(.*)\.list$') + for file in os.listdir(clilibs_dir): + m = list_re.match(file) + if m: + dep_pkg = m.group(1) + fd = open(os.path.join(clilibs_dir, file)) + lines = fd.readlines() + fd.close() + for l in lines: + clilib_provider[tuple(l.rstrip().split())] = dep_pkg + + for pkg in packages.split(): + bb.debug(2, "calculating clilib requirements for %s" % pkg) + + deps = [] + for n in requires[pkg]: + if n in clilib_provider.keys(): + dep_pkg = clilib_provider[n] + + if dep_pkg == pkg: + continue + + if not dep_pkg in deps: + deps.append(dep_pkg) + else: + bb.note("Couldn't find CLI library provider for %s" % n) + + deps_file = os.path.join(pkgdest, pkg + ".clilibdeps") + if os.path.exists(deps_file): + os.remove(deps_file) + if len(deps) > 0: + fd = open(deps_file, 'w') + for dep in deps: + fd.write(dep + '\n') + fd.close() +} + +python() { + # Insert mono_do_clilibs into PACKAGEFUNCS + # Needs to be called after populate_packages, but before read_shlibdeps + PACKAGEFUNCS = bb.data.getVar("PACKAGEFUNCS", d, 1) + if PACKAGEFUNCS: + PACKAGEFUNCS = PACKAGEFUNCS.split() + if "read_shlibdeps" in PACKAGEFUNCS: + i = PACKAGEFUNCS.index("read_shlibdeps") + PACKAGEFUNCS.insert(i, "mono_do_clilibs") + elif "populate_packages" in PACKAGEFUNCS: + i = PACKAGEFUNCS.index("populate_packages") + PACKAGEFUNCS.insert(i+1, "mono_do_clilibs") + bb.data.setVar("PACKAGEFUNCS", " ".join(PACKAGEFUNCS), d) +} diff --git a/classes/package.bbclass b/classes/package.bbclass index 516cae823d..b114049b8e 100644 --- a/classes/package.bbclass +++ b/classes/package.bbclass @@ -793,20 +793,14 @@ python read_shlibdeps () { packages = bb.data.getVar('PACKAGES', d, 1).split() for pkg in packages: rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "") - shlibsfile = bb.data.expand("${PKGDEST}/" + pkg + ".shlibdeps", d) - if os.access(shlibsfile, os.R_OK): - fd = file(shlibsfile) - lines = fd.readlines() - fd.close() - for l in lines: - rdepends.append(l.rstrip()) - pcfile = bb.data.expand("${PKGDEST}/" + pkg + ".pcdeps", d) - if os.access(pcfile, os.R_OK): - fd = file(pcfile) - lines = fd.readlines() - fd.close() - for l in lines: - rdepends.append(l.rstrip()) + for extension in ".shlibdeps", ".pcdeps", ".clilibdeps": + depsfile = bb.data.expand("${PKGDEST}/" + pkg + extension, d) + if os.access(depsfile, os.R_OK): + fd = file(depsfile) + lines = fd.readlines() + fd.close() + for l in lines: + rdepends.append(l.rstrip()) bb.data.setVar('RDEPENDS_' + pkg, " " + " ".join(rdepends), d) } -- cgit v1.2.3 From c682389deb5384a1a18c9755376b0d255a9c3482 Mon Sep 17 00:00:00 2001 From: Henryk Ploetz Date: Wed, 3 Oct 2007 01:04:46 +0000 Subject: mono.bbclass: fix whitespace problem - fix for the problem experienced by scruggs on IRC today. There was an inconsistency in the amount and type of whitespace used in the python anonymous blocks between mono.bbclass and multimachine.bbclass. - fixed a small problem in the error output of mono_do_clilibs --- classes/mono.bbclass | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'classes') diff --git a/classes/mono.bbclass b/classes/mono.bbclass index dcf5f7272c..c50274ed0c 100644 --- a/classes/mono.bbclass +++ b/classes/mono.bbclass @@ -186,7 +186,7 @@ python mono_do_clilibs() { if not dep_pkg in deps: deps.append(dep_pkg) else: - bb.note("Couldn't find CLI library provider for %s" % n) + bb.note("Couldn't find CLI library provider for %s" % (n,)) deps_file = os.path.join(pkgdest, pkg + ".clilibdeps") if os.path.exists(deps_file): @@ -198,7 +198,8 @@ python mono_do_clilibs() { fd.close() } -python() { +def mono_after_parse(d): + import bb # Insert mono_do_clilibs into PACKAGEFUNCS # Needs to be called after populate_packages, but before read_shlibdeps PACKAGEFUNCS = bb.data.getVar("PACKAGEFUNCS", d, 1) @@ -211,4 +212,7 @@ python() { i = PACKAGEFUNCS.index("populate_packages") PACKAGEFUNCS.insert(i+1, "mono_do_clilibs") bb.data.setVar("PACKAGEFUNCS", " ".join(PACKAGEFUNCS), d) + +python () { + mono_after_parse(d) } -- cgit v1.2.3 From 8afc20e8be1f622e700f9f6a5dc3717577bc90d2 Mon Sep 17 00:00:00 2001 From: Henryk Ploetz Date: Sun, 7 Oct 2007 19:32:36 +0000 Subject: mono: clean up packaging --- classes/mono.bbclass | 58 ---------------------------------------------------- 1 file changed, 58 deletions(-) (limited to 'classes') diff --git a/classes/mono.bbclass b/classes/mono.bbclass index c50274ed0c..b7c5439b86 100644 --- a/classes/mono.bbclass +++ b/classes/mono.bbclass @@ -1,61 +1,3 @@ -def mono_get_file_table(packageversion, d): - # The packageversion is currently ignored, but might be used in the future - # if more than one mono version is available and different versions - # need to use different tables - - import bb, sys, os, glob, commands - curdir = os.path.dirname( bb.data.getVar('FILE', d, 1) ) - if curdir not in sys.path: sys.path.append( curdir ) - from mono_files import debian_mono_file_table - - # mono-jay is not being built (for all platforms at least) - IGNORE = ("mono-jay", ) - file_table = [ - # Standard package - {"name": "mono-doc"}, - - # Virtual packages - {"name": "mono"}, - {"name": "mono-runtime"}, - - # Not provided by Debian: - {"name": "libnunit2.2-cil", - "patterns": [ - "/usr/lib/mono/gac/nunit.*/2.2.*", - "/usr/lib/mono/1.0/nunit.*.dll", - "/usr/lib/pkgconfig/mono-nunit.pc", - ], - "assemblies": [ - ("nunit.core", "2.2.0.0"), - ("nunit.framework", "2.2.0.0"), - ("nunit.util", "2.2.0.0"), - ("nunit.mocks", "2.2.8.0"), - ], - }, - {"name": "libmono-cecil0.5-cil", - "patterns": [ - "/usr/lib/mono/gac/Mono.Cecil/0.5.*", - ], - "assemblies": [ - ("Mono.Cecil", "0.5.*"), - ], - }, - {"name": "libmono-db2-1.0-cil", - "patterns": [ - "/usr/lib/mono/gac/IBM.Data.DB2/1.0*", - "/usr/lib/mono/1.0/IBM.Data.DB2.dll", - ], - "assemblies": [ - ("IBM.Data.DB2", "1.0*"), - ], - }, - ] + debian_mono_file_table - - file_table = [e for e in file_table - if not (e.has_key("name") and e["name"] in IGNORE)] - - return file_table - def mono_find_provides_and_requires(files, d): provides = [] requires = [] -- cgit v1.2.3 From e04cf6dc16359fd97bf24585f29eb578fad41fc1 Mon Sep 17 00:00:00 2001 From: Graeme Gregory Date: Mon, 8 Oct 2007 16:47:50 +0000 Subject: classes/insane.bbclass : x64_64 becomes x86_64 which is more useful --- classes/insane.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/insane.bbclass b/classes/insane.bbclass index 83f8c43bba..3fb2d04a81 100644 --- a/classes/insane.bbclass +++ b/classes/insane.bbclass @@ -42,7 +42,7 @@ def package_qa_get_machine_dict(): "i486": ( 3, 0, 0, True, True), "i586": ( 3, 0, 0, True, True), "i686": ( 3, 0, 0, True, True), - "x64_64": (62, 0, 0, True, False), + "x86_64": (62, 0, 0, True, False), "ia64": (50, 0, 0, True, False), "alpha": (36902, 0, 0, True, False), "hppa": (15, 3, 0, False, True), -- cgit v1.2.3 From 44d93f432e5c3aff0fb7e31c508e8100b640365e Mon Sep 17 00:00:00 2001 From: Henryk Ploetz Date: Wed, 17 Oct 2007 08:16:52 +0000 Subject: mono.bbclass: Stage all .dll files that have been packaged so that other packages can compile against them --- classes/mono.bbclass | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'classes') diff --git a/classes/mono.bbclass b/classes/mono.bbclass index b7c5439b86..ccb16d9acc 100644 --- a/classes/mono.bbclass +++ b/classes/mono.bbclass @@ -140,6 +140,23 @@ python mono_do_clilibs() { fd.close() } +do_mono_stage() { + if [ "${INHIBIT_MONO_STAGE}" = "1" ] + then + return + fi + + for package in ${PACKAGES}; do + if [ -d "${PKGDEST}/${package}/${libdir}" ]; then + cd "${PKGDEST}/${package}/${libdir}" + for file in `find . -iname "*.dll"`; do + cp --parent -fpPR "${file}" "${STAGING_LIBDIR}/" + done + fi + done +} +addtask mono_stage after do_package before do_populate_staging + def mono_after_parse(d): import bb # Insert mono_do_clilibs into PACKAGEFUNCS -- cgit v1.2.3 From 4ebaf8c3c640afd1fdd00024c7ddfe8012b56571 Mon Sep 17 00:00:00 2001 From: Marcin Juszkiewicz Date: Wed, 17 Oct 2007 10:34:00 +0000 Subject: base.bbclass: add checksums.ini generator (from Poky) If file is fetched via HTTP or FTP and we do not have its checksum in metadata (conf/checksums.ini) then we generate checksums into TMPDIR/checksums.ini file. Content of that file can be then added into metadata one. --- classes/base.bbclass | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'classes') diff --git a/classes/base.bbclass b/classes/base.bbclass index 999d409914..2cf205fbe9 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -22,6 +22,7 @@ def base_chk_load_parser(config_path): def base_chk_file(parser, pn, pv, src_uri, localpath, data): import os, bb + no_checksum = False # Try PN-PV-SRC_URI first and then try PN-SRC_URI # we rely on the get method to create errors pn_pv_src = "%s-%s-%s" % (pn,pv,src_uri) @@ -36,8 +37,7 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data): md5 = parser.get(src_uri, "md5") sha256 = parser.get(src_uri, "sha256") else: - return False - #raise Exception("Can not find a section for '%s' '%s' and '%s'" % (pn,pv,src_uri)) + no_checksum = True # md5 and sha256 should be valid now if not os.path.exists(localpath): @@ -60,6 +60,19 @@ def base_chk_file(parser, pn, pv, src_uri, localpath, data): except OSError: raise Exception("Executing shasum failed") + if no_checksum == True: # we do not have conf/checksums.ini entry + try: + file = open("%s/checksums.ini" % bb.data.getVar("TMPDIR", data, 1), "a") + except: + return False + + if not file: + raise Exception("Creating checksums.ini failed") + + file.write("[%s]\nmd5=%s\nsha256=%s\n\n" % (src_uri, md5data, shadata)) + file.close() + return False + if not md5 == md5data: bb.note("The MD5Sums did not match. Wanted: '%s' and Got: '%s'" % (md5,md5data)) raise Exception("MD5 Sums do not match. Wanted: '%s' Got: '%s'" % (md5, md5data)) @@ -485,11 +498,9 @@ python base_do_fetch() { (type,host,path,_,_,_) = bb.decodeurl(url) uri = "%s://%s%s" % (type,host,path) try: - if not base_chk_file(parser, pn, pv,uri, localpath, d): - if type != "file": + if type == "http" or type == "https" or type == "ftp" or type == "ftps": + if not base_chk_file(parser, pn, pv,uri, localpath, d): bb.note("%s-%s: %s has no entry in conf/checksums.ini, not checking URI" % (pn,pv,uri)) - else: - bb.debug("%s-%s: %s has no entry in conf/checksums.ini, not checking URI" % (pn,pv,uri)) except Exception: raise bb.build.FuncFailed("Checksum of '%s' failed" % uri) } -- cgit v1.2.3 From c90bfe0c339cb26d3aaf1843c940223a3c76a12f Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 17 Oct 2007 11:12:55 +0000 Subject: rootfs_ipkbbclass: fix hardcodes /usr/bin -> ${bindir} /usr/lib -> ${libdir} --- classes/rootfs_ipk.bbclass | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'classes') diff --git a/classes/rootfs_ipk.bbclass b/classes/rootfs_ipk.bbclass index 6babee30a2..c6e2099e7c 100644 --- a/classes/rootfs_ipk.bbclass +++ b/classes/rootfs_ipk.bbclass @@ -39,8 +39,8 @@ fakeroot rootfs_ipk_do_rootfs () { export D=${IMAGE_ROOTFS} export OFFLINE_ROOT=${IMAGE_ROOTFS} export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} - mkdir -p ${IMAGE_ROOTFS}/etc/ipkg/ - grep "^arch" ${IPKGCONF_TARGET} >${IMAGE_ROOTFS}/etc/ipkg/arch.conf + mkdir -p ${IMAGE_ROOTFS}${sysconfdir}/ipkg/ + grep "^arch" ${IPKGCONF_TARGET} >${IMAGE_ROOTFS}${sysconfdir}/ipkg/arch.conf for i in ${IMAGE_ROOTFS}${libdir}/ipkg/info/*.preinst; do if [ -f $i ] && ! sh $i; then @@ -82,5 +82,5 @@ rootfs_ipk_log_check() { } remove_packaging_data_files() { - rm -rf ${IMAGE_ROOTFS}/usr/lib/ipkg/ + rm -rf ${IMAGE_ROOTFS}${libdir}/ipkg/ } -- cgit v1.2.3 From 132f9ac95905b0e66157a7f1f28ebb8908d10fab Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 17 Oct 2007 11:15:16 +0000 Subject: rootfs_deb.bbclass: fix hardcodes /usr/bin -> ${bindir} /usr/lib -> ${libdir} --- classes/rootfs_deb.bbclass | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'classes') diff --git a/classes/rootfs_deb.bbclass b/classes/rootfs_deb.bbclass index d3e5832251..5571f699e7 100644 --- a/classes/rootfs_deb.bbclass +++ b/classes/rootfs_deb.bbclass @@ -10,8 +10,8 @@ fakeroot rootfs_deb_do_rootfs () { mkdir -p ${IMAGE_ROOTFS}/var/dpkg/info mkdir -p ${IMAGE_ROOTFS}/var/dpkg/updates - rm -f ${STAGING_DIR}/etc/apt/sources.list.rev - rm -f ${STAGING_DIR}/etc/apt/preferences + rm -f ${STAGING_DIR}${sysconfdir}/apt/sources.list.rev + rm -f ${STAGING_DIR}${sysconfdir}/apt/preferences > ${IMAGE_ROOTFS}/var/dpkg/status > ${IMAGE_ROOTFS}/var/dpkg/available # > ${STAGING_DIR}/var/dpkg/status @@ -28,21 +28,21 @@ fakeroot rootfs_deb_do_rootfs () { apt-ftparchive packages . | bzip2 > Packages.bz2 echo "Label: $arch" > Release - echo "deb file:${DEPLOY_DIR_DEB}/$arch/ ./" >> ${STAGING_DIR}/etc/apt/sources.list.rev + echo "deb file:${DEPLOY_DIR_DEB}/$arch/ ./" >> ${STAGING_DIR}${sysconfdir}/apt/sources.list.rev (echo "Package: *" echo "Pin: release l=$arch" echo "Pin-Priority: $((800 + $priority))" - echo) >> ${STAGING_DIR}/etc/apt/preferences + echo) >> ${STAGING_DIR}${sysconfdir}/apt/preferences priority=$(expr $priority + 5) done - tac ${STAGING_DIR}/etc/apt/sources.list.rev > ${STAGING_DIR}/etc/apt/sources.list + tac ${STAGING_DIR}${sysconfdir}/apt/sources.list.rev > ${STAGING_DIR}${sysconfdir}/apt/sources.list - cat "${STAGING_DIR}/etc/apt/apt.conf.sample" \ + cat "${STAGING_DIR}${sysconfdir}/apt/apt.conf.sample" \ | sed -e 's#Architecture ".*";#Architecture "${TARGET_ARCH}";#' \ - > "${STAGING_DIR}/etc/apt/apt-rootfs.conf" + > "${STAGING_DIR}${sysconfdir}/apt/apt-rootfs.conf" - export APT_CONFIG="${STAGING_DIR}/etc/apt/apt-rootfs.conf" + export APT_CONFIG="${STAGING_DIR}${sysconfdir}/apt/apt-rootfs.conf" export D=${IMAGE_ROOTFS} export OFFLINE_ROOT=${IMAGE_ROOTFS} export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} @@ -112,17 +112,17 @@ fakeroot rootfs_deb_do_rootfs () { if [ -e ${IMAGE_ROOTFS}/usr/dpkg/alternatives ]; then rmdir ${IMAGE_ROOTFS}/usr/dpkg/alternatives fi - if [ ! -e ${IMAGE_ROOTFS}/usr/lib/ipkg ] ; then - mkdir -p ${IMAGE_ROOTFS}/usr/lib/ipkg + if [ ! -e ${IMAGE_ROOTFS}${libdir}/ipkg ] ; then + mkdir -p ${IMAGE_ROOTFS}${libdir}/ipkg fi - if [ ! -e ${IMAGE_ROOTFS}/etc/ipkg ] ; then - mkdir -p ${IMAGE_ROOTFS}/etc/ipkg + if [ ! -e ${IMAGE_ROOTFS}${sysconfdir}/ipkg ] ; then + mkdir -p ${IMAGE_ROOTFS}${sysconfdir}/ipkg fi - ln -sf /usr/lib/ipkg/alternatives ${IMAGE_ROOTFS}/usr/dpkg/alternatives - ln -sf /usr/dpkg/info ${IMAGE_ROOTFS}/usr/lib/ipkg/info - ln -sf /usr/dpkg/status ${IMAGE_ROOTFS}/usr/lib/ipkg/status + ln -sf ${libdir}/ipkg/alternatives ${IMAGE_ROOTFS}/usr/dpkg/alternatives + ln -sf /usr/dpkg/info ${IMAGE_ROOTFS}${libdir}/ipkg/info + ln -sf /usr/dpkg/status ${IMAGE_ROOTFS}${libdir}/ipkg/status ${ROOTFS_POSTPROCESS_COMMAND} @@ -150,6 +150,6 @@ rootfs_deb_log_check() { } remove_packaging_data_files() { - rm -rf ${IMAGE_ROOTFS}/usr/lib/ipkg/ + rm -rf ${IMAGE_ROOTFS}${libdir}/ipkg/ rm -rf ${IMAGE_ROOTFS}/usr/dpkg/ } -- cgit v1.2.3 From ff467f43228c72b73da32a22a384be02401c8771 Mon Sep 17 00:00:00 2001 From: Henryk Ploetz Date: Wed, 17 Oct 2007 13:21:37 +0000 Subject: classes/angstrom-mirrors.bbclass: fix mirror regex * fixes the case where original https urls would end up as https://www.angstrom-distribution... for mirror url --- classes/angstrom-mirrors.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/angstrom-mirrors.bbclass b/classes/angstrom-mirrors.bbclass index cd27a8545b..e44a78c983 100644 --- a/classes/angstrom-mirrors.bbclass +++ b/classes/angstrom-mirrors.bbclass @@ -1,4 +1,4 @@ MIRRORS_append () { ftp://.*/.*/ http://www.angstrom-distribution.org/unstable/sources/ -http://.*/.*/ http://www.angstrom-distribution.org/unstable/sources/ +https?$://.*/.*/ http://www.angstrom-distribution.org/unstable/sources/ } -- cgit v1.2.3 From deab147660aefcbb318023c8236188c764b90665 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 17 Oct 2007 18:25:14 +0000 Subject: sdk.bbclass: package more debug files --- classes/sdk.bbclass | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'classes') diff --git a/classes/sdk.bbclass b/classes/sdk.bbclass index 8067798000..441da77bd0 100644 --- a/classes/sdk.bbclass +++ b/classes/sdk.bbclass @@ -21,6 +21,7 @@ exec_prefix = "${prefix}" base_prefix = "${exec_prefix}" FILES_${PN} = "${prefix}" -FILES_${PN}-dbg += "${prefix}/bin/.debug \ +FILES_${PN}-dbg += "${prefix}/.debug \ + ${prefix}/bin/.debug \ ${prefix}/sbin/.debug \ " -- cgit v1.2.3