forked from gentoo/portage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
1555 lines (1148 loc) · 57.4 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
863
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
portage-3.0.52 (UNRELEASED)
--------------
Features:
* bintree: Add new API member (invalid_paths) to allow gentoolkit to later
clean up invalid binpkgs (bug #900224).
Bug fixes:
* Prevent gpg from removing /dev/null when unlocking signing key (bug #912808).
portage-3.0.51 (2023-08-20)
--------------
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)
--------------
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 #911863).
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
sync working and the repository in a predictable state for sync-type=git
repositories if the repository is not marked volatile.
* sync: git: only perform shallow updates if the repository is a shallow one
or if the repository is not marked volatile.
* sync: git: run 'git clean' in git repositories if they are marked as
non-volatile.
Bug fixes:
* glsa: Abort if a GLSA's arch list doesn't match the expected format (bug #882797).
* install-qa-check.d: 60pkgconfig: avoid using grep -P (PCRE) unnecessarily (bug #884285).
* etc-update: Apply defences for patsub_replacement being default on in Bash 5.2
(bug #881383).
* make.conf(5): Note the various file suffixes / file extensions used
for binary packages.
* logging: Write logs under BROOT, not EPREFIX.
portage-3.0.41 (2022-11-04)
--------------
Features:
* vartree: On collisions which are non-fatal (e.g. orphaned files when using
FEATURES="protect-owned"), Portage now has friendlier output
by using ewarn rather than eerror.
* cleanups: Use pyupgrade on the codebase (up to Python 3.8) to use newer
idioms.
Bug fixes:
* Fixed possible corruption of GPKG multi-instance binary packages on upgrade.
Bug #877271.
portage-3.0.40 (2022-12-01)
--------------
Features:
* Optimize _slot_operator_check_reverse_dependencies by caching using
lru_cache. In a ChromeOS use case, this patch decreases the running time from
311s to 197s with almost no memory usage increase. See bug #883071.
* config: /etc/portage/sets.conf can now be a directory. Ditto for the Portage extension
supporting sets.conf in ebuild repositories.
* sets: Tests added for VariableSet changes to check @golang-rebuild works as
intended.
* cleanups: Drop long-obsolete Jython compatibility code.
* cleanups: Use designated initializer syntax in src/ (C bits).
* Add support for a distinct SYSROOT location that is not equal to / or ROOT.
This is only expected to be used for cross-bootstrapping a new system from
scratch using a crossdev environment under /usr/${CHOST}.
Bug fixes:
* ebuild: Handle Bash 5.2's change in behavior which enables the shopt
'patsub_replacement' 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 #881383.
* sync: Clobber repositories using sync-type=git to match rsync behavior. This
helps with issues where git-synced repositories can become confused
if the remote is a CDN and then starts to diverge, preventing further
syncs.
* portage: sets: Fix DeprecationWarning in sets.
* install-qa-check.d: 90gcc-warnings: Disable -Wimplicit-function-declaration being
fatal for now. The number of failures in bug #870412 is too large for the time
being.
* Fix definition of ESYSROOT to use SYSROOT's prefix. For a given location, we
were basing ESYSROOT on the prefix of that location instead of the prefix used
by the SYSROOT location. For example, if BROOT=/foo, ROOT=/bar, EPREFIX=/baz,
EROOT=/bar/baz, and SYSROOT=/ then ESYSROOT should be /foo, not /baz.
* depgraph: Resolve atoms using the correct root. This bug may have played out
in different ways, but one example was a rebuild in / causing the same package
to be added to ROOT, even when it had no other reason to be. See bug #520112.
* env-update: Also generate PATH definition in systemd user environment file
/etc/environment.d/10-gentoo-env.conf
* bintree: Properly assign filenames for remote binpkgs.
* --disable-static is only passed for libtool-enabled configure scripts in EAPI 8.
This avoids annoying warnings when a configure script has a flag such as
--disable-static_link that would then trigger a QA warning (bug #814380).
portage-3.0.39 (2022-11-20)
--------------
Features:
* gpkg: Call xz and zstd with -T N where N is the number of jobs from ${MAKEOPTS}
for parallel compression (xz & zstd) and decompression (xz with newer versions).
* gpkg: Add per format compression flags for binpkgs. This adds new config
options BINPKG_COMPRESS_FLAGS_[format] to be used for different compression
methods. General BINPKG_COMPRESS_FLAGS will be ignored if current method had
specified BINPKG_COMPRESS_FLAGS_[format] (bug #871573).
* sync: git: git will sync with --depth=1 unless otherwise specified in repos.conf
(bug #824782).
* install-qa-check.d: 90gcc-warnings: Add additional code quality warnings
which are indicative of problems with LTO in particular:
* -Wbuiltin-declaration-mismatch
* -Wlto-type-mismatch (LTO esp.)
* -Wmismatched-dealloc
* -Wodr (LTO esp.)
* -Wreturn-type
* -Wstringop-overflow (GCC, FORTIFY_SOURCE)
* -Wfortify-source (Clang, FORTIFY_SOURCE)
* -Wstrlcpy-strlcat-size
* -Wstrncat-size
* -Wsuspicious-bzero
* -Wvarargs
* -Wargument-undefined-behaviour (Clang)
* -Wincompatible-function-pointer-types (Clang, becomes fatal in Clang 16)
(note we already have -Wincompatible-pointer-types in the list for GCC)
* -Wundefined-reinterpret-cast (Clang, C strict aliasing)
* -Wcast-function-type-strict (Clang, CFI)
* Further -Wformat matches for missing specifiers.
In future, we may warn on all -Wformat (in particular because of e.g.
time_t & LFS).
* install-qa-check.d: 90gcc-warnings: Always die on -Wimplicit-function-declaration
and remove bin/check-implicit-pointer-usage.py of dubious licencing (it was
broken since GCC 4.5 because of output changes anyway, bug #365655).
-Wimplicit-function-declaration becomes an error in Clang 16 onwards and
GCC is likely to do the same from 14 onwards. See bug #870412.
* ecompress, etc: Support additional compression suffixes for texinfo:
.Z, .bz2, .lzma, .lz, .xz, .zst (bug #757525).
Bug fixes:
* binpkg: Deprecate BINPKG_FORMAT in the binpkg manifest ('Packages') because
it can become out-of-sync with reality and shouldn't be relied upon anyway
(bug #877419).
* binpkg: Add various asserts / integrity checks to detect structure mismatches
and detect problems earlier (bug #877357, bug #877271, bug #877419).
* binpkg: gpkg: Try to correct mismatched structures (old/new gpkg structure)
(bug #877271).
* binpkg: gpkg: Handle package renames ('updates') where the same category was
used but with a new package name (bug #877357).
* binpkg: gpkg: Don't silence compressor stderr to ease debugging (bug #877215).
* Manifest: Fix Manifest.addFile() calls and add tests (bug #875860).
* ecompress, etc: Pass --quiet to xz to reduce noise from "reducing threads"
messages.
* ecompress, etc: Pass --memlimit-compress=50% to xz to avoid breakage
on 32-bit systems with large -Tn. Required for < xz-5.3.3_alpha and
has an equivalent effect to the limiting that comes with newer xz versions.
We don't need it for decompression as it's there by default in newer xz
and it's a no-op in older xz.
* emerge(1), make.conf(5), xpak(5): document BINPKG_FORMAT and the gpkg binary
packate format further.
* sync: git: Fix sync printing local repo path (bug #875812)
portage-3.0.38.1 (2022-10-04)
----------------
Bug fixes:
* ecompress: Fix typo in ___makeopts_jobs (bug #874597).
portage-3.0.38 (2022-10-01)
--------------
Features:
* unpack now calls xz(1) with -T N where N is the number of jobs from ${MAKEOPTS}.
This allows decompression in parallel with new enough xz (>= xz-utils 5.3.3 alpha)
and where the source file was compressed using the parallel xz compressor
(which becomes the default with newer xz too).
* portage: sets: Parse INCLUDES/EXCLUDES in VariableSet which allows properly
checking for dependencies. Update @golang-rebuild accordingly which now
includes all packages depending on dev-lang/go (bug #827974, bug #865115)
* cnf: Provide a @rust-rebuild set, similar to @golang-rebuild.
* bin: ecompress: xz, zstd: Pass -T N where N is the number of jobs from ${MAKEOPTS}
to xz, zstd for parallel compression.
* bin: ecompress: xz: Pass -9 to xz for compression level like we do for bzip2 & gzip.
Bug fixes:
* emerge: Scheduler: Fix filenames for binpkgs in some cases - reuse existing
filename and don't allocate a new one (bug #872392).
* dbapi: bintree: Avoid fetching 'Packages' multiple times (bug #864259).
* binpkg: Handle failure of various BINPKG_COMPRESS_* commands (bug #871570).
* data: Fix PORTAGE_USERNAME default (bug #873088).
* bin: isolated-functions.sh: return number of CPUs in ___makeopts_jobs as default
instead of 1 to match Portage's behavior on the Python side.
* bin: ecompress: Recognize .lz, .lzo, .lz4, and .zst as compressed file
suffixes for the purposes of the internal compressed file collision check.
* bin: ecompress: zstd: Set '-q --rm' in PORTAGE_COMPRESS_FLAGS to behave
like other compressors.
* portage: _global_updates: Fix update summary output.
portage-3.0.37 (2022-09-23)
--------------
Bug fixes:
* _emerge: SpawnProcess: Avoid sandbox violations with PROPERTIES="interactive"
when accessing /dev/tty* (bug #870310).
* _emerge: Binpkg: Don't create empty stray binpkgs (bug #870283).
* bin: gpkg-sign: Check gpg configuration before using (bug #869470).
* portage: gpkg: Allow missing files (needed for when ebuilds touch
${EROOT} in pkg_*) when creating binpkgs with quickpkg (bug #870229).
* portage: getbinpkg: Fix --getbinpkgonly command list with e.g. rsync (bug #866197).
* portage: checksum: Fix PORTAGE_CHECKSUM_FILTER. Regression from 3.0.31.
portage-3.0.36 (2022-09-09)
--------------
Bug fixes:
* The layout of gpkg (new binpkg format) packages has been fixed (bug #865905).
* Fix getbinpkg fetching (bug #864160).
portage-3.0.35 (2022-08-23)
--------------
Features:
* Portage can now set scheduling policies using the PORTAGE_SCHEDULING_POLICY
and PORTAGE_SCHEDULING_PRIORITY variables. See make.conf.example for details.
See also https://wiki.gentoo.org/wiki/Portage_niceness.
* The header of build.log now contains the package's slot (bug #864382).
Bug fixes:
* xml: Fix XML node parsing (resulted in duplicate USE flag descriptions
in gentoolkit, bug 858791). This code is thought to have only one
consumer (gentoolkit, and only as of its most recent releases), so
impact is not severe.
* portage: dbapi: porttree: fix _set_porttrees() to operate correctly if passed
a generator. Fixes e.g. blank emerge --metadata caches in /var/cache/edb
which affected eix (bug #865635). Regression from 3.0.31.
* logging: don't clutter with a global logger and instead scope to
each module. Allows further logging refactoring in future.
* estrip: fix double slash for older EAPIs (bug #862600).
* estrip: avoid spurious NEEDED warning when no ELF files installed for
< EAPI 7 (bug #749624, bug #862606).
* estrip: apply scanelf optimisation for EAPI 7 too (bug #749624, bug #862606).
* dispatch-conf: respect (E)ROOT
* install-qa-check.d: 60pkgconfig: drop noisy pkg-config mismatched Version
field check (bug 857654).
* install-qa-check.d: 60pkgconfig: fix --validate check by adding
${ED}/usr/{lib*,share} to search path.
* install-qa-check.d: 60pkgconfig: only check defined variables for
${EPREFIX} compliance (bug 860825).
* install-qa-check.d: 60pkgconfig: display the detected version from
the .pc file (improves the QA warning output), and hint to the user/developer
about the existence of QA_PKGCONFIG_VERSION to silence the warning.
* install-qa-check.d: 60pkgconfig: use eqatag for nicer output.
* install-qa-check.d: 60pkgconfig: use ver_test where possible in version
comparison checks to avoid warning if the Version field in the .pc file
is equivalent to the ebuild version.
* install-qa-check.d: 80libraries: include Darwin/Mach-O objects in checks.
* install-qa-check.d: 80multilib-strict: use file/find from Prefix instead
of absolute paths in /usr/bin.
* install-qa-checks.d: 90gcc-warnings: add arm64, aarch64 (used by Apple),
loongarch64, riscv64, s390x to list of 64-bit arches which affects the
severity of some warnings (like pointer truncation).
* install-qa-check.d: 90world-writable: include EPREFIX in paths.
* portage: output: update obsolete /etc/init.d/functions.sh path.
* bin: style tweaks to conform to Gentoo style (mostly variable bracing).
* doins: fix D check, add EPREFIX check
* misc-functions.sh: add Prefix fixups, like including EPREFIX in
INSTALL_MASK for /usr/share for noman, noinfo, nodoc.
* phase-function.sh: mark ED, EROOT read-only variables
* eapi.sh: cleanup obsolete references to unofficial 5-hdepend EAPI.
* isolated-functions.sh: sync __makeopts_jobs implementation with
multiprocessing.eclass.
* ebuild(1): improve descriptions of various phase functions.
* emerge(1): mention --with-bdeps=n behavior for both --usepkg (-k) and
--usepkgonly (-K) (bug #863422).
* ecompress: add option to lz4 in order to be able to compress multiple
files at once (bug #672916).
portage-3.0.34 (2022-07-20)
--------------
Bug fixes:
* checksum: fix trying to use discard on a frozenset().
* ebuild(5): mention doexe behavior is undefined if exeinto not yet called.
* ebuild(5): fix typos.
portage-3.0.33 (2022-07-18)
--------------
Bug fixes:
* env-update: Handle BROOT vs ROOT distinction for PATH (and other
variables like PREROOTPATH and ROOTPATH). The issue being that
only some variables are relevant for execution (and hence need
to be derived from BROOT), while others need to correspond to
EROOT for e.g. library paths. This should help with Clang
stage building.
* Build: Fix test suite file data processing (copying of .gnupg data
for the gpkg tests led to a failure in src_test in the portage ebuild).
* emerge: drop obsolete fixpackages warning (as a result of refactoring,
started to show on every emerge, but is harmless and left over
from many years ago). Bug #858407.
* quickpkg: Fix quoting/splitting of BINPKG_COMPRESS_FLAGS arguments. Bug #857933.
* estrip: fix double prefix (regression from "don't call estrip twice" fix
in 3.0.31). Bug #858818.
* ebuild(5): dolib, libopts: mention dolib, libopts being banned in EAPI 7.
* ebuild(5): dohtml: mention dohtml is banned in EAPI 7.
* ebuild(5): hasv: mention hasv is banned in EAPI 8.
* ebuild(5): dosym: mention dosym -r for EAPI 8.
* ebuild(5): einstall: mention einstall was banned in EAPI 6.
* ebuild(5): econf: add --docdir and --htmldir for EAPI 6,
add --with-sysroot for EAPI 7, add --datarootdir and --disable-static for EAPI
8.
* ebuild(5): econf: drop --disable-dependency-tracking from "example"
because it's confusing (implies it was always added, even before EAPI 4).
* ebuild(5): modernize examples slightly.
portage-3.0.32 (2022-07-11)
--------------
Bug fixes:
* Fix marking all news items as relevant. See bug #857669.
* Allow nested ebegin again while there's a lack of consensus on banning it.
* Fix use of deprecated (now removed) getchildren() call in XML parser,
which caused failures with gentoolkit. See bug #857537. (Note that this
was not originally in the release notes for 3.0.32, but the fix was in
3.0.32).
* Fix doc generation by removing reference to removed EAPIs. See bug #857486.
portage-3.0.31 (2022-07-10)
--------------
Breaking changes:
* repoman support dropped. Please migrate to pkgcheck. See bug 835013.
* Remove support for never-official EAPIs: "4-python", "5-progress".
Further cleanups as a result allowed removal of "USE alias" support too.
* Drop support for Python 3.6. It's been EOL upstream since 2021-12-23.
The minimum version of Python for Portage is now Python 3.7.
Features:
* GLEP 78 "gpkg" binary package format support, including the ability to sign
binpkgs! See bug 500630, bug 659864, bug 672672, bug 773259, bug 820578.
This is still somewhat experimental!
To try it out:
- set BINPKG_FORMAT="gpkg" in make.conf;
- optionally, set FEATURES="binpkg-signing binpkg-request-signature", and so on.
See cnf/make.conf.example for the full details, options, and documentation.
* emerge: Add -X short option for --exclude.
* emerge: Support the "foot" terminal for title updates.
* Recognize LoongArch ABIs in multilib_category.
* depclean: Return failure via exit code if requested packages
aren't depcleaned. See bug 851750.
* estrip: Optimize calls (avoid duplicate call) by using previously
collected scanelf data. See bug 749624
* autoclean: Optimize unmerges by only enabling autoclean for global
updates and/or depcleans. This avoids needing to iterate over all
installed packages after each individual removal.
* vartree: Optimize by skipping `env-update` call (which is expensive, as
it ends up calling `ldconfig` to regenerate ld.so.cache) if no files
were installed (e.g. virtual/).
* vartree: Optimize by avoiding VDB lock contention (avoid taking
lock if no blockers).
* QA: warn if 'eend' is called without a corresponding 'ebegin',
and vice-versa: if 'ebegin' is called without a corresponding 'eend'.
See bug 835824 and bug 835823.
* QA: install-qa-check.d: Add 60pkgconfig check which:
- checks libdir in installed .pc files
- checks paths not respecting EPREFIX in .pc files
- runs pkg-config --validate on .pc files
- checks for mismatched version in .pc files vs ${PV}. Ebuilds can override
this using QA_PKGCONFIG_VERSION.
* QA: install-qa-check.d: Update 20runtime-directories to warn on /var/tmp
usage too.
* emerge: Deduplicate atoms in 'dropped' message for --keep-going.
* dispatch-conf: Warn about changing the 'use-rcs' setting. See bug 837533.
* Lots of general refactoring and code cleanups.
Bug fixes:
* Disable SONAME dependencies by default again (i.e. set --ignore-soname-deps=y
to default on). See bug 687956 and bug 829623.
This was done because of problems caused with depcleans.
* git: Mark repository as safe for newer versions of git (>= git-2.35.2).
See bug 838223 and bug 838271.
* dosym: Fix EAPI check for '-r' (relative) flag. It would previously allow
using an EAPI 8 only feature.
* ebuild: Fix re-sourcing IDEPEND (EAPI 8 ).
* estrip: Fix race when creating build-id debug symlinks. See bug 831927.
* MergeProcess: Fix bug causing unnecessary ld.so.cache regeneration even
when no libraries were installed. This used to work in the past, so is viewed
as a bug fix, rather than an optimization, although it's a bit of both.
See bug 836375.
* MiscFunctionsProcess: Avoid clobbering the main sandbox.log if a "die hook"
is invoked. This should prevent sandbox.log being blank in many cases.
* Drop /run warning as it ended up being too noisy and we've decided
to workaround/fix (depending on your perspective) the issues in packages
themselves, given only one package was actually at fault here: bug 832853.
* movefile: Merge symlinks atomically. This should reduce the risk of build
failures during parallel builds (multiple emerge jobs). See bug 836400.
* Improve error message when Bash version is too old for an ebuild
to be read.
* Minor improvements to 'die' output.
* Undo dep_zapdeps change in 3.0.29 as it introduced a regression w.r.t solving
blockers for gentoo-kernel. See bug 833014.
* QA: install-qa-check.d: update 95empty-dirs to mention Portage behavior
change for EAPI 8 .
* QA: install-qa-check.d: Fix usage of obsolete 'egrep' and 'fgrep' which
now emit warnings with an upcoming grep release (> 3.7).
* portageq: Ditto re egrep/fgrep.
* util: Fix Whirlpool implementation breaking (crashing/failing tests) with
OpenSSL 3. This wasn't noticed before as previously, OpenSSL exposed its
Whirlpool implementation by default, whereas it's now marked as legacy.
See bug 846389.
* socks5-server: Fix Python 3.10 DeprecationWarning. See bug 794115.
* portage.eapi: Include workaround for consumers with misconfigured
logger to avoid needing a newer gentoolkit. See bug 838406.
* CI: Run 'black' on remaining files missed in the previous conversion and fix
CI to catch regressions related to this.
* CI: Test with Python 3.11.
* CI: Drop references to unsupported Python 3.6.
* make.conf: document MAKEOPTS defaulting to the number of processors for
the number of jobs in make.conf(5).
* dispatch-conf: fix description of 'frozen-files' format in dispatch-conf.conf
man page. See bug 830618.
portage-3.0.30
--------------
* fix warning/crash on bad PROVIDES in package. See bug 828966.
* avoid infinite loop in _optimized_copyfile. See bug 828844.
portage-3.0.29
--------------
* check for inconsistent/missing PROVIDES during package (and binpkg)
installation. See bug 811462.
* avoid pulling in newer slots for upgrades in some cases. See bug 828136.
* enable SONAME dependencies for binpkgs by default. See bug 687956.
* add new options to allow avoiding building/using binpkgs for live ebuilds:
FEATURES="binpkg-live" and --usepkg-exclude-live.
* add emphasis in output to user patches being applied.
portage-3.0.27
--------------
* improve blocker output to make it clear which blockers
are not satisfied.
* use distinct colors for einfo/elog and ewarn/eqawarn.