Dnia September 13, 2020 11:21:28 AM UTC, Andrew Savchenko <birc...@gentoo.org> 
napisał(a):
>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).

Did you realize that your mail is infinite times larger than if you never wrote 
it? 

>  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.

The price of reading it is also infinite times larger. Not to mention actually 
addressing it.

>
>So it will be reasonable to add USE="systemd" to acct-* eclasses
>to control the changes proposed above.
>
>Best regards,
>Andrew Savchenko


--
Best regards, 
Michał Górny

Reply via email to