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/files/, app-editors/xemacs/
Date: Mon, 03 Apr 2017 20:56:20
Message-Id: 1491252804.7bb54c579bb0a67bd3b5ea74fb676a74bed29f32.matsl@gentoo
1 commit: 7bb54c579bb0a67bd3b5ea74fb676a74bed29f32
2 Author: Mats Lidell <matsl <AT> gentoo <DOT> org>
3 AuthorDate: Sun Apr 2 22:37:29 2017 +0000
4 Commit: Mats Lidell <matsl <AT> gentoo <DOT> org>
5 CommitDate: Mon Apr 3 20:53:24 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7bb54c57
7
8 app-editors/xemacs: Bump to 21.4.24-r1.
9
10 Remove deprecation warnings. Solves bug #552044 in a better way.
11
12 Package-Manager: Portage-2.3.3, Repoman-2.3.1
13
14 .../xemacs/files/xemacs-21.4.24-glibc-macro.patch | 28 +++
15 app-editors/xemacs/xemacs-21.4.24-r1.ebuild | 243 +++++++++++++++++++++
16 2 files changed, 271 insertions(+)
17
18 diff --git a/app-editors/xemacs/files/xemacs-21.4.24-glibc-macro.patch b/app-editors/xemacs/files/xemacs-21.4.24-glibc-macro.patch
19 new file mode 100644
20 index 00000000000..62d26ccc053
21 --- /dev/null
22 +++ b/app-editors/xemacs/files/xemacs-21.4.24-glibc-macro.patch
23 @@ -0,0 +1,28 @@
24 +Don't define deprecated glibc symbol
25 +
26 +Avoid defining the deprecated symbols _BSD_SOURCE and _SVID_SOURCE
27 +that xmkmf thinks are needed to compile X programs.
28 +
29 +diff -r 09d56098ea2c -r 32a8151f8af7 configure.in
30 +--- a/configure.in Sat Feb 11 01:24:06 2017 +0100
31 ++++ b/configure.in Sat Feb 11 01:59:40 2017 +0100
32 +@@ -2868,10 +2868,15 @@
33 + * ) val=1 ;;
34 + esac
35 + dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above.
36 +- if grep "^#define $sym " confdefs.h >/dev/null; then :; else
37 +- if test "$val" = "1"
38 +- then AC_DEFINE_UNQUOTED($sym)
39 +- else AC_DEFINE_UNQUOTED($sym,$val)
40 ++dnl Also, glibc doesn't like two of the traditional POSIX macros that xmkmf
41 ++dnl likes us to define; ignore them if appropriate.
42 ++ if grep "^#define $sym " confdefs.h >/dev/null || \
43 ++ test "$have_glibc" = "yes" -a "$sym" = "_BSD_SOURCE" || \
44 ++ test "$have_glibc" = "yes" -a "$sym" = "_SVID_SOURCE";
45 ++ then :; else
46 ++ if test "$val" = "1"
47 ++ then AC_DEFINE_UNQUOTED($sym)
48 ++ else AC_DEFINE_UNQUOTED($sym,$val)
49 + fi
50 + fi ;;
51 + esac
52
53 diff --git a/app-editors/xemacs/xemacs-21.4.24-r1.ebuild b/app-editors/xemacs/xemacs-21.4.24-r1.ebuild
54 new file mode 100644
55 index 00000000000..e9e6f8a04e2
56 --- /dev/null
57 +++ b/app-editors/xemacs/xemacs-21.4.24-r1.ebuild
58 @@ -0,0 +1,243 @@
59 +# Copyright 1999-2017 Gentoo Foundation
60 +# Distributed under the terms of the GNU General Public License v2
61 +
62 +# Note: xemacs currently does not work with a hardened profile. If you
63 +# want to use xemacs on a hardened profile then compile with the
64 +# -nopie flag in CFLAGS or help fix bug #75028.
65 +
66 +EAPI="5"
67 +
68 +WANT_AUTOCONF="2.1"
69 +inherit autotools eutils flag-o-matic toolchain-funcs
70 +
71 +DESCRIPTION="highly customizable open source text editor and application development system"
72 +HOMEPAGE="http://www.xemacs.org/"
73 +SRC_URI="http://ftp.xemacs.org/xemacs-21.4/${P}.tar.gz
74 + http://www.malfunction.de/afterstep/files/NeXT_XEmacs.tar.gz"
75 +
76 +LICENSE="GPL-2+"
77 +SLOT="0"
78 +KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
79 +IUSE="eolconv gif gpm pop postgres ldap xface nas dnd X jpeg tiff png mule motif freewnn canna xim athena neXt Xaw3d gdbm berkdb"
80 +
81 +X_DEPEND="x11-libs/libXt x11-libs/libXmu x11-libs/libXext x11-misc/xbitmaps"
82 +
83 +RDEPEND="
84 + berkdb? ( sys-libs/db:= )
85 + gdbm? ( >=sys-libs/gdbm-1.8.3 )
86 + >=sys-libs/zlib-1.1.4
87 + >=dev-libs/openssl-0.9.6:0
88 + >=media-libs/audiofile-0.2.3
89 + gpm? ( >=sys-libs/gpm-1.19.6 )
90 + postgres? ( dev-db/postgresql:= )
91 + ldap? ( net-nds/openldap )
92 + nas? ( media-libs/nas )
93 + X? ( $X_DEPEND !Xaw3d? ( !neXt? ( x11-libs/libXaw ) ) )
94 + dnd? ( x11-libs/dnd )
95 + motif? ( >=x11-libs/motif-2.3:0 )
96 + athena? ( x11-libs/libXaw )
97 + Xaw3d? ( x11-libs/libXaw3d )
98 + neXt? ( x11-libs/neXtaw )
99 + xface? ( media-libs/compface )
100 + tiff? ( media-libs/tiff:0 )
101 + png? ( >=media-libs/libpng-1.2:0 )
102 + jpeg? ( virtual/jpeg:0 )
103 + canna? ( app-i18n/canna )
104 + !amd64? ( freewnn? ( app-i18n/freewnn ) )
105 + >=sys-libs/ncurses-5.2:=
106 + >=app-eselect/eselect-emacs-1.15"
107 +
108 +DEPEND="${RDEPEND}
109 + >=sys-apps/texinfo-5"
110 +
111 +PDEPEND="app-xemacs/xemacs-base
112 + mule? ( app-xemacs/mule-base )"
113 +
114 +src_unpack() {
115 + unpack ${P}.tar.gz
116 + use neXt && unpack NeXT_XEmacs.tar.gz
117 +}
118 +
119 +src_prepare() {
120 + # see bug 58350, 102540 and 143580
121 + epatch "${FILESDIR}"/xemacs-21.4.19-db.patch
122 + # see bug 576512
123 + epatch "${FILESDIR}"/xemacs-21.4.24-gcc5.patch
124 + epatch "${FILESDIR}"/xemacs-21.4.24-glibc-macro.patch
125 +
126 + # Some binaries and man pages are installed under suffixed names
127 + # to avoid collions with their GNU Emacs counterparts (see below).
128 + # Fix internal filename references.
129 + sed -i -e 's/exec gnuclient/&-xemacs/' lib-src/gnudoit || die
130 + sed -i -e '/^\.so/s/etags/&-xemacs/' etc/ctags.1 || die
131 + sed -i -e '/^\.so/s/gnuserv/&-xemacs/' etc/gnu{client,doit,attach}.1 || die
132 +
133 + # Run autoconf. XEmacs tries to be smart by providing a stub
134 + # configure.ac file for autoconf 2.59 but this throws our
135 + # autotools eclass so it must be removed first.
136 + rm "${S}"/configure.ac || die
137 + eautoconf
138 +
139 + use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/
140 +}
141 +
142 +src_configure() {
143 + local myconf=""
144 +
145 + if use X; then
146 +
147 + myconf="${myconf} --with-widgets=athena"
148 + myconf="${myconf} --with-dialogs=athena"
149 + myconf="${myconf} --with-menubars=lucid"
150 + myconf="${myconf} --with-scrollbars=lucid"
151 + if use motif ; then
152 + myconf="--with-widgets=motif"
153 + myconf="${myconf} --with-dialogs=motif"
154 + myconf="${myconf} --with-scrollbars=motif"
155 + myconf="${myconf} --with-menubars=lucid"
156 + fi
157 + if use athena ; then
158 + myconf="--with-scrollbars=athena"
159 + fi
160 +
161 + if use Xaw3d; then
162 + myconf="${myconf} --with-athena=3d"
163 + elif use neXt; then
164 + myconf="${myconf} --with-athena=next"
165 + else
166 + myconf="${myconf} --with-athena=xaw"
167 + fi
168 +
169 + use dnd && myconf="${myconf} --with-dragndrop --with-offix"
170 +
171 + myconf="${myconf} $(use_with tiff ) $(use_with png )"
172 + myconf="${myconf} $(use_with jpeg ) $(use_with xface )"
173 + else
174 + myconf="${myconf}
175 + --without-x
176 + --without-xpm
177 + --without-dragndrop
178 + --with-gif=no"
179 + fi
180 +
181 + if use mule ; then
182 + myconf="${myconf} --with-mule"
183 +
184 + if use xim ; then
185 + if use motif ; then
186 + myconf="${myconf} --with-xim=motif"
187 + else
188 + myconf="${myconf} --with-xim=xlib"
189 + fi
190 + else
191 + myconf="${myconf} --with-xim=no"
192 + fi
193 +
194 + myconf="${myconf} $(use_with canna ) $(use_with freewnn wnn )"
195 + fi
196 +
197 + # This determines the type of sounds we are playing
198 + local soundconf="native"
199 +
200 + # This determines how these sounds should be played
201 + use nas && soundconf="${soundconf},nas"
202 +
203 + myconf="${myconf} --with-sound=${soundconf}"
204 +
205 + if use gdbm || use berkdb ; then
206 + use gdbm && mydb="gdbm"
207 +
208 + use berkdb && mydb="${mydb},berkdb"
209 +
210 + myconf="${myconf} --with-database=${mydb}"
211 + else
212 + myconf="${myconf} --without-database"
213 + fi
214 +
215 + # fixes #21264, this should be fixed in 21.4.21 and has been fixed
216 + # in 21.5 for sure. Now that 21.4.21 is out there is no real
217 + # evidence that this indeed got fixed, so keep these exceptions
218 + # for now.
219 + use alpha && myconf="${myconf} --with-system-malloc"
220 + use ppc64 && myconf="${myconf} --with-system-malloc"
221 + use ia64 && myconf="${myconf} --with-system-malloc"
222 +
223 + # Enabling modules will cause segfaults outside the XEmacs build directory
224 + use ia64 && myconf="${myconf} --without-modules"
225 +
226 + einfo "${myconf}"
227 +
228 + # see bug 576512
229 + append-cflags -fgnu89-inline
230 +
231 + # Don't use econf because it uses options which this configure
232 + # script does not understand (like --host).
233 + ./configure ${myconf} ${EXTRA_ECONF} \
234 + $(use_with gif ) \
235 + $(use_with gpm ) \
236 + $(use_with postgres postgresql ) \
237 + $(use_with ldap ) \
238 + $(use_with eolconv file-coding ) \
239 + $(use_with pop ) \
240 + --compiler=$(tc-getCC) \
241 + --prefix=/usr \
242 + --with-ncurses \
243 + --with-msw=no \
244 + --mail-locking=flock \
245 + --with-site-lisp=yes \
246 + --with-site-modules=yes \
247 + || die "The configure script failed to run properly"
248 +}
249 +
250 +src_install() {
251 + emake prefix="${D}"/usr \
252 + mandir="${D}"/usr/share/man/man1 \
253 + infodir="${D}"/usr/share/info \
254 + install gzip-el || die "emake install failed"
255 +
256 + # Rename some applications installed in bin so that it is clear
257 + # which application installed them and so that conflicting
258 + # packages (emacs) can't clobber the actual applications.
259 + # Addresses bug #62991.
260 + for i in b2m ctags etags rcs-checkin gnuclient gnudoit gnuattach; do
261 + mv "${D}"/usr/bin/${i} "${D}"/usr/bin/${i}-xemacs || die "mv ${i} failed"
262 + done
263 +
264 + # rename man pages
265 + for i in ctags etags gnuserv gnuclient gnudoit gnuattach; do
266 + mv "${D}"/usr/share/man/man1/${i}{,-xemacs}.1 || die "mv ${i}.1 failed"
267 + done
268 +
269 + # install base packages directories
270 + dodir /usr/lib/xemacs/xemacs-packages/
271 + dodir /usr/lib/xemacs/site-packages/
272 + dodir /usr/lib/xemacs/site-modules/
273 + dodir /usr/lib/xemacs/site-lisp/
274 +
275 + if use mule;
276 + then
277 + dodir /usr/lib/xemacs/mule-packages
278 + fi
279 +
280 + # remove extraneous info files
281 + cd "${D}"/usr/share/info
282 + rm -f dir info.info texinfo* termcap* standards*
283 +
284 + cd "${S}"
285 + dodoc BUGS CHANGES-* ChangeLog GETTING* INSTALL PROBLEMS README*
286 + dodoc "${FILESDIR}"/README.Gentoo
287 +
288 + newicon "${S}"/etc/${PN}-icon.xpm ${PN}.xpm
289 +
290 + domenu "${FILESDIR}"/${PN}.desktop
291 +}
292 +
293 +pkg_postinst() {
294 + eselect emacs update ifunset
295 + eselect gnuclient update ifunset
296 +}
297 +
298 +pkg_postrm() {
299 + eselect emacs update ifunset
300 + eselect gnuclient update ifunset
301 +}