Mailinglist Archive: opensuse-factory (689 mails)

< Previous Next >
[opensuse-factory] App compat between versions of OpenSuse (specifically related to perl, but including others).
I opened a bug on this problem
as https://bugzilla.novell.com/show_bug.cgi?id=804070

I was told the reason for this was the fault of Perl and their binary
instability.

Additionally, I was asked for a patch to fix the problem with Gvim (which I
provided
though it seems that was ignored) to dynamically load those libs (python, perl &
ruby)
that can be dynamically loaded -- with the result being that if they are not
present,
the user will be able to still run Vim and it can still do it's job (Editing),
but
the specific scripting language that is not loadable won't work.

In the perl bug for this
(https://rt.perl.org:443/rt3/Ticket/Display.html?id=117015),

It was said:
--------------
1) Due to Perl's
current rapid release policy and maintenance patch policies, ABI changes
in minor versions are not necessary anymore. New or radically redesigned
(internally) features just dont get added anymore like they did in 5.8.
If the interp ABI compatibility system is ever reintroduced (not
likely), I would suggest a const table of offsets to the members in the
interp library, and a "*(SV
***)(char*)my_perl+PL_ginterpoffsets[ABI_STACK_SP]" for "PL_stack_sp".
-------------------------------------------


I.e. 5.16.0, 5.16.1 and 5.16.2 should be binary API compat.

and 2) They wanted to better know what the problem is that is causing
OpenSUSE to force each version to be incompatible (In installing
a factory binary on my 12.1 system (that has all preconditions met --
I'm running a new enough glibc, & such), a new perl (5.16.2) was
installed over my previous 5.16.1.

Over 1000 modules stopped working due to SuSE not following
normal practice and including previous version lib paths (at LEAST
anything in the 5.16.x series, if not 5.14 included!).

A quick solution was cp -alu <5.16.1-lib> <5.16.2-lib>...which seemed
to be the quickest solution at the time.

If it was a major version, I likely would have done it as well and planned
on doing a cpan-recompile of all binary modules in the near future.

Anyway, they asked:
------------------

Can someone explain what the *technical* complaint or feature request
here is?

Are some vendor linux perl scripts in pure perl hard coded to check
$^V/$]? Or are the vendor Perls "XS_VERSION_BOOTCHECK;" and
"XS_APIVERSION_BOOTCHECK;" modified to not allow forward compatibility
to newer minor releases (and when upgrading the perl to a newer minor
perl, all existing XS libs won't load)? Or are absolute versioned paths
to perl baked into the OS in C or on shebangs (why wouldn't symlinks fix
this?)? Or I want an XS lib compiled with 5.12.4 to load into a 5.16.1
process (change the current policy so major versions are compatible)?


------------------

Are version checks in perl or are they at the binary level so things won't
load?
And what do you need from the perl community to stop doing this -- they claim
it isn't necessary for minor versions.


--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-factory+owner@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages