Bug 229613 - lang/guile2: Update to 2.2.4
Summary: lang/guile2: Update to 2.2.4
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Alexey Dokuchaev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-07-08 20:37 UTC by Yuri Victorovich
Modified: 2019-08-30 13:25 UTC (History)
4 users (show)

See Also:
danfe: maintainer-feedback-
antoine: exp-run+


Attachments
Draft patch (35.69 KB, patch)
2018-07-08 20:37 UTC, Yuri Victorovich
no flags Details | Diff
Update to 2.2.5 (26.47 KB, patch)
2019-06-24 16:06 UTC, Alexey Dokuchaev
no flags Details | Diff
Update to 2.2.5 + fix consumers (95.31 KB, patch)
2019-06-26 18:12 UTC, Alexey Dokuchaev
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Victorovich freebsd_committer 2018-07-08 20:37:39 UTC
Created attachment 194961 [details]
Draft patch

The attached patch makes it built.
stage-qa doesn't pass because one .scm file is installed into lib/.
Also some ELFs aren't stripped.
Comment 1 Alexey Dokuchaev freebsd_committer 2018-11-12 15:22:30 UTC
Can we push this forward?  More software now requires Guile >= 2.2.0 and thus cannot get Guile support due to outdated version in the ports.
Comment 2 commit-hook freebsd_committer 2018-11-12 15:50:53 UTC
A commit references this bug:

Author: danfe
Date: Mon Nov 12 15:50:45 UTC 2018
New revision: 484806
URL: https://svnweb.freebsd.org/changeset/ports/484806

Log:
  - Update `mail/mailutils' to version 3.5
  - Now supports Berkeley DB versions 5 and 6
  - Add GUILE_USES=pkgconfig because guile-config requires it
  - Because our `lang/guile2' is outdated, add GUILE_BROKEN

  PR:	229613 (related)

Changes:
  head/mail/mailutils/Makefile
  head/mail/mailutils/distinfo
Comment 3 Alexey Dokuchaev freebsd_committer 2019-06-24 16:06:13 UTC
Created attachment 205312 [details]
Update to 2.2.5

Update to version 2.2.5 (stage-qa warnings still present, but waived for now).
Comment 4 Alexey Dokuchaev freebsd_committer 2019-06-24 16:07:45 UTC
Request an exp-run.
Comment 5 Antoine Brodin freebsd_committer 2019-06-25 15:47:58 UTC
Can you update the ports tree too?

