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.
>>
>

Reply via email to