[oi-dev] perl 5.34 next steps

2022-01-26 Thread Tim Mooney via oi-dev



All-

perl 5.34 was added to hipster a while ago, and I recently finished doing
package rebuilds for all perl modules in oi-userland[1], so that we now have
a version of each module for perl 5.22, perl 5.24, and perl 5.34.

There are a number of things that need to happen before we can make perl
5.34 the default version and retire 5.22 and 5.24.  I'm aware of some of
the things that need to happen, but there's probably plenty of things
that I'm not aware of, that need to be added to the "to do" list.

In addition, even for the steps I know about, there's some question as
to what order is best (safest?) to perform the steps.

I'm therefore looking for input on how we proceed.  If there's anyone 
reading this that's been through the process previously, any info you

can share or missing steps you can fill in would be especially welcome.
I have a saved email from Alexander from March 19 of 2014 (it didn't
make it into the oi-discuss archives, sadly) where he outlines several of
the steps related to perl 5.10 and 5.16, but portions of the process have
changed, so I don't know how relevant it is.

The steps I know about:

- add 5.34 to PERL_VERSIONS and PERL_64_ONLY_VERSIONS in
  make-rules/shared-macros.mk.  At the same time (or later), those
  same overrides can be removed from each perl module component.  I think
  this should be safe to do now, or at any time.

- it might be necessary (not sure) to manually change the mediator
  for perl on build systems, depending upon what order we pursue these
  steps.

- change illumos-gate so that it uses perl 5.34 to build
  runtime/perl-534/module/sun-solaris.  This involves setting

echo export PERL_VERSION=\"5.34\"; \
echo export PERL_PKGVERS=\"-534\"; \
echo export PERL_VARIANT=\"-thread-multi-64\"; \
echo export BUILDPERL32=\"#\"; \
echo export BUILDPERL64=\"\"; \

  in oi-userland/components/openindiana/illumos-gate/Makefile and then
  rebuilding illumos-gate.  I'm currently getting a build error for
  the sun-solaris module doing that and I don't know if it's because I
  need to change my build system's perl mediator or if there are other
  problems I haven't discovered yet.

  Alexander also commented in [1] that there may be a chicken-or-the-egg
  problem, so there may be some manual steps required on the build box
  once the changes are committed to oi-userland.

- change PERL_VERSION from 5.22 to 5.34 in make-rules/shared-macros.mk.
  This (I think) changes the "default" version of perl on the system.
  I don't know if it causes pkg to automatically change the mediator(s)
  on next pkg update.

- identify what packages (outside of the library/perl-5/*-522 FMRI
  namespace) depend upon runtime/perl-522.  I think (but am not certain)
  that we want to change PERL_VERSION to 5.34 first, and then start
  rebuilding any packages that depend upon 5.22, so they now depend
  upon 5.34.  Alternately, we could potentially do what I did for each
  of the library/perl-5/* module rebuilds, and override PERL_VERSION
  directly in the component, so that component defaults to 5.34 even
  before the system-wide default changes.

- same process for runtime/perl-524.  Since it has never been the default
  version of perl on OI, there should in theory be a smaller set of
  packages that depend upon it.  These will need to be rebuilt with
  PERL_VERSION=5.34 too

- do we (?) want to modify the runtime/perl-522 and/or runtime/perl-524
  packages so that they become "dummy" packages that just point to
  the 534 runtime?  Alexander mentioned this as a possibility in
  the process he outlined in 2014.

- retire (obsolete) 5.24.  I don't know what's involved in this, but
  I do know it's going to be near the end of the process, so there's
  plenty to get done first.

- retire (obsolete) 5.22.  Same as perl 5.24.

- after 5.22 is completely gone, we can rip out all the 32 vs. 64
  code in make-rules/makemaker.mk, leaving just the settings for 64
  bit builds.  That should simplify makemaker.mk considerably.


So what steps am I missing, and what's the safest order to apply these
steps?  It's OK with me if this process takes several weeks, if it can
be done in a safe, careful manner.

Longer term, after we've made progress on making 5.34 the default and
obsoleting the older perls, the road is much easier:

- update our existing perl modules, as appropriate.
- specific to the SSL module(s), switch to OpenSSL 1.1 as part of updates.
- add a handful of the most useful, most widely used perl modules that
  we don't currently ship.  I've identified a few, including

JSON & JSON XS
YAML
Text::CSV & Text::CSV_XS
Socket6
IO::Socket::SSL & possibly Crypt::SSL
LWP::Protocol::https
a few of the Test:: modules (Test::Pod, Test::Warning, maybe more)
possibly Module::Build, though that has miserable dependencies

[1] alp explained that although we have 

[oi-dev] Deprecation of 32-bit encumbered binaries

2022-01-26 Thread Aurélien Larcher
Hi,
I have now deprecated 32-bit builds in the encumbered repository.
This means that ffmpeg is now 64-bit only and audacity was migrated to
64-bit.
The main motivation is that gcc-10 were failing for 32-bit builds and they
are probably not worth the trouble.

A few components in userland still rely on 32-bit gstreamer plugins: they
should be migrated as well.
I have already switched Gthumb to 64-bit yesterday.

As a side effect, meson was fixed to handle static linking properly, you
should update if you experience similar issues.

Kind regards,

Aurélien

-- 
---
Praise the Caffeine embeddings
___
oi-dev mailing list
oi-dev@openindiana.org
https://openindiana.org/mailman/listinfo/oi-dev