Handling directory ownership in pkg-plist

Chris portmaster at bsdforge.com
Mon Feb 8 01:27:45 UTC 2021


On 2021-02-07 12:19, Chris Rees wrote:
> Afternoon,
> 
> On 7 February 2021 19:05:26 GMT, Chris <portmaster at bsdforge.com> wrote:
>> On 2021-02-07 02:18, Chris Rees wrote:
>>> Hi Chris,
>>> 
>>> Thamks for the reply.
>>> 
>>> On 7 February 2021 03:57:03 GMT, Chris <portmaster at bsdforge.com>
>> wrote:
>>>> On 2021-02-06 13:34, Chris Rees wrote:
>>>>> Hi all,
>>>>> 
>>>>> Resurrecting audio/ampache-resurrect, and I have @owner www/@group
>>>> www above
>>>>> all
>>>>> of the WWWDIR files, and they are correctly owned.  However, the
>>>> directories
>>>>> under
>>>>> it are all still owned by root:wheel, and if I explicitly add them
>>>> all with
>>>>> @dir
>>>>> pkg then complains about not being able to find them.
>>>>> 
>>>>> Would it be unacceptable to just have @exec chown -R www:www
>>>> %D/%%WWWDIR%%
>>>>> at the bottom?
>>>> Yes. By way of pre-install:
>>>> You'll probably get a complaint unless you use: ${CHOWN}
>>> 
>>> Perhaps I was unclear- I'm referring to pkg-plist, so there is no
>> ${CHOWN}
>>> there.
>>> 
>>> The exact proposed line is
>>> 
>>> @postexec chown -R www:www %D/%%WWWDIR%%
>>> 
>>> I was wondering what the 'proper' way to do this was.
>> I'm wondering why it's not enough to create a post-extract that doesn't
>> 
>> something
>> like
>> cd ${WRKSRC}/some/dir && ${CHOWN} -R ${WWUSER}:${WWGROUP} .
>> Then the ports framework would create an appropriate pkg-plist based on
>> that.
>> A
>> make -DBATCH makeplist would generate your target pkg-plist.
>> 
>> I'm paraphrasing, as I don't have your Makefile. But I've needed to
>> perform
>> tasks
>> like myself. Out of curiosity. What does a make -DBATCH makeplist
>> generate?
>> Does
>> the output provide the necessary clues to create a pkg-plist you're
>> interested in?
> 
> CHOWN can't be used in the Makefile as you need root.
> 
> make makeplist used after CHOWN does nothing different- it appears not to 
> notice
> that they have different owners.
But what of the pkg-plist for www/kanboard? It has the clues you need for 
setting the
pkg-plist. The ports framework will honor the perms set within it. eg;
@owner %%KANBOARD_USERNAME%%
@group %%KANBOARD_GROUPNAME%%
%%WWWDIR%%/.htaccess
%%WWWDIR%%/ChangeLog
%%WWWDIR%%/LICENSE
%%WWWDIR%%/app/.htaccess
%%WWWDIR%%/app/Action/Base.php
%%WWWDIR%%/app/Action/CommentCreation.php
...

Just change the leader to the @user and @group to your desired names in your
pkg-plist. Save it to your port. Done. :-)
> 
> There is nothing documented on this that I can find, so I'll commit the 
> @postexec line.
> 
> Chris
--Chris


More information about the freebsd-ports mailing list