summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2008-04-07 18:34:50 +0000
committerUlrich Müller <ulm@gentoo.org>2008-04-07 18:34:50 +0000
commit3013d37deec9e5279f3323f5038ce60a482fd9ce (patch)
tree06b6af119fa62ad16aed20607f131aec55245c2c /x11-libs/openmotif
parentKeyworded on alpha, bug #216120 (diff)
downloadgentoo-2-3013d37deec9e5279f3323f5038ce60a482fd9ce.tar.gz
gentoo-2-3013d37deec9e5279f3323f5038ce60a482fd9ce.tar.bz2
gentoo-2-3013d37deec9e5279f3323f5038ce60a482fd9ce.zip
Fix segmentation faults affecting nedit, bug 216710.
(Portage version: 2.1.5_rc2)
Diffstat (limited to 'x11-libs/openmotif')
-rw-r--r--x11-libs/openmotif/ChangeLog10
-rw-r--r--x11-libs/openmotif/files/openmotif-2.3.0-fix-nedit-segfaults.patch20
-rw-r--r--x11-libs/openmotif/openmotif-2.3.0-r2.ebuild141
3 files changed, 170 insertions, 1 deletions
diff --git a/x11-libs/openmotif/ChangeLog b/x11-libs/openmotif/ChangeLog
index 69ebda2d8a8b..c424ea6790fd 100644
--- a/x11-libs/openmotif/ChangeLog
+++ b/x11-libs/openmotif/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for x11-libs/openmotif
# Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/ChangeLog,v 1.170 2008/04/04 12:38:41 ulm Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/ChangeLog,v 1.171 2008/04/07 18:34:50 ulm Exp $
+
+*openmotif-2.3.0-r2 (07 Apr 2008)
+
+ 07 Apr 2008; Ulrich Mueller <ulm@gentoo.org>
+ +files/openmotif-2.3.0-fix-nedit-segfaults.patch,
+ +openmotif-2.3.0-r2.ebuild:
+ Fix segmentation faults affecting nedit, bug 216710. Patch extracted from
+ upstream CVS. Thanks to Evan Teran <eteran@alum.rit.edu> for reporting.
04 Apr 2008; Ulrich Mueller <ulm@gentoo.org>
files/openmotif-2.3.0-sensitivity-invisible.patch:
diff --git a/x11-libs/openmotif/files/openmotif-2.3.0-fix-nedit-segfaults.patch b/x11-libs/openmotif/files/openmotif-2.3.0-fix-nedit-segfaults.patch
new file mode 100644
index 000000000000..0d3f1b97c373
--- /dev/null
+++ b/x11-libs/openmotif/files/openmotif-2.3.0-fix-nedit-segfaults.patch
@@ -0,0 +1,20 @@
+--- openmotif-2.3.0-orig/lib/Xm/List.c 2008-04-07 18:27:43.000000000 +0200
++++ openmotif-2.3.0/lib/Xm/List.c 2008-04-07 18:45:47.000000000 +0200
+@@ -3647,6 +3647,7 @@
+ XmStringFree(lw->list.items[pos]);
+ lw->list.items[pos] = XmStringCopy(item);
+ /*Selected items should be replaced also*/
++ UpdateSelectedPositions(lw, lw->list.selectedItemCount);
+ for(i=0; i<lw->list.selectedItemCount; i++)
+ if(lw->list.selectedPositions[i]==pos+1) {
+ XmStringFree(lw->list.selectedItems[i]);
+--- openmotif-2.3.0-orig/lib/Xm/ResEncod.c 2006-11-21 20:50:31.000000000 +0100
++++ openmotif-2.3.0/lib/Xm/ResEncod.c 2008-04-07 18:45:47.000000000 +0200
+@@ -2524,6 +2524,7 @@
+ /* Now copy in the text */
+ if (ctlen > 0) {
+ char *text = Convert(ctext, ctlen, "UTF-8", tag);
++ if (text == NULL) return(False);
+ *outc = ctextConcat(*outc, *outlen, text, strlen(text));
+ *outlen += ctlen;
+ XtFree(text);
diff --git a/x11-libs/openmotif/openmotif-2.3.0-r2.ebuild b/x11-libs/openmotif/openmotif-2.3.0-r2.ebuild
new file mode 100644
index 000000000000..177572065665
--- /dev/null
+++ b/x11-libs/openmotif/openmotif-2.3.0-r2.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-libs/openmotif/openmotif-2.3.0-r2.ebuild,v 1.1 2008/04/07 18:34:50 ulm Exp $
+
+inherit eutils flag-o-matic multilib autotools
+
+DESCRIPTION="Open Motif"
+HOMEPAGE="http://www.motifzone.org/"
+SRC_URI="ftp://ftp.ics.com/openmotif/2.3/${PV}/${P}.tar.gz
+ doc? ( http://www.motifzone.net/files/documents/${P}-manual.pdf.tgz )"
+
+LICENSE="MOTIF doc? ( OPL )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE="doc examples jpeg png xft"
+
+# make people unmerge motif-config and all previous slots
+# since the slotting is finally gone now
+RDEPEND="!x11-libs/motif-config
+ !x11-libs/lesstif
+ !<=x11-libs/openmotif-2.3.0
+ x11-libs/libXmu
+ x11-libs/libXaw
+ x11-libs/libXp
+ xft? ( x11-libs/libXft )
+ jpeg? ( media-libs/jpeg )
+ png? ( media-libs/libpng )"
+DEPEND="${RDEPEND}
+ x11-misc/xbitmaps
+ x11-proto/printproto"
+
+PROVIDE="virtual/motif"
+
+pkg_setup() {
+ # clean up orphaned cruft left over by motif-config
+ local i l count=0
+ for i in "${ROOT}"usr/bin/{mwm,uil,xmbind} \
+ "${ROOT}"usr/include/{Xm,uil,Mrm} \
+ "${ROOT}"usr/$(get_libdir)/lib{Xm,Uil,Mrm}.*; do
+ [[ -L "${i}" ]] || continue
+ l=$(readlink "${i}")
+ if [[ ${l} == *openmotif-* || ${l} == *lesstif-* ]]; then
+ einfo "Cleaning up orphaned ${i} symlink ..."
+ rm -f "${i}"
+ fi
+ done
+
+ cd "${ROOT}"usr/share/man
+ for i in $(find . -type l); do
+ l=$(readlink "${i}")
+ if [[ ${l} == *-openmotif-* || ${l} == *-lesstif-* ]]; then
+ (( count++ ))
+ rm -f "${i}"
+ fi
+ done
+ [[ ${count} -ne 0 ]] && \
+ einfo "Cleaned up ${count} orphaned symlinks in ${ROOT}usr/share/man"
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}/${P}-sensitivity-invisible.patch"
+ epatch "${FILESDIR}/${P}-fix-nedit-segfaults.patch"
+
+ # disable compilation of demo binaries
+ sed -i -e 's/^[ \t]*demos//' Makefile.in
+}
+
+src_compile() {
+ # get around some LANG problems in make (#15119)
+ unset LANG
+
+ # bug #80421
+ filter-flags -ftracer
+
+ # multilib includes don't work right in this package...
+ has_multilib_profile && append-flags "-I$(get_ml_incdir)"
+
+ # feel free to fix properly if you care
+ append-flags -fno-strict-aliasing
+
+ econf --with-x \
+ $(use_enable xft) \
+ $(use_enable jpeg) \
+ $(use_enable png)
+
+ emake -j1 || die "emake failed"
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" install || die "emake install failed"
+
+ newbin "${FILESDIR}"/motif-config-2.3 motif-config
+ dosed "s:@@LIBDIR@@:$(get_libdir):g" /usr/bin/motif-config
+
+ # mwm default configs
+ insinto /etc/X11/app-defaults
+ doins "${FILESDIR}"/Mwm.defaults
+
+ local f
+ for f in /usr/share/man/man1/mwm.1 /usr/share/man/man4/mwmrc.4; do
+ dosed 's:/usr/lib/X11/\(.*system\\&\.mwmrc\):/etc/X11/mwm/\1:g' ${f}
+ dosed 's:/usr/lib/X11/app-defaults:/etc/X11/app-defaults:g' ${f}
+ done
+
+ dodir /etc/X11/mwm
+ mv -f "${D}"/usr/$(get_libdir)/X11/system.mwmrc "${D}"/etc/X11/mwm
+ dosym /etc/X11/mwm/system.mwmrc /usr/$(get_libdir)/X11/
+
+ if use examples ; then
+ emake -j1 -C demos DESTDIR="${D}" install-data \
+ || die "installation of demos failed"
+ dodir /usr/share/doc/${PF}/demos
+ mv "${D}"/usr/share/Xm/* "${D}"/usr/share/doc/${PF}/demos
+ fi
+ rm -rf "${D}"/usr/share/Xm
+
+ # documentation
+ dodoc README RELEASE RELNOTES BUGREPORT TODO
+ use doc && cp "${WORKDIR}"/*.pdf "${D}"/usr/share/doc/${PF}
+}
+
+pkg_postinst() {
+ local line
+ while read line; do elog "${line}"; done <<-EOF
+ Gentoo is no longer providing slotted Open Motif libraries.
+ See bug 204249 and its dependencies for the reasons.
+
+ From the Open Motif 2.3.0 (upstream) release notes:
+ "Open Motif 2.3 is an updated version of 2.2. Any applications
+ built against a previous 2.x release of Open Motif will be binary
+ compatible with this release."
+
+ If you have binary-only applications requiring libXm.so.3, you may
+ therefore create a symlink from libXm.so.3 to libXm.so.4.
+ Please note, however, that there will be no Gentoo support for this.
+ Alternatively, you may install x11-libs/openmotif-compat-2.2* for
+ the Open Motif 2.2 libraries.
+ EOF
+}