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