Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Build Desktop with no-multilib?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Installing Gentoo
View previous topic :: View next topic  
Author Message
cctsurf
Tux's lil' helper
Tux's lil' helper


Joined: 12 Oct 2006
Posts: 126

PostPosted: Wed May 24, 2023 4:15 pm    Post subject: Build Desktop with no-multilib? Reply with quote

I have had a lot of suggested use: abi_x86_32 recently...
I was wondering why we are still running multilib systems. I know there is a lot of 32bit inertia here, but I was wondering if I could build a new install for my desktop that entirely avoided the 32bit binaries? (I use kde/plasma) Are there still lots of blockers for that idea? I suppose the only way to find out would be to try it in a VM or chroot...
Any Thoughts?
Thanks!
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 23131

PostPosted: Wed May 24, 2023 4:28 pm    Post subject: Reply with quote

Multilib persists because switching from no-multilib to multilib is hard and officially unsupported, so anyone who expects to ever need multilib needs to start with it and stay with it. However, on a typical system that does not really need multilib, very few things will be built with it, and you should never get warnings about needing to adjust the abi_x86_32 settings.

The most common offender now is Windows games (including those sold through Steam to run on Linux through a Wine wrapper). Running a 32-bit Windows game requires a 32-bit Wine, which means multilib, or an x86 chroot. I think almost everything for which source is available, and for which anyone cares, has been ported to 64-bit by now.
Back to top
View user's profile Send private message
cctsurf
Tux's lil' helper
Tux's lil' helper


Joined: 12 Oct 2006
Posts: 126

PostPosted: Wed May 24, 2023 4:39 pm    Post subject: Reply with quote

That sounds REALLY encouraging.

I'm not running anything wine/Steam any more.

I think I'll see if I can build it in a chroot and how well it builds, then think about moving my system.
Thanks!
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54921
Location: 56N 3W

PostPosted: Wed May 24, 2023 4:41 pm    Post subject: Reply with quote

cctsurf,

I've been no-multilib since Apr 2009 but I not a gamer.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
cctsurf
Tux's lil' helper
Tux's lil' helper


Joined: 12 Oct 2006
Posts: 126

PostPosted: Wed May 24, 2023 5:07 pm    Post subject: Reply with quote

As I think about this, is there a easy way to compare the use flags, etc. that are set by the different profiles? I'm guessing that I'm going to have to add the plasma subset to my make.conf file.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54921
Location: 56N 3W

PostPosted: Wed May 24, 2023 5:19 pm    Post subject: Reply with quote

cctsurf,

Choose a random profile.
Run
Code:
emerge --info
that lists the global USE settings from your profile and make.conf.

Rinse and repeat for other profiles.

As long as you do not install anything, looking is harmless.

Its possible to save the output to a file and use
Code:
diff
on the files.

Reading Gentoos cascading profiles will only make your head hurt.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5431
Location: Bavaria

PostPosted: Wed May 24, 2023 5:49 pm    Post subject: Reply with quote

cctsurf wrote:
As I think about this, is there a easy way to compare the use flags, etc. that are set by the different profiles? I'm guessing that I'm going to have to add the plasma subset to my make.conf file.

No, there is a better approach: https://forums.gentoo.org/viewtopic-p-8694188.html#8694188

(I have also a No-Multilib and Plasma system ;-) and have this solution.)
Back to top
View user's profile Send private message
cctsurf
Tux's lil' helper
Tux's lil' helper


Joined: 12 Oct 2006
Posts: 126

PostPosted: Wed May 24, 2023 6:04 pm    Post subject: Reply with quote

pietinger wrote:
cctsurf wrote:
As I think about this, is there a easy way to compare the use flags, etc. that are set by the different profiles? I'm guessing that I'm going to have to add the plasma subset to my make.conf file.

No, there is a better approach: https://forums.gentoo.org/viewtopic-p-8694188.html#8694188

(I have also a No-Multilib and Plasma system ;-) and have this solution.)


Very Nice! Appreciated!

