diff --git a/Makefile.inc1 b/Makefile.inc1 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2101,22 +2101,28 @@ ( echo "@override_prefix /usr/src" ; \ ${GIT_CMD} ls-files --recurse-submodules "sys/" ) \ > ${SSTAGEDIR}/src-sys.plist - sed -e "s/%VERSION%/${PKG_VERSION}/" \ - -e "s/%DESC%/FreeBSD sources/" \ - -e "s/ %VCS_REVISION%/${VCS_REVISION}/" \ - -e "s/%PKG_NAME_PREFIX%/${PKG_NAME_PREFIX}/" \ - -e "s/%PKG_MAINTAINER%/${PKG_MAINTAINER}/" \ - -e "s|%PKG_WWW%|${PKG_WWW}|" \ - ${SRCDIR}/release/packages/src.ucl \ - > ${SSTAGEDIR}/src.ucl - sed -e "s/%VERSION%/${PKG_VERSION}/" \ - -e "s/%DESC%/FreeBSD Kernel sources/" \ - -e "s/ %VCS_REVISION%/${VCS_REVISION}/" \ - -e "s/%PKG_NAME_PREFIX%/${PKG_NAME_PREFIX}/" \ - -e "s/%PKG_MAINTAINER%/${PKG_MAINTAINER}/" \ - -e "s|%PKG_WWW%|${PKG_WWW}|" \ - ${SRCDIR}/release/packages/src-sys.ucl \ - > ${SSTAGEDIR}/src-sys.ucl + ${SRCDIR}/release/packages/generate-ucl.lua \ + PKGNAME "src" \ + PKGGENNAME "src" \ + VERSION "${PKG_VERSION}" \ + DESC "FreeBSD Kernel Sources" \ + COMMENT "FreeBSD Userland Sources" \ + PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \ + PKG_MAINTAINER "${PKG_MAINTAINER}" \ + PKG_WWW "${PKG_WWW}" \ + ${SRCDIR}/release/packages/template.ucl \ + ${SSTAGEDIR}/src.ucl + ${SRCDIR}/release/packages/generate-ucl.lua \ + PKGNAME "src-sys" \ + PKGGENNAME "src" \ + VERSION "${PKG_VERSION}" \ + DESC "FreeBSD Kernel Sources" \ + COMMENT "FreeBSD Kernel Sources" \ + PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \ + PKG_MAINTAINER "${PKG_MAINTAINER}" \ + PKG_WWW "${PKG_WWW}" \ + ${SRCDIR}/release/packages/template.ucl \ + ${SSTAGEDIR}/src-sys.ucl ${PKG_CMD} -o ABI=${PKG_ABI} \ -o OSVERSION="${SRCRELDATE}" \ create -f ${PKG_FORMAT} \ @@ -2212,17 +2218,17 @@ ${METALOG_SORT_CMD} ${KSTAGEDIR}/kernel.meta | \ awk -f ${SRCDIR}/release/scripts/mtree-to-plist.awk \ -v kernel=yes -v _kernconf=${INSTALLKERNEL} ; \ - sed -e "s/%VERSION%/${PKG_VERSION}/" \ - -e "s/%PKGNAME%/kernel-${INSTALLKERNEL:tl}${flavor}/" \ - -e "s/%KERNELDIR%/kernel/" \ - -e "s/%COMMENT%/FreeBSD ${INSTALLKERNEL} kernel ${flavor}/" \ - -e "s/%DESC%/FreeBSD ${INSTALLKERNEL} kernel ${flavor}/" \ - -e "s/ %VCS_REVISION%/${VCS_REVISION}/" \ - -e "s/%PKG_NAME_PREFIX%/${PKG_NAME_PREFIX}/" \ - -e "s/%PKG_MAINTAINER%/${PKG_MAINTAINER}/" \ - -e "s|%PKG_WWW%|${PKG_WWW}|" \ - ${SRCDIR}/release/packages/kernel.ucl \ - > ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl ; \ + ${SRCDIR}/release/packages/generate-ucl.lua \ + PKGNAME "kernel-${INSTALLKERNEL:tl}${flavor}" \ + VERSION "${PKG_VERSION}" \ + KERNELDIR "kernel" \ + COMMENT "FreeBSD ${INSTALLKERNEL} kernel ${flavor}" \ + DESC "FreeBSD ${INSTALLKERNEL} kernel ${flavor}" \ + PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \ + PKG_MAINTAINER "${PKG_MAINTAINER}" \ + PKG_WWW "${PKG_WWW}" \ + ${SRCDIR}/release/packages/template.ucl \ + ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl ; \ awk -F\" ' \ /name/ { printf("===> Creating %s-", $$2); next } \ /version/ {print $$2; next } ' \ diff --git a/release/packages/certctl.ucl b/release/packages/certctl.ucl --- a/release/packages/certctl.ucl +++ b/release/packages/certctl.ucl @@ -1,19 +1,3 @@ -# -# - -name = "%PKG_NAME_PREFIX%-%PKGNAME%" -origin = "base" -version = "%VERSION%" -comment = "%COMMENT%" -categories = [ base ] -maintainer = %PKG_MAINTAINER% -www = "%PKG_WWW%" -prefix = "/" -licenselogic = "single" -licenses = [ BSD2CLAUSE ] -desc = < ]... + +In the files the variable (in the form ${variablename} +in the ) will be expanded to . + +The undefined variables will reamin unmofifier "${variablename}" +]]-- + +local ucl = require("ucl") + +if #arg < 2 or #arg % 2 ~= 0 then + io.stderr:write(arg[0] .. ": expected an even number of arguments, got " .. #arg) + os.exit(1) +end + +local parser = ucl.parser() +for i = 2, #arg - 2, 2 do + parser:register_variable(arg[i - 1], arg[i]) +end +local res,err = parser:parse_file(arg[#arg - 1]) +if not res then + io.stderr:write(arg[0] .. ": fail to parse("..arg[#arg - 1].."): "..err) + os.exit(1) +end +local f,err = io.open(arg[#arg], "w") +if not f then + io.stderr:write(arg[0] .. ": fail to open("..arg[#arg].."): ".. err) + os.exit(1) +end +local obj = parser:get_object() +f:write(ucl.to_format(obj, 'ucl')) +f:close() diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh --- a/release/packages/generate-ucl.sh +++ b/release/packages/generate-ucl.sh @@ -30,17 +30,10 @@ shift $(( ${OPTIND} - 1 )) - vital="false" - case "${outname}" in bootloader) pkgdeps="" ;; - clibs) - vital="true" - # clibs should not have any dependencies or anything - # else imposed on it. - ;; certctl) pkgdeps="caroot openssl" ;; @@ -68,7 +61,6 @@ runtime) outname="runtime" _descr="$(make -C ${srctree}/release/packages -f Makefile.package -V ${outname}_DESCR)" - vital="true" ;; *-lib32_dev) outname="${outname%%-lib32_dev}" @@ -111,10 +103,7 @@ 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 + uclsource="${srctree}/release/packages/template.ucl" if [ ! -z "${debug}" ]; then echo "" @@ -153,16 +142,19 @@ echo '}' >> ${uclfile} fi cap_arg="$( make -f ${srctree}/share/mk/bsd.endian.mk -VCAP_MKDB_ENDIAN )" - sed -i '' -e "s/%VERSION%/${PKG_VERSION}/" \ - -e "s/%PKGNAME%/${origname}/" \ - -e "s/%COMMENT%/${comment}/" \ - -e "s/%DESC%/${desc}/" \ - -e "s/%VITAL%/${vital}/" \ - -e "s/%CAP_MKDB_ENDIAN%/${cap_arg}/g" \ - -e "s/%PKG_NAME_PREFIX%/${PKG_NAME_PREFIX}/" \ - -e "s|%PKG_WWW%|${PKG_WWW}|" \ - -e "s/%PKG_MAINTAINER%/${PKG_MAINTAINER}/" \ - ${uclfile} + ${srctree}/release/packages/generate-ucl.lua \ + VERSION "${PKG_VERSION}" \ + PKGNAME "${origname}" \ + PKGGENNAME "${outname}" \ + PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \ + COMMENT "${comment}" \ + DESC "${desc}" \ + CAP_MKDB_ENDIAN "${cap_arg}" \ + PKG_WWW "${PKG_WWW}" \ + PKG_MAINTAINER "${PKG_MAINTAINER}" \ + UCLFILES "${srctree}/release/packages/" \ + ${uclsource} ${uclfile} + return 0 } diff --git a/release/packages/jail.ucl b/release/packages/jail.ucl deleted file mode 100644 --- a/release/packages/jail.ucl +++ /dev/null @@ -1,18 +0,0 @@ -# -# - -name = "%PKG_NAME_PREFIX%-%PKGNAME%" -origin = "base" -version = "%VERSION%" -comment = "%COMMENT%" -categories = [ base ] -maintainer = "%PKG_MAINTAINER%" -www = "%PKG_WWW%" -prefix = "/" -vital = %VITAL% -licenselogic = "single" -licenses = [ BSD2CLAUSE ] -desc = <