summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2011-06-05 12:04:46 +0000
committerPacho Ramos <pacho@gentoo.org>2011-06-05 12:04:46 +0000
commitbb24b8d11ca54043bd3a54466b1db5786de2ad67 (patch)
tree9f57f9d3aaa481411ba82d2a5b71d1d390981132 /net-libs/libproxy
parentAdd missing gnome-common to DEPEND, bug #369677. (diff)
downloadgentoo-2-bb24b8d11ca54043bd3a54466b1db5786de2ad67.tar.gz
gentoo-2-bb24b8d11ca54043bd3a54466b1db5786de2ad67.tar.bz2
gentoo-2-bb24b8d11ca54043bd3a54466b1db5786de2ad67.zip
Revision bump disabling webkit support as it causes problems like bug #366791 (we will be able to recover this with webkit-1.6), do the same for xulrunner support because of important problems like bug #360893 giving unresolved symbols due problems to use proper mozjs. Thanks a lot to Nirbheek for his assistance with this. Also include and old upstream patch to stop mixing CFLAGS and CXXFLAGS (bug #338125 by Justin Lecher) and an opensuse patch including some more fixes from upstream.
(Portage version: 2.1.9.50/cvs/Linux x86_64)
Diffstat (limited to 'net-libs/libproxy')
-rw-r--r--net-libs/libproxy/ChangeLog15
-rw-r--r--net-libs/libproxy/files/libproxy-0.4.6-backports.patch152
-rw-r--r--net-libs/libproxy/files/libproxy-0.4.6-flags-mixing.patch12
-rw-r--r--net-libs/libproxy/libproxy-0.4.6-r3.ebuild78
4 files changed, 256 insertions, 1 deletions
diff --git a/net-libs/libproxy/ChangeLog b/net-libs/libproxy/ChangeLog
index f8ae658444ef..e771da93d430 100644
--- a/net-libs/libproxy/ChangeLog
+++ b/net-libs/libproxy/ChangeLog
@@ -1,6 +1,19 @@
# ChangeLog for net-libs/libproxy
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/libproxy/ChangeLog,v 1.57 2011/03/27 18:05:44 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/libproxy/ChangeLog,v 1.58 2011/06/05 12:04:46 pacho Exp $
+
+*libproxy-0.4.6-r3 (05 Jun 2011)
+
+ 05 Jun 2011; Pacho Ramos <pacho@gentoo.org> +libproxy-0.4.6-r3.ebuild,
+ +files/libproxy-0.4.6-backports.patch,
+ +files/libproxy-0.4.6-flags-mixing.patch:
+ Revision bump disabling webkit support as it causes problems like bug #366791
+ (we will be able to recover this with webkit-1.6), do the same for xulrunner
+ support because of important problems like bug #360893 giving unresolved
+ symbols due problems to use proper mozjs. Thanks a lot to Nirbheek for his
+ assistance with this. Also include and old upstream patch to stop mixing
+ CFLAGS and CXXFLAGS (bug #338125 by Justin Lecher) and an opensuse patch
+ including some more fixes from upstream.
*libproxy-0.4.6-r2 (27 Mar 2011)
diff --git a/net-libs/libproxy/files/libproxy-0.4.6-backports.patch b/net-libs/libproxy/files/libproxy-0.4.6-backports.patch
new file mode 100644
index 000000000000..bf76350eaede
--- /dev/null
+++ b/net-libs/libproxy/files/libproxy-0.4.6-backports.patch
@@ -0,0 +1,152 @@
+# Backport from upstream source: svn revs: 769,771,776,777,778,780,781,782
+Index: libproxy/url.cpp
+===================================================================
+--- libproxy/url.cpp.orig
++++ libproxy/url.cpp
+@@ -36,12 +36,9 @@
+
+ #ifdef WIN32
+ #include <io.h>
+-#define pfsize(st) (st.st_size)
+ #define close _close
+ #define read _read
+ #define SHUT_RDWR SD_BOTH
+-#else
+-#define pfsize(st) (st.st_blksize * st.st_blocks)
+ #endif
+
+ #include "url.hpp"
+@@ -56,13 +53,6 @@ using namespace std;
+ // This is the maximum pac size (to avoid memory attacks)
+ #define PAC_MAX_SIZE 102400
+
+-const string url::GENERIC_DELIMITERS(":/?#[]@");
+-const string url::SUBCOMPONENT_DELIMITERS("!$&'()*+,;=");
+-const string url::ALLOWED_IN_USERINFO_ELEMENT(url::SUBCOMPONENT_DELIMITERS);
+-const string url::ALLOWED_IN_USERINFO(url::ALLOWED_IN_USERINFO_ELEMENT + ":");
+-const string url::ALLOWED_IN_PATH_ELEMENT(url::SUBCOMPONENT_DELIMITERS + ":@");
+-const string url::ALLOWED_IN_PATH(url::ALLOWED_IN_PATH_ELEMENT + "/");
+-
+ static inline int get_default_port(string scheme) {
+ struct servent *serv;
+ size_t plus = scheme.find('+');
+@@ -109,8 +99,8 @@ bool url::is_valid(const string url_) {
+
+ string url::encode(const string &data, const string &valid_reserved) {
+ ostringstream encoded;
+- for (int i=0; data[i]; i++) {
+- if (isalnum(data[i])
++ for (unsigned int i=0; i < data.size(); i++) {
++ if (isalnum((unsigned char)data[i])
+ || valid_reserved.find(data[i]) != string::npos
+ || string("-._~").find(data[i]) != string::npos)
+ encoded << data[i];
+@@ -211,7 +201,8 @@ url::url(const string &url) throw(parse_
+ host_start = userinfo_end + 1;
+
+ /* Check for IPv6 IP */
+- if (hier_part[host_start] == '[') {
++ if (host_start < hier_part.size()
++ && hier_part[host_start] == '[') {
+ host_end = hier_part.find(']', host_start);
+ if (host_end == string::npos)
+ throw parse_error("Invalid URL: " + url);
+@@ -232,7 +223,7 @@ url::url(const string &url) throw(parse_
+ /* Get port */
+ m_port = get_default_port(m_scheme);
+
+- if (host_end != hier_part.size()
++ if (host_end < hier_part.size()
+ && hier_part[host_end] == ':') {
+ size_t port_start = host_end + 1;
+ m_port = atoi(hier_part.c_str() + port_start);
+@@ -400,10 +391,12 @@ char* url::get_pac() {
+ struct stat st;
+ if ((sock = ::open(m_path.c_str(), O_RDONLY)) < 0)
+ return NULL;
+- if (!fstat(sock, &st) && pfsize(st) < PAC_MAX_SIZE) {
+- buffer = new char[pfsize(st)+1];
+- if (read(sock, buffer, pfsize(st)) == 0) {
+- delete buffer;
++
++ if (!fstat(sock, &st) && st.st_size < PAC_MAX_SIZE) {
++ buffer = new char[st.st_size+1];
++ memset(buffer, 0, st.st_size+1);
++ if (read(sock, buffer, st.st_size) == 0) {
++ delete[] buffer;
+ buffer = NULL;
+ }
+ }
+Index: libproxy/modules/config_gnome.cpp
+===================================================================
+--- libproxy/modules/config_gnome.cpp.orig
++++ libproxy/modules/config_gnome.cpp
+@@ -102,10 +102,8 @@ static int popen2(const char *program, F
+ if (dup2(rpipe[1], STDOUT_FILENO) != STDOUT_FILENO) _exit(2);
+
+ // Close unneeded fds
+- close(rpipe[0]);
+- close(rpipe[1]);
+- close(wpipe[0]);
+- close(wpipe[1]);
++ for (int i = 3; i < sysconf(_SC_OPEN_MAX); i++)
++ close(i);
+
+ // Exec
+ execl("/bin/sh", "sh", "-c", program, (char*) NULL);
+@@ -194,8 +192,8 @@ public:
+ else if (this->data[PROXY_MODE] == "manual") {
+ string type, host, port;
+ bool auth = this->data[PROXY_USE_AUTHENTICATION] == "true";
+- string username = url::encode(this->data[PROXY_AUTH_USER], url::ALLOWED_IN_USERINFO_ELEMENT);
+- string password = url::encode(this->data[PROXY_AUTH_PASSWORD], url::ALLOWED_IN_USERINFO_ELEMENT);
++ string username = url::encode(this->data[PROXY_AUTH_USER], URL_ALLOWED_IN_USERINFO_ELEMENT);
++ string password = url::encode(this->data[PROXY_AUTH_PASSWORD], URL_ALLOWED_IN_USERINFO_ELEMENT);
+ bool same_proxy = this->data[PROXY_SAME_FOR_ALL] == "true";
+
+ // If socks is set use it (except when same_proxy is set)
+Index: libproxy/proxy.cpp
+===================================================================
+--- libproxy/proxy.cpp.orig
++++ libproxy/proxy.cpp
+@@ -164,7 +164,7 @@ proxy_factory::proxy_factory() {
+ proxy_factory::~proxy_factory() {
+ lock();
+
+- if (this->pac) delete this->pac;
++ if (this->pac) delete[] this->pac;
+ if (this->pacurl) delete this->pacurl;
+
+ unlock();
+Index: libproxy/url.hpp
+===================================================================
+--- libproxy/url.hpp.orig
++++ libproxy/url.hpp
+@@ -27,6 +27,13 @@
+
+ #include "config.hpp"
+
++#define URL_GENERIC_DELIMITERS ":/?#[]@"
++#define URL_SUBCOMPONENT_DELIMITERS "!$&'()*+,;="
++#define URL_ALLOWED_IN_USERINFO_ELEMENT URL_SUBCOMPONENT_DELIMITERS
++#define URL_ALLOWED_IN_USERINFO URL_ALLOWED_IN_USERINFO_ELEMENT ":"
++#define URL_ALLOWED_IN_PATH_ELEMENT URL_SUBCOMPONENT_DELIMITERS ":@"
++#define URL_ALLOWED_IN_PATH URL_ALLOWED_IN_PATH_ELEMENT "/"
++
+ namespace libproxy {
+
+ using namespace std;
+@@ -38,13 +45,6 @@ public:
+
+ class DLL_PUBLIC url {
+ public:
+- static const string ALLOWED_IN_PATH;
+- static const string ALLOWED_IN_PATH_ELEMENT;
+- static const string ALLOWED_IN_USERINFO;
+- static const string ALLOWED_IN_USERINFO_ELEMENT;
+- static const string GENERIC_DELIMITERS;
+- static const string SUBCOMPONENT_DELIMITERS;
+-
+ static bool is_valid(const string url);
+ static string encode(const string &data, const string &valid_reserved = "");
+
diff --git a/net-libs/libproxy/files/libproxy-0.4.6-flags-mixing.patch b/net-libs/libproxy/files/libproxy-0.4.6-flags-mixing.patch
new file mode 100644
index 000000000000..47bd96f22cfc
--- /dev/null
+++ b/net-libs/libproxy/files/libproxy-0.4.6-flags-mixing.patch
@@ -0,0 +1,12 @@
+--- bindings/perl/src/CMakeLists.txt~ 2010-09-01 22:23:34.000000000 +0200
++++ bindings/perl/src/CMakeLists.txt 2011-06-05 12:04:19.000000000 +0200
+@@ -10,9 +10,6 @@
+
+ set(Libproxy_LIB_SRCS Libproxy.c)
+
+-set(CMAKE_C_COMPILER ${CMAKE_CXX_COMPILER})
+-set(CMAKE_C_FLAGS ${PERL_CXX_FLAGS} )
+-
+ set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/perl/blib/arch/auto/Net)
+ add_library(PLlibproxy SHARED ${Libproxy_LIB_SRCS})
+
diff --git a/net-libs/libproxy/libproxy-0.4.6-r3.ebuild b/net-libs/libproxy/libproxy-0.4.6-r3.ebuild
new file mode 100644
index 000000000000..b3c2b18402c4
--- /dev/null
+++ b/net-libs/libproxy/libproxy-0.4.6-r3.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-libs/libproxy/libproxy-0.4.6-r3.ebuild,v 1.1 2011/06/05 12:04:46 pacho Exp $
+
+EAPI=3
+PYTHON_DEPEND="python? 2:2.6"
+
+inherit cmake-utils mono python
+
+DESCRIPTION="Library for automatic proxy configuration management"
+HOMEPAGE="http://code.google.com/p/libproxy/"
+SRC_URI="http://${PN}.googlecode.com/files/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="gnome kde mono networkmanager perl python test vala"
+
+# FIXME: Disable webkit support due problems like bug #366791
+# FIXME: Also disable xulrunner support due bug #360893, will be readded
+# in the future when only spidermonkey mozjs is provided.
+
+RDEPEND="gnome? ( gnome-base/gconf:2 )
+ kde? ( >=kde-base/kdelibs-4.4.5 )
+ mono? ( dev-lang/mono )
+ networkmanager? ( net-misc/networkmanager )
+ perl? ( dev-lang/perl )
+ vala? ( dev-lang/vala:0.10 )"
+# xulrunner? ( >=net-libs/xulrunner-1.9.1:1.9 )
+# webkit? ( net-libs/webkit-gtk:2 )
+DEPEND="${RDEPEND}
+ dev-util/pkgconfig"
+
+pkg_setup() {
+ PATCHES=( "${FILESDIR}"/${P}-mozjs-link_directory.patch
+ "${FILESDIR}"/${P}-flags-mixing.patch
+ "${FILESDIR}"/${P}-backports.patch )
+
+ # http://code.google.com/p/libproxy/source/detail?r=791
+# has_version ">=net-libs/xulrunner-2" && \
+# PATCHES+=( "${FILESDIR}"/${P}-xulrunner-2.patch )
+
+ DOCS="AUTHORS ChangeLog NEWS README"
+
+ if use python; then
+ python_set_active_version 2
+ python_pkg_setup
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DPERL_VENDORINSTALL=ON
+ -DCMAKE_C_FLAGS="${CFLAGS}"
+ -DCMAKE_CXX_FLAGS="${CXXFLAGS}"
+ $(cmake-utils_use_with gnome GNOME)
+ $(cmake-utils_use_with kde KDE4)
+ $(cmake-utils_use_with mono DOTNET)
+ $(cmake-utils_use_with networkmanager NM)
+ $(cmake-utils_use_with perl PERL)
+ $(cmake-utils_use_with python PYTHON)
+ $(cmake-utils_use_with vala VALA)
+ -DWITH_WEBKIT=OFF
+ -DWITH_MOZJS=OFF
+ $(cmake-utils_use test BUILD_TESTING)
+ )
+ #$(cmake-utils_use_with webkit WEBKIT)
+ #$(cmake-utils_use_with xulrunner MOZJS)
+ cmake-utils_src_configure
+}
+
+pkg_postinst() {
+ use python && python_mod_optimize ${PN}.py
+}
+
+pkg_postrm() {
+ use python && python_mod_cleanup ${PN}.py
+}