If
Quote:
switching from no-multilib to multilib is hard and officially unsupported
... what about switching from multilib to no-multilib?
Thanks!
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 23131

PostPosted: Wed May 24, 2023 6:54 pm    Post subject: Reply with quote

That is comparatively easy. The switch from multilib->no-multilib is dropping the 32-bit pieces. The reverse is building those pieces, but you need them before you can build them, which is why enabling multilib is hard.
Back to top
View user's profile Send private message
stefan11111
l33t
l33t


Joined: 29 Jan 2023
Posts: 954
Location: Romania

PostPosted: Wed May 24, 2023 10:23 pm    Post subject: Reply with quote

Hu wrote:

The most common offender now is Windows games (including those sold through Steam to run on Linux through a Wine wrapper). Running a 32-bit Windows game requires a 32-bit Wine, which means multilib, or an x86 chroot. I think almost everything for which source is available, and for which anyone cares, has been ported to 64-bit by now.

Steam is the only thing keeping me from using no-multilib.
Sad they don't have a 64-bit linux client, especially when they have one for apple.
_________________
My overlay: https://github.com/stefan11111/stefan_overlay
INSTALL_MASK="/etc/systemd /lib/systemd /usr/lib/systemd /usr/lib/modules-load.d *udev* /usr/lib/tmpfiles.d *tmpfiles* /var/lib/dbus /usr/bin/gdbus /lib/udev"
Back to top
View user's profile Send private message
stefan11111
l33t
l33t


Joined: 29 Jan 2023
Posts: 954
Location: Romania

PostPosted: Wed May 24, 2023 10:24 pm    Post subject: Reply with quote

NeddySeagoon wrote:

Reading Gentoos cascading profiles will only make your head hurt.

Or...
USE="-*"
_________________
My overlay: https://github.com/stefan11111/stefan_overlay
INSTALL_MASK="/etc/systemd /lib/systemd /usr/lib/systemd /usr/lib/modules-load.d *udev* /usr/lib/tmpfiles.d *tmpfiles* /var/lib/dbus /usr/bin/gdbus /lib/udev"
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 9341

PostPosted: Thu May 25, 2023 5:21 am    Post subject: Reply with quote

Dont.
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3959
Location: Rasi, Finland

PostPosted: Thu May 25, 2023 7:16 am    Post subject: Reply with quote

cctsurf,

There's very little risk going with no-multilib. Unless you specifically use Steam.
NeddySeagoon wrote:
I've been no-multilib since Apr 2009 but I not a gamer.
Like Neddy, I've been no-multilib user for a long time. I occasionally play games bought from gog. So far only one game has been 32-bit only so I had to skip it.

So: If you use Steam or you may dig up that old binary from somewhere... go with multilib. It's a "safe bet", but you probably will rarely actually need it.
_________________
..: Zucca :..

My gentoo installs:
init=/sbin/openrc-init
-systemd -logind -elogind seatd

Quote:
I am NaN! I am a man!
Back to top
View user's profile Send private message
Anon-E-moose
Watchman
Watchman


Joined: 23 May 2008
Posts: 6234
Location: Dallas area

PostPosted: Thu May 25, 2023 10:49 am    Post subject: Reply with quote

If you leave the profile multilib, you can always set MULTILIB_ABI to just build 64bit stuff.

It leaves you with a minimal multilib system (basically glibc and gcc 32 bit stuff ... IIRC)
_________________
UM780, 6.12 zen kernel, gcc 13, openrc, wayland
Back to top
View user's profile Send private message
cctsurf
Tux's lil' helper
Tux's lil' helper


Joined: 12 Oct 2006
Posts: 126

PostPosted: Fri May 26, 2023 10:41 pm    Post subject: Reply with quote

Went to no-multilib, kinda wish I had seen some of the notes about keeping multilib, but with a minimum multilib, but I had already begun the recompile...

