[pacman-dev] [PATCH] Make sure dot files don't get included in package

Dan McGee dpmcgee at gmail.com
Wed Jun 11 16:39:01 EDT 2008


On Tue, Jun 10, 2008 at 4:03 PM, Xavier <shiningxc at gmail.com> wrote:
> Dan McGee wrote:
>> On Sat, May 31, 2008 at 8:18 AM, Sebastian Nowicki<sebnow at gmail.com>  wrote:
>>> On 31/05/2008, at 9:09 PM, Dan McGee wrote:
>>>
>>>> On Sat, May 31, 2008 at 4:19 AM, Sebastian Nowicki
>>>> <sebnow at gmail.com>  wrote:
>>>>> On BSD systems, as a super user, `ls` displays all dot files by
>>>>> default.
>>>>> On most BSD systems -I can be used to suppress this behavior, but
>>>>> this
>>>>> argument is not available on Mac OSX. Instead, grep is used to
>>>>> filter out
>>>>> all dot files.
>>>>>
>>>>> Signed-off-by: Sebastian Nowicki<sebnow at gmail.com>
>>>>> ---
>>>>> scripts/makepkg.sh.in |    2 +-
>>>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>>>
>>>>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>>>>> index cb55dea..f4acd50 100644
>>>>> --- a/scripts/makepkg.sh.in
>>>>> +++ b/scripts/makepkg.sh.in
>>>>> @@ -849,7 +849,7 @@ create_package() {
>>>>>
>>>>>        local pkg_file="$PKGDEST/${pkgname}-${pkgver}-${pkgrel}-$
>>>>> {CARCH}${PKGEXT}"
>>>>>
>>>>> -       if ! bsdtar -czf "$pkg_file" $comp_files $(ls); then
>>>>> +       if ! bsdtar -czf "$pkg_file" $comp_files $(ls | grep -v '^
>>>>> \.'); then
>>>>>                error "$(gettext "Failed to create package file.")"
>>>>>                exit 1 # TODO: error code
>>>>>        fi
>>>>> --
>>>> The --hide or -I/--ignore options to ls aren't available, are they?
>>>> That would be a slightly cleaner solution, but I'm not sure if these
>>>> are in the POSIX standard or something.
>>>>
>>>> -Dan
>>> -I is available on BSD, but I can't find any similar option on Mac OSX
>>> (it's really starting to be a pain in the ass).
>>
>> Ahh, I read your commit note as saying the letter L (but lowercase),
>> not I, so that is why I was confused. Sounds like Mac OSX is a piece
>> of shit. :P
>>
>
> what is that $(ls) thing? what is wrong with *?

Any objections? I can think of one issue- this would pass the literal
* on to bsdtar if no other files existed (e.g. trying to create a
no-files package).

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 457f62d..34f35f3 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -849,7 +849,7 @@ create_package() {

        local pkg_file="$PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"

-       if ! bsdtar -czf "$pkg_file" $comp_files $(ls); then
+       if ! bsdtar -czf "$pkg_file" $comp_files *; then
                error "$(gettext "Failed to create package file.")"
                exit 1 # TODO: error code
        fi

So maybe something like this?

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 457f62d..70d8e15 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -36,6 +36,10 @@ export TEXTDOMAINDIR='@localedir@'
 # file -i does not work on Mac OSX unless legacy mode is set
 export COMMAND_MODE='legacy'

+# when fileglobbing, we want * in an empty directory to expand to the null
+# string rather than itself
+shopt -s nullglob
+
 myver='@PACKAGE_VERSION@'
 confdir='@sysconfdir@'
 startdir="$PWD"
@@ -849,7 +853,7 @@ create_package() {

        local pkg_file="$PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}"

-       if ! bsdtar -czf "$pkg_file" $comp_files $(ls); then
+       if ! bsdtar -czf "$pkg_file" $comp_files *; then
                error "$(gettext "Failed to create package file.")"
                exit 1 # TODO: error code
        fi




More information about the pacman-dev mailing list