perl
- Depends on
mawk
- Depends on
gdbm
ordb
on Alpine and Arch - Do not specify
scriptdir
or other dirs that might change where binaries are being installed (perl binaries and scripts are expected to be in/usr/bin
) -Ud_fpos64_t
and-Ud_off64_t
undefine symbols in configure on Alpine and Clear; musl defines them so it is better to let the build system decideZ_SOLO
on Alpine is used to compile and use zlib without external libraries- Check large file and usenm support
installman1dir
andinstallman3dir
are not portable and should only be used in Makefiles- Modules manpages are being removed on Adelie
PERL_MM_USE_DEFAULT=1
uses default values when answering questions- Unable to use upstream binaries; requires signing up with a third party vendor?
- Does
perl
require a loopbacklo
network device and/etc/hosts
? Config_heavy.pl
applies compile-time flags to future builds and modules; which is also why we don’t usecf_email
as it would require patching to prevent sending reports of some broken modules to different emails1p
for commands and3pm
for modules-Dusesoname
is obsolete- It is recommended not to use
-Dusenm
on Linux miniperl
is not needed as we aren’t bootstrappingperl
LDFLAGS="-Wl,-z,stack-size=2097152 -pthread"
and stack size patches for musl are needed fors390x
on Alpine and VoidPERL_TEST_HARNESS_ASAP=1
causes the test suite to finish somewhat earlier with less logical ordering of the testsPERL_BUILD_PACKAGING
skips a small number of porting tests (those in t/porting) that assume they are in a git clone of the upstream Perl repository, or enforce irrelevant rules which are not- musl defines
sockaddr_in6
so use-Dd_sockaddr_in6=define
- Void passes
export CFLAGS+="-DNO_POSIX_2008_LOCALE -D_GNU_SOURCE"
to fix build on musl - Specify additional flags?
-Aappend:optimize="$CFLAGS"-Adefine:ccflags="$CFLAGS"-Adefine:lddflags="$LDFLAGS"-Adefine:ldflags="$LDFLAGS"-Dcccdlflags="-fPIC"-Dccdlflags="-rdynamic"-Dccflags="$CFLAGS"-Dlddlflags="-shared $LDFLAGS"-Dldflags="$LDFLAGS-Doptimize="-Wall $CFLAGS"
- Alpine further splits the package into
dev
andutils
each with certain binaries - Compare
make
vsmake libperl.so && make
- Compare
make install
target vsmake install.perl
-Duse64bitint -Duselargefiles
are detected by default?- Prefer
test_harness_notty
overtest_harness
? HARNESS_OPTIONS
defaults toj9
?- Examine alpine’s
-Dd_semctl_semun
? - Do we need a
/usr/lib/libperl.so
symlink? - Modify
CPAN/FirstTime.pm
for site directories? - Might require a permission fix to
644
? - Do we need to explicitly define
static_inline
? Or doesperl
’s build system automatically detect it? musl-locale
patches are forperl-cross
which glaucus does not usesiteprefix
is automatically set equal toprefix
scriptdir
,sitescript
andvendorscript
are automatically set to their relativeprefix/bin
References
- https://bugs.gentoo.org/506818
- https://cgit.freebsd.org/ports/commit/lang/perl5.40?id=06745788d4b143777aa2cb91e31a4c07af90ded3
- https://github.com/void-linux/void-packages/blob/master/srcpkgs/perl/patches/cpan_definstalldirs.diff
- https://perldoc.perl.org/Config
- https://wiki.archlinux.org/title/Perl_package_guidelines