aboutsummaryrefslogtreecommitdiff
path: root/net-fs
diff options
context:
space:
mode:
Diffstat (limited to 'net-fs')
-rw-r--r--net-fs/cifs-utils/Manifest2
-rw-r--r--net-fs/cifs-utils/cifs-utils-6.7.ebuild124
-rw-r--r--net-fs/cifs-utils/files/cifs-utils-6.7-heimdal.patch27
-rw-r--r--net-fs/cifs-utils/files/cifs-utils-6.7-musl-missing-headers.patch25
-rw-r--r--net-fs/cifs-utils/files/cifs-utils-6.7-talloc.patch29
-rw-r--r--net-fs/cifs-utils/metadata.xml15
6 files changed, 222 insertions, 0 deletions
diff --git a/net-fs/cifs-utils/Manifest b/net-fs/cifs-utils/Manifest
new file mode 100644
index 00000000..7adcd937
--- /dev/null
+++ b/net-fs/cifs-utils/Manifest
@@ -0,0 +1,2 @@
+DIST cifs-utils-6.7.tar.bz2 363647 BLAKE2B 692c4b7de92c2cc5cb88591fb5b5b01ca7d925b105d10f7149e350d1b1661bb6447e71e0ca86095a9e294637d80126e54295413a685786b62c8e70cf26f893d0 SHA512 ee050a0eb4a72fbc8d773e86fbe6839ea2bf11cda5ebd071c8ead66e31b46d50ea4e1d1b26478373be53227cd60b32a90b65b5cb989b5a8237cddfc65bad8e5e
+DIST cifs-utils-6.8.tar.bz2 384426 BLAKE2B 002518f44489aefc94c47a23438b176a4056ff4d995b3ed9f25a6c6c8d4c8d7437a3158d5c592d16cb6bfcd289b937d6ac1ef0573c346993d576a88aa1fcb118 SHA512 54a094f78c9e07acc997adfe0c8d4c2fb8e15c18adcc1805450e2180f8539aaec8619e781e985b289e097932637e2de3e6815e32f59ec2fc06cfc3762b832e13
diff --git a/net-fs/cifs-utils/cifs-utils-6.7.ebuild b/net-fs/cifs-utils/cifs-utils-6.7.ebuild
new file mode 100644
index 00000000..ceeaf49d
--- /dev/null
+++ b/net-fs/cifs-utils/cifs-utils-6.7.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools eutils linux-info multilib pam
+
+DESCRIPTION="Tools for Managing Linux CIFS Client Filesystems"
+HOMEPAGE="https://wiki.samba.org/index.php/LinuxCIFS_utils"
+SRC_URI="https://ftp.samba.org/pub/linux-cifs/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-linux"
+IUSE="+acl +ads +caps +caps-ng creds pam"
+
+RDEPEND="
+ !net-fs/mount-cifs
+ !<net-fs/samba-3.6_rc1
+ sys-apps/keyutils
+ ads? (
+ sys-libs/talloc
+ virtual/krb5
+ )
+ caps? ( !caps-ng? ( sys-libs/libcap ) )
+ caps? ( caps-ng? ( sys-libs/libcap-ng ) )
+ pam? ( virtual/pam )
+"
+DEPEND="${RDEPEND}"
+PDEPEND="
+ acl? ( >=net-fs/samba-4.0.0_alpha1 )
+"
+
+REQUIRED_USE="acl? ( ads )"
+
+DOCS="doc/linux-cifs-client-guide.odt"
+
+PATCHES=(
+ "${FILESDIR}/${P}-talloc.patch"
+ "${FILESDIR}/${P}-musl-missing-headers.patch"
+)
+
+pkg_setup() {
+ linux-info_pkg_setup
+
+ if ! linux_config_exists || ! linux_chkconfig_present CIFS; then
+ ewarn "You must enable CIFS support in your kernel config, "
+ ewarn "to be able to mount samba shares. You can find it at"
+ ewarn
+ ewarn " File systems"
+ ewarn " Network File Systems"
+ ewarn " CIFS support"
+ ewarn
+ ewarn "and recompile your kernel ..."
+ fi
+}
+
+src_prepare() {
+ default
+
+ if has_version app-crypt/heimdal ; then
+ # https://bugs.gentoo.org/612584
+ eapply "${FILESDIR}/${PN}-6.7-heimdal.patch"
+ fi
+
+ eautoreconf
+}
+
+src_configure() {
+ ROOTSBINDIR="${EPREFIX}"/sbin \
+ econf \
+ $(use_enable acl cifsacl cifsidmap) \
+ $(use_enable ads cifsupcall) \
+ $(use caps && use_with !caps-ng libcap || echo --without-libcap) \
+ $(use caps && use_with caps-ng libcap-ng || echo --without-libcap-ng) \
+ $(use_enable creds cifscreds) \
+ $(use_enable pam) \
+ $(use_with pam pamdir $(getpam_mod_dir))
+}
+
+src_install() {
+ default
+
+ # remove empty directories
+ find "${ED}" -type d -print0 | xargs --null rmdir \
+ --ignore-fail-on-non-empty &>/dev/null
+
+ if use acl ; then
+ dodir /etc/cifs-utils
+ dosym /usr/$(get_libdir)/cifs-utils/idmapwb.so \
+ /etc/cifs-utils/idmap-plugin
+ dodir /etc/request-key.d
+ echo 'create cifs.idmap * * /usr/sbin/cifs.idmap %k' \
+ > "${ED}/etc/request-key.d/cifs.idmap.conf"
+ fi
+
+ if use ads ; then
+ dodir /etc/request-key.d
+ echo 'create dns_resolver * * /usr/sbin/cifs.upcall %k' \
+ > "${ED}/etc/request-key.d/cifs.upcall.conf"
+ echo 'create cifs.spnego * * /usr/sbin/cifs.upcall %k' \
+ > "${ED}/etc/request-key.d/cifs.spnego.conf"
+ fi
+}
+
+pkg_postinst() {
+ # Inform about set-user-ID bit of mount.cifs
+ ewarn "setuid use flag was dropped due to multiple security implications"
+ ewarn "such as CVE-2009-2948, CVE-2011-3585 and CVE-2012-1586"
+ ewarn "You are free to set setuid flags by yourself"
+
+ # Inform about upcall usage
+ if use acl ; then
+ einfo "The cifs.idmap utility has been enabled by creating the"
+ einfo "configuration file /etc/request-key.d/cifs.idmap.conf"
+ einfo "This enables you to get and set CIFS acls."
+ fi
+
+ if use ads ; then
+ einfo "The cifs.upcall utility has been enabled by creating the"
+ einfo "configuration file /etc/request-key.d/cifs.upcall.conf"
+ einfo "This enables you to mount DFS shares."
+ fi
+}
diff --git a/net-fs/cifs-utils/files/cifs-utils-6.7-heimdal.patch b/net-fs/cifs-utils/files/cifs-utils-6.7-heimdal.patch
new file mode 100644
index 00000000..f8fea48f
--- /dev/null
+++ b/net-fs/cifs-utils/files/cifs-utils-6.7-heimdal.patch
@@ -0,0 +1,27 @@
+https://bugs.gentoo.org/612584
+
+--- cifs-utils-6.7/cifs.upcall.c
++++ cifs-utils-6.7/cifs.upcall.c
+@@ -75,11 +75,13 @@
+ #define KRB5_KEY_LENGTH(k) ((k)->keyvalue.length)
+ #define KRB5_KEY_DATA(k) ((k)->keyvalue.data)
+ #define KRB5_KEY_DATA_CAST void
++#define KRB5_FREE_STRING(c,k) krb5_xfree(k)
+ #else /* MIT */
+ #define KRB5_KEY_TYPE(k) ((k)->enctype)
+ #define KRB5_KEY_LENGTH(k) ((k)->length)
+ #define KRB5_KEY_DATA(k) ((k)->contents)
+ #define KRB5_KEY_DATA_CAST krb5_octet
++#define KRB5_FREE_STRING(c,k) krb5_free_string(c,k)
+ #endif
+
+ #ifdef HAVE_LIBCAP_NG
+@@ -358,7 +360,7 @@
+ syslog(LOG_DEBUG, "%s: krb5_cc_get_full_name failed: %d\n", __func__, ret);
+ } else {
+ syslog(LOG_DEBUG, "%s: default ccache is %s\n", __func__, cachename);
+- krb5_free_string(context, cachename);
++ KRB5_FREE_STRING(context, cachename);
+ }
+
+ if (!get_tgt_time(cc)) {
diff --git a/net-fs/cifs-utils/files/cifs-utils-6.7-musl-missing-headers.patch b/net-fs/cifs-utils/files/cifs-utils-6.7-musl-missing-headers.patch
new file mode 100644
index 00000000..cfb54e28
--- /dev/null
+++ b/net-fs/cifs-utils/files/cifs-utils-6.7-musl-missing-headers.patch
@@ -0,0 +1,25 @@
+diff -Naur cifs-utils-6.7.orig/getcifsacl.c cifs-utils-6.7/getcifsacl.c
+--- cifs-utils-6.7.orig/getcifsacl.c 2017-03-02 16:51:05.000000000 -0000
++++ cifs-utils-6.7/getcifsacl.c 2019-05-11 14:18:04.522455988 -0000
+@@ -35,6 +35,9 @@
+ #include <limits.h>
+ #include <ctype.h>
+ #include <sys/xattr.h>
++#include <linux/limits.h>
++#include <endian.h>
++
+ #include "cifsacl.h"
+ #include "idmap_plugin.h"
+
+diff -Naur cifs-utils-6.7.orig/setcifsacl.c cifs-utils-6.7/setcifsacl.c
+--- cifs-utils-6.7.orig/setcifsacl.c 2017-03-02 16:51:05.000000000 -0000
++++ cifs-utils-6.7/setcifsacl.c 2019-05-11 14:17:58.285761823 -0000
+@@ -35,6 +35,8 @@
+ #include <limits.h>
+ #include <ctype.h>
+ #include <sys/xattr.h>
++#include <linux/limits.h>
++#include <endian.h>
+
+ #include "cifsacl.h"
+ #include "idmap_plugin.h"
diff --git a/net-fs/cifs-utils/files/cifs-utils-6.7-talloc.patch b/net-fs/cifs-utils/files/cifs-utils-6.7-talloc.patch
new file mode 100644
index 00000000..7e341863
--- /dev/null
+++ b/net-fs/cifs-utils/files/cifs-utils-6.7-talloc.patch
@@ -0,0 +1,29 @@
+https://bugs.gentoo.org/show_bug.cgi?id=612018
+
+From: Thomas Witt <pyromaniac@exherbo.org>
+Date: Wed, 15 Mar 2017 20:20:44 +0000 (+0000)
+Subject: mount.cifs: Remove data_blob.h include
+X-Git-Url: https://git.samba.org/?p=cifs-utils.git;a=commitdiff_plain;h=272d523a57a4e8791d625a479128613be5e401f5
+
+mount.cifs: Remove data_blob.h include
+
+data_blob.h includes talloc.h from libtalloc, but that is only marked as
+a dependency for cifs.upcall. No symbols from that header are used by
+cifs.mount, so remove it to avoid the libtalloc dependency
+
+Signed-off-by: Thomas Witt <pyromaniac@exherbo.org>
+---
+
+diff --git a/mount.cifs.c b/mount.cifs.c
+index 13b71ef..2612feb 100644
+--- a/mount.cifs.c
++++ b/mount.cifs.c
+@@ -61,7 +61,6 @@
+ #include "mount.h"
+ #include "util.h"
+ #include "resolve_host.h"
+-#include "data_blob.h"
+
+ #ifndef MS_MOVE
+ #define MS_MOVE 8192
+
diff --git a/net-fs/cifs-utils/metadata.xml b/net-fs/cifs-utils/metadata.xml
new file mode 100644
index 00000000..d5117586
--- /dev/null
+++ b/net-fs/cifs-utils/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>samba@gentoo.org</email>
+ <name>Samba Team</name>
+ </maintainer>
+ <longdescription>The in-kernel CIFS filesystem relies on a set of user-space tools. That package of tools is called cifs-utils. Although not really part of Samba proper, these tools were originally part of the Samba package. For several reasons, shipping these tools as part of Samba was problematic and it was deemed better to split them off into their own package</longdescription>
+ <use>
+ <flag name="ads">Enable Active Directory support and create cifs.idmap binary - idmap support</flag>
+ <flag name="caps">libcap support</flag>
+ <flag name="caps-ng">libcap-ng support</flag>
+ <flag name="creds">cifs credentials support</flag>
+ </use>
+</pkgmetadata>