#!/bin/sh # Generated by Alien's SlackBuild Toolkit: http://slackware.com/~alien/AST # Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015 Eric Hameleers, Eindhoven, Netherlands # Copyright 2015-2017 Thorn Inurcide # Copyright 2015-2017 tde-slackbuilds project on GitHub # All rights reserved. # # Permission to use, copy, modify, and distribute this software for # any purpose with or without fee is hereby granted, provided that # the above copyright notice and this permission notice appear in all # copies. # # THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. PRGNAM=klamav VERSION=$TDEVERSION BUILD=${BUILD:-1} TAG=${TAG:-_tde} source ../../get-source.sh ## klamav needs clamav as a build time requirement [[ $(cat $TMPVARS/PRE_DOWNLOAD) != yes ]] && { # ### clamav - start clamav_installed_fn () { pkg-config libclamav ;} ## If it's already installed, go to end clamav_installed_fn || { ## otherwise, if the source archive is in 'src' .. [[ -s $BUILD_TDE_ROOT/src/clamav-0.103.3.tar.gz ]] && { ## .. build, package, and install it ( echo " building clamav " getsource_fn # to set SLKCFLAGS cd $TMP_BUILD rm -rf *clamav* tar xf $BUILD_TDE_ROOT/src/clamav-0.103.3.tar.gz cd clamav-0.103.3/ ## rpaths are to /.../lib & GNUInstallDirs determines the correct lib directory == CMAKE_INSTALL_LIBDIR ## -> delete the existing GNUInstallDirs which is too late in CMakeLists.txt to apply here for rpaths sed -i '/GNUInstallDirs/d' CMakeLists.txt ## -> insert include(GNUInstallDirs) to set CMAKE_INSTALL_LIBDIR sed -i '108iinclude(GNUInstallDirs)' CMakeLists.txt ## -> set RPATH relative to ORIGIN sed -i 's|set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")|set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}")|' CMakeLists.txt ## install man pages as per Slackware default sed -i 's|/share/man/|/man/|' docs/CMakeLists.txt mkdir -p build/docs ## install html documentation sed -i 's|OPTIONAL||' docs/CMakeLists.txt sed -i '100s|endif()||' docs/CMakeLists.txt sed -i '96iendif()' docs/CMakeLists.txt cp -a docs/html build/docs/ ## clang build error: #/tmp/build/clamav-0.103.3/clamonacc/clamonacc.c:335:96: error: use of undeclared identifier 'O_LARGEFILE' # ctx->fan_fd = fanotify_init(FAN_CLASS_CONTENT | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS, O_LARGEFILE | O_RDONLY); # ^ [[ $COMPILER == clang ]] && \ echo ' set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DO_LARGEFILE")' >> clamonacc/CMakeLists.txt [[ -s /usr/lib64/libmilter.a ]] && MILTER="ON" [[ $GCC_VIS == 0 ]] && unset GCC_VIS # needs to be unset for parameter expansion for CMAKE_CXX_FLAGS cd build/ # LIBDIRSUFFIX not required - any suffix is included in CMAKE_INSTALL_LIBDIR cmake ${G_NINJA:-} \ -DCMAKE_C_FLAGS="$SLKCFLAGS" \ -DCMAKE_CXX_FLAGS="$SLKCFLAGS ${GCC_VIS:+-fvisibility=hidden -fvisibility-inlines-hidden}" \ -DCMAKE_C_COMPILER=$COMPILER \ -DCMAKE_CXX_COMPILER=$COMPILER_CXX \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_SYSTEMD="OFF" \ -DENABLE_MILTER=${MILTER:-"OFF"} \ -Wno-dev \ .. PKG=$TMP_BUILD/package-clamav make_fn INSTALL_TDE=/usr/local mangzip_fn strip_fn cd $TMP_BUILD/package-clamav makepkg -l y -c n $OUTPUT/clamav-0.103.3-$ARCH-$BUILD.txz installpkg $OUTPUT/clamav-0.103.3-$ARCH-$BUILD.txz ) clamav_installed_fn && echo " now building klamav" || { echo -e "\033[39;1m ## installation of clamav failed ## \033[0m" ; exit 1 ; } } || { ## .. but if the source archive isn't in 'src', display message .. echo -e " ############ clamav is required for klamav It's not installed nor is the source archive in the 'src' directory Download [including user-agent, otherwise '403 Forbidden' is returned]: \033[39;1m ( cd $BUILD_TDE_ROOT/src wget --user-agent='Mozilla' https://www.clamav.net/downloads/production/clamav-0.103.3.tar.gz ) \033[0m and re-run this script .. ############ " ; exit 1 ; } } # ### clamav - end } getsource_fn untar_fn ## for slack-desc langs="en";for Lang in $I18N;do [[ -s translations/messages/$Lang.po ]] && langs="$langs $Lang";done ldocs="en";for Lang in $I18N;do [[ -d doc/$Lang ]] && ldocs="$ldocs $Lang";done listdocs_fn chown_fn cd_builddir_fn ! pkg-config sqlite3 && EMB_SQL="ON" cmake ${G_NINJA:-} \ -DCMAKE_C_FLAGS="$SLKRCFLAGS" \ -DCMAKE_CXX_FLAGS="$SLKRCFLAGS" \ -DCMAKE_C_COMPILER=$COMPILER \ -DCMAKE_CXX_COMPILER=$COMPILER_CXX \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \ -DLIB_SUFFIX=$LIBDIRSUFFIX \ -DWITH_EMBEDDED_SQLITE=${EMB_SQL:-"OFF"} \ -DWITH_GCC_VISIBILITY=${GCC_VIS:-} \ -DBUILD_DOC="ON" \ -DBUILD_KLAMMAIL="ON" \ -DBUILD_TRANSLATIONS="ON" \ -Wno-dev \ .. make_fn installdocs_fn strip_fn mkdir_install_fn doinst_sh_fn echo " # HOW TO EDIT THIS FILE: # The 'handy ruler' below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' # on the right side marks the last column you can put a character in. You must # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. |-----handy-ruler------------------------------------------------------| $PRGNAM: KlamAV is a multifunctional graphical front-end for the ClamAV suite. $PRGNAM: It offers features such as scan scheduling, quarantine management, $PRGNAM: e-mail scanning, on-access scanning and a virus research tool. $PRGNAM: $PRGNAM: With language support for: $PRGNAM: $langs $PRGNAM: $PRGNAM: With help documentation for: $PRGNAM: $ldocs $PRGNAM: $PRGNAM: " > $PKG/install/slack-desc makepkg_fn