xref: /freebsd-src/release/packages/generate-ucl.sh (revision b4dd5ff5f4f159a566c64e3348e67c33b80f2bbf)
15c52b2f5SGlen Barber#!/bin/sh
25c52b2f5SGlen Barber#
35c52b2f5SGlen Barber#
45c52b2f5SGlen Barber
55c52b2f5SGlen Barbermain() {
65c52b2f5SGlen Barber	desc=
75c52b2f5SGlen Barber	comment=
85c52b2f5SGlen Barber	debug=
95c52b2f5SGlen Barber	uclsource=
105c52b2f5SGlen Barber	while getopts "do:s:u:" arg; do
115c52b2f5SGlen Barber		case ${arg} in
125c52b2f5SGlen Barber		d)
135c52b2f5SGlen Barber			debug=1
145c52b2f5SGlen Barber			;;
155c52b2f5SGlen Barber		o)
165c52b2f5SGlen Barber			outname="${OPTARG}"
175c52b2f5SGlen Barber			origname="${OPTARG}"
185c52b2f5SGlen Barber			;;
195c52b2f5SGlen Barber		s)
205c52b2f5SGlen Barber			srctree="${OPTARG}"
215c52b2f5SGlen Barber			;;
225c52b2f5SGlen Barber		u)
235c52b2f5SGlen Barber			uclfile="${OPTARG}"
245c52b2f5SGlen Barber			;;
255c52b2f5SGlen Barber		*)
265c52b2f5SGlen Barber			echo "Unknown argument"
275c52b2f5SGlen Barber			;;
285c52b2f5SGlen Barber		esac
295c52b2f5SGlen Barber	done
305c52b2f5SGlen Barber
315c52b2f5SGlen Barber	shift $(( ${OPTIND} - 1 ))
325c52b2f5SGlen Barber
335c52b2f5SGlen Barber	case "${outname}" in
345efa7281SEmmanuel Vadot		bootloader)
355efa7281SEmmanuel Vadot			pkgdeps=""
365efa7281SEmmanuel Vadot			;;
371d7ffb37SDoug Rabson		certctl)
381d7ffb37SDoug Rabson			pkgdeps="caroot openssl"
39fbd46fe9SKyle Evans			;;
4078847e1eSDoug Rabson		clang)
416084d989SBaptiste Daroussin			pkgdeps="lld libcompiler_rt-dev"
4278847e1eSDoug Rabson			;;
432ef5a862SLexi Winter		periodic)
442ef5a862SLexi Winter			pkgdeps="cron"
452ef5a862SLexi Winter			;;
461e9c9ab5SEd Maste
471e9c9ab5SEd Maste		# -dev packages that have no corresponding non-dev package
481e9c9ab5SEd Maste		# as a dependency.
4936468371SMikaël Urankar		libcompat-dev|libcompiler_rt-dev|liby-dev)
501e9c9ab5SEd Maste			outname=${outname%%-dev}
511e9c9ab5SEd Maste			_descr="Development Files"
521e9c9ab5SEd Maste			;;
5336468371SMikaël Urankar		libcompat-lib32_dev|libcompiler_rt-lib32_dev|liby-lib32_dev)
541e9c9ab5SEd Maste			outname=${outname%%-lib32_dev}
551e9c9ab5SEd Maste			_descr="32-bit Libraries, Development Files"
561e9c9ab5SEd Maste			;;
570eccd618SEd Maste		libcompat-man|libelftc-man)
580eccd618SEd Maste			outname=${outname%%-man}
590eccd618SEd Maste			_descr="Manual Pages"
605391bcf0SEmmanuel Vadot			;;
611c1ff797SMina Igalic		utilities)
621c1ff797SMina Igalic			uclfile="${uclfile}"
631c1ff797SMina Igalic			;;
6444d81980SGlen Barber		runtime)
6544d81980SGlen Barber			outname="runtime"
669fc3c7f7SGlen Barber			_descr="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESCR)"
679fc3c7f7SGlen Barber			;;
6809d83a06SMark Johnston		*-lib32_dev)
6909d83a06SMark Johnston			outname="${outname%%-lib32_dev}"
705c52b2f5SGlen Barber			_descr="32-bit Libraries, Development Files"
715c52b2f5SGlen Barber			pkgdeps="${outname}"
725c52b2f5SGlen Barber			;;
7309d83a06SMark Johnston		*-lib32_dbg)
7409d83a06SMark Johnston			outname="${outname%%-lib32_dbg}"
755c52b2f5SGlen Barber			_descr="32-bit Libraries, Debugging Symbols"
765c52b2f5SGlen Barber			pkgdeps="${outname}"
775c52b2f5SGlen Barber			;;
7809d83a06SMark Johnston		*-lib32)
7909d83a06SMark Johnston			outname="${outname%%-lib32}"
805c52b2f5SGlen Barber			_descr="32-bit Libraries"
815c52b2f5SGlen Barber			pkgdeps="${outname}"
825c52b2f5SGlen Barber			;;
8309d83a06SMark Johnston		*-dev)
8409d83a06SMark Johnston			outname="${outname%%-dev}"
855c52b2f5SGlen Barber			_descr="Development Files"
865c52b2f5SGlen Barber			pkgdeps="${outname}"
875c52b2f5SGlen Barber			;;
8809d83a06SMark Johnston		*-dbg)
8909d83a06SMark Johnston			outname="${outname%%-dbg}"
905c52b2f5SGlen Barber			_descr="Debugging Symbols"
915c52b2f5SGlen Barber			pkgdeps="${outname}"
925c52b2f5SGlen Barber			;;
9309d83a06SMark Johnston		*-man)
9409d83a06SMark Johnston			outname="${outname%%-man}"
95c7e6cb9eSEmmanuel Vadot			_descr="Manual Pages"
96c7e6cb9eSEmmanuel Vadot			pkgdeps="${outname}"
97c7e6cb9eSEmmanuel Vadot			;;
985c52b2f5SGlen Barber		${origname})
995c52b2f5SGlen Barber			;;
1005c52b2f5SGlen Barber		*)
1015c52b2f5SGlen Barber			uclfile="${outname##*}${origname}"
1025c52b2f5SGlen Barber			outname="${outname##*}${origname}"
1035c52b2f5SGlen Barber			;;
1045c52b2f5SGlen Barber	esac
1055c52b2f5SGlen Barber
1065c52b2f5SGlen Barber	desc="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESC)"
1075c52b2f5SGlen Barber	comment="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_COMMENT)"
1085c52b2f5SGlen Barber
1095c52b2f5SGlen Barber	uclsource="${srctree}/release/packages/template.ucl"
1105c52b2f5SGlen Barber
1115c52b2f5SGlen Barber	if [ ! -z "${debug}" ]; then
1125c52b2f5SGlen Barber		echo ""
1135c52b2f5SGlen Barber		echo "==============================================================="
1145c52b2f5SGlen Barber		echo "DEBUG:"
1155c52b2f5SGlen Barber		echo "_descr=${_descr}"
1165c52b2f5SGlen Barber		echo "outname=${outname}"
1175c52b2f5SGlen Barber		echo "origname=${origname}"
1185c52b2f5SGlen Barber		echo "srctree=${srctree}"
1195c52b2f5SGlen Barber		echo "uclfile=${uclfile}"
1205c52b2f5SGlen Barber		echo "desc=${desc}"
1215c52b2f5SGlen Barber		echo "comment=${comment}"
1221c1ff797SMina Igalic		echo "vital=${vital}"
1235c52b2f5SGlen Barber		echo "cp ${uclsource} -> ${uclfile}"
1245c52b2f5SGlen Barber		echo "==============================================================="
1255c52b2f5SGlen Barber		echo ""
1265c52b2f5SGlen Barber		echo ""
1275c52b2f5SGlen Barber		echo ""
1285c52b2f5SGlen Barber	fi
1295c52b2f5SGlen Barber
1305c52b2f5SGlen Barber	[ -z "${comment}" ] && comment="${outname} package"
1315c52b2f5SGlen Barber	[ ! -z "${_descr}" ] && comment="${comment} (${_descr})"
1325c52b2f5SGlen Barber	[ -z "${desc}" ] && desc="${outname} package"
1335c52b2f5SGlen Barber
1345c52b2f5SGlen Barber	cp "${uclsource}" "${uclfile}"
135f2c46299SKyle Evans	if [ ! -z "${pkgdeps}" ]; then
1361d7ffb37SDoug Rabson		echo 'deps: {' >> ${uclfile}
1371d7ffb37SDoug Rabson		for dep in ${pkgdeps}; do
138f2c46299SKyle Evans			cat <<EOF >> ${uclfile}
139*b4dd5ff5SMark Johnston	${PKG_NAME_PREFIX}-${dep}: {
140f2c46299SKyle Evans		origin: "base",
141f2c46299SKyle Evans		version: "${PKG_VERSION}"
142f2c46299SKyle Evans	}
143f2c46299SKyle EvansEOF
1441d7ffb37SDoug Rabson		done
1451d7ffb37SDoug Rabson		echo '}' >> ${uclfile}
146f2c46299SKyle Evans	fi
147f59e5352SBrad Davis	cap_arg="$( make -f ${srctree}/share/mk/bsd.endian.mk -VCAP_MKDB_ENDIAN )"
148f8e46fd6SBaptiste Daroussin	${srctree}/release/packages/generate-ucl.lua \
149f8e46fd6SBaptiste Daroussin		VERSION "${PKG_VERSION}" \
150f8e46fd6SBaptiste Daroussin		PKGNAME "${origname}" \
151f8e46fd6SBaptiste Daroussin		PKGGENNAME "${outname}" \
152f8e46fd6SBaptiste Daroussin		PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
153f8e46fd6SBaptiste Daroussin		COMMENT "${comment}" \
154f8e46fd6SBaptiste Daroussin		DESC "${desc}" \
155f8e46fd6SBaptiste Daroussin		CAP_MKDB_ENDIAN "${cap_arg}" \
156f8e46fd6SBaptiste Daroussin		PKG_WWW "${PKG_WWW}" \
157f8e46fd6SBaptiste Daroussin		PKG_MAINTAINER "${PKG_MAINTAINER}" \
158f8e46fd6SBaptiste Daroussin		UCLFILES "${srctree}/release/packages/" \
159e05b6502SLexi Winter		${uclfile} ${uclfile}
160f8e46fd6SBaptiste Daroussin
1615c52b2f5SGlen Barber	return 0
1625c52b2f5SGlen Barber}
1635c52b2f5SGlen Barber
1645c52b2f5SGlen Barbermain "${@}"
165