diff -Nur refdb.orig/Makefile refdb/Makefile --- refdb.orig/Makefile 2014-09-09 16:08:08.000000000 +0200 +++ refdb/Makefile 2014-09-09 16:24:01.000000000 +0200 @@ -3,7 +3,7 @@ PORTNAME= refdb PORTVERSION= 0.9.9 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= textproc MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-src/${PORTNAME}-src-${PORTVERSION}-1 DISTNAME= ${PORTNAME}-${PORTVERSION}-1 @@ -15,16 +15,18 @@ libbtparse.so:${PORTSDIR}/textproc/btparse \ libdbi.so:${PORTSDIR}/databases/libdbi -USES= gmake iconv perl5 +USES= gmake iconv readline perl5 libtool pkgconfig pathfix shebangfix HAS_CONFIGURE= yes ALL_TARGET= -CFLAGS+= -I${LOCALBASE}/include - -CONFIGURE_ARGS+= --with-expat-lib=${LOCALBASE}/lib -CONFIGURE_ARGS+= --with-classpath-root=${PREFIX}/share/java/classes -CONFIGURE_ARGS+= --with-refdb-url=http://localhost/refdb -DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}-${PORTVERSION}-1 +CFLAGS+= -I${LOCALBASE}/include -m64 +CFLAGS+=-fPIC +CXXFLAGS+=-fPIC + +CONFIGURE_ARGS+= --with-expat-lib=${LOCALBASE}/lib \ + --with-classpath-root=${PREFIX}/share/java/classes \ + --with-refdb-url=http://localhost/refdb +DOCSDIR= ${STAGEDIR}${PREFIX}/share/doc/${PORTNAME}-${PORTVERSION}-1 XMLCATMGR= ${LOCALBASE}/bin/xmlcatmgr @@ -34,23 +36,17 @@ OPTIONS_SINGLE_DB= MYSQL PGSQL SQLITE CATALOG_DESC= Install SGML catalog -OPTIONS_DEFAULT= MYSQL +OPTIONS_DEFAULT= PGSQL + +SHEBANG_FILES= ${WRKSRC}/scripts/* -MAN1= bib2ris.1 bib2ris-utf8.1 db2ris.1 eenc.1 en2ris.1 marc2ris.1 med2ris.1 \ - refdb-backup.1 refdb-bug.1 refdb-ms.1 refdb-restore.1 \ - refdb_dos2unix.1 refdb_latex2utf8txt.1 refdba.1 \ - refdbc.1 refdbctl.1 refdbd.1 refdbib.1 refdbjade.1 \ - refdbnd.1 refdbxml.1 refdbxp.1 runbib.1 \ - refdb-sruserver.1 refdbsru.1 -#MAN7= RefDB.7 -MAN8= refdb.8 refdb.sh.8 refdb-init.8 +USE_RC_SUBR= refdbd -NO_STAGE= yes .include .include .if ${PORT_OPTIONS:MMYSQL} -USE_MYSQL= yes +USES+= mysql # If libdbi-drivers has been built without MySQL driver, abort .if exists(${LOCALBASE}/lib/dbd) && !exists(${LOCALBASE}/lib/dbd/libdbdmysql.so) IGNORE= rebuild databases/libdbi-drivers with MySQL support @@ -60,7 +56,7 @@ CONFIGURE_ARGS+= --with-db-server=mysql .elif ${PORT_OPTIONS:MPGSQL} -USE_PGSQL= yes +USES+= pgsql # If libdbi-drivers has been built without PostgreSQL driver, abort .if exists(${LOCALBASE}/lib/dbd) && !exists(${LOCALBASE}/lib/dbd/libdbdpgsql.so) IGNORE= rebuild databases/libdbi-drivers with PostgreSQL support @@ -72,7 +68,7 @@ .elif ${PORT_OPTIONS:MSQLITE} LIB_DEPENDS+= libsqlite3.so:${PORTSDIR}/databases/sqlite3 # If libdbi-drivers has been built without SQLite driver, abort -.if exists(${LOCALBASE}/lib/dbd) && !exists(${LOCALBASE}/lib/dbd/libdbdsqlite.so) +.if exists(${LOCALBASE}/lib/dbd) && !exists(${LOCALBASE}/lib/dbd/libdbdsqlite3.so) IGNORE= rebuild databases/libdbi-drivers with SQLite support .elif !exists(${LOCALBASE}/lib/dbd) BUILD_DEPENDS+= ${LOCALBASE}/lib/dbd:${PORTSDIR}/databases/libdbi-drivers @@ -86,8 +82,8 @@ post-install: .if ${PORT_OPTIONS:MCATALOG} - @[ -f ${PREFIX}/share/sgml/catalog.ports ] || ${TOUCH} ${PREFIX}/share/sgml/catalog.ports - @${XMLCATMGR} -s -c ${PREFIX}/share/sgml/catalog.ports lookup "${PREFIX}/share/refdb/refdb.cat" > /dev/null || ${XMLCATMGR} -s -c ${PREFIX}/share/sgml/catalog.ports add CATALOG "${PREFIX}/share/refdb/refdb.cat" -- > /dev/null + @[ -f ${STAGEDIR}${PREFIX}/share/sgml/catalog.ports ] || ${TOUCH} ${STAGEDIR}${PREFIX}/share/sgml/catalog.ports + @${XMLCATMGR} -s -c ${STAGEDIR}${PREFIX}/share/sgml/catalog.ports lookup "${STAGEDIR}${PREFIX}/share/refdb/refdb.cat" > /dev/null || ${XMLCATMGR} -s -c ${STAGEDIR}${PREFIX}/share/sgml/catalog.ports add CATALOG "${STAGEDIR}${PREFIX}/share/refdb/refdb.cat" -- > /dev/null .endif @${ECHO_MSG} "To complete RefDB installation:" .if ${PORT_OPTIONS:MMYSQL} @@ -98,35 +94,26 @@ @${ECHO_MSG} "" @${ECHO_MSG} " Then, for MySQL older than 4.1, run:" @${ECHO_MSG} "" - @${ECHO_MSG} " mysql -u root refdb < ${PREFIX}/share/refdb/sql/refdb.dump.mysql" + @${ECHO_MSG} " mysql -u root refdb < ${STAGEDIR}${PREFIX}/share/refdb/sql/refdb.dump.mysql" @${ECHO_MSG} "" @${ECHO_MSG} " For MySQL 4.1 and later, run:" @${ECHO_MSG} "" - @${ECHO_MSG} " mysql -u root refdb < ${PREFIX}/share/refdb/sql/refdb.dump.mysql41" + @${ECHO_MSG} " mysql -u root refdb < ${STAGEDIR}${PREFIX}/share/refdb/sql/refdb.dump.mysql41" @${ECHO_MSG} "" .elif ${PORT_OPTIONS:MPGSQL} @${ECHO_MSG} "" @${ECHO_MSG} "1. To initialise PostgreSQL, run the following commands:" @${ECHO_MSG} "" @${ECHO_MSG} " createdb -U pgsql -E UNICODE refdb" - @${ECHO_MSG} " psql -U pgsql refdb < ${PREFIX}/share/refdb/sql/refdb.dump.pgsql" + @${ECHO_MSG} " psql -U pgsql refdb < ${STAGEDIR}${PREFIX}/share/refdb/sql/refdb.dump.pgsql" @${ECHO_MSG} "" .elif ${PORT_OPTIONS:MSQLITE} @${ECHO_MSG} "" @${ECHO_MSG} "1. To initialise SQLite, run the following commands:" @${ECHO_MSG} "" - @${ECHO_MSG} " cd ${PREFIX}/share/refdb/db" - @${ECHO_MSG} " sqlite refdb < ${PREFIX}/share/refdb/sql/refdb.dump.sqlite" + @${ECHO_MSG} " cd ${STAGEDIR}${PREFIX}/share/refdb/db" + @${ECHO_MSG} " sqlite refdb < ${STAGEDIR}${PREFIX}/share/refdb/sql/refdb.dump.sqlite" @${ECHO_MSG} "" .endif - @${INSTALL_SCRIPT} -m 755 ${WRKSRC}/scripts/refdb ${PREFIX}/etc/rc.d/refdb.sh.dist - @${ECHO_MSG} "2. To run refdbd at system startup, rename the startup script:" - @${ECHO_MSG} "" - @${ECHO_MSG} " mv ${PREFIX}/etc/rc.d/refdb.sh.dist ${PREFIX}/etc/rc.d/refdb.sh" - @${ECHO_MSG} "" - @${ECHO_MSG} "3. Customise the configuration scripts in ${PREFIX}/etc/refdb," - @${ECHO_MSG} " as described in the RefDB documentation at:" - @${ECHO_MSG} "" - @${ECHO_MSG} " http://refdb.sourceforge.net/manual/x593.html#SECT1-MYSTERY-INIT-FILES" .include diff -Nur refdb.orig/files/refdbd.in refdb/files/refdbd.in --- refdb.orig/files/refdbd.in 1970-01-01 01:00:00.000000000 +0100 +++ refdb/files/refdbd.in 2014-09-09 15:39:45.000000000 +0200 @@ -0,0 +1,84 @@ +#!/bin/sh +# +# $FreeBSD$ +# +# O. Hartmann, Berlin, 2014 +# +# +# PROVIDE: refdbd +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# To enable this service, place +# +# refdbd_enable="YES" +# +# in /etc/rc.conf[.local] +# +# and optionally set the the following variables upon your environment: +# +# Choose another PIDFILE as the configured and/or default one: +# refdbd_pidfile="/var/run/refdbd.pid" +# +# To make the refdbd daemon accessible local only (127.0.0.1): +# refdbd_local="YES" + +. /etc/rc.subr + +name="refdbd" +rcvar=refdbd_enable + +# read settings, set defaults +load_rc_config ${name} + +command="%%PREFIX%%/bin/${name}" +globalconfig="%%PREFIX%%/etc/refdb/refdbdrc" +pidfile="/var/run/${name}.pid" +extra_commands="reload" + +load_rc_config ${name} + +: ${refdbd_enable:="NO"} +: ${refdbd_local:="NO"} + +if checkyesno refdbd_local; then + refdbd_local_flags="-I" +else + refdbd_local_flags="" +fi + +start_precmd="${name}_prestart" + +refdbd_prestart() +{ + local refdbvar refdbval + + # Check whether we have configured a PID file + if [ "x${refdbd_pidfile}" != "x" ]; then + pidfile="${refdbd_pidfile}" + + # ... if not configured via rc.conf[.local], + # read the settings in the configure file. We're only interested in + # nonstandard PID file settings + else + for config in ${globalconfig}; do + while read refdbvar refdbval; do + if [ -n "${refdbvar}" ]; then + if [ ${refdbvar}="pidfile" ]; then + pidfile=${refdbval} + fi + fi + done < $config + done + fi + + piddir=`dirname ${pidfile}` + mkdir -p ${piddir} + + refdbd_pid_flags="-P ${pidfile}" +} + +# Set command arguments upon configuration +command_args="${refdbd_local_flags} ${refdbd_pid_flags}" + +run_rc_command "$1"