Skip to content

Instantly share code, notes, and snippets.

@jniltinho
Last active November 8, 2018 13:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jniltinho/32185928971066e1da20a6892bcc6948 to your computer and use it in GitHub Desktop.
Save jniltinho/32185928971066e1da20a6892bcc6948 to your computer and use it in GitHub Desktop.
Create RPM Samba4 4.9.2 OpenSUSE Leap 15
#!/bin/bash
## Create RPM package Samba4 4.9.2 (OpenSUSE 15)
## http://sig9.hatenablog.com/entry/2017/12/04/000000
## Run as root (sudo su)
## docker run --rm -it -v "${PWD}:/usr/src" -e LANG=en_US.UTF-8 opensuse/leap:15 /bin/bash
zypper in -y ruby-devel rpm-build wget tar gzip
zypper in -y pkg-config libblkid-devel autoconf make python-devel gdb sqlite3-devel libgnutls-devel libjansson-devel
zypper in -y perl perl-TimeDate git-core pam-devel libsepol-devel ccache cracklib-devel gdbm-devel libgpgme-devel
zypper in -y e2fsprogs-devel libiniparser-devel libuuid-devel libaio-devel libtdb-devel python-tdb libnscd-devel
zypper in -y policycoreutils-python setools-libs setools-libs popt-devel libpcap-devel keyutils-devel libarchive-devel
zypper in -y libidn-devel libxml2-devel libsepol-devel libacl-devel libattr-devel zlib-devel cyrus-sasl-devel cups-devel
zypper in -y krb5-client pam-devel openldap2-devel libopenssl-devel bind-utils libavahi-devel binutils bison libffi-devel
zypper in -y flex gcc-c++ make flex docbook2x gcc pam-devel readline-devel krb5-devel lmdb-devel docbook-xsl-stylesheets
zypper in -y python python-tdb krb5-client
gem install fpm
mkdir -p /build && cd /build
get_samba4=https://download.samba.org/pub/samba/stable/samba-4.9.2.tar.gz
PKG=$(basename ${get_samba4}|sed "s/.tar.gz//")
PKG_NAME=$(basename ${get_samba4}|sed "s/.tar.gz//"|cut -d- -f1)
PKG_VERSION=$(basename ${get_samba4}|sed "s/.tar.gz//"|cut -d- -f2)
wget -c ${get_samba4}
tar xvfz $(basename ${get_samba4})
cd $(basename ${get_samba4}|sed "s/.tar.gz//")
./configure --with-ads --systemd-install-services --with-shared-modules=idmap_ad --enable-debug --enable-selftest --with-systemd --prefix=/opt/samba4
make -j 2
make install install DESTDIR=/tmp/installdir
mkdir -p /tmp/installdir/etc/systemd/system
echo '[Unit]
Description=Samba4 AD Daemon
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/opt/samba4/var/run/samba.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/sysconfig/samba4
ExecStart=/opt/samba4/sbin/samba $SAMBAOPTIONS
ExecReload=/usr/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target' > /tmp/installdir/etc/systemd/system/samba4.service
fpm.ruby2.5 -s dir -t rpm -n ${PKG_NAME} -v ${PKG_VERSION} -C /tmp/installdir \
-d "python" \
-d "acl" \
-d "liblmdb-0_9_17" \
-d "libpython2_7-1_0" \
-d "libbsd0" \
-d "libpopt0" \
-d "libgnutls30" \
-d "libldap-2_4-2" \
-d "libcups2" \
-d "libjansson4" \
-d "libgpgme11" \
-p ${PKG}-lp150.0.1.x86_64.rpm .
mv ${PKG}-lp150.0.1.x86_64.rpm /root/
## Install RPM
## zypper in -y libpython2_7-1_0 python liblmdb-0_9_17 libbsd0 libpopt0
## zypper in -y acl libgnutls30 libldap-2_4-2 libcups2 libjansson4 libgpgme11
## rpm -ivh samba-4.9.2-lp150.0.1.x86_64.rpm
### Add PATH
# echo 'export PATH=$PATH:/opt/samba4/bin:/opt/samba4/sbin' >> /etc/profile
# source /etc/profile
### Create Domain Samba4 like AD
# hostnamectl set-hostname samba4.linuxpro.net
# useradd -d /nonexistent -M -s /usr/sbin/nologin -u 65534 nobody
# samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=LINUXPRO.NET --domain=LINUXPRO --adminpass=Linuxpro123456
# or
# samba-tool domain provision --server-role=dc --use-rfc2307 --function-level=2008_R2 --use-xattrs=yes --dns-backend=SAMBA_INTERNAL --realm=LINUXPRO.NET --domain=LINUXPRO --adminpass=Linuxpro123456
### Add start script on boot
# systemctl daemon-reload
# systemctl enable samba4.service
# systemctl start samba4.service
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment