diff options
author | 2008-12-16 16:21:07 +0000 | |
---|---|---|
committer | 2008-12-16 16:21:07 +0000 | |
commit | 200adfeed7bd64f2f1c61a6be5b6707d504fbd2d (patch) | |
tree | f08983a907f4200692c25b9085c00cf03543815b /app-admin/eselect-boost | |
parent | Marking ffmpeg-0.4.9_p20081014 ppc64 for bug 245285 (diff) | |
download | historical-200adfeed7bd64f2f1c61a6be5b6707d504fbd2d.tar.gz historical-200adfeed7bd64f2f1c61a6be5b6707d504fbd2d.tar.bz2 historical-200adfeed7bd64f2f1c61a6be5b6707d504fbd2d.zip |
Initial commit. Eselect module written by Łukasz Michalik with a few changes made by me.
Package-Manager: portage-2.2_rc17/cvs/Linux 2.6.27.8 x86_64
Diffstat (limited to 'app-admin/eselect-boost')
-rw-r--r-- | app-admin/eselect-boost/ChangeLog | 11 | ||||
-rw-r--r-- | app-admin/eselect-boost/Manifest | 4 | ||||
-rw-r--r-- | app-admin/eselect-boost/eselect-boost-0.1.ebuild | 22 | ||||
-rw-r--r-- | app-admin/eselect-boost/files/boost.eselect-0.1 | 205 | ||||
-rw-r--r-- | app-admin/eselect-boost/metadata.xml | 9 |
5 files changed, 251 insertions, 0 deletions
diff --git a/app-admin/eselect-boost/ChangeLog b/app-admin/eselect-boost/ChangeLog new file mode 100644 index 000000000000..e814e4a07543 --- /dev/null +++ b/app-admin/eselect-boost/ChangeLog @@ -0,0 +1,11 @@ +# ChangeLog for app-admin/eselect-boost +# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/eselect-boost/ChangeLog,v 1.1 2008/12/16 16:21:07 dev-zero Exp $ + +*eselect-boost-0.1 (16 Dec 2008) + + 16 Dec 2008; Tiziano Müller <dev-zero@gentoo.org> + +files/boost.eselect-0.1, +metadata.xml, +eselect-boost-0.1.ebuild: + Initial commit. Eselect module written by Łukasz Michalik with a few + changes made by me. + diff --git a/app-admin/eselect-boost/Manifest b/app-admin/eselect-boost/Manifest new file mode 100644 index 000000000000..8b8b8339c53f --- /dev/null +++ b/app-admin/eselect-boost/Manifest @@ -0,0 +1,4 @@ +AUX boost.eselect-0.1 5998 RMD160 b11a78ceaa780bc95719e10ed061b4ad70027427 SHA1 87c0a485d6c9fbc04a8acbe22b74573ecafd89c0 SHA256 2c7beab604304c2c0a27b6c7761483a0de1ab2f5efc9366fef9b73b39aeacdf4 +EBUILD eselect-boost-0.1.ebuild 658 RMD160 91a098d94717c52636d4cea3bd21bc994d1fcd63 SHA1 8ab612f13797c5d6d521daeb675717ed487db135 SHA256 d7a1683bbd55716df14de3ac3e6b01670e0884ba71e6bfa0b40a62c90e4b8c6e +MISC ChangeLog 473 RMD160 f5eb95507726d1a1cf34de4a05e267b853a07306 SHA1 dd12071b8ce487e633a3327543224f00aee7f6fa SHA256 563c449d05f98f05ac6f03c5bd620092aeee2216979e75225176149b4b6eadc3 +MISC metadata.xml 261 RMD160 5334f981ef24f0e2d90bbf1fc1acfa0861684476 SHA1 9c795ec41d3c4c6c284fc88f292ae04c23083f56 SHA256 3207c8a2b1789cb857ab68170ddb6d4e9e4f970e4a110119e62e7fac0b9f6ddb diff --git a/app-admin/eselect-boost/eselect-boost-0.1.ebuild b/app-admin/eselect-boost/eselect-boost-0.1.ebuild new file mode 100644 index 000000000000..b1ce9a91bcfd --- /dev/null +++ b/app-admin/eselect-boost/eselect-boost-0.1.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-admin/eselect-boost/eselect-boost-0.1.ebuild,v 1.1 2008/12/16 16:21:07 dev-zero Exp $ + +inherit multilib + +DESCRIPTION="boost module for eselect" +HOMEPAGE="http://www.gentoo.org/proj/en/eselect/" +SRC_URI="" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="" + +DEPEND="" +RDEPEND=">=app-admin/eselect-1.0.5" + +src_install() { + local mdir="/usr/share/eselect/modules" + dodir ${mdir} + sed -e "s|%LIBDIR%|$(get_libdir)|g" "${FILESDIR}/boost.eselect-${PVR}" > "${D}${mdir}/boost.eselect" || die "failed to install" +} diff --git a/app-admin/eselect-boost/files/boost.eselect-0.1 b/app-admin/eselect-boost/files/boost.eselect-0.1 new file mode 100644 index 000000000000..c749e1e45de7 --- /dev/null +++ b/app-admin/eselect-boost/files/boost.eselect-0.1 @@ -0,0 +1,205 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id: boost.eselect-0.1,v 1.1 2008/12/16 16:21:07 dev-zero Exp $ + +# This eclass-module has been initially written by Łukasz Michalik <lmi@ift.uni.wroc.pl> +# Corrections and extensions by Tiziano Müller <dev-zero@gentoo.org> + +DESCRIPTION="Manage boost installations" + +_boost_tools="bcp bjam compiler_status inspect library_status process_jam_log quickbook wave" + +find_targets() { + local f + for f in "${ROOT}"/usr/include/boost-[[:digit:]]* ; do + [[ -d "${f}" ]] && echo $(basename "${f}") + done +} + +remove_installation() { + local link + for link in "${ROOT}/usr/include/boost" "${ROOT}/usr/share/boostbook" ; do + if [[ -L "${link}" ]] ; then + rm "${link}" || die -q "Couldn't remove \"${link}\" symlink" + else + [[ -e "${link}" ]] && die -q "\${link}\" exists and isn't a symlink" + fi + done + + pushd "${ROOT}/usr/%LIBDIR%" 1>/dev/null + local lib + for lib in libboost_*.{a,so} ; do + [[ -L "${lib}" && "${lib}" != libboost_*[[:digit:]]_[[:digit:]][[:digit:]].@(a|so) ]] || continue + rm "${lib}" || die -q "Unable to remove \"/usr/%LIBDIR%/${lib}\" symlink" + done + popd 1>/dev/null + + pushd "${ROOT}"/usr/bin 1>/dev/null + local tool + for tool in ${_boost_tools} ; do + [[ -L "${tool}" ]] && ( rm "${tool}" || die -q "Unable to remove \"/usr/bin/${tool}\" symlink" ) + done + popd 1>/dev/null + + local mod="mpi.so" + for moddir in "${ROOT}"/usr/%LIBDIR%/python*/site-packages ; do + if [ -L "${moddir}/${mod}" ] ; then + rm "${moddir}/${mod}" || die -q "Unable to remove \"${moddir}/${mod}\" symlink" + else + [[ -e "${moddir}/${mod}" ]] && die -q "\"${moddir}/${mod}\" exists and isn't a symlink" + fi + done +} + +set_installation() { + [[ -z "${2}" ]] && die -q "Too few parameters to set_installation()" + local target="${1}" + local version="${2}" + + if [[ -d "${ROOT}/usr/include/${target}" ]] ; then + pushd "${ROOT}/usr/include" 1>/dev/null + ln -s "${target}/boost" boost || die -q "Couldn't create symlink \"/usr/include/boost\"" + popd 1>/dev/null + + pushd "${ROOT}/usr/share/" 1>/dev/null + [[ -d "boostbook-${version}" ]] && \ + ( ln -s "boostbook-${version}" "boostbook" || die -q "Couldn't create symlink \"/usr/bin/${tool}\"" ) + popd 1>/dev/null + + pushd "${ROOT}/usr/%LIBDIR%" 1>/dev/null + local lib + for lib in libboost_*-"${version}".{a,so} ; do + [[ -e "${lib}" ]] && \ + ( ln -s "${lib}" "${lib//-${version}}" || die -q "Couldn't create symlink \"/usr/%LIBDIR%/${lib}\"" ) + done + popd 1>/dev/null + + pushd "${ROOT}/usr/bin/" 1>/dev/null + local tool + for tool in ${_boost_tools} ; do + [[ -e "${tool}" ]] && die -q "\"/usr/bin/${tool}\" exists and isn't a symlink" + [[ -e "${tool}-${version}" ]] && \ + ( ln -s "${tool}-${version}" "${tool}" || die -q "Couldn't create symlink \"/usr/bin/${tool}\"" ) + done + popd 1>/dev/null + + local mod="mpi.so" + for moddir in "${ROOT}"/usr/%LIBDIR%/python*/site-packages ; do + pushd "${moddir}" 1>/dev/null + [[ -e "${mod}" ]] && die -q "\"${moddir}/${mod}\" exists and isn't a symlink" + [[ -e "mpi_${version}/mpi.so" ]] && \ + ( ln -s "mpi_${version}/${mod}" "${mod}" || die -q "Couldn't create symlink \"${moddir}/${mod}\"" ) + popd 1>/dev/null + done + + else + die -q "Target \"${target}\" doesn't appear to be valid!" + fi +} + +### show action ### + +describe_show() { + echo "Show the current boost version used" +} + +do_show() { + local include + + write_list_start "Current boost version:" + if [[ -L "${ROOT}"/usr/include/boost ]] ; then + include=$(basename $(dirname $(canonicalise "${ROOT}"/usr/include/boost ))) + write_kv_list_entry "${include%/}" "" + else + write_kv_list_entry "(unset)" "" + fi +} + +### list action ### + +describe_list() { + echo "List available boost versions" +} + +do_list() { + local targets=( $(find_targets ) ) + write_list_start "Available boost versions:" + if [[ -n "${targets[@]}" ]] ; then + local i + for (( i = 0 ; i < ${#targets[@]} ; i = i + 1 )) ; do + [[ "${targets[${i}]}" == $(basename $(dirname $(canonicalise "${ROOT}"/usr/include/boost))) ]] && \ + targets[${i}]="${targets[${i}]} $(highlight '*' )" + done + write_numbered_list "${targets[@]}" + else + write_kv_list_entry "(none found)" "" + fi +} + +### set action ### + +describe_set() { + echo "Set a new boost version" +} + +describe_set_parameters() { + echo "<target>" +} + +describe_set_options() { + echo "target : Target name or number (from 'list' action)" +} + +do_set() { + if [[ -z "${1}" ]] ; then + # no parameter + die -q "You didn't tell me what to set the version to" + fi + + local target="${1}" + if is_number "${target}" ; then + targets=($(find_targets)) + target="${targets[$((${target} - 1))]}" + fi + local version="${target//boost-}" + + if [[ -L "${ROOT}"/usr/include/boost ]] ; then + if ! remove_installation ; then + die -q "Couldn't unset existing installation" + elif ! set_installation "${target}" "${version}" ; then + die -q "Couldn't set a new installation" + fi + elif [[ -e "${ROOT}"/usr/include/boost ]] ; then + die -q "Sorry, existing boost installation confuses me" + else + set_installation "${target}" "${version}" || die -q "Couldn't set a new version" + fi +} + +### update action ### + +describe_update() { + echo "Automaticly update boost version used" +} + +do_update() { + local current= + if [[ -L "${ROOT}/usr/include/boost" ]]; then + current=$(basename $(canonicalise "${ROOT}/usr/include/boost") ) + if [[ ! -e $(canonicalise "${ROOT}/usr/include/boost") ]]; then + # clean up dead symlinks + remove_installation || die -q "Couldn't remove existing installation" + fi + elif [[ -e "${ROOT}/usr/include/boost" ]]; then + die -q "Sorry, \"/usr/include/boost\" exists but is not a symlink" + fi + + local targets=($(find_targets)) + if [[ ${#targets[@]} -gt 0 ]]; then + remove_installation || die -q "Couldn't remove existing installation" + local target="${targets[@]:(-1)}" + set_installation "${target}" "${target//boost-}" || die -q "Couldn't set a new symlink" + else + die -q "No slotted boost version found" + fi +} diff --git a/app-admin/eselect-boost/metadata.xml b/app-admin/eselect-boost/metadata.xml new file mode 100644 index 000000000000..64e111f55791 --- /dev/null +++ b/app-admin/eselect-boost/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>cpp</herd> + <maintainer> + <email>dev-zero@gentoo.org</email> + <name>Tiziano Müller</name> + </maintainer> +</pkgmetadata> |