# Maintainer: stef # Contributor: Timo Teräs setvar pkgname = 'emacs' setvar pkgver = '25.3' setvar pkgrel = '0' setvar pkgdesc = ""The extensible, customizable, self-documenting real-time display editor"" setvar arch = ""all !aarch64"" setvar depends = ""emacs-nox"" setvar url = ""http://www.gnu.org/software/emacs/emacs.html"" setvar license = ""GPL3"" setvar makedepends = ""autoconf automake linux-headers paxmark gawk librsvg-dev giflib-dev libxpm-dev gtk+2.0-dev gconf-dev alsa-lib-dev glib-dev fontconfig-dev libpng-dev libxml2-dev pango-dev tiff-dev libjpeg-turbo-dev ncurses-dev ncurses-libs gnutls-dev libxaw-dev"" setvar subpackages = ""$pkgname-doc $pkgname-nox $pkgname-x11 $pkgname-gtk2"" setvar source = ""ftp://ftp.gnu.org/gnu/emacs/emacs-$pkgver.tar.xz gamedir.patch noaslr-dump.patch musl.patch"" proc prepare { cd "$builddir/$1" default_prepare || return 1 ./autogen.sh || return 1 } setvar builddir = ""$srcdir/emacs-$pkgver"" proc _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 } proc _build_x11 { _build_variant x11 \ --with-x-toolkit=athena \ --without-toolkit-scroll-bars \ --without-dbus \ --with-xft \ --with-jpeg=yes \ --with-tiff=yes } proc _build_gtk2 { _build_variant gtk2 \ --with-x-toolkit=gtk2 \ --with-xft \ --with-jpeg=yes \ --with-tiff=no } proc _build_nox { _build_variant nox \ --without-sound \ --without-x \ --without-file-notification } proc build { cd $builddir mkdir -p nox mv * nox || true cp -a nox gtk2 cp -a nox x11 _build_x11 || return 1 _build_nox || return 1 _build_gtk2 } proc package { mkdir -p $pkgdir } proc 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 } proc _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 } proc nox { setvar pkgdesc = ""$pkgdesc - without X11"" setvar depends = ""!emacs-x11 !emacs-gtk2"" _subpackage nox } proc x11 { setvar pkgdesc = ""$pkgdesc - with X11"" setvar depends = ""!emacs-nox !emacs-gtk2 hicolor-icon-theme desktop-file-utils"" _subpackage x11 } proc gtk2 { setvar pkgdesc = ""$pkgdesc - with GTK2"" setvar depends = ""!emacs-nox !emacs-x11 hicolor-icon-theme desktop-file-utils"" _subpackage gtk2 } setvar sha512sums = ""1cce656451b6ca8502ebb229e88bd3ef48b7f9444a10eeac4ea43bd5491b2efacd641dfa35227a33362c3866493d3449cf1df81606563eef44bba0ed668e457f emacs-25.3.tar.xz 8898f309aeaf274366849bd5c56c8e2a1be94dfee2f01b20f1700bf26203f49b9600237e5090fc3d8eaad3ea246f803ffd493d0c04cb3512084a4e3bf58f8f5e gamedir.patch d3a30a9bf7ef7349806a75ee919d6683a8000eb70f4c3040d149bd8911dc95b931a05c7cbf9f5b93176940ad87520dbb2ddef3b4136b0d5b140de0cdbc4b7a8f noaslr-dump.patch 4ec078f970c2d0ad9b082a613e7c7e64e40f37eaee96e67ab9b2e467595c74533f94ced74f6753e393a9c0ead88fad75adcfdd31be4295f5763292a6dd846fe8 musl.patch""