Blob Blame History Raw
# Toggle tests
# Currently failing
%bcond_without mvn_tests

# A test requires network access,
# Run mock with --enable-network --with=network
%bcond_with network

%global pretty_name jLEMS

Name:           jlems
Version:        0.9.9.1
Release:        5%{?dist}
Summary:        Java Interpreter for the Low Entropy Model Specification language


License:        MIT
URL:            https://github.com/LEMS/jLEMS
Source0:        https://github.com/LEMS/%{pretty_name}/archive/v%{version}/%{name}-%{version}.tar.gz  
BuildArch:      noarch

BuildRequires:  janino
BuildRequires:  junit
BuildRequires:  maven-local
BuildRequires:  maven-compiler-plugin
BuildRequires:  maven-dependency-plugin
BuildRequires:  maven-surefire-plugin

# provide this to make it easier for users to find it
Provides:  %{pretty_name}%{?_isa} = %{version}-%{release}

# Autogenerated, not needed
# Requires:       java-headless
# Requires:       javapackages-filesystem

%description
Java Interpreter for the Low Entropy Model Specification language.

See http://lems.github.com/LEMS

For more details on LEMS see:

Robert C. Cannon, Padraig Gleeson, Sharon Crook, Gautham Ganapathy, Boris
Marin, Eugenio Piasini and R. Angus Silver, LEMS: A language for expressing
complex biological models in concise and hierarchical form and its use in
underpinning NeuroML 2, Frontiers in Neuroinformatics 2014, doi:
10.3389/fninf.2014.00079

%package        javadoc
Summary:        Javadoc for %{name}

%description javadoc
This package contains the API documentation for %{name}.

%prep
%autosetup -n %{pretty_name}-%{version}

# Unavilable, remove
%pom_remove_plugin  :maven-bundle-plugin
%pom_xpath_remove  "pom:packaging"

# Remove unneeded bits from the runner script
sed -i '/LEMS_HOME/ d' lems
sed -i '/CLASSPATH=/ d' lems
sed -i 's|\$CLASSPATH|%{_javadir}/%{name}/jlems.jar|' lems

# remove test that requires network if network is not available
# tested in mock with --enable-network --with=network: it PASSES
%if !%{with network}
rm -vf ./src/test/java/org/lemsml/jlems/test/URLInclusionReaderTest.java
%endif

# Specify correct location of lems in this test
sed -i 's|../jLEMS/lems|./lems|' ./src/test/java/org/lemsml/jlems/io/reader/JarResourceInclusionReaderTest.java

%build
%if %{with mvn_tests}
%mvn_build
%else
%mvn_build -f
%endif


%install
%mvn_install
install -v -pm 0755 lems -D %{buildroot}/%{_bindir}/lems


%check
# Try examples as tests:
# https://github.com/LEMS/jLEMS/blob/master/.travis.yml
# Update classpath for the local script to run tests
sed -i 's|%{_javadir}|%{buildroot}/%{_javadir}|' lems

./lems src/test/resources/example1.xml -nogui
./lems src/test/resources/example2.xml -nogui
./lems src/test/resources/example3.xml -nogui
./lems src/test/resources/example4.xml -nogui
./lems src/test/resources/example5.xml -nogui
./lems src/test/resources/example6.xml -nogui
./lems src/test/resources/example7.xml -nogui
./lems src/test/resources/example8.xml -nogui
./lems src/test/resources/bounce-conditional.xml -nogui
./lems src/test/resources/bounce.xml -nogui
./lems src/test/resources/ex-flat.xml -nogui
./lems src/test/resources/test_regime_iaf.xml -nogui
./lems src/test/resources/ex-properties.xml -nogui


%files -f .mfiles
%{_bindir}/lems
%license LICENSE
%doc README.md

%files javadoc -f .mfiles-javadoc
%license LICENSE

%changelog
* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 0.9.9.1-5
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.9.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Fri Dec 06 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.9.9.1-3
- rename to jlems and provide jLEMS for users.

* Mon Dec 02 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.9.9.1-2
- Fix as per review
- remove duplicated directory
- enable maven tests and add manual tests
- remove uneeded requires

* Sun Nov 10 2019 Ankur Sinha <ankursinha AT fedoraproject DOT org> - 0.9.9.1-1
- Initial build