#!/bin/sh # ###################################################### # Build script # # # # See .info for details # ###################################################### #tce-load -i compiletc libtirpc-dev cups-dev python-dev perl5 acl-dev STD_DEPS="compiletc squashfs-tools libtool git gettext libxslt-dev" BUILD_DEPS="gamin-dev gnutls-dev acl-dev libcap-dev python3.8-dev perl5 jansson-dev libarchive-dev perl_parse_yapp_driver icu-dev" TCZ_DEPS="gamin gnutls acl libcap jansson libarchive" DEV_TCZ_DEPS="" FULL_DEPS="$STD_DEPS $BUILD_DEPS" for deps in $FULL_DEPS; do tce-status -i | grep -q ${deps%.*} if [ $? -ne 0 ]; then tce-load -i $deps >/dev/null 2>&1 if [ $? -eq 0 ]; then echo "Loaded $deps..." else echo "Failed to load $deps... exiting" exit 1 fi fi done ###################################################### # Configure extension creation parameters # ###################################################### #src=https://www.samba.org SRCNAM=samba-4.12.6.tar.gz WRKDIR=samba-4.12.6 EXTNAM=samba4 TMPDIR=/tmp/$EXTNAM LIBEXT=samba4-lib LIBTMP=/tmp/$LIBEXT ###################################################### # Prepare extension creation # ###################################################### # Remove dirs and files left from previous creation rm -r -f $WRKDIR rm -r -f $TMPDIR rm -r -f $TMPDIR-doc rm -r -f $TMPDIR-dev # Crete temporary directory mkdir -p $TMPDIR ###################################################### # Compile extension # ###################################################### # Export variables needed for compilation export CFLAGS="-Os -pipe -march=armv8-a+crc -mtune=cortex-a72" export CXXFLAGS="-Os -pipe -fno-exceptions -fno-rtti -march=armv8-a+crc -mtune=cortex-a72" export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig # Unpack source in current directory tar -xf $SRCNAM #Patch it cd $WRKDIR # Configure it [ -f /usr/local/bin/python3 ] || sudo ln -s /usr/local/bin/python3.8 /usr/local/bin/python3 ./configure --prefix=/usr/local --enable-fhs --without-gpgme \ --localstatedir=/usr/local/var --libexecdir=/usr/local/lib/samba \ --with-piddir=/var/run --without-ad-dc --without-systemd \ --with-logfilebase=/var/log --without-ldap --without-ads --without-pam --enable-selftest # Compile # Set timestamp before compile, since dev files are generated during compile and then just copied to FS. touch /tmp/mark make -j4 # Install in base temp dir sudo make install find /usr/local -newer /tmp/mark -not -type d > /tmp/list tar -T /tmp/list -czvf /tmp/samba4.tar.gz # Posibly needed in init.d script #* create /usr/local/etc/samba #* create /var/lib/samba #* create /var/lib/samba/private #* create /var/lib/samba/bind-dns #* create /var/cache/samba #* create /var/lock/samba #* create /var/run/samba tar xf /tmp/samba4.tar.gz -C $TMPDIR/ # Copy License if [ -f COPYING ]; then cp -f COPYING $TMPDIR/ fi #Copy smb.conf.default cp examples/smb.conf.default $TMPDIR/ # Delete compilation work directory cd .. #rm -r -f $WRKDIR # Adjust directory access rigths find $TMPDIR/ -type d | xargs chmod -v 755; # Strip executables find $TMPDIR | xargs file | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded # Move files to doc extension #Remove Documentation, for now rm -rf $TMPDIR/usr/local/share/man #mkdir -p $TMPDIR-doc/usr/local/share #mv $TMPDIR/usr/local/share/doc $TMPDIR-doc/usr/local/share #mv $TMPDIR/usr/local/share/man $TMPDIR-doc/usr/local/share # Move files to dev extension mkdir -p $TMPDIR-dev/usr/local/lib mv $TMPDIR/usr/local/include $TMPDIR-dev/usr/local mv $TMPDIR/usr/local/lib/*.a $TMPDIR-dev/usr/local/lib mv $TMPDIR/usr/local/lib/*.la $TMPDIR-dev/usr/local/lib #mv $TMPDIR/usr/local/lib/*.sh $TMPDIR-dev/usr/local/lib mv $TMPDIR/usr/local/lib/pkgconfig $TMPDIR-dev/usr/local/lib mv $TMPDIR/usr/local/share $TMPDIR-dev/usr/local #mv $TMPDIR/usr/local/bin $TMPDIR-dev/usr/local # Move libraries to own extension mkdir -p $LIBTMP/usr/local mv $TMPDIR/usr/local/lib $LIBTMP/usr/local #Remove unneeded python libs rm -rf $LIBTMP/usr/local/lib/python* # Move License to main extension mkdir -p $TMPDIR/usr/local/share/$EXTNAM/files mv $TMPDIR/COPYING $TMPDIR/usr/local/share/$EXTNAM/ mv $TMPDIR/smb.conf.default $TMPDIR/usr/local/share/$EXTNAM/files # Copy init.d script to main extension mkdir -p $TMPDIR/usr/local/etc/init.d cp samba4.initd $TMPDIR/usr/local/etc/init.d/samba4 chmod 755 $TMPDIR/usr/local/etc/init.d/samba4 ################################################### # Create base extension in temp dir # ################################################### cd $TMPDIR cd .. mksquashfs $TMPDIR $EXTNAM.tcz cd $TMPDIR find usr -not -type d > $EXTNAM.tcz.list mv ../$EXTNAM.tcz . # Create md5 file md5sum $EXTNAM.tcz > $EXTNAM.tcz.md5.txt # Cleanup temp directory rm -r -f usr ################################################### # Create doc extension in temp dir # ################################################### cd $TMPDIR-doc cd .. mksquashfs $TMPDIR-doc $EXTNAM-doc.tcz cd $TMPDIR-doc find usr -not -type d > $EXTNAM-doc.tcz.list mv ../$EXTNAM-doc.tcz . # Create md5 file md5sum $EXTNAM-doc.tcz > $EXTNAM-doc.tcz.md5.txt # Cleanup temp directory rm -r -f usr ################################################### # Create dev extension in temp dir # ################################################### cd $TMPDIR-dev cd .. mksquashfs $TMPDIR-dev $EXTNAM-dev.tcz cd $TMPDIR-dev find usr -not -type d > $EXTNAM-dev.tcz.list mv ../$EXTNAM-dev.tcz . # Create md5 file md5sum $EXTNAM-dev.tcz > $EXTNAM-dev.tcz.md5.txt # Cleanup temp directory rm -r -f usr ################################################### # Create bin extension in temp dir # ################################################### cd $LIBTMP cd .. mksquashfs $LIBTMP $LIBEXT.tcz cd $LIBTMP find usr -not -type d > $LIBEXT.tcz.list mv ../$LIBEXT.tcz . # Create md5 file md5sum $LIBEXT.tcz > $LIBEXT.tcz.md5.txt # Cleanup temp directory rm -r -f usr