Brumi-2021,
In case it is of help, below is how I migrated from Layman to the eselect respository module:
First I checked which third-party Portage overlays were being managed by Layman in my installations:
Code: Select all
# layman -l
* guru [Git ] (https://anongit.gentoo.org/git/repo/proj/guru.git )
* seden [Git ] (https://anongit.gentoo.org/git/user/seden.git )
The repos.conf directory on my machines each had three configuration files (one for the main Portage repository; one for the Layman-managed third-party overlays; one for my local overlay on the machine):
Code: Select all
# ls /etc/portage/repos.conf
gentoo.conf layman.conf local_overlay.conf
The layman.conf file contained the information on the third-party overlays:
Code: Select all
# cat /etc/portage/repos.conf/layman.conf
[guru]
priority = 50
location = /var/lib/layman/guru
layman-type = git
sync-type = laymansync
sync-uri = https://anongit.gentoo.org/git/repo/proj/guru.git
auto-sync = Yes
[seden]
priority = 50
location = /var/lib/layman/seden
layman-type = git
sync-type = laymansync
sync-uri = https://anongit.gentoo.org/git/user/seden.git
auto-sync = Yes
The first thing I did was to use Layman to delete the two third-party overlays:
Code: Select all
# layman -d guru
* Deleting selected overlay(s)...
* Deleting directory "/var/lib/layman/guru"
* Successfully deleted overlay(s) guru.
# layman -d seden
* Deleting selected overlay(s)...
* Deleting directory "/var/lib/layman/seden"
* Successfully deleted overlay(s) seden.
Then I installed the eselect-repository package:
Code: Select all
# emerge eselect-repository
Calculating dependencies... done!
Dependency resolution took 36.59 s.
!!! The following installed packages are masked:
- app-portage/layman-2.4.3::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# David Seifert (2023-05-19)
# Abandoned, replaced by 'eselect repository', tons of open bugs.
# Removal on 2023-08-17. Bug #761199.
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) app-eselect/eselect-repository-13::gentoo
>>> Installing (1 of 1) app-eselect/eselect-repository-13::gentoo
>>> Completed (1 of 1) app-eselect/eselect-repository-13::gentoo
>>> Jobs: 1 of 1 complete Load avg: 1.17, 0.62, 0.34
* GNU info directory index is up-to-date.
Then I used the ‘eselect repository‘ command to re-add the two overlays:
Code: Select all
# eselect repository add guru git https://anongit.gentoo.org/git/repo/proj/guru.git
--2023-06-25 14:09:31-- https://qa-reports.gentoo.org/output/repos/repositories.xml
Resolving qa-reports.gentoo.org... 151.101.61.91, 2a04:4e42:82::347
Connecting to qa-reports.gentoo.org|151.101.61.91|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 253999 (248K) [text/xml]
Saving to: ‘/root/.cache/eselect-repo/repositories.xml’
repositories.xml 100%[====================================================================================================>] 248.05K --.-KB/s in 0.06s
2023-06-25 14:09:32 (4.19 MB/s) - ‘/root/.cache/eselect-repo/repositories.xml’ saved [253999/253999]
Adding guru to /etc/portage/repos.conf/eselect-repo.conf ...
Repository guru added
# eselect repository add seden git https://anongit.gentoo.org/git/user/seden.git
Adding seden to /etc/portage/repos.conf/eselect-repo.conf ...
Repository seden added
Then I synchronised the two overlays with their respective repository:
Code: Select all
# emaint sync -r guru
>>> Syncing repository 'guru' into '/var/db/repos/guru'...
/usr/bin/git clone --depth 1 https://anongit.gentoo.org/git/repo/proj/guru.git .
Cloning into '.'...
remote: Enumerating objects: 9267, done.
remote: Counting objects: 100% (9267/9267), done.
remote: Compressing objects: 100% (8162/8162), done.
remote: Total 9267 (delta 1303), reused 7128 (delta 1010), pack-reused 0
Receiving objects: 100% (9267/9267), 6.53 MiB | 3.11 MiB/s, done.
Resolving deltas: 100% (1303/1303), done.
Updating files: 100% (7445/7445), done.
=== Sync completed for guru
!!! Section 'seden' in repos.conf has location attribute set to nonexistent directory: '/var/db/repos/seden'
Performing Global Updates
(Could take a couple of minutes if you have a lot of binary packages.)
.='update pass' *='binary update' #='/var/db update' @='/var/db move'
s='/var/db SLOT move' %='binary move' S='binary SLOT move'
p='update /etc/portage/package.*'
/var/db/repos/guru/profiles/updates/3Q-2020.
/var/db/repos/guru/profiles/updates/1Q-2020.
/var/db/repos/guru/profiles/updates/1Q-2021......
/var/db/repos/guru/profiles/updates/2Q-2022.........
/var/db/repos/guru/profiles/updates/4Q-2020...
/var/db/repos/guru/profiles/updates/1Q-2022....
/var/db/repos/guru/profiles/updates/2Q-2020..
/var/db/repos/guru/profiles/updates/3Q-2022.....
/var/db/repos/guru/profiles/updates/1Q-2023......
/var/db/repos/guru/profiles/updates/2Q-2021............
/var/db/repos/guru/profiles/updates/2Q-2023.........
/var/db/repos/guru/profiles/updates/4Q-2021...........
/var/db/repos/guru/profiles/updates/4Q-2022..
!!! Section 'seden' in repos.conf has location attribute set to nonexistent directory: '/var/db/repos/seden'
Action: sync for repo: guru, returned code = 0
# emaint sync -r seden
>>> Syncing repository 'seden' into '/var/db/repos/seden'...
/usr/bin/git clone --depth 1 https://anongit.gentoo.org/git/user/seden.git .
Cloning into '.'...
remote: Enumerating objects: 160, done.
remote: Counting objects: 100% (160/160), done.
remote: Compressing objects: 100% (143/143), done.
remote: Total 160 (delta 16), reused 29 (delta 4), pack-reused 0
Receiving objects: 100% (160/160), 78.45 KiB | 1.40 MiB/s, done.
Resolving deltas: 100% (16/16), done.
=== Sync completed for seden
Action: sync for repo: seden, returned code = 0
I checked that the repositories are listed correctly (the main Gentoo Linux repository and the third-party overlays have a hash symbol after the name, and a local overlay on the machine has the ‘@‘ symbol after the name):
Code: Select all
# eselect repository list
Available repositories:
[1] 4nykey (https://github.com/4nykey/4nykey)
[2] AlexandreFournier (https://github.com/AlexandreFournier/gentoo-overlay)
[3] ArchFeh (https://github.com/ArchFeh/ArchFeh-overlay)
[4] AstroFloyd (https://cgit.gentoo.org/user/AstroFloyd.git/)
[5] CachyOS-kernels (https://github.com/Szowisz/CachyOS-kernels)
[6] Case_Of (https://codeberg.org/Case_Of/gentoo-overlay)
[7] Drauthius (https://cgit.gentoo.org/repo/user/Drauthius.git/)
[8] EmilienMottet (https://github.com/EmilienMottet/overlay)
[9] FireBurn (https://github.com/FireBurn/Overlay)
[10] HomeAssistantRepository (https://git.edevau.net/onkelbeh/HomeAssistantRepository)
[...]
[370] x0rzavi (https://github.com/x0rzavi/x0rzavi-overlay)
[371] x11 (https://cgit.gentoo.org/proj/x11.git)
[372] xarblu-overlay (https://github.com/xarblu/xarblu-overlay)
[373] xdch47 (https://github.com/xdch47/gpo-xdch47)
[374] xelnor (http://overlay.xelnor.net)
[375] xoreos (https://github.com/xoreos/gentoo-overlay)
[376] xwing (https://gentoo.xwing.info)
[377] yandex (https://github.com/yandex-gentoo/overlay)
[378] yurij-overlay (https://github.com/yurijmikhalevich/yurij-overlay)
[379] zGentoo (https://lab.retarded.farm/zappel/zGentoo)
[380] zeldu (https://github.com/3elDU/gentoo-repository)
[381] zerodaysfordays (https://git.sr.ht/~jakob/zerodaysfordays)
[382] zozx-overlay (https://github.com/zozx/zozx-overlay)
[383] zugaina (http://gpo.zugaina.org/Overlays/zugaina/)
[384] zyrenth (https://github.com/kabili207/zyrenth-overlay)
These are easier to see by listing only the installed repositories:
Code: Select all
# eselect repository list -i
Available repositories:
[136] gentoo # (https://gentoo.org/)
[153] guru # (https://wiki.gentoo.org/wiki/Project:GURU)
[196] local_overlay @
[290] seden # (https://cgit.gentoo.org/user/seden.git/)
So, as everything looked correct, I then removed Layman from the installations:
Code: Select all
# emerge --ask --depclean layman
Calculating dependencies... done!
>>> Calculating removal order...
>>> These are the packages that would be unmerged:
app-portage/layman
selected: 2.4.3
protected: none
omitted: none
All selected packages: =app-portage/layman-2.4.3
>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.
Would you like to unmerge these packages? [Yes/No] Yes
>>> Waiting 5 seconds before starting...
>>> (Control-C to abort)...
>>> Unmerging in: 5 4 3 2 1
>>> Unmerging (1 of 1) app-portage/layman-2.4.3...
Packages installed: 1826
Packages in world: 254
Packages in system: 48
Required packages: 1826
Number removed: 1
* GNU info directory index is up-to-date.
I also deleted all Layman directories and the Layman configuration file in the repos.conf directory:
Code: Select all
# rm -rf /var/lib/layman
# rm /etc/portage/repos.conf/layman.conf
# rm -rf /etc/layman
For good measure I synced the main Portage tree and the two overlays again:
Code: Select all
# emaint sync -a
[...]
x11-misc/compose-tables/compose-tables-1.8.6.ebuild
x11-themes/Manifest.gz
x11-themes/QGnomePlatform/Manifest
x11-themes/QGnomePlatform/QGnomePlatform-0.9.1-r1.ebuild
x11-themes/QGnomePlatform/metadata.xml
x11-themes/numix-icon-theme-circle/Manifest
x11-themes/numix-icon-theme-circle/numix-icon-theme-circle-23.04.28.ebuild
x11-themes/numix-icon-theme/Manifest
x11-themes/numix-icon-theme/numix-icon-theme-23.04.26.ebuild
x11-wm/Manifest.gz
x11-wm/xpra/Manifest
x11-wm/xpra/xpra-4.4.6.ebuild
Number of files: 145,549 (reg: 118,735, dir: 26,814)
Number of created files: 600 (reg: 578, dir: 22)
Number of deleted files: 622 (reg: 600, dir: 22)
Number of regular files transferred: 5,382
Total file size: 190.75M bytes
Total transferred file size: 20.90M bytes
Literal data: 20.90M bytes
Matched data: 0 bytes
File list size: 3.70M
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 131.96K
Total bytes received: 16.87M
sent 131.96K bytes received 16.87M bytes 400.04K bytes/sec
total size is 190.75M speedup is 11.22
* Manifest timestamp: 2023-06-25 12:39:45 UTC
* Valid OpenPGP signature found:
* - primary key: DCD05B71EAB94199527F44ACDB6B8C1F96D8BF6D
* - subkey: E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250
* - timestamp: 2023-06-25 12:39:45 UTC
* Verifying /usr/portage/.tmp-unverified-download-quarantine ... [ ok ]
=== Sync completed for gentoo
>>> Syncing repository 'seden' into '/var/db/repos/seden'...
>>> Syncing repository 'guru' into '/var/db/repos/guru'...
/usr/bin/git fetch origin --depth 1
/usr/bin/git fetch origin --depth 1
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
/usr/bin/git reset --merge refs/remotes/origin/master
=== Sync completed for seden
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
/usr/bin/git reset --merge refs/remotes/origin/master
=== Sync completed for guru
Action: sync for repo: gentoo, returned code = 0
Action: sync for repo: seden, returned code = 0
Action: sync for repo: guru, returned code = 0
As one of the overlays was causing a problem in my case, below is how I disabled that overlay using the 'eselect repository' command.
My installations have the elogind package installed but it turned out that the package could not be re-merged due to an error in the manifest of one of the packages in the seden overlay:
Code: Select all
# emerge -1v elogind
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 38.39 s.
[ebuild U ] sys-auth/elogind-252.9::seden [246.10-r3::gentoo] USE="acl doc pam (policykit) -audit -debug (-selinux) -test (-cgroup-hybrid%*)" 0 KiB
Total: 1 package (1 upgrade), Size of downloads: 0 KiB
>>> Verifying ebuild manifests
!!! A file listed in the Manifest could not be found: /var/db/repos/seden/sys-auth/elogind/elogind-239.9999.ebuild
Therefore I disabled the seden overlay:
Code: Select all
# eselect repository disable seden
Updating repos.conf ...
1 repositories disabled
I was then able to install the latest version of elogind available in the main Portage repository:
Code: Select all
# emerge -1v elogind
These are the packages that would be merged, in order:
Calculating dependencies... done!
Dependency resolution took 14.27 s.
[ebuild R ] sys-auth/elogind-246.10-r3::gentoo USE="acl cgroup-hybrid doc pam (policykit) -audit -debug (-selinux) -test" 0 KiB
Total: 1 package (1 reinstall), Size of downloads: 0 KiB
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) sys-auth/elogind-246.10-r3::gentoo
>>> Installing (1 of 1) sys-auth/elogind-246.10-r3::gentoo
>>> Completed (1 of 1) sys-auth/elogind-246.10-r3::gentoo
>>> Jobs: 1 of 1 complete Load avg: 3.12, 2.63, 2.01
* GNU info directory index is up-to-date.