commit 1861c7a451db88d5ab2b65791cc26e8907e158e9743307c1699ce7eea6d26a30 Author: Ismail Dönmez Date: Wed May 3 16:08:41 2017 +0000 Accepting request 490019 from home:badshah400:branches:science [Sorry for the multiple subs] New package: cadabra2 -- A CAS for solving problems in field theory (intended to replace cadabra) OBS-URL: https://build.opensuse.org/request/show/490019 OBS-URL: https://build.opensuse.org/package/show/science/cadabra2?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/2.1.4.tar.gz b/2.1.4.tar.gz new file mode 100644 index 0000000..8c11584 --- /dev/null +++ b/2.1.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89a8dc02f41fcb1061007fc87034975ba2a249ea8e03b2e5f035b8a123459559 +size 4475773 diff --git a/cadabra2-cmake-error.patch b/cadabra2-cmake-error.patch new file mode 100644 index 0000000..6683fac --- /dev/null +++ b/cadabra2-cmake-error.patch @@ -0,0 +1,13 @@ +Index: cadabra2-2.1.4/CMakeLists.txt +=================================================================== +--- cadabra2-2.1.4.orig/CMakeLists.txt ++++ cadabra2-2.1.4/CMakeLists.txt +@@ -17,7 +17,7 @@ endif() + if(GIT_COMMIT_DATE) + set(CADABRA_VERSION_DATE "${GIT_COMMIT_DATE}") + else() +- execute(COMMAND date -I OUTPUT_VARIABLE THE_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) ++ execute_process(COMMAND date -I OUTPUT_VARIABLE THE_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) + set(CADABRA_VERSION_DATE "${THE_DATE}") + endif() + message("-- Building ${CADABRA_VERSION_MAJOR}.${CADABRA_VERSION_MINOR}.${CADABRA_VERSION_PATCH}") diff --git a/cadabra2-rpmlintrc b/cadabra2-rpmlintrc new file mode 100644 index 0000000..b0ea239 --- /dev/null +++ b/cadabra2-rpmlintrc @@ -0,0 +1,2 @@ +# More than a thousand warnings about doxygen generated html doc files +addFilter("cadabra2-doc.* file-contains-date-and-time") diff --git a/cadabra2.changes b/cadabra2.changes new file mode 100644 index 0000000..2e5fd35 --- /dev/null +++ b/cadabra2.changes @@ -0,0 +1,56 @@ +------------------------------------------------------------------- +Sun Apr 23 12:14:41 UTC 2017 - badshah400@gmail.com + +- BuildRequires: texlive-epstopdf instead of texlive-epstopdf-bin + to fix build failures on Leap 42.1. + +------------------------------------------------------------------- +Sun Apr 23 07:24:59 UTC 2017 - badshah400@gmail.com + +- Update to version 2.1.4: + * Enable packages to be written using Cadabra notation, instead + of only pure Python (still experimental). + * Young tableaux properties Tableau and FilledTableau the + related algorithm lr_tensor are available again. + * Sorting Majorana spinors possible again using sort_spinors. + * Extended rename_dummies with capability to rename indices to + different set. + * Make vary work on powers of expressions with dummy indices. + * Substitution of sub-sums now available (e.g. substitute of + A+B=C in ex:=A+B+C+D). + * Improved LaTeX export to make printed notebooks look much + better. + * Many improvements to the component engine, in particular for + handling of derivatives and fractions involving tensors. + * Better line spacing for line-wrapped equations. + * Smarter scroll-to-cell behaviour of the notebook. + * Canonicalising expressions with component values for indices + now works again. + * The unwrap algorithm can now be guided about what to unwrap, + and also knows about spinors and Dirac bars. + * Experimental support to use Cadabra directly from C++ code, as + a library (see the c++lib directory). + * Fixes for using a custom post_process defined as a function + nested inside another. + * Rudimentary timing logic, try server.totals(); + * Fixed: pasting text in the notebook sometimes double-pastes. + * Fixed: split_index does not work properly on left- and + right-hand side of equations. + * Fixed: sort_product does not always sort expressions. + * Fixed: eliminate_metric only acts at top level of an + expression, should have deep=True by default. + * Fixed: a bug which would lead to a segfault when using + deep=True. +- Rebase cadabra2-cmake-error.patch for version update. +- Add %{name}-rpmlintrc file to suppress warnings about the + presence of "__DATE__" and/or "__TIME__" in generated html files + for documentation (%{name}-doc). + +------------------------------------------------------------------- +Tue Jan 17 09:09:44 UTC 2017 - badshah400@gmail.com + +- Initial package. +- Add cadabra2-cmake-error.patch to make sure CMakeLists.txt + invokes "execute_process" instead of "execute"; fixes build + failures. + diff --git a/cadabra2.spec b/cadabra2.spec new file mode 100644 index 0000000..1f6d83e --- /dev/null +++ b/cadabra2.spec @@ -0,0 +1,246 @@ +# +# spec file for package cadabra2 +# +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + + +Name: cadabra2 +Version: 2.1.4 +Release: 0 +Summary: A computer algebra system for solving problems in field theory +License: GPL-3.0+ +Group: Productivity/Scientific/Math +Url: http://cadabra.science/ +Source0: https://github.com/kpeeters/cadabra2/archive/%{version}.tar.gz +Source1: %{name}-rpmlintrc +# PATCH-FIX-UPSTREAM cadabra2-cmake-error.patch badshah400@gmail.com -- Cmake needs to call "execute_process" instead of "execute"; fixes build failures +Patch0: cadabra2-cmake-error.patch +BuildRequires: cmake +BuildRequires: doxygen +BuildRequires: gcc-c++ +BuildRequires: gmp-devel +BuildRequires: hicolor-icon-theme +BuildRequires: libuuid-devel +BuildRequires: pcre-devel +BuildRequires: pkgconfig +BuildRequires: texlive-dvipng +BuildRequires: texlive-dvipng-bin +BuildRequires: texlive-epstopdf +BuildRequires: texlive-latex-bin +BuildRequires: texlive-makeindex-bin +BuildRequires: texlive-metafont-bin +BuildRequires: update-desktop-files +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(gtkmm-3.0) +BuildRequires: pkgconfig(sqlite3) +BuildRequires: tex(8r.enc) +BuildRequires: tex(adjustbox.sty) +BuildRequires: tex(caption.sty) +BuildRequires: tex(colortbl.sty) +BuildRequires: tex(fancyhdr.sty) +BuildRequires: tex(float.sty) +BuildRequires: tex(geometry.sty) +BuildRequires: tex(helvet.sty) +BuildRequires: tex(hyperref.sty) +BuildRequires: tex(multirow.sty) +BuildRequires: tex(natbib.sty) +BuildRequires: tex(pcrr8t.tfm) +BuildRequires: tex(phvr8t.tfm) +BuildRequires: tex(psyr.tfm) +BuildRequires: tex(sectsty.sty) +BuildRequires: tex(tabu.sty) +BuildRequires: tex(textcomp.sty) +BuildRequires: tex(tocloft.sty) +BuildRequires: tex(wasy7.tfm) +BuildRequires: tex(wasysym.sty) +BuildRequires: tex(xtab.sty) +BuildRequires: tex(zptmcm7t.tfm) tex(rsfs10.tfm) +Requires(post): texlive-kpathsea-bin +Requires(postun): texlive-kpathsea-bin +Recommends: %{name}-doc +Recommends: %{name}-examples +BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if 0%{?suse_version} > 1320 +BuildRequires: libboost_filesystem-devel +BuildRequires: libboost_headers-devel +BuildRequires: libboost_program_options-devel +BuildRequires: libboost_python3-devel +BuildRequires: libboost_regex-devel +BuildRequires: libboost_system-devel +BuildRequires: python3-devel +BuildRequires: python3-matplotlib +BuildRequires: python3-sympy +%else +BuildRequires: boost-devel +BuildRequires: python-devel +BuildRequires: python-matplotlib +BuildRequires: python-sympy +%endif + +%description +Cadabra2 is a computer algebra system (CAS) designed specifically for +the solution of problems encountered in field theory. It has extensive +functionality for tensor computer algebra, tensor polynomial +simplification including multi-term symmetries, fermions and +anti-commuting variables, Clifford algebras and Fierz transformations, +implicit coordinate dependence, multiple index types and many more. +The input format is a subset of TeX. Both a command-line and a +graphical interface are available. + +Key features of Cadabra2: +- Input and output using TeX notation. +- Designed for field-theory problems, with handling of anti-commuting + and non-commuting objects without special notations for their + products, gamma matrix algebra, Fierz identities, Dirac conjugation, + vielbeine, flat and curved, covariant and contravariant indices, + implicit dependence of tensors on coordinates, partial and covariant + derivatives... +- Powerful tensor simplification algorithms, not just for mono-term + symmetries but also for multi-terms symmetries like the Bianchi + identity, or dimensionally-dependent symmetries like the Schouten + identity. + +%package gui +Summary: GUI for cadabra2: computer algebra system for problems in field theory +Group: Productivity/Scientific/Math +Requires: %{name} = %{version} +Obsoletes: cadabra < 2.0 +Provides: cadabra = %{version} + +%description gui +Cadabra2 is a computer algebra system (CAS) designed specifically for +the solution of problems encountered in field theory. + +This package provides the GUI for %{name} and it's desktop menu integration. + +%package examples +Summary: A computer algebra system for solving problems in field theory +Group: Productivity/Scientific/Math +Requires: %{name} = %{version} + +%description examples +Cadabra2 is a computer algebra system (CAS) designed specifically for +the solution of problems encountered in field theory. + +This package provides examples for %{name}. + +%package doc +Summary: A computer algebra system for solving problems in field theory +Group: Documentation/HTML +Obsoletes: cadabra-doc < 2.0 +Provides: cadabra-doc = %{version} + +%description doc +Cadabra2 is a computer algebra system (CAS) designed specifically for +the solution of problems encountered in field theory. + +This package provides html documentation for %{name}. + +%package doc-pdf +Summary: A computer algebra system for solving problems in field theory +# FIXME: use correct group, see "https://en.opensuse.org/openSUSE:Package_group_guidelines" +Group: Documentation/PDF + +%description doc-pdf +Cadabra2 is a computer algebra system (CAS) designed specifically for +the solution of problems encountered in field theory. + +This package provides documentation in the form of a PDF file for %{name}. + +%prep +%setup -q +%patch0 -p1 + +%build +mkdir build && pushd build +# FIXME: you should use %%cmake macro but it doesn't work +cmake \\\ + -DCMAKE_INSTALL_PREFIX=%{_prefix} \\\ + -DPACKAGING_MODE=ON \\\ +%if 0%{?suse_version} <= 1320 + -DUSE_PYTHON_3=OFF \\\ +%endif + -DINSTALL_LATEX_DIR=%{_datadir}/texmf \\\ + -DENABLE_FRONTEND=ON \\\ + .. + +make %{?_smp_mflags} +popd + +doxygen +pushd doxygen/latex +make %{?_smp_mflags} +popd + +%install +%cmake_install DESTDIR=%{buildroot} + +%suse_update_desktop_file cadabra2-gtk + +%post +%{_bindir}/texhash +/sbin/ldconfig + +%post gui +%icon_theme_cache_post +%desktop_database_post + +%postun +%{_bindir}/texhash +/sbin/ldconfig + +%postun gui +%icon_theme_cache_postun +%desktop_database_postun + +%files +%defattr(-,root,root) +%doc README.rst doc/license.txt +%{_bindir}/cadabra-server +%{_bindir}/%{name} +%{_bindir}/%{name}python +%{_bindir}/%{name}html +%if 0%{?suse_version} > 1320 +%{python3_sitearch}/cdb +%{python3_sitearch}/cadabra2.so +%{python3_sitearch}/cadabra2_defaults.py +%else +%{python_sitearch}/cdb +%{python_sitearch}/cadabra2.so +%{python_sitearch}/cadabra2_defaults.py +%endif +%{_datadir}/%{name}/ +%{_libexecdir}/*.so +%{_datadir}/texmf/tex/latex/cadabra2/ + +%files gui +%defattr(-,root,root) +%{_bindir}/%{name}-gtk +%{_datadir}/icons/hicolor/*/apps/cadabra2-gtk.* +%{_datadir}/applications/cadabra2-gtk.desktop + +%files examples +%defattr(-,root,root) +%doc examples/ + +%files doc +%defattr(-,root,root) +%doc doxygen/html + +%files doc-pdf +%defattr(-,root,root) +%doc doxygen/latex/refman.pdf + +%changelog