mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-23 05:53:12 -04:00
Merge updates from master
This commit is contained in:
@@ -66,11 +66,6 @@ dev-python/python-qpid-proton
|
|||||||
dev-python/tinyrpc
|
dev-python/tinyrpc
|
||||||
dev-python/zVMCloudConnector
|
dev-python/zVMCloudConnector
|
||||||
|
|
||||||
# Viorel Munteanu <ceamac@gentoo.org> (2023-01-29)
|
|
||||||
# Very outdated live version
|
|
||||||
# See also this discussion: https://github.com/gentoo/guru/commit/10a1f43a0ebe867718744de54cb17fde32e4c329
|
|
||||||
sys-apps/paludis
|
|
||||||
|
|
||||||
# Julien Roy <julien@jroy.ca> (2023-01-25)
|
# Julien Roy <julien@jroy.ca> (2023-01-25)
|
||||||
# Requires <dev-python/coverage-7, which is no longer available in ::gentoo.
|
# Requires <dev-python/coverage-7, which is no longer available in ::gentoo.
|
||||||
# Upstream bug: https://github.com/TheKevJames/coveralls-python/issues/377
|
# Upstream bug: https://github.com/TheKevJames/coveralls-python/issues/377
|
||||||
|
|||||||
@@ -1,508 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# vim: set et sw=4 sts=4 ts=4 ft=sh :
|
|
||||||
|
|
||||||
# Copyright (c) 2006-2008, 2010 Mike Kelly <pioto@pioto.org>
|
|
||||||
#
|
|
||||||
# This file is part of the Paludis package manager. Paludis is free software;
|
|
||||||
# you can redistribute it and/or modify it under the terms of the GNU General
|
|
||||||
# Public License, version 2, as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
||||||
# details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License along with
|
|
||||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
|
||||||
# Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
# FUNCTIONS #
|
|
||||||
|
|
||||||
# appends a line of the form key="value" to the given filename under
|
|
||||||
# $outputdir. For use on files like bashrc
|
|
||||||
function append_shell_var() {
|
|
||||||
local key="${1}" value="${2}" filename="${outputdir}/${3}"
|
|
||||||
|
|
||||||
[[ -f "${filename}" ]] || cat <<- EOF > "${filename}"
|
|
||||||
# $(basename ${filename})
|
|
||||||
# This file created by $(basename ${0})
|
|
||||||
EOF
|
|
||||||
|
|
||||||
[[ -z "${value}" ]] \
|
|
||||||
|| echo "${key}=\"${value}\"" >> "${filename}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# appends a line of the form pkgname value to the given filename under
|
|
||||||
# $outputdir. For use on files like use.conf
|
|
||||||
function append_pkg_var() {
|
|
||||||
local pkgname="${1}" value="${2}" filename="${outputdir}/${3}"
|
|
||||||
|
|
||||||
[[ -f "${filename}" ]] || cat <<- EOF > "${filename}"
|
|
||||||
# $(basename ${filename})
|
|
||||||
# This file created by $(basename ${0})
|
|
||||||
EOF
|
|
||||||
|
|
||||||
[[ -z "${value}" ]] \
|
|
||||||
|| echo "${pkgname} ${value}" >> "${filename}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Given a file path, will attempt to determine a sync url for a paludis
|
|
||||||
# repository config file.
|
|
||||||
function get_sync_url() {
|
|
||||||
local path="${1}"
|
|
||||||
|
|
||||||
if [[ -d "${path}/.svn" ]] ; then
|
|
||||||
url=$(env LANG=C svn info "${path}" | grep -i "^url" | cut -d" " -f2)
|
|
||||||
case ${url} in
|
|
||||||
http://*|https://*)
|
|
||||||
echo "svn+${url}"
|
|
||||||
;;
|
|
||||||
svn://*|svn+ssh://*)
|
|
||||||
echo "${url}"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
elif [[ -d "${path}/CVS" ]] ; then
|
|
||||||
return 1
|
|
||||||
elif [[ -d "${path}/.git" ]] ; then
|
|
||||||
url=$(git config -f "${path}/.git/config" remote.origin.url)
|
|
||||||
if [[ -z "${url}" ]]; then
|
|
||||||
url=$(grep -i "^url:" "${path}/.git/remotes/origin" | cut -d" " -f2)
|
|
||||||
fi
|
|
||||||
case ${url} in
|
|
||||||
http://*|file://*|https://*|rsync://*|ssh://*)
|
|
||||||
echo "git+${url}"
|
|
||||||
;;
|
|
||||||
/*)
|
|
||||||
echo "git+file://${url}"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
elif [[ -d "${path}/_darcs" ]] ; then
|
|
||||||
url=$( < "${path}/_darcs/prefs/defaultrepo" )
|
|
||||||
case ${url} in
|
|
||||||
http://?*)
|
|
||||||
echo "darcs+${url}"
|
|
||||||
;;
|
|
||||||
# some other kind of URL, not supported
|
|
||||||
?*://?*)
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
# needs at least two chars before the colon, otherwise
|
|
||||||
# Darcs thinks it's a Windowsesque filename
|
|
||||||
??*:*)
|
|
||||||
echo "darcs+ssh://${url}"
|
|
||||||
;;
|
|
||||||
# local file
|
|
||||||
*)
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Given a file path, will separate comments from the rest
|
|
||||||
# and output the result on stdout
|
|
||||||
function split_comments() {
|
|
||||||
sed 's/^\([^#]\+\)#\(.\+\)$/#\2\n\1/' $1
|
|
||||||
}
|
|
||||||
|
|
||||||
# needs 3 params, value to test, var to show if true, var to show if false
|
|
||||||
# basically, acts like the ? ... : ... operator in C
|
|
||||||
qmark_oper() {
|
|
||||||
if [[ "${1}" == "y" ]] ; then
|
|
||||||
echo "${2}"
|
|
||||||
else
|
|
||||||
echo "${3}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
canonicalise() {
|
|
||||||
case $(uname -s) in
|
|
||||||
FreeBSD) realpath $@ ;;
|
|
||||||
*) readlink -f $@ ;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# MAIN #
|
|
||||||
|
|
||||||
bad=
|
|
||||||
|
|
||||||
# Ask the user for an output directory.
|
|
||||||
|
|
||||||
echo "Portage2Paludis:"
|
|
||||||
echo
|
|
||||||
echo "This script will attempt to convert an existing portage configuration to"
|
|
||||||
echo "a paludis configuration. It assumes that the portage configuration can"
|
|
||||||
echo "be found via /etc/make.conf, /etc/make.profile, and /etc/portage/*"
|
|
||||||
echo
|
|
||||||
echo "WARNING: This script is still a work in progress. Do not expect it to"
|
|
||||||
echo "make completely sane decisions when migrating. Always check the produced"
|
|
||||||
echo "output yourself afterwards. Report any bugs you find to:"
|
|
||||||
echo " Mike Kelly <pioto@pioto.org>"
|
|
||||||
|
|
||||||
if [[ "$(id -u)" -ne 0 ]] ; then
|
|
||||||
echo
|
|
||||||
echo "WARNING: This script will touch some of the repositories directly."
|
|
||||||
echo "It is highly recommended that you run it as root."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Please enter where you would like your new paludis configuration to be"
|
|
||||||
echo "created, or press enter to use the default."
|
|
||||||
echo
|
|
||||||
read -e -p "Paludis Config Directory [/etc/paludis]: " outputdir
|
|
||||||
echo
|
|
||||||
outputdir="${outputdir:-/etc/paludis}"
|
|
||||||
|
|
||||||
if [[ -d "${outputdir}" ]] ; then
|
|
||||||
echo "An existing paludis config was found at ${outputdir}." 1>&2
|
|
||||||
echo "Aborting." 1>&2
|
|
||||||
exit 1
|
|
||||||
elif [[ -e "${outputdir}" ]] ; then
|
|
||||||
echo "A file already exists where you wanted to install your paludis" 1>&2
|
|
||||||
echo "configuration. Please remove it and try again. Aborting." 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
mkdir -p "${outputdir}" || exit 1
|
|
||||||
|
|
||||||
echo "Starting with Paludis 0.12.0, 3 optional caches were added:"
|
|
||||||
echo
|
|
||||||
echo " A names cache, which makes finding a category/package name faster when"
|
|
||||||
echo " just given the package name."
|
|
||||||
echo
|
|
||||||
echo " A provides cache, which makes searching for which packages provide"
|
|
||||||
echo " a given virtual faster."
|
|
||||||
echo
|
|
||||||
echo " A locally-generated metadata cache. Before, Paludis could use a"
|
|
||||||
echo " metadata cache that already existed, but now it can also generate"
|
|
||||||
echo " one on-the-fly, caching metadata for subsequent runs."
|
|
||||||
echo
|
|
||||||
echo "Before enabling any of these, read: http://paludis.pioto.org/overview/gettingstarted.html#repositories"
|
|
||||||
echo
|
|
||||||
|
|
||||||
read -n1 -p "Enable names cache? [y/N] " names_cache
|
|
||||||
echo
|
|
||||||
names_cache=${names_cache:-n}
|
|
||||||
|
|
||||||
read -n1 -p "Enable provides cache? [y/N] " provides_cache
|
|
||||||
echo
|
|
||||||
provides_cache=${provides_cache:-n}
|
|
||||||
|
|
||||||
read -n1 -p "Enable local metadata cache (write_cache)? [y/N] " write_cache
|
|
||||||
echo
|
|
||||||
write_cache=${write_cache:-n}
|
|
||||||
[[ "${write_cache}" == "y" ]] && mkdir -p "/var/cache/paludis/metadata"
|
|
||||||
|
|
||||||
echo "* Configuration Files:"
|
|
||||||
|
|
||||||
source_make_conf() {
|
|
||||||
[[ -e /etc/make.conf ]] && source /etc/make.conf
|
|
||||||
[[ -e /etc/portage/make.conf ]] && source /etc/portage/make.conf
|
|
||||||
}
|
|
||||||
|
|
||||||
echo -n "Generating use.conf (Pass 1 of 3)... "
|
|
||||||
append_pkg_var "*/*" "$(source_make_conf ; echo ${USE})" "use.conf"
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating use.conf (Pass 2 of 3)... "
|
|
||||||
for x in $(portageq envvar USE_EXPAND) ; do
|
|
||||||
val_x=$(source_make_conf ; echo ${!x})
|
|
||||||
if [[ -n "${val_x}" ]] ; then
|
|
||||||
append_pkg_var "*/*" "${x}: -* ${val_x}" "use.conf"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating use.conf (Pass 3 of 3)... "
|
|
||||||
if [[ -f "/etc/portage/package.use" ]]; then
|
|
||||||
split_comments "/etc/portage/package.use" >>"${outputdir}/use.conf"
|
|
||||||
elif [[ -d "/etc/portage/package.use" ]]; then
|
|
||||||
mkdir -p "${outputdir}/use.conf.d"
|
|
||||||
for f in $(cd /etc/portage/package.use/; find -type f)
|
|
||||||
do
|
|
||||||
mkdir -p "${outputdir}/use.conf.d/$(dirname ${f})"
|
|
||||||
split_comments "/etc/portage/package.use/${f}" >>"${outputdir}/use.conf.d/${f}.conf"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating bashrc (Pass 1 of 1)... "
|
|
||||||
cflags="$(portageq envvar CFLAGS)"
|
|
||||||
cxxflags="$(portageq envvar CXXFLAGS)"
|
|
||||||
[[ "${cxxflags}" == "${cflags}" ]] && cxxflags="\${CFLAGS}"
|
|
||||||
append_shell_var "CHOST" "$(portageq envvar CHOST)" "bashrc"
|
|
||||||
append_shell_var "CFLAGS" "${cflags}" "bashrc"
|
|
||||||
append_shell_var "CXXFLAGS" "${cxxflags}" "bashrc"
|
|
||||||
append_shell_var "LDFLAGS" "$(portageq envvar LDFLAGS)" "bashrc"
|
|
||||||
append_shell_var "MAKEOPTS" "$(portageq envvar MAKEOPTS)" "bashrc"
|
|
||||||
append_shell_var "KBUILD_OUTPUT" "$(portageq envvar KBUILD_OUTPUT)" "bashrc"
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating keywords.conf (Pass 1 of 2)... "
|
|
||||||
append_pkg_var "*/*" "$(portageq envvar ACCEPT_KEYWORDS)" "keywords.conf"
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating keywords.conf (Pass 2 of 2)... "
|
|
||||||
for keywords_path in /etc/portage/package.{,accept_}keywords
|
|
||||||
do
|
|
||||||
if [[ -f "${keywords_path}" ]]; then
|
|
||||||
split_comments "${keywords_path}" \
|
|
||||||
| sed 's,\*\*,*,' \
|
|
||||||
| sed 's/^\([^#].*\/[^[:space:]]*\)$/\1 ~'$(portageq envvar ARCH)'/' \
|
|
||||||
>>"${outputdir}/keywords.conf"
|
|
||||||
elif [[ -d "${keywords_path}" ]]; then
|
|
||||||
[[ -e "${outputdir}/keywords.conf.d" ]] \
|
|
||||||
|| mkdir "${outputdir}/keywords.conf.d"
|
|
||||||
for f in $(cd "${keywords_path}/" ; find -type f)
|
|
||||||
do
|
|
||||||
mkdir -p "${outputdir}/keywords.conf.d/$(dirname ${f})"
|
|
||||||
split_comments "${keywords_path}/${f}" \
|
|
||||||
| sed 's,\*\*,*,' \
|
|
||||||
>>"${outputdir}/keywords.conf.d/${f}.conf"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating mirrors.conf (Pass 1 of 1)... "
|
|
||||||
mirrors=
|
|
||||||
for m in $(portageq envvar GENTOO_MIRRORS) ; do
|
|
||||||
mirrors="${mirrors} ${m}/distfiles"
|
|
||||||
done
|
|
||||||
append_pkg_var "*" "${mirrors}" "mirrors.conf"
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating package_mask.conf (Pass 1 of 1)... "
|
|
||||||
cat << EOF >"${outputdir}/package_mask.conf"
|
|
||||||
# package_mask.conf
|
|
||||||
# This file created by $(basename ${0})
|
|
||||||
EOF
|
|
||||||
if [[ -f "/etc/portage/package.mask" ]]; then
|
|
||||||
split_comments "/etc/portage/package.mask" >>"${outputdir}/package_mask.conf"
|
|
||||||
elif [[ -d "/etc/portage/package.mask" ]]; then
|
|
||||||
[[ -e "${outputdir}/package_mask.conf.d" ]] \
|
|
||||||
|| mkdir "${outputdir}/package_mask.conf.d"
|
|
||||||
for f in $(cd /etc/portage/package.mask/ ; find -type f)
|
|
||||||
do
|
|
||||||
mkdir -p "${outputdir}/package_mask.conf.d/$(dirname ${f})"
|
|
||||||
split_comments "/etc/portage/package.mask/${f}" >>"${outputdir}/package_mask.conf.d/${f}.conf"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating package_unmask.conf (Pass 1 of 1)... "
|
|
||||||
cat << EOF >"${outputdir}/package_unmask.conf"
|
|
||||||
# package_unmask.conf
|
|
||||||
# This file created by $(basename ${0})
|
|
||||||
EOF
|
|
||||||
if [[ -f "/etc/portage/package.unmask" ]]; then
|
|
||||||
split_comments "/etc/portage/package.unmask" >>"${outputdir}/package_unmask.conf"
|
|
||||||
elif [[ -d "/etc/portage/package.unmask" ]]; then
|
|
||||||
[[ -e "${outputdir}/package_unmask.conf.d" ]] \
|
|
||||||
|| mkdir "${outputdir}/package_unmask.conf.d"
|
|
||||||
for f in $(cd /etc/portage/package.unmask/ ; find -type f)
|
|
||||||
do
|
|
||||||
mkdir -p "${outputdir}/package_unmask.conf.d/$(dirname ${f})"
|
|
||||||
split_comments "/etc/portage/package.unmask/${f}" >>"${outputdir}/package_unmask.conf.d/${f}.conf"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating licenses.conf stub (Pass 1 of 1)... "
|
|
||||||
cat << EOF >"${outputdir}/licenses.conf"
|
|
||||||
# licenses.conf
|
|
||||||
# This is a stub, it accepts all licenses.
|
|
||||||
# This file created by $(basename ${0})
|
|
||||||
*/* *
|
|
||||||
EOF
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "* Standard Repositories:"
|
|
||||||
mkdir "${outputdir}/repositories"
|
|
||||||
|
|
||||||
portdir="$(portageq envvar PORTDIR)"
|
|
||||||
echo -n "Generating gentoo.conf (${portdir}) (Pass 1 of 1)... "
|
|
||||||
if [[ -e /etc/portage/make.profile ]]; then
|
|
||||||
profile="$(canonicalise /etc/portage/make.profile)"
|
|
||||||
else
|
|
||||||
profile="$(canonicalise /etc/make.profile)"
|
|
||||||
fi
|
|
||||||
cat << EOF >"${outputdir}/repositories/gentoo.conf"
|
|
||||||
location = ${portdir}
|
|
||||||
sync = $(portageq envvar SYNC)
|
|
||||||
profiles = ${profile}
|
|
||||||
distdir = $(portageq envvar DISTDIR)
|
|
||||||
format = e
|
|
||||||
names_cache = $(qmark_oper "${names_cache}" "\${location}/.cache/names" "/var/empty")
|
|
||||||
write_cache = $(qmark_oper "${write_cache}" "/var/cache/paludis/metadata" "/var/empty")
|
|
||||||
EOF
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Generating installed.conf (/var/db/pkg) (Pass 1 of 1)... "
|
|
||||||
cat << EOF >"${outputdir}/repositories/installed.conf"
|
|
||||||
location = /var/db/pkg/
|
|
||||||
format = vdb
|
|
||||||
names_cache = $(qmark_oper "${names_cache}" "\${location}/.cache/names" "/var/empty")
|
|
||||||
provides_cache = $(qmark_oper "${provides_cache}" "\${location}/.cache/provides" "/var/empty")
|
|
||||||
EOF
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
if [[ ! -e /var/db/pkg/world ]] ; then
|
|
||||||
echo -n "Creating /var/db/pkg/world -> /var/lib/portage/world symlink..."
|
|
||||||
ln -s /var/lib/portage/world /var/db/pkg/world
|
|
||||||
echo "done."
|
|
||||||
fi
|
|
||||||
echo -n "Configuring paludis environment to look for world in /var/db/pkg/world... "
|
|
||||||
append_shell_var "world" "/var/db/pkg/world" "general.conf"
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
portdir_overlay="$(portageq envvar PORTDIR_OVERLAY)"
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "* Overlays:"
|
|
||||||
|
|
||||||
echo -n "Creating unavailable layman repo... "
|
|
||||||
cat << EOF >"${outputdir}/repositories/layman.conf"
|
|
||||||
format = unavailable
|
|
||||||
name = layman
|
|
||||||
location = /var/db/paludis/repositories/layman
|
|
||||||
sync = tar+http://git.exherbo.org/layman_repositories.tar.bz2
|
|
||||||
importance = -100
|
|
||||||
EOF
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Creating repository repo... "
|
|
||||||
cat << EOF >"${outputdir}/repositories/repository.conf"
|
|
||||||
format = repository
|
|
||||||
config_filename = ${outputdir}/repositories/%{repository_template_name}.conf
|
|
||||||
config_template = ${outputdir}/repository.template
|
|
||||||
EOF
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
echo -n "Creating repository repo template... "
|
|
||||||
cat << EOF >"${outputdir}/repository.template"
|
|
||||||
format = %{repository_template_format}
|
|
||||||
location = /var/db/paludis/repositories/%{repository_template_name}
|
|
||||||
sync = %{repository_template_sync}
|
|
||||||
master_repository = gentoo
|
|
||||||
EOF
|
|
||||||
echo "done."
|
|
||||||
|
|
||||||
[[ -z "${portdir_overlay}" ]] && echo "No overlays to configure."
|
|
||||||
|
|
||||||
# Needed for repo_name matching
|
|
||||||
shopt -s extglob
|
|
||||||
|
|
||||||
for o in ${portdir_overlay}; do
|
|
||||||
# Make sure we don't reuse the last repo's name
|
|
||||||
repo_name=
|
|
||||||
|
|
||||||
# Get our repo_name
|
|
||||||
[[ -f "${o}/profiles/repo_name" ]] \
|
|
||||||
&& repo_name=$(< "${o}/profiles/repo_name")
|
|
||||||
|
|
||||||
if [[ -z "${repo_name}" ]] ; then
|
|
||||||
mkdir -p "${o}/profiles"
|
|
||||||
echo
|
|
||||||
echo "The repository at \"${o}\""
|
|
||||||
echo "is not complete. It needs to have a name. (Set in the"
|
|
||||||
echo "profiles/repo_name file). Please enter one now."
|
|
||||||
echo
|
|
||||||
echo "Legal characters are: The letters A-Z (upper and lower case),"
|
|
||||||
echo "the digits 0-9, and the symbols - (\"dash\"), + (\"plus\"),"
|
|
||||||
echo "and _ (\"underscore\")."
|
|
||||||
echo
|
|
||||||
read -e -p "Name for ${o}: " repo_name
|
|
||||||
# echo "${repo_name}" > "${o}/profiles/repo_name"
|
|
||||||
fi
|
|
||||||
while [[ "${repo_name}" != +([A-Za-z0-9+_-]) ]] ; do
|
|
||||||
echo
|
|
||||||
echo "Invalid name; try again."
|
|
||||||
read -e -p "Name for ${o}: " repo_name
|
|
||||||
# echo "${repo_name}" > "${o}/profiles/repo_name"
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ -f "${outputdir}/repositories/${repo_name}.conf" ]] ; then
|
|
||||||
echo "While trying to generate a config for the repo called" 1>&2
|
|
||||||
echo "\"${repo_name}\", we found we had already generated a config" 1>&2
|
|
||||||
echo "for a config of the same name. You will have to finish" 1>&2
|
|
||||||
echo "configuring your overlays on your own. For more info, see:" 1>&2
|
|
||||||
echo "http://paludis.pioto.org/configuration/erepository.html" 1>&2
|
|
||||||
bad=yes
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -n "Generating ${repo_name}.conf (${o}) (Pass 1 of 1)... "
|
|
||||||
|
|
||||||
sync_url=$(get_sync_url "${o}")
|
|
||||||
|
|
||||||
eclassdirs="${portdir}/eclass"
|
|
||||||
[[ -d "${o}/eclass" ]] && eclassdirs="${eclassdirs} ${o}/eclass"
|
|
||||||
|
|
||||||
cat << EOF >"${outputdir}/repositories/${repo_name}.conf"
|
|
||||||
location = ${o}
|
|
||||||
sync = ${sync_url}
|
|
||||||
#profiles = ${profile}
|
|
||||||
#eclassdirs = ${eclassdirs}
|
|
||||||
#distdir = $(portageq envvar DISTDIR)
|
|
||||||
master_repository = gentoo
|
|
||||||
format = e
|
|
||||||
names_cache = $(qmark_oper "${names_cache}" "\${location}/.cache/names" "/var/empty")
|
|
||||||
write_cache = $(qmark_oper "${write_cache}" "/var/cache/paludis/metadata" "/var/empty")
|
|
||||||
EOF
|
|
||||||
echo "done."
|
|
||||||
done
|
|
||||||
|
|
||||||
# Not needed anymore
|
|
||||||
shopt -u extglob
|
|
||||||
|
|
||||||
if [[ -f "/etc/portage/bashrc" ]] ; then
|
|
||||||
echo "This script did not copy your customized Portage bashrc." 1>&2
|
|
||||||
echo "You must make any desired changes to Paludis' bashrc yourself." 1>&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo 'Complete!'
|
|
||||||
echo "You now have a new paludis config in: ${outputdir}"
|
|
||||||
echo
|
|
||||||
echo "Don't forget to double check the configuration yourself before using it."
|
|
||||||
if [[ "${names_cache}" == "y" ]] ; then
|
|
||||||
echo
|
|
||||||
echo "Your names caches will be created the next time you run:"
|
|
||||||
echo
|
|
||||||
echo " cave sync"
|
|
||||||
echo " or"
|
|
||||||
echo " paludis --sync"
|
|
||||||
echo " or"
|
|
||||||
echo " cave fix-cache"
|
|
||||||
echo " or"
|
|
||||||
echo " paludis --regenerate-installable-cache"
|
|
||||||
echo
|
|
||||||
echo "You will have to create a \${location}/.cache/ directory for each of your"
|
|
||||||
echo "repositories."
|
|
||||||
echo "For more info, see: http://paludis.pioto.org/faq/different.html#mkdir"
|
|
||||||
fi
|
|
||||||
if [[ "${provides_cache}" == "y" ]] ; then
|
|
||||||
echo
|
|
||||||
echo "Your provides cache will be created the next time you run:"
|
|
||||||
echo
|
|
||||||
echo " cave fix-cache"
|
|
||||||
echo " or"
|
|
||||||
echo " paludis --regenerate-installed-cache"
|
|
||||||
echo
|
|
||||||
echo "You will need to create the /var/db/pkg/.cache/ directory."
|
|
||||||
echo "For more info, see: http://paludis.pioto.org/faq/different.html#mkdir"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -n "${bad}" ]]; then
|
|
||||||
echo "!!! Some errors were encountered. Check the generated configuration." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
|
||||||
<pkgmetadata>
|
|
||||||
<upstream>
|
|
||||||
<bugs-to>https://github.com/MageSlayer/paludis-gentoo-patches/issues</bugs-to>
|
|
||||||
<changelog>https://github.com/MageSlayer/paludis-gentoo-patches/commits/master</changelog>
|
|
||||||
<remote-id type="github">MageSlayer/paludis-gentoo-patches</remote-id>
|
|
||||||
</upstream>
|
|
||||||
<use>
|
|
||||||
<flag name='pbins'>Experimental binary packages support</flag>
|
|
||||||
<flag name='pink'>Use a pink colour scheme</flag>
|
|
||||||
<flag name='python'>Enable the Python bindings</flag>
|
|
||||||
<flag name='ruby'>Enable the Ruby bindings</flag>
|
|
||||||
<flag name='search-index'>Enable `cave search --index`</flag>
|
|
||||||
<flag name='xml'>Enable parsing of xml files, for GLSA and metadata.xml support</flag>
|
|
||||||
<flag name='eapi7'>Enable experimental eapi7 support</flag>
|
|
||||||
<flag name='eapi8'>Enable extremely experimental eapi8 support</flag>
|
|
||||||
</use>
|
|
||||||
</pkgmetadata>
|
|
||||||
@@ -1,136 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Foundation
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=7
|
|
||||||
|
|
||||||
EGIT_REPO_URI="https://github.com/MageSlayer/paludis-gentoo-patches.git"
|
|
||||||
PYTHON_COMPAT=( python3_{8..11} )
|
|
||||||
RUBY_VER=2.7
|
|
||||||
|
|
||||||
inherit bash-completion-r1 cmake git-r3 python-r1
|
|
||||||
|
|
||||||
DESCRIPTION="paludis, the other package mangler"
|
|
||||||
HOMEPAGE="https://paludis.exherbo.org/"
|
|
||||||
SRC_URI=""
|
|
||||||
|
|
||||||
IUSE="doc pbins pink python ruby ruby_targets_ruby${RUBY_VER/./} search-index test +xml eapi7 eapi8"
|
|
||||||
LICENSE="GPL-2 vim"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS=""
|
|
||||||
|
|
||||||
COMMON_DEPEND="
|
|
||||||
>=app-admin/eselect-1.2.13
|
|
||||||
>=app-shells/bash-3.2:0
|
|
||||||
dev-libs/libpcre:=[cxx]
|
|
||||||
sys-apps/file:=
|
|
||||||
pbins? ( >=app-arch/libarchive-3.1.2:= )
|
|
||||||
python? (
|
|
||||||
${PYTHON_DEPS}
|
|
||||||
dev-libs/boost[python,${PYTHON_USEDEP}]
|
|
||||||
)
|
|
||||||
ruby? ( dev-lang/ruby:${RUBY_VER} )
|
|
||||||
search-index? ( >=dev-db/sqlite-3:= )
|
|
||||||
xml? ( >=dev-libs/libxml2-2.6:= )"
|
|
||||||
|
|
||||||
DEPEND="${COMMON_DEPEND}
|
|
||||||
>=app-text/asciidoc-8.6.3
|
|
||||||
app-text/htmltidy
|
|
||||||
app-text/xmlto
|
|
||||||
>=sys-devel/gcc-4.7
|
|
||||||
doc? (
|
|
||||||
app-doc/doxygen
|
|
||||||
python? ( dev-python/sphinx[${PYTHON_USEDEP}] )
|
|
||||||
ruby? ( dev-ruby/syntax[ruby_targets_ruby${RUBY_VER/./}] )
|
|
||||||
)
|
|
||||||
virtual/pkgconfig
|
|
||||||
test? ( >=dev-cpp/gtest-1.6.0-r1 )"
|
|
||||||
|
|
||||||
RDEPEND="${COMMON_DEPEND}
|
|
||||||
acct-user/paludisbuild
|
|
||||||
acct-group/paludisbuild
|
|
||||||
sys-apps/sandbox"
|
|
||||||
|
|
||||||
PDEPEND="app-eselect/eselect-package-manager"
|
|
||||||
|
|
||||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
|
||||||
ruby? ( ruby_targets_ruby${RUBY_VER/./} )
|
|
||||||
?? ( eapi7 eapi8 )"
|
|
||||||
RESTRICT="!test? ( test )"
|
|
||||||
|
|
||||||
pkg_setup() {
|
|
||||||
use python && python_setup -3
|
|
||||||
}
|
|
||||||
src_unpack() {
|
|
||||||
if use eapi8; then
|
|
||||||
# want experimental² EAPI8 support?
|
|
||||||
EGIT_REPO_URI="https://github.com/Ionic/paludis-gentoo-patches.git"
|
|
||||||
EGIT_BRANCH="feature/eapi8"
|
|
||||||
elif use eapi7; then
|
|
||||||
# want experimental EAPI7 support?
|
|
||||||
EGIT_BRANCH="eapi7"
|
|
||||||
else
|
|
||||||
EGIT_BRANCH="master"
|
|
||||||
fi
|
|
||||||
git-r3_fetch
|
|
||||||
git-r3_checkout
|
|
||||||
}
|
|
||||||
|
|
||||||
src_prepare() {
|
|
||||||
# Fix the script shebang on Ruby scripts.
|
|
||||||
# https://bugs.gentoo.org/show_bug.cgi?id=439372#c2
|
|
||||||
sed -i -e "1s/ruby/&${RUBY_VER/./}/" ruby/demos/*.rb || die
|
|
||||||
|
|
||||||
cmake_src_prepare
|
|
||||||
}
|
|
||||||
|
|
||||||
src_configure() {
|
|
||||||
local mycmakeargs=(
|
|
||||||
-DENABLE_DOXYGEN=$(usex doc)
|
|
||||||
-DENABLE_GTEST=$(usex test)
|
|
||||||
-DENABLE_PBINS=$(usex pbins)
|
|
||||||
-DENABLE_PYTHON=$(usex python)
|
|
||||||
-DENABLE_PYTHON_DOCS=$(usex doc) # USE=python implicit
|
|
||||||
-DENABLE_RUBY=$(usex ruby)
|
|
||||||
-DENABLE_RUBY_DOCS=$(usex doc) # USE=ruby implicit
|
|
||||||
-DENABLE_SEARCH_INDEX=$(usex search-index)
|
|
||||||
-DENABLE_VIM=ON
|
|
||||||
-DENABLE_XML=$(usex xml)
|
|
||||||
|
|
||||||
-DPALUDIS_COLOUR_PINK=$(usex pink)
|
|
||||||
-DRUBY_VERSION=${RUBY_VER}
|
|
||||||
-DPALUDIS_ENVIRONMENTS=all
|
|
||||||
-DPALUDIS_DEFAULT_DISTRIBUTION=gentoo
|
|
||||||
-DPALUDIS_CLIENTS=all
|
|
||||||
-DCONFIG_FRAMEWORK=eselect
|
|
||||||
|
|
||||||
# GNUInstallDirs
|
|
||||||
-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
|
|
||||||
)
|
|
||||||
|
|
||||||
cmake_src_configure
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
cmake_src_install
|
|
||||||
|
|
||||||
dobashcomp bash-completion/cave
|
|
||||||
|
|
||||||
insinto /usr/share/zsh/site-functions
|
|
||||||
doins zsh-completion/_cave
|
|
||||||
|
|
||||||
cp "${FILESDIR}/portage2paludis.bash" portage2paludis
|
|
||||||
dobin portage2paludis
|
|
||||||
}
|
|
||||||
|
|
||||||
pkg_postinst() {
|
|
||||||
local pm
|
|
||||||
if [[ -f ${ROOT}/etc/env.d/50package-manager ]] ; then
|
|
||||||
pm=$( source "${ROOT}"/etc/env.d/50package-manager ; echo "${PACKAGE_MANAGER}" )
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${pm} != paludis ]] ; then
|
|
||||||
elog "If you are using paludis or cave as your primary package manager,"
|
|
||||||
elog "you should consider running:"
|
|
||||||
elog " eselect package-manager set paludis"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user