finally

2018-06-15 Thread Marc Espie
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

2018-06-15 Thread Jeffrey Joshua Rollin
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

2018-06-17 Thread Landry Breuil
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

2008-05-11 Thread Marc Espie
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

2008-05-15 Thread Markus Lude
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

2015-12-04 Thread Daniel Jakots
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