finally
I've just committed a fix to the infamous Fatal error: can't parse OpenBSD::RequiredBy: writing /home/espie/cups-bugs/vardbpkg/cups-libs-2.2.7/+REQUIRED_BY: No such file or directory at /usr/libdata/perl5/OpenBSD/RequiredBy.pm line 30. bug. That bug was >3 years old at that point. It proved to be rather elusive, and I finally figured out ways to reproduce it a week ago. Even now, you won't see the code from the fix itself triggered too often, as it is dependent on quite a few rare conditions, including *a lot* of hash tables traversals. Elated it's finally fixed.
Re: finally
On 15 June 2018 at 11:32, Marc Espie wrote: > I've just committed a fix to the infamous > > Fatal error: can't parse OpenBSD::RequiredBy: writing > /home/espie/cups-bugs/vardbpkg/cups-libs-2.2.7/+REQUIRED_BY: No such file > or directory at /usr/libdata/perl5/OpenBSD/RequiredBy.pm line 30. > > bug. > > That bug was >3 years old at that point. > > It proved to be rather elusive, and I finally figured out ways to > reproduce it > a week ago. > > Even now, you won't see the code from the fix itself triggered too often, > as it is dependent on quite a few rare conditions, including *a lot* of > hash tables traversals. > > Elated it's finally fixed. > Mazel tov. Not one I've seen, but glad it's fixed for everyone. Thanks, Jeff.
Re: finally
On Fri, Jun 15, 2018 at 12:32:55PM +0200, Marc Espie wrote: > I've just committed a fix to the infamous > > Fatal error: can't parse OpenBSD::RequiredBy: writing > /home/espie/cups-bugs/vardbpkg/cups-libs-2.2.7/+REQUIRED_BY: No such file or > directory at /usr/libdata/perl5/OpenBSD/RequiredBy.pm line 30. > > bug. > > That bug was >3 years old at that point. > > It proved to be rather elusive, and I finally figured out ways to reproduce it > a week ago. > > Even now, you won't see the code from the fix itself triggered too often, > as it is dependent on quite a few rare conditions, including *a lot* of > hash tables traversals. > > Elated it's finally fixed. having experienced it at least 20 times on multiple computers in the past 5 years, WOOT :)
finally, MODULES documentation
A few people submitted quick changes for bsd.port.mk(5), which I did not okay. As you can see, documenting MODULES is not all THAT simple. It was also a bit hard to do earlier, because a lot of this emerged through actual practice. Comments welcome. Index: Makefile === RCS file: /cvs/src/share/man/man5/Makefile,v retrieving revision 1.39 diff -u -p -r1.39 Makefile --- Makefile9 Apr 2005 21:12:25 - 1.39 +++ Makefile11 May 2008 11:56:31 - @@ -8,8 +8,8 @@ MAN=a.out.5 acct.5 bsd.port.mk.5 bsd.re forward.5 fs.5 fstab.5 genassym.cf.5 group.5 hostname.if.5 \ hosts.equiv.5 hosts.5 intro.5 link.5 login.conf.5 mixerctl.conf.5 \ mk.conf.5 moduli.5 motd.5 myname.5 netgroup.5 networks.5 passwd.5 \ - pf.conf.5 pf.os.5 phones.5 printcap.5 protocols.5 remote.5 \ - resolv.conf.5 rpc.5 services.5 shells.5 stab.5 spamd.conf.5 \ + pf.conf.5 pf.os.5 phones.5 port-modules 5 printcap.5 protocols.5 \ + remote.5 resolv.conf.5 rpc.5 services.5 shells.5 stab.5 spamd.conf.5 \ sysctl.conf.5 types.5 utmp.5 wsconsctl.conf.5 MLINKS= dir.5 dirent.5 fs.5 inode.5 utmp.5 wtmp.5 utmp.5 lastlog.5 Index: bsd.port.mk.5 === RCS file: /cvs/src/share/man/man5/bsd.port.mk.5,v retrieving revision 1.212 diff -u -p -r1.212 bsd.port.mk.5 --- bsd.port.mk.5 11 May 2008 10:28:44 - 1.212 +++ bsd.port.mk.5 11 May 2008 11:56:32 - @@ -1266,6 +1266,10 @@ tedious. .It Ev MODGNU_CONFIG_GUESS_DIRS If a port uses config.guess outside WRKSRC, the directories containing the other copies must be set here. +.It Ev MODULES +External modules mechanism, documented separately. +See +.Xr port-modules 5 . .It Ev MOTIFLIB Read-only. Correct incantation to link with motif. @@ -2612,6 +2616,7 @@ non-flavor version if there is no flavor .Xr ftp 1 , .Xr pkg_add 1 , .Xr pkg_create 1 , +.Xr port-modules 5 , .Xr library-specs 7 , .Xr mirroring-ports 7 , .Xr packages-specs 7 , Index: port-modules.5 === RCS file: port-modules.5 diff -N port-modules.5 --- /dev/null 1 Jan 1970 00:00:00 - +++ port-modules.5 11 May 2008 11:56:32 - @@ -0,0 +1,319 @@ +.\" +.\" Copyright (c) 2008 Marc Espie +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\"notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\"notice, this list of conditions and the following disclaimer in the +.\"documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd $Mdocdate$ +.Dt PORT-MODULES 5 +.Os +.Sh NAME +.Nm port-modules +.Nd format and conventions used in port modules +.Sh DESCRIPTION +The +.Ox +Ports framework is based on a gigantic makefile named +.Xr bsd.port.mk 5 . +.Pp +In order to curb unwieldy growth, parts of the framework +that are not always needed have been set apart in optional +files called +.Nm port modules , +which are retrieved as needed through the +.Ev MODULES +variable of +.Xr bsd.port.mk 5 . +.Pp +Some of these modules correspond to basic mechanisms which are not +always needed, such as GNU autoconf, or perl5. +.Pp +Other modules correspond to shortcuts for using some other ports as +dependencies without needing to hardcode too much, such as libiconv or +the qt ports. +.Sh THE MODULES LOOK-UP MECHANISM +The variable +.Ev MODULES +should contain a list of module names. +Some core modules are a single word, all other modules should be +${PKGPATH}, +If the module is +.Pa some/dir/portname , +the ports framework will look for a file named +.Pa ${PORTSDIR}/some/dir/portname/portname.mk +and include it. +.Pp +Most modules should conform to this syntax. +The historic practice of having a redirection file directly under +.Pa ${PORTSDIR}/infrastructure/mk +is deprecated for new modules. +.Pp +Modules
Re: finally, MODULES documentation
On Sun, May 11, 2008 at 01:59:24PM +0200, Marc Espie wrote: > A few people submitted quick changes for bsd.port.mk(5), which I did not okay. > > As you can see, documenting MODULES is not all THAT simple. > > It was also a bit hard to do earlier, because a lot of this emerged through > actual practice. > > Comments welcome. Hello, some comments about (possible) typos inline below. Regards, Markus > Index: Makefile > === > RCS file: /cvs/src/share/man/man5/Makefile,v > retrieving revision 1.39 > diff -u -p -r1.39 Makefile > --- Makefile 9 Apr 2005 21:12:25 - 1.39 > +++ Makefile 11 May 2008 11:56:31 - > @@ -8,8 +8,8 @@ MAN= a.out.5 acct.5 bsd.port.mk.5 bsd.re > forward.5 fs.5 fstab.5 genassym.cf.5 group.5 hostname.if.5 \ > hosts.equiv.5 hosts.5 intro.5 link.5 login.conf.5 mixerctl.conf.5 \ > mk.conf.5 moduli.5 motd.5 myname.5 netgroup.5 networks.5 passwd.5 \ > - pf.conf.5 pf.os.5 phones.5 printcap.5 protocols.5 remote.5 \ > - resolv.conf.5 rpc.5 services.5 shells.5 stab.5 spamd.conf.5 \ > + pf.conf.5 pf.os.5 phones.5 port-modules 5 printcap.5 protocols.5 \ ^ Shouldn't this be "port-modules.5"? > + remote.5 resolv.conf.5 rpc.5 services.5 shells.5 stab.5 spamd.conf.5 \ > sysctl.conf.5 types.5 utmp.5 wsconsctl.conf.5 > > MLINKS= dir.5 dirent.5 fs.5 inode.5 utmp.5 wtmp.5 utmp.5 lastlog.5 > Index: bsd.port.mk.5 > === > RCS file: /cvs/src/share/man/man5/bsd.port.mk.5,v > retrieving revision 1.212 > diff -u -p -r1.212 bsd.port.mk.5 > --- bsd.port.mk.5 11 May 2008 10:28:44 - 1.212 > +++ bsd.port.mk.5 11 May 2008 11:56:32 - > @@ -1266,6 +1266,10 @@ tedious. > .It Ev MODGNU_CONFIG_GUESS_DIRS > If a port uses config.guess outside WRKSRC, the directories > containing the other copies must be set here. > +.It Ev MODULES > +External modules mechanism, documented separately. > +See > +.Xr port-modules 5 . > .It Ev MOTIFLIB > Read-only. > Correct incantation to link with motif. > @@ -2612,6 +2616,7 @@ non-flavor version if there is no flavor > .Xr ftp 1 , > .Xr pkg_add 1 , > .Xr pkg_create 1 , > +.Xr port-modules 5 , > .Xr library-specs 7 , > .Xr mirroring-ports 7 , > .Xr packages-specs 7 , > Index: port-modules.5 > === > RCS file: port-modules.5 > diff -N port-modules.5 > --- /dev/null 1 Jan 1970 00:00:00 - > +++ port-modules.511 May 2008 11:56:32 - > @@ -0,0 +1,319 @@ > +.\" > +.\" Copyright (c) 2008 Marc Espie > +.\" > +.\" All rights reserved. > +.\" > +.\" Redistribution and use in source and binary forms, with or without > +.\" modification, are permitted provided that the following conditions > +.\" are met: > +.\" 1. Redistributions of source code must retain the above copyright > +.\"notice, this list of conditions and the following disclaimer. > +.\" 2. Redistributions in binary form must reproduce the above copyright > +.\"notice, this list of conditions and the following disclaimer in the > +.\"documentation and/or other materials provided with the distribution. > +.\" > +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR > +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES > +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. > +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, > +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT > +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, > +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY > +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT > +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF > +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > +.\" > +.Dd $Mdocdate$ > +.Dt PORT-MODULES 5 > +.Os > +.Sh NAME > +.Nm port-modules > +.Nd format and conventions used in port modules > +.Sh DESCRIPTION > +The > +.Ox > +Ports framework is based on a gigantic makefile named > +.Xr bsd.port.mk 5 . > +.Pp > +In order to curb unwieldy growth, parts of the framework > +that are not always needed have been set apart in optional > +files called > +.Nm port modules , > +which are retrieved as needed through the > +.Ev MODULES > +variable of > +.Xr bsd.port.mk 5 . > +.Pp > +Some of these modules correspond to basic mechanisms which are not > +always needed, such as GNU autoconf, or perl5. > +.Pp > +Other modules correspond to shortcuts for using some other ports as > +dependencies without needing to hardcode too much, such as libiconv or > +the qt ports. > +.Sh THE MODULES LOOK-UP MECHANISM > +The variable > +.Ev MODULES > +should contain a list of module names. > +Some co
finally add a py3 flavor to net/py-ripe.atlas.tools
Hi, Finally here's the diff to add a py3 flavor to net/py-ripe.atlas.tools. You'll need the patches (sent to ports@) to add the py3 flavor to the ports it depends on, that doesn't have a py3 flavor yet: - net/py-IP - net/py-ripe.atlas.cousteau - net/py-ripe.atlas.sagan - textproc/py-yaml I tested it quickly with the command given in the README, works well. Cheers, Daniel Index: Makefile === RCS file: /cvs/ports/net/py-ripe.atlas.tools/Makefile,v retrieving revision 1.2 diff -u -p -r1.2 Makefile --- Makefile25 Nov 2015 15:55:32 - 1.2 +++ Makefile4 Dec 2015 20:26:44 - @@ -5,6 +5,7 @@ COMMENT = official command-line client MODPY_EGG_VERSION =1.1.1 DISTNAME = ripe.atlas.tools-${MODPY_EGG_VERSION} PKGNAME = py-${DISTNAME} +REVISION = 0 CATEGORIES = net @@ -20,13 +21,16 @@ MODPY_SETUPTOOLS = Yes MODULES = lang/python -RUN_DEPENDS = devel/py-dateutil \ - devel/py-tzlocal \ - net/py-ripe.atlas.cousteau \ - net/py-ripe.atlas.sagan \ - security/py-openssl \ - textproc/py-yaml \ - www/py-requests +FLAVORS = python3 +FLAVOR ?= + +RUN_DEPENDS = devel/py-dateutil${MODPY_FLAVOR} \ + devel/py-tzlocal${MODPY_FLAVOR} \ + net/py-ripe.atlas.cousteau${MODPY_FLAVOR} \ + net/py-ripe.atlas.sagan${MODPY_FLAVOR} \ + security/py-openssl${MODPY_FLAVOR} \ + textproc/py-yaml${MODPY_FLAVOR} \ + www/py-requests${MODPY_FLAVOR} TEST_DEPENDS = ${RUN_DEPENDS} # runs into some problem with namespace, at least on py2.7 Index: pkg/PLIST === RCS file: /cvs/ports/net/py-ripe.atlas.tools/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 PLIST --- pkg/PLIST 17 Nov 2015 20:57:41 - 1.1.1.1 +++ pkg/PLIST 4 Dec 2015 20:26:44 - @@ -16,93 +16,107 @@ lib/python${MODPY_VERSION}/site-packages lib/python${MODPY_VERSION}/site-packages/ripe.atlas.tools-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info/top_level.txt lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/ lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/__init__.py -lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/__init__.pyc +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/${MODPY_PYCACHE}filters.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/${MODPY_PYCACHE}ipdetails.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/${MODPY_PYCACHE}streaming.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/${MODPY_PYCACHE}version.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/aggregators/ lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/aggregators/__init__.py -lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/aggregators/__init__.pyc +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/aggregators/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/aggregators/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/aggregators/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/aggregators/base.py -lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/aggregators/base.pyc lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/cache.py -lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/cache.pyc lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/commands/ lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/commands/__init__.py -lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/commands/__init__.pyc +${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/commands/${MODPY_PYCACHE}/ +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/commands/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/commands/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc +lib/python${MODPY_VERSION}/site-packages/ripe/atlas/tools/commands/${MODPY_PY