cd87d59
Name:           PyMca
f46dfaf
Version:        5.9.2
501fe15
Release:        %autorelease
3bf2d23
Summary:        X-ray Fluorescence Toolkit
6b2f96a
License:        GPL-2.0-or-later
cd87d59
URL:            http://pymca.sourceforge.net/
cba5bac
#  https://github.com/vasole/pymca
3bf2d23
%if 0
3bf2d23
Original source: http://downloads.sourceforge.net/sourceforge/pymca/pymca%%{version}-src.tgz
3bf2d23
However it bundles a copy of the "sift" module which implements a patented algorithm.
3bf2d23
The algorithm can be used for non-commercial research purposes ONLY. Per:
3bf2d23
http://fedoraproject.org/wiki/Packaging:SourceURL#When_Upstream_uses_Prohibited_Code
3bf2d23
we must remove them before uploading:
cba5bac
  ./getsources.sh [%{version}]
3bf2d23
%endif
3bf2d23
Source0:        pymca-%{version}-filtered.tar.xz
cd87d59
Source1:        PyMca.desktop
e3ec114
Source2:        edfviewer.desktop
e3ec114
Source3:        elementsinfo.desktop
e3ec114
Source4:        mca2edf.desktop
e3ec114
Source5:        peakidentifier.desktop
e3ec114
Source6:        pymcabatch.desktop
e3ec114
Source7:        pymcapostbatch.desktop
e3ec114
Source8:        pymcaroitool.desktop
c437881
ab293b3
BuildRequires:  gcc
cd87d59
BuildRequires:  desktop-file-utils
cd87d59
BuildRequires:  ImageMagick
e3ec114
BuildRequires:  python3-devel
e3ec114
BuildRequires:  python3-setuptools
564708b
BuildRequires:  python3dist(cython)
564708b
BuildRequires:  python3dist(numpy)
564708b
BuildRequires:  python3dist(h5py)
564708b
BuildRequires:  python3dist(pyqt5)
564708b
BuildRequires:  python3dist(fisx)
564708b
BuildRequires:  python3dist(matplotlib)
53ff177
BuildRequires:  python3-matplotlib-qt5
e3ec114
BuildRequires:  mesa-libGL-devel
e3ec114
BuildRequires:  mesa-libGLU-devel
cd87d59
BuildRequires:  qhull-devel
53ff177
BuildRequires:  glibc-langpack-pl
cd87d59
Requires:       hicolor-icon-theme
e3ec114
Requires:       %{name}-data = %{version}-%{release}
c3ec082
# Dependency on the graphical toolkit is not autogenerated because many different
c3ec082
# ones are supported, https://bugzilla.redhat.com/show_bug.cgi?id=2084297.
46f504d
Requires:       python3dist(pyqt5)
46f504d
Requires:       python3-matplotlib-qt5
daf7ffa
daf7ffa
%description
3bf2d23
PyMCA provides a graphical interface for multi-channel analyzer spectra
daf7ffa
visualization and analysis. PyMca can display spectra from a file or directly
daf7ffa
from SPEC during acquisitions.
daf7ffa
e3ec114
%package        data
e3ec114
Summary:        Data files for %{name}
e3ec114
BuildArch:      noarch
e3ec114
e3ec114
%description    data
e3ec114
This package contains photon interaction data/elements data for %{name}.
e3ec114
daf7ffa
%prep
3bf2d23
%autosetup -p1 -n pymca-%{version}
3bf2d23
cd87d59
# Fix wrong shebang of pymcapostbatch.
da510d1
sed -i "s|!python|!%python3|g" PyMca5/scripts/pymcapostbatch
28b0001
daf7ffa
%build
e3ec114
# Need to define manually. Note using pkg-config to export the cflags
e3ec114
# is not identified by the setup.py script as it requires non-blank
e3ec114
# stdin for both CFLAGS/LDFLAGS, so we manually define the CFLAGS.
6ccfe31
QHULL_CFLAGS="-I%{_includedir}/libqhull" \
e3ec114
QHULL_LIBS="-lqhull" \
e3ec114
SPECFILE_USE_GNU_SOURCE=1 \
3bf2d23
PYMCA_DATA_DIR=/usr/share/PyMca \
3bf2d23
PYMCA_DOC_DIR=/usr/share/doc/PyMca \
6771d2a
%py3_build
daf7ffa
daf7ffa
%install
3bf2d23
PYMCA_DATA_DIR=/usr/share/PyMca \
3bf2d23
PYMCA_DOC_DIR=/usr/share/doc/PyMca \
6771d2a
%py3_install
cd87d59
cd87d59
# Install desktop file.
cd87d59
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{S:1}
e3ec114
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{S:2}
e3ec114
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{S:3}
e3ec114
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{S:4}
e3ec114
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{S:5}
e3ec114
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{S:6}
e3ec114
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{S:7}
e3ec114
desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{S:8}
cd87d59
Richard Hughes 00e8226
# Merge applications into one software center item
da510d1
mkdir -p %{buildroot}%{_datadir}/appdata
da510d1
cat >%{buildroot}%{_datadir}/appdata/edfviewer.appdata.xml <
Richard Hughes 00e8226
Richard Hughes 00e8226
Richard Hughes 00e8226
<component type="desktop">
Richard Hughes 00e8226
  <metadata_license>CC0-1.0</metadata_license>
