Blob Blame History Raw
%global upstream_name ase

%global upstream_svn %{nil}
%global upstream_svn .3440

%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")}

Name:			python-ase
Version:		3.8.1%{?upstream_svn}
Release:		9%{?dist}
Summary:		Atomic Simulation Environment
%{?el5:Group:		Applications/Scientific}


# The entire source code is LGPLv2+ except:
# ase/io/fortranfile.py which is MIT
License:		LGPLv2+ and MIT

URL:			https://wiki.fysik.dtu.dk/ase/
Source0:		https://wiki.fysik.dtu.dk/ase-files/%{name}-%{version}.tar.gz
Source1:		https://svn.fysik.dtu.dk/projects/ase/trunk/doc/%{upstream_name}-gui.desktop

# The patch below is specific to 3.8.1.3440 and already applied upstream
# https://trac.fysik.dtu.dk/projects/ase/changeset/3444
Patch0:			%{name}-%{version}.ase.gui.ag.patch

%{?el5:BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)}
BuildArch:		noarch

%global PKG_TOP $RPM_BUILD_DIR/%{name}-%{version}

BuildRequires:		python2-devel
BuildRequires:		gettext
BuildRequires:		desktop-file-utils

BuildRequires:		numpy

%if 0%{?rhel} && 0%{?rhel} <= 6
Requires:		pygtk2
%endif
Requires:		python-matplotlib


%description
The Atomic Simulation Environment (ASE) is the common part of the simulation
tools developed at CAMd. ASE provides Python modules for manipulating atoms,
analyzing simulations, visualization etc.


%prep
%setup -q -n %{name}-%{version}
%patch0 -p1

# save %%{upstream_name}.ico and remove the doc directory
cp -p doc/_static/%{upstream_name}.ico %{upstream_name}.png
rm -rf doc


%build
%{__python} setup.py build 2>&1 | tee p2build.log


%install
%{?el5:rm -rf $RPM_BUILD_ROOT}
%{__python} setup.py install --skip-build --prefix=%{_prefix} \
	   --optimize=1 --root $RPM_BUILD_ROOT 2>&1 | tee p2install.log

# doc would go under $RPM_BUILD_ROOT%%{_datadir}/%%{name}
# if only we get rid of povray dependency one could build doc with:
# cd $RPM_BUILD_ROOT%%{_datadir}/%%{name}/doc&& sphinx-build . _build

mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
desktop-file-install \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
%if (0%{?fedora} && 0%{?fedora} < 20) || (0%{?rhel} && 0%{?rhel} < 7)
--vendor "%{upstream_name}" \
%endif
%{SOURCE1}

mkdir -p $RPM_BUILD_ROOT%{_datadir}/pixmaps
install -m 644 %{upstream_name}.png $RPM_BUILD_ROOT%{_datadir}/pixmaps

# To avoid: "Found '/tmp/rpmbuild/build/' in installed files; aborting"
for file in `find %{PKG_TOP} -name "*.log"`; do
  sed -i "s|$RPM_BUILD_ROOT||g" ${file}
done

# we store translations in ase/gui/po/*/*/ag.mo
# but /usr/lib/rpm/find-lang.sh wants locale (Fedora) or share/locale (el6)
mkdir $RPM_BUILD_ROOT%{python_sitelib}/%{upstream_name}/gui/share
cp -rp $RPM_BUILD_ROOT%{python_sitelib}/%{upstream_name}/gui/po $RPM_BUILD_ROOT%{python_sitelib}/%{upstream_name}/gui/share/locale
%find_lang ag
rm -rf $RPM_BUILD_ROOT%{python_sitelib}/%{upstream_name}/gui/share
sed -i "s|share/locale|po|g" %{PKG_TOP}/ag.lang

# create list of all installed dirs/files(exclude *.mo) and concat with ag.lang
find $RPM_BUILD_ROOT%{python_sitelib}/%{upstream_name} -type d | xargs -I _file echo "%dir _file" > %{PKG_TOP}/d.list
find $RPM_BUILD_ROOT%{python_sitelib}/%{upstream_name} -type f ! -name "*.mo"  > %{PKG_TOP}/f.list
cat %{PKG_TOP}/ag.lang %{PKG_TOP}/d.list %{PKG_TOP}/f.list > %{PKG_TOP}/files.list
# trim the $RPM_BUILD_ROOT
sed -i "s|$RPM_BUILD_ROOT||g" %{PKG_TOP}/files.list


%check
PYTHONVERSION=`python -c "from distutils import sysconfig; print sysconfig.get_python_version()"`
export PYTHONPATH=`pwd`/build/lib
export PATH=`pwd`/build/scripts-${PYTHONVERSION}:${PATH}
mkdir p2testase && cd p2testase
%{__python} -c "from ase.test import test; test(verbosity=2, display=False)" 2>&1 | tee ../p2testase.log
cd -


%clean
%{?el5:rm -rf $RPM_BUILD_ROOT}


%files -f files.list
%doc *.log COPYING* LICENSE README.txt
%{_bindir}/*
%{?!el5:%{python_sitelib}/*.egg-info}
%{_datadir}/applications/%{upstream_name}-gui.desktop
%{_datadir}/pixmaps/%{upstream_name}.png


%changelog
* Tue Dec 10 2013 Marcin Dulak <Marcin.Dulak@gmail.com> - 3.8.1.3440-9
- upstream patch for launching ase-gui without terminal (gtk-launch ase-gui)
- desktop file in svn

* Sat Nov 30 2013 Marcin Dulak <Marcin.Dulak@gmail.com> - 3.8.1.3440-8
- fix Exec in ase-gui.desktop
- remove MANIFEST.in from %%doc 
- PATH modified for tests to include scripts dir

* Fri Nov 22 2013 Marcin Dulak <Marcin.Dulak@gmail.com> - 3.8.1.3440-7
- new upstream version, old patches removed

* Thu Sep 19 2013 Björn Esser <bjoern.esser@gmail.com> - 3.7.1.3184-6
- Devendorized!

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.7.1.3184-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Tue Jun 25 2013 Marcin Dulak <Marcin.Dulak@gmail.com> 3.7.1.3184-4
- fix bug #976886 c#9

* Sun Jun 23 2013 Marcin Dulak <Marcin.Dulak@gmail.com> 3.7.1.3184-3
- builds on el5
- remove doc
- %%{upstream_name}.png goes to %%{_datadir}/pixmaps
- fix bug #976886 c#4

* Sat Jun 22 2013 Marcin Dulak <Marcin.Dulak@gmail.com> 3.7.1.3184-2
- include desktop file
- partly fix bug#976886#c1 and #c2

* Fri Jun 21 2013 Marcin Dulak <Marcin.Dulak@gmail.com> 3.7.1.3184-1
- trimmed for Fedora/RHEL

* Mon May 6 2013 Marcin Dulak <Marcin.Dulak@fysik.dtu.dk> 3.6.1-2
- include docs

* Mon Jun 11 2012 Marcin Dulak <Marcin.Dulak@fysik.dtu.dk> 3.6.0-1
- restructured for build.opensuse.org and Fedora based on campos-ase3.spec

* Tue Apr 27 2010 Marcin Dulak <Marcin.Dulak@fysik.dtu.dk>
- common Requires for EL, Fedora, openSUSE
- perform testase.py when building
- removed dependecy in python-lxml

* Wed Jun 18 2008 Marcin Dulak <Marcin.Dulak@fysik.dtu.dk>
- FC 9: set -- ${variable} converts dashes of $1 into underlines so use $2

* Mon Jun 16 2008 Marcin Dulak <Marcin.Dulak@fysik.dtu.dk>
- initial version