forked from gentoo/portage
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNEWS
More file actions
2839 lines (1932 loc) · 97.6 KB
/
NEWS
File metadata and controls
2839 lines (1932 loc) · 97.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Release notes take the form of the following optional categories:
[Optional short blurb/summary]
* Breaking changes
* Security
* Features
* Bug fixes
* Cleanups
portage-3.0.78 (UNRELEASED)
--------------
Breaking changes:
* cnf: enable verify-signature by default in binrepos.conf (bug #945384,
bug #969086)
PGP signature verification is now enabled by default for all binary
repositories.
Signature verification is not supported for the old 'xpak' binary format
(i.e. it requires the new 'gpkg' format).
The new default can be overridden in /etc/portage/binrepos.conf with either:
```
[DEFAULT]
verify-signature = false
```
or
```
[reponame]
verify-signature = false
```
or with FEATURES="binpkg-ignore-signature" in /etc/portage/make.conf.
To set up signing for binpkgs, a signing keyring must reside (by default)
at /root/.gnupg and a verification keyring must reside (by default)
at /etc/portage/gnupg. The verification keyring must mark the signing
key as trusted. Signing is toggled by FEATURES="binpkg-signing".
Features:
* Read binrepos.conf from /usr/share/portage/config as well.
* bintree: Run trust helper when any binrepos.conf configuration has
verify-signature enabled (bug #969187)
* Scheduler: No background mode if there is just one merge job (bug #339579)
* emerge: Warn on installed packages in @world without ebuilds available
(bug #911180).
* repos.conf: Implement sync-openpgp-key-package (bug #968578).
Portage will notify the user if a named package has an update available,
like it does for itself, after a sync.
* binrepos.conf: Implement openpgp-key-package (bug #968578).
Behaves the same way as the aforementioned repos.conf option.
* cnf: repos.conf: Set sync-openpgp-key-package for ::gentoo.
Bug fixes:
* man: portage(5): Document that binrepos.conf location must be unique.
* bintree: Improve error message for per-binhost Packages fetch failure.
* phase-helpers.sh: Fix unpack vs. empty suffixes (bug #969217).
* estrip: Silence noise from objcopy when no build ID section exists (bug #968220).
portage-3.0.77 (2026-01-23)
--------------
Breaking changes:
* binrepo: Default to /var/cache/binhost/${NAME} for `location` (bug #945385)
This is needed to cleanly separate locally-created binpkgs vs
remote fetched binpkgs, which is important for allowing per-repository
PGP verification, but also e.g. deploying your own binhost without
(re-)serving other binpkgs unintentionally.
Support for `location` was introduced for bug #934784. gentoolkit's
eclean-pkg supports multiple binpkg locations rather than just `PKGDIR`
since gentoolkit-0.7 (bug #947694).
Bug fixes:
* doebuild: Fix unexported_env_vars call to chown.
This affects egencache when called with an alternative PORTAGE_USERNAME
and PORTAGE_GRPNAME w/ >= EAPI 9.
* man: make.conf(5): Mention in another place (--getbinpkg) the existence
of binrepos.conf.
* man: make.conf(5): Document in another place (--getbinpkg) that PORTAGE_BINHOST
is deprecated.
Use binrepos.conf instead.
Cleanups:
* doebuild: Fix typos in docstring.
portage-3.0.76 (2026-01-18)
--------------
First release with EAPI 9 support declared!
Features:
* Enable EAPI 9!
* Scheduler: implicit jobserver slot support (bug #692576)
Followup to previous FEATURES="jobserver-token" support.
Bug fixes:
* gpkg: Improve the PORTAGE_TRUST_HELPER hint in error messages.
* meson: Fix warning for configure_file.
* Scheduler: Fix pkg_pretend bug with binpkgs.
Cleanups:
* gpkg: Minor readability refactoring and commentary.
portage-3.0.75 (2026-01-07)
--------------
Features:
* gpkg: Various improvements to verification and signing error messages
(bug #930730, bug #966958).
Notably, we now include a summary of GnuPG error if possible, and we
clearly mark the raw GnuPG output as such.
Bug fixes:
* depgraph: Earlier slot operator backtracking (bug #964705, bug #968228).
This fixes a failure to upgrade Qt in some cases as well as --usepkg
failing to resolve dependencies with REQUIRED_USE.
* sync: Fix crash when sync-user is a UID (bug #968268).
* bintree: Silence warning with file:// for Packages fetch (bug #966721).
* estrip: copy build ID for splitdebug file from original source w/ FEATURES=-installsources
(bug #968220).
Revert the original fix and fix it properly.
portage-3.0.74 (2026-01-01)
--------------
Features:
* binrepos.conf: Support 'verify-signature' to control PGP verification
of binpkgs per binhost.
* System jobserver support via FEATURES="jobserver-token" (bug #966879).
This is to be used with dev-build/steve (https://wiki.gentoo.org/wiki/Steve)
or dev-build/guildmaster https://wiki.gentoo.org/wiki/guildmaster).
Support is still experimental and its semantics may change.
* Introduce support for seperate debuginfo tarballs via FEATURES="packdebug"
(bug #728818).
This produces tarballs under /usr/lib/debug/.tarball which debuginfod
(from dev-libs/elfutils) can index and serve to clients. Requires
build IDs to be enabled in the compiler.
* profiles: Support 'profile-license' extension for package.license files.
* Monitor free space in PORTAGE_TMPDIR (bug #934382).
Introduce a new option --jobs-tmpdir-require-free-gb= to control the
free space required in PORTAGE_TMPDIR.
This is needed to better support FEATURES="merge-wait" which results in
more packages in a pending state in PORTAGE_TMPDIR.
If the limit is reached, parallelism is reduced and the merge-wait
queue is flushed.
* Support `emerge --jobs=0`.
The special value '0' will use the processor count.
Bug fixes:
* bin: Don't define signal handlers in global scope (bug #941956, bug #967199).
This in particular fixes support with Python 3.14.2.
* gpkg: Always wrap GnuPG verification failures in 'eerror' (bug #927632,
bug #936322, bug #941770).
* gpkg: Tweak and cleanup phrasing of error messages.
* estrip: Fix typo in debugedit call for FEATURES="-installsources".
* estrip: Salt build ID for splitdebug file with FEATURES="-installsources"
(bug #968220).
* emerge: --with-test-deps now respects masked 'test' USE flags (bug #968199).
Cleanups:
* tests: Use CommandStep, FunctionStep where external commands are run.
* save-build-env: Revert earlier change which became obsolete by intermediate
changes from the change being submitted vs being merged (bug #914441).
portage-3.0.73 (2025-12-16)
--------------
Final EAPI 9 features and conversion to function-local imports (rather
than our own lazyimport mechanism) which aids code completion and friends
for working on Portage.
Features:
* make.globals: Enable FEATURES="compress-index" by default (bug #248089,
bug #965753).
* EAPI 9: Update Bash requirement to bash-5.3 (bug #946193).
* EAPI 9: Do not export profile-specific variables (bug #948001).
* EAPI 9: Do not export profile-specific USE_EXPAND_* variables (bug #948001).
* etc-update: Support Debian.
* etc-update: Support Artix Linux (bug #864565).
* save-build-env: Strip out MAKEOPTS and NINJAOPTS (bug #736794, bug #914441).
* save-build-env: Strip out non-reproducible variables (bug #914441).
Bug fixes:
* EAPI 9: Fix internal use of assert.
* _parse_build_id: Handle valid versions correctly (bug #966349).
* emaint binhost: Fix stale Packages.gz (bug #966251).
* emaint binhost: Create missing Packages.gz if requested (bug #966251).
* emaint binhost: Delete Packages.gz if not enabled (bug #966251).
* install-qa-check.d: 60pkgconfig: Refine library match (bug #964413).
* src_test: Apply MAKEFLAGS tweak to respect jobserver (bug #692576).
* man: make.conf: Document that FEATURES="pkgdir-index-trusted" is enabled
by default (bug #889300).
* man: make.conf: Document that INSTALL_MASK supports negations (bug #651214).
Cleanups:
* Remove Portage's lazyimport mechanism and replace it with function-local
imports (bug #951146).
portage-3.0.72 (2025-11-17)
--------------
Lots of EAPI 9 preparation.
Features:
* EAPI 9: Implement "profile EAPI defaults to top-level" (bug #965891).
* EAPI 9: Implement use.stable, package.use.stable (bug #965968).
* PORTAGE_NICENESS, PORTAGE_IONICE_COMMAND, PORTAGE_SCHEDULING_POLICY:
Support Python's forkserver multiprocessing method (bug #965763).
* egencache: Update use.local.desc atomically (bug #577126).
Bug fixes:
* bintree: Don't call trust helper w/ insufficient privileges (bug #920180).
* ecompress: Workaround bash behaviour with PID recycling (bug #965423).
* emake: Ignore MAKEOPTS if MAKEFLAGS is set (bug #692576).
* man: Document --implicit-system-deps=n vs merge-wait (bug #681312, bug #965819).
* man: Document PORTAGE_COMPRESS="" (bug #965903).
* depgraph: Avoid RecursionError for virtual cycle (bug #965570).
* PID namespace safety for temporary files (bug #851015).
* sync: Fix pickle error for noisy_refresh_keys (bug #965969).
* _prepare_self_update: Update sys.path for forkserver or spawn (bug #965976).
* dep_zapdeps: Ignore installed circular dependency (bug #703440, bug #951296).
Cleanups:
* Fix some testcases missing EAPI declarations so not testing what they ought
to (bug #966088).
* bintree: Refactor _populate_remote.
* ecompress: Don't call when PORTAGE_COMPRESS is empty.
portage-3.0.71 (2025-11-05)
--------------
Bug fixes:
* bintree: Fix --getbinpkg crash with frozen repo in binrepos.conf (bug #965453).
* bintree: Fix fetching Packages index in some cases, mostly with various
sync-uri (bug #965464).
* news: Skip news if profile is invalid (bug #953800).
portage-3.0.70 (2025-11-01)
--------------
Lots of Python 3.14 compatibility fixes: the default multiprocessing start
method for Linux became 'forkserver' and we've run into a bunch of issues,
some on the CPython side, and some on the Portage side.
Testing this release (and master) with Python 3.14 is encouraged. It works
but users may run into the odd problem. Bug reports appreciated.
Features:
* Enable sync-git-verify-commit-signature for the 'gentoo' repository
per default (bug #901385, bug #959831).
Accompanied by the 2025-11-01-portage-git-sync-verify news item in
gentoo-news.git.
* sync-openpgp-key-refresh in portage(5) now supports more options:
'wkd', 'keyserver', and 'false-nowarn' to allow choosing the specific
refresh methods used and to suppress warnings if someone doesn't want
verification for a repo (bug #661518).
Bug fixes:
* Many multiprocessing-related fixes for Python 3.14.
* bintree: Fix crash when binhost is unavailable (bug #965098).
* bintree: Fix argument error / crash (bug #965098).
* gpkg: Decode 'gpg-status' correctly for compatibility with other
GPG implementations like app-crypt/sequoia-chameleon-gnupg.
* emerge-webrsync: Fix curl support.
* Improve Portage regex for parsing dependencies.
Cleanups:
* Drop legacy USE=test hacks.
* Replace FEATURES=export-pms-vars with Portage development feature
PORTAGE_DO_NOT_EXPORT_PMS_VARS (bug #953842)
portage-3.0.69.3 (2025-10-01)
--------------
[This release was done as a standalone tag.]
Bug fixes:
* Fix unbound variable error.
* Use gtar consistently for systems where tar is not from GNU Tar,
like libarchive.
* Fix DOCS when undeclared but not unset (bug #962934).
portage-3.0.69.2 (2025-10-01)
--------------
[This release was done as a standalone tag.]
Bug fixes:
* Fix 'eapply -d' and other option handling (bug #963536).
* emerge-webrsync: Handle TZ properly (bug #963423).
portage-3.0.69.1 (2025-09-15)
--------------
[This release was done as a standalone tag.]
Features:
* Prefer the 'Last-Modified' over the 'timestamp' HTTP header when
querying binhosts.
Bug fixes:
* Fix timestamp comparison for Packages index by using UTC consistently
(bug #962832).
portage-3.0.69 (2025-09-14)
--------------
Security:
* The emerge-webrsync utility will now parse the output of gpg(1) correctly
and safely. This addresses a security issue affecting users that might
run emerge-webrsync in a situation where gemato is unusable, for whatever
reason.
* The emerge-webrsync utility will now validate the input that it obtains
from the "metadata/timestamp.x" file.
This addresses a possible security issue whereby arbitrary code execution was
achievable in the course of bash performing arithmetic operations on
numbers representing unix time. The permissions on this should be limited
to portage:portage, so limited impact.
Features:
* Initial work by Ulrich Müller and Florian Schmaus on implementing EAPI 9.
So far, we have:
* ban assert
* ban domo
* add pipestatus
* add ver_replacing
* add edo
* do not rewrite absolute symlinks
* bintree: Accelerate index fetch by requesting Packages.gz first (bug 248089).
* Portage will now show statistics about its internal LRU caches if the
PORTAGE_SHOW_LRU_CACHE_INFO environment variable is set.
* Portage will show a HTTP trace if the PORTAGE_SHOW_HTTP_TRACE environment
variable is set.
* Introduce PORTAGE_LOG_FILE_SEP, allowing to configure the separator between
the components of the log files produced by portage.
* bintree: Introduce PORTAGE_BINHOST_TTL setting (bug 958401).
If set (to a value in seconds), Portage will add a TTL field to the Packages
index for binhosts.
(Note that Portage also received a fix in this release for respecting
cached Packages indexes.)
* estrip: Salt build IDs (bug 549672, bug 953869)
Preparatory work for enabling build IDs by default in Gentoo.
Build IDs may be the same in two different packages if there's a bundled
binary or library. Salt with ${CATEGORY}/${PF}:${SLOT} to make sure it's
unique per-package.
* sets: VariableSet: honour 'excludes' (bug 906044, bug 919751, bug 953884)
This allows defining @golang-rebuild and @rust-rebuild in such a way that
dev-lang/go and dev-lang/rust (and -bin) are excluded, as users don't
usually want to rebuild the toolchain there, just packages affected
by static linking and such.
* cnf: sets: bring back @golang-rebuild (bug 919751).
* Portage will now show more details about binrepos if told to be verbose.
Bug fixes:
* Don't strip LD_PRELOAD.
It may be provided by the user.
* _global_updates: Skip if vardb lock raises PermissionDenied (bug #953449).
* process: do not poll join() in MultiprocessingProcess (bug 958635).
This is a significant performance improvement from Esteve Varela Colominas
and Florian Schmaus.
* bintree: Fix local vs. remote timestamp comparison for cached Packages
index (bug 958200, bug 958236).
* actions: Handle sched_setscheduler failure gracefully (bug 904502).
Handles PORTAGE_SCHEDULING_POLICY on e.g. musl in a nicer way.
* Python 3.14 fixes (bug 941956).
* emergelog: Truncate fractional seconds
* The emerge-webrsync utility will now ensure that the temporary directory
containing an ephemeral keyring is deleted upon exiting, in the case that
it chooses to use gpg rather than gemato.
Further, it will automatically terminate the gpg-agent process that would
otherwise become defunct.
* The emerge-webrsync utility will no longer attempt to show news in the
case that it was invoked by portage itself.
* The emerge-webrsync utility will no longer consider executing emerge --metadata
in the case that it was invoked by portage itself.
* The 90gcc-warnings QA check will now perform so-called ANSI filtering correctly
for instances of 'PORTAGE_LOG_FILE' that have been compresesed with gzip.
* The 90gcc-warnings QA check is now able to raise -Wparentheses warnings.
Previously, it could not, owing to a defective pattern.
* The 90gcc-warnings QA check will now de-duplicate all warnings detected,
even if they are not adjacent to one another.
* The use() function can no longer return true when given an abnormal USE
flag (such as "foo foo").
* The estrip utility will no longer produce multiple, redundant warnings
whose lines are unpredictably interleaved (bug 832138).
* file_copy: Update list of acceptable copy_file_range 'errors' to ignore
where we fallback (bug 961738).
* ebuild.sh: Improve diagnostics with too old-bash version.
Performance:
* The way in which portage searches for words that are subsumed by scalar
variables containing whitespace-separated words has been changed. The
newly employed method is approximately twice as fast and considerably
less noisy in the case that the "xtrace" shell option is enabled.
In turn, this change benefits certain functions, such as use().
* Patches are now applied more quickly. Previously, portage would apply the
patch twice, once with the --dry-run option in effect, then again without.
The first of these two phases has been eliminated.
* The performance of the 60bash-compeletion QA check has been improved by
using associative arrays to track seen completions and file basenames.
* The 90gcc-warnings QA check will now use much less memory in the course
of collecting and conveying warnings. It should also perform a little
better on account of composing an extended regular expression that is
simpler and shorter than was previously the case.
* The ecompress utility has been made slightly faster by having GNU find
resolve the targets of symlinks, rather than execute the readlink
utility once for each pathname that is traversed.
Cleanups:
* Owing to an effort to modernise the parts of portage that are written in
bash, a number of improvements have been made in terms of code quality and
legibility, with various bash anti-patterns having been eliminated, new
features leveraged (up to bash 4.4) and diagnostic messages improved.
Though in its early stages, this effort is expected to continue at a brisk
pace through upcoming releases of portage.
portage-3.0.68 (2025-04-12)
--------------
Features:
* Allow "portageq envvar" to treat a trailing * as a wildcard, matching multiple
variables. Useful for multilib.
* Show package category, name, and repository before global-scope messages.
* Add FEATURES=export-pms-vars (default-enabled for <= EAPI 8) (bug #721088).
Bug fixes:
* man: make.conf(5): Improve ccache documentation.
* selinux: Use FEATURES=selinux rather than probing USE=selinux.
* getname: Handle None remotepkgs (bug #948643).
portage-3.0.67 (2025-01-22)
--------------
Breaking changes:
* eend: Missing argument is now an error (bug #703520).
* ebuild.sh: A colon in sandbox function args is now an error (bug #920654).
Security:
* make.globals: disable FEATURES="sfperms" by default (bug #938164).
* emerge-webrsync: Create /var/db/repos/gentoo with correct permissions to
facilitate FEATURES="usersync" (bug #707980).
Features:
* New 'home-dir-template-copy' FEATURE (bug #947822).
If enabled, as part of the ebuild environment setup, copies the PORTAGE_USERNAME
home directory into the build environment HOME directory. Useful predominantly
for ebuilds that use the git-r3 eclass, to give a place to put SSH keys and user-
specific git configuration files used during the build.
* Flush the merge-wait queue on SIGUSR2.
Bug fixes:
* depgraph: Ignore blockers when computing virtual deps visibility (PR #1387).
* binarytree: Fix _inject_repo_revisions to ignore remote packages for which
source repostories are missing, triggering KeyError (PR #1391).
* gpkg: do not consider symlinks targets for size estimation (bug #942512).
* install_qa_check: Fix noclean interaction with merge-wait (bug #942760).
* save-ebuild-env.sh: Add functions from newer EAPIs to filter list
* Support cross-root package moves (bug #946326).
* Process elog messages for emerge --config (bug #904702).
* Scheduler: Handle SIGWINCH for JobStatusDisplay (bug #945382).
* Pass through MAKEFLAGS and exclude from environment.bz2 (bug #692576).
* binarytree.move_ent: Allocate path with binpkg_format (bug #923530).
* ebuild.sh: Allow CC and CXX to be changed in profile.bashrc.
* Preserve PORTAGE_BZIP2_COMMAND in environment.bz2 (bug #948067).
* config: Initialize default PORTAGE_USERNAME and PORTAGE_GRPNAME (bug #941977).
* rust-rebuild: Update for recent changes in ::gentoo (bug #906044).
* emerge-webrsync: Use variables PORTAGE_USERNAME and PORTAGE_GRPNAME (bug #707980).
Cleanups:
* eapi.sh: Remove support for unofficial 4-slot-abi EAPI.
* locks: Drop comment regarding sleep() call.
portage-3.0.66.1 (2024-09-18)
--------------
Bug fixes:
* JobStatusDisplay: Fix width of display. Notable with the new 'merge wait'
metric.
* install-qa-check.d: 90config-impl-decl: Skip various false positives.
portage-3.0.66 (2024-09-11)
--------------
Features:
* binrepos.conf: Support custom download location (bug #934784).
In binrepos.conf, 'location' can now be set to choose the location
for fetched binpkgs from a particular remote repository.
* emerge: Make bare --root-deps option install build-time dependencies to ROOT
as well as / for all EAPIs rather than instead of / for EAPI 6 and below
(bug #435066).
* Show length of merge-wait queue as part of the status display.
* src: Allow GIL to be disabled for Whirlpool C extension (bug #934220).
* ELF: Recognise BPF (bug #937485).
* portage.util.compression_probe: Handle lack of ctypes (libffi) for
bootstrapping purposes.
Bug fixes:
* ebuild: Handle Bash 5.2's change in behavior which enables the shopt
'globskipdots' by default. This is needed to avoid breaking existing
working ebuilds. Future EAPIs will need to adjust the logic
added by this change. See bug #907061.
* doebuild.spawn: Fix hang with FEATURES="network-sandbox-proxy" in consumers
like gentoolkit (bug #937384).
* make.globals: add bcachefs_effective.* and bcachefs.* to PORTAGE_XATTR_EXCLUDE
* vartree, movefile: Warn when rewriting a symlink (bug #934514).
* repository: config: Allow a repository to be configured using one of its
aliases rather than its primary name (bug #935830).
* emerge: Fix parallel-fetch to properly terminate FETCHCOMMAND processes when
needed, using a SIGTERM handler (bug #936273).
* unpack: Don't display "Unpacking ..." message for skipped files.
Match file extensions case-sensitively in old EAPIs, fixes PMS compliance.
* sync: zipfile: Fix installing module.
* ebuild: Improve 'maintainer mode' QA check.
* emerge-webrsync: Honour sync-webrsync-verify-signature attribute.
* dispatch-conf: Don't use SHELL (bug #910560).
* phase-functions: Fix QA_SONAME_NO_SYMLINK so it accepts regex (bug #924953).
* ebuild.5: Improve QA_PREBUILT docs.
* install-qa-check.d: 90gcc-warnings: Handle color in logs for build.log too.
Cleanups:
* tar_safe_extract: Port to Python 3.14 (bug #933433).
* Drop unnecessary f-string use.
* Improve detection of xtrace (debugging).
* eapi.py: Use attrs rather than hardcoding / repeating EAPI properties.
portage-3.0.65 (2024-06-04)
--------------
Features:
* binrepos.conf: Support "frozen" attribute (bug #932739).
This avoids mutating the local index cache by fetching changes from a
binpkg host when running emerge repeatedly. It's useful for consistency
between emerge runs while completing an update.
It should only be used temporarily, not set on a permanent basis.
* bintree: Add REPO_REVISIONS to Packages index header (bug #924772).
Portage will now store synced revisions at /var/lib/portage/repo_revisions.
This associates a binpkg being built with the repository state / revision
at a time, which will ultimately later allow pinning binhost clients
to <= the last commit the binhost was updated at.
It's also useful for pinning source builds from the same revision as
when binary builds were done for consistency and to minimize rebuilds and
maximize binpkg use.
* mtimedb: Record binpkg BUILD_ID and BUILD_TIME (bug #933442).
This fixes 'emerge --resume' to correctly pick up binpkgs and not
recalculate.
Bug fixes:
* unpack: Skip unrecognized file formats silently, fixing PMS compliance.
* estrip: Don't use splitdebug for .o files (bug #787623).
This fixes splitdebug mangling debug information with Clang.
* sync: git: Add safe.directory for getting HEAD commit (bug #930992).
* install-qa-checks.d: 90config-impl-decl: Suppress known false positives
for gnulib on glibc and musl.
* CONFIG_PROTECT: Don't use shlex.split (as it's a whitespace-separated list).
* depgraph: Fix crash with --useoldpkg with subslot bumps (bug #932804).
* depgraph: find_smallest_cycle: Revert optimization which caused
merge order regression (bug #922629).
A new testcase is also added.
* sync: Don't use IPv6 for rsync when disabled (bug #927241).
* atomic_ofstream: Use mkstemp instead of PID for PID namespace safety (bug #851015).
* MergeProcess: Pass bintree to subprocess (bug #933297).
This fixes FEATURES="downgrade-backup".
* tar_stream_writer: Improve error handling (bug #933385).
Cleanups:
* Scheduler: Improve legibility.
* portage.util.shlex_split: Drop legacy Python 2 wrapper.
* eapi.sh: Drop obsolete ___eapi_has_dohtml_deprecated().
portage-3.0.64 (2024-04-28)
--------------
Features:
* Scheduler: Support parallel-install with merge-wait (bug #256616, bug #925213).
This makes the (future) improvement mentioned in portage-3.0.62's NEWS.
* phase-functions: prematurely delete WORKDIR if FEATURES=merge-wait
The 'merge-wait' feature could lead to running out of disk space on
PORTAGE_TMPDIR's filesystem because many more workdirs were kept around
until merging was queued up. We now purge the workdirs but keep the image
around until merging.
* Start to record REPO_REVISIONS in build-info in VDB (bug #924772).
Ultimately the intention is to expose this information in binhost
metadata so that clients can select consistent revisions of source
repositories.
* util: file_copy: Support btrfs's FICLONE ioctl for fast file clones.
Added when implementing the below 'src: Drop linux_reflink C module.'
cleanup.
* sync: Add new 'zipfile' sync-type.
This allows fetching ebuild repositories via snapshots from e.g. GitHub,
gitweb, cgit.
Bug fixes:
* ctypes: Add workaround for loading libc on musl.
* util: set a timeout for urlopen calls (bug #926221).
* SpawnProcess: Fix noise / warnings caused by set_term_size (bug #923750, bug #925456).
* binpkg, gpkg: Add missing newlines to error messages.
* writable_check: Improve whitespace handling when parsing /proc/self/mountinfo (bug #925888).
* doebuild: Call _setup_locale (bug #925863).
This is needed to more robustly handle invalid or inappropriate locale settings.
* binarytree._populate_remote: Fix UnboundLocalError for binpkg-request-signature (bug #926048).
* elog/mod_custom: Spawn processes in background (bug #925907).
Fixes a noisy crash on exit.
* Fix REQUIRED_USE error with --fetchonly --pretend but not --fetchonly (bug #675748).
* socks5: Fix exit with FEATURES="network-sandbox-proxy" or FEATURES="distcc" (bug #925240).
* meson.build: Install dist-info METADATA (bug #920330).
This is needed for 'pip' to not be confused when Portage is installed system-wide.
* EbuildPhase/EbuildBinpkg: Ensure PKGDIR subdirectory permissions (bug #712222).
A warning (failure) was observed with FEATURES="installsources" otherwise.
* config: Sort FEATURES to avoid non-determinism (bug #914441).
* man: Document autoenabled options by --getbinpkgonly.
* BinpkgPrefetcher: Use eerror for binarytree inject failures (bug #927632).
This improves the readability of the error substantially.
* install-qa-check.d: Remove QA warning when no bash completions are found (bug #928599, bug #928869).
This check had too many false positives.
* lib: use more pure git-describe output for --version (bug #912209).
This makes 'emerge --version' info far nicer when using portage-9999.
* lib: adhere to python package version conventions (bug #926966).
(Note that this needed fixing even before the change for bug #912209).
Cleanups:
* cnf: sets: Migrate @golang-rebuild to dev-lang/go (removed from Portage) (bug #919751).
* src: Drop libc C module.
This was only used for `find_library` on musl. We've now implemented
an alternative workaround for this.
* src: Drop linux_reflink C module.
This is now implemented in pure Python, which also means PyPy can
benefit.
Testsuite coverage was also improved for this area.
* Delete compat_coroutine module.
portage-3.0.63 (2024-02-25)
--------------
Bug fixes:
* emerge: Skip installed packages with emptytree in depgraph selection (bug #651018).
* bin/install-qa-check.d: 90gcc-warnings: drop warnings with too many FPs (bug #925460).
* AsyncioEventLoop: Call process.run_exitfuncs() before close (bug #925240).
Fixes hang with FEATURES="network-sandbox-proxy" or FEATURES="distcc".
* SchedulerInterface/PollScheduler: Add _loop property (bug #925333).
Fixes erroneous assert.
* _dynamic_deps_preload: Fix settings reference (bug #925350).
Fix KeyError with --dynamic-deps.
* process.spawn: Fix logic for missing libc.unshare on musl (bug #925311).
Fix handling when we can't unshare where we might e.g. modify the hostname
of the real system on musl.
* dbapi: Fix TypeError when passing Exception to warnings.warn (bug #922935).
Fix testUpdateDbentryDbapiTestCase.
* _start_proc: Prevent premature ForkProcess garbage collection (bug #925456).
Fix warnings/errors like "[ERROR] Task was destroyed but it is pending!".
Cleanups:
* More asyncio porting.
portage-3.0.62 (2024-02-22)
--------------
This release has a lot of misc. bug fixes as well as many asyncio fixes from Zac to
kill off unsafe fork use.
Features:
* cnf: make.conf.example.arc: Add for the arc arch.
* ELF: Add entries for ARC machines
* bintree: Use urllib to parse PORTAGE_BINHOST / sync-uri so IPv6 works (bug #921400).
* FEATURES: Add FEATURES="merge-wait", enabled by default, to control whether
we do parallel merges of images to the live filesystem (bug #663324).
If enabled, we serialize these merges.
For now, this makes FEATURES="parallel-install" a no-op, but in future, it
will be improved to allow parallel merges, just not while any packages are
compiling.
* estrip: Add FEATURES="dedupdebug" (bug #906368).
This uses sys-devel/dwz to deduplicate installed DWARF debug information.
Future improvements may be made for multifile support.
* Support PROPERTIES="test_privileged" to not drop privileges for tests (bug #924585).
Bug fixes:
* vartree: Make _needs_move() resilient to corrupt files on the live filesystem
(do a full copy/replace).
* binpkgs: Handle SignatureException during package moves (bug #922142).
* gpkg, bintree, binpkg: Add missing newlines to signed binpkg update notice.
* emerge: Backtrack consistently regardless of --fetchonly (bug #922038).
* emaint: Cleanup duplicate 'usage:' output.
* installed_dynlibs: Resolve *.so symlinks (bug #921170).
* bin: Consistently prefix eqawarn with 'QA Notice' (bug #728046).
* _overlap_dnf: Deduplicate any-of blocks which improves performance (bug #891137).
* tests: Handle larger PAGE_SIZE in environment size check (bug #923368).
Cleanups:
* tests: Add a job with multiprocessing set to the 'spawn' method.
* tests: Fix missing playground cleanups.
* process.spawn: Add abstraction for os.fork() to allow migrating callers to it.
portage-3.0.61 (2024-01-05)
--------------
A small set of binpkg robustness fixes.