This is a continuation of passing the explicit location of an output
directory instead of hardcoding `${REPORTS_DIR}`.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This is a step towards using different output directory in package
handling. This will be needed for the eventual package handling jobs
system, where each job has its own output directory.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This is a step towards using different output directory in package
handling. This will be needed for the eventual package handling jobs
system, where each job has its own output directory.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This is a step towards using different output directory in package
handling. This will be needed for the eventual package handling jobs
system, where each job has its own output directory.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This is a step towards using different output directory in package
handling. This will be needed for the eventual package handling jobs
system, where each job has its own output directory.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This is a step towards using different output directory in package
handling. This will be needed for the eventual package handling jobs
system, where each job has its own output directory.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This is a step towards using different output directory in package
handling. This will be needed for the eventual package handling jobs
system, where each job has its own output directory.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This is a step towards using different output directory in package
handling. This will be needed for the eventual package handling jobs
system, where each job has its own output directory.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This is a step towards using different output directory in package
handling. This will be needed for the eventual package handling jobs
system, where each job has its own output directory.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
The slots were only used to repeatedly generate the same path to a
directory where the package ebuild diff is saved. So instead, generate
the output paths somewhere in outer scope, put them into a struct and
pass that around. That means that:
- We pass one parameter less (a name of a struct instead of two
slots).
- We can make it easier to change the output directory later (changing
it in a function like update_dir or update_dir_non_slot may affect
locations we didn't want to change, whereas changing the value in
struct scopes the affected areas). This will come in handy later,
when we put package update handling into jobs, where each job will
have its own output directory.
This does not remove the repeated generation of the paths, but it is a
first step.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
This will come in handy for spawning jobs for handling package
updates. Since we don't want to spawn as many jobs as there are
packages, then limiting ourselves to the job count matching the
processor or core count sounds like a better idea.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
We can run report generation for old and new in parallel in two
separate processes. Ought to be a bit less of wait.
This is more or less straightforward parallelization, since there are
only two jobs running. The only thing that needs taking care of is
forwarding job's output to the terminal and handling job failures.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
The library will be used for running emerge report and package update
report generation in separate processes to make them faster.
I initially wanted to use the relatively unknown feature of bash named
coprocs, but it was an unfinished feature as of bash 5.2, so I decided
to write my own then.
The library is rather basic - allows to fork a subprocess that will
run some bash function, communicate with it using subprocesses'
standard input/output, and reap the subprocess.
Signed-off-by: Krzesimir Nowak <knowak@microsoft.com>
After the update, the USE=mpfr got enabled by default, so now we need
to disable it explicitly. Gawk is a part of our initrd, which means
that mpfr gets pulled into it now, increasing the size of it by
another 2mb, which breaks Flatcar updates.
Gentoo dropped the 550 branch of the drivers, so we fail to build the
nvidia-drivers-550 sysexts. For now we temporarily bring it back here
while we figure out our policy for deprecating and dropping sysexts.