-
Notifications
You must be signed in to change notification settings - Fork 256
/
NEWS
2112 lines (1489 loc) · 75.5 KB
/
NEWS
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.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.
Bug fixes:
* BinpkgFetcher: Preserve mtime (bug #921208).
* bintree: Don't call trust helper unless bindb is writable (bug #915842, bug #920180).
* bintree: Avoid unnecessary build id incrementation (bug #921208).
* bintree: Handle inject failures (bug #921327).
* emaint: merges: Fix TrackingFile for utf8_mode (bug #921181).
portage-3.0.60 (2024-01-02)
--------------
A small set of binpkg robustness fixes.
Bug fixes:
* EbuildBinpkg: Avoid crash with verification failure in some cases (bug #921089).
* dbapi: Raise CorruptionKeyError - which is treated as a warning - during pkgmoves
to avoid falling over in the event of a corrupt Packages index (bug #920828).
* EbuildFetchTestCase: Fix key order assumption (bug #921107).
* gpkg: Fix basename handling via aux_update (in particular with FEATURES="binpkg-multi-instance")
(bug #920828).
portage-3.0.59 (2023-12-27)
--------------
Features:
* emerge: depclean now returns with failure if no packages are matched
(bug #917120).
* bintree: Support 'file://' scheme for binhost sync-uri (bug #920537).
* sync: git: Include signing key and git revision in log output with --verbose
or if a failure occurs.
Bug fixes:
* Scheduler: Handle aborted unpack more gracefully (bug #920258).
* Scheduler: Handle SignatureException in _run_pkg_pretend to give a proper
error message if a signature could not be verified, rather than crashing out
(bug #920258).
* ebuild: Improve 'command not found' regex for the dash shell (bug #822033).
* ebuild: Do not skip 'command not found' QA warnings for configure (bug #245716).
* emerge: Fix --binpkg-respect-use output optimization (was broken by refactoring
for ROOT support).
* depgraph: Use strip_libc_deps in _eliminate_rebuilds (bug #915494).
* depgraph: Handle IDEPEND circular dependencies for depclean (bug #916135).
* bindbapi: Update Packages index when signed binpkgs are invalidated post-updates
(bug #920095).
* _global_updates: Take a lock when performing updates (bug #587088, bug #920095).
* make.conf(5): Fix note about binpkg extension for gpkg.
* addread, addwrite, adddeny, addpredict: Warn about passing a colon-separated
list of paths as argument (bug #920654).
portage-3.0.58 (2023-12-14)
--------------
Breaking changes:
* Switch BINPKG_FORMAT to "gpkg" by default (bug #912672).
portage-3.0.57 (2023-12-10)
--------------
This release has a series of binpkg robustness fixes. Notably, it includes
a workaround/fix for binpkgs built against a newer glibc to ensure that they
aren't merged on a binpkg consumer before merging a newer glibc, which has been
a longstanding cause of frustration for binpkg users.
Features:
* emerge: Make --binpkg-changed-deps output far more concise (don't show
packages missing from the merge list).
* ebuild: Inject implicit libc RDEPEND. This avoids "bricking" systems when
using binpkgs built against a newer glibc (bug #753500, bug #913628).
* BinpkgVerifier: Improve error message on stale binpkg index. This became
more common with the portage-3.0.52 default change to FEATURES="pkgdir-index-trusted"
(bug #915474).
Bug fixes:
* Fix package moves for signed binary packages by deleting the old binpkg
if it cannot be re-signed, rather than crashing (bug #919419).
* Set SYSROOT appropriately for best_version and has_version so that they work
when cross-compiling and IPC is disabled.
* bindbapi: Add missing SIZE key for binpkg-multi-instance (bug #906675,
bug #918597, bug #919668).
* resolver: Weaken circular dependency handling for cross-root (bug #919174).
* BuildLogger: Avoid hang with -ipc builds (bug #919072).
* soname dependency support: Fix crash with --ignore-soname-deps=n (bug #919311).
* sets: VariableSet: Flatten dependencies so that e.g. www-client/firefox
appears in @rust-rebuild.
portage-3.0.56 (2023-12-01)
--------------
In particular, this release improves dependency resolution robustness in
a few scenarios.
Breaking changes:
* ebuild: no longer implicitly set NOCOLOR and NO_COLOR when color output
is disabled for emerge itself. In order to obtain color-free logs, please
either explicitly set NO_COLOR environment variable or use e.g. ansifilter.
Features:
* sync: git: Add sync-git-verify-max-age-days option.
Bug fixes:
* resolver: Handle merge order correctly for some circular dependencies
(e.g. app-alternatives/gzip with app-arch/pigz and sys-libs/zlib)
(bug #690436, bug #917259).
* resolver: Adjust priorities to fix wrong merge order
(e.g. net-misc/curl with net-libs/nghttp2) (bug #918683).
* resolver: Optimize find_smallest_cycle (bug #918682).
* emerge: Fix PROMPT_COMMAND crash on shutdown (bug #917033).
* emerge: Fix crash on some build failures (bug #917315).
* emerge: Give output referring to emerge-fetch.log for FEATURES="parallel-fetch"
while waiting for binpkgs (bug #760893).
* ebuild: Add missing newlines in error messages.
Cleanups:
* tests: Add pytest markers: ft, unit and stress.
* tests: Add test for trust helper --pretend issue (bug #915842).
portage-3.0.55 (2023-11-06)
--------------
Bug fixes:
* Convert portageq helper to a function to avoid breaking external callers
(bug #916287, bug #916296).
* Avoid crash with incomplete depgraph for binpkg-respect-use notice (bug #916614).
* Avoid crash with blockers in depgraph for binpkg-respect-use notice (bug #916336).
* Don't call trust helper (e.g. getuto) with --getbinpkg --pretend as we may
lack privileges to do anything (bug #915842).
portage-3.0.54 (2023-10-25)
--------------
Zac has continued working on preparing us for the 'spawn' multiprocessing
method.
Breaking changes:
* Finally ban non-PMS helpers portageq, prepinfo, prepman, prepstrip and
prepallstrip (bug #899898, bug #906129, bug #906156).
Features:
* sync: git: Pass --verbose to git when emerge --sync --verbose.
* sync: git: Forcefully update git remote to match sync-uri for non-volatile
repositories (bug #905869).
* emerge: Make --binpkg-respect-use output far more concise (don't show
packages missing from the merge list and don't show packages w/ multiple
BUILD_IDs).
Bug fixes:
* SpawnProcess, ForkProcess: Pass stdin via fd_pipes for non-background. This
fixes e.g. emerge --sync --ask (bug #916116).
* _emerge: Fix looking up package name for error colorization (bug #915551).
* sync: git: Handle when git is configured with 'log.showSignature'.
* StaticFileSet: Fix os.walk for utf8_mode (bug #916182).
* create_trees: Handle bytes arguments for utf8_mode (bug #916149). This broke app-portage/unsymlink-lib.
Cleanups:
* MergeProcess: Support QueryCommand with spawn start method (bug #916106)
* vardbapi.unpack_contents: Support spawn start method (bug #916112)
* vardbapi.unpack_metadata: Support spawn start method (bug #916108)
* ForkProcess: Implement fd_pipes via send_handle for spawn start method (non-fork)
(bug #915896).
portage-3.0.53 (2023-10-20)
--------------
Standard mix of bug fixes and new features, along with Zac's continued work
on preparing us for the spawn multiprocessing method.
Features:
* GNUMAKEFLAGS: also specify "-l $(nproc)", that is, limit by load average,
per default.
* Increase default number of maximum backtrack attempts from 10 to 20.
Bug fixes:
* bintree: Add another API member (invalid_errors) to allow eclean-pkg to suppress
errors when cleaning invalid binpkgs (bug #900224).
* repos.conf: Fix default value of sync-rsync-verify-max-age for ::gentoo. It
was previously '24' which allowed far too much time with a stale mirror and
could lead to users missing important updates.
* Miscellaneous determinism/reproducibility fixes for binpkgs / environment (bug #914441).
* make.conf(5): Update MAKEOPTS guidance to reflect modern practice (bug #821529).
* For locales that have UTF-8 filesystem encoding, use unicode strings rather
than raw bytes for file paths in calls to python modules like os and shutil
(bug #914722).
We recommend using a UTF-8 locale for both performance and correctness reasons.
* Eliminate unnecessary package reinstalls (bug #915494).
* Update the git remote URL of an overlay with its configured sync-uri
when necessary (bug #905869).
portage-3.0.52 (2023-10-03)
--------------
This release has a nice speedup for backtracking caching and supports eclean-pkg
removing invalid binpkgs.
Breaking changes:
* FEATURES=pkgdir-index-trusted is now on by default. This improves performance
with binpkgs, but does require that users run `emaint binhost --fix` if they
manually add or remove binpkgs from their PKGDIR (bug #889300).
Features:
* Refine _slot_operator_check_reverse_dependencies caching (bug #883071).
* bintree: Add new API member (invalid_paths) to allow gentoolkit to later
clean up invalid binpkgs (bug #900224).
* gpkg: Run PORTAGE_TRUST_HELPER before remote binary package operations (bug #913070).
* emerge: Use appropriate colors if binpkgs are used in e.g. pkg_pretend
messages as well as elog's mod_echo module (bug #914159).
* Show backtrack information after dependency resolution.
Bug fixes:
* Prevent gpg from removing /dev/null when unlocking signing key (bug #912808).
* emerge: ensure paths are UTF-8 encoded in _needs_move() (bug #913103).
* vartree: keep build dir if postinst fails (bug #704866).
* fetch: fix fetching of layout.conf when FEATURES=force-mirror (bug #877793).
* dispatch-conf, etc-update: fix SELinux security labels on merged files.
* emerge: fix application count when listing search results for ambiguous
packages (bug #915054).
* env-update: Write ${EPREFIX}/usr/etc/ld.so.conf with unprefixed paths on
prefixed systems to fix the bfd linker in some obscure cases (bug #892549).
* locks: Handle multiprocessing 'spawn' method (bug #915119).
Cleanups:
* vartree: Remove unused variables and parameters
* locks: Drop obsolete EINTR wrapper
portage-3.0.51 (2023-08-20)
--------------
This release features better debug logging in particular.
Features:
* emerge: Set up logging immediately and respect --debug for log level.
* sync: git, rsync: now respects --debug for better output from gemato. This is
especially useful for debugging hangs during the 'Refreshing keys' stage.
Bug fixes:
* sync (inc. emerge-webrsync): Handle https_proxy to help users who only have it set
- the expectation is to have http_proxy set (bug #691434, bug #835927, bug #911629)
* sync: git: respect --quiet more for PGP verification (bug #673624).
* emerge-webrsync: Explicitly pass http_proxy or https_proxy into gemato
via --proxy (bug #911629).
* doebuild: gate -Oline behind MAKEFLAGS check (bug #909009).
* misc/emerge-delta-webrsync: Fix PGP logic which prevented syncing for this
rarely-used tool (bug #911335).
* make.conf(5): Mention https_proxy.
portage-3.0.50 (2023-08-09)
--------------
This release has a major build system rework to support PEP517 by migrating
to meson-python, thanks to Chewi!
Breaking changes:
* The minimum supported Python version is now >= Python 3.9.
* Portage now installed with Meson and Python sdist + wheel now prepared with
meson-python for PEP 517 compliance.
* FEATURES=cgroup was removed since it was based on version 1 cgroups, which
caused some issues and version 1 cgroups are obsolete. Use
FEATURES=pid-sandbox instead.
Bug fixes:
* install-qa-check.d/05prefix: Fix prefixifying shebang for >= EAPI 7 ebuilds
(bug #909147).
* bin/save-ebuild-env.sh: Stop using compgen and hence stop needing readline
(bug #909148).
* _reflink_linux_file_copy: Fix -Wmaybe-uninitialized.
* env-update: Check exit code from ldconfig (bug #910376).
* emerge: Fix 'no ebuilds available' message always mentioning binpkgs
(bug #909853).
* gpkg: Fix timestamp for binary packages (bug #909067).
* Ensure non-Python (s)bin scripts launch other Python-based Portage scripts
using the same environment.
* Use the correct Python library path when launching scripts directly from a
virtual environment.
* Define BROOT in pkg_* phases following PMS change.
* portage(5): Fix description of 'volatile' repos.conf setting (bug #911594).
portage-3.0.49 (2023-06-21)
--------------
Bug fixes:
* Adjust write tests for DISTDIR and PORTAGE_TMPDIR to work with automount
directories (bug #485100, bug #890812).
* depgraph: Do not allow slotted deps to be satisfied by wrong slots
(bug #463976, bug #592880, bug #596664, bug #631490, bug #764365, bug #793992).
This is the notorious "Perl rebuild" bug where Perl modules would get rebuilt
_before_ a new dev-lang/perl and therefore be broken at runtime.
* dosym: Prevent globbing of argument in dosym_canonicalize().
* emerge-webrsync: Give a nicer error message if the requested key isn't
on the filesystem (bug #905868).
* glsa-check: appropriately handle more error cases with invalid GLSAs
(bug #905660)
portage-3.0.48.1 (2023-06-06)
----------------
Bug fixes:
* sync: webrsync: Fix syncing with keyserver explicitly specified (bug #907816).
portage-3.0.48 (2023-06-01)
--------------
Breaking changes:
* Output deprecation warnings for portageq, prepstrip and prepallstrip
when they are called from an ebuild (bug #906129, bug #906156).
Features:
* Optimize merge process by only writing files to disk if a package's
contents have changed. This is particularly beneficial on CoW filesystems
with snapshots. This is always enabled. See bug #722270.
Cleanups:
* Begin porting to pytest!
Bug fixes:
* fowners, fperms: Fix handling of relative pathnames (bug #905223).
* emerge-webrsync: Switch Portage to use gemato for when it shells out
to emerge-webrsync for repositories configured with sync-type=webrsync
(bug #905358).
This unifies some of the logic between Portage and emerge-webrsync:
both of them now use the same main path for PGP verification (i.e.
gemato).
* emerge-webrsync: Fall back correctly to manual gpg (rather than aborting
entirely) if gemato is not installed (bug #905868).
Cleanups:
* Convert printf-style %-formats into fstrings.
* Move the internal portageq wrapper script out of the ebuild-helpers
directory.
* Drop unused deprecated-path script.
portage-3.0.47 (2023-04-30)
--------------
Security:
* emerge-webrsync (the standalone tool) now verifies PGP signatures, see
bug #597800. Note that 'sync-type = webrsync' in repos.conf already
handled PGP verification when configured to do so (and it is by default).
* dispatch-conf: Avoid race when accessing log file (bug #903973).
Features:
* install-qa-check.d: 90gcc-warnings: Add additional code quality warnings:
- -Wrestrict
- -Wstringop-overread
- -Wstringop-truncation
- -Wformat-truncation
- -Wcast-function-type
- -Wnull-dereference
- -Wmain
- -Wimplicit-int
- -Wstring-compare
* install-qa-check.d: cython-dep: Report packages that are using Cython
but are missing BDEPEND on it.
Bug fixes:
* econf now checks for proper end of string in "configure --help" output for
all options starting with "--with-", "--disable-" or "--enable-", in order
to pass them to configure. This follows a change in PMS (bug #815169).
* All _E_*DESTTREE_ variables to renamed to __E_*DESTTREE, in order to move
them to the __* namespace which is reserved for the package manager.
* The PVR variable includes -r0 if explicitly specified (bug #875362).
portage-3.0.46 (2023-04-07)
--------------
Breaking changes:
* Drop STREEBOG{256,512} support
Support was originally added in https://bugs.gentoo.org/597736, but
exclusively via two modules (pygost and pygcrypt) which aren't packaged in
Gentoo - or seemingly any other major distribution.
We're dropping both pygost and pygcrypt compatibility: pygost has been
removed from pypi and pygcrypt is inactive upstream.
pygost being yanked from pypi made CI start to fail too and silently dropping
it from CI without addressing the situation which was already suboptimal (insufficient
testing) wasn't deemed acceptable.
* Inline most code from prepinfo in install_qa_check() (bug #899898).
Output a deprecation warning for prepinfo and prepman when they are called
from an ebuild.
Cleanups:
* Drop support for pygcrypt
The codepath has been disabled since 2017 because of https://bugs.gentoo.org/615620,
so let's finally clean it up.
pygcrypt *prior to 2017* was used for RMD160/WHIRLPOOL/SHA3_256/SHA3_512
if hashlib didn't provide these *and* the sha3 module didn't either.
pygcrypt last received a release in 2017 too.
* Drop support for pyblake2, sha3
We've only supported >= Python 3.6 for quite some time, so these codepaths are
obsolete given hashlib will always provide support for BLAKE2 and SHA3.
Neither pyblake2 nor sha3 are even packaged in Gentoo anymore either (the
Python bindings).
* Drop most of the pycrypto/pycryptodome fallbacks
>= Python 3.6 includes support for BLAKE2 and SHA3 in hashlib, so these
aren't needed anymore.
pycrypto fallback support continues to exist for RMD160.
* Drop support for WHIRLPOOL logic via mhash
Drop mhash fallback logic for WHIRLPOOL as we already have:
hashlib > pycrypto > bundled C > bundled pure Python
in terms of priority for providers.
Features:
* Respect the NO_COLOR environment variable for disabling color.
The new quasi-standard for disabling ANSI color is to check for the NO_COLOR
environment variable and disable color when the variable has a nonempty value.
See bug #898224. Portage previously used NOCOLOR. It continues to support NOCOLOR
for a time for compatibility.
* ci: enable running Portage tests on sourcehut builds
The build manifests and supporting files can be found in .builds/
Current limitations compared to GitHub actions:
- Does not test with PyPy (see bug #903709)
- Runs all all tests on each push (unless pushed with `-o skip-ci` which skips
all tests)
- Runs lint and ci jobs concurrently, but each Python version within those is
tested sequentially. This means tests will take longer to complete, unless
the run fails partway through (~1h vs ~15-20m).
Benefits compared to GitHub actions:
- Can monitor test progress over SSH
- Can investigate failed tests over SSH
- ... not GitHub ;)
Bug fixes:
* dbapi: Handle mismatched binpkg structure during pkgmoves (bug #877271,
bug #903917, bug #903926).
* tests: util/test_shelve: fix test failure if the backend for the shelve module
does not create the shelve db using the literal filename.
portage-3.0.45.3 (2023-03-19)
----------------
Features:
* New portage FEATURE warn-on-large-env, to emit a warning if portage
executes an ebuild-related child process with a large environment.
Bug fixes:
* repository: config: Handle more error cases when determining repository
volatility (bug #900683).
portage-3.0.45.2 (2023-03-04)
----------------
Bug fixes:
* repository: config: Fix initial sync of repositories (bug #899208). Regression
from portage-3.0.45, but the real bug is from portage-3.0.42.
portage-3.0.45.1 (2023-02-27)
----------------
Bug fixes:
* install-qa-check.d/90config-impl-decl: fix handling of non-ASCII quotes when
extracting the function name. Detect "-Werror=implicit-function-declaration"
as used by GCC.
portage-3.0.45 (2023-02-26)
--------------
Features:
* Support new ELF machine code: AMDGPU (bug #795825)
* ebuild: Set GNUMAKEFLAGS="--output-sync=line" to ensure build logs are written
to synchronously when running GNU make in parallel. This option is only set if
MAKEOPTS and GNUMAKEFLAGS are left unset by the user.
* emerge: add --onlydeps-with-ideps=<y|n> option (bug #890777)
* emerge: add --update-if-installed option. This is useful for one-shot
emerge commands to be run across several machines to upgrade packages
only if they're installed.
* install-qa-check.d: 60pkgconfig: add opt-in QA_PKGCONFIG_VERSION check
* install-qa-check.d: add 90config-impl-decl to detect -Wimplicit-function-declaration
in config.log, CMakeError.log, and meson-log.txt. ebuilds can add functions to
the QA_CONFIG_IMPL_DECL_SKIP array to skip false positives.
The following entries are created in qa.log under the tag 'config.log-impl-decl':
* 'line' - line number in the config log where the warning is found
* 'func' - the function that is implicitly declared
(bug #892651)
* emerge: Log completion of package installs.
Bug fixes:
* gpkg: Handle out-of-space errors (bug #891391).
* gpkg: GPG signed gpkg will be ignored for profiles updates.
* binpkg: Show warning if the binhost is missing metadata (outdated). (bug #884869)
* binpkg: Improve error handling for binpkg detection. (bug #893638)
* portage(5): List volatile option as a separate entry (bug #888585).
* emaint: Changed default action for emaint target sync to 'auto'.
* tests: news: significantly improved test coverage (bug #889330).
* git: also report sync errors for volatile repos. Portage would previously simply
report success if an volatile repository failed to sync (bug #895526).
* git: correct detection of volatile repositories (bug #895526).
* ebuild(5): alphabetize QA_* vars
portage-3.0.44 (2023-01-15)
--------------
Features:
* emerge: Show time taken to calculate dependency resolution with
emerge --verbose.
* cleanups: Use flynt on the codebase to upgrade to Python f-strings everywhere.
* process: Show diagnostic message if exec failed with E2BIG
Bug fixes:
* ebuild: the PATH variable exported to ebuilds has been changed:
The PATH setting from /etc/profile.env is appended to portage-internal
paths, and ROOTPATH is no longer included (bug #607696, #693308, #888543).
* emerge: Fix installation of binpkgs by path (bug #873202, bug #890291).
* Fix crash with pypy when PORTAGE_SCHEDULING_POLICY has been set (bug #876031).
portage-3.0.43 (2023-01-02)
--------------
Bug fixes:
* news: Fix matching profile paths with Display-If-Profile in some cases.
* checksum: Rewrite Whirlpool implementation as a C extension to substantially improve
performance (bug #885909).
This only takes effect with OpenSSL 3 and newer (unnecessary otherwise).
Whirlpool is considered deprecated within Portage and we recommend that
repository maintainers remove it from `metadata/layout.conf`!
* sync: git: Fix "is shallow git repository" check.
* bin: Rewrite signal handling which will now correctly rethrow SIGINT
and not confuse shells (bug #887817).
* bin: Pass -S to file(1) to avoid seccomp sandbox issues (bug #811462, bug #889046).
Files being installed by Portage are generally trusted but also the
syscalls allowed by file are quite broad anyway.
Things can go catastrophically wrong if file misses valid input,
as we may have invalid VDB metadata.
portage-3.0.42 (2022-12-26)
--------------
Breaking changes:
* Portage changed its git sync behaviour for repositories with sync-type=git.
Recently in Portage 3.0.39 (for sync depth) and Portage 3.0.40 (git reset/clobbering),
Portage started doing two things:
1. Clobbering changes to repositories with sync-type=git
If git is pulling from a CDN, Portage may on one sync receive state X, but
on a subsequent sync receive state X-1. This can cause an odd state
where git wants to resolve conflicts and manual intervention is required,
hence needing git reset.
This situation was often worse with sync-depth=1 and would lead
to orphaned files hence needing git clean.
2. Defaulted to sync-depth=clone-depth=1.
The motivation here was because of disk space growing unbounded
otherwise, as a full disk could lead to sync failure. It also makes sense
when considered within the school of thought / motivation listed above
(prioritising a successful sync and then making an optimisation
based on how we achieve that).
Portage 3.0.42 will now only make a repository shallow if:
1. volatile=yes and it is a new sync (i.e. it was not deep before), or
2. volatile=no and sync-depth is unset in repos.conf.
--
To allow users to opt-out of these destructive changes, we now
have a repository setting called 'volatile'.
* If volatile=yes, the repository is assumed to be user-modifiable
and Portage will NOT prioritise successful sync over preserving
repository state.
* If volatile=no, the repository is assumed to only be modified
by Portage, and Portage will try its best to ensure syncs continue
to work.
The default value of 'volatile' is determined as follows:
- If the repository is under /var/db/repos or if it is owned by either
'portage' or 'root', then it defaults to 'no'. That is, portage
assumes full control over the repository, potentially performing
destructive changes to the repository.
- If the repository is not under /var/db/repos or owned by a different
user than 'portage' or 'root', then it defaults to 'yes'. That is,
portage assumes the repository is user owned and does *not* perform
any destructive changes.
Features:
* cnf: make.conf.example.loong: add for the loong arch (bug #884135).
* sync: git: only perform destructive operations like 'git reset' to keep