On 03/20/16 10:33, Stuart Henderson wrote:
> Watch out for p5-libintl, it currently does not have SHARED_ONLY=Yes
> and should do. Not touching it myself now to avoid getting in your way.
> 
> 

These also are wrong, and have been for some time.

$ pwd
/usr/ports/packages/amd64/no-arch
$ pkg_info -Sq p5-* | grep ",[A-z]"
p5-Digest-MD4-1.9p1,c.84.2
p5-Digest-Skein-0.05p3,c.84.2
p5-Socket-GetAddrInfo-0.22p0,c.84.2
p5-Wx-0.9928,@p5-Alien-wxWidgets-0.67p0,@p5-ExtUtils-XSpp-0.18,@wxWidgets-media-2.8.12p7,m.9.0,pthread.20.1,stdc++.57.0,wx_base.3.0,wx_base_net.3.0,wx_base_xml.3.0,wx_gtk2_adv.3.0,wx_gtk2_aui.3.0,wx_gtk2_core.3.0,wx_gtk2_html.3.0,wx_gtk2_media.3.0,wx_gtk2_richtext.3.0,wx_gtk2_stc.3.0,wx_gtk2_xrc.3.0


The p5-Digest-MD4 has MD4.xs

so needs a WANTLIB += perl
It's has a #include perl.h in MD4.xs

p5-Digest-Skein has skein.xs

p5-Socket-GetAddrInfo has lib/Socket/GetAddrInfo.xs

p5-Wx has .xs files everywhere



All these are wrong also .

$ pkg_info -Sq *.tgz | grep ",[A-z]"
glm-0.9.7.1,@gcc-libs-4.9.3p3,estdc++.17.0
gnustep-make-2.6.7p1,@gcc-libs-4.9.3p3,@gtar-1.28p1,estdc++.17.0
gtk3mm-documentation-3.18.0,@gcc-libs-4.9.3p3,estdc++.17.0
kde-shared-data-4.14.3p1,@gcc-libs-4.9.3p3,@gtk-update-icon-cache-3.18.9,estdc++.17.0
ruby-ri_docs-1.8.7.374p0,@libiconv-1.14p3,iconv.6.0
tmake-1.10p3,@qt3-mt-3.8p9,lib/qt3/qt-mt.33.0
unoconv-0.7p1,@gcc-libs-4.9.3p3,@libreoffice-5.1.1.3p0v0,@python-3.4.4,estdc++.17.0


$ make SUBDIR="`cat /tmp/l.9|xargs`" show="WANTLIB PKG_ARCH"
===> converters/unoconv
estdc++>=17
*
===> devel/tmake
lib/qt3/qt-mt>=3
*
===> graphics/glm
estdc++>=17
*
===> lang/ruby/1.8,-ri_docs
iconv>=2
amd64
===> misc/gtk3mm-documentation
estdc++>=17
*
===> x11/gnustep/make
estdc++>=17
*
===> x11/kde-shared-data
 estdc++>=17
*

$ make show="WANTLIB-ri_docs PKG_ARCH-ri_docs"
iconv>=2
*



shouldn't use PKG_ARCH=* and WANTLIB. one of the two is wrong. Looks
like portcheck agrees

$ cd x11/gnustep/make/
$ portcheck
non-empty WANTLIB for arch-independent package
x11/gnustep/make

$ portcheck
non-empty WANTLIB for arch-independent package
security/p5-Digest-MD4



$ portcheck
www/p5-HTML-Base

portcheck fails to find this one... It could find problem by analysing
the PLIST

PKG_ARCH = * means the expanded PLIST shouldn't contain `machine`, in
file paths they should all be machine independent locations, this case
${P5ARCH} is expanded and contains machine.

I do have a fixed version of p5-HTML-Base. Replace ${P5ARCH} by
${P5SITE} in the do-install:, recreate pkg/PLIST, and bump.

Unexpanded PLIST files could look for ${(|P5|MACHINE-)ARCH}
But don't want NO_ARCH.



Should portgen be updated?

Perl ports should have normally a PKG_ARCH = * added to the Makefile.
When perl uses C or other languages PKG_ARCH = * should not be present,
a WANTLIB += perl should.

To find which either read MANIFEST if files listed end in .xs excluding
those under t/ xt/ inc/ or search for files using find

$ find `make show=WRKSRC`/!(inc|t|xt) -name "*.xs"
/usr/ports/pobj/p5-Cpanel-JSON-XS-3.0213/Cpanel-JSON-XS-3.0213/XS.xs

So this port should not have PKG_ARCH = *
needs a WANTLIB += perl in the Makefile, as a .xs file is present.




Reply via email to