FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 11-14-2009, 07:02 AM
"Ciprian Dorin, Craciun"
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

On Sat, Nov 14, 2009 at 8:44 AM, Allan McRae <allan@archlinux.org> wrote:
> Ciprian Dorin, Craciun wrote:
>>
>> * *Hy everybody!
>>
>> * *While building some custom packages for a stripped down Linux
>> server, I've hit the following problems:
>> * ** the cause of the problems is from the pact that my packages are
>> each in it's own folder like: /packages/bash--4.0--1,
>> /packages/busybox--1.15.2--1, etc., and thus,
>> * ** MAN_DIRS, DOC_DIRS, STRIP_DIRS and PRUNE_TARGETS doesn't work,
>> as I have no way to use ${pkgname}, etc in there;
>> * ** in PRUNE_TARGETS there is no way to specify file patterns (like
>> '*.a', or '*.la'), but only from certain folders; (for example I can
>> say '*.a', but not '../lib/*.a'; also I can not specify unknown number
>> of parents, like '.../lib/**/*.a';
>>
>> * *As a consequence, I propose (and if accepted I also have the
>> patches for) the following enhancements:
>> * ** allow the patterns in MAN_DIRS, etc. to be evaluated at the
>> proper time execution time (when we access MAN_DIRS), not at
>> configuration time (when we define MAN_DIRS); this can be achieved by
>> (single) quoting the patterns like:
>> 'package/${pkgname}--${pkgver}--${pkgrel}/{,share/}man' and then
>> expansion by using eval;
>
> You can use
>
> MAN_DIRS=({package/*/,}{usr{,/local}{,/share},opt/*}/{man,info})
>
> and that will work. *An eval statement is evil.

I don't know this for sure, but I assume that the makepkg.conf
file is sourced before actually going to build or package. Thus in
order for `package/*/` to work it must already exist in the current
folder.

For example I've searched makepkg.sh for where the config file is
read, and I've found that it's hold in the MAKEPKG_CONF variable. And
the only place it's sourced is just before executing anything. This
means that (maybe) my previous assumption is right, and that
`package/*` or `opt/*` doesn't work.

I agree that `eval` is evil. (If you ask me Bash is the most evil
programming language from them all, but I still do about 25% of my
programming in Bash...) So coming back to eval, in order to make my
use-case happen we have two options:
* either we source MAKEPKG_CONF before each operation,
* or we use eval on our patterns, and we single quote the patterns
in the config file;


>> * ** allow enhanced pattern types for PURGE_TARGETS, like:
>> * * * ** the same lazy evaluation as above;
>> * * * ** if a pattern starts with '=' then it must exactly match a file
>> name;
>> * * * ** if a pattern starts with '+' then it is a glob pattern (or
>> globstar), like:
>> 'packages/${pkgname}--${pkgver}--${pkgrel}/lib/**/*.a'
>
> These seem to be able to be handled in much the same way as MAN_DIRS above.

No it is not. For example if I have
usr/lib/something/libsomething.a, I cannot purge libsomething.a unless
I explicitly say `*.a` (which could erase even other files in other
folders), or `usr/lib/*/*.a`, which forces me to know that I have
folders. (Thus eliminating the generality of makepkg.conf.)

But again, it doesn't work, as explained above, because
usr/lib/*/*.a should already exist at source time in order to work.


>> * * * ** if a pattern ends with '/' then we use `rm -Rf`, else we use `rm
>> -f`
>
> Instead of ending in /, end it in /* and combine with !emptydirs?

Again it doesn't work. If a folder contain subfolders it shall
eliminate only the files in the parent, but not files in children.

Also emptyfolders is a packaging option, and purging should be
able to remove a folder completely without leanig on the emptyfolders
support. (For example there could be cases where a package should
contain an empty folder.)


>> * * * ** maybe if a pattern starts with '@' then it is a regular
>> expression, etc. (this I have not implemented);
>>
>> * *Any comments?
>
> This all sounds overcomplicated. *Before considering this further, I would
> like to see an example that can not be handled by the current setup.
>
> Allan

I hope that my examples are enough to show that there is a
imitation in current *_DIRS and PURGE_TARGETS.

If I'm wrong about the conf file sourcing please correct me, but
from what I've seen I think I'm right.

Thanks,
Ciprian.
 
Old 11-14-2009, 07:14 AM
"Ciprian Dorin, Craciun"
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

On Sat, Nov 14, 2009 at 10:02 AM, Ciprian Dorin, Craciun
<ciprian.craciun@gmail.com> wrote:
> On Sat, Nov 14, 2009 at 8:44 AM, Allan McRae <allan@archlinux.org> wrote:
>> Ciprian Dorin, Craciun wrote:
>>>
>>> * *Hy everybody!
>>>
>>> * *While building some custom packages for a stripped down Linux
>>> server, I've hit the following problems:
>>> * ** the cause of the problems is from the pact that my packages are
>>> each in it's own folder like: /packages/bash--4.0--1,
>>> /packages/busybox--1.15.2--1, etc., and thus,
>>> * ** MAN_DIRS, DOC_DIRS, STRIP_DIRS and PRUNE_TARGETS doesn't work,
>>> as I have no way to use ${pkgname}, etc in there;
>>> * ** in PRUNE_TARGETS there is no way to specify file patterns (like
>>> '*.a', or '*.la'), but only from certain folders; (for example I can
>>> say '*.a', but not '../lib/*.a'; also I can not specify unknown number
>>> of parents, like '.../lib/**/*.a';
>>>
>>> * *As a consequence, I propose (and if accepted I also have the
>>> patches for) the following enhancements:
>>> * ** allow the patterns in MAN_DIRS, etc. to be evaluated at the
>>> proper time execution time (when we access MAN_DIRS), not at
>>> configuration time (when we define MAN_DIRS); this can be achieved by
>>> (single) quoting the patterns like:
>>> 'package/${pkgname}--${pkgver}--${pkgrel}/{,share/}man' and then
>>> expansion by using eval;
>>
>> You can use
>>
>> MAN_DIRS=({package/*/,}{usr{,/local}{,/share},opt/*}/{man,info})
>>
>> and that will work. *An eval statement is evil.
>
> * *I don't know this for sure, but I assume that the makepkg.conf
> file is sourced before actually going to build or package. Thus in
> order for `package/*/` to work it must already exist in the current
> folder.
>
> * *For example I've searched makepkg.sh for where the config file is
> read, and I've found that it's hold in the MAKEPKG_CONF variable. And
> the only place it's sourced is just before executing anything. This
> means that (maybe) my previous assumption is right, and that
> `package/*` or `opt/*` doesn't work.
>
> * *I agree that `eval` is evil. (If you ask me Bash is the most evil
> programming language from them all, but I still do about 25% of my
> programming in Bash...) So coming back to eval, in order to make my
> use-case happen we have two options:
> * ** either we source MAKEPKG_CONF before each operation,
> * ** or we use eval on our patterns, and we single quote the patterns
> in the config file;
>
>
>>> * ** allow enhanced pattern types for PURGE_TARGETS, like:
>>> * * * ** the same lazy evaluation as above;
>>> * * * ** if a pattern starts with '=' then it must exactly match a file
>>> name;
>>> * * * ** if a pattern starts with '+' then it is a glob pattern (or
>>> globstar), like:
>>> 'packages/${pkgname}--${pkgver}--${pkgrel}/lib/**/*.a'
>>
>> These seem to be able to be handled in much the same way as MAN_DIRS above.
>
> * *No it is not. For example if I have
> usr/lib/something/libsomething.a, I cannot purge libsomething.a unless
> I explicitly say `*.a` (which could erase even other files in other
> folders), or `usr/lib/*/*.a`, which forces me to know that I have
> folders. (Thus eliminating the generality of makepkg.conf.)
>
> * *But again, it doesn't work, as explained above, because
> usr/lib/*/*.a should already exist at source time in order to work.
>
>
>>> * * * ** if a pattern ends with '/' then we use `rm -Rf`, else we use `rm
>>> -f`
>>
>> Instead of ending in /, end it in /* and combine with !emptydirs?
>
> * *Again it doesn't work. If a folder contain subfolders it shall
> eliminate only the files in the parent, but not files in children.
>
> * *Also emptyfolders is a packaging option, and purging should be
> able to remove a folder completely without leanig on the emptyfolders
> support. (For example there could be cases where a package should
> contain an empty folder.)
>
>
>>> * * * ** maybe if a pattern starts with '@' then it is a regular
>>> expression, etc. (this I have not implemented);
>>>
>>> * *Any comments?
>>
>> This all sounds overcomplicated. *Before considering this further, I would
>> like to see an example that can not be handled by the current setup.
>>
>> Allan
>
> * *I hope that my examples are enough to show that there is a
> imitation in current *_DIRS and PURGE_TARGETS.
>
> * *If I'm wrong about the conf file sourcing please correct me, but
> from what I've seen I think I'm right.
>
> * *Thanks,
> * *Ciprian.


One quick note. I've tried what you've suggested (`package/*/...`)
and it doesn't work (as expected `*` expands before anything is in the
current dir).

Ciprian.
 
Old 11-14-2009, 09:40 AM
Allan McRae
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

Ciprian Dorin, Craciun wrote:



One quick note. I've tried what you've suggested (`package/*/...`)
and it doesn't work (as expected `*` expands before anything is in the
current dir).



It does not expand it until it actually uses the value in the array.
i.e. when it goes to do the man page compression/purging.


This is my test PKGBUILD

--start PKGBUILD--

pkgname=('t1')
pkgdesc="text with spaces"
pkgver=1
pkgrel=1
arch=('i686' 'x86_64')
license=('testing the license')
depends=('pacman')

build () {
return 0
}

package() {
mkdir -p ${pkgdir}/package/foobar-2.1/usr/share/man/man1
echo "I am a man page" >
${pkgdir}/package/foobar-2.1/usr/share/man/man1/test.1

}

--end PKGBUILD--

I get that "man page" compressed with

MAN_DIRS=({package/*,}{usr{,/local}{,/share},opt/*}/{man,info})
 
Old 11-14-2009, 10:47 AM
"Ciprian Dorin, Craciun"
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

On Sat, Nov 14, 2009 at 12:40 PM, Allan McRae <allan@archlinux.org> wrote:
> Ciprian Dorin, Craciun wrote:
>
>>
>> * *One quick note. I've tried what you've suggested (`package/*/...`)
>> and it doesn't work (as expected `*` expands before anything is in the
>> current dir).
>>
>
> It does not expand it until it actually uses the value in the array. i.e.
> when it goes to do the man page compression/purging.
>
> This is my test PKGBUILD
>
> --start PKGBUILD--
>
> pkgname=('t1')
> pkgdesc="text with spaces"
> pkgver=1
> pkgrel=1
> arch=('i686' 'x86_64')
> license=('testing the license')
> depends=('pacman')
>
> build () {
> *return 0
> }
>
> package() {
> *mkdir -p ${pkgdir}/package/foobar-2.1/usr/share/man/man1
> *echo "I am a man page" >
> ${pkgdir}/package/foobar-2.1/usr/share/man/man1/test.1
> }
>
> --end PKGBUILD--
>
> I get that "man page" compressed with
>
> MAN_DIRS=({package/*,}{usr{,/local}{,/share},opt/*}/{man,info})


Sorry, didn't work for me. I've updated the /etc/makepkg.conf, to
also include your
`{package/*,}{usr{,/local}{,/share},opt/*}/{man,info}`, and also
checked that I have zipman in OPTIONS.

I've also updated /usr/bin/makepkg to start with bash -x (display
all commands), and this is what I have:

~~~~
-> Compressing man and info pages...
++> local manpage ext file link hardlinks hl
++> read manpage
++> find usr/man usr/info usr/share/man usr/share/info usr/local/man
usr/local/info usr/local/share/man usr/local/share/info 'opt/*/man'
'opt/*/info' 'package/*usr/man' 'package/*usr/info'
'package/*usr/share/man' 'package/*usr/share/info'
'package/*usr/local/man' 'package/*usr/local/info'
'package/*usr/local/share/man' 'package/*usr/local/share/info'
'package/*opt/*/man' 'package/*opt/*/info' usr/man usr/info
usr/share/man usr/share/info usr/local/man usr/local/info
usr/local/share/man usr/local/share/info 'opt/*/man' 'opt/*/info'
-type f
~~~~

You can clearly see that find receives as arguments paths that
contain a *, and that these paths are quoted.

Ciprian.

P.S.: The makepkg is the one from the ArchLinux distribution, and
not the one I've patched.
 
Old 11-14-2009, 11:15 AM
Allan McRae
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

Ciprian Dorin, Craciun wrote:

On Sat, Nov 14, 2009 at 12:40 PM, Allan McRae <allan@archlinux.org> wrote:

Ciprian Dorin, Craciun wrote:


One quick note. I've tried what you've suggested (`package/*/...`)
and it doesn't work (as expected `*` expands before anything is in the
current dir).


It does not expand it until it actually uses the value in the array. i.e.
when it goes to do the man page compression/purging.

This is my test PKGBUILD

--start PKGBUILD--

pkgname=('t1')
pkgdesc="text with spaces"
pkgver=1
pkgrel=1
arch=('i686' 'x86_64')
license=('testing the license')
depends=('pacman')

build () {
return 0
}

package() {
mkdir -p ${pkgdir}/package/foobar-2.1/usr/share/man/man1
echo "I am a man page" >
${pkgdir}/package/foobar-2.1/usr/share/man/man1/test.1
}

--end PKGBUILD--

I get that "man page" compressed with

MAN_DIRS=({package/*,}{usr{,/local}{,/share},opt/*}/{man,info})



Sorry, didn't work for me. I've updated the /etc/makepkg.conf, to
also include your
`{package/*,}{usr{,/local}{,/share},opt/*}/{man,info}`, and also
checked that I have zipman in OPTIONS.

I've also updated /usr/bin/makepkg to start with bash -x (display
all commands), and this is what I have:

~~~~
-> Compressing man and info pages...
++> local manpage ext file link hardlinks hl
++> read manpage
++> find usr/man usr/info usr/share/man usr/share/info usr/local/man
usr/local/info usr/local/share/man usr/local/share/info 'opt/*/man'
'opt/*/info' 'package/*usr/man' 'package/*usr/info'
'package/*usr/share/man' 'package/*usr/share/info'
'package/*usr/local/man' 'package/*usr/local/info'
'package/*usr/local/share/man' 'package/*usr/local/share/info'
'package/*opt/*/man' 'package/*opt/*/info' usr/man usr/info
usr/share/man usr/share/info usr/local/man usr/local/info
usr/local/share/man usr/local/share/info 'opt/*/man' 'opt/*/info'
-type f
~~~~

You can clearly see that find receives as arguments paths that
contain a *, and that these paths are quoted.

Ciprian.

P.S.: The makepkg is the one from the ArchLinux distribution, and
not the one I've patched.



From the output it should have been fairly obvious I screwed up the
MAN_DIRS line...


MAN_DIRS=({package/*/,}{usr{,/local}{,/share},opt/*}/{man,info})

Not the extra "/"

Allan
 
Old 11-14-2009, 11:27 AM
"Ciprian Dorin, Craciun"
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

On Sat, Nov 14, 2009 at 2:15 PM, Allan McRae <allan@archlinux.org> wrote:
> Ciprian Dorin, Craciun wrote:
>>
>> On Sat, Nov 14, 2009 at 12:40 PM, Allan McRae <allan@archlinux.org> wrote:
>>>
>>> Ciprian Dorin, Craciun wrote:
>>>
>>>> * One quick note. I've tried what you've suggested (`package/*/...`)
>>>> and it doesn't work (as expected `*` expands before anything is in the
>>>> current dir).
>>>>
>>> It does not expand it until it actually uses the value in the array. i.e.
>>> when it goes to do the man page compression/purging.
>>>
>>> This is my test PKGBUILD
>>>
>>> --start PKGBUILD--
>>>
>>> pkgname=('t1')
>>> pkgdesc="text with spaces"
>>> pkgver=1
>>> pkgrel=1
>>> arch=('i686' 'x86_64')
>>> license=('testing the license')
>>> depends=('pacman')
>>>
>>> build () {
>>> *return 0
>>> }
>>>
>>> package() {
>>> *mkdir -p ${pkgdir}/package/foobar-2.1/usr/share/man/man1
>>> *echo "I am a man page" >
>>> ${pkgdir}/package/foobar-2.1/usr/share/man/man1/test.1
>>> }
>>>
>>> --end PKGBUILD--
>>>
>>> I get that "man page" compressed with
>>>
>>> MAN_DIRS=({package/*,}{usr{,/local}{,/share},opt/*}/{man,info})
>>
>>
>> * *Sorry, didn't work for me. I've updated the /etc/makepkg.conf, to
>> also include your
>> `{package/*,}{usr{,/local}{,/share},opt/*}/{man,info}`, and also
>> checked that I have zipman in OPTIONS.
>>
>> * *I've also updated /usr/bin/makepkg to start with bash -x (display
>> all commands), and this is what I have:
>>
>> ~~~~
>> *-> Compressing man and info pages...
>> ++> local manpage ext file link hardlinks hl
>> ++> read manpage
>> ++> find usr/man usr/info usr/share/man usr/share/info usr/local/man
>> usr/local/info usr/local/share/man usr/local/share/info 'opt/*/man'
>> 'opt/*/info' 'package/*usr/man' 'package/*usr/info'
>> 'package/*usr/share/man' 'package/*usr/share/info'
>> 'package/*usr/local/man' 'package/*usr/local/info'
>> 'package/*usr/local/share/man' 'package/*usr/local/share/info'
>> 'package/*opt/*/man' 'package/*opt/*/info' usr/man usr/info
>> usr/share/man usr/share/info usr/local/man usr/local/info
>> usr/local/share/man usr/local/share/info 'opt/*/man' 'opt/*/info'
>> -type f
>> ~~~~
>>
>> * *You can clearly see that find receives as arguments paths that
>> contain a *, and that these paths are quoted.
>>
>> * *Ciprian.
>>
>> * *P.S.: The makepkg is the one from the ArchLinux distribution, and
>> not the one I've patched.
>>
>
> From the output it should have been fairly obvious I screwed up the MAN_DIRS
> line...
>
> MAN_DIRS=({package/*/,}{usr{,/local}{,/share},opt/*}/{man,info})
>
> Not the extra "/"
>
> Allan

Sorry, indeed it works, but, the find invocation is still odd:

~~~~
++> printf ' -> Compressing man and info pages...
'
-> Compressing man and info pages...
++> local manpage ext file link hardlinks hl
++> read manpage
++> find usr/man usr/info usr/share/man usr/share/info usr/local/man
usr/local/info usr/local/share/man usr/local/share/info 'opt/*/man'
'opt/*/info' 'package/*/usr/man' 'package/*/usr/info'
package/foobar-2.1/usr/share/man 'package/*/usr/share/info'
'package/*/usr/local/man' 'package/*/usr/local/info'
'package/*/usr/local/share/man' 'package/*/usr/local/share/info'
'package/*/opt/*/man' 'package/*/opt/*/info' usr/man usr/info
usr/share/man usr/share/info usr/local/man usr/local/info
usr/local/share/man usr/local/share/info 'opt/*/man' 'opt/*/info'
-type f
++> '[' -f package/foobar-2.1/usr/share/man/man1/test.1 ']'
++> ext=1
++> file=test.1
++> '[' 1 '!=' gz -a 1 '!=' bz2 ']'
...
~~~~

Ciprian.
 
Old 11-14-2009, 01:39 PM
Allan McRae
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

Ciprian Dorin, Craciun wrote:

Sorry, indeed it works, but, the find invocation is still odd:

~~~~
++> printf ' -> Compressing man and info pages...
'
-> Compressing man and info pages...
++> local manpage ext file link hardlinks hl
++> read manpage
++> find usr/man usr/info usr/share/man usr/share/info usr/local/man
usr/local/info usr/local/share/man usr/local/share/info 'opt/*/man'
'opt/*/info' 'package/*/usr/man' 'package/*/usr/info'
package/foobar-2.1/usr/share/man 'package/*/usr/share/info'
'package/*/usr/local/man' 'package/*/usr/local/info'
'package/*/usr/local/share/man' 'package/*/usr/local/share/info'
'package/*/opt/*/man' 'package/*/opt/*/info' usr/man usr/info
usr/share/man usr/share/info usr/local/man usr/local/info
usr/local/share/man usr/local/share/info 'opt/*/man' 'opt/*/info'
-type f
++> '[' -f package/foobar-2.1/usr/share/man/man1/test.1 ']'
++> ext=1
++> file=test.1
++> '[' 1 '!=' gz -a 1 '!=' bz2 ']'
...
~~~~


You are going to have to clarify exactly what you think is odd here.
 
Old 11-14-2009, 02:26 PM
"Ciprian Dorin, Craciun"
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

On Sat, Nov 14, 2009 at 4:39 PM, Allan McRae <allan@archlinux.org> wrote:
> Ciprian Dorin, Craciun wrote:
>>
>> * *Sorry, indeed it works, but, the find invocation is still odd:
>>
>> ~~~~
>> ++> printf ' *-> Compressing man and info pages...
'
>> *-> Compressing man and info pages...
>> ++> local manpage ext file link hardlinks hl
>> ++> read manpage
>> ++> find usr/man usr/info usr/share/man usr/share/info usr/local/man
>> usr/local/info usr/local/share/man usr/local/share/info 'opt/*/man'
>> 'opt/*/info' 'package/*/usr/man' 'package/*/usr/info'
>> package/foobar-2.1/usr/share/man 'package/*/usr/share/info'
>> 'package/*/usr/local/man' 'package/*/usr/local/info'
>> 'package/*/usr/local/share/man' 'package/*/usr/local/share/info'
>> 'package/*/opt/*/man' 'package/*/opt/*/info' usr/man usr/info
>> usr/share/man usr/share/info usr/local/man usr/local/info
>> usr/local/share/man usr/local/share/info 'opt/*/man' 'opt/*/info'
>> -type f
>> ++> '[' -f package/foobar-2.1/usr/share/man/man1/test.1 ']'
>> ++> ext=1
>> ++> file=test.1
>> ++> '[' 1 '!=' gz -a 1 '!=' bz2 ']'
>> ...
>> ~~~~
>
> You are going to have to clarify exactly what you think is odd here.


In the find arguments we can find some that have a '*' in there...
They are clearly not valid folder names. (See below. The `...` are
cuts from the command line.)

find ...
'opt/*/man' ...
'opt/*/info' 'package/*/usr/man' 'package/*/usr/info' ...
'package/*/usr/share/info' ...
'package/*/usr/local/man'
'package/*/usr/local/info'
...

Ciprian.

P.S.: I'm not insisting on pushing a feature into makepkg. I'm
just trying to enhance it. So if this kind of patch is not welcomed,
please clearly say so, and I'll stop bugging you. (Of course I'll
continue to use it for myself.)
 
Old 11-14-2009, 10:46 PM
Allan McRae
 
Default makepkg enhancements: globstar and variable expansions in PURGE_TARGETS, MAN_DIRS, etc.

Ciprian Dorin, Craciun wrote:

On Sat, Nov 14, 2009 at 4:39 PM, Allan McRae <allan@archlinux.org> wrote:

Ciprian Dorin, Craciun wrote:

Sorry, indeed it works, but, the find invocation is still odd:

~~~~
++> printf ' -> Compressing man and info pages...
'
-> Compressing man and info pages...
++> local manpage ext file link hardlinks hl
++> read manpage
++> find usr/man usr/info usr/share/man usr/share/info usr/local/man
usr/local/info usr/local/share/man usr/local/share/info 'opt/*/man'
'opt/*/info' 'package/*/usr/man' 'package/*/usr/info'
package/foobar-2.1/usr/share/man 'package/*/usr/share/info'
'package/*/usr/local/man' 'package/*/usr/local/info'
'package/*/usr/local/share/man' 'package/*/usr/local/share/info'
'package/*/opt/*/man' 'package/*/opt/*/info' usr/man usr/info
usr/share/man usr/share/info usr/local/man usr/local/info
usr/local/share/man usr/local/share/info 'opt/*/man' 'opt/*/info'
-type f
++> '[' -f package/foobar-2.1/usr/share/man/man1/test.1 ']'
++> ext=1
++> file=test.1
++> '[' 1 '!=' gz -a 1 '!=' bz2 ']'
...
~~~~

You are going to have to clarify exactly what you think is odd here.



In the find arguments we can find some that have a '*' in there...
They are clearly not valid folder names. (See below. The `...` are
cuts from the command line.)

find ...
'opt/*/man' ...
'opt/*/info' 'package/*/usr/man' 'package/*/usr/info' ...
'package/*/usr/share/info' ...
'package/*/usr/local/man'
'package/*/usr/local/info'
...


You are allowed to use wildcards in -name arguements provided the names
are quoted. See "man find".


Allan
 

Thread Tools




All times are GMT. The time now is 07:48 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org