From 1dc2e6871d3e5d40c5f1f6aa043509df9baa8ad6 Mon Sep 17 00:00:00 2001 From: Benedikt Boehm Date: Mon, 5 Jun 2006 18:16:40 +0000 Subject: [PATCH] fix #111081 Package-Manager: portage-2.1_rc3-r1 --- www-apache/mod_suphp/ChangeLog | 8 +- www-apache/mod_suphp/Manifest | 41 +++- .../mod_suphp/files/digest-mod_suphp-0.6.1-r2 | 3 + .../mod_suphp/files/suphp-mod_userdir.patch | 224 ++++++++++++++++++ .../mod_suphp/mod_suphp-0.6.1-r2.ebuild | 123 ++++++++++ 5 files changed, 388 insertions(+), 11 deletions(-) create mode 100644 www-apache/mod_suphp/files/digest-mod_suphp-0.6.1-r2 create mode 100644 www-apache/mod_suphp/files/suphp-mod_userdir.patch create mode 100644 www-apache/mod_suphp/mod_suphp-0.6.1-r2.ebuild diff --git a/www-apache/mod_suphp/ChangeLog b/www-apache/mod_suphp/ChangeLog index fd9575396e3b..61b6886adc5b 100644 --- a/www-apache/mod_suphp/ChangeLog +++ b/www-apache/mod_suphp/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for www-apache/mod_suphp # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/www-apache/mod_suphp/ChangeLog,v 1.8 2006/06/05 13:24:10 chtekk Exp $ +# $Header: /var/cvsroot/gentoo-x86/www-apache/mod_suphp/ChangeLog,v 1.9 2006/06/05 18:16:40 hollow Exp $ + +*mod_suphp-0.6.1-r2 (05 Jun 2006) + + 05 Jun 2006; Benedikt Böhm + +files/suphp-mod_userdir.patch, +mod_suphp-0.6.1-r2.ebuild: + fix #111081 05 Jun 2006; Luca Longinotti metadata.xml, -mod_suphp-0.6.0.ebuild, -mod_suphp-0.6.1.ebuild, diff --git a/www-apache/mod_suphp/Manifest b/www-apache/mod_suphp/Manifest index 6469b78be363..4567b234807d 100644 --- a/www-apache/mod_suphp/Manifest +++ b/www-apache/mod_suphp/Manifest @@ -1,28 +1,49 @@ -AUX 70_mod_suphp.conf 1647 RMD160 5ce6c57e1b9874f96a13a4246646a113c72800b5 SHA1 b033903c062af0e4c7c33bf5ed971e9dc3d7ce9b SHA256 eee1940f1f96c95d00bf5fabf65cc1e2b13d27da390c85eba540273e380292b1 size 1647 +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +AUX 70_mod_suphp.conf 1647 RMD160 5ce6c57e1b9874f96a13a4246646a113c72800b5 SHA1 b033903c062af0e4c7c33bf5ed971e9dc3d7ce9b SHA256 eee1940f1f96c95d00bf5fabf65cc1e2b13d27da390c85eba540273e380292b1 MD5 8c9cc137769da71d444c2208209857a7 files/70_mod_suphp.conf 1647 RMD160 5ce6c57e1b9874f96a13a4246646a113c72800b5 files/70_mod_suphp.conf 1647 SHA256 eee1940f1f96c95d00bf5fabf65cc1e2b13d27da390c85eba540273e380292b1 files/70_mod_suphp.conf 1647 -AUX suphp-apache22-compat.patch 2393 RMD160 88b5e6fd1727f234545f2c613222bac0db8e4048 SHA1 094b40c9e5d531b9bc3cb2eb2256819302feaa3f SHA256 56a62662bec13ee7021890695af23d53102b9b09ce2172292ab0f5ff000cac52 size 2393 +AUX suphp-apache22-compat.patch 2393 RMD160 88b5e6fd1727f234545f2c613222bac0db8e4048 SHA1 094b40c9e5d531b9bc3cb2eb2256819302feaa3f SHA256 56a62662bec13ee7021890695af23d53102b9b09ce2172292ab0f5ff000cac52 MD5 326471608e497bc910d8e30007730619 files/suphp-apache22-compat.patch 2393 RMD160 88b5e6fd1727f234545f2c613222bac0db8e4048 files/suphp-apache22-compat.patch 2393 SHA256 56a62662bec13ee7021890695af23d53102b9b09ce2172292ab0f5ff000cac52 files/suphp-apache22-compat.patch 2393 -AUX suphp.conf 905 RMD160 a95a7ed6f3d135ea6ab6e6ecaa272b735a306f43 SHA1 33d586b5cdb661cf7ceba6987e88dda849886374 SHA256 8a1dd8bee95dc8ab599cdcca966a583e7fbde5c41b377aa208e1f60af54b6dd7 size 905 +AUX suphp-mod_userdir.patch 7129 RMD160 5e1f75607471b1e14e8a49de5c7a748a26db1dbe SHA1 241e37912c38bc8e2d35c970f8e1e43e1cf22d45 SHA256 5abcc15eec0c741ecb480c2a7f5e3539d24f571908fc4b579ab6d2548ebd015a +MD5 21d3f8cc9f51ac60cff909cacd3e9337 files/suphp-mod_userdir.patch 7129 +RMD160 5e1f75607471b1e14e8a49de5c7a748a26db1dbe files/suphp-mod_userdir.patch 7129 +SHA256 5abcc15eec0c741ecb480c2a7f5e3539d24f571908fc4b579ab6d2548ebd015a files/suphp-mod_userdir.patch 7129 +AUX suphp.conf 905 RMD160 a95a7ed6f3d135ea6ab6e6ecaa272b735a306f43 SHA1 33d586b5cdb661cf7ceba6987e88dda849886374 SHA256 8a1dd8bee95dc8ab599cdcca966a583e7fbde5c41b377aa208e1f60af54b6dd7 MD5 4c2c4f6d464975c72a932c9eef2e3461 files/suphp.conf 905 RMD160 a95a7ed6f3d135ea6ab6e6ecaa272b735a306f43 files/suphp.conf 905 SHA256 8a1dd8bee95dc8ab599cdcca966a583e7fbde5c41b377aa208e1f60af54b6dd7 files/suphp.conf 905 -DIST suphp-0.6.1.tar.gz 361372 RMD160 c4a77b32ab8ca7f263800c6a745e22cb13959adb SHA256 fd838e3ec24846db2733ee54117c84348c21a2c41990b7a51eadf1b1df041443 size 361372 -EBUILD mod_suphp-0.6.1-r1.ebuild 3039 RMD160 4d7557a630964940186f6cfba7e196333700a8a6 SHA1 dcff6c7a666e3ed14b8498cecad92ec64d6fb561 SHA256 aa7c84b42a46ac326a4eb28ee019591907e3e15b6d0cb69ca454226be36d2549 size 3039 +DIST suphp-0.6.1.tar.gz 361372 RMD160 c4a77b32ab8ca7f263800c6a745e22cb13959adb SHA1 fddb792dcfee8195e29197b6685666cc0b75e466 SHA256 fd838e3ec24846db2733ee54117c84348c21a2c41990b7a51eadf1b1df041443 +EBUILD mod_suphp-0.6.1-r1.ebuild 3039 RMD160 4d7557a630964940186f6cfba7e196333700a8a6 SHA1 dcff6c7a666e3ed14b8498cecad92ec64d6fb561 SHA256 aa7c84b42a46ac326a4eb28ee019591907e3e15b6d0cb69ca454226be36d2549 MD5 40e0ef2a4302366586436504d031fee3 mod_suphp-0.6.1-r1.ebuild 3039 RMD160 4d7557a630964940186f6cfba7e196333700a8a6 mod_suphp-0.6.1-r1.ebuild 3039 SHA256 aa7c84b42a46ac326a4eb28ee019591907e3e15b6d0cb69ca454226be36d2549 mod_suphp-0.6.1-r1.ebuild 3039 -MISC ChangeLog 1260 RMD160 84b520ea7fed40c07456b68ec4cd1224ae092e85 SHA1 9313181145d27b43e5e7211040567409d8e6d532 SHA256 e2542aedf7eebacefff48bad5417727d511c535ee06c65a19070f0a8100ba4d4 size 1260 -MD5 14240f0b9d29f72b6c2ca63f673ae7d0 ChangeLog 1260 -RMD160 84b520ea7fed40c07456b68ec4cd1224ae092e85 ChangeLog 1260 -SHA256 e2542aedf7eebacefff48bad5417727d511c535ee06c65a19070f0a8100ba4d4 ChangeLog 1260 -MISC metadata.xml 231 RMD160 a4a252abe4fb2922d19ccc4952d0128c3ccefbce SHA1 66b21c56c3a98e5a4b489dc000ff1d5956ab63d0 SHA256 79cc89f7b494dc5097d6dc5fedeb567e0dbc13e2adfcbe3f80082ad4625b38b3 size 231 +EBUILD mod_suphp-0.6.1-r2.ebuild 3100 RMD160 b7c48e79fc4d052f60cebd5d4287dacbd2a85b57 SHA1 3a916e3de946073e5ef10fba6fcfa27456dc9d3f SHA256 3bd6a1363cbd4b74fefd14c28b47fb0b55453f7b5d18d54756ee834ef8bb9ef0 +MD5 9127442c28612aa156645c59c80ef2fa mod_suphp-0.6.1-r2.ebuild 3100 +RMD160 b7c48e79fc4d052f60cebd5d4287dacbd2a85b57 mod_suphp-0.6.1-r2.ebuild 3100 +SHA256 3bd6a1363cbd4b74fefd14c28b47fb0b55453f7b5d18d54756ee834ef8bb9ef0 mod_suphp-0.6.1-r2.ebuild 3100 +MISC ChangeLog 1422 RMD160 5671e048ce9ecc0ee35dce2294c6425c6366beb5 SHA1 475a8f7fdadf3b9e20643ff7d56df002b0c21a71 SHA256 b8847ca4c67e420769bb4a8a6eb1d5585da779e59562b1091e45ab2c2962a21f +MD5 1136b282a99f149de50e0425528e5162 ChangeLog 1422 +RMD160 5671e048ce9ecc0ee35dce2294c6425c6366beb5 ChangeLog 1422 +SHA256 b8847ca4c67e420769bb4a8a6eb1d5585da779e59562b1091e45ab2c2962a21f ChangeLog 1422 +MISC metadata.xml 231 RMD160 a4a252abe4fb2922d19ccc4952d0128c3ccefbce SHA1 66b21c56c3a98e5a4b489dc000ff1d5956ab63d0 SHA256 79cc89f7b494dc5097d6dc5fedeb567e0dbc13e2adfcbe3f80082ad4625b38b3 MD5 94cc9443fa6aead0b11dda55a10e117e metadata.xml 231 RMD160 a4a252abe4fb2922d19ccc4952d0128c3ccefbce metadata.xml 231 SHA256 79cc89f7b494dc5097d6dc5fedeb567e0dbc13e2adfcbe3f80082ad4625b38b3 metadata.xml 231 MD5 e13102858fd8132c87bfc61e2d089691 files/digest-mod_suphp-0.6.1-r1 235 RMD160 8faac9395fa8a523aab5d1d427fb92e7ca7bb933 files/digest-mod_suphp-0.6.1-r1 235 SHA256 59a2c8876291b3a883b38e3840cd5fed86f7fc44d53ec2aece917411d7ea1617 files/digest-mod_suphp-0.6.1-r1 235 +MD5 e13102858fd8132c87bfc61e2d089691 files/digest-mod_suphp-0.6.1-r2 235 +RMD160 8faac9395fa8a523aab5d1d427fb92e7ca7bb933 files/digest-mod_suphp-0.6.1-r2 235 +SHA256 59a2c8876291b3a883b38e3840cd5fed86f7fc44d53ec2aece917411d7ea1617 files/digest-mod_suphp-0.6.1-r2 235 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.3 (GNU/Linux) + +iD8DBQFEhHUcmPFBzbX68WERApcDAJ4y8UA8S/Sjqgx3aIQEmKT+9YLTgACeLcUm +6UIVzg2UGRWH5xF/MMLRxro= +=tVc9 +-----END PGP SIGNATURE----- diff --git a/www-apache/mod_suphp/files/digest-mod_suphp-0.6.1-r2 b/www-apache/mod_suphp/files/digest-mod_suphp-0.6.1-r2 new file mode 100644 index 000000000000..678c9c1d791b --- /dev/null +++ b/www-apache/mod_suphp/files/digest-mod_suphp-0.6.1-r2 @@ -0,0 +1,3 @@ +MD5 7eb8ae29404392d9eb07c69d5242d716 suphp-0.6.1.tar.gz 361372 +RMD160 c4a77b32ab8ca7f263800c6a745e22cb13959adb suphp-0.6.1.tar.gz 361372 +SHA256 fd838e3ec24846db2733ee54117c84348c21a2c41990b7a51eadf1b1df041443 suphp-0.6.1.tar.gz 361372 diff --git a/www-apache/mod_suphp/files/suphp-mod_userdir.patch b/www-apache/mod_suphp/files/suphp-mod_userdir.patch new file mode 100644 index 000000000000..b4f6f19e7e30 --- /dev/null +++ b/www-apache/mod_suphp/files/suphp-mod_userdir.patch @@ -0,0 +1,224 @@ +diff -ur suphp-0.6.1/doc/CONFIG suphp-0.6.1-userdir/doc/CONFIG +--- suphp-0.6.1/doc/CONFIG 2005-11-26 14:45:49.000000000 -0500 ++++ suphp-0.6.1-userdir/doc/CONFIG 2005-12-02 15:07:41.000000000 -0500 +@@ -95,6 +95,11 @@ + Minimum GID allowed to execute scripts. + Defaults to compile-time value. + ++handle_userdir: ++ Handle sites created by mod_userdir. ++ Scripts on userdir sites will be executed with the permissions ++ of the owner of the site. This option only affects force and paranoid mode. ++ This option is enabled by default. + + 3. Handlers + +diff -ur suphp-0.6.1/doc/suphp.conf-example suphp-0.6.1-userdir/doc/suphp.conf-example +--- suphp-0.6.1/doc/suphp.conf-example 2005-11-26 14:45:49.000000000 -0500 ++++ suphp-0.6.1-userdir/doc/suphp.conf-example 2005-12-02 15:07:41.000000000 -0500 +@@ -38,6 +38,8 @@ + ; Minimum GID + min_gid=100 + ++; Use correct permissions for mod_userdir sites ++handle_userdir=true + + [handlers] + ;Handler for php-scripts +diff -ur suphp-0.6.1/src/Application.cpp suphp-0.6.1-userdir/src/Application.cpp +--- suphp-0.6.1/src/Application.cpp 2005-11-26 14:45:49.000000000 -0500 ++++ suphp-0.6.1-userdir/src/Application.cpp 2005-12-02 17:18:27.000000000 -0500 +@@ -19,6 +19,7 @@ + */ + + #include ++#include + + #include "config.h" + +@@ -300,29 +301,33 @@ + // Paranoid and force mode + + #if (defined(OPT_USERGROUP_PARANOID) || defined(OPT_USERGROUP_FORCE)) +- std::string targetUsername, targetGroupname; +- try { +- targetUsername = environment.getVar("SUPHP_USER"); +- targetGroupname = environment.getVar("SUPHP_GROUP"); +- } catch (KeyNotFoundException& e) { +- throw SecurityException( ++ if (config.getHandleUserdir() && checkUserDir(environment.getVar("SUPHP_URI"),targetUser)) { ++ targetGroup = targetUser.getGroupInfo(); ++ } else { ++ std::string targetUsername, targetGroupname; ++ try { ++ targetUsername = environment.getVar("SUPHP_USER"); ++ targetGroupname = environment.getVar("SUPHP_GROUP"); ++ } catch (KeyNotFoundException& e) { ++ throw SecurityException( + "Environment variable SUPHP_USER or SUPHP_GROUP not set", + __FILE__, __LINE__); +- } ++ } + +- if (targetUsername[0] == '#' && targetUsername.find_first_not_of( ++ if (targetUsername[0] == '#' && targetUsername.find_first_not_of( + "0123456789", 1) == std::string::npos) { +- targetUser = api.getUserInfo(Util::strToInt(targetUsername.substr(1))); +- } else { +- targetUser = api.getUserInfo(targetUsername); +- } ++ targetUser = api.getUserInfo(Util::strToInt(targetUsername.substr(1))); ++ } else { ++ targetUser = api.getUserInfo(targetUsername); ++ } + +- if (targetGroupname[0] == '#' && targetGroupname.find_first_not_of( ++ if (targetGroupname[0] == '#' && targetGroupname.find_first_not_of( + "0123456789", 1) == std::string::npos) { +- targetGroup = api.getGroupInfo( ++ targetGroup = api.getGroupInfo( + Util::strToInt(targetGroupname.substr(1))); +- } else { +- targetGroup = api.getGroupInfo(targetGroupname); ++ } else { ++ targetGroup = api.getGroupInfo(targetGroupname); ++ } + } + #endif // OPT_USERGROUP_PARANOID || OPT_USERGROUP_FORCE + +@@ -473,6 +478,28 @@ + } + } + ++bool suPHP::Application::checkUserDir(const std::string& url, UserInfo& user) const { ++ ++ if (url.length() <= 2 || url[1] != '~') ++ return false; ++ ++ API& api = API_Helper::getSystemAPI(); ++ std::string topDir; ++ std::istringstream strm(url); ++ ++ for (int i = 0; i < 2; i++) ++ if (!std::getline(strm, topDir, '/')) ++ return false; ++ ++ std::string userName = topDir.substr(1,topDir.length()); ++ ++ try { ++ user = api.getUserInfo(userName); ++ return true; ++ } catch (LookupException& e) { ++ return false; ++ } ++} + + int main(int argc, char **argv) { + try { +diff -ur suphp-0.6.1/src/Application.hpp suphp-0.6.1-userdir/src/Application.hpp +--- suphp-0.6.1/src/Application.hpp 2005-11-26 14:45:49.000000000 -0500 ++++ suphp-0.6.1-userdir/src/Application.hpp 2005-12-02 15:07:41.000000000 -0500 +@@ -39,6 +39,7 @@ + #include "SystemException.hpp" + #include "SoftException.hpp" + #include "SecurityException.hpp" ++#include "UserInfo.hpp" + + namespace suPHP { + /** +@@ -107,6 +108,12 @@ + const Configuration& config) const + throw (SoftException); + ++ /** ++ * Checks if a given URL is a userdir ++ * associated user is assigned to the user parameter ++ */ ++ bool checkUserDir(const std::string& url, ++ UserInfo& user) const; + + public: + /** +diff -ur suphp-0.6.1/src/Configuration.cpp suphp-0.6.1-userdir/src/Configuration.cpp +--- suphp-0.6.1/src/Configuration.cpp 2005-11-26 14:45:49.000000000 -0500 ++++ suphp-0.6.1-userdir/src/Configuration.cpp 2005-12-02 17:22:46.000000000 -0500 +@@ -112,6 +112,7 @@ + #endif + this->umask = 0077; + this->chroot_path = ""; ++ this->handle_userdir = true; + } + + void suPHP::Configuration::readFromFile(File& file) +@@ -157,6 +158,8 @@ + this->umask = Util::octalStrToInt(value); + else if (key == "chroot") + this->chroot_path = value; ++ else if (key == "handle_userdir") ++ this->handle_userdir = this->strToBool(value); + else + throw ParsingException("Unknown option \"" + key + + "\" in section [global]", +@@ -250,3 +253,7 @@ + std::string suPHP::Configuration::getChrootPath() const { + return this->chroot_path; + } ++ ++bool suPHP::Configuration::getHandleUserdir() const { ++ return this->handle_userdir; ++} +diff -ur suphp-0.6.1/src/Configuration.hpp suphp-0.6.1-userdir/src/Configuration.hpp +--- suphp-0.6.1/src/Configuration.hpp 2005-11-26 14:45:49.000000000 -0500 ++++ suphp-0.6.1-userdir/src/Configuration.hpp 2005-12-02 15:07:41.000000000 -0500 +@@ -57,7 +57,8 @@ + int min_gid; + int umask; + std::string chroot_path; +- ++ bool handle_userdir; ++ + /** + * Converts string to bool + */ +@@ -165,6 +166,12 @@ + * Return chroot path + */ + std::string getChrootPath() const; ++ ++ /** ++ * Return whether to correctly handle mod_userdir sites ++ */ ++ bool getHandleUserdir() const; ++ + }; + }; + +diff -ur suphp-0.6.1/src/apache/mod_suphp.c suphp-0.6.1-userdir/src/apache/mod_suphp.c +--- suphp-0.6.1/src/apache/mod_suphp.c 2005-11-26 14:45:49.000000000 -0500 ++++ suphp-0.6.1-userdir/src/apache/mod_suphp.c 2005-12-02 15:07:41.000000000 -0500 +@@ -444,7 +444,10 @@ + } + } + } +- ++ ++ /* for mod_userdir checking */ ++ apr_table_setn(r->subprocess_env, "SUPHP_URI", apr_pstrdup(p, r->uri)); ++ + if (auth_user && auth_pass) { + ap_table_setn(r->subprocess_env, "SUPHP_AUTH_USER", auth_user); + ap_table_setn(r->subprocess_env, "SUPHP_AUTH_PW", auth_pass); +diff -ur suphp-0.6.1/src/apache2/mod_suphp.c suphp-0.6.1-userdir/src/apache2/mod_suphp.c +--- suphp-0.6.1/src/apache2/mod_suphp.c 2005-11-26 14:45:49.000000000 -0500 ++++ suphp-0.6.1-userdir/src/apache2/mod_suphp.c 2005-12-02 15:07:41.000000000 -0500 +@@ -461,6 +461,10 @@ + } + } + ++ /* for mod_userdir checking */ ++ apr_table_setn(r->subprocess_env, "SUPHP_URI", ++ apr_pstrdup(r->pool, r->uri)); ++ + if (auth_user && auth_pass) + { + apr_table_setn(r->subprocess_env, "SUPHP_AUTH_USER", auth_user); diff --git a/www-apache/mod_suphp/mod_suphp-0.6.1-r2.ebuild b/www-apache/mod_suphp/mod_suphp-0.6.1-r2.ebuild new file mode 100644 index 000000000000..e42ae7cdce1d --- /dev/null +++ b/www-apache/mod_suphp/mod_suphp-0.6.1-r2.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-apache/mod_suphp/mod_suphp-0.6.1-r2.ebuild,v 1.1 2006/06/05 18:16:40 hollow Exp $ + +inherit apache-module eutils + +MY_P=${P/mod_/} + +SETIDMODES="mode-force mode-owner mode-paranoid" + +DESCRIPTION="A PHP wrapper for Apache" +HOMEPAGE="http://www.suphp.org" +SRC_URI="http://www.suphp.org/download/${MY_P}.tar.gz" + +LICENSE="GPL-2" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="checkpath ${SETIDMODES}" +SLOT="0" + +S="${WORKDIR}/${MY_P}" + +APXS1_S="${S}/src/apache" +APACHE1_MOD_CONF="70_${PN}" +APACHE1_MOD_DEFINE="SUPHP" + +APXS2_S="${S}/src/apache2" +APACHE2_MOD_CONF="70_${PN}" +APACHE2_MOD_DEFINE="SUPHP" + +need_apache2 + +pkg_setup() { + modecnt=0 + for mode in ${SETIDMODES}; do + if use ${mode}; then + if [ ${modecnt} -eq 0 ]; then + SUPHP_SETIDMODE=${mode/mode-} + let modecnt++ + elif [ ${modecnt} -ge 1 ]; then + die "You can only select ONE mode in your USE flags!" + fi + fi + done + + if [ ${modecnt} -eq 0 ]; then + ewarn + ewarn "No mode selected, defaulting to paranoid!" + ewarn + ewarn "If you want to choose another mode, put mode-force OR mode-owner" + ewarn "into your USE flags and run emerge again." + ewarn + SUPHP_SETIDMODE=paranoid + fi + + einfo + einfo "Using ${SUPHP_SETIDMODE/mode-} mode" + einfo + einfo "You can manipulate several configure options of this" + einfo "ebuild through environment variables:" + einfo + einfo "SUPHP_MINUID: Minimum UID, which is allowed to run scripts (default: 1000)" + einfo "SUPHP_MINGID: Minimum GID, which is allowed to run scripts (default: 100)" + einfo "SUPHP_APACHEUSER: Name of the user Apache is running as (default: apache)" + einfo "SUPHP_LOGFILE: Path to suPHP logfile (default: /var/log/apache2/suphp_log)" + einfo + + : ${SUPHP_MINUID:=1000} + : ${SUPHP_MINGID:=100} + : ${SUPHP_APACHEUSER:="apache"} + : ${SUPHP_LOGFILE:="/var/log/apache2/suphp_log"} +} + +src_unpack() { + unpack ${A} + + cd "${S}" + + epatch "${FILESDIR}/suphp-mod_userdir.patch" + epatch "${FILESDIR}/suphp-apache22-compat.patch" + if has_version ">=dev-libs/apr-1.0.0" ; then + sed -e "s|apr-config|apr-1-config|g" -i configure + fi +} + +src_compile() { + local myargs= + use checkpath || myargs="${myargs} --disable-checkpath" + + myargs="${myargs} \ + --with-setid-mode=${SUPHP_SETIDMODE} \ + --with-min-uid=${SUPHP_MINUID} \ + --with-min-gid=${SUPHP_MINGID} \ + --with-apache-user=${SUPHP_APACHEUSER} \ + --with-logfile=${SUPHP_LOGFILE} \ + --with-apxs=${APXS2}" + if has_version ">=dev-libs/apr-1.0.0" ; then + CFLAGS="$(apr-1-config --includes) $(apu-1-config --includes)" \ + econf ${myargs} || die "econf failed" + else + CFLAGS="$(apr-config --includes) $(apu-config --includes)" \ + econf ${myargs} || die "econf failed" + fi + + emake || die "make failed" +} + +src_install() { + apache-module_src_install + dosbin src/suphp + + dodoc ChangeLog doc/CONFIG + + docinto apache + dodoc doc/apache/CONFIG doc/apache/INSTALL + + insinto /etc + doins ${FILESDIR}/suphp.conf +} + +pkg_postinst() { + # make suphp setuid + chmod 4755 /usr/sbin/suphp +} -- 2.26.2