From b99891be04462d363671fa5bc258b3f032ac713e Mon Sep 17 00:00:00 2001 From: Bernard Cafarelli Date: Wed, 13 Jan 2010 15:14:48 +0000 Subject: Add live ebuild, also by steveb, bug #295634 svn path=/overlay/; revision=428 --- gnustep-libs/sope/ChangeLog | 9 + gnustep-libs/sope/Manifest | 6 +- .../sope/files/sope-r1660-MySQL4Channel.m.patch | 34 ++++ .../sope/files/sope-r1660-NGHttp+WO.m.patch | 11 ++ .../files/sope-r1660-NGLogSyslogAppender.m.patch | 11 ++ gnustep-libs/sope/sope-4.9_pre200908051100.ebuild | 7 +- gnustep-libs/sope/sope-9999.ebuild | 187 +++++++++++++++++++++ 7 files changed, 261 insertions(+), 4 deletions(-) create mode 100644 gnustep-libs/sope/files/sope-r1660-MySQL4Channel.m.patch create mode 100644 gnustep-libs/sope/files/sope-r1660-NGHttp+WO.m.patch create mode 100644 gnustep-libs/sope/files/sope-r1660-NGLogSyslogAppender.m.patch create mode 100644 gnustep-libs/sope/sope-9999.ebuild diff --git a/gnustep-libs/sope/ChangeLog b/gnustep-libs/sope/ChangeLog index e055599..05fa26a 100644 --- a/gnustep-libs/sope/ChangeLog +++ b/gnustep-libs/sope/ChangeLog @@ -2,6 +2,15 @@ # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*sope-9999 (13 Jan 2010) + + 13 Jan 2010; Bernard Cafarelli + +files/sope-r1660-MySQL4Channel.m.patch, +sope-9999.ebuild, + +files/sope-r1660-NGHttp+WO.m.patch, + +files/sope-r1660-NGLogSyslogAppender.m.patch, + sope-4.9_pre200908051100.ebuild: + Add live ebuild, also by steveb, bug #295634 + *sope-4.9_pre200908051100 (12 Jan 2010) 12 Jan 2010; Bernard Cafarelli diff --git a/gnustep-libs/sope/Manifest b/gnustep-libs/sope/Manifest index 14e168b..aedbd94 100644 --- a/gnustep-libs/sope/Manifest +++ b/gnustep-libs/sope/Manifest @@ -1,5 +1,8 @@ AUX 47_mod_ngobjweb.conf 112 RMD160 30045d2fb17eab9fc077052c2e6aaa2f325deea3 SHA1 2947d6b7566491208174b0026add9bc6521c76b3 SHA256 14d5316e564ac542ad3245f921efb4cdbcc613b3273ba4b57968d316ee940359 AUX sope-r1660-LDAP_deprecated.patch 318 RMD160 32c12a2a6e562d0a24baf3e68f119aee00a3d6c7 SHA1 1613cf53b3ce111873f5899e1797f03dc769084c SHA256 174f888acb7238c5db37ace476c5374a1f10fc9f99352105b13b1ee0e5826bdb +AUX sope-r1660-MySQL4Channel.m.patch 1342 RMD160 efc4bd0b3bb5eca3226418c5f845df496bb1ae8b SHA1 debf85190c199232cfc87b6c56770b21e196381d SHA256 d4a549621b1a131b4ce76d8323a28a7b09acb6f368e669c5f9fc1b490a0110bf +AUX sope-r1660-NGHttp+WO.m.patch 342 RMD160 02018ae77c6b3868b99fbfc86a1a276796242aff SHA1 f57cd6c846d3a79f4a92762a5d239c5c90a52058 SHA256 ed891bc5d9246ced89bdcd2e497709c0b078970fb9b8e7ab4e831ac17f086dc8 +AUX sope-r1660-NGLogSyslogAppender.m.patch 484 RMD160 713637e852490d7a3476dc0cc9bbec4405ee84ce SHA1 d3b3e36937c152ee7e1438344fbdc20dd60929c2 SHA256 dbba7355709a726a4e7ed03d46a759b6a8804a5ef6b9d6f45abbefa30d3d4e9f AUX sope-r1660-NSDictionary+KVC.patch 3393 RMD160 8c5d448a9200e0c0561ea8e31528a2b8b5f85c48 SHA1 4aed6596a1e6e4fb21147edabd07142db72813d4 SHA256 a4649a486b04450846e51319ed330cfffd5de1a5200fe21fb40259418e2126d6 AUX sope-r1660-NSNull+misc.m.patch 478 RMD160 121591b6873c32ff2d97bb6ddaa80d0db4aeeee4 SHA1 38c162f0b8741f40302be30ed018d2ffff0e9051 SHA256 3f49349059597eb91b7e5f414dd328727a5b990af162cbcfe487b324e66a650c AUX sope-r1660-NSZoneMallocAtomic.patch 1602 RMD160 52d14f3b5fbb068ef6160e7466b0fdabcb154a10 SHA1 5f613b52bcbb9ea1fa48186b1d219f6039206fea SHA256 af90f59f72b100503f8f8a478a918e1002a3f7ef40cd2f0a03f3dcc62e35fcda @@ -10,6 +13,7 @@ AUX sope-use_system_root.patch 548 RMD160 add8b03f06b20ae96676b4efe17af08e024eae AUX sope.envd 78 RMD160 6eea98d1769582cfe59f8bceee2b693fdb644f25 SHA1 a62803c8fded1cec5c6588fb5eb6e7b7302ae47b SHA256 856ba9e8d7892c0287fef0e57f3e5537cce4578c4be3c9910db4f145f860a608 DIST SOGo-1.1.0.tar.gz 3613661 RMD160 b6fd66c0825f34e3fbc12d23c9b8c144a5b9cd65 SHA1 0e19f79fd764e9deba14a6346636b7ee86832014 SHA256 950e1a954d8905e187e09336893c50b3c7a16de42ada5c50932766974d5e7a13 DIST sope-trunk-r1660-200908051100.tar.gz 4261964 RMD160 588e35075319983f226b15fd6b07c8765054cf22 SHA1 9633265ce04b4df496457ad6ffbd6ade1e6d7cfa SHA256 45ff87319267882b21516091d6e812de8e548356774dafaa8b59c0fb6f6adb9b -EBUILD sope-4.9_pre200908051100.ebuild 6830 RMD160 e0532c7e4c482debea7727b86402c4c0e056fe35 SHA1 5c62ac5053df69c81ef987d22ec003bd09b04ee9 SHA256 600706ab2257341b8997c479131b03e8f48f8167cd11f855e1fae23a668beec7 +EBUILD sope-4.9_pre200908051100.ebuild 6806 RMD160 ce99d764b80f2d385b14b7345aec7075d4d05bc7 SHA1 ab6c23c5d4e41741fea4e4ecd46410ac6c5d5856 SHA256 2f10056befaa959232ce7faaed8d9ba8d8e3f9810a6cd336745c44ad559260fb +EBUILD sope-9999.ebuild 7522 RMD160 e8cd76a6ab30cce53a97fda0006d8f26bc99b8db SHA1 d136fba86ea77449eb13247ec26b78d0d320e543 SHA256 f3f808d907bbbb22330f69e296a74f22a2619809815d0541c25e652c9bfc98dd MISC ChangeLog 760 RMD160 06eb69969af5697ab0888ec21390a436e1a0a390 SHA1 72778b7266b26060983b4427e28e41b77984b9be SHA256 c890637b165ed92964aab52e8bf30d68ff0780b82700743acacff449a8ea9d68 MISC metadata.xml 706 RMD160 18fd70a1bccb6068c67a4b3f7ac20edaa8d8242e SHA1 53ea5d3b07c4078e9ee22b6621574043196b1fe8 SHA256 51ecf43fc7e0c56c3c1cdd1150a6b649678284d21c6519d0d960bebd66505e39 diff --git a/gnustep-libs/sope/files/sope-r1660-MySQL4Channel.m.patch b/gnustep-libs/sope/files/sope-r1660-MySQL4Channel.m.patch new file mode 100644 index 0000000..b7e026c --- /dev/null +++ b/gnustep-libs/sope/files/sope-r1660-MySQL4Channel.m.patch @@ -0,0 +1,34 @@ +--- sope-gdl1/MySQL/MySQL4Channel.m 2009-11-28 00:43:27.731467911 +0100 ++++ sope-gdl1/MySQL/MySQL4Channel.m.new 2009-11-28 00:42:10.683968806 +0100 +@@ -634,11 +634,11 @@ + + if ((merrno = mysql_errno(self->_connection)) != 0) { + const char *error; ++ error = mysql_error(self->_connection); + + if (isDebuggingEnabled) + NSLog(@"%@ cannot use result: '%s'", self, error); + +- error = mysql_error(self->_connection); + return [MySQL4Exception exceptionWithName:@"FetchFailed" + reason:[NSString stringWithUTF8String:error] + userInfo:nil]; +@@ -763,12 +763,16 @@ + @" c_lastmodified INT NOT NULL,\n" + @" c_version INT NOT NULL,\n" + @" c_deleted INT NULL\n" +- @")"); ++ @")\n" ++ @" DEFAULT CHARACTER SET latin1\n" ++ @" DEFAULT COLLATE latin1_general_ci"); + static NSString *sqlFolderACLFormat = (@"CREATE TABLE %@ (\n" \ + @" c_uid VARCHAR (256) NOT NULL,\n" + @" c_object VARCHAR (256) NOT NULL,\n" + @" c_role VARCHAR (80) NOT NULL\n" +- @")"); ++ @")\n" ++ @" DEFAULT CHARACTER SET latin1\n" ++ @" DEFAULT COLLATE latin1_general_ci"); + + - (NSException *) createGCSFolderTableWithName: (NSString *) tableName + { diff --git a/gnustep-libs/sope/files/sope-r1660-NGHttp+WO.m.patch b/gnustep-libs/sope/files/sope-r1660-NGHttp+WO.m.patch new file mode 100644 index 0000000..3e69505 --- /dev/null +++ b/gnustep-libs/sope/files/sope-r1660-NGHttp+WO.m.patch @@ -0,0 +1,11 @@ +--- ./sope-appserver/NGObjWeb/NGHttp+WO.m 2009-11-28 00:17:44.981468734 +0100 ++++ ./sope-appserver/NGObjWeb/NGHttp+WO.m.new 2009-11-28 00:59:31.661468049 +0100 +@@ -383,7 +383,7 @@ + NSString *s; + unsigned urilen; + char *uribuf; +- const char *p = uribuf; ++ const char *p; + NGHashMap *map; + + if ((s = [self uri]) == nil) diff --git a/gnustep-libs/sope/files/sope-r1660-NGLogSyslogAppender.m.patch b/gnustep-libs/sope/files/sope-r1660-NGLogSyslogAppender.m.patch new file mode 100644 index 0000000..a7f2dc9 --- /dev/null +++ b/gnustep-libs/sope/files/sope-r1660-NGLogSyslogAppender.m.patch @@ -0,0 +1,11 @@ +--- sope-core/NGExtensions/NGLogging.subproj/NGLogSyslogAppender.m 2009-11-28 00:55:21.091466955 +0100 ++++ sope-core/NGExtensions/NGLogging.subproj/NGLogSyslogAppender.m.new 2009-11-28 00:54:15.053967324 +0100 +@@ -86,7 +86,7 @@ + + formattedMsg = [self formattedEvent:_event]; + level = [self syslogLevelForLogLevel:[_event level]]; +- syslog(level, [formattedMsg cString]); ++ syslog(level, "%s", [formattedMsg cString]); + } + + - (int)syslogLevelForLogLevel:(NGLogLevel)_level { diff --git a/gnustep-libs/sope/sope-4.9_pre200908051100.ebuild b/gnustep-libs/sope/sope-4.9_pre200908051100.ebuild index f1a7eab..f26df99 100644 --- a/gnustep-libs/sope/sope-4.9_pre200908051100.ebuild +++ b/gnustep-libs/sope/sope-4.9_pre200908051100.ebuild @@ -51,15 +51,14 @@ pkg_setup() { ewarn "and your GNUstep (base and make) without any LDFLAGS before filing bugs." ewarn fi + append-ldflags -Wl,--no-as-needed depend.apache_pkg_setup } src_prepare() { - gnustep-base_src_prepare # http://www.scalableogo.org/english/support/faq/article/how-do-i-compile-sogo.html epatch "${WORKDIR}"/SOGo-1.1.0/SOPE/sope-gsmake2.diff epatch "${WORKDIR}"/SOGo-1.1.0/SOPE/sope-patchset-r1660.diff - #epatch "${WORKDIR}"/SOGo-1.1.0/SOPE/sope-ngobjweb-fix.diff epatch "${FILESDIR}"/${PN}-r1660-SOGo-fix.patch # Fixing stuff after SOGo patches epatch "${FILESDIR}"/${PN}-r1660-NSZoneMallocAtomic.patch # NSZoneMalloc changed in GNUstep epatch "${FILESDIR}"/${PN}-r1660-SoOFS.patch # libSoOFS is failing without -lcrypt @@ -81,6 +80,8 @@ src_prepare() { "${S}"/sope-appserver/GNUmakefile fi fi + + gnustep-base_src_prepare } src_configure() { @@ -107,12 +108,12 @@ src_compile() { if use libFoundation; then cd "${S}"/libFoundation CFLAGS="${CFLAGS} -Wno-import" egnustep_make + cd "${S}" fi if use apache2; then myconf="${myconf} apxs=/usr/sbin/apxs" myconf="${myconf} apr=/usr/bin/apr-1-config" fi - cd "${S}" egnustep_make ${myconf} } diff --git a/gnustep-libs/sope/sope-9999.ebuild b/gnustep-libs/sope/sope-9999.ebuild new file mode 100644 index 0000000..2ca84cc --- /dev/null +++ b/gnustep-libs/sope/sope-9999.ebuild @@ -0,0 +1,187 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=2 + +inherit gnustep-base apache-module flag-o-matic subversion + +ESVN_REPO_URI="http://svn.opengroupware.org/SOPE/trunk" + +DESCRIPTION="An extensive set of frameworks which form a complete Web application server environment" +HOMEPAGE="http://sope.opengroupware.org/en/index.html" +LICENSE="LGPL-2" +SLOT="0" +KEYWORDS="" +IUSE="apache2 ldap libFoundation mysql postgres sqlite" +DEPEND="gnustep-base/gnustep-base + dev-libs/libxml2 + dev-libs/openssl + dev-util/monotone + ldap? ( net-nds/openldap ) + mysql? ( virtual/mysql ) + postgres? ( virtual/postgresql-base ) + sqlite? ( >=dev-db/sqlite-3.0 )" +RDEPEND="${DEPEND}" + +APACHE2_MOD_DEFINE="NGOBJWEB" +APACHE2_MOD_FILE="sope-appserver/mod_ngobjweb/mod_ngobjweb.so" +APACHE2_MOD_CONF="47_mod_ngobjweb" + +S=${WORKDIR}/${PN} + +want_apache + +pkg_setup() { + gnustep-base_pkg_setup + local myLDFLAGS="$(gnustep-config --variable=LDFLAGS 2>/dev/null)" + if [ -n "${myLDFLAGS}" ] && (echo "${myLDFLAGS}" | grep -q "\-\-a\(dd\|s\)\-needed" 2>/dev/null); then + ewarn + ewarn "You seem to have compiled GNUstep with custom LDFLAGS:" + for foo in $(gnustep-config --variable=LDFLAGS); do + ewarn " "${foo} + done + ewarn + ewarn "SOPE is very sensitive regarding custom LDFLAGS. Especially with:" + ewarn " --add-needed" + ewarn " --as-needed" + ewarn + ewarn "If your SOPE install does not work as expected then please re-emerge SOPE" + ewarn "and your GNUstep (base and make) without any LDFLAGS before filing bugs." + ewarn + fi + append-ldflags -Wl,--no-as-needed + depend.apache_pkg_setup +} + +src_unpack() { + subversion_src_unpack + + # SOGo Monotone + EMTN_STORE_DIR="${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}/mtn-src" + addread "${EMTN_STORE_DIR}" + addwrite "${EMTN_STORE_DIR}" + if [ ! -d "${EMTN_STORE_DIR}" ]; then + mkdir -p "${EMTN_STORE_DIR}" || die "Can't mkdir ${EMTN_STORE_DIR}." + fi + cd "${EMTN_STORE_DIR}" || die "Can't chdir to ${EMTN_STORE_DIR}" + + if [ ! -f "db.mtn" ]; then + mtn db init --db=./db.mtn || die "Failed to initialize Monotone database" + fi + + # Pull Inverse's SOGo Monotone repository + mtn --db=./db.mtn pull inverse.ca ca.inverse.sogo || die "Failed to pull Monotone repository" + if [ ! -d "SOGo" ]; then + mtn --db=./db.mtn checkout --branch ca.inverse.sogo SOGo || die "Failed to checkout SOGo branch" + else + cd SOGo + mtn update + fi +} + +src_prepare() { + # http://www.scalableogo.org/english/support/faq/article/how-do-i-compile-sogo.html + epatch "${EMTN_STORE_DIR}"/SOGo/SOPE/sope-gsmake2.diff + epatch "${EMTN_STORE_DIR}"/SOGo/SOPE/sope-patchset-r1660.diff + epatch "${FILESDIR}"/${PN}-r1660-use_system_root.patch + epatch "${FILESDIR}"/${PN}-r1660-SOGo-fix.patch + epatch "${FILESDIR}"/${PN}-r1660-SoOFS.patch # Fixing stuff after SOGo patches + epatch "${FILESDIR}"/${PN}-r1660-MySQL4Channel.m.patch # Fixing issues with primary key and UTF8 + epatch "${FILESDIR}"/${PN}-r1660-NGLogSyslogAppender.m.patch # Fixing compiler warnings + epatch "${FILESDIR}"/${PN}-r1660-NGHttp+WO.m.patch # Fixing compiler warnings + epatch "${FILESDIR}"/${PN}-r1660-LDAP_deprecated.patch # Fixing QA issues on 64 Bit + + if use apache2; then + # Only add mod_ngobjweb if it is not already in SUBPROJECTS + if ! ( sed -e :a -e '/\\$/N; s/\\\n//; ta' "${S}"/sope-appserver/GNUmakefile 2>/dev/null | grep -q "^[[:space:]]*SUBPROJECTS[\t \+=].*[[:space:]]mod_ngobjweb" ); then + sed -i "/^SUBPROJECTS[\t \+=]/,/^[\t ]\{1,99\}[a-zA-Z]\{1,99\}[\t ]*$/{s/\([a-zA-Z]\)$/\1\t\\\\\n\tmod_ngobjweb/}" \ + "${S}"/sope-appserver/GNUmakefile + fi + else + # Only remove mod_ngobjweb if it is found in SUBPROJECTS + if ( sed -e :a -e '/\\$/N; s/\\\n//; ta' "${S}"/sope-appserver/GNUmakefile 2>/dev/null | grep -q "^[[:space:]]*SUBPROJECTS[\t \+=].*[[:space:]]mod_ngobjweb" ); then + sed -i "s/^[\t ]*mod_ngobjweb[\t ]*$/\n/;/^[\t ]*mod_ngobjweb[\t ]*\\\\$/d" \ + "${S}"/sope-appserver/GNUmakefile + fi + fi + + gnustep-base_src_prepare +} + +src_configure() { + egnustep_env + local myconf + if use libFoundation; then + myconf="${myconf} --frameworks=libFoundation" + cd "${S}"/libFoundation + ./configure \ + --prefix=/usr \ + $(use_enable debug) \ + --with-gnustep || die "configure libFoundation failed" + fi + cd "${S}" + ./configure \ + $(use_enable debug) \ + $(use_enable debug strip) \ + --with-gnustep ${myconf} || die "configure failed" +} + +src_compile() { + egnustep_env + local myconf + if use libFoundation; then + cd "${S}"/libFoundation + CFLAGS="${CFLAGS} -Wno-import" egnustep_make + cd "${S}" + fi + if use apache2; then + myconf="${myconf} apxs=/usr/sbin/apxs" + myconf="${myconf} apr=/usr/bin/apr-1-config" + fi + egnustep_make ${myconf} +} + +src_test() { + # SOPE tends to break horribly if gnustep-make is build with LDFLAGS such as + # -Wl,--add-needed or -Wl,--as-needed. So we check here some vital binaries. + # Check if SoCore, SoOFS is correctly build/linked + local mySoCoreLDD=$(ldd -d "${S}"/sope-appserver/NGObjWeb/SoCore.sxp/SoCore 2>&1 | grep "lib\(NG\(ObjWeb\|Mime\|Streams\|Extensions\)\|EOControl\|DOM\|SaxObjC\|XmlRpc\)\.so\." | wc -l) + local mySoOFSLDD=$(ldd -d "${S}"/sope-appserver/SoOFS/SoOFS.sxp/SoOFS 2>&1 | grep "lib\(SoOFS\|NG\(ObjWeb\|Mime\|Streams\|Extensions\)\|EOControl\|DOM\|SaxObjC\|XmlRpc\)\.so\." | wc -l) + if [ -z "${mySoCoreLDD}" -o -z "${mySoOFSLDD}" -o "${mySoCoreLDD}" != "8" -o "${mySoOFSLDD}" != "9" ]; then + ewarn + ewarn "This SOPE installtion is not correctly build. Probably you are using" + ewarn "LDFLAGS to build SOPE that are not correctly handled in SOPE or you" + ewarn "have emerged gnustep-base/gnustep-make with LDFLAGS which are" + ewarn "preventing SOPE to link the needed libraries into it's own binaries." + ewarn "Please remerge gnustep-base/gnustep-make and/or SOPE with empty LDFLAGS." + ewarn + die "SOPE build is not complete (SoCore, SoOFS)" + fi + # Do the same for WEExtensions, WOExtensions, WEPrototype + local myWEExtensionsLDD=$(ldd -d "${S}"/sope-appserver/WEExtensions/WEExtensions.wox/WEExtensions 2>&1 | grep "lib\(WEExtensions\|NG\(ObjWeb\|Mime\|Streams\|Extensions\)\|EOControl\|DOM\|SaxObjC\|XmlRpc\)\.so\." | wc -l) + local myWOExtensionsLDD=$(ldd -d "${S}"/sope-appserver/WOExtensions/WOExtensions.wox/WOExtensions 2>&1 | grep "lib\(W[EO]Extensions\|NG\(ObjWeb\|Mime\|Streams\|Extensions\)\|EOControl\|DOM\|SaxObjC\|XmlRpc\)\.so\." | wc -l) + local myWEPrototypeLDD=$(ldd -d "${S}"/sope-appserver/WEPrototype/WEPrototype.wox/WEPrototype 2>&1 | grep "lib\(WEPrototype\|NG\(ObjWeb\|Mime\|Streams\|Extensions\)\|EOControl\|DOM\|SaxObjC\|XmlRpc\)\.so\." | wc -l) + if [ -z "${myWEExtensionsLDD}" -o -z "${myWOExtensionsLDD}" -o -z "${myWEPrototypeLDD}" -o "${myWEExtensionsLDD}" != "9" -o "${myWOExtensionsLDD}" != "10" -o "${myWEPrototypeLDD}" != "9" ]; then + ewarn + ewarn "This SOPE installtion is not correctly build. Probably you are using" + ewarn "LDFLAGS to build SOPE that are not correctly handled in SOPE or you" + ewarn "have emerged gnustep-base/gnustep-make with LDFLAGS which are" + ewarn "preventing SOPE to link the needed libraries into it's own binaries." + ewarn "Please remerge gnustep-base/gnustep-make and/or SOPE with empty LDFLAGS." + ewarn + die "SOPE build is not complete (WEExtensions, WOExtensions, WEPrototype)" + fi +} + +src_install() { + newenvd "${FILESDIR}"/sope.envd 99sope \ + || die "Failed installing env.d script" + gnustep-base_src_install + use apache2 && apache-module_src_install +} + +pkg_postinst() { + gnustep-base_pkg_postinst + use apache2 && apache-module_pkg_postinst +} -- cgit v1.2.3-65-gdbad