summaryrefslogtreecommitdiff
path: root/net-fs
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2016-12-19 14:33:06 +0100
committerLars Wendler <polynomial-c@gentoo.org>2016-12-19 14:33:23 +0100
commit0aa1ea43d64b5c40839f1fbb4c1a176c5826ba6c (patch)
tree23553878195d61e3c00ac6999f7577b242a380ca /net-fs
parentprofiles/package.mask: mask dev-python/fuse-python for removal. (diff)
downloadgentoo-0aa1ea43d64b5c40839f1fbb4c1a176c5826ba6c.tar.gz
gentoo-0aa1ea43d64b5c40839f1fbb4c1a176c5826ba6c.tar.bz2
gentoo-0aa1ea43d64b5c40839f1fbb4c1a176c5826ba6c.zip
net-fs/samba: Security cleanup (bug #578004).
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'net-fs')
-rw-r--r--net-fs/samba/Manifest1
-rw-r--r--net-fs/samba/files/3.6/lmhosts2
-rw-r--r--net-fs/samba/files/3.6/samba.confd28
-rw-r--r--net-fs/samba/files/3.6/samba.initd60
-rw-r--r--net-fs/samba/files/3.6/samba.pam8
-rw-r--r--net-fs/samba/files/3.6/smb.conf.default.patch68
-rw-r--r--net-fs/samba/files/3.6/smbusers7
-rw-r--r--net-fs/samba/files/3.6/swat.xinetd17
-rw-r--r--net-fs/samba/files/3.6/system-auth-winbind.pam18
-rw-r--r--net-fs/samba/files/named.conf.dlz.patch15
-rw-r--r--net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk6
-rw-r--r--net-fs/samba/files/samba-4.0.19-automagic_aio_fix.patch57
-rw-r--r--net-fs/samba/files/samba-4.1.14-libsystemd.patch51
-rw-r--r--net-fs/samba/files/samba-4.1.14-named.conf.dlz.patch15
-rw-r--r--net-fs/samba/samba-3.6.25.ebuild483
15 files changed, 0 insertions, 836 deletions
diff --git a/net-fs/samba/Manifest b/net-fs/samba/Manifest
index 57358b265ebf..8545d9baacaf 100644
--- a/net-fs/samba/Manifest
+++ b/net-fs/samba/Manifest
@@ -1,4 +1,3 @@
-DIST samba-3.6.25.tar.gz 34121828 SHA256 8f2c8a7f2bd89b0dfd228ed917815852f7c625b2bc0936304ac3ed63aaf83751 SHA512 25a5c56dae4517e82e196b59fa301b661ec75db57effbb0ede35fb23b018f78cdea6513e8760966caf58abc43335fcebda77fe5bf5bb9d4b27fd3ca6e5a3b626 WHIRLPOOL 68c4a335b3912bf3c6baecae337b1131127515191052366ca9a04ec6d919f2fb69c912aefb087e2578134f3a9bde7b496ea880f2197a8dbf8221058dd1e8444d
DIST samba-4.2.11.tar.gz 20875348 SHA256 75bce53c922e51352933c9846f2c4b1e251fabb80927adb426a773a321ee01f8 SHA512 293365f2718e756b66ccaec4b0dbce7044ade615b332f58968cf42dd1ec6b6445576590eaf5bd35fa00ba9aa4ba3be7720afc33763652e97731eebc3149f4820 WHIRLPOOL 1e04fd527e55c8d438c96a43d9a25a9b3e09a3edc504a2a5fe44bc8f9101c833c90e3ba3188b8872b046370916f3798e4fce0ffa7848b65f452b5c51ec7107f1
DIST samba-4.2.14.tar.gz 20883281 SHA256 db820a9947e44f04b0eb25e4aa0c3db32c4042fca541775ee8e2905093e888e6 SHA512 269dd74ba788657434f51ac70953a293c94bcf98280eaa6f44634c5da54169a5ea7865d543a7c23860c4750a40cdee7caeaf5c7fc3dbc137f444e90f31a09890 WHIRLPOOL 925369c2f9c222d718bf4aacc7b1a83b8275acd96bbc1eca52ad96c86847327807560674ee9b180173d17a1e6109307ec4f70f1acbebe2efc8a9e67f2141e17d
DIST samba-4.3.12.tar.gz 20587617 SHA256 7e9c75b1e269224fd2fcd80415c813c7cf8021389e40777c7b63348d94a25180 SHA512 cba129bae5bb01e85b48e82336ddf8e348852e922829a3ed37a8aa02860057441f3b941cab6d9989cd09099ca4c45ee89cb343f30c10de51dff398ffbcaa43ce WHIRLPOOL 8f885da2ea0a15a04d7deb6aeb1919214b9a19306285e4e1c1ee1557e26b6dcc6f252f50e41fe5d3bc0ac537c446610c820909321c4e6aeb22e4708e6e05dcbc
diff --git a/net-fs/samba/files/3.6/lmhosts b/net-fs/samba/files/3.6/lmhosts
deleted file mode 100644
index fe7b466eb16a..000000000000
--- a/net-fs/samba/files/3.6/lmhosts
+++ /dev/null
@@ -1,2 +0,0 @@
-# $Id$
-127.0.0.1 localhost
diff --git a/net-fs/samba/files/3.6/samba.confd b/net-fs/samba/files/3.6/samba.confd
deleted file mode 100644
index 1b329dae6b18..000000000000
--- a/net-fs/samba/files/3.6/samba.confd
+++ /dev/null
@@ -1,28 +0,0 @@
-#add "winbind" to the daemon_list if you also want winbind to start
-daemon_list="smbd nmbd"
-
-#----------------------------------------------------------------------------
-# Daemons calls: <daemon_name>_<command_option>
-#----------------------------------------------------------------------------
-my_service_name="samba"
-my_service_PRE="unset TMP TMPDIR"
-my_service_POST=""
-
-#----------------------------------------------------------------------------
-# Daemons calls: <daemon_name>_<command_option>
-#----------------------------------------------------------------------------
-smbd_start_options="-D"
-smbd_start="start-stop-daemon --start --exec /usr/sbin/smbd -- ${smbd_start_options}"
-smbd_stop="start-stop-daemon --stop --exec /usr/sbin/smbd"
-smbd_reload="killall -HUP smbd"
-
-nmbd_start_options="-D"
-nmbd_start="start-stop-daemon --start --exec /usr/sbin/nmbd -- ${nmbd_start_options}"
-nmbd_stop="start-stop-daemon --stop --exec /usr/sbin/nmbd"
-nmbd_reload="killall -HUP nmbd"
-
-winbind_start_options=""
-winbind_start="start-stop-daemon --start --exec /usr/sbin/winbindd -- ${winbind_start_options}"
-winbind_stop="start-stop-daemon --stop --exec /usr/sbin/winbindd"
-winbind_reload="killall -HUP winbindd"
-
diff --git a/net-fs/samba/files/3.6/samba.initd b/net-fs/samba/files/3.6/samba.initd
deleted file mode 100644
index 3d238fe21ea7..000000000000
--- a/net-fs/samba/files/3.6/samba.initd
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License, v2 or later
-# $Id$
-
-extra_started_commands="reload"
-piddir="/var/run/samba"
-
-depend() {
- after slapd
- need net
- use cupsd
-}
-
-DAEMONNAME="${SVCNAME##samba.}"
-[ "${DAEMONNAME}" != "samba" ] && daemon_list=${DAEMONNAME}
-
-signal_do() {
- local signal="$1"
- [ -z "${signal}" ] && return 0
-
- local result=0 last_result=0 daemon= cmd_exec=
- for daemon in ${daemon_list} ; do
- eval cmd_exec=\$${daemon}_${signal}
- if [ -n "${cmd_exec}" ]; then
- ebegin "${my_service_name} -> ${signal}: ${daemon}"
- #echo ${cmd} '->' ${!cmd}
- ${cmd_exec} > /dev/null
- last_result=$?
- eend ${last_result}
- fi
- result=$(( ${result} + ${last_result} ))
- done
- return ${result}
-}
-
-mkdir_sambadirs() {
- [ -d "${piddir}" ] || mkdir -p ${piddir}
-}
-
-start() {
- ${my_service_PRE}
- mkdir_sambadirs
- signal_do start && return 0
-
- eerror "Error: starting services (see system logs)"
- signal_do stop
- return 1
-}
-stop() {
- ${my_service_PRE}
- if signal_do stop ; then
- ${my_service_POST}
- return 0
- fi
-}
-reload() {
- ${my_service_PRE}
- signal_do reload
-}
diff --git a/net-fs/samba/files/3.6/samba.pam b/net-fs/samba/files/3.6/samba.pam
deleted file mode 100644
index 91beadd478a4..000000000000
--- a/net-fs/samba/files/3.6/samba.pam
+++ /dev/null
@@ -1,8 +0,0 @@
-#%PAM-1.0
-# * pam_smbpass.so authenticates against the smbpasswd file
-# * changed Redhat's 'pam_stack' with 'include' for *BSD compatibility
-# (Diego "Flameeyes" Petteno'): enable with pam>=0.78 only
-auth required pam_smbpass.so nodelay
-account include system-auth
-session include system-auth
-password required pam_smbpass.so nodelay smbconf=/etc/samba/smb.conf
diff --git a/net-fs/samba/files/3.6/smb.conf.default.patch b/net-fs/samba/files/3.6/smb.conf.default.patch
deleted file mode 100644
index c2a9a72cedad..000000000000
--- a/net-fs/samba/files/3.6/smb.conf.default.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- samba-3.6.0rc2/examples/smb.conf.default~ 2011-06-07 19:13:47.000000000 +0100
-+++ samba-3.6.0rc2/examples/smb.conf.default 2011-06-30 16:12:42.388102480 +0100
-@@ -63,7 +63,7 @@
-
- # this tells Samba to use a separate log file for each machine
- # that connects
-- log file = /usr/local/samba/var/log.%m
-+ log file = /var/log/samba/log.%m
-
- # Put a capping on the size of the log files (in Kb).
- max log size = 50
-@@ -81,7 +81,10 @@
-
- # Backend to store user information in. New installations should
- # use either tdbsam or ldapsam. smbpasswd is available for backwards
--# compatibility. tdbsam requires no further configuration.
-+# compatibility. tdbsam requires no further configuration. If you're
-+# migrating from < samba 3.4, you'll have to convert your old user
-+# passwords to the new backend with the command:
-+# pdbedit -i smbpasswd:/var/lib/samba/private/smbpasswd -e
- ; passdb backend = tdbsam
-
- # Using the following line enables you to customise your configuration
-@@ -89,7 +92,7 @@
- # of the machine that is connecting.
- # Note: Consider carefully the location in the configuration file of
- # this line. The included file is read at that point.
--; include = /usr/local/samba/lib/smb.conf.%m
-+; include = /etc/samba/smb.conf.%m
-
- # Configure Samba to use multiple interfaces
- # If you have multiple network interfaces then you must list them
-@@ -166,7 +169,7 @@
- # Un-comment the following and create the netlogon directory for Domain Logons
- ; [netlogon]
- ; comment = Network Logon Service
--; path = /usr/local/samba/lib/netlogon
-+; path = /var/lib/samba/netlogon
- ; guest ok = yes
- ; writable = no
- ; share modes = no
-@@ -175,7 +178,7 @@
- # Un-comment the following to provide a specific roving profile share
- # the default is to use the user's home directory
- ;[Profiles]
--; path = /usr/local/samba/profiles
-+; path = /var/lib/samba/profiles
- ; browseable = no
- ; guest ok = yes
-
-@@ -184,7 +187,7 @@
- # specifically define each individual printer
- [printers]
- comment = All Printers
-- path = /usr/spool/samba
-+ path = /var/spool/samba
- browseable = no
- # Set public = yes to allow user 'guest account' to print
- guest ok = no
-@@ -204,7 +207,7 @@
- ; comment = Public Stuff
- ; path = /home/samba
- ; public = yes
--; writable = no
-+; writable = yes
- ; printable = no
- ; write list = @staff
-
diff --git a/net-fs/samba/files/3.6/smbusers b/net-fs/samba/files/3.6/smbusers
deleted file mode 100644
index 7acb6dc817af..000000000000
--- a/net-fs/samba/files/3.6/smbusers
+++ /dev/null
@@ -1,7 +0,0 @@
-# $Id$
-
-# Syntax:
-# Unix_name = SMB_name1 SMB_name2 ...
-
-root = Administrator admin
-nobody = guest pcguest smbguest
diff --git a/net-fs/samba/files/3.6/swat.xinetd b/net-fs/samba/files/3.6/swat.xinetd
deleted file mode 100644
index 45e977df11aa..000000000000
--- a/net-fs/samba/files/3.6/swat.xinetd
+++ /dev/null
@@ -1,17 +0,0 @@
-# default: off
-# description: SWAT is the Samba Web Admin Tool. Use swat \
-# to configure your Samba server. To use SWAT, \
-# connect to port 901 with your favorite web browser.
-# $Id$
-
-service swat
-{
- port = 901
- socket_type = stream
- wait = no
- only_from = localhost
- user = root
- server = /usr/sbin/swat
- log_on_failure += USERID
- disable = yes
-}
diff --git a/net-fs/samba/files/3.6/system-auth-winbind.pam b/net-fs/samba/files/3.6/system-auth-winbind.pam
deleted file mode 100644
index 8d6746b7aeb6..000000000000
--- a/net-fs/samba/files/3.6/system-auth-winbind.pam
+++ /dev/null
@@ -1,18 +0,0 @@
-#%PAM-1.0
-# $Id$
-
-auth required pam_env.so
-auth sufficient pam_winbind.so
-auth sufficient pam_unix.so likeauth nullok use_first_pass
-auth required pam_deny.so
-
-account sufficient pam_winbind.so
-account required pam_unix.so
-
-password required pam_cracklib.so retry=3
-password sufficient pam_unix.so nullok use_authtok md5 shadow
-password required pam_deny.so
-
-session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
-session required pam_limits.so
-session required pam_unix.so
diff --git a/net-fs/samba/files/named.conf.dlz.patch b/net-fs/samba/files/named.conf.dlz.patch
deleted file mode 100644
index ad8486ce1c67..000000000000
--- a/net-fs/samba/files/named.conf.dlz.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/source4/setup/named.conf.dlz b/source4/setup/named.conf.dlz
-index be20a57..d86f766 100644
---- a/source4/setup/named.conf.dlz
-+++ b/source4/setup/named.conf.dlz
-@@ -11,9 +11,9 @@
- #
- dlz "AD DNS Zone" {
- # For BIND 9.8.0
-- database "dlopen ${MODULESDIR}/bind9/dlz_bind9.so";
-+ # database "dlopen ${MODULESDIR}/bind9/dlz_bind9.so";
-
- # For BIND 9.9.0
-- # database "dlopen ${MODULESDIR}/bind9/dlz_bind9_9.so";
-+ database "dlopen ${MODULESDIR}/bind9/dlz_bind9_9.so";
- };
diff --git a/net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk b/net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk
deleted file mode 100644
index 3a0375580bea..000000000000
--- a/net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-[PYTHON::pytevent]
-LIBRARY_REALNAME = tevent.$(SHLIBEXT)
-PRIVATE_DEPENDENCIES = LIBTEVENT PYTALLOC LIBSAMBA-UTIL LIBREPLACE
-
-pytevent_OBJ_FILES = $(libteventsrcdir)/pytevent.o
-
diff --git a/net-fs/samba/files/samba-4.0.19-automagic_aio_fix.patch b/net-fs/samba/files/samba-4.0.19-automagic_aio_fix.patch
deleted file mode 100644
index ec351db7a2d0..000000000000
--- a/net-fs/samba/files/samba-4.0.19-automagic_aio_fix.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-https://bugzilla.samba.org/show_bug.cgi?id=10370
-
---- samba-4.0.19/source3/wscript
-+++ samba-4.0.19/source3/wscript
-@@ -507,9 +507,10 @@
- else:
- conf.DEFINE('HAVE_NO_AIO', '1')
-
-- if host_os.rfind('linux') > -1:
-- conf.CHECK_FUNCS_IN('io_submit', 'aio')
-- conf.CHECK_CODE('''
-+ if Options.options.with_aio_support != False:
-+ if host_os.rfind('linux') > -1:
-+ conf.CHECK_FUNCS_IN('io_submit', 'aio')
-+ conf.CHECK_CODE('''
- struct io_event ioev;
- struct iocb *ioc;
- io_context_t ctx;
-@@ -526,11 +527,11 @@
- io_getevents(ctx, 1, 1, &ioev, &ts);
- ''',
- 'HAVE_LINUX_KERNEL_AIO',
-- msg='Checking for linux kernel asynchronous io support',
-- headers='unistd.h stdlib.h sys/types.h fcntl.h sys/eventfd.h libaio.h',
-- lib='aio')
-+ msg='Checking for linux kernel asynchronous io support',
-+ headers='unistd.h stdlib.h sys/types.h fcntl.h sys/eventfd.h libaio.h',
-+ lib='aio')
-
-- conf.CHECK_CODE('''
-+ conf.CHECK_CODE('''
- struct msghdr msg;
- union {
- struct cmsghdr cm;
-@@ -540,17 +541,17 @@
- msg.msg_controllen = sizeof(control_un.control);
- ''',
- 'HAVE_MSGHDR_MSG_CONTROL',
-- msg='Checking if we can use msg_control for passing file descriptors',
-- headers='sys/types.h stdlib.h stddef.h sys/socket.h sys/un.h')
-- conf.CHECK_CODE('''
-+ msg='Checking if we can use msg_control for passing file descriptors',
-+ headers='sys/types.h stdlib.h stddef.h sys/socket.h sys/un.h')
-+ conf.CHECK_CODE('''
- struct msghdr msg;
- int fd;
- msg.msg_acctrights = (caddr_t) &fd;
- msg.msg_acctrightslen = sizeof(fd);
- ''',
- 'HAVE_MSGHDR_MSG_ACCTRIGHTS',
-- msg='Checking if we can use msg_acctrights for passing file descriptors',
-- headers='sys/types.h stdlib.h stddef.h sys/socket.h sys/un.h')
-+ msg='Checking if we can use msg_acctrights for passing file descriptors',
-+ headers='sys/types.h stdlib.h stddef.h sys/socket.h sys/un.h')
-
- if Options.options.with_winbind:
- conf.env.build_winbind = True
diff --git a/net-fs/samba/files/samba-4.1.14-libsystemd.patch b/net-fs/samba/files/samba-4.1.14-libsystemd.patch
deleted file mode 100644
index 94b30c00e162..000000000000
--- a/net-fs/samba/files/samba-4.1.14-libsystemd.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 0f9b06ade820ce165015526220569db81e00150b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Sat, 3 Jan 2015 18:59:48 +0100
-Subject: [PATCH] Support libsystemd, renamed from libsystemd-daemon
-
----
- lib/util/wscript_build | 2 +-
- wscript | 4 ++++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/lib/util/wscript_build b/lib/util/wscript_build
-index f161f96..6b6b511 100755
---- a/lib/util/wscript_build
-+++ b/lib/util/wscript_build
-@@ -10,7 +10,7 @@ bld.SAMBA_LIBRARY('samba-util',
- server_id.c dprintf.c parmlist.c bitmap.c pidfile.c
- tevent_debug.c util_process.c memcache.c''',
- deps='DYNCONFIG',
-- public_deps='talloc tevent execinfo uid_wrapper pthread LIBCRYPTO charset util_setid systemd-daemon',
-+ public_deps='talloc tevent execinfo uid_wrapper pthread LIBCRYPTO charset util_setid systemd systemd-daemon',
- public_headers='debug.h attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h samba_util.h string_wrappers.h',
- header_path= [ ('dlinklist.h samba_util.h', '.'), ('*', 'util') ],
- local_include=False,
-diff --git a/wscript b/wscript
-index f389f90..3c4fa21 100644
---- a/wscript
-+++ b/wscript
-@@ -183,9 +183,12 @@ def configure(conf):
- conf.env['ENABLE_PIE'] = True
-
- if Options.options.enable_systemd != False:
-+ conf.check_cfg(package='libsystemd', args='--cflags --libs',
-+ msg='Checking for libsystemd', uselib_store="SYSTEMD")
- conf.check_cfg(package='libsystemd-daemon', args='--cflags --libs',
- msg='Checking for libsystemd-daemon', uselib_store="SYSTEMD-DAEMON")
- conf.CHECK_HEADERS('systemd/sd-daemon.h', lib='systemd-daemon')
-+ conf.CHECK_LIB('systemd', shlib=True)
- conf.CHECK_LIB('systemd-daemon', shlib=True)
-
- if conf.CONFIG_SET('HAVE_SYSTEMD_SD_DAEMON_H'):
-@@ -193,6 +196,7 @@ def configure(conf):
- conf.env['ENABLE_SYSTEMD'] = True
- else:
- conf.SET_TARGET_TYPE('systemd-daemon', 'EMPTY')
-+ conf.SET_TARGET_TYPE('systemd', 'EMPTY')
- conf.undefine('HAVE_SYSTEMD')
-
- conf.SAMBA_CONFIG_H('include/config.h')
---
-2.2.1
-
diff --git a/net-fs/samba/files/samba-4.1.14-named.conf.dlz.patch b/net-fs/samba/files/samba-4.1.14-named.conf.dlz.patch
deleted file mode 100644
index 9f1ebb819906..000000000000
--- a/net-fs/samba/files/samba-4.1.14-named.conf.dlz.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- samba-4.1.14/source4/setup/named.conf.dlz
-+++ samba-4.1.14/source4/setup/named.conf.dlz
-@@ -11,10 +11,10 @@
- #
- dlz "AD DNS Zone" {
- # For BIND 9.8.x
-- database "dlopen ${MODULESDIR}/bind9/dlz_bind9.so";
-+ # database "dlopen ${MODULESDIR}/bind9/dlz_bind9.so";
-
- # For BIND 9.9.x
-- # database "dlopen ${MODULESDIR}/bind9/dlz_bind9_9.so";
-+ database "dlopen ${MODULESDIR}/bind9/dlz_bind9_9.so";
-
- # For BIND 9.10.x
- # database "dlopen ${MODULESDIR}/bind9/dlz_bind9_10.so";
diff --git a/net-fs/samba/samba-3.6.25.ebuild b/net-fs/samba/samba-3.6.25.ebuild
deleted file mode 100644
index 79925e39e6fd..000000000000
--- a/net-fs/samba/samba-3.6.25.ebuild
+++ /dev/null
@@ -1,483 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit pam versionator multilib multilib-minimal eutils flag-o-matic systemd
-
-MY_PV=${PV/_/}
-MY_P="${PN}-${MY_PV}"
-
-DESCRIPTION="Library bits of the samba network filesystem"
-HOMEPAGE="http://www.samba.org/"
-SRC_URI="mirror://samba/stable/${MY_P}.tar.gz"
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
-IUSE="acl addns ads +aio avahi caps +client cluster cups debug dmapi doc examples fam
- ldap ldb +netapi pam quota +readline selinux +server +smbclient smbsharemodes
- swat syslog +winbind"
-
-DEPEND="dev-libs/popt
- >=sys-libs/talloc-2.0.8-r1[${MULTILIB_USEDEP}]
- >=sys-libs/tdb-1.2.13[${MULTILIB_USEDEP}]
- >=sys-libs/tevent-0.9.19[${MULTILIB_USEDEP}]
- >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}]
- ads? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] sys-fs/e2fsprogs
- client? ( sys-apps/keyutils ) )
- avahi? ( net-dns/avahi[dbus] )
- caps? ( >=sys-libs/libcap-2.22-r2[${MULTILIB_USEDEP}] )
- client? ( !net-fs/mount-cifs
- >=dev-libs/iniparser-3.1-r1:0[${MULTILIB_USEDEP}] )
- cluster? ( >=dev-db/ctdb-1.13 )
- cups? ( net-print/cups )
- debug? ( dev-libs/dmalloc )
- dmapi? ( sys-apps/dmapi )
- fam? ( >=virtual/fam-0-r1[${MULTILIB_USEDEP}] )
- ldap? ( >=net-nds/openldap-2.4.38-r1[${MULTILIB_USEDEP}] )
- ldb? ( sys-libs/ldb )
- pam? ( >=virtual/pam-0-r1[${MULTILIB_USEDEP}]
- winbind? ( >=dev-libs/iniparser-3.1-r1:0[${MULTILIB_USEDEP}] )
- )
- readline? ( >=sys-libs/readline-5.2:= )
- syslog? ( virtual/logger )"
-
-RDEPEND="${DEPEND}
- kernel_linux? ( ads? ( net-fs/cifs-utils[ads] )
- client? ( net-fs/cifs-utils ) )
- selinux? ( sec-policy/selinux-samba )
-"
-
-# Disable tests since we don't want to build that much here
-RESTRICT="test"
-
-SBINPROGS=""
-BINPROGS=""
-KRBPLUGIN=""
-PLUGINEXT=".so"
-SHAREDMODS=""
-
-S=${WORKDIR}/${MY_P}
-
-# TODO:
-# - enable iPrint on Prefix/OSX and Darwin?
-# - selftest-prefix? selftest?
-# - AFS?
-
-CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)"
-
-REQUIRED_USE="
- ads? ( ldap )
- swat? ( server )
-"
-
-pkg_pretend() {
- if [[ ${MERGE_TYPE} != binary ]]; then
- if use winbind &&
- [[ $(tc-getCC)$ == *gcc* ]] &&
- [[ $(gcc-major-version)$(gcc-minor-version) -lt 43 ]]
- then
- eerror "It is a known issue that ${P} will not build with "
- eerror "winbind use flag enabled when using gcc < 4.3 ."
- eerror "Please use at least the latest stable gcc version."
- die "Using sys-devel/gcc < 4.3 with winbind use flag."
- fi
- fi
-}
-
-pkg_setup() {
- if use server ; then
- SBINPROGS="${SBINPROGS} bin/smbd bin/nmbd"
- BINPROGS="${BINPROGS} bin/testparm bin/smbstatus bin/smbcontrol bin/pdbedit
- bin/profiles bin/sharesec bin/eventlogadm bin/smbta-util
- $(usex client "" "bin/smbclient")"
-
- use swat && SBINPROGS="${SBINPROGS} bin/swat"
- use winbind && SBINPROGS="${SBINPROGS} bin/winbindd"
- use ads && use winbind && KRBPLUGIN="${KRBPLUGIN} bin/winbind_krb5_locator"
- fi
-
- if use client ; then
- BINPROGS="${BINPROGS} bin/smbclient bin/net bin/smbget bin/smbtree
- bin/nmblookup bin/smbpasswd bin/rpcclient bin/smbcacls bin/smbcquotas
- bin/ntlm_auth"
-
- fi
-
- use cups && BINPROGS="${BINPROGS} bin/smbspool"
-# use ldb && BINPROGS="${BINPROGS} bin/ldbedit bin/ldbsearch bin/ldbadd bin/ldbdel bin/ldbmodify bin/ldbrename";
-
- if use winbind ; then
- BINPROGS="${BINPROGS} bin/wbinfo"
- SHAREDMODS="${SHAREDMODS}idmap_rid,idmap_hash"
- use ads && SHAREDMODS="${SHAREDMODS},idmap_ad"
- use cluster && SHAREDMODS="${SHAREDMODS},idmap_tdb2"
- use ldap && SHAREDMODS="${SHAREDMODS},idmap_ldap,idmap_adex"
- fi
-}
-
-src_prepare() {
- cp "${FILESDIR}/samba-3.4.2-lib.tevent.python.mk" "lib/tevent/python.mk"
-
- # ensure that winbind has correct ldflags (QA notice)
- sed -i \
- -e 's|LDSHFLAGS="|LDSHFLAGS="\\${LDFLAGS} |g' \
- source3/configure || die "sed failed"
- epatch "${CONFDIR}"/smb.conf.default.patch
-
- #bug #399141 wrap newer iniparser version
- has_version ">=dev-libs/iniparser-3.0.0:0" && \
- append-cppflags "-Diniparser_getstr\(d,i\)=iniparser_getstring\(d,i,NULL\)"
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local myconf=()
-
- # we can't alter S since build system writes to '../' and therefore
- # we need to duplicate the whole structure
- cd source3 || die
-
- # Filter out -fPIE
- [[ ${CHOST} == *-*bsd* ]] && myconf+=( --disable-pie )
-
- #Allowing alpha/s390/sh to build
- if use alpha || [[ ${ABI} == s390 ]] || use sh ; then
- local CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS}
- replace-flags -O? -O1
- fi
-
- # http://wiki.samba.org/index.php/CTDB_Setup
- use cluster && myconf+=( --disable-pie )
-
- # Upstream refuses to make this configurable
- myconf+=( ac_cv_header_sys_capability_h=$(usex caps) )
-
- # Notes:
- # - automount is only needed in conjunction with NIS and we don't have that
- # anymore => LDAP?
- # - --without-dce-dfs and --without-nisplus-home can't be passed to configure but are disabled by default
- econf "${myconf[@]}" \
- --with-piddir="${EPREFIX}"/var/run/samba \
- --sysconfdir="${EPREFIX}"/etc/samba \
- --localstatedir="${EPREFIX}"/var \
- $(multilib_native_use_enable debug developer) \
- --enable-largefile \
- --enable-socket-wrapper \
- --enable-nss-wrapper \
- $(multilib_native_use_enable swat) \
- $(multilib_native_use_enable debug dmalloc) \
- $(multilib_native_use_enable cups) \
- --disable-iprint \
- $(use_enable fam) \
- --enable-shared-libs \
- --disable-dnssd \
- $(multilib_native_use_enable avahi) \
- --with-fhs \
- --with-privatedir="${EPREFIX}"/var/lib/samba/private \
- --with-rootsbindir="${EPREFIX}"/var/cache/samba \
- --with-lockdir="${EPREFIX}"/var/cache/samba \
- --with-swatdir="${EPREFIX}"/usr/share/doc/${PF}/swat \
- --with-configdir="${EPREFIX}"/etc/samba \
- --with-logfilebase="${EPREFIX}"/var/log/samba \
- --with-pammodulesdir=$(getpam_mod_dir) \
- $(multilib_native_use_with dmapi) \
- --without-afs \
- --without-fake-kaserver \
- --without-vfs-afsacl \
- $(use_with ldap) \
- $(use_with ads) \
- $(use_with ads krb5 "${EPREFIX}"/usr) \
- $(use_with ads dnsupdate) \
- --without-automount \
- $(use_with pam) \
- $(use_with pam pam_smbpass) \
- $(use_with syslog) \
- $(use_with quota quotas) \
- $(use_with quota sys-quotas) \
- --without-utmp \
- --without-lib{talloc,tdb} \
- $(use_with netapi libnetapi) \
- $(use_with smbclient libsmbclient) \
- $(use_with smbsharemodes libsmbsharemodes) \
- $(use_with addns libaddns) \
- $(use_with cluster ctdb "${EPREFIX}"/usr) \
- $(use_with cluster cluster-support) \
- $(multilib_native_use_with acl acl-support) \
- $(use_with aio aio-support) \
- --with-sendfile-support \
- $(use_with winbind) \
- --with-shared-modules=${SHAREDMODS} \
- --without-included-popt \
- --without-included-iniparser
-}
-
-multilib_src_compile() {
- cd source3 || die
-
- # compile libs
- if use addns ; then
- einfo "make addns library"
- emake libaddns
- fi
- if use netapi ; then
- einfo "make netapi library"
- emake libnetapi
- fi
- if use smbclient ; then
- einfo "make smbclient library"
- emake libsmbclient
- fi
- if use smbsharemodes ; then
- einfo "make smbsharemodes library"
- emake libsmbsharemodes
- fi
-
- # compile modules
- emake modules
-
- # compile pam moudles
- if use pam ; then
- einfo "make pam modules"
- emake pam_modules
- fi
-
- # compile winbind nss modules
- if use winbind ; then
- einfo "make nss modules"
- emake nss_modules
- fi
-
- # compile utilities
- if multilib_is_native_abi; then
- if [ -n "${BINPROGS}" ] ; then
- einfo "make binprogs"
- emake ${BINPROGS}
- fi
- if [ -n "${SBINPROGS}" ] ; then
- einfo "make sbinprogs"
- emake ${SBINPROGS}
- fi
- fi
-
- if [ -n "${KRBPLUGIN}" ] ; then
- einfo "make krbplugin"
- emake ${KRBPLUGIN}${PLUGINEXT}
- fi
-}
-
-multilib_src_install() {
- cd source3 || die
-
- # pkgconfig files installation needed, bug #464818
- local pkgconfigdir=/usr/$(get_libdir)/pkgconfig
-
- # install libs
- if use addns ; then
- einfo "install addns library"
- emake installlibaddns DESTDIR="${D}"
- fi
- if use netapi ; then
- einfo "install netapi library"
- emake installlibnetapi DESTDIR="${D}"
- insinto $pkgconfigdir
- doins pkgconfig/netapi.pc
- fi
- if use smbclient ; then
- einfo "install smbclient library"
- emake installlibsmbclient DESTDIR="${D}"
- insinto $pkgconfigdir
- doins pkgconfig/smbclient.pc
- fi
- if use smbsharemodes ; then
- einfo "install smbsharemodes library"
- emake installlibsmbsharemodes DESTDIR="${D}"
- insinto $pkgconfigdir
- doins pkgconfig/smbsharemodes.pc
- fi
-
- # install modules
- emake installmodules DESTDIR="${D}"
-
- if use pam ; then
- einfo "install pam modules"
- emake installpammodules DESTDIR="${D}"
-
- if use winbind ; then
- newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind
- doman ../docs/manpages/pam_winbind.8
- # bug #376853
- insinto /etc/security
- doins ../examples/pam_winbind/pam_winbind.conf || die
- fi
-
- newpamd "${CONFDIR}/samba.pam" samba
- dodoc pam_smbpass/README
- fi
-
- # Nsswitch extensions. Make link for wins and winbind resolvers
- if use winbind ; then
- einfo "install libwbclient"
- emake installlibwbclient DESTDIR="${D}"
- dolib.so ../nsswitch/libnss_wins.so
- dosym libnss_wins.so /usr/$(get_libdir)/libnss_wins.so.2
- dolib.so ../nsswitch/libnss_winbind.so
- dosym libnss_winbind.so /usr/$(get_libdir)/libnss_winbind.so.2
- insinto $pkgconfigdir
- doins pkgconfig/wbclient.pc
- einfo "install libwbclient related manpages"
- doman ../docs/manpages/idmap_rid.8
- doman ../docs/manpages/idmap_hash.8
- if use ldap ; then
- doman ../docs/manpages/idmap_adex.8
- doman ../docs/manpages/idmap_ldap.8
- fi
- if use ads ; then
- doman ../docs/manpages/idmap_ad.8
- fi
- fi
-
- # install binaries
- if multilib_is_native_abi; then
- insinto /usr
- for prog in ${SBINPROGS} ; do
- dosbin ${prog}
- doman ../docs/manpages/${prog/bin\/}*
- done
-
- for prog in ${BINPROGS} ; do
- dobin ${prog}
- doman ../docs/manpages/${prog/bin\/}*
- done
-
- # install scripts
- if use client ; then
- dobin script/findsmb
- doman ../docs/manpages/findsmb.1
- fi
- fi
-
- # install krbplugin
- if [ -n "${KRBPLUGIN}" ] ; then
- if has_version app-crypt/mit-krb5 ; then
- insinto /usr/$(get_libdir)/krb5/plugins/libkrb5
- doins ${KRBPLUGIN}${PLUGINEXT}
- elif has_version app-crypt/heimdal ; then
- insinto /usr/$(get_libdir)/plugin/krb5
- doins ${KRBPLUGIN}${PLUGINEXT}
- fi
- insinto /usr
- for prog in ${KRBPLUGIN} ; do
- doman ../docs/manpages/${prog/bin\/}*
- done
- fi
-}
-
-multilib_src_install_all() {
- # install server components
- if use server ; then
- doman docs/manpages/vfs* docs/manpages/samba.7
-
- diropts -m0700
- keepdir /var/lib/samba/private
-
- diropts -m1777
- keepdir /var/spool/samba
-
- diropts -m0755
- keepdir /var/{cache,log}/samba
- keepdir /var/lib/samba/{netlogon,profiles}
- keepdir /var/lib/samba/printers/{W32X86,WIN40,W32ALPHA,W32MIPS,W32PPC,X64,IA64,COLOR}
- keepdir /usr/$(get_libdir)/samba/{auth,pdb,rpc,idmap,nss_info,gpext}
-
- newconfd "${CONFDIR}/samba.confd" samba
- newinitd "${CONFDIR}/samba.initd" samba
-
- insinto /etc/samba
- doins "${CONFDIR}"/{smbusers,lmhosts}
-
- if use ldap ; then
- insinto /etc/openldap/schema
- doins examples/LDAP/samba.schema
- fi
-
- if use swat ; then
- insinto /etc/xinetd.d
- newins "${CONFDIR}/swat.xinetd" swat
- script/installswat.sh "${ED}" "${EROOT}/usr/share/doc/${PF}/swat" "${S}"
- fi
-
- dodoc MAINTAINERS.txt README* Roadmap WHATSNEW.txt docs/THANKS
- fi
-
- # install the spooler to cups
- if use cups ; then
- dosym /usr/bin/smbspool $(cups-config --serverbin)/backend/smb
- fi
-
- # install misc files
- insinto /etc/samba
- doins examples/smb.conf.default
- doman docs/manpages/smb.conf.5
-
- insinto /usr/"$(get_libdir)"/samba
- doins codepages/{valid.dat,upcase.dat,lowcase.dat}
-
- # install docs
- if use doc ; then
- dohtml -r docs/htmldocs/.
- dodoc docs/*.pdf
- fi
-
- # install examples
- if use examples ; then
- insinto /usr/share/doc/${PF}/examples
-
- if use smbclient ; then
- doins -r examples/libsmbclient
- fi
-
- if use winbind ; then
- doins -r examples/pam_winbind examples/nss
- fi
-
- if use server ; then
- cd examples || die
- doins -r auth autofs dce-dfs LDAP logon misc pdb \
- perfcounter printer-accounting printing scripts tridge \
- validchars VFS
- fi
- fi
-
- # Remove empty installation directories
- rmdir --ignore-fail-on-non-empty \
- "${ED}/usr/$(get_libdir)/samba" \
- "${ED}/usr"/{sbin,bin} \
- "${ED}/usr/share"/{man,locale,} \
- "${ED}/var"/{run,lib/samba/private,lib/samba,lib,cache/samba,cache,} \
- # || die "tried to remove non-empty dirs, this seems like a bug in the ebuild"
-
- systemd_dotmpfilesd "${FILESDIR}"/samba.conf
- systemd_dounit "${FILESDIR}"/nmbd.service
- systemd_dounit "${FILESDIR}"/smbd.{service,socket}
- systemd_newunit "${FILESDIR}"/smbd_at.service 'smbd@.service'
- systemd_dounit "${FILESDIR}"/winbindd.service
-}
-
-pkg_postinst() {
- elog "Samba 3.6 has adopted a number of improved security defaults that"
- elog "will impact on existing users of Samba."
- elog " client ntlmv2 auth = yes"
- elog " client use spnego principal = no"
- elog " send spnego principal = no"
- elog ""
- elog "SMB2 protocol support in 3.6.0 is fully functional and can be "
- elog "enabled by setting 'max protocol = smb2'. SMB2 is a new "
- elog "implementation of the SMB protocol used by Windows Vista and higher"
- elog ""
- elog "For further information make sure to read the release notes at"
- elog "http://samba.org/samba/history/${P}.html and "
- elog "http://samba.org/samba/history/${PN}-3.6.0.html"
-}