summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMats Lidell <matsl@gentoo.org>2024-03-12 12:06:23 +0100
committerMats Lidell <matsl@gentoo.org>2024-03-12 12:06:23 +0100
commita3dc67052d5a266a8ed044a76913bea30efbac63 (patch)
treef0956214a35036af098c54562dfa42d1f1f0a0a1 /app-editors
parentmedia-gfx/hydrus: Add 565, rename dist files (diff)
downloadgentoo-a3dc67052d5a266a8ed044a76913bea30efbac63.tar.gz
gentoo-a3dc67052d5a266a8ed044a76913bea30efbac63.tar.bz2
gentoo-a3dc67052d5a266a8ed044a76913bea30efbac63.zip
app-editors/xemacs: Set no-strict-aliasing on debug
Reintroduce patch to disable broken libc version check. Bug: https://bugs.gentoo.org/924339 Signed-off-by: Mats Lidell <matsl@gentoo.org>
Diffstat (limited to 'app-editors')
-rw-r--r--app-editors/xemacs/files/xemacs-21.5.35-configure-libc-version.patch73
-rw-r--r--app-editors/xemacs/xemacs-21.5.35-r1.ebuild258
-rw-r--r--app-editors/xemacs/xemacs-21.5.9999.ebuild14
3 files changed, 342 insertions, 3 deletions
diff --git a/app-editors/xemacs/files/xemacs-21.5.35-configure-libc-version.patch b/app-editors/xemacs/files/xemacs-21.5.35-configure-libc-version.patch
new file mode 100644
index 000000000000..e744d3952b10
--- /dev/null
+++ b/app-editors/xemacs/files/xemacs-21.5.35-configure-libc-version.patch
@@ -0,0 +1,73 @@
+diff -r 3761ed745bc6 configure.ac
+--- a/configure.ac Sat Mar 02 17:26:00 2024 +0100
++++ b/configure.ac Fri Mar 08 22:25:23 2024 +0100
+@@ -2192,7 +2192,6 @@
+
+ compiler_version=""
+ gcc_compiler_specs=""
+-libc_version=""
+
+ AC_MSG_CHECKING([for compiler version information])
+
+@@ -2255,53 +2254,6 @@
+ fi
+ AC_MSG_RESULT([$compiler_version])
+
+-AC_MSG_CHECKING(for standard C library version information)
+-
+-case "$ac_cv_build" in
+- *-*-linux*)
+- dnl #### who would ever _not_ be running the distro's libc?
+- dnl Maybe it would be better to get/augment this info with ldd?
+- if test -f /etc/redhat-release ; then
+- libc_version=`rpm -q glibc`
+- elif test -f /etc/debian_version ; then
+- libc_version=`dpkg-query --showformat='${version}' --show libc6`
+- libc_version="GNU libc $libc_version (Debian)"
+- dnl need SuSE et al checks here...
+- fi
+- dnl #### Tested on Debian, does this actually work elsewhere? ;-)
+- if test -z "$libc_version"; then
+- libc_version=`ls /lib/libc-*.so | sed -e 's,/lib/libc-\(.*\)\.so,\1,'`
+- fi
+- ;;
+-
+- *-*-aix*)
+- libc_version="bos.rte.libc `lslpp -Lqc bos.rte.libc | cut -f3 -d:`"
+- ;;
+-
+- *-*-solaris*)
+- libc=`pkginfo -l SUNWcsl | grep VERSION: | awk '{print $2}'`
+- libc_version="SUNWcsl $libc"
+-
+- ;;
+-
+- mips-sgi-irix*)
+- libc_version="IRIX libc `uname -sRm`"
+- ;;
+-
+- alpha*-dec-osf*)
+- dnl Another ugly case
+- (cd /usr/.smdb.;
+- libc_version=` grep -h libc.so *.inv | awk '$9 == "f" {print $12}' | tr '\n' ','`
+- )
+- ;;
+-esac
+-
+-dnl Awww, shucks.
+-if test -z "libc_version"; then
+- libc_version="detection failed (please report this)"
+-fi
+-AC_MSG_RESULT([$libc_version])
+-
+ dnl ---------------------------------------------------------
+ dnl These directories are used to search for include subdirs.
+ dnl ---------------------------------------------------------
+@@ -6122,7 +6074,6 @@
+ echo " WARNING: CC and XEMACS_CC mismatched; check CFLAGS carefully."
+ fi
+ fi
+-echo " libc version: $libc_version"
+ echo " Relocating allocator for buffers: $with_rel_alloc"
+ echo "
+ Package Search (a 'root' contains '{xemacs,mule,site}-packages'):"
diff --git a/app-editors/xemacs/xemacs-21.5.35-r1.ebuild b/app-editors/xemacs/xemacs-21.5.35-r1.ebuild
new file mode 100644
index 000000000000..505fb03625a3
--- /dev/null
+++ b/app-editors/xemacs/xemacs-21.5.35-r1.ebuild
@@ -0,0 +1,258 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Note: xemacs currently does not work with position independent code
+# so the build forces the use of the -no-pie option
+
+EAPI=8
+
+inherit flag-o-matic xdg-utils desktop autotools
+
+DESCRIPTION="highly customizable open source text editor and application development system"
+HOMEPAGE="https://www.xemacs.org/"
+
+SRC_URI="http://ftp.xemacs.org/pub/xemacs/xemacs-$(ver_cut 1-2)/${P}.tar.gz
+ neXt? ( http://www.malfunction.de/afterstep/files/NeXT_XEmacs.tar.gz )"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="alsa debug gif gpm pop postgres ldap xface nas dnd X jpeg tiff png motif freewnn xft xim athena neXt Xaw3d gdbm berkdb +bignum"
+
+X_DEPEND="x11-libs/libXt x11-libs/libXmu x11-libs/libXext x11-misc/xbitmaps"
+
+RDEPEND="
+ berkdb? ( >=sys-libs/db-4:= !!<sys-libs/db-4 )
+ gdbm? ( >=sys-libs/gdbm-1.8.3:=[berkdb(+)] )
+ >=sys-libs/zlib-1.1.4
+ >=dev-libs/openssl-0.9.6:0=
+ >=media-libs/audiofile-0.2.3
+ gpm? ( >=sys-libs/gpm-1.19.6 )
+ postgres? ( dev-db/postgresql:= )
+ ldap? ( net-nds/openldap:= )
+ alsa? ( media-libs/alsa-lib )
+ nas? ( media-libs/nas )
+ X? ( $X_DEPEND !Xaw3d? ( !neXt? ( x11-libs/libXaw ) ) )
+ dnd? ( x11-libs/dnd )
+ motif? ( >=x11-libs/motif-2.3:0[xft=] )
+ athena? ( x11-libs/libXaw )
+ Xaw3d? ( x11-libs/libXaw3d[unicode(+)] )
+ xft? ( media-libs/freetype:2 x11-libs/libXft x11-libs/libXrender >=media-libs/fontconfig-2.5.0 )
+ neXt? ( x11-libs/neXtaw )
+ xface? ( media-libs/compface )
+ tiff? ( media-libs/tiff:= )
+ png? ( >=media-libs/libpng-1.2:0 )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ freewnn? ( app-i18n/freewnn )
+ >=sys-libs/ncurses-5.2:=
+ >=app-eselect/eselect-emacs-1.15
+ bignum? ( dev-libs/openssl )"
+
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+PDEPEND="app-xemacs/xemacs-base
+ app-xemacs/mule-base"
+
+src_unpack() {
+ default_src_unpack
+}
+
+src_prepare() {
+ use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/
+ find "${S}"/lisp -name '*.elc' -exec rm {} \; || die
+ eapply "${FILESDIR}/${P}-configure.patch"
+ eapply "${FILESDIR}/${P}-mule-tests.patch"
+ eapply "${FILESDIR}/${P}-configure-libc-version.patch"
+
+ eapply_user
+
+ eautoconf
+
+ # Some binaries and man pages are installed under suffixed names
+ # to avoid collions with their GNU Emacs counterparts (see below).
+ # Fix internal filename references.
+ sed -i -e 's/exec gnuclient/&-xemacs/' lib-src/gnudoit || die
+ sed -i -e '/^\.so/s/etags/&-xemacs/' etc/ctags.1 || die
+ sed -i -e '/^\.so/s/gnuserv/&-xemacs/' etc/gnu{client,doit,attach}.1 || die
+}
+
+src_configure() {
+ local myconf=""
+
+ # bug #639642
+ test-flags -no-pie >/dev/null && append-flags -no-pie
+ filter-flags -pie
+
+ if use X; then
+
+ myconf="${myconf} --with-widgets=athena"
+ myconf="${myconf} --with-dialogs=athena"
+ myconf="${myconf} --with-menubars=lucid"
+ myconf="${myconf} --with-scrollbars=lucid"
+ if use motif ; then
+ myconf="--with-widgets=motif"
+ myconf="${myconf} --with-dialogs=motif"
+ myconf="${myconf} --with-scrollbars=motif"
+ myconf="${myconf} --with-menubars=lucid"
+ fi
+ if use athena or use Xaw3d ; then
+ myconf="--with-scrollbars=athena"
+ fi
+
+ if use Xaw3d; then
+ myconf="${myconf} --with-athena=3d"
+ elif use neXt; then
+ myconf="${myconf} --with-athena=next"
+ else
+ myconf="${myconf} --with-athena=xaw"
+ fi
+
+ use dnd && myconf="${myconf} --with-dragndrop"
+
+ myconf="${myconf} $(use_with tiff )"
+ myconf="${myconf} $(use_with png )"
+ myconf="${myconf} $(use_with jpeg )"
+ myconf="${myconf} $(use_with xface )"
+
+ use xft && myconf="${myconf} --with-xft=emacs,tabs,menubars,gauges" ||
+ myconf="${myconf} --with-xft=no"
+
+ else
+ myconf="${myconf}
+ --without-x
+ --without-xpm
+ --without-dragndrop
+ --with-xft=no
+ --with-gif=no"
+ fi
+
+ if use xim ; then
+ if use motif ; then
+ myconf="${myconf} --with-xim=motif"
+ else
+ myconf="${myconf} --with-xim=xlib"
+ fi
+ else
+ myconf="${myconf} --with-xim=no"
+ fi
+
+ myconf="${myconf} $(use_with freewnn wnn )"
+
+ # This determines the type of sounds we are playing
+ local soundconf="native"
+
+ # This determines how these sounds should be played
+ use nas && soundconf="${soundconf},nas"
+ use alsa && soundconf="${soundconf},alsa"
+
+ myconf="${myconf} --with-sound=${soundconf}"
+
+ if use gdbm || use berkdb ; then
+ use gdbm && mydb="gdbm"
+ use berkdb && mydb="${mydb},berkdb"
+
+ myconf="${myconf} --with-database=${mydb}"
+ else
+ myconf="${myconf} --without-database"
+ fi
+
+ if use debug ; then
+ myconf="${myconf} --with-debug"
+ # bug #924339
+ append-flags -fno-strict-aliasing
+ else
+ myconf="${myconf} --with-optimization --with-cflags-debugging="
+ fi
+
+ use bignum && myconf="${myconf} --with-bignum=openssl" ||
+ myconf="${myconf} --with-bignum=no"
+
+ use freewnn && append-cppflags "-I. -I${ESYSROOT}/usr/include/wnn"
+
+ econf ${myconf} \
+ $(use_with gif ) \
+ $(use_with gpm ) \
+ $(use_with postgres postgresql ) \
+ $(use_with ldap ) \
+ $(use_with pop ) \
+ --prefix=/usr \
+ --with-mule \
+ --with-unicode-internal \
+ --without-canna \
+ --with-ncurses \
+ --with-msw=no \
+ --with-mail-locking=flock \
+ --with-site-lisp=yes \
+ --with-site-modules=yes \
+ --enable-option-checking=no \
+ --with-last-packages=/usr/lib/xemacs
+}
+
+src_compile() {
+ emake EMACSLOADPATH="${S}"/lisp
+}
+
+src_install() {
+ emake prefix="${ED}"/usr \
+ mandir="${ED}"/usr/share/man/man1 \
+ infodir="${ED}"/usr/share/info \
+ libdir="${ED}"/usr/$(get_libdir) \
+ datadir="${ED}"/usr/share \
+ install
+
+ # Rename some applications installed in bin so that it is clear
+ # which application installed them and so that conflicting
+ # packages (emacs) can't clobber the actual applications.
+ # Addresses bug #62991.
+ for i in b2m ctags etags gnuclient gnudoit gnuattach; do
+ mv "${ED}"/usr/bin/${i} "${ED}"/usr/bin/${i}-xemacs || die "mv ${i} failed"
+ done
+
+ # rename man pages
+ for i in ctags etags gnuserv gnuclient gnudoit gnuattach; do
+ mv "${ED}"/usr/share/man/man1/${i}{,-xemacs}.1 || die "mv ${i}.1 failed"
+ done
+
+ # install base packages directories
+ dodir /usr/lib/xemacs/xemacs-packages/
+ dodir /usr/lib/xemacs/site-packages/
+ dodir /usr/lib/xemacs/site-modules/
+ dodir /usr/lib/xemacs/site-lisp/
+ dodir /usr/lib/xemacs/mule-packages
+
+ # remove extraneous info files
+ cd "${ED}"/usr/share/info
+ rm -f dir info.info texinfo* termcap* standards*
+
+ cd "${S}"
+ dodoc CHANGES-* ChangeLog INSTALL Installation PROBLEMS README*
+
+ newicon "${S}"/etc/${PN}-icon.xpm ${PN}.xpm
+
+ domenu "${FILESDIR}"/${PN}.desktop
+}
+
+pkg_postinst() {
+ eselect emacs update ifunset
+ eselect gnuclient update ifunset
+ xdg_desktop_database_update
+
+ einfo "If you are upgrading from XEmacs 21.4 you should note the following"
+ einfo "incompatibilities:"
+ einfo "- Mule-UCS is no longer supported due to proper UTF-8 support in XEmacs 21.5"
+ einfo "- The X resource class has changed from Emacs to XEmacs,"
+ einfo " settings in your .Xdefaults file should be updated accordingly."
+
+ if use xft;
+ then
+ einfo "You have enabled Xft font support. Xft requires font names to be provided"
+ einfo "in a different way, so you may need to adjust your .Xdefaults accordingly."
+ fi
+}
+
+pkg_postrm() {
+ eselect emacs update ifunset
+ eselect gnuclient update ifunset
+ xdg_desktop_database_update
+}
diff --git a/app-editors/xemacs/xemacs-21.5.9999.ebuild b/app-editors/xemacs/xemacs-21.5.9999.ebuild
index 15945ea32285..172643503b1d 100644
--- a/app-editors/xemacs/xemacs-21.5.9999.ebuild
+++ b/app-editors/xemacs/xemacs-21.5.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Note: xemacs currently does not work with position independent code
@@ -6,7 +6,7 @@
EAPI=8
-inherit flag-o-matic xdg-utils desktop
+inherit flag-o-matic xdg-utils desktop autotools
DESCRIPTION="highly customizable open source text editor and application development system"
HOMEPAGE="https://www.xemacs.org/"
@@ -64,9 +64,12 @@ src_prepare() {
use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/
find "${S}"/lisp -name '*.elc' -exec rm {} \; || die
eapply "${FILESDIR}/${PN}-21.5.35-mule-tests.patch"
+ eapply "${FILESDIR}/${PN}-21.5.35-configure-libc-version.patch"
eapply_user
+ eautoconf
+
# Some binaries and man pages are installed under suffixed names
# to avoid collions with their GNU Emacs counterparts (see below).
# Fix internal filename references.
@@ -155,8 +158,13 @@ src_configure() {
myconf="${myconf} --without-database"
fi
- use debug && myconf="${myconf} --with-debug" ||
+ if use debug ; then
+ myconf="${myconf} --with-debug"
+ # bug #924339
+ append-flags -fno-strict-aliasing
+ else
myconf="${myconf} --with-optimization --with-cflags-debugging="
+ fi
use bignum && myconf="${myconf} --with-bignum=openssl" ||
myconf="${myconf} --with-bignum=no"