diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..93aec94 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/hdfview-2.13.0-nolibs.tar.xz diff --git a/dead.package b/dead.package deleted file mode 100644 index 5e251b6..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Retired: Fails to install diff --git a/getsources.sh b/getsources.sh new file mode 100755 index 0000000..c255362 --- /dev/null +++ b/getsources.sh @@ -0,0 +1,22 @@ +#!/bin/sh -e + +# Usage: ./getsources.sh +# (this produces hdfview-%version-nolibs.tar.xz) +url="$(rpmspec -P *spec | awk '/^#Source0:/{print $2}')" +version="$(rpmspec -q --srpm --qf %{version} *spec)" + +fname="hdfview-${version}-nolibs.tar.xz" +if [ -e "$fname" ]; then + echo "$fname already exists, not downloading" + exit 0 +fi + +echo "Downloading version ${version}" +[ -x /bin/pxz ] && xz=pxz || xz=xz + +curl -sSL $url | \ + gunzip | \ + tar --delete --wildcards -f - '*/lib/*' | \ + $xz -9v > "$fname" + +echo "$fname is ready" diff --git a/hdfview b/hdfview new file mode 100755 index 0000000..b6ef992 --- /dev/null +++ b/hdfview @@ -0,0 +1,17 @@ +#!/bin/sh -e + +CLASSPATH="$CLASSPATH:/usr/share/java/jhdfview.jar" + +CLASSPATH="$CLASSPATH:/usr/lib/java/jhdf.jar:/usr/lib/java/jhdf5.jar" + +CLASSPATH="$CLASSPATH:/usr/share/java/jhdfobj.jar" +CLASSPATH="$CLASSPATH:/usr/share/java/slf4j/api.jar:/usr/share/java/slf4j/simple.jar" +export CLASSPATH + +LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib64/jhdf:/usr/lib64/jhdf5:/usr/lib/jhdf:/usr/lib/jhdf5" +export LD_LIBRARY_PATH + +HDF5_DISABLE_VERSION_CHECK=1 +export HDF5_DISABLE_VERSION_CHECK + +exec java -Xmx1000m hdf.view.HDFView $* diff --git a/hdfview-jars.patch b/hdfview-jars.patch new file mode 100644 index 0000000..6534ff1 --- /dev/null +++ b/hdfview-jars.patch @@ -0,0 +1,26 @@ +diff --git hdfview-2.13.0-Source/build.xml~ hdfview-2.13.0-Source/build.xml +index e5c213f319..dc287f0f51 100644 +--- hdfview-2.13.0-Source/build.xml~ ++++ hdfview-2.13.0-Source/build.xml +@@ -273,15 +273,17 @@ + + + ++ ++ + +- ++ excludes="examples/** test/** *.log *.h5 hdf/object/**"> + + + +- + + + diff --git a/hdfview.appdata.xml b/hdfview.appdata.xml new file mode 100644 index 0000000..ed05a23 --- /dev/null +++ b/hdfview.appdata.xml @@ -0,0 +1,30 @@ + + + + + HDFView + hdfview.desktop + CC0-1.0 + Java HDF5 Object viewer + zbyszek@in.waw.pl + https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=hdfview + +

+ HDF is a versatile data model that can represent very complex data objects + and a wide variety of meta-data. It is a completely portable file format + with no limit on the number or size of data objects in the collection. +

+

+ HDFView is a graphical viewer with the ability to load multiple HDF5 files. + It shows a tree of objects inside the file and allows individual objects to + be displayed. Tables of numbers are displayed as in a spreadsheet, and + images are shown graphically. +

