-
Notifications
You must be signed in to change notification settings - Fork 256
/
NEWS
1162 lines (881 loc) · 44.3 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
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. It 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).
Further, there was additional motivation to avoid disk usage growing
unbounded (which additionally could lead to a sync failing at some point).
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.
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-warnigns: 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.
portage-3.0.26
--------------
* fix broken FILESDIR copying logic.
portage-3.0.25 (yanked)
-----------------------
* fix Python < 3.8 compatibility of FILESDIR copying code.
portage-3.0.24
--------------
* remove doebuild(dbkey=...) support that was deprecated since 2013.
* pass metadata internally using key=value format.
* include INHERIT key md5-cache to match pkgcore.
* reformat Portage code using black.
* fix Python 3.10 deprecation warnings.
* replace compat_coroutine use with modern async.
portage-3.0.23
--------------
* enable autogroup scheduling with pid-sandbox if possible. This should
make the kernel respect niceness better.
* add support conf-update.d hooks.
* display all preserved libraries with --verbose.
* restore QA warnings when EXPORT_FUNCTIONS is called before inherit.
* catch more setuptools warnings via the respective QA check.
portage-3.0.22
--------------
* USE flags are now sorted with respect to numerical segments in emerge
output (e.g. python3_10 comes after python3_9).
* setuptools version normalization warnings are now ignored.
* FEATURES=installsources no longer copies irrelevant directory trees
with gcc-11.
* sdist archives built using "build" now include setup.py.
portage-3.0.21
--------------
* EAPI 8 fixups.
portage-3.0.20
--------------
* Finalize EAPI 8.
portage-3.0.19
--------------
* Enable EAPI 8.
portage-3.0.18
--------------
* profile-repo-deps is supported in layout.conf profile-formats.
portage-3.0.16
--------------
* emirrordist supports the content-hash distfiles mirror layout.
portage-3.0.15
--------------
* FEATURES=binpkg-multi-instance is now enabled by default.
portage-3.0.13
--------------
* FETCHCOMMAND now supports a \${DIGESTS} placeholder which expands
to a space separated list of digests. Refer to the FETCHCOMMAND
documentation in the make.conf(5) man page.
portage-3.0.6
--------------
* emerge --search now detects regular expressions automatically. This
behavior is controlled by the --regex-search-auto option.
* make.conf now treats variable names that begin with two underscores
as local variables which are not displayed by emerge --info --verbose.
* egencache --update-pkg-desc now has a --verbose option which causes
it to emulate esync --verbose output.
* env-update now generates a systemd user-session environment in a file
named /etc/environment.d/10-gentoo-env.conf.
* binrepos.conf is a new configuration file that acts as a substitute
for the PORTAGE_BINHOST variable, and allows each repository to have
a separate FETCHCOMMAND which can be used to customize authentication.
This file is documented in the portage(5) man page.
portage-3.0.0
--------------
* Dropped support for Python 2.x.
portage-2.3.101
--------------
* The new PORTAGE_LOG_FILTER_FILE_CMD make.conf(5) variable specifies a
command that filters build log output to a log file. In order to
filter ANSI escape codes from build logs, ansifilter(1) is a
convenient setting for this variable.
portage-2.3.100
--------------
* New BINPKG_COMPRESS=zstd default (does not apply to installed systems
using the old bzip2 default).
portage-2.3.97
--------------
* Support for the PORTAGE_LOG_FILTER_FILE_CMD variable has been
temporarily removed due to bug 716636.
portage-2.3.90
--------------
* The new PORTAGE_LOG_FILTER_FILE_CMD make.conf(5) variable specifies a
command that filters build log output to a log file. In order to
filter ANSI escape codes from build logs, ansifilter(1) is a
convenient setting for this variable.
portage-2.3.80
--------------
* The emerge --quickpkg-direct option enables use of installed packages
directly as binary packages. It can be used to create minimal runtime
container images (which need not include a package manager), or to
enable a live image to act as a binary installer that uses packages
installed in the live image as a source of binary packages. This
option is especially useful in combination with --usepkgonly and
--ignore-soname-deps=n options, allowing implicit system dependencies
such as libc to be automatically accounted for.
portage-2.3.77
--------------
* The emerge --autounmask option is now disabled by default, except for
portions of behavior which are controlled by the --autounmask-use and
--autounmask-license options. For backward compatibility, previous
behavior of --autounmask=y and --autounmask=n is entirely preserved.
Users can get the old behavior simply by adding --autounmask to the
make.conf EMERGE_DEFAULT_OPTS variable.
portage-2.3.72
--------------
* The glsa-check program is now provided by portage, and it has been
removed from gentoolkit. See bug 463952.
portage-2.3.70
--------------
* The @live-rebuild package set now searches for PROPERTIES=live, see
bug 233589. The @deprecated-live-rebuild package set provides the
old behavior which was based on inherited eclasses.
portage-2.3.64
--------------
* New (council approved) default locations for the Gentoo repository,
distfiles, and binary packages (does not apply to installed systems
using the old defaults):
/usr/portage -> /var/db/repos/gentoo
/usr/portage/distfiles -> /var/cache/distfiles
/usr/portage/packages -> /var/cache/binpkgs
portage-2.3.53
--------------
* Renamed PORT_LOGDIR and PORT_LOGDIR_CLEAN variables to
PORTAGE_LOGDIR and PORTAGE_LOGDIR_CLEAN to match other existing
similar variables
* Enable FEATURES={ipc,network,pid}-sandbox by default
portage-2.3.42
----------------
* Sync with rsync quarantines data prior to verification, using the
rsync --link-dest option (can be disabled by setting
"sync-allow-hardlinks = no" in repos.conf).
* Sync with git quarantines data prior to verification, see
https://wiki.gentoo.org/wiki/Portage_Security#git-mirror_repo.
* Sync with shallow git pull is supported, by "setting sync-depth = 1"
in repos.conf.
portage-2.3.32
----------------
* EAPI 7 support.
portage-2.3.29
----------------
* Portage API consumers can use asyncio with portage's internal event
loop, see portage.util.futures.unix_events.DefaultEventLoopPolicy.
portage-2.3.25
----------------
* Experimental support for EAPI 7_pre1.
portage-2.3.20
----------------
* Support RESTRICT=network-sandbox in ebuilds.
portage-2.3.17
----------------
* The doins ebuild helper has been rewritten in python for performance, and
it does in-kernel file copying on Linux.
portage-2.3.14
----------------
* Repository metadata/layout.conf supports manifest-required-hashes
attribute (default value is SHA512).
portage-2.3.12
----------------
* better_cache implemented to use less expensive os.listdir() instead of
os.stat() operations to scan for ebuilds. Avoids exhaustively scanning
overlays for all ebuilds which allows Portage to not slow down significantly
with lots of overlays enabled. (Daniel Robbins)
portage-2.3.7
-----------------
* eapply_user combines patch basenames from all matched directories into a
list, and applies them in POSIX sorted order. This allows patches in
more-specific directories to override patches of the same basename found
in less-specific directories. An empty patch (or /dev/null symlink) negates
a patch with the same basename found in a less-specific directory.
* FEATURES=multilib-strict no longer recurses into subdirectories, in order
to avoid false-positives. The MULTILIB_STRICT_EXEMPT variable only served
to filter false-positives that were triggered by recursion, so it will no
longer be needed.
* New emerge --autounmask-keep-keywords and --onlydeps-with-rdeps=<y|n>
options.
* Set compression method for binpackages via BINPKG_COMPRESS variable
* Support for environment variables for git cmd in repos.conf via sync-git-env
portage-2.3.5
-----------------
* Numerous patches updating checksums code and python module imports for them
including new checksum methods
* New linux in kernel movefile support via a new "C" extension module
portage-2.3.3
-----------------
* Reverted commits:
- Bug 552814 Revert "GitSync.update: respect sync-depth
(Shallow fetch is not a practical default at this time,
given performance issues introduced by `git update-index`
and `git prune` (see bug 599008).
)
portage-2.3.1
-----------------
* Support News-Item-Format 2.0
* emerge: add --fuzzy-search and --search-similarity
* Add emerge --autounmask-continue option
portage-2.3.0
-----------------
* Final release
* Includes numerous bugfixes
portage-2.3.0_rc1
-----------------
* New split release for the repoman Q/A tool
* Includes the stage2 rewite of the repoman code base
portage-2.2.26
--------------
* EAPI 6 stable portage release
portage-2.2.25
--------------
* EAPI 6 final fully implemented.
portage-2.2.22
-------------
* Stage 1 of the repoman re-write code merged in to master branch
This is the first release of the new code base.
portage-2.2.19
-------------
* The squashdelta sync module was removed for separate installation
and development work
portage-2.2.19
-------------
* websync module now fully renamed to webrsync
* New squashdelta sync module for downloading full or updates for a squasfs tree
requires dev-util/squashmerge be installed
* New binpkg-multi-instance feature allows for multiple variations
(USE settings) to be saved in the pkgdir and index.
portage-2.2.16
-------------
* New portage plug-in sync system.
Read the news anouncement for more details of the changes in config
settings and operation.
* New native portage postsync.d capability
* New native portage repo.postsync.d capability
* New native indexed search capability for decent search speed
* Tentative EAPI 6 patches for additional testing
portage-2.2.14
-------------
* Remaining bugs in build/install system should be fixed.
portge-2.2.14_rc1
-------------
* Many new build/installation system errors fixed.
portage-2.2.13
-------------
* New setup.py build system and distutils-r1 ebuild at EAPI 5
* PORTAGE_{BIN,PYM}_PATH variables. If you want to call internal portage tools,
you need to query PORTAGE_BIN_PATH and PORTAGE_PYM_PATH, use them
and re-export them.
* New @changed-deps set to update packages which need dependecy change updates.
portage-2.2.12
-------------
* New emaint module "merges" for finding and fixing failed merges
If a pkg fails to merge to the live filesystem correctly, that pkg may
not work correctly if at all. This module scans the installed pkg database
for those failures and can re-emerge those packages.
portage-2.2.1
-------------
* Add cgroups, ipc-sandbox, and network-sandbox FEATURES.
portage-2.2
-------------
* Add extended set configuration via /etc/portage/sets.conf. See
/usr/share/portage/config/sets/portage.conf for examples.
portage-2.1.11.20
-------------
* Add support for EAPI 5. Refer to the PMS EAPI Cheat Sheet, portage's html
docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 5.
* Add support for FEATURES=preserve-libs which preserves libraries when the
sonames change during upgrade or downgrade, and the @preserved-rebuild
package set which rebuilds consumers of preserved libraries.
* Add link level dependency awareness to emerge --depclean and --prune actions
in order to protect against uninstallation of required libraries. Refer to
the --depclean-lib-check option in the emerge(1) man page.
portage-2.1.11
-------------
* Add support for experimental EAPI "4-slot-abi". Refer to the corresponding
html documentation that is installed with USE=doc, and also to the emerge(1)
man page for information about the related --ignore-built-slot-operator-deps and
--rebuild-if-new-slot options.
portage-2.1.10
-------------
* Improve handling of repositories/overlays for cases in which the same ebuild
is provided by multiple repositories but with different masking status, and
support for repository constraints on atoms (atom::repo) in configuration
files.
* Add emerge --rebuild-if-* options that trigger rebuilds of reverse
dependencies when packages are rebuilt or updated. Related --rebuild-exclude
and --rebuild-ignore options can be used to avoid rebuilds for specific
packages.
* Add emerge --reinstall-atoms, --useoldpkg-atoms, and --usepkg-exclude options
which can be used to alter selection rules for specific packages.
* Add FEATURES=parallel-install and ebuild-locks, allowing for greater
parallelization when installing packages (by using finer-grained locks).
portage-2.1.9.27
-------------
* Add support for EAPI 4. Refer to the PMS EAPI Cheat Sheet, portage's html
docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 4.
Bug #273620 tracks EAPI 4 implementation in portage.
portage-2.1.9
-------------
* There is a new ipc (inter-process communication) USE flag which is enabled
by default. This allows portage to communicate with running ebuild processes,
for things like best_version, has_version, and die calls in nested processes.
This flag should remain enabled unless it is found to be incompatible with a
specific profile or environment. When enabled, it fixes bug #278895,
bug #315615, and makes subshell die support more robust (so that repoman's
ebuild.nesteddie check is irrelevant).
portage-2.1.8
-------------
* The top-level __init__.py for the portage python package has been split into
many smaller python modules, making the code easier to navigate and allowing
small parts of the portage api to be imported with less overhead.
portage-2.1.7.17
-------------
* Add support for EAPI 3. This adds support for installation prefix, including
new EPREFIX, ED, and EROOT variables which are used by econf and einstall