One problem I am running into:
On one system (I moved 2 to no-multilib), I am getting suggested rebuilds for a number of packages @preserved-rebuild stuff, but when I run emerge @preserved-rebuild, it doesn't rebuild anything.
I thought, "since I just made a fairly major move, maybe I should rebuild my entire system and that will get rid of it... nope. Still have the suggestion and no action when I attempt to rebuild.
Any Suggestions?

Code:
 * GNU info directory index is up-to-date.

!!! existing preserved libs:
>>> package: app-arch/bzip2-1.0.8-r4
 *  - /usr/lib/libbz2.so.1
 *  - /usr/lib/libbz2.so.1.0.8
 *      used by /usr/lib/libfreetype.so.6 (preserved)
 *      used by /usr/lib/libfreetype.so.6.19.0 (preserved)
>>> package: dev-libs/glib-2.76.3
 *  - /usr/lib/libglib-2.0.so.0
 *  - /usr/lib/libglib-2.0.so.0.7600.2
 *      used by /usr/lib/libharfbuzz.so.0 (preserved)
 *      used by /usr/lib/libharfbuzz.so.0.60730.0 (preserved)
>>> package: dev-libs/libpcre2-10.42-r1
 *  - /usr/lib/libpcre2-8.so.0
 *  - /usr/lib/libpcre2-8.so.0.11.2
 *      used by /usr/lib/libglib-2.0.so.0 (preserved)
 *      used by /usr/lib/libglib-2.0.so.0.7600.2 (preserved)
>>> package: media-gfx/graphite2-1.3.14_p20210810-r3
 *  - /usr/lib/libgraphite2.so.3
 *  - /usr/lib/libgraphite2.so.3.2.1
 *      used by /usr/lib/libharfbuzz.so.0 (preserved)
 *      used by /usr/lib/libharfbuzz.so.0.60730.0 (preserved)
>>> package: media-libs/freetype-2.13.0
 *  - /usr/lib/libfreetype.so.6
 *  - /usr/lib/libfreetype.so.6.19.0
 *      used by /usr/lib/libharfbuzz.so.0 (preserved)
 *      used by /usr/lib/libharfbuzz.so.0.60730.0 (preserved)
>>> package: media-libs/harfbuzz-7.3.0
 *  - /usr/lib/libharfbuzz.so.0
 *  - /usr/lib/libharfbuzz.so.0.60730.0
 *      used by /usr/lib/libfreetype.so.6 (preserved)
 *      used by /usr/lib/libfreetype.so.6.19.0 (preserved)
>>> package: media-libs/libpng-1.6.39
 *  - /usr/lib/libpng16.so.16
 *  - /usr/lib/libpng16.so.16.39.0
 *      used by /usr/lib/libfreetype.so.6 (preserved)
 *      used by /usr/lib/libfreetype.so.6.19.0 (preserved)
>>> package: sys-libs/glibc-2.37-r3
 *  - /lib/ld-linux.so.2
 *  - /lib/libc.so.6
 *      used by /usr/lib/libbz2.so.1 (preserved)
 *      used by /usr/lib/libbz2.so.1.0.8 (preserved)
 *      used by /usr/lib/libfreetype.so.6 (preserved)
 *      used by /usr/lib/libfreetype.so.6.19.0 (preserved)
 *      used by /usr/lib/libglib-2.0.so.0 (preserved)
 *      used by /usr/lib/libglib-2.0.so.0.7600.2 (preserved)
 *      used by /usr/lib/libgraphite2.so.3 (preserved)
 *      used by /usr/lib/libgraphite2.so.3.2.1 (preserved)
 *      used by /usr/lib/libharfbuzz.so.0 (preserved)
 *      used by /usr/lib/libharfbuzz.so.0.60730.0 (preserved)
 *      used by /usr/lib/libpcre2-8.so.0 (preserved)
 *      used by /usr/lib/libpcre2-8.so.0.11.2 (preserved)
 *      used by /usr/lib/libpng16.so.16 (preserved)
 *      used by /usr/lib/libpng16.so.16.39.0 (preserved)
 *      used by /usr/lib/libz.so.1 (preserved)
 *      used by /usr/lib/libz.so.1.2.13 (preserved)
 *  - /lib/libm.so.6
 *      used by /usr/lib/libharfbuzz.so.0 (preserved)
 *      used by /usr/lib/libharfbuzz.so.0.60730.0 (preserved)
 *      used by /usr/lib/libpng16.so.16 (preserved)
 *      used by /usr/lib/libpng16.so.16.39.0 (preserved)
