summaryrefslogtreecommitdiffstats
path: root/community/emacs/APKBUILD
blob: aea3af78ada4156c14c2b9d3ea788d41e10d4b88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# Maintainer: stef <l0ls0fo2i@ctrlc.hu>
# Contributor: Timo Teräs <timo.teras@iki.fi>

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"