sci-libs/cdf: add 3.9.1

Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
This commit is contained in:
Alfredo Tupone
2026-03-23 23:18:07 +01:00
parent fee4b9b0dd
commit 1ef64ce19a
3 changed files with 235 additions and 0 deletions

View File

@@ -6,4 +6,6 @@ DIST cdf390ug.pdf 1566123 BLAKE2B 639f800454e8f27286d769d505001e07e972b194d589a1
DIST cdf390vbrm.pdf 1729074 BLAKE2B d30d177202b516891dba0cb99113d6d19af41d950384469ec8a35d96dd2f7418646d1622bbf35376f02cabe686d6da0382e65b98a5beef0bcf81eb827dab5270 SHA512 98379bb4f30c8073ea1d43b7b4b75559722b6de1c7a500bb79b25162cb1bbc82afd9eec443af4645e369de6f59bf031fd097bc802896ad7310b7614a73486961
DIST cdf39_0-dist-cdf.tar.gz 1290187 BLAKE2B 03f7c7840c44514046df0d63ff6086be7263858f90225debfb8a4fe6c4d6e5b03c95faa2762f76e2ffc198ac77359b3494520258ec17678746fd7f619e362853 SHA512 e054b763d86c09c53375ef60a8690f43fcb106be1dc6fd907763379db1ab4c9677692671a63da74d955aec8ce3f866f420ddc7217a59ed68e51c4623562af387
DIST cdf39_0-dist-java.tar.gz 1162924 BLAKE2B 4e6416ec5a2a2eede428fa00906ca0e42460916506e7b2075d622e322ffe53e337a77bf81aa871e1559fb6b9339f2f49e365ca835874e060da33cd7c68e45177 SHA512 860468257c70bd6cb9592f40e495b5efb9092fc6fa3ab68c2fdc729c46d9ea4f0499a0b29904fe9c1ae07c13958e551b4e5cc8b9b71c2401ca833f2020073606
DIST cdf39_1-dist-cdf.tar.gz 1515823 BLAKE2B a1285c9c146de75147f2b5c2ddee4ac7e6ab97472de7b869f1ff0797f738ab17690adfe42bb9e49c56c14a39c13fb9784cc91bf354c383ccc2e4c4b994e3aab4 SHA512 ae1d6284a308d1db99367c0adf5ec40d9a6f9fc95de58b48d2b940e2fe6a3f0fa046ab17cec8cf5a4fde523f8ae69684b44b72dfa50028725bad25365ef910ab
DIST cdf39_1-dist-java.tar.gz 1166989 BLAKE2B 894aff4252a9c60abd99ce5cd522d8fde2bbee329066aaef4669c032467dff9de0e92dad2a7a8a46227a4e2e428511aa9b2a5abe2e3b40cf4c7cacc1dd4ffcf1 SHA512 53109a612570658e508ee84b36ce0eef87b67b9a890d98f602bad2b0d9b8815bba64abc7181d4fbcd40ab7204002474e560c123893d226caefd22aa13bf1fd9a
DIST cdf39ifd.pdf 656522 BLAKE2B 2ec3831f27e92fcec8191bedb1617c9f590b726732e02dd8ca317b814c369b46d50dd19e7bfc81df233e1e32ca6fb8191bf7e075ce67dda1ddd50645d5fc754b SHA512 f4de5bea46b7d1ea2621b9fa0ac1ab0f9904ada9a1625ce613f6fdb68ad25ca52398cbf75bb27902e54ba5ee7820f3ea1a563c655186047b8954cb53b4cd8197

View File