>>> package: sys-libs/zlib-1.2.13-r1
 *  - /usr/lib/libz.so.1
 *  - /usr/lib/libz.so.1.2.13
 *      used by /usr/lib/libfreetype.so.6 (preserved)
 *      used by /usr/lib/libfreetype.so.6.19.0 (preserved)
 *      used by /usr/lib/libpng16.so.16 (preserved)
 *      used by /usr/lib/libpng16.so.16.39.0 (preserved)
Use emerge @preserved-rebuild to rebuild packages using these libraries
Back to top
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5431
Location: Bavaria

PostPosted: Fri May 26, 2023 10:44 pm    Post subject: Reply with quote

cctsurf wrote:
Any Suggestions?

You have been running into circular dependencies ... maybe this article from our developer will help you:

https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies
Back to top
View user's profile Send private message
cctsurf
Tux's lil' helper
Tux's lil' helper


Joined: 12 Oct 2006
Posts: 126

PostPosted: Fri May 26, 2023 11:12 pm    Post subject: Reply with quote

So far, I'm failing at getting them to work. I attempted to follow the "sledgehammer" suggestion after trying the other previous options (it seems that that version of pango is no longer in the tree)... Still no dice.
Code:
USE="-* truetype harfbuzz" emerge --verbose --oneshot media-libs/freetype

fails for me, saying that there are a bunch of unmet dependencies from other packages.
Help!
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2757

PostPosted: Sat May 27, 2023 5:43 am    Post subject: Reply with quote

cctsurf wrote:
I have had a lot of suggested use: abi_x86_32 recently...

That means you have emerged things that require it. By default you should not get any such suggestions /I believe you're running emerge with --autounmask-write or similar/. Find out what pulls it in and clean it up.
cctsurf wrote:
So far, I'm failing at getting them to work. I attempted to follow the "sledgehammer" suggestion after trying the other previous options (it seems that that version of pango is no longer in the tree)... Still no dice.
Code:
USE="-* truetype harfbuzz" emerge --verbose --oneshot media-libs/freetype

fails for me, saying that there are a bunch of unmet dependencies from other packages.
Help!


Why did you resort to the sledgehammer approach? Output please.

Best Regards,
Georgi
Back to top
View user's profile Send private message
cctsurf
Tux's lil' helper
Tux's lil' helper


Joined: 12 Oct 2006
Posts: 126

PostPosted: Sat May 27, 2023 4:37 pm    Post subject: Reply with quote

I went nuclear (or rather sledgehammer) because the earlier options in the above way (https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies) of resolving the circular dependency didn't solve the situation.
I couldn't do:
Code:
USE="-harfbuzz" emerge --oneshot media-libs/freetype media-libs/harfbuzz =x11-libs/pango-1.48.10-r1
because pango-1.48.10-r1 is no longer in the portage tree.
I tried
Code:
USE="-harfbuzz" emerge --oneshot media-libs/freetype
but it didn't resolve the dependencies.
So, it said, Sledgehammer...
"the following works although is a little bit convoluted"
but it didnt.
I could do everything, up to
Code:
USE="-* truetype harfbuzz" emerge --verbose --oneshot media-libs/freetype
, but it failed, as I said previously. it stated that I needed to have harfbuzz use flag enabled to build freetype... I forget the error exactly.

In the end, I finally figured it out. As a side note, I had messed around with freetype and harfbuzz so much that there were problems when emerge attempted to merge in the new builds.

