On Sun, 2020-09-13 at 14:21 +0300, Andrew Savchenko wrote:
> On Sat, 29 Aug 2020 21:53:45 +0200 Michał Górny wrote:
> > Thanks to David Michael for the initial patch and upstream fixes.
> > 
> > Signed-off-by: Michał Górny <mgo...@gentoo.org>
> > ---
> >  eclass/acct-group.eclass | 16 +++++++++++++++-
> >  eclass/acct-user.eclass  | 16 +++++++++++++++-
> >  2 files changed, 30 insertions(+), 2 deletions(-)
> > 
> > diff --git a/eclass/acct-group.eclass b/eclass/acct-group.eclass
> > index 5550e4a2fb10..dc1562974870 100644
> > --- a/eclass/acct-group.eclass
> > +++ b/eclass/acct-group.eclass
> > @@ -80,7 +80,7 @@ S=${WORKDIR}
> >  
> >  
> >  # << Phase functions >>
> > -EXPORT_FUNCTIONS pkg_pretend pkg_preinst
> > +EXPORT_FUNCTIONS pkg_pretend src_install pkg_preinst
> >  
> >  # @FUNCTION: acct-group_pkg_pretend
> >  # @DESCRIPTION:
> > @@ -116,6 +116,20 @@ acct-group_pkg_pretend() {
> >     fi
> >  }
> >  
> > +# @FUNCTION: acct-group_src_install
> > +# @DESCRIPTION:
> > +# Installs sysusers.d file for the group.
> > +acct-group_src_install() {
> > +   debug-print-function ${FUNCNAME} "${@}"
> > +
> > +   insinto /usr/lib/sysusers.d
> > +   newins - ${CATEGORY}-${ACCT_GROUP_NAME}.conf < <(
> > +           printf "g\t%q\t%q\n" \
> > +                   "${ACCT_GROUP_NAME}" \
> > +                   "${ACCT_GROUP_ID/#-*/-}"
> > +   )
> > +}
> > +
> >  # @FUNCTION: acct-group_pkg_preinst
> >  # @DESCRIPTION:
> >  # Creates the group if it does not exist yet.
> > diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass
> > index e82f3c56dbbe..f9772c3cb111 100644
> > --- a/eclass/acct-user.eclass
> > +++ b/eclass/acct-user.eclass
> > @@ -312,7 +312,7 @@ acct-user_pkg_pretend() {
> >  # @FUNCTION: acct-user_src_install
> >  # @DESCRIPTION:
> >  # Installs a keep-file into the user's home directory to ensure it
> > is
> > -# owned by the package.
> > +# owned by the package, and sysusers.d file.
> >  acct-user_src_install() {
> >     debug-print-function ${FUNCNAME} "${@}"
> >  
> > @@ -321,6 +321,20 @@ acct-user_src_install() {
> >             # created yet
> >             keepdir "${ACCT_USER_HOME}"
> >     fi
> > +
> > +   insinto /usr/lib/sysusers.d
> > +   newins - ${CATEGORY}-${ACCT_USER_NAME}.conf < <(
> > +           printf "u\t%q\t%q\t%q\t%q\t%q\n" \
> > +                   "${ACCT_USER_NAME}" \
> > +                   "${ACCT_USER_ID/#-*/-}:${ACCT_USER_GROUPS[0]}" \
> > +                   "${DESCRIPTION//[:,=]/;}" \
> > +                   "${ACCT_USER_HOME}" \
> > +                   "${ACCT_USER_SHELL/#-*/-}"
> > +           if [[ ${#ACCT_USER_GROUPS[@]} -gt 1 ]]; then
> > +                   printf "m\t${ACCT_USER_NAME}\t%q\n" \
> > +                           "${ACCT_USER_GROUPS[@]:1}"
> > +           fi
> > +   )
> >  }
> 
> Why these files are installed unconditionally?
> 
> Of course we have a common "small files" policy that USE flags
> should not control small files in packages, such rule was designed
> for common packages where:
>   1) small files are insignificant disk usage compared to a whole
> package;
>   2) an average package takes significant time to rebuild and mass
> rebuild will cause problems during USE flip.
> 
> While both arguments are valid for a common packages which provide
> real software, this is not true for very special acct-* packages:
>   1) They may (and usually do) have zero size of installed files,
> this makes sysusers.d stuff an infinite times larger than a
> whole typical acct-* package (it will still be much larger if one
> will consider size of new passw/group records).

Using a multiplicative factor here seems purely for trying to make an
argument. Any filesystem space taken here seems negligible.

>   2) acct-* packages are very fast to rebuild, so such price will
> be small compared to other changes necessary when USE="systemd" is
> being flipped.
> 
> So it will be reasonable to add USE="systemd" to acct-* eclasses
> to control the changes proposed above.

Why not add these paths to INSTALL_MASK to ease the burden on the number
of installed files?

There's another argument to be made: every USE flag added potentially
increases the complexity of the depgraph. Given the tradeoffs, I'm
willing to accept a tiny file more here.


Reply via email to