@@ -0,0 +1,148 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=9
inherit flag-o-matic java-pkg-opt-2 toolchain-funcs
MY_DP="${PN}$(ver_cut 1)$(ver_cut 2)"
MY_P="${MY_DP}_$(ver_cut 3)"
DESCRIPTION="Common Data Format I/O library for multi-dimensional data sets"
HOMEPAGE="https://cdf.gsfc.nasa.gov"
SRC_BASE="https://spdf.gsfc.nasa.gov/pub/software/${PN}/dist/${MY_P}/unix/"
SRC_URI="
${SRC_BASE}/${MY_P}-dist-${PN}.tar.gz
java? ( ${SRC_BASE}/${MY_P}-dist-java.tar.gz )
doc? (
${SRC_BASE}/${MY_DP}_documentation/${MY_DP}ifd.pdf
${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0crm.pdf
${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0csrm.pdf
${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0frm.pdf
${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0prm.pdf
${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0ug.pdf
${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0vbrm.pdf
)
"
S="${WORKDIR}/${MY_P}-dist"
LICENSE="CDF"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="doc examples java ncurses static-libs"
RESTRICT="bindist"
RDEPEND="
java? ( >=virtual/jre-1.8:= )
ncurses? ( sys-libs/ncurses:= )
"
DEPEND="
${RDEPEND}
"
BDEPEND="
ncurses? ( virtual/pkgconfig )
"
PATCHES=(
# Respect cflags, ldflags, soname
"${FILESDIR}"/${PN}-3.9.1-respect-flags.patch
)
src_prepare() {
default
# Use proper lib dir
sed -i \
-e "s:\$(INSTALLDIR)/lib:\$(INSTALLDIR)/$(get_libdir):g" \
Makefile || die "sed failed"
# Uses the wide variant of *curses functions
sed -i \
-e "s:-I/usr/include/ncurses:$($(tc-getPKG_CONFIG) --cflags-only-I ncursesw):g" \
Makefile src/tools/Makefile || die "sed failed"
}
src_compile() {
# Reported upstream by email in 2024-03-22 (bug #862675)
append-flags -fno-strict-aliasing
filter-lto
PV_SO=${PV:0:1}
emake \
OS=linux \
AR="$(tc-getAR)" \
CC="$(tc-getCC)" \
LD="$(tc-getCC)" \
RANLIB="$(tc-getRANLIB)" \
RANLIBcmd="$(tc-getRANLIB)" \
ENV=gnu \
SHARED=yes \
SHAREDEXT_linux=so.${PV_SO} \
CURSESLIB_linux_gnu="$(usex ncurses "$($(tc-getPKG_CONFIG) --libs ncursesw)" "")" \
CURSES=$(usex ncurses) \
${myconf} \
all
if use java; then
export CDF_BASE="${S}"
export CDF_LIB="${S}/src/lib"
cd cdfjava/jni
$(tc-getCC) \
${CFLAGS} -fPIC \
-I${CDF_BASE}/src/include \
-I$(java-config -O)/include \
-I$(java-config -O)/include/linux \
-c cdfNativeLibrary.c \
-o cdfNativeLibrary.o \
|| die "compiling java lib failed"
$(tc-getCC) \
${LDFLAGS} \
-shared cdfNativeLibrary.o \
-Wl,-soname=libcdfNativeLibrary.so.${PV_SO} \
-L${CDF_LIB} -lcdf -lm \
-o libcdfNativeLibrary.so.${PV_SO} \
|| die "linking java lib failed"
fi
}
src_test() {
emake -j1 test
}
src_install() {
dodir /usr/bin /usr/$(get_libdir)
# -j1 (fragile non-autotooled make)
emake -j1 \
INSTALLDIR="${ED}/usr" \
SHAREDEXT=so.${PV_SO} \
install
dosym libcdf.so.${PV_SO} /usr/$(get_libdir)/libcdf.so
use static-libs || rm "${ED}"/usr/$(get_libdir)/libcdf.a
dodoc Release.notes CHANGES.txt Welcome.txt
doenvd "${FILESDIR}"/50cdf
if use doc; then
dodoc "${DISTDIR}"/${MY_DP}{0{crm,csrm,frm,prm,ug,vbrm},ifd}.pdf
fi
if use examples; then
docinto examples
dodoc samples/*
fi
if use java; then
cd cdfjava || die
dolib.so jni/libcdfNativeLibrary.so.${PV_SO}
dosym libcdfNativeLibrary.so.${PV_SO} \
/usr/$(get_libdir)/libcdfNativeLibrary.so
java-pkg_dojar */*.jar
if use examples; then
docinto examples/java
dodoc examples/*
fi
fi
# move this to a better location
dodir "/usr/share/${PF}"
mv "${ED}/usr/CDFLeapSeconds.txt" "${ED}/usr/share/${PF}/" || die
}

View File

@@ -0,0 +1,85 @@
--- a/Makefile
+++ b/Makefile
@@ -1049,7 +1049,7 @@ install.tools: create.bin copy.tools
install.help_: create.help copy.help
install.lib: create.lib copy.lib.a
- @if [ -f $(LIBsrcDIR)/libcdf.so ] ; then \
+ @if [ -f $(LIBsrcDIR)/libcdf.$(SHAREDEXT) ] ; then \
$(MAKE) $(EXTRAMAKE) MAKE=$(MAKE) "INSTALLDIR=$(INSTALLDIR)" install.lib.so ; \
else \
$(NULL) ; \
@@ -1198,10 +1198,10 @@ copy.include:
cp $(INCsrcDIR)/cdftools.h $(INSTALLDIR)/include
copy.lib.so:
- @echo cp $(LIBsrcDIR)/libcdf.so $(INSTALLDIR)/lib
- cp $(LIBsrcDIR)/libcdf.so $(INSTALLDIR)/lib/libcdf.$(VERSION).so
- rm -f $(INSTALLDIR)/lib/libcdf.so
- cd $(INSTALLDIR)/lib && ln -s libcdf.$(VERSION).so libcdf.so
+ @echo cp $(LIBsrcDIR)/libcdf.$(SHAREDEXT) $(INSTALLDIR)/lib
+ cp $(LIBsrcDIR)/libcdf.$(SHAREDEXT) $(INSTALLDIR)/lib/libcdf.$(VERSION).so
+ rm -f $(INSTALLDIR)/lib/libcdf.$(SHAREDEXT)
+ cd $(INSTALLDIR)/lib && ln -s libcdf.$(VERSION).so libcdf.$(SHAREDEXT)
copy.lib.sl:
@echo cp $(LIBsrcDIR)/libcdf.sl $(INSTALLDIR)/lib
--- a/src/lib/Makefile
+++ b/src/lib/Makefile
@@ -62,9 +62,9 @@ AR=ar
RANLIBcmd=ranlib
MACos=Darwin
-CFLAGS=$(COPTIONS) $(PIC) -I$(INCLUDEcdf) -I$(ZlibDIR)
+CFLAGS+=$(COPTIONS) $(PIC) -I$(INCLUDEcdf) -I$(ZlibDIR)
CFLAGS2=-DZ_PREFIX
-LDFLAGS=$(LDOPTIONS)
+LDFLAGS+=$(LDOPTIONS)
ARFLAGS=$(AROPTIONS)
ZLIB=zlib
@@ -108,17 +108,18 @@ ranlib.yes:
shared.yes: libcdf.$(SHAREDEXT)
+libcdf.$(SHAREDEXT) \
libcdf.so \
libcdf.dylib \
libcdf.dll \
libcdf.sl: $(OBJs)
@if [ -f $@ ] ; then rm $@ ; else $(NULL) ; fi
- @echo $(LD) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS)
- $(LD) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS)
+ @echo $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,libcdf.$(SHAREDEXT) -o $@ $(OBJs) $(SYSLIBS)
+ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,libcdf.$(SHAREDEXT) -o $@ $(OBJs) $(SYSLIBS)
libcdf.o: $(OBJs)
- @echo $(CC) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS)
- $(CC) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS)
+ @echo $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJs) $(SYSLIBS)
.c.o:
@if [ "$<" = "cdfgzip.c" ] || [ "$<" = "cdfgzip64.c" ] ; then \
--- a/src/tools/Makefile
+++ b/src/tools/Makefile
@@ -33,7 +33,7 @@
SHELL=/bin/sh
CURSES=yes
-CCx=gcc
+CCx=$(CC)
LDx=
COPTIONS=-I/usr/include/ncurses -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -O2
COPTIONSld=
@@ -45,8 +45,8 @@ MAKE=make
INCLUDEcdf= ../include
CC=$(CCx)
-CFLAGS=$(COPTIONS) -I$(INCLUDEcdf)
-CFLAGSld=$(COPTIONSld)
+CFLAGS+=$(COPTIONS) -I$(INCLUDEcdf)
+CFLAGSld+=$(COPTIONSld)
ifeq ($(LDx),)
LDx = $(CCx)
endif