From 0be5d907b85f3acbde7b341786c9d278eca03a82 Mon Sep 17 00:00:00 2001 From: "Yury G. Kudryashov" Date: Fri, 12 Oct 2007 21:08:45 +0000 Subject: [PATCH] New samba package. Previous samba package is buggy: for example, builder.sh tries to install something to /var. I've written new package. Currently it builds, and I have no Windows network to check whether it works. * There is no upstart job yet because I don't need server, only client. svn path=/nixpkgs/trunk/; revision=9459 --- pkgs/servers/samba/builder.sh | 50 ------ pkgs/servers/samba/default.nix | 22 +-- pkgs/servers/samba/smb.conf | 295 -------------------------------- pkgs/top-level/all-packages.nix | 2 +- 4 files changed, 8 insertions(+), 361 deletions(-) delete mode 100755 pkgs/servers/samba/builder.sh delete mode 100644 pkgs/servers/samba/smb.conf diff --git a/pkgs/servers/samba/builder.sh b/pkgs/servers/samba/builder.sh deleted file mode 100755 index 1cb991c6500d..000000000000 --- a/pkgs/servers/samba/builder.sh +++ /dev/null @@ -1,50 +0,0 @@ -source $stdenv/setup - -configureFlags="--prefix=$out --exec-prefix=$out" - -#TODO: Check also for their dependencies... - -if test "$pie"; then - configureFlags="--enable-pie $configureFlags" -fi - -if test "$socketWrapper"; then - configureFlags="--enable-socket-wrapper $configureFlags" -fi - -if test "$cups"; then - configureFlags="--enable-cups $configureFlags" -fi - -if test "$iprint"; then - configureFlags="--enable-iprint $configureFlags" -fi - -if test "$activeDirectory"; then - configureFlags=" $configureFlags" -fi - -ensureDir $stateDir -echo "Building samba with statedir: $stateDir" -sleep 2 -configureFlags="$configureFlags --sharedstatedir=$stateDir/shared --localstatedir=$stateDir/localstate --with-configdir=$stateDir/config" - -#Copy the default conf file to the state dir -configdir=$stateDir/config -if ! test -d $configdir ; then - mkdir -p $configdir -fi - -echo "configuring with: $configureFlags" -sleep 4 - -tar -zxvf $src -cd samba-*/source/ -./configure $configureFlags -make -make install - -cp -f $smbconf $stateDir/config/smb.conf - -ensureDir $stateDir/sambalog/ -touch $stateDir/sambalog/log.smbd diff --git a/pkgs/servers/samba/default.nix b/pkgs/servers/samba/default.nix index 3ce8784a9a5a..b46f6494c165 100644 --- a/pkgs/servers/samba/default.nix +++ b/pkgs/servers/samba/default.nix @@ -1,22 +1,14 @@ -{ stdenv -, fetchurl -, pie ? false -, socketWrapper ? false -, cups ? false -, iprint ? false -, activeDirectory ? false -, stateDir ? "/var/samba" # (builtins.getEnv "HOME") + "/sambastate/" -} : +args: with args; stdenv.mkDerivation { - name = "samba-3.0.25b"; - builder = ./builder.sh; + name = "samba-3.0.26a"; src = fetchurl { - url = http://us1.samba.org/samba/ftp/stable/samba-3.0.25b.tar.gz; - sha256 = "18l71skn7mryg78jpd8x38pf27wvrx00v33w3z2ycsfnrbcp8l6w"; + url = http://us1.samba.org/samba/ftp/stable/samba-3.0.26a.tar.gz; + sha256 = "41e11f69288b2291f12f8db093e2c55dc1360555d4542c83c0758c4c7a3d4d37"; }; - smbconf = ./smb.conf; - inherit stateDir; + buildInputs = [readline pam openldap]; + configureFlags = "--with-pam --with-smbmount"; + postUnpack = "sourceRoot=\$sourceRoot/source"; } diff --git a/pkgs/servers/samba/smb.conf b/pkgs/servers/samba/smb.conf deleted file mode 100644 index cbb2b7b31867..000000000000 --- a/pkgs/servers/samba/smb.conf +++ /dev/null @@ -1,295 +0,0 @@ -# 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 = NIXOSGROUP - -# 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 = smbguest - -# this tells Samba to use a separate log file for each machine -# that connects - log file = /var/samba/sambalog/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 = - -# 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:/var/samba/passdb.tdb - -# 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 = /usr/local/samba/lib/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 = yes - writable = yes - -# Un-comment the following and create the netlogon directory for Domain Logons -; [netlogon] -; comment = Network Logon Service -; path = /usr/local/samba/lib/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 = /usr/local/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 = /usr/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 - -[nixosshares] - comment = NixOS Share Windows - browseable = yes - read only = Yes - path = /media/windowsdata/WData - valid users = wouterdb - guest ok = yes - printable = no - -[public] - comment = Test Folder - guest ok = yes - guest only = yes - path = /tmp - read only = no - -[share] - comment = NixOS Share - browseable = yes - read only = Yes - path = /home/share - valid users = wouterdb - guest ok = yes - printable = no - diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 588d5a880143..324548335d3a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2572,7 +2572,7 @@ rec { }; samba = import ../servers/samba { - inherit stdenv fetchurl; + inherit stdenv fetchurl readline openldap pam; }; tomcat5 = import ../servers/http/tomcat {