+
+ https://support.hdfgroup.org/products/java/ + + http://in.waw.pl/~zbyszek/fedora/hdfview/hdfview-multiple-tables.png + http://in.waw.pl/~zbyszek/fedora/hdfview/hdfview-table.png + http://in.waw.pl/~zbyszek/fedora/hdfview/hdfview-map-of-world.png + +
diff --git a/hdfview.desktop b/hdfview.desktop new file mode 100644 index 0000000..e415892 --- /dev/null +++ b/hdfview.desktop @@ -0,0 +1,15 @@ +[Desktop Entry] +Name=HDFView +Name[de]=HDFView +Name[en]=HDFView +Comment=HDF4/5 Data Browser +Comment[DE]=HDF4/5 Daten Browser +Comment[EN]=HDF4/5 Data Browser +Exec=/usr/bin/hdfview %F +Icon=hdfview +Terminal=false +MimeType=application/x-hdf;application/x-hdf5; +Type=Application +X-MultipleArgs=true +Categories=Science;Physics;DataVisualization;Education; + diff --git a/hdfview.spec b/hdfview.spec new file mode 100644 index 0000000..ff0619e --- /dev/null +++ b/hdfview.spec @@ -0,0 +1,204 @@ +Name: hdfview +Version: 2.13.0 +Release: 5%{?dist} +Summary: Java HDF5 Object viewer + +License: BSD with advertising +URL: https://support.hdfgroup.org/products/java/ +#Source0: https://support.hdfgroup.org/ftp/HDF5/hdf-java/current/src/hdfview-%{version}-Source.tar.gz +Source0: hdfview-%{version}-nolibs.tar.xz +Source1: hdfview +Source2: hdfview.xml +Source3: hdfview.desktop +Source4: hdfview.appdata.xml + +# ./getsources.sh will download Source0 and remove bundled libs +Source9: getsources.sh + +# Upstream creates a single jar with both the jhdfobj interface and +# the HDFView parts. Split that into separate jars. +Patch0: hdfview-jars.patch + +BuildRequires: maven-local +BuildRequires: ant +BuildRequires: mvn(org.hdfgroup:jhdf) >= 3.2.1 +BuildRequires: mvn(org.hdfgroup:jhdf5) >= 3.2.1 +BuildRequires: mvn(gov.nasa.gsfc.heasarc:nom-tam-fits) +BuildRequires: mvn(edu.ucar:cdm) +BuildRequires: mvn(org.slf4j:slf4j-api) +BuildRequires: mvn(org.slf4j:slf4j-nop) +BuildRequires: ImageMagick +BuildRequires: libappstream-glib +BuildRequires: desktop-file-utils + +Requires: java +Requires: javapackages-tools +Requires: mvn(org.slf4j:slf4j-api) +Requires: mvn(org.slf4j:slf4j-simple) +Requires: mvn(org.hdfgroup:jhdf) >= 3.2.1 +Requires: mvn(org.hdfgroup:jhdf5) >= 3.2.1 +Requires: mvn(gov.nasa.gsfc.heasarc:nom-tam-fits) +Requires: mvn(edu.ucar:cdm) +Requires: jhdfobj = %{version}-%{release} +Requires: hicolor-icon-theme + +Requires(post): desktop-file-utils +Requires(postun): desktop-file-utils + +BuildArch: noarch + +%description +HDF is a versatile data model that can represent very complex data objects +and a wide variety of meta-data. It is a completely portable file format +with no limit on the number or size of data objects in the collection. + +This package provides a HDF4/HDF5 viewer. + +%package -n jhdfobj +Summary: Java HDF/HDF5 Object Package +Requires: javapackages-tools +Requires: mvn(org.hdfgroup:jhdf) +Requires: mvn(org.hdfgroup:jhdf5) +Requires: mvn(org.slf4j:slf4j-api) + +%description -n jhdfobj +HDF is a versatile data model that can represent very complex data objects +and a wide variety of meta-data. It is a completely portable file format +with no limit on the number or size of data objects in the collection. + +This Java package implements HDF4/HDF5 data objects in an +object-oriented form. It provides a common Java API for accessing HDF files. + +%package doc +Summary: Sample files and example code for %{name} +Enhances: %{name} +Requires: %{name}-javadoc + +%description doc +%{summary}. + +%package javadoc +Summary: API documentation for %{name} + +%description javadoc +%{summary}. + +%prep +%autosetup -n hdfview-%{version}-Source + +# build jar repo +mkdir -p lib/extra +build-jar-repository -p lib/ junit slf4j- jhdf jhdf5 nom-tam-fits thredds/cdm +ln -s slf4j-api.jar lib/slf4j-api-1.7.5.jar +ln -s slf4j-nop.jar lib/slf4j-nop-1.7.5.jar +ln -s nom-tam-fits.jar lib/fits.jar +ln -s jhdf.jar lib/jarhdf.jar +ln -s jhdf5.jar lib/jarhdf5.jar +ln -s thredds_cdm.jar lib/netcdf.jar + +# simulate the settings files +echo 'HDF4 Version: %_hdf5_version' >lib/libhdf4.settings +echo 'HDF5 Version: %_hdf5_version' >lib/libhdf5.settings + +# artifacts location +%mvn_package org.hdfgroup:jhdfobj jhdfobj +%mvn_file org.hdfgroup:jhdfobj jhdfobj +%mvn_package org.hdfgroup:jhdfview jhdfview +%mvn_file org.hdfgroup:jhdfview jhdfview + +echo hdf.lib.dir=$(pwd)/lib >> build.properties + +%build +ant jar +ant javadoc + +%install +# jars and depmap +%mvn_artifact org.hdfgroup:jhdfobj:%{version} build/jar/jhdfobj.jar +%mvn_artifact org.hdfgroup:jhdfview:%{version} build/jar/HDFView.jar +%mvn_install -J build/javadocs + +install -Dpm0755 %{SOURCE1} -t %{buildroot}%{_bindir}/ + +# Create and install hicolor icons. +for i in 16 22 32 48 ; do + mkdir -p icons/${i}x${i}/apps + convert -resize ${i}x${i} src/hdf/view/icons/hdf_large.gif \ + icons/${i}x${i}/apps/hdfview.png + + install -Dpm 0644 icons/${i}x${i}/apps/hdfview.png \ + %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/apps/hdfview.png + + install -Dpm 0644 icons/${i}x${i}/apps/hdfview.png \ + %{buildroot}%{_datadir}/icons/hicolor/${i}x${i}/mimetypes/application-x-hdf.png + +done + +# .desktop file +mkdir -p %{buildroot}%{_datadir}/applications +desktop-file-install \ + --dir %{buildroot}%{_datadir}/applications \ + %{SOURCE3} + +# mime types +install -Dpm644 -t %{buildroot}%{_datadir}/mime/packages/ %{SOURCE2} + +# appdata +install -Dpm644 -t %{buildroot}%{_datadir}/appdata/ %{SOURCE4} + +rm src/examples/testfiles/*.txt + +%check +appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata.xml + +%global _docdir_fmt %{name} + +%files -f .mfiles-jhdfview +%_bindir/hdfview +%{_datadir}/applications/hdfview.desktop +%{_datadir}/icons/hicolor/*/*/*.png +%dir %{_datadir}/mime +%dir %{_datadir}/mime/packages +%{_datadir}/mime/packages/hdfview.xml +%{_datadir}/appdata/hdfview.appdata.xml + +%files -n jhdfobj -f .mfiles-jhdfobj +%doc Readme.txt docs/RELEASE.txt +# other docs are very outdated, stuff that's on the web seems better +%license COPYING + +%files doc +%doc samples/ +%doc src/examples/ +%license COPYING + +%files javadoc -f .mfiles-javadoc +%license COPYING + +%changelog +* Wed Feb 07 2018 Fedora Release Engineering - 2.13.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Jan 11 2018 Igor Gnatenko - 2.13.0-4 +- Remove obsolete scriptlets + +* Wed Jul 26 2017 Fedora Release Engineering - 2.13.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 2.13.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Dec 15 2016 Zbigniew Jędrzejewski-Szmek - 2.13.0-1 +- Also add /usr/share/mime, /usr/share/mime/packages to %%files + +* Tue Dec 13 2016 Zbigniew Jędrzejewski-Szmek - 2.13.0-1 +- Add versioned requirement on jhdf5 in hdfview binary package +- New javadoc subpackage +- Fix ownership issues in icons directory +- Exclude text files in examples/testfiles + +* Sat Dec 10 2016 Zbigniew Jędrzejewski-Szmek - 2.13.0-1 +- Fix BuildRequires + +* Thu Dec 8 2016 Zbigniew Jędrzejewski-Szmek - 2.13.0-1 +- Initial split from jhdf5 diff --git a/hdfview.xml b/hdfview.xml new file mode 100644 index 0000000..8742b76 --- /dev/null +++ b/hdfview.xml @@ -0,0 +1,15 @@ + + + + HDF files + + + + + + HDF5 files + + + + + diff --git a/sources b/sources new file mode 100644 index 0000000..28140e0 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (hdfview-2.13.0-nolibs.tar.xz) = b054e4c6491100b14d1331069b7f7e554f64f718a04cf1483ca7dd71981cdb772d977b02d1a912a7069ab53053ae16c860e8d972bba37d2a870e38340edbbc94