blob: 6b79762b9ba2d8cc70182b921576f7bf09530b9e (
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
|
# Maintainer: stef <l0ls0fo2i@ctrlc.hu>
# Contributor: Timo Teräs <timo.teras@iki.fi>
pkgname=emacs
pkgver=26.3
pkgrel=2
pkgdesc="The extensible, customizable, self-documenting real-time display editor"
arch="all !s390x !mips !mips64" # librsvg
depends="emacs-nox"
url="https://www.gnu.org/software/emacs/emacs.html"
license="GPL-3.0-or-later"
makedepends="autoconf automake linux-headers paxmark gawk
librsvg-dev giflib-dev libxpm-dev gtk+2.0-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"
subpackages="$pkgname-doc $pkgname-nox $pkgname-x11 $pkgname-gtk2"
source="https://ftp.gnu.org/gnu/emacs/emacs-$pkgver.tar.xz
gamedir.patch"
prepare() {
cd "$builddir/$1"
default_prepare
./autogen.sh
}
_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 \
"${@}"
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() {
mkdir -p nox
mv * nox || true
cp -a nox gtk2
cp -a nox x11
_build_x11
_build_nox
_build_gtk2
}
package() {
mkdir -p "$pkgdir"
}
doc() {
depends=""
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 \
"$subpkgdir"/usr/lib/systemd
}
_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
}
sha512sums="4d5a4319253afb081e105a3697eb6eeb8d8a0da18cd41346e376ca5af1e180a26e641f76c64fad1b0253168f14a511f0a4d9d4141524fb1cf4d04f25b05a76e9 emacs-26.3.tar.xz
8898f309aeaf274366849bd5c56c8e2a1be94dfee2f01b20f1700bf26203f49b9600237e5090fc3d8eaad3ea246f803ffd493d0c04cb3512084a4e3bf58f8f5e gamedir.patch"
|