[pacman-dev] [PATCH] makepkg: extend test for hyphen prefixes to pkgbase and all pkgnames

Allan McRae allan at archlinux.org
Mon Oct 26 08:16:59 EDT 2009


Cedric Staniewski wrote:
> Allan McRae wrote:
>   
>> Cedric Staniewski wrote:
>>     
>>> Since commit fb97d32, which brought in this test, support for split
>>> PKGBUILDs was added, and therefore, all values of pkgname and also
>>> pkgbase have to be checked now.
>>>
>>> Signed-off-by: Cedric Staniewski <cedric at gmx.ca>
>>> ---
>>>
>>> Last patch before the big freeze...
>>>
>>>  scripts/makepkg.sh.in |   12 ++++++++++--
>>>  1 files changed, 10 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>>> index 9cd7f2e..c451a36 100644
>>> --- a/scripts/makepkg.sh.in
>>> +++ b/scripts/makepkg.sh.in
>>> @@ -1139,8 +1139,8 @@ check_sanity() {
>>>          error "$(gettext "%s is not allowed to be empty.")" "pkgrel"
>>>          return 1
>>>      fi
>>> -    if [ "${pkgname:0:1}" == "-" ]; then
>>> -        error "$(gettext "%s is not allowed to start with a
>>> hyphen.")" "pkgname"
>>> +    if [[ ${pkgbase:0:1} = "-" ]]; then
>>> +        error "$(gettext "%s is not allowed to start with a
>>> hyphen.")" "pkgbase"
>>>          return 1
>>>      fi
>>>   
>>>       
>> Unless I am missing something, pkgbase can start with anything.  It is
>> only used informationally in makepkg so does not cause problems with
>> other tools.
>>     
>
> In clean_up we had to use rm -f -- then
>
> 			rm -f "${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-build.log"*
> 			if [ "$PKGFUNC" -eq 1 ]; then
> 				rm -f "${pkgbase}-${pkgver}-${pkgrel}-${CARCH}-package.log"*
>
> and according to PKGBUILD man page:
>
> pkgbase
>            The name used to refer to the group of packages in the output of makepkg and in *the naming of source-only tarballs*. If not specified, the first element in the pkgname
>            array is used.
>
>
> Just checked this (create_srcpackage): 	if ! bsdtar -c${TAR_OPT}Lf "$pkg_file" ${pkgbase}; then
>   

So it does....  I glad someone refers to the documentation!


>>>      if [ "$pkgver" != "${pkgver//-/}" ]; then
>>> @@ -1152,6 +1152,14 @@ check_sanity() {
>>>          return 1
>>>      fi
>>>  
>>> +    local name
>>> +    for name in "${pkgname[@]}"; do
>>> +        if [[ ${name:0:1} = "-" ]]; then
>>> +            error "$(gettext "%s is not allowed to start with a
>>> hyphen.")" "pkgname"
>>> +            return 1
>>> +        fi
>>> +    done
>>> +
>>>   
>>>       
>> Why not keep this in the same place as the previous check on pkgname?
>>
>>     
>
> I moved that mostly because of the 'local name' part and the for loop, but it does not make any difference. So if you prefer the old place, I could move it there.
>   

I prefer the old place as it keeps the checking in pkgname, pkgver, 
pkgrel order, which is the order given in the PKGBUILD prototype.

Allan



More information about the pacman-dev mailing list