summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorgrufo2020-09-19 05:36:32 +0100
committergrufo2020-09-19 05:36:32 +0100
commit6a3b14b4df90b5614982a985984cfe49824144dd (patch)
tree23cb5e92341035fd19ccd32202ef26482d00aace /PKGBUILD
parentecd69097bbeaa6da160734a0737bf09f5ad05191 (diff)
downloadaur-6a3b14b4df90b5614982a985984cfe49824144dd.tar.gz
Globally: executables, launchers and polkit actions; PKGBUILD: variables and multi-platform support; xampp.install: backup rules in `pre_remove()`
Diffstat (limited to 'PKGBUILD')
-rwxr-xr-xPKGBUILD154
1 files changed, 93 insertions, 61 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 8d7b56b0dd4a..e3d72160c3c1 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,44 +8,58 @@
pkgname='xampp'
pkgver='7.4.10'
-pkgrel=8
-pkgdesc='A stand-alone LAMPP distribution'
-_platform='linux-x64'
_uppkgrel=0
+pkgrel=9
+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 are available are 5.6.23-0 and 7.0.8-0.
arch=('x86_64')
depends=('net-tools')
optdepends=('polkit: for launching XAMPP Manager and Control Panel from menu'
'pygtk: for using XAMPP Control Panel')
makedepends=('sdx' 'tclkit' 'rsync')
source=('bitrock-unpacker.tcl'
- 'org.freedesktop.xampp-manager.policy'
+ 'org.apachefriends.xampp.policy'
'properties.ini.in'
- 'xampp.service'
+ 'xampp.service.in'
'xampp.svg'
'xampp.sysusers'
- 'xampp.tmpfiles'
- 'xampp-control-panel'
+ 'xampp.tmpfiles.in'
+ 'xampp-control-panel.in'
'xampp-control-panel.desktop'
- 'xampp-manager'
+ 'xampp-manager.in'
'xampp-manager.desktop')
-source_x86_64=("${url}/${pkgname}-files/${pkgver}/${pkgname}-${_platform}-${pkgver}-${_uppkgrel}-installer.run")
-options=(staticlibs libtool !strip)
+_build32name='linux'
+_build64name='linux-x64'
+source_i686=("${url}/${pkgname}-files/${pkgver}/${pkgname}-${_build32name}-${pkgver}-${_uppkgrel}-installer.run")
+source_x86_64=("${url}/${pkgname}-files/${pkgver}/${pkgname}-${_build64name}-${pkgver}-${_uppkgrel}-installer.run")
+options=('staticlibs' 'libtool' '!strip')
install='xampp.install'
sha256sums=('3f262ef4b3e752992667ab482cbf364e3b9e6f95b4b6fb12a1ce6fa7a88f124e'
- '4092631d86ec1c3a155bfec76ea2c8433426a13f12a7a5866f843a099f1ca418'
- 'ff3eac073707f0463a703b2c0caeaa6a513fdeb3c289c85b2708ad9defd3f6bb'
- '78854cb427117c69117a8f20685acbe898a02bc3af1409950117986ff1b45f1f'
+ 'ce87d4c7d227a94ca8252cde1f6dca7e1691a213779c8e6485ac1e2bd4cc63ba'
+ 'ae9dc07ce5cd57987cdd03af5fff415be471d60fe71563b900c9f4bd9cd71e04'
+ 'f3165bfb3b5fac6e840b423b62a0aee4ab7c60d1955b7f5f1bc58e33f5174f6a'
'a3fc7f2b570af9d05435f2f9a0b8d7d9b30ee1dbeaea152f8e249ef5ef0461c9'
'37e24dacf3a52037d0cddb11d979917f81741bf399ec5fa5e847359909b7bc25'
- 'abdd8e08dc12b1cc57f430460b4653d2b76c53c43f113635983c98e59769ee63'
- 'd6135f2f5f089b6293d4d2e87072ec63071e8f76c40e1e2642ed27812c84318c'
- '6451a2e210a7d4d807618c7042a966343cc346ec860680d777b463c30026057e'
- '6fa0e2ce22b51d5c611ff0b4179fc3bdf575a2cd3c69f2dd9f0d4dd6e3ab8814'
- '584f891f908aa5ea95c9a19d4298c1a582e81fcace3ab0741cbd3f4fac33128a')
+ 'e8e0ddeb7201b7ee6e7e6838b3b37cdca03f0f3e8ba1b9e05fbd657c18efb99e'
+ '94976a27b06192c5cc8fea64058cda164751be137d853c863238e965db51db40'
+ 'b03a927a8bc13de2f8ad728607f4b0841e738246ee858a0c202fe10dc8ed26dd'
+ '0cbfb01a844e48ac64a256b1639eebbe6a36c60f712b0c8794eef8722f436762'
+ '9d0cc215118fdb3aae00cbd64e284bcbbda28273f0b82ee2a3bb0aa725336ffd')
sha256sums_x86_64=('dc216c55f99b04a9e1a458c7c881127fdbf30963710a32f6d5228a09c3cde722')
+sha256sums_i686=('SKIP')
+
+_platform="$(test "${CARCH}" = 'x86_64' && echo "${_build64name}" || echo "${_build32name}")"
+_pkgstring="${pkgname}-${_platform}-${pkgver}-${_uppkgrel}"
+
+# Make a string suitable for `sed`, by escaping []/&$.*^ - syntax: `_sed_escape STRING`
+_sed_escape() {
+ echo "${1}" | sed 's/[]\/&.*$^[]/\\&/g'
+}
prepare() {
@@ -54,86 +68,104 @@ prepare() {
msg 'Extracting package...'
chmod +x "${srcdir}/bitrock-unpacker.tcl"
rm -rf "${srcdir}/${pkgname}-${_platform}-${pkgver}"
- "${srcdir}/bitrock-unpacker.tcl" "${srcdir}/${pkgname}-${_platform}-${pkgver}-0-installer.run" \
- "${srcdir}/${pkgname}-${_platform}-${pkgver}"
+ "${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 _xamppdir='/opt/lampp'
+
+ local _sed_subst="
+ s/@PACKAGE_VERSION@/$(_sed_escape "${pkgver}-${_uppkgrel}")/g
+ s/@PACKAGE_PLATFORM@/$(_sed_escape "${_platform}")/g
+ s/@PACKAGE_INSTALLDIR@/$(_sed_escape "${_xamppdir}")/g
+ "
+
cd "${srcdir}"
+ # Package tree
msg 'Recreating package tree...'
- install -dm755 "${pkgdir}/opt/lampp"
+ install -dm755 "${pkgdir}${_xamppdir}"
rsync -azq --remove-source-files \
- "${srcdir}/${pkgname}-${_platform}-${pkgver}/xampp_core_files/xampp_core_folder"/. \
- "${srcdir}/${pkgname}-${_platform}-${pkgver}/xampp_developer_files/xampp_developer_folder"/. \
- "${srcdir}/${pkgname}-${_platform}-${pkgver}/native_apache_adapter/apache_xampp_linux"/. \
- "${srcdir}/${pkgname}-${_platform}-${pkgver}/native_proftpd_adapter/proftpd_xampp_linux"/. \
- "${srcdir}/${pkgname}-${_platform}-${pkgver}/native_mysql_adapter/mysql_xampp_linux"/. \
- "${srcdir}/${pkgname}-${_platform}-${pkgver}/manager/binary"/. \
- "${srcdir}/${pkgname}-${_platform}-${pkgver}/common_native_adapter/common"/. \
- "${pkgdir}/opt/lampp"
-
- rm "${pkgdir}/opt/lampp/ctlscript.bat" "${pkgdir}/opt/lampp/killprocess.bat"
-
- # Set root location in all 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}${_xamppdir}"
+
+ rm "${pkgdir}${_xamppdir}/ctlscript.bat" "${pkgdir}${_xamppdir}/killprocess.bat"
+
+ # Root location in all files
msg 'Setting root location globally (it might take a few minutes)...'
- find "${pkgdir}/opt/lampp/" -type f \
- -exec sed -i 's/\@\@BITNAMI_XAMPP_ROOT\@\@\|\@\@BITROCK_INSTALLDIR\@\@/\/opt\/lampp/gI' '{}' \;
+ find "${pkgdir}${_xamppdir}/" -type f \
+ -exec sed -i "s/@@BITNAMI_XAMPP_ROOT@@\|@@BITROCK_INSTALLDIR@@/$(_sed_escape "${_xamppdir}")/gI" '{}' \;
# Temp folders
- install -dm777 "${pkgdir}/opt/lampp/phpmyadmin/tmp"
- chmod 777 "${pkgdir}/opt/lampp/temp"
+ install -dm777 "${pkgdir}${_xamppdir}/phpmyadmin/tmp"
+ chmod 777 "${pkgdir}${_xamppdir}/temp"
# phpMyAdmin MySQL settings (currently unused option)
#msg 'Configuring phpMyAdmin settings for MySQL...'
- #find "${pkgdir}/opt/lampp/phpmyadmin" -type f -exec sed -i 's/localhost/localhost:3306/gI' '{}' \;
+ #find "${pkgdir}${_xamppdir}/phpmyadmin" -type f -exec sed -i 's/localhost/localhost:3306/gI' '{}' \;
# Links and missing files
- ln -s '/opt/lampp/xampp' "${pkgdir}/opt/lampp/lampp"
- test -d "${pkgdir}/opt/lampp/share/lampp" || \
- ln -sf '/opt/lampp/share/xampp' "${pkgdir}/opt/lampp/share/lampp"
-
- sed "s/@PACKAGE_VERSION@/${pkgver}-${_uppkgrel}/g;s/@PACKAGE_PLATFORM@/${_platform}/g" \
- "${srcdir}/properties.ini.in" > "${pkgdir}/opt/lampp/properties.ini"
-
- echo -n "${pkgver}-${_uppkgrel}" > "${pkgdir}/opt/lampp/lib/VERSION"
+ sed "${_sed_subst}" "${srcdir}/properties.ini.in" > "${pkgdir}${_xamppdir}/properties.ini"
+ echo -n "${pkgver}-${_uppkgrel}" > "${pkgdir}${_xamppdir}/lib/VERSION"
+ ln -s "${_xamppdir}/xampp" "${pkgdir}${_xamppdir}/lampp"
+ test -d "${pkgdir}${_xamppdir}/share/lampp" || \
+ ln -sf "${_xamppdir}/share/xampp" "${pkgdir}${_xamppdir}/share/lampp"
# For using MariaDB from the official packages (currently unused option)
- #find "${pkgdir}/opt/lampp/mysql/scripts" -type f -exec sed -i 's/\/opt\/lampp\/var\/mysql\/$HOSTNAME.pid/\/var\/lib\/mysql\/$HOSTNAME.pid/gI' '{}' \;
- #find "${pkgdir}/opt/lampp/" -type f -exec sed -i 's/\/opt\/lampp\/var\/mysql\/mysql.sock/\/run\/mysqld\/mysqld.sock/gI' '{}' \;
+ #find "${pkgdir}${_xamppdir}/mysql/scripts" -type f -exec sed -i 's/'"$(_sed_escape "${_xamppdir}")"'\/var\/mysql\/$HOSTNAME.pid/\/var\/lib\/mysql\/$HOSTNAME.pid/gI' '{}' \;
+ #find "${pkgdir}${_xamppdir}/" -type f -exec sed -i "s/$(_sed_escape "${_xamppdir}")\/var\/mysql\/mysql.sock/\/run\/mysqld\/mysqld.sock/gI" '{}' \;
# For running MySQL from the official packages (currently unused option)
- #find "${pkgdir}/opt/lampp/mysql/scripts" -type f -exec sed -i 's/\/opt\/lampp\/lampp\ startmysql/systemctl\ start\ mysqld/gI' '{}' \;
+ #find "${pkgdir}${_xamppdir}/mysql/scripts" -type f -exec sed -i "s/$(_sed_escape "${_xamppdir}")\/lampp\ startmysql/systemctl\ start\ mysqld/gI" '{}' \;
msg 'Copying executables and launcher...'
# Licenses
install -dm755 "${pkgdir}/usr/share/licenses"
- chmod -R a+rX,u+w "${pkgdir}/opt/lampp/licenses"
- ln -s '/opt/lampp/licenses' "${pkgdir}/usr/share/licenses/xampp"
+ chmod -R a+rX,u+w "${pkgdir}${_xamppdir}/licenses"
+ ln -s "${_xamppdir}/licenses" "${pkgdir}/usr/share/licenses/xampp"
# Executables
install -dm755 "${pkgdir}/usr/bin"
- install -Dm755 "${srcdir}/xampp-manager" "${pkgdir}/usr/bin/xampp-manager"
- install -Dm755 "${srcdir}/xampp-control-panel" "${pkgdir}/usr/bin/xampp-control-panel"
- ln -s '/opt/lampp/xampp' "${pkgdir}/usr/bin/xampp"
+ ln -s "${_xamppdir}/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}/etc/systemd/system"
- install -Dm644 "${srcdir}/xampp.service" "${pkgdir}/etc/systemd/system/xampp.service"
+ install -dm755 \
+ "${pkgdir}/etc/systemd/system" \
+ "${pkgdir}/usr/lib/sysusers.d" \
+ "${pkgdir}/usr/lib/tmpfiles.d"
+
+ sed "${_sed_subst}" "${srcdir}/xampp.service.in" > "${pkgdir}/etc/systemd/system/xampp.service"
install -Dm644 "${srcdir}/xampp.sysusers" "${pkgdir}/usr/lib/sysusers.d/xampp.conf"
- install -Dm644 "${srcdir}/xampp.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.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/pixmaps" \
+ "${pkgdir}/usr/share/applications"
- # Integration with the Filesystem Hierarchy Standard
install -Dm644 "${srcdir}/xampp.svg" "${pkgdir}/usr/share/pixmaps/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 '/opt/lampp' "${pkgdir}/usr/share/xampp"
+ ln -s "${_xamppdir}" "${pkgdir}/usr/share/xampp"
- # Install policy file for desktop launcher
- install -Dm644 "${srcdir}/org.freedesktop.xampp-manager.policy" "${pkgdir}/usr/share/polkit-1/actions/org.freedesktop.xampp-manager.policy"
+ # 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"
# Update backup list for the next time – currently unused method (we use the
# install script for this) - requires `readarray backup < "./backup.lst"`)