Difference between revisions of "Ports-2012-to-kits-migration-guide"

From Funtoo
Jump to navigation Jump to search
Line 10: Line 10:


===Stable build migration===
===Stable build migration===
As you may notice, funtoo-stable  builds now retired, see http://www.funtoo.org/News:Funtoo-Stable_Going_Away, it is recommended to upgrade to current builds. If you have a feeling that it's not an option or your boxes not allowed to perform such update, like if they are in production, you may skip this step as funtoo stable profile is still working, however you may notice various emerge warnings or dependency problems.
====Updating build====
This is one line command and is performed by <code>epro</code>
{{console|body=
# ##i## epro build current
}}
====Upgrade====
This can be a tricky part as updating from stable to unstable keywords may result in various portage conflicts. Hopefully, it will be smooth.
{{console|body=
# ##i## emerge -auND @world
}}
if you getting slots conflicts similar to shown below:
{{console|body=
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
sys-libs/ncurses:0
  (sys-libs/ncurses-6.0-r1:0/6::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)
  (sys-libs/ncurses-5.9-r5:0/5::gentoo, installed) pulled in by
    >=sys-libs/ncurses-5.2-r2:0/5= required by (app-editors/vim-8.0.0606:0/0::gentoo, installed)
                            ^^^^^
}}
try using more advance update command:
{{console|body=
# ##i## emerge -auDN @world --with-bdeps=y --verbose-conflicts --backtrack=30
}}
===== Important core packages updates=====
There will be at least 2 important ebuilds updates which needs user attention, <code>sys-libs/ncurses-6*</code> and <code>dev-lang/perl-5.24*</code>. After update as shown in above command, it is necessary to rebuild many ebuilds, because ncurses-6 is incompatible with ncurses-5. During update, portage will rebuild most of ebuilds, to complete the update, perform following check:
{{console|body=
# ##i## oleg / # revdep-rebuild --library 'libncurses' -- -pv --exclude ncurses
}}
This command will print you a list of ebuilds to be rebuilt, examine it and if ok, let portage rebuild the list:
{{console|body=
# ##i## revdep-rebuild --library 'libncurses' -- --exclude ncurses
}}
Upon perl-5.24 update, it is required to run special tool, called <code>perl-cleaner</code>. This will rebuild many perl-related modules, etc.
{{console|body=
# ##i## perl-cleaner --all
}}

Revision as of 11:45, July 31, 2017

Intro

In this guide we will try to cover a migration from older Funtoo portage tree known as ports-2012 to a new kits based tree, called meta-repo

Current builds migration

For current builds aka "unstable keyworded" boxes its as easy as in meta-repo's README: https://github.com/funtoo/meta-repo/blob/master/README.rst Notice, that after emerge -auDN @world you may see a various ebuilds updates and downgrades. This is expected. With update, newer version of ego provided. It has new module "sync" which is created to perform updates of meta-repo. Because of unique structure of meta-repo portage has no ability to sync with a familiar emerge --sync. It may have this support in future. To update just run:

root # ego sync

Stable build migration

As you may notice, funtoo-stable builds now retired, see http://www.funtoo.org/News:Funtoo-Stable_Going_Away, it is recommended to upgrade to current builds. If you have a feeling that it's not an option or your boxes not allowed to perform such update, like if they are in production, you may skip this step as funtoo stable profile is still working, however you may notice various emerge warnings or dependency problems.

Updating build

This is one line command and is performed by epro

root #  epro build current

Upgrade

This can be a tricky part as updating from stable to unstable keywords may result in various portage conflicts. Hopefully, it will be smooth.

root #  emerge -auND @world

if you getting slots conflicts similar to shown below:

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
sys-libs/ncurses:0

  (sys-libs/ncurses-6.0-r1:0/6::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (sys-libs/ncurses-5.9-r5:0/5::gentoo, installed) pulled in by
    >=sys-libs/ncurses-5.2-r2:0/5= required by (app-editors/vim-8.0.0606:0/0::gentoo, installed)
                             ^^^^^

try using more advance update command:

root #  emerge -auDN @world --with-bdeps=y --verbose-conflicts --backtrack=30
Important core packages updates

There will be at least 2 important ebuilds updates which needs user attention, sys-libs/ncurses-6* and dev-lang/perl-5.24*. After update as shown in above command, it is necessary to rebuild many ebuilds, because ncurses-6 is incompatible with ncurses-5. During update, portage will rebuild most of ebuilds, to complete the update, perform following check:

root #  oleg / # revdep-rebuild --library 'libncurses' -- -pv --exclude ncurses

This command will print you a list of ebuilds to be rebuilt, examine it and if ok, let portage rebuild the list:

root #  revdep-rebuild --library 'libncurses' -- --exclude ncurses

Upon perl-5.24 update, it is required to run special tool, called perl-cleaner. This will rebuild many perl-related modules, etc.

root #  perl-cleaner --all