commit:     f28a41f0ae6e45908049affbe9ed3fbff6bde573
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Tue Sep  3 00:38:49 2024 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Tue Sep  3 00:41:09 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f28a41f0

sci-visualization/grace: update to latest debian patches; fix modern C

Closes: https://bugs.gentoo.org/886603
Closes: https://bugs.gentoo.org/908528
Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 sci-visualization/grace/Manifest                   |   1 +
 .../grace/files/grace-configure-c99.patch          |  89 +++++++++++++++
 sci-visualization/grace/grace-5.1.25_p17.ebuild    | 120 +++++++++++++++++++++
 3 files changed, 210 insertions(+)

diff --git a/sci-visualization/grace/Manifest b/sci-visualization/grace/Manifest
index fdbc3eb13346..22f0aa59fe77 100644
--- a/sci-visualization/grace/Manifest
+++ b/sci-visualization/grace/Manifest
@@ -1,2 +1,3 @@
 DIST grace-5.1.25.tar.gz 2957689 BLAKE2B 
f46032c92aa2ed2484ca05c0eb858f47adfa88517e7d06c0d95a6d23c044356edfc52b9a7566a625ef5f4a1a4b5450b0ce065a94ba15c59fb8395d53c85872c9
 SHA512 
9ea68483af1dfc98d217ae730b7a51b66deae5aaa8dfda29d5a3337ed4b5728b45aa03f561bf7d4173e73d6af8dee03cbabd95c0c8dd36999303c89451a3728a
 DIST grace_5.1.25-13.debian.tar.xz 110248 BLAKE2B 
19dce6ed1b9e1d93d87036f5aba5ee262d54a58bc7daf2039fb2246bd2f45e413832561a33f8cb1b793fdf30831b0282f00e60efe3980df7875d2923a9f32f76
 SHA512 
51ee85525557c630fc3e208eb9b72b8973de6351698766ade1a59af6b9f16bc1b6b9c2c40d2270eb33d55806c4762c7b5d10b14f2a470ff00cfae2c9351bc922
+DIST grace_5.1.25-17.debian.tar.xz 112540 BLAKE2B 
6637c87cda3dadbb3cf8040811e227a080a116101ee0da9c51d068e811bbe7516ae8ef462dcc50bd6d53a88765908ca955cd9b1bbebcfff37da1c40d7c76f640
 SHA512 
2d9a05e7f409893193e23f904d82afc6e930ae7b051b9ddcfa62c6ddfb0f892cc931f41968fa52ef95ea9c1aef4138de4bdac570789e494a0f6308e355b2bda7

