Subject: Re: pkg/28946: new package: lang/agfl
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Rhialto <rhialto@azenomei.knuffel.net>
List: pkgsrc-bugs
Date: 02/14/2005 11:07:01
The following reply was made to PR pkg/28946; it has been noted by GNATS.
From: Rhialto <rhialto@azenomei.knuffel.net>
To: Alistair Crooks <agc@pkgsrc.org>
Cc: Rhialto <rhialto@azenomei.knuffel.net>, pkg-manager@NetBSD.org,
gnats-admin@NetBSD.org, pkgsrc-bugs@NetBSD.org, gnats-bugs@NetBSD.org
Subject: Re: pkg/28946: new package: lang/agfl
Date: Mon, 14 Feb 2005 12:06:08 +0100
After the feedback, I have updated the pkg and here I present the
result.
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# lang/agfl
# lang/agfl/DESCR
# lang/agfl/Makefile
# lang/agfl/PLIST
# lang/agfl/buildlink3.mk
# lang/agfl/distinfo
# lang/agfl/patches
# lang/agfl/patches/patch-aa
# lang/agfl/patches/patch-ab
# lang/agfl/patches/patch-ac
# lang/agfl/patches/patch-ad
# lang/agfl/patches/patch-ae
# lang/agfl/patches/patch-af
# lang/agfl/patches/patch-ag
# lang/agfl/patches/patch-ah
# lang/agfl/patches/patch-ai
# lang/agfl/patches/patch-aj
# lang/cdl3/buildlink3.mk
#
echo c - lang/agfl
mkdir -p lang/agfl > /dev/null 2>&1
echo x - lang/agfl/DESCR
sed 's/^X//' >lang/agfl/DESCR << 'END-of-lang/agfl/DESCR'
XThe AGFL formalism for the syntactic description of Natural Languages
Xhas been developed by the Computer Science Department of the Radboud
XUniversity of Nijmegen. It is a formalism in which large context free
Xgrammars can be described in a compact way. AGFLs belong to the family
Xof two level grammars, along with attribute grammars: a first,
Xcontext-free level is augmented with set-valued features for expressing
Xagreement between parts of speech.
X
XThe AGFL parser generation system for Natural Languages generates
Xefficient parsers from AGFL grammars. It includes a lexicon system
Xsuitable for the large lexica needed in real-life NLP applications.
END-of-lang/agfl/DESCR
echo x - lang/agfl/Makefile
sed 's/^X//' >lang/agfl/Makefile << 'END-of-lang/agfl/Makefile'
X# $NetBSD$
X
XDISTNAME= agfl-${AGFL_VERSION}
XCATEGORIES= lang
XMASTER_SITES= ftp://ftp.cs.ru.nl/pub/agfl/${AGFL_VERSION}/unix/sources/
XDISTFILES+= ${DISTNAME}${EXTRACT_SUFX} ${DOC_FILE}
X
XMAINTAINER= olafs@cs.ru.nl
XHOMEPAGE= http://www.cs.ru.nl/agfl/
XCOMMENT= Formalism for the syntactic description of Natural Languages
X
XDOC_FILE= manual.ps.gz
XSITES_${DOC_FILE}= http://www.cs.ru.nl/agfl/papers/
X
XDIST_SUBDIR= agfl-${AGFL_VERSION}
X
XPKG_INSTALLATION_TYPES= pkgviews overwrite
X
XAGFL_VERSION= 2.3
X
XCONFIGURE_ARGS += --with-cdl3=${BUILDLINK_PREFIX.cdl3}
X
X# We use ${PREFIX}/lib but also ${VIEWBASE}/lib for the rpath to have
X# a better chance that compiled grammars keep working if you upgrade
X# to a newer version of AGFL. It's not perfect though.
XSUBST_CLASSES += rpath
XSUBST_STAGE.rpath = pre-configure
XSUBST_MESSAGE.rpath = Editing rpath ${PREFIX}/lib and ${VIEWBASE}/lib into gen
XSUBST_FILES.rpath = gen/src/gen.c
XSUBST_SED.rpath = "s!define RPATH.*\"\"!define RPATH \"-Wl,-R,${PREFIX}/lib -Wl,-R,${VIEWBASE}/lib \"!"
X
Xpost-extract:
X ${RM} ${WRKSRC}/gen/rts/[np]mrts/*.[ch]
X
Xpost-install:
X ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/agfl
X ${INSTALL_DATA} ${WRKDIR}/manual.ps ${PREFIX}/share/doc/agfl/manual.ps
X
XUSE_BUILDLINK3= yes
XUSE_GNU_TOOLS+= make
XUSE_LIBTOOL= yes
XGNU_CONFIGURE= yes
X
X.include "../../devel/glib/buildlink3.mk"
X.include "../../lang/cdl3/buildlink3.mk"
X.include "../../mk/bsd.pkg.mk"
END-of-lang/agfl/Makefile
echo x - lang/agfl/PLIST
sed 's/^X//' >lang/agfl/PLIST << 'END-of-lang/agfl/PLIST'
X@comment $NetBSD$
Xbin/datconvert
Xbin/gen
Xbin/gra2o
Xbin/lexgen
Xbin/mygen
Xinclude/lexicon.h
Xinclude/lexiconutil.h
Xinclude/str_util.h
Xlib/liblexicon.la
Xlib/libnmrts.la
Xlib/libpmrts.la
Xman/man1/agfl.1
Xman/man1/gen.1
Xman/man1/gra2o.1
Xman/man1/lexgen.1
Xshare/doc/agfl/manual.ps
END-of-lang/agfl/PLIST
echo x - lang/agfl/buildlink3.mk
sed 's/^X//' >lang/agfl/buildlink3.mk << 'END-of-lang/agfl/buildlink3.mk'
X# $NetBSD$
X#
X# This buildlink file is needed because the AGFL compiler calls gcc
X# and gcc is subject to the buildlink tricks.
X# XXX How to add gen to the list of wrapped tools?
X
XBUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
XAGFL_BUILDLINK3_MK:= ${AGFL_BUILDLINK3_MK}+
X
X.include "../../mk/bsd.prefs.mk"
X
X.if !empty(BUILDLINK_DEPTH:M+)
XBUILDLINK_DEPENDS+= agfl
X.endif
X
XBUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Nagfl}
XBUILDLINK_PACKAGES+= agfl
X
X.if !empty(AGFL_BUILDLINK3_MK:M+)
XBUILDLINK_DEPENDS.agfl+= agfl>=2.3
XBUILDLINK_PKGSRCDIR.agfl?= ../../lang/agfl
X
X# Packages that link against shared libraries need a full dependency,
X# and agfl-programs need the runtime library.
XBUILDLINK_DEPMETHOD.agfl+= full
X.endif # AGFL_BUILDLINK3_MK
X
XBUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//}
END-of-lang/agfl/buildlink3.mk
echo x - lang/agfl/distinfo
sed 's/^X//' >lang/agfl/distinfo << 'END-of-lang/agfl/distinfo'
X$NetBSD$
X
XSHA1 (agfl-2.3/agfl-2.3.tar.gz) = 2d1fc5ea1259e71bdcbeb61da7b134538466a4a0
XSize (agfl-2.3/agfl-2.3.tar.gz) = 1022438 bytes
XSHA1 (agfl-2.3/manual.ps.gz) = 49cb5debb68c5fc9f4bc605570ef5d9ba691ab44
XSize (agfl-2.3/manual.ps.gz) = 275360 bytes
XSHA1 (patch-aa) = 4a266fadf7265f81defc2f3729ab9b4541328b0b
XSHA1 (patch-ab) = c4a7697190525b3dfeb5f9d58488cf675e01b512
XSHA1 (patch-ac) = cb8cae29953280efc30d7fcc3dfb542fccb5bcf9
XSHA1 (patch-ad) = b554f34c9703d0cd2c54592eb40c4438d3ef44e9
XSHA1 (patch-ae) = 30fd905772361e6075943c07bb6abf195d5dd5af
XSHA1 (patch-af) = de1579b5b0e3e404740210d8000edad617956317
XSHA1 (patch-ag) = 73ad08ce34aecdec106a574893107b07a022ea62
XSHA1 (patch-ah) = 2ef3c7594dff4b48dfceb0938a62464a6ee25980
XSHA1 (patch-ai) = 730257b437f063868f15f73378ebcfa258a56556
XSHA1 (patch-aj) = 42e46e0786dc27a73c11cb2e721426c2d358c712
END-of-lang/agfl/distinfo
echo c - lang/agfl/patches
mkdir -p lang/agfl/patches > /dev/null 2>&1
echo x - lang/agfl/patches/patch-aa
sed 's/^X//' >lang/agfl/patches/patch-aa << 'END-of-lang/agfl/patches/patch-aa'
X$NetBSD$
X
XAdd system detection.
X
X--- configure.dist 2003-10-28 17:48:54.000000000 +0100
X+++ configure 2005-01-05 18:09:46.000000000 +0100
X@@ -4245,6 +4245,14 @@
X
X echo 'Checking which machdep to use...'
X MACHDEPHOSTVAL=""
X+if test "`uname -m`" = "alpha"; then
X+ if test `uname -s` = "NetBSD" ; then
X+ MACHDEPHOSTVAL=machdep.alpha-netbsd
X+ fi
X+ if test "X$MACHDEPHOSTVAL" = "X" ; then
X+ echo '-- Unsupported OS on Alpha architecture'
X+ fi
X+fi
X if test "`uname -m`" = "sun4u" -o "`uname -m`" = "sun4m" -o "`uname -m`" = "sparc"; then
X if test `uname -s` = "SunOS" ; then
X MACHDEPHOSTVAL=machdep.sparc-solaris
X@@ -4266,6 +4274,9 @@
X if test "`uname -s`" = 'dos' ; then
X MACHDEPHOSTVAL=machdep.dos
X fi
X+ if test "`uname -s`" = 'NetBSD'; then
X+ MACHDEPHOSTVAL=machdep.i386-netbsd
X+ fi
X if test "`uname -s`" = 'FreeBSD'; then
X MACHDEPHOSTVAL=machdep.i386-freebsd
X fi
END-of-lang/agfl/patches/patch-aa
echo x - lang/agfl/patches/patch-ab
sed 's/^X//' >lang/agfl/patches/patch-ab << 'END-of-lang/agfl/patches/patch-ab'
X$NetBSD$
X
XA "negative" unsigned value is not a good idea.
X
X--- gen/rts/posmemo.c.dist 2003-07-22 15:32:07.000000000 +0200
X+++ gen/rts/posmemo.c 2005-01-05 23:16:03.000000000 +0100
X@@ -447,7 +447,7 @@
X };
X /* copy sons by copying PMPROD entries from frame */
X for(i = 0;i < nr_sons;i++) {
X- VALUE son = variables[-(nr_formals+nr_locals+i)];
X+ VALUE son = variables[-(long)(nr_formals+nr_locals+i)];
X if (pointsIntoStack((VALUE *)(son.text_par)))
X /* copy the PMPROD entry */
X new_memo->variables[nr_formals+nr_locals+i] =
END-of-lang/agfl/patches/patch-ab
echo x - lang/agfl/patches/patch-ac
sed 's/^X//' >lang/agfl/patches/patch-ac << 'END-of-lang/agfl/patches/patch-ac'
X$NetBSD$
X
XA "negative" unsigned value is not a good idea.
X
X--- gen/rts/rtsagfl.c.orig 2003-08-15 22:04:43.000000000 +0200
X+++ gen/rts/rtsagfl.c 2005-01-06 11:02:11.000000000 +0100
X@@ -278,7 +278,7 @@
X #endif /* DEBUG_NEGMEMO */
X
X /*#define DEBUG_POSMEMO*/
X-#ifdef DEBUG_POSMEMO
X+#if defined(PMRTS) && defined(DEBUG_POSMEMO)
X if (pos_memo_option) {
X posmemo_dump_table(trellis);
X }
X@@ -367,11 +367,11 @@
X
X #define NR_FORMALS (fp[NR_FORMALS_OFF].arg)
X #define NR_LOCALS (fp[NR_LOCALS_OFF].arg)
X-#define VARIABLE(nr) (fp[- (VAR_OFFSET + nr)])
X+#define VARIABLE(nr) (fp[-(long)(VAR_OFFSET + (nr))])
X
X #define NR_SONS (fp[NR_SONS_OFF].arg)
X #define NONT_NR (fp[NONT_NR_OFF].arg)
X-#define SON_FP(nr) (fp[-(VAR_OFFSET + NR_FORMALS + NR_LOCALS + nr)].data)
X+#define SON_FP(nr) (fp[-(long)(VAR_OFFSET + NR_FORMALS + NR_LOCALS + (nr))].data)
X
X #define START_INPUT_STATE (fp[ISTATE].input_state)
X
X@@ -2186,7 +2186,7 @@
X trellis);
X #ifdef TRACE_MATCH
X fprintf(stderr, "new state = %p pos=%u\n",
X- i_state, STATE_POS(i_state));
X+ i_state, i_state ? STATE_POS(i_state) : -1);
X
X #endif /* TRACE_MATCH */
X
END-of-lang/agfl/patches/patch-ac
echo x - lang/agfl/patches/patch-ad
sed 's/^X//' >lang/agfl/patches/patch-ad << 'END-of-lang/agfl/patches/patch-ad'
X$NetBSD$
X
XAn apparent typo.
X
X--- gen/rts/rtslex.h.dist 2003-07-20 15:28:52.000000000 +0200
X+++ gen/rts/rtslex.h 2005-01-05 20:52:10.000000000 +0100
X@@ -328,7 +328,7 @@
X typedef Position StateIndicator;
X # define STATE_POS(ind) (ind)
X # define STATE_MEMOS(trel,ind) (trel->states_row[ind]->neg_memos)
X-# define SET_FIRST_POS(trel,pos) trellis->first_pos = pos
X+# define SET_FIRST_POS(trel,pos) trel->first_pos = pos
X # define GET_FIRST_STATE_INDICATOR(trel) (trel->first_pos)
X # define GET_FIRST_STATE_PTR(trel) (trel->states_row[trel->first_pos])
X #else
END-of-lang/agfl/patches/patch-ad
echo x - lang/agfl/patches/patch-ae
sed 's/^X//' >lang/agfl/patches/patch-ae << 'END-of-lang/agfl/patches/patch-ae'
X$NetBSD$
X
XAvoid double definitions.
X
X--- gen/src/pattern.c.dist 2001-10-17 11:30:15.000000000 +0200
X+++ gen/src/pattern.c 2005-01-05 18:02:07.000000000 +0100
X@@ -82,7 +82,6 @@
X #endif /* RTS */
X
X #include "regex.h"
X-#include "regex.c"
X
X
X RegExp*
END-of-lang/agfl/patches/patch-ae
echo x - lang/agfl/patches/patch-af
sed 's/^X//' >lang/agfl/patches/patch-af << 'END-of-lang/agfl/patches/patch-af'
X$NetBSD$
X
XPatch in RPATH; it will be edited again from make post-patch.
Xmygen.c depends on and is made from gen.c
X
X--- gen/src/gen.c.dist 2003-10-30 15:26:52.000000000 +0100
X+++ gen/src/gen.c 2005-01-05 21:01:30.000000000 +0100
X@@ -505,15 +505,18 @@
X #define GENBIN DIR_SEP "bin"
X #define GENLIB DIR_SEP "lib"
X #define GENINCLUDE DIR_SEP "include"
X+#ifndef RPATH
X+#define RPATH ""
X+#endif
X
X #define LEXGEN GENBIN DIR_SEP "lexgen" EXE
X #define AGFL GENBIN DIR_SEP "gra2o" EXE
X #define LIBNMRTS GENLIB DIR_SEP "libnmrts.a"
X-#define LINKNMRTS "-lnmrts"
X+#define LINKNMRTS RPATH "-lnmrts"
X #define LIBPMRTS GENLIB DIR_SEP "libpmrts.a"
X-#define LINKPMRTS "-lpmrts"
X+#define LINKPMRTS RPATH "-lpmrts"
X #define LIBRTSLOG GENLIB DIR_SEP "librtslog.a"
X-#define LINKGENRTS "-lgenrts"
X+#define LINKGENRTS RPATH "-lgenrts"
X #define LIBGENRTS GENLIB DIR_SEP "libgenrts.a"
X #define LINKDEBUGRTS "-ldebugrts -lpthread -lgtk -lgdk -lgthread"
X #define LIBDEBUGRTS GENLIB DIR_SEP "libdebugrts.a"
END-of-lang/agfl/patches/patch-af
echo x - lang/agfl/patches/patch-ag
sed 's/^X//' >lang/agfl/patches/patch-ag << 'END-of-lang/agfl/patches/patch-ag'
X$NetBSD$
X
XMachdep file for NetBSD/alpha
X
X--- /dev/null 2005-01-05 18:16:07.000000000 +0100
X+++ gen/src/machdep.alpha-netbsd 2005-01-05 18:14:54.000000000 +0100
X@@ -0,0 +1,30 @@
X+/* machdep.alpha-netbsd -- NetBSD/alpha specific part of machdep.h
X+ *
X+ * Copyright 2005, Rhialto.
X+ *
X+ * This program is free software; you can redistribute it and/or modify
X+ * it under the terms of the GNU General Public License as published by
X+ * the Free Software Foundation; either version 2 of the License, or
X+ * (at your option) any later version.
X+ *
X+ * This program is distributed in the hope that it will be useful,
X+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
X+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X+ * GNU Library General Public License for more details.
X+ *
X+ * You should have received a copy of the GNU Library General Public License
X+ * along with this program; if not, write to the Free Software
X+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
X+ */
X+
X+/* From Id: machdep.i386-freebsd,v 1.1 2001/10/17 12:47:00 ejv Exp */
X+
X+#define LONG_MAX 0x7fffffffffffffff
X+#define GLOBAL(name) .globl name
X+#define LONG(nr) .quad nr
X+#define BYTE(nr) .byte nr
X+#define TEXT(string) .asciz string
X+#define ALIGN .align 8
X+#define STARTCODE .data
X+#define ENDCODE .quad 0
X+#define INSTR .quad
END-of-lang/agfl/patches/patch-ag
echo x - lang/agfl/patches/patch-ah
sed 's/^X//' >lang/agfl/patches/patch-ah << 'END-of-lang/agfl/patches/patch-ah'
X$NetBSD$
X
XMachdep file for NetBSD/i386
X
X--- /dev/null 2005-01-05 18:16:13.000000000 +0100
X+++ gen/src/machdep.i386-netbsd 2005-01-05 18:13:34.000000000 +0100
X@@ -0,0 +1,30 @@
X+/* machdep.i386-netbsd -- NetBSD/i386 specific part of machdep.h
X+ *
X+ * Copyright 2001, KUN.
X+ *
X+ * This program is free software; you can redistribute it and/or modify
X+ * it under the terms of the GNU General Public License as published by
X+ * the Free Software Foundation; either version 2 of the License, or
X+ * (at your option) any later version.
X+ *
X+ * This program is distributed in the hope that it will be useful,
X+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
X+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X+ * GNU Library General Public License for more details.
X+ *
X+ * You should have received a copy of the GNU Library General Public License
X+ * along with this program; if not, write to the Free Software
X+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
X+ */
X+
X+/* From Id: machdep.i386-freebsd,v 1.1 2001/10/17 12:47:00 ejv Exp */
X+
X+#define LONG_MAX 2147483647
X+#define GLOBAL(name) .globl name
X+#define LONG(nr) .long nr
X+#define BYTE(nr) .byte nr
X+#define TEXT(string) .asciz string
X+#define ALIGN .align 8
X+#define STARTCODE .data
X+#define ENDCODE .long 0
X+#define INSTR .long
END-of-lang/agfl/patches/patch-ah
echo x - lang/agfl/patches/patch-ai
sed 's/^X//' >lang/agfl/patches/patch-ai << 'END-of-lang/agfl/patches/patch-ai'
X$NetBSD$
X
XAvoid a warning, potential error.
X
X--- lexgen/src/insout.h.dist 2003-11-08 12:24:43.000000000 +0100
X+++ lexgen/src/insout.h 2005-01-05 18:37:42.000000000 +0100
X@@ -139,7 +139,7 @@
X template<class T, class Iterator> inline const InsOutNode<T>*
X InsOutTable<T, Iterator>::enter(const T& elem, const InsOutNode<T>* next)
X {
X- pair<InsOutTable::iterator, bool> p = insert(InsOutNode<T>(elem, next));
X+ pair<typename InsOutTable::iterator, bool> p = insert(InsOutNode<T>(elem, next));
X
X nr_requested++;
X
X@@ -152,7 +152,7 @@
X const InsOutNode<T>* next = 0;
X
X while (first < last) {
X- pair<InsOutTable::iterator, bool> p = insert(InsOutNode<T>(*--last, next));
X+ pair<typename InsOutTable::iterator, bool> p = insert(InsOutNode<T>(*--last, next));
X
X nr_requested++;
END-of-lang/agfl/patches/patch-ai
echo x - lang/agfl/patches/patch-aj
sed 's/^X//' >lang/agfl/patches/patch-aj << 'END-of-lang/agfl/patches/patch-aj'
X$NetBSD$
X
XMake one of the examples actually work.
X
X--- gen/test/verb.gra.dist 2000-08-25 12:54:11.000000000 +0200
X+++ gen/test/verb.gra 2005-01-05 20:26:08.000000000 +0100
X@@ -1,3 +1,5 @@
X+GRAMMAR verb.
X+
X ROOT sentence.
X
X PERSON :: first | second | third.
END-of-lang/agfl/patches/patch-aj
echo x - lang/cdl3/buildlink3.mk
sed 's/^X//' >lang/cdl3/buildlink3.mk << 'END-of-lang/cdl3/buildlink3.mk'
X# $NetBSD$
X#
X# This buildlink file is needed because the CDL3 compiler calls gcc
X# and gcc is subject to the buildlink tricks.
X# In case of a call cdlc -L /usr/pkg/include/ general.k3,
X# predef.k3 is read from /usr/pkg/include/ .
X# XXX How to add cdlc to the list of wrapped tools?
X
XBUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
XCDL3_BUILDLINK3_MK:= ${CDL3_BUILDLINK3_MK}+
X
X.include "../../mk/bsd.prefs.mk"
X
X.if !empty(BUILDLINK_DEPTH:M+)
XBUILDLINK_DEPENDS+= cdl3
X.endif
X
XBUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Ncdl3}
XBUILDLINK_PACKAGES+= cdl3
X
X.if !empty(CDL3_BUILDLINK3_MK:M+)
XBUILDLINK_DEPENDS.cdl3+= cdl3>=1.2.5
XBUILDLINK_PKGSRCDIR.cdl3?= ../../lang/cdl3
X
X# Packages that link against shared libraries need a full dependency,
X# and cdl3-programs need the runtime library.
XBUILDLINK_DEPMETHOD.cdl3+= full
X.endif # CDL3_BUILDLINK3_MK
X
XBUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//}
END-of-lang/cdl3/buildlink3.mk
exit
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- rhialto/at/falu.nl
\X/ Hi! I'm a signature virus! Copy me to your .signature to help me spread!