Bug 203316

Summary: perl's ports build framework bug (devel/p5-App-cpanminus net/p5-Net-Server make package fail)
Product: Ports & Packages Reporter: oklaspec
Component: Ports FrameworkAssignee: freebsd-perl (Nobody) <perl>
Status: New ---    
Severity: Affects Many People CC: amontalban, devin, oklaspec, ports-bugs
Priority: --- Flags: bugzilla: maintainer-feedback? (kuriyama)
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 206847    

Description oklaspec 2015-09-24 18:53:59 UTC
Hi! Building the package of port is failed,
and therefore dependent packages ant repo tree
is imposible to build. Here output:

root@ns2:/usr/ports/devel/p5-App-cpanminus # make package
===>  Building package for p5-App-cpanminus-1.7039
pkg-static: Unable to access file /usr/ports/devel/p5-App-cpanminus/work/stage/usr/local/share/man/man1/cpanm.1.gz: No such file or directory
*** [do-package] Error code 1

Stop in /usr/ports/devel/p5-App-cpanminus.


The file is actually have path ('/share/' - component is difference):
/usr/ports/devel/p5-App-cpanminus/work/stage/usr/local/share/man/man1/cpanm.1.gz
Comment 1 oklaspec 2015-09-24 18:58:08 UTC
actually path:
/usr/ports/devel/p5-App-cpanminus/work/stage/usr/local/man/man1/cpanm.1.gz
Comment 2 oklaspec 2015-09-25 16:00:57 UTC
possible port build system error bug, same error at p5-Net-Server-2.008_1

pkg-static: Unable to access file /usr/ports/net/p5-Net-Server/work/stage/usr/local/share/man/man1/net-server.1.gz: No such file or directory
Comment 3 Andres Montalban 2015-09-25 17:43:57 UTC
Hi,

I'm also affected with this bug for devel/p5-App-cpanminus.

The bug was introduced in this commit: https://github.com/freebsd/freebsd-ports/commit/0a3881946e73bed6ebd8016e2b2ecd90da2b69f1

Specifically here in the pkg-plist file:

 bin/cpanm
-man/man1/cpanm.1.gz
+%%PERL5_MAN1%%/cpanm.1.gz
 %%PERL5_MAN3%%/App::cpanminus.3.gz
 %%PERL5_MAN3%%/App::cpanminus::fatscript.3.gz
 %%SITE_PERL%%/App/cpanminus.pm

Not sure which is the best way to fix it since this change affect all Perl ports.

Hope it gets fixed fast because we use tons of Perl modules.

Thanks!
Comment 4 Tod McQuillin 2015-12-11 03:47:53 UTC
I found this happens when the obsolete variable PERL_VERSION is defined in make.conf (or elsewhere).

In /usr/ports/Mk/Uses/perl5.mk we have:

.if defined(PERL_VERSION)
PERL5_DEPEND=	${PERL5}
THIS_IS_OLD_PERL=	yes
.else

and later:

.if defined(THIS_IS_OLD_PERL)
SITE_MAN1_REL?=	share/man/man1
.else
SITE_MAN1_REL?=	${SITE_PERL_REL}/man/man1
.endif

This is used to populate PERL5_MAN1 which ends up putting the wrong paths in pkg_plist when %%PERL5_MAN1%% is used.

I fixed this by removing PERL_VERSION from /etc/make.conf.  The replacement for this is now DEFAULT_VERSIONS.
Comment 5 oklaspec 2016-02-05 09:06:43 UTC
The problem originally was on 9.3-RELEASE r279048 immediately after system install from sources with empty /etc/make.conf
Comment 6 Rene Ladan freebsd_committer freebsd_triage 2021-10-05 18:21:02 UTC
Maintainer reset.