OBATA Akio wrote:
Hi, On Thu, 18 Sep 2008 17:29:25 +0900, Jens Rehsack <rehsack%web.de@localhost> wrote:Jens Rehsack wrote:Hi all, I'm creating a small perl module to use libmagic to avoid massive forking. Because we're using in our environment, I created a small pkg (Perl module is not uploaded to CPAN, so it can't work for anyone except us!) and added > .include "../../sysutils/file/buildlink3.mk" before the > .include "../../lang/perl5/module.mk" line, which is more or less mandatory for each perl pkg. But bmake didn't recognize the dependency. On our RHEL4 machines, the OS has an file-4.10, which may be found and accepted, because sysutils/file/buildlink3.mk requires older versions for compatibility: > BUILDLINK_API_DEPENDS.file+= file>=4.09 > BUILDLINK_ABI_DEPENDS.file+= file>=4.09nb1 I increased these numbers up to the current version of file (4.26 - patch attached until current steps), but no change - sysutils/file is not added to dependencies. Any idea what I must do to get a reliable dependency added?It is because builtin libmagic is picked up. Workaround: USE_BUILTIN.file= no Really: Change sysutils/file/builtin.mk to detect version of builtin file package if you are really want to avoid pick up old builtin version.
I'll see what I can do tomorrow. FreeBSD's Mk/bsd.ldap.mk should help ;) But the more I use pkgsrc, the more I like the basic design ...
The next problem is, if I simply install sysutils/file and install my File::Magic module, it links against /opt/pkgsrc/lib/libmagic.so and displays a dynamic linker error, when this file (/opt/pkgsrc/lib/libmagic.so) is not available (but /usr/lib64/libmagic.so is).Hmm. I don't know you File::Magic module, but why you can not use misc/p5-File-MMagic?
The same reason why I discarded File::Type - another implementation of the same thing. But Micheal Hendricks <michael%ndrix.org@localhost> pointed me to File::LibMagic which makes a great job and is much more advanced than my newbie-start with XS ;-)
The pkg for it is built, I submit it when I solved the sysutils/file thing. Thanks for your assistance (again). /Jens