Mk/bsd.openssl.mk optimization
Vladimir Chukharev
Vladimir.Chukharev at tut.fi
Wed Jul 30 06:14:48 UTC 2008
On Tue, 29 Jul 2008 23:13:44 +0300, Doug Barton <dougb at freebsd.org> wrote:
> V.Chukharev wrote:
>> Another patch, just one line. It can be applied independently from the patch
>> for bsd.port.subdir.mk.
>
> I use: grep -l "@comment ORIGIN:${1}$" $pdb/*/+CONTENTS
> for similar purposes in portmaster with no complaints so far. Is there
> a reason you need to do the complicated thing?
I am a bit worried by the size of * expansion. I have about 1380 ports
installed, and this number can grow. One example of this kind limitation:
$ ls /usr/ports/*/* | wc
bash: /bin/ls: Argument list too long
That's the reason for find. And it is 5-30 times faster then grep -r
(depending on existence and size of /var/pkg/db/pkgdb.db).
As to the rest of the command - I do not want to mess with it yet. It works.
> Doug
>
>
>> =============
>> --- /usr/ports/Mk/bsd.openssl.mk.orig 2008-07-23 09:14:29.000000000 +0300
>> +++ /usr/ports/Mk/bsd.openssl.mk 2008-07-29 20:35:05.000000000 +0300
>> @@ -121,7 +121,7 @@
>> exists(${DESTDIR}/${LOCALBASE}/lib/libcrypto.so)
>> # find installed port and use it for dependency
>> PKG_DBDIR?= ${DESTDIR}/var/db/pkg
>> -OPENSSL_INSTALLED!= grep -l -r "^lib/libssl.so." "${PKG_DBDIR}" | \
>> +OPENSSL_INSTALLED!= find "${PKG_DBDIR}" -type f -name "+CONTENTS" -print0 | xargs -0 grep -l "^lib/libssl.so." | \
>> while read contents; do \
>> sslprefix=`grep "^@cwd " "$${contents}" | ${HEAD} -n 1`; \
>> if test "$${sslprefix}" = "@cwd ${LOCALBASE}" ; then \
>> =============
>>
>> Best regards,
>> Vladimir
>>
>
>
--
Vladimir Chukharev
Tampere University of Technology
More information about the freebsd-ports
mailing list