port xxx depends on shared library: libguile-2.0.so - not found
Comment 6 Muhammad Moinur Rahman freebsd_committer 2019-06-25 20:17:21 UTC
(In reply to Antoine Brodin from comment #5)
I would opt for a new port.
Comment 7 Alexey Dokuchaev freebsd_committer 2019-06-26 01:49:55 UTC
It would make sense if there'd be *many* ports that won't work with 2.2.x and couldn't be easily patched.  So far transition looks fine, I'll submit updated (full) patch soonish.
Comment 8 Muhammad Moinur Rahman freebsd_committer 2019-06-26 10:56:53 UTC
(In reply to Alexey Dokuchaev from comment #7)
If this is alright I will commit lang/guile22 by night
http://pdr.bofh.network/data/latest-per-pkg/guile22/2.2.5/
Comment 9 Alexey Dokuchaev freebsd_committer 2019-06-26 11:07:04 UTC
I don't understand why would you want to keep two ports (2.0 and 2.2 instead of letting me fix those that are not happy with 2.2 and upload another patch for an exp-run.

I still have two or three ports to fix, I'd appreciate if you could wait.
Comment 10 Mathieu Arnold freebsd_committer 2019-06-26 12:16:24 UTC
(In reply to Muhammad Moinur Rahman from comment #8)
> (In reply to Alexey Dokuchaev from comment #7)
> If this is alright I will commit lang/guile22 by night
> http://pdr.bofh.network/data/latest-per-pkg/guile22/2.2.5/

No, you will not commit it tonight.  I has been almost a year coming, waiting a few more days for a patch unbreaking those ports will not change anything.
Comment 11 Mathieu Arnold freebsd_committer 2019-06-26 12:17:14 UTC
As a side note, an exp-run has been requested, and it has not been approved yet, any commit going on before approval will be reverted.
Comment 12 Alexey Dokuchaev freebsd_committer 2019-06-26 16:33:02 UTC
OK, guys, I have the complete patch more or less ready, but have one question: in several ports, GUILE is not on OPTIONS_DEFAULT, so I've simply put it there for my tests.  Do I need to include those line in uploaded patch, or you have a way to forcibly enable it for the exp-run via some global OPTIONS_SET=GUILE or something?

In other words, shall I upload the patch as is, and then revert OPTIONS_DEFAULT lines before committing?
Comment 13 Antoine Brodin freebsd_committer 2019-06-26 17:51:02 UTC
(In reply to Alexey Dokuchaev from comment #12)
Upload the patch that you plan to commit.

We will do the exp-run with OPTIONS_SET += GUILE
Comment 14 Mathieu Arnold freebsd_committer 2019-06-26 17:55:48 UTC
(In reply to Alexey Dokuchaev from comment #12)
> OK, guys, I have the complete patch more or less ready, but have one
> question: in several ports, GUILE is not on OPTIONS_DEFAULT, so I've simply
> put it there for my tests.  Do I need to include those line in uploaded
> patch, or you have a way to forcibly enable it for the exp-run via some
> global OPTIONS_SET=GUILE or something?
> 
> In other words, shall I upload the patch as is, and then revert
> OPTIONS_DEFAULT lines before committing?

some committers usually provide a list of things to add to make.conf, usually a list of:

<OPTIONS_NAME>_SET= FOO

like:

lang_perl5-devel_SET= DTRACE
Comment 15 Alexey Dokuchaev freebsd_committer 2019-06-26 18:12:11 UTC
Created attachment 205358 [details]
Update to 2.2.5 + fix consumers

Previous patch was missing the consumer ports, this one includes them.  Most changes are relatively minor and mechanical, except for the devel/gdb (obtained via their bugtracker).  One port (science/meep) I've eventually marked BROKEN after fixing it proved to be very tedious and actually unreliable (it is all swig-generated code).  It's very outdated (PORTREVISION=18), there are newer versions available so it should better be fixed via updating instead.

One port (devel/libruin) had revealed a bug in the new Guile (an auxiliary script, really) and had to be worked-round; reference provided in the patch.
Comment 16 Antoine Brodin freebsd_committer 2019-06-26 22:42:52 UTC
mailfromd fails to configure when mailutils is built with GUILE on:

http://package18.nyi.freebsd.org/data/120amd64-default-PR238728/2019-06-26_19h26m55s/logs/mailfromd-8.5_5.log

The rest looks fine
Comment 17 commit-hook freebsd_committer 2019-06-27 09:03:06 UTC
A commit references this bug:

Author: danfe
Date: Thu Jun 27 09:02:59 UTC 2019
New revision: 505200
URL: https://svnweb.freebsd.org/changeset/ports/505200

Log:
  Update Guile to version 2.2.5, modern stable version, and fix dependent
  ports to build against it.  Most changes are rather minor and mechanical
  except for the devel/gdb (obtained via their bugtracker [1], courtesy of
  Doug Evans).  One port (science/meep) I had to mark BROKEN after fixing
  it proved to be very tedious and actually unreliable.  It is very old,
  there are newer versions available so it should be fixed by updating.

  One port (devel/libruin) had revealed a bug in the new Guile code (an
  auxiliary script, really) that had to be worked-round; reference to the
  problematic upstream commit is provided in the patch.

  PR:		229613
  Exp-run by:	antoine

  [1] https://sourceware.org/bugzilla/show_bug.cgi?id=21104#c8

Changes:
  head/cad/lepton-eda/Makefile
  head/devel/autogen/Makefile
  head/devel/gdb/Makefile
  head/devel/gdb/files/extrapatch-guile22
  head/devel/guile-lib/Makefile
  head/devel/guile-lib/pkg-plist
  head/devel/libruin/Makefile
  head/finance/gnucash/Makefile
  head/finance/gnucash/pkg-plist
  head/games/aisleriot/Makefile
  head/games/aisleriot/pkg-plist
  head/games/gnubik/Makefile
  head/games/trackballs/Makefile
  head/graphics/graphviz/Makefile
  head/irc/weechat/Makefile
  head/lang/guile2/Makefile
  head/lang/guile2/distinfo
  head/lang/guile2/files/patch-libguile_____scm.h
  head/lang/guile2/pkg-plist
  head/lang/mdk/Makefile
  head/lang/slib-guile2/Makefile
  head/mail/mailutils/Makefile
  head/mail/mailutils/pkg-plist
  head/mail/mu/Makefile
  head/math/nlopt/Makefile
  head/math/nlopt/pkg-plist
  head/net/gnu-dico/Makefile
  head/net-im/freetalk/Makefile
  head/science/harminv/Makefile
  head/science/libctl/Makefile
  head/science/meep/Makefile
  head/science/mpb/Makefile
  head/sysutils/mcron/Makefile
Comment 18 commit-hook freebsd_committer 2019-06-27 09:29:28 UTC
A commit references this bug:

Author: danfe
Date: Thu Jun 27 09:28:36 UTC 2019
New revision: 505201
URL: https://svnweb.freebsd.org/changeset/ports/505201

Log:
  Add missing USES+=iconv because most of Mailutils programs use functions
  it provides, but dependency was not recorded in the package.  This bug
  went unnoticed for a long time because `libiconv.so.2' library typically
  exists on any FreeBSD installation, and was revealed by recent exp-run.

  Since port revision was bumped just now in the previous commit, abuse it
  and do not bump again.

  PR:	229613

Changes:
  head/mail/mailutils/Makefile
Comment 19 dmn 2019-06-29 19:49:46 UTC
Guile 2.2 is not just a next version, it's significantly different
from 2.0 branch. Just read the release notes.
There should be two separate ports for 2.0 and 2.2, as it is in
other distributions.
Though it can be built with guile 2.2, cad/lepton-eda 1.9.7
doesn't work with it (current git version does work).
I'll try to make a patch for it, but not sure now if it's possible.
I wonder why ports' maintainers didn't get notified about preparation
of such a major changes in guile2 port.
Comment 20 Alexey Dokuchaev freebsd_committer 2019-07-01 07:54:31 UTC
Version 2.0 is legacy version on its way out, and while some distributions try to support it, things start to bitrot already [1].  One of the main reasons why people were so reluctant to move from 2.0 is because pre-2.2 versions were only deprecating old interfaces, while 2.2 had finally removed them.  Most of those APIs had been deprecated for years, since 1.8 or earlier, but upstream en masse demonstrated total ignorance thereof.  New software often requires 2.2+ (e.g. mail/mailutils).

Given there are not that many Guile-dependent ports, let's try to identify and fix all 2.2-related issues (yes, I'm willing to help).  If eventually it would deem necessary to create legacy `lang/guile20' port we can do that and switch those fundamentally broken (unfixable) ports back to it, but `lang/guile2' should track 2.2.x branch (version 2.2.6 has just been released, by the way) and be the default dependency.  Otherwise things would just stagnate and bitrot, and we would be accumulating techdebt making any later transition harder with every day.

[1] https://sourceware.org/bugzilla/show_bug.cgi?id=21104#c12
Comment 21 Alexey Dokuchaev freebsd_committer 2019-07-02 18:13:45 UTC
Since I forgot to reference this PR in the commit log, `cad/lepton-eda' had been fixed in ports r505685.
Comment 22 Walter Schwarzenfeld freebsd_triage 2019-08-30 13:25:47 UTC
Is updated to 2.2.6 with ports r507325.