Skip to content

Commit

Permalink
gnome-base/gnome-vfs: Fix gnutls-3.4+ compatibility, #560084
Browse files Browse the repository at this point in the history
  • Loading branch information
mgorny committed Jun 11, 2016
1 parent 59618c9 commit 3ed0516
Show file tree
Hide file tree
Showing 2 changed files with 189 additions and 0 deletions.
38 changes: 38 additions & 0 deletions gnome-base/gnome-vfs/files/gnome-vfs-2.24.4-gnutls34.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
diff -uprw gnome-vfs-2.24.4.orig/libgnomevfs/gnome-vfs-ssl.c gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-ssl.c
--- gnome-vfs-2.24.4.orig/libgnomevfs/gnome-vfs-ssl.c 2010-02-09 14:16:14.000000000 +0200
+++ gnome-vfs-2.24.4/libgnomevfs/gnome-vfs-ssl.c 2015-04-14 00:01:51.272451668 +0300
@@ -314,21 +314,6 @@ gnome_vfs_ssl_create (GnomeVFSSSL **hand
#endif
}

-#ifdef HAVE_GNUTLS
-static const int protocol_priority[] = {GNUTLS_TLS1, GNUTLS_SSL3, 0};
-static const int cipher_priority[] =
- {GNUTLS_CIPHER_RIJNDAEL_128_CBC, GNUTLS_CIPHER_3DES_CBC,
- GNUTLS_CIPHER_RIJNDAEL_256_CBC, GNUTLS_CIPHER_ARCFOUR, 0};
-static const int comp_priority[] =
- {GNUTLS_COMP_ZLIB, GNUTLS_COMP_NULL, 0};
-static const int kx_priority[] =
- {GNUTLS_KX_DHE_RSA, GNUTLS_KX_RSA, GNUTLS_KX_DHE_DSS, 0};
-static const int mac_priority[] =
- {GNUTLS_MAC_SHA, GNUTLS_MAC_MD5, 0};
-
-#endif
-
-
/**
* gnome_vfs_ssl_create_from_fd:
* @handle_return: pointer to a #GnomeVFSSSL struct, which will
@@ -437,11 +422,7 @@ gnome_vfs_ssl_create_from_fd (GnomeVFSSS
gnutls_transport_set_ptr (ssl->private->tlsstate,
GINT_TO_POINTER (fd));

- gnutls_protocol_set_priority (ssl->private->tlsstate, protocol_priority);
- gnutls_cipher_set_priority (ssl->private->tlsstate, cipher_priority);
- gnutls_compression_set_priority (ssl->private->tlsstate, comp_priority);
- gnutls_kx_set_priority (ssl->private->tlsstate, kx_priority);
- gnutls_mac_set_priority (ssl->private->tlsstate, mac_priority);
+ gnutls_set_default_priority (ssl->private->tlsstate);

gnutls_cred_set (ssl->private->tlsstate, GNUTLS_CRD_CERTIFICATE,
ssl->private->xcred);
151 changes: 151 additions & 0 deletions gnome-base/gnome-vfs/gnome-vfs-2.24.4-r5.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=5
GCONF_DEBUG="no"
GNOME_TARBALL_SUFFIX="bz2"
GNOME2_LA_PUNT="yes"

inherit autotools eutils gnome2 multilib-minimal virtualx

DESCRIPTION="Gnome Virtual Filesystem"
HOMEPAGE="https://www.gnome.org/"

LICENSE="GPL-2 LGPL-2"
SLOT="2"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x86-solaris"
IUSE="acl gnutls ipv6 kerberos libressl samba ssl zeroconf"

RDEPEND="
>=gnome-base/gconf-2.32.4-r1[${MULTILIB_USEDEP}]
>=dev-libs/glib-2.34.3[${MULTILIB_USEDEP}]
>=dev-libs/libxml2-2.9.1-r4[${MULTILIB_USEDEP}]
>=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}]
gnome-base/gnome-mime-data
>=x11-misc/shared-mime-info-0.14
>=dev-libs/dbus-glib-0.100.2[${MULTILIB_USEDEP}]
acl? (
>=sys-apps/acl-2.2.52-r1[${MULTILIB_USEDEP}]
>=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] )
kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] )
samba? ( >=net-fs/samba-3.6.23-r1[${MULTILIB_USEDEP}] )
ssl? (
gnutls? (
>=net-libs/gnutls-2.12.23-r6[${MULTILIB_USEDEP}]
!gnome-extra/gnome-vfs-sftp )
!gnutls? (
!libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
!gnome-extra/gnome-vfs-sftp ) )
zeroconf? ( >=net-dns/avahi-0.6.31-r2[${MULTILIB_USEDEP}] )
abi_x86_32? (
!<=app-emulation/emul-linux-x86-gtklibs-20140508-r1
!app-emulation/emul-linux-x86-gtklibs[-abi_x86_32(-)]
)
"
DEPEND="${RDEPEND}
sys-devel/gettext
gnome-base/gnome-common
>=dev-util/intltool-0.40
>=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
>=dev-util/gtk-doc-am-1.13
"

src_prepare() {
# Allow the Trash on afs filesystems (#106118)
epatch "${FILESDIR}"/${PN}-2.12.0-afs.patch

# Fix compiling with headers missing
epatch "${FILESDIR}"/${PN}-2.15.2-headers-define.patch

# Fix for crashes running programs via sudo
epatch "${FILESDIR}"/${PN}-2.16.0-no-dbus-crash.patch

# Fix automagic dependencies, upstream bug #493475
epatch "${FILESDIR}"/${PN}-2.20.0-automagic-deps.patch
epatch "${FILESDIR}"/${PN}-2.20.1-automagic-deps.patch

# Fix to identify ${HOME} (#200897)
# thanks to debian folks
epatch "${FILESDIR}"/${PN}-2.24.4-home_dir_fakeroot.patch

# Configure with gnutls-2.7, bug #253729
# Fix building with gnutls-2.12, bug #388895
epatch "${FILESDIR}"/${PN}-2.24.4-gnutls27.patch

# Prevent duplicated volumes, bug #193083
epatch "${FILESDIR}"/${PN}-2.24.0-uuid-mount.patch

# Do not build tests with FEATURES="-test", bug #226221
epatch "${FILESDIR}"/${PN}-2.24.4-build-tests-asneeded.patch

# Disable broken test, bug #285706
epatch "${FILESDIR}"/${PN}-2.24.4-disable-test-async-cancel.patch

# Fix for automake-1.13 compatibility, #466944
epatch "${FILESDIR}"/${P}-automake-1.13.patch

# Fix gnutls-3.4+ compatibility, #560084
# always use system defaults (patch from Arch Linux)
epatch "${FILESDIR}"/${P}-gnutls34.patch

sed -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" -i configure.in || die

eautoreconf
gnome2_src_prepare
}

multilib_src_configure() {
local myconf=(
--disable-schemas-install
--disable-static
--disable-cdda
--disable-fam
--disable-hal
--disable-howl
$(use_enable acl)
$(use_enable gnutls)
$(use_enable ipv6)
$(use_enable kerberos krb5)
$(use_enable samba)
$(use_enable ssl openssl)
$(use_enable zeroconf avahi)
# Useless ? --enable-http-neon

# fix path to krb5-config
KRB5_CONFIG=/usr/bin/${CHOST}-krb5-config
)

# this works because of the order of configure parsing
# so should always be behind the use_enable options
# foser <[email protected] 19 Apr 2004
use gnutls && use ssl && myconf+=( --disable-openssl )

#bug #519060
#configure script is so messed up on res_init on Darwin
[[ ${CHOST} == *-darwin* ]] && export LIBS="${LIBS} -lresolv"

ECONF_SOURCE=${S} \
gnome2_src_configure "${myconf[@]}"

if multilib_is_native_abi; then
ln -s "${S}"/doc/html doc/html || die
fi
}

multilib_src_test() {
unset DISPLAY
# Fix bug #285706
unset XAUTHORITY
Xemake check
}

multilib_src_install() {
gnome2_src_install
}

multilib_src_install_all() {
DOCS="AUTHORS ChangeLog HACKING NEWS README TODO"
einstalldocs
}

0 comments on commit 3ed0516

Please sign in to comment.