Gentoo Archives: gentoo-commits

From: Mats Lidell <matsl@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-editors/xemacs/
Date: Sat, 16 Oct 2021 18:11:50
Message-Id: 1634407897.227ac5778ca351f1e2e3eaf62747059858f08015.matsl@gentoo
1 commit: 227ac5778ca351f1e2e3eaf62747059858f08015
2 Author: Mats Lidell <matsl <AT> gentoo <DOT> org>
3 AuthorDate: Sat Oct 16 17:37:31 2021 +0000
4 Commit: Mats Lidell <matsl <AT> gentoo <DOT> org>
5 CommitDate: Sat Oct 16 18:11:37 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=227ac577
7
8 app-editors/xemacs: remove newgc, EAPI 8
9
10 Signed-off-by: Mats Lidell <matsl <AT> gentoo.org>
11
12 app-editors/xemacs/xemacs-21.5.34-r7.ebuild | 259 ++++++++++++++++++++++++++++
13 1 file changed, 259 insertions(+)
14
15 diff --git a/app-editors/xemacs/xemacs-21.5.34-r7.ebuild b/app-editors/xemacs/xemacs-21.5.34-r7.ebuild
16 new file mode 100644
17 index 00000000000..c44dccad1ab
18 --- /dev/null
19 +++ b/app-editors/xemacs/xemacs-21.5.34-r7.ebuild
20 @@ -0,0 +1,259 @@
21 +# Copyright 1999-2021 Gentoo Authors
22 +# Distributed under the terms of the GNU General Public License v2
23 +
24 +# Note: xemacs currently does not work with position independent code
25 +# so the build forces the use of the -no-pie option
26 +
27 +EAPI=8
28 +
29 +inherit flag-o-matic xdg-utils desktop
30 +
31 +DESCRIPTION="highly customizable open source text editor and application development system"
32 +HOMEPAGE="http://www.xemacs.org/"
33 +SRC_URI="http://ftp.xemacs.org/xemacs-21.5/${P}.tar.gz
34 + http://www.malfunction.de/afterstep/files/NeXT_XEmacs.tar.gz"
35 +
36 +LICENSE="GPL-3+"
37 +SLOT="0"
38 +KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 -riscv ~sparc ~x86"
39 +IUSE="alsa debug eolconv gif gpm pop postgres ldap xface nas dnd X jpeg tiff png mule motif freewnn xft xim athena neXt Xaw3d gdbm berkdb"
40 +
41 +X_DEPEND="x11-libs/libXt x11-libs/libXmu x11-libs/libXext x11-misc/xbitmaps"
42 +
43 +RDEPEND="
44 + berkdb? ( >=sys-libs/db-4:= !!<sys-libs/db-4 )
45 + gdbm? ( >=sys-libs/gdbm-1.8.3[berkdb(+)] )
46 + >=sys-libs/zlib-1.1.4
47 + >=dev-libs/openssl-0.9.6:0
48 + >=media-libs/audiofile-0.2.3
49 + gpm? ( >=sys-libs/gpm-1.19.6 )
50 + postgres? ( dev-db/postgresql:= )
51 + ldap? ( net-nds/openldap )
52 + alsa? ( media-libs/alsa-lib )
53 + nas? ( media-libs/nas )
54 + X? ( $X_DEPEND !Xaw3d? ( !neXt? ( x11-libs/libXaw ) ) )
55 + dnd? ( x11-libs/dnd )
56 + motif? ( >=x11-libs/motif-2.3:0[xft=] )
57 + athena? ( x11-libs/libXaw )
58 + Xaw3d? ( x11-libs/libXaw3d )
59 + xft? ( media-libs/freetype:2 x11-libs/libXft x11-libs/libXrender >=media-libs/fontconfig-2.5.0 )
60 + neXt? ( x11-libs/neXtaw )
61 + xface? ( media-libs/compface )
62 + tiff? ( media-libs/tiff:0 )
63 + png? ( >=media-libs/libpng-1.2:0 )
64 + jpeg? ( virtual/jpeg:0 )
65 + freewnn? ( app-i18n/freewnn )
66 + >=sys-libs/ncurses-5.2:=
67 + >=app-eselect/eselect-emacs-1.15"
68 +
69 +DEPEND="${RDEPEND}
70 + virtual/pkgconfig"
71 +
72 +PDEPEND="app-xemacs/xemacs-base
73 + mule? ( app-xemacs/mule-base )"
74 +
75 +src_unpack() {
76 + default_src_unpack
77 +
78 + use neXt && unpack NeXT_XEmacs.tar.gz
79 +}
80 +
81 +src_prepare() {
82 + use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/
83 + find "${S}"/lisp -name '*.elc' -exec rm {} \; || die
84 + eapply "${FILESDIR}/${P}-ncurses-tinfo.patch"
85 + eapply "${FILESDIR}/${P}-gcc5.patch"
86 + eapply "${FILESDIR}/${P}-glibc-macro.patch"
87 + eapply "${FILESDIR}/${P}-as-needed.patch"
88 + eapply "${FILESDIR}/${P}-configure-libc-version.patch"
89 + eapply "${FILESDIR}/${P}-ar.patch"
90 + eapply "${FILESDIR}/${P}-strsignal.patch"
91 + eapply "${FILESDIR}/${P}-process-test-qa.patch"
92 +
93 + eapply_user
94 +
95 + # Some binaries and man pages are installed under suffixed names
96 + # to avoid collions with their GNU Emacs counterparts (see below).
97 + # Fix internal filename references.
98 + sed -i -e 's/exec gnuclient/&-xemacs/' lib-src/gnudoit || die
99 + sed -i -e '/^\.so/s/etags/&-xemacs/' etc/ctags.1 || die
100 + sed -i -e '/^\.so/s/gnuserv/&-xemacs/' etc/gnu{client,doit,attach}.1 || die
101 +}
102 +
103 +src_configure() {
104 + local myconf=""
105 +
106 + # bug #639642
107 + test-flags -no-pie >/dev/null && append-flags -no-pie
108 + filter-flags -pie
109 +
110 + if use X; then
111 +
112 + myconf="${myconf} --with-widgets=athena"
113 + myconf="${myconf} --with-dialogs=athena"
114 + myconf="${myconf} --with-menubars=lucid"
115 + myconf="${myconf} --with-scrollbars=lucid"
116 + if use motif ; then
117 + myconf="--with-widgets=motif"
118 + myconf="${myconf} --with-dialogs=motif"
119 + myconf="${myconf} --with-scrollbars=motif"
120 + myconf="${myconf} --with-menubars=lucid"
121 + fi
122 + if use athena or use Xaw3d ; then
123 + myconf="--with-scrollbars=athena"
124 + fi
125 +
126 + if use Xaw3d; then
127 + myconf="${myconf} --with-athena=3d"
128 + elif use neXt; then
129 + myconf="${myconf} --with-athena=next"
130 + else
131 + myconf="${myconf} --with-athena=xaw"
132 + fi
133 +
134 + use dnd && myconf="${myconf} --with-dragndrop --with-offix"
135 +
136 + myconf="${myconf} $(use_with tiff )"
137 + myconf="${myconf} $(use_with png )"
138 + myconf="${myconf} $(use_with jpeg )"
139 + myconf="${myconf} $(use_with xface )"
140 +
141 + use xft && myconf="${myconf} --with-xft=emacs,tabs,menubars,gauges" ||
142 + myconf="${myconf} --with-xft=no"
143 +
144 + else
145 + myconf="${myconf}
146 + --without-x
147 + --without-xpm
148 + --without-dragndrop
149 + --with-xft=no
150 + --with-gif=no"
151 + fi
152 +
153 + if use mule ; then
154 + myconf="${myconf} --with-mule"
155 +
156 + if use xim ; then
157 + if use motif ; then
158 + myconf="${myconf} --with-xim=motif"
159 + else
160 + myconf="${myconf} --with-xim=xlib"
161 + fi
162 + else
163 + myconf="${myconf} --with-xim=no"
164 + fi
165 +
166 + myconf="${myconf} $(use_with freewnn wnn )"
167 + fi
168 +
169 + # This determines the type of sounds we are playing
170 + local soundconf="native"
171 +
172 + # This determines how these sounds should be played
173 + use nas && soundconf="${soundconf},nas"
174 + use alsa && soundconf="${soundconf},alsa"
175 +
176 + myconf="${myconf} --with-sound=${soundconf}"
177 +
178 + if use gdbm || use berkdb ; then
179 + use gdbm && mydb="gdbm"
180 + use berkdb && mydb="${mydb},berkdb"
181 +
182 + myconf="${myconf} --with-database=${mydb}"
183 + else
184 + myconf="${myconf} --without-database"
185 + fi
186 +
187 + use debug && myconf="${myconf} --with-debug" ||
188 + myconf="${myconf} --with-optimization"
189 +
190 + econf ${myconf} \
191 + $(use_with gif ) \
192 + $(use_with gpm ) \
193 + $(use_with postgres postgresql ) \
194 + $(use_with ldap ) \
195 + $(use_with eolconv file-coding ) \
196 + $(use_with pop ) \
197 + --prefix=/usr \
198 + --without-canna \
199 + --with-ncurses \
200 + --with-msw=no \
201 + --with-mail-locking=flock \
202 + --with-site-lisp=yes \
203 + --with-site-modules=yes \
204 + --with-system-malloc \
205 + --enable-option-checking=no \
206 + --with-last-packages=/usr/lib/xemacs
207 +}
208 +
209 +src_compile() {
210 + emake EMACSLOADPATH="${S}"/lisp
211 +}
212 +
213 +src_install() {
214 + emake prefix="${ED}"/usr \
215 + mandir="${ED}"/usr/share/man/man1 \
216 + infodir="${ED}"/usr/share/info \
217 + libdir="${ED}"/usr/$(get_libdir) \
218 + datadir="${ED}"/usr/share \
219 + install
220 +
221 + # Rename some applications installed in bin so that it is clear
222 + # which application installed them and so that conflicting
223 + # packages (emacs) can't clobber the actual applications.
224 + # Addresses bug #62991.
225 + for i in b2m ctags etags gnuclient gnudoit gnuattach; do
226 + mv "${ED}"/usr/bin/${i} "${ED}"/usr/bin/${i}-xemacs || die "mv ${i} failed"
227 + done
228 +
229 + # rename man pages
230 + for i in ctags etags gnuserv gnuclient gnudoit gnuattach; do
231 + mv "${ED}"/usr/share/man/man1/${i}{,-xemacs}.1 || die "mv ${i}.1 failed"
232 + done
233 +
234 + # install base packages directories
235 + dodir /usr/lib/xemacs/xemacs-packages/
236 + dodir /usr/lib/xemacs/site-packages/
237 + dodir /usr/lib/xemacs/site-modules/
238 + dodir /usr/lib/xemacs/site-lisp/
239 +
240 + if use mule;
241 + then
242 + dodir /usr/lib/xemacs/mule-packages
243 + fi
244 +
245 + # remove extraneous info files
246 + cd "${ED}"/usr/share/info
247 + rm -f dir info.info texinfo* termcap* standards*
248 +
249 + cd "${S}"
250 + dodoc CHANGES-* ChangeLog INSTALL Installation PROBLEMS README*
251 +
252 + newicon "${S}"/etc/${PN}-icon.xpm ${PN}.xpm
253 +
254 + domenu "${FILESDIR}"/${PN}.desktop
255 +}
256 +
257 +pkg_postinst() {
258 + eselect emacs update ifunset
259 + eselect gnuclient update ifunset
260 + xdg_desktop_database_update
261 +
262 + einfo "If you are upgrading from XEmacs 21.4 you should note the following"
263 + einfo "incompatibilities:"
264 + einfo "- Mule-UCS is no longer supported due to proper UTF-8 support in XEmacs 21.5"
265 + einfo "- The X resource class has changed from Emacs to XEmacs,"
266 + einfo " settings in your .Xdefaults file should be updated accordingly."
267 +
268 + if use xft;
269 + then
270 + einfo "You have enabled Xft font support. Xft requires font names to be provided"
271 + einfo "in a different way, so you may need to adjust your .Xdefaults accordingly."
272 + fi
273 +}
274 +
275 +pkg_postrm() {
276 + eselect emacs update ifunset
277 + eselect gnuclient update ifunset
278 + xdg_desktop_database_update
279 +}