On Sun, 1 Nov 2026 20:58:17 +0000
Stuart Henderson <[email protected]> wrote:

> On 2026/11/01 13:55, Thomas Frohwein wrote:
> > On Sun, 1 Nov 2026 07:01:57 -0600 (CST)
> > Stuart Henderson <[email protected]> wrote:
> >   
> > > CVSROOT:  /cvs
> > > Module name:      ports
> > > Changes by:       [email protected]   2026/11/01
> > > 07:01:57
> > > 
> > > Modified files:
> > >   infrastructure/mk: bsd.port.mk 
> > > 
> > > Log message:
> > > move _DT_WRKDIST before DISTNAME check, so that it can actually be
> > > used
> > >   
> > 
> > I've known _DT_WRKDIST to be inert for a while, but ports that
> > combine DIST_TUPLE with other ways to fetch their main DISTFILES
> > and then building in ${WRKDIR}/${DISTNAME} don't tolerate being
> > overwritten by _DT_WRKDIST.
> > 
> > That's part of the reason why my proposed diff would rather get rid
> > of _DT_WRKDIST again [1].
> > 
> > I just tried building one of those ports, sysutils/py-tsk which
> > combines DIST_TUPLE with the MODPY universe and it breaks with this
> > commit and I can unbreak it with WRKDIST = ${WRKDIR}/${DISTNAME}
> > 
> > Sorry, I don't think this is the right direction. Happy to be proven
> > wrong, but I've tried this unsuccessfully before. 
> > 
> > 
> > [1] https://marc.info/?l=openbsd-ports&m=179221892747053&w=2  
> 
> Ah yes my running bulk hit some issues with this that diffing
> pre/post-change "make show=WRKDIST" didn't show up,
> 
> E=databases/arrow/cpp(i386-2) lang/node games/mvdsv(i386-1)
> astro/py-skyfield(i386-2)! devel/py-rx(i386-3)
> sysutils/firmware/bwfm(i386-1)
> 
> (maybe others)
> 
> Sorry, was already dealing with the already committed change that was
> going to cause issues for builds.
> 
> Will try to investigate/fix the above tomorrow as long as my router
> with ixl doesn't fall over again.
> 

Can we consider reverting this and re-consider the diff that I had
proposed? I'm including it again with the man page diff and the few
ports that need fixing. The reason why a few ports are necessary to fix
are explained in my earlier email [1].

There are 2 underlying issues with DIST_TUPLE that this addresses. 1)
How can DIST_TUPLE know the correct directory name that files are
extracted with, and 2) the order of operations for setting WRKDIST
*automatically* (if not set manually; which is always a "last resort"
option).

1) is answered with TEMPLATE_EXTRACT_DIR.*, supplemented with ID_MOD.*
where needed, and 2) is discussed in my email [1], but boils down to
that the least disruptive way seems to be to let DIST_TUPLE only set
WRKDIST when used with the '.' targetdir, which if done would require a
few ports to set WRKDIST manually, but at the great advantage of many
other ports (especially codeberg hosted) not needing to set WRKDIST
anymore.

(There is innate competition between the different ways to set WRKDIST.
bsd.port.mk follows an implicit hierarchy of operations here.
DIST_TUPLE comes relatively early as part of the modules processing;
but as the experiments with _DT_WRKDIST have shown, deferrring the
setting of WRKDIST to later doesn't really make things simpler.)

Below is the updated version of my patch, adjusted for the recent
changes. It still gets rid of _DT_WRKDIST, and it moves the
gitlab/fdo quirks out of dist-tuple.port.mk into dist-tuple.pattern.

I am still looking for ok's; as reported in [1] this went through a
bulk with the previous version before things changed, but I can build
emulationstation just fine with this. Also see the attachment for man
page diff and diffs for the few ports that would need to set WRKDIST.

[1] https://marc.info/?l=openbsd-ports&m=179221892747053&w=2

Index: db/dist-tuple.pattern
===================================================================
RCS file: /cvs/ports/infrastructure/db/dist-tuple.pattern,v
diff -u -p -r1.16 dist-tuple.pattern
--- db/dist-tuple.pattern       1 Nov 2026 10:25:50 -0000       1.16
+++ db/dist-tuple.pattern       1 Nov 2026 21:25:27 -0000
@@ -36,6 +36,20 @@ TEMPLATE_DISTFILES.kde ?= \
 TEMPLATE_DISTFILES.srht ?= \
        
<account>-<project>-{~<account>/<project>/archive/}<id>${EXTRACT_SUFX.srht}
 
+# Template for the directory created upon extraction of the distfile.
+# This is used 1) for setting WRKDIST where needed, and 2) to use the
+# correct path for the post-extract target. 
+# Format: TEMPLATE_EXTRACT_DIR.x.y, where x is the template and y is
+# either tag or hash
+# Defaults to a (heuristically modified) version of <project>-<id>.
+# Can use <mod_id>: the <id> string, modified with ID_MOD.x.y,
+# according to make(1) rules.
+TEMPLATE_EXTRACT_DIR.codeberg.tag ?=           <project>
+TEMPLATE_EXTRACT_DIR.codeberg.hash ?=  <project>
+
+TEMPLATE_EXTRACT_DIR.github.tag ?=             <project>-<mod_id>
+ID_MOD.github.tag ?=                   :C/^(v|V)([0-9])/\2/
+
 # template for HOMEPAGE; same substitutions as for DISTFILES.x
 # Defaults to TEMPLATE_HOMEPAGE. Set TEMPLATE_HOMEPAGE.x to use different 
pattern.
 # - <site> - substituted, may correspond to SITES.x
Index: mk/bsd.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
diff -u -p -r1.1655 bsd.port.mk
--- mk/bsd.port.mk      1 Nov 2026 13:01:57 -0000       1.1655
+++ mk/bsd.port.mk      1 Nov 2026 21:25:27 -0000
@@ -901,8 +901,6 @@ _WRKDIRS += ${WRKOBJDIR_MFS}/${_WRKDIR_S
 WRKDIST ?= ${WRKDIR}/${GH_PROJECT}-${GH_TAGNAME:C/^[vV]([0-9])/\1/:S,/,-,g}
 .elif !empty(GH_COMMIT)
 WRKDIST ?= ${WRKDIR}/${GH_PROJECT}-${GH_COMMIT}
-.elif !empty(_DT_WRKDIST)
-WRKDIST ?= ${_DT_WRKDIST}
 .elif defined(DISTNAME)
 WRKDIST ?= ${WRKDIR}/${DISTNAME}
 .else
Index: mk/dist-tuple.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/dist-tuple.port.mk,v
diff -u -p -r1.23 dist-tuple.port.mk
--- mk/dist-tuple.port.mk       1 Nov 2026 13:02:33 -0000       1.23
+++ mk/dist-tuple.port.mk       1 Nov 2026 21:25:27 -0000
@@ -1,14 +1,14 @@
 # DIST_TUPLE: 5 elements
 # use targetdir=. if you don't want to move files after extraction
 # Syntax:
-# DIST_TUPLE +=        template account project id(commit/tag) targetdir # 
license
+# DIST_TUPLE +=        template account project id(commit/tag) targetdir
 #
 # Examples:
-# DIST_TUPLE +=        github vim vim v9.0.1677 . # VIM License / donation-ware
+# DIST_TUPLE +=        github vim vim v9.0.1677 .
 # DIST_TUPLE +=        gitlab Mr_Goldberg goldberg_emulator \
-#              475342f0d8b2bd7eb0d93bd7cfdd61e3ae7cda24 . # LGPLv3
+#              475342f0d8b2bd7eb0d93bd7cfdd61e3ae7cda24 .
 # DIST_TUPLE +=        github FNA-XNA FNA.NetStub 
ebff244074bb3c28aeeb8cf7b383b5a029d7e28d \
-#                      ../FNA.NetStub # Ms-PL
+#                      ../FNA.NetStub
 DIST_TUPLE ?=
 
 # Caveats:
@@ -18,44 +18,70 @@ DIST_TUPLE ?=
 .include "${PORTSDIR}/infrastructure/db/dist-tuple.pattern"
 
 .if !empty(DIST_TUPLE)
-.  for _template _account _project _id _targetdir in ${DIST_TUPLE}
 
-.    if empty(SITES.${_template})
+.  for __template __account __project __id __targetdir in ${DIST_TUPLE}
+
+.    for __id_type in tag hash
+# inert substitution by default; this can't be an empty element
+ID_MOD.${__template}.${__id_type} ?= :S///
+.    endfor
+
+.    for _template _account _project _id _id_mod_tag _id_mod_hash _targetdir 
in ${__template} ${__account} ${__project} ${__id} ${ID_MOD.${__template}.tag} 
${ID_MOD.${__template}.hash} ${__targetdir}
+
+.      if empty(SITES.${_template})
 ERRORS += "Fatal: invalid choice for DIST_TUPLE: ${_template}"
-.    endif
+.      endif
+
+# create _FULL_DIST_TUPLE with derived variables
+_FULL_DIST_TUPLE += ${_template} ${_account} ${_project} ${_id} ${_targetdir}
+
+.      if "${_id}" == "HASH" || "${_id:C/^[0-9a-f]{10,40}$/HASH/}" != "HASH"
+# tag mode
+_FULL_DIST_TUPLE += tag
+_FULL_DIST_TUPLE += 
${_project}-${_id:C/^(v|V|ver|[Rr]el|[Rr]elease)[-._]?([0-9])/\2/:S,/,-,g}
+.        if !empty(TEMPLATE_EXTRACT_DIR.${_template}.tag)
+_FULL_DIST_TUPLE += ${TEMPLATE_EXTRACT_DIR.${_template}.tag}
+.        else
+_FULL_DIST_TUPLE += <defaultname>
+.        endif
+# XXX: refs/tags/ is only useful for template github
+_FULL_DIST_TUPLE += 
S,<account>,${_account},g:S,<project>,${_project},g:S,<id>,${_id},g:S,<subdir>,refs/tags/,g:S,<site>,${SITES.${_template}},g:S,<defaultname>,${_project}-${_id:C/^(v|V|ver|[Rr]el|[Rr]elease)[-._]?([0-9])/\2/:S,/,-,g},g:S,<mod_id>,${_id${_id_mod_tag}},g
 
-_subdir =
-.    if "${_id}" == "HASH" || "${_id:C/^[0-9a-f]{10,40}$/HASH/}" != "HASH"
-# set DISTNAME if not done by the port and add refs/tags/ subdir
-_distname ?= 
${_project}-${_id:C/^(v|V|ver|[Rr]el|[Rr]elease)[-._]?([0-9])/\2/:S,/,-,g}
-DISTNAME ?= ${_distname}
-_subdir =      refs/tags/
-.      if "${_template}" == "gitlab" || "${_template}" == "fdo"
-_DT_WRKDIST ?= ${WRKDIR}/${_project}-${_id}
 .      else
-_DT_WRKDIST ?= ${WRKDIR}/${_distname}
+# hash mode
+_FULL_DIST_TUPLE += hash
+_FULL_DIST_TUPLE += ${_project}-${_id}
+.        if !empty(TEMPLATE_EXTRACT_DIR.${_template}.hash)
+_FULL_DIST_TUPLE += ${TEMPLATE_EXTRACT_DIR.${_template}.hash}
+.        else
+_FULL_DIST_TUPLE += <defaultname>
+.        endif
+_FULL_DIST_TUPLE += 
S,<account>,${_account},g:S,<project>,${_project},g:S,<id>,${_id},g:S,<subdir>,,g:S,<site>,${SITES.${_template}},g:S,<defaultname>,${_project}-${_id},g:S,<mod_id>,${_id${_id_mod_hash}},g
+.      endif
+.    endfor
+.  endfor
+
+.  for _template _account _project _id _targetdir _mode _defaultname 
_extrdir_temp _subst in ${_FULL_DIST_TUPLE}
+
+.    if "${_mode}" == "tag" && !defined(GH_TAGNAME)
+# Yield to GH_TAGNAME; it takes precedence and is set later in bsd.port.mk 
with ?=.
+# Only set DISTNAME for tag; commit hashes are not desired for this.
+DISTNAME ?= ${_defaultname}
 .    endif
-.    else
-_DT_WRKDIST ?= ${WRKDIR}/${_project:C,^.*/,,}-${_id}
-.    endif
-
-.    for _subst in 
S,<account>,${_account},g:S,<project>,${_project},g:S,<id>,${_id},g:S,<subdir>,${_subdir},g:S,<site>,${SITES.${_template}},g
 
+.    for _extrdir in ${_extrdir_temp:${_subst}}
 DISTFILES.${_template} +=              
${TEMPLATE_DISTFILES.${_template}:${_subst}}
 EXTRACT_SUFX.${_template} ?=           ${TEMPLATE_EXTRACT_SUFX}
 TEMPLATE_HOMEPAGE.${_template} ?=      ${TEMPLATE_HOMEPAGE}
-HOMEPAGE ?=    ${TEMPLATE_HOMEPAGE.${_template}:${_subst}}
+HOMEPAGE ?=                            
${TEMPLATE_HOMEPAGE.${_template}:${_subst}}
 
-.      if "${_targetdir}" != "." && "${_template}" == "codeberg"
-MODDIST-TUPLE_post-extract += \
-       t=${WRKDIST}/${_targetdir}; [[ -d $$t ]] && rmdir $$t \
-       || mkdir -p `dirname $$t` ; \
-       mv ${WRKDIR}/${_project:T} $$t;
-.      elif "${_targetdir}" != "."
+.      if "${_targetdir}" == "."
+WRKDIST ?= ${WRKDIR}/${_extrdir}
+.      else
 MODDIST-TUPLE_post-extract += \
        t=${WRKDIST}/${_targetdir}; [[ -d $$t ]] && rmdir $$t \
        || mkdir -p `dirname $$t` ; \
-       mv ${WRKDIR}/${_project:T}-${_id:S/refs\/tags\///:C/^v([0-9])/\1/} $$t;
+       mv ${WRKDIR}/${_extrdir} $$t;
 .      endif
 .    endfor
 
Index: bsd.port.mk.5
===================================================================
RCS file: /cvs/src/share/man/man5/bsd.port.mk.5,v
diff -u -p -r1.658 bsd.port.mk.5
--- bsd.port.mk.5	21 Oct 2026 09:09:47 -0000	1.658
+++ bsd.port.mk.5	24 Oct 2026 03:59:06 -0000
@@ -1684,43 +1684,23 @@ directories and needs to be configured w
 .Sq gnu dest ,
 so that those few directories do not get in the way.
 .It Ev DIST_TUPLE
-List of distfile templates to use, each consisting of five entries:
-.Ar name account project tagname/commithash targetdir .
-The template
-.Ar name
-should be one of
-.Sq codeberg ,
-.Sq fdo ,
-.Sq github ,
-.Sq gitlab ,
-.Sq gnome ,
-.Sq kde ,
-or
-.Sq srht
-at the moment
-.Po see
+Framework for fetching
+.Ev DISTFILES
+from one of the forges.
+The way to handle
+.Ev DISTFILES
+fetching and extraction is specific to each forge and usually set in
 .Pa ${PORTSDIR}/infrastructure/db/dist-tuple.pattern ,
-additional
-.Ev TEMPLATE_DISTFILES.<name>
+with a combination of some or all of
+.Ev ID_MOD.* ,
+.Ev TEMPLATE_DISTFILES.* ,
+.Ev TEMPLATE_EXTRACT_DIR.* ,
+.Ev TEMPLATE_EXTRACT_SUFX.* ,
 and
-.Ev TEMPLATE_HOMEPAGE.<name>
-entries can be added as needed
-.Pc .
-The components are used to build
-.Ev SITES.name
-.Ev DISTFILES.name
-and (optionally)
-.Ev HOMEPAGE .
-.Pp
-At the end of
-.Cm post-extract ,
-the files are moved to
-.Pa ${WRKDIST}/<targetdir> .
-Using
-.Sq \&.
-for
-.Ar targetdir
-will disable the move.
+.Ev TEMPLATE_HOMEPAGE.* .
+See
+.Sx THE DIST_TUPLE FRAMEWORK
+section below.
 .It Ev DISTDIR
 User settings.
 Directory where all ports distribution files and patchfiles are stashed.
@@ -3493,47 +3473,6 @@ and module hooks
 Used by introspection tools such as the
 .Pa sqlports
 package.
-.It Ev TEMPLATE_DISTFILES.<name>
-Template used to construct
-.Ev DISTFILES.name
-based on a
-.Ev DIST_TUPLE
-entry by filling in placeholder strings.
-For instance,
-.Ev TEMPLATE_DISTFILES.github
-defaults to
-.Bd -literal
-<account>-<project>-{<account>/<project>/archive/<subdir>}<id>.tar.gz
-.Ed
-.Pp
-with
-.Li DIST_TUPLE += github foo bar baz qux.
-We end up with the following
-.Ev DISTFILES.github
-entry:
-.Bd -literal -offset indent
-foo-bar-{foo/bar/archive/ref/tags}baz.tar.gz
-.Ed
-.Pp
-Placeholders
-.Sq account ,
-.Sq project ,
-.Sq id
-are self-explanatory.
-.Sq subdir
-is set automatically by figuring out whether
-.Ar id
-is a
-.Ar tagname
-or a
-.Ar hash .
-.It Ev TEMPLATE_HOMEPAGE.<name>
-Template for automatically generated
-.Ev HOMEPAGE
-when using
-.Ev DIST_TUPLE .
-Very similar to
-.Ev TEMPLATE_DISTFILES.<name> .
 .It Ev TEST_DEPENDS
 See
 .Ev BUILD_DEPENDS
@@ -3961,6 +3900,170 @@ during
 (see the
 .Sx FILES
 section above for details).
+.Sh THE DIST_TUPLE FRAMEWORK
+.Ev DIST_TUPLE is used for handling
+.Ev DISTFILES
+obtained from supported upstream code forges.
+It is invoked by defining it in a port's
+.Pa Makefile ,
+and consists of exactly 5 entries:
+.Ar name account project tagname/commithash targetdir .
+The
+.Ar name
+determines the template for generating the information to fetch and extract the
+.Ev DISTFILES
+correctly.
+It should be one of
+.Sq codeberg ,
+.Sq fdo ,
+.Sq github ,
+.Sq gitlab ,
+.Sq gnome ,
+.Sq kde ,
+or
+.Sq srht
+at the moment
+.Po see
+.Pa ${PORTSDIR}/infrastructure/db/dist-tuple.pattern
+.Pc .
+The other components are used to build
+.Ev SITES.name ,
+.Ev DISTFILES.name ,
+.Ev HOMEPAGE
+and the path of the extracted directory.
+The typical case is to use
+.Sq \&.
+for
+.Ar targetdir .
+This extracts
+.Ev DISTFILES.name
+in
+.Ev WRKDIR
+and by default sets the port's
+.Ev DISTNAME
+and
+.Ev WRKDIST .
+Setting
+.Ar targetdir
+to a
+.Em relative
+path will extract the files to said path under
+.Ev WRKDIST
+.Pq which must be otherwise defined .
+Multiple entries of
+.Ev DIST_TUPLE
+can be combined to arrange the files from different repositories in a tree.
+.Pp
+The flexibility to handle different forges comes from the variables set in
+.Pa ${PORTSDIR}/infrastructure/db/dist-tuple.pattern ,
+outlined as follows with
+.Sq *
+replaced by the forge's
+.Ar name:
+.Bl -tag -width Ds
+.It ID_MOD.*.hash
+Modfier for the
+.Sq <mod_id>
+portion of
+.Ev TEMPLATE_EXTRACT_DIR.*.hash ,
+see
+.Xr make 1
+for available modifiers.
+.It ID_MOD.*.tag
+Same for
+.Sq <mod_id>
+in
+.Ev TEMPLATE_EXTRACT_DIR.*.tag .
+.It SITES.*
+The primary location where
+.Ev DISTFILES.*
+are found for the specific forge.
+See
+.Ev SITES* .
+.It Ev TEMPLATE_DISTFILES.*
+Template used to construct
+.Ev DISTFILES.*
+based on a
+.Ev DIST_TUPLE
+entry by filling in placeholder strings.
+For instance,
+.Ev TEMPLATE_DISTFILES.github
+defaults to:
+.Bd -literal -offset indent
+<account>-<project>-{<account>/<project>/archive/<subdir>}<id>.tar.gz
+.Ed
+.Pp
+With
+.Li DIST_TUPLE += github foo bar baz qux ,
+we end up with the following
+.Ev DISTFILES.github
+entry:
+.Bd -literal -offset indent
+foo-bar-{foo/bar/archive/ref/tags}baz.tar.gz
+.Ed
+.Pp
+Placeholders
+.Sq account ,
+.Sq project ,
+.Sq id
+are self-explanatory.
+.Sq subdir
+is set automatically by figuring out whether
+.Ar id
+is a
+.Ar tagname
+or a
+.Ar commithash .
+.It TEMPLATE_EXTRACT_DIR.*.hash
+This pattern must match the directory that is extracted from
+.Ev DISTFILES.* .
+Uses the same substitutions as in
+.Ev TEMPLATE.DISTFILES.* .
+In addition,
+.Ql <mod_id>
+may be used.
+This is substituted like
+.Ql <id> ,
+but also modified by
+.Ev ID_MOD.*.hash .
+If
+.Ev TEMPLATE_DISTFILES.*.hash
+is not defined, it falls back to a heuristically modified version of
+.Ql <project>-<id> .
+If this is not done or relies on information that is not part of
+.Ev DIST_TUPLE ,
+then
+.Ev WRKDIST
+and potentially
+.Po
+if using a directory in
+.Ar targetdir
+.Pc
+also
+.Ev MODDIST-TUPLE_post-extract
+may need to be defined in the port.
+.It TEMPLATE_EXTRACT_DIR.*.tag
+Same as
+.Ev TEMPLATE_EXTRACT_DIR.*.hash ,
+except it applies when a
+.Ar tagname
+is used and modifies
+.Ql <mod_id>
+with
+.Ev ID_MOD.*.tag .
+.It TEMPLATE_EXTRACT_SUFX.*
+Sets
+.Ev EXTRACT_SUFX.* ;
+defaults to
+.Sq .tar.gz .
+.It TEMPLATE_HOMEPAGE.*
+Generates
+.Ev HOMEPAGE
+with the same substitutions as
+.Ev TEMPLATE_DISTFILES.* .
+Defaults to
+.Sq <site><account>/<project> .
+.El
 .Sh THE DEBUG_PACKAGES INFRASTRUCTURE
 If
 .Ev DEBUG_PACKAGES
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/nim/Makefile,v
diff -u -p -r1.28 Makefile
--- Makefile	17 Sep 2026 17:31:35 -0000	1.28
+++ Makefile	3 Oct 2026 21:45:26 -0000
@@ -45,6 +45,8 @@ TEST_DEPENDS =		archivers/7zip,-main \
 			devel/pcre \
 			lang/node \
 			multimedia/sfml
+
+WRKDIST =		${WRKDIR}/${DISTNAME}
 
 SUBST_VARS +=		CFLAGS
 
Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/bazel/Makefile,v
diff -u -p -r1.12 Makefile
--- Makefile	22 Sep 2026 08:38:51 -0000	1.12
+++ Makefile	15 Oct 2026 07:32:59 -0000
@@ -38,6 +38,8 @@ INSTALL_STRIP =
 
 MAKE_ENV =		VERBOSE=yes
 
+WRKDIST =		${WRKDIR}/${DISTNAME}
+
 # The bundled version of abseil is from 2021 and isn't compatible with clang-16.
 # It also needs some patches we copy from devel/abseil.
 post-patch:
Index: Makefile
===================================================================
RCS file: /cvs/ports/sysutils/py-tsk/Makefile,v
diff -u -p -r1.26 Makefile
--- Makefile	28 Aug 2026 19:44:28 -0000	1.26
+++ Makefile	10 Oct 2026 10:05:04 -0000
@@ -29,6 +29,8 @@ WANTLIB += ${COMPILER_LIBCXX} m
 # C++11
 COMPILER=	base-clang ports-gcc
 
+WRKDIST =	${WRKDIR}/${DISTNAME}
+
 post-extract:
 	mv ${WRKDIR}/pytsk-${MODPY_DISTV}/tests/* ${WRKSRC}/tests/
 
Index: Makefile
===================================================================
RCS file: /cvs/ports/net/validns/Makefile,v
diff -u -p -r1.9 Makefile
--- Makefile	25 Jul 2026 16:58:20 -0000	1.9
+++ Makefile	10 Oct 2026 09:51:22 -0000
@@ -25,6 +25,4 @@ AUTORECONF =		./autogen.sh
 
 CONFIGURE_ENV =	CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib"
 
-WRKSRC = 	${WRKDIR}/validns
-
 .include <bsd.port.mk>

Reply via email to