Richard Hughes 00e8226
  <id>edfviewer.desktop</id>
Richard Hughes 00e8226
  <metadata>
Richard Hughes 00e8226
    <value key="X-Merge-With-Parent">PyMca.desktop</value>
Richard Hughes 00e8226
  </metadata>
Richard Hughes 00e8226
</component>
Richard Hughes 00e8226
EOF
da510d1
cat >%{buildroot}%{_datadir}/appdata/elementsinfo.appdata.xml <
Richard Hughes 00e8226
Richard Hughes 00e8226
Richard Hughes 00e8226
<component type="desktop">
Richard Hughes 00e8226
  <metadata_license>CC0-1.0</metadata_license>
Richard Hughes 00e8226
  <id>elementsinfo.desktop</id>
Richard Hughes 00e8226
  <metadata>
Richard Hughes 00e8226
    <value key="X-Merge-With-Parent">PyMca.desktop</value>
Richard Hughes 00e8226
  </metadata>
Richard Hughes 00e8226
</component>
Richard Hughes 00e8226
EOF
da510d1
cat >%{buildroot}%{_datadir}/appdata/mca2edf.appdata.xml <
Richard Hughes 00e8226
Richard Hughes 00e8226
Richard Hughes 00e8226
<component type="desktop">
Richard Hughes 00e8226
  <metadata_license>CC0-1.0</metadata_license>
Richard Hughes 00e8226
  <id>mca2edf.desktop</id>
Richard Hughes 00e8226
  <metadata>
Richard Hughes 00e8226
    <value key="X-Merge-With-Parent">PyMca.desktop</value>
Richard Hughes 00e8226
  </metadata>
Richard Hughes 00e8226
</component>
Richard Hughes 00e8226
EOF
da510d1
cat >%{buildroot}%{_datadir}/appdata/peakidentifier.appdata.xml <
Richard Hughes 00e8226
Richard Hughes 00e8226
Richard Hughes 00e8226
<component type="desktop">
Richard Hughes 00e8226
  <metadata_license>CC0-1.0</metadata_license>
Richard Hughes 00e8226
  <id>peakidentifier.desktop</id>
Richard Hughes 00e8226
  <metadata>
Richard Hughes 00e8226
    <value key="X-Merge-With-Parent">PyMca.desktop</value>
Richard Hughes 00e8226
  </metadata>
Richard Hughes 00e8226
</component>
Richard Hughes 00e8226
EOF
da510d1
cat >%{buildroot}%{_datadir}/appdata/pymcabatch.appdata.xml <
Richard Hughes 00e8226
Richard Hughes 00e8226
Richard Hughes 00e8226
<component type="desktop">
Richard Hughes 00e8226
  <metadata_license>CC0-1.0</metadata_license>
Richard Hughes 00e8226
  <id>pymcabatch.desktop</id>
Richard Hughes 00e8226
  <metadata>
Richard Hughes 00e8226
    <value key="X-Merge-With-Parent">PyMca.desktop</value>
Richard Hughes 00e8226
  </metadata>
Richard Hughes 00e8226
</component>
Richard Hughes 00e8226
EOF
da510d1
cat >%{buildroot}%{_datadir}/appdata/pymcapostbatch.appdata.xml <
Richard Hughes 00e8226
Richard Hughes 00e8226
Richard Hughes 00e8226
<component type="desktop">
Richard Hughes 00e8226
  <metadata_license>CC0-1.0</metadata_license>
Richard Hughes 00e8226
  <id>pymcapostbatch.desktop</id>