What finally worked for me was to:
Code:
emerge -Cv media-libs/harfbuzz
emerge -1av media-libs/harfbuzz
emerge -Cv freetype
USE=-harfbuzz emerge -1av media-libs/freetype
emerge -1av media-libs/harfbuzz
emerge -1av media-libs/freetype

I then reemerged all of the dependencies that were previously complaining of being involved in the circular dependency mess.
Code:
emerge -1av =app-arch/bzip2-1.0.8-r4 =dev-libs/glib-2.76.3 =dev-libs/libpcre2-10.42-r1 =media-gfx/graphite2-1.3.14_p20210810-r3 =media-libs/freetype-2.13.0 =media-libs/harfbuzz-7.3.0 =media-libs/libpng-1.6.39 =sys-libs/glibc-2.37-r3 =sys-libs/zlib-1.2.13-r1


Thanks for all the help!
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2757

PostPosted: Sat May 27, 2023 4:52 pm    Post subject: Reply with quote

cctsurf wrote:
I went nuclear (or rather sledgehammer) because the earlier options in the above way (https://wiki.gentoo.org/wiki/User:Sam/Portage_help/Circular_dependencies) of resolving the circular dependency didn't solve the situation.
I couldn't do:
Code:
USE="-harfbuzz" emerge --oneshot media-libs/freetype media-libs/harfbuzz =x11-libs/pango-1.48.10-r1
because pango-1.48.10-r1 is no longer in the portage tree.


Just remove pango from the command and in case of problems, post output.

Best Regards,
Georgi
Back to top
View user's profile Send private message
krumpf
Apprentice
Apprentice


Joined: 15 Jul 2018
Posts: 199

PostPosted: Sat May 27, 2023 10:02 pm    Post subject: Reply with quote

Hu wrote:
The most common offender now is Windows games (including those sold through Steam to run on Linux through a Wine wrapper). Running a 32-bit Windows game requires a 32-bit Wine, which means multilib, or an x86 chroot. I think almost everything for which source is available, and for which anyone cares, has been ported to 64-bit by now.

The Wine team is working to remove dependencies to 32 bit libraries, but it's a long term process, so I guess it'll be ready for wine 10.0 (or maybe 9.0 with lots of luck).
quote from wine 8.0 changelog
Quote:
- WoW64 thunks are implemented for essentially all Unix libraries, enabling a
32-bit PE module to call a 64-bit Unix library. Once the remaining direct
PE/Unix calls have been removed, this will make it fully possible to run
32-bit Windows applications without any 32-bit Unix library.
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2757

PostPosted: Tue May 30, 2023 7:14 am    Post subject: Reply with quote

krumpf wrote:
Hu wrote:
The most common offender now is Windows games (including those sold through Steam to run on Linux through a Wine wrapper). Running a 32-bit Windows game requires a 32-bit Wine, which means multilib, or an x86 chroot. I think almost everything for which source is available, and for which anyone cares, has been ported to 64-bit by now.

The Wine team is working to remove dependencies to 32 bit libraries, but it's a long term process, so I guess it'll be ready for wine 10.0 (or maybe 9.0 with lots of luck).
quote from wine 8.0 changelog
Quote:
- WoW64 thunks are implemented for essentially all Unix libraries, enabling a
32-bit PE module to call a 64-bit Unix library. Once the remaining direct
PE/Unix calls have been removed, this will make it fully possible to run
32-bit Windows applications without any 32-bit Unix library.


Maybe you haven't noticed the above section:

Quote:
After 4 years of work, the PE conversion is finally complete: all modules can
be built in PE format. This is an important milestone on the road to supporting
various features such as copy protection, 32-bit applications on 64-bit hosts,
Windows debuggers, x86 applications on ARM, etc.
However, some modules still perform direct calls between the PE and the Unix
part, instead of going through the NT system call interface. The remaining
direct calls will be removed during the Wine 8.x development phase.


If things go well, 9.0 will have it. If we still need it.

Best Regards,
Georgi
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Installing Gentoo All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum