build: create tmp/userids file
authorPaul Spooren <mail@aparcar.org>
Mon, 14 Sep 2020 01:55:52 +0000 (15:55 -1000)
committerDaniel Golle <daniel@makrotopia.org>
Mon, 14 Sep 2020 09:54:52 +0000 (10:54 +0100)
Multiple packages contain a USERID variable defining required user and
group for the package to run. With the recent addition of
"PKG_FILE_MODES" it is possible to define user and group of specific
files, replacing (possibly insecure) post-inst scripts. These modes are
set during build time and put directly into the packages.

To allow user and group names rather than the numeric values, a mapping
like `/etc/passwd` is required by the `ipkg-build` script, mapping names
defined in "PKG_FILE_MODES" to a numeric value, as the build system does
not create any users during build.

This commit adds a single line to the `prepare-tmpinfo` target, so that
everytime the feeds are updated the *passwd like* content of
`./tmp/userids` is updated.

Signed-off-by: Paul Spooren <mail@aparcar.org>
include/toplevel.mk

index c7e71ad5716d9acf1a92b857fa8bce7ca8a25786..589af9407512a8b74f21b720a9a52ba48d113773 100644 (file)
@@ -92,6 +92,7 @@ prepare-tmpinfo: FORCE
        ./scripts/package-metadata.pl mk tmp/.packageinfo > tmp/.packagedeps || { rm -f tmp/.packagedeps; false; }
        ./scripts/package-metadata.pl pkgaux tmp/.packageinfo > tmp/.packageauxvars || { rm -f tmp/.packageauxvars; false; }
        touch $(TOPDIR)/tmp/.build
+       grep "Require-User" tmp/.packageinfo | cut -d ' ' -f 2- | sort -u | grep "=" > tmp/userids
 
 .config: ./scripts/config/conf $(if $(CONFIG_HAVE_DOT_CONFIG),,prepare-tmpinfo)
        @+if [ \! -e .config ] || ! grep CONFIG_HAVE_DOT_CONFIG .config >/dev/null; then \