Polybori needs to be built. In Fedora 16, essentially, this is
required to build
with current cudd-devel
polybori-0.8.1/libpolybori/include/polybori/ring/CCuddInterface.h
--- polybori-0.8.1/libpolybori/include/polybori/ring/CCuddInterface.h.orig
2012-04-24 23:17:47.328677842 -0300
+++ polybori-0.8.1/libpolybori/include/polybori/ring/CCuddInterface.h
2012-04-24 23:17:53.406678079 -0300
@@ -54,8 +54,6 @@ inline const char* error_text(PBORI_PREF
return("Invalid argument.");
case CUDD_INTERNAL_ERROR:
return("Internal error.");
- case CUDD_TIMEOUT_EXPIRED:
- return("Timed out.");
case CUDD_NO_ERROR:
return("No error. (Should not reach here!)");
}
too bad cudd.h version identifier is only a string
#define CUDD_VERSION "2.4.2"
so, probably need to write a check in
polybori-0.8.1/SConstruct
It is also required a patch similar to this one to be able to build
sagemath with it:
http://svn.mandriva.com/viewvc/packages/cooker/polybori/current/SPECS/polyb…
[...]
I am still too noob with fedora, so, I could not finish the build,
because, while I know
how to git clone a fedora package, do not know how to fetch sources.
For example,
I see easily how to clone http://pkgs.fedoraproject.org/gitweb/?p=polybori.git
but failed to finish build (did download upstream tarball) due to missing
+ tar xJf /home/pcpa/rpmbuild/SOURCES/polybori-logos.tar.xz -C
/home/pcpa/rpmbuild/BUILDROOT/polybori-0.8.1-2.fc16.x86_64/usr/share/icons/hicolor
tar (child): /home/pcpa/rpmbuild/SOURCES/polybori-logos.tar.xz: Cannot
open: No such file or directory
tar (child): Error is not recoverable: exiting now
and my guess to what to do failed also :-) Need to read more wiki
pages and check
fedpkg options for a readonly checkout, and if it can also be used to
fetch sources.
$ fedpkg clone polybori
Cloning into 'polybori'...
The authenticity of host 'pkgs.fedoraproject.org (209.132.181.4)'
can't be established.
RSA key fingerprint is fe:2e:6a:86:f3:41:e7:03:95:ea:9c:7f:75:9c:ce:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'pkgs.fedoraproject.org,209.132.181.4'
(RSA) to the list of known hosts.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Could not execute clone: Command '['git', 'clone',
'ssh://pcpa@pkgs.fedoraproject.org/polybori']' returned non-zero exit
status 128
but as stated above, it would still fail to build sagemath anyway:
Traceback (most recent call last):
File "./setup.py", line 18, in <module>
from module_list import ext_modules
File "/home/pcpa/rpmbuild/BUILD/sage-4.8/spkg/build/sage-4.8/module_list.py",
line 80, in <module>
for line in open(SAGE_LOCAL + "/share/polybori/flags.conf"):
IOError: [Errno 2] No such file or directory:
'/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/local/share/polybori/flags.conf'
[...]
Just so that it should be easy to reproduce what I did tonight in a
quick check of "how deep the water is", and initial adaptation of my
Mandriva sagemath spec, I will attach the spec and patches.
So far, mpir is not packaged in Mandriva, and besides sagemath, I also patched
Macaulay2 to not hardcode mpir dependency also, and use gmp5.
The patch to use unpatched ntl should have a nasty side effect in the notebook
because it will miss the error message, if in the terminal, it will
print the error message
to stderr anyway before calling abort. But really, it should have been sagemath
to convince upstream NTL for the need of a more complete api.
Thanks,
Paulo
I still did not learn all about procedures to get packages updated in
Fedora, so, I am asking for yet another "informal" review:
Spec URL: http://kenobi.mandriva.com/~pcpa/pari.spec
SRPM URL: http://kenobi.mandriva.com/~pcpa/pari-2.5.1-1.fc16.src.rpm
As expected, pari update causes several other packages to be
rebuilt. Most notably is that in this update, libpari-gmp.so.2
major is bumped to libpari-gmp.so.3.
With this pari, for sagemath build, it needs to rebuild at least the
previous lcalc package I asked for a review, and then actually apply
the lcalc patch, and from the installed build requires, needs do also
rebuild eclib.
Thanks,
Paulo
Hi,
Not making an "official" package review request, but please review:
Spec URL: http://kenobi.mandriva.com/~pcpa/lcalc.spec
SRPM URL: http://kenobi.mandriva.com/~pcpa/lcalc-1.23-1.fc16.src.rpm
It is not an official request because I just commented patch0 that is
required to build with pari 2.5.0, but fedora 16 has pari 2.3.5, and this
is another showstopper, as sagemath absolutely needs pari 2.5.0.
For the record, here is where sagemath build fails now:
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC
-fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
-mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC
-I/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/local/include
-Ic_lib/include
-I/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/devel/sage/sage/ext
-I/usr/include/python2.7 -c sage/libs/pari/gen.c -o
build/temp.linux-x86_64-2.7/sage/libs/pari/gen.o -w
sage/libs/pari/gen.c: In function '__pyx_pf_4sage_4libs_4pari_3gen_3gen_82Ser':
sage/libs/pari/gen.c:12377:293: error: too many arguments to function 'gtoser'
/usr/include/pari/paridecl.h:1144:5: note: declared here
sage/libs/pari/gen.c: In function
'__pyx_pf_4sage_4libs_4pari_3gen_3gen_226bnfisnorm':
sage/libs/pari/gen.c:26636:284: error: too few arguments to function 'bnfisnorm'
/usr/include/pari/paridecl.h:844:5: note: declared here
sage/libs/pari/gen.c: In function
'__pyx_pf_4sage_4libs_4pari_3gen_3gen_248idealmul':
sage/libs/pari/gen.c:29034:288: error: too few arguments to function
'idealmulred'
/usr/include/pari/paridecl.h:637:5: note: declared here
sage/libs/pari/gen.c: In function
'__pyx_pf_4sage_4libs_4pari_3gen_3gen_283quadhilbert':
sage/libs/pari/gen.c:32540:237: error: too few arguments to function
'quadhilbert'
/usr/include/pari/paridecl.h:780:5: note: declared here
sage/libs/pari/gen.c: In function
'__pyx_pf_4sage_4libs_4pari_3gen_3gen_329qflll':
sage/libs/pari/gen.c:36863:281: error: too few arguments to function 'qflll0'
/usr/include/pari/paridecl.h:716:5: note: declared here
sage/libs/pari/gen.c: In function
'__pyx_pf_4sage_4libs_4pari_3gen_3gen_330qflllgram':
sage/libs/pari/gen.c:36969:285: error: too few arguments to function
'qflllgram0'
/usr/include/pari/paridecl.h:717:5: note: declared here
sage/libs/pari/gen.c: In function
'__pyx_pf_4sage_4libs_4pari_3gen_3gen_361type':
sage/libs/pari/gen.c:39917:31: error: 't_FFELT' undeclared (first use
in this function)
sage/libs/pari/gen.c:39917:31: note: each undeclared identifier is
reported only once for each function it appears in
sage/libs/pari/gen.c:40173:31: error: 't_CLOSURE' undeclared (first
use in this function)
sage/libs/pari/gen.c: In function
'__pyx_pf_4sage_4libs_4pari_3gen_3gen_363algdep':
sage/libs/pari/gen.c:40419:281: error: too few arguments to function 'algdep'
/usr/include/pari/paridecl.h:687:5: note: declared here
sage/libs/pari/gen.c: In function
'__pyx_pf_4sage_4libs_4pari_3gen_3gen_365lindep':
sage/libs/pari/gen.c:40582:282: error: too few arguments to function 'lindep0'
/usr/include/pari/paridecl.h:694:5: note: declared here
error: command 'gcc' failed with exit status 1
Paulo
I see there is a libfac-devel package that attempts to provide
partially some of the features required.
To start, after building pari 2.5.1, rebuilding lcalc with the pari
patch applied, and rebuilding eclib (that AFAIK could use the
latest upstream, not just use the sagemath spkg), the build
failure now is:
[...]
g++ -pthread -shared build/temp.linux-x86_64-2.7/sage/libs/ppl.o
build/temp.linux-x86_64-2.7/sage/libs/ppl_shim.o -Lc_lib
-L/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/local/lib
-L/usr/lib64 -lcsage -lppl -lgmpxx -lgmp -lm -lstdc++ -lntl
-lpython2.7 -o build/lib.linux-x86_64-2.7/sage/libs/ppl.so
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC
-fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
-mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC
-I/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/local/include
-Ic_lib/include
-I/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/devel/sage/sage/ext
-I/usr/include/python2.7 -c sage/libs/ratpoints.c -o
build/temp.linux-x86_64-2.7/sage/libs/ratpoints.o -w
sage/libs/ratpoints.c:244:23: fatal error: ratpoints.h: No such file
or directory
compilation terminated.
error: command 'gcc' failed with exit status 1
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC
-fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
-mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC
-I/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/local/include/singular
-I/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/local/include/factory
-I/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/local/include
-Ic_lib/include
-I/home/pcpa/rpmbuild/BUILDROOT/sagemath-4.8-0.1.x86_64/usr/share/sagemath/devel/sage/sage/ext
-I/usr/include/python2.7 -c sage/libs/singular/singular.cpp -o
build/temp.linux-x86_64-2.7/sage/libs/singular/singular.o -w
sage/libs/singular/singular.cpp:241:29: fatal error:
factory/factory.h: No such file or directory
compilation terminated.
[...]
It is building in parallel, so, nice to know about the ratpoints
failure also. ratpoints I believe could just adapt the Mandriva
package I made long ago:
http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/ratpoints/curren…
but singular is a beast :-) At first I would suggest also using
my package from Mandriva, but since a lot of packages are
being reviewed, it should be worth to give a try at using the
actual latest upstream release. But beware now I am getting
at one of the most critical packages to build sagemath using
system wide packages... and ending with a funcional sagemath,
not just getting coredumps and memory corruption :-)
The Mandriva package can be viewed at:
http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/singular/current…
What I would change first is to install binaries in libexecdir
and no longer build a static library package.
Thanks,
Paulo
Hi,
I made a first contribution package for xedit, that happens to be the
text editor I use for most tasks :-) see
https://bugzilla.redhat.com/show_bug.cgi?id=815624
I would like to contribute to SciTech SIG. I notice there is
https://fedoraproject.org/wiki/SIGs/SciTech/SAGE, and actually, I have
packaged sagemath in Mandriva, and kept the package functional and updated
to latest upstream for around 3 years.
Sagemath itself depends on roughly 300 different upstream packages, and
other packages I would like to contribute at some point is salome, that
I also packaged in Mandriva, http://www.salome-platform.org/. Currently it
is not functional in Mandriva cooker but should be in released versions,
I got a hacked workaround described at
https://qa.mandriva.com/show_bug.cgi?id=65396
Other large "scientific" system I package is texlive, that I made several
perl and sh scripts that allows translating texlive package management
control files, etc to rpm specs, so that can keep up to date with latest
TeX Live. This is a very large set of packages, due to matching 1 to 1 with
texlive, e.g.:
$ urpmq -a texlive- | sort -u | wc -l
2376
There is already such a texlive packaging schema for fedora described
at http://fedoraproject.org/wiki/Features/TeXLive so I should at least be
able to help a bit :-)
I understand that there is plenty of bureaucracy to get packages in the
distro, and do not expect them to be "core" packages, but expect them to
be unsupported, contrib packages.
Most important packages I maintain in Mandriva should be gcc, glibc,
valgrind and java-1.*.0-openjdk.
Note that I am a Mandriva employee and my major interest is to become
more aware of how Fedora works, so, I want to contribute like I did with
several other projects in the past, that is, after work at home and/or
weekends.
Thanks,
Paulo