#!/bin/bash -e OLD_PWD=${PWD} source /lib/gentoo/functions.sh || true if [ -z "$1" ]; then echo "usage: $0 /var/cache/binpkgs/dev-java/openjdk/openjdk-X.X.X.X-N.gpkg.tar [-rX]" exit 1 fi GPKG=$(realpath -e "$1") ebegin "Creating temporary directory" TMP=$(mktemp --tmpdir -d openjdk.XXXXXXXXXX) trap 'rm -rf "${TMP}"' EXIT cd "${TMP}" eend $? # gpkg layout: /{gpkg-1,metadata.tar.,image.tar.,Manifest} # with optional .sig files; the inner basename may contain a build-id suffix ebegin "Unpacking gpkg container" tar -xf "${GPKG}" --wildcards --exclude='*.sig' '*/metadata.tar.*' '*/image.tar.*' METADATA_TAR=( */metadata.tar.* ) IMAGE_TAR=( */image.tar.* ) [[ -f ${METADATA_TAR[0]} && -f ${IMAGE_TAR[0]} ]] eend $? ebegin "Reading package environment" eval "$(tar -xOf "${METADATA_TAR[0]}" metadata/environment.bz2 | bunzip2)" eend $? if ! declare -F get_libdir >/dev/null; then get_libdir() { local libdir_var=LIBDIR_${ABI} echo "${!libdir_var:-lib}" } fi ebegin "Extracting package files" tar -xf "${IMAGE_TAR[0]}" --strip-components=1 rm -f "${METADATA_TAR[0]}" "${IMAGE_TAR[0]}" eend $? LIB=usr/$(get_libdir)/${PN}-${SLOT} case "${CHOST%%-*}" in powerpc*le) abi=${ABI}le ;; *) abi=${ABI} ;; esac use() { local re="\b${1}\b" [[ ${USE} =~ ${re} ]] } do_tar() { local DIR=${PN}-bootstrap-${PV} [[ $1 = *-${abi} ]] && DIR+=-${ABI} TARBALL=${PN}-bootstrap-$1-${abi}.tar.xz shift ebegin "Creating ${TARBALL}" tar Jcf "${OLD_PWD}/${TARBALL}" \ --owner=root --group=root \ --transform="s:^${LIB}:${DIR}:x" \ --remove-files \ "${@}" eend $? } do_tar "${PV}${2}" "${LIB}"