portage
/
NEWS
1952 строки · 70.2 Кб
1Release notes take the form of the following optional categories:
2[Optional short blurb/summary]
3* Breaking changes
4* Security
5* Features
6* Bug fixes
7* Cleanups
8
9portage-3.0.64 (UNRELEASED)
10--------------
11
12Bug fixes:
13* ctypes: Add workaround for loading libc on musl.
14
15* util: set a timeout for urlopen calls (bug #926221).
16
17portage-3.0.63 (2024-02-25)
18--------------
19
20Bug fixes:
21* emerge: Skip installed packages with emptytree in depgraph selection (bug #651018).
22
23* bin/install-qa-check.d: 90gcc-warnings: drop warnings with too many FPs (bug #925460).
24
25* AsyncioEventLoop: Call process.run_exitfuncs() before close (bug #925240).
26
27Fixes hang with FEATURES="network-sandbox-proxy" or FEATURES="distcc".
28
29* SchedulerInterface/PollScheduler: Add _loop property (bug #925333).
30
31Fixes erroneous assert.
32
33* _dynamic_deps_preload: Fix settings reference (bug #925350).
34
35Fix KeyError with --dynamic-deps.
36
37* process.spawn: Fix logic for missing libc.unshare on musl (bug #925311).
38
39Fix handling when we can't unshare where we might e.g. modify the hostname
40of the real system on musl.
41
42* dbapi: Fix TypeError when passing Exception to warnings.warn (bug #922935).
43
44Fix testUpdateDbentryDbapiTestCase.
45
46* _start_proc: Prevent premature ForkProcess garbage collection (bug #925456).
47
48Fix warnings/errors like "[ERROR] Task was destroyed but it is pending!".
49
50Cleanups:
51* More asyncio porting.
52
53portage-3.0.62 (2024-02-22)
54--------------
55
56This release has a lot of misc. bug fixes as well as many asyncio fixes from Zac to
57kill off unsafe fork use.
58
59Features:
60* cnf: make.conf.example.arc: Add for the arc arch.
61
62* ELF: Add entries for ARC machines
63
64* bintree: Use urllib to parse PORTAGE_BINHOST / sync-uri so IPv6 works (bug #921400).
65
66* FEATURES: Add FEATURES="merge-wait", enabled by default, to control whether
67we do parallel merges of images to the live filesystem (bug #663324).
68
69If enabled, we serialize these merges.
70
71For now, this makes FEATURES="parallel-install" a no-op, but in future, it
72will be improved to allow parallel merges, just not while any packages are
73compiling.
74
75* estrip: Add FEATURES="dedupdebug" (bug #906368).
76
77This uses sys-devel/dwz to deduplicate installed DWARF debug information.
78
79Future improvements may be made for multifile support.
80
81* Support PROPERTIES="test_privileged" to not drop privileges for tests (bug #924585).
82
83Bug fixes:
84* vartree: Make _needs_move() resilient to corrupt files on the live filesystem
85(do a full copy/replace).
86
87* binpkgs: Handle SignatureException during package moves (bug #922142).
88
89* gpkg, bintree, binpkg: Add missing newlines to signed binpkg update notice.
90
91* emerge: Backtrack consistently regardless of --fetchonly (bug #922038).
92
93* emaint: Cleanup duplicate 'usage:' output.
94
95* installed_dynlibs: Resolve *.so symlinks (bug #921170).
96
97* bin: Consistently prefix eqawarn with 'QA Notice' (bug #728046).
98
99* _overlap_dnf: Deduplicate any-of blocks which improves performance (bug #891137).
100
101* tests: Handle larger PAGE_SIZE in environment size check (bug #923368).
102
103Cleanups:
104* tests: Add a job with multiprocessing set to the 'spawn' method.
105
106* tests: Fix missing playground cleanups.
107
108* process.spawn: Add abstraction for os.fork() to allow migrating callers to it.
109
110portage-3.0.61 (2024-01-05)
111--------------
112
113A small set of binpkg robustness fixes.
114
115Bug fixes:
116* BinpkgFetcher: Preserve mtime (bug #921208).
117
118* bintree: Don't call trust helper unless bindb is writable (bug #915842, bug #920180).
119
120* bintree: Avoid unnecessary build id incrementation (bug #921208).
121
122* bintree: Handle inject failures (bug #921327).
123
124* emaint: merges: Fix TrackingFile for utf8_mode (bug #921181).
125
126portage-3.0.60 (2024-01-02)
127--------------
128
129A small set of binpkg robustness fixes.
130
131Bug fixes:
132* EbuildBinpkg: Avoid crash with verification failure in some cases (bug #921089).
133
134* dbapi: Raise CorruptionKeyError - which is treated as a warning - during pkgmoves
135to avoid falling over in the event of a corrupt Packages index (bug #920828).
136
137* EbuildFetchTestCase: Fix key order assumption (bug #921107).
138
139* gpkg: Fix basename handling via aux_update (in particular with FEATURES="binpkg-multi-instance")
140(bug #920828).
141
142portage-3.0.59 (2023-12-27)
143--------------
144
145Features:
146* emerge: depclean now returns with failure if no packages are matched
147(bug #917120).
148
149* bintree: Support 'file://' scheme for binhost sync-uri (bug #920537).
150
151* sync: git: Include signing key and git revision in log output with --verbose
152or if a failure occurs.
153
154Bug fixes:
155* Scheduler: Handle aborted unpack more gracefully (bug #920258).
156
157* Scheduler: Handle SignatureException in _run_pkg_pretend to give a proper
158error message if a signature could not be verified, rather than crashing out
159(bug #920258).
160
161* ebuild: Improve 'command not found' regex for the dash shell (bug #822033).
162
163* ebuild: Do not skip 'command not found' QA warnings for configure (bug #245716).
164
165* emerge: Fix --binpkg-respect-use output optimization (was broken by refactoring
166for ROOT support).
167
168* depgraph: Use strip_libc_deps in _eliminate_rebuilds (bug #915494).
169
170* depgraph: Handle IDEPEND circular dependencies for depclean (bug #916135).
171
172* bindbapi: Update Packages index when signed binpkgs are invalidated post-updates
173(bug #920095).
174
175* _global_updates: Take a lock when performing updates (bug #587088, bug #920095).
176
177* make.conf(5): Fix note about binpkg extension for gpkg.
178
179* addread, addwrite, adddeny, addpredict: Warn about passing a colon-separated
180list of paths as argument (bug #920654).
181
182portage-3.0.58 (2023-12-14)
183--------------
184
185Breaking changes:
186* Switch BINPKG_FORMAT to "gpkg" by default (bug #912672).
187
188portage-3.0.57 (2023-12-10)
189--------------
190
191This release has a series of binpkg robustness fixes. Notably, it includes
192a workaround/fix for binpkgs built against a newer glibc to ensure that they
193aren't merged on a binpkg consumer before merging a newer glibc, which has been
194a longstanding cause of frustration for binpkg users.
195
196Features:
197* emerge: Make --binpkg-changed-deps output far more concise (don't show
198packages missing from the merge list).
199
200* ebuild: Inject implicit libc RDEPEND. This avoids "bricking" systems when
201using binpkgs built against a newer glibc (bug #753500, bug #913628).
202
203* BinpkgVerifier: Improve error message on stale binpkg index. This became
204more common with the portage-3.0.52 default change to FEATURES="pkgdir-index-trusted"
205(bug #915474).
206
207Bug fixes:
208* Fix package moves for signed binary packages by deleting the old binpkg
209if it cannot be re-signed, rather than crashing (bug #919419).
210
211* Set SYSROOT appropriately for best_version and has_version so that they work
212when cross-compiling and IPC is disabled.
213
214* bindbapi: Add missing SIZE key for binpkg-multi-instance (bug #906675,
215bug #918597, bug #919668).
216
217* resolver: Weaken circular dependency handling for cross-root (bug #919174).
218
219* BuildLogger: Avoid hang with -ipc builds (bug #919072).
220
221* soname dependency support: Fix crash with --ignore-soname-deps=n (bug #919311).
222
223* sets: VariableSet: Flatten dependencies so that e.g. www-client/firefox
224appears in @rust-rebuild.
225
226portage-3.0.56 (2023-12-01)
227--------------
228
229In particular, this release improves dependency resolution robustness in
230a few scenarios.
231
232Breaking changes:
233* ebuild: no longer implicitly set NOCOLOR and NO_COLOR when color output
234is disabled for emerge itself. In order to obtain color-free logs, please
235either explicitly set NO_COLOR environment variable or use e.g. ansifilter.
236
237Features:
238* sync: git: Add sync-git-verify-max-age-days option.
239
240Bug fixes:
241* resolver: Handle merge order correctly for some circular dependencies
242(e.g. app-alternatives/gzip with app-arch/pigz and sys-libs/zlib)
243(bug #690436, bug #917259).
244
245* resolver: Adjust priorities to fix wrong merge order
246(e.g. net-misc/curl with net-libs/nghttp2) (bug #918683).
247
248* resolver: Optimize find_smallest_cycle (bug #918682).
249
250* emerge: Fix PROMPT_COMMAND crash on shutdown (bug #917033).
251
252* emerge: Fix crash on some build failures (bug #917315).
253
254* emerge: Give output referring to emerge-fetch.log for FEATURES="parallel-fetch"
255while waiting for binpkgs (bug #760893).
256
257* ebuild: Add missing newlines in error messages.
258
259Cleanups:
260* tests: Add pytest markers: ft, unit and stress.
261
262* tests: Add test for trust helper --pretend issue (bug #915842).
263
264portage-3.0.55 (2023-11-06)
265--------------
266
267Bug fixes:
268* Convert portageq helper to a function to avoid breaking external callers
269(bug #916287, bug #916296).
270
271* Avoid crash with incomplete depgraph for binpkg-respect-use notice (bug #916614).
272
273* Avoid crash with blockers in depgraph for binpkg-respect-use notice (bug #916336).
274
275* Don't call trust helper (e.g. getuto) with --getbinpkg --pretend as we may
276lack privileges to do anything (bug #915842).
277
278portage-3.0.54 (2023-10-25)
279--------------
280
281Zac has continued working on preparing us for the 'spawn' multiprocessing
282method.
283
284Breaking changes:
285* Finally ban non-PMS helpers portageq, prepinfo, prepman, prepstrip and
286prepallstrip (bug #899898, bug #906129, bug #906156).
287
288Features:
289* sync: git: Pass --verbose to git when emerge --sync --verbose.
290
291* sync: git: Forcefully update git remote to match sync-uri for non-volatile
292repositories (bug #905869).
293
294* emerge: Make --binpkg-respect-use output far more concise (don't show
295packages missing from the merge list and don't show packages w/ multiple
296BUILD_IDs).
297
298Bug fixes:
299* SpawnProcess, ForkProcess: Pass stdin via fd_pipes for non-background. This
300fixes e.g. emerge --sync --ask (bug #916116).
301
302* _emerge: Fix looking up package name for error colorization (bug #915551).
303
304* sync: git: Handle when git is configured with 'log.showSignature'.
305
306* StaticFileSet: Fix os.walk for utf8_mode (bug #916182).
307
308* create_trees: Handle bytes arguments for utf8_mode (bug #916149). This broke app-portage/unsymlink-lib.
309
310Cleanups:
311* MergeProcess: Support QueryCommand with spawn start method (bug #916106)
312
313* vardbapi.unpack_contents: Support spawn start method (bug #916112)
314
315* vardbapi.unpack_metadata: Support spawn start method (bug #916108)
316
317* ForkProcess: Implement fd_pipes via send_handle for spawn start method (non-fork)
318(bug #915896).
319
320portage-3.0.53 (2023-10-20)
321--------------
322
323Standard mix of bug fixes and new features, along with Zac's continued work
324on preparing us for the spawn multiprocessing method.
325
326Features:
327* GNUMAKEFLAGS: also specify "-l $(nproc)", that is, limit by load average,
328per default.
329
330* Increase default number of maximum backtrack attempts from 10 to 20.
331
332Bug fixes:
333* bintree: Add another API member (invalid_errors) to allow eclean-pkg to suppress
334errors when cleaning invalid binpkgs (bug #900224).
335
336* repos.conf: Fix default value of sync-rsync-verify-max-age for ::gentoo. It
337was previously '24' which allowed far too much time with a stale mirror and
338could lead to users missing important updates.
339
340* Miscellaneous determinism/reproducibility fixes for binpkgs / environment (bug #914441).
341
342* make.conf(5): Update MAKEOPTS guidance to reflect modern practice (bug #821529).
343
344* For locales that have UTF-8 filesystem encoding, use unicode strings rather
345than raw bytes for file paths in calls to python modules like os and shutil
346(bug #914722).
347
348We recommend using a UTF-8 locale for both performance and correctness reasons.
349
350* Eliminate unnecessary package reinstalls (bug #915494).
351
352* Update the git remote URL of an overlay with its configured sync-uri
353when necessary (bug #905869).
354
355portage-3.0.52 (2023-10-03)
356--------------
357
358This release has a nice speedup for backtracking caching and supports eclean-pkg
359removing invalid binpkgs.
360
361Breaking changes:
362* FEATURES=pkgdir-index-trusted is now on by default. This improves performance
363with binpkgs, but does require that users run `emaint binhost --fix` if they
364manually add or remove binpkgs from their PKGDIR (bug #889300).
365
366Features:
367* Refine _slot_operator_check_reverse_dependencies caching (bug #883071).
368
369* bintree: Add new API member (invalid_paths) to allow gentoolkit to later
370clean up invalid binpkgs (bug #900224).
371
372* gpkg: Run PORTAGE_TRUST_HELPER before remote binary package operations (bug #913070).
373
374* emerge: Use appropriate colors if binpkgs are used in e.g. pkg_pretend
375messages as well as elog's mod_echo module (bug #914159).
376
377* Show backtrack information after dependency resolution.
378
379Bug fixes:
380* Prevent gpg from removing /dev/null when unlocking signing key (bug #912808).
381
382* emerge: ensure paths are UTF-8 encoded in _needs_move() (bug #913103).
383
384* vartree: keep build dir if postinst fails (bug #704866).
385
386* fetch: fix fetching of layout.conf when FEATURES=force-mirror (bug #877793).
387
388* dispatch-conf, etc-update: fix SELinux security labels on merged files.
389
390* emerge: fix application count when listing search results for ambiguous
391packages (bug #915054).
392
393* env-update: Write ${EPREFIX}/usr/etc/ld.so.conf with unprefixed paths on
394prefixed systems to fix the bfd linker in some obscure cases (bug #892549).
395
396* locks: Handle multiprocessing 'spawn' method (bug #915119).
397
398Cleanups:
399* vartree: Remove unused variables and parameters
400
401* locks: Drop obsolete EINTR wrapper
402
403portage-3.0.51 (2023-08-20)
404--------------
405
406This release features better debug logging in particular.
407
408Features:
409* emerge: Set up logging immediately and respect --debug for log level.
410
411* sync: git, rsync: now respects --debug for better output from gemato. This is
412especially useful for debugging hangs during the 'Refreshing keys' stage.
413
414Bug fixes:
415* sync (inc. emerge-webrsync): Handle https_proxy to help users who only have it set
416- the expectation is to have http_proxy set (bug #691434, bug #835927, bug #911629)
417
418* sync: git: respect --quiet more for PGP verification (bug #673624).
419
420* emerge-webrsync: Explicitly pass http_proxy or https_proxy into gemato
421via --proxy (bug #911629).
422
423* doebuild: gate -Oline behind MAKEFLAGS check (bug #909009).
424
425* misc/emerge-delta-webrsync: Fix PGP logic which prevented syncing for this
426rarely-used tool (bug #911335).
427
428* make.conf(5): Mention https_proxy.
429
430portage-3.0.50 (2023-08-09)
431--------------
432
433This release has a major build system rework to support PEP517 by migrating
434to meson-python, thanks to Chewi!
435
436Breaking changes:
437* The minimum supported Python version is now >= Python 3.9.
438
439* Portage now installed with Meson and Python sdist + wheel now prepared with
440meson-python for PEP 517 compliance.
441
442* FEATURES=cgroup was removed since it was based on version 1 cgroups, which
443caused some issues and version 1 cgroups are obsolete. Use
444FEATURES=pid-sandbox instead.
445
446Bug fixes:
447* install-qa-check.d/05prefix: Fix prefixifying shebang for >= EAPI 7 ebuilds
448(bug #909147).
449
450* bin/save-ebuild-env.sh: Stop using compgen and hence stop needing readline
451(bug #909148).
452
453* _reflink_linux_file_copy: Fix -Wmaybe-uninitialized.
454
455* env-update: Check exit code from ldconfig (bug #910376).
456
457* emerge: Fix 'no ebuilds available' message always mentioning binpkgs
458(bug #909853).
459
460* gpkg: Fix timestamp for binary packages (bug #909067).
461
462* Ensure non-Python (s)bin scripts launch other Python-based Portage scripts
463using the same environment.
464
465* Use the correct Python library path when launching scripts directly from a
466virtual environment.
467
468* Define BROOT in pkg_* phases following PMS change.
469
470* portage(5): Fix description of 'volatile' repos.conf setting (bug #911594).
471
472portage-3.0.49 (2023-06-21)
473--------------
474
475Bug fixes:
476* Adjust write tests for DISTDIR and PORTAGE_TMPDIR to work with automount
477directories (bug #485100, bug #890812).
478
479* depgraph: Do not allow slotted deps to be satisfied by wrong slots
480(bug #463976, bug #592880, bug #596664, bug #631490, bug #764365, bug #793992).
481
482This is the notorious "Perl rebuild" bug where Perl modules would get rebuilt
483_before_ a new dev-lang/perl and therefore be broken at runtime.
484
485* dosym: Prevent globbing of argument in dosym_canonicalize().
486
487* emerge-webrsync: Give a nicer error message if the requested key isn't
488on the filesystem (bug #905868).
489
490* glsa-check: appropriately handle more error cases with invalid GLSAs
491(bug #905660)
492
493portage-3.0.48.1 (2023-06-06)
494----------------
495
496Bug fixes:
497* sync: webrsync: Fix syncing with keyserver explicitly specified (bug #907816).
498
499portage-3.0.48 (2023-06-01)
500--------------
501
502Breaking changes:
503* Output deprecation warnings for portageq, prepstrip and prepallstrip
504when they are called from an ebuild (bug #906129, bug #906156).
505
506Features:
507* Optimize merge process by only writing files to disk if a package's
508contents have changed. This is particularly beneficial on CoW filesystems
509with snapshots. This is always enabled. See bug #722270.
510
511Cleanups:
512* Begin porting to pytest!
513
514Bug fixes:
515* fowners, fperms: Fix handling of relative pathnames (bug #905223).
516
517* emerge-webrsync: Switch Portage to use gemato for when it shells out
518to emerge-webrsync for repositories configured with sync-type=webrsync
519(bug #905358).
520
521This unifies some of the logic between Portage and emerge-webrsync:
522both of them now use the same main path for PGP verification (i.e.
523gemato).
524
525* emerge-webrsync: Fall back correctly to manual gpg (rather than aborting
526entirely) if gemato is not installed (bug #905868).
527
528Cleanups:
529* Convert printf-style %-formats into fstrings.
530
531* Move the internal portageq wrapper script out of the ebuild-helpers
532directory.
533
534* Drop unused deprecated-path script.
535
536portage-3.0.47 (2023-04-30)
537--------------
538
539Security:
540* emerge-webrsync (the standalone tool) now verifies PGP signatures, see
541bug #597800. Note that 'sync-type = webrsync' in repos.conf already
542handled PGP verification when configured to do so (and it is by default).
543
544* dispatch-conf: Avoid race when accessing log file (bug #903973).
545
546Features:
547* install-qa-check.d: 90gcc-warnings: Add additional code quality warnings:
548- -Wrestrict
549- -Wstringop-overread
550- -Wstringop-truncation
551- -Wformat-truncation
552- -Wcast-function-type
553- -Wnull-dereference
554- -Wmain
555- -Wimplicit-int
556- -Wstring-compare
557* install-qa-check.d: cython-dep: Report packages that are using Cython
558but are missing BDEPEND on it.
559
560Bug fixes:
561* econf now checks for proper end of string in "configure --help" output for
562all options starting with "--with-", "--disable-" or "--enable-", in order
563to pass them to configure. This follows a change in PMS (bug #815169).
564
565* All _E_*DESTTREE_ variables to renamed to __E_*DESTTREE, in order to move
566them to the __* namespace which is reserved for the package manager.
567
568* The PVR variable includes -r0 if explicitly specified (bug #875362).
569
570portage-3.0.46 (2023-04-07)
571--------------
572
573Breaking changes:
574* Drop STREEBOG{256,512} support
575
576Support was originally added in https://bugs.gentoo.org/597736, but
577exclusively via two modules (pygost and pygcrypt) which aren't packaged in
578Gentoo - or seemingly any other major distribution.
579
580We're dropping both pygost and pygcrypt compatibility: pygost has been
581removed from pypi and pygcrypt is inactive upstream.
582
583pygost being yanked from pypi made CI start to fail too and silently dropping
584it from CI without addressing the situation which was already suboptimal (insufficient
585testing) wasn't deemed acceptable.
586
587* Inline most code from prepinfo in install_qa_check() (bug #899898).
588Output a deprecation warning for prepinfo and prepman when they are called
589from an ebuild.
590
591Cleanups:
592* Drop support for pygcrypt
593
594The codepath has been disabled since 2017 because of https://bugs.gentoo.org/615620,
595so let's finally clean it up.
596
597pygcrypt *prior to 2017* was used for RMD160/WHIRLPOOL/SHA3_256/SHA3_512
598if hashlib didn't provide these *and* the sha3 module didn't either.
599
600pygcrypt last received a release in 2017 too.
601
602* Drop support for pyblake2, sha3
603
604We've only supported >= Python 3.6 for quite some time, so these codepaths are
605obsolete given hashlib will always provide support for BLAKE2 and SHA3.
606
607Neither pyblake2 nor sha3 are even packaged in Gentoo anymore either (the
608Python bindings).
609
610* Drop most of the pycrypto/pycryptodome fallbacks
611
612>= Python 3.6 includes support for BLAKE2 and SHA3 in hashlib, so these
613aren't needed anymore.
614
615pycrypto fallback support continues to exist for RMD160.
616
617* Drop support for WHIRLPOOL logic via mhash
618
619Drop mhash fallback logic for WHIRLPOOL as we already have:
620hashlib > pycrypto > bundled C > bundled pure Python
621in terms of priority for providers.
622
623Features:
624* Respect the NO_COLOR environment variable for disabling color.
625
626The new quasi-standard for disabling ANSI color is to check for the NO_COLOR
627environment variable and disable color when the variable has a nonempty value.
628See bug #898224. Portage previously used NOCOLOR. It continues to support NOCOLOR
629for a time for compatibility.
630
631* ci: enable running Portage tests on sourcehut builds
632
633The build manifests and supporting files can be found in .builds/
634
635Current limitations compared to GitHub actions:
636
637- Does not test with PyPy (see bug #903709)
638- Runs all all tests on each push (unless pushed with `-o skip-ci` which skips
639all tests)
640- Runs lint and ci jobs concurrently, but each Python version within those is
641tested sequentially. This means tests will take longer to complete, unless
642the run fails partway through (~1h vs ~15-20m).
643
644Benefits compared to GitHub actions:
645
646- Can monitor test progress over SSH
647- Can investigate failed tests over SSH
648- ... not GitHub ;)
649
650Bug fixes:
651* dbapi: Handle mismatched binpkg structure during pkgmoves (bug #877271,
652bug #903917, bug #903926).
653
654* tests: util/test_shelve: fix test failure if the backend for the shelve module
655does not create the shelve db using the literal filename.
656
657portage-3.0.45.3 (2023-03-19)
658----------------
659
660Features:
661* New portage FEATURE warn-on-large-env, to emit a warning if portage
662executes an ebuild-related child process with a large environment.
663
664Bug fixes:
665* repository: config: Handle more error cases when determining repository
666volatility (bug #900683).
667
668portage-3.0.45.2 (2023-03-04)
669----------------
670
671Bug fixes:
672* repository: config: Fix initial sync of repositories (bug #899208). Regression
673from portage-3.0.45, but the real bug is from portage-3.0.42.
674
675portage-3.0.45.1 (2023-02-27)
676----------------
677
678Bug fixes:
679* install-qa-check.d/90config-impl-decl: fix handling of non-ASCII quotes when
680extracting the function name. Detect "-Werror=implicit-function-declaration"
681as used by GCC.
682
683portage-3.0.45 (2023-02-26)
684--------------
685
686Features:
687* Support new ELF machine code: AMDGPU (bug #795825)
688
689* ebuild: Set GNUMAKEFLAGS="--output-sync=line" to ensure build logs are written
690to synchronously when running GNU make in parallel. This option is only set if
691MAKEOPTS and GNUMAKEFLAGS are left unset by the user.
692
693* emerge: add --onlydeps-with-ideps=<y|n> option (bug #890777)
694
695* emerge: add --update-if-installed option. This is useful for one-shot
696emerge commands to be run across several machines to upgrade packages
697only if they're installed.
698
699* install-qa-check.d: 60pkgconfig: add opt-in QA_PKGCONFIG_VERSION check
700
701* install-qa-check.d: add 90config-impl-decl to detect -Wimplicit-function-declaration
702in config.log, CMakeError.log, and meson-log.txt. ebuilds can add functions to
703the QA_CONFIG_IMPL_DECL_SKIP array to skip false positives.
704
705The following entries are created in qa.log under the tag 'config.log-impl-decl':
706
707* 'line' - line number in the config log where the warning is found
708* 'func' - the function that is implicitly declared
709
710(bug #892651)
711
712* emerge: Log completion of package installs.
713
714Bug fixes:
715* gpkg: Handle out-of-space errors (bug #891391).
716
717* gpkg: GPG signed gpkg will be ignored for profiles updates.
718
719* binpkg: Show warning if the binhost is missing metadata (outdated). (bug #884869)
720
721* binpkg: Improve error handling for binpkg detection. (bug #893638)
722
723* portage(5): List volatile option as a separate entry (bug #888585).
724
725* emaint: Changed default action for emaint target sync to 'auto'.
726
727* tests: news: significantly improved test coverage (bug #889330).
728
729* git: also report sync errors for volatile repos. Portage would previously simply
730report success if an volatile repository failed to sync (bug #895526).
731
732* git: correct detection of volatile repositories (bug #895526).
733
734* ebuild(5): alphabetize QA_* vars
735
736portage-3.0.44 (2023-01-15)
737--------------
738
739Features:
740* emerge: Show time taken to calculate dependency resolution with
741emerge --verbose.
742
743* cleanups: Use flynt on the codebase to upgrade to Python f-strings everywhere.
744
745* process: Show diagnostic message if exec failed with E2BIG
746
747Bug fixes:
748* ebuild: the PATH variable exported to ebuilds has been changed:
749The PATH setting from /etc/profile.env is appended to portage-internal
750paths, and ROOTPATH is no longer included (bug #607696, #693308, #888543).
751
752* emerge: Fix installation of binpkgs by path (bug #873202, bug #890291).
753
754* Fix crash with pypy when PORTAGE_SCHEDULING_POLICY has been set (bug #876031).
755
756portage-3.0.43 (2023-01-02)
757--------------
758
759Bug fixes:
760* news: Fix matching profile paths with Display-If-Profile in some cases.
761
762* checksum: Rewrite Whirlpool implementation as a C extension to substantially improve
763performance (bug #885909).
764
765This only takes effect with OpenSSL 3 and newer (unnecessary otherwise).
766
767Whirlpool is considered deprecated within Portage and we recommend that
768repository maintainers remove it from `metadata/layout.conf`!
769
770* sync: git: Fix "is shallow git repository" check.
771
772* bin: Rewrite signal handling which will now correctly rethrow SIGINT
773and not confuse shells (bug #887817).
774
775* bin: Pass -S to file(1) to avoid seccomp sandbox issues (bug #811462, bug #889046).
776
777Files being installed by Portage are generally trusted but also the
778syscalls allowed by file are quite broad anyway.
779
780Things can go catastrophically wrong if file misses valid input,
781as we may have invalid VDB metadata.
782
783portage-3.0.42 (2022-12-26)
784--------------
785
786Breaking changes:
787* Portage changed its git sync behaviour for repositories with sync-type=git.
788
789Recently in Portage 3.0.39 (for sync depth) and Portage 3.0.40 (git reset/clobbering),
790Portage started doing two things:
791
7921. Clobbering changes to repositories with sync-type=git
793
794If git is pulling from a CDN, Portage may on one sync receive state X, but
795on a subsequent sync receive state X-1. This can cause an odd state
796where git wants to resolve conflicts and manual intervention is required,
797hence needing git reset.
798
799This situation was often worse with sync-depth=1 and would lead
800to orphaned files hence needing git clean.
801
8022. Defaulted to sync-depth=clone-depth=1.
803
804The motivation here was because of disk space growing unbounded
805otherwise, as a full disk could lead to sync failure. It also makes sense
806when considered within the school of thought / motivation listed above
807(prioritising a successful sync and then making an optimisation
808based on how we achieve that).
809
810Portage 3.0.42 will now only make a repository shallow if:
8111. volatile=yes and it is a new sync (i.e. it was not deep before), or
8122. volatile=no and sync-depth is unset in repos.conf.
813
814--
815
816To allow users to opt-out of these destructive changes, we now
817have a repository setting called 'volatile'.
818
819* If volatile=yes, the repository is assumed to be user-modifiable
820and Portage will NOT prioritise successful sync over preserving
821repository state.
822
823* If volatile=no, the repository is assumed to only be modified
824by Portage, and Portage will try its best to ensure syncs continue
825to work.
826
827The default value of 'volatile' is determined as follows:
828- If the repository is under /var/db/repos or if it is owned by either
829'portage' or 'root', then it defaults to 'no'. That is, portage
830assumes full control over the repository, potentially performing
831destructive changes to the repository.
832- If the repository is not under /var/db/repos or owned by a different
833user than 'portage' or 'root', then it defaults to 'yes'. That is,
834portage assumes the repository is user owned and does *not* perform
835any destructive changes.
836
837Features:
838* cnf: make.conf.example.loong: add for the loong arch (bug #884135).
839
840* sync: git: only perform destructive operations like 'git reset' to keep
841sync working and the repository in a predictable state for sync-type=git
842repositories if the repository is not marked volatile.
843
844* sync: git: only perform shallow updates if the repository is a shallow one
845or if the repository is not marked volatile.
846
847* sync: git: run 'git clean' in git repositories if they are marked as
848non-volatile.
849
850Bug fixes:
851* glsa: Abort if a GLSA's arch list doesn't match the expected format (bug #882797).
852
853* install-qa-check.d: 60pkgconfig: avoid using grep -P (PCRE) unnecessarily (bug #884285).
854
855* etc-update: Apply defences for patsub_replacement being default on in Bash 5.2
856(bug #881383).
857
858* make.conf(5): Note the various file suffixes / file extensions used
859for binary packages.
860
861* logging: Write logs under BROOT, not EPREFIX.
862
863portage-3.0.41 (2022-11-04)
864--------------
865
866Features:
867* vartree: On collisions which are non-fatal (e.g. orphaned files when using
868FEATURES="protect-owned"), Portage now has friendlier output
869by using ewarn rather than eerror.
870
871* cleanups: Use pyupgrade on the codebase (up to Python 3.8) to use newer
872idioms.
873
874Bug fixes:
875* Fixed possible corruption of GPKG multi-instance binary packages on upgrade.
876Bug #877271.
877
878portage-3.0.40 (2022-12-01)
879--------------
880
881Features:
882* Optimize _slot_operator_check_reverse_dependencies by caching using
883lru_cache. In a ChromeOS use case, this patch decreases the running time from
884311s to 197s with almost no memory usage increase. See bug #883071.
885
886* config: /etc/portage/sets.conf can now be a directory. Ditto for the Portage extension
887supporting sets.conf in ebuild repositories.
888
889* sets: Tests added for VariableSet changes to check @golang-rebuild works as
890intended.
891
892* cleanups: Drop long-obsolete Jython compatibility code.
893
894* cleanups: Use designated initializer syntax in src/ (C bits).
895
896* Add support for a distinct SYSROOT location that is not equal to / or ROOT.
897This is only expected to be used for cross-bootstrapping a new system from
898scratch using a crossdev environment under /usr/${CHOST}.
899
900Bug fixes:
901* ebuild: Handle Bash 5.2's change in behavior which enables the shopt
902'patsub_replacement' by default. This is needed to avoid breaking existing
903working ebuilds. Future EAPIs will need to adjust the logic
904added by this change. See bug #881383.
905
906* sync: Clobber repositories using sync-type=git to match rsync behavior. This
907helps with issues where git-synced repositories can become confused
908if the remote is a CDN and then starts to diverge, preventing further
909syncs.
910
911* portage: sets: Fix DeprecationWarning in sets.
912
913* install-qa-check.d: 90gcc-warnings: Disable -Wimplicit-function-declaration being
914fatal for now. The number of failures in bug #870412 is too large for the time
915being.
916
917* Fix definition of ESYSROOT to use SYSROOT's prefix. For a given location, we
918were basing ESYSROOT on the prefix of that location instead of the prefix used
919by the SYSROOT location. For example, if BROOT=/foo, ROOT=/bar, EPREFIX=/baz,
920EROOT=/bar/baz, and SYSROOT=/ then ESYSROOT should be /foo, not /baz.
921
922* depgraph: Resolve atoms using the correct root. This bug may have played out
923in different ways, but one example was a rebuild in / causing the same package
924to be added to ROOT, even when it had no other reason to be. See bug #520112.
925
926* env-update: Also generate PATH definition in systemd user environment file
927/etc/environment.d/10-gentoo-env.conf
928
929* bintree: Properly assign filenames for remote binpkgs.
930
931* --disable-static is only passed for libtool-enabled configure scripts in EAPI 8.
932This avoids annoying warnings when a configure script has a flag such as
933--disable-static_link that would then trigger a QA warning (bug #814380).
934
935portage-3.0.39 (2022-11-20)
936--------------
937
938Features:
939* gpkg: Call xz and zstd with -T N where N is the number of jobs from ${MAKEOPTS}
940for parallel compression (xz & zstd) and decompression (xz with newer versions).
941
942* gpkg: Add per format compression flags for binpkgs. This adds new config
943options BINPKG_COMPRESS_FLAGS_[format] to be used for different compression
944methods. General BINPKG_COMPRESS_FLAGS will be ignored if current method had
945specified BINPKG_COMPRESS_FLAGS_[format] (bug #871573).
946
947* sync: git: git will sync with --depth=1 unless otherwise specified in repos.conf
948(bug #824782).
949
950* install-qa-check.d: 90gcc-warnings: Add additional code quality warnings
951which are indicative of problems with LTO in particular:
952* -Wbuiltin-declaration-mismatch
953* -Wlto-type-mismatch (LTO esp.)
954* -Wmismatched-dealloc
955* -Wodr (LTO esp.)
956* -Wreturn-type
957* -Wstringop-overflow (GCC, FORTIFY_SOURCE)
958* -Wfortify-source (Clang, FORTIFY_SOURCE)
959* -Wstrlcpy-strlcat-size
960* -Wstrncat-size
961* -Wsuspicious-bzero
962* -Wvarargs
963* -Wargument-undefined-behaviour (Clang)
964* -Wincompatible-function-pointer-types (Clang, becomes fatal in Clang 16)
965(note we already have -Wincompatible-pointer-types in the list for GCC)
966* -Wundefined-reinterpret-cast (Clang, C++ strict aliasing)
967* -Wcast-function-type-strict (Clang, CFI)
968* Further -Wformat matches for missing specifiers.
969In future, we may warn on all -Wformat (in particular because of e.g.
970time_t & LFS).
971
972* install-qa-check.d: 90gcc-warnings: Always die on -Wimplicit-function-declaration
973and remove bin/check-implicit-pointer-usage.py of dubious licencing (it was
974broken since GCC 4.5 because of output changes anyway, bug #365655).
975
976-Wimplicit-function-declaration becomes an error in Clang 16 onwards and
977GCC is likely to do the same from 14 onwards. See bug #870412.
978
979* ecompress, etc: Support additional compression suffixes for texinfo:
980.Z, .bz2, .lzma, .lz, .xz, .zst (bug #757525).
981
982Bug fixes:
983* binpkg: Deprecate BINPKG_FORMAT in the binpkg manifest ('Packages') because
984it can become out-of-sync with reality and shouldn't be relied upon anyway
985(bug #877419).
986
987* binpkg: Add various asserts / integrity checks to detect structure mismatches
988and detect problems earlier (bug #877357, bug #877271, bug #877419).
989
990* binpkg: gpkg: Try to correct mismatched structures (old/new gpkg structure)
991(bug #877271).
992
993* binpkg: gpkg: Handle package renames ('updates') where the same category was
994used but with a new package name (bug #877357).
995
996* binpkg: gpkg: Don't silence compressor stderr to ease debugging (bug #877215).
997
998* Manifest: Fix Manifest.addFile() calls and add tests (bug #875860).
999
1000* ecompress, etc: Pass --quiet to xz to reduce noise from "reducing threads"
1001messages.
1002
1003* ecompress, etc: Pass --memlimit-compress=50% to xz to avoid breakage
1004on 32-bit systems with large -Tn. Required for < xz-5.3.3_alpha and
1005has an equivalent effect to the limiting that comes with newer xz versions.
1006We don't need it for decompression as it's there by default in newer xz
1007and it's a no-op in older xz.
1008
1009* emerge(1), make.conf(5), xpak(5): document BINPKG_FORMAT and the gpkg binary
1010packate format further.
1011
1012* sync: git: Fix sync printing local repo path (bug #875812)
1013
1014portage-3.0.38.1 (2022-10-04)
1015----------------
1016
1017Bug fixes:
1018* ecompress: Fix typo in ___makeopts_jobs (bug #874597).
1019
1020portage-3.0.38 (2022-10-01)
1021--------------
1022
1023Features:
1024* unpack now calls xz(1) with -T N where N is the number of jobs from ${MAKEOPTS}.
1025This allows decompression in parallel with new enough xz (>= xz-utils 5.3.3 alpha)
1026and where the source file was compressed using the parallel xz compressor
1027(which becomes the default with newer xz too).
1028
1029* portage: sets: Parse INCLUDES/EXCLUDES in VariableSet which allows properly
1030checking for dependencies. Update @golang-rebuild accordingly which now
1031includes all packages depending on dev-lang/go (bug #827974, bug #865115)
1032
1033* cnf: Provide a @rust-rebuild set, similar to @golang-rebuild.
1034
1035* bin: ecompress: xz, zstd: Pass -T N where N is the number of jobs from ${MAKEOPTS}
1036to xz, zstd for parallel compression.
1037
1038* bin: ecompress: xz: Pass -9 to xz for compression level like we do for bzip2 & gzip.
1039
1040Bug fixes:
1041* emerge: Scheduler: Fix filenames for binpkgs in some cases - reuse existing
1042filename and don't allocate a new one (bug #872392).
1043
1044* dbapi: bintree: Avoid fetching 'Packages' multiple times (bug #864259).
1045
1046* binpkg: Handle failure of various BINPKG_COMPRESS_* commands (bug #871570).
1047
1048* data: Fix PORTAGE_USERNAME default (bug #873088).
1049
1050* bin: isolated-functions.sh: return number of CPUs in ___makeopts_jobs as default
1051instead of 1 to match Portage's behavior on the Python side.
1052
1053* bin: ecompress: Recognize .lz, .lzo, .lz4, and .zst as compressed file
1054suffixes for the purposes of the internal compressed file collision check.
1055
1056* bin: ecompress: zstd: Set '-q --rm' in PORTAGE_COMPRESS_FLAGS to behave
1057like other compressors.
1058
1059* portage: _global_updates: Fix update summary output.
1060
1061portage-3.0.37 (2022-09-23)
1062--------------
1063
1064Bug fixes:
1065* _emerge: SpawnProcess: Avoid sandbox violations with PROPERTIES="interactive"
1066when accessing /dev/tty* (bug #870310).
1067
1068* _emerge: Binpkg: Don't create empty stray binpkgs (bug #870283).
1069
1070* bin: gpkg-sign: Check gpg configuration before using (bug #869470).
1071
1072* portage: gpkg: Allow missing files (needed for when ebuilds touch
1073${EROOT} in pkg_*) when creating binpkgs with quickpkg (bug #870229).
1074
1075* portage: getbinpkg: Fix --getbinpkgonly command list with e.g. rsync (bug #866197).
1076
1077* portage: checksum: Fix PORTAGE_CHECKSUM_FILTER. Regression from 3.0.31.
1078
1079portage-3.0.36 (2022-09-09)
1080--------------
1081
1082Bug fixes:
1083* The layout of gpkg (new binpkg format) packages has been fixed (bug #865905).
1084
1085* Fix getbinpkg fetching (bug #864160).
1086
1087portage-3.0.35 (2022-08-23)
1088--------------
1089
1090Features:
1091* Portage can now set scheduling policies using the PORTAGE_SCHEDULING_POLICY
1092and PORTAGE_SCHEDULING_PRIORITY variables. See make.conf.example for details.
1093
1094See also https://wiki.gentoo.org/wiki/Portage_niceness.
1095
1096* The header of build.log now contains the package's slot (bug #864382).
1097
1098Bug fixes:
1099* xml: Fix XML node parsing (resulted in duplicate USE flag descriptions
1100in gentoolkit, bug 858791). This code is thought to have only one
1101consumer (gentoolkit, and only as of its most recent releases), so
1102impact is not severe.
1103
1104* portage: dbapi: porttree: fix _set_porttrees() to operate correctly if passed
1105a generator. Fixes e.g. blank emerge --metadata caches in /var/cache/edb
1106which affected eix (bug #865635). Regression from 3.0.31.
1107
1108* logging: don't clutter with a global logger and instead scope to
1109each module. Allows further logging refactoring in future.
1110
1111* estrip: fix double slash for older EAPIs (bug #862600).
1112
1113* estrip: avoid spurious NEEDED warning when no ELF files installed for
1114< EAPI 7 (bug #749624, bug #862606).
1115
1116* estrip: apply scanelf optimisation for EAPI 7+ too (bug #749624, bug #862606).
1117
1118* dispatch-conf: respect (E)ROOT
1119
1120* install-qa-check.d: 60pkgconfig: drop noisy pkg-config mismatched Version
1121field check (bug 857654).
1122
1123* install-qa-check.d: 60pkgconfig: fix --validate check by adding
1124${ED}/usr/{lib*,share} to search path.
1125
1126* install-qa-check.d: 60pkgconfig: only check defined variables for
1127${EPREFIX} compliance (bug 860825).
1128
1129* install-qa-check.d: 60pkgconfig: display the detected version from
1130the .pc file (improves the QA warning output), and hint to the user/developer
1131about the existence of QA_PKGCONFIG_VERSION to silence the warning.
1132
1133* install-qa-check.d: 60pkgconfig: use eqatag for nicer output.
1134
1135* install-qa-check.d: 60pkgconfig: use ver_test where possible in version
1136comparison checks to avoid warning if the Version field in the .pc file
1137is equivalent to the ebuild version.
1138
1139* install-qa-check.d: 80libraries: include Darwin/Mach-O objects in checks.
1140
1141* install-qa-check.d: 80multilib-strict: use file/find from Prefix instead
1142of absolute paths in /usr/bin.
1143
1144* install-qa-checks.d: 90gcc-warnings: add arm64, aarch64 (used by Apple),
1145loongarch64, riscv64, s390x to list of 64-bit arches which affects the
1146severity of some warnings (like pointer truncation).
1147
1148* install-qa-check.d: 90world-writable: include EPREFIX in paths.
1149
1150* portage: output: update obsolete /etc/init.d/functions.sh path.
1151
1152* bin: style tweaks to conform to Gentoo style (mostly variable bracing).
1153
1154* doins: fix D check, add EPREFIX check
1155
1156* misc-functions.sh: add Prefix fixups, like including EPREFIX in
1157INSTALL_MASK for /usr/share for noman, noinfo, nodoc.
1158
1159* phase-function.sh: mark ED, EROOT read-only variables
1160
1161* eapi.sh: cleanup obsolete references to unofficial 5-hdepend EAPI.
1162
1163* isolated-functions.sh: sync __makeopts_jobs implementation with
1164multiprocessing.eclass.
1165
1166* ebuild(1): improve descriptions of various phase functions.
1167
1168* emerge(1): mention --with-bdeps=n behavior for both --usepkg (-k) and
1169--usepkgonly (-K) (bug #863422).
1170
1171* ecompress: add option to lz4 in order to be able to compress multiple
1172files at once (bug #672916).
1173
1174portage-3.0.34 (2022-07-20)
1175--------------
1176
1177Bug fixes:
1178* checksum: fix trying to use discard on a frozenset().
1179
1180* ebuild(5): mention doexe behavior is undefined if exeinto not yet called.
1181
1182* ebuild(5): fix typos.
1183
1184portage-3.0.33 (2022-07-18)
1185--------------
1186
1187Bug fixes:
1188* env-update: Handle BROOT vs ROOT distinction for PATH (and other
1189variables like PREROOTPATH and ROOTPATH). The issue being that
1190only some variables are relevant for execution (and hence need
1191to be derived from BROOT), while others need to correspond to
1192EROOT for e.g. library paths. This should help with Clang
1193stage building.
1194
1195* Build: Fix test suite file data processing (copying of .gnupg data
1196for the gpkg tests led to a failure in src_test in the portage ebuild).
1197
1198* emerge: drop obsolete fixpackages warning (as a result of refactoring,
1199started to show on every emerge, but is harmless and left over
1200from many years ago). Bug #858407.
1201
1202* quickpkg: Fix quoting/splitting of BINPKG_COMPRESS_FLAGS arguments. Bug #857933.
1203
1204* estrip: fix double prefix (regression from "don't call estrip twice" fix
1205in 3.0.31). Bug #858818.
1206
1207* ebuild(5): dolib, libopts: mention dolib, libopts being banned in EAPI 7.
1208
1209* ebuild(5): dohtml: mention dohtml is banned in EAPI 7.
1210
1211* ebuild(5): hasv: mention hasv is banned in EAPI 8.
1212
1213* ebuild(5): dosym: mention dosym -r for EAPI 8.
1214
1215* ebuild(5): einstall: mention einstall was banned in EAPI 6.
1216
1217* ebuild(5): econf: add --docdir and --htmldir for EAPI 6,
1218add --with-sysroot for EAPI 7, add --datarootdir and --disable-static for EAPI
12198.
1220
1221* ebuild(5): econf: drop --disable-dependency-tracking from "example"
1222because it's confusing (implies it was always added, even before EAPI 4).
1223
1224* ebuild(5): modernize examples slightly.
1225
1226portage-3.0.32 (2022-07-11)
1227--------------
1228
1229Bug fixes:
1230* Fix marking all news items as relevant. See bug #857669.
1231
1232* Allow nested ebegin again while there's a lack of consensus on banning it.
1233
1234* Fix use of deprecated (now removed) getchildren() call in XML parser,
1235which caused failures with gentoolkit. See bug #857537. (Note that this
1236was not originally in the release notes for 3.0.32, but the fix was in
12373.0.32).
1238
1239* Fix doc generation by removing reference to removed EAPIs. See bug #857486.
1240
1241portage-3.0.31 (2022-07-10)
1242--------------
1243
1244Breaking changes:
1245* repoman support dropped. Please migrate to pkgcheck. See bug 835013.
1246
1247* Remove support for never-official EAPIs: "4-python", "5-progress".
1248Further cleanups as a result allowed removal of "USE alias" support too.
1249
1250* Drop support for Python 3.6. It's been EOL upstream since 2021-12-23.
1251The minimum version of Python for Portage is now Python 3.7.
1252
1253Features:
1254* GLEP 78 "gpkg" binary package format support, including the ability to sign
1255binpkgs! See bug 500630, bug 659864, bug 672672, bug 773259, bug 820578.
1256
1257This is still somewhat experimental!
1258
1259To try it out:
1260- set BINPKG_FORMAT="gpkg" in make.conf;
1261
1262- optionally, set FEATURES="binpkg-signing binpkg-request-signature", and so on.
1263See cnf/make.conf.example for the full details, options, and documentation.
1264
1265* emerge: Add -X short option for --exclude.
1266
1267* emerge: Support the "foot" terminal for title updates.
1268
1269* Recognize LoongArch ABIs in multilib_category.
1270
1271* depclean: Return failure via exit code if requested packages
1272aren't depcleaned. See bug 851750.
1273
1274* estrip: Optimize calls (avoid duplicate call) by using previously
1275collected scanelf data. See bug 749624
1276
1277* autoclean: Optimize unmerges by only enabling autoclean for global
1278updates and/or depcleans. This avoids needing to iterate over all
1279installed packages after each individual removal.
1280
1281* vartree: Optimize by skipping `env-update` call (which is expensive, as
1282it ends up calling `ldconfig` to regenerate ld.so.cache) if no files
1283were installed (e.g. virtual/).
1284
1285* vartree: Optimize by avoiding VDB lock contention (avoid taking
1286lock if no blockers).
1287
1288* QA: warn if 'eend' is called without a corresponding 'ebegin',
1289and vice-versa: if 'ebegin' is called without a corresponding 'eend'.
1290See bug 835824 and bug 835823.
1291
1292* QA: install-qa-check.d: Add 60pkgconfig check which:
1293- checks libdir in installed .pc files
1294- checks paths not respecting EPREFIX in .pc files
1295- runs pkg-config --validate on .pc files
1296- checks for mismatched version in .pc files vs ${PV}. Ebuilds can override
1297this using QA_PKGCONFIG_VERSION.
1298
1299* QA: install-qa-check.d: Update 20runtime-directories to warn on /var/tmp
1300usage too.
1301
1302* emerge: Deduplicate atoms in 'dropped' message for --keep-going.
1303
1304* dispatch-conf: Warn about changing the 'use-rcs' setting. See bug 837533.
1305
1306* Lots of general refactoring and code cleanups.
1307
1308Bug fixes:
1309* Disable SONAME dependencies by default again (i.e. set --ignore-soname-deps=y
1310to default on). See bug 687956 and bug 829623.
1311
1312This was done because of problems caused with depcleans.
1313
1314* git: Mark repository as safe for newer versions of git (>= git-2.35.2).
1315See bug 838223 and bug 838271.
1316
1317* dosym: Fix EAPI check for '-r' (relative) flag. It would previously allow
1318using an EAPI 8 only feature.
1319
1320* ebuild: Fix re-sourcing IDEPEND (EAPI 8+).
1321
1322* estrip: Fix race when creating build-id debug symlinks. See bug 831927.
1323
1324* MergeProcess: Fix bug causing unnecessary ld.so.cache regeneration even
1325when no libraries were installed. This used to work in the past, so is viewed
1326as a bug fix, rather than an optimization, although it's a bit of both.
1327See bug 836375.
1328
1329* MiscFunctionsProcess: Avoid clobbering the main sandbox.log if a "die hook"
1330is invoked. This should prevent sandbox.log being blank in many cases.
1331
1332* Drop /run warning as it ended up being too noisy and we've decided
1333to workaround/fix (depending on your perspective) the issues in packages
1334themselves, given only one package was actually at fault here: bug 832853.
1335
1336* movefile: Merge symlinks atomically. This should reduce the risk of build
1337failures during parallel builds (multiple emerge jobs). See bug 836400.
1338
1339* Improve error message when Bash version is too old for an ebuild
1340to be read.
1341
1342* Minor improvements to 'die' output.
1343
1344* Undo dep_zapdeps change in 3.0.29 as it introduced a regression w.r.t solving
1345blockers for gentoo-kernel. See bug 833014.
1346
1347* QA: install-qa-check.d: update 95empty-dirs to mention Portage behavior
1348change for EAPI 8+.
1349
1350* QA: install-qa-check.d: Fix usage of obsolete 'egrep' and 'fgrep' which
1351now emit warnings with an upcoming grep release (> 3.7).
1352
1353* portageq: Ditto re egrep/fgrep.
1354
1355* util: Fix Whirlpool implementation breaking (crashing/failing tests) with
1356OpenSSL 3. This wasn't noticed before as previously, OpenSSL exposed its
1357Whirlpool implementation by default, whereas it's now marked as legacy.
1358See bug 846389.
1359
1360* socks5-server: Fix Python 3.10 DeprecationWarning. See bug 794115.
1361
1362* portage.eapi: Include workaround for consumers with misconfigured
1363logger to avoid needing a newer gentoolkit. See bug 838406.
1364
1365* CI: Run 'black' on remaining files missed in the previous conversion and fix
1366CI to catch regressions related to this.
1367
1368* CI: Test with Python 3.11.
1369
1370* CI: Drop references to unsupported Python 3.6.
1371
1372* make.conf: document MAKEOPTS defaulting to the number of processors for
1373the number of jobs in make.conf(5).
1374
1375* dispatch-conf: fix description of 'frozen-files' format in dispatch-conf.conf
1376man page. See bug 830618.
1377
1378portage-3.0.30
1379--------------
1380* fix warning/crash on bad PROVIDES in package. See bug 828966.
1381* avoid infinite loop in _optimized_copyfile. See bug 828844.
1382
1383portage-3.0.29
1384--------------
1385* check for inconsistent/missing PROVIDES during package (and binpkg)
1386installation. See bug 811462.
1387* avoid pulling in newer slots for upgrades in some cases. See bug 828136.
1388* enable SONAME dependencies for binpkgs by default. See bug 687956.
1389* add new options to allow avoiding building/using binpkgs for live ebuilds:
1390FEATURES="binpkg-live" and --usepkg-exclude-live.
1391* add emphasis in output to user patches being applied.
1392
1393portage-3.0.27
1394--------------
1395* improve blocker output to make it clear which blockers
1396are not satisfied.
1397* use distinct colors for einfo/elog and ewarn/eqawarn.
1398
1399portage-3.0.26
1400--------------
1401* fix broken FILESDIR copying logic.
1402
1403portage-3.0.25 (yanked)
1404-----------------------
1405* fix Python < 3.8 compatibility of FILESDIR copying code.
1406
1407portage-3.0.24
1408--------------
1409* remove doebuild(dbkey=...) support that was deprecated since 2013.
1410* pass metadata internally using key=value format.
1411* include INHERIT key md5-cache to match pkgcore.
1412* reformat Portage code using black.
1413* fix Python 3.10 deprecation warnings.
1414* replace compat_coroutine use with modern async.
1415
1416portage-3.0.23
1417--------------
1418* enable autogroup scheduling with pid-sandbox if possible. This should
1419make the kernel respect niceness better.
1420* add support conf-update.d hooks.
1421* display all preserved libraries with --verbose.
1422* restore QA warnings when EXPORT_FUNCTIONS is called before inherit.
1423* catch more setuptools warnings via the respective QA check.
1424
1425portage-3.0.22
1426--------------
1427* USE flags are now sorted with respect to numerical segments in emerge
1428output (e.g. python3_10 comes after python3_9).
1429* setuptools version normalization warnings are now ignored.
1430* FEATURES=installsources no longer copies irrelevant directory trees
1431with gcc-11.
1432* sdist archives built using "build" now include setup.py.
1433
1434portage-3.0.21
1435--------------
1436* EAPI 8 fixups.
1437
1438portage-3.0.20
1439--------------
1440* Finalize EAPI 8.
1441
1442portage-3.0.19
1443--------------
1444* Enable EAPI 8.
1445
1446portage-3.0.18
1447--------------
1448* profile-repo-deps is supported in layout.conf profile-formats.
1449
1450portage-3.0.16
1451--------------
1452* emirrordist supports the content-hash distfiles mirror layout.
1453
1454portage-3.0.15
1455--------------
1456* FEATURES=binpkg-multi-instance is now enabled by default.
1457
1458portage-3.0.13
1459--------------
1460* FETCHCOMMAND now supports a \${DIGESTS} placeholder which expands
1461to a space separated list of digests. Refer to the FETCHCOMMAND
1462documentation in the make.conf(5) man page.
1463
1464portage-3.0.6
1465--------------
1466* emerge --search now detects regular expressions automatically. This
1467behavior is controlled by the --regex-search-auto option.
1468* make.conf now treats variable names that begin with two underscores
1469as local variables which are not displayed by emerge --info --verbose.
1470* egencache --update-pkg-desc now has a --verbose option which causes
1471it to emulate esync --verbose output.
1472* env-update now generates a systemd user-session environment in a file
1473named /etc/environment.d/10-gentoo-env.conf.
1474* binrepos.conf is a new configuration file that acts as a substitute
1475for the PORTAGE_BINHOST variable, and allows each repository to have
1476a separate FETCHCOMMAND which can be used to customize authentication.
1477This file is documented in the portage(5) man page.
1478
1479portage-3.0.0
1480--------------
1481* Dropped support for Python 2.x.
1482
1483portage-2.3.101
1484--------------
1485* The new PORTAGE_LOG_FILTER_FILE_CMD make.conf(5) variable specifies a
1486command that filters build log output to a log file. In order to
1487filter ANSI escape codes from build logs, ansifilter(1) is a
1488convenient setting for this variable.
1489
1490portage-2.3.100
1491--------------
1492* New BINPKG_COMPRESS=zstd default (does not apply to installed systems
1493using the old bzip2 default).
1494
1495portage-2.3.97
1496--------------
1497* Support for the PORTAGE_LOG_FILTER_FILE_CMD variable has been
1498temporarily removed due to bug 716636.
1499
1500portage-2.3.90
1501--------------
1502* The new PORTAGE_LOG_FILTER_FILE_CMD make.conf(5) variable specifies a
1503command that filters build log output to a log file. In order to
1504filter ANSI escape codes from build logs, ansifilter(1) is a
1505convenient setting for this variable.
1506
1507portage-2.3.80
1508--------------
1509* The emerge --quickpkg-direct option enables use of installed packages
1510directly as binary packages. It can be used to create minimal runtime
1511container images (which need not include a package manager), or to
1512enable a live image to act as a binary installer that uses packages
1513installed in the live image as a source of binary packages. This
1514option is especially useful in combination with --usepkgonly and
1515--ignore-soname-deps=n options, allowing implicit system dependencies
1516such as libc to be automatically accounted for.
1517
1518portage-2.3.77
1519--------------
1520* The emerge --autounmask option is now disabled by default, except for
1521portions of behavior which are controlled by the --autounmask-use and
1522--autounmask-license options. For backward compatibility, previous
1523behavior of --autounmask=y and --autounmask=n is entirely preserved.
1524Users can get the old behavior simply by adding --autounmask to the
1525make.conf EMERGE_DEFAULT_OPTS variable.
1526
1527portage-2.3.72
1528--------------
1529* The glsa-check program is now provided by portage, and it has been
1530removed from gentoolkit. See bug 463952.
1531
1532portage-2.3.70
1533--------------
1534* The @live-rebuild package set now searches for PROPERTIES=live, see
1535bug 233589. The @deprecated-live-rebuild package set provides the
1536old behavior which was based on inherited eclasses.
1537
1538portage-2.3.64
1539--------------
1540* New (council approved) default locations for the Gentoo repository,
1541distfiles, and binary packages (does not apply to installed systems
1542using the old defaults):
1543/usr/portage -> /var/db/repos/gentoo
1544/usr/portage/distfiles -> /var/cache/distfiles
1545/usr/portage/packages -> /var/cache/binpkgs
1546
1547portage-2.3.53
1548--------------
1549* Renamed PORT_LOGDIR and PORT_LOGDIR_CLEAN variables to
1550PORTAGE_LOGDIR and PORTAGE_LOGDIR_CLEAN to match other existing
1551similar variables
1552* Enable FEATURES={ipc,network,pid}-sandbox by default
1553
1554portage-2.3.42
1555----------------
1556* Sync with rsync quarantines data prior to verification, using the
1557rsync --link-dest option (can be disabled by setting
1558"sync-allow-hardlinks = no" in repos.conf).
1559* Sync with git quarantines data prior to verification, see
1560https://wiki.gentoo.org/wiki/Portage_Security#git-mirror_repo.
1561* Sync with shallow git pull is supported, by "setting sync-depth = 1"
1562in repos.conf.
1563
1564portage-2.3.32
1565----------------
1566* EAPI 7 support.
1567
1568portage-2.3.29
1569----------------
1570* Portage API consumers can use asyncio with portage's internal event
1571loop, see portage.util.futures.unix_events.DefaultEventLoopPolicy.
1572
1573portage-2.3.25
1574----------------
1575* Experimental support for EAPI 7_pre1.
1576
1577portage-2.3.20
1578----------------
1579* Support RESTRICT=network-sandbox in ebuilds.
1580
1581portage-2.3.17
1582----------------
1583* The doins ebuild helper has been rewritten in python for performance, and
1584it does in-kernel file copying on Linux.
1585
1586portage-2.3.14
1587----------------
1588* Repository metadata/layout.conf supports manifest-required-hashes
1589attribute (default value is SHA512).
1590
1591portage-2.3.12
1592----------------
1593* better_cache implemented to use less expensive os.listdir() instead of
1594os.stat() operations to scan for ebuilds. Avoids exhaustively scanning
1595overlays for all ebuilds which allows Portage to not slow down significantly
1596with lots of overlays enabled. (Daniel Robbins)
1597
1598portage-2.3.7
1599-----------------
1600* eapply_user combines patch basenames from all matched directories into a
1601list, and applies them in POSIX sorted order. This allows patches in
1602more-specific directories to override patches of the same basename found
1603in less-specific directories. An empty patch (or /dev/null symlink) negates
1604a patch with the same basename found in a less-specific directory.
1605* FEATURES=multilib-strict no longer recurses into subdirectories, in order
1606to avoid false-positives. The MULTILIB_STRICT_EXEMPT variable only served
1607to filter false-positives that were triggered by recursion, so it will no
1608longer be needed.
1609* New emerge --autounmask-keep-keywords and --onlydeps-with-rdeps=<y|n>
1610options.
1611* Set compression method for binpackages via BINPKG_COMPRESS variable
1612* Support for environment variables for git cmd in repos.conf via sync-git-env
1613
1614
1615portage-2.3.5
1616-----------------
1617* Numerous patches updating checksums code and python module imports for them
1618including new checksum methods
1619* New linux in kernel movefile support via a new "C" extension module
1620
1621
1622portage-2.3.3
1623-----------------
1624* Reverted commits:
1625- Bug 552814 Revert "GitSync.update: respect sync-depth
1626(Shallow fetch is not a practical default at this time,
1627given performance issues introduced by `git update-index`
1628and `git prune` (see bug 599008).
1629)
1630
1631
1632portage-2.3.1
1633-----------------
1634* Support News-Item-Format 2.0
1635* emerge: add --fuzzy-search and --search-similarity
1636* Add emerge --autounmask-continue option
1637
1638portage-2.3.0
1639-----------------
1640* Final release
1641* Includes numerous bugfixes
1642
1643portage-2.3.0_rc1
1644-----------------
1645* New split release for the repoman Q/A tool
1646* Includes the stage2 rewite of the repoman code base
1647
1648
1649portage-2.2.26
1650--------------
1651* EAPI 6 stable portage release
1652
1653
1654portage-2.2.25
1655--------------
1656* EAPI 6 final fully implemented.
1657
1658
1659portage-2.2.22
1660-------------
1661* Stage 1 of the repoman re-write code merged in to master branch
1662This is the first release of the new code base.
1663
1664
1665portage-2.2.19
1666-------------
1667* The squashdelta sync module was removed for separate installation
1668and development work
1669
1670
1671portage-2.2.19
1672-------------
1673* websync module now fully renamed to webrsync
1674* New squashdelta sync module for downloading full or updates for a squasfs tree
1675requires dev-util/squashmerge be installed
1676* New binpkg-multi-instance feature allows for multiple variations
1677(USE settings) to be saved in the pkgdir and index.
1678
1679
1680portage-2.2.16
1681-------------
1682* New portage plug-in sync system.
1683Read the news anouncement for more details of the changes in config
1684settings and operation.
1685* New native portage postsync.d capability
1686* New native portage repo.postsync.d capability
1687* New native indexed search capability for decent search speed
1688* Tentative EAPI 6 patches for additional testing
1689
1690
1691portage-2.2.14
1692-------------
1693* Remaining bugs in build/install system should be fixed.
1694
1695
1696portge-2.2.14_rc1
1697-------------
1698* Many new build/installation system errors fixed.
1699
1700
1701portage-2.2.13
1702-------------
1703* New setup.py build system and distutils-r1 ebuild at EAPI 5
1704* PORTAGE_{BIN,PYM}_PATH variables. If you want to call internal portage tools,
1705you need to query PORTAGE_BIN_PATH and PORTAGE_PYM_PATH, use them
1706and re-export them.
1707* New @changed-deps set to update packages which need dependecy change updates.
1708
1709
1710portage-2.2.12
1711-------------
1712* New emaint module "merges" for finding and fixing failed merges
1713If a pkg fails to merge to the live filesystem correctly, that pkg may
1714not work correctly if at all. This module scans the installed pkg database
1715for those failures and can re-emerge those packages.
1716
1717portage-2.2.1
1718-------------
1719
1720* Add cgroups, ipc-sandbox, and network-sandbox FEATURES.
1721
1722portage-2.2
1723-------------
1724
1725* Add extended set configuration via /etc/portage/sets.conf. See
1726/usr/share/portage/config/sets/portage.conf for examples.
1727
1728portage-2.1.11.20
1729-------------
1730* Add support for EAPI 5. Refer to the PMS EAPI Cheat Sheet, portage's html
1731docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 5.
1732* Add support for FEATURES=preserve-libs which preserves libraries when the
1733sonames change during upgrade or downgrade, and the @preserved-rebuild
1734package set which rebuilds consumers of preserved libraries.
1735* Add link level dependency awareness to emerge --depclean and --prune actions
1736in order to protect against uninstallation of required libraries. Refer to
1737the --depclean-lib-check option in the emerge(1) man page.
1738
1739portage-2.1.11
1740-------------
1741
1742* Add support for experimental EAPI "4-slot-abi". Refer to the corresponding
1743html documentation that is installed with USE=doc, and also to the emerge(1)
1744man page for information about the related --ignore-built-slot-operator-deps and
1745--rebuild-if-new-slot options.
1746
1747portage-2.1.10
1748-------------
1749
1750* Improve handling of repositories/overlays for cases in which the same ebuild
1751is provided by multiple repositories but with different masking status, and
1752support for repository constraints on atoms (atom::repo) in configuration
1753files.
1754* Add emerge --rebuild-if-* options that trigger rebuilds of reverse
1755dependencies when packages are rebuilt or updated. Related --rebuild-exclude
1756and --rebuild-ignore options can be used to avoid rebuilds for specific
1757packages.
1758* Add emerge --reinstall-atoms, --useoldpkg-atoms, and --usepkg-exclude options
1759which can be used to alter selection rules for specific packages.
1760* Add FEATURES=parallel-install and ebuild-locks, allowing for greater
1761parallelization when installing packages (by using finer-grained locks).
1762
1763portage-2.1.9.27
1764-------------
1765
1766* Add support for EAPI 4. Refer to the PMS EAPI Cheat Sheet, portage's html
1767docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 4.
1768Bug #273620 tracks EAPI 4 implementation in portage.
1769
1770portage-2.1.9
1771-------------
1772
1773* There is a new ipc (inter-process communication) USE flag which is enabled
1774by default. This allows portage to communicate with running ebuild processes,
1775for things like best_version, has_version, and die calls in nested processes.
1776This flag should remain enabled unless it is found to be incompatible with a
1777specific profile or environment. When enabled, it fixes bug #278895,
1778bug #315615, and makes subshell die support more robust (so that repoman's
1779ebuild.nesteddie check is irrelevant).
1780
1781portage-2.1.8
1782-------------
1783* The top-level __init__.py for the portage python package has been split into
1784many smaller python modules, making the code easier to navigate and allowing
1785small parts of the portage api to be imported with less overhead.
1786
1787portage-2.1.7.17
1788-------------
1789* Add support for EAPI 3. This adds support for installation prefix, including
1790new EPREFIX, ED, and EROOT variables which are used by econf and einstall
1791helpers. Also, EAPI 3 adds xz extension support to the unpack helper.
1792
1793portage-2.1.7
1794-------------
1795
1796* Add license visibility filtering (GLEP 23)
1797* Add --accept-properties option for emerge which allows you to use
1798--accept-properties=-interactive in order to temporarily exclude
1799interactive updates.
1800* Add support for Python 3.0. At least Python 2.6 is now required in order to
1801support the new syntax which is used by Python 3.0.
1802
1803portage-2.1.6
1804-------------
1805
1806* Add support for a new EAPI="2" value. For more information about new EAPI
1807features, refer to the "Ebuild" chapter of the html documentation that is
1808installed with portage.
1809* Add PORTAGE_IONICE_COMMAND setting for make.conf which is called to adjust
1810IO priority on portage and it's subprocesses.
1811* Add emerge --jobs and --load-average options which specify behavior
1812for building packages in parallel or for generating metadata in parallel
1813with emerge --regen.
1814* Add emerge --keep-going option to continue as much as possible after
1815an error. When an error occurs, dependencies are recalculated for
1816remaining packages and any with unsatisfied dependencies are
1817automatically dropped. The --skipfirst option automatically drops
1818packages in the same way, and also drops any masked packages.
1819* Add git and subversion support for repoman.
1820* It is now possible to use `emerge <file>` to reinstall the package that
1821installed a particular file. Package contents entries are indexed to
1822improve performance. A command such as `emerge /lib/modules` can serve
1823as a decent substitute for module-rebuild.
1824* Namespace sanitizing: move all portage related code into portage.* namespace,
1825rename portage_foo modules to portage.foo (but keep symlinks for compability)
1826* Add support for news items (GLEP 42)
1827* Add FEATURES=protect-owned which is identical to the collision-protect
1828feature except that files may be overwritten if they are not explicitly
1829listed in the contents of a currently installed package.
1830
1831portage-2.1.5
1832-------------
1833
1834* For extra careful dependency handling, emerge has a new --complete-graph
1835option that causes it to consider the deep dependencies of all packages from
1836the system and world sets. With this option enabled, emerge will bail out
1837if it determines that the given operation will break any dependencies of
1838the packages that have been added to the graph. Unlike the --deep option,
1839the --complete-graph option does not cause any more packages to be updated
1840than would have otherwise been updated with the option disabled.
1841* Blockers are now resolved automatically in many more cases
1842than before. When it's safe, blocked packages are uninstalled
1843automatically so that users are no longer inconvenienced with the
1844task. Automatically uninstalled packages are displayed in the merge
1845list, marked "uninstall" and highlighted in red. With the --tree
1846option enabled, it's possible to see which package(s) caused other
1847ones to be automatically uninstalled.
1848* The dependency resolver now has a feedback mechanism that helps make atom
1849selections more consistent with previous selections that have been added to
1850the graph. This solves some common cases of bug #1343.
1851
1852portage-2.1.4
1853-------------
1854
1855* After the initial setup phase, the original ebuild and eclasses are no
1856longer needed because the same ebuild environment is reused for the
1857entire lifecycle of the package, including uninstallation.
1858* The emerge --search action supports searching of both installed and binary packages
1859The --usepkg and --usepkgonly options control which repositories are searched.
1860
1861portage-2.1.3
1862-------------
1863
1864* Allow per-module setting of PORTAGE_ELOG_CLASSES
1865* Add new elog module "echo" to simply display messages when emerge exits
1866* Add ** as new token for package.keywords to bypass the keyword visibility layer
1867* USE_EXPAND variables such as LINGUAS support a * wildcard that will enable
1868all of the corresponding flags that are listed in IUSE for a given package.
1869USE_EXPAND wildcards such as linguas_* are supported in USE and package.use.
1870* The merge process preserves the modification timestamp of files that it
1871installs. The unmerge process will not uninstall files that are claimed by
1872another package in the same slot.
1873* PDEPEND is now installed as soon as possible so that it behaves more like
1874RDEPEND. This makes PDEPEND more useful for breaking the dependency cycles
1875that are sometimes triggered by RDEPEND and DEPEND.
1876* Enable "echo" and "save_summary" elog modules by default
1877* Fix -* handling in package.keywords to work as intended (reset the accepted
1878keywords list), also see RELEASE-NOTES.
1879* Make elog functionality available to python code
1880
1881portage-2.1.2
1882-------------
1883
1884* Ebuilds support default USE flags via +flag in IUSE.
1885* New-style virtuals are now usable for packages that depend on themselves for
1886bootstrap.
1887* Profiles support multiple inheritance and package.use.
1888* CONFIG_PROTECT and CONFIG_PROTECT_MASK both support files (not just
1889directories).
1890* Collision protection handles symlinks properly.
1891* Dependencies can be satisfied by installed packages that do not have matching
1892ebuilds in the portage tree or overlay.
1893* Emerge automatically ignores blockers that are made irrelevant by an upgrade.
1894* Emerge supports "reverse blocker detection" which means that the blockers of
1895installed packages will always be respected.
1896* Emerge builds a complete dependency graph in order to ensure correct merge
1897order and detection of circular dependencies.
1898* The world and system sets allow automatic update of all installed slots.
1899* DEPEND atoms support SLOT dependencies of the form ${CATEGORY}/${PN}:${SLOT}.
1900* Development: Extend PYTHONPATH support to allow overriding the hardcoded
1901/usr/lib/portage/pym for development/testing purposes
1902* New "finalize" hook for elog modules enabling modules to perform actions on
1903shutdown (like dispatching collected messages).
1904* New elog modules mail_summary and save_summary that act like the mail/save
1905modules except that they merge messages from multiple packages in a single
1906file/mail.
1907* New QA loglevel and matching eqawarn function
1908* `ebuild foo test` now always runs src_test if available
1909* If DOC_SYMLINK_DIR is set portage installs symlinks to html documention there
1910* FEATURES="test" automatically implies USE="test".
1911
1912portage-2.1.1
1913-------------
1914
1915* Profiles support use.force, package.use.force, and package.use.mask files.
1916
1917portage-2.1 (ongoing via pre releases)
1918------------
1919
1920* FEATURES="confcache" integration; global caching to speed up configure calls,
1921requires dev-util/confcache
1922* elog framework and accompanying modules for logging ebuild warnings, errors
1923and general notices. Collects eerror/ewarn/elog/einfo messages.
1924* New elog function (should replace einfo in many cases)
1925* version syntax enhancements allowing multiple suffixes and a new 'cvs'
1926version prefix for denoting "live sources" ebuilds.
1927* config files as directories enabling more flexible settings management.
1928* Addition of an register_die_hook method that allows ebuild/eclasses to
1929register functions to be called for better debugging on errors.
1930* Addition of pre and post user hookable functions for each ebuild phase, accessible
1931via portage bashrc. Example would be pre_src_unpack .
1932* cache refactoring- runtime improvement from 35% -> 65%.
1933* Intelligently handle and display USE_EXPAND-based IUSE variables.
1934* FEATURES="parallel-fetch". Download in parallel to compilation.
1935* Include a "changed or new" USE flag output when --verbose isn't specified.
1936* Support for splitting out debug information into separate files in
1937/usr/lib{,32,64}.
1938* exec subsystem refactoring (now with less bugs!)
1939* Added sha256 and rmd160 hashes for digests/manifests
1940* Make --emptytree only apply to ${ROOT} rather than always including /.
1941* Allow packages to be upgraded that are only depended on via a
1942"|| ( =cat/pkg-1* =cat/pkg-2* )" construct.
1943* Ebuild output is no longer cut off early when using PORTAGE_LOGDIR.
1944* Distfiles indirection- $DISTFILES access goes through a tmp dir to fail
1945access to files not listed in SRC_URI.
1946* Emerge now uses --resume to restart itself after portage upgrade.
1947* Atomic file updates via the new atomic_ofstream class.
1948* Global updates and fixpackages performance optimizations.
1949* Tests show that file locking is now more reliable.
1950* A bash call stack is printed when an ebuild dies in ebuild.sh.
1951* New rsync option handling by using a generic PORTAGE_RSYNC_EXTRA_OPTS variable
1952* Manifest2 support that will allow digest-* files to be eliminated from the tree.
1953