summaryrefslogtreecommitdiff
path: root/packaging4/Fedora
diff options
context:
space:
mode:
Diffstat (limited to 'packaging4/Fedora')
-rw-r--r--packaging4/Fedora/cplusplus-headers.patch32
-rw-r--r--packaging4/Fedora/samba4.init113
-rw-r--r--packaging4/Fedora/samba4.log7
-rw-r--r--packaging4/Fedora/samba4.spec373
-rw-r--r--packaging4/Fedora/samba4.sysconfig2
5 files changed, 527 insertions, 0 deletions
diff --git a/packaging4/Fedora/cplusplus-headers.patch b/packaging4/Fedora/cplusplus-headers.patch
new file mode 100644
index 0000000000..ce05f54599
--- /dev/null
+++ b/packaging4/Fedora/cplusplus-headers.patch
@@ -0,0 +1,32 @@
+diff -Naur samba-4.0.0alpha5-orig/source/lib/events/events.h samba-4.0.0alpha5/source/lib/events/events.h
+--- samba-4.0.0alpha5-orig/source/lib/events/events.h 2008-06-30 19:34:11.000000000 +1000
++++ samba-4.0.0alpha5/source/lib/events/events.h 2008-07-25 20:02:56.000000000 +1000
+@@ -53,24 +53,24 @@
+
+ struct fd_event *event_add_fd(struct event_context *ev, TALLOC_CTX *mem_ctx,
+ int fd, uint16_t flags, event_fd_handler_t handler,
+- void *private);
++ void *private_data);
+
+ struct timed_event *event_add_timed(struct event_context *ev, TALLOC_CTX *mem_ctx,
+ struct timeval next_event,
+ event_timed_handler_t handler,
+- void *private);
++ void *private_data);
+
+ struct signal_event *event_add_signal(struct event_context *ev, TALLOC_CTX *mem_ctx,
+ int signum, int sa_flags,
+ event_signal_handler_t handler,
+- void *private);
++ void *private_data);
+
+ struct iocb;
+ struct aio_event *event_add_aio(struct event_context *ev,
+ TALLOC_CTX *mem_ctx,
+ struct iocb *iocb,
+ event_aio_handler_t handler,
+- void *private);
++ void *private_data);
+
+ int event_loop_once(struct event_context *ev);
+ int event_loop_wait(struct event_context *ev);
diff --git a/packaging4/Fedora/samba4.init b/packaging4/Fedora/samba4.init
new file mode 100644
index 0000000000..a04cce92c5
--- /dev/null
+++ b/packaging4/Fedora/samba4.init
@@ -0,0 +1,113 @@
+#!/bin/sh
+#
+# chkconfig: - 91 35
+# description: Starts and stops the Samba smbd daemon \
+# used to provide SMB network services.
+#
+# pidfile: /var/run/samba4/smbd.pid
+# config: /etc/samba4/smb.conf
+
+SAMBA_NAME=samba4
+
+# Source function library.
+if [ -f /etc/init.d/functions ] ; then
+ . /etc/init.d/functions
+elif [ -f /etc/rc.d/init.d/functions ] ; then
+ . /etc/rc.d/init.d/functions
+else
+ exit 1
+fi
+
+# Avoid using root's TMPDIR
+unset TMPDIR
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+if [ -f /etc/sysconfig/$SAMBA_NAME ]; then
+ . /etc/sysconfig/$SAMBA_NAME
+fi
+
+# Check that networking is up.
+[ ${NETWORKING} = "no" ] && exit 1
+
+# Check that smb.conf exists.
+[ -f /etc/$SAMBA_NAME/smb.conf ] || exit 6
+
+RETVAL=0
+
+
+start() {
+ echo -n $"Starting Samba services: "
+ daemon smbd $SMBDOPTIONS
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SAMBA_NAME || \
+ RETVAL=1
+ return $RETVAL
+}
+
+stop() {
+ echo -n $"Shutting down Samba services: "
+ killproc smbd
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$SAMBA_NAME
+ return $RETVAL
+}
+
+restart() {
+ stop
+ start
+}
+
+reload() {
+ echo -n $"Reloading smb.conf file: "
+ killproc smbd -HUP
+ RETVAL=$?
+ echo
+ return $RETVAL
+}
+
+rhstatus() {
+ status smbd
+ return $?
+}
+
+
+# Allow status as non-root.
+if [ "$1" = status ]; then
+ rhstatus
+ exit $?
+fi
+
+# Check that we can write to it... so non-root users stop here
+[ -w /etc/$SAMBA_NAME/smb.conf ] || exit 4
+
+
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ restart
+ ;;
+ reload)
+ reload
+ ;;
+ status)
+ rhstatus
+ ;;
+ condrestart)
+ [ -f /var/lock/subsys/$SAMBA_NAME ] && restart || :
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
+ exit 2
+esac
+
+exit $?
diff --git a/packaging4/Fedora/samba4.log b/packaging4/Fedora/samba4.log
new file mode 100644
index 0000000000..cd0cf9ae07
--- /dev/null
+++ b/packaging4/Fedora/samba4.log
@@ -0,0 +1,7 @@
+/var/log/samba4/* {
+ notifempty
+ olddir /var/log/samba4/old
+ missingok
+ sharedscripts
+ copytruncate
+}
diff --git a/packaging4/Fedora/samba4.spec b/packaging4/Fedora/samba4.spec
new file mode 100644
index 0000000000..dfdd36811b
--- /dev/null
+++ b/packaging4/Fedora/samba4.spec
@@ -0,0 +1,373 @@
+
+%define main_release 5
+%define alpha_version 5
+%define samba_version 4.0.0alpha%{alpha_version}
+%define tarball_name samba-4.0.0alpha%{alpha_version}
+
+#Set what versions we require for tdb and talloc
+%define tdb_version 1.1.1
+%define talloc_version 1.2.0
+
+%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
+
+Summary: The Samba4 CIFS and AD client and server suite
+Name: samba4
+Version: 4.0.0
+Release: 0.%{main_release}.alpha%{alpha_version}%{?dist}
+License: GPLv3+ and LGPLv3+
+Group: System Environment/Daemons
+URL: http://www.samba.org/
+
+Source: http://download.samba.org/samba/ftp/samba4/%{tarball_name}.tar.gz
+
+# To be removed when samba4 alpha6 is released
+# From http://git.samba.org/?p=samba.git;a=commitdiff;h=7ca421eb32bed3c400f863b654712d922c82bfb9
+Patch0: cplusplus-headers.patch
+
+# Red Hat specific replacement-files
+Source1: %{name}.log
+Source4: %{name}.sysconfig
+Source5: %{name}.init
+
+Requires(pre): %{name}-common = %{version}-%{release}
+Requires: pam >= 0:0.64
+Requires: logrotate >= 0:3.4
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+Requires(pre): /usr/sbin/groupadd
+Requires(post): /sbin/chkconfig, /sbin/service
+Requires(preun): /sbin/chkconfig, /sbin/service
+BuildRequires: pam-devel, readline-devel, ncurses-devel, libacl-devel, e2fsprogs-devel
+BuildRequires: popt-devel, libattr-devel, libaio-devel, sed
+BuildRequires: perl(ExtUtils::MakeMaker)
+BuildRequires: libtalloc-devel >= %{talloc_version}
+BuildRequires: libtdb-devel >= %{tdb_version}
+
+%description
+
+Samba 4 is the ambitious next version of the Samba suite that is being
+developed in parallel to the stable 3.0 series. The main emphasis in
+this branch is support for the Active Directory logon protocols used
+by Windows 2000 and above.
+
+%package client
+Summary: Samba client programs
+Group: Applications/System
+Requires: %{name}-common = %{version}-%{release}
+Requires: %{name}-libs = %{version}-%{release}
+
+%description client
+The %{name}-client package provides some SMB/CIFS clients to complement
+the built-in SMB/CIFS filesystem in Linux. These clients allow access
+of SMB/CIFS shares and printing to SMB/CIFS printers.
+
+%package libs
+Summary: Samba libraries
+Group: Applications/System
+
+%description libs
+The %{name}-libs package contains the libraries needed by programs
+that link against the SMB, RPC and other protocols provided by the Samba suite.
+
+%package python
+Summary: Samba python libraries
+Group: Applications/System
+Requires: %{name}-libs = %{version}-%{release}
+
+%description python
+The %{name}-python package contains the python libraries needed by programs
+that use SMB, RPC and other Samba provided protocols in python programs/
+
+%package devel
+Summary: Developer tools for Samba libraries
+Group: Development/Libraries
+Requires: %{name}-libs = %{version}-%{release}
+
+%description devel
+The %{name}-devel package contains the header files for the libraries
+needed to develop programs that link against the SMB, RPC and other
+libraries in the Samba suite.
+
+%package pidl
+Summary: Perl IDL compiler
+Group: Development/Tools
+Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+
+%description pidl
+The %{name}-pidl package contains the Perl IDL compiler used by Samba
+and Wireshark to parse IDL and similar protocols
+
+%package common
+Summary: Files used by both Samba servers and clients
+Group: Applications/System
+Requires: %{name}-libs = %{version}-%{release}
+
+%description common
+%{Name}-common provides files necessary for both the server and client
+packages of Samba.
+
+%package winbind
+Summary: Samba winbind
+Group: Applications/System
+Requires: %{name} = %{version}-%{release}
+
+%description winbind
+The samba-winbind package provides the winbind NSS library, and some
+client tools. Winbind enables Linux to be a full member in Windows
+domains and to use Windows user and group accounts on Linux.
+
+
+%prep
+# TAG: change for non-pre
+%setup -q -n %{tarball_name}
+#%setup -q
+
+# copy Red Hat specific scripts
+
+# Upstream patches
+%patch0 -p1 -b .
+
+mv source/VERSION source/VERSION.orig
+sed -e 's/SAMBA_VERSION_VENDOR_SUFFIX=$/&%{release}/' < source/VERSION.orig > source/VERSION
+cd source
+script/mkversion.sh
+cd ..
+
+%build
+cd source
+
+%configure \
+ --with-fhs \
+ --with-lockdir=/var/lib/%{name} \
+ --with-piddir=/var/run \
+ --with-privatedir=/var/lib/%{name}/private \
+ --with-logfilebase=/var/log/%{name} \
+ --sysconfdir=%{_sysconfdir}/%{name} \
+ --with-winbindd-socket-dir=/var/run/winbind \
+ --with-ntp-signd-socket-dir=/var/run/ntp_signd \
+ --disable-gnutls
+
+#Build PIDL for installation into vendor directories before 'make proto' gets to it
+(cd pidl && %{__perl} Makefile.PL INSTALLDIRS=vendor )
+
+#Builds using PIDL the IDL and many other things
+make proto
+
+make everything
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+cd source
+
+#Don't call 'make install' as we want to call out to the PIDL install manually
+make install DESTDIR=%{buildroot}
+
+#Undo the PIDL install, we want to try again with the right options
+rm -rf $RPM_BUILD_ROOT/%{_libdir}/perl5
+rm -rf $RPM_BUILD_ROOT/%{_datadir}/perl5
+
+#Install PIDL
+( cd pidl && make install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT )
+
+#Clean out crap left behind by the Pidl install
+find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
+find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
+
+cd ..
+
+mkdir -p $RPM_BUILD_ROOT/%{_initrddir}
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/%{name}
+mkdir -p $RPM_BUILD_ROOT/var/run/winbindd
+mkdir -p $RPM_BUILD_ROOT/var/run/ntp_signd
+mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/winbindd_privileged
+mkdir -p $RPM_BUILD_ROOT/var/log/%{name}/
+mkdir -p $RPM_BUILD_ROOT/var/log/%{name}/old
+
+mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}
+mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/private
+mkdir -p $RPM_BUILD_ROOT/var/lib/%{name}/sysvol
+
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig
+
+# Install other stuff
+install -m755 %{SOURCE5} $RPM_BUILD_ROOT/%{_initrddir}/%{name}
+install -m644 %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/%{name}
+
+# winbind
+mkdir -p $RPM_BUILD_ROOT/%{_lib}
+ln -sf ../%{_libdir}/libnss_winbind.so $RPM_BUILD_ROOT/%{_lib}/libnss_winbind.so.2
+
+# libs {
+mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir}
+
+# }
+
+install -m644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
+
+#clean out some stuff we don't want in the Fedora package
+rm $RPM_BUILD_ROOT/%{_bindir}/autoidl.py*
+rm $RPM_BUILD_ROOT/%{_bindir}/epdump.py*
+rm $RPM_BUILD_ROOT/%{_bindir}/gentest
+rm $RPM_BUILD_ROOT/%{_bindir}/locktest
+rm $RPM_BUILD_ROOT/%{_bindir}/masktest
+rm $RPM_BUILD_ROOT/%{_bindir}/minschema.py*
+rm $RPM_BUILD_ROOT/%{_bindir}/rpcclient
+rm $RPM_BUILD_ROOT/%{_bindir}/samba3dump
+rm $RPM_BUILD_ROOT/%{_bindir}/setnttoken
+rm $RPM_BUILD_ROOT/%{_bindir}/getntacl
+rm $RPM_BUILD_ROOT/%{_datadir}/samba/js/base.js
+
+#This makes the right links, as rpmlint requires that the
+#ldconfig-created links be recorded in the RPM.
+/sbin/ldconfig -N -n $RPM_BUILD_ROOT/%{_libdir}
+
+#Fix up permission on perl install
+%{_fixperms} $RPM_BUILD_ROOT/%{perl_vendorlib}
+
+#Fix up permissions in source tree, for debuginfo
+find source/heimdal -type f | xargs chmod -x
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%pre
+getent group wbpriv >/dev/null || groupadd -g 88 wbpriv
+exit 0
+
+%post
+/sbin/chkconfig --add %{name}
+if [ "$1" -ge "1" ]; then
+ /sbin/service %{name} condrestart >/dev/null 2>&1 || :
+fi
+exit 0
+
+%preun
+if [ $1 = 0 ] ; then
+ /sbin/service %{name} stop >/dev/null 2>&1 || :
+ /sbin/chkconfig --del %{name}
+fi
+exit 0
+
+%post libs -p /sbin/ldconfig
+
+%postun libs -p /sbin/ldconfig
+
+
+%files
+%defattr(-,root,root)
+%{_sbindir}/smbd
+%{_bindir}/smbstatus
+
+%attr(755,root,root) %{_initrddir}/%{name}
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
+%dir %{_datadir}/samba/setup
+%{_datadir}/samba/setup/*
+%dir /var/lib/%{name}/sysvol
+%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
+%attr(0700,root,root) %dir /var/log/%{name}
+%attr(0700,root,root) %dir /var/log/%{name}/old
+
+%files libs
+%defattr(-,root,root)
+%doc WHATSNEW.txt NEWS PFIF.txt
+%dir %{_datadir}/samba
+%{_datadir}/samba/*.dat
+%{_libdir}/*.so.*
+#Only needed if Samba's build produces plugins
+#%{_libdir}/samba
+%dir %{_sysconfdir}/%{name}
+#Need to mark this as being owned by Samba, but it is normally created
+#by the provision script, which runs best if there is no existing
+#smb.conf
+#%config(noreplace) %{_sysconfdir}/%{name}/smb.conf
+
+%files winbind
+%defattr(-,root,root)
+%{_bindir}/ntlm_auth
+%{_bindir}/wbinfo
+%{_libdir}/libnss_winbind.so
+/%{_lib}/libnss_winbind.so.2
+%dir /var/run/winbindd
+%attr(750,root,wbpriv) %dir /var/lib/%{name}/winbindd_privileged
+
+%files python
+%defattr(-,root,root)
+%{python_sitearch}/*
+
+%files devel
+%defattr(-,root,root)
+%{_libdir}/libdcerpc.so
+%{_libdir}/libdcerpc_atsvc.so
+%{_libdir}/libdcerpc_samr.so
+%{_libdir}/libgensec.so
+%{_libdir}/libldb.so
+%{_libdir}/libndr.so
+%{_libdir}/libregistry.so
+%{_libdir}/libsamba-hostconfig.so
+%{_libdir}/libtorture.so
+
+%{_libdir}/pkgconfig
+%{_includedir}/*
+%{_bindir}/ndrdump
+%{_bindir}/nsstest
+
+%files pidl
+%defattr(-,root,root,-)
+%{perl_vendorlib}/*
+%{_mandir}/man1/pidl*
+%{_mandir}/man3/Parse*
+%attr(755,root,root) %{_bindir}/pidl
+
+%files client
+%defattr(-,root,root)
+%{_bindir}/nmblookup
+%{_bindir}/smbclient
+%{_bindir}/cifsdd
+
+%files common
+%defattr(-,root,root)
+%{_bindir}/net
+%{_bindir}/testparm
+%{_bindir}/ldbadd
+%{_bindir}/ldbdel
+%{_bindir}/ldbedit
+%{_bindir}/ldbmodify
+%{_bindir}/ldbsearch
+%{_bindir}/ldbrename
+%{_bindir}/ad2oLschema
+%{_bindir}/oLschema2ldif
+%{_bindir}/regdiff
+%{_bindir}/regpatch
+%{_bindir}/regshell
+%{_bindir}/regtree
+%{_bindir}/subunitrun
+%{_bindir}/smbtorture
+
+%dir /var/lib/%{name}
+%attr(700,root,root) %dir /var/lib/%{name}/private
+# We don't want to put a smb.conf in by default, provision should create it
+#%config(noreplace) %{_sysconfdir}/%{name}/smb.conf
+
+%doc COPYING
+%doc WHATSNEW.txt
+
+%changelog
+* Fri Aug 29 2008 Andrew Bartlett <abartlet@samba.org> - 0:4.0.0-0.5.alpha5.fc10
+- Fix licence tag (the binaries are built into a GPLv3 whole, so the BSD licence need not be mentioned)
+
+* Fri Jul 25 2008 Andrew Bartlett <abartlet@samba.org> - 0:4.0.0-0.4.alpha5.fc10
+- Remove talloc and tdb dependency (per https://bugzilla.redhat.com/show_bug.cgi?id=453083)
+- Fix deps on chkconfig and service to main pkg (not -common)
+ (per https://bugzilla.redhat.com/show_bug.cgi?id=453083)
+
+* Mon Jul 21 2008 Brad Hards <bradh@frogmouth.ent> - 0:4.0.0-0.3.alpha5.fc10
+- Use --sysconfdir instead of --with-configdir
+- Add patch for C++ header compatibility
+
+* Mon Jun 30 2008 Andrew Bartlett <abartlet@samba.org> - 0:4.0.0-0.2.alpha5.fc9
+- Update per review feedback
+- Update for alpha5
+
+* Thu Jun 26 2008 Andrew Bartlett <abartlet@samba.org> - 0:4.0.0-0.1.alpha4.fc9
+- Rework Fedora's Samba 3.2.0-1.rc2.16 spec file for Samba4
diff --git a/packaging4/Fedora/samba4.sysconfig b/packaging4/Fedora/samba4.sysconfig
new file mode 100644
index 0000000000..a081c478f3
--- /dev/null
+++ b/packaging4/Fedora/samba4.sysconfig
@@ -0,0 +1,2 @@
+# Options to smbd
+SMBDOPTIONS=""