Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. This page describes stuff relating to perl and p5-* ports in tree for perl@ ====== perl@ PRs ====== [[https://bugs.freebsd.org/bugzilla/buglist.cgi?email1=perl%40FreeBSD.org&emailassigned_to1=1&emailreporter1=1&emailtype1=exact&list_id=11696&resolution=---|Open Perl Bugzilla Issues]] ====== Team ====== ===== committers ===== * adamw * bapt * chinsan * clsung * crees * culot * dinoex * eadler * ehaupt * gabor * jadawin * kuriyama * leeym * lth * mat * miwi * mm * pgollucci * pi * sahil * sem * skreuzer * sunpoet * swills * tobez * wen * zi ===== contributors ===== * Aliaksandr Zahatski <zahatski@gmail.com> [perl 6 related] ====== How to commit for perl@? ====== Actually, it's not definitive, but tobez@ submitted this idea: - the committer made at least 10 commits for unique perl@-maintained port - the committer maintains at least 10 p5-ports on their own ====== IRC ====== You can find some of perl@ people on #bsdperl on [[http://www.irc.perl.org|IRC MagNet]]. Feel free to connect and ask questions or discuss a future of perl ports on %%FreeBSD%%. ====== Tips and Tricks ====== ===== Testing Perl Ports ===== To test whether a port is missing dependencies, Perl ports often can and should be tested using "make test" from within the port directory once the build is finished. An easy way to do this is to use "poudriere testport -i" to perform interactive testing after the port has been built. Refer to the [[https://www.freebsd.org/doc/en/books/porters-handbook/testing-poudriere.html#testing-poudriere-testing-ports|Porter's Handbook]] for further details. <code> # poudriere testport -j JAILNAME -i CATEGORY/PORT </code> Once the build is complete and you are provided with a shell prompt within the jail: <code> # cd /usr/ports/CATEGORY/PORT/ # make test </code> It should however be noted that CPAN is not canonical; it is very easy to write the Makefile in such a way that CPAN misses dependencies entirely. Look in the file ${WRKSRC}/META.yml; it should provide a clearer picture of the dependencies, though it too can easily be wrong as it's generated automatically. ===== Test Dependencies ===== I (tobez@) found it useful recently to add TEST_DEPENDS clause to the ports I commit to. It has exactly the same syntax as old good BUILD_DEPENDS and RUN_DEPENDS (which almost always means listing versioned package dependencies). It is not currently supported in any way by bsd.{port,perl}.mk framework, and portlint will produce a warning (which I happily ignore) about it. But it is immediately useful: - It is clear at a glance what ports needs to be installed in order for make test to have a chance to be successful. - In the future someone might implement support for it in the ports framework. - My own pre-commit test scripts understand this clause, which increases my productivity quite a bit. So, in brief, I'd like to see this practice expanding. I (swills@) have been adding quite a few TEST_DEPENDS and have added some support to the ports tinderbox for TEST_DEPENDS as well. There is also a patch: http://people.freebsd.org/~swills/bsd.perl.mk_add_test.diff.txt which adds some logic for it. With this patch, you can add: export USE_PERL_TEST=yes to your tinderbox/scripts/etc/env/GLOBAL file and tinderbox will run the tests for you. You may also want this patch: http://people.freebsd.org/~swills/tinderbox_test_deps_add_run_deps.diff As it makes tinderbox add the RUN_DEPENDS to the TEST_DEPENDS. If you wish to make tinderbox fail the build if the tests fail, you can change this line of tinderbox/scripts/lib/buildscript: /pnohang $TIMEOUT /tmp/make.log5 ${pkgname} make -k regression-test to this: /pnohang $TIMEOUT /tmp/make.log5 ${pkgname} make regression-test || cleanup 5 I've been using this to test and fix all the p5- ports that don't pass their tests, but there are many and help is welcome. I hope to add support to ports proper for testing eventually. ===== CPAN shortcut for expanding author/id/X/XX/XXX ===== I (az@) found it useful recently to add **''%%CPAN:CPANID%%''** clause to the ports I commit to. It happened that CPAN modules __/by-module__ symlink is no longer available for new modules versions. CPAN __/modules/by-author__ is still available but maybe it will have the same fate. Therefore to properly use the only correct method of __/author/id__. **Examples of replacement:** ^ BEFORE ^ AFTER ^ | MASTER_SITES= CPAN\\ MASTER_SITE_SUBDIR= ../by-authors/id/J/JP/JPEACOCK | MASTER_SITES= CPAN\\ MASTER_SITE_SUBDIR= ''%%CPAN:JPEACOCK%%'' | | MASTER_SITES= CPAN../by-authors/id/J/JP/JPEACOCK | MASTER_SITES= CPAN\\ MASTER_SITE_SUBDIR= ''%%CPAN:JPEACOCK%%'' | | MASTER_SITES= CPAN\\ MASTER_SITE_SUBDIR= ../by-authors/id/J/JP/JPEACOCK/DIRECTORY | MASTER_SITES= CPAN\\ MASTER_SITE_SUBDIR= ''%%CPAN:JPEACOCK/DIRECTORY%%'' | In this examples ''%%CPAN:JPEACOCK%%'' will be expanded to **authors/id/J/JPEACOCK** and this magic works only while you using CPAN keywork inside MASTER_SITES. I think this is a transitional solution, and when all p5-ports will have the current syntax, I would like to see such syntax: **%%<%%CPAN>/%%<%%AUTHORID>/%%<%%ANYTHING INSIDE AUTOR DIRECTORY>**. ^ EXAMPLE OF FUTURE SYNTAX ^ | MASTER_SITES= CPAN\\ MASTER_SITE_SUBDIR= JPEACOCK | | MASTER_SITES= CPAN/JPEACOCK | | MASTER_SITES= CPAN\\ MASTER_SITE_SUBDIR= JPEACOCK/DIRECTORY | | MASTER_SITES= CPAN/JPEACOCK/DIRECTORY | ^ Patches ^ Comment ^ | http://people.freebsd.org/~az/perl/bsd.sites.mk.diff | Allow also use new syntax with overloaded **MASTER_SITE_PERL_CPAN** inside /etc/make.conf | ====== Ports Long Term Targets ====== * [[Ports/LongtermTargets#Remove_unnecessary_dependencies_.28Perl_core_modules.29_from_.7BBUILD.7CRUN.7CTEST.7D_DEPENDS|Remove unnecessary dependencies (Perl core modules) from {BUILD,RUN,TEST}_DEPENDS]] ---- {{tag>Ports Team}} perl.txt Last modified: 2023/06/26 14:18by MateuszPiotrowski