Richard Hughes 00e8226
  <metadata>
Richard Hughes 00e8226
    <value key="X-Merge-With-Parent">PyMca.desktop</value>
Richard Hughes 00e8226
  </metadata>
Richard Hughes 00e8226
</component>
Richard Hughes 4dfa77a
EOF
da510d1
cat >%{buildroot}%{_datadir}/appdata/pymcaroitool.appdata.xml <
Richard Hughes 00e8226
Richard Hughes 00e8226
Richard Hughes 00e8226
<component type="desktop">
Richard Hughes 00e8226
  <metadata_license>CC0-1.0</metadata_license>
Richard Hughes 00e8226
  <id>pymcaroitool.desktop</id>
Richard Hughes 00e8226
  <metadata>
Richard Hughes 00e8226
    <value key="X-Merge-With-Parent">PyMca.desktop</value>
Richard Hughes 00e8226
  </metadata>
Richard Hughes 00e8226
</component>
Richard Hughes 00e8226
EOF
Richard Hughes 00e8226
cd87d59
# Convert to various sizes, via the 256x256 source.
cd87d59
for size in 192x192 128x128 96x96 72x72 64x64 48x48 40x40 36x36 32x32 26x26 24x24 22x22 16x16 ; do
cd87d59
    install -pdm755 \
b25b013
        %{buildroot}%{_datadir}/icons/hicolor/${size}/apps
cd87d59
    convert -resize ${size} icons/PyMca_256x256.png \
b25b013
        %{buildroot}%{_datadir}/icons/hicolor/${size}/apps/%{name}.png
daf7ffa
done
daf7ffa
cd87d59
# Get rid of spurious executable rights.
3bf2d23
find %{buildroot}%{python3_sitearch}/PyMca5/ -type f -exec chmod 644 {} +
3bf2d23
find %{buildroot}%{python3_sitearch}/PyMca5/ -name *.so -exec chmod 755 {} +
daf7ffa
cd87d59
# Get rid of /usr/bin/env in libraries.
3bf2d23
find %{buildroot}%{python3_sitearch}/PyMca5 -type f -name '*.py' \
3bf2d23
     -exec sed -i '/\/usr\/bin\/env/d' {} + \
3bf2d23
     -exec touch -r setup.py {} +
e3ec114
e3ec114
%check
3bf2d23
PYTHONPATH=%{buildroot}%{python3_sitearch} \
3bf2d23
PYMCA_DATA_DIR=%{buildroot}/usr/share/PyMca \
3bf2d23
PYMCA_DOC_DIR=%{buildroot}/usr/share/doc/PyMca \
e9fa456
QT_QPA_PLATFORM=offscreen \
53ff177
LC_ALL=pl_PL.utf8 \
da510d1
%python3 PyMca5/tests/TestAll.py
e9fa456
e9fa456
# Test results are ingored. In F34 rawhide mock:
e9fa456
# ERROR: testHdf5Uri (ConfigDictTest.testConfigDict)
e9fa456
# FAIL: testNxExtStringAttribute (NexusUtilsTest.testNexusUtils)
e9fa456
# FAIL: testNxExtStringDataset (NexusUtilsTest.testNexusUtils)
e9fa456
# FAIL: testNxStringDataset (NexusUtilsTest.testNexusUtils)
daf7ffa
daf7ffa
%files
3bf2d23
%license LICENSE.GPL
27b090d
%doc changelog.txt README.rst
daf7ffa
%{_bindir}/edfviewer
daf7ffa
%{_bindir}/elementsinfo
daf7ffa
%{_bindir}/mca2edf
daf7ffa
%{_bindir}/peakidentifier
daf7ffa
%{_bindir}/pymca*
6b0d5e2
%{_bindir}/rgbcorrelator
Richard Hughes 00e8226
%{_datadir}/appdata/*.appdata.xml
e3ec114
%{_datadir}/applications/*.desktop
cd87d59
%{_datadir}/icons/hicolor/*x*/apps/%{name}.png
cd87d59
%{_mandir}/man1/*.1*
3bf2d23
%{python3_sitearch}/PyMca5/
3bf2d23
%{python3_sitearch}/PyMca5-%{version}-py%{python3_version}.egg-info
3bf2d23
%exclude %{_pkgdocdir}
e3ec114
e3ec114
%files data
e3ec114
%{_datadir}/%{name}/
e3ec114
%{_pkgdocdir}/
daf7ffa
daf7ffa
%changelog
501fe15
%autochangelog