My thoughts on Slackware, life and everything

Tag: compat32

Multilib gcc updated to address changes in slackware-current

slackware_multilib

In slackware-current two inter-related packages were updated yesterday: libmpc and gcc. It turns out that the update of libmpc caused a library version change. Since the gcc compiler is dynamically linked to libmpc, the gcc packages had to be recompiled in order to make it link against the new libmpc.so.3 library. Another reason for recompiling the gcc package was the missing libiberty.a file. The gcc.SlackBuild needed an additional configuration parameter to make it install into the package again.

Unfortunately that slackware-current update broke the multilib gcc packages which I have in my own repository, as several people noticed … the quick’n’dirty fix was (cd /usr/lib64 ; ln -s libmpc.so.3 libmpc.so.2).

I have recompiled the multilib gcc twice (after applying Slackware’s updates to the gcc-multilib.SlackBuild): first compilation was done with that symlink created like I just described. That resulted in the desired linkage to the new libmpc.so.3 library. Then I removed the symlink which I had created earlier and compiled the gcc packages again, just to be sure (for Slackware, this double compilation was performed as well).

The new gcc packages are now online, along with an update to the massconvert32.sh script which is part of the compat32-tools package. Also I refreshed the set of 32-bit “compat32” packages which I create from the official 32-bit Slackware package tree, because there were several updated packages in Slackware (again), and I added the libva-intel-driver-compat32 package on request.

Here is where you can find the updated packages:

If you wonder what this multilib is all about: it is needed if you want to use (binary-only) 32-bit software on 64-bit Slackware. Examples of that are Skype, Valve’s Steam Client, the WINE emulator, the Pipelight browser plugin, Citrix client etc.

Instructions on how to add or update multilib on your 64-bit Slackware can be found on the Slackware Documentation Project. Also, the slackpkg+ extension to Slackware’s own slackpkg contains the script “setupmultilib.sh” which can help you in setting up multilib properly.

 

Enjoy! Eric

PS: The nice graphic at the top was taken from the page http://gnu-linux-slackware.blogspot.nl/2013/01/switch-to-multilib-with-32-bit.html which is a Slackware related blog by Ismail.

End of the week, end of the cycle?

Most of you will have seen the latest comment in the slackware-current ChangeLog:

Wed Sep 19 23:52:16 UTC 2012
Here we go one more time with Slackware 14.0 release candidate 5.
Really, this time it is not a drill!  Everything is in place and
ready to release at this point, and unless there’s some kind of
showstopper found (which doesn’t seem too likely after all the
testing that’s happened), the release can be expected soon.

It means that we could see a Slackware 14 release very soon. As always, it’s ready when it is ready… but it is not going to take weeks.

I took the opportunity to implement some ideas which I had been thinking about for my multilib packages. These are the results:

  • In the compat32-tools package, the “convertpkg-compat32” script will now by default add a “compat32” build tag to the converted package name. For instance, when the package “e2fsprogs-1.42.5-x86_64-1.txz” is converted, it becomes “e2fsprogs-compat32-1.42.5-x86_64-1compat32.txz”.
  • Also in the compat32-tools package, the “massconvert32.sh” script will now check the Slackware patches directory to see if there is an update for any package it needs to convert. For instance, when you run the script against a Slackware 13.37 package tree you would get the converted package “openssl-solibs-compat32-0.9.8x-i486-1_slack13.37compat32.txz” instead of “openssl-solibs-compat32-0.9.8r-i486-3compat32.txz” (which is part of the original 13.37 release).
  • The reason for adding a “compat32” build tag to all converted packages is to make system upgrades of a multilib Slackware easier. Up to now, if you were using slackpkg for the upgrades, you had to manually deselect all compat32 packages in the list which is produced by the command “slackpkg clean-system”. With the new scripts, you are able to blacklist all my multilib packages by just adding one line to the file “/etc/slackpkg/blacklist”:

# Blacklist all multilib ‘compat32’ packages:

[0-9]+compat32

  • During the slackware-current development cycle there were several upgrades of the gcc packages. At one time I had to fix my multilib rebuild of gcc. I want to keep my package build numbers in sync with Slackware’s original 64-bit packages to avoid confusion of the kind “do I have the correct multilib package installed“, so I decided to give the fixed gcc packages a build number of “1fix1_alien” instead of “1alien”. Unfortunately this broke the slackpkg blacklist line for my “alien” tag. The expression “[0-9]+alien” will not match packages with a “1fix1_alien” build number. So I decided to rename the multilib gcc packages and use the “1alien” build tag. This will be much friendlier for people who upgrade from Slackware 13.37 to 14.0. If you have been running -current all the time, you should be smart enough to understand my reasoning 🙂

If you are currently running Slackware 13.37 and want to profit from these enhancements, you can of course upgrade to my new compat32-tools package – even though I make it avalable in the “current” (and later on “14.0“) directory of my multilib repository. I took care not to break the compatibility with Slackware 13.37 when I updated the package during the past development cycle of slackware-current.

A note about the Slackware Documentation Project

We  (the editors) are steadily working on expanding the documentation wiki. I recently added an article about how to perform a Slackware system upgrade, to help people who are running Slackware 13.37 and want to upgrade to 14.0 when that is released. Check out “Upgrade Slackware to a New Release“.

We would like to welcome your contributions as well! If you had a problem in Slackware and found the solution, or if you have some particular knowledge which your fellow Slackers could profit from, feel free to visit the Wiki’s HOWTO’s page and create your own article there. Check the existing HOWTO articles to get a feel for what is possible.

If you do not want to write a new article, we still value your feedback. If you have any comments or suggestions about improvements for the site, we would like to hear from you.

Cheers, Eric

Multilib updates to go with new kernel

Hi folks!

Slackware -current’s kernel has been updated to 2.6.37.3 (something many of you probably did not expect) as part of the large update leading to the first release candidate for Slackware 13.37.

This newer kernel seems to work better on all the developers’ computers especially for X sessions.Also speakup (a kernel driver for speech synthesizers) is now part of the kernel since 2.6.37, which means that a separate kernel containing a speakup patch could be dropped from the installer.

Anyway, as part of the kernel update, Pat Volkerding rebuilt the glibc packages against the new kernel headers.

Those of you who run a multilib-enhanced version of Slackware64 know what that means… I have updated my own multilib repository with rebuilt glibc-2.13 packages. This is not an urgent or mandatory upgrade for you, as the previous version of the multilib glibc packages will probably work fine. But for compiling new software that wants to use the kernel api you’d want to go with the rebuilt versions.

Get the new glibc packages at http://slackware.com/~alien/multilib/current/ as usual.

As a bonus, I have also updated my massconvert32.sh script which is part of the compat32-tools package in the same directory. Several packages have been added for the benefit of compiling and running wine. Please tell me if more packages have to be added to that script!

I also updated the content of the slackware64-compat32 directory which holds a copy of all the packages which are created by running the massconvert32.sh script (to make it easier for you if you have your doubts about how to use that script).

Eric

© 2024 Alien Pastures

Theme by Anders NorenUp ↑