mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-15 17:06:58 +02:00
eclass: Drop unused eclasses
This commit is contained in:
parent
1fb18aab6f
commit
60e27b7d97
@ -1,238 +0,0 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: apache-module.eclass
|
||||
# @MAINTAINER:
|
||||
# apache-devs@gentoo.org
|
||||
# @BLURB: Provides a common set of functions for apache modules
|
||||
# @DESCRIPTION:
|
||||
# This eclass handles apache modules in a sane way.
|
||||
#
|
||||
# To make use of this eclass simply call one of the need/want_apache functions
|
||||
# described in depend.apache.eclass. Make sure you use the need/want_apache call
|
||||
# after you have defined DEPEND and RDEPEND. Also note that you can not rely on
|
||||
# the automatic RDEPEND=DEPEND that portage does if you use this eclass.
|
||||
#
|
||||
# See Bug 107127 for more information.
|
||||
#
|
||||
# @EXAMPLE:
|
||||
#
|
||||
# Here is a simple example of an ebuild for mod_foo:
|
||||
#
|
||||
# @CODE
|
||||
# APACHE2_MOD_CONF="42_mod_foo"
|
||||
# APACHE2_MOD_DEFINE="FOO"
|
||||
# need_apache2
|
||||
# @CODE
|
||||
#
|
||||
# A more complicated example for a module with non-standard locations:
|
||||
#
|
||||
# @CODE
|
||||
# APXS2_S="${S}/apache22/src"
|
||||
# APACHE2_MOD_FILE="${APXS2_S}/${PN}.so"
|
||||
# APACHE2_MOD_CONF="42_${PN}"
|
||||
# APACHE2_MOD_DEFINE="FOO"
|
||||
# DOCFILES="docs/*.html"
|
||||
# need_apache2_2
|
||||
# @CODE
|
||||
#
|
||||
# A basic module configuration which just loads the module into apache:
|
||||
#
|
||||
# @CODE
|
||||
# <IfDefine FOO>
|
||||
# LoadModule foo_module modules/mod_foo.so
|
||||
# </IfDefine>
|
||||
# @CODE
|
||||
|
||||
inherit depend.apache
|
||||
|
||||
# ==============================================================================
|
||||
# PUBLIC VARIABLES
|
||||
# ==============================================================================
|
||||
|
||||
# @VARIABLE: APXS2_S
|
||||
# @DESCRIPTION:
|
||||
# Path to temporary build directory. (Defaults to `${S}/src' if it exists,
|
||||
# `${S}' otherwise)
|
||||
|
||||
# @VARIABLE: APXS2_ARGS
|
||||
# @DESCRIPTION:
|
||||
# Arguments to pass to the apxs tool. (Defaults to `-c ${PN}.c')
|
||||
|
||||
# @VARIABLE: APACHE2_EXECFILES
|
||||
# @DESCRIPTION:
|
||||
# List of files that will be installed into ${APACHE_MODULE_DIR} beside
|
||||
# ${APACHE2_MOD_FILE}. In addition, this function also sets the executable
|
||||
# permission on those files.
|
||||
|
||||
# @VARIABLE: APACHE2_MOD_CONF
|
||||
# @DESCRIPTION:
|
||||
# Module configuration file installed by src_install (minus the .conf suffix and
|
||||
# relative to ${FILESDIR}).
|
||||
|
||||
# @VARIABLE: APACHE2_MOD_DEFINE
|
||||
# @DESCRIPTION:
|
||||
# Name of define (e.g. FOO) to use in conditional loading of the installed
|
||||
# module/its config file, multiple defines should be space separated.
|
||||
|
||||
# @VARIABLE: APACHE2_MOD_FILE
|
||||
# @DESCRIPTION:
|
||||
# Name of the module that src_install installs minus the .so suffix. (Defaults
|
||||
# to `${APXS2_S}/.libs/${PN}.so')
|
||||
|
||||
# @VARIABLE: APACHE2_VHOST_CONF
|
||||
# @DESCRIPTION:
|
||||
# Virtual host configuration file installed by src_install (minus the .conf
|
||||
# suffix and relative to ${FILESDIR}).
|
||||
|
||||
# @VARIABLE: DOCFILES
|
||||
# @DESCRIPTION:
|
||||
# If the exported src_install() is being used, and ${DOCFILES} is non-zero, some
|
||||
# sed-fu is applied to split out html documentation (if any) from normal
|
||||
# documentation, and dodoc'd or dohtml'd.
|
||||
|
||||
# ==============================================================================
|
||||
# INTERNAL FUNCTIONS
|
||||
# ==============================================================================
|
||||
|
||||
# Internal function to construct the default ${APXS2_S} path if required.
|
||||
apache_cd_dir() {
|
||||
debug-print-function $FUNCNAME $*
|
||||
|
||||
local CD_DIR="${APXS2_S}"
|
||||
|
||||
if [[ -z "${CD_DIR}" ]] ; then
|
||||
if [[ -d "${S}/src" ]] ; then
|
||||
CD_DIR="${S}/src"
|
||||
else
|
||||
CD_DIR="${S}"
|
||||
fi
|
||||
fi
|
||||
|
||||
debug-print $FUNCNAME "CD_DIR=${CD_DIR}"
|
||||
echo "${CD_DIR}"
|
||||
}
|
||||
|
||||
# Internal function to construct the default ${APACHE2_MOD_FILE} if required.
|
||||
apache_mod_file() {
|
||||
debug-print-function $FUNCNAME $*
|
||||
|
||||
local MOD_FILE="${APACHE2_MOD_FILE:-$(apache_cd_dir)/.libs/${PN}.so}"
|
||||
|
||||
debug-print $FUNCNAME "MOD_FILE=${MOD_FILE}"
|
||||
echo "${MOD_FILE}"
|
||||
}
|
||||
|
||||
# Internal function for picking out html files from ${DOCFILES}. It takes an
|
||||
# optional first argument `html'; if the first argument is equals `html', only
|
||||
# html files are returned, otherwise normal (non-html) docs are returned.
|
||||
apache_doc_magic() {
|
||||
debug-print-function $FUNCNAME $*
|
||||
|
||||
local DOCS=
|
||||
|
||||
if [[ -n "${DOCFILES}" ]] ; then
|
||||
if [[ "x$1" == "xhtml" ]] ; then
|
||||
DOCS="`echo ${DOCFILES} | sed -e 's/ /\n/g' | sed -e '/^[^ ]*.html$/ !d'`"
|
||||
else
|
||||
DOCS="`echo ${DOCFILES} | sed 's, *[^ ]*\+.html, ,g'`"
|
||||
fi
|
||||
fi
|
||||
|
||||
debug-print $FUNCNAME "DOCS=${DOCS}"
|
||||
echo "${DOCS}"
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
# EXPORTED FUNCTIONS
|
||||
# ==============================================================================
|
||||
|
||||
# @FUNCTION: apache-module_src_compile
|
||||
# @DESCRIPTION:
|
||||
# The default action is to call ${APXS} with the value of ${APXS2_ARGS}. If a
|
||||
# module requires a different build setup than this, use ${APXS} in your own
|
||||
# src_compile routine.
|
||||
apache-module_src_compile() {
|
||||
debug-print-function $FUNCNAME $*
|
||||
|
||||
local CD_DIR=$(apache_cd_dir)
|
||||
cd "${CD_DIR}" || die "cd ${CD_DIR} failed"
|
||||
|
||||
APXS2_ARGS="${APXS2_ARGS:--c ${PN}.c}"
|
||||
${APXS} ${APXS2_ARGS} || die "${APXS} ${APXS2_ARGS} failed"
|
||||
}
|
||||
|
||||
# @FUNCTION: apache-module_src_install
|
||||
# @DESCRIPTION:
|
||||
# This installs the files into apache's directories. The module is installed
|
||||
# from a directory chosen as above (apache_cd_dir). In addition, this function
|
||||
# can also set the executable permission on files listed in
|
||||
# ${APACHE2_EXECFILES}. The configuration file name is listed in
|
||||
# ${APACHE2_MOD_CONF} without the .conf extensions, so if you configuration is
|
||||
# 55_mod_foo.conf, APACHE2_MOD_CONF would be 55_mod_foo. ${DOCFILES} contains
|
||||
# the list of files you want filed as documentation.
|
||||
apache-module_src_install() {
|
||||
debug-print-function $FUNCNAME $*
|
||||
|
||||
local CD_DIR=$(apache_cd_dir)
|
||||
pushd "${CD_DIR}" >/dev/null || die "cd ${CD_DIR} failed"
|
||||
|
||||
local MOD_FILE=$(apache_mod_file)
|
||||
|
||||
exeinto "${APACHE_MODULESDIR}"
|
||||
doexe ${MOD_FILE} || die "internal ebuild error: '${MOD_FILE}' not found"
|
||||
[[ -n "${APACHE2_EXECFILES}" ]] && doexe ${APACHE2_EXECFILES}
|
||||
|
||||
if [[ -n "${APACHE2_MOD_CONF}" ]] ; then
|
||||
insinto "${APACHE_MODULES_CONFDIR}"
|
||||
set -- ${APACHE2_MOD_CONF}
|
||||
newins "${FILESDIR}/${1}.conf" "$(basename ${2:-$1}).conf" \
|
||||
|| die "internal ebuild error: '${FILESDIR}/${1}.conf' not found"
|
||||
fi
|
||||
|
||||
if [[ -n "${APACHE2_VHOST_CONF}" ]] ; then
|
||||
insinto "${APACHE_VHOSTS_CONFDIR}"
|
||||
set -- ${APACHE2_VHOST_CONF}
|
||||
newins "${FILESDIR}/${1}.conf" "$(basename ${2:-$1}).conf " \
|
||||
|| die "internal ebuild error: '${FILESDIR}/${1}.conf' not found"
|
||||
fi
|
||||
|
||||
cd "${S}"
|
||||
|
||||
if [[ -n "${DOCFILES}" ]] ; then
|
||||
local OTHER_DOCS=$(apache_doc_magic)
|
||||
local HTML_DOCS=$(apache_doc_magic html)
|
||||
|
||||
[[ -n "${OTHER_DOCS}" ]] && dodoc ${OTHER_DOCS}
|
||||
[[ -n "${HTML_DOCS}" ]] && dohtml ${HTML_DOCS}
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
# @FUNCTION: apache-module_pkg_postinst
|
||||
# @DESCRIPTION:
|
||||
# This prints out information about the installed module and how to enable it.
|
||||
apache-module_pkg_postinst() {
|
||||
debug-print-function $FUNCNAME $*
|
||||
|
||||
if [[ -n "${APACHE2_MOD_DEFINE}" ]] ; then
|
||||
local my_opts="-D ${APACHE2_MOD_DEFINE// / -D }"
|
||||
|
||||
einfo
|
||||
einfo "To enable ${PN}, you need to edit your /etc/conf.d/apache2 file and"
|
||||
einfo "add '${my_opts}' to APACHE2_OPTS."
|
||||
einfo
|
||||
fi
|
||||
|
||||
if [[ -n "${APACHE2_MOD_CONF}" ]] ; then
|
||||
set -- ${APACHE2_MOD_CONF}
|
||||
einfo
|
||||
einfo "Configuration file installed as"
|
||||
einfo " ${APACHE_MODULES_CONFDIR}/$(basename ${2:-$1}).conf"
|
||||
einfo "You may want to edit it before turning the module on in /etc/conf.d/apache2"
|
||||
einfo
|
||||
fi
|
||||
}
|
||||
|
||||
EXPORT_FUNCTIONS src_compile src_install pkg_postinst
|
@ -1,86 +0,0 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: bsdmk.eclass
|
||||
# @MAINTAINER:
|
||||
# bsd@gentoo.org
|
||||
# @BLURB: Some functions for BSDmake
|
||||
|
||||
inherit toolchain-funcs portability flag-o-matic
|
||||
|
||||
EXPORT_FUNCTIONS src_compile src_install
|
||||
|
||||
RDEPEND=""
|
||||
# this should actually be BDEPEND, but this works.
|
||||
DEPEND="virtual/pmake"
|
||||
|
||||
ESED="/usr/bin/sed"
|
||||
|
||||
# @ECLASS-VARIABLE: mymakeopts
|
||||
# @DESCRIPTION:
|
||||
# Options for bsd-make
|
||||
|
||||
# @FUNCTION: append-opt
|
||||
# @USAGE: < options >
|
||||
# @DESCRIPTION:
|
||||
# append options to enable or disable features
|
||||
append-opt() {
|
||||
mymakeopts="${mymakeopts} $@"
|
||||
}
|
||||
|
||||
# @FUNCTION: mkmake
|
||||
# @USAGE: [ options ]
|
||||
# @DESCRIPTION:
|
||||
# calls bsd-make command with the given options, passing ${mymakeopts} to
|
||||
# enable ports to useflags bridge.
|
||||
mkmake() {
|
||||
[[ -z ${BMAKE} ]] && BMAKE="$(get_bmake)"
|
||||
|
||||
tc-export CC CXX LD RANLIB
|
||||
|
||||
set -- ${BMAKE} ${MAKEOPTS} ${EXTRA_EMAKE} ${mymakeopts} NO_WERROR= STRIP= "$@"
|
||||
echo "${@}"
|
||||
"${@}"
|
||||
}
|
||||
|
||||
# @FUNCTION: mkinstall
|
||||
# @USAGE: [ options ]
|
||||
# @DESCRIPTION:
|
||||
# Calls "bsd-make install" with the given options, passing ${mamakeopts} to
|
||||
# enable ports to useflags bridge
|
||||
mkinstall() {
|
||||
[[ -z ${BMAKE} ]] && BMAKE="$(get_bmake)"
|
||||
|
||||
# STRIP= will replace the default value of -s, leaving to portage the
|
||||
# task of stripping executables.
|
||||
set -- ${BMAKE} ${mymakeopts} NO_WERROR= STRIP= MANSUBDIR= DESTDIR="${D}" "$@" install
|
||||
echo "${@}"
|
||||
"${@}"
|
||||
}
|
||||
|
||||
# @FUNCTION: dummy_mk
|
||||
# @USAGE: < dirnames >
|
||||
# @DESCRIPTION:
|
||||
# removes the specified subdirectories and creates a dummy makefile in them
|
||||
# useful to remove the need for "minimal" patches
|
||||
dummy_mk() {
|
||||
for dir in $@; do
|
||||
[ -d ${dir} ] || ewarn "dummy_mk called on a non-existing directory: $dir"
|
||||
[ -f ${dir}/Makefile ] || ewarn "dummy_mk called on a directory without Makefile: $dir"
|
||||
echo ".include <bsd.lib.mk>" > ${dir}/Makefile
|
||||
done
|
||||
}
|
||||
|
||||
# @FUNCTION: bsdmk_src_compile
|
||||
# @DESCRIPTION:
|
||||
# The bsdmk src_compile function, which is exported
|
||||
bsdmk_src_compile() {
|
||||
mkmake "$@" || die "make failed"
|
||||
}
|
||||
|
||||
# @FUNCTION: bsdmk_src_install
|
||||
# @DESCRIPTION:
|
||||
# The bsdmk src_install function, which is exported
|
||||
bsdmk_src_install() {
|
||||
mkinstall "$@" || die "install failed"
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: findlib.eclass
|
||||
# @MAINTAINER:
|
||||
# ml@gentoo.org
|
||||
# @AUTHOR:
|
||||
# Original author: Matthieu Sozeau <mattam@gentoo.org> (retired)
|
||||
# @BLURB: ocamlfind (a.k.a. findlib) eclass
|
||||
# @DESCRIPTION:
|
||||
# ocamlfind (a.k.a. findlib) eclass
|
||||
|
||||
|
||||
|
||||
# From this findlib version there is proper stublibs support.
|
||||
DEPEND=">=dev-ml/findlib-1.0.4-r1"
|
||||
[[ ${FINDLIB_USE} ]] && DEPEND="${FINDLIB_USE}? ( ${DEPEND} )"
|
||||
|
||||
check_ocamlfind() {
|
||||
if [ ! -x "${EPREFIX}"/usr/bin/ocamlfind ]
|
||||
then
|
||||
eerror "In findlib.eclass: could not find the ocamlfind executable"
|
||||
eerror "Please report this bug on gentoo's bugzilla, assigning to ml@gentoo.org"
|
||||
die "ocamlfind executabled not found"
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: findlib_src_preinst
|
||||
# @DESCRIPTION:
|
||||
# Prepare the image for a findlib installation.
|
||||
# We use the stublibs style, so no ld.conf needs to be
|
||||
# updated when a package installs C shared libraries.
|
||||
findlib_src_preinst() {
|
||||
has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=
|
||||
has "${EAPI:-0}" 0 1 2 && use !prefix && ED="${D}"
|
||||
check_ocamlfind
|
||||
|
||||
# destdir is the ocaml sitelib
|
||||
local destdir=`ocamlfind printconf destdir`
|
||||
|
||||
# strip off prefix
|
||||
destdir=${destdir#${EPREFIX}}
|
||||
|
||||
dodir ${destdir} || die "dodir failed"
|
||||
export OCAMLFIND_DESTDIR=${ED}${destdir}
|
||||
|
||||
# stublibs style
|
||||
dodir ${destdir}/stublibs || die "dodir failed"
|
||||
export OCAMLFIND_LDCONF=ignore
|
||||
}
|
||||
|
||||
# @FUNCTION: findlib_src_install
|
||||
# @DESCRIPTION:
|
||||
# Install with a properly setup findlib
|
||||
findlib_src_install() {
|
||||
findlib_src_preinst
|
||||
make DESTDIR="${D}" "$@" install || die "make failed"
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# Author: Robin H. Johnson <robbat2@gentoo.org>
|
||||
|
||||
# font-ebdftopcf.eclass
|
||||
# Eclass to make PCF font generator from BDF uniform and optimal
|
||||
# The manpage for this eclass is in media-gfx/ebdftopcf.
|
||||
|
||||
# inherit this eclass after font.eclass
|
||||
|
||||
# if USE="-X", this eclass is basically a no-op, since bdftopcf requires Xorg.
|
||||
IUSE="X"
|
||||
|
||||
# Variable declarations
|
||||
DEPEND="X? ( media-gfx/ebdftopcf )"
|
||||
RDEPEND=""
|
||||
|
||||
#
|
||||
# Public functions
|
||||
#
|
||||
ebdftopcf() {
|
||||
local bdffiles
|
||||
bdffiles="$@"
|
||||
[ -z "$bdffiles" ] && die "No BDF files specified."
|
||||
emake -f "${EPREFIX}"/usr/share/ebdftopcf/Makefile.ebdftopcf \
|
||||
BDFFILES="${bdffiles}" \
|
||||
BDFTOPCF_PARAMS="${BDFTOPCF_PARAMS}" \
|
||||
|| die "Failed to build PCF files"
|
||||
}
|
||||
|
||||
#
|
||||
# Public inheritable functions
|
||||
#
|
||||
font-ebdftopcf_src_compile() {
|
||||
use X && FONT_SUFFIX="pcf.gz"
|
||||
use X || FONT_SUFFIX="bdf"
|
||||
|
||||
if use X; then
|
||||
[ -z "${BDFFILES}" ] && BDFFILES="$(find . -name '*.bdf')"
|
||||
ebdftopcf ${BDFFILES}
|
||||
fi
|
||||
}
|
||||
|
||||
EXPORT_FUNCTIONS src_compile
|
@ -1,333 +0,0 @@
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# @MAINTAINER:
|
||||
# maintainer-needed@gentoo.org
|
||||
# @AUTHOR:
|
||||
# Diego Pettenò <flameeyes@gentoo.org>
|
||||
|
||||
inherit versionator eutils flag-o-matic bsdmk
|
||||
|
||||
# Drop patch level from ${PV}
|
||||
MY_PV=${PV/_p*}
|
||||
PLEVEL=${PV##*_p}
|
||||
|
||||
LICENSE="BSD"
|
||||
HOMEPAGE="http://www.freebsd.org/"
|
||||
|
||||
# Define global package names
|
||||
LIB="freebsd-lib-${PV}"
|
||||
BIN="freebsd-bin-${PV}"
|
||||
CONTRIB="freebsd-contrib-${PV}"
|
||||
SHARE="freebsd-share-${PV}"
|
||||
UBIN="freebsd-ubin-${PV}"
|
||||
USBIN="freebsd-usbin-${PV}"
|
||||
CRYPTO="freebsd-crypto-${PV}"
|
||||
LIBEXEC="freebsd-libexec-${PV}"
|
||||
SBIN="freebsd-sbin-${PV}"
|
||||
GNU="freebsd-gnu-${PV}"
|
||||
ETC="freebsd-etc-${PV}"
|
||||
SYS="freebsd-sys-${PV}"
|
||||
INCLUDE="freebsd-include-${PV}"
|
||||
RESCUE="freebsd-rescue-${PV}"
|
||||
CDDL="freebsd-cddl-${PV}"
|
||||
SECURE="freebsd-secure-${PV}"
|
||||
|
||||
# Release version (5.3, 5.4, 6.0, etc)
|
||||
RV="$(get_version_component_range 1-2 ${MY_PV})"
|
||||
|
||||
# SVN ebuild support.
|
||||
# 9.1.0.9999 --> release/9.1.0
|
||||
# 9.1.9999 --> releng/9.1
|
||||
# 9.9999 --> stable/9
|
||||
# 9999 --> head
|
||||
#
|
||||
# svn revision can be specified by patch level:
|
||||
# freebsd-lib-9.9999_p247000 --> set svn -r 247000
|
||||
|
||||
if [[ ${MY_PV} == *9999* ]]; then
|
||||
inherit subversion
|
||||
|
||||
# Set SVN revision using patch level.
|
||||
[[ ${PV} == *_p* ]] && ESVN_REVISION="${PLEVEL}"
|
||||
|
||||
case ${MY_PV%.9999} in
|
||||
*.*.*) BRANCH="release";;
|
||||
*.*) BRANCH="releng" ;;
|
||||
9999) BRANCH="head" ;;
|
||||
*) BRANCH="stable" ;;
|
||||
esac
|
||||
|
||||
if [[ ${BRANCH} == head ]] ; then
|
||||
SVN_SUB_URI="${BRANCH}"
|
||||
else
|
||||
SVN_SUB_URI="${BRANCH}/${MY_PV%.9999}"
|
||||
fi
|
||||
|
||||
ESVN_REPO_URI="svn://svn.freebsd.org/base/${SVN_SUB_URI}"
|
||||
ESVN_PROJECT="freebsd-${BRANCH}"
|
||||
fi
|
||||
|
||||
# Use the original source code.
|
||||
if [[ ${MY_PV} != *9999* ]] && version_is_at_least 10.0 ${RV} ; then
|
||||
DL_PV=${MY_PV/_rc/-RC}
|
||||
DL_PV=${DL_PV/_beta/-BETA}
|
||||
DL_PV=${DL_PV/_alpha/-ALPHA}
|
||||
if [[ ${DL_PV} == ${MY_PV} ]]; then
|
||||
DL_PV="${DL_PV}-RELEASE"
|
||||
fi
|
||||
SRC_URI="mirror://freebsd/releases/i386/${DL_PV}/src.txz -> freebsd-src-${MY_PV}.tar.xz"
|
||||
fi
|
||||
|
||||
IUSE="profile"
|
||||
|
||||
#unalias -a
|
||||
alias install-info='/usr/bin/bsdinstall-info'
|
||||
|
||||
EXPORT_FUNCTIONS src_compile src_install src_unpack
|
||||
|
||||
# doperiodic <kind> <file> ...
|
||||
doperiodic() {
|
||||
local kind=$1
|
||||
shift
|
||||
|
||||
( # dont want to pollute calling env
|
||||
insinto /etc/periodic/${kind}
|
||||
insopts -m 0755
|
||||
doins "$@"
|
||||
)
|
||||
}
|
||||
|
||||
freebsd_get_bmake() {
|
||||
local bmake
|
||||
bmake=$(get_bmake)
|
||||
if version_is_at_least 11.0 ${RV} ; then
|
||||
if [[ ${CBUILD} == *-freebsd* ]] ; then
|
||||
bmake="${bmake} -m /usr/share/mk/system"
|
||||
else
|
||||
bmake="${bmake} -m /usr/share/mk/freebsd/system"
|
||||
fi
|
||||
else
|
||||
[[ ${CBUILD} == *-freebsd* ]] || bmake="${bmake} -m /usr/share/mk/freebsd"
|
||||
fi
|
||||
|
||||
echo "${bmake}"
|
||||
}
|
||||
|
||||
# Generates SRC_URI or DISTDIR for the upstream patch.
|
||||
freebsd_upstream_patches() {
|
||||
local opt=$1
|
||||
[[ ${#UPSTREAM_PATCHES[@]} -eq 0 ]] && return 1
|
||||
for x in "${UPSTREAM_PATCHES[@]}"
|
||||
do
|
||||
local out=${PN}-${x/\//-}
|
||||
out=${out/:/}
|
||||
if [[ ${opt} == -s ]] ; then
|
||||
echo "${DISTDIR}/${out}"
|
||||
else
|
||||
echo "https://security.freebsd.org/patches/${x} -> ${out}"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
freebsd_do_patches() {
|
||||
if [[ ${#PATCHES[@]} -gt 1 ]] ; then
|
||||
for x in "${PATCHES[@]}"; do
|
||||
epatch "${x}"
|
||||
done
|
||||
else
|
||||
for x in ${PATCHES} ; do
|
||||
epatch "${x}"
|
||||
done
|
||||
fi
|
||||
|
||||
# Upstream patches need to be applied on WORKDIR.
|
||||
if [[ ${#UPSTREAM_PATCHES[@]} -gt 0 ]] ; then
|
||||
cd "${WORKDIR}" || die
|
||||
epatch $(freebsd_upstream_patches -s)
|
||||
cd "${S}" || die
|
||||
fi
|
||||
epatch_user
|
||||
}
|
||||
|
||||
freebsd_rename_libraries() {
|
||||
ebegin "Renaming libraries"
|
||||
# We don't use libtermcap, we use libncurses
|
||||
find "${S}" -name Makefile -print0 | xargs -0 \
|
||||
sed -i -e 's:-ltermcap:-lncurses:g; s:{LIBTERMCAP}:{LIBNCURSES}:g'
|
||||
# flex provides libfl, not libl
|
||||
find "${S}" -name Makefile -print0 | xargs -0 \
|
||||
sed -i -e 's:-ll$:-lfl:g; s:-ll :-lfl :g; s:{LIBL}:{LIBFL}:g'
|
||||
# ncurses provides libncursesw not libcursesw
|
||||
find "${S}" -name Makefile -print0 | xargs -0 \
|
||||
sed -i -e 's:-lcursesw:-lncursesw:g'
|
||||
# we use expat instead of bsdxml
|
||||
find "${S}" -name Makefile -print0 | xargs -0 \
|
||||
sed -i -e 's:-lbsdxml:-lexpat:g'
|
||||
|
||||
eend $?
|
||||
}
|
||||
|
||||
freebsd_src_unpack() {
|
||||
if [[ ${MY_PV} == *9999* ]]; then
|
||||
S="${WORKDIR}" subversion_src_unpack
|
||||
|
||||
# When share/mk exists in ${WORKDIR}, BSD's make will try to use it on FreeBSD 10.0 or later.
|
||||
# We should remove "${WORKDIR}"/share/mk/*.mk to use /usr/share/mk{,/system}.
|
||||
if [[ ${PN} != freebsd-mk-defs ]] ; then
|
||||
[[ -e "${WORKDIR}"/share/mk ]] && rm -rf "${WORKDIR}"/share/mk/*.mk
|
||||
fi
|
||||
else
|
||||
if version_is_at_least 10.0 ${RV} ; then
|
||||
local tarball="freebsd-src-${MY_PV}.tar.xz"
|
||||
local topdir="usr/src/"
|
||||
local extractlist=()
|
||||
for i in ${EXTRACTONLY} tools/ ; do
|
||||
extractlist+=( ${topdir}${i} )
|
||||
done
|
||||
ebegin "Unpacking parts of ${tarball} to ${WORKDIR}"
|
||||
cd "${WORKDIR}" || die
|
||||
tar -xJpf "${DISTDIR}/${tarball}" --strip-components=2 "${extractlist[@]}" 2> /dev/null || die "tar extract command failed"
|
||||
cd - || die
|
||||
else
|
||||
for f in ${A} ; do
|
||||
[[ ${f} == *.tar.* ]] && unpack ${f}
|
||||
done
|
||||
fi
|
||||
fi
|
||||
cd "${S}"
|
||||
|
||||
dummy_mk ${REMOVE_SUBDIRS}
|
||||
|
||||
freebsd_do_patches
|
||||
if ! version_is_at_least 11.0 ${RV} ; then
|
||||
freebsd_rename_libraries
|
||||
fi
|
||||
|
||||
# Starting from FreeBSD 9.2, its install command supports the -l option and
|
||||
# they now use it. Emulate it if we are on a system that does not have it.
|
||||
if version_is_at_least 9.2 ${RV} && ! has_version '>=sys-freebsd/freebsd-ubin-9.2_beta1' ; then
|
||||
export INSTALL_LINK="ln -f"
|
||||
export INSTALL_SYMLINK="ln -fs"
|
||||
fi
|
||||
# An older version of install command doesn't support the -T option.
|
||||
if version_is_at_least 11.0 ${RV} && ! has_version ">=sys-freebsd/freebsd-ubin-${RV}" ; then
|
||||
export INSTALL="sh ${WORKDIR}/tools/install.sh"
|
||||
fi
|
||||
|
||||
# If CC=clang, we should use clang-cpp instead of cpp. #478810, #595878
|
||||
if [[ $(tc-getCC) == *clang* ]] ; then
|
||||
if type -P clang-cpp > /dev/null ; then
|
||||
export CPP=clang-cpp
|
||||
else
|
||||
mkdir "${WORKDIR}"/workaround_clang-cpp || die "Could not create ${WORKDIR}/workaround_clang-cpp"
|
||||
ln -s "$(type -P clang)" "${WORKDIR}"/workaround_clang-cpp/clang-cpp || die "Could not create clang-cpp symlink."
|
||||
export CPP="${WORKDIR}/workaround_clang-cpp/clang-cpp"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Add the special CFLAGS required for multilib support.
|
||||
use amd64-fbsd && export CFLAGS_x86_fbsd="${CFLAGS_x86_fbsd} -DCOMPAT_32BIT -B/usr/lib32 -L/usr/lib32"
|
||||
}
|
||||
|
||||
freebsd_src_compile() {
|
||||
use profile && filter-flags "-fomit-frame-pointer"
|
||||
if version_is_at_least 11.0 ${RV} ; then
|
||||
if ! use profile ; then
|
||||
mymakeopts="${mymakeopts} WITHOUT_PROFILE= "
|
||||
fi
|
||||
# Disable the debugging information, use FEATURES=splitdebug instead.
|
||||
mymakeopts="${mymakeopts} WITHOUT_DEBUG_FILES= "
|
||||
# We don't support test yet.
|
||||
mymakeopts="${mymakeopts} WITHOUT_TESTS= "
|
||||
# Set the SRCTOP to detect the source directory.
|
||||
mymakeopts="${mymakeopts} SRCTOP=${WORKDIR} "
|
||||
# Set the common settings.
|
||||
mymakeopts="${mymakeopts} WITHOUT_MANCOMPRESS= WITHOUT_INFOCOMPRESS= "
|
||||
else
|
||||
use profile || mymakeopts="${mymakeopts} NO_PROFILE= "
|
||||
mymakeopts="${mymakeopts} NO_MANCOMPRESS= NO_INFOCOMPRESS= "
|
||||
fi
|
||||
|
||||
mymakeopts="${mymakeopts} NO_FSCHG="
|
||||
|
||||
# Make sure to use FreeBSD definitions while crosscompiling
|
||||
[[ -z "${BMAKE}" ]] && BMAKE="$(freebsd_get_bmake)"
|
||||
|
||||
# Create objdir if MAKEOBJDIRPREFIX is defined, so that we can make out of
|
||||
# tree builds easily.
|
||||
if [[ -n "${MAKEOBJDIRPREFIX}" ]] ; then
|
||||
mkmake obj || die
|
||||
fi
|
||||
|
||||
bsdmk_src_compile "$@"
|
||||
}
|
||||
|
||||
# Helper function to make a multilib build with FreeBSD Makefiles.
|
||||
# Usage:
|
||||
# MULTIBUILD_VARIANTS=( $(get_all_abis) )
|
||||
# multibuild_foreach_variant freebsd_multilib_multibuild_wrapper my_function
|
||||
#
|
||||
# Important note: To use this function you _have_ to:
|
||||
# - inherit multilib.eclass and multibuild.eclass
|
||||
# - set MULTIBUILD_VARIANTS
|
||||
|
||||
freebsd_multilib_multibuild_wrapper() {
|
||||
# Get the ABI from multibuild.eclass
|
||||
# This assumes MULTIBUILD_VARIANTS contains only valid ABIs.
|
||||
local ABI=${MULTIBUILD_VARIANT}
|
||||
|
||||
# First, save the variables: CFLAGS, CXXFLAGS, LDFLAGS, LDADD and mymakeopts.
|
||||
for i in CFLAGS CXXFLAGS LDFLAGS LDADD mymakeopts ; do
|
||||
export ${i}_SAVE="${!i}"
|
||||
done
|
||||
|
||||
# Setup the variables specific to this ABI.
|
||||
multilib_toolchain_setup "${ABI}"
|
||||
|
||||
local target="$(tc-arch-kernel ${CHOST})"
|
||||
mymakeopts="${mymakeopts} TARGET=${target} MACHINE=${target} MACHINE_ARCH=${target} SHLIBDIR=/usr/$(get_libdir) LIBDIR=/usr/$(get_libdir)"
|
||||
if [ "${ABI}" != "${DEFAULT_ABI}" ] ; then
|
||||
mymakeopts="${mymakeopts} COMPAT_32BIT="
|
||||
fi
|
||||
|
||||
einfo "Building for ABI=${ABI} and TARGET=${target}"
|
||||
|
||||
export MAKEOBJDIRPREFIX="${BUILD_DIR}"
|
||||
if [ ! -d "${MAKEOBJDIRPREFIX}" ] ; then
|
||||
mkdir "${MAKEOBJDIRPREFIX}" || die "Could not create ${MAKEOBJDIRPREFIX}."
|
||||
fi
|
||||
|
||||
CTARGET="${CHOST}" "$@"
|
||||
|
||||
# Restore the variables now.
|
||||
for i in CFLAGS CXXFLAGS LDFLAGS LDADD mymakeopts ; do
|
||||
ii="${i}_SAVE"
|
||||
export ${i}="${!ii}"
|
||||
done
|
||||
}
|
||||
|
||||
freebsd_src_install() {
|
||||
if version_is_at_least 11.0 ${RV} ; then
|
||||
if ! use profile ; then
|
||||
mymakeopts="${mymakeopts} WITHOUT_PROFILE= "
|
||||
fi
|
||||
# Disable the debugging information, use FEATURES=splitdebug instead.
|
||||
mymakeopts="${mymakeopts} WITHOUT_DEBUG_FILES= "
|
||||
# We don't support test yet.
|
||||
mymakeopts="${mymakeopts} WITHOUT_TESTS= "
|
||||
# Set the SRCTOP to detect the source directory.
|
||||
mymakeopts="${mymakeopts} SRCTOP=${WORKDIR} "
|
||||
# Set the common settings.
|
||||
mymakeopts="${mymakeopts} WITHOUT_MANCOMPRESS= WITHOUT_INFOCOMPRESS= "
|
||||
else
|
||||
use profile || mymakeopts="${mymakeopts} NO_PROFILE= "
|
||||
mymakeopts="${mymakeopts} NO_MANCOMPRESS= NO_INFOCOMPRESS= "
|
||||
fi
|
||||
|
||||
mymakeopts="${mymakeopts} NO_FSCHG="
|
||||
|
||||
[[ -z "${BMAKE}" ]] && BMAKE="$(freebsd_get_bmake)"
|
||||
|
||||
bsdmk_src_install "$@"
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: mono.eclass
|
||||
# @MAINTAINER:
|
||||
# dotnet@gentoo.org
|
||||
# @BLURB: common settings and functions for mono and dotnet related packages
|
||||
# @DESCRIPTION:
|
||||
# The mono eclass contains common environment settings that are useful for
|
||||
# dotnet packages. Currently, it provides no functions, just exports
|
||||
# MONO_SHARED_DIR and sets LC_ALL in order to prevent errors during compilation
|
||||
# of dotnet packages.
|
||||
|
||||
inherit multilib
|
||||
|
||||
# >=mono-0.92 versions using mcs -pkg:foo-sharp require shared memory, so we set the
|
||||
# shared dir to ${T} so that ${T}/.wapi can be used during the install process.
|
||||
export MONO_SHARED_DIR="${T}"
|
||||
|
||||
# Building mono, nant and many other dotnet packages is known to fail if LC_ALL
|
||||
# variable is not set to C. To prevent this all mono related packages will be
|
||||
# build with LC_ALL=C (see bugs #146424, #149817)
|
||||
export LC_ALL=C
|
||||
|
||||
# Monodevelop-using applications need this to be set or they will try to create config
|
||||
# files in the user's ~ dir.
|
||||
|
||||
export XDG_CONFIG_HOME="${T}"
|
||||
|
||||
# Fix bug 83020:
|
||||
# "Access Violations Arise When Emerging Mono-Related Packages with MONO_AOT_CACHE"
|
||||
|
||||
unset MONO_AOT_CACHE
|
||||
|
||||
egacinstall() {
|
||||
use !prefix && has "${EAPI:-0}" 0 1 2 && ED="${D}"
|
||||
gacutil -i "${1}" \
|
||||
-root "${ED}"/usr/$(get_libdir) \
|
||||
-gacdir /usr/$(get_libdir) \
|
||||
-package ${2:-${GACPN:-${PN}}} \
|
||||
|| die "installing ${1} into the Global Assembly Cache failed"
|
||||
}
|
||||
|
||||
mono_multilib_comply() {
|
||||
use !prefix && has "${EAPI:-0}" 0 1 2 && ED="${D}"
|
||||
local dir finddirs=() mv_command=${mv_command:-mv}
|
||||
if [[ -d "${ED}/usr/lib" && "$(get_libdir)" != "lib" ]]
|
||||
then
|
||||
if ! [[ -d "${ED}"/usr/"$(get_libdir)" ]]
|
||||
then
|
||||
mkdir "${ED}"/usr/"$(get_libdir)" || die "Couldn't mkdir ${ED}/usr/$(get_libdir)"
|
||||
fi
|
||||
${mv_command} "${ED}"/usr/lib/* "${ED}"/usr/"$(get_libdir)"/ || die "Moving files into correct libdir failed"
|
||||
rm -rf "${ED}"/usr/lib
|
||||
for dir in "${ED}"/usr/"$(get_libdir)"/pkgconfig "${ED}"/usr/share/pkgconfig
|
||||
do
|
||||
|
||||
if [[ -d "${dir}" && "$(find "${dir}" -name '*.pc')" != "" ]]
|
||||
then
|
||||
pushd "${dir}" &> /dev/null
|
||||
sed -i -r -e 's:/(lib)([^a-zA-Z0-9]|$):/'"$(get_libdir)"'\2:g' \
|
||||
*.pc \
|
||||
|| die "Sedding some sense into pkgconfig files failed."
|
||||
popd "${dir}" &> /dev/null
|
||||
fi
|
||||
done
|
||||
if [[ -d "${ED}/usr/bin" ]]
|
||||
then
|
||||
for exe in "${ED}/usr/bin"/*
|
||||
do
|
||||
if [[ "$(file "${exe}")" == *"shell script text"* ]]
|
||||
then
|
||||
sed -r -i -e ":/lib(/|$): s:/lib(/|$):/$(get_libdir)\1:" \
|
||||
"${exe}" || die "Sedding some sense into ${exe} failed"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
fi
|
||||
}
|
@ -1,128 +0,0 @@
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: oasis.eclass
|
||||
# @MAINTAINER:
|
||||
# ml@gentoo.org
|
||||
# @AUTHOR:
|
||||
# Original Author: Alexis Ballier <aballier@gentoo.org>
|
||||
# @SUPPORTED_EAPIS: 3 4 5 6 7
|
||||
# @BLURB: Provides common ebuild phases for oasis-based packages.
|
||||
# @DESCRIPTION:
|
||||
# Provides common ebuild phases for oasis-based packages.
|
||||
# Most of these packages will just have to inherit the eclass, set their
|
||||
# dependencies and the DOCS variable for base.eclass to install it and be done.
|
||||
#
|
||||
# It inherits multilib, findlib, eutils and base eclasses.
|
||||
# Ebuilds using oasis.eclass must be EAPI>=3.
|
||||
|
||||
# @ECLASS-VARIABLE: OASIS_BUILD_DOCS
|
||||
# @DESCRIPTION:
|
||||
# Will make oasis_src_compile build the documentation if this variable is
|
||||
# defined and the doc useflag is enabled.
|
||||
# The eclass takes care of setting doc in IUSE but the ebuild should take care
|
||||
# of the extra dependencies it may need.
|
||||
# Set before inheriting the eclass.
|
||||
|
||||
# @ECLASS-VARIABLE: OASIS_BUILD_TESTS
|
||||
# @DESCRIPTION:
|
||||
# Will make oasis_src_configure enable building the tests if the test useflag is
|
||||
# enabled. oasis_src_test will then run them.
|
||||
# Note that you sometimes need to enable this for src_test to be useful,
|
||||
# sometimes not. It has to be enabled on a per-case basis.
|
||||
# The eclass takes care of setting test in IUSE but the ebuild should take care
|
||||
# of the extra dependencies it may need.
|
||||
# Set before inheriting the eclass.
|
||||
|
||||
|
||||
# @ECLASS-VARIABLE: OASIS_NO_DEBUG
|
||||
# @DESCRIPTION:
|
||||
# Disable debug useflag usage. Old oasis versions did not support it so we allow
|
||||
# disabling it in those cases.
|
||||
# The eclass takes care of setting debug in IUSE.
|
||||
# Set before inheriting the eclass.
|
||||
|
||||
# @ECLASS-VARIABLE: OASIS_DOC_DIR
|
||||
# @DESCRIPTION:
|
||||
# Specify where to install documentation. Default is for ocamldoc HTML.
|
||||
# Change it before inherit if this is not what you want.
|
||||
# EPREFIX is automatically prepended.
|
||||
: ${OASIS_DOC_DIR:="/usr/share/doc/${PF}/html"}
|
||||
|
||||
inherit multilib findlib eutils base
|
||||
|
||||
case ${EAPI:-0} in
|
||||
0|1|2) die "You need at least EAPI-3 to use oasis.eclass";;
|
||||
3|4) RDEPEND=">=dev-lang/ocaml-3.12[ocamlopt?]";;
|
||||
*) RDEPEND=">=dev-lang/ocaml-3.12:=[ocamlopt?]";;
|
||||
esac
|
||||
|
||||
IUSE="+ocamlopt"
|
||||
[ -n "${OASIS_NO_DEBUG}" ] || IUSE="${IUSE} debug"
|
||||
[ -n "${OASIS_BUILD_DOCS}" ] && IUSE="${IUSE} doc"
|
||||
[ -n "${OASIS_BUILD_TESTS}" ] && IUSE="${IUSE} test"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
dev-ml/ocamlbuild"
|
||||
|
||||
# @FUNCTION: oasis_use_enable
|
||||
# @USAGE: < useflag > < variable >
|
||||
# @DESCRIPTION:
|
||||
# A use_enable-like function for oasis configure variables.
|
||||
# Outputs '--override variable (true|false)', whether useflag is enabled or
|
||||
# not.
|
||||
# Typical usage: $(oasis_use_enable ocamlopt is_native) as an oasis configure
|
||||
# argument.
|
||||
oasis_use_enable() {
|
||||
echo "--override $2 $(usex $1 true false)"
|
||||
}
|
||||
|
||||
# @FUNCTION: oasis_src_configure
|
||||
# @DESCRIPTION:
|
||||
# src_configure phase shared by oasis-based packages.
|
||||
# Extra arguments may be passed via oasis_configure_opts.
|
||||
oasis_src_configure() {
|
||||
local confargs=""
|
||||
[ -n "${OASIS_BUILD_TESTS}" ] && confargs="${confargs} $(use_enable test tests)"
|
||||
[ -n "${OASIS_NO_DEBUG}" ] || confargs="${confargs} $(oasis_use_enable debug debug)"
|
||||
${OASIS_SETUP_COMMAND:-ocaml setup.ml} -configure \
|
||||
--prefix "${ED}/usr" \
|
||||
--libdir "${ED}/usr/$(get_libdir)" \
|
||||
--docdir "${ED}${OASIS_DOC_DIR}" \
|
||||
$(oasis_use_enable ocamlopt is_native) \
|
||||
${confargs} \
|
||||
${oasis_configure_opts} \
|
||||
|| die
|
||||
}
|
||||
|
||||
# @FUNCTION: oasis_src_compile
|
||||
# @DESCRIPTION:
|
||||
# Builds an oasis-based package.
|
||||
# Will build documentation if OASIS_BUILD_DOCS is defined and the doc useflag is
|
||||
# enabled.
|
||||
oasis_src_compile() {
|
||||
${OASIS_SETUP_COMMAND:-ocaml setup.ml} -build || die
|
||||
if [ -n "${OASIS_BUILD_DOCS}" ] && use doc; then
|
||||
ocaml setup.ml -doc || die
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: oasis_src_test
|
||||
# @DESCRIPTION:
|
||||
# Runs the testsuite of an oasis-based package.
|
||||
oasis_src_test() {
|
||||
LD_LIBRARY_PATH="${S}/_build/lib" ${OASIS_SETUP_COMMAND:-ocaml setup.ml} -test || die
|
||||
}
|
||||
|
||||
# @FUNCTION: oasis_src_install
|
||||
# @DESCRIPTION:
|
||||
# Installs an oasis-based package.
|
||||
# It calls base_src_install_docs, so will install documentation declared in the
|
||||
# DOCS variable.
|
||||
oasis_src_install() {
|
||||
findlib_src_preinst
|
||||
${OASIS_SETUP_COMMAND:-ocaml setup.ml} -install || die
|
||||
base_src_install_docs
|
||||
}
|
||||
|
||||
EXPORT_FUNCTIONS src_configure src_compile src_test src_install
|
@ -1,310 +0,0 @@
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# Copyright 2007-2011 Hans de Graaff <graaff@gentoo.org>
|
||||
#
|
||||
# Based on elisp-common.eclass:
|
||||
# Copyright 2007 Christian Faulhammer <opfer@gentoo.org>
|
||||
# Copyright 2002-2004 Matthew Kennedy <mkennedy@gentoo.org>
|
||||
# Copyright 2004-2005 Mamoru Komachi <usata@gentoo.org>
|
||||
# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com>
|
||||
# Copyright 2007 Ulrich Müller <ulm@gentoo.org>
|
||||
#
|
||||
# @ECLASS: xemacs-elisp-common.eclass
|
||||
# @MAINTAINER:
|
||||
# xemacs@gentoo.org
|
||||
# @BLURB: XEmacs-related installation utilities
|
||||
# @DESCRIPTION:
|
||||
#
|
||||
# Usually you want to use this eclass for (optional) XEmacs support of
|
||||
# your package. This is NOT for GNU Emacs!
|
||||
#
|
||||
# Many of the steps here are sometimes done by the build system of your
|
||||
# package (especially compilation), so this is mainly for standalone elisp
|
||||
# files you gathered from somewhere else.
|
||||
#
|
||||
# When relying on the xemacs USE flag, you need to add
|
||||
#
|
||||
# xemacs? ( app-editors/xemacs )
|
||||
#
|
||||
# to your DEPEND/RDEPEND line and use the functions provided here to bring
|
||||
# the files to the correct locations.
|
||||
#
|
||||
# @ROFF .SS
|
||||
# src_compile() usage:
|
||||
#
|
||||
# An elisp file is compiled by the xemacs-elisp-compile() function
|
||||
# defined here and simply takes the source files as arguments.
|
||||
#
|
||||
# xemacs-elisp-compile *.el
|
||||
#
|
||||
# In the case of interdependent elisp files, you can use the
|
||||
# xemacs-elisp-comp() function which makes sure all files are
|
||||
# loadable.
|
||||
#
|
||||
# xemacs-elisp-comp *.el
|
||||
#
|
||||
# Function xemacs-elisp-make-autoload-file() can be used to generate a
|
||||
# file with autoload definitions for the lisp functions. It takes a
|
||||
# list of directories (default: working directory) as its argument.
|
||||
# Use of this function requires that the elisp source files contain
|
||||
# magic ";;;###autoload" comments. See the XEmacs Lisp Reference Manual
|
||||
# (node "Autoload") for a detailed explanation.
|
||||
#
|
||||
# @ROFF .SS
|
||||
# src_install() usage:
|
||||
#
|
||||
# The resulting compiled files (.elc) should be put in a subdirectory
|
||||
# of /usr/lib/xemacs/site-lisp/ which is named after the first
|
||||
# argument of xemacs-elisp-install(). The following parameters are
|
||||
# the files to be put in that directory. Usually the subdirectory
|
||||
# should be ${PN}, but you can choose something else.
|
||||
#
|
||||
# xemacs-elisp-install ${PN} *.el *.elc
|
||||
#
|
||||
# To let the XEmacs support be activated by XEmacs on startup, you need
|
||||
# to provide a site file (shipped in ${FILESDIR}) which contains the
|
||||
# startup code (have a look in the documentation of your software).
|
||||
# Normally this would look like this:
|
||||
#
|
||||
# (add-to-list 'load-path "@SITELISP@")
|
||||
# (add-to-list 'auto-mode-alist '("\\.csv\\'" . csv-mode))
|
||||
# (autoload 'csv-mode "csv-mode" "Major mode for csv files." t)
|
||||
#
|
||||
# If your XEmacs support files are installed in a subdirectory of
|
||||
# /usr/share/xemacs/site-packages/ (which is strongly recommended), you need
|
||||
# to extend XEmacs' load-path as shown in the first non-comment line.
|
||||
# The xemacs-elisp-site-file-install() function of this eclass will replace
|
||||
# "@SITELISP@" by the actual path.
|
||||
#
|
||||
# The next line tells XEmacs to load the mode opening a file ending
|
||||
# with ".csv" and load functions depending on the context and needed
|
||||
# features. Be careful though. Commands as "load-library" or "require"
|
||||
# bloat the editor as they are loaded on every startup. When having
|
||||
# many XEmacs support files, users may be annoyed by the start-up time.
|
||||
# Also avoid keybindings as they might interfere with the user's
|
||||
# settings. Give a hint in pkg_postinst(), which should be enough.
|
||||
#
|
||||
# The naming scheme for this site-init file matches the shell pattern
|
||||
# "[1-8][0-9]*-gentoo*.el", where the two digits at the beginning define
|
||||
# the loading order (numbers below 10 or above 89 are reserved for
|
||||
# internal use). So if your initialisation depends on another XEmacs
|
||||
# package, your site file's number must be higher! If there are no such
|
||||
# interdependencies then the number should be 50. Otherwise, numbers
|
||||
# divisible by 10 are preferred.
|
||||
#
|
||||
# Best practice is to define a SITEFILE variable in the global scope of
|
||||
# your ebuild (e.g., right after S or RDEPEND):
|
||||
#
|
||||
# SITEFILE="50${PN}-gentoo.el"
|
||||
#
|
||||
# Which is then installed by
|
||||
#
|
||||
# xemacs-elisp-site-file-install "${FILESDIR}/${SITEFILE}" || die
|
||||
#
|
||||
# in src_install(). Any characters after the "-gentoo" part and before
|
||||
# the extension will be stripped from the destination file's name.
|
||||
# For example, a file "50${PN}-gentoo-${PV}.el" will be installed as
|
||||
# "50${PN}-gentoo.el". If your subdirectory is not named ${PN}, give
|
||||
# the differing name as second argument.
|
||||
|
||||
# @ECLASS-VARIABLE: XEMACS_SITELISP
|
||||
# @DESCRIPTION:
|
||||
# Directory where packages install indivivual XEmacs Lisp files.
|
||||
XEMACS_SITELISP=/usr/share/xemacs/site-lisp
|
||||
|
||||
# @ECLASS-VARIABLE: XEMACS_SITEPACKAGE
|
||||
# @DESCRIPTION:
|
||||
# Directory where packages install XEmacs Lisp packages.
|
||||
XEMACS_SITEPACKAGE=/usr/share/xemacs/site-packages
|
||||
|
||||
# @ECLASS-VARIABLE: XEMACS
|
||||
# @DESCRIPTION:
|
||||
# Path of XEmacs executable.
|
||||
XEMACS=/usr/bin/xemacs
|
||||
|
||||
# @ECLASS-VARIABLE: XEMACS_BATCH_CLEAN
|
||||
# @DESCRIPTION:
|
||||
# Invocation of XEMACS in batch mode.
|
||||
XEMACS_BATCH_CLEAN="${XEMACS} --batch --no-site-file --no-init-file"
|
||||
|
||||
# @FUNCTION: xemacs-elisp-compile
|
||||
# @USAGE: <list of elisp files>
|
||||
# @DESCRIPTION:
|
||||
# Byte-compile elisp files with xemacs. This function will die when
|
||||
# there is a problem compiling the lisp files.
|
||||
xemacs-elisp-compile () {
|
||||
{
|
||||
${XEMACS_BATCH_CLEAN} -f batch-byte-compile "$@"
|
||||
xemacs-elisp-make-autoload-file "$@"
|
||||
} || die "Compile lisp files failed"
|
||||
}
|
||||
|
||||
xemacs-elisp-make-autoload-file () {
|
||||
${XEMACS_BATCH_CLEAN} \
|
||||
-eval "(setq autoload-package-name \"${PN}\")" \
|
||||
-eval "(setq generated-autoload-file \"${S}/auto-autoloads.el\")" \
|
||||
-l autoload -f batch-update-autoloads "$@"
|
||||
}
|
||||
|
||||
# @FUNCTION: xemacs-elisp-install
|
||||
# @USAGE: <subdirectory> <list of files>
|
||||
# @DESCRIPTION:
|
||||
# Install elisp source and byte-compiled files. All files are installed
|
||||
# in site-packages in their own directory, indicated by the first
|
||||
# argument to the function. This function will die if there is a problem
|
||||
# installing the list files.
|
||||
|
||||
xemacs-elisp-install () {
|
||||
local subdir="$1"
|
||||
shift
|
||||
( # use sub-shell to avoid possible environment polution
|
||||
dodir "${XEMACS_SITEPACKAGE}"/lisp/"${subdir}"
|
||||
insinto "${XEMACS_SITEPACKAGE}"/lisp/"${subdir}"
|
||||
doins "$@"
|
||||
) || die "Installing lisp files failed"
|
||||
}
|
||||
|
||||
# @FUNCTION: xemacs-elisp-comp
|
||||
# @USAGE: <list of elisp files>
|
||||
# @DESCRIPTION:
|
||||
# Byte-compile interdependent XEmacs lisp files.
|
||||
# Originally taken from GNU autotools, but some configuration options
|
||||
# removed as they don't make sense with the current status of XEmacs
|
||||
# in Gentoo.
|
||||
|
||||
xemacs-elisp-comp() {
|
||||
# Copyright 1995 Free Software Foundation, Inc.
|
||||
# François Pinard <pinard@iro.umontreal.ca>, 1995.
|
||||
# This script byte-compiles all `.el' files which are part of its
|
||||
# arguments, using XEmacs, and put the resulting `.elc' files into
|
||||
# the current directory, so disregarding the original directories used
|
||||
# in `.el' arguments.
|
||||
#
|
||||
# This script manages in such a way that all XEmacs LISP files to
|
||||
# be compiled are made visible between themselves, in the event
|
||||
# they require or load-library one another.
|
||||
|
||||
test $# -gt 0 || return 1
|
||||
|
||||
einfo "Compiling XEmacs Elisp files ..."
|
||||
|
||||
tempdir=elc.$$
|
||||
mkdir ${tempdir}
|
||||
cp "$@" ${tempdir}
|
||||
pushd ${tempdir}
|
||||
|
||||
echo "(add-to-list 'load-path \"../\")" > script
|
||||
${XEMACS_BATCH_CLEAN} -l script -f batch-byte-compile *.el
|
||||
local ret=$?
|
||||
mv *.elc ..
|
||||
|
||||
popd
|
||||
rm -fr ${tempdir}
|
||||
return ${ret}
|
||||
}
|
||||
|
||||
# @FUNCTION: xemacs-elisp-site-file-install
|
||||
# @USAGE: <site-init file> [subdirectory]
|
||||
# @DESCRIPTION:
|
||||
# Install XEmacs site-init file in XEMACS_SITELISP directory.
|
||||
# Automatically inserts a standard comment header with the name of the
|
||||
# package (unless it is already present). Token @SITELISP@ is replaced
|
||||
# by the path to the package's subdirectory in XEMACS_SITELISP.
|
||||
|
||||
xemacs-elisp-site-file-install() {
|
||||
local sf="${1##*/}" my_pn="${2:-${PN}}" ret
|
||||
local header=";;; ${PN} site-lisp configuration"
|
||||
|
||||
[[ ${sf} == [0-9][0-9]*-gentoo*.el ]] \
|
||||
|| ewarn "xemacs-elisp-site-file-install: bad name of site-init file"
|
||||
sf="${T}/${sf/%-gentoo*.el/-gentoo.el}"
|
||||
ebegin "Installing site initialisation file for XEmacs"
|
||||
[[ $1 = "${sf}" ]] || cp "$1" "${sf}"
|
||||
sed -i -e "1{:x;/^\$/{n;bx;};/^;.*${PN}/I!s:^:${header}\n\n:;1s:^:\n:;}" \
|
||||
-e "s:@SITELISP@:${EPREFIX}${XEMACS_SITELISP}/${my_pn}:g" "${sf}"
|
||||
( # subshell to avoid pollution of calling environment
|
||||
insinto "${XEMACS_SITELISP}/site-gentoo.d"
|
||||
doins "${sf}"
|
||||
)
|
||||
ret=$?
|
||||
rm -f "${sf}"
|
||||
eend ${ret} "xemacs-elisp-site-file-install: doins failed"
|
||||
}
|
||||
|
||||
# @FUNCTION: xemacs-elisp-site-regen
|
||||
# @DESCRIPTION:
|
||||
# Regenerate the site-gentoo.el file, based on packages' site
|
||||
# initialisation files in the /usr/share/xemacs/site-lisp/site-gentoo.d/
|
||||
# directory.
|
||||
|
||||
xemacs-elisp-site-regen() {
|
||||
local sitelisp=${ROOT}${EPREFIX}${XEMACS_SITELISP}
|
||||
local sf i line null="" page=$'\f'
|
||||
local -a sflist
|
||||
|
||||
if [ ! -d "${sitelisp}" ]; then
|
||||
eerror "xemacs-elisp-site-regen: Directory ${sitelisp} does not exist"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ ! -d "${T}" ]; then
|
||||
eerror "xemacs-elisp-site-regen: Temporary directory ${T} does not exist"
|
||||
return 1
|
||||
fi
|
||||
|
||||
einfon "Regenerating site-gentoo.el for XEmacs (${EBUILD_PHASE}) ..."
|
||||
|
||||
for sf in "${sitelisp}"/site-gentoo.d/[0-9][0-9]*.el
|
||||
do
|
||||
[ -r "${sf}" ] || continue
|
||||
# sort files by their basename. straight insertion sort.
|
||||
for ((i=${#sflist[@]}; i>0; i--)); do
|
||||
[[ ${sf##*/} < ${sflist[i-1]##*/} ]] || break
|
||||
sflist[i]=${sflist[i-1]}
|
||||
done
|
||||
sflist[i]=${sf}
|
||||
done
|
||||
|
||||
cat <<-EOF >"${T}"/site-gentoo.el
|
||||
;;; site-gentoo.el --- site initialisation for Gentoo-installed packages
|
||||
|
||||
;;; Commentary:
|
||||
;; Automatically generated by xemacs-elisp-common.eclass
|
||||
;; DO NOT EDIT THIS FILE
|
||||
|
||||
;;; Code:
|
||||
EOF
|
||||
# Use sed instead of cat here, since files may miss a trailing newline.
|
||||
sed '$q' "${sflist[@]}" </dev/null >>"${T}"/site-gentoo.el
|
||||
cat <<-EOF >>"${T}"/site-gentoo.el
|
||||
|
||||
${page}
|
||||
(provide 'site-gentoo)
|
||||
|
||||
;; Local ${null}Variables:
|
||||
;; no-byte-compile: t
|
||||
;; buffer-read-only: t
|
||||
;; End:
|
||||
|
||||
;;; site-gentoo.el ends here
|
||||
EOF
|
||||
|
||||
if cmp -s "${sitelisp}"/site-gentoo.el "${T}"/site-gentoo.el; then
|
||||
# This prevents outputting unnecessary text when there
|
||||
# was actually no change.
|
||||
# A case is a remerge where we have doubled output.
|
||||
rm -f "${T}"/site-gentoo.el
|
||||
echo " no changes."
|
||||
else
|
||||
mv "${T}"/site-gentoo.el "${sitelisp}"/site-gentoo.el
|
||||
echo
|
||||
case ${#sflist[@]} in
|
||||
0) ewarn "... Huh? No site initialisation files found." ;;
|
||||
1) einfo "... ${#sflist[@]} site initialisation file included." ;;
|
||||
*) einfo "... ${#sflist[@]} site initialisation files included." ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
#
|
||||
# Copyright 2007-2011 Hans de Graaff <graaff@gentoo.org>
|
||||
#
|
||||
# Based on elisp.eclass:
|
||||
# Copyright 2007 Christian Faulhammer <opfer@gentoo.org>
|
||||
# Copyright 2002-2003 Matthew Kennedy <mkennedy@gentoo.org>
|
||||
# Copyright 2003 Jeremy Maitin-Shepard <jbms@attbi.com>
|
||||
#
|
||||
# @ECLASS: xemacs-elisp.eclass
|
||||
# @MAINTAINER:
|
||||
# xemacs@gentoo.org
|
||||
# @BLURB: Eclass for XEmacs Lisp packages
|
||||
# @DESCRIPTION:
|
||||
# Emacs support for other than pure elisp packages is handled by
|
||||
# xemacs-elisp-common.eclass where you won't have a dependency on XEmacs
|
||||
# itself. All elisp-* functions are documented there.
|
||||
|
||||
# @ECLASS-VARIABLE: SIMPLE_ELISP
|
||||
# @DEFAULT_UNSET
|
||||
# @DESCRIPTION:
|
||||
# Setting SIMPLE_ELISP=t in an ebuild means, that the package's source
|
||||
# is a single (in whatever way) compressed elisp file with the file name
|
||||
# ${PN}-${PV}. This eclass will then redefine ${S}, and move
|
||||
# ${PN}-${PV}.el to ${PN}.el in src_unpack().
|
||||
|
||||
inherit xemacs-elisp-common
|
||||
|
||||
if [ "${SIMPLE_ELISP}" = 't' ]; then
|
||||
S="${WORKDIR}/"
|
||||
fi
|
||||
|
||||
|
||||
DEPEND="app-editors/xemacs"
|
||||
IUSE=""
|
||||
|
||||
xemacs-elisp_src_unpack() {
|
||||
unpack ${A}
|
||||
if [ "${SIMPLE_ELISP}" = 't' ]
|
||||
then
|
||||
cd "${S}" && mv ${P}.el ${PN}.el
|
||||
fi
|
||||
}
|
||||
|
||||
xemacs-elisp_src_compile() {
|
||||
xemacs-elisp-compile *.el
|
||||
}
|
||||
|
||||
xemacs-elisp_src_install () {
|
||||
xemacs-elisp-install "${PN}" *.el *.elc
|
||||
}
|
||||
|
||||
EXPORT_FUNCTIONS src_unpack src_compile src_install
|
Loading…
Reference in New Issue
Block a user