diff options
author | Patrick Lauer <patrick@gentoo.org> | 2010-02-26 20:11:21 +0000 |
---|---|---|
committer | Patrick Lauer <patrick@gentoo.org> | 2010-02-26 20:11:21 +0000 |
commit | f96e5fbeab3b4bc863503221bb6068679edc349c (patch) | |
tree | 44d755d45fe0ff7c253cdfda49e5d4eff619c8a4 /net-fs/samba | |
parent | version bump (diff) | |
download | gentoo-2-f96e5fbeab3b4bc863503221bb6068679edc349c.tar.gz gentoo-2-f96e5fbeab3b4bc863503221bb6068679edc349c.tar.bz2 gentoo-2-f96e5fbeab3b4bc863503221bb6068679edc349c.zip |
Adding unsplit 3.4 ebuild
(Portage version: 2.2_rc63/cvs/Linux x86_64)
Diffstat (limited to 'net-fs/samba')
-rw-r--r-- | net-fs/samba/ChangeLog | 12 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/lmhosts | 2 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/nsswitch.conf-winbind | 17 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/nsswitch.conf-wins | 17 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/samba.confd | 28 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/samba.initd | 53 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/samba.pam | 8 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/smb.conf.default | 271 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/smbusers | 7 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/swat.xinetd | 17 | ||||
-rw-r--r-- | net-fs/samba/files/3.4/system-auth-winbind.pam | 18 | ||||
-rw-r--r-- | net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk | 6 | ||||
-rw-r--r-- | net-fs/samba/metadata.xml | 7 | ||||
-rw-r--r-- | net-fs/samba/samba-3.4.6.ebuild | 367 |
14 files changed, 829 insertions, 1 deletions
diff --git a/net-fs/samba/ChangeLog b/net-fs/samba/ChangeLog index 9241abb664df..744444e36b30 100644 --- a/net-fs/samba/ChangeLog +++ b/net-fs/samba/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for net-fs/samba # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/ChangeLog,v 1.400 2010/02/23 12:19:03 dagger Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/ChangeLog,v 1.401 2010/02/26 20:11:21 patrick Exp $ + +*samba-3.4.6 (26 Feb 2010) + + 26 Feb 2010; Patrick Lauer <patrick@gentoo.org> + +files/samba-3.4.2-lib.tevent.python.mk, +files/3.4/lmhosts, + +files/3.4/nsswitch.conf-winbind, +files/3.4/nsswitch.conf-wins, + +files/3.4/samba.confd, +files/3.4/samba.initd, +files/3.4/samba.pam, + +files/3.4/smb.conf.default, +samba-3.4.6.ebuild, +files/3.4/smbusers, + +files/3.4/swat.xinetd, +files/3.4/system-auth-winbind.pam, metadata.xml: + Adding unsplit 3.4 ebuild 23 Feb 2010; Robert Piasek <dagger@gentoo.org> samba-4.0.0_alpha11.ebuild: We need emake installpc to install PKG-CONFIG files diff --git a/net-fs/samba/files/3.4/lmhosts b/net-fs/samba/files/3.4/lmhosts new file mode 100644 index 000000000000..a43ef438dce9 --- /dev/null +++ b/net-fs/samba/files/3.4/lmhosts @@ -0,0 +1,2 @@ +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.4/lmhosts,v 1.1 2010/02/26 20:11:18 patrick Exp $ +127.0.0.1 localhost diff --git a/net-fs/samba/files/3.4/nsswitch.conf-winbind b/net-fs/samba/files/3.4/nsswitch.conf-winbind new file mode 100644 index 000000000000..1b2523413045 --- /dev/null +++ b/net-fs/samba/files/3.4/nsswitch.conf-winbind @@ -0,0 +1,17 @@ +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.4/nsswitch.conf-winbind,v 1.1 2010/02/26 20:11:18 patrick Exp $ +passwd: files winbind +group: files winbind + +hosts: files dns +networks: files dns + +services: db files +protocols: db files +rpc: db files +ethers: db files +netmasks: files +netgroup: files +bootparams: files + +automount: files +aliases: files diff --git a/net-fs/samba/files/3.4/nsswitch.conf-wins b/net-fs/samba/files/3.4/nsswitch.conf-wins new file mode 100644 index 000000000000..48fc6c2e780c --- /dev/null +++ b/net-fs/samba/files/3.4/nsswitch.conf-wins @@ -0,0 +1,17 @@ +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.4/nsswitch.conf-wins,v 1.1 2010/02/26 20:11:18 patrick Exp $ +passwd: files +group: files + +hosts: files dns wins +networks: files dns + +services: db files +protocols: db files +rpc: db files +ethers: db files +netmasks: files +netgroup: files +bootparams: files + +automount: files +aliases: files diff --git a/net-fs/samba/files/3.4/samba.confd b/net-fs/samba/files/3.4/samba.confd new file mode 100644 index 000000000000..8ef8d7351a27 --- /dev/null +++ b/net-fs/samba/files/3.4/samba.confd @@ -0,0 +1,28 @@ +#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 --oknodo --exec /usr/sbin/winbindd" +winbind_reload="killall -HUP winbindd" + diff --git a/net-fs/samba/files/3.4/samba.initd b/net-fs/samba/files/3.4/samba.initd new file mode 100644 index 000000000000..9987f1ed6f53 --- /dev/null +++ b/net-fs/samba/files/3.4/samba.initd @@ -0,0 +1,53 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.4/samba.initd,v 1.1 2010/02/26 20:11:18 patrick Exp $ + +opts="reload" + +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} +} +start() { + ${my_service_PRE} + 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.4/samba.pam b/net-fs/samba/files/3.4/samba.pam new file mode 100644 index 000000000000..91beadd478a4 --- /dev/null +++ b/net-fs/samba/files/3.4/samba.pam @@ -0,0 +1,8 @@ +#%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.4/smb.conf.default b/net-fs/samba/files/3.4/smb.conf.default new file mode 100644 index 000000000000..4c9a4a6d529f --- /dev/null +++ b/net-fs/samba/files/3.4/smb.conf.default @@ -0,0 +1,271 @@ +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# For a step to step guide on installing, configuring and using samba, +# read the Samba-HOWTO-Collection. This may be obtained from: +# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf +# +# Many working examples of smb.conf files can be found in the +# Samba-Guide which is generated daily and can be downloaded from: +# http://www.samba.org/samba/docs/Samba-Guide.pdf +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not made any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH + workgroup = MYGROUP + +# server string is the equivalent of the NT Description field + server string = Samba Server + +# Security mode. Defines in which mode Samba will operate. Possible +# values are share, user, server, domain and ads. Most people will want +# user level security. See the Samba-HOWTO-Collection for details. + security = user + +# This option is important for security. It allows you to restrict +# connections to machines which are on your local network. The +# following example restricts access to two C class networks and +# the "loopback" interface. For more examples of the syntax see +# the smb.conf man page +; hosts allow = 192.168.1. 192.168.2. 127. + +# If you want to automatically load your printer list rather +# than setting them up individually then you'll need this + load printers = yes + +# you may wish to override the location of the printcap file +; printcap name = /etc/printcap + +# on SystemV system setting printcap name to lpstat should allow +# you to automatically obtain a printer list from the SystemV spool +# system +; printcap name = lpstat + +# It should not be necessary to specify the print system type unless +# it is non-standard. Currently supported print systems include: +# bsd, cups, sysv, plp, lprng, aix, hpux, qnx +; printing = cups + +# Uncomment this if you want a guest account, you must add this to /etc/passwd +# otherwise the user "nobody" is used +; guest account = pcguest + +# this tells Samba to use a separate log file for each machine +# that connects + log file = /var/log/samba/log.%m + +# Put a capping on the size of the log files (in Kb). + max log size = 50 + +# Use password server option only with security = server +# The argument list may include: +# password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] +# or to auto-locate the domain controller/s +# password server = * +; password server = <NT-Server-Name> + +# Use the realm option only with security = ads +# Specifies the Active Directory realm the host is part of +; realm = MY_REALM + +# 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. +; passdb backend = tdbsam + +# Using the following line enables you to customise your configuration +# on a per machine basis. The %m gets replaced with the netbios name +# 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 = /etc/samba/smb.conf.%m + +# Configure Samba to use multiple interfaces +# If you have multiple network interfaces then you must list them +# here. See the man page for details. +; interfaces = 192.168.12.2/24 192.168.13.2/24 + +# Browser Control Options: +# set local master to no if you don't want Samba to become a master +# browser on your network. Otherwise the normal election rules apply +; local master = no + +# OS Level determines the precedence of this server in master browser +# elections. The default value should be reasonable +; os level = 33 + +# Domain Master specifies Samba to be the Domain Master Browser. This +# allows Samba to collate browse lists between subnets. Don't use this +# if you already have a Windows NT domain controller doing this job +; domain master = yes + +# Preferred Master causes Samba to force a local browser election on startup +# and gives it a slightly higher chance of winning the election +; preferred master = yes + +# Enable this if you want Samba to be a domain logon server for +# Windows95 workstations. +; domain logons = yes + +# if you enable domain logons then you may want a per-machine or +# per user logon script +# run a specific logon batch file per workstation (machine) +; logon script = %m.bat +# run a specific logon batch file per username +; logon script = %U.bat + +# Where to store roving profiles (only for Win95 and WinNT) +# %L substitutes for this servers netbios name, %U is username +# You must uncomment the [Profiles] share below +; logon path = \\%L\Profiles\%U + +# Windows Internet Name Serving Support Section: +# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server +; wins support = yes + +# WINS Server - Tells the NMBD components of Samba to be a WINS Client +# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both +; wins server = w.x.y.z + +# WINS Proxy - Tells Samba to answer name resolution queries on +# behalf of a non WINS capable client, for this to work there must be +# at least one WINS Server on the network. The default is NO. +; wins proxy = yes + +# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names +# via DNS nslookups. The default is NO. + dns proxy = no + +# These scripts are used on a domain controller or stand-alone +# machine to add or delete corresponding unix accounts +; add user script = /usr/sbin/useradd %u +; add group script = /usr/sbin/groupadd %g +; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u +; delete user script = /usr/sbin/userdel %u +; delete user from group script = /usr/sbin/deluser %u %g +; delete group script = /usr/sbin/groupdel %g + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /var/lib/samba/netlogon +; guest ok = yes +; writable = no +; share modes = no + + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /var/lib/samba/profiles +; browseable = no +; guest ok = yes + + +# NOTE: If you have a BSD-style print system there is no need to +# specifically define each individual printer +[printers] + comment = All Printers + path = /var/spool/samba + browseable = no +# Set public = yes to allow user 'guest account' to print + guest ok = no + writable = no + printable = yes + +# This one is useful for people to share files +;[tmp] +; comment = Temporary file space +; path = /tmp +; read only = no +; public = yes + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba +; public = yes +; writable = yes +; printable = no +; write list = @staff + +# Other examples. +# +# A private printer, usable only by fred. Spool data will be placed in fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +;[fredsprn] +; comment = Fred's Printer +; valid users = fred +; path = /homes/fred +; printer = freds_printer +; public = no +; writable = no +; printable = yes + +# A private directory, usable only by fred. Note that fred requires write +# access to the directory. +;[fredsdir] +; comment = Fred's Service +; path = /usr/somewhere/private +; valid users = fred +; public = no +; writable = yes +; printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %U option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +;[pchome] +; comment = PC Directories +; path = /usr/pc/%m +; public = no +; writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +;[public] +; path = /usr/somewhere/else/public +; public = yes +; only guest = yes +; writable = yes +; printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +;[myshare] +; comment = Mary's and Fred's stuff +; path = /usr/somewhere/shared +; valid users = mary fred +; public = no +; writable = yes +; printable = no +; create mask = 0765 + + diff --git a/net-fs/samba/files/3.4/smbusers b/net-fs/samba/files/3.4/smbusers new file mode 100644 index 000000000000..3e9d75c153c0 --- /dev/null +++ b/net-fs/samba/files/3.4/smbusers @@ -0,0 +1,7 @@ +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.4/smbusers,v 1.1 2010/02/26 20:11:18 patrick Exp $ + +# Syntax: +# Unix_name = SMB_name1 SMB_name2 ... + +root = Administrator admin +nobody = guest pcguest smbguest diff --git a/net-fs/samba/files/3.4/swat.xinetd b/net-fs/samba/files/3.4/swat.xinetd new file mode 100644 index 000000000000..8f2dd4046007 --- /dev/null +++ b/net-fs/samba/files/3.4/swat.xinetd @@ -0,0 +1,17 @@ +# 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. +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.4/swat.xinetd,v 1.1 2010/02/26 20:11:18 patrick Exp $ + +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.4/system-auth-winbind.pam b/net-fs/samba/files/3.4/system-auth-winbind.pam new file mode 100644 index 000000000000..65850901455d --- /dev/null +++ b/net-fs/samba/files/3.4/system-auth-winbind.pam @@ -0,0 +1,18 @@ +#%PAM-1.0 +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/files/3.4/system-auth-winbind.pam,v 1.1 2010/02/26 20:11:18 patrick Exp $ + +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/samba-3.4.2-lib.tevent.python.mk b/net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk new file mode 100644 index 000000000000..3a0375580bea --- /dev/null +++ b/net-fs/samba/files/samba-3.4.2-lib.tevent.python.mk @@ -0,0 +1,6 @@ +[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/metadata.xml b/net-fs/samba/metadata.xml index 68f27f4b64fe..df9fca79ce65 100644 --- a/net-fs/samba/metadata.xml +++ b/net-fs/samba/metadata.xml @@ -23,5 +23,12 @@ Samba is an Open Source/Free Software suite that provides seamless file and prin <flag name="netapi">Enable building of netapi bits</flag> <flag name="tools">Enable extra tools</flag> <flag name="dso">Enable dso support</flag> + <flag name="addns">Enable AD DNS integration</flag> + <flag name="aio">Enable asynchronous IO support</flag> + <flag name="cluster">Enable support for clustering</flag> + <flag name="ldb">Enable the ldb tools</flag> + <flag name="quota">Enables support for user quotas</flag> + <flag name="smbclient">Enable smbclient tool</flag> + <flag name="smbsharemodes">Enable special smb share modes (?) </flag> </use> </pkgmetadata> diff --git a/net-fs/samba/samba-3.4.6.ebuild b/net-fs/samba/samba-3.4.6.ebuild new file mode 100644 index 000000000000..0a1c14a1167d --- /dev/null +++ b/net-fs/samba/samba-3.4.6.ebuild @@ -0,0 +1,367 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-fs/samba/samba-3.4.6.ebuild,v 1.1 2010/02/26 20:11:21 patrick Exp $ + +EAPI="2" + +inherit pam confutils versionator multilib + +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/${P}.tar.gz" +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" +IUSE="acl addns ads aio avahi caps +client cluster cups debug doc examples fam + ldap ldb +netapi pam quota +readline +server +smbclient smbsharemodes swat + syslog winbind " + +DEPEND="dev-libs/popt + !net-fs/samba-client + !net-fs/samba-libs + !net-fs/samba-server + sys-libs/talloc + sys-libs/tdb + virtual/libiconv + ads? ( virtual/krb5 sys-fs/e2fsprogs + client? ( sys-apps/keyutils ) ) + avahi? ( net-dns/avahi ) + caps? ( sys-libs/libcap ) + client? ( !net-fs/mount-cifs + dev-libs/iniparser ) + cluster? ( dev-db/ctdb ) + cups? ( net-print/cups ) + debug? ( dev-libs/dmalloc ) + fam? ( dev-libs/libgamin ) + ldap? ( net-nds/openldap ) + pam? ( virtual/pam + winbind? ( dev-libs/iniparser ) ) + readline? ( >=sys-libs/readline-5.2 ) + syslog? ( virtual/logger )" + +RDEPEND="${DEPEND}" + +# Disable tests since we don't want to build that much here +RESTRICT="test" + +SBINPROGS="" +BINPROGS="" + +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" + + use swat && SBINPROGS="${SBINPROGS} bin/swat" + use winbind && SBINPROGS="${SBINPROGS} bin/winbindd" + use ads && use winbind && SBIN_PROGS="${SBINPROGS} 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" + + use ads && SBINPROGS="${SBINPROGS} bin/cifs.upcall" +fi + +use cups && BINPROGS="${BINPROGS} bin/smbspool" +use ldb && BINPROGS="${BINPROGS} bin/ldbedit bin/ldbsearch bin/ldbadd bin/ldbdel bin/ldbmodify bin/ldbrename"; +use winbind && BINPROGS="${BINPROGS} bin/wbinfo" + +S="${WORKDIR}/${MY_P}/source3" + +# TODO: +# - enable iPrint on Prefix/OSX and Darwin? +# - selftest-prefix? selftest? +# - AFS? + +CONFDIR="${FILESDIR}/$(get_version_component_range 1-2)" + +pkg_setup() { + confutils_use_depend_all ads ldap + confutils_use_depend_all swat server +} + +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' \ + configure || die "sed failed" +} + +src_configure() { + local myconf + + # Filter out -fPIE + [[ ${CHOST} == *-*bsd* ]] || use hppa && myconf="${myconf} --disable-pie" + + # Upstream refuses to make this configurable + use caps && export ac_cv_header_sys_capability_h=yes || export ac_cv_header_sys_capability_h=no + + # use_with doesn't accept 2 USE-flags + if use client && use ads ; then + myconf="${myconf} --with-cifsupcall" + else + myconf="${myconf} --without-cifsupcall" + fi + + # 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=/var/run/samba \ + --sysconfdir=/etc/samba \ + --localstatedir=/var \ + $(use_enable debug developer) \ + --enable-largefile \ + --enable-socket-wrapper \ + --enable-nss-wrapper \ + $(use_enable swat) \ + $(use_enable debug dmalloc) \ + $(use_enable cups) \ + --disable-iprint \ + $(use_enable fam) \ + --enable-shared-libs \ + --disable-dnssd \ + $(use_enable avahi) \ + --with-fhs \ + --with-privatedir=/var/lib/samba/private \ + --with-rootsbindir=/var/cache/samba \ + --with-lockdir=/var/cache/samba \ + --with-swatdir=/usr/share/doc/${PF}/swat \ + --with-configdir=/etc/samba \ + --with-logfilebase=/var/log/samba \ + --with-pammodulesdir=$(getpam_mod_dir) \ + --without-afs \ + --without-fake-kaserver \ + --without-vfs-afsacl \ + $(use_with ldap) \ + $(use_with ads) \ + $(use_with ads krb5 /usr) \ + $(use_with ads dnsupdate) \ + --without-automount \ + $(use_with client cifsmount) \ + $(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 /usr) \ + $(use_with cluster cluster-support) \ + $(use_with acl acl-support) \ + $(use_with aio aio-support) \ + --with-sendfile-support \ + $(use_with winbind) \ + --without-included-popt \ + --without-included-iniparser +} + +src_compile() { + # compile libs + if use addns ; then + einfo "make addns library" + emake libaddns || die "emake libaddns failed" + fi + if use netapi ; then + einfo "make netapi library" + emake libnetapi || die "emake libnetapi failed" + fi + if use smbclient ; then + einfo "make smbclient library" + emake libsmbclient || die "emake libsmbclient failed" + fi + if use smbsharemodes ; then + einfo "make smbsharemodes library" + emake libsmbsharemodes || die "emake libsmbsharemodes failed" + fi + + # compile modules + emake modules || die "building modules failed" + + # compile pam moudles + if use pam ; then + einfo "make pam modules" + emake pam_modules || die "emake pam_modules failed"; + fi + + # compile winbind nss modules + if use winbind ; then + einfo "make nss modules" + emake nss_modules || die "emake nss_modules failed"; + fi + + # compile utilities + if [ -n "${BINPROGS}" ] ; then + einfo "make binprogs" + emake ${BINPROGS} || die "emake binprogs failed"; + fi + if [ -n "${SBINPROGS}" ] ; then + einfo "make sbinprogs" + emake ${SBINPROGS} || die "emake sbinprogs failed"; + fi + + if use client ; then + einfo "make {,u}mount.cifs" + emake bin/{,u}mount.cifs || die "emake {,u}mount.cifs failed" + fi +} + +src_install() { + # install libs + if use addns ; then + einfo "install addns library" + emake installlibaddns DESTDIR="${D}" || die "emake install libaddns failed" + fi + if use netapi ; then + einfo "install netapi library" + emake installlibnetapi DESTDIR="${D}" || die "emake install libnetapi failed" + fi + if use smbclient ; then + einfo "install smbclient library" + emake installlibsmbclient DESTDIR="${D}" || die "emake install libsmbclient failed" + fi + if use smbsharemodes ; then + einfo "install smbsharemodes library" + emake installlibsmbsharemodes DESTDIR="${D}" || die "emake install libsmbsharemodes failed" + fi + + # install modules + emake installmodules DESTDIR="${D}" || die "installing modules failed" + + if use pam ; then + einfo "install pam modules" + emake installpammodules DESTDIR="${D}" || die "emake installpammodules failed" + + if use winbind ; then + newpamd "${CONFDIR}/system-auth-winbind.pam" system-auth-winbind + doman ../docs/manpages/pam_winbind.8 + 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}" || die "emake installlibwbclient failed" + 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 + fi + + # install binaries + insinto /usr + for prog in ${SBINPROGS} ; do + dosbin ${prog} || die "installing ${prog} failed" + doman ../docs/manpages/${prog/bin\/}* || die "doman failed" + done + dobin ${BINPROGS} || die "installing binaries failed" + for prog in ${BINPROGS} ; do + dobin ${prog} || die "installing ${prog} failed" + doman ../docs/manpages/${prog/bin\/}* || die "doman failed" + done + + # 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 "${D}" "${ROOT}/usr/share/doc/${PF}/swat" "${S}" \ + || die "installing swat failed" + fi + + dodoc ../MAINTAINERS ../README* ../Roadmap ../WHATSNEW.txt ../docs/THANKS + fi + + # install client files ({u,}mount.cifs into /) + if use client ; then + into / + dosbin bin/{u,}mount.cifs || die "u/mount.cifs not around" + doman ../docs/manpages/{u,}mount.cifs.8 || die "can't create man pages" + fi + + # install the spooler to cups + use cups && dosym /usr/bin/smbspool $(cups-config --serverbin)/backend/smb + + # install misc files + insinto /etc/samba + doins "${CONFDIR}"/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 + einfo "install examples" + 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 + 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 \ + "${D}/usr/$(get_libdir)/samba" \ + "${D}/usr"/{sbin,bin} \ + "${D}/usr/share"/{man,locale,} \ + "${D}/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" +} |