diff --git a/sci-visualization/grace/files/grace-configure-c99.patch 
b/sci-visualization/grace/files/grace-configure-c99.patch
new file mode 100644
index 000000000000..ff8cf077a5f1
--- /dev/null
+++ b/sci-visualization/grace/files/grace-configure-c99.patch
@@ -0,0 +1,89 @@
+From 625be283aa5fcfe0cfe1cc3851226d7677a21cdc Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <[email protected]>
+Date: Mon, 2 Sep 2024 20:00:20 -0400
+Subject: [PATCH] configure: fix implicit function declarations
+
+Import fedora patch:
+https://src.fedoraproject.org/rpms/grace/blob/rawhide/f/grace-configure-c99-1.patch
+
+Do not call the XmRegisterConverters function because current Motif
+does not declare it (but still exports it).  With this call, the
+result of this configure check depends on whether the compiler
+supports implicit function declarations or not.
+
+Additionally add missing includes to various checks that lacked them.
+Florian's patch moved from exit to return, but adding the includes is
+shorter.
+---
+ configure | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index d58ce51..3f3c1f3 100755
+--- a/configure
++++ b/configure
+@@ -4931,6 +4931,7 @@ else
+ /* end confdefs.h.  */
+ 
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ 
+ #define LOG2EA 0.44269504088896340735992
+@@ -8309,6 +8310,7 @@ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
++#include <stdlib.h>
+ #include <string.h>
+ #include <zlib.h>
+       int main(void) {
+@@ -8395,6 +8397,7 @@ else
+ /* end confdefs.h.  */
+ 
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <jpeglib.h>
+       int main(void) {
+         int vinc;
+@@ -8479,6 +8482,7 @@ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
++#include <stdlib.h>
+ #include <string.h>
+ #include <png.h>
+       int main(void) {
+@@ -8566,6 +8570,8 @@ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
++#include <stdlib.h>
++#include <string.h>
+ #include <pdflib.h>
+       int main(void) {
+         char *vinc;
+@@ -9516,11 +9522,11 @@ else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
++#include <stdlib.h>
+ #include <Xm/XmAll.h>
+       int main(void) {
+         int vlibn, vincn;
+         vincn = XmVersion;
+-        XmRegisterConverters();
+         vlibn = xmUseVersion;
+         if (vincn < 1002) {
+           exit(1);
+@@ -9790,6 +9796,7 @@ else
+ /* end confdefs.h.  */
+ 
+ #include <XmHTML/XmHTML.h>
++#include <stdlib.h>
+       int main(void) {
+         int vlib, vinc;
+         vlib = XmHTMLGetVersion();
+-- 
+2.44.2
+

diff --git a/sci-visualization/grace/grace-5.1.25_p17.ebuild 
b/sci-visualization/grace/grace-5.1.25_p17.ebuild
new file mode 100644
index 000000000000..3db7ac26d8a1
--- /dev/null
+++ b/sci-visualization/grace/grace-5.1.25_p17.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+FORTRAN_NEEDED=fortran
+
+inherit desktop fortran-2 toolchain-funcs xdg
+
+DESCRIPTION="Motif based XY-plotting tool"
+HOMEPAGE="https://plasma-gate.weizmann.ac.il/Grace/";
+SRC_URI="
+       ftp://plasma-gate.weizmann.ac.il/pub/${PN}/src/stable/${P/_p*}.tar.gz
+       
mirror://debian/pool/main/${PN:0:1}/${PN}/${PN}_${PV/_p*}-${PV/*_p}.debian.tar.xz
+"
+
+SLOT="0"
+LICENSE="GPL-2 LGPL-2"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="fftw fortran jpeg netcdf png"
+
+DEPEND="
+       media-libs/t1lib
+       media-libs/tiff:=
+       sys-libs/zlib
+       >=x11-libs/motif-2.3:0
+       x11-libs/xbae
+       fftw? ( sci-libs/fftw:3.0= )
+       jpeg? ( media-libs/libjpeg-turbo:= )
+       netcdf? ( sci-libs/netcdf:= )
+       png? ( media-libs/libpng:0= )"
+RDEPEND="${DEPEND}
+       x11-misc/xdg-utils"
+
+S="${WORKDIR}/${P/_p*}"
+
+PATCHES=(
+       # Fix for missing defines when fortran is disabled
+       "${FILESDIR}"/${PN}-5.1.21-fortran.patch
+       # Fix a leak (from freebsd)
+       "${FILESDIR}"/${PN}-5.1.22-dlmodule.patch
+       # Honor -noask option and avoid accidentally overwritting files
+       "${FILESDIR}"/${PN}-5.1.25-honor-noask.patch
+       # Fix C99 compat (from Fedora); included in debian "source-hardening"???
+       #"${FILESDIR}"/${PN}-c99.patch
+       "${FILESDIR}"/${PN}-configure-c99.patch
+)
+
+pkg_setup() {
+       fortran-2_pkg_setup
+}
+
+src_prepare() {
+       default
+
+       # Debian patches
+       for p in $(<"${WORKDIR}"/debian/patches/series) ; do
+               # We have a safer one
+               [[ ${p} = configure-implicit-declarations.diff ]] && continue
+
+               eapply -p1 "${WORKDIR}/debian/patches/${p}"
+       done
+
+       # don't strip if not asked for
+       sed -i \
+               -e 's:$(INSTALL_PROGRAM) -s:$(INSTALL_PROGRAM):g' \
+               {auxiliary,grconvert,src}/Makefile || die
+
+       sed -i \
+               -e 's:$(GRACE_HOME)/bin:$(PREFIX)/bin:g' \
+               -e "s:\$(GRACE_HOME)/lib:\$(PREFIX)/$(get_libdir):g" \
+               -e 's:$(GRACE_HOME)/include:$(PREFIX)/include:g' \
+               -e 's:$(PREFIX)/man:$(PREFIX)/share/man:g' \
+               Makefile */Makefile || die "sed failed"
+
+       sed -i \
+               -e 's:bin/grconvert:grconvert:' \
+               -e 's:auxiliary/fdf2fit:fdf2fit:' \
+               gracerc || die
+}
+
+src_configure() {
+       tc-export CC AR
+
+       # the configure script just produces a basic Make.conf
+       # and a config.h
+       econf \
+               --disable-pdfdrv \
+               --disable-xmhtml \
+               --without-bundled-xbae \
+               --without-bundled-t1lib \
+               --enable-grace-home="${EPREFIX}"/usr/share/${PN} \
+               --with-helpviewer="xdg-open %s" \
+               --with-editor="xdg-open %s" \
+               --with-printcmd="lpr" \
+               --x-includes="${EPREFIX}"/usr/include \
+               --x-libraries="${EPREFIX}"/usr/$(get_libdir) \
+               $(use_with fftw) \
+               $(use_enable fortran f77-wrapper) \
+               $(use_enable netcdf) \
+               $(use_enable jpeg jpegdrv) \
+               $(use_enable png pngdrv) \
+               $(use_with fortran f77 $(tc-getFC))
+}
+
+src_install() {
+       default
+
+       dosym ../../${PN}/examples /usr/share/doc/${PF}/examples
+       dosym ../../${PN}/doc /usr/share/doc/${PF}/html
+
+       doman "${ED}"/usr/share/doc/${PF}/html/*.1
+       rm -f "${ED}"/usr/share/doc/${PF}/html/*.1 || die
+
+       domenu "${FILESDIR}"/${PN}.desktop
+       for size in 16 22 24 32; do
+               newicon -s "${size}" 
"${WORKDIR}"/debian/icons/grace"${size}".png "${PN}.png"
+       done
+       doicon -s 48 "${WORKDIR}"/debian/icons/grace.png
+       doicon -s scalable "${WORKDIR}"/debian/grace.svg
+}

Reply via email to