summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-x.SRCINFO9
-rwxr-xr-x.gitignore2
-rwxr-xr-xPKGBUILD51
-rwxr-xr-xerpnext.sh4
-rwxr-xr-xerpnext.sysusers1
-rwxr-xr-xerpnext.tmpfiles1
6 files changed, 55 insertions, 13 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2ae646e8748e..47e7c64096eb 100755
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -3,16 +3,21 @@ pkgbase = erpnext
pkgver = 14.17.4
pkgrel = 1
url = https://github.com/frappe/erpnext
- arch = any
+ arch = x86_64
license = GPL3
makedepends = python-build
makedepends = python-installer
depends = frappe-bench
depends = nodejs
depends = python
+ options = !strip
source = erpnext-v14.17.4.tar.gz::https://github.com/frappe/erpnext/archive/refs/tags/v14.17.4.tar.gz
source = erpnext.sh
+ source = erpnext.sysusers
+ source = erpnext.tmpfiles
sha512sums = 7fb7154bc8542eab411492949cbfe38b7755f5b1a41f410cfab89865ee53d0ac26bc52e77295648c95f7c0c376c377dcbea543f74b525a265bc71d362f9cb68d
- sha512sums = 4829a0db8899fc1021c2e2a5e98399c3647f5149bf324968b6418c09818b85913bfac1cfb27ac3000751c0b537c6dc7b0abecef970cb77682b1efaf9337f6203
+ sha512sums = 36dc36633ff2a370df694562eafb9280acbae12620b33b7ce186f761e2f608afa4a1ef7963707828ab2bc847ae33aba1797f2b872e3e15edd27815d4a4bacc9b
+ sha512sums = d8614473bd72404bec058981d2c9c3a91ed08b931539236a5d22209e5fdc6dc044ea719c8ed336bd8e64a49508cd290a5431bf339b87b0331bd9ede1d055e8ce
+ sha512sums = 4543b6d2629fd818093c9abdeb95e40660a30debc4b40896aa2df1f51a096bc2e167d72c44b089c30002e8eeecdb5291d1a967d61f629357004c2019e1c3c8e8
pkgname = erpnext
diff --git a/.gitignore b/.gitignore
index 08d2e8f9b2a6..e8ee3997375b 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
*
!*.install
!*.sh
+!*.sysusers
+!*.tmpfiles
!.gitignore
!.SRCINFO
!PKGBUILD
diff --git a/PKGBUILD b/PKGBUILD
index 1e188310a1ea..ff596a48fd14 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,6 +5,8 @@
# Maintainer: Matheus <matheusgwdl@protonmail.com>
# Contributor: Matheus <matheusgwdl@protonmail.com>
+readonly version_frappe="v14.26.3"
+
pkgname="erpnext"
pkgver="14.17.4"
pkgrel="1"
@@ -14,32 +16,63 @@ url="https://github.com/frappe/${pkgname}"
license=("GPL3")
depends=("frappe-bench" "nodejs" "python")
makedepends=("python-build" "python-installer")
+options=("!strip") # TODO
source=("${pkgname}-v${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz"
- "${pkgname}.sh")
+ "${pkgname}.sh"
+ "${pkgname}.sysusers"
+ "${pkgname}.tmpfiles")
sha512sums=("7fb7154bc8542eab411492949cbfe38b7755f5b1a41f410cfab89865ee53d0ac26bc52e77295648c95f7c0c376c377dcbea543f74b525a265bc71d362f9cb68d"
- "4829a0db8899fc1021c2e2a5e98399c3647f5149bf324968b6418c09818b85913bfac1cfb27ac3000751c0b537c6dc7b0abecef970cb77682b1efaf9337f6203")
+ "36dc36633ff2a370df694562eafb9280acbae12620b33b7ce186f761e2f608afa4a1ef7963707828ab2bc847ae33aba1797f2b872e3e15edd27815d4a4bacc9b"
+ "d8614473bd72404bec058981d2c9c3a91ed08b931539236a5d22209e5fdc6dc044ea719c8ed336bd8e64a49508cd290a5431bf339b87b0331bd9ede1d055e8ce"
+ "4543b6d2629fd818093c9abdeb95e40660a30debc4b40896aa2df1f51a096bc2e167d72c44b089c30002e8eeecdb5291d1a967d61f629357004c2019e1c3c8e8")
build()
{
- cd "${srcdir}" || exit 1
- bench init "${pkgname}"
- cd ./"${pkgname}" || exit 1
- #bench get --branch v"${pkgver}" "${pkgname}" "${url}.git"
- bench get "${pkgname}" "${url}.git"
- bench new-site "${pkgname}"
+ cd "${srcdir}"/ || exit 1
+ bench init --frappe-branch "${version_frappe}" "${pkgname}"
+ cd "${srcdir}"/"${pkgname}"/ || exit 1
+ bench get --branch v"${pkgver}" --resolve-deps "${pkgname}" "${url}.git"
+ bench new-site --db-name "${pkgname}" --set-default "${pkgname}"
bench --site "${pkgname}" install-app "${pkgname}"
}
package()
{
# Assure that the directories exist.
+ mkdir -p "${pkgdir}"/usr/bin/
+ mkdir -p "${pkgdir}"/usr/lib/sysusers.d/
mkdir -p "${pkgdir}"/usr/share/doc/"${pkgname}"/
mkdir -p "${pkgdir}"/usr/share/webapps/"${pkgname}"/
# Install the software.
cp -r "${srcdir}"/"${pkgname}"/* "${pkgdir}"/usr/share/webapps/"${pkgname}"/
- echo "${pkgname}" > "${pkgdir}"/usr/share/webapps/"${pkgname}"/sites/currentsite.txt
install -Dm755 "${srcdir}"/"${pkgname}".sh "${pkgdir}"/usr/bin/"${pkgname}"
+ install -Dm644 "${srcdir}"/"${pkgname}".sysusers "${pkgdir}"/usr/lib/sysusers.d/"${pkgname}".conf
+ install -Dm644 "${srcdir}"/"${pkgname}".tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/"${pkgname}".conf
+
+ ## Edit paths. Configuration files are altered as well as .pyc.
+ declare -r files=$(grep -lr "${srcdir}"/"${pkgname}/" "${pkgdir}"/usr/share/webapps/"${pkgname}"/)
+ echo "${files}" | xargs sed -i "s|${srcdir}/${pkgname}/|/usr/share/webapps/${pkgname}/|g"
+
+ ## Rebuild the software since their contents were manipulated.
+ rm -r "${pkgdir}"/usr/share/webapps/"${pkgname}"/env/
+ python -m venv "${pkgdir}"/usr/share/webapps/"${pkgname}"/env/
+ "${pkgdir}"/usr/share/webapps/"${pkgname}"/env/bin/python -m pip install --force-reinstall -q wheel
+
+ for path in "${pkgdir}/usr/share/webapps/${pkgname}/apps/frappe/" "${pkgdir}/usr/share/webapps/${pkgname}/apps/erpnext/"; do
+ "${pkgdir}"/usr/share/webapps/"${pkgname}"/env/bin/python -m pip install --force-reinstall -qe "${path}"
+ cd "${path}" || exit 1
+ yarn install
+ yarn --check-files
+ done
+
+ cd "${pkgdir}"/usr/share/webapps/"${pkgname}"/ || exit 1
+ bench build --hard-link --production
+ bench build --app "${pkgname}" --hard-link --production
+
+ # Edit the paths.
+ echo "/usr/share/webapps/${pkgname}/apps/erpnext/" > "${pkgdir}"/usr/share/webapps/"${pkgname}"/env/lib/python3.10/site-packages/erpnext.pth
+ echo "/usr/share/webapps/${pkgname}/apps/frappe/" > "${pkgdir}"/usr/share/webapps/"${pkgname}"/env/lib/python3.10/site-packages/frappe.pth
# Install the documentation.
install -Dm644 "${srcdir}"/"${pkgname}"-"${pkgver}"/README.md "${pkgdir}"/usr/share/doc/"${pkgname}"/
diff --git a/erpnext.sh b/erpnext.sh
index 1a9230fdd89d..a7cfd067fa93 100755
--- a/erpnext.sh
+++ b/erpnext.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# This script starts ERPNext.
-cd /usr/share/webapps/erpnext/ || exit 1
-bench start "${@}"
+sudo -u erpnext bash -c "cd /usr/share/webapps/erpnext/ || exit 1"
+sudo -u erpnext bash -c "bench start \${@}"
diff --git a/erpnext.sysusers b/erpnext.sysusers
new file mode 100755
index 000000000000..5578092d009f
--- /dev/null
+++ b/erpnext.sysusers
@@ -0,0 +1 @@
+u erpnext - "ERPNext user" /usr/share/webapps/erpnext/
diff --git a/erpnext.tmpfiles b/erpnext.tmpfiles
new file mode 100755
index 000000000000..d69fe24a1cd1
--- /dev/null
+++ b/erpnext.tmpfiles
@@ -0,0 +1 @@
+Z /usr/share/webapps/erpnext/ 0750 erpnext erpnext