Upgrade libsoup to 2.58.2.

BUG=chromium:900288
TEST=cros_sdk -- egencache --update --repo portage-stable --jobs 32
CQ-DEPEND=CL:1345316

Change-Id: I081e0e83762d46d0ee9614aad68b864745124e9e
Reviewed-on: https://chromium-review.googlesource.com/1351396
Commit-Ready: Tim Zheng <timzheng@chromium.org>
Tested-by: Tim Zheng <timzheng@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
diff --git a/net-libs/libsoup/Manifest b/net-libs/libsoup/Manifest
index 421efad..a49e9ab 100644
--- a/net-libs/libsoup/Manifest
+++ b/net-libs/libsoup/Manifest
@@ -1 +1 @@
-DIST libsoup-2.32.2.tar.bz2 668131 RMD160 641d52bfbb9772cf9e69f3050f59b42783851926 SHA1 d93cfbd8a44c8b8759c98bfc83d2e3a003973708 SHA256 96e6973c8b7459523c0f44e7aec69528ff2fbd388e8ddc415f91bcc42f50777f
+DIST libsoup-2.58.2.tar.xz 1815256 BLAKE2B 23c6e40f91a2dca13fcabe4fa3af7311874cbe06962c6cdc93d8d8d0a998d29cff9e7ce61190541b6114b4996d758b7c469b0354a6012856667e9541a78177cb SHA512 85af6fac87343bdd22312518402144d33916225f60d6fa158efdd84f7ee7ed1f9895989b3558f711c9aedc93cff35a4114ad79d6d2aa19c54cb326f162a4c7de
diff --git a/net-libs/libsoup/files/libsoup-2.30.1-fix-build-without-gnome-with-doc.patch b/net-libs/libsoup/files/libsoup-2.30.1-fix-build-without-gnome-with-doc.patch
deleted file mode 100644
index 2b5a39d..0000000
--- a/net-libs/libsoup/files/libsoup-2.30.1-fix-build-without-gnome-with-doc.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From c8ff78e489ccf5becd1ae309222b7977510558e6 Mon Sep 17 00:00:00 2001
-From: Priit Laes <plaes@plaes.org>
-Date: Thu, 25 Feb 2010 20:59:51 +0200
-Subject: [PATCH] Split docs into libsoup and libsoup-gnome.
-
-Fixes Gentoo Bug 268592, patch adapted from upstream patch.
-
-Modified to apply to a release tarball (no libsoup-2.4-docs.sgml.in)
-Hence, to be applied ONLY when !gnome && doc
----
- docs/reference/Makefile.am           |    5 ++++-
- docs/reference/libsoup-2.4-docs.sgml |    2 ++
- 2 files changed, 6 insertions(+), 1 deletions(-)
-
-diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
-index 64d3cf8..8b91b7f 100644
---- a/docs/reference/Makefile.am
-+++ b/docs/reference/Makefile.am
-@@ -38,6 +38,9 @@ IGNORE_HFILES= soup.h soup-marshal.h soup-enum-types.h \
- 	soup-proxy-resolver.h soup-proxy-resolver-gnome.h \
- 	soup-proxy-resolver-static.h
- 
-+IGNORE_HFILES += soup-cookie-jar-sqlite.h \
-+   soup-gnome.h soup-gnome-features.h
-+
- # Images to copy into HTML directory.
- HTML_IMAGES = 
- 
-@@ -62,7 +65,7 @@ GTKDOC_CFLAGS =				\
- 	$(GNUTLS_CFLAGS)		\
- 	$(LIBPROXY_LIBS)
- 
--GTKDOC_LIBS = $(top_builddir)/libsoup/libsoup-gnome-2.4.la
-+GTKDOC_LIBS = $(top_builddir)/libsoup/libsoup-2.4.la
- 
- # include common portion ...
- include $(top_srcdir)/gtk-doc.make
-diff --git a/docs/reference/libsoup-2.4-docs.sgml b/docs/reference/libsoup-2.4-docs.sgml
-index 3cb3d11..707e525 100644
---- a/docs/reference/libsoup-2.4-docs.sgml
-+++ b/docs/reference/libsoup-2.4-docs.sgml
-@@ -52,11 +52,13 @@
-     <xi:include href="xml/soup-value-utils.xml"/>
-   </chapter>
- 
-+<!--
-   <chapter>
-     <title>GNOME integration</title>
-     <xi:include href="xml/soup-gnome-features.xml"/>
-     <xi:include href="xml/soup-cookie-jar-sqlite.xml"/>
-   </chapter>
-+-->
- 
-   <chapter>
-     <title>Low-level Networking API</title>
--- 
-1.7.0
-
diff --git a/net-libs/libsoup/files/libsoup-2.58.2-sparc-unaligned.patch b/net-libs/libsoup/files/libsoup-2.58.2-sparc-unaligned.patch
new file mode 100644
index 0000000..d09d52c
--- /dev/null
+++ b/net-libs/libsoup/files/libsoup-2.58.2-sparc-unaligned.patch
@@ -0,0 +1,28 @@
+From c2aaac0083f58d285b8feb24f13fe347d7f726fe Mon Sep 17 00:00:00 2001
+From: Rolf Eike Beer <eike@sf-mail.de>
+Date: Sat, 17 Mar 2018 10:28:00 +0000
+Subject: [PATCH] WebSockets: Avoid unaligned memory access
+
+This is causing test failures in SPARC architectures.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=794421
+---
+ libsoup/soup-websocket-connection.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/libsoup/soup-websocket-connection.c b/libsoup/soup-websocket-connection.c
+index 0258a22c..35eee6a6 100644
+--- a/libsoup/soup-websocket-connection.c
++++ b/libsoup/soup-websocket-connection.c
+@@ -401,9 +401,10 @@ send_message (SoupWebsocketConnection *self,
+ 	 * probably a client somewhere that's not expecting it.
+ 	 */
+ 	if (self->pv->connection_type == SOUP_WEBSOCKET_CONNECTION_CLIENT) {
++		guint32 rnd = g_random_int ();
+ 		outer[1] |= 0x80;
+ 		mask = outer + bytes->len;
+-		* ((guint32 *)mask) = g_random_int ();
++		memcpy (mask, &rnd, sizeof (rnd));
+ 		bytes->len += 4;
+ 	}
+ 
diff --git a/net-libs/libsoup/libsoup-2.32.2.ebuild b/net-libs/libsoup/libsoup-2.32.2.ebuild
deleted file mode 100644
index 6c0061b..0000000
--- a/net-libs/libsoup/libsoup-2.32.2.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/libsoup/libsoup-2.32.2.ebuild,v 1.9 2011/04/15 16:18:32 darkside Exp $
-
-EAPI="3"
-GCONF_DEBUG="yes"
-
-inherit autotools eutils gnome2
-
-DESCRIPTION="An HTTP library implementation in C"
-HOMEPAGE="http://live.gnome.org/LibSoup"
-
-LICENSE="LGPL-2"
-SLOT="2.4"
-KEYWORDS="*"
-IUSE="debug doc +introspection ssl test"
-
-RDEPEND=">=dev-libs/glib-2.21.3
-	>=dev-libs/libxml2-2
-	introspection? ( >=dev-libs/gobject-introspection-0.9.5 )
-	ssl? ( >=net-libs/gnutls-2.1.7 )"
-DEPEND="${RDEPEND}
-	>=dev-util/pkgconfig-0.9
-	>=dev-util/gtk-doc-am-1.10
-	doc? ( >=dev-util/gtk-doc-1.10 )"
-#	test? (	www-servers/apache[ssl,apache2_modules_auth_digest,apache2_modules_alias,apache2_modules_auth_basic,
-#		apache2_modules_authn_file,apache2_modules_authz_host,apache2_modules_authz_user,apache2_modules_dir,
-#		apache2_modules_mime,apache2_modules_proxy,apache2_modules_proxy_http,apache2_modules_proxy_connect]
-#		dev-lang/php[apache2]
-#		net-misc/curl )"
-
-pkg_setup() {
-	# Set invalid apache module dir until apache tests are ready, bug #326957
-	DOCS="AUTHORS NEWS README"
-	G2CONF="${G2CONF}
-		--disable-static
-		--without-gnome
-		--with-apache-module-dir="${T}"
-		$(use_enable introspection)
-		$(use_enable ssl)"
-}
-
-src_configure() {
-	# FIXME: we need addpredict to workaround bug #324779 until
-	# root cause (bug #249496) is solved
-	addpredict /usr/share/snmp/mibs/.index
-	gnome2_src_configure
-}
-
-src_prepare() {
-	gnome2_src_prepare
-
-	if ! use test; then
-		# don't waste time building tests (bug #226271)
-		sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
-			|| die "sed failed"
-	fi
-
-	# Patch *must* be applied conditionally (see patch for details)
-	if use doc; then
-		# Fix bug 268592 (upstream #573685) (build fails without gnome && doc)
-		epatch "${FILESDIR}/${PN}-2.30.1-fix-build-without-gnome-with-doc.patch"
-		eautoreconf
-	fi
-}
diff --git a/net-libs/libsoup/libsoup-2.58.2.ebuild b/net-libs/libsoup/libsoup-2.58.2.ebuild
new file mode 100644
index 0000000..b47e88e
--- /dev/null
+++ b/net-libs/libsoup/libsoup-2.58.2.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_LA_PUNT="yes"
+PYTHON_COMPAT=( python{2_7,3_3,3_4,3_5,3_6} )
+VALA_USE_DEPEND="vapigen"
+
+inherit gnome2 multilib-minimal python-any-r1 vala
+
+DESCRIPTION="An HTTP library implementation in C"
+HOMEPAGE="https://wiki.gnome.org/Projects/libsoup"
+
+LICENSE="LGPL-2+"
+SLOT="2.4"
+
+IUSE="debug gssapi +introspection samba ssl test vala"
+REQUIRED_USE="vala? ( introspection )"
+
+KEYWORDS="*"
+
+RDEPEND="
+	>=dev-libs/glib-2.34.3:2[${MULTILIB_USEDEP}]
+	>=dev-libs/libxml2-2.9.1-r4:2[${MULTILIB_USEDEP}]
+	>=dev-db/sqlite-3.8.2:3[${MULTILIB_USEDEP}]
+	>=net-libs/glib-networking-2.38.2[ssl?,${MULTILIB_USEDEP}]
+	gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
+	introspection? ( >=dev-libs/gobject-introspection-0.9.5:= )
+	samba? ( net-fs/samba )
+"
+DEPEND="${RDEPEND}
+	${PYTHON_DEPS}
+	dev-util/glib-utils
+	>=dev-util/gtk-doc-am-1.20
+	>=dev-util/intltool-0.35
+	sys-devel/gettext
+	>=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
+	test? ( >=dev-libs/glib-2.40:2[${MULTILIB_USEDEP}] )
+	vala? ( $(vala_depend) )
+"
+#	test? (	www-servers/apache[ssl,apache2_modules_auth_digest,apache2_modules_alias,apache2_modules_auth_basic,
+#		apache2_modules_authn_file,apache2_modules_authz_host,apache2_modules_authz_user,apache2_modules_dir,
+#		apache2_modules_mime,apache2_modules_proxy,apache2_modules_proxy_http,apache2_modules_proxy_connect]
+#		dev-lang/php[apache2,xmlrpc]
+#		net-misc/curl
+#		net-libs/glib-networking[ssl])"
+
+PATCHES=(
+	# https://bugs.gentoo.org/630516
+	"${FILESDIR}/${PN}-2.58.2-sparc-unaligned.patch"
+)
+
+src_prepare() {
+	if ! use test; then
+		# don't waste time building tests (bug #226271)
+		sed 's/^\(SUBDIRS =.*\)tests\(.*\)$/\1\2/' -i Makefile.am Makefile.in \
+			|| die "sed failed"
+	fi
+
+	# FIXME: workaround upstream not respecting --without-apache-httpd
+	sed -e '/check: start-httpd/d' \
+		-i tests/Makefile.am tests/Makefile.in || die
+
+	use vala && vala_src_prepare
+	gnome2_src_prepare
+}
+
+src_configure() {
+	# FIXME: we need addpredict to workaround bug #324779 until
+	# root cause (bug #249496) is solved
+	addpredict /usr/share/snmp/mibs/.index
+
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+	# Disable apache tests until they are usable on Gentoo, bug #326957
+	ECONF_SOURCE=${S} \
+	gnome2_src_configure \
+		--disable-static \
+		--disable-tls-check \
+		--without-gnome \
+		--without-apache-httpd \
+		$(usex debug --enable-debug=yes ' ') \
+		$(multilib_native_use_with gssapi) \
+		$(multilib_native_use_enable introspection) \
+		$(multilib_native_use_enable vala) \
+		$(use_with samba ntlm-auth '${EPREFIX}'/usr/bin/ntlm_auth)
+
+	if multilib_is_native_abi; then
+		# fix gtk-doc
+		ln -s "${S}"/docs/reference/html docs/reference/html || die
+	fi
+}
+
+multilib_src_install() {
+	gnome2_src_install
+}
diff --git a/net-libs/libsoup/metadata.xml b/net-libs/libsoup/metadata.xml
index f96b3e3..b01383c 100644
--- a/net-libs/libsoup/metadata.xml
+++ b/net-libs/libsoup/metadata.xml
@@ -1,8 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<herd>gnome</herd>
+	<maintainer type="project">
+		<email>gnome@gentoo.org</email>
+		<name>Gentoo GNOME Desktop</name>
+	</maintainer>
 	<use>
+		<flag name="gssapi">Enable GSSAPI support</flag>
 		<flag name="samba">Use <pkg>net-fs/samba</pkg> for NTLM Single
 			Sign-On</flag>
 	</use>