# Maintainer: grufo # Contributor: Marcin (CTRL) Wieczorek # Contributor: Julio González # Contributor: Jose Valecillos # Contributor: Thiago Perrotta # Contributor: alegotta # Contributor: oguzkagan pkgname='xampp' _srcver='8.2.12' _binver=0 pkgrel=1 # This PKGBUILD deals with two different versioning formats: the upstream # format MAJOR.MINOR.REVISION-BUILD - used internally by XAMPP - and the # makepkg-friendly format MAJOR.MINOR.REVISION[.BUILD]-RELEASE (where the only # hyphen is the one automatically added by makepkg before `$pkgrel`). pkgver="${_srcver}$(test "${_binver}" -eq 0 || echo ".${_binver}")" pkgdesc='A stand-alone LAMPP distribution' url='https://www.apachefriends.org' license=('GPL') # This PKGBUILD is configured for both 32-bit and 64-bit architectures, but # currently no binaries for 32-bit architectures are distributed. The last # versions where these were available are 5.6.23-0 and 7.0.8-0. If you want # to include a 32-bit release add 'i686' to the array below and provide a # compatible version. arch=('x86_64') depends=('inetutils' 'net-tools' 'libxcrypt-compat') optdepends=('polkit: for launching XAMPP Manager and Control Panel from menu' 'pygtk: for using XAMPP Control Panel') makedepends=('sdx' 'tclkit' 'rsync' 'pcre') source=('bitrock-unpacker.tcl' 'org.apachefriends.xampp.policy' 'properties.ini.in' 'xampp.service.in' 'xampp.svg' 'xampp.sysusers' 'xampp.tmpfiles.in' 'xampp-control-panel.in' 'xampp-control-panel.desktop' 'xampp-manager.in' 'xampp-manager.desktop') _build32name='linux' _build64name='linux-x64' source_i686=("https://sourceforge.net/projects/${pkgname}/files/XAMPP%20Linux/${_srcver}/${pkgname}-${_build32name}-${_srcver}-${_binver}-installer.run") source_x86_64=("https://sourceforge.net/projects/${pkgname}/files/XAMPP%20Linux/${_srcver}/${pkgname}-${_build64name}-${_srcver}-${_binver}-installer.run") options=('staticlibs' 'libtool' '!strip') install='xampp.install' sha256sums=('3f262ef4b3e752992667ab482cbf364e3b9e6f95b4b6fb12a1ce6fa7a88f124e' 'd72750c1dba2f754e6ea4eec22770f8a9c3858f270a91e7b1da4129e053a9d68' '90a0003840fc9310f22b26e909845d5909a515dbf3f5aff39f730b190e808597' '72dffe1ee4ae96a966a301dd1486832ce823cf3132f3ab1cd4ddb75ef9816d08' '087ce2c9adffcd88f4a67c881215a451e35e02a6a4a155d76321e05453d80f5d' '37e24dacf3a52037d0cddb11d979917f81741bf399ec5fa5e847359909b7bc25' '1447876c2d2dcf48c8e94c3bffbb09f1b4005621a55f78fb7d9faecebdb26264' '80de3facade04b394a501f13dd1c16d66381715c42c1f597fc1142cdcbe5f3de' '39a5617deaf42d17281b3b1b828351c0f6108cee774b3e4671af3d9bbcd48883' '8825623ea18abb8bfb3a8811b6c59dc8485f7d767c6f3a013fdc1b1afc979426' '83b30970378e8d30d7acd13ebe6dc31652548a44d2cca9fd5919fa7f06fe238d') sha256sums_x86_64=('df0774e7a6d0d0754a5f0132015411234b5f953df2365b693d3758fc35a30374') sha256sums_i686=('SKIP') _platform="$(test "${CARCH}" = 'x86_64' && echo "${_build64name}" || echo "${_build32name}")" _pkgstring="${pkgname}-${_platform}-${_srcver}-${_binver}" # Make a string suitable for `sed`, by escaping `[]/&$.*^\` - syntax: `_sed_escape STRING` _sed_escape() { echo "${1}" | sed 's/[]\/&.*$^[]/\\&/g' } prepare() { cd "${srcdir}" msg 'Extracting package...' chmod +x "${srcdir}/bitrock-unpacker.tcl" rm -rf "${srcdir}/${_pkgstring}" "${srcdir}/bitrock-unpacker.tcl" "${srcdir}/${_pkgstring}-installer.run" \ "${srcdir}/${_pkgstring}" } package() { # This is a constant, you should not change it - this path is hard-coded in some of the files local _xampp_root='/opt/lampp' cd "${srcdir}" # Package tree msg 'Creating package tree...' install -dm755 "${pkgdir}${_xampp_root}" rsync -azq --remove-source-files \ "${srcdir}/${_pkgstring}/xampp_core_files/xampp_core_folder"/. \ "${srcdir}/${_pkgstring}/xampp_developer_files/xampp_developer_folder"/. \ "${srcdir}/${_pkgstring}/native_apache_adapter/apache_xampp_linux"/. \ "${srcdir}/${_pkgstring}/native_proftpd_adapter/proftpd_xampp_linux"/. \ "${srcdir}/${_pkgstring}/native_mysql_adapter/mysql_xampp_linux"/. \ "${srcdir}/${_pkgstring}/manager/binary"/. \ "${srcdir}/${_pkgstring}/common_native_adapter/common"/. \ "${pkgdir}${_xampp_root}" rm "${pkgdir}${_xampp_root}/ctlscript.bat" "${pkgdir}${_xampp_root}/killprocess.bat" # Root location in all files msg 'Setting root location globally (it might take a few minutes)...' find "${pkgdir}${_xampp_root}/" -type f \ -exec sed -i "s/@@BITNAMI_XAMPP_ROOT@@\|@@BITROCK_INSTALLDIR@@\|@@XAMPP_INSTALLDIR@@/$(_sed_escape "${_xampp_root}")/gI" '{}' \; # Temp folders install -dm777 "${pkgdir}${_xampp_root}/phpmyadmin/tmp" chmod 777 "${pkgdir}${_xampp_root}/temp" local _extension_dir="$(pcregrep -o1 -o2 -o3 '^\s*extension_dir='\''([^\'\'']+)'\''\s*$|^\s*extension_dir="([^\"]+)"\s*$|^\s*extension_dir=([^\s]+)\s*$' "${pkgdir}${_xampp_root}/bin/php-config")" local _sed_subst=" s/@XAMPP_VERSION@/$(_sed_escape "${_srcver}-${_binver}")/g s/@XAMPP_PLATFORM@/$(_sed_escape "${_platform}")/g s/@XAMPP_ROOT@/$(_sed_escape "${_xampp_root}")/g s/@XAMPP_EXTENSIONDIR@/$(_sed_escape "${_extension_dir}")/g " # Links and missing files sed "${_sed_subst}" "${srcdir}/properties.ini.in" > "${pkgdir}${_xampp_root}/properties.ini" echo -n "${_srcver}-${_binver}" > "${pkgdir}${_xampp_root}/lib/VERSION" ln -s "${_xampp_root}/xampp" "${pkgdir}${_xampp_root}/lampp" test -d "${pkgdir}${_xampp_root}/share/lampp" || \ ln -sf "${_xampp_root}/share/xampp" "${pkgdir}${_xampp_root}/share/lampp" echo "Include \"${_xampp_root}/apache2/conf/httpd.conf\"" >> \ "${pkgdir}${_xampp_root}/etc/httpd.conf" msg 'Copying executables and launcher...' # Licenses install -dm755 "${pkgdir}/usr/share/licenses" chmod -R a+rX,u+w "${pkgdir}${_xampp_root}/licenses" ln -s "${_xampp_root}/licenses" "${pkgdir}/usr/share/licenses/xampp" # Executables install -dm755 "${pkgdir}/usr/bin" ln -s "${_xampp_root}/xampp" "${pkgdir}/usr/bin/xampp" sed "${_sed_subst}" "${srcdir}/xampp-manager.in" > "${pkgdir}/usr/bin/xampp-manager" sed "${_sed_subst}" "${srcdir}/xampp-control-panel.in" > "${pkgdir}/usr/bin/xampp-control-panel" chmod +x "${pkgdir}/usr/bin/xampp-control-panel" "${pkgdir}/usr/bin/xampp-manager" # Systemd files install -dm755 \ "${pkgdir}/usr/lib/systemd/system" \ "${pkgdir}/usr/lib/sysusers.d" \ "${pkgdir}/usr/lib/tmpfiles.d" sed "${_sed_subst}" "${srcdir}/xampp.service.in" > "${pkgdir}/usr/lib/systemd/system/xampp.service" install -Dm644 "${srcdir}/xampp.sysusers" "${pkgdir}/usr/lib/sysusers.d/xampp.conf" sed "${_sed_subst}" "${srcdir}/xampp.tmpfiles.in" > "${pkgdir}/usr/lib/tmpfiles.d/xampp.conf" # Launchers and icons install -dm755 \ "${pkgdir}/usr/share/icons/hicolor/scalable/apps" \ "${pkgdir}/usr/share/applications" install -Dm644 "${srcdir}/xampp.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/xampp.svg" install -Dm644 "${srcdir}/xampp-manager.desktop" "${pkgdir}/usr/share/applications/xampp-manager.desktop" install -Dm644 "${srcdir}/xampp-control-panel.desktop" "${pkgdir}/usr/share/applications/xampp-control-panel.desktop" ln -s "${_xampp_root}" "${pkgdir}/usr/share/xampp" # Polkit files install -dm755 "${pkgdir}/usr/share/polkit-1/actions" install -Dm644 "${srcdir}/org.apachefriends.xampp.policy" \ "${pkgdir}/usr/share/polkit-1/actions/org.apachefriends.xampp.policy" }