[Scitech] Experiment with sagemath and Polybori needs to be built

Paulo César Pereira de Andrade paulo.cesar.pereira.de.andrade at gmail.com
Wed Apr 25 20:56:24 UTC 2012


Em 25 de abril de 2012 17:35, Jerry James <loganjerry at gmail.com> escreveu:
> 2012/4/24 Paulo César Pereira de Andrade
> <paulo.cesar.pereira.de.andrade at gmail.com>:
>>  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!)");
>>     }
>
> I don't understand.  What problem does this solve?

  polybori does not build because CUDD_TIMEOUT_EXPIRED is
not defined in cudd.h (it should be in an enum).

> Also, note that up through Fedora 16, we had a package named
> python-polybori, with various subpackages.  A few months ago, I
> reorganized the packages to produce a package named polybori and
> various subpackages (including a python-polybori subpackage).  This is
> available in Fedora 17 (to be released in about a month) and Fedora
> Rawhide.  I will probably not backport that reorganization to Fedora
> 16, as it would involve making some changes that violate the Package
> Update Policy; see https://fedoraproject.org/wiki/Updates_Policy.

  Ok. I am currently running fedora 16 in my home computer, but
should update to use rawhide at some point.

> Bottom line: Fedora 16 has polybori 0.7.2 and cudd 2.4.2, and will

  I found only python-polybori{,-devel} with "yum search polybori", so, I
built polybori from http://pkgs.fedoraproject.org/gitweb/?p=polybori.git
but used the available cudd-devel.

> probably stay that way.  Fedora 17 and above currently have polybori
> 0.8.1 and cudd 2.5.0.  Any changes we need to make should be done
> there.
>
>>  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/polybori.spec?r1=720397&r2=720396&pathrev=720397
>>
>> [...]
>
> Okay, I can add that easily.  I'm going to wait until I understand why
> you wanted the other change above, though.
>
> Also, I haven't yet built polybori with NTL support.  Is that going to
> be necessary for Sage?

  Not 100% sure, but several other issues are likely to happen,
and "sage -testall" will show the problems, while others should
also appear until actually getting everything built. But at first
I think it is required. I remember polybori being one of the major
source of problems in my first sagemath packages.

>>  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.
>
> Use "fedpkg sources", or you can even run "fedpkg srpm" to build the source RPM.
>
>> $ 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
>
> I believe this is because you are not yet a packager.  Once you are
> sponsored, this problem should go away.  If I'm wrong about that,
> hopefully someone else reading this will correct me.
>
>>  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.
>
> What patch would NTL need to solve this problem?

  It is basically to allow sagemath cython code to have access to the
error string NTL my print.

  The patch I have been using is
http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/ntl/current/SOURCES/ntl-5.5.2-sagemath.patch?revision=423883&view=markup

  You may also want to package and build ntl with gf2x support.

  For the NTL patch probably we should contact upstream to attempt
to have it (not exactly as is in the above link), or an alternate patch with
the same feature added.

> --
> Jerry James
> http://www.jamezone.org/

Paulo


More information about the scitech mailing list