Index: head/Mk/Uses/gssapi.mk =================================================================== --- head/Mk/Uses/gssapi.mk (revision 420903) +++ head/Mk/Uses/gssapi.mk (revision 420904) @@ -1,203 +1,203 @@ # $FreeBSD$ # # handle dependency on Kerberos port # # Feature: gssapi # Usage: USES=gssapi or USES=gssapi:ARGS # Valid ARGS: base (default, implicit), heimdal, mit. # "bootstrap" is a special prefix only for krb5 or heimdal ports. # ("bootstrap,mit") # flags is a special suffix to define CFLAGS, LDFLAGS, and LDADD. # ("base,flags") # # MAINTAINER: hrs@FreeBSD.org # # User defined variables: # HEIMDAL_HOME (default: ${LOCALBASE}) # KRB5_HOME (default: ${LOCALBASE}) # # Exported variables: # GSSAPIBASEDIR # GSSAPICPPFLAGS # GSSAPIINCDIR # GSSAPILDFLAGS # GSSAPILIBDIR # GSSAPILIBS # GSSAPI_CONFIGURE_ARGS # KRB5CONFIG # # Affected variables: # PREFIX (bootstrap) # CPPFLAGS (flags) # LDADD (flags) # LDCFLAGS # # Notes: # - GSSAPILIBDIR is prepended to "-Wl,-rpath," in LDFLAGS. # - bootstrap sets PREFIX based on KRB5_HOME or HEIMDAL_HOME. # # Usage: # # A typical example: # # OPTIONS_SINGLE= GSSAPI # OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE # # GSSAPI_BASE_USES= gssapi # GSSAPI_BASE_CONFIGURE_ON= \ # --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} # # GSSAPI_HEIMDAL_USES=gssapi:heimdal # GSSAPI_HEIMDAL_CONFIGURE_ON= \ # --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} # # GSSAPI_MIT_USES= gssapi:mit # GSSAPI_MIT_CONFIGURE_ON= \ # --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} # # GSSAPI_NONE_CONFIGURE_ON= --without-gssapi # # If pathname is required for Kerberos implementation, use ${GSSAPIBASEDIR}. # # CPPFLAGS, LDFLAGS, and LDADD can automatically be set by using "flags" # modifier. It is useful if the port does not use a configure script. # # How To Debug: # # A port maintainer can try "make debug-krb" to confirm if building # a GSSAPI library works fine. It will perform a library link test and # show which library and what parameters will be used. # If it works but your port does not build, some parameters are missing in # the building phase of the port. If it does not work, the problem is in # the GSSAPI library, not your port. Please contact MAINTAINER of this file # in that case. # .if !defined(_INCLUDE_USES_GSSAPI_MK) _INCLUDE_USES_GSSAPI_MK= yes _HEIMDAL_DEPENDS=${GSSAPILIBDIR}/libgssapi.so:security/heimdal _MITKRB5_DEPENDS=${GSSAPILIBDIR}/libkrb5support.so:security/krb5 _HEADERS= sys/types.h sys/stat.h stdint.h .undef _FIXUP_KRB5CONFIG .if empty(gssapi_ARGS) gssapi_ARGS= base .endif .for _A in ${gssapi_ARGS} _local:= ${_A} .if ${_local} == "base" . if ${SSL_DEFAULT} != base -IGNORE= You are using OpenSSL from ports and have selected GSSAPI from base, please select another GSSAPI value. +IGNORE= You are using OpenSSL from ports and have selected GSSAPI from base, please select another GSSAPI value . endif HEIMDAL_HOME= /usr GSSAPIBASEDIR= ${HEIMDAL_HOME} GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib GSSAPIINCDIR= ${GSSAPIBASEDIR}/include _HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h GSSAPICPPFLAGS= -I"${GSSAPIINCDIR}" GSSAPILIBS= -lkrb5 -lgssapi -lgssapi_krb5 GSSAPILDFLAGS= -L"${GSSAPILIBDIR}" .if empty(OSREL:N9.3) _FIXUP_KRB5CONFIG= yes .endif .elif ${_local} == "heimdal" HEIMDAL_HOME?= ${LOCALBASE} GSSAPIBASEDIR= ${HEIMDAL_HOME} GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib/heimdal GSSAPIINCDIR= ${GSSAPIBASEDIR}/include/heimdal _HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h .if !defined(_KRB_BOOTSTRAP) BUILD_DEPENDS+= ${_HEIMDAL_DEPENDS} RUN_DEPENDS+= ${_HEIMDAL_DEPENDS} .else PREFIX= ${HEIMDAL_HOME} .endif GSSAPICPPFLAGS= -I"${GSSAPIINCDIR}" GSSAPILIBS= -lkrb5 -lgssapi GSSAPILDFLAGS= -L"${GSSAPILIBDIR}" _RPATH= ${GSSAPILIBDIR} .elif ${_local} == "mit" KRB5_HOME?= ${LOCALBASE} GSSAPIBASEDIR= ${KRB5_HOME} GSSAPILIBDIR= ${GSSAPIBASEDIR}/lib GSSAPIINCDIR= ${GSSAPIBASEDIR}/include _HEADERS+= gssapi/gssapi.h gssapi/gssapi_krb5.h krb5.h .if !defined(_KRB_BOOTSTRAP) BUILD_DEPENDS+= ${_MITKRB5_DEPENDS} RUN_DEPENDS+= ${_MITKRB5_DEPENDS} .else PREFIX= ${KRB5_HOME} .endif GSSAPILIBS= -lkrb5 -lgssapi_krb5 GSSAPICPPFLAGS= -I"${GSSAPIINCDIR}" GSSAPILDFLAGS= -L"${GSSAPILIBDIR}" _RPATH= ${GSSAPILIBDIR} .elif ${_local} == "bootstrap" _KRB_BOOTSTRAP= 1 .elif ${_local} == "flags" _KRB_USEFLAGS= 1 .else IGNORE= USES=gssapi - invalid args: [${_local}] specified .endif .endfor # Fix up krb5-config if broken. This script included in 9.X prior to # r271474 and in 10.X prior to r271473 are broken because # libgssapi_krb5 for some interfaces of GSS-API is missing. .if defined(_FIXUP_KRB5CONFIG) KRB5CONFIG=${WRKDIR}/krb5-config _USES_configure+= 290:krb5config-fix krb5config-fix: ${SED} -e 's,\$$lib_flags -lgssapi -lheimntlm,\$$lib_flags -lgssapi -lgssapi_krb5 -lheimntlm,' < ${GSSAPIBASEDIR}/bin/krb5-config > ${KRB5CONFIG} ${CHMOD} a+rx ${KRB5CONFIG} .else KRB5CONFIG=${GSSAPIBASEDIR}/bin/krb5-config .endif # Fix up -Wl,-rpath in LDFLAGS .if defined(_RPATH) && !empty(_RPATH) .if !empty(LDFLAGS:M-Wl,-rpath,*) .for F in ${LDFLAGS:M-Wl,-rpath,*} LDFLAGS:= -Wl,-rpath,${_RPATH}:${F:S/-Wl,-rpath,//} \ ${LDFLAGS:N-Wl,-rpath,*} .endfor .else LDFLAGS+= -Wl,-rpath,${_RPATH}:/usr/lib .endif _DEBUG_KRB_RPATH= -Wl,-rpath,${_RPATH} .endif .if defined(_KRB_USEFLAGS) && !empty(_KRB_USEFLAGS) CPPFLAGS+= ${GSSAPICPPFLAGS} LDFLAGS+= ${GSSAPILDFLAGS} LDADD+= ${GSSAPILIBS} .endif GSSAPI_CONFIGURE_ARGS= \ CFLAGS="${GSSAPICPPFLAGS} ${CFLAGS}" \ LDFLAGS="${GSSAPILDFLAGS} ${LDFLAGS}" \ LIBS="${GSSAPILIBS} ${LIBS}" \ KRB5CONFIG="${KRB5CONFIG}" debug-krb: @(for I in ${_HEADERS}; do echo "#include <$$I>"; done; \ echo "int main() { gss_acquire_cred(0, 0, 0, 0, 0, 0, 0, 0);" \ "krb5_init_context(0);" \ "gsskrb5_register_acceptor_identity(0); return 0;}" \ ) > /tmp/${.TARGET}.c ${CC} ${CFLAGS} -o /tmp/${.TARGET}.x ${GSSAPICPPFLAGS} \ ${GSSAPILIBS} ${GSSAPILDFLAGS} ${_DEBUG_KRB_RPATH} \ /tmp/${.TARGET}.c && \ ldd /tmp/${.TARGET}.x; \ rm -f /tmp/${.TARGET}.x @echo "PREFIX: ${PREFIX}" @echo "GSSAPIBASEDIR: ${GSSAPIBASEDIR}" @echo "GSSAPIINCDIR: ${GSSAPIINCDIR}" @echo "GSSAPILIBDIR: ${GSSAPILIBDIR}" @echo "GSSAPILIBS: ${GSSAPILIBS}" @echo "GSSAPICPPFLAGS: ${GSSAPICPPFLAGS}" @echo "GSSAPILDFLAGS: ${GSSAPILDFLAGS}" @echo "GSSAPI_CONFIGURE_ARGS: ${GSSAPI_CONFIGURE_ARGS}" @echo "KRB5CONFIG: ${KRB5CONFIG}" @echo "CFLAGS: ${CFLAGS}" @echo "LDFLAGS: ${LDFLAGS}" @echo "LDADD: ${LDADD}" .endif Index: head/Mk/bsd.ldap.mk =================================================================== --- head/Mk/bsd.ldap.mk (revision 420903) +++ head/Mk/bsd.ldap.mk (revision 420904) @@ -1,99 +1,99 @@ # -*- tab-width: 4; -*- # ex: ts=4 # # $FreeBSD$ # .if defined(_POSTMKINCLUDED) && !defined(Ldap_Post_Include) Ldap_Post_Include= bsd.ldap.mk Database_Include_MAINTAINER= ports@FreeBSD.org # For including this file define macro USE_OPENLDAP. Defining macro like # USE_OPENLDAP_VER or WANT_OPENLDAP_VER will include this file too. # ## # USE_OPENLDAP - Add OpenLDAP 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 (OpenLDAP 2.4 = 24). # DEFAULT_OPENLDAP_VER # - OpenLDAP default version. Can be overriden within a port. # Default: 24. # WANT_OPENLDAP_VER # - Maintainer can set an arbitrary version of OpenLDAP by using it. # WANT_OPENLDAP_SASL # - If set, this port depends on SASL enabled OpenLDAP client. # IGNORE_OPENLDAP_OPENLDAP # - This variable can be defined if the ports doesn't support # one or more version of OpenLDAP. # WITH_OPENLDAP_VER # - User defined variable to set OpenLDAP version. # OPENLDAP_VER # - Detected OpenLDAP version. .if defined(USE_OPENLDAP) DEFAULT_OPENLDAP_VER?= 24 # OpenLDAP client versions currently supported OPENLDAP23_LIB= libldap-2.3.so.2 OPENLDAP24_LIB= libldap-2.4.so.2 .if exists(${LOCALBASE}/bin/ldapwhoami) _OPENLDAP_VER!= ${LOCALBASE}/bin/ldapwhoami -VV 2>&1 | ${GREP} ldapwhoami | ${SED} -E 's/.*OpenLDAP: ldapwhoami (2)\.(3|4).*/\1\2/' .endif .if defined(WANT_OPENLDAP_VER) .if defined(WITH_OPENLDAP_VER) && ${WITH_OPENLDAP_VER} != ${WANT_OPENLDAP_VER} -IGNORE= cannot install: the port wants openldap${WANT_OPENLDAP_VER}-client and you try to install openldap${WITH_OPENLDAP_VER}-client. +IGNORE= cannot install: the port wants openldap${WANT_OPENLDAP_VER}-client and you try to install openldap${WITH_OPENLDAP_VER}-client .endif OPENLDAP_VER= ${WANT_OPENLDAP_VER} .elif defined(WITH_OPENLDAP_VER) OPENLDAP_VER= ${WITH_OPENLDAP_VER} .else .if defined(_OPENLDAP_VER) OPENLDAP_VER= ${_OPENLDAP_VER} .else OPENLDAP_VER= ${DEFAULT_OPENLDAP_VER} .endif .endif # WANT_OPENLDAP_VER .if defined(_OPENLDAP_VER) .if ${_OPENLDAP_VER} != ${OPENLDAP_VER} IGNORE= cannot install: OpenLDAP versions mismatch: openldap${_OPENLDAP_VER}-client is installed and wanted version is openldap${OPENLDAP_VER}-client .endif .endif CFLAGS+= -DLDAP_DEPRECATED _OPENLDAP_CLIENT_PKG!= ${PKG_INFO} -Ex openldap.\*-client 2>/dev/null; ${ECHO_CMD} _OPENLDAP_FLAVOUR= ${_OPENLDAP_CLIENT_PKG:C/openldap//:C/-client-.*//} .if defined(WANT_OPENLDAP_SASL) .if !empty(_OPENLDAP_CLIENT_PKG) && empty(_OPENLDAP_FLAVOUR) IGNORE= cannot install: SASL support requested and ${_OPENLDAP_CLIENT_PKG} is installed .endif _OPENLDAP_FLAVOUR= -sasl .endif # And now we are checking if we can use it .if defined(OPENLDAP${OPENLDAP_VER}_LIB) # compatability shim .if defined(BROKEN_WITH_OPENLDAP) IGNORE_WITH_OPENLDAP=${BROKEN_WITH_OPENLDAP} .endif .if defined(IGNORE_WITH_OPENLDAP) . for VER in ${IGNORE_WITH_OPENLDAP} . if (${OPENLDAP_VER} == "${VER}") IGNORE= cannot install: doesn't work with OpenLDAP version: ${OPENLDAP_VER} (Doesn't support OpenLDAP ${IGNORE_WITH_OPENLDAP}) . endif . endfor .endif # IGNORE_WITH_OPENLDAP LIB_DEPENDS+= ${OPENLDAP${OPENLDAP_VER}_LIB}:net/openldap${OPENLDAP_VER}${_OPENLDAP_FLAVOUR}-client .else IGNORE= cannot install: unknown OpenLDAP version: ${OPENLDAP_VER} .endif # Check for correct libs .endif # defined(USE_OPENLDAP) .endif # defined(_POSTMKINCLUDED) && !defined(Ldap_Post_Include) Index: head/Mk/bsd.linux-rpm.mk =================================================================== --- head/Mk/bsd.linux-rpm.mk (revision 420903) +++ head/Mk/bsd.linux-rpm.mk (revision 420904) @@ -1,219 +1,219 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # $FreeBSD$ # # Variables: # LINUX_DIST - Will be used to set some dist-specific presets. # Valid values: fedora # LINUX_DIST_VER - Use depends upon the dist-specific presets. # Valid values for "fedora": all version numbers # e.g. 10 for fedora 10 # Valid values for "centos": all version numbers # e.g. 6.8 for centos 6.8 # This is used to set MASTER_SITE_{,SRC_}SUBDIR # if it isn't already set. # MASTER_SITE_SRC_SUBDIR # - The subdir for the src RPM's. # DISTFILES - For simple cases this will be set automatically # based upon the DISTNAME. # SRC_DISTFILES - Variable which contains the corresponding src RPM's. # If there's no corresponding src RPM, it has to be # set to the empty value (SRC_DISTFILES= ""). # AUTOMATIC_PLIST - Generate a dynamic plist (please have a look at the # porters handbook section which talks about plists. # This feature is reserved for rare cases). # BRANDELF_DIRS - A list of directories with executables to brand # as a linux executable. The directories has to not # contain libraries. # BRANDELF_FILES - A list of files to brand as a linux executable in # case BRANDELF_DIRS can't be used. .if !defined(_POSTMKINCLUDED) && !defined(Linux_RPM_Pre_Include) Linux_RPM_Include_MAINTAINER= emulation@FreeBSD.org Linux_RPM_Pre_Include= bsd.linux-rpm.mk EXTRACT_SUFX?= .${LINUX_RPM_ARCH}.rpm SRC_SUFX?= .src.rpm USE_LINUX?= yes USE_LINUX_PREFIX= yes NO_WRKSUBDIR= yes NO_BUILD= yes . if ${USE_LINUX} == "c6" || ${USE_LINUX} == "c6_64" || ${USE_LINUX} == "yes" # default to CentOS # Do not build CentOS 6 ports if overridden by f10 . if defined(OVERRIDE_LINUX_NONBASE_PORTS) && ${OVERRIDE_LINUX_NONBASE_PORTS} == "f10" -IGNORE= This port requires CentOS ${LINUX_DIST_VER}. Please remove OVERRIDE_LINUX_NONBASE_PORTS=f10 in /etc/make.conf. +IGNORE= requires CentOS ${LINUX_DIST_VER}. Please remove OVERRIDE_LINUX_NONBASE_PORTS=f10 in /etc/make.conf . endif . endif .endif .if defined(_POSTMKINCLUDED) && !defined(Linux_RPM_Post_Include) Linux_RPM_Post_Include= bsd.linux-rpm.mk .if ${USE_LINUX} == "f10" USE_LINUX?= "f10" LINUX_DIST= fedora LINUX_DIST_VER= 10 .else # default to CentOS LINUX_DIST= centos LINUX_DIST_VER= 6.8 .endif .if defined(LINUX_DIST) DIST_SUBDIR?= rpm/${LINUX_RPM_ARCH}/${LINUX_DIST}/${LINUX_DIST_VER} . if ${LINUX_DIST} == "fedora" # we do not want to define MASTER_SITES and MASTER_SITE_* if they are already defined # ex.: MASTER_SITES=file:///... . ifndef MASTER_SITES MASTER_SITES= ${MASTER_SITE_FEDORA_LINUX} . if ${LINUX_DIST_VER} == 10 MASTER_SITE_SUBDIR?= ../releases/${LINUX_DIST_VER}/Everything/${LINUX_RPM_ARCH}/os/Packages \ ../updates/${LINUX_DIST_VER}/${LINUX_RPM_ARCH} MASTER_SITE_SRC_SUBDIR?= ../releases/${LINUX_DIST_VER}/Everything/source/SRPMS \ ../updates/${LINUX_DIST_VER}/SRPMS . else MASTER_SITE_SUBDIR?= ${LINUX_DIST_VER}/${LINUX_RPM_ARCH}/os/Fedora/RPMS \ updates/${LINUX_DIST_VER}/${LINUX_RPM_ARCH} MASTER_SITE_SRC_SUBDIR?= ${LINUX_DIST_VER}/SRPMS \ updates/${LINUX_DIST_VER}/SRPMS . endif . endif . elif ${LINUX_DIST} == "centos" MASTER_SITES?= ${MASTER_SITE_CENTOS_LINUX} ${MASTER_SITE_CENTOS_LINUX_UPDATES} MASTER_SITE_SUBDIR?= centos/${LINUX_DIST_VER}/os/${LINUX_REPO_ARCH}/Packages/ \ centos/${LINUX_DIST_VER}/updates/${LINUX_REPO_ARCH}/Packages/ . if ${LINUX_DIST_VER} == "5" #needed for Qt... LINUX_RPM_ARCH= i386 MASTER_SITE_SUBDIR= centos/5/os/i386/Packages/ . endif . if defined(PACKAGE_BUILDING) _SRC_GROUP=:SOURCE MASTER_SITES+= http://vault.centos.org/%SUBDIR%/:SOURCE MASTER_SITE_SUBDIR+= ${LINUX_DIST_VER}/os/Source/SPackages/:SOURCE . endif . endif .endif PKGNAMEPREFIX?= linux-${USE_LINUX}- # DISTFILES and SRC_DISTFILES assume that there is only one bindist # and one src file. # Please, define them in the Makefile of the port in case this assumption # is not true. DISTVERSION= ${PORTVERSION}-${RPMVERSION} DISTNAME?= ${PORTNAME}-${DISTVERSION} DISTFILES?= ${DISTNAME}${EXTRACT_SUFX} BIN_DISTFILES:= ${DISTFILES} ${LIB_DISTFILES} SRC_DISTFILES?= ${DISTNAME}${SRC_SUFX}${_SRC_GROUP} EXTRACT_ONLY?= ${BIN_DISTFILES:C/:[^:]+$//} WRKSRC:= ${WRKSRC:S/-${RPMVERSION}$//} # Define files to install. # Ports can want to install 32bit things only (if OVERRIDE_LINUX_NONBASE_PORTS) is off, # they can want to install both 32bit and 64bit things of only one package, # or they can want to install a 64bit only binary and e.g. 32/64bit libraries. # The following glue is supposed to handle this. # FIXME: Sensibly refactor this part, it looks like spaghetti. . if defined(OVERRIDE_LINUX_NONBASE_PORTS) && ${OVERRIDE_LINUX_NONBASE_PORTS} == "c6_64" _32BIT_LINUX_RPM_ARCH= i686 . if ${DISTFILES} == ${DISTNAME}${EXTRACT_SUFX} && ${USE_LINUX_RPM} != "nolib" _32BIT_LIB_DISTFILES:= ${DISTFILES:S/${LINUX_RPM_ARCH}/${_32BIT_LINUX_RPM_ARCH}/g} . elif defined(LIB_DISTFILES) _32BIT_LIB_DISTFILES= ${LIB_DISTFILES:S/${LINUX_RPM_ARCH}/${_32BIT_LINUX_RPM_ARCH}/g} . endif BIN_DISTFILES:= ${BIN_DISTFILES} ${_32BIT_LIB_DISTFILES} DISTFILES+= ${_32BIT_LIB_DISTFILES} . endif DISTFILES+= ${LIB_DISTFILES} . if defined(PACKAGE_BUILDING) DISTFILES+= ${SRC_DISTFILES} MASTER_SITE_SUBDIR+= ${MASTER_SITE_SRC_SUBDIR} ALWAYS_KEEP_DISTFILES= yes . endif .if !defined(USE_LINUX_RPM_BAD_PERMS) EXTRACT_CMD?= ${TAR} EXTRACT_BEFORE_ARGS?= --no-same-permissions --no-same-owner -xf EXTRACT_AFTER_ARGS?= .else EXTRACT_DEPENDS+= rpm2archive:archivers/rpm4 EXTRACT_CMD?= rpm2archive EXTRACT_BEFORE_ARGS?= < EXTRACT_AFTER_ARGS?= | ${TAR} xf - --no-same-permissions --no-same-owner .endif DISTINFO_FILE?= ${MASTERDIR}/distinfo.${LINUX_REPO_ARCH} BRANDELF_DIRS?= BRANDELF_FILES?= # For ports that define PORTDOCS, be sure not to install # documentation if NOPORTDOCS is defined . if defined(PORTDOCS) && defined(NOPORTDOCS) pre-patch: linux-rpm-clean-portdocs . if !target(linux-rpm-clean-portdocs) linux-rpm-clean-portdocs: . for x in ${PORTDOCS} @${RM} -f ${WRKSRC}/${DOCSDIR_REL}/${x} . endfor @${RMDIR} ${WRKSRC}/${DOCSDIR_REL} . endif . endif . if ${USE_LINUX} != "f10" PLIST?= ${MASTERDIR}/pkg-plist.${LINUX_REPO_ARCH} . endif . if defined(AUTOMATIC_PLIST) . if ${USE_LINUX} == "f10" _LINUX_BASE_SUFFIX= f10 . elif ${USE_LINUX} == "c6" || ${USE_LINUX} == "yes" _LINUX_BASE_SUFFIX= c6 . elif ${USE_LINUX} == "c6_64" _LINUX_BASE_SUFFIX= c6 . else # other linux_base ports do not provide a pkg-plist file IGNORE= uses AUTOMATIC_PLIST with an unsupported USE_LINUX, \"${USE_LINUX}\". Supported values are \"yes\", \"f10\", \"c6\", and \"c6_64\" . endif PLIST?= ${WRKDIR}/.PLIST.linux-rpm pre-install: linux-rpm-generate-plist . if !target(linux-rpm-generate-plist) linux-rpm-generate-plist: cd ${WRKSRC} && \ ${FIND} * ! -type d | ${SORT} > ${PLIST} . endif . endif . if !target(do-install) do-install: . if ${BRANDELF_DIRS} @cd ${WRKSRC} && ${FIND} ${BRANDELF_DIRS} -type f -print0 \ | ${XARGS} -0 ${FILE} | ${GREP} ELF | ${CUT} -d : -f 1 \ | ${XARGS} ${BRANDELF} -t Linux . endif . if ${BRANDELF_FILES} @cd ${WRKSRC} && ${BRANDELF} -t Linux ${BRANDELF_FILES} . endif cd ${WRKSRC} && ${FIND} * -type d -exec ${MKDIR} "${STAGEDIR}${PREFIX}/{}" \; cd ${WRKSRC} && ${FIND} * ! -type d | ${CPIO} -pm -R root:wheel ${STAGEDIR}${PREFIX} . endif .endif Index: head/Mk/bsd.ruby.mk =================================================================== --- head/Mk/bsd.ruby.mk (revision 420903) +++ head/Mk/bsd.ruby.mk (revision 420904) @@ -1,469 +1,469 @@ # # bsd.ruby.mk - Utility definitions for Ruby related ports. # # Created by: Akinori MUSHA # # $FreeBSD$ # .if !defined(Ruby_Include) Ruby_Include= bsd.ruby.mk Ruby_Include_MAINTAINER= ruby@FreeBSD.org # # [variables that a user may define] # # RUBY_VER - (See below) # RUBY_DEFAULT_VER - Set to (e.g.) "2.1" if you want to refer to "ruby21" # just as "ruby". # RUBY_ARCH - (See below) # RUBY_RD_HTML - Define if you want HTML files generated from RD files. # # # [variables that each port can define] # # RUBY - Set to full path of ruby. If you set this, the values # of the following variables are automatically obtained # from the ruby executable: RUBY_VER, RUBY_VERSION, # RUBY_NAME, RUBY_ARCH, RUBY_LIBDIR, RUBY_ARCHLIBDIR, # RUBY_SITELIBDIR, and RUBY_SITEARCHLIBDIR. # RUBY_VER - Set to the alternative short version of ruby in the # form of `x.y' (see below for current value). # USE_RUBY - Says that the port uses ruby for building and running. # RUBY_NO_BUILD_DEPENDS - Says that the port should not build-depend on ruby. # RUBY_NO_RUN_DEPENDS - Says that the port should not run-depend on ruby. # USE_LIBRUBY - Says that the port uses libruby. # USE_RUBY_EXTCONF - Says that the port uses extconf.rb to configure. # Implies USE_RUBY. # RUBY_EXTCONF - Set to the alternative name of extconf.rb # (default: extconf.rb). # RUBY_EXTCONF_SUBDIRS - Set to list of subdirectories, if multiple modules # are included. # USE_RUBY_SETUP - Says that the port uses setup.rb to configure and # build. # RUBY_SETUP - Set to the alternative name of setup.rb # (default: setup.rb). # USE_RUBY_RDTOOL - Says that the port uses rdtool to generate documents. # USE_RUBY_RDOC - Says that the port uses rdoc to generate documents. # RUBY_REQUIRE - Set to a Ruby expression to evaluate before building # the port. The constant "Ruby" is set to the integer # version number of ruby, and the result of the # expression will be set to RUBY_PROVIDED, which is # left undefined if the result is nil, false or a # zero-length string. Implies USE_RUBY. # RUBY_RD_FILES - Specify the RD files which you want to generate HTML # documents from. If this is defined and not empty, # USE_RUBY_RDTOOL is implied and RUBY_RD_HTML_FILES is # defined. # USE_RUBYGEMS - Do not use this -- instead USES=gem # # [variables that each port should not (re)define] # # RUBY_PKGNAMEPREFIX - Common PKGNAMEPREFIX for ruby ports # (default: ruby${RUBY_SUFFIX}-) # RUBY_RELVERSION - Full version of ruby without preview/beta suffix in # the form of `x.y.z' (see below for current value). # RUBY_RELVERSION_CODE - Integer version of RUBY_RELVERSION in the form of # `xyz'. # RUBY_VERSION - Composite version of RUBY_RELVERSION and # RUBY_PATCHLEVEL in the form of `x.y.z.p'. # (default: ${RUBY_RELVERSION}.${RUBY_PATCHLEVEL}) # RUBY_VERSION_CODE - Composite integer version of RUBY_VERSION in the form # of `xyzp'. # RUBY_PORTVERSION - PORTVERSION for the standard ruby ports (ruby, # ruby-gdbm, etc.). # RUBY_PORTREVISION - PORTREVISION for the standard ruby ports. # RUBY_PORTEPOCH - PORTEPOCH for the standard ruby ports. # RUBY_DISTNAME - DISTNAME for the standard ruby ports, i.e. the # basename of the ruby distribution tarball. # RUBY_DISTVERSION - The version number part of RUBY_DISTNAME. # RUBY_PATCHFILES - PATCHFILES for the standard ruby ports, i.e. the # basename of the ruby distribution tarball. # RUBY_WRKSRC - WRKSRC for the ruby port. # MASTER_SITE_SUBDIR_RUBY - MASTER_SITE_SUBDIR for the ruby distfiles. # # RUBY_SHLIBVER - Major version of libruby (see below for current # value). # RUBY_ARCH - Set to target architecture name. # (e.g. i386-freebsd7) # RUBY_SUFFIX - Suffix for ruby binaries and directories # (${RUBY_VER:S/.//}). # RUBY_WITHOUT_SUFFIX - Always ${LOCALBASE}/bin/ruby. # RUBY_WITH_SUFFIX - Always ${RUBY_WITHOUT_SUFFIX}${RUBY_SUFFIX}. # RUBY_NAME - Ruby's name with trailing suffix. # # RUBY_MODNAME - Set to the module name (default: ${PORTNAME}). # # RUBY_RD2 - Full path of rd2 executable. # RUBY_RDOC - Full path of rdoc executable. # # RUBY_BASE_PORT - Port path of base ruby without PORTSDIR, without # suffix except version. # RUBY_PORT - Port path of ruby without PORTSDIR. # RUBY_RDTOOL_PORT - Port path of rdtool without PORTSDIR. # RUBY_RDOC_PORT - Port path of rdoc without PORTSDIR. # # DEPEND_LIBRUBY - LIB_DEPENDS entry for libruby. # DEPEND_RUBY - BUILD_DEPENDS/RUN_DEPENDS entry for ruby. # DEPEND_RUBY_RDTOOL - BUILD_DEPENDS entry for rdtool. # DEPEND_RUBY_RDOC - BUILD_DEPENDS entry for rdoc. # # RUBY_LIBDIR - Installation path for architecture independent # libraries. # RUBY_ARCHLIBDIR - Installation path for architecture dependent # libraries. # RUBY_SITELIBDIR - Installation path for site architecture independent # libraries. # RUBY_SITEARCHLIBDIR - Installation path for site architecture dependent # libraries. # RUBY_DOCDIR - Installation path for documents. # RUBY_EXAMPLESDIR - Installation path for examples. # RUBY_RIDIR - Installation path for site architecture independent ri # documents. # RUBY_SITERIDIR - Installation path for site architecture dependent ri # documents. # RUBY_MODDOCDIR - Installation path for the module's documents. # RUBY_MODEXAMPLESDIR - Installation path for the module's examples. # RUBY_ELISPDIR - Installation path for emacs lisp files. # .if defined(RUBY_DEFAULT_VER) WARNING+= "RUBY_DEFAULT_VER is defined, consider using DEFAULT_VERSIONS=ruby=${RUBY_DEFAULT_VER} instead" .endif RUBY_DEFAULT_VER?= ${RUBY_DEFAULT} RUBY_VER?= ${RUBY_DEFAULT_VER} .if defined(RUBY) .if !exists(${RUBY}) -IGNORE= cannot install: you set the variable RUBY to "${RUBY}", but it does not seem to exist. Please specify an already installed ruby executable. +IGNORE= cannot install: you set the variable RUBY to "${RUBY}", but it does not seem to exist. Please specify an already installed ruby executable .endif _RUBY_TEST!= ${RUBY} -e 'begin; require "rbconfig"; puts "ok" ; rescue LoadError; puts "error"; end' .if !empty(_RUBY_TEST) && ${_RUBY_TEST} != "ok" -IGNORE= cannot install: you set the variable RUBY to "${RUBY}", but it failed to include rbconfig. Please specify a properly installed ruby executable. +IGNORE= cannot install: you set the variable RUBY to "${RUBY}", but it failed to include rbconfig. Please specify a properly installed ruby executable .endif _RUBY_CONFIG= ${RUBY} -r rbconfig -e 'C = RbConfig::CONFIG' -e RUBY_VERSION!= ${_RUBY_CONFIG} 'puts C["ruby_version"]' RUBY_SUFFIX?= # empty RUBY_ARCH!= ${_RUBY_CONFIG} 'puts C["target"]' RUBY_NAME!= ${_RUBY_CONFIG} 'puts C["ruby_install_name"]' _RUBY_SYSLIBDIR!= ${_RUBY_CONFIG} 'puts C["libdir"]' _RUBY_SITEDIR!= ${_RUBY_CONFIG} 'puts C["sitedir"]' _RUBY_VENDORDIR!= ${_RUBY_CONFIG} 'puts C["vendordir"]' .else RUBY?= ${LOCALBASE}/bin/${RUBY_NAME} .if defined(RUBY_VER) # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. . if ${RUBY_VER} == 2.1 # # Ruby 2.1 # RUBY_RELVERSION= 2.1.9 RUBY_PORTREVISION= 0 RUBY_PORTEPOCH= 1 RUBY_PATCHLEVEL= 0 RUBY21= "" # PLIST_SUB helpers . elif ${RUBY_VER} == 2.2 # # Ruby 2.2 # RUBY_RELVERSION= 2.2.5 RUBY_PORTREVISION= 0 RUBY_PORTEPOCH= 1 RUBY_PATCHLEVEL= 0 RUBY22= "" # PLIST_SUB helpers . elif ${RUBY_VER} == 2.3 # # Ruby 2.3 # RUBY_RELVERSION= 2.3.1 RUBY_PORTREVISION= 0 RUBY_PORTEPOCH= 1 RUBY_PATCHLEVEL= 0 RUBY23= "" # PLIST_SUB helpers # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. . else # # Other versions # IGNORE= Only ruby 2.1, 2.2 and 2.3 are supported _INVALID_RUBY_VER= 1 . endif .endif # defined(RUBY_VER) .if !defined(_INVALID_RUBY_VER) RUBY21?= "@comment " RUBY22?= "@comment " RUBY23?= "@comment " .if defined(BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}) .if ${BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}} == "yes" BROKEN= does not build with Ruby ${RUBY_VER} .else BROKEN= ${BROKEN_RUBY${RUBY_VER:R}${RUBY_VER:E}} .endif .endif .if ${RUBY_PATCHLEVEL} == 0 RUBY_VERSION?= ${RUBY_RELVERSION} RUBY_DISTVERSION?= ${RUBY_RELVERSION} .else RUBY_VERSION?= ${RUBY_RELVERSION}.${RUBY_PATCHLEVEL} RUBY_DISTVERSION?= ${RUBY_RELVERSION}-p${RUBY_PATCHLEVEL} .endif RUBY_WRKSRC= ${WRKDIR}/ruby-${RUBY_DISTVERSION} RUBY_CONFIGURE_ARGS+= --with-rubyhdrdir="${PREFIX}/include/ruby-${RUBY_VER}/" \ --with-rubylibprefix="${PREFIX}/lib/ruby" \ --docdir="${RUBY_DOCDIR}" \ --with-soname=ruby${RUBY_SUFFIX} CONFIGURE_TARGET?= ${ARCH}-portbld-${OPSYS:tl}${OSREL:C/\..*//} RUBY_ARCH?= ${ARCH}-${OPSYS:tl}${OSREL:C/\..*//} RUBY_NAME?= ruby${RUBY_SUFFIX} _RUBY_SYSLIBDIR?= ${PREFIX}/lib _RUBY_SITEDIR?= ${_RUBY_SYSLIBDIR}/ruby/site_ruby _RUBY_VENDORDIR?= ${_RUBY_SYSLIBDIR}/ruby/vendor_ruby .endif .endif # defined(RUBY) .if !defined(_INVALID_RUBY_VER) RUBY_DEFAULT_SUFFIX?= ${RUBY_DEFAULT_VER:S/.//} RUBY_DISTVERSION?= ${RUBY_VERSION} RUBY_PORTVERSION?= ${RUBY_VERSION} MASTER_SITE_SUBDIR_RUBY?= ${RUBY_VER} RUBY_DISTNAME?= ruby-${RUBY_DISTVERSION} RUBY_WRKSRC?= ${WRKDIR}/${RUBY_DISTNAME} RUBY_RELVERSION_CODE?= ${RUBY_RELVERSION:S/.//g} RUBY_VERSION_CODE?= ${RUBY_VERSION:S/.//g} RUBY_VER= ${RUBY_VERSION:C/([[:digit:]]+\.[[:digit:]]+).*/\1/} RUBY_SUFFIX= ${RUBY_VER:S/.//} RUBY_WITHOUT_SUFFIX?= ${LOCALBASE}/bin/ruby RUBY_WITH_SUFFIX?= ${RUBY_WITHOUT_SUFFIX}${RUBY_SUFFIX} RUBY_PKGNAMEPREFIX?= ruby${RUBY_SUFFIX}- RUBY_SHLIBVER?= ${RUBY_VER:S/.//} RUBY_CONFIGURE_ARGS+= --program-prefix="" DEPENDS_ARGS+= RUBY_VER="${RUBY_VER}" RUBY_CONFIGURE_ARGS+= --program-suffix="${RUBY_SUFFIX}" RUBY_MODNAME?= ${PORTNAME} # Commands RUBY_RD2?= ${LOCALBASE}/bin/rd2 RUBY_RDOC?= ${LOCALBASE}/bin/rdoc${RUBY_VER:S/.//} # Ports RUBY_BASE_PORT?= lang/ruby${RUBY_VER:S/.//} RUBY_PORT?= ${RUBY_BASE_PORT} RUBY_RDTOOL_PORT?= textproc/ruby-rdtool # Depends DEPEND_LIBRUBY?= lib${RUBY_NAME}.so.${RUBY_SHLIBVER}:${RUBY_PORT} DEPEND_RUBY?= ${RUBY}:${RUBY_PORT} DEPEND_RUBY_RDTOOL?= ${RUBY_RD2}:${RUBY_RDTOOL_PORT} # Directories RUBY_LIBDIR?= ${_RUBY_SYSLIBDIR}/ruby/${RUBY_VER} RUBY_ARCHLIBDIR?= ${RUBY_LIBDIR}/${RUBY_ARCH} RUBY_SITELIBDIR?= ${_RUBY_SITEDIR}/${RUBY_VER} RUBY_SITEARCHLIBDIR?= ${RUBY_SITELIBDIR}/${RUBY_ARCH} RUBY_VENDORLIBDIR?= ${_RUBY_VENDORDIR}/${RUBY_VER} RUBY_VENDORARCHLIBDIR?= ${RUBY_VENDORLIBDIR}/${RUBY_ARCH} RUBY_DOCDIR?= ${PREFIX}/share/doc/${RUBY_NAME} RUBY_EXAMPLESDIR?= ${PREFIX}/share/examples/${RUBY_NAME} RUBY_RIDIR?= ${PREFIX}/share/ri/${RUBY_VER}/system RUBY_SITERIDIR?= ${PREFIX}/share/ri/${RUBY_VER}/site RUBY_MODDOCDIR?= ${RUBY_DOCDIR}/${RUBY_MODNAME} RUBY_MODEXAMPLESDIR?= ${RUBY_EXAMPLESDIR}/${RUBY_MODNAME} RUBY_ELISPDIR?= ${PREFIX}/lib/ruby/elisp # PLIST PLIST_RUBY_DIRS= RUBY_LIBDIR="${RUBY_LIBDIR}" \ RUBY_ARCHLIBDIR="${RUBY_ARCHLIBDIR}" \ RUBY_SITELIBDIR="${RUBY_SITELIBDIR}" \ RUBY_SITEARCHLIBDIR="${RUBY_SITEARCHLIBDIR}" \ RUBY_VENDORLIBDIR="${RUBY_VENDORLIBDIR}" \ RUBY_VENDORARCHLIBDIR="${RUBY_VENDORARCHLIBDIR}" \ RUBY_MODDOCDIR="${RUBY_MODDOCDIR}" \ RUBY_MODEXAMPLESDIR="${RUBY_MODEXAMPLESDIR}" \ RUBY_DOCDIR="${RUBY_DOCDIR}" \ RUBY_EXAMPLESDIR="${RUBY_EXAMPLESDIR}" \ RUBY_RIDIR="${RUBY_RIDIR}" \ RUBY_SITERIDIR="${RUBY_SITERIDIR}" \ RUBY_ELISPDIR="${RUBY_ELISPDIR}" PLIST_SUB+= ${PLIST_RUBY_DIRS:C,DIR="(${LOCALBASE}|${PREFIX})/,DIR=",} \ RUBY_VERSION="${RUBY_VERSION}" \ RUBY_VER="${RUBY_VER}" \ RUBY_SHLIBVER="${RUBY_SHLIBVER}" \ RUBY_ARCH="${RUBY_ARCH}" \ RUBY_SUFFIX="${RUBY_SUFFIX}" \ RUBY_NAME="${RUBY_NAME}" \ RUBY_DEFAULT_SUFFIX="${RUBY_DEFAULT_SUFFIX}" \ RUBY21=${RUBY21} \ RUBY22=${RUBY22} \ RUBY23=${RUBY23} .if defined(USE_RUBY_RDOC) MAKE_ENV+= RUBY_RDOC=${RUBY_RDOC} .endif # require check .if defined(RUBY_REQUIRE) USE_RUBY= yes .if exists(${RUBY}) RUBY_PROVIDED!= ${RUBY} -e '\ Ruby = ${RUBY_RELVERSION_CODE}; \ value = begin; ${RUBY_REQUIRE}; end and puts value' .else RUBY_PROVIDED= "should be" # the latest version is going to be installed .endif .if empty(RUBY_PROVIDED) .undef RUBY_PROVIDED .endif .endif .if ${PORT_OPTIONS:MDEBUG} RUBY_FLAGS+= -d .endif # # extconf.rb support # .if defined(USE_RUBY_EXTCONF) USE_RUBY= yes RUBY_EXTCONF?= extconf.rb CONFIGURE_ARGS+= --with-opt-dir="${LOCALBASE}" CONFIGURE_ENV+= RB_USER_INSTALL=yes do-configure: ruby-extconf-configure ruby-extconf-configure: .if defined(RUBY_EXTCONF_SUBDIRS) .for d in ${RUBY_EXTCONF_SUBDIRS} @${ECHO_MSG} "===> Running ${RUBY_EXTCONF} in ${d} to configure" @cd ${CONFIGURE_WRKSRC}/${d}; \ ${SETENV} ${CONFIGURE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_EXTCONF} ${CONFIGURE_ARGS} .endfor .else @${ECHO_MSG} "===> Running ${RUBY_EXTCONF} to configure" @cd ${CONFIGURE_WRKSRC}; \ ${SETENV} ${CONFIGURE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_EXTCONF} ${CONFIGURE_ARGS} .endif .endif # # setup.rb support # .if defined(USE_RUBY_SETUP) RUBY_SETUP?= setup.rb do-configure: ruby-setup-configure ruby-setup-configure: @${ECHO_MSG} "===> Running ${RUBY_SETUP} to configure" @cd ${BUILD_WRKSRC}; \ ${SETENV} ${CONFIGURE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_SETUP} config ${CONFIGURE_ARGS} do-build: ruby-setup-build ruby-setup-build: @${ECHO_MSG} "===> Running ${RUBY_SETUP} to build" @cd ${BUILD_WRKSRC}; \ ${SETENV} ${MAKE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_SETUP} setup do-install: ruby-setup-install ruby-setup-install: @${ECHO_MSG} "===> Running ${RUBY_SETUP} to install" @cd ${INSTALL_WRKSRC}; \ ${SETENV} ${MAKE_ENV} ${RUBY} ${RUBY_FLAGS} ${RUBY_SETUP} install --prefix=${STAGEDIR} .endif .if defined(USE_LIBRUBY) LIB_DEPENDS+= ${DEPEND_LIBRUBY} .endif .if defined(USE_RUBY) .if !defined(RUBY_NO_BUILD_DEPENDS) EXTRACT_DEPENDS+= ${DEPEND_RUBY} PATCH_DEPENDS+= ${DEPEND_RUBY} BUILD_DEPENDS+= ${DEPEND_RUBY} .endif .if !defined(RUBY_NO_RUN_DEPENDS) RUN_DEPENDS+= ${DEPEND_RUBY} .endif .endif # documents RUBY_NO_RD_HTML= yes .if defined(RUBY_RD_HTML) .undef RUBY_NO_RD_HTML .endif .if defined(NOPORTDOCS) RUBY_NO_RD_HTML= yes .endif .if defined(RUBY_RD_FILES) && !defined(RUBY_NO_RD_HTML) USE_RUBY_RDTOOL= yes RUBY_RD_HTML_FILES= ${RUBY_RD_FILES:S/.rb$//:S/.rd././:S/.rd$//:S/$/.html/} PLIST_SUB+= RUBY_RD_HTML_FILES="" .if !empty(RUBY_RD_FILES) _USES_install+= 290:ruby-rd-build ruby-rd-build: @${ECHO_MSG} "===> Generating HTML documents from RD documents" @cd ${WRKSRC}; for rd in ${RUBY_RD_FILES}; do \ html=$$(echo $$rd | ${SED} 's/\.rb$$//;s/\.rd\././;s/\.rd$$//').html; \ ${ECHO_MSG} "${RUBY_RD2} $$rd > $$html"; \ ${RUBY_RD2} $$rd > $$html; \ done .endif .else RUBY_RD_HTML_FILES= # empty PLIST_SUB+= RUBY_RD_HTML_FILES="@comment " .endif .if !defined(NOPORTDOCS) && defined(USE_RUBY_RDTOOL) BUILD_DEPENDS+= ${DEPEND_RUBY_RDTOOL} .endif .endif # _INVALID_RUBY_VER .endif