mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
190 lines
7.2 KiB
Makefile
190 lines
7.2 KiB
Makefile
################################################################################
|
|
# This file is part of OpenELEC - http://www.openelec.tv
|
|
# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv)
|
|
#
|
|
# OpenELEC is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# OpenELEC is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with OpenELEC. If not, see <http://www.gnu.org/licenses/>.
|
|
################################################################################
|
|
|
|
PKG_NAME="samba"
|
|
PKG_VERSION="4.7.4"
|
|
PKG_SHA256="fb12d0c4452f85b67b78bbeabd4c762d8feb8ff83e39d044d285120c2c488247"
|
|
PKG_ARCH="any"
|
|
PKG_LICENSE="GPLv3+"
|
|
PKG_SITE="https://www.samba.org"
|
|
PKG_URL="https://download.samba.org/pub/samba/stable/$PKG_NAME-$PKG_VERSION.tar.gz"
|
|
PKG_DEPENDS_TARGET="toolchain heimdal:host e2fsprogs Python2 zlib readline popt libaio connman"
|
|
PKG_NEED_UNPACK="$(get_pkg_directory heimdal) $(get_pkg_directory e2fsprogs)"
|
|
PKG_SECTION="network"
|
|
PKG_SHORTDESC="samba: The free SMB / CIFS fileserver and client"
|
|
PKG_LONGDESC="Samba is a SMB server that runs on Unix and other operating systems. It allows these operating systems (currently Unix, Netware, OS/2 and AmigaDOS) to act as a file and print server for SMB and CIFS clients. There are many Lan-Manager compatible clients such as LanManager for DOS, Windows for Workgroups, Windows NT, Windows 95, Linux smbfs, OS/2, Pathworks and more."
|
|
|
|
PKG_MAKE_OPTS_TARGET="V=1"
|
|
|
|
if [ "$AVAHI_DAEMON" = yes ]; then
|
|
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET avahi"
|
|
SMB_AVAHI="--enable-avahi"
|
|
else
|
|
SMB_AVAHI="--disable-avahi"
|
|
fi
|
|
|
|
if [ "$TARGET_ARCH" = x86_64 ]; then
|
|
SMB_AESNI="--accel-aes=intelaesni"
|
|
else
|
|
SMB_AESNI="--accel-aes=none"
|
|
fi
|
|
|
|
PKG_CONFIGURE_OPTS="--prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--localstatedir=/var \
|
|
--with-lockdir=/var/lock \
|
|
--with-logfilebase=/var/log \
|
|
--with-piddir=/run/samba \
|
|
--with-privatedir=/run/samba \
|
|
--with-modulesdir=/usr/lib \
|
|
--with-privatelibdir=/usr/lib \
|
|
--with-sockets-dir=/run/samba \
|
|
--with-configdir=/run/samba \
|
|
--with-libiconv=$SYSROOT_PREFIX/usr \
|
|
--cross-compile \
|
|
--cross-answers=$PKG_BUILD/cache.txt \
|
|
--hostcc=gcc \
|
|
--enable-fhs \
|
|
--without-dmapi \
|
|
--disable-glusterfs \
|
|
--disable-rpath \
|
|
--disable-rpath-install \
|
|
--disable-rpath-private-install \
|
|
$SMB_AVAHI \
|
|
$SMB_AESNI \
|
|
--disable-cups \
|
|
--disable-iprint \
|
|
--disable-gnutls \
|
|
--with-relro \
|
|
--with-sendfile-support \
|
|
--without-acl-support \
|
|
--without-ads \
|
|
--without-ad-dc \
|
|
--without-automount \
|
|
--without-cluster-support \
|
|
--without-dnsupdate \
|
|
--without-fam \
|
|
--without-gettext \
|
|
--without-gpgme \
|
|
--without-iconv \
|
|
--without-ldap \
|
|
--without-libarchive \
|
|
--without-pam \
|
|
--without-pie \
|
|
--without-regedit \
|
|
--without-systemd \
|
|
--without-utmp \
|
|
--without-winbind \
|
|
--enable-auto-reconfigure \
|
|
--bundled-libraries='ALL,!asn1_compile,!compile_et,!zlib' \
|
|
--without-quotas \
|
|
--with-syslog \
|
|
--nopyc --nopyo"
|
|
|
|
PKG_SAMBA_TARGET="smbclient"
|
|
|
|
[ "$SAMBA_SERVER" = "yes" ] && PKG_SAMBA_TARGET+=",smbd/smbd,nmbd,smbpasswd"
|
|
[ "$DEVTOOLS" = "yes" ] && PKG_SAMBA_TARGET+=",client/smbclient,smbtree,testparm"
|
|
|
|
pre_configure_target() {
|
|
# samba uses its own build directory
|
|
cd $PKG_BUILD
|
|
rm -rf .$TARGET_NAME
|
|
# samba fails to build with gold support
|
|
strip_gold
|
|
|
|
# work around link issues
|
|
export LDFLAGS="$LDFLAGS -lreadline"
|
|
|
|
# support 64-bit offsets and seeks on 32-bit platforms
|
|
if [ "$TARGET_ARCH" = "arm" ]; then
|
|
export CFLAGS+="-D_FILE_OFFSET_BITS=64 -D_OFF_T_DEFINED_ -Doff_t=off64_t -Dlseek=lseek64"
|
|
fi
|
|
}
|
|
|
|
configure_target() {
|
|
cp $PKG_DIR/config/samba4-cache.txt $PKG_BUILD/cache.txt
|
|
echo "Checking uname machine type: \"$TARGET_ARCH\"" >> $PKG_BUILD/cache.txt
|
|
|
|
PYTHON_CONFIG="$SYSROOT_PREFIX/usr/bin/python-config" \
|
|
python_LDFLAGS="" python_LIBDIR="" \
|
|
./configure $PKG_CONFIGURE_OPTS
|
|
}
|
|
|
|
make_target() {
|
|
./buildtools/bin/waf build --targets=$PKG_SAMBA_TARGET -j$CONCURRENCY_MAKE_LEVEL
|
|
}
|
|
|
|
makeinstall_target() {
|
|
./buildtools/bin/waf install --destdir=$SYSROOT_PREFIX --targets=smbclient -j$CONCURRENCY_MAKE_LEVEL
|
|
./buildtools/bin/waf install --destdir=$INSTALL --targets=$PKG_SAMBA_TARGET -j$CONCURRENCY_MAKE_LEVEL
|
|
}
|
|
|
|
post_makeinstall_target() {
|
|
rm -rf $INSTALL/usr/bin
|
|
rm -rf $INSTALL/usr/lib/python*
|
|
rm -rf $INSTALL/usr/share/perl*
|
|
|
|
mkdir -p $INSTALL/usr/lib/samba
|
|
cp $PKG_DIR/scripts/samba-config $INSTALL/usr/lib/samba
|
|
|
|
mkdir -p $INSTALL/etc/samba
|
|
if [ -n "$DEVICE" -a -f $PROJECT_DIR/$PROJECT/devices/$DEVICE/config/smb.conf ]; then
|
|
cp $PROJECT_DIR/$PROJECT/devices/$DEVICE/config/smb.conf $INSTALL/etc/samba
|
|
elif [ -f $PROJECT_DIR/$PROJECT/config/smb.conf ]; then
|
|
cp $PROJECT_DIR/$PROJECT/config/smb.conf $INSTALL/etc/samba
|
|
elif [ -f $DISTRO_DIR/$DISTRO/config/smb.conf ]; then
|
|
cp $DISTRO_DIR/$DISTRO/config/smb.conf $INSTALL/etc/samba
|
|
else
|
|
cp $PKG_DIR/config/smb.conf $INSTALL/etc/samba
|
|
mkdir -p $INSTALL/usr/config
|
|
cp $PKG_DIR/config/smb.conf $INSTALL/usr/config/samba.conf.sample
|
|
fi
|
|
|
|
if [ "$DEVTOOLS" = "yes" ]; then
|
|
mkdir -p $INSTALL/usr/bin
|
|
cp -PR bin/default/source3/client/smbclient $INSTALL/usr/bin
|
|
cp -PR bin/default/source3/utils/smbtree $INSTALL/usr/bin
|
|
cp -PR bin/default/source3/utils/testparm $INSTALL/usr/bin
|
|
fi
|
|
|
|
if [ "$SAMBA_SERVER" = "yes" ]; then
|
|
mkdir -p $INSTALL/usr/bin
|
|
cp -PR bin/default/source3/utils/smbpasswd $INSTALL/usr/bin
|
|
|
|
mkdir -p $INSTALL/usr/lib/systemd/system
|
|
cp $PKG_DIR/system.d.opt/* $INSTALL/usr/lib/systemd/system
|
|
|
|
mkdir -p $INSTALL/usr/share/services
|
|
cp -P $PKG_DIR/default.d/*.conf $INSTALL/usr/share/services
|
|
|
|
mkdir -p $INSTALL/usr/lib/samba
|
|
cp $PKG_DIR/scripts/samba-autoshare $INSTALL/usr/lib/samba
|
|
cp $PKG_DIR/scripts/smbd-config $INSTALL/usr/lib/samba
|
|
fi
|
|
}
|
|
|
|
post_install() {
|
|
enable_service samba-config.service
|
|
|
|
if [ "$SAMBA_SERVER" = "yes" ]; then
|
|
enable_service nmbd.service
|
|
enable_service smbd.service
|
|
fi
|
|
}
|