aboutsummaryrefslogtreecommitdiffstats
path: root/community/emacs/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/emacs/APKBUILD')
-rw-r--r--community/emacs/APKBUILD316
1 files changed, 216 insertions, 100 deletions
diff --git a/community/emacs/APKBUILD b/community/emacs/APKBUILD
index f16828952bf..a957398f530 100644
--- a/community/emacs/APKBUILD
+++ b/community/emacs/APKBUILD
@@ -1,73 +1,86 @@
-# Maintainer: stef <l0ls0fo2i@ctrlc.hu>
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=emacs
-pkgver=28.1
-pkgrel=4
-pkgdesc="The extensible, customizable, self-documenting real-time display editor"
-arch="all"
-depends="emacs-nox"
+pkgver=29.3
+pkgrel=1
+_pkgdesc="Extensible, customizable, self-documenting real-time display editor"
+pkgdesc="$_pkgdesc (common files)"
url="https://www.gnu.org/software/emacs/emacs.html"
+arch="all"
license="GPL-3.0-or-later"
makedepends="
+ !libexecinfo-dev
+ alsa-lib-dev
autoconf
automake
+ fontconfig-dev
gawk
+ giflib-dev
+ glib-dev
gmp-dev
gnutls-dev
+ gtk+3.0-dev
harfbuzz-dev
jansson-dev
+ libgccjit-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ librsvg-dev
+ libwebp-dev
+ libxaw-dev
+ libxml2-dev
+ libxpm-dev
linux-headers
ncurses-dev
- ncurses-libs
+ pango-dev
+ sqlite-dev
+ tiff-dev
+ tree-sitter-dev
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-nox
+ $pkgname-gtk3
+ $pkgname-gtk3-nativecomp:gtk3_nativecomp
+ $pkgname-pgtk
+ $pkgname-pgtk-nativecomp:pgtk_nativecomp
+ $pkgname-x11
+ $pkgname-x11-nativecomp:x11_nativecomp
"
-subpackages="$pkgname-doc $pkgname-nox"
source="https://ftp.gnu.org/gnu/emacs/emacs-$pkgver.tar.xz
- no-git-repo.patch"
-
-case $CARCH in
- riscv64|s390x)
- # limited by librsvg (rust)
- _docdir="nox"
- ;;
- *)
- makedepends="
- $makedepends
- alsa-lib-dev
- fontconfig-dev
- giflib-dev
- glib-dev
- gtk+3.0-dev
- libgccjit-dev
- libjpeg-turbo-dev
- libpng-dev
- librsvg-dev
- libxaw-dev
- libxml2-dev
- libxpm-dev
- pango-dev
- tiff-dev
- "
- subpackages="
- $subpackages
- $pkgname-gtk3
- $pkgname-x11
- $pkgname-x11-nativecomp:x11_nativecomp
- "
- _docdir="gtk3"
- ;;
-esac
+ no-git-repo.patch
+ "
+
+# secfixes:
+# 28.2-r6:
+# - CVE-2023-27986
+# 28.2-r5:
+# - CVE-2023-27985
+# 28.2-r3:
+# - CVE-2022-45939
prepare() {
default_prepare
./autogen.sh
+ rm etc/emacs.service # systemd unit
+
+ mkdir -p nox
+ mv ./* nox || true
+
+ cp -a nox x11
+ cp -a nox x11-nativecomp
+ cp -a nox gtk3
+ cp -a nox gtk3-nativecomp
+ cp -a nox pgtk
+ cp -a nox pgtk-nativecomp
}
_build_variant() {
cd "$builddir/$1"
- [ "$1" = "x11-nativecomp" ] && _extra="NATIVE_FULL_AOT=1"
shift
- CFLAGS=-fno-pie \
- LDFLAGS=-no-pie \
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -81,7 +94,7 @@ _build_variant() {
--with-json \
"${@}"
- make $_extra
+ make
}
_build_x11() {
@@ -102,7 +115,7 @@ _build_x11_nativecomp() {
--with-xft \
--with-jpeg=yes \
--with-tiff=yes \
- --with-native-compilation \
+ --with-native-compilation=aot \
--without-compress-install
}
@@ -114,6 +127,34 @@ _build_gtk3() {
--with-tiff=no
}
+_build_gtk3_nativecomp() {
+ _build_variant gtk3-nativecomp \
+ --with-x-toolkit=gtk3 \
+ --with-xft \
+ --with-jpeg=yes \
+ --with-tiff=no \
+ --with-native-compilation=aot
+}
+
+_build_pgtk() {
+ _build_variant pgtk \
+ --with-x-toolkit=gtk3 \
+ --with-pgtk \
+ --with-xft \
+ --with-jpeg=yes \
+ --with-tiff=no
+}
+
+_build_pgtk_nativecomp() {
+ _build_variant pgtk-nativecomp \
+ --with-x-toolkit=gtk3 \
+ --with-pgtk \
+ --with-xft \
+ --with-jpeg=yes \
+ --with-tiff=no \
+ --with-native-compilation=aot
+}
+
_build_nox() {
_build_variant nox \
--without-sound \
@@ -122,74 +163,89 @@ _build_nox() {
}
build() {
- mkdir -p nox
- mv ./* nox || true
-
- case "$CARCH" in
- riscv64|s390x)
- # limited by librsvg (rust)
- _build_nox
- ;;
- *)
- cp -a nox x11
- cp -a nox x11-nativecomp
- cp -a nox gtk3
- _build_nox
- _build_x11
- _build_x11_nativecomp
- _build_gtk3
- ;;
- esac
+ _build_nox
+ _build_x11
+ _build_x11_nativecomp
+ _build_gtk3
+ _build_gtk3_nativecomp
+ _build_pgtk
+ _build_pgtk_nativecomp
}
package() {
- mkdir -p "$pkgdir"
+ make DESTDIR="$pkgdir" install -C gtk3
+
+ cd "$pkgdir"
+ # resolve conflict with ctags package
+ mv usr/bin/ctags \
+ usr/bin/ctags.emacs
+ mv usr/share/man/man1/ctags.1.gz \
+ usr/share/man/man1/ctags.emacs.1.gz
+
+ # remove things that are per-subpackage and not common
+ rm -r \
+ usr/bin/emacs \
+ usr/bin/emacsclient \
+ usr/bin/emacs-$pkgver \
+ usr/lib/emacs/$pkgver/*/emacs*.pdmp \
+ usr/lib/systemd \
+ usr/share/emacs/$pkgver/lisp \
+ usr/share/emacs/$pkgver/site-lisp
+
+ # fix perms on /var/games
+ chmod 775 var/games
+ chmod 775 var/games/emacs
+ chmod 664 var/games/emacs/*
+ chown -R root:games var/games
+
+ # fix user/root permissions on usr/share files
+ find usr/share/emacs/ -exec chown root:root {} \;
+ find usr/lib -perm -g+s,g+x ! -type d -exec chmod g-s {} \;
}
doc() {
- depends=""
- mkdir -p "$subpkgdir"
- cd "$builddir"/"$_docdir"
- make DESTDIR="$subpkgdir" install
- # remove conflict with ctags package
- mv "$subpkgdir"/usr/share/man/man1/ctags.1.gz "$subpkgdir"/usr/share/man/man1/ctags.emacs.1.gz
- # only keep info and man directories, all other is in the specific package
- rm -rf "${subpkgdir:?}"/usr/bin \
- "$subpkgdir"/usr/lib \
- "$subpkgdir"/usr/share/appdata \
- "$subpkgdir"/usr/share/applications \
- "$subpkgdir"/usr/share/emacs \
- "$subpkgdir"/usr/share/icons \
- "${subpkgdir:?}"/var \
- "$subpkgdir"/usr/lib/systemd
+ default_doc
+ pkgdesc="$_pkgdesc (documentation)"
}
_subpackage() {
cd "$builddir/$1"
make DESTDIR="$subpkgdir" install
- # remove conflict with ctags package
- mv "$subpkgdir"/usr/bin/ctags "$subpkgdir"/usr/bin/ctags.emacs
- rm -rf "$subpkgdir"/usr/share/info \
- "$subpkgdir"/usr/share/man
+ cd "$subpkgdir"
- # fix user/root permissions on usr/share files
- find "$subpkgdir"/usr/share/emacs/ -exec chown root:root {} \;
- find "$subpkgdir"/usr/lib -perm -g+s,g+x ! -type d -exec chmod g-s {} \;
- # fix perms on /var/games
- chmod 775 "$subpkgdir"/var/games
- chmod 775 "$subpkgdir"/var/games/emacs
- chmod 664 "$subpkgdir"/var/games/emacs/*
- chown -R root:games "$subpkgdir"/var/games
+ # remove things that are in -common
+ rm -rf \
+ usr/bin/ctags \
+ usr/bin/ebrowse \
+ usr/bin/etags \
+ usr/include \
+ usr/lib/emacs/$pkgver/*/hexl \
+ usr/lib/emacs/$pkgver/*/movemail \
+ usr/lib/emacs/$pkgver/*/rcs2log \
+ usr/lib/emacs/$pkgver/*/update-game-score \
+ usr/lib/systemd \
+ usr/share/applications \
+ usr/share/emacs/$pkgver/etc \
+ usr/share/icons \
+ usr/share/info \
+ usr/share/man \
+ usr/share/metainfo \
+ var/games
- # remove useless systemd user file
- rm -rf "$subpkgdir"/usr/lib/systemd
+ # fix user/root permissions on usr/share files
+ find usr/share/emacs/ -exec chown root:root {} \;
+ find usr/lib -perm -g+s,g+x ! -type d -exec chmod g-s {} \;
}
nox() {
- pkgdesc="$pkgdesc - without X11"
+ pkgdesc="$_pkgdesc - non-graphical"
depends="
+ $pkgname=$pkgver-r$pkgrel
!emacs-gtk3
+ !emacs-gtk3-nativecomp
+ !emacs-pgtk
+ !emacs-pgtk-nativecomp
!emacs-x11
!emacs-x11-nativecomp
"
@@ -197,9 +253,13 @@ nox() {
}
x11() {
- pkgdesc="$pkgdesc - with X11"
+ pkgdesc="$_pkgdesc - with X11"
depends="
+ $pkgname=$pkgver-r$pkgrel
!emacs-gtk3
+ !emacs-gtk3-nativecomp
+ !emacs-pgtk
+ !emacs-pgtk-nativecomp
!emacs-nox
!emacs-x11-nativecomp
desktop-file-utils
@@ -209,9 +269,13 @@ x11() {
}
x11_nativecomp() {
- pkgdesc="$pkgdesc - with X11 and native compilation"
+ pkgdesc="$_pkgdesc - with X11 and native compilation"
depends="
+ $pkgname=$pkgver-r$pkgrel
!emacs-gtk3
+ !emacs-gtk3-nativecomp
+ !emacs-pgtk
+ !emacs-pgtk-nativecomp
!emacs-nox
!emacs-x11
desktop-file-utils
@@ -221,8 +285,12 @@ x11_nativecomp() {
}
gtk3() {
- pkgdesc="$pkgdesc - with GTK3"
+ pkgdesc="$_pkgdesc - with GTK3"
depends="
+ $pkgname=$pkgver-r$pkgrel
+ !emacs-gtk3-nativecomp
+ !emacs-pgtk
+ !emacs-pgtk-nativecomp
!emacs-nox
!emacs-x11
!emacs-x11-nativecomp
@@ -232,7 +300,55 @@ gtk3() {
_subpackage gtk3
}
+gtk3_nativecomp() {
+ pkgdesc="$_pkgdesc - with GTK3 and native compilation"
+ depends="
+ $pkgname=$pkgver-r$pkgrel
+ !emacs-gtk3
+ !emacs-pgtk
+ !emacs-pgtk-nativecomp
+ !emacs-nox
+ !emacs-x11
+ !emacs-x11-nativecomp
+ desktop-file-utils
+ hicolor-icon-theme
+ "
+ _subpackage gtk3-nativecomp
+}
+
+pgtk() {
+ pkgdesc="$_pkgdesc - with pure GTK"
+ depends="
+ $pkgname=$pkgver-r$pkgrel
+ !emacs-gtk3
+ !emacs-gtk3-nativecomp
+ !emacs-pgtk-nativecomp
+ !emacs-nox
+ !emacs-x11
+ !emacs-x11-nativecomp
+ desktop-file-utils
+ hicolor-icon-theme
+ "
+ _subpackage pgtk
+}
+
+pgtk_nativecomp() {
+ pkgdesc="$_pkgdesc - with pure GTK and native compilation"
+ depends="
+ $pkgname=$pkgver-r$pkgrel
+ !emacs-gtk3
+ !emacs-gtk3-nativecomp
+ !emacs-pgtk
+ !emacs-nox
+ !emacs-x11
+ !emacs-x11-nativecomp
+ desktop-file-utils
+ hicolor-icon-theme
+ "
+ _subpackage pgtk-nativecomp
+}
+
sha512sums="
-c146ff7086aba49fa6c18adf4e485a59eb4c6525fddb9d385034446830b8bb0ac9e6fb76e7b6d94a9fddc41643415f36acad57a1ae16a841c97f61bc211459d9 emacs-28.1.tar.xz
+efaecfc46a0b88f61de477d92c08ee592b8838e6c34724151a3b1502efa7ebd4d4837733c694807e6de1ba4b8d37d2ec382c6bb2ed000b67ad8f0e11c7df2a6b emacs-29.3.tar.xz
5a2d1d10d66fd335b16d9f2d6d1e45e093067db87f8ef2d14a8c921cc94b3e226310c7cc691d19eb91eaf16de9ae4f20ff8be3596a4906b0514fa5f098328d97 no-git-repo.patch
"