# Maintainer: stef # Contributor: Timo Teräs pkgname=emacs pkgver=25.1 pkgrel=1 pkgdesc="The extensible, customizable, self-documenting real-time display editor" arch="all !aarch64" depends="emacs-nox" url="http://www.gnu.org/software/emacs/emacs.html" license="GPL3" makedepends="autoconf automake linux-headers paxmark gawk librsvg-dev giflib-dev libxpm-dev gtk+2.0-dev gconf-dev alsa-lib-dev imagemagick-dev glib-dev fontconfig-dev libpng-dev libxml2-dev pango-dev tiff-dev libjpeg-turbo-dev ncurses-dev ncurses-libs gnutls-dev libxaw-dev" subpackages="$pkgname-doc $pkgname-nox $pkgname-x11 $pkgname-gtk2" source="ftp://ftp.gnu.org/gnu/emacs/emacs-$pkgver.tar.xz gamedir.patch noaslr-dump.patch musl.patch" prepare() { cd "$builddir/$1" default_prepare || return 1 ./autogen.sh || return 1 } builddir="$srcdir/emacs-$pkgver" _build_variant() { cd "$builddir/$1" shift CFLAGS=-fno-pie \ LDFLAGS=-no-pie \ ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --libexecdir=/usr/lib \ --localstatedir=/var \ --without-makeinfo \ --with-gameuser=:games \ "${@}" \ || return 1 make } _build_x11() { _build_variant x11 \ --with-x-toolkit=athena \ --without-toolkit-scroll-bars \ --without-dbus \ --with-xft \ --with-jpeg=yes \ --with-tiff=yes } _build_gtk2() { _build_variant gtk2 \ --with-x-toolkit=gtk2 \ --with-xft \ --with-jpeg=yes \ --with-tiff=no } _build_nox() { _build_variant nox \ --without-sound \ --without-x \ --without-file-notification } build() { cd "$builddir" mkdir -p nox mv * nox cp -a nox gtk2 cp -a nox x11 _build_x11 || return 1 _build_nox || return 1 _build_gtk2 } package() { mkdir -p "$pkgdir" } doc() { mkdir -p "$subpkgdir" cd "$builddir/gtk2" 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 } _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 # 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 } nox() { pkgdesc="$pkgdesc - without X11" depends="!emacs-x11 !emacs-gtk2" _subpackage nox } x11() { pkgdesc="$pkgdesc - with X11" depends="!emacs-nox !emacs-gtk2 hicolor-icon-theme desktop-file-utils" _subpackage x11 } gtk2() { pkgdesc="$pkgdesc - with GTK2" depends="!emacs-nox !emacs-x11 hicolor-icon-theme desktop-file-utils" _subpackage gtk2 } md5sums="4f3d42fb22823a659e16bfa89078a74c emacs-25.1.tar.xz c95bf3abad87ec6c74488ff1b7062dfa gamedir.patch 96eb456995fe4dfa7530bee8b54f1bd3 noaslr-dump.patch eb965a14fc23c23d67e6210386147c67 musl.patch" sha256sums="19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33 emacs-25.1.tar.xz e8e43127bfed67ce9e4ba1fcb9bf2f173771a667965f0bf75a26b5e43e3d602b gamedir.patch f66b53fca3cd41b36943484f50e37a913be1f126a819b41b4d1b9a0b709c5979 noaslr-dump.patch c53b38298af75b327e6bfcfc93f1de7815ad361d08ace03a68c5adbf63127297 musl.patch" sha512sums="67442b9027869c44430e1d4c3e92e74601e667c9aef7e3da16f20a562b5e3fa8c64efdd4b4055919550523093d32eac73c094b644f6573fed41b4e0938668922 emacs-25.1.tar.xz 8898f309aeaf274366849bd5c56c8e2a1be94dfee2f01b20f1700bf26203f49b9600237e5090fc3d8eaad3ea246f803ffd493d0c04cb3512084a4e3bf58f8f5e gamedir.patch d3a30a9bf7ef7349806a75ee919d6683a8000eb70f4c3040d149bd8911dc95b931a05c7cbf9f5b93176940ad87520dbb2ddef3b4136b0d5b140de0cdbc4b7a8f noaslr-dump.patch 4ec078f970c2d0ad9b082a613e7c7e64e40f37eaee96e67ab9b2e467595c74533f94ced74f6753e393a9c0ead88fad75adcfdd31be4295f5763292a6dd846fe8 musl.patch"