View previous topic :: View next topic |
Author |
Message |
Progman3K l33t
Joined: 03 Jan 2004 Posts: 773
|
Posted: Mon Dec 04, 2017 5:01 pm Post subject: New profiles, rebuild world |
|
|
Hi,
I'm following the procedure for upgrading to the new Gentoo profiles.
Part of this entails rebuilding the world, like so:
The problem is that several installed modules cannot be rebuilt with this command.
Apparently, any compilers/tools installed by crossdev? I am getting the following warnings (edited for clarity):
Code: | emerge: there are no ebuilds to satisfy "cross-i686-w64-mingw32/binutils".
emerge: there are no ebuilds to satisfy "cross-i686-w64-mingw32/gdb".
emerge: there are no ebuilds to satisfy "cross-i686-w64-mingw32/gcc".
emerge: there are no ebuilds to satisfy "cross-i686-w64-mingw32/mingw64-runtime".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/binutils".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/gdb".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/gcc".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/mingw64-runtime".
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])
|
My question is: How do I proceed?
Do I exclude the problematic modules from the world-rebuild command with a series of --exclude X
and then re-run crossdev to bring the modules that were left out up to level?
Or is there a different, better way?
Thanks
[Moderator edit: added [code] tags to preserve output layout. -Hu] |
|
Back to top |
|
|
sleepingsun Guru
Joined: 03 May 2006 Posts: 458 Location: Bosnia
|
Posted: Mon Dec 04, 2017 8:39 pm Post subject: |
|
|
just try to reemerge
Quote: | emerge -1 sys-devel/libtool |
Then,
* Select the new profile with eselect
* Re-emerge, in this sequence, gcc, binutils, and glibc
Code: | emerge -1 sys-devel/gcc:6.4.0
emerge -1 sys-devel/binutils
emerge -1 sys-libs/glibc |
* Rebuild your entire system
_________________ Gentoo is Rocks |
|
Back to top |
|
|
Progman3K l33t
Joined: 03 Jan 2004 Posts: 773
|
Posted: Mon Dec 04, 2017 10:55 pm Post subject: |
|
|
Thank you, sleepingsun
This is what I have done, but the modules I mentioned are not in the package database directly, they were added by crossdev |
|
Back to top |
|
|
Hu Moderator
Joined: 06 Mar 2007 Posts: 21621
|
Posted: Tue Dec 05, 2017 2:52 am Post subject: |
|
|
/usr/bin/crossdev should have created / updated a local overlay and placed those packages into it, then used Portage to install them from that overlay. What is the output of emerge --pretend --verbose list-of-cross-packages? |
|
Back to top |
|
|
Progman3K l33t
Joined: 03 Jan 2004 Posts: 773
|
Posted: Tue Dec 05, 2017 7:30 pm Post subject: |
|
|
Code: | emerge --pretend --verbose cross-x86_64-w64-mingw32/gdb cross-x86_64-w64-mingw32/binutils cross-x86_64-w64-mingw32/gcc cross-x86_64-w64-mingw32/mingw64-runtime cross-i686-w64-mingw32/gdb cross-i686-w64-mingw32/mingw64-runtime cross-i686-w64-mingw32/gcc cross-i686-w64-mingw32/binutils
|
Code: | These are the packages that would be merged, in order:
Calculating dependencies... done!
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/gdb".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/binutils".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/gcc".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/mingw64-runtime".
emerge: there are no ebuilds to satisfy "cross-i686-w64-mingw32/gdb".
emerge: there are no ebuilds to satisfy "cross-i686-w64-mingw32/mingw64-runtime".
emerge: there are no ebuilds to satisfy "cross-i686-w64-mingw32/gcc".
emerge: there are no ebuilds to satisfy "cross-i686-w64-mingw32/binutils". |
[Moderator edit: changed [quote] tags to [code] tags to preserve output layout. -Hu] |
|
Back to top |
|
|
Hu Moderator
Joined: 06 Mar 2007 Posts: 21621
|
Posted: Wed Dec 06, 2017 3:27 am Post subject: |
|
|
Did you remove the overlay that crossdev used to prepare those packages? Otherwise, they should still be available, even if specific versions have aged out. |
|
Back to top |
|
|
Progman3K l33t
Joined: 03 Jan 2004 Posts: 773
|
Posted: Wed Dec 06, 2017 7:25 pm Post subject: |
|
|
Hello Hu,
No, I'm sure I did NOT remove any overlay. |
|
Back to top |
|
|
cboldt Veteran
Joined: 24 Aug 2005 Posts: 1046
|
Posted: Thu Dec 07, 2017 11:05 am Post subject: |
|
|
I'd fix the ebuild problem rather than exclude those files from an update.
Either the ebuilds exist and aren't found, or they don't exist. I assume the ebuilds are listed in var/lib/portage/world, but would confirm that.
I'd look in /usr/local/portage for cross-i686-w64-mingw32 and cross-x86_64-w64-mingw32 folders. If not /usr/local/portage, whatever the location specified in repos.conf is. Those folders should contain the ebuild files.
If you can't locate the ebuilds by looking in the usual places, use `find` or `locate` to see if your filesystem has any *mingw32.*ebuild files.
If the ebuilds are absent from the system, I'd just rebuild those overlays and associated ebuilds using the appropriate crossdev command.
If the ebuilds are present, then the problem is elsewhere, maybe some setting in make.conf of repos.conf does not match the location of the ebuilds.
I notice the crossdev ebuilds are defined by softlinks ...
Code: | ls /usr/local/portage/cross-x86_64-pc-linux-gnu -l
total 0
lrwxrwxrwx 1 root portage 31 Jan 27 2017 binutils -> /usr/portage/sys-devel/binutils
lrwxrwxrwx 1 root portage 26 Jan 27 2017 gcc -> /usr/portage/sys-devel/gcc
lrwxrwxrwx 1 root portage 26 Jan 27 2017 gdb -> /usr/portage/sys-devel/gdb
lrwxrwxrwx 1 root portage 27 Jan 27 2017 glibc -> /usr/portage/sys-libs/glibc
lrwxrwxrwx 1 root portage 37 Jan 27 2017 linux-headers -> /usr/portage/sys-kernel/linux-headers |
|
|
Back to top |
|
|
Sembiance n00b
Joined: 03 Oct 2003 Posts: 14 Location: Asheville, NC, USA
|
Posted: Thu Dec 07, 2017 2:26 pm Post subject: |
|
|
Or just disable PIE.
Code: | eselect profile set <choose profile 17>
emerge --sync
mkdir -p "/etc/portage/profile/"
echo "sys-devel/gcc -pie" >> /etc/portage/profile/package.use.force
# Add "-pie" to your USE= flag in /etc/portage/make.conf (or /etc/make.conf, whichever exists)
|
Now just emerge update as normal, like any other sync/update operation.
No need to recompile world, deal with static lib issues, PIE incompatible packages, incompatibility with ThreadSanitizer, and documented PIE performance issues.
This is why Gentoo is great, we have options! |
|
Back to top |
|
|
Progman3K l33t
Joined: 03 Jan 2004 Posts: 773
|
Posted: Thu Dec 07, 2017 3:27 pm Post subject: |
|
|
Sembiance,
I understand your point of view. It IS possible to disable PIC/PIE using the method you described and it IS sort-of like this "hardened" feature is being forced onto mainstream users, but Windows and OSX have had PIE for years as a default. The devs wish to make Gentoo just as secure.
So you might be able to hold-out for a while, but eventually, there may not be any choice.
This is why I am changing-over now.
Thanks for the info |
|
Back to top |
|
|
Hu Moderator
Joined: 06 Mar 2007 Posts: 21621
|
Posted: Fri Dec 08, 2017 2:07 am Post subject: |
|
|
Sembiance wrote: | Or just disable PIE. | Could you explain how this resolves the issue with missing ebuilds? That issue needs to be solved, whether or not OP chooses to perform a full rebuild for the PIE change. Even if he disabled PIE and skipped the rebuild, at some point he will encounter an issue that requires fixing the missing ebuilds to proceed. |
|
Back to top |
|
|
Progman3K l33t
Joined: 03 Jan 2004 Posts: 773
|
Posted: Fri Dec 08, 2017 8:06 pm Post subject: |
|
|
Thank you, Hu
I first thought that the problem was because I skipped entering the location of the overlay in /etc/portage/make.conf.
So I removed the crossdeved-compiler
Code: | crossdev -C i686-w64-mingw32 |
After entering the following line in /etc/portage/make.conf
Code: | PORTDIR_OVERLAY="/usr/local/crossdev-overlay" |
I re-installed it:
Code: | crossdev --ex-gdb --ov-output /usr/local/ i686-w64-mingw32 |
but yet,
still says (edited)
Code: | !!! Ebuilds for the following packages are either all
!!! masked or don't exist:
cross-i686-w64-mingw32/binutils:2.28
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/gcc".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/gdb".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/binutils".
emerge: there are no ebuilds to satisfy "cross-x86_64-w64-mingw32/mingw64-runtime". |
|
|
Back to top |
|
|
|