On Tue, Jul 18, 2023 at 08:27:19AM +0100, Richard W.M. Jones wrote:
> On Tue, Jul 18, 2023 at 08:23:54AM +0100, Richard W.M. Jones wrote:
> > On Mon, Jul 17, 2023 at 04:13:59PM -0600, Jerry James wrote:
> > > The introduction of perl 5.38.0 broke polymake beyond repair.  Several
> > > symbols formerly used by polymake have been marked as internal APIs.
> > > They now have the ELF hidden attribute, so we can't even cheat by
> > > adding prototypes to the polymake code.
> > 
> > Do you have a list of the deprecated APIs they are using?  Or a link
> > to a bug on the topic?  I happen to have far too much experience of
> > Perl internals and I might be able to suggest replacements (although
> > not promising anything ...)
> 
> This is the only discussion I can find:
> 
> https://forum.polymake.org/viewtopic.php?t=1914
> 
> Let me remove that configure block and try to see what actually fails
> when it builds ...

The first error is:

/home/rjones/d/fedora/polymake/rawhide/polymake-4.10/lib/core/src/perl/RefHash.xxs:737:11:
 error: ‘Perl_ck_fun’ was not declared in this scope; did you mean 
‘Perl_cx_dup’?
  737 |    return Perl_ck_fun(aTHX_ o);
      |           ^~~~~~~~~~~
      |           Perl_cx_dup
ninja: build stopped: subcommand failed.

As far as I can see that's the only missing / hidden Perl symbol.

This symbol was hidden in:
https://github.com/Perl/perl5/commit/0351a629e71de127cbfd1b142e9eaa6069deabf5

As for what it does, that's more tricky.  I believe what it's doing is
while Perl is parsing the input script, it is used to check that the
thing you are calling is a function.  Unfortunately it's slightly more
complicated than that because it can convert some function-like things
to functions (returning the updated OP*).  Also Perl_ck_fun is
complicated, to say the least:

https://github.com/Perl/perl5/blob/a6d10131eee6ee336e4bd63f22a378e9d5ae40bd/op.c#L12522

For these reasons we can't just replace 'return Perl_ck_fun(aTHX_ o)'
with 'return aTHX_ o', nor can be copy the function into the polymake
source (since it calls other internal functions, but also for
licensing reasons).

So I think this does require upstream attention.

Another note is this package requires ocaml-tplib which we orphaned.

Rich.

> > Rich.
> > 
> > > Polymake upstream is aware of the issue.  For the time being, they are
> > > advising their downstreams to stay on perl 5.36.0, which is not
> > > feasible for Fedora.  In the long term, they plan to remove the
> > > mandatory perl bindings from polymake.  However, they as yet have no
> > > timeline for that effort.  It might be years.
> > > 
> > > I don't see that I have any choice but to retire polymake from
> > > Rawhide.  This will have some repercussions:
> > > - gap-pkg-polymaking, python-jupymake, and python-jupyter-polymake
> > > will also be retired
> > > - sagemath and Macaulay2 will be rebuilt without polymake support
> > > - packages that I have maintained solely for use by polymake will be
> > > orphaned: azove, permlib, plantri, sympol, vinci
> > > 
> > > I could try begging the perl package maintainers to add a downstream
> > > patch making the affected symbols visible again.  However, since those
> > > symbols are now internal only, the perl maintainers are free to alter
> > > or remove them at any time, so that would not be a good long term
> > > solution.
> > > -- 
> > > Jerry James, who is currently channeling Billy Joel
> > > http://www.jamezone.org/
> > > _______________________________________________
> > > devel mailing list -- devel@lists.fedoraproject.org
> > > To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> > > Fedora Code of Conduct: 
> > > https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> > > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> > > List Archives: 
> > > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> > > Do not reply to spam, report it: 
> > > https://pagure.io/fedora-infrastructure/new_issue
> > 
> > -- 
> > Richard Jones, Virtualization Group, Red Hat 
> > http://people.redhat.com/~rjones
> > Read my programming and virtualization blog: http://rwmj.wordpress.com
> > virt-builder quickly builds VMs from scratch
> > http://libguestfs.org/virt-builder.1.html
> > _______________________________________________
> > devel mailing list -- devel@lists.fedoraproject.org
> > To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> > Fedora Code of Conduct: 
> > https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> > List Archives: 
> > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> > Do not reply to spam, report it: 
> > https://pagure.io/fedora-infrastructure/new_issue
> 
> -- 
> Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
> Read my programming and virtualization blog: http://rwmj.wordpress.com
> Fedora Windows cross-compiler. Compile Windows programs, test, and
> build Windows installers. Over 100 libraries supported.
> http://fedoraproject.org/wiki/MinGW
> _______________________________________________
> devel mailing list -- devel@lists.fedoraproject.org
> To unsubscribe send an email to devel-le...@lists.fedoraproject.org
> Fedora Code of Conduct: 
> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: 
> https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
> Do not reply to spam, report it: 
> https://pagure.io/fedora-infrastructure/new_issue

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
nbdkit - Flexible, fast NBD server with plugins
https://gitlab.com/nbdkit/nbdkit
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to