Index: Mk/bsd.apache.mk =================================================================== RCS file: Mk/bsd.apache.mk diff -N Mk/bsd.apache.mk --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Mk/bsd.apache.mk 18 Sep 2005 10:37:40 -0000 @@ -0,0 +1,347 @@ +#-*- mode: makefile; tab-width: 4; -*- +# ex:ts=4 +# +# $FreeBSD$ +# +# bsd.apache.mk - Apache related macros. +# Author: Clement Laforet +# +# Please view me with 4 column tabs! + +########################################################################## +# +# Variables definition +# USE_APACHE: Call this script. Values can be: +# : 1.3/13/2.0/20/2.1/1.3+/2.0+/2.1+ +# common*: common13, common20 and common21 +# apr: deal with apr stuff ;-) +# + +# Print warnings +_ERROR_MSG= : Error from bsd.apache.mk. +APACHE_SUPPORTED_VERSION= 13 20 21 +.if ${USE_APACHE:Mcommon*} != "" +AP_PORT_IS_SERVER= YES +.elif ${USE_APACHE:L} == apr +APR_DEPS= YES +.elif ${USE_APACHE:C/\.//:C/\+//:M[12][310]} != "" +AP_PORT_IS_MODULE= YES + +#### for backward compatibility +.elif ${USE_APACHE:L} == yes +APXS= ${LOCALBASE}/sbin/apxs +. if defined(WITH_APACHE2) +APACHE_PORT?= www/apache20 +. else +APACHE_PORT?= www/apache13 +. endif +APXS?= ${LOCALBASE}/sbin/apxs +BUILD_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT} +RUN_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT} +#### End of backward compatibility + +.else +IGNORE= ${_ERROR_MSG} Illegal use of USE_APACHE +.endif + +.if defined(AP_PORT_IS_SERVER) +# For slave ports: +.if defined(SLAVE_DESIGNED_FOR) && ${PORTVERSION} != ${SLAVE_DESIGNED_FOR} +IGNORE= "Sorry, ${SLAVENAME} and ${PORTNAME} versions are out of sync" +.endif + +.if defined(SLAVE_PORT_MODULES) +DEFAULT_MODULES_CATEGORIES+= SLAVE_PORT +ALL_MODULES_CATEGORIES+= SLAVE_PORT +.endif + +# Module selection +.for category in ${DEFAULT_MODULES_CATEGORIES} +DEFAULT_MODULES+= ${${category}_MODULES} +WITH_${category}_MODULES= YES +.endfor + +.for category in ${ALL_MODULES_CATEGORIES} +AVAILABLE_MODULES+= ${${category}_MODULES} +.endfor + +# Setting "@comment " as default. +.for module in ${AVAILABLE_MODULES} +${module}_PLIST_SUB= "@comment " +.endfor + +# Configure +# dirty hacks to make sure all modules are disabled before we select them +.if ${USE_APACHE} == common13 +CONFIGURE_ARGS+= --disable-module="all" +.elif ${USE_APACHE} == common20 +CONFIGURE_ARGS+= --disable-access --disable-auth \ + --disable-charset-lite --disable-include \ + --disable-log-config --disable-env --disable-setenvif \ + --disable-mime --disable-status --disable-autoindex \ + --disable-asis --disable-cgid --disable-cgi \ + --disable-negotiation --disable-dir --disable-imap \ + --disable-actions --disable-userdir --disable-alias +.elif ${USE_APACHE} == common21 +CONFIGURE_ARGS+= --disable-authn-file --disable-authn-default \ + --disable-authz-host --disable-authz-groupfile \ + --disable-authz-user --disable-authz-default \ + --disable-auth-basic --disable-charset-lite \ + --disable-include --disable-log-config --disable-env \ + --disable-setenvif --disable-mime --disable-status \ + --disable-autoindex --disable-asis --disable-cgid \ + --disable-cgi --disable-negotiation --disable-dir \ + --disable-imap --disable-actions --disable-userdir \ + --disable-alias +.endif + +.if defined(WITH_MODULES) +_APACHE_MODULES+= ${WITH_MODULES} +.else +.for category in ${ALL_MODULES_CATEGORIES} +.if defined (WITHOUT_${category}_MODULES) || defined (WITH_CUSTOM_${category}) +. if defined(WITH_${category}_MODULES}) +. undef WITH_${category}_MODULES +. endif +. if defined (WITH_CUSTOM_${category}) +_APACHE_MODULES+= ${WITH_CUSTOM_${category}} +. endif +.elif defined(WITH_${category}_MODULES) +_APACHE_MODULES+= ${${category}_MODULES} +.endif +.endfor +. if defined(WITH_EXTRA_MODULES) +_APACHE_MODULES+= ${WITH_EXTRA_MODULES} +. endif +.endif + +.if !defined(WITH_STATIC_APACHE) +. if ${USE_APACHE:Mcommon2*} != "" +# FYI +#DYNAMIC_MODULES= so +CONFIGURE_ARGS+= --enable-so +. endif +.else +. if ${USE_APACHE:Mcommon2*} != "" +CONFIGURE_ARGS+= --disable-so +. endif +WITH_ALL_STATIC_MODULES= YES +.endif + +.if defined(WITH_SUEXEC) || defined(WITH_SUEXEC_MODULES) +.if ${USE_APACHE} == common13 +SUEXEC_CONFARGS= suexec +CONFIGURE_ARGS+= --enable-suexec +.elif ${USE_APACHE:Mcommon2*} != "" +SUEXEC_CONFARGS= with-suexec +.endif + +# From now we're defaulting to apache 2.* +SUEXEC_DOCROOT?= ${PREFIX}/www/data +SUEXEC_USERDIR?= public_html +SUEXEC_SAFEPATH?= ${PREFIX}/bin:${LOCALBASE}/bin:/usr/bin:/bin +SUEXEC_LOGFILE?= /var/log/httpd-suexec.log +SUEXEC_UIDMIN?= 1000 +SUEXEC_GIDMIN?= 1000 +SUEXEC_CALLER?= ${WWWOWN} +_APACHE_MODULES+= ${SUEXEC_MODULES} +CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-caller=${SUEXEC_CALLER} \ + --${SUEXEC_CONFARGS}-uidmin=${SUEXEC_UIDMIN} \ + --${SUEXEC_CONFARGS}-gidmin=${SUEXEC_GIDMIN} \ + --${SUEXEC_CONFARGS}-userdir="${SUEXEC_USERDIR}" \ + --${SUEXEC_CONFARGS}-docroot="${SUEXEC_DOCROOT}" \ + --${SUEXEC_CONFARGS}-safepath="${SUEXEC_SAFEPATH}" \ + --${SUEXEC_CONFARGS}-logfile="${SUEXEC_LOGFILE}" \ + --${SUEXEC_CONFARGS}-bin="${PREFIX}/sbin/suexec" +. if defined(WITH_SUEXEC_UMASK) +CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-umask=${WITH_SUEXEC_UMASK} +. endif +.endif + +.if !defined(WITHOUT_MODULES) +APACHE_MODULES= ${_APACHE_MODULES} +.else +APACHE_MODULES!= \ + for module in ${_APACHE_MODULES}; do \ + ${ECHO_CMD} ${WITHOUT_MODULES} | ${GREP} -wq $${module} 2> /dev/null || \ + ${ECHO_CMD} $${module}; \ + done +.endif + +.if defined(WITH_STATIC_MODULES) +. if ${USE_APACHE} == common13 +STATIC_MODULE_CONFARG= --enable-module=$${module} +DSO_MODULE_CONFARG= --enable-module=$${module} --enable-shared=$${module} +. else +STATIC_MODULE_CONFARG= --enable-$${module} +DSO_MODULE_CONFARG= --enable-$${module}=shared +.endif +_CONFIGURE_ARGS!= \ + for module in ${APACHE_MODULES} ; do \ + ${ECHO_CMD} ${WITH_STATIC_MODULES} | \ + ${GREP} -wq $${module} 2> /dev/null ; \ + if [ "$${?}" = "0" ] ; then \ + ${ECHO_CMD} "${STATIC_MODULE_CONFARG}"; \ + else \ + ${ECHO_CMD} "${DSO_MODULE_CONFARG}"; \ + fi; done +CONFIGURE_ARGS+= ${_CONFIGURE_ARGS} +.elif defined(WITH_STATIC_APACHE) || defined(WITH_ALL_STATIC_MODULES) +WITH_STATIC_MODULES= ${APACHE_MODULES} +. if ${USE_APACHE} == common13 +. for module in ${APACHE_MODULES} +CONFIGURE_ARGS+= --enable-module=${module} +. endfor +. else +CONFIGURE_ARGS+= --enable-modules="${APACHE_MODULES}" +. endif +.else +. if ${USE_APACHE} == common13 +. for module in ${APACHE_MODULES} +CONFIGURE_ARGS+= --enable-module=${module} --enable-shared=${module} +. endfor +. else +CONFIGURE_ARGS+= --enable-mods-shared="${APACHE_MODULES}" +. endif +.endif + +.if defined(WITH_STATIC_MODULES) +_SHARED_MODULES!= \ + for module in ${APACHE_MODULES} ; do \ + ${ECHO_CMD} ${WITH_STATIC_MODULES} | ${GREP} -wq $${module} 2> /dev/null || \ + ${ECHO_CMD} $${module}; \ + done +SHARED_MODULES= ${_SHARED_MODULES} +.elif !defined(WITH_ALL_STATIC_MODULES) +SHARED_MODULES= ${APACHE_MODULES} +.endif + +. for module in ${SHARED_MODULES} +${module}_PLIST_SUB= "" +. endfor + +.for module in ${AVAILABLE_MODULES} +PLIST_SUB+= MOD_${module:U}=${${module}_PLIST_SUB} +.endfor +####End of PORT_IS_SERVER #### + +.elif defined(APR_DEPS) +IGNORE= ${_ERROR_MSG} apr support is not yet implemented + +.elif defined(AP_PORT_IS_MODULE) +AP_VERSION= ${USE_APACHE:C/\.//} + +APXS?= ${LOCALBASE}/sbin/apxs +HTTPD?= ${LOCALBASE}/sbin/httpd + +MODULENAME?= ${PORTNAME} +SHORTMODNAME?= ${MODULENAME:S/mod_//} +SRC_FILE?= ${MODULENAME}.c +OVERRIDABLE_VARS= SRC_FILE MODULENAME SHORTMODNAME WRKSRC \ + PKGNAMESUFFIX + +.if exists(${HTTPD}) +AP_CUR_VERSION!= ${HTTPD} -V | ${SED} -ne 's/^Server version: Apache\/\([0-9]\)\.\([0-9]*\).*/\1\2/p' +. if ${AP_CUR_VERSION} > 13 +APACHE_MPM!= ${APXS} -q MPM_NAME +. endif +.elif defined(APACHE_PORT) +AP_CUR_VERSION!= ${ECHO_CMD} ${APACHE_PORT} | ${SED} -ne 's,.*/apache\([0-9]*\).*,\1,p' +.endif + +.if defined(AP_CUR_VERSION) +VERSION_CHECK!= eval `${ECHO_CMD} "[ ${AP_VERSION} -eq ${AP_CUR_VERSION} ]" | ${SED} -e 's/- -eq/ -ge/ ; s/+ -eq/ -le/' ` ; ${ECHO_CMD} $${?} +. if ${VERSION_CHECK} == 1 +IGNORE= ${_ERROR_MSG} apache${AP_CUR_VERSION} is installed (or APACHE_PORT is defined) and port requires ${USE_APACHE} +. endif +APACHE_VERSION= ${AP_CUR_VERSION} +.else +AP_CUR_VERSION= none +. if defined(${APACHE_PORT}) +#Fallback to smallest version... +APACHE_VERSION= ${AP_VERSION:C/\+//} +. endif +.endif + +.if exists(${APXS}) +APXS_PREFIX!= ${APXS} -q prefix 2> /dev/null || echo NULL +. if ${APXS_PREFIX} == NULL +IGNORE= : Your apache does not support DSO modules +. endif +. if defined(AP_GENPLIST) && ${APXS_PREFIX} != ${PREFIX} +IGNORE?= PREFIX must be egal to APXS_PREFIX. +. endif +.endif + +.if ${APACHE_VERSION} == "20" +AP_BUILDEXT= la +PLIST_SUB+= APACHEMODDIR="libexec/apache2" \ + APACHEINCLUDEDIR="include/apache2" +APACHE_PORT= www/apache${APACHE_VERSION} +.elif ${APACHE_VERSION} == "21" +AP_BUILDEXT= la +PLIST_SUB+= APACHEMODDIR="libexec/apache${APACHE_VERSION}" \ + APACHEINCLUDEDIR="include/apache${APACHE_VERSION}" +APACHE_PORT= www/apache${APACHE_VERSION} +.else +AP_BUILDEXT= so +PLIST_SUB+= APACHEMODDIR="libexec/apache" \ + APACHEINCLUDEDIR="include/apache" +APACHE_PORT?= www/apache13 +.endif +.for VAR in ${OVERRIDABLE_VARS} +. if defined(AP${APACHE_VERSION}_${VAR}) +${VAR} =${AP${APACHE_VERSION}_${VAR}} +. endif +.endfor + +BUILD_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT} +RUN_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT} +PLIST_SUB+= AP_NAME="${SHORTMODNAME}" +PLIST_SUB+= AP_MODULE="${MODULENAME}.so" + +.if defined(AP_GENPLIST) +PLIST?= ${WRKDIR}/ap-plist +.endif + +.if defined(AP_INC) +AP_EXTRAS+= -I ${AP_INC} +.endif +.if defined(AP_LIB) +AP_EXTRAS+= -L ${AP_LIB} +.endif + +.endif + +.if defined(AP_PORT_IS_SERVER) +.elif defined(AP_PORT_IS_MODULE) + +.if defined(AP_FAST_BUILD) +.if !target(ap-gen-plist) +ap-gen-plist: +.if defined(AP_GENPLIST) +. if !exists(${PLIST}) + @${ECHO} "===> Generating apache plist" + @${ECHO} "@unexec %D/sbin/apxs -e -A -n %%AP_NAME%% %D/%%APACHEMODDIR%%/%%AP_MODULE%%" > ${PLIST} + @${ECHO} "%%APACHEMODDIR%%/%%AP_MODULE%%" >> ${PLIST} + @${ECHO} "@exec %D/sbin/apxs -e -A -n %%AP_NAME%% %D/%F" >> ${PLIST} + @${ECHO} "@unexec echo \"Don't forget to remove all ${MODULENAME}-related directives in your httpd.conf\"">> ${PLIST} +. endif +.else + @${DO_NADA} +.endif +.endif + +.if !target(do-build) +do-build: ap-gen-plist + @cd ${WRKSRC} && ${APXS} -c ${AP_EXTRAS} -o ${MODULENAME}.${AP_BUILDEXT} ${SRC_FILE} +.endif + +.if !target(do-install) +do-install: + @${APXS} -i -A -n ${SHORTMODNAME} ${WRKSRC}/${MODULENAME}.${AP_BUILDEXT} +.endif + +.endif + +.endif Index: Mk/bsd.database.mk =================================================================== RCS file: Mk/bsd.database.mk diff -N Mk/bsd.database.mk --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Mk/bsd.database.mk 17 Sep 2005 12:04:38 -0000 @@ -0,0 +1,230 @@ +# -*- mode: Makefile; tab-width: 4; -*- +# ex: ts=4 +# +# $FreeBSD$ +# + +.if defined(_POSTMKINCLUDED) && !defined(Database_Post_Include) + +Database_Post_Include= bsd.database.mk +Database_Include_MAINTAINER= vsevolod@FreeBSD.org + +# This file contains some routines to interact with different databases, such +# as mysql, postgresql and berkley DB. For including this file define macro +# USE_[DATABASE], for example USE_MYSQL. Defining macro like USE_[DATABASE]_VER +# or WANT_[DATABSE]_VER will include this file too. +# +## +# USE_MYSQL - Add MySQL client dependency. +# If no version is given (by the maintainer via the port or +# by the user via defined variable), try to find the +# currently installed version. Fall back to default if +# necessary (MySQL4.1 = 41). +# DEFAULT_MYSQL_VER +# - MySQL default version. Can be overriden within a port. +# Default: 41. +# WANT_MYSQL_VER +# - Maintainer can set an arbitrary version of MySQL by using it. +# BROKEN_WITH_MYSQL +# - This variable can be defined if the ports doesn't support +# one or more version of MySQL. +# MYSQL_VER - Internal variable for MySQL version. +# WITH_MYSQL_VER +# - User defined variable to set MySQL version. +## +# USE_PGSQL - Add PostgreSQL client dependency. +# If no version is given (by the maintainer via the port or +# by the user via defined variable), try to find the +# currently installed version. Fall back to default if +# necessary (PostgreSQL-7.4 = 74). +# DEFAULT_PGSQL_VER +# - PostgreSQL default version. Can be overridden within a port. +# Default: 74. +# WANT_PGSQL_VER +# - Maintainer can set an arbitrary version of PostgreSQL by +# using it. +# BROKEN_WITH_PGSQL +# - This variable can be defined if the ports doesn't support +# one or more versions of PostgreSQL. +## +# USE_BDB - Add Berkley DB library dependency. +# If no version is given (by the maintainer via the port or +# by the user via defined variable), try to find the +# currently installed version. Fall back to default if +# necessary (db41+). +## +# USE_SQLITE - Add dependency on sqlite library. Valid values are: +# 3 and 2. If version is not specified directly then +# sqlite3 is used (if USE_SQLITE= yes). + +.if defined(USE_MYSQL) +DEFAULT_MYSQL_VER?= 41 +# MySQL client version currently supported. +MYSQL323_LIBVER= 10 +MYSQL40_LIBVER= 12 +MYSQL41_LIBVER= 14 +MYSQL50_LIBVER= 14 + +# Setting/finding MySQL version we want. +.if exists(${LOCALBASE}/bin/mysql) +_MYSQL_VER!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/' +.endif + +.if defined(WANT_MYSQL_VER) +.if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${WANT_MYSQL_VER} +BROKEN= The port wants mysql${WANT_MYSQL_VER}-client and you try to install mysql${WITH_MYSQL_VER}-client. +.endif +MYSQL_VER= ${WANT_MYSQL_VER} +.elif defined(WITH_MYSQL_VER) +MYSQL_VER= ${WITH_MYSQL_VER} +.else +.if defined(_MYSQL_VER) +MYSQL_VER= ${_MYSQL_VER} +.else +MYSQL_VER= ${DEFAULT_MYSQL_VER} +.endif +.endif # WANT_MYSQL_VER + +.if defined(_MYSQL_VER) +.if ${_MYSQL_VER} != ${MYSQL_VER} +BROKEN= MySQL versions mismatch: mysql${_MYSQL_VER}-client is installed and wanted version is mysql${MYSQL_VER}-client +.endif +.endif + +# And now we are checking if we can use it +.if defined(MYSQL${MYSQL_VER}_LIBVER) +.if defined(BROKEN_WITH_MYSQL) +. for VER in ${BROKEN_WITH_MYSQL} +. if (${MYSQL_VER} == "${VER}") +IGNORE= "Doesn't work with MySQL version : ${MYSQL_VER} (Doesn't support MySQL ${BROKEN_WITH_MYSQL})" +. endif +. endfor +.endif # BROKEN_WITH_MYSQL +LIB_DEPENDS+= mysqlclient.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/databases/mysql${MYSQL_VER}-client +.else +IGNORE= "Unknown MySQL version: ${MYSQL_VER}" +.endif # Check for correct libs +.endif # USE_MYSQL + +.if defined(USE_PGSQL) +DEFAULT_PGSQL_VER?= 74 +PGSQL73_LIBVER= 3 +PGSQL74_LIBVER= 3 +PGSQL80_LIBVER= 4 + +# Setting/finding PostgreSQL version we want. +.if exists(${LOCALBASE}/bin/pg_config) +_PGSQL_VER!= ${LOCALBASE}/bin/pg_config --version | ${SED} -n 's/PostgreSQL[^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*/\1\2/p' +.endif + +.if defined(WANT_PGSQL_VER) && defined(_PGSQL_VER) && ${WANT_PGSQL_VER} != ${_PGSQL_VER} +BROKEN= the port wants postgresql${WANT_PGSQL_VER}-client but you have postgresql${_PGSQL_VER}-client installed +.endif + +.if defined(_PGSQL_VER) +PGSQL_VER= ${_PGSQL_VER} +.elif defined(WANT_PGSQL_VER) +PGSQL_VER= ${WANT_PGSQL_VER} +.else +PGSQL_VER= ${DEFAULT_PGSQL_VER} +.endif + +# And now we are checking if we can use it +.if defined(PGSQL${PGSQL_VER}_LIBVER) +.if defined(BROKEN_WITH_PGSQL) +. for VER in ${BROKEN_WITH_PGSQL} +. if (${PGSQL_VER} == "${VER}") +IGNORE= "Does not work with postgresql${PGSQL_VER}-client PostgresSQL \(${BROKEN_WITH_PGSQL} not supported\)" +. endif +. endfor +.endif # BROKEN_WITH_PGSQL +LIB_DEPENDS+= pq.${PGSQL${PGSQL_VER}_LIBVER}:${PORTSDIR}/databases/postgresql${PGSQL_VER}-client +.else +IGNORE= "Unknown PostgreSQL version: ${PGSQL_VER}" +.endif # Check for correct version +CPPFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib +CONFIGURE_ENV+= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" +.endif # USE_PGSQL + + +.if defined(USE_BDB) + +_DB_PORTS= 2 3 40 41 42 43 40+ 41+ 42+ 43+ +# Dependence lines for different db versions +db2_DEPENDS= db2.0:${PORTSDIR}/databases/db2 +db3_DEPENDS= db3.3:${PORTSDIR}/databases/db3 +db40_DEPENDS= db4.0:${PORTSDIR}/databases/db4 +db41_DEPENDS= db41.1:${PORTSDIR}/databases/db41 +db42_DEPENDS= db-4.2.2:${PORTSDIR}/databases/db42 +db43_DEPENDS= db-4.3.0:${PORTSDIR}/databases/db43 +# Detect db4 versions by finding some files +db40_FIND= ${PREFIX}/include/db4/db.h +db41_FIND= ${PREFIX}/include/db41/db.h +db42_FIND= ${PREFIX}/include/db42/db.h +db43_FIND= ${PREFIX}/include/db43/db.h + +# For specifying 40+ 41+ 42+ +_DB_40P= 40 41 42 43 +_DB_41P= 41 42 43 +_DB_42P= 42 43 + +_WANT_BDB_VER= ${USE_BDB} + +# Assume the default bdb version as 41 +.if ${USE_BDB} == "yes" +_WANT_BDB_VER= 41+ +.endif + +# Detect bdb version +_FOUND= no + +.for bdb in ${_DB_PORTS} +.if ${_WANT_BDB_VER} == "${bdb}" && ${_FOUND} == "no" +_MATCHED_DB_VER:= ${bdb:S/+//} +. if ${_MATCHED_DB_VER} == "${bdb}" +# USE_BDB is exactly specified +LIB_DEPENDS+= ${db${bdb}_DEPENDS} +_FOUND= yes +.else +# USE_BDB is specified as VER+ +. for db4 in ${_DB_${_MATCHED_DB_VER}P} +. if exists(${db${db4}_FIND}) && ${_FOUND} == "no" +LIB_DEPENDS+= ${db${db4}_DEPENDS} +_FOUND= yes +. endif +. endfor +. if ${_FOUND} == "no" +# No existing db4 version is detected in system +LIB_DEPENDS+= ${db${_MATCHED_DB_VER}_DEPENDS} +_FOUND= yes +. endif +. endif +.endif +.endfor + +# USE_BDB is specified incorrectly, so mark this as BROKEN +.if ${_FOUND} == "no" +IGNORE= "Unknown bdb version: ${USE_BDB}" +.endif + +.endif # USE_BDB + +# Handling sqlite dependency +.if defined(USE_SQLITE) + +.if ${USE_SQLITE} == "yes" +_SQLITE_VER= 3 +.else +_SQLITE_VER= ${USE_SQLITE} +.endif + +.if ${_SQLITE_VER} != "3" && ${_SQLITE_VER} != "2" +IGNORE= "Unknown sqlite version: ${_SQLITE_VER}" +.endif + +LIB_DEPENDS+= sqlite${_SQLITE_VER}:${PORTSDIR}/databases/sqlite${_SQLITE_VER} + +.endif # defined(USE_SQLITE) + +.endif # defined(_POSTMKINCLUDED) && !defined(Database_Post_Include) Index: Mk/bsd.java.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.java.mk,v retrieving revision 1.66 diff -u -r1.66 bsd.java.mk --- Mk/bsd.java.mk 15 Jul 2005 11:32:31 -0000 1.66 +++ Mk/bsd.java.mk 17 Sep 2005 12:17:56 -0000 @@ -216,12 +216,7 @@ _JAVA_OS_linux= Linux # Enforce preferred Java ports according to OS -. if ${OSVERSION} >= 400000 _JAVA_PREFERRED_PORTS+= JAVA_PORT_NATIVE_BSDJAVA_JDK_1_4 -. else -_JAVA_PREFERRED_PORTS+= JAVA_PORT_NATIVE_BSDJAVA_JDK_1_1 -. endif - # List all JDK ports __JAVA_PORTS_ALL= JAVA_PORT_NATIVE_BSDJAVA_JDK_1_5 \ Index: Mk/bsd.port.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.port.mk,v retrieving revision 1.517 diff -u -r1.517 bsd.port.mk --- Mk/bsd.port.mk 15 Sep 2005 12:24:33 -0000 1.517 +++ Mk/bsd.port.mk 18 Sep 2005 10:25:46 -0000 @@ -371,39 +371,6 @@ # LINUX_BASE_PORT - This is a read-only variable, it gets set to a value which # is usable in *_DEPENDS (e.g. BUILD_DEPENDS=${LINUX_BASE_PORT}). # It honors USE_LINUX=foo and OVERRIDE_LINUX_BASE_PORT. -## -# USE_MYSQL - Add MySQL client dependency. -# If no version is given (by the maintainer via the port or -# by the user via defined variable), try to find the -# currently installed version. Fall back to default if -# necessary (MySQL4.1 = 41). -# DEFAULT_MYSQL_VER -# - MySQL default version. Can be overriden within a port. -# Default: 41. -# WANT_MYSQL_VER -# - Maintainer can set an arbitrary version of MySQL by using it. -# BROKEN_WITH_MYSQL -# - This variable can be defined if the ports doesn't support -# one or more version of MySQL. -# MYSQL_VER - Internal variable for MySQL version. -# WITH_MYSQL_VER -# - User defined variable to set MySQL version. -## -# USE_PGSQL - Add PostgreSQL client dependency. -# If no version is given (by the maintainer via the port or -# by the user via defined variable), try to find the -# currently installed version. Fall back to default if -# necessary (PostgreSQL-7.4 = 74). -# DEFAULT_PGSQL_VER -# - PostgreSQL default version. Can be overridden within a port. -# Default: 74. -# WANT_PGSQL_VER -# - Maintainer can set an arbitrary version of PostgreSQL by -# using it. -# BROKEN_WITH_PGSQL -# - This variable can be defined if the ports doesn't support -# one or more versions of PostgreSQL. -## # USE_RC_SUBR - If set, the ports startup/shutdown script uses the common # routines found in etc/rc.subr and may need to # depend on the sysutils/rc_subr port. @@ -420,13 +387,6 @@ # Default: ${LOCALBASE}/etc/rc.subr. ## # USE_APACHE - If set, this port relies on an apache webserver. -# APACHE_PORT - CATEGORY and portname of the prefered port for apache. -# Default: www/apache13 -# If WITH_APACHE2 is defined defaults to www/apache2 -# APXS - Full path to the prefered apxs binary to configure -# apache modules. -# Default: ${LOCALBASE}/sbin/apxs -# # # Dependency checking. Use these if your port requires another port # not in the list above. (Default: empty.) @@ -775,7 +735,7 @@ # CONFIGURE_TARGET # - The name of target to call when GNU_CONFIGURE is # defined. -# Default: ${MACHINE_ARCH}-portbld-freebsd${OSREL} +# Default: ${ARCH}-portbld-freebsd${OSREL} # CONFIGURE_ARGS # - Pass these args to configure if ${HAS_CONFIGURE} is set. # Default: "--prefix=${PREFIX} ${CONFIGURE_TARGET}" if @@ -866,6 +826,36 @@ # DATADIR - Name of the directory to install the packages shared data in. # Default: ${PREFIX}/share/${PORTNAME} # +# DESKTOPDIR - Name of the directory to install ${DESKTOP_ENTRIES} in. +# Default: ${PREFIX}/share/applications +# DESKTOP_ENTRIES +# - List of desktop entry files to generate and install in +# ${DESKTOPDIR}. The format is +# "Name" "Comment" "Icon" "Exec" "Categories" StartupNotify +# Rules: +# * Only add desktop entries for applications which do not +# require a terminal (ie. X applications). +# * If the upstream distribution already installs .desktop +# files, you do not need to use this. +# * If you require a more elaborate .desktop file than this +# variable permits, write it yourself and install it +# in ${DESKTOPDIR}. +# Notes: +# * Comment and Icon may be empty strings (""). The other +# fields are mandatory. +# * Exec will also be used to name the .desktop file. +# * The files will be automatically added to ${PLIST}. +# Example: +# "X Window Information" \ +# "Get information about X windows" \ +# "wininfo.png" \ +# "wininfo" \ +# "Application;System;" \ +# true +# See http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html +# for an explanation of the fields. If you need to create more +# than one file, just chain them into a single variable. +# # Note that the install target will automatically add manpages (see # above) and also substitute special sequences of characters (delimited # by "%%") as defined in PLIST_SUB to generate ${TMPPLIST}. For @@ -909,6 +899,11 @@ # - If set, it will overwrite any existing package # registration information in ${PKG_DBDIR}/${PKGNAME}. # NO_DEPENDS - Don't verify build of dependencies. +# CHECKSUM_ALGORITHMS +# - Different checksum algorithms to check for verifying the +# integrity of the distfiles. The absence of the algorithm +# in distinfo doesn't make it fail. +# Default: md5 # NO_CHECKSUM - Don't verify the checksum. Typically used when # when you noticed the distfile you just fetched has # a different checksum and you intend to verify if @@ -927,6 +922,26 @@ # Most port authors should not need to understand anything after this point. # +# Look for ${WRKSRC}/.../*.orig files, and (re-)create +# ${FILEDIR}/patch-* files from them. + +.if !target(makepatch) +makepatch: + @cd ${.CURDIR} && ${MKDIR} ${FILESDIR} + @(cd ${WRKSRC}; \ + for i in `find . -type f -name '*.orig'`; do \ + ORG=$$i; \ + NEW=$${i%.orig}; \ + OUT=${FILESDIR}`${ECHO} $${NEW} | \ + ${SED} -e 's|/|__|g' \ + -e 's|^\.__|/patch-|'`; \ + ${ECHO} ${DIFF} -ud $${ORG} $${NEW} '>' $${OUT}; \ + ${DIFF} -ud $${ORG} $${NEW} > $${OUT} || ${TRUE}; \ + done \ + ) +.endif + + # Start of pre-makefile section. .if !defined(AFTERPORTMK) @@ -965,6 +980,7 @@ CUT?= /usr/bin/cut DC?= /usr/bin/dc DIALOG?= /usr/bin/dialog +DIFF?= /usr/bin/diff DIRNAME?= /usr/bin/dirname EGREP?= /usr/bin/egrep EXPR?= /bin/expr @@ -1187,10 +1203,8 @@ LINUXBASE?= ${DESTDIR}/compat/linux DISTDIR?= ${PORTSDIR}/distfiles _DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} -.if ${OSVERSION} >= 600000 -INDEXFILE?= INDEX-6 -.elif ${OSVERSION} >= 500036 -INDEXFILE?= INDEX-5 +.if ${OSVERSION} >= 500036 +INDEXFILE?= INDEX-${OSVERSION:C/([0-9]).*/\1/} .else INDEXFILE?= INDEX .endif @@ -1235,17 +1249,6 @@ PKGCOMPATDIR?= ${LOCALBASE}/lib/compat/pkg -.if defined(WITH_APACHE2) -APACHE_PORT?= www/apache2 -.else -APACHE_PORT?= www/apache13 -.endif -APXS?= ${LOCALBASE}/sbin/apxs -.if defined(USE_APACHE) -BUILD_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT} -RUN_DEPENDS+= ${APXS}:${PORTSDIR}/${APACHE_PORT} -.endif - .if ${OSVERSION} >= 500036 PERL_VERSION?= 5.8.7 PERL_VER?= 5.8.7 @@ -1258,11 +1261,7 @@ PERL_VERSION?= 5.6.0 PERL_VER?= 5.6.0 .else -.if ${OSVERSION} >= 300000 PERL_VERSION?= 5.00503 -.else -PERL_VERSION?= 5.00502 -.endif PERL_VER?= 5.005 .endif .endif @@ -1339,6 +1338,14 @@ .include "${PORTSDIR}/Mk/bsd.ruby.mk" .endif +.if defined(USE_TCL) || defined(USE_TK) +.include "${PORTSDIR}/Mk/bsd.tcl.mk" +.endif + +.if defined(USE_APACHE) +.include "${PORTSDIR}/Mk/bsd.apache.mk" +.endif + .if defined(USE_QT_VER) || defined(USE_KDELIBS_VER) || defined(USE_KDEBASE_VER) .include "${PORTSDIR}/Mk/bsd.kde.mk" .endif @@ -1412,6 +1419,9 @@ .endif .endif .endif +.if ${CFLAGS:M-O[23s]} != "" +CFLAGS+= -fno-strict-aliasing +.endif .if defined(NOPORTDOCS) PLIST_SUB+= PORTDOCS="@comment " @@ -1424,7 +1434,7 @@ CONFIGURE_ENV+= SHELL=${SH} CONFIG_SHELL=${SH} PORTOBJFORMAT=${PORTOBJFORMAT} SCRIPTS_ENV+= PORTOBJFORMAT=${PORTOBJFORMAT} -MAKE_ENV+= SHELL=${SH} PORTOBJFORMAT=${PORTOBJFORMAT} +MAKE_ENV+= SHELL=${SH} PORTOBJFORMAT=${PORTOBJFORMAT} NO_LINT=YES PLIST_SUB+= PORTOBJFORMAT=${PORTOBJFORMAT} .if defined(MANCOMPRESSED) @@ -1460,6 +1470,7 @@ .if defined(USE_GMAKE) BUILD_DEPENDS+= gmake:${PORTSDIR}/devel/gmake CONFIGURE_ENV+= MAKE=${GMAKE} +MAKE_ENV+= CC="${CC}" CXX="${CXX}" .endif .if defined(USE_GCC) @@ -1479,8 +1490,6 @@ .endif .if ${WANT_OPENLDAP_VER} == 22 LIB_DEPENDS+= ldap-2.2.7:${PORTSDIR}/net/openldap22${_OPENLDAP_FLAVOUR}-client -.elif ${WANT_OPENLDAP_VER} == 21 -LIB_DEPENDS+= ldap.2:${PORTSDIR}/net/openldap21${_OPENLDAP_FLAVOUR}-client .elif ${WANT_OPENLDAP_VER} == 23 LIB_DEPENDS+= ldap-2.3.1:${PORTSDIR}/net/openldap23${_OPENLDAP_FLAVOUR}-client .else @@ -1679,10 +1688,8 @@ .endif .if defined(USE_BISON) -.if ${OSVERSION} >= 400014 BUILD_DEPENDS+= bison:${PORTSDIR}/devel/bison .endif -.endif PLIST_SUB+= PERL_VERSION=${PERL_VERSION} \ PERL_VER=${PERL_VER} \ @@ -1725,100 +1732,16 @@ .endif .endif -.if defined(USE_MYSQL) -DEFAULT_MYSQL_VER?= 41 -# MySQL client version currently supported. -MYSQL323_LIBVER= 10 -MYSQL40_LIBVER= 12 -MYSQL41_LIBVER= 14 -MYSQL50_LIBVER= 15 - -# Setting/finding MySQL version we want. -.if exists(${LOCALBASE}/bin/mysql) -_MYSQL_VER!= ${LOCALBASE}/bin/mysql --version | ${SED} -e 's/.*Distrib \([0-9]\)\.\([0-9]*\).*/\1\2/' -.endif - -.if defined(WANT_MYSQL_VER) -.if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${WANT_MYSQL_VER} -BROKEN= The port wants mysql${WANT_MYSQL_VER}-client and you try to install mysql${WITH_MYSQL_VER}-client. -.endif -MYSQL_VER= ${WANT_MYSQL_VER} -.elif defined(WITH_MYSQL_VER) -MYSQL_VER= ${WITH_MYSQL_VER} -.else -.if defined(_MYSQL_VER) -MYSQL_VER= ${_MYSQL_VER} -.else -MYSQL_VER= ${DEFAULT_MYSQL_VER} -.endif -.endif # WANT_MYSQL_VER - -.if defined(_MYSQL_VER) -.if ${_MYSQL_VER} != ${MYSQL_VER} -BROKEN= MySQL versions mismatch: mysql${_MYSQL_VER}-client is installed and wanted version is mysql${MYSQL_VER}-client -.endif -.endif - -# And now we are checking if we can use it -.if defined(MYSQL${MYSQL_VER}_LIBVER) -.if defined(BROKEN_WITH_MYSQL) -. for VER in ${BROKEN_WITH_MYSQL} -. if (${MYSQL_VER} == "${VER}") -IGNORE= Doesn't work with MySQL version : ${MYSQL_VER} (Doesn't support MySQL ${BROKEN_WITH_MYSQL}) -. endif -. endfor -.endif # BROKEN_WITH_MYSQL -LIB_DEPENDS+= mysqlclient.${MYSQL${MYSQL_VER}_LIBVER}:${PORTSDIR}/databases/mysql${MYSQL_VER}-client -.else -BROKEN= "unknown MySQL version: ${MYSQL_VER}" -.endif # Check for correct libs -.endif # USE_MYSQL - -.if defined(USE_PGSQL) -DEFAULT_PGSQL_VER?= 74 -PGSQL73_LIBVER= 3 -PGSQL74_LIBVER= 3 -PGSQL80_LIBVER= 4 - -# Setting/finding PostgreSQL version we want. -.if exists(${LOCALBASE}/bin/pg_config) -_PGSQL_VER!= ${LOCALBASE}/bin/pg_config --version | ${SED} -n 's/PostgreSQL[^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\)\..*/\1\2/p' -.endif - -.if defined(WANT_PGSQL_VER) && defined(_PGSQL_VER) && ${WANT_PGSQL_VER} != ${_PGSQL_VER} -IGNORE= "The port wants postgresql${WANT_PGSQL_VER}-client but you have postgresql${_PGSQL_VER}-client installed" -.endif - -.if defined(_PGSQL_VER) -PGSQL_VER= ${_PGSQL_VER} -.elif defined(WANT_PGSQL_VER) -PGSQL_VER= ${WANT_PGSQL_VER} -.else -PGSQL_VER= ${DEFAULT_PGSQL_VER} -.endif - -# And now we are checking if we can use it -.if defined(PGSQL${PGSQL_VER}_LIBVER) -.if defined(BROKEN_WITH_PGSQL) -. for VER in ${BROKEN_WITH_PGSQL} -. if (${PGSQL_VER} == "${VER}") -IGNORE= "Does not work with postgresql${PGSQL_VER}-client PostgresSQL \(${BROKEN_WITH_PGSQL} not supported\)" -. endif -. endfor -.endif # BROKEN_WITH_PGSQL -LIB_DEPENDS+= pq.${PGSQL${PGSQL_VER}_LIBVER}:${PORTSDIR}/databases/postgresql${PGSQL_VER}-client -.else -BROKEN= "unknown PostgreSQL version: ${PGSQL_VER}" -.endif # Check for correct version -CPPFLAGS+= -I${LOCALBASE}/include -LDFLAGS+= -L${LOCALBASE}/lib -CONFIGURE_ENV+= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" -.endif # USE_PGSQL - # XXX: (not yet): .if defined(USE_AUTOTOOLS) .include "${PORTSDIR}/Mk/bsd.autotools.mk" # XXX: (not yet): .endif +.if defined(USE_MYSQL) || defined(WANT_MYSQL_VER) || \ + defined(USE_PGSQL) || defined(WANT_PGSQL_VER) || \ + defined(USE_BDB) || defined(USE_SQLITE) +.include "${PORTSDIR}/Mk/bsd.database.mk" +.endif + .if defined(WANT_GNOME) || defined(USE_GNOME) || defined(USE_GTK) .include "${PORTSDIR}/Mk/bsd.gnome.mk" .endif @@ -1835,6 +1758,14 @@ .include "${PORTSDIR}/Mk/bsd.python.mk" .endif +.if defined(USE_TCL) || defined(USE_TK) +.include "${PORTSDIR}/Mk/bsd.tcl.mk" +.endif + +.if defined(USE_APACHE) +.include "${PORTSDIR}/Mk/bsd.apache.mk" +.endif + .if exists(${PORTSDIR}/../Makefile.inc) .include "${PORTSDIR}/../Makefile.inc" USE_SUBMAKE= yes @@ -1887,13 +1818,8 @@ # Special macro for doing in-place file editing using regexps .if defined(USE_REINPLACE) REINPLACE_ARGS?= -i.bak -.if ${OSVERSION} < 460101 || ( ${OSVERSION} >= 500000 && ${OSVERSION} < 500036 ) -PATCH_DEPENDS+= ${LOCALBASE}/bin/sed_inplace:${PORTSDIR}/textproc/sed_inplace -REINPLACE_CMD?= ${LOCALBASE}/bin/sed_inplace ${REINPLACE_ARGS} -.else REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS} .endif -.endif # Names of cookies used to skip already completed stages EXTRACT_COOKIE?= ${WRKDIR}/.extract_done.${PKGNAME}.${PREFIX:S/\//_/g} @@ -1922,6 +1848,16 @@ .else MD5?= md5 .endif +.if exists(/sbin/sha256) +SHA256?= /sbin/sha256 +.elif exists(${LOCALBASE}/sbin/sha256) +SHA256?= ${LOCALBASE}/sbin/sha256 +.else +SHA256?= NO +.endif + +CHECKSUM_ALGORITHMS?= md5 sha256 + MD5_FILE?= ${MASTERDIR}/distinfo MAKE_FLAGS?= -f @@ -1940,13 +1876,8 @@ .endif .if exists(/usr/bin/fetch) -# avoid -A for 2.2 -- it's not ported to that branch -.if ${OSVERSION} < 300000 -FETCH_CMD?= /usr/bin/fetch -.else FETCH_CMD?= /usr/bin/fetch -ARr FETCH_REGET?= 1 -.endif .if ${OSVERSION} >= 480000 && !defined(DISABLE_SIZE) # Avoid -S for 4.7 and earlier since it causes fetch errors FETCH_BEFORE_ARGS+= $${CKSIZE:+-S $$CKSIZE} @@ -2081,7 +2012,7 @@ .undef NO_PACKAGE .endif -COMMENTFILE?= ${PKGDIR}/pkg-comment +COMMENTFILE?= ${PKGDIR}/pkg-comment DESCR?= ${PKGDIR}/pkg-descr PLIST?= ${PKGDIR}/pkg-plist PKGINSTALL?= ${PKGDIR}/pkg-install @@ -2091,14 +2022,12 @@ TMPPLIST?= ${WRKDIR}/.PLIST.mktmp -.if ${OSVERSION} >= 400000 .for _CATEGORY in ${CATEGORIES} PKGCATEGORY?= ${_CATEGORY} .endfor _PORTDIRNAME= ${.CURDIR:T} PORTDIRNAME?= ${_PORTDIRNAME} PKGORIGIN?= ${PKGCATEGORY}/${PORTDIRNAME} -.endif .if exists(${LOCALBASE}/sbin/pkg_info) PKG_CMD?= ${LOCALBASE}/sbin/pkg_create @@ -2106,13 +2035,6 @@ PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete PKG_INFO?= ${LOCALBASE}/sbin/pkg_info PKG_VERSION?= ${LOCALBASE}/sbin/pkg_version -.elif ${OSVERSION} < 460102 && ${PKGORIGIN} != "sysutils/pkg_install" -BUILD_DEPENDS+= ${LOCALBASE}/sbin/pkg_info:${PORTSDIR}/sysutils/pkg_install -PKG_CMD?= ${LOCALBASE}/sbin/pkg_create -PKG_ADD?= ${LOCALBASE}/sbin/pkg_add -PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete -PKG_INFO?= ${LOCALBASE}/sbin/pkg_info -PKG_VERSION?= ${LOCALBASE}/sbin/pkg_version .else PKG_CMD?= /usr/sbin/pkg_create PKG_ADD?= /usr/sbin/pkg_add @@ -2597,7 +2519,7 @@ deskutils devel dns editors elisp emulators finance french ftp \ games german gnome graphics haskell hebrew hungarian \ ipv6 irc japanese java kde korean lang linux lisp \ - mail math mbone misc multimedia net net-mgmt news \ + mail math mbone misc multimedia net net-im net-mgmt news \ offix palm parallel pear perl5 picobsd plan9 polish portuguese print \ python ruby russian \ scheme science security shells sysutils \ @@ -2651,7 +2573,7 @@ .endif CONFIGURE_SCRIPT?= configure -CONFIGURE_TARGET?= ${MACHINE_ARCH}-portbld-freebsd${OSREL} +CONFIGURE_TARGET?= ${ARCH}-portbld-freebsd${OSREL} CONFIGURE_LOG?= config.log # A default message to print if do-configure fails. @@ -2788,6 +2710,14 @@ EXAMPLESDIR="${EXAMPLESDIR:S,^${PREFIX}/,,}" \ DATADIR="${DATADIR:S,^${PREFIX}/,,}" +DESKTOPDIR?= ${PREFIX}/share/applications +_DESKTOPDIR_REL= ${DESKTOPDIR:S,^${PREFIX}/,,}/ + +.if ${_DESKTOPDIR_REL} == ${DESKTOPDIR}/ +# DESKTOPDIR is not beneath PREFIX +_DESKTOPDIR_REL= +.endif + # Put this as far down as possible so it will catch all PLIST_SUB definitions. .if defined(INSTALLS_SHLIB) @@ -2823,14 +2753,9 @@ # Don't build a port if the system is too old. ################################################################ -.if ${OSVERSION} < 420000 -# You need an upgrade kit or make world newer than this -IGNORE= ": Your system is too old to use this bsd.port.mk. You need a fresh make world or an upgrade kit. Please go to http://www.FreeBSD.org/ports/ or a mirror site and follow the instructions" -.endif - .if defined(ONLY_FOR_ARCHS) .for __ARCH in ${ONLY_FOR_ARCHS} -.if ${MACHINE_ARCH:M${__ARCH}} != "" +.if ${ARCH:M${__ARCH}} != "" __ARCH_OK?= 1 .endif .endfor @@ -2840,7 +2765,7 @@ .if defined(NOT_FOR_ARCHS) .for __NARCH in ${NOT_FOR_ARCHS} -.if ${MACHINE_ARCH:M${__NARCH}} != "" +.if ${ARCH:M${__NARCH}} != "" .undef __ARCH_OK .endif .endfor @@ -3073,10 +2998,6 @@ # Check if the port is listed in the vulnerability database -.if ${PKGINSTALLVER} < 20040125 || ${OSVERSION} < 420001 || ${OSVERSION} >= 500000 && ${OSVERSION} < 500014 -DISABLE_VULNERABILITIES= yes -.endif - AUDITFILE?= /var/db/portaudit/auditfile.tbz _EXTRACT_AUDITFILE= ${TAR} -jxOf "${AUDITFILE}" auditfile @@ -3624,7 +3545,7 @@ # -@${RM} -f ${WRKDIR}/.PLIST.setuid ${WRKDIR}/.PLIST.writable ${WRKDIR}/.PLIST.objdump; \ ${AWK} -v prefix='${PREFIX}' ' \ - match($$0, /^@cwd /) { prefix = substr($$0, RSTART + RLENGTH); next; } \ + match($$0, /^@cwd /) { prefix = substr($$0, RSTART + RLENGTH); if (prefix == "/") prefix=""; next; } \ /^@/ { next; } \ /^\// { print; next; } \ { print prefix "/" $$0; } \ @@ -3783,10 +3704,10 @@ run-depends lib-depends apply-slist pre-install \ pre-install-script generate-plist check-already-installed _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \ - pre-su-install-script do-install post-install \ - post-install-script add-plist-info add-plist-docs \ - add-plist-post install-rc-script compress-man run-ldconfig \ - fake-pkg security-check + pre-su-install-script do-install install-desktop-entries \ + post-install post-install-script add-plist-info \ + add-plist-docs add-plist-post install-rc-script compress-man \ + run-ldconfig fake-pkg security-check _PACKAGE_DEP= install _PACKAGE_SEQ= package-message pre-package pre-package-script \ do-package post-package-script @@ -4156,88 +4077,172 @@ # Checksumming utilities +check-checksum-algorithms: + @ \ + ${checksum_init} \ + \ + for alg in ${CHECKSUM_ALGORITHMS:U}; do \ + eval alg_executable=\$$$$alg; \ + if [ -z "$$alg_executable" ]; then \ + ${ECHO_CMD} "Checksum algorithm $$alg: Couldn't find the executable."; \ + ${ECHO_CMD} "Set $$alg=/path/to/$$alg in /etc/make.conf and try again."; \ + exit 1; \ + fi; \ + done; \ + +checksum_init=\ + SHA256=${SHA256}; \ + MD5=${MD5}; + .if !target(makesum) -makesum: +makesum: check-checksum-algorithms @cd ${.CURDIR} && ${MAKE} ${__softMAKEFLAGS} fetch NO_CHECKSUM=yes \ DISABLE_SIZE=yes @if [ -f ${MD5_FILE} ]; then ${CAT} /dev/null > ${MD5_FILE}; fi - @(cd ${DISTDIR}; \ - for file in ${_CKSUMFILES}; do \ - ${MD5} $$file >> ${MD5_FILE}; \ - if [ -z "${NO_SIZE}" ]; then \ - ${ECHO_CMD} "SIZE ($$file) = "`${LS} -ALln $$file | ${AWK} '{print $$5}'` >> ${MD5_FILE}; \ - fi; \ - done) + @( \ + cd ${DISTDIR}; \ + \ + ${checksum_init} \ + \ + for file in ${_CKSUMFILES}; do \ + for alg in ${CHECKSUM_ALGORITHMS:U}; do \ + eval alg_executable=\$$$$alg; \ + \ + if [ $$alg_executable != "NO" ]; then \ + $$alg_executable $$file >> ${MD5_FILE}; \ + fi; \ + done; \ + if [ -z "${NO_SIZE}" ]; then \ + ${ECHO_CMD} "SIZE ($$file) = "`${LS} -ALln $$file | ${AWK} '{print $$5}'` >> ${MD5_FILE}; \ + fi; \ + done \ + ) @for file in ${_IGNOREFILES}; do \ - ${ECHO_CMD} "MD5 ($$file) = IGNORE" >> ${MD5_FILE}; \ + for alg in ${CHECKSUM_ALGORITHMS:U}; do \ + ${ECHO_CMD} "$$alg ($$file) = IGNORE" >> ${MD5_FILE}; \ + done; \ done .endif - .if !target(checksum) -checksum: fetch - @if [ -f ${MD5_FILE} ]; then \ - (cd ${DISTDIR}; OK=""; \ - for file in ${_CKSUMFILES}; do \ +checksum: fetch check-checksum-algorithms + @ \ + \ + ${checksum_init} \ + \ + if [ -f ${MD5_FILE} ]; then \ + ( cd ${DISTDIR}; OK=""; \ + for file in ${_CKSUMFILES}; do \ pattern="`${ECHO_CMD} $$file | ${SED} -e 's/\./\\\\./g'`"; \ - CKSUM=`${MD5} < $$file`; \ - CKSUM2=`${GREP} "^MD5 ($$pattern)" ${MD5_FILE} | ${AWK} '{print $$4}'`; \ - if [ -z "$$CKSUM2" ]; then \ - ${ECHO_MSG} "=> No checksum recorded for $$file."; \ - OK="false"; \ - elif [ "$$CKSUM2" = "IGNORE" ]; then \ - ${ECHO_MSG} "=> Checksum for $$file is set to IGNORE in distinfo file even though"; \ - ${ECHO_MSG} " the file is not in the "'$$'"{IGNOREFILES} list."; \ - OK="false"; \ - else \ - ckmatch=${FALSE}; \ - for cksum2 in $$CKSUM2; do \ - if [ "$$cksum2" = "$$CKSUM" ]; then \ - ckmatch=${TRUE}; \ - break; \ - fi; \ - done; \ - if $$ckmatch; then \ - ${ECHO_MSG} "=> Checksum OK for $$file."; \ + \ + ignored="true"; \ + for alg in ${CHECKSUM_ALGORITHMS:U}; do \ + ignore="false"; \ + eval alg_executable=\$$$$alg; \ + \ + if [ $$alg_executable != "NO" ]; then \ + MKSUM=`$$alg_executable < $$file`; \ + CKSUM=`${GREP} "^$$alg ($$pattern)" ${MD5_FILE} | ${AWK} '{print $$4}'`; \ else \ - ${ECHO_MSG} "=> Checksum mismatch for $$file."; \ - refetchlist="$$refetchlist$$file "; \ - OK="$${OK:-retry}"; \ + ignore="true"; \ + fi; \ + \ + if [ $$ignore = "false" -a -z "$$CKSUM" ]; then \ + ${ECHO_MSG} "=> No $$alg checksum recorded for $$file."; \ + ignore="true"; \ + fi; \ + \ + if [ "$$CKSUM" = "IGNORE" ]; then \ + ${ECHO_MSG} "=> $$alg Checksum for $$file is set to IGNORE in distinfo file even though"; \ + ${ECHO_MSG} " the file is not in the "'$$'"{IGNOREFILES} list."; \ + ignore="true"; \ + OK=${FALSE}; \ + fi; \ + \ + if [ $$ignore = "false" ]; then \ + match="false"; \ + for chksum in $$CKSUM; do \ + if [ "$$chksum" = "$$MKSUM" ]; then \ + match="true"; \ + break; \ + fi; \ + done; \ + if [ $$match = "true" ]; then \ + ${ECHO_MSG} "=> $$alg Checksum OK for $$file."; \ + ignored="false"; \ + else \ + ${ECHO_MSG} "=> $$alg Checksum mismatch for $$file."; \ + refetchlist="$$refetchlist$$file "; \ + OK="$${OK:-retry}"; \ + ignored="false"; \ + fi; \ fi; \ + done; \ + \ + if [ $$ignored = "true" ]; then \ + ${ECHO_MSG} "=> No suitable checksum found for $$file."; \ + OK="${FALSE}"; \ fi; \ - done; \ - for file in ${_IGNOREFILES}; do \ + \ + done; \ + \ + for file in ${_IGNOREFILES}; do \ pattern="`${ECHO_CMD} $$file | ${SED} -e 's/\./\\\\./g'`"; \ - CKSUM2=`${GREP} "($$pattern)" ${MD5_FILE} | ${AWK} '{if(NR<2)print $$4}'`; \ - if [ "$$CKSUM2" = "" ]; then \ - ${ECHO_MSG} "=> No checksum recorded for $$file, file is in "'$$'"{IGNOREFILES} list."; \ - OK="false"; \ - elif [ "$$CKSUM2" != "IGNORE" ]; then \ - ${ECHO_MSG} "=> Checksum for $$file is not set to IGNORE in distinfo file even though"; \ - ${ECHO_MSG} " the file is in the "'$$'"{IGNOREFILES} list."; \ - OK="false"; \ + \ + ignored="true"; \ + for alg in ${CHECKSUM_ALGORITHMS:U}; do \ + ignore="false"; \ + eval alg_executable=\$$$$alg; \ + \ + if [ $$alg_executable != "NO" ]; then \ + CKSUM=`${GREP} "^$$alg ($$pattern)" ${MD5_FILE} | ${AWK} '{print $$4}'`; \ + else \ + ignore="true"; \ + fi; \ + \ + if [ $$ignore = "false" ]; then \ + if [ -z "$$CKSUM" ]; then \ + ${ECHO_MSG} "=> No $$alg checksum for $$file recorded (expected IGNORE)"; \ + OK="false"; \ + elif [ $$CKSUM != "IGNORE" ]; then \ + ${ECHO_MSG} "=> $$alg Checksum for $$file is not set to IGNORE in distinfo file even though"; \ + ${ECHO_MSG} " the file is in the "'$$'"{IGNOREFILES} list."; \ + OK="false"; \ + else \ + ignored="false"; \ + fi; \ + fi; \ + done; \ + \ + if [ $$ignored = "true" ]; then \ + ${ECHO_MSG} "=> No suitable checksum found for $$file."; \ + OK="${FALSE}"; \ fi; \ - done; \ - if [ "$${OK:=true}" = "retry" ] && [ ${FETCH_REGET} -gt 0 ]; then \ - ${ECHO_MSG} "===> Refetch for ${FETCH_REGET} more times files: $$refetchlist"; \ - if ( cd ${.CURDIR} && \ + \ + done; \ + \ + if [ "$${OK:=true}" = "retry" ] && [ ${FETCH_REGET} -gt 0 ]; then \ + ${ECHO_MSG} "===> Refetch for ${FETCH_REGET} more times files: $$refetchlist"; \ + if ( cd ${.CURDIR} && \ ${MAKE} ${.MAKEFLAGS} FORCE_FETCH="$$refetchlist" FETCH_REGET="`${EXPR} ${FETCH_REGET} - 1`" fetch); then \ if ( cd ${.CURDIR} && \ ${MAKE} ${.MAKEFLAGS} FETCH_REGET="`${EXPR} ${FETCH_REGET} - 1`" checksum ); then \ OK="true"; \ fi; \ - fi; \ - fi ; \ - if [ "$$OK" != "true" -a ${FETCH_REGET} -eq 0 ]; then \ - ${ECHO_MSG} "===> Giving up on fetching files: $$refetchlist"; \ - ${ECHO_MSG} "Make sure the Makefile and distinfo file (${MD5_FILE})"; \ - ${ECHO_MSG} "are up to date. If you are absolutely sure you want to override this"; \ - ${ECHO_MSG} "check, type \"make NO_CHECKSUM=yes [other args]\"."; \ - exit 1; \ - fi; \ - if [ "$$OK" != "true" ]; then \ - exit 1; \ - fi); \ + fi; \ + fi ; \ + \ + if [ "$$OK" != "true" -a ${FETCH_REGET} -eq 0 ]; then \ + ${ECHO_MSG} "===> Giving up on fetching files: $$refetchlist"; \ + ${ECHO_MSG} "Make sure the Makefile and distinfo file (${MD5_FILE})"; \ + ${ECHO_MSG} "are up to date. If you are absolutely sure you want to override this"; \ + ${ECHO_MSG} "check, type \"make NO_CHECKSUM=yes [other args]\"."; \ + exit 1; \ + fi; \ + if [ "$$OK" != "true" ]; then \ + exit 1; \ + fi \ + ); \ elif [ -n "${_CKSUMFILES:M*}" ]; then \ ${ECHO_MSG} "=> No checksum file (${MD5_FILE})."; \ fi @@ -4652,11 +4657,7 @@ # Print out package names. package-depends: -.if ${OSVERSION} >= 460102 || exists(${LOCALBASE}/sbin/pkg_info) @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}' -.else - @${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1}' -.endif # Build packages for port and dependencies @@ -5231,5 +5232,43 @@ done .endif +.if !target(install-desktop-entries) +install-desktop-entries: +.if defined(DESKTOP_ENTRIES) + @(${MKDIR} "${DESKTOPDIR}" 2> /dev/null) || \ + (${ECHO_MSG} "===> Cannot create ${DESKTOPDIR}, check permissions"; exit 1) + @set ${DESKTOP_ENTRIES} XXX; \ + if [ -z "${_DESKTOPDIR_REL}" ]; then \ + ${ECHO_CMD} "@cwd ${DESKTOPDIR}" >> ${TMPPLIST}; \ + fi; \ + while [ $$# -gt 6 ]; do \ + filename="$$4.desktop"; \ + pathname="${DESKTOPDIR}/$$filename"; \ + ${ECHO_CMD} "${_DESKTOPDIR_REL}$$filename" >> ${TMPPLIST}; \ + ${ECHO_CMD} "[Desktop Entry]" > $$pathname; \ + ${ECHO_CMD} "Type=Application" >> $$pathname; \ + ${ECHO_CMD} "Version=0.9.4" >> $$pathname; \ + ${ECHO_CMD} "Encoding=UTF-8" >> $$pathname; \ + ${ECHO_CMD} "Name=$$1" >> $$pathname; \ + if [ -n "$$2" ]; then \ + ${ECHO_CMD} "Comment=$$2" >> $$pathname; \ + fi; \ + if [ -n "$$3" ]; then \ + ${ECHO_CMD} "Icon=$$3" >> $$pathname; \ + fi; \ + ${ECHO_CMD} "Exec=$$4" >> $$pathname; \ + ${ECHO_CMD} "Categories=$$5" >> $$pathname; \ + ${ECHO_CMD} "StartupNotify=$$6" >> $$pathname; \ + shift 6; \ + done; \ + ${ECHO_CMD} "@unexec rmdir ${DESKTOPDIR} 2>/dev/null || true" >> ${TMPPLIST}; \ + if [ -z "${_DESKTOPDIR_REL}" ]; then \ + ${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST}; \ + fi +.else + @${DO_NADA} +.endif +.endif + .endif # End of post-makefile section. Index: Mk/bsd.port.subdir.mk =================================================================== RCS file: /home/ncvs/ports/Mk/bsd.port.subdir.mk,v retrieving revision 1.60 diff -u -r1.60 bsd.port.subdir.mk --- Mk/bsd.port.subdir.mk 28 Feb 2005 21:09:04 -0000 1.60 +++ Mk/bsd.port.subdir.mk 17 Sep 2005 12:16:52 -0000 @@ -107,6 +107,7 @@ TARGETS+= makesum TARGETS+= maintainer TARGETS+= package +TARGETS+= package-recursive TARGETS+= realinstall TARGETS+= reinstall TARGETS+= tags @@ -365,6 +366,7 @@ -v xkeylim="$${xkeylim:-${PORTSEARCH_XKEYLIM}}" \ -v display="$${display:-${PORTSEARCH_DISPLAY_FIELDS}}" \ 'BEGIN { \ + gsub(/\+/,"\\+",name); \ if (substr(there, 1, length(top)) == top) \ there = "${PORTSDIR}" substr(there, 1 + length(top)); \ therelen = length(there); \ Index: Mk/bsd.tcl.mk =================================================================== RCS file: Mk/bsd.tcl.mk diff -N Mk/bsd.tcl.mk --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Mk/bsd.tcl.mk 17 Sep 2005 23:47:52 -0000 @@ -0,0 +1,145 @@ +# -*- mode: Makefile; tab-width: 4; -*- +# ex: ts=4 +# +# $FreeBSD$ +# + +.if !defined(_POSTMKINCLUDED) && !defined(Tcl_Pre_Include) + +Tcl_Pre_Include= bsd.tcl.mk +Tcl_Include_MAINTAINER= vsevolod@FreeBSD.org + +# USE_TCL: Depend on tcl to run. In case of incompatible APIs of different +# TCL versions the version can be specified directly. If version +# is not specified (USE_TCL=yes) then the latest version is +# used (8.4 currently). +# Available values are: 84, 83, 82, 81 and 80. +# +# USE_TK: Depend on tk to run. In case of incompatible APIs of different +# TK versions the version can be specified directly. If version +# is not specified (USE_TK=yes) then the latest version is +# used (8.4 currently). +# Available values are: 84, 83, 82, 81 and 80. +## +# TCL_LIBDIR: Path where tcl libraries can be found +# +# TCL_INCLUDEDIR: Path where tcl C headers can be found +## +# TK_LIBDIR: Path where tk libraries can be found +# +# TK_INCLUDEDIR: Path where tk C headers can be found +## +# TCLSH: Path to tclsh executable respecting tcl version +# +# WISH: Path to wish executable respecting tk version +## +# PATCH_TCL_SCRIPTS: List of tcl scripts that need to be patched to replace tclsh +# calls to tclsh${TK_VER} calls. Note that this implies USE_REINPLACE +# as REINPLACE_CMD is used for patching. Also note that post-patch +# target is used. +# +# PATCH_TK_SCRIPTS: List of tcl scripts that need to be patched to replace wish +# calls to wish${TK_VER} calls. Note that this implies USE_REINPLACE +# as REINPLACE_CMD is used for patching. Also note that post-patch +# target is used. + +.if defined(USE_TCL) || defined(USE_TCL_BUILD) + +_TCL_VERSIONS= 84 83 82 81 80 + +.if defined(USE_TCL_BUILD) +USE_TCL= ${USE_TCL_BUILD} +_BUILD= yes +.endif + +.if ${USE_TCL} == "yes" +USE_TCL= 84 +.endif + +TCL_VER:= ${USE_TCL:S/8/8./} + +# Special case +.if ${USE_TCL} == "81" +USE_TCL= tcl81-thread +.endif + +_FOUND= no +.for ver in ${_TCL_VERSIONS} +. if ${USE_TCL} == ${ver} +_FOUND= yes +. if defined(_BUILD) +BUILD_DEPENDS+= tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${USE_TCL} +. else +RUN_DEPENDS+= tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${USE_TCL} +. endif +TCL_INCLUDEDIR= ${LOCALBASE}/include/tcl${TCL_VER} +TCL_LIBDIR= ${LOCALBASE}/lib/tcl${TCL_VER} +TCLSH= ${LOCALBASE}/bin/tclsh${TCL_VER} +. endif +.endfor + +.if ${_FOUND} == "no" +IGNORE= "Unknown TCL version specified: ${USE_TCL}" +.endif +.endif # defined(USE_TCL) + +.if defined(USE_TK) + +_TK_VERSIONS= 84 83 82 81 80 + +.if ${USE_TK} == "yes" +USE_TK= 84 +.endif + +TK_VER:= ${USE_TK:S/8/8./} + +.if defined(USE_TCL) && ${TCL_VER} != ${TK_VER} +IGNORE= "TCL and TK versions must be equal (${TCL_VER} vs ${TK_VER})" +.endif + +_FOUND= no +.for ver in ${_TK_VERSIONS} +. if ${USE_TK} == ${ver} +_FOUND= yes +RUN_DEPENDS+= wish${TK_VER}:${PORTSDIR}/x11-toolkits/tk${USE_TK} +TCL_INCLUDEDIR= ${LOCALBASE}/include/tcl${TK_VER} +TCL_LIBDIR= ${LOCALBASE}/lib/tcl${TK_VER} +TK_INCLUDEDIR= ${LOCALBASE}/include/tk${TK_VER} +TK_LIBDIR= ${LOCALBASE}/lib/tk${TK_VER} +TCLSH= ${LOCALBASE}/bin/tclsh${TK_VER} +WISH= ${LOCALBASE}/bin/wish${TK_VER} +. endif +.endfor + +.if ${_FOUND} == "no" +IGNORE= "Unknown TK version specified: ${USE_TK}" +.endif +.endif # defined(USE_TK) + +.if defined(PATCH_TCL_SCRIPTS) || defined (PATCH_TK_SCRIPTS) +USE_REINPLACE= yes +.endif + +.endif # !defined(_POSTMKINCLUDED) && !defined(Tcl_Pre_Include) + +.if defined(_POSTMKINCLUDED) && !defined(Tcl_Post_Include) + +Tcl_Post_Include= bsd.tcl.mk + +.if defined(PATCH_TCL_SCRIPTS) || defined (PATCH_TK_SCRIPTS) +.if !target(post-patch) +post-patch: +.if defined(PATCH_TCL_SCRIPTS) && defined(TCLSH) +. for tcl_script in ${PATCH_TCL_SCRIPTS} + @${REINPLACE_CMD} -e 's,tclsh,${TCLSH},' ${WRKSRC}/${tcl_script} +. endfor +.endif +.if defined(PATCH_TK_SCRIPTS) && defined(WISH) +. for tk_script in ${PATCH_TK_SCRIPTS} + @${REINPLACE_CMD} -e 's,wish,${WISH},' ${WRKSRC}/${tk_script} +. endfor +.endif +.endif # !target(post-patch) +.endif # defined(PATCH_TCL_SCRIPTS) || defined (PATCH_TK_SCRIPTS) + +.endif # defined(_POSTMKINCLUDED) && !defined(Tcl_Post_Include)