aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/image.bbclass (renamed from meta/classes/image_ipk.bbclass)26
-rw-r--r--meta/classes/multimachine.bbclass2
-rw-r--r--meta/classes/package_deb.bbclass236
-rw-r--r--meta/classes/package_ipk.bbclass6
-rw-r--r--meta/classes/package_rpm.bbclass1
-rw-r--r--meta/classes/package_tar.bbclass1
-rw-r--r--meta/classes/rootfs_deb.bbclass130
-rw-r--r--meta/classes/rootfs_ipk.bbclass7
-rw-r--r--meta/conf/bitbake.conf3
-rw-r--r--meta/conf/documentation.conf4
-rw-r--r--meta/conf/machine/akita.conf2
-rw-r--r--meta/conf/machine/cmx270.conf2
-rw-r--r--meta/conf/machine/include/ixp4xx.conf10
-rw-r--r--meta/conf/machine/include/tune-iwmmxt.conf2
-rw-r--r--meta/conf/machine/include/zaurus-clamshell.conf2
-rw-r--r--meta/conf/machine/ipaq-pxa270.conf2
-rw-r--r--meta/conf/machine/nokia770.conf2
-rw-r--r--meta/conf/machine/qemuarm.conf2
-rw-r--r--meta/conf/machine/qemux86.conf2
-rw-r--r--meta/conf/machine/spitz.conf2
-rw-r--r--meta/packages/apt/apt-0.6.45exp2/noconfigure.patch35
-rw-r--r--meta/packages/apt/apt-native.inc56
-rw-r--r--meta/packages/apt/apt-native_0.6.45exp2.bb3
-rw-r--r--meta/packages/apt/files/apt.conf16
-rw-r--r--meta/packages/dpkg/dpkg-native_1.13.22.bb3
-rw-r--r--meta/packages/dpkg/dpkg.inc28
-rw-r--r--meta/packages/dpkg/dpkg_1.13.22.bb5
-rw-r--r--meta/packages/dpkg/files/nochroot.patch18
-rw-r--r--meta/packages/dpkg/files/noupdalt.patch16
-rw-r--r--meta/packages/glibc/glibc-package.bbclass4
-rw-r--r--meta/packages/images/oh-image-base.bb4
-rw-r--r--meta/packages/images/oh-image-core.bb4
-rw-r--r--meta/packages/images/oh-image-pda.bb4
-rw-r--r--meta/packages/images/oh-image-sdk.bb4
-rw-r--r--meta/packages/ipkg/files/noupdalt.patch15
-rw-r--r--meta/packages/ipkg/ipkg-native.inc2
-rw-r--r--meta/packages/ipkg/ipkg.inc4
-rw-r--r--meta/packages/ipkg/ipkg_0.99.154.bb2
-rw-r--r--meta/packages/ncurses/ncurses.inc4
-rw-r--r--meta/packages/sysfsutils/sysfsutils_2.0.0.bb4
-rw-r--r--meta/packages/tasks/task-oh.bb4
-rw-r--r--meta/packages/update-alternatives/update-alternatives-cworth-native_0.99.154.bb11
-rw-r--r--meta/packages/update-alternatives/update-alternatives-cworth.inc6
-rw-r--r--meta/packages/update-alternatives/update-alternatives-cworth_0.99.154.bb11
-rw-r--r--meta/packages/update-alternatives/update-alternatives-dpkg-native_1.13.22.bb14
-rw-r--r--meta/packages/update-alternatives/update-alternatives-dpkg.inc20
-rw-r--r--meta/packages/update-alternatives/update-alternatives-dpkg_1.13.22.bb12
-rwxr-xr-xmeta/packages/web/web_svn.bb1
-rw-r--r--meta/packages/xorg-lib/libx11_X11R7.1-1.0.1.bb2
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive/xfbdev-fb-opt.patch36
-rw-r--r--meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb3
51 files changed, 679 insertions, 116 deletions
diff --git a/meta/classes/image_ipk.bbclass b/meta/classes/image.bbclass
index d5f21c5809..e995265244 100644
--- a/meta/classes/image_ipk.bbclass
+++ b/meta/classes/image.bbclass
@@ -1,4 +1,4 @@
-inherit rootfs_ipk
+inherit rootfs_${IMAGE_PKGTYPE}
# We need to recursively follow RDEPENDS and RRECOMMENDS for images
BUILD_ALL_DEPS = "1"
@@ -37,12 +37,8 @@ fakeroot do_rootfs () {
makedevs -r ${IMAGE_ROOTFS} -D ${IMAGE_DEVICE_TABLE}
fi
- real_do_rootfs
+ rootfs_${IMAGE_PKGTYPE}_do_rootfs
- insert_feed_uris
-
- rm -f ${IMAGE_ROOTFS}${libdir}/ipkg/lists/oe
-
${IMAGE_PREPROCESS_COMMAND}
export TOPDIR=${TOPDIR}
@@ -60,21 +56,3 @@ fakeroot do_rootfs () {
${IMAGE_POSTPROCESS_COMMAND}
}
-
-insert_feed_uris () {
-
- echo "Building feeds for [${DISTRO}].."
-
- for line in ${FEED_URIS}
- do
- # strip leading and trailing spaces/tabs, then split into name and uri
- line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`"
- feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`"
- feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`"
-
- echo "Added $feed_name feed with URL $feed_uri"
-
- # insert new feed-sources
- echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg/${feed_name}-feed.conf
- done
-}
diff --git a/meta/classes/multimachine.bbclass b/meta/classes/multimachine.bbclass
index 01dec648c3..4359d6c669 100644
--- a/meta/classes/multimachine.bbclass
+++ b/meta/classes/multimachine.bbclass
@@ -14,7 +14,7 @@ python __anonymous () {
# We could look for != PACKAGE_ARCH here but how to choose
# if multiple differences are present?
- # Look through IPKG_ARCHS for the priority order?
+ # Look through PACKAGE_ARCHS for the priority order?
if pkgarch and pkgarch == macharch:
multiarch = macharch
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
new file mode 100644
index 0000000000..4526ac156c
--- /dev/null
+++ b/meta/classes/package_deb.bbclass
@@ -0,0 +1,236 @@
+inherit package
+DEPENDS_prepend="${@["dpkg-native ", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
+BOOTSTRAP_EXTRA_RDEPENDS += "dpkg"
+DISTRO_EXTRA_RDEPENDS += "dpkg"
+PACKAGEFUNCS += "do_package_deb"
+IMAGE_PKGTYPE ?= "deb"
+
+python package_deb_fn () {
+ from bb import data
+ bb.data.setVar('PKGFN', bb.data.getVar('PKG',d), d)
+}
+
+addtask package_deb_install
+python do_package_deb_install () {
+ import os, sys
+ pkg = bb.data.getVar('PKG', d, 1)
+ pkgfn = bb.data.getVar('PKGFN', d, 1)
+ rootfs = bb.data.getVar('IMAGE_ROOTFS', d, 1)
+ debdir = bb.data.getVar('DEPLOY_DIR_DEB', d, 1)
+ stagingdir = bb.data.getVar('STAGING_DIR', d, 1)
+ stagingbindir = bb.data.getVar('STAGING_BINDIR', d, 1)
+ tmpdir = bb.data.getVar('TMPDIR', d, 1)
+
+ if None in (pkg,pkgfn,rootfs):
+ raise bb.build.FuncFailed("missing variables (one or more of PKG, PKGFN, IMAGE_ROOTFS)")
+ try:
+ if not os.exists(rootfs):
+ os.makedirs(rootfs)
+ os.chdir(rootfs)
+ except OSError:
+ raise bb.build.FuncFailed(str(sys.exc_value))
+
+ # update packages file
+ (exitstatus, output) = commands.getstatusoutput('dpkg-scanpackages %s > %s/Packages' % (debdir, debdir))
+ if (exitstatus != 0 ):
+ raise bb.build.FuncFailed(output)
+
+ f = open(os.path.join(os.path.join(tmpdir, "stamps"), "do_packages"), "w")
+ f.close()
+
+ # NOTE: this env stuff is racy at best, we need something more capable
+ # than 'commands' for command execution, which includes manipulating the
+ # env of the fork+execve'd processs
+
+ # Set up environment
+ apt_config = os.getenv('APT_CONFIG')
+ os.putenv('APT_CONFIG', os.path.join(stagingdir, 'etc', 'apt', 'apt.conf'))
+ path = os.getenv('PATH')
+ os.putenv('PATH', '%s:%s' % (stagingbindir, os.getenv('PATH')))
+
+ # install package
+ commands.getstatusoutput('apt-get update')
+ commands.getstatusoutput('apt-get install -y %s' % pkgfn)
+
+ # revert environment
+ os.putenv('APT_CONFIG', apt_config)
+ os.putenv('PATH', path)
+}
+
+python do_package_deb () {
+ import copy # to back up env data
+ import sys
+ import re
+
+ workdir = bb.data.getVar('WORKDIR', d, 1)
+ if not workdir:
+ bb.error("WORKDIR not defined, unable to package")
+ return
+
+ import os # path manipulations
+ outdir = bb.data.getVar('DEPLOY_DIR_DEB', d, 1)
+ if not outdir:
+ bb.error("DEPLOY_DIR_DEB not defined, unable to package")
+ return
+
+ dvar = bb.data.getVar('D', d, 1)
+ if not dvar:
+ bb.error("D not defined, unable to package")
+ return
+ bb.mkdirhier(dvar)
+
+ packages = bb.data.getVar('PACKAGES', d, 1)
+ if not packages:
+ bb.debug(1, "PACKAGES not defined, nothing to package")
+ return
+
+ tmpdir = bb.data.getVar('TMPDIR', d, 1)
+ # Invalidate the packages file
+ if os.access(os.path.join(os.path.join(tmpdir, "stamps"),"do_packages"),os.R_OK):
+ os.unlink(os.path.join(os.path.join(tmpdir, "stamps"),"do_packages"))
+
+ if packages == []:
+ bb.debug(1, "No packages; nothing to do")
+ return
+
+ for pkg in packages.split():
+ localdata = bb.data.createCopy(d)
+ root = "%s/install/%s" % (workdir, pkg)
+
+ bb.data.setVar('ROOT', '', localdata)
+ bb.data.setVar('ROOT_%s' % pkg, root, localdata)
+ pkgname = bb.data.getVar('PKG_%s' % pkg, localdata, 1)
+ if not pkgname:
+ pkgname = pkg
+ bb.data.setVar('PKG', pkgname, localdata)
+
+ overrides = bb.data.getVar('OVERRIDES', localdata)
+ if not overrides:
+ raise bb.build.FuncFailed('OVERRIDES not defined')
+ overrides = bb.data.expand(overrides, localdata)
+ bb.data.setVar('OVERRIDES', overrides + ':' + pkg, localdata)
+
+ bb.data.update_data(localdata)
+ basedir = os.path.join(os.path.dirname(root))
+
+ pkgoutdir = os.path.join(outdir, bb.data.getVar('PACKAGE_ARCH', localdata, 1))
+ bb.mkdirhier(pkgoutdir)
+
+ os.chdir(root)
+ from glob import glob
+ g = glob('*')
+ try:
+ del g[g.index('DEBIAN')]
+ del g[g.index('./DEBIAN')]
+ except ValueError:
+ pass
+ if not g and not bb.data.getVar('ALLOW_EMPTY', localdata):
+ from bb import note
+ note("Not creating empty archive for %s-%s-%s" % (pkg, bb.data.getVar('PV', localdata, 1), bb.data.getVar('PR', localdata, 1)))
+ continue
+ controldir = os.path.join(root, 'DEBIAN')
+ bb.mkdirhier(controldir)
+ try:
+ ctrlfile = file(os.path.join(controldir, 'control'), 'wb')
+ # import codecs
+ # ctrlfile = codecs.open("someFile", "w", "utf-8")
+ except OSError:
+ raise bb.build.FuncFailed("unable to open control file for writing.")
+
+ fields = []
+ fields.append(["Version: %s-%s\n", ['PV', 'PR']])
+ fields.append(["Description: %s\n", ['DESCRIPTION']])
+ fields.append(["Section: %s\n", ['SECTION']])
+ fields.append(["Priority: %s\n", ['PRIORITY']])
+ fields.append(["Maintainer: %s\n", ['MAINTAINER']])
+ fields.append(["Architecture: %s\n", ['TARGET_ARCH']])
+ fields.append(["OE: %s\n", ['P']])
+ fields.append(["Homepage: %s\n", ['HOMEPAGE']])
+
+# Package, Version, Maintainer, Description - mandatory
+# Section, Priority, Essential, Architecture, Source, Depends, Pre-Depends, Recommends, Suggests, Conflicts, Replaces, Provides - Optional
+
+
+ def pullData(l, d):
+ l2 = []
+ for i in l:
+ l2.append(bb.data.getVar(i, d, 1))
+ return l2
+
+ ctrlfile.write("Package: %s\n" % pkgname)
+ # check for required fields
+ try:
+ for (c, fs) in fields:
+ for f in fs:
+ if bb.data.getVar(f, localdata) is None:
+ raise KeyError(f)
+ ctrlfile.write(unicode(c % tuple(pullData(fs, localdata))))
+ except KeyError:
+ (type, value, traceback) = sys.exc_info()
+ ctrlfile.close()
+ raise bb.build.FuncFailed("Missing field for deb generation: %s" % value)
+ # more fields
+
+ bb.build.exec_func("mapping_rename_hook", localdata)
+
+ rdepends = explode_deps(unicode(bb.data.getVar("RDEPENDS", localdata, 1) or ""))
+ rdepends = [dep for dep in rdepends if not '*' in dep]
+ rrecommends = explode_deps(unicode(bb.data.getVar("RRECOMMENDS", localdata, 1) or ""))
+ rrecommends = [rec for rec in rrecommends if not '*' in rec]
+ rsuggests = (unicode(bb.data.getVar("RSUGGESTS", localdata, 1) or "")).split()
+ rprovides = (unicode(bb.data.getVar("RPROVIDES", localdata, 1) or "")).split()
+ rreplaces = (unicode(bb.data.getVar("RREPLACES", localdata, 1) or "")).split()
+ rconflicts = (unicode(bb.data.getVar("RCONFLICTS", localdata, 1) or "")).split()
+ if rdepends:
+ ctrlfile.write(u"Depends: %s\n" % ", ".join(rdepends))
+ if rsuggests:
+ ctrlfile.write(u"Suggests: %s\n" % ", ".join(rsuggests))
+ if rrecommends:
+ ctrlfile.write(u"Recommends: %s\n" % ", ".join(rrecommends))
+ if rprovides:
+ ctrlfile.write(u"Provides: %s\n" % ", ".join(rprovides))
+ if rreplaces:
+ ctrlfile.write(u"Replaces: %s\n" % ", ".join(rreplaces))
+ if rconflicts:
+ ctrlfile.write(u"Conflicts: %s\n" % ", ".join(rconflicts))
+ ctrlfile.close()
+
+ for script in ["preinst", "postinst", "prerm", "postrm"]:
+ scriptvar = bb.data.getVar('pkg_%s' % script, localdata, 1)
+ if not scriptvar:
+ continue
+ try:
+ scriptfile = file(os.path.join(controldir, script), 'w')
+ except OSError:
+ raise bb.build.FuncFailed("unable to open %s script file for writing." % script)
+ scriptfile.write(scriptvar)
+ scriptfile.close()
+ os.chmod(os.path.join(controldir, script), 0755)
+
+ conffiles_str = bb.data.getVar("CONFFILES", localdata, 1)
+ if conffiles_str:
+ try:
+ conffiles = file(os.path.join(controldir, 'conffiles'), 'w')
+ except OSError:
+ raise bb.build.FuncFailed("unable to open conffiles for writing.")
+ for f in conffiles_str.split():
+ conffiles.write('%s\n' % f)
+ conffiles.close()
+
+ os.chdir(basedir)
+ ret = os.system("PATH=\"%s\" dpkg-deb -b %s %s" % (bb.data.getVar("PATH", localdata, 1), root, pkgoutdir))
+ if ret != 0:
+ raise bb.build.FuncFailed("dpkg-deb execution failed")
+
+ for script in ["preinst", "postinst", "prerm", "postrm", "control" ]:
+ scriptfile = os.path.join(controldir, script)
+ try:
+ os.remove(scriptfile)
+ except OSError:
+ pass
+ try:
+ os.rmdir(controldir)
+ except OSError:
+ pass
+ del localdata
+}
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index 9ae526bb3b..2847cee6e0 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -1,7 +1,9 @@
inherit package
DEPENDS_prepend="${@["ipkg-utils-native ", ""][(bb.data.getVar('PACKAGES', d, 1) == '')]}"
BOOTSTRAP_EXTRA_RDEPENDS += "ipkg-collateral ipkg ipkg-link"
+DISTRO_EXTRA_RDEPENDS += "ipkg-collateral ipkg ipkg-link"
PACKAGEFUNCS += "do_package_ipk"
+IMAGE_PKGTYPE ?= "ipk"
python package_ipk_fn () {
from bb import data
@@ -30,9 +32,9 @@ python package_ipk_install () {
# Generate ipk.conf if it or the stamp doesnt exist
conffile = os.path.join(stagingdir,"ipkg.conf")
if not os.access(conffile, os.R_OK):
- ipkg_archs = bb.data.getVar('IPKG_ARCHS',d)
+ ipkg_archs = bb.data.getVar('PACKAGE_ARCHS',d)
if ipkg_archs is None:
- bb.error("IPKG_ARCHS missing")
+ bb.error("PACKAGE_ARCHS missing")
raise FuncFailed
ipkg_archs = ipkg_archs.split()
arch_priority = 1
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index c29ab5f423..ee579bed55 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -3,6 +3,7 @@ inherit rpm_core
RPMBUILD="rpmbuild --short-circuit ${RPMOPTS}"
PACKAGEFUNCS += "do_package_rpm"
+IMAGE_PKGTYPE ?= "rpm"
python write_specfile() {
from bb import data, build
diff --git a/meta/classes/package_tar.bbclass b/meta/classes/package_tar.bbclass
index 359e35f113..d8c7919c3a 100644
--- a/meta/classes/package_tar.bbclass
+++ b/meta/classes/package_tar.bbclass
@@ -1,6 +1,7 @@
inherit package
PACKAGEFUNCS += "do_package_tar"
+IMAGE_PKGTYPE ?= "tar"
python package_tar_fn () {
import os
diff --git a/meta/classes/rootfs_deb.bbclass b/meta/classes/rootfs_deb.bbclass
new file mode 100644
index 0000000000..7712911b02
--- /dev/null
+++ b/meta/classes/rootfs_deb.bbclass
@@ -0,0 +1,130 @@
+DEPENDS_prepend = "dpkg-native apt-native fakeroot-native "
+DEPENDS_append = " ${EXTRA_IMAGEDEPENDS}"
+
+PACKAGES = ""
+
+do_rootfs[nostamp] = 1
+do_rootfs[dirs] = ${TOPDIR}
+do_build[nostamp] = 1
+
+ROOTFS_POSTPROCESS_COMMAND ?= ""
+
+PID = "${@os.getpid()}"
+
+# some default locales
+IMAGE_LINGUAS ?= "de-de fr-fr en-gb"
+
+LINGUAS_INSTALL = "${@" ".join(map(lambda s: "locale-base-%s" % s, bb.data.getVar('IMAGE_LINGUAS', d, 1).split()))}"
+
+fakeroot rootfs_deb_do_rootfs () {
+ set +e
+ mkdir -p ${IMAGE_ROOTFS}/var/dpkg/{info,updates}
+
+ rm -f ${STAGING_DIR}/etc/apt/sources.list
+ rm -f ${STAGING_DIR}/etc/apt/preferences
+ > ${IMAGE_ROOTFS}/var/dpkg/status
+ > ${IMAGE_ROOTFS}/var/dpkg/available
+ # > ${STAGING_DIR}/var/dpkg/status
+
+ priority=1
+ for arch in ${PACKAGE_ARCHS}; do
+ if [ ! -d ${DEPLOY_DIR_DEB}/$arch ]; then
+ continue;
+ fi
+ cd ${DEPLOY_DIR_DEB}/$arch
+ # if [ -z "${DEPLOY_KEEP_PACKAGES}" ]; then
+ rm -f Packages.gz Packages Packages.bz2
+ # fi
+ apt-ftparchive packages . | bzip2 > Packages.bz2
+
+ echo "deb file:${DEPLOY_DIR_DEB}/$arch/ ./" >> ${STAGING_DIR}/etc/apt/sources.list
+ (echo "Package: *"
+ echo "Pin origin ${DEPLOY_DIR_DEB}/$arch"
+ echo "Pin-Priority: $((800 + $priority))") >> ${STAGING_DIR}/etc/apt/preferences
+ priority=$(expr $priority + 5)
+ done
+
+ export APT_CONFIG="${STAGING_DIR}/etc/apt/apt.conf"
+ export D=${IMAGE_ROOTFS}
+ export OFFLINE_ROOT=${IMAGE_ROOTFS}
+ export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS}
+
+ apt-get update
+
+ _flag () {
+ sed -i -e "/^Package: $2\$/{n; s/Status: install ok .*/Status: install ok $1/;}" ${IMAGE_ROOTFS}/var/dpkg/status
+ }
+ _getflag () {
+ cat ${IMAGE_ROOTFS}/var/dpkg/status | sed -n -e "/^Package: $2\$/{n; s/Status: install ok .*/$1/; p}"
+ }
+
+ if [ ! -z "${LINGUAS_INSTALL}" ]; then
+ apt-get install glibc-localedata-i18n
+ if [ $? -eq 1 ]; then
+ exit 1
+ fi
+ for i in ${LINGUAS_INSTALL}; do
+ apt-get install $i
+ if [ $? -eq 1 ]; then
+ exit 1
+ fi
+ done
+ fi
+
+ if [ ! -z "${PACKAGE_INSTALL}" ]; then
+ for i in ${PACKAGE_INSTALL}; do
+ apt-get install $i
+ if [ $? -eq 1 ]; then
+ exit 1
+ fi
+ find ${IMAGE_ROOTFS} -name \*.dpkg-new | for i in `cat`; do
+ mv $i `echo $i | sed -e's,\.dpkg-new$,,'`
+ done
+ done
+ fi
+
+ install -d ${IMAGE_ROOTFS}/${sysconfdir}
+ echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version
+
+ for i in ${IMAGE_ROOTFS}/var/dpkg/info/*.preinst; do
+ if [ -f $i ] && ! sh $i; then
+ _flag unpacked `basename $i .preinst`
+ fi
+ done
+
+ for i in ${IMAGE_ROOTFS}/var/dpkg/info/*.postinst; do
+ if [ -f $i ] && ! sh $i configure; then
+ _flag unpacked `basename $i .postinst`
+ fi
+ done
+
+ set -e
+
+ ${ROOTFS_POSTPROCESS_COMMAND}
+}
+
+# set '*' as the rootpassword so the images
+# can decide if they want it or not
+
+zap_root_password () {
+ sed 's%^root:[^:]*:%root:*:%' < ${IMAGE_ROOTFS}/etc/passwd >${IMAGE_ROOTFS}/etc/passwd.new
+ mv ${IMAGE_ROOTFS}/etc/passwd.new ${IMAGE_ROOTFS}/etc/passwd
+}
+
+create_etc_timestamp() {
+ date +%2m%2d%2H%2M%Y >${IMAGE_ROOTFS}/etc/timestamp
+}
+
+# Turn any symbolic /sbin/init link into a file
+remove_init_link () {
+ if [ -h ${IMAGE_ROOTFS}/sbin/init ]; then
+ LINKFILE=${IMAGE_ROOTFS}`readlink ${IMAGE_ROOTFS}/sbin/init`
+ rm ${IMAGE_ROOTFS}/sbin/init
+ cp $LINKFILE ${IMAGE_ROOTFS}/sbin/init
+ fi
+}
+
+# export the zap_root_password, create_etc_timestamp and remote_init_link
+EXPORT_FUNCTIONS zap_root_password create_etc_timestamp remove_init_link do_rootfs
+
+addtask rootfs before do_build after do_install
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass
index 8f9fddde14..e494666068 100644
--- a/meta/classes/rootfs_ipk.bbclass
+++ b/meta/classes/rootfs_ipk.bbclass
@@ -36,7 +36,7 @@ real_do_rootfs () {
fi
mkdir -p ${T}
echo "src oe file:${DEPLOY_DIR_IPK}" > ${T}/ipkg.conf
- ipkgarchs="${IPKG_ARCHS}"
+ ipkgarchs="${PACKAGE_ARCHS}"
priority=1
for arch in $ipkgarchs; do
echo "arch $arch $priority" >> ${T}/ipkg.conf
@@ -49,11 +49,12 @@ real_do_rootfs () {
ipkg-cl ${IPKG_ARGS} install $i
done
fi
- if [ ! -z "${IPKG_INSTALL}" ]; then
- ipkg-cl ${IPKG_ARGS} install ${IPKG_INSTALL}
+ if [ ! -z "${PACKAGE_INSTALL}" ]; then
+ ipkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL}
fi
export D=${IMAGE_ROOTFS}
+ export OFFLINE_ROOT=${IMAGE_ROOTFS}
export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS}
mkdir -p ${IMAGE_ROOTFS}/etc/ipkg/
grep "^arch" ${T}/ipkg.conf >${IMAGE_ROOTFS}/etc/ipkg/arch.conf
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 2001586ff7..a4a3c754b9 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -57,7 +57,7 @@ TARGET_CC_ARCH = ""
PACKAGE_ARCH = "${HOST_ARCH}"
MACHINE_ARCH = "${@[bb.data.getVar('HOST_ARCH', d, 1), bb.data.getVar('MACHINE', d, 1)][bool(bb.data.getVar('MACHINE', d, 1))]}"
-IPKG_ARCHS = "all any noarch ${TARGET_ARCH} ${IPKG_EXTRA_ARCHS} ${MACHINE}"
+PACKAGE_ARCHS = "all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE}"
##################################################################
# Date/time variables.
@@ -159,6 +159,7 @@ DEPLOY_DIR = "${TMPDIR}/deploy"
DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
+DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
##################################################################
# Kernel info.
diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
index c07c8fa68b..699ac216eb 100644
--- a/meta/conf/documentation.conf
+++ b/meta/conf/documentation.conf
@@ -38,8 +38,8 @@ PACKAGE_ARCH[doc] = 'The architecture needed for using a resulting package. If y
machine dependant configuration options in your bitbake file add a \
PACKAGE_ARCH = "${MACHINE_ARCH}" to the file.'
-IPKG_ARCHS[doc] = 'A list of architectures compatible with the given target in order of priority'
-IPKG_EXTRA_ARCHS[doc] = 'Set this variable to add extra architectures to the list of supported architectures'
+PACKAGE_ARCHS[doc] = 'A list of architectures compatible with the given target in order of priority'
+PACKAGE_EXTRA_ARCHS[doc] = 'Set this variable to add extra architectures to the list of supported architectures'
DATE[doc] = "The date the build was started Ymd"
TIME[doc] = "The time the build was started HMS"
diff --git a/meta/conf/machine/akita.conf b/meta/conf/machine/akita.conf
index 0358864c70..0b0caebb3c 100644
--- a/meta/conf/machine/akita.conf
+++ b/meta/conf/machine/akita.conf
@@ -5,7 +5,7 @@
include conf/machine/include/zaurus-clamshell.conf
include conf/machine/include/zaurus-clamshell-2.6.conf
-IPKG_EXTRA_ARCHS += "iwmmxt"
+PACKAGE_EXTRA_ARCHS += "iwmmxt"
IMAGE_FSTYPES ?= "jffs2"
ROOT_FLASH_SIZE = "58"
diff --git a/meta/conf/machine/cmx270.conf b/meta/conf/machine/cmx270.conf
index 2123d6294f..509da675ab 100644
--- a/meta/conf/machine/cmx270.conf
+++ b/meta/conf/machine/cmx270.conf
@@ -2,7 +2,7 @@
#@NAME: Nokia 770 internet tablet
#@DESCRIPTION: Machine configuration for the Compulab CM-X270
TARGET_ARCH = "arm"
-IPKG_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te iwmmxt"
+PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te iwmmxt"
EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x4000 -n"
diff --git a/meta/conf/machine/include/ixp4xx.conf b/meta/conf/machine/include/ixp4xx.conf
index 93befb92ce..e545bbc1c0 100644
--- a/meta/conf/machine/include/ixp4xx.conf
+++ b/meta/conf/machine/include/ixp4xx.conf
@@ -111,7 +111,7 @@ TARGET_PACKAGE_ARCH = "${TARGET_PACKAGE_ARCH_BASE}${BYTE_SEX_CHAR}"
# because everything built here is no more specific than that.
MACHINE_ARCH = "ixp4xx${ARCH_BYTE_SEX}"
-# IPKG_EXTRA_ARCHS
+# PACKAGE_EXTRA_ARCHS
# The full list of package architectures which should run on the system.
# This takes into account both the board level issues and the INPUTS set
# by the distro. The arm list is derived from the architecture settings
@@ -126,12 +126,12 @@ THUMB_ARCHITECTURES = "thumbe${BYTE_SEX_CHAR} thumbv4t${BYTE_SEX_CHAR} thumbv5t$
# NOTE: this list contains just the things which rootfs_ipk.bbclass does
# not add, rootfs_ipk.bbclass evaluates:
#
-# ipkgarchs="all any noarch ${TARGET_ARCH} ${IPKG_EXTRA_ARCHS} ${MACHINE}"
+# ipkgarchs="all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE}"
#
# This is a priority ordered list - most desireable architecture at the end,
# so put <ARM_INSTRUCTION_SET>_ARCHITECTURES at the end and, if
# THUMB_INTERWORK precede this with the other architectures.
-IPKG_EXTRA_ARCHS = "ixp4xx ${MACHINE} \
+PACKAGE_EXTRA_ARCHS = "ixp4xx ${MACHINE} \
${@(lambda arch_thumb, arch_arm, is_arm, interwork: \
(interwork and (is_arm and arch_thumb or arch_arm) + ' ' or '') \
+ '${TARGET_ARCH} ' + (is_arm and arch_arm or arch_thumb)) \
@@ -141,12 +141,12 @@ IPKG_EXTRA_ARCHS = "ixp4xx ${MACHINE} \
bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes')} \
${MACHINE_ARCH} ${MACHINE}${ARCH_BYTE_SEX}"
-# IPKG_ARCH_LIST [not used]
+# PACKAGE_ARCH_LIST [not used]
# This is used to override the ipkgarchs settings in rootfs_ipk.bbclass, allowing
# the removal of the raw "${MACHINE}" from the end of the list. ${MACHINE} and
# ixp4xx are included at the start (lower priority) as the non-byte-sex specific
# versions.
-IPKG_ARCH_LIST = "all any noarch ixp4xx ${MACHINE} ${IPKG_EXTRA_ARCHS}"
+PACKAGE_ARCH_LIST = "all any noarch ixp4xx ${MACHINE} ${PACKAGE_EXTRA_ARCHS}"
#-------------------------------------------------------------------------------
# Package versions
diff --git a/meta/conf/machine/include/tune-iwmmxt.conf b/meta/conf/machine/include/tune-iwmmxt.conf
index 990aee54bc..f9c8e7f5cf 100644
--- a/meta/conf/machine/include/tune-iwmmxt.conf
+++ b/meta/conf/machine/include/tune-iwmmxt.conf
@@ -1,6 +1,6 @@
# Configurations for the Intel PXA27x Appications Processor Family.
# Please use tune-xscale for PXA255/PXA26x based processors.
-IPKG_EXTRA_ARCHS += "iwmmxt"
+PACKAGE_EXTRA_ARCHS += "iwmmxt"
TARGET_CC_ARCH = "-march=iwmmxt -mcpu=iwmmxt -mtune=iwmmxt"
PACKAGE_ARCH = "iwmmxt"
diff --git a/meta/conf/machine/include/zaurus-clamshell.conf b/meta/conf/machine/include/zaurus-clamshell.conf
index e600a4926d..3c02f7bfd9 100644
--- a/meta/conf/machine/include/zaurus-clamshell.conf
+++ b/meta/conf/machine/include/zaurus-clamshell.conf
@@ -1,5 +1,5 @@
TARGET_ARCH = "arm"
-IPKG_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te"
+PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te"
PREFERRED_PROVIDER_xserver = "xserver-kdrive"
diff --git a/meta/conf/machine/ipaq-pxa270.conf b/meta/conf/machine/ipaq-pxa270.conf
index bd92ad5dee..cc4aea4fb6 100644
--- a/meta/conf/machine/ipaq-pxa270.conf
+++ b/meta/conf/machine/ipaq-pxa270.conf
@@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for the iPAQ with a pxa27x CPU devices
TARGET_ARCH = "arm"
-IPKG_EXTRA_ARCHS = "armv4 armv4t armv5te iwmmxt ipaqpxa hx4700"
+PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te iwmmxt ipaqpxa hx4700"
#use this for a hx2xxx ipaq
PREFERRED_PROVIDER_virtual/kernel = "linux-openzaurus"
diff --git a/meta/conf/machine/nokia770.conf b/meta/conf/machine/nokia770.conf
index 690b2403d8..6cc73c9232 100644
--- a/meta/conf/machine/nokia770.conf
+++ b/meta/conf/machine/nokia770.conf
@@ -2,7 +2,7 @@
#@NAME: Nokia 770 internet tablet
#@DESCRIPTION: Machine configuration for the Nokia 770, an omap 1710 based tablet
TARGET_ARCH = "arm"
-IPKG_EXTRA_ARCHS = "armv4 armv5te"
+PACKAGE_EXTRA_ARCHS = "armv4 armv5te"
PREFERRED_PROVIDER_virtual/xserver = "xserver-kdrive-omap"
PREFERRED_PROVIDER_virtual/bootloader = ""
diff --git a/meta/conf/machine/qemuarm.conf b/meta/conf/machine/qemuarm.conf
index a64a58e9a2..2affa6693f 100644
--- a/meta/conf/machine/qemuarm.conf
+++ b/meta/conf/machine/qemuarm.conf
@@ -3,7 +3,7 @@
#@DESCRIPTION: Machine configuration for running an ARM system under qemu emulation
TARGET_ARCH = "arm"
-IPKG_EXTRA_ARCHS = "armv4 armv5te"
+PACKAGE_EXTRA_ARCHS = "armv4 armv5te"
require conf/machine/include/qemu.conf
require conf/machine/include/tune-arm926ejs.conf
diff --git a/meta/conf/machine/qemux86.conf b/meta/conf/machine/qemux86.conf
index 83bf7391a9..63e318908e 100644
--- a/meta/conf/machine/qemux86.conf
+++ b/meta/conf/machine/qemux86.conf
@@ -4,7 +4,7 @@
TARGET_ARCH = "i586"
TARGET_VENDOR = "-oe"
-IPKG_EXTRA_ARCHS = "x86"
+PACKAGE_EXTRA_ARCHS = "x86"
require conf/machine/include/qemu.conf
# require conf/machine/include/tune-arm926ejs.conf
diff --git a/meta/conf/machine/spitz.conf b/meta/conf/machine/spitz.conf
index af50217e0f..cf2c5f3f4f 100644
--- a/meta/conf/machine/spitz.conf
+++ b/meta/conf/machine/spitz.conf
@@ -7,7 +7,7 @@ include conf/machine/include/zaurus-clamshell-2.6.conf
PIVOTBOOT_EXTRA_RDEPENDS += "pivotinit ${PCMCIA_MANAGER}"
-IPKG_EXTRA_ARCHS += "iwmmxt"
+PACKAGE_EXTRA_ARCHS += "iwmmxt"
IMAGE_FSTYPES ?= "tar.gz"
ROOT_FLASH_SIZE = "100"
diff --git a/meta/packages/apt/apt-0.6.45exp2/noconfigure.patch b/meta/packages/apt/apt-0.6.45exp2/noconfigure.patch
new file mode 100644
index 0000000000..682a96da24
--- /dev/null
+++ b/meta/packages/apt/apt-0.6.45exp2/noconfigure.patch
@@ -0,0 +1,35 @@
+---
+ apt-pkg/packagemanager.cc | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- apt-0.6.45exp2.orig/apt-pkg/packagemanager.cc
++++ apt-0.6.45exp2/apt-pkg/packagemanager.cc
+@@ -534,10 +534,12 @@ bool pkgPackageManager::SmartUnPack(PkgI
+
+ List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States);
+
++#if 0
+ // Perform immedate configuration of the package.
+ if (List->IsFlag(Pkg,pkgOrderList::Immediate) == true)
+ if (SmartConfigure(Pkg) == false)
+ return _error->Error("Internal Error, Could not perform immediate configuration (2) on %s",Pkg.Name());
++#endif
+
+ return true;
+ }
+@@ -609,6 +611,7 @@ pkgPackageManager::OrderResult pkgPackag
+ DoneSomething = true;
+ }
+
++#if 0
+ // Final run through the configure phase
+ if (ConfigureAll() == false)
+ return Failed;
+@@ -623,6 +626,7 @@ pkgPackageManager::OrderResult pkgPackag
+ return Failed;
+ }
+ }
++#endif
+
+ return Completed;
+ }
diff --git a/meta/packages/apt/apt-native.inc b/meta/packages/apt/apt-native.inc
index 4ace9e94bb..de9426bf70 100644
--- a/meta/packages/apt/apt-native.inc
+++ b/meta/packages/apt/apt-native.inc
@@ -19,39 +19,43 @@ python do_stage_config () {
data = bb.data.expand(data, d)
- outpath = bb.data.expand('${STAGING_DIR}/${sysconfdir}/apt.conf', d)
+ outdir = os.path.join(bb.data.getVar('sysconfdir', d, 1), 'apt')
+ if not os.path.exists(outdir):
+ os.makedirs(outdir)
+ outpath = os.path.join(outdir, 'apt.conf')
+
outfile = file(outpath, 'w')
outfile.write(data)
outfile.close()
}
do_stage_base () {
- install -d ${STAGING_BINDIR}
- install -m 0755 bin/apt-cdrom ${STAGING_BINDIR}/
- install -m 0755 bin/apt-get ${STAGING_BINDIR}/
- install -m 0755 bin/apt-config ${STAGING_BINDIR}/
- install -m 0755 bin/apt-cache ${STAGING_BINDIR}/
+ install -d ${bindir}
+ install -m 0755 bin/apt-cdrom ${bindir}/
+ install -m 0755 bin/apt-get ${bindir}/
+ install -m 0755 bin/apt-config ${bindir}/
+ install -m 0755 bin/apt-cache ${bindir}/
- install -m 0755 bin/apt-sortpkgs ${STAGING_BINDIR}/
- install -m 0755 bin/apt-extracttemplates ${STAGING_BINDIR}/
+ install -m 0755 bin/apt-sortpkgs ${bindir}/
+ install -m 0755 bin/apt-extracttemplates ${bindir}/
eval `cat environment.mak | grep ^GLIBC_VER | sed -e's, = ,=,'`
- oe_libinstall -so -C bin libapt-pkg$GLIBC_VER-6 ${STAGING_LIBDIR}/
- ln -sf libapt-pkg$GLIBC_VER-6.so ${STAGING_LIBDIR}/libapt-pkg.so
- oe_libinstall -so -C bin libapt-inst$GLIBC_VER-6 ${STAGING_LIBDIR}/
- ln -sf libapt-inst$GLIBC_VER-6.so ${STAGING_LIBDIR}/libapt-inst.so
-
- install -d ${STAGING_LIBDIR}/apt/methods
- install -m 0755 bin/methods/* ${STAGING_LIBDIR}/apt/methods/
-
- install -d ${STAGING_LIBDIR}/dpkg/methods/apt
- install -m 0644 dselect/desc.apt ${STAGING_LIBDIR}/dpkg/methods/apt/
- install -m 0644 dselect/names ${STAGING_LIBDIR}/dpkg/methods/apt/
- install -m 0755 dselect/install ${STAGING_LIBDIR}/dpkg/methods/apt/
- install -m 0755 dselect/setup ${STAGING_LIBDIR}/dpkg/methods/apt/
- install -m 0755 dselect/update ${STAGING_LIBDIR}/dpkg/methods/apt/
-
- install -d ${STAGING_DIR}${sysconfdir}/apt
- install -d ${STAGING_DIR}${localstatedir}/lib/apt/lists/partial
- install -d ${STAGING_DIR}${localstatedir}/cache/apt/archives/partial
+ oe_libinstall -so -C bin libapt-pkg$GLIBC_VER-6 ${libdir}/
+ ln -sf libapt-pkg$GLIBC_VER-6.so ${libdir}/libapt-pkg.so
+ oe_libinstall -so -C bin libapt-inst$GLIBC_VER-6 ${libdir}/
+ ln -sf libapt-inst$GLIBC_VER-6.so ${libdir}/libapt-inst.so
+
+ install -d ${libdir}/apt/methods
+ install -m 0755 bin/methods/* ${libdir}/apt/methods/
+
+ install -d ${libdir}/dpkg/methods/apt
+ install -m 0644 dselect/desc.apt ${libdir}/dpkg/methods/apt/
+ install -m 0644 dselect/names ${libdir}/dpkg/methods/apt/
+ install -m 0755 dselect/install ${libdir}/dpkg/methods/apt/
+ install -m 0755 dselect/setup ${libdir}/dpkg/methods/apt/
+ install -m 0755 dselect/update ${libdir}/dpkg/methods/apt/
+
+ install -d ${sysconfdir}/apt
+ install -d ${localstatedir}/lib/apt/lists/partial
+ install -d ${localstatedir}/cache/apt/archives/partial
}
diff --git a/meta/packages/apt/apt-native_0.6.45exp2.bb b/meta/packages/apt/apt-native_0.6.45exp2.bb
index 32f19e8e4c..43f73889f7 100644
--- a/meta/packages/apt/apt-native_0.6.45exp2.bb
+++ b/meta/packages/apt/apt-native_0.6.45exp2.bb
@@ -1,3 +1,4 @@
require apt-native.inc
-SRC_URI += "file://nodoc.patch;patch=1"
+SRC_URI += "file://nodoc.patch;patch=1 \
+ file://noconfigure.patch;patch=1"
diff --git a/meta/packages/apt/files/apt.conf b/meta/packages/apt/files/apt.conf
index 944233c347..37785871db 100644
--- a/meta/packages/apt/files/apt.conf
+++ b/meta/packages/apt/files/apt.conf
@@ -3,7 +3,7 @@ Dir "${STAGING_DIR}/"
State "var/lib/apt/"
{
Lists "lists/";
- status "${IMAGE_ROOTFS}/${localstatedir}/lib/dpkg/status";
+ status "${IMAGE_ROOTFS}/var/dpkg/status";
};
Cache "var/cache/apt/"
{
@@ -22,3 +22,17 @@ Dir "${STAGING_DIR}/"
apt-cache "apt-cache";
};
};
+
+APT
+{
+ Immediate-Configure "false";
+ Architecture "i586";
+ Get
+ {
+ Assume-Yes "true";
+ Force-Yes "true"
+ };
+};
+
+DPkg::Options {"--root=${IMAGE_ROOTFS}";"--admindir=${IMAGE_ROOTFS}/var/dpkg";"--force-all";"--no-debsig"};
+};
diff --git a/meta/packages/dpkg/dpkg-native_1.13.22.bb b/meta/packages/dpkg/dpkg-native_1.13.22.bb
index 2f196c2ea6..db71ab08e8 100644
--- a/meta/packages/dpkg/dpkg-native_1.13.22.bb
+++ b/meta/packages/dpkg/dpkg-native_1.13.22.bb
@@ -1,8 +1,9 @@
require dpkg.inc
+PR = "r1"
+DEPENDS += "ncurses-native zlib-native virtual/update-alternatives"
SRC_URI += "file://noman.patch;patch=1"
inherit native
-inherit autotools gettext
EXTRA_OECONF = "--without-static-progs \
--without-dselect \
diff --git a/meta/packages/dpkg/dpkg.inc b/meta/packages/dpkg/dpkg.inc
index 3c3f29c304..0d2053ab0f 100644
--- a/meta/packages/dpkg/dpkg.inc
+++ b/meta/packages/dpkg/dpkg.inc
@@ -1,10 +1,34 @@
DESCRIPTION = "Package maintenance system for Debian."
LICENSE = "GPL"
SECTION = "base"
-DEPENDS = "ncurses zlib"
MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
-SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.gz"
+SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.gz \
+ file://noupdalt.patch;patch=1"
S = "${WORKDIR}/dpkg-${PV}"
+DEPENDS_${PN} += "update-alternatives"
+
PARALLEL_MAKE = ""
+
+inherit autotools gettext
+
+DPKG_INIT_POSITION = "98"
+DPKG_INIT_POSITION_slugos = "41"
+
+pkg_postinst_dpkg () {
+#!/bin/sh
+if [ "x$D" != "x" ]; then
+ install -d ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d
+ # this happens at S98 where our good 'ole packages script used to run
+ echo -e "#!/bin/sh
+ dpkg --configure -a
+" > ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d/S${DPKG_INIT_POSITION}configure
+ chmod 0755 ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d/S${DPKG_INIT_POSITION}configure
+fi
+}
+
+do_configure () {
+ echo >> m4/compiler.m4
+ autotools_do_configure
+}
diff --git a/meta/packages/dpkg/dpkg_1.13.22.bb b/meta/packages/dpkg/dpkg_1.13.22.bb
index 08a9c06fbf..bcf45392b4 100644
--- a/meta/packages/dpkg/dpkg_1.13.22.bb
+++ b/meta/packages/dpkg/dpkg_1.13.22.bb
@@ -1,7 +1,6 @@
require dpkg.inc
-DEPENDS += "bzip2"
-
-inherit autotools gettext
+PR = "r2"
+DEPENDS += "ncurses zlib bzip2"
EXTRA_OECONF = "--without-static-progs \
--without-dselect \
diff --git a/meta/packages/dpkg/files/nochroot.patch b/meta/packages/dpkg/files/nochroot.patch
new file mode 100644
index 0000000000..3a8beaebbf
--- /dev/null
+++ b/meta/packages/dpkg/files/nochroot.patch
@@ -0,0 +1,18 @@
+---
+ src/help.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- dpkg-1.13.22.orig/src/help.c
++++ dpkg-1.13.22/src/help.c
+@@ -175,9 +175,11 @@ static const char* preexecscript(const c
+ */
+ size_t instdirl;
+
++#if 0
+ if (*instdir) {
+ if (chroot(instdir)) ohshite(_("failed to chroot to `%.250s'"),instdir);
+ }
++#endif
+ if (f_debug & dbg_scripts) {
+ fprintf(stderr,"D0%05o: fork/exec %s (",dbg_scripts,path);
+ while (*++argv) fprintf(stderr," %s",*argv);
diff --git a/meta/packages/dpkg/files/noupdalt.patch b/meta/packages/dpkg/files/noupdalt.patch
new file mode 100644
index 0000000000..023e99ae8d
--- /dev/null
+++ b/meta/packages/dpkg/files/noupdalt.patch
@@ -0,0 +1,16 @@
+---
+ scripts/Makefile.am | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- dpkg-1.13.22.orig/scripts/Makefile.am
++++ dpkg-1.13.22/scripts/Makefile.am
+@@ -20,8 +20,7 @@ bin_SCRIPTS = \
+ sbin_SCRIPTS = \
+ cleanup-info \
+ dpkg-divert \
+- dpkg-statoverride \
+- update-alternatives
++ dpkg-statoverride
+
+ changelogdir = $(pkglibdir)/parsechangelog
+ changelog_SCRIPTS = \
diff --git a/meta/packages/glibc/glibc-package.bbclass b/meta/packages/glibc/glibc-package.bbclass
index 3ce10b54de..6b191434ed 100644
--- a/meta/packages/glibc/glibc-package.bbclass
+++ b/meta/packages/glibc/glibc-package.bbclass
@@ -194,6 +194,10 @@ python package_do_split_gconvs () {
if m:
dp = legitimize_package_name('glibc-localedata-%s' % m.group(1))
if not dp in deps:
+ if '<' in dp:
+ bb.note('warning, dp is %s' % dp)
+ bb.note(' fn is %s' % fn)
+ bb.note(' line was %s' % l)
deps.append(dp)
f.close()
if deps != []:
diff --git a/meta/packages/images/oh-image-base.bb b/meta/packages/images/oh-image-base.bb
index 2bc152b998..4a61e70519 100644
--- a/meta/packages/images/oh-image-base.bb
+++ b/meta/packages/images/oh-image-base.bb
@@ -6,7 +6,7 @@ DEPENDS = "task-oh"
RDEPENDS = "task-oh-boot task-oh-boot-extras"
-export IPKG_INSTALL = "${RDEPENDS}"
+export PACKAGE_INSTALL = "${RDEPENDS}"
-inherit image_ipk
+inherit image
LICENSE = MIT
diff --git a/meta/packages/images/oh-image-core.bb b/meta/packages/images/oh-image-core.bb
index 73f7afbe16..e416d84843 100644
--- a/meta/packages/images/oh-image-core.bb
+++ b/meta/packages/images/oh-image-core.bb
@@ -9,7 +9,7 @@ RDEPENDS = "\
task-oh-boot-extras \
task-oh-base "
-export IPKG_INSTALL = "${RDEPENDS}"
+export PACKAGE_INSTALL = "${RDEPENDS}"
-inherit image_ipk
+inherit image
LICENSE = MIT
diff --git a/meta/packages/images/oh-image-pda.bb b/meta/packages/images/oh-image-pda.bb
index de2f3e0a4c..d4576a0c55 100644
--- a/meta/packages/images/oh-image-pda.bb
+++ b/meta/packages/images/oh-image-pda.bb
@@ -12,7 +12,7 @@ RDEPENDS = "\
${@base_conditional("DISTRO_TYPE", "debug", "task-oh-devtools", "",d)} \
${@base_conditional("DISTRO_TYPE", "debug", "task-oh-testapps", "",d)} "
-export IPKG_INSTALL = "${RDEPENDS}"
+export PACKAGE_INSTALL = "${RDEPENDS}"
-inherit image_ipk
+inherit image
LICENSE = MIT
diff --git a/meta/packages/images/oh-image-sdk.bb b/meta/packages/images/oh-image-sdk.bb
index 71b1c300b5..08e37a7b89 100644
--- a/meta/packages/images/oh-image-sdk.bb
+++ b/meta/packages/images/oh-image-sdk.bb
@@ -15,7 +15,7 @@ RDEPENDS = "\
task-oh-testapps \
task-oh-sdk "
-export IPKG_INSTALL = "${RDEPENDS}"
+export PACKAGE_INSTALL = "${RDEPENDS}"
-inherit image_ipk
+inherit image
LICENSE = MIT
diff --git a/meta/packages/ipkg/files/noupdalt.patch b/meta/packages/ipkg/files/noupdalt.patch
new file mode 100644
index 0000000000..f668e82f6b
--- /dev/null
+++ b/meta/packages/ipkg/files/noupdalt.patch
@@ -0,0 +1,15 @@
+---
+ Makefile.am | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- C.orig/Makefile.am
++++ C/Makefile.am
+@@ -10,8 +10,6 @@ bin_PROGRAMS = ipkg-cl
+
+ lib_LTLIBRARIES = libipkg.la
+
+-bin_SCRIPTS = update-alternatives
+-
+ # ipkg_LDADD = libbb/libbb.a replace/libreplace.a
+
+ #ipkg_cl_LDADD = libipkg.la libbb/libbb.la replace/libreplace.a
diff --git a/meta/packages/ipkg/ipkg-native.inc b/meta/packages/ipkg/ipkg-native.inc
index b52b7b5e20..070086a638 100644
--- a/meta/packages/ipkg/ipkg-native.inc
+++ b/meta/packages/ipkg/ipkg-native.inc
@@ -7,6 +7,6 @@ inherit native
EXTRA_OECONF += "--with-ipkgdir=${target_libdir}/ipkg"
-DEPENDS = "libtool-native automake-native"
+DEPENDS = "libtool-native automake-native virtual/update-alternatives"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/ipkg-${PV}"
PROVIDES = ""
diff --git a/meta/packages/ipkg/ipkg.inc b/meta/packages/ipkg/ipkg.inc
index 49bdd22c08..e72ece633b 100644
--- a/meta/packages/ipkg/ipkg.inc
+++ b/meta/packages/ipkg/ipkg.inc
@@ -5,13 +5,15 @@ LICENSE = "GPL"
PROVIDES = "virtual/ipkg libipkg"
PACKAGES =+ "libipkg-dev libipkg"
+RDEPENDS_${PN} += "update-alternatives"
FILES_libipkg-dev = "${libdir}/*.a ${libdir}/*.la ${libdir}/*.so"
FILES_libipkg = "${libdir}"
AUTO_LIBNAME_PKGS = "libipkg"
SRC_URI = "${HANDHELDS_CVS};module=familiar/dist/ipkg;tag=${@'V' + bb.data.getVar('PV',d,1).replace('.', '-')} \
file://fix_tar_extension.patch;patch=1 \
- file://terse.patch;patch=1"
+ file://terse.patch;patch=1 \
+ file://noupdalt.patch;patch=1"
S = "${WORKDIR}/ipkg/C"
diff --git a/meta/packages/ipkg/ipkg_0.99.154.bb b/meta/packages/ipkg/ipkg_0.99.154.bb
index 20a1996658..eb36fa67cb 100644
--- a/meta/packages/ipkg/ipkg_0.99.154.bb
+++ b/meta/packages/ipkg/ipkg_0.99.154.bb
@@ -1,2 +1,2 @@
require ipkg.inc
-PR = "r4"
+PR = "r5"
diff --git a/meta/packages/ncurses/ncurses.inc b/meta/packages/ncurses/ncurses.inc
index 030cd1034c..bc0bb4603c 100644
--- a/meta/packages/ncurses/ncurses.inc
+++ b/meta/packages/ncurses/ncurses.inc
@@ -3,8 +3,8 @@ HOMEPAGE = "http://www.gnu.org/software/ncurses/ncurses.html"
LICENSE = "MIT"
SECTION = "libs"
DEPENDS = "ncurses-native"
-PACKAGES_prepend = "ncurses-tools "
-PACKAGES_append = " ncurses-terminfo"
+PACKAGES =+ "ncurses-tools "
+PACKAGES += " ncurses-terminfo"
FILES_ncurses_append = " ${datadir}/tabset"
RSUGGESTS_${PN} = "ncurses-terminfo"
RPROVIDES = "libncurses5"
diff --git a/meta/packages/sysfsutils/sysfsutils_2.0.0.bb b/meta/packages/sysfsutils/sysfsutils_2.0.0.bb
index 176c8870e4..252990cba5 100644
--- a/meta/packages/sysfsutils/sysfsutils_2.0.0.bb
+++ b/meta/packages/sysfsutils/sysfsutils_2.0.0.bb
@@ -12,8 +12,8 @@ inherit autotools
includedir += "/sysfs"
-PACKAGES_prepend = "libsysfs "
-FILES_libsysfs = "${libdir}/*.so.2.0.0"
+# PACKAGES_prepend = "libsysfs "
+# FILES_libsysfs = "${libdir}/*.so.2.0.0"
do_stage () {
oe_libinstall -a -so -C lib libsysfs ${STAGING_LIBDIR}
diff --git a/meta/packages/tasks/task-oh.bb b/meta/packages/tasks/task-oh.bb
index 6b8125966b..e0ffb73cfb 100644
--- a/meta/packages/tasks/task-oh.bb
+++ b/meta/packages/tasks/task-oh.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Tasks for OpenedHand Poky"
MAINTAINER = "Richard Purdie <richard@openedhand.com>"
-PR = "r41"
+PR = "r42"
PACKAGES = "\
task-oh-base \
@@ -27,7 +27,7 @@ RDEPENDS_task-oh-boot = "\
modutils-initscripts \
fuser \
setserial \
- ipkg \
+ update-alternatives \
module-init-tools-depmod"
# linux-hotplug \
diff --git a/meta/packages/update-alternatives/update-alternatives-cworth-native_0.99.154.bb b/meta/packages/update-alternatives/update-alternatives-cworth-native_0.99.154.bb
new file mode 100644
index 0000000000..99f8c07244
--- /dev/null
+++ b/meta/packages/update-alternatives/update-alternatives-cworth-native_0.99.154.bb
@@ -0,0 +1,11 @@
+require update-alternatives-cworth.inc
+inherit native
+
+PROVIDES += "virtual/update-alternatives"
+
+do_stage () {
+ install -d ${sbindir} \
+ ${libdir}/ipkg/alternatives
+
+ install -m 0755 update-alternatives ${sbindir}/update-alternatives
+}
diff --git a/meta/packages/update-alternatives/update-alternatives-cworth.inc b/meta/packages/update-alternatives/update-alternatives-cworth.inc
new file mode 100644
index 0000000000..e5bf1c8e27
--- /dev/null
+++ b/meta/packages/update-alternatives/update-alternatives-cworth.inc
@@ -0,0 +1,6 @@
+LICENSE = "GPL"
+SECTION = "base"
+MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
+SRC_URI = "${HANDHELDS_CVS};module=familiar/dist/ipkg;tag=${@'V' + bb.data.getVar('PV',d,1).replace('.', '-')}"
+S = "${WORKDIR}/ipkg/C"
+PACKAGE_ARCH = "all"
diff --git a/meta/packages/update-alternatives/update-alternatives-cworth_0.99.154.bb b/meta/packages/update-alternatives/update-alternatives-cworth_0.99.154.bb
new file mode 100644
index 0000000000..18dab4e65f
--- /dev/null
+++ b/meta/packages/update-alternatives/update-alternatives-cworth_0.99.154.bb
@@ -0,0 +1,11 @@
+require update-alternatives-cworth.inc
+
+RPROVIDES_${PN} = "update-alternatives"
+
+do_install () {
+ install -d ${D}${sbindir} \
+ ${D}${sysconfdir}/alternatives \
+ ${D}${libdir}/ipkg/alternatives
+
+ install -m 0755 update-alternatives ${D}${sbindir}/update-alternatives
+}
diff --git a/meta/packages/update-alternatives/update-alternatives-dpkg-native_1.13.22.bb b/meta/packages/update-alternatives/update-alternatives-dpkg-native_1.13.22.bb
new file mode 100644
index 0000000000..f621e6a13f
--- /dev/null
+++ b/meta/packages/update-alternatives/update-alternatives-dpkg-native_1.13.22.bb
@@ -0,0 +1,14 @@
+require update-alternatives-dpkg.inc
+inherit native
+
+PROVIDES += "virtual/update-alternatives"
+DEPENDS += "perl-native dpkg-native"
+DEFAULT_PREFERENCE = "-1"
+
+do_stage () {
+ install -d ${sbindir} \
+ ${localstatedir}/dpkg/alternatives \
+ ${sysconfdir}/alternatives
+
+ install -m 0755 scripts/update-alternatives ${sbindir}/update-alternatives
+}
diff --git a/meta/packages/update-alternatives/update-alternatives-dpkg.inc b/meta/packages/update-alternatives/update-alternatives-dpkg.inc
new file mode 100644
index 0000000000..e767ed632b
--- /dev/null
+++ b/meta/packages/update-alternatives/update-alternatives-dpkg.inc
@@ -0,0 +1,20 @@
+LICENSE = "GPL"
+SECTION = "base"
+MAINTAINER = "Chris Larson <kergoth@handhelds.org>"
+SRC_URI = "${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.gz"
+S = "${WORKDIR}/dpkg-${PV}"
+PACKAGE_ARCH = "all"
+
+do_patch () {
+ cat ${S}/scripts/update-alternatives.pl | \
+ sed -n -e '
+ /^\$admindir=.*staging/{
+ x
+ s/^.*$/$D=$ENV{"D"} || ""\;/;
+ p;
+ x;
+ s,^\$admindir=.*staging.*$,$admindir="$D${localstatedir}/dpkg"\;,;
+ };
+ s,^\$altdir=.*$,$altdir="$D${sysconfdir}/alternatives"\;,;
+ p;' > ${S}/scripts/update-alternatives
+}
diff --git a/meta/packages/update-alternatives/update-alternatives-dpkg_1.13.22.bb b/meta/packages/update-alternatives/update-alternatives-dpkg_1.13.22.bb
new file mode 100644
index 0000000000..a07d5e36d4
--- /dev/null
+++ b/meta/packages/update-alternatives/update-alternatives-dpkg_1.13.22.bb
@@ -0,0 +1,12 @@
+require update-alternatives-dpkg.inc
+
+RPROVIDES_${PN} = "update-alternatives"
+RDEPENDS_${PN} = "perl dpkg"
+
+do_install () {
+ install -d ${D}${sbindir} \
+ ${D}${localstatedir}/dpkg/alternatives \
+ ${D}${sysconfdir}/alternatives
+
+ install -m 0755 scripts/update-alternatives ${D}${sbindir}/update-alternatives
+}
diff --git a/meta/packages/web/web_svn.bb b/meta/packages/web/web_svn.bb
index f79df30c42..018cbc9bec 100755
--- a/meta/packages/web/web_svn.bb
+++ b/meta/packages/web/web_svn.bb
@@ -4,6 +4,7 @@ DEPENDS = "libxml2 glib-2.0 gtk+ libglade gtkhtml2 curl gconf js"
MAINTAINER = "Chris Lord <chris@openedhand.com>"
DESCRIPTION = "Web is a multi-platform web browsing application."
+PV = "0.0+svn${SRCDATE}"
PR = "r1"
SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http"
S = "${WORKDIR}/trunk"
diff --git a/meta/packages/xorg-lib/libx11_X11R7.1-1.0.1.bb b/meta/packages/xorg-lib/libx11_X11R7.1-1.0.1.bb
index b31ed72998..bbd4993345 100644
--- a/meta/packages/xorg-lib/libx11_X11R7.1-1.0.1.bb
+++ b/meta/packages/xorg-lib/libx11_X11R7.1-1.0.1.bb
@@ -5,7 +5,7 @@ DESCRIPTION = "Base X libs."
DEPENDS += " bigreqsproto xproto xextproto xtrans libxau xcmiscproto \
libxdmcp xf86bigfontproto kbproto inputproto"
PROVIDES = "virtual/libx11"
-RPROVIDES = "virtual/libx11"
+# RPROVIDES = "virtual/libx11"
XORG_PN = "libX11"
diff --git a/meta/packages/xorg-xserver/xserver-kdrive/xfbdev-fb-opt.patch b/meta/packages/xorg-xserver/xserver-kdrive/xfbdev-fb-opt.patch
index 89a56719d7..a8f002ea2a 100644
--- a/meta/packages/xorg-xserver/xserver-kdrive/xfbdev-fb-opt.patch
+++ b/meta/packages/xorg-xserver/xserver-kdrive/xfbdev-fb-opt.patch
@@ -1,8 +1,18 @@
-diff --git a/hw/kdrive/fbdev/fbdev.c b/hw/kdrive/fbdev/fbdev.c
-index 86384f0..904d5f3 100644
---- a/hw/kdrive/fbdev/fbdev.c
-+++ b/hw/kdrive/fbdev/fbdev.c
-@@ -38,11 +38,17 @@ fbdevInitialize (KdCardInfo *card, Fbdev
+---
+ hw/kdrive/fbdev/fbdev.c | 17 ++++++++++++-----
+ hw/kdrive/fbdev/fbdev.h | 1 +
+ hw/kdrive/fbdev/fbinit.c | 20 ++++++++++++++++----
+ 3 files changed, 29 insertions(+), 9 deletions(-)
+
+--- xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/fbdev/fbdev.c
++++ xorg-server-X11R7.1-1.1.0/hw/kdrive/fbdev/fbdev.c
+@@ -33,16 +33,23 @@
+
+ extern int KdTsPhyScreen;
+
++char *fbdevDevicePath = NULL;
+ Bool
+ fbdevInitialize (KdCardInfo *card, FbdevPriv *priv)
{
int k;
unsigned long off;
@@ -25,10 +35,8 @@ index 86384f0..904d5f3 100644
/* quiet valgrind */
memset (&priv->fix, '\0', sizeof (priv->fix));
if ((k=ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix)) < 0) {
-diff --git a/hw/kdrive/fbdev/fbdev.h b/hw/kdrive/fbdev/fbdev.h
-index d37b995..b7951db 100644
---- a/hw/kdrive/fbdev/fbdev.h
-+++ b/hw/kdrive/fbdev/fbdev.h
+--- xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/fbdev/fbdev.h
++++ xorg-server-X11R7.1-1.1.0/hw/kdrive/fbdev/fbdev.h
@@ -53,6 +53,7 @@ typedef struct _fbdevScrPriv {
} FbdevScrPriv;
@@ -37,11 +45,9 @@ index d37b995..b7951db 100644
Bool
fbdevInitialize (KdCardInfo *card, FbdevPriv *priv);
-diff --git a/hw/kdrive/fbdev/fbinit.c b/hw/kdrive/fbdev/fbinit.c
-index ba9d1c6..1a7e4bf 100644
---- a/hw/kdrive/fbdev/fbinit.c
-+++ b/hw/kdrive/fbdev/fbinit.c
-@@ -54,17 +54,30 @@ InitInput (int argc, char **argv)
+--- xorg-server-X11R7.1-1.1.0.orig/hw/kdrive/fbdev/fbinit.c
++++ xorg-server-X11R7.1-1.1.0/hw/kdrive/fbdev/fbinit.c
+@@ -59,16 +59,28 @@ InitInput (int argc, char **argv)
void
ddxUseMsg (void)
{
@@ -72,7 +78,5 @@ index ba9d1c6..1a7e4bf 100644
+ return KdProcessArgument (argc, argv, i);
+}
-+char *fbdevDevicePath = NULL;
KdCardFuncs fbdevFuncs = {
fbdevCardInit, /* cardinit */
- fbdevScreenInit, /* scrinit */
diff --git a/meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb b/meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb
index 92857dc62b..987b46021f 100644
--- a/meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb
+++ b/meta/packages/xorg-xserver/xserver-kdrive_X11R7.1-1.1.0.bb
@@ -2,7 +2,7 @@ LICENSE = "MIT"
DEPENDS = "tslib xproto libxdmcp xextproto xtrans libxau virtual/libx11 libxext libxrandr fixesproto damageproto libxfont resourceproto compositeproto xcalibrateext recordproto videoproto scrnsaverproto"
PROVIDES = "virtual/xserver"
-RPROVIDES = "virtual/xserver"
+# RPROVIDES = "virtual/xserver"
PACKAGES = "xserver-kdrive-fbdev xserver-kdrive-fake xserver-kdrive-xephyr ${PN}-doc ${PN}-dev ${PN}-locale"
SECTION = "x11/base"
DESCRIPTION = "X server from freedesktop.org"
@@ -32,6 +32,7 @@ SRC_URI = "http://ftp.x.org/pub/X11R7.1/src/xserver/xorg-server-X11R7.1-1.1.0.ta
SRC_URI_append_mnci = " file://onlyfb.patch;patch=1"
SRC_URI_append_poodle = " file://xserver-kdrive-poodle.patch;patch=1"
+SRC_URI_append_qemux86 = " file://xserver-kdrive-poodle.patch;patch=1"
PACKAGE_ARCH_poodle = "poodle"
S = "${WORKDIR}/xorg-server-X11R7.1-1.1.0"