summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Orlitzky <mjo@gentoo.org>2020-03-06 11:52:59 -0500
committerMichael Orlitzky <mjo@gentoo.org>2020-03-06 11:53:28 -0500
commit72f1a1873ac70ee1a9ecd27afa8c3c5fb10b58f7 (patch)
tree40895a288b5bf1f45ae79f45ca13181c5477b357 /sci-mathematics
parentsys-kernel/linux-firmware: new snapshot (diff)
downloadgentoo-72f1a1873ac70ee1a9ecd27afa8c3c5fb10b58f7.tar.gz
gentoo-72f1a1873ac70ee1a9ecd27afa8c3c5fb10b58f7.tar.bz2
gentoo-72f1a1873ac70ee1a9ecd27afa8c3c5fb10b58f7.zip
sci-mathematics/gfan: new version 0.6.2.
Update our version of gfan to the latest upstream v0.6.2, from September 28th 2017. The new ebuild is based off of the version that François Bissey maintains in the sage-on-gentoo overlay, with a few additional changes: * Merged the EAPI=7 and slot dependency updates from ::gentoo. * Change the LICENSE to "GPL-2+", to match the upstream LICENSE file. * Stripped some more CFLAGS mangling out of the upstream Makefile. Corresponding to this we now replace "-O3" by "-O2" in the ebuild. * Added USE="doc", to build and install the LaTeX manual. Closes: https://bugs.gentoo.org/711492 Package-Manager: Portage-2.3.84, Repoman-2.3.20 Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
Diffstat (limited to 'sci-mathematics')
-rw-r--r--sci-mathematics/gfan/Manifest1
-rw-r--r--sci-mathematics/gfan/files/gfan-0.6.2-Makefile.patch155
-rw-r--r--sci-mathematics/gfan/files/gfan-0.6.2-testsuite.patch222
-rw-r--r--sci-mathematics/gfan/files/gfan-0.6.2-xcode9.3_compat.patch13
-rw-r--r--sci-mathematics/gfan/gfan-0.6.2.ebuild56
5 files changed, 447 insertions, 0 deletions
diff --git a/sci-mathematics/gfan/Manifest b/sci-mathematics/gfan/Manifest
index 09b70904371c..b0e6c30ed01b 100644
--- a/sci-mathematics/gfan/Manifest
+++ b/sci-mathematics/gfan/Manifest
@@ -1 +1,2 @@
DIST gfan0.5.tar.gz 1134987 BLAKE2B 73ea793f5dbceb76a9f143a258ee3e38e1466e4e15ed96dbabb58f33d3a091a885479dd00f8179d3bf2c85cf275605823f63aa33272f1f9984e0fc5841ab35e9 SHA512 11a9657adcd5b39f73244450c09b132d8cd19474d0f9151c0127682bc16847537e4096d39e8a0a63b5c6aef6720e54a72bfd361a5271808d5a5595fd2df494fa
+DIST gfan0.6.2.tar.gz 1321059 BLAKE2B 1ed61e1e084a1ceb65dd21848440bc3a90486c0ce4012b3b64c8029e89636696d2b0e5446ea156d2cf050b5db179c7c2f25c97e683cecf6e9616e8553d8513bf SHA512 5961820750af2522fdc1a86c0254742c3b003607a8707df5d6cd5f0bc6461e4d3db3b1d3cb537979d57eb9dff387974a58aeb91d0b5246d7c701cadc5a2cf4cf
diff --git a/sci-mathematics/gfan/files/gfan-0.6.2-Makefile.patch b/sci-mathematics/gfan/files/gfan-0.6.2-Makefile.patch
new file mode 100644
index 000000000000..8e8db53bc911
--- /dev/null
+++ b/sci-mathematics/gfan/files/gfan-0.6.2-Makefile.patch
@@ -0,0 +1,155 @@
+diff --git a/Makefile b/Makefile
+index 2c9f949..a49a590 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2,8 +2,8 @@ ALL: default
+
+ # When -g is used, it seems that stackdump does not work.
+ # GPROFFLAG = -pg
+-GPROFFLAG = -g
+-#GPROFFLAG =
++#GPROFFLAG = -g
++GPROFFLAG =
+
+ PREFIX?=/usr/local
+
+@@ -22,20 +22,8 @@ STACTDUMP_OPTIONS = -DSTACKDUMP_ENABLED -D__assert_fail=__assert_fail2
+ endif
+
+
+-ifeq ($(sagepath),)
+-SAGE_LINKOPTIONS =
+-SAGE_INCLUDEOPTIONS =
+-else
+-SAGE_LINKOPTIONS = -L$(sagepath)/ -lpython2.6 -lcsage -lsingular
+-SAGE_INCLUDEOPTIONS = -I $(sagepath)/
+-SAGE_OBJECTS = sage.o sage_link.so
+-
+-sage_link.so: sage_link.pyx setup.py
+- python setup.py build_ext --inplace --pyrex-include-dirs=$(SAGE_ROOT)/devel/sage/
+-endif
+-
+ ifeq ($(gmppath),)
+-GMP_LINKOPTIONS = -lgmp
++GMP_LINKOPTIONS = -lgmp -lm
+ GMP_INCLUDEOPTIONS =
+ else
+ GMP_LINKOPTIONS = $(gmppath)/lib/libgmp.a
+@@ -49,7 +37,7 @@ CDDDEFINE_PREFIX = -DNOCDDPREFIX
+ endif
+
+ ifeq ($(cddpath),)
+-CDD_LINKOPTIONS = -L/usr/local -lcddgmp
++CDD_LINKOPTIONS = -lcddgmp
+ CDD_INCLUDEOPTIONS =
+ else
+ CDD_LINKOPTIONS = $(cddpath)/lib/libcddgmp.a
+@@ -71,37 +59,8 @@ SOPLEX_OBJECTS = lp_soplexcdd.o
+ endif
+
+
+-# rememember to adjust USEFACTORY in field_rationalfunctions2
+-ifeq ($(singular),)
+-ifeq ($(factory),)
+-SINGULAR_PATH =
+-SINGULAR_LINKOPTIONS =
+-SINGULAR_INCLUDEOPTIONS =
+-SINGULAR_OBJECTS = src/polynomialgcd.o
+-else
+-SINGULAR_PATH =
+-SINGULAR_LINKOPTIONS = -lcf -lcfmem
+-SINGULAR_INCLUDEOPTIONS = -I /usr/local/include/factory/
+-SINGULAR_OBJECTS = src/polynomialgcd.o src/ftmpl_inst.o
+-endif
+-else
+-#SINGULAR_PATH = $(HOME)/math/software/Singular-3-1-0
+-#SINGULAR_LINKOPTIONS = -L$(SINGULAR_PATH)/Singular -lsingular -lncurses -lreadline
+-#SINGULAR_INCLUDEOPTIONS = -I $(SINGULAR_PATH)/kernel -I $(SINGULAR_PATH)/omalloc
+-#SINGULAR_OBJECTS = src/singular.o src/singularconversion.o
+-SINGULAR_PATH = $(HOME)/math/software/Singular-svn/trunk/x86_64-Linux
+-SINGULAR_LINKOPTIONS = -L$(SINGULAR_PATH)/lib -lsingular -lncurses -lreadline -lcf -lcfmem
+-SINGULAR_INCLUDEOPTIONS = -I $(SINGULAR_PATH)/include -I $(SINGULAR_PATH)/include/omalloc
+-SINGULAR_OBJECTS = src/ftmpl_inst.o src/singular.o src/singularconversion.o
+-#Run the following line before running gfan
+-#export LD_LIBRARY_PATH="/home/anders/math/software/Singular-svn/trunk/x86_64-Linux/lib/:${LD_LIBRARY_PATH}"
+-endif
+-
+-# To produce factory templates:
+-#g++ -c /home/anders/math/software/factory-3-1-7/ftmpl_inst.cc -fno-implicit-templates -I /usr/local/include/factory/ -I/home/anders/math/software/factory-3-1-7/ -O2 -fomit-frame-pointer -o ftmpl_inst.o
+-
+-ADDITIONALLINKOPTIONS = $(CDD_LINKOPTIONS) $(GMP_LINKOPTIONS) $(SOPLEX_LINKOPTIONS) $(SINGULAR_LINKOPTIONS) $(SAGE_LINKOPTIONS)
+-ADDITIONALINCLUDEOPTIONS = $(CDD_INCLUDEOPTIONS) $(GMP_INCLUDEOPTIONS) $(SOPLEX_INCLUDEOPTIONS) $(SINGULAR_INCLUDEOPTIONS) $(SAGE_INCLUDEOPTIONS)
++ADDITIONALLINKOPTIONS = $(CDD_LINKOPTIONS) $(GMP_LINKOPTIONS) $(SOPLEX_LINKOPTIONS)
++ADDITIONALINCLUDEOPTIONS = $(CDD_INCLUDEOPTIONS) $(GMP_INCLUDEOPTIONS) $(SOPLEX_INCLUDEOPTIONS)
+
+
+ MKDIR=mkdir -p
+@@ -110,13 +69,11 @@ MKDIR=mkdir -p
+ PREFIX =
+ SHELL = /bin/sh
+ #ARCH = LINUX
+-CC = $(PREFIX)gcc
+-CLINKER = $(CC)
+-CXX = $(PREFIX)g++
+-CCLINKER = $(CXX)
++CC ?= $(PREFIX)gcc
++CXX ?= $(PREFIX)g++
+ #OPTFLAGS = -O2 -DGMPRATIONAL -DNDEBUG
+ # Note that gcc produces wrong code with -O3
+-OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O2 #-O3 -fno-guess-branch-probability #-DNDEBUG
++OPTFLAGS = -DGMPRATIONAL -Wuninitialized
+ #OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -mavx -msse2 -finline-limit=1000 -ffast-math -Wuninitialized # -fno-guess-branch-probability #-DNDEBUG -ftree-vectorizer-verbose=2
+ #OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O1 -fno-guess-branch-probability
+ #-DNDEBUG
+@@ -125,10 +82,10 @@ OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O2 #-O3 -
+ #OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG
+ #OPTFLAGS = -DGMPRATIONAL -Wuninitialized -fno-omit-frame-pointer -O3 -mavx -msse2 -ftree-vectorizer-verbose=2 -ffast-math #-DNDEBUG
+
+-CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic
+-#CFLAGS = $(OPTFLAGS) $(GPROFFLAG) $(STACTDUMP_OPTIONS) $(ADDITIONALINCLUDEOPTIONS) -D_GLIBCXX_DEBUG -std=c++0x -g $(CDDDEFINE_PREFIX) #-pedantic
+-CCFLAGS = $(CFLAGS)
+-FFLAGS = $(OPTFLAGS)
++CFLAGS := $(CFLAGS) $(OPTFLAGS) $(GPROFFLAG) $(ADDITIONALINCLUDEOPTIONS) #-pedantic
++CXXFLAGS := $(CXXFLAGS) $(OPTFLAGS) $(GPROFFLAG) $(ADDITIONALINCLUDEOPTIONS) #-pedantic
++
++SINGULAR_OBJECTS = src/polynomialgcd.o
+
+ CATSOBJECTS = lp_cdd.o \
+ parser.o \
+@@ -394,16 +351,15 @@ EXECS = $(MAIN)
+ # (compiling with gcc version 4.7.2 and running gfan _tropicaltraverse on a starting cone for Grassmann3_7)
+ # Either this is a bug in the code or in the compiler. The bug disappears by compiling with -fno-guess-branch-probability
+ src/symmetrictraversal.o: src/symmetrictraversal.cpp
+- $(CXX) $(CFLAGS) -fno-guess-branch-probability -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
++ $(CXX) $(CXXFLAGS) -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
+ # If compiling with clang, use the line below instead:
+-# $(CXX) $(CFLAGS) -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
++# $(CXX) $(CXXFLAGS) -c src/symmetrictraversal.cpp -o src/symmetrictraversal.o
+
+ # Define suffixes to make the program compile on legolas.imf.au.dk :
+ .SUFFIXES: .o .cpp .c
+
+ OBJECTS = $(addprefix src/,$(SOPLEX_OBJECTS)) \
+ $(SINGULAR_OBJECTS) \
+- $(SAGE_OBJECTS) \
+ $(addprefix src/,$(CATSOBJECTS)) \
+ $(addprefix src/,$(APPOBJECTS)) \
+ src/symmetrictraversal.o
+@@ -420,7 +376,7 @@ default: $(OBJECTS) $(ADDITIONALOBJECTS) $(EXECS)
+
+ $(MAIN): $(OBJECTS)
+ # $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread -o $(MAIN)
+- $(CCLINKER) $(OBJECTS) $(ADDITIONALLINKOPTIONS) $(GPROFFLAG) -lpthread -rdynamic -o $(MAIN)
++ $(CXX) $(CXXFLAGS) -pthread -o $(MAIN) $(LDFLAGS) $(OBJECTS) -lpthread $(ADDITIONALLINKOPTIONS) $(GPROFFLAG)
+
+ release:
+ rm -f -r $(RELEASEDIR)/*
+@@ -546,7 +502,7 @@ check:
+ .c.o:
+ $(CC) $(CFLAGS) -c $< -o $(patsubst %.c,%.o,$<)
+ .cpp.o:
+- $(CXX) $(CFLAGS) -c $< -o $(patsubst %.cpp,%.o,$<)
++ $(CXX) $(CXXFLAGS) -c $< -o $(patsubst %.cpp,%.o,$<)
+
+ # wget http://ftp.sunet.se/pub/gnu/gmp/gmp-4.2.2.tar.gz
+ # tar -xzvf gmp-4.2.2.tar.gz
diff --git a/sci-mathematics/gfan/files/gfan-0.6.2-testsuite.patch b/sci-mathematics/gfan/files/gfan-0.6.2-testsuite.patch
new file mode 100644
index 000000000000..920646e486e4
--- /dev/null
+++ b/sci-mathematics/gfan/files/gfan-0.6.2-testsuite.patch
@@ -0,0 +1,222 @@
+diff --git a/src/app_test.cpp b/src/app_test.cpp
+index 755bfe6..183c735 100644
+--- a/src/app_test.cpp
++++ b/src/app_test.cpp
+@@ -562,6 +562,9 @@ int testIntegers()
+ failed.push_back(i->folder);
+ }
+ cout<<"\n";
++ cout<<"Number of succesful tests "<<good<<endl;
++ cout<<"Number of failed tests "<<bad<<endl;
++
+ if(!failed.empty())
+ {
+ cout<<"Failed tests:\n-------------\n";
+@@ -569,11 +572,9 @@ int testIntegers()
+ {
+ cout<<*i<<" FAILED!\n";
+ }
++ return 1;
+ }
+
+- cout<<"Number of succesful tests "<<good<<endl;
+- cout<<"Number of failed tests "<<bad<<endl;
+-
+ return 0;
+ }
+ };
+diff --git a/testsuite/0008PolynomialSetUnion/command b/testsuite/0008PolynomialSetUnion/command
+index cbb23d6..d61cb71 100644
+--- a/testsuite/0008PolynomialSetUnion/command
++++ b/testsuite/0008PolynomialSetUnion/command
+@@ -1 +1 @@
+-%s _bases | %s _polynomialsetunion |sort
++%s _bases | %s _polynomialsetunion |LC_ALL=C sort|tail -n +2 | sed -e '$ d'
+diff --git a/testsuite/0008PolynomialSetUnion/output b/testsuite/0008PolynomialSetUnion/output
+index 38dfb6f..12a65c7 100644
+--- a/testsuite/0008PolynomialSetUnion/output
++++ b/testsuite/0008PolynomialSetUnion/output
+@@ -1,62 +1,60 @@
+-{
++a*b-c^6,
++a*b^2-c^3,
++a*b^4-b,
++a*c-b^6,
++a*c^2-b,
++a*c^6-c,
++a-b^11,
++a-b^2*c,
++a-c^9,
+ a^11-c,
+ a^15-a,
++a^2*b-c,
+ a^2*b^3-a,
++a^2*c-b^3,
+ a^2-b^8,
+-a^2*b-c,
+ a^2-c^4,
+-a^2*c-b^3,
+-a^3-b^5,
+-a^3-b*c^2,
+ a^3*c^2-c}
+-a^4-b^2,
++a^3-b*c^2,
++a^3-b^5,
+ a^4*c-a,
++a^4-b^2,
+ a^5-c^3,
+ a^6*b-a,
+ a^6-b*c,
+ a^8-c^2,
+ a^9-b,
+-a-b^11,
+-a-b^2*c,
+-a*b^2-c^3,
+-a*b^4-b,
+-a*b-c^6,
+-a*c^2-b,
+-a*c^6-c,
+-a-c^9,
+-a*c-b^6,
++b*c-a^6,
++b*c^2-a^3,
++b*c^4-c,
++b-a*c^2,
++b-a^9,
++b-c^11,
+ b^11-a,
+ b^15-b,
+-b^2-a^4,
++b^2*c-a,
+ b^2*c^3-b,
++b^2-a^4,
+ b^2-c^8,
+-b^2*c-a,
+ b^3-a^2*c,
+ b^3-c^5,
+ b^4-c^2,
+ b^5-a^3,
+-b^6-a*c,
+ b^6*c-b,
++b^6-a*c,
+ b^8-a^2,
+ b^9-c,
+-b-a^9,
+-b-a*c^2,
+-b-c^11,
+-b*c^2-a^3,
+-b*c^4-c,
+-b*c-a^6,
++c-a^11,
++c-a^2*b,
++c-b^9,
+ c^11-b,
+ c^15-c,
+ c^2-a^8,
+ c^2-b^4,
+-c^3-a^5,
+ c^3-a*b^2,
++c^3-a^5,
+ c^4-a^2,
+ c^5-b^3,
+ c^6-a*b,
+ c^8-b^2,
+ c^9-a,
+-c-a^11,
+-c-a^2*b,
+-c-b^9,
+-Q[a,b,c]
+diff --git a/testsuite/0008PolynomialSetUnion/outputNew b/testsuite/0008PolynomialSetUnion/outputNew
+index 38dfb6f..12a65c7 100644
+--- a/testsuite/0008PolynomialSetUnion/outputNew
++++ b/testsuite/0008PolynomialSetUnion/outputNew
+@@ -1,62 +1,60 @@
+-{
++a*b-c^6,
++a*b^2-c^3,
++a*b^4-b,
++a*c-b^6,
++a*c^2-b,
++a*c^6-c,
++a-b^11,
++a-b^2*c,
++a-c^9,
+ a^11-c,
+ a^15-a,
++a^2*b-c,
+ a^2*b^3-a,
++a^2*c-b^3,
+ a^2-b^8,
+-a^2*b-c,
+ a^2-c^4,
+-a^2*c-b^3,
+-a^3-b^5,
+-a^3-b*c^2,
+ a^3*c^2-c}
+-a^4-b^2,
++a^3-b*c^2,
++a^3-b^5,
+ a^4*c-a,
++a^4-b^2,
+ a^5-c^3,
+ a^6*b-a,
+ a^6-b*c,
+ a^8-c^2,
+ a^9-b,
+-a-b^11,
+-a-b^2*c,
+-a*b^2-c^3,
+-a*b^4-b,
+-a*b-c^6,
+-a*c^2-b,
+-a*c^6-c,
+-a-c^9,
+-a*c-b^6,
++b*c-a^6,
++b*c^2-a^3,
++b*c^4-c,
++b-a*c^2,
++b-a^9,
++b-c^11,
+ b^11-a,
+ b^15-b,
+-b^2-a^4,
++b^2*c-a,
+ b^2*c^3-b,
++b^2-a^4,
+ b^2-c^8,
+-b^2*c-a,
+ b^3-a^2*c,
+ b^3-c^5,
+ b^4-c^2,
+ b^5-a^3,
+-b^6-a*c,
+ b^6*c-b,
++b^6-a*c,
+ b^8-a^2,
+ b^9-c,
+-b-a^9,
+-b-a*c^2,
+-b-c^11,
+-b*c^2-a^3,
+-b*c^4-c,
+-b*c-a^6,
++c-a^11,
++c-a^2*b,
++c-b^9,
+ c^11-b,
+ c^15-c,
+ c^2-a^8,
+ c^2-b^4,
+-c^3-a^5,
+ c^3-a*b^2,
++c^3-a^5,
+ c^4-a^2,
+ c^5-b^3,
+ c^6-a*b,
+ c^8-b^2,
+ c^9-a,
+-c-a^11,
+-c-a^2*b,
+-c-b^9,
+-Q[a,b,c]
diff --git a/sci-mathematics/gfan/files/gfan-0.6.2-xcode9.3_compat.patch b/sci-mathematics/gfan/files/gfan-0.6.2-xcode9.3_compat.patch
new file mode 100644
index 000000000000..83f4b66f8239
--- /dev/null
+++ b/sci-mathematics/gfan/files/gfan-0.6.2-xcode9.3_compat.patch
@@ -0,0 +1,13 @@
+diff --git a/src/app_main.cpp b/src/app_main.cpp
+index a33c042..e7ade81 100644
+--- a/src/app_main.cpp
++++ b/src/app_main.cpp
+@@ -205,7 +205,7 @@ public:
+ }
+
+ ep->close();
+- delete ep;//<--- In next release, make the class virtual
++// delete ep;//<--- In next release, make the class virtual # this is miscompiled clang@xcode-6.3
+
+ printf("\n");
+
diff --git a/sci-mathematics/gfan/gfan-0.6.2.ebuild b/sci-mathematics/gfan/gfan-0.6.2.ebuild
new file mode 100644
index 000000000000..07d32ab49077
--- /dev/null
+++ b/sci-mathematics/gfan/gfan-0.6.2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Compute Groebner fans and tropical varieties"
+HOMEPAGE="https://users-math.au.dk/~jensen/software/gfan/gfan.html"
+SRC_URI="https://users-math.au.dk/~jensen/software/${PN}/${PN}${PV}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc"
+
+BDEPEND="doc? ( virtual/latex-base )"
+DEPEND="dev-libs/gmp:0=[cxx]
+ sci-libs/cddlib:0="
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${PN}${PV}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.6.2-xcode9.3_compat.patch"
+ "${FILESDIR}/${PN}-0.6.2-testsuite.patch"
+ "${FILESDIR}/${PN}-0.6.2-Makefile.patch"
+ )
+
+pkg_setup() {
+ tc-export CC CXX
+ append-cxxflags -DNOCDDPREFIX
+}
+
+src_configure() {
+ # The upstream Makefile says that GCC produces bad code with -O3.
+ replace-flags "-O3" "-O2"
+ default
+}
+
+src_compile() {
+ default
+ if use doc; then
+ pushd doc > /dev/null || die
+ # The LaTeX build commands need to be repeated until the
+ # document "stops changing," which is not as easy as it
+ # sounds to detect. Running it twice seems to work here.
+ pdflatex manual.tex && bibtex manual && pdflatex manual.tex || die
+ popd > /dev/null || die
+ fi
+}
+
+src_install() {
+ emake PREFIX="${ED}/usr" install
+ use doc && dodoc doc/manual.pdf
+}