%if 0%{?fedora} <= 22 %global _hardened_build 1 %endif %if 0%{?rhel} < 7 %{!?__global_ldflags: %global __global_ldflags -Wl,-z,relro} %endif %global checkout b6ad5b0cd3be30c52f17bf8917fe39fb28a60549 %global date 20160204 Name: engauge-digitizer Summary: Convert graphs or map files into numbers Version: 6.2 Release: 4.%{date}git%(echo %{checkout} | cut -c-6)%{?dist} Group: Applications/Engineering License: GPLv2+ URL: https://github.com/markummitchell/engauge6 Source0: https://github.com/markummitchell/engauge6/archive/%{checkout}.zip#/engauge6-%{checkout}.zip ##Patch the test build script to use qmake-qt5 and default Fedora ##optimization flags for compilers Patch0: %{name}_fix_test_script.patch Epoch: 1 Provides: %{name} = 1:%{version}-%{release} Obsoletes: %{name} <= 0:5.2.11 Obsoletes: %{name}-transpose <= 0:5.2.11 ##Excluding this arch because of missing BR packages (log4cpp) %if 0%{?rhel} < 7 ExcludeArch: ppc64 %endif ## Proposed in https://bugzilla.redhat.com/show_bug.cgi?id=1182409 Source1: %{name}.appdata.xml Source2: %{name}.svg Source3: %{name}-with-name.svg ## Main building BuildRequires: qt5-qtbase-devel, qt5-qttools-devel BuildRequires: fftw-devel, log4cpp-devel, desktop-file-utils ##Xvfb is needed to run a virtual X server used by tests BuildRequires: xorg-x11-server-Xvfb ##Doxygen for documentation BuildRequires: doxygen %if 0%{?fedora} BuildRequires: libappstream-glib BuildRequires: openjpeg2-devel %endif %description Engauge6 is rewritten with Qt5. This digitizing software converts an image file showing a graph or map, into numbers. The image file can come from a scanner, digital camera or screen-shot. The numbers can be read on the screen, and written or copied to a spreadsheet. The process starts with an image file containing a graph or map. The final result is digitized data that can be used by other tools such as Gnumeric. New features already added to Engauge6: - Older Engauge files (before version 6) can be loaded - Undo/redo of all operations means recovering from mistakes and experimenting with options is painless - Wizard provides an interactive tutorial to explain the basic steps - Wizard creates a checklist guide to interactively leads user through steps from file import to file export - Cubic spline interpolation between points gives more accurate curves with fewer points - Axes Checker briefly highlights the axes when they are defined or modified, to reveal entry mistakes - Graph coordinates can be specified as date and time value, or as degrees, minutes and seconds - All settings dialogs are resizable so they can be enlarged as necessary to display more information - Import by drag-and-drop - Replacement of Qt3 (which is at its end of life) by Qt5 - Much better zooming, with a fill mode that automatically zooms in on image features, and rezooms when the application window is resized - Color picking straight from the original image - Uploadable error report generated when a programming error is encountered, for identifying problems and improving user support - Test suite for regression testing minimizes code breakage as new features are added %package samples Summary: Sample files for %{name} Group: Applications/Engineering BuildArch: noarch %description samples This package contains several sample image files that may be imported into Engauge Digitizer (http://digitizer.sourceforge.net). These files are listed below, with comments: - corners.png - Graph that lots of corners that would be painful to digitize manually - gridlines.gif - Graph with gridlines that are easily removed by Engauge - gridlines_log.gif - Another graph with gridlines that are easily removed by Engauge - gridlines_log.src - Creates gridlines_log.gif in gnuplot using 'load' command (not an image!) - inverse.jpg - Image of y/x function - inverse.png - Same as inverse.jpg but in png format - linlog.jpg - Graph with linear/logarithmic coordinates - linlog.png - Same as linlog.jpg but in png format - loglin.png - Graph with logarithmic/linear coordinates - loglog.png - Graph with logarithmic/logarithmic coordinates - normdist.jpg - Graph of normal distribution - normdist.png - Same as normdist.jpg but in png format - pointmatch.jpg - Graph with fuzzy points for playing with Point Match feature of Engauge - pointplot.bmp - Graph with points that are easily captured by Point Match feature of Engauge, if the Discretize settings are set to "Intensity 90 to 99" for the triangles, and "Intensity 10 to 50" for the diamonds - polarcircles.jpg - Polar plot for experimenting. No coordinates are displayed, so not very useful - polarplot.jpg - Polar plot with cardioid pattern - polarplot.png - Same as polarplot.jpg but in png format - testcase.jpg - Simple graph that serves as an excellent starting point for the new user - testcase.png - Same as testcase.jpg but in png format - testcoords.jpg - Advanced graph used by developers to check the affine transformations in Engauge - testcoords.sxd - Open Office document used to create testcoords.jpg (not an image!) - usgs.png - Fictional map loosely based on U.S. Geological Survey topographic maps %package doc Summary: HTML documentation of %{name} Group: Applications/Engineering BuildArch: noarch %description doc HTML documentation of %{name}. %prep %setup -q -n engauge6-%{checkout} ##Patch the test build script to use qmake-qt5 and default Fedora ##optimization flags for compilers %patch0 -p0 sed -e 's|RPM_OPT_FLAGS|"%{optflags}"|g' -i src/build_and_run_all_tests ##Active support to jpeg2000 ##jpeg2000 libraries not available on EPEL %if 0%{?fedora} sed -e 's|CONFIG = qt warn_on thread debug|CONFIG = qt warn_on thread jpeg2000 debug|g' -i engauge.pro sed -e 's|INCLUDEPATH += Jpeg2000|INCLUDEPATH += src/Jpeg2000|g' -i engauge.pro %endif ##Remove default -O1 optimization sed -e 's|-O1||g' -i engauge.pro ##Remove spurious executable permissions for i in `find src -type f \( -name "*.cpp" -o -name "*.h" \)`; do chmod a-x $i done %build %if 0%{?fedora} export JPEG2000_INCLUDE=%{_includedir}/openjpeg-2.1 export JPEG2000_LIB=%{_libdir} %endif export ENGAUGE_RELEASE=1 ## Flags set by hand for EPEL6 %{qmake_qt5} engauge.pro \ QMAKE_CFLAGS_RELEASE="$RPM_OPT_FLAGS -pie -Wl,-z,now" \ QMAKE_CXXFLAGS_RELEASE="$RPM_OPT_FLAGS -pie -Wl,-z,now" \ QMAKE_LFLAGS="$RPM_LD_FLAGS -pie -Wl,-z,now" \ DEFINES+=HELPDIR=%{_datadir}/doc/%{name}/help make %{?_smp_mflags} ##Build HELP files pushd help qcollectiongenerator-qt5 engauge.qhcp -o engauge.qhc mv engauge.qch ../bin/documentation mv engauge.qhc ../bin/documentation rm -f build popd ##Build HTML/Latex documentation files pushd src doxygen popd %install mkdir -p %{buildroot}%{_datadir}/%{name}-%{version}/samples mkdir -p %{buildroot}%{_datadir}/%{name}-%{version}/img mkdir -p %{buildroot}%{_datadir}/applications mkdir -p %{buildroot}%{_datadir}/pixmaps mkdir -p %{buildroot}%{_datadir}/appdata mkdir -p %{buildroot}%{_bindir} install -p -m 755 bin/engauge %{buildroot}%{_bindir} pushd samples install -p -m 644 *.gif *.jp* *.png *.bmp %{buildroot}%{_datadir}/%{name}-%{version}/samples popd install -p -m 644 src/img/* %{buildroot}%{_datadir}/%{name}-%{version}/img install -p -m 644 %{SOURCE2} %{buildroot}%{_datadir}/pixmaps install -p -m 644 %{SOURCE3} %{buildroot}%{_datadir}/pixmaps %if 0%{?fedora} install -p -m 644 %{SOURCE1} %{buildroot}%{_datadir}/appdata %endif ##Make a .desktop file mkdir -p %{buildroot}%{_datadir}/applications cat > %{buildroot}%{_datadir}/applications/%{name}.desktop < /dev/null || : %postun /usr/bin/update-desktop-database &> /dev/null || : %files %{!?_licensedir:%global license %doc} %doc README.md help bin/documentation/engauge.qhc bin/documentation/engauge.qch %license LICENSE %{_bindir}/engauge %{_datadir}/pixmaps/%{name}*.svg %if 0%{?fedora} %{_datadir}/appdata/*.appdata.xml %endif %{_datadir}/applications/%{name}.desktop %{_datadir}/%{name}-%{version}/ %exclude %{_datadir}/%{name}-%{version}/samples %files samples %{!?_licensedir:%global license %doc} %doc samples/README %license LICENSE %dir %{_datadir}/%{name}-%{version} %{_datadir}/%{name}-%{version}/samples %files doc %{!?_licensedir:%global license %doc} %doc README.md doc/doxygen/html %license LICENSE %changelog * Thu Feb 04 2016 Antonio Trande - 1:6.2-4.20160204gitb6ad5b - Update to commit #b6ad5b * Wed Feb 03 2016 Fedora Release Engineering - 1:6.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Mon Feb 01 2016 Rex Dieter 1:6.2-2 - use %%qmake_qt5 macro (instead of settings flags by hand) * Tue Dec 01 2015 Antonio Trande - 1:6.2-1 - Update to 6.2 * Sun Nov 08 2015 Antonio Trande - 1:6.1-2 - Excluding PPC arch on EPEL6 because of missing BR packages (log4cpp) * Sat Oct 31 2015 Antonio Trande - 1:6.1-1 - Update to 6.1 * Sat Oct 24 2015 Antonio Trande - 1:6.0-1 - First release - Build release version - Activated jpeg200 support * Wed Oct 14 2015 Antonio Trande - 1:6-0.4.20151011git77e64e - Commit #77e64e - Old Transpose tool obsoleted * Tue Sep 29 2015 Antonio Trande - 1:6-0.3.20150928git4b8703 - Commit #4b8703 * Mon Sep 28 2015 Antonio Trande - 1:6-0.2.20150928gita25102 - Commit #a25102 - Built HTML docs - Tests performed * Thu Sep 24 2015 Antonio Trande - 1:6-0.1.20150921git4f0c92 - Bump to the new Engauge6 * Wed Jun 17 2015 Fedora Release Engineering - 5.2-10.20150115git28de7d - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Sat May 02 2015 Kalev Lember - 5.2-9.20150115git28de7d - Rebuilt for GCC 5 C++11 ABI change * Mon Feb 23 2015 Antonio Trande - 5.2-8.20150115git28de7d - Fixed Keywords key in .desktop file * Thu Jan 15 2015 Antonio Trande - 5.2-7.20150115git28de7d - Included files proposed in bz#1182409 * Thu Jan 15 2015 Antonio Trande - 5.2-6.20150115git28de7d - Update to commit 28de7d - Package appdata and SVG files - data sub-package incorporated in the main one - Used the new macro %%license * Sat Aug 16 2014 Fedora Release Engineering - 5.2-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Sat Jun 07 2014 Fedora Release Engineering - 5.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Wed Nov 13 2013 Antonio Trande 5.2-3 - Data files splitted into a noarch -data subpackage - .h/.cpp files not packaged anymore * Tue Nov 12 2013 Antonio Trande 5.2-2 - Fix 'src/pointset.cpp' compilation error in EPEL - Defined Qt3/Qt4 qmake - Fix BR Qt4 for EPEL - RPM_OPT_FLAGS fixed without patches * Sun Nov 10 2013 Antonio Trande 5.2-1 - First package