On Thu, Mar 10, 2016 at 2:13 PM, Nigel Taylor <njtaylor0...@btinternet.com> wrote: > On 03/10/16 01:39, Stuart Henderson wrote: >> On 2016/03/09 15:26, Nigel Taylor wrote: >>> Attached revised perl.port.mk diff >> >> Looks sane, testing this (and cpan.port.mk diff) in a full build now. >> >>> perl.port.mk.diff_p522 - extras diffs I am using. >> >> Let's clear Module::Build (which already triggers warnings and breaks >> with 5.22) before we look at Module::Install (which iirc does still >> run with 5.22?) > > Looked at Module::Build, distinfo, pkg/PLIST are the same. > pkg/DESCR I used only the first two lines either way is ok. > > > Makefile is where we differ, mines a little messy I thought, > what I had was this see later try. > > # $OpenBSD:$ > > COMMENT = Module build > > DISTNAME = Module-Build-0.4208 > PKGNAME = p5-Module-Build-0.42.08 > CATEGORIES = devel > > # Perl > PERMIT_PACKAGE_CDROM = Yes > > MODULES = cpan > > TEST_DEPENDS += devel/p5-PAR-Dist>=0.17 > > # TODO this works but messy... > do-install: > cd ${WRKSRC} && \ > ./Build \ > --install_path lib="${TRUEPREFIX}/${P5SITE}" \ > --install_path arch="${TRUEPREFIX}/${P5ARCH}" \ > --install_path libdoc="${TRUEPREFIX}/man/man3p" \ > --install_path bindoc="${TRUEPREFIX}/man/man1" \ > --install_path bin="${TRUEPREFIX}/bin" \ > --install_path script="${TRUEPREFIX}/bin" \ > --destdir=${WRKINST} \ > install > > .include <bsd.port.mk> > > Difference is Makefile.PL is used, which uses Module::Build::Compatable, > converts args and runs Build.PL, results in same Build/Makefile, the convert > args converts to --config rather than --install_path, so install stage > is messed up. > > > > Best effort I've come up with this slightly neater one.... > > # $OpenBSD:$ > > COMMENT = Module build > > DISTNAME = Module-Build-0.4208 > PKGNAME = p5-Module-Build-0.42.08 > CATEGORIES = devel > > # Perl > PERMIT_PACKAGE_CDROM = Yes > > MODULES = cpan > > TEST_DEPENDS += devel/p5-PAR-Dist>=0.17 > CONFIGURE_STYLE = modbuild none > > .include <bsd.port.mk> > > > > Needs this in perl.port.mk - "none" doesn't add a build depends > > .if ${CONFIGURE_STYLE:L:Mmodbuild} > +. if ${CONFIGURE_STYLE:L:Mtiny} > +BUILD_DEPENDS += devel/p5-Module-Build-Tiny > +. elif ${CONFIGURE_STYLE:L:Mnone} > + # for building Module Build... > +. else > +BUILD_DEPENDS += devel/p5-Module-Build > +. endif > > Currently this shouldn't be needed, as it's for when Module::Build is > removed from core perl with 5.22 and want modbuild to add the dependency. > Tried current perl.port.mk and the one above, both work. Will need to work > out ordering, the changed perl.port.mk can go in before perl 5.22.
This means that port of p5-Module-Build can be included right now and ports could me moved to use it (before perl 5.22)? I see that perl ports install its files, as you show, in: /usr/local/libdata/perl5/site_perl/ while base Module::Build is installed in: /usr/libdata/perl5/Module/Build.pm and default module ordering is: $ perl -le 'print join("\n", @INC)' /usr/local/libdata/perl5/site_perl/amd64-openbsd /usr/libdata/perl5/site_perl/amd64-openbsd /usr/local/libdata/perl5/site_perl /usr/libdata/perl5/site_perl /usr/libdata/perl5/amd64-openbsd/5.20.2 /usr/local/libdata/perl5/amd64-openbsd/5.20.2 /usr/libdata/perl5 /usr/local/libdata/perl5 . $ so right now we can use your provided Module::Build port, then what is required now is to do some bulk building/testing and see if anything breaks? I'd like to help some more. Thanks. > > > Followed the version numbering upstream used major.minor.sub, > either way is ok, but no to using epochs later, keep 4digits or 2's. > > > > > > $ doas -u _pbuild make > ===> Enabling ccache for p5-Module-Build-0.42.08 > ===> p5-Module-Build-0.42.08 depends on: ccache-* -> ccache-3.2.4 > ===> Checking files for p5-Module-Build-0.42.08 > `/usr/ports/distfiles/Module-Build-0.4208.tar.gz' is up to date. >>> (SHA256) Module-Build-0.4208.tar.gz: OK > ===> Extracting for p5-Module-Build-0.42.08 > ===> Patching for p5-Module-Build-0.42.08 > ===> Configuring for p5-Module-Build-0.42.08 > Created MYMETA.yml and MYMETA.json > Creating new 'Build' script for 'Module-Build' version '0.4208' > ===> Building for p5-Module-Build-0.42.08 > Building Module-Build > $ doas -u _pbuild make fake > ===> Faking installation for p5-Module-Build-0.42.08 > install -d -m 755 /usr/ports/pobj/p5-Module-Build-0.42.08/fake-amd64 > Building Module-Build > Installing > /usr/ports/pobj/p5-Module-Build-0.42.08/fake-amd64/usr/local/man/man1/config_data.1 > Installing > /usr/ports/pobj/p5-Module-Build-0.42.08/fake-amd64/usr/local/libdata/perl5/site_perl/inc/latest.pm > Installing > /usr/ports/pobj/p5-Module-Build-0.42.08/fake-amd64/usr/local/libdata/perl5/site_perl/inc/latest/private.pm > Installing > /usr/ports/pobj/p5-Module-Build-0.42.08/fake-amd64/usr/local/libdata/perl5/site_perl/Module/Build.pm > Installing > /usr/ports/pobj/p5-Module-Build-0.42.08/fake-amd64/usr/local/libdata/perl5/site_perl/Module/Build/PodParser.pm > > > > $ doas -u _pbuild make test > ===> p5-Module-Build-0.42.08 depends on: p5-PAR-Dist->=0.17 -> > p5-PAR-Dist-0.49 > ===> Regression tests for p5-Module-Build-0.42.08 > /usr/bin/perl Build --makefile_env_macros 1 test > t/00-compile.t ................. ok > t/PL_files.t ................... ok > t/actions/installdeps.t ........ ok > ....... > t/unit_run_test_harness.t ...... ok > t/use_tap_harness.t ............ ok > t/versions.t ................... ok > t/write_default_maniskip.t ..... ok > t/xs.t ......................... ok > All tests successful. > Files=53, Tests=1134, 182 wallclock secs ( 0.41 usr 0.56 sys + 48.54 cusr > 43.36 csys = 92.87 CPU) > Result: PASS > > > Extra in TEST_DEPENDS, PAR::Dist is optional if pardist is used in Build.PL > then required, > we aren't creating a distribution just building, optional if included at > runtime. > > $ grep -r PAR:: . > ./README: Generates a PAR binary distribution for use with PAR or > PAR::Dist. > ./README: It requires that the PAR::Dist module (version 0.17 and up) > is > ./t/par.t: } elsif ( ! eval {require PAR::Dist; PAR::Dist->VERSION(0.17)} ) { > ./t/par.t: plan skip_all => "PAR::Dist 0.17 or up not installed to check > .par's."; > ./t/par.t:# must work around broken Archive::Zip (1.28) which breaks PAR::Dist > ./t/par.t: eval { $meta = PAR::Dist::get_meta($filename) }; > ./lib/Module/Build.pm:Generates a PAR binary distribution for use with L<PAR> > or L<PAR::Dist>. > ./lib/Module/Build.pm:It requires that the PAR::Dist module (version 0.17 and > up) is > ./lib/Module/Build/Base.pm: # Need PAR::Dist > ./lib/Module/Build/Base.pm: if ( not eval { require PAR::Dist; > PAR::Dist->VERSION(0.17) } ) { > ./lib/Module/Build/Base.pm: . "install PAR::Dist first." > ./lib/Module/Build/Base.pm: return PAR::Dist::blib_to_par( > ./blib/lib/Module/Build/Base.pm: # Need PAR::Dist > ./blib/lib/Module/Build/Base.pm: if ( not eval { require PAR::Dist; > PAR::Dist->VERSION(0.17) } ) { > ./blib/lib/Module/Build/Base.pm: . "install PAR::Dist first." > ./blib/lib/Module/Build/Base.pm: return PAR::Dist::blib_to_par( > > > Differnce between the two.... > > $ doas -u _pbuild diff -ruq p5-Module-Build-0.42.08/fake-amd64/ > p5-Module-Build-0.4208/fake-amd64/ > diff -ruq > p5-Module-Build-0.42.08/fake-amd64/usr/local/libdata/perl5/site_perl/Module/Build/ConfigData.pm > > p5-Module-Build-0.4208/fake-amd64/usr/local/libdata/perl5/site_perl/Module/Build/ConfigData.pm > Files > p5-Module-Build-0.42.08/fake-amd64/usr/local/libdata/perl5/site_perl/Module/Build/ConfigData.pm > and > p5-Module-Build-0.4208/fake-amd64/usr/local/libdata/perl5/site_perl/Module/Build/ConfigData.pm > differ > diff -ruq > p5-Module-Build-0.42.08/fake-amd64/usr/local/libdata/perl5/site_perl/amd64-openbsd/auto/Module/Build/.packlist > > p5-Module-Build-0.4208/fake-amd64/usr/local/libdata/perl5/site_perl/amd64-openbsd/auto/Module/Build/.packlist > Files > p5-Module-Build-0.42.08/fake-amd64/usr/local/libdata/perl5/site_perl/amd64-openbsd/auto/Module/Build/.packlist > and > p5-Module-Build-0.4208/fake-amd64/usr/local/libdata/perl5/site_perl/amd64-openbsd/auto/Module/Build/.packlist > differ > $ > > .packlist has the path so p5-Module-Build-0.4208 > p5-Module-Build-0.42.08 don't match > > ConfigData.pm it's a perl thing a data structure, the hashing ordering causes > a mismatch. > > > > > > > Module::Install - yes runs with 5.22, providing add BDEP on Module::Build. > Moved > to v1.16 of Module::Install from v1.08 it's just a normal port update. > > Some detail about Module::Install has been covered before, best in a > separate mail(s), new/updates for Module::Install are, > > p5-Data-Section.tgz p5-Module-Install-AuthorRequires.tgz > p5-Module-Install-AuthorTests.diff p5-Module-Install-AutoLicense.tgz > p5-Module-Install-AutoManifest.tgz p5-Module-Install-AutomatedTester.tgz > p5-Module-Install-Bugtracker.tgz p5-Module-Install-CheckLib.tgz > p5-Module-Install-CheckOptional.tgz p5-Module-Install-ExtraTests.tgz > p5-Module-Install-GithubMeta.tgz p5-Module-Install-Homepage.tgz > p5-Module-Install-ReadmeFromPod.tgz p5-Module-Install-Repository.diff > p5-Module-Install-TestBase.tgz p5-Module-Install-TestTarget.tgz > p5-Module-Install-XSUtil.diff p5-Module-Install.diff > p5-ShipIt.tgz p5-Software-License.tgz > p5-Test-FailWarnings.tgz p5-Test-Name-FromLine.tgz > > then another set switching to modinst / modbuild. > > >> >> I've attached my version of this as a port. >> >>> also attached diff with ports changed to use modbuild tiny (incomplete >>> few ports to do they build as is) >> >> Looks sane. (side-note, it would be a lot easier to apply a diff >> generated from /usr/ports, rather than have to split up the patch file >> and apply each part manually to the relevant directory) >> > > Attached revised diff, it's generated from /usr/ports/mystuff. I take a copy > to work > on and put under mystuff. I cd into directory and did cvs diff Makefile, was > going > to do one file for each, instead put output into a single file. > > >> I'll reply again when the build is done. >> >