9fc3c7f733
The default pkg(8) from pkg.freebsd.org requires libjail.so, so mark the jail package as vital along with the runtime package to avoid errors when libjail.so is removed. This is a no-op for systems with WITHOUT_JAIL in src.conf(5) and pkg(8) built from the Ports Collection. In order to make this work without marking packages such as the jail-lib32, for example, the jail.ucl file needed to be split out into separate files similarly to the runtime-*.ucl files. Glanced at by: brd MFC after: 5 days Sponsored by: The FreeBSD Foundation
148 lines
3.2 KiB
Bash
Executable File
148 lines
3.2 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
main() {
|
|
desc=
|
|
comment=
|
|
debug=
|
|
uclsource=
|
|
while getopts "do:s:u:" arg; do
|
|
case ${arg} in
|
|
d)
|
|
debug=1
|
|
;;
|
|
o)
|
|
outname="${OPTARG}"
|
|
origname="${OPTARG}"
|
|
;;
|
|
s)
|
|
srctree="${OPTARG}"
|
|
;;
|
|
u)
|
|
uclfile="${OPTARG}"
|
|
;;
|
|
*)
|
|
echo "Unknown argument"
|
|
;;
|
|
esac
|
|
done
|
|
|
|
shift $(( ${OPTIND} - 1 ))
|
|
|
|
outname="$(echo ${outname} | tr '-' '_')"
|
|
|
|
case "${outname}" in
|
|
runtime)
|
|
outname="runtime"
|
|
uclfile="${uclfile}"
|
|
;;
|
|
runtime_manuals)
|
|
outname="${origname}"
|
|
pkgdeps="runtime"
|
|
;;
|
|
runtime_*)
|
|
outname="${origname}"
|
|
uclfile="${outname##*}${uclfile}"
|
|
pkgdeps="runtime"
|
|
_descr="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESCR)"
|
|
;;
|
|
jail_*)
|
|
outname="${origname}"
|
|
uclfile="${outname##*}${uclfile}"
|
|
pkgdeps="runtime"
|
|
_descr="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESCR)"
|
|
;;
|
|
*_lib32_development)
|
|
outname="${outname%%_lib32_development}"
|
|
_descr="32-bit Libraries, Development Files"
|
|
pkgdeps="${outname}"
|
|
;;
|
|
*_lib32_debug)
|
|
outname="${outname%%_lib32_debug}"
|
|
_descr="32-bit Libraries, Debugging Symbols"
|
|
pkgdeps="${outname}"
|
|
;;
|
|
*_lib32_profile)
|
|
outname="${outname%%_lib32_profile}"
|
|
_descr="32-bit Libraries, Profiling"
|
|
pkgdeps="${outname}"
|
|
;;
|
|
*_lib32)
|
|
outname="${outname%%_lib32}"
|
|
_descr="32-bit Libraries"
|
|
pkgdeps="${outname}"
|
|
;;
|
|
*_development)
|
|
outname="${outname%%_development}"
|
|
_descr="Development Files"
|
|
pkgdeps="${outname}"
|
|
;;
|
|
*_profile)
|
|
outname="${outname%%_profile}"
|
|
_descr="Profiling Libraries"
|
|
pkgdeps="${outname}"
|
|
;;
|
|
*_debug)
|
|
outname="${outname%%_debug}"
|
|
_descr="Debugging Symbols"
|
|
pkgdeps="${outname}"
|
|
;;
|
|
${origname})
|
|
pkgdeps="runtime"
|
|
;;
|
|
*)
|
|
uclfile="${outname##*}${origname}"
|
|
outname="${outname##*}${origname}"
|
|
;;
|
|
esac
|
|
|
|
outname="${outname%%_*}"
|
|
|
|
desc="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESC)"
|
|
comment="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_COMMENT)"
|
|
|
|
uclsource="${srctree}/release/packages/${outname}.ucl"
|
|
if [ ! -e "${uclsource}" ]; then
|
|
uclsource="${srctree}/release/packages/template.ucl"
|
|
fi
|
|
|
|
if [ ! -z "${debug}" ]; then
|
|
echo ""
|
|
echo "==============================================================="
|
|
echo "DEBUG:"
|
|
echo "_descr=${_descr}"
|
|
echo "outname=${outname}"
|
|
echo "origname=${origname}"
|
|
echo "srctree=${srctree}"
|
|
echo "uclfile=${uclfile}"
|
|
echo "desc=${desc}"
|
|
echo "comment=${comment}"
|
|
echo "cp ${uclsource} -> ${uclfile}"
|
|
echo "==============================================================="
|
|
echo ""
|
|
echo ""
|
|
echo ""
|
|
fi
|
|
|
|
[ -z "${comment}" ] && comment="${outname} package"
|
|
[ ! -z "${_descr}" ] && comment="${comment} (${_descr})"
|
|
[ -z "${desc}" ] && desc="${outname} package"
|
|
|
|
cp "${uclsource}" "${uclfile}"
|
|
cap_arg="$(make -C ${srctree}/etc -VCAP_MKDB_ENDIAN)"
|
|
pwd_arg="$(make -C ${srctree}/etc -VPWD_MKDB_ENDIAN)"
|
|
sed -i '' -e "s/%VERSION%/${PKG_VERSION}/" \
|
|
-e "s/%PKGNAME%/${origname}/" \
|
|
-e "s/%COMMENT%/${comment}/" \
|
|
-e "s/%DESC%/${desc}/" \
|
|
-e "s/%CAP_MKDB_ENDIAN%/${cap_arg}/g" \
|
|
-e "s/%PWD_MKDB_ENDIAN%/${pwd_arg}/g" \
|
|
-e "s/%PKGDEPS%/${pkgdeps}/" \
|
|
${uclfile}
|
|
return 0
|
|
}
|
|
|
|
main "${@}"
|