PKGWRITEDIRDEB = "${WORKDIR}/deploy-debs"
-python package_deb_fn () {
- d.setVar('PKGFN', d.getVar('PKG'))
-}
-
-addtask package_deb_install
-python do_package_deb_install () {
- pkg = d.getVar('PKG', True)
- pkgfn = d.getVar('PKGFN', True)
- rootfs = d.getVar('IMAGE_ROOTFS', True)
- debdir = d.getVar('DEPLOY_DIR_DEB', True)
- apt_config = d.expand('${STAGING_ETCDIR_NATIVE}/apt/apt.conf')
- stagingbindir = d.getVar('STAGING_BINDIR_NATIVE', True)
- tmpdir = d.getVar('TMPDIR', True)
-
- 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:
- import sys
- 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(tmpdir, "stamps", "DEB_PACKAGE_INDEX_CLEAN"), "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_backup = os.getenv('APT_CONFIG')
- os.putenv('APT_CONFIG', apt_config)
- 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_backup)
- os.putenv('PATH', path)
-}
-
#
# Update the Packages index files in ${DEPLOY_DIR_DEB}
#
OPKGLIBDIR = "${localstatedir}/lib"
-python package_ipk_fn () {
- d.setVar('PKGFN', d.getVar('PKG'))
-}
-
-python package_ipk_install () {
- import subprocess
-
- pkg = d.getVar('PKG', True)
- pkgfn = d.getVar('PKGFN', True)
- rootfs = d.getVar('IMAGE_ROOTFS', True)
- ipkdir = d.getVar('DEPLOY_DIR_IPK', True)
- stagingdir = d.getVar('STAGING_DIR', True)
- tmpdir = d.getVar('TMPDIR', True)
-
- if None in (pkg,pkgfn,rootfs):
- raise bb.build.FuncFailed("missing variables (one or more of PKG, PKGFN, IMAGEROOTFS)")
- try:
- bb.mkdirhier(rootfs)
- os.chdir(rootfs)
- except OSError:
- import sys
- (type, value, traceback) = sys.exc_info()
- print value
- raise bb.build.FuncFailed
-
- # 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 = d.getVar('PACKAGE_ARCHS')
- if ipkg_archs is None:
- bb.error("PACKAGE_ARCHS missing")
- raise FuncFailed
- ipkg_archs = ipkg_archs.split()
- arch_priority = 1
-
- f = open(conffile,"w")
- for arch in ipkg_archs:
- f.write("arch %s %s\n" % ( arch, arch_priority ))
- arch_priority += 1
- f.write("src local file:%s" % ipkdir)
- f.close()
-
-
- if not os.access(os.path.join(ipkdir,"Packages"), os.R_OK) or not os.access(os.path.join(tmpdir, "stamps", "IPK_PACKAGE_INDEX_CLEAN"),os.R_OK):
- ret = subprocess.call('opkg-make-index -p %s %s ' % (os.path.join(ipkdir, "Packages"), ipkdir), shell=True)
- if (ret != 0 ):
- raise bb.build.FuncFailed
- f = open(os.path.join(tmpdir, "stamps", "IPK_PACKAGE_INDEX_CLEAN"),"w")
- f.close()
-
- ret = subprocess.call('opkg-cl -o %s -f %s update' % (rootfs, conffile), shell=True)
- ret = subprocess.call('opkg-cl -o %s -f %s install %s' % (rootfs, conffile, pkgfn), shell=True)
- if (ret != 0 ):
- raise bb.build.FuncFailed
-}
-
package_tryout_install_multilib_ipk() {
#try install multilib
multilib_tryout_dirs=""
PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms"
PKGWRITEDIRSRPM = "${DEPLOY_DIR}/sources/deploy-srpm"
-python package_rpm_fn () {
- d.setVar('PKGFN', d.getVar('PKG'))
-}
-
-python package_rpm_install () {
- bb.fatal("package_rpm_install not implemented!")
-}
-
#
# Update the packages indexes ${DEPLOY_DIR_RPM}
#
d.setVar('PKGFN', fn)
}
-python package_tar_install () {
- import subprocess
- pkg = d.getVar('PKG', True)
- pkgfn = d.getVar('PKGFN', True)
- rootfs = d.getVar('IMAGE_ROOTFS', True)
-
- if None in (pkg,pkgfn,rootfs):
- bb.error("missing variables (one or more of PKG, PKGFN, IMAGEROOTFS)")
- raise bb.build.FuncFailed
- try:
- bb.mkdirhier(rootfs)
- os.chdir(rootfs)
- except OSError:
- import sys
- (type, value, traceback) = sys.exc_info()
- print value
- raise bb.build.FuncFailed
-
- if not os.access(pkgfn, os.R_OK):
- bb.debug(1, "%s does not exist, skipping" % pkgfn)
- raise bb.build.FuncFailed
-
- ret = subprocess.call('zcat %s | tar -xf -' % pkgfn, shell=True)
- if ret != 0:
- raise bb.build.FuncFailed
-}
-
python do_package_tar () {
import subprocess
workdir = d.getVar('WORKDIR', True)