update eclass

This commit is contained in:
geos_one 2010-11-10 14:42:34 +00:00
parent 945f04315e
commit 37689a72ff
4 changed files with 89 additions and 86 deletions

View File

@ -1,99 +1,113 @@
# Copyright 1999-2006 Gentoo Foundation
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/rpm.eclass,v 1.15 2006/06/27 06:49:09 vapier Exp $
# $Header: /var/cvsroot/gentoo-x86/eclass/rpm.eclass,v 1.20 2010/07/18 21:57:20 vapier Exp $
# Author : Alastair Tse <liquidx@gentoo.org> (21 Jun 2003)
#
# Convienence class for extracting RPMs
#
# Basically, rpm_src_unpack does:
#
# 1. uses rpm_unpack to unpack a rpm file using rpmoffset and cpio
# 2. if it is a source rpm, it finds all .tar .tar.gz, .tgz, .tbz2, .tar.bz2,
# .zip, .ZIP and unpacks them using unpack() (with a little hackery)
# 3. deletes all the unpacked tarballs and zip files from ${WORKDIR}
#
# This ebuild now re-defines a utility function called rpm_unpack which
# basically does what rpm2targz does, except faster. It does not gzip the
# output tar again but directly extracts to ${WORKDIR}
#
# It will autodetect for rpm2cpio (included in app-arch/rpm) and if it exists
# it will use that instead of the less reliable rpmoffset. This means if a
# particular rpm cannot be read using rpmoffset, you just need to put :
#
# DEPEND="app-arch/rpm"
#
# in your ebuild and it will install and use rpm2cpio instead. If you wish
# to force your ebuild to use rpmoffset in the presence of rpm2cpio, define:
#
# USE_RPMOFFSET_ONLY="1"
# @ECLASS: rpm.eclass
# @MAINTAINER:
# base-system@gentoo.org
# @BLURB: convenience class for extracting RPMs
#USE_RPMOFFSET_ONLY=${USE_RPMOFFSET_ONLY-""}
inherit eutils
DEPEND=">=app-arch/rpm5offset-9.0"
# extracts the contents of the RPM in ${WORKDIR}
# @FUNCTION: rpm_unpack
# @USAGE: <rpms>
# @DESCRIPTION:
# Unpack the contents of the specified rpms like the unpack() function.
rpm5_unpack() {
local rpmfile rpmoff decompcmd
rpmfile=$1
if [ -z "${rpmfile}" ]; then
return 1
[[ $# -eq 0 ]] && set -- ${A}
local a rpmoff decompcmd
for a in "$@" ; do
echo ">>> Unpacking ${a} to ${PWD}"
if [[ ${a} == ./* ]] ; then
: nothing to do -- path is local
elif [[ ${a} == ${DISTDIR}/* ]] ; then
ewarn 'QA: do not use ${DISTDIR} with rpm_unpack -- it is added for you'
elif [[ ${a} == /* ]] ; then
ewarn 'QA: do not use full paths with rpm_unpack -- use ./ paths instead'
else
a="${DISTDIR}/${a}"
fi
# if [ -x /usr/bin/rpm2cpio -a -z "${USE_RPMOFFSET_ONLY}" ]; then
# rpm2cpio ${rpmfile} | cpio -idmu --no-preserve-owner --quiet || return 1
# else
rpmoff=`rpm5offset < ${rpmfile}`
# rpm2tar -O "${a}" | tar xf - || die "failure unpacking ${a}"
rpmoff=`rpm5offset < ${a}`
[ -z "${rpmoff}" ] && return 1
decompcmd="lzma -dc"
if [ -n "`dd if=${rpmfile} skip=${rpmoff} bs=1 count=3 2>/dev/null | file - | grep bzip2`" ]; then
if [ -n "`dd if=${a} skip=${rpmoff} bs=1 count=3 2>/dev/null | file - | grep bzip2`" ]; then
decompcmd="bzip2 -dc"
fi
if [ -n "`dd if=${rpmfile} skip=${rpmoff} bs=1 count=3 2>/dev/null | file - | grep gzip`" ]; then
if [ -n "`dd if=${a} skip=${rpmoff} bs=1 count=3 2>/dev/null | file - | grep gzip`" ]; then
decompcmd="gzip -dc"
fi
dd ibs=${rpmoff} skip=1 if=${rpmfile} 2> /dev/null \
dd ibs=${rpmoff} skip=1 if=${a} 2> /dev/null \
| ${decompcmd} \
| cpio -idmu --no-preserve-owner --quiet || return 1
# fi
done
}
# @FUNCTION: srcrpm_unpack
# @USAGE: <rpms>
# @DESCRIPTION:
# Unpack the contents of the specified rpms like the unpack() function as well
# as any archives that it might contain. Note that the secondary archive
# unpack isn't perfect in that it simply unpacks all archives in the working
# directory (with the assumption that there weren't any to start with).
srcrpm5_unpack() {
[[ $# -eq 0 ]] && set -- ${A}
rpm5_unpack "$@"
# no .src.rpm files, then nothing to do
[[ "$* " != *".src.rpm " ]] && return 0
eshopts_push -s nullglob
# unpack everything
local a
for a in *.tar.{gz,bz2} *.t{gz,bz2} *.zip *.ZIP ; do
unpack "./${a}"
rm -f "${a}"
done
eshopts_pop
return 0
}
# @FUNCTION: rpm_src_unpack
# @DESCRIPTION:
# Automatically unpack all archives in ${A} including rpms. If one of the
# archives in a source rpm, then the sub archives will be unpacked as well.
rpm5_src_unpack() {
local x prefix ext myfail OLD_DISTDIR
for x in ${A}; do
myfail="failure unpacking ${x}"
ext=${x##*.}
case "$ext" in
rpm)
echo ">>> Unpacking ${x} to ${WORKDIR}"
prefix=${x%.rpm}
cd ${WORKDIR}
rpm_unpack ${DISTDIR}/${x} || die "${myfail}"
# find all tar.gz files and extract for srpms
if [ "${prefix##*.}" = "src" ]; then
OLD_DISTDIR=${DISTDIR}
DISTDIR=${WORKDIR}
findopts="* -maxdepth 0 -name *.tar"
for t in *.tar.gz *.tgz *.tbz2 *.tar.bz2 *.zip *.ZIP; do
findopts="${findopts} -o -name ${t}"
done
for t in $(find ${findopts} | xargs); do
unpack ${t}
rm -f ${t}
done
DISTDIR=${OLD_DISTDIR}
fi
;;
*)
unpack ${x}
;;
local a
for a in ${A} ; do
case ${a} in
*.rpm) srcrpm5_unpack "${a}" ;;
*) unpack "${a}" ;;
esac
done
}
# @FUNCTION: rpm_spec_epatch
# @USAGE: [spec]
# @DESCRIPTION:
# Read the specified spec (defaults to ${PN}.spec) and attempt to apply
# all the patches listed in it. If the spec does funky things like moving
# files around, well this won't handle that.
rpm5_spec_epatch() {
local p spec=${1:-${PN}.spec}
local dir=${spec%/*}
grep '^%patch' "${spec}" | \
while read line ; do
set -- ${line}
p=$1
shift
EPATCH_OPTS="$*"
set -- $(grep "^P${p#%p}: " "${spec}")
shift
epatch "${dir:+${dir}/}$*"
done
}
EXPORT_FUNCTIONS src_unpack

View File

@ -1,4 +1,4 @@
Novell®GroupWise® 7.0
Novell®GroupWise® 7.0
Novell Software License Agreement
PLEASE READ THIS AGREEMENT CAREFULLY. BY INSTALLING OR OTHERWISE USING THE SOFTWARE, YOU AGREE TO THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE WITH THESE TERMS, DO NOT DOWNLOAD, INSTALL OR USE THE SOFTWARE. THE SOFTWARE MAY NOT BE SOLD, TRANSFERRED, OR FURTHER DISTRIBUTED EXCEPT AS AUTHORIZED BY Novell.

View File

@ -1 +0,0 @@
move net-mail/novell-groupwise-gwclient net-mail/novell-groupwise-client

View File

@ -1,10 +0,0 @@
move net-misc/novell-ncp net-misc/novell-ncpenc
move app-admin/novell-consoleone-advanced-snapin app-admin/novell-advanced-admin
move app-admin/novell-consoleone-ichain-snapin app-admin/novell-ichain-admin
move app-admin/novell-consoleone-ncs-snapin app-admin/novell-ncs-admin
move app-admin/novell-consoleone-nisnfs-snapin app-admin/novell-nisnfs-admin
move app-admin/novell-consoleone-nmas-method-snapin app-admin/novell-nmas-method-admin
move app-admin/novell-consoleone-nmas-snapin app-admin/novell-nmas-admin
move app-admin/novell-consoleone-radius-snapin app-admin/novell-radius-admin
move app-admin/novell-consoleone-rconsolej app-admin/novell-rconsolej
move app-admin/novell-consoleone-unix-account-management-snapin app-admin/novell-unix-admin