From 37689a72ff708d4addb441421acd5659d1f9e4ae Mon Sep 17 00:00:00 2001 From: geos_one Date: Wed, 10 Nov 2010 14:42:34 +0000 Subject: [PATCH] update eclass --- trunk/novell4gentoo/eclass/rpm5.eclass | 160 ++++++++++++----------- trunk/novell4gentoo/licenses/Novell-GW-7 | 4 +- trunk/novell4gentoo/profiles/1Q-2010-n4g | 1 - trunk/novell4gentoo/profiles/4Q-2009-n4g | 10 -- 4 files changed, 89 insertions(+), 86 deletions(-) delete mode 100644 trunk/novell4gentoo/profiles/1Q-2010-n4g delete mode 100644 trunk/novell4gentoo/profiles/4Q-2009-n4g diff --git a/trunk/novell4gentoo/eclass/rpm5.eclass b/trunk/novell4gentoo/eclass/rpm5.eclass index b93481c..8a7f884 100644 --- a/trunk/novell4gentoo/eclass/rpm5.eclass +++ b/trunk/novell4gentoo/eclass/rpm5.eclass @@ -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 (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: +# @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 - 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}` + [[ $# -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 +# 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: +# @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 diff --git a/trunk/novell4gentoo/licenses/Novell-GW-7 b/trunk/novell4gentoo/licenses/Novell-GW-7 index 6fbb047..bfe7c20 100644 --- a/trunk/novell4gentoo/licenses/Novell-GW-7 +++ b/trunk/novell4gentoo/licenses/Novell-GW-7 @@ -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. @@ -76,4 +76,4 @@ Other. The application of the United Nations Convention of Contracts for the In © 1993, 2000-2005 Novell, Inc. All Rights Reserved. (052605) -Novell and GroupWise are registered trademarks and eDirectory is a trademark of Novell, Inc. in the United States and other countries. +Novell and GroupWise are registered trademarks and eDirectory is a trademark of Novell, Inc. in the United States and other countries. \ No newline at end of file diff --git a/trunk/novell4gentoo/profiles/1Q-2010-n4g b/trunk/novell4gentoo/profiles/1Q-2010-n4g deleted file mode 100644 index f60c830..0000000 --- a/trunk/novell4gentoo/profiles/1Q-2010-n4g +++ /dev/null @@ -1 +0,0 @@ -move net-mail/novell-groupwise-gwclient net-mail/novell-groupwise-client \ No newline at end of file diff --git a/trunk/novell4gentoo/profiles/4Q-2009-n4g b/trunk/novell4gentoo/profiles/4Q-2009-n4g deleted file mode 100644 index f1806c6..0000000 --- a/trunk/novell4gentoo/profiles/4Q-2009-n4g +++ /dev/null @@ -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