diff --git a/eclass/apache-2.eclass b/eclass/apache-2.eclass index 6ec56b07..ceb76efa 100644 --- a/eclass/apache-2.eclass +++ b/eclass/apache-2.eclass @@ -1,16 +1,16 @@ # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/apache-2.eclass,v 1.5 2007/12/31 23:46:24 hollow Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/apache-2.eclass,v 1.11 2008/03/23 13:03:53 hollow Exp $ -# @ECLASS: apache-2 -# @MAINTAINER: apache-devs@gentoo.org -# @BLURB: Provides a common set of functions for >=apache-2.2* ebuilds +# @ECLASS: apache-2.eclass +# @MAINTAINER: +# apache-devs@gentoo.org +# @BLURB: Provides a common set of functions for apache-2.x ebuilds # @DESCRIPTION: -# This eclass handles common apache ebuild functions in a sane way and providing -# information about where certain interfaces are located such as LoadModule -# generation and inter-module dependency checking. +# This eclass handles apache-2.x ebuild functions such as LoadModule generation +# and inter-module dependency checking. -inherit depend.apache eutils flag-o-matic multilib autotools +inherit autotools confutils eutils flag-o-matic multilib # ============================================================================== # INTERNAL VARIABLES @@ -27,37 +27,37 @@ GENTOO_PATCHNAME="gentoo-${PF}" # files are located GENTOO_PATCHDIR="${WORKDIR}/${GENTOO_PATCHNAME}" -# @ECLASS-VARIABLE: GENTOO_DEVELOPER +# @VARIABLE: GENTOO_DEVELOPER # @DESCRIPTION: # This variable needs to be set in the ebuild and contains the name of the # gentoo developer who created the patch tarball -# @ECLASS-VARIABLE: GENTOO_PATCHSTAMP +# @VARIABLE: GENTOO_PATCHSTAMP # @DESCRIPTION: # This variable needs to be set in the ebuild and contains the date the patch -# tarball was created at in YYMMDD format +# tarball was created at in YYYYMMDD format SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2 http://dev.gentoo.org/~${GENTOO_DEVELOPER}/dist/apache/${GENTOO_PATCHNAME}-${GENTOO_PATCHSTAMP}.tar.bz2 http://ftp.mars.arge.at/pub/${GENTOO_PATCHNAME}-${GENTOO_PATCHSTAMP}.tar.bz2" -# @ECLASS-VARIABLE: IUSE_MPMS_FORK +# @VARIABLE: IUSE_MPMS_FORK # @DESCRIPTION: # This variable needs to be set in the ebuild and contains a list of forking -# (i.e. non-threaded) MPMS +# (i.e. non-threaded) MPMs -# @ECLASS-VARIABLE: IUSE_MPMS_THREAD +# @VARIABLE: IUSE_MPMS_THREAD # @DESCRIPTION: # This variable needs to be set in the ebuild and contains a list of threaded -# MPMS +# MPMs -# @ECLASS-VARIABLE: IUSE_MODULES +# @VARIABLE: IUSE_MODULES # @DESCRIPTION: # This variable needs to be set in the ebuild and contains a list of available # built-in modules IUSE_MPMS="${IUSE_MPMS_FORK} ${IUSE_MPMS_THREAD}" -IUSE="${IUSE} debug doc ldap selinux ssl static suexec threads" +IUSE="${IUSE} debug doc mozldap ldap selinux ssl static suexec threads" for module in ${IUSE_MODULES} ; do IUSE="${IUSE} apache2_modules_${module}" @@ -74,7 +74,7 @@ DEPEND="dev-lang/perl ldap? ( =net-nds/openldap-2* ) mozldap? ( =dev-libs/mozldap-6* ) selinux? ( sec-policy/selinux-apache ) - ssl? ( dev-libs/openssl ) + ssl? ( >=dev-libs/openssl-0.9.8f ) !=www-servers/apache-1*" RDEPEND="${DEPEND}" PDEPEND="~app-admin/apache-tools-${PV}" @@ -86,7 +86,7 @@ S="${WORKDIR}/httpd-${PV}" # ============================================================================== # @ECLASS-VARIABLE: MY_MPM -# DESCRIPTION: +# @DESCRIPTION: # This internal variable contains the selected MPM after a call to setup_mpm() # @FUNCTION: setup_mpm @@ -135,7 +135,7 @@ setup_mpm() { fi } -# @ECLASS-VARIABLE: MODULE_CRITICAL +# @VARIABLE: MODULE_CRITICAL # @DESCRIPTION: # This variable needs to be set in the ebuild and contains a space-separated # list of modules critical for the default apache. A user may still @@ -166,7 +166,7 @@ check_module_critical() { fi } -# @ECLASS-VARIABLE: MODULE_DEPENDS +# @VARIABLE: MODULE_DEPENDS # @DESCRIPTION: # This variable needs to be set in the ebuild and contains a space-separated # list of dependency tokens each with a module and the module it depends on @@ -181,7 +181,7 @@ check_module_depends() { for m in ${MY_MODS} ; do for dep in ${MODULE_DEPENDS} ; do - if [[ "${m}" == "${dep%:*}" ]]; then + if [[ "${m}" == "${dep%:*}" ]] ; then if ! use apache2_modules_${dep#*:} ; then eerror "Module '${m}' depends on '${dep#*:}'" err=1 @@ -196,12 +196,12 @@ check_module_depends() { } # @ECLASS-VARIABLE: MY_CONF -# DESCRIPTION: +# @DESCRIPTION: # This internal variable contains the econf options for the current module # selection after a call to setup_modules() # @ECLASS-VARIABLE: MY_MODS -# DESCRIPTION: +# @DESCRIPTION: # This internal variable contains a sorted, space separated list of currently # selected modules after a call to setup_modules() @@ -220,19 +220,14 @@ setup_modules() { MY_CONF="--enable-so=static" - if use ldap && use mozldap ; then + if use ldap && use mozldap ; then eerror "you cant activate ldap & mozldap at the same time " eerror "plz deactivate \"www-servers/apache -ldap mozldap\" one in" eerror "\"etc/portage/package.use\" ;p" die "ldap and mozldap USE conflict" fi if use ldap || use mozldap ; then - if ( ! built_with_use 'dev-libs/apr-util' ldap ) || ( ! built_with_use 'dev-libs/apr-util' mozldap ) ; then - eerror "dev-libs/apr-util is missing LDAP support. For apache to have" - eerror "ldap support, apr-util must be built with the ldap or mozldap USE-flag" - eerror "enabled." - die "ldap or mozldap USE-flag enabled while not supported in apr-util" - fi + confutils_use_depend_built_with_all ldap dev-libs/apr-util ldap MY_CONF="${MY_CONF} --enable-authnz_ldap=${mod_type} --enable-ldap=${mod_type}" MY_MODS="${MY_MODS} ldap authnz_ldap" else @@ -298,7 +293,7 @@ setup_modules() { check_module_critical } -# @ECLASS-VARIABLE: MODULE_DEFINES +# @VARIABLE: MODULE_DEFINES # @DESCRIPTION: # This variable needs to be set in the ebuild and contains a space-separated # list of tokens each mapping a module to a runtime define which can be @@ -310,7 +305,7 @@ setup_modules() { # This internal function generates the LoadModule lines for httpd.conf based on # the current module selection and MODULE_DEFINES generate_load_module() { - local endit=0 mod_lines= mod_dir="${D}${APACHE2_MODULESDIR}" + local endit=0 mod_lines= mod_dir="${D}/usr/$(get_libdir)/apache2/modules" if use static; then sed -i -e "/%%LOAD_MODULE%%/d" \ @@ -372,6 +367,10 @@ check_upgrade() { apache-2_pkg_setup() { check_upgrade + # setup apache user and group + enewgroup apache 81 + enewuser apache 81 -1 /var/www apache + setup_mpm setup_modules @@ -379,10 +378,6 @@ apache-2_pkg_setup() { MY_CONF="${MY_CONF} --enable-maintainer-mode --enable-exception-hook" fi - # setup apache user and group - enewgroup apache 81 - enewuser apache 81 -1 /var/www apache - elog "Please note that you need SysV IPC support in your kernel." elog "Make sure CONFIG_SYSVIPC=y is set." elog @@ -457,7 +452,7 @@ apache-2_src_compile() { # @FUNCTION: apache-2_src_install # @DESCRIPTION: -# This function runs emake install and generates, install and adapts the gentoo +# This function runs `emake install' and generates, installs and adapts the gentoo # specific configuration files found in the tarball apache-2_src_install() { make DESTDIR="${D}" install || die "make install failed" @@ -489,10 +484,8 @@ apache-2_src_install() { # link apache2ctl to the init script dosym /etc/init.d/apache2 /usr/sbin/apache2ctl - # provide symlinks for all the stuff we no longer rename, bug 177697 - for i in suexec apxs; do - dosym /usr/sbin/${i} /usr/sbin/${i}2 - done + # provide legacy symlink for apxs, bug 177697 + dosym /usr/sbin/apxs /usr/sbin/apxs2 # install some thirdparty scripts exeinto /usr/sbin @@ -510,16 +503,18 @@ apache-2_src_install() { rm -Rf "${D}/usr/share/doc/${PF}/manual" fi - # the default webroot gets stored in /usr/share/doc - ebegin "Installing default webroot to /usr/share/doc/${PF}" - mv -f "${D}/var/www/localhost" "${D}/usr/share/doc/${PF}/webroot" + # the default webroot gets stored in /usr/share/${PF}/webroot + ebegin "Installing default webroot to /usr/share/${PF}/webroot" + dodir /usr/share/${PF} + mv -f "${D}/var/www/localhost" "${D}/usr/share/${PF}/webroot" eend $? - keepdir /var/www/localhost/htdocs # set some sane permissions for suexec if use suexec ; then fowners 0:apache /usr/sbin/suexec fperms 4710 /usr/sbin/suexec + # provide legacy symlink for suexec, bug 177697 + dosym /usr/sbin/suexec /usr/sbin/suexec2 fi # empty dirs @@ -536,13 +531,14 @@ apache-2_src_install() { # @FUNCTION: apache-2_pkg_postinst # @DESCRIPTION: # This function creates test certificates if SSL is enabled and installs the -# default webroot if /var/www/localhost does not exist. We do this here because -# the default webroot is a copy of the files that exist elsewhere and we don't -# want them to be managed/removed by portage when apache is upgraded. +# default webroot to /var/www/localhost if it does not exist. We do this here +# because the default webroot is a copy of the files that exist elsewhere and we +# don't want them to be managed/removed by portage when apache is upgraded. apache-2_pkg_postinst() { + einfo + if use ssl && [[ ! -e "${ROOT}/etc/apache2/ssl/server.crt" ]] ; then cd "${ROOT}"/etc/apache2/ssl - einfo einfo "Generating self-signed test certificate in ${ROOT}etc/apache2/ssl ..." yes "" 2>/dev/null | \ "${ROOT}"/usr/sbin/gentestcrt.sh >/dev/null 2>&1 || \ @@ -561,19 +557,19 @@ apache-2_pkg_postinst() { else einfo "Installing default webroot to ${ROOT}var/www/localhost" mkdir -p "${ROOT}"/var/www/localhost - cp -R "${ROOT}"/usr/share/doc/${PF}/webroot/* "${ROOT}"/var/www/localhost - chown -R apache:0 "${ROOT}"/var/www/localhost + cp -R "${ROOT}"/usr/share/${PF}/webroot/* "${ROOT}"/var/www/localhost/ + einfo fi } # @FUNCTION: apache-2_pkg_config # @DESCRIPTION: -# This function installs -- and removes a previously existing -- default webroot -# to /var/www/localhost +# This function installs -- and overwrites -- the default webroot to +# /var/www/localhost apache-2_pkg_config() { einfo "Installing default webroot to ${ROOT}var/www/localhost" - mkdir "${ROOT}"var{,/www{,/localhost}} - cp -R "${ROOT}"usr/share/doc/${PF}/webroot/* "${ROOT}"var/www/localhost/ + mkdir -p "${ROOT}"/var/www/localhost + cp -R "${ROOT}"/usr/share/${PF}/webroot/* "${ROOT}"/var/www/localhost/ } EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst pkg_config diff --git a/eclass/toolchain-llvm.eclass b/eclass/toolchain-llvm.eclass index 8d0f1391..184453fb 100644 --- a/eclass/toolchain-llvm.eclass +++ b/eclass/toolchain-llvm.eclass @@ -18,7 +18,7 @@ if [[ -n ${LLVM_TYPE} ]] ; then else case ${PV} in 9999) LTYPE="svn";; - 9999_pre*) LTYPE="snap";; + 9999_pre*) LTYPE="pre";; *) LTYPE="rel";; esac fi @@ -27,8 +27,8 @@ if [[ ${LTYPE} == "svn" ]] ; then extra_eclass="subversion" ESVN_REPO_URI="http://llvm.org/svn/llvm-project/llvm/trunk/llvm" LVER="svn" -elif [[ ${LTYPE} == "snap" ]] ; then - LVER=${PV/9999_pre} +elif [[ ${LTYPE} == "pre" ]] ; then + LVER=${PV/pre*} elif [[ ${LTYPE} == "rel" ]] ; then LVER=${PV} else @@ -51,7 +51,7 @@ HOMEPAGE="http://llvm.org/" case ${LTYPE} in svn) SRC_URI="";; - snap) SRC_URI="ftp://gcc.gnu.org/pub/llvm/snapshots/llvm-${LVER}.tar.bz2";; + pre) SRC_URI="http://llvm.org/prereleases/${LVER}/llvm-${LVER}.tar.gz";; rel) SRC_URI="http://llvm.org/releases/${PV}/llvm-${PV}.tar.gz" esac