Gentoo Archives: gentoo-user

From: smurfd <smurfd@×××××.com>
To: gentoo-user@l.g.o, Grant Taylor <gtaylor@×××××××××××××××××××××.net>
Subject: Re: [gentoo-user] What is the best way forward? - Update 2 - SUCCESS! - CURRENT!!!
Date: Tue, 09 Mar 2021 16:26:53
Message-Id: f8c7fd91-3082-c897-1cae-72e1a0528e6f@gmail.com
In Reply to: Re: [gentoo-user] What is the best way forward? - Update 2 - SUCCESS! - CURRENT!!! by Grant Taylor
1 Massive congrats :)
2 Great when things work out, after doing a ton of work to get there.
3
4 br smurfd
5
6 On 2021-03-08 23:06, Grant Taylor wrote:
7 > On 2/25/21 5:31 PM, Grant Taylor wrote:
8 >> 10 have git switch to the next day
9 >> 20 emerge -aDUN @world
10 >> 30 assess / deal with masked packages
11 >> 40 goto 10
12 >>
13 >> It /looks/ like things are working.
14 >
15 > *TL;DR*
16 >
17 > DenverCoder9:  DEAR PEOPLE FROM THE FUTURE ...
18 >
19 > This method /does/ work.  I have successfully brought the problem
20 > system from ~1 year old to ~current (Gentoo portage repo < 24 hours old).
21 >
22 > *Speed Bumps*
23 >
24 > These were the four things that caused the biggest slow down in this
25 > process.
26 >
27 > 1)  Source packages / ebuilds no longer available.
28 >      - I found and downloaded files to DISTDIR.
29 >      - I copied some ebuilds from older versions of portage to my
30 > local repo.
31 > 2)  make.profile not using PORTDIR definition in make.conf.
32 >      - I ran into this while working on October ~ November '20 updates.
33 > 3)  PYTHON_TARGETS & PYTHON_SINGLE_TARGET
34 >      - I ran into this after fixing #2.
35 >      - I had to add the following to pull Python 3.6 back in so that
36 > things would work to add Python 3.7, before allowing the system to
37 > remove Python 3.6 (again).
38 >           PYTHON_TARGETS="python2_7 python3_6 python3_7"
39 >           PYTHON_SINGLE_TARGET="python3_7"
40 > 4)  Firefox & Thunderbird 68 disliking rust ≈ 1.48.
41 >      - I had to give up on retaining version 68 of Firefox and
42 > Thunderbird.
43 >         - The loss of some important extensions still really hurts.
44 >
45 > *How*
46 >
47 > The high level process that I used is a very close superset of what I
48 > hypothesized.
49 >
50 > 10 have git switch to the next day
51 > 20 emerge -DUN @world
52 > 21 emerge --depclean --verbose n
53 > 22 emerge @preserved-rebuild
54 > 23 revdep-rebuild
55 > 30 assess / deal with output from steps 20-23
56 > 40 goto 10
57 >
58 > Steps 21-23 added mid-stream to make comparison to previous message
59 > simpler.
60 >
61 > All of these steps were in a function, `e3` (see attached file), which
62 > relied on one variable, `d`, the count of how many days to go
63 > backwards and set the date (`D`) to that everything should act on.
64 >
65 > Aside:  The next version of e3 would probably store `d` in a file and
66 > subsequently re-load it from said file on each invocation. Thus
67 > eliminating the reliance on the environment variable.  I would
68 > probably store this file in /var/tmp as /tmp and /dev/shm are cleared
69 > on boot.
70 >
71 > After gaining enough trust in the overall process, I ended up running
72 > the following while loop:
73 >
74 >    while e3; true; done
75 >
76 > This allowed the system to stay busy emerging things up to the point
77 > that something failed and needed attention.
78 >
79 > *Setup*
80 >
81 > I did a `git clone` of the Gentoo portage repo.  Currently ~6 GB.
82 >
83 > I then created the branches in the git repo with the following command
84 > (from inside of the git repo directory):
85 >
86 >    for ((age=1; age<1024; age++)); do eval $(printf 'git log
87 > --pretty=format:"%%H %%cd" --date=format:%%Y-%%m-%%d\ %%H:%%M:%%S
88 > --after=%s --before=%s | fgrep -m1 %s' $(date +%Y-%m-%d -d "$(($age +
89 > 1)) days ago") $(date +%Y-%m-%d -d "$(($age - 1)) days ago") $(date
90 > +%Y-%m-%d -d "$age days ago")) | read hash date time; time git
91 > checkout -b $date $hash; done
92 >
93 > Basically, this command starts at current; `stable`, and finds the
94 > first (most recent) commit for a given date and creates a branch, and
95 > works backwards for however many days configured; 1024 in the example.
96 >
97 > *Miscellany*
98 >
99 > I did `emerge -e @world` 3~5 times throughout the process just to make
100 > sure that everything was consistent.  I will do this once more
101 > tomorrow after a full backup runs tonight.
102 >
103 > I did end up removing a small list of packages that were blocking
104 > emerge in one way or another.  --  I decided that removing them to
105 > allow emerge to complete on it's own accord was more expedient than
106 > fighting them at the time.  I will re-add them as necessary.
107 >
108 >  - net-firewall/nftables
109 >  - net-fs/ncpfs
110 >  - media-gfx/gimp
111 >  - dev-python/pycairo
112 >  - dev-python/fido2
113 >  - net-analyzer/scapy
114 >  - app-crypt/yubikey-manager
115 >
116 > Some of the packages were subsequently pulled back in.
117 >
118 > I did run into a bug with app-misc/pax-utils where I needed to add
119 > "-seccomp" for the package to be able to move forward.
120 >
121 > I also did the /usr/portage to /var/db/repos/gentoo et al. migration.
122 >
123 > "repo" can be ambiguous when there talking about both "Gentoo portage
124 > repo" and "git repo".  Especially when the latter is managing the former.
125 >
126 > The following packages take what seems like  F O R E V E R  to emerge:
127 >
128 >  - gcc
129 >  - rust
130 >  - Firefox
131 >  - Thunderbird
132 >
133 > Link - xkcd - Wisdom of the Ancients (a.k.a. DenverCoder9)
134 >  - https://xkcd.com/979/
135 >
136 > *Summary*
137 >
138 > Yes, there are probably faster and / or more efficient processes to
139 > get a Gentoo system that's ~1 year behind caught up to current.  But I
140 > did learn some things along the way.  --  I tried to outline the toe
141 > stubbers so others can avoid them.
142 >
143 > Ultimately, I believe I have done in the last 11 days what would have
144 > been done over the course of the last ~year.  Even 11 days is longer
145 > than necessary as I started with the while loop after getting to
146 > January of this year.  In hindsight, I believe I could have used the
147 > while loop all along.
148 >
149 > I hope that I have included enough details for others to be able to
150 > reproduce this process if they need to.
151 >
152 > Now it's time to repeat this process to bring the two companion
153 > systems up to date.
154 >
155 >
156 >

Replies

Subject Author
Re: [gentoo-user] What is the best way forward? - Update 2 - SUCCESS! - CURRENT!!! Neil Bothwick <neil@××××××××××.uk>