diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-09-23 10:22:15 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-09-23 10:22:15 +0100 |
commit | 8b4ace9c50842c5b83401ea7b179dcab940387e1 (patch) | |
tree | 230f3135ceaace633cf93e9838b185c4a6664c2e /app-eselect/eselect-luajit | |
parent | 9ee6d97c2883d42f204a533a8bc1f4562df778fb (diff) |
gentoo resync : 23.09.2020
Diffstat (limited to 'app-eselect/eselect-luajit')
-rw-r--r-- | app-eselect/eselect-luajit/Manifest | 3 | ||||
-rw-r--r-- | app-eselect/eselect-luajit/eselect-luajit-1.ebuild | 24 | ||||
-rw-r--r-- | app-eselect/eselect-luajit/files/luajit-1.eselect | 141 | ||||
-rw-r--r-- | app-eselect/eselect-luajit/metadata.xml | 8 |
4 files changed, 176 insertions, 0 deletions
diff --git a/app-eselect/eselect-luajit/Manifest b/app-eselect/eselect-luajit/Manifest new file mode 100644 index 000000000000..eefbaed2d87c --- /dev/null +++ b/app-eselect/eselect-luajit/Manifest @@ -0,0 +1,3 @@ +AUX luajit-1.eselect 3831 BLAKE2B 8c45b01c3a4ae73e337b7a5f89621e6bdd1c6889dcd67a7a53dfea3b28264955bc9bd1cb7690f55194e312326c9742a533f1a4b5fefd4e1e5c6f8e4d4ec545f0 SHA512 0165d80704a5c8a0a4b0b2f88b722d95e3019f57ccdc23b15ba2bd301c9c7e30cc31198ae9dd819a15b185af9f56f05a23300f27e794f8b27428e3fd415b71d7 +EBUILD eselect-luajit-1.ebuild 517 BLAKE2B 8dc467373707b1f7a7c2f475f6a797fd20fbdb487d756e5118df4d0281be51c4e3515eafd61fe502a11e6626eef743e71a6d4759062802bc7913a4ad9c574ddd SHA512 b39463a9fb68654c259102e8ee89658d54a8b12680a04c68b0e6819a112f5ea341381361655bfa3d4e4648e4e57eadcc4a5c678902f74e588d0ffb379a1de179 +MISC metadata.xml 258 BLAKE2B c9d41f235ff5268faadf1490ac88a639ead04bc9370d4a9526768d0b717d271760fdfb108aeca184224520f267c87788f888fead6b6e0b2baa0610146e2f4179 SHA512 79a8777af770b37b175ce865feba8ca73e60d5ac37467ed15e193d5759400f61e5059a1f102913d3df14e33bba1cdf6fdf186a4ff611b1fb9d8318955356bb9d diff --git a/app-eselect/eselect-luajit/eselect-luajit-1.ebuild b/app-eselect/eselect-luajit/eselect-luajit-1.ebuild new file mode 100644 index 000000000000..8af9b87635fd --- /dev/null +++ b/app-eselect/eselect-luajit/eselect-luajit-1.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Manages LuaJIT symlinks" +HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage" +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux" +IUSE="" + +RDEPEND=" + >=app-admin/eselect-1.2.4 +" + +S="${WORKDIR}" + +src_install() { + insinto /usr/share/eselect/modules + newins "${FILESDIR}/luajit-${PV}.eselect" luajit.eselect || die "newins failed" +} diff --git a/app-eselect/eselect-luajit/files/luajit-1.eselect b/app-eselect/eselect-luajit/files/luajit-1.eselect new file mode 100644 index 000000000000..327e3d73a9ec --- /dev/null +++ b/app-eselect/eselect-luajit/files/luajit-1.eselect @@ -0,0 +1,141 @@ +# -*-eselect-*- vim: ft=eselect +# Copyright 2005-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 or later +# $Id: luajit.eselect mva $ + +inherit config multilib + +DESCRIPTION="Manage the LuaJIT symlink" +MAINTAINER="mva@gentoo.org" +VERSION="1" + +# sort function for luajit versions, to be used in a pipe +sort_luajit_versions() { + local vsort="sort --version-sort" + ${vsort} </dev/null &>/dev/null || vsort=sort + sed -e 's/^\(luajit-\)\?\([[:digit:].]\+\)[-_]beta/\2 0 &/' \ + -e 't;s/^\(luajit-\)\?\([[:digit:].]\+\)/\2 1 &/' \ + | LC_ALL=C ${vsort} | sed 's/.* //' +} + +# find a list of luajit symlink targets +find_targets() { + local f + for f in $(find "${EROOT}"/usr/bin/ -type f -iname 'luajit-[[:digit:]]*'); do + basename "${f}" + done | sort_luajit_versions +} + +get_libdirs() { + local dir libdirs + for dir in $(list_libdirs); do + [[ -L ${EROOT}/usr/${dir} ]] && continue + ls "${EROOT}"/usr/${dir}/libluajit*.* > /dev/null 2>&1 || continue + + libdirs+=' '/usr/${dir} + done + echo ${libdirs:-/usr/lib} +} + + +# remove the luajit symlink +remove_symlinks() { + for dir in $(get_libdirs) ; do + [[ -L "${dir}/libluajit-5.1.so" ]] && rm "${dir}/libluajit-5.1.so" + [[ -L "${dir}/libluajit-5.1.a" ]] && rm "${dir}/libluajit-5.1.a" + [[ -L "${dir}/pkgconfig/luajit.pc" ]] && rm "${dir}/pkgconfig/luajit.pc" + done + [[ -L "${EROOT}/usr/bin/luajit" ]] && rm "${EROOT}/usr/bin/luajit" + rm -f "${EROOT}"/usr/share/man/man1/luajit.1{,.gz,.bz2,.lzma} &>/dev/null +} + +# set the luajit symlink +set_symlinks() { + local target=$1 + + if is_number "${target}"; then + local targets=( $(find_targets) ) + target=${targets[target-1]} + fi + + if [[ -z ${target} ]]; then + die -q "Target \"$1\" doesn't appear to be valid!" + elif [[ -f ${EROOT}/usr/bin/${target} ]]; then + ln -s "${target}" "${EROOT}/usr/bin/luajit" + for dir in $(get_libdirs) ; do + [[ -e "${dir}/lib${target}.so" ]] && ln -s "lib${target}.so" "${dir}/libluajit-5.1.so" + [[ -e "${dir}/lib${target}.a" ]] && ln -s "lib${target}.a" "${dir}/libluajit-5.1.a" + [[ -e "${dir}/pkgconfig/${target}.pc" ]] && ln -s "${target}.pc" "${dir}/pkgconfig/luajit.pc" + done + for orig in "${EROOT}"/usr/share/man/man1/$target.1* ; do + ln -s "$(basename ${orig})" "${orig/$target/luajit}" + done + else + die -q "Target \"$1\" doesn't appear to be valid!" + fi +} + +### show action ### + +describe_show() { + echo "Show the current luajit symlink" +} + +do_show() { + write_list_start "Current luajit symlink:" + if [[ -L ${EROOT}/usr/bin/luajit ]]; then + local SV=$(readlink "${EROOT}/usr/bin/luajit") + write_kv_list_entry "${SV%/}" + else + write_kv_list_entry "(unset)" + fi +} + +### list action ### + +describe_list() { + echo "List available luajit symlink targets" +} + +do_list() { + local i targets=( $(find_targets) ) + + write_list_start "Available luajit symlink targets:" + local SV=$(readlink "${EROOT}/usr/bin/luajit") + for (( i = 0; i < ${#targets[@]}; i++ )); do + [[ ${targets[i]} = \ + $(basename "${SV}") ]] \ + && targets[i]=$(highlight_marker "${targets[i]}") + done + write_numbered_list -m "(none found)" "${targets[@]}" +} + +### set action ### + +describe_set() { + echo "Set a new luajit symlink target" +} + +describe_set_parameters() { + echo "<target>" +} + +describe_set_options() { + echo "target : Target name or number (from 'list' action)" +} + +do_set() { + [[ -z $1 ]] && die -q "You didn't tell me what to set the symlink to" + [[ $# -gt 1 ]] && die -q "Too many parameters" + + if [[ -L ${EROOT}/usr/bin/luajit ]]; then + # existing symlink + remove_symlinks || die -q "Couldn't remove existing symlink" + set_symlinks "$1" || die -q "Couldn't set a new symlink" + elif [[ -e ${EROOT}/usr/bin/luajit ]]; then + # we have something strange + die -q "${EROOT}/usr/bin/luajit exists but is not a symlink" + else + set_symlinks "$1" || die -q "Couldn't set a new symlink" + fi +} diff --git a/app-eselect/eselect-luajit/metadata.xml b/app-eselect/eselect-luajit/metadata.xml new file mode 100644 index 000000000000..b0783342d4b3 --- /dev/null +++ b/app-eselect/eselect-luajit/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>mva@gentoo.org</email> + <name>Vadim Misbakh-Soloviov</name> + </maintainer> +</pkgmetadata> |