diff options
Diffstat (limited to 'bin/quickpkg')
-rwxr-xr-x | bin/quickpkg | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/bin/quickpkg b/bin/quickpkg deleted file mode 100755 index 9cb5c73..0000000 --- a/bin/quickpkg +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/bash -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /local/data/ulm/cvs/history/var/cvsroot/gentoo-src/portage/bin/quickpkg,v 1.16 2005/04/12 22:37:12 vapier Exp $ - -# This script tries to quickly create a Gentoo binary package using the -# VDB_PATH/category/pkg/* files -# -# Resulting tbz2 file will be created in ${PKGDIR} ... -# default is /usr/portage/packages/All/ - -if [ "`whoami`" != "root" ] ; then - echo "You must run this as root" - exit 1 -fi - -export PORTAGE_DB="$(portageq vdb_path)" -if [ -z $1 ] || [ $1 == "-h" ] || [ $1 == "--help" ] ; then - echo "QUICKPKG ver 1.2" - echo "USAGE: quickpkg <list of pkgs>" - echo " a pkg can be of the form:" - echo " - ${PORTAGE_DB}/<CATEGORY>/<PKG-VERSION>/" - echo " - single depend-type atom ..." - echo " if portage can emerge it, quickpkg can make a package" - echo " for exact definitions of depend atoms, see ebuild(5)" - echo - echo "EXAMPLE:" - echo " quickpkg ${PORTAGE_DB}/net-www/apache-1.3.27-r1" - echo " package up apache, just version 1.3.27-r1" - echo " quickpkg apache" - echo " package up apache, all versions of apache installed" - echo " quickpkg =apache-1.3.27-r1" - echo " package up apache, just version 1.3.27-r1" - exit 1 -fi - -export PKGDIR="`portageq envvar PKGDIR`" -export PORTAGE_TMPDIR="`portageq envvar PORTAGE_TMPDIR`" - -source /sbin/functions.sh - -# here we make a package given a little info -# $1 = package-name w/version -# $2 = category -do_pkg() { - mkdir -p "${PORTAGE_TMPDIR}/binpkgs" || exit 1 - chmod 0750 "${PORTAGE_TMPDIR}/binpkgs" - MYDIR="${PORTAGE_TMPDIR}/binpkgs/$1" - SRCDIR="${PORTAGE_DB}/$2/$1" - LOG="${PORTAGE_TMPDIR}/binpkgs/$1-quickpkglog" - - ebegin "Building package for $1" - ( - # clean up temp directory - rm -rf ${MYDIR} - - # get pkg info files - mkdir -p ${MYDIR}/temp - cp ${SRCDIR}/* ${MYDIR}/temp/ - - # create filelist and a basic tbz2 - awk '{ - if ($1 != "dir") { - if ($1 == "obj") - NF=NF-2 - else if ($1 == "sym") - NF=NF-3 - print - } - }' ${SRCDIR}/CONTENTS | cut -f2- -d" " - > ${MYDIR}/filelist - tar -vjcf ${MYDIR}/bin.tar.bz2 --files-from=${MYDIR}/filelist --no-recursion - - # join together the basic tbz2 and the pkg info files - xpak ${MYDIR}/temp ${MYDIR}/inf.xpak - tbz2tool join ${MYDIR}/bin.tar.bz2 ${MYDIR}/inf.xpak ${MYDIR}/$1.tbz2 - - # move the final binary package to PKGDIR - [ -d ${PKGDIR}/All ] || mkdir -p ${PKGDIR}/All - [ -d ${PKGDIR}/$2 ] || mkdir -p ${PKGDIR}/$2 - mv ${MYDIR}/$1.tbz2 ${PKGDIR}/All - ( cd ${PKGDIR}/$2 && ln -s ../All/$1.tbz2 ) - - # cleanup again - rm -rf ${MYDIR} - ) >& ${LOG} - - if [ -e ${PKGDIR}/All/$1.tbz2 ] ; then - rm -f ${LOG} - PKGSTATS="${PKGSTATS}"$'\n'"$(einfo $1: `ls -alh ${PKGDIR}/All/$1.tbz2 | awk '{print $5}'`)" - eend 0 - else - cat ${LOG} - PKGSTATS="${PKGSTATS}"$'\n'"$(ewarn $1: not created)" - eend 1 - fi -} - -# here we parse the parameters given to use on the cmdline -export PKGERROR="" -export PKGSTATS="" -for x in "$@" ; do - - # they gave us full path - if [ -e ${x}/CONTENTS ] ; then - x="`readlink -f $x`" - pkg="`echo ${x} | cut -d/ -f6`" - cat="`echo ${x} | cut -d/ -f5`" - do_pkg ${pkg} ${cat} - - # lets figure out what they want - else - DIRLIST="`portageq match / ${x}`" - if [ -z "${DIRLIST}" ] ; then - eerror "Could not find anything to match '${x}'; skipping" - export PKGERROR="${PKGERROR} ${x}" - continue - fi - - for d in ${DIRLIST} ; do - pkg="`echo ${d} | cut -d/ -f2`" - cat="`echo ${d} | cut -d/ -f1`" - if [ -f "${PORTAGE_DB}/${cat}/${pkg}/CONTENTS" ] ; then - do_pkg ${pkg} ${cat} - elif [ -d "${PORTAGE_DB}/${cat}/${pkg}" ] ; then - ewarn "Package '${cat}/${pkg}' was injected; skipping" - else - eerror "Unhandled case (${cat}/${pkg}) !" - eerror "Please file a bug at http://bugs.gentoo.org/" - exit 10 - fi - done - fi - -done - -if [ -z "${PKGSTATS}" ] ; then - eerror "No packages found" - exit 1 -else - echo $'\n'"$(einfo Packages now in ${PKGDIR}:)${PKGSTATS}" -fi -if [ ! -z "${PKGERROR}" ] ; then - ewarn "The following packages could not be found:" - ewarn "${PKGERROR}" - exit 2 -fi |