portage

Форк
0
/
NEWS 
1952 строки · 70.2 Кб
1
Release 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

9
portage-3.0.64 (UNRELEASED)
10
--------------
11

12
Bug fixes:
13
* ctypes: Add workaround for loading libc on musl.
14

15
* util: set a timeout for urlopen calls (bug #926221).
16

17
portage-3.0.63 (2024-02-25)
18
--------------
19

20
Bug 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

27
  Fixes hang with FEATURES="network-sandbox-proxy" or FEATURES="distcc".
28

29
* SchedulerInterface/PollScheduler: Add _loop property (bug #925333).
30

31
  Fixes erroneous assert.
32

33
* _dynamic_deps_preload: Fix settings reference (bug #925350).
34

35
  Fix KeyError with --dynamic-deps.
36

37
* process.spawn: Fix logic for missing libc.unshare on musl (bug #925311).
38

39
  Fix handling when we can't unshare where we might e.g. modify the hostname
40
  of the real system on musl.
41

42
* dbapi: Fix TypeError when passing Exception to warnings.warn (bug #922935).
43

44
  Fix testUpdateDbentryDbapiTestCase.
45

46
* _start_proc: Prevent premature ForkProcess garbage collection (bug #925456).
47

48
  Fix warnings/errors like "[ERROR] Task was destroyed but it is pending!".
49

50
Cleanups:
51
* More asyncio porting.
52

53
portage-3.0.62 (2024-02-22)
54
--------------
55

56
This release has a lot of misc. bug fixes as well as many asyncio fixes from Zac to
57
kill off unsafe fork use.
58

59
Features:
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
67
  we do parallel merges of images to the live filesystem (bug #663324).
68

69
  If enabled, we serialize these merges.
70

71
  For now, this makes FEATURES="parallel-install" a no-op, but in future, it
72
  will be improved to allow parallel merges, just not while any packages are
73
  compiling.
74

75
* estrip: Add FEATURES="dedupdebug" (bug #906368).
76

77
  This uses sys-devel/dwz to deduplicate installed DWARF debug information.
78

79
  Future improvements may be made for multifile support.
80

81
* Support PROPERTIES="test_privileged" to not drop privileges for tests (bug #924585).
82

83
Bug 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

103
Cleanups:
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

110
portage-3.0.61 (2024-01-05)
111
--------------
112

113
A small set of binpkg robustness fixes.
114

115
Bug 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

126
portage-3.0.60 (2024-01-02)
127
--------------
128

129
A small set of binpkg robustness fixes.
130

131
Bug 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
135
  to 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

142
portage-3.0.59 (2023-12-27)
143
--------------
144

145
Features:
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
152
  or if a failure occurs.
153

154
Bug fixes:
155
* Scheduler: Handle aborted unpack more gracefully (bug #920258).
156

157
* Scheduler: Handle SignatureException in _run_pkg_pretend to give a proper
158
  error 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
166
  for 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
180
  list of paths as argument (bug #920654).
181

182
portage-3.0.58 (2023-12-14)
183
--------------
184

185
Breaking changes:
186
* Switch BINPKG_FORMAT to "gpkg" by default (bug #912672).
187

188
portage-3.0.57 (2023-12-10)
189
--------------
190

191
This release has a series of binpkg robustness fixes. Notably, it includes
192
a workaround/fix for binpkgs built against a newer glibc to ensure that they
193
aren't merged on a binpkg consumer before merging a newer glibc, which has been
194
a longstanding cause of frustration for binpkg users.
195

196
Features:
197
* emerge: Make --binpkg-changed-deps output far more concise (don't show
198
  packages missing from the merge list).
199

200
* ebuild: Inject implicit libc RDEPEND. This avoids "bricking" systems when
201
  using binpkgs built against a newer glibc (bug #753500, bug #913628).
202

203
* BinpkgVerifier: Improve error message on stale binpkg index. This became
204
  more common with the portage-3.0.52 default change to FEATURES="pkgdir-index-trusted"
205
  (bug #915474).
206

207
Bug fixes:
208
* Fix package moves for signed binary packages by deleting the old binpkg
209
  if 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
212
  when cross-compiling and IPC is disabled.
213

214
* bindbapi: Add missing SIZE key for binpkg-multi-instance (bug #906675,
215
  bug #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
224
  appears in @rust-rebuild.
225

226
portage-3.0.56 (2023-12-01)
227
--------------
228

229
In particular, this release improves dependency resolution robustness in
230
a few scenarios.
231

232
Breaking changes:
233
* ebuild: no longer implicitly set NOCOLOR and NO_COLOR when color output
234
  is disabled for emerge itself.  In order to obtain color-free logs, please
235
  either explicitly set NO_COLOR environment variable or use e.g. ansifilter.
236

237
Features:
238
* sync: git: Add sync-git-verify-max-age-days option.
239

240
Bug 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"
255
  while waiting for binpkgs (bug #760893).
256

257
* ebuild: Add missing newlines in error messages.
258

259
Cleanups:
260
* tests: Add pytest markers: ft, unit and stress.
261

262
* tests: Add test for trust helper --pretend issue (bug #915842).
263

264
portage-3.0.55 (2023-11-06)
265
--------------
266

267
Bug 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
276
  lack privileges to do anything (bug #915842).
277

278
portage-3.0.54 (2023-10-25)
279
--------------
280

281
Zac has continued working on preparing us for the 'spawn' multiprocessing
282
method.
283

284
Breaking changes:
285
* Finally ban non-PMS helpers portageq, prepinfo, prepman, prepstrip and
286
  prepallstrip (bug #899898, bug #906129, bug #906156).
287

288
Features:
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
292
  repositories (bug #905869).
293

294
* emerge: Make --binpkg-respect-use output far more concise (don't show
295
  packages missing from the merge list and don't show packages w/ multiple
296
  BUILD_IDs).
297

298
Bug fixes:
299
* SpawnProcess, ForkProcess: Pass stdin via fd_pipes for non-background. This
300
  fixes 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

310
Cleanups:
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

320
portage-3.0.53 (2023-10-20)
321
--------------
322

323
Standard mix of bug fixes and new features, along with Zac's continued work
324
on preparing us for the spawn multiprocessing method.
325

326
Features:
327
* GNUMAKEFLAGS: also specify "-l $(nproc)", that is, limit by load average,
328
  per default.
329

330
* Increase default number of maximum backtrack attempts from 10 to 20.
331

332
Bug fixes:
333
* bintree: Add another API member (invalid_errors) to allow eclean-pkg to suppress
334
  errors when cleaning invalid binpkgs (bug #900224).
335

336
* repos.conf: Fix default value of sync-rsync-verify-max-age for ::gentoo. It
337
  was previously '24' which allowed far too much time with a stale mirror and
338
  could 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
345
  than raw bytes for file paths in calls to python modules like os and shutil
346
  (bug #914722).
347

348
  We 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
353
  when necessary (bug #905869).
354

355
portage-3.0.52 (2023-10-03)
356
--------------
357

358
This release has a nice speedup for backtracking caching and supports eclean-pkg
359
removing invalid binpkgs.
360

361
Breaking changes:
362
* FEATURES=pkgdir-index-trusted is now on by default. This improves performance
363
  with binpkgs, but does require that users run `emaint binhost --fix` if they
364
  manually add or remove binpkgs from their PKGDIR (bug #889300).
365

366
Features:
367
* Refine _slot_operator_check_reverse_dependencies caching (bug #883071).
368

369
* bintree: Add new API member (invalid_paths) to allow gentoolkit to later
370
  clean 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
375
  messages as well as elog's mod_echo module (bug #914159).
376

377
* Show backtrack information after dependency resolution.
378

379
Bug 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
391
  packages (bug #915054).
392

393
* env-update: Write ${EPREFIX}/usr/etc/ld.so.conf with unprefixed paths on
394
  prefixed systems to fix the bfd linker in some obscure cases (bug #892549).
395

396
* locks: Handle multiprocessing 'spawn' method (bug #915119).
397

398
Cleanups:
399
* vartree: Remove unused variables and parameters
400

401
* locks: Drop obsolete EINTR wrapper
402

403
portage-3.0.51 (2023-08-20)
404
--------------
405

406
This release features better debug logging in particular.
407

408
Features:
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
412
  especially useful for debugging hangs during the 'Refreshing keys' stage.
413

414
Bug 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
421
  via --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
426
  rarely-used tool (bug #911335).
427

428
* make.conf(5): Mention https_proxy.
429

430
portage-3.0.50 (2023-08-09)
431
--------------
432

433
This release has a major build system rework to support PEP517 by migrating
434
to meson-python, thanks to Chewi!
435

436
Breaking 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
440
  meson-python for PEP 517 compliance.
441

442
* FEATURES=cgroup was removed since it was based on version 1 cgroups, which
443
  caused some issues and version 1 cgroups are obsolete. Use
444
  FEATURES=pid-sandbox instead.
445

446
Bug 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
463
  using the same environment.
464

465
* Use the correct Python library path when launching scripts directly from a
466
  virtual 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

472
portage-3.0.49 (2023-06-21)
473
--------------
474

475
Bug fixes:
476
* Adjust write tests for DISTDIR and PORTAGE_TMPDIR to work with automount
477
  directories (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

482
  This 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
488
  on the filesystem (bug #905868).
489

490
* glsa-check: appropriately handle more error cases with invalid GLSAs
491
  (bug #905660)
492

493
portage-3.0.48.1 (2023-06-06)
494
----------------
495

496
Bug fixes:
497
* sync: webrsync: Fix syncing with keyserver explicitly specified (bug #907816).
498

499
portage-3.0.48 (2023-06-01)
500
--------------
501

502
Breaking changes:
503
* Output deprecation warnings for portageq, prepstrip and prepallstrip
504
  when they are called from an ebuild (bug #906129, bug #906156).
505

506
Features:
507
* Optimize merge process by only writing files to disk if a package's
508
  contents have changed. This is particularly beneficial on CoW filesystems
509
  with snapshots. This is always enabled. See bug #722270.
510

511
Cleanups:
512
* Begin porting to pytest!
513

514
Bug 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
518
  to emerge-webrsync for repositories configured with sync-type=webrsync
519
  (bug #905358).
520

521
  This unifies some of the logic between Portage and emerge-webrsync:
522
  both of them now use the same main path for PGP verification (i.e.
523
  gemato).
524

525
* emerge-webrsync: Fall back correctly to manual gpg (rather than aborting
526
  entirely) if gemato is not installed (bug #905868).
527

528
Cleanups:
529
* Convert printf-style %-formats into fstrings.
530

531
* Move the internal portageq wrapper script out of the ebuild-helpers
532
  directory.
533

534
* Drop unused deprecated-path script.
535

536
portage-3.0.47 (2023-04-30)
537
--------------
538

539
Security:
540
* emerge-webrsync (the standalone tool) now verifies PGP signatures, see
541
  bug #597800. Note that 'sync-type = webrsync' in repos.conf already
542
  handled 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

546
Features:
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
558
  but are missing BDEPEND on it.
559

560
Bug fixes:
561
* econf now checks for proper end of string in "configure --help" output for
562
  all options starting with "--with-", "--disable-" or "--enable-", in order
563
  to 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
566
  them to the __* namespace which is reserved for the package manager.
567

568
* The PVR variable includes -r0 if explicitly specified (bug #875362).
569

570
portage-3.0.46 (2023-04-07)
571
--------------
572

573
Breaking changes:
574
* Drop STREEBOG{256,512} support
575

576
  Support was originally added in https://bugs.gentoo.org/597736, but
577
  exclusively via two modules (pygost and pygcrypt) which aren't packaged in
578
  Gentoo - or seemingly any other major distribution.
579

580
  We're dropping both pygost and pygcrypt compatibility: pygost has been
581
  removed from pypi and pygcrypt is inactive upstream.
582

583
  pygost being yanked from pypi made CI start to fail too and silently dropping
584
  it from CI without addressing the situation which was already suboptimal (insufficient
585
  testing) wasn't deemed acceptable.
586

587
* Inline most code from prepinfo in install_qa_check() (bug #899898).
588
  Output a deprecation warning for prepinfo and prepman when they are called
589
  from an ebuild.
590

591
Cleanups:
592
* Drop support for pygcrypt
593

594
  The codepath has been disabled since 2017 because of https://bugs.gentoo.org/615620,
595
  so let's finally clean it up.
596

597
  pygcrypt *prior to 2017* was used for RMD160/WHIRLPOOL/SHA3_256/SHA3_512
598
  if hashlib didn't provide these *and* the sha3 module didn't either.
599

600
  pygcrypt last received a release in 2017 too.
601

602
* Drop support for pyblake2, sha3
603

604
  We've only supported >= Python 3.6 for quite some time, so these codepaths are
605
  obsolete given hashlib will always provide support for BLAKE2 and SHA3.
606

607
  Neither pyblake2 nor sha3 are even packaged in Gentoo anymore either (the
608
  Python 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
613
  aren't needed anymore.
614

615
  pycrypto fallback support continues to exist for RMD160.
616

617
* Drop support for WHIRLPOOL logic via mhash
618

619
  Drop mhash fallback logic for WHIRLPOOL as we already have:
620
      hashlib > pycrypto > bundled C > bundled pure Python
621
  in terms of priority for providers.
622

623
Features:
624
* Respect the NO_COLOR environment variable for disabling color.
625

626
  The new quasi-standard for disabling ANSI color is to check for the NO_COLOR
627
  environment variable and disable color when the variable has a nonempty value.
628
  See bug #898224. Portage previously used NOCOLOR. It continues to support NOCOLOR
629
  for a time for compatibility.
630

631
* ci: enable running Portage tests on sourcehut builds
632

633
  The build manifests and supporting files can be found in .builds/
634

635
  Current 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
639
    all tests)
640
  - Runs lint and ci jobs concurrently, but each Python version within those is
641
    tested sequentially. This means tests will take longer to complete, unless
642
    the run fails partway through (~1h vs ~15-20m).
643

644
  Benefits compared to GitHub actions:
645

646
  - Can monitor test progress over SSH
647
  - Can investigate failed tests over SSH
648
  - ... not GitHub ;)
649

650
Bug fixes:
651
* dbapi: Handle mismatched binpkg structure during pkgmoves (bug #877271,
652
  bug #903917, bug #903926).
653

654
* tests: util/test_shelve: fix test failure if the backend for the shelve module
655
  does not create the shelve db using the literal filename.
656

657
portage-3.0.45.3 (2023-03-19)
658
----------------
659

660
Features:
661
* New portage FEATURE warn-on-large-env, to emit a warning if portage
662
  executes an ebuild-related child process with a large environment.
663

664
Bug fixes:
665
* repository: config: Handle more error cases when determining repository
666
  volatility (bug #900683).
667

668
portage-3.0.45.2 (2023-03-04)
669
----------------
670

671
Bug fixes:
672
* repository: config: Fix initial sync of repositories (bug #899208). Regression
673
  from portage-3.0.45, but the real bug is from portage-3.0.42.
674

675
portage-3.0.45.1 (2023-02-27)
676
----------------
677

678
Bug fixes:
679
* install-qa-check.d/90config-impl-decl: fix handling of non-ASCII quotes when
680
  extracting the function name. Detect "-Werror=implicit-function-declaration"
681
  as used by GCC.
682

683
portage-3.0.45 (2023-02-26)
684
--------------
685

686
Features:
687
* Support new ELF machine code: AMDGPU (bug #795825)
688

689
* ebuild: Set GNUMAKEFLAGS="--output-sync=line" to ensure build logs are written
690
  to synchronously when running GNU make in parallel. This option is only set if
691
  MAKEOPTS 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
696
  emerge commands to be run across several machines to upgrade packages
697
  only 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
702
  in config.log, CMakeError.log, and meson-log.txt. ebuilds can add functions to
703
  the QA_CONFIG_IMPL_DECL_SKIP array to skip false positives.
704

705
  The 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

714
Bug 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
730
  report 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

736
portage-3.0.44 (2023-01-15)
737
--------------
738

739
Features:
740
* emerge: Show time taken to calculate dependency resolution with
741
  emerge --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

747
Bug fixes:
748
* ebuild: the PATH variable exported to ebuilds has been changed:
749
  The PATH setting from /etc/profile.env is appended to portage-internal
750
  paths, 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

756
portage-3.0.43 (2023-01-02)
757
--------------
758

759
Bug 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
763
  performance (bug #885909).
764

765
  This only takes effect with OpenSSL 3 and newer (unnecessary otherwise).
766

767
  Whirlpool is considered deprecated within Portage and we recommend that
768
  repository 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
773
  and not confuse shells (bug #887817).
774

775
* bin: Pass -S to file(1) to avoid seccomp sandbox issues (bug #811462, bug #889046).
776

777
  Files being installed by Portage are generally trusted but also the
778
  syscalls allowed by file are quite broad anyway.
779

780
  Things can go catastrophically wrong if file misses valid input,
781
  as we may have invalid VDB metadata.
782

783
portage-3.0.42 (2022-12-26)
784
--------------
785

786
Breaking changes:
787
* Portage changed its git sync behaviour for repositories with sync-type=git.
788

789
  Recently in Portage 3.0.39 (for sync depth) and Portage 3.0.40 (git reset/clobbering),
790
  Portage started doing two things:
791

792
  1. Clobbering changes to repositories with sync-type=git
793

794
  If git is pulling from a CDN, Portage may on one sync receive state X, but
795
  on a subsequent sync receive state X-1. This can cause an odd state
796
  where git wants to resolve conflicts and manual intervention is required,
797
  hence needing git reset.
798

799
  This situation was often worse with sync-depth=1 and would lead
800
  to orphaned files hence needing git clean.
801

802
  2. Defaulted to sync-depth=clone-depth=1.
803

804
  The motivation here was because of disk space growing unbounded
805
  otherwise, as a full disk could lead to sync failure. It also makes sense
806
  when considered within the school of thought / motivation listed above
807
  (prioritising a successful sync and then making an optimisation
808
  based on how we achieve that).
809

810
  Portage 3.0.42 will now only make a repository shallow if:
811
  1. volatile=yes and it is a new sync (i.e. it was not deep before), or
812
  2. volatile=no  and sync-depth is unset in repos.conf.
813

814
  --
815

816
  To allow users to opt-out of these destructive changes, we now
817
  have a repository setting called 'volatile'.
818

819
  * If volatile=yes, the repository is assumed to be user-modifiable
820
    and Portage will NOT prioritise successful sync over preserving
821
    repository state.
822

823
  * If volatile=no, the repository is assumed to only be modified
824
    by Portage, and Portage will try its best to ensure syncs continue
825
    to work.
826

827
  The 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
830
    assumes full control over the repository, potentially performing
831
    destructive changes to the repository.
832
  - If the repository is not under /var/db/repos or owned by a different
833
    user than 'portage' or 'root', then it defaults to 'yes'. That is,
834
    portage assumes the repository is user owned and does *not* perform
835
    any destructive changes.
836

837
Features:
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
841
  sync working and the repository in a predictable state for sync-type=git
842
  repositories if the repository is not marked volatile.
843

844
* sync: git: only perform shallow updates if the repository is a shallow one
845
  or if the repository is not marked volatile.
846

847
* sync: git: run 'git clean' in git repositories if they are marked as
848
  non-volatile.
849

850
Bug 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
859
  for binary packages.
860

861
* logging: Write logs under BROOT, not EPREFIX.
862

863
portage-3.0.41 (2022-11-04)
864
--------------
865

866
Features:
867
* vartree: On collisions which are non-fatal (e.g. orphaned files when using
868
  FEATURES="protect-owned"), Portage now has friendlier output
869
  by using ewarn rather than eerror.
870

871
* cleanups: Use pyupgrade on the codebase (up to Python 3.8) to use newer
872
  idioms.
873

874
Bug fixes:
875
* Fixed possible corruption of GPKG multi-instance binary packages on upgrade.
876
  Bug #877271.
877

878
portage-3.0.40 (2022-12-01)
879
--------------
880

881
Features:
882
* Optimize _slot_operator_check_reverse_dependencies by caching using
883
  lru_cache. In a ChromeOS use case, this patch decreases the running time from
884
  311s 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
887
  supporting sets.conf in ebuild repositories.
888

889
* sets: Tests added for VariableSet changes to check @golang-rebuild works as
890
  intended.
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.
897
  This is only expected to be used for cross-bootstrapping a new system from
898
  scratch using a crossdev environment under /usr/${CHOST}.
899

900
Bug 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
903
  working ebuilds. Future EAPIs will need to adjust the logic
904
  added by this change. See bug #881383.
905

906
* sync: Clobber repositories using sync-type=git to match rsync behavior. This
907
  helps with issues where git-synced repositories can become confused
908
  if the remote is a CDN and then starts to diverge, preventing further
909
  syncs.
910

911
* portage: sets: Fix DeprecationWarning in sets.
912

913
* install-qa-check.d: 90gcc-warnings: Disable -Wimplicit-function-declaration being
914
  fatal for now. The number of failures in bug #870412 is too large for the time
915
  being.
916

917
* Fix definition of ESYSROOT to use SYSROOT's prefix. For a given location, we
918
  were basing ESYSROOT on the prefix of that location instead of the prefix used
919
  by the SYSROOT location. For example, if BROOT=/foo, ROOT=/bar, EPREFIX=/baz,
920
  EROOT=/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
923
  in different ways, but one example was a rebuild in / causing the same package
924
  to 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.
932
  This 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

935
portage-3.0.39 (2022-11-20)
936
--------------
937

938
Features:
939
* gpkg: Call xz and zstd with -T N where N is the number of jobs from ${MAKEOPTS}
940
  for parallel compression (xz & zstd) and decompression (xz with newer versions).
941

942
* gpkg: Add per format compression flags for binpkgs. This adds new config
943
  options BINPKG_COMPRESS_FLAGS_[format] to be used for different compression
944
  methods. General BINPKG_COMPRESS_FLAGS will be ignored if current method had
945
  specified 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
951
  which 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.
969
    In future, we may warn on all -Wformat (in particular because of e.g.
970
    time_t & LFS).
971

972
* install-qa-check.d: 90gcc-warnings: Always die on -Wimplicit-function-declaration
973
  and remove bin/check-implicit-pointer-usage.py of dubious licencing (it was
974
  broken since GCC 4.5 because of output changes anyway, bug #365655).
975

976
  -Wimplicit-function-declaration becomes an error in Clang 16 onwards and
977
  GCC 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

982
Bug fixes:
983
* binpkg: Deprecate BINPKG_FORMAT in the binpkg manifest ('Packages') because
984
  it 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
988
  and 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
994
  used 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"
1001
  messages.
1002

1003
* ecompress, etc: Pass --memlimit-compress=50% to xz to avoid breakage
1004
  on 32-bit systems with large -Tn. Required for < xz-5.3.3_alpha and
1005
  has an equivalent effect to the limiting that comes with newer xz versions.
1006
  We don't need it for decompression as it's there by default in newer xz
1007
  and it's a no-op in older xz.
1008

1009
* emerge(1), make.conf(5), xpak(5): document BINPKG_FORMAT and the gpkg binary
1010
  packate format further.
1011

1012
* sync: git: Fix sync printing local repo path (bug #875812)
1013

1014
portage-3.0.38.1 (2022-10-04)
1015
----------------
1016

1017
Bug fixes:
1018
* ecompress: Fix typo in ___makeopts_jobs (bug #874597).
1019

1020
portage-3.0.38 (2022-10-01)
1021
--------------
1022

1023
Features:
1024
* unpack now calls xz(1) with -T N where N is the number of jobs from ${MAKEOPTS}.
1025
  This allows decompression in parallel with new enough xz (>= xz-utils 5.3.3 alpha)
1026
  and 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
1030
  checking for dependencies. Update @golang-rebuild accordingly which now
1031
  includes 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}
1036
  to xz, zstd for parallel compression.
1037

1038
* bin: ecompress: xz: Pass -9 to xz for compression level like we do for bzip2 & gzip.
1039

1040
Bug fixes:
1041
* emerge: Scheduler: Fix filenames for binpkgs in some cases - reuse existing
1042
  filename 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
1051
  instead of 1 to match Portage's behavior on the Python side.
1052

1053
* bin: ecompress: Recognize .lz, .lzo, .lz4, and .zst as compressed file
1054
  suffixes for the purposes of the internal compressed file collision check.
1055

1056
* bin: ecompress: zstd: Set '-q --rm' in PORTAGE_COMPRESS_FLAGS to behave
1057
  like other compressors.
1058

1059
* portage: _global_updates: Fix update summary output.
1060

1061
portage-3.0.37 (2022-09-23)
1062
--------------
1063

1064
Bug fixes:
1065
* _emerge: SpawnProcess: Avoid sandbox violations with PROPERTIES="interactive"
1066
  when 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

1079
portage-3.0.36 (2022-09-09)
1080
--------------
1081

1082
Bug fixes:
1083
* The layout of gpkg (new binpkg format) packages has been fixed (bug #865905).
1084

1085
* Fix getbinpkg fetching (bug #864160).
1086

1087
portage-3.0.35 (2022-08-23)
1088
--------------
1089

1090
Features:
1091
* Portage can now set scheduling policies using the PORTAGE_SCHEDULING_POLICY
1092
  and PORTAGE_SCHEDULING_PRIORITY variables. See make.conf.example for details.
1093

1094
  See also https://wiki.gentoo.org/wiki/Portage_niceness.
1095

1096
* The header of build.log now contains the package's slot (bug #864382).
1097

1098
Bug fixes:
1099
* xml: Fix XML node parsing (resulted in duplicate USE flag descriptions
1100
  in gentoolkit, bug 858791). This code is thought to have only one
1101
  consumer (gentoolkit, and only as of its most recent releases), so
1102
  impact is not severe.
1103

1104
* portage: dbapi: porttree: fix _set_porttrees() to operate correctly if passed
1105
  a generator. Fixes e.g. blank emerge --metadata caches in /var/cache/edb
1106
  which affected eix (bug #865635). Regression from 3.0.31.
1107

1108
* logging: don't clutter with a global logger and instead scope to
1109
  each 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
1121
  field 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
1130
  the .pc file (improves the QA warning output), and hint to the user/developer
1131
  about 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
1136
  comparison checks to avoid warning if the Version field in the .pc file
1137
  is 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
1142
  of absolute paths in /usr/bin.
1143

1144
* install-qa-checks.d: 90gcc-warnings: add arm64, aarch64 (used by Apple),
1145
  loongarch64, riscv64, s390x to list of 64-bit arches which affects the
1146
  severity 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
1157
  INSTALL_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
1164
  multiprocessing.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
1172
  files at once (bug #672916).
1173

1174
portage-3.0.34 (2022-07-20)
1175
--------------
1176

1177
Bug 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

1184
portage-3.0.33 (2022-07-18)
1185
--------------
1186

1187
Bug fixes:
1188
* env-update: Handle BROOT vs ROOT distinction for PATH (and other
1189
  variables like PREROOTPATH and ROOTPATH). The issue being that
1190
  only some variables are relevant for execution (and hence need
1191
  to be derived from BROOT), while others need to correspond to
1192
  EROOT for e.g. library paths. This should help with Clang
1193
  stage building.
1194

1195
* Build: Fix test suite file data processing (copying of .gnupg data
1196
  for 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,
1199
  started to show on every emerge, but is harmless and left over
1200
  from 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
1205
  in 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,
1218
  add --with-sysroot for EAPI 7, add --datarootdir and --disable-static for EAPI
1219
  8.
1220

1221
* ebuild(5): econf: drop --disable-dependency-tracking from "example"
1222
  because it's confusing (implies it was always added, even before EAPI 4).
1223

1224
* ebuild(5): modernize examples slightly.
1225

1226
portage-3.0.32 (2022-07-11)
1227
--------------
1228

1229
Bug 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,
1235
  which caused failures with gentoolkit. See bug #857537. (Note that this
1236
  was not originally in the release notes for 3.0.32, but the fix was in
1237
  3.0.32).
1238

1239
* Fix doc generation by removing reference to removed EAPIs. See bug #857486.
1240

1241
portage-3.0.31 (2022-07-10)
1242
--------------
1243

1244
Breaking changes:
1245
* repoman support dropped. Please migrate to pkgcheck. See bug 835013.
1246

1247
* Remove support for never-official EAPIs: "4-python", "5-progress".
1248
  Further 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.
1251
  The minimum version of Python for Portage is now Python 3.7.
1252

1253
Features:
1254
* GLEP 78 "gpkg" binary package format support, including the ability to sign
1255
  binpkgs! See bug 500630, bug 659864, bug 672672, bug 773259, bug 820578.
1256

1257
  This is still somewhat experimental!
1258

1259
  To try it out:
1260
  - set BINPKG_FORMAT="gpkg" in make.conf;
1261

1262
  - optionally, set FEATURES="binpkg-signing binpkg-request-signature", and so on.
1263
    See 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
1272
  aren't depcleaned. See bug 851750.
1273

1274
* estrip: Optimize calls (avoid duplicate call) by using previously
1275
  collected scanelf data. See bug 749624
1276

1277
* autoclean: Optimize unmerges by only enabling autoclean for global
1278
  updates and/or depcleans. This avoids needing to iterate over all
1279
  installed packages after each individual removal.
1280

1281
* vartree: Optimize by skipping `env-update` call (which is expensive, as
1282
  it ends up calling `ldconfig` to regenerate ld.so.cache) if no files
1283
  were installed (e.g. virtual/).
1284

1285
* vartree: Optimize by avoiding VDB lock contention (avoid taking
1286
  lock if no blockers).
1287

1288
* QA: warn if 'eend' is called without a corresponding 'ebegin',
1289
  and vice-versa: if 'ebegin' is called without a corresponding 'eend'.
1290
  See 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
1297
    this using QA_PKGCONFIG_VERSION.
1298

1299
* QA: install-qa-check.d: Update 20runtime-directories to warn on /var/tmp
1300
  usage 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

1308
Bug fixes:
1309
* Disable SONAME dependencies by default again (i.e. set --ignore-soname-deps=y
1310
  to default on). See bug 687956 and bug 829623.
1311

1312
  This was done because of problems caused with depcleans.
1313

1314
* git: Mark repository as safe for newer versions of git (>= git-2.35.2).
1315
  See bug 838223 and bug 838271.
1316

1317
* dosym: Fix EAPI check for '-r' (relative) flag. It would previously allow
1318
  using 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
1325
  when no libraries were installed. This used to work in the past, so is viewed
1326
  as a bug fix, rather than an optimization, although it's a bit of both.
1327
  See bug 836375.
1328

1329
* MiscFunctionsProcess: Avoid clobbering the main sandbox.log if a "die hook"
1330
  is 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
1333
  to workaround/fix (depending on your perspective) the issues in packages
1334
  themselves, given only one package was actually at fault here: bug 832853.
1335

1336
* movefile: Merge symlinks atomically. This should reduce the risk of build
1337
  failures during parallel builds (multiple emerge jobs). See bug 836400.
1338

1339
* Improve error message when Bash version is too old for an ebuild
1340
  to 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
1345
  blockers for gentoo-kernel. See bug 833014.
1346

1347
* QA: install-qa-check.d: update 95empty-dirs to mention Portage behavior
1348
  change for EAPI 8+.
1349

1350
* QA: install-qa-check.d: Fix usage of obsolete 'egrep' and 'fgrep' which
1351
  now 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
1356
  OpenSSL 3. This wasn't noticed before as previously, OpenSSL exposed its
1357
  Whirlpool implementation by default, whereas it's now marked as legacy.
1358
  See bug 846389.
1359

1360
* socks5-server: Fix Python 3.10 DeprecationWarning. See bug 794115.
1361

1362
* portage.eapi: Include workaround for consumers with misconfigured
1363
  logger to avoid needing a newer gentoolkit. See bug 838406.
1364

1365
* CI: Run 'black' on remaining files missed in the previous conversion and fix
1366
  CI 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
1373
  the number of jobs in make.conf(5).
1374

1375
* dispatch-conf: fix description of 'frozen-files' format in dispatch-conf.conf
1376
  man page. See bug 830618.
1377

1378
portage-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

1383
portage-3.0.29
1384
--------------
1385
* check for inconsistent/missing PROVIDES during package (and binpkg)
1386
  installation. 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:
1390
  FEATURES="binpkg-live" and --usepkg-exclude-live.
1391
* add emphasis in output to user patches being applied.
1392

1393
portage-3.0.27
1394
--------------
1395
* improve blocker output to make it clear which blockers
1396
  are not satisfied.
1397
* use distinct colors for einfo/elog and ewarn/eqawarn.
1398

1399
portage-3.0.26
1400
--------------
1401
* fix broken FILESDIR copying logic.
1402

1403
portage-3.0.25 (yanked)
1404
-----------------------
1405
* fix Python < 3.8 compatibility of FILESDIR copying code.
1406

1407
portage-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

1416
portage-3.0.23
1417
--------------
1418
* enable autogroup scheduling with pid-sandbox if possible. This should
1419
  make 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

1425
portage-3.0.22
1426
--------------
1427
* USE flags are now sorted with respect to numerical segments in emerge
1428
  output (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
1431
  with gcc-11.
1432
* sdist archives built using "build" now include setup.py.
1433

1434
portage-3.0.21
1435
--------------
1436
* EAPI 8 fixups.
1437

1438
portage-3.0.20
1439
--------------
1440
* Finalize EAPI 8.
1441

1442
portage-3.0.19
1443
--------------
1444
* Enable EAPI 8.
1445

1446
portage-3.0.18
1447
--------------
1448
* profile-repo-deps is supported in layout.conf profile-formats.
1449

1450
portage-3.0.16
1451
--------------
1452
* emirrordist supports the content-hash distfiles mirror layout.
1453

1454
portage-3.0.15
1455
--------------
1456
* FEATURES=binpkg-multi-instance is now enabled by default.
1457

1458
portage-3.0.13
1459
--------------
1460
* FETCHCOMMAND now supports a \${DIGESTS} placeholder which expands
1461
  to a space separated list of digests. Refer to the FETCHCOMMAND
1462
  documentation in the make.conf(5) man page.
1463

1464
portage-3.0.6
1465
--------------
1466
* emerge --search now detects regular expressions automatically. This
1467
  behavior is controlled by the --regex-search-auto option.
1468
* make.conf now treats variable names that begin with two underscores
1469
  as local variables which are not displayed by emerge --info --verbose.
1470
* egencache --update-pkg-desc now has a --verbose option which causes
1471
  it to emulate esync --verbose output.
1472
* env-update now generates a systemd user-session environment in a file
1473
  named /etc/environment.d/10-gentoo-env.conf.
1474
* binrepos.conf is a new configuration file that acts as a substitute
1475
  for the PORTAGE_BINHOST variable, and allows each repository to have
1476
  a separate FETCHCOMMAND which can be used to customize authentication.
1477
  This file is documented in the portage(5) man page.
1478

1479
portage-3.0.0
1480
--------------
1481
* Dropped support for Python 2.x.
1482

1483
portage-2.3.101
1484
--------------
1485
* The new PORTAGE_LOG_FILTER_FILE_CMD make.conf(5) variable specifies a
1486
  command that filters build log output to a log file. In order to
1487
  filter ANSI escape codes from build logs, ansifilter(1) is a
1488
  convenient setting for this variable.
1489

1490
portage-2.3.100
1491
--------------
1492
* New BINPKG_COMPRESS=zstd default (does not apply to installed systems
1493
  using the old bzip2 default).
1494

1495
portage-2.3.97
1496
--------------
1497
* Support for the PORTAGE_LOG_FILTER_FILE_CMD variable has been
1498
  temporarily removed due to bug 716636.
1499

1500
portage-2.3.90
1501
--------------
1502
* The new PORTAGE_LOG_FILTER_FILE_CMD make.conf(5) variable specifies a
1503
  command that filters build log output to a log file. In order to
1504
  filter ANSI escape codes from build logs, ansifilter(1) is a
1505
  convenient setting for this variable.
1506

1507
portage-2.3.80
1508
--------------
1509
* The emerge --quickpkg-direct option enables use of installed packages
1510
  directly as binary packages. It can be used to create minimal runtime
1511
  container images (which need not include a package manager), or to
1512
  enable a live image to act as a binary installer that uses packages
1513
  installed in the live image as a source of binary packages. This
1514
  option is especially useful in combination with --usepkgonly and
1515
  --ignore-soname-deps=n options, allowing implicit system dependencies
1516
  such as libc to be automatically accounted for.
1517

1518
portage-2.3.77
1519
--------------
1520
* The emerge --autounmask option is now disabled by default, except for
1521
  portions of behavior which are controlled by the --autounmask-use and
1522
  --autounmask-license options. For backward compatibility, previous
1523
  behavior of --autounmask=y and --autounmask=n is entirely preserved.
1524
  Users can get the old behavior simply by adding --autounmask to the
1525
  make.conf EMERGE_DEFAULT_OPTS variable.
1526

1527
portage-2.3.72
1528
--------------
1529
* The glsa-check program is now provided by portage, and it has been
1530
  removed from gentoolkit. See bug 463952.
1531

1532
portage-2.3.70
1533
--------------
1534
* The @live-rebuild package set now searches for PROPERTIES=live, see
1535
  bug 233589. The @deprecated-live-rebuild package set provides the
1536
  old behavior which was based on inherited eclasses.
1537

1538
portage-2.3.64
1539
--------------
1540
* New (council approved) default locations for the Gentoo repository,
1541
  distfiles, and binary packages (does not apply to installed systems
1542
  using 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

1547
portage-2.3.53
1548
--------------
1549
* Renamed PORT_LOGDIR and PORT_LOGDIR_CLEAN variables to
1550
  PORTAGE_LOGDIR and PORTAGE_LOGDIR_CLEAN to match other existing
1551
  similar variables
1552
* Enable FEATURES={ipc,network,pid}-sandbox by default
1553

1554
portage-2.3.42
1555
----------------
1556
* Sync with rsync quarantines data prior to verification, using the
1557
  rsync --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
1560
  https://wiki.gentoo.org/wiki/Portage_Security#git-mirror_repo.
1561
* Sync with shallow git pull is supported, by "setting sync-depth = 1"
1562
  in repos.conf.
1563

1564
portage-2.3.32
1565
----------------
1566
* EAPI 7 support.
1567

1568
portage-2.3.29
1569
----------------
1570
* Portage API consumers can use asyncio with portage's internal event
1571
  loop, see portage.util.futures.unix_events.DefaultEventLoopPolicy.
1572

1573
portage-2.3.25
1574
----------------
1575
* Experimental support for EAPI 7_pre1.
1576

1577
portage-2.3.20
1578
----------------
1579
* Support RESTRICT=network-sandbox in ebuilds.
1580

1581
portage-2.3.17
1582
----------------
1583
* The doins ebuild helper has been rewritten in python for performance, and
1584
  it does in-kernel file copying on Linux.
1585

1586
portage-2.3.14
1587
----------------
1588
* Repository metadata/layout.conf supports manifest-required-hashes
1589
  attribute (default value is SHA512).
1590

1591
portage-2.3.12
1592
----------------
1593
* better_cache implemented to use less expensive os.listdir() instead of
1594
  os.stat() operations to scan for ebuilds. Avoids exhaustively scanning
1595
  overlays for all ebuilds which allows Portage to not slow down significantly
1596
  with lots of overlays enabled. (Daniel Robbins)
1597

1598
portage-2.3.7
1599
-----------------
1600
* eapply_user combines patch basenames from all matched directories into a
1601
  list, and applies them in POSIX sorted order. This allows patches in
1602
  more-specific directories to override patches of the same basename found
1603
  in less-specific directories. An empty patch (or /dev/null symlink) negates
1604
  a patch with the same basename found in a less-specific directory.
1605
* FEATURES=multilib-strict no longer recurses into subdirectories, in order
1606
  to avoid false-positives. The MULTILIB_STRICT_EXEMPT variable only served
1607
  to filter false-positives that were triggered by recursion, so it will no
1608
  longer be needed.
1609
* New emerge --autounmask-keep-keywords and --onlydeps-with-rdeps=<y|n>
1610
  options.
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

1615
portage-2.3.5
1616
-----------------
1617
* Numerous patches updating checksums code and python module imports for them
1618
  including new checksum methods
1619
* New linux in kernel movefile support via a new "C" extension module
1620

1621

1622
portage-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,
1627
                  given performance issues introduced by `git update-index`
1628
                  and `git prune` (see bug 599008).
1629
                 )
1630

1631

1632
portage-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

1638
portage-2.3.0
1639
-----------------
1640
* Final release
1641
* Includes numerous bugfixes
1642

1643
portage-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

1649
portage-2.2.26
1650
--------------
1651
* EAPI 6 stable portage release
1652

1653

1654
portage-2.2.25
1655
--------------
1656
* EAPI 6 final fully implemented.
1657

1658

1659
portage-2.2.22
1660
-------------
1661
* Stage 1 of the repoman re-write code merged in to master branch
1662
  This is the first release of the new code base.
1663

1664

1665
portage-2.2.19
1666
-------------
1667
* The squashdelta sync module was removed for separate installation
1668
  and development work
1669

1670

1671
portage-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
1675
  requires 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

1680
portage-2.2.16
1681
-------------
1682
* New portage plug-in sync system.
1683
    Read the news anouncement for more details of the changes in config
1684
    settings 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

1691
portage-2.2.14
1692
-------------
1693
* Remaining bugs in build/install system should be fixed.
1694

1695

1696
portge-2.2.14_rc1
1697
-------------
1698
* Many new build/installation system errors fixed.
1699

1700

1701
portage-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,
1705
    you need to query PORTAGE_BIN_PATH and PORTAGE_PYM_PATH, use them
1706
    and re-export them.
1707
* New @changed-deps set to update packages which need dependecy change updates.
1708

1709

1710
portage-2.2.12
1711
-------------
1712
* New emaint module "merges"  for finding and fixing failed merges
1713
  If a pkg fails to merge to the live filesystem correctly, that pkg may
1714
  not work correctly if at all.  This module scans the installed pkg database
1715
  for those failures and can re-emerge those packages.
1716

1717
portage-2.2.1
1718
-------------
1719

1720
* Add cgroups, ipc-sandbox, and network-sandbox FEATURES.
1721

1722
portage-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

1728
portage-2.1.11.20
1729
-------------
1730
* Add support for EAPI 5. Refer to the PMS EAPI Cheat Sheet, portage's html
1731
  docs 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
1733
  sonames change during upgrade or downgrade, and the @preserved-rebuild
1734
  package set which rebuilds consumers of preserved libraries.
1735
* Add link level dependency awareness to emerge --depclean and --prune actions
1736
  in order to protect against uninstallation of required libraries. Refer to
1737
  the --depclean-lib-check option in the emerge(1) man page.
1738

1739
portage-2.1.11
1740
-------------
1741

1742
* Add support for experimental EAPI "4-slot-abi". Refer to the corresponding
1743
  html documentation that is installed with USE=doc, and also to the emerge(1)
1744
  man page for information about the related --ignore-built-slot-operator-deps and
1745
  --rebuild-if-new-slot options.
1746

1747
portage-2.1.10
1748
-------------
1749

1750
* Improve handling of repositories/overlays for cases in which the same ebuild
1751
  is provided by multiple repositories but with different masking status, and
1752
  support for repository constraints on atoms (atom::repo) in configuration
1753
  files.
1754
* Add emerge --rebuild-if-* options that trigger rebuilds of reverse
1755
  dependencies when packages are rebuilt or updated. Related --rebuild-exclude
1756
  and --rebuild-ignore options can be used to avoid rebuilds for specific
1757
  packages.
1758
* Add emerge --reinstall-atoms, --useoldpkg-atoms, and --usepkg-exclude options
1759
  which can be used to alter selection rules for specific packages.
1760
* Add FEATURES=parallel-install and ebuild-locks, allowing for greater
1761
  parallelization when installing packages (by using finer-grained locks).
1762

1763
portage-2.1.9.27
1764
-------------
1765

1766
* Add support for EAPI 4. Refer to the PMS EAPI Cheat Sheet, portage's html
1767
  docs installed with USE=doc, or `man 5 ebuild` for more info about EAPI 4.
1768
  Bug #273620 tracks EAPI 4 implementation in portage.
1769

1770
portage-2.1.9
1771
-------------
1772

1773
* There is a new ipc (inter-process communication) USE flag which is enabled
1774
  by default. This allows portage to communicate with running ebuild processes,
1775
  for things like best_version, has_version, and die calls in nested processes.
1776
  This flag should remain enabled unless it is found to be incompatible with a
1777
  specific profile or environment. When enabled, it fixes bug #278895,
1778
  bug #315615, and makes subshell die support more robust (so that repoman's
1779
  ebuild.nesteddie check is irrelevant).
1780

1781
portage-2.1.8
1782
-------------
1783
* The top-level __init__.py for the portage python package has been split into
1784
  many smaller python modules, making the code easier to navigate and allowing
1785
  small parts of the portage api to be imported with less overhead.
1786

1787
portage-2.1.7.17
1788
-------------
1789
* Add support for EAPI 3. This adds support for installation prefix, including
1790
  new EPREFIX, ED, and EROOT variables which are used by econf and einstall
1791
  helpers. Also, EAPI 3 adds xz extension support to the unpack helper.
1792

1793
portage-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
1799
  interactive updates.
1800
* Add support for Python 3.0. At least Python 2.6 is now required in order to
1801
  support the new syntax which is used by Python 3.0.
1802

1803
portage-2.1.6
1804
-------------
1805

1806
* Add support for a new EAPI="2" value. For more information about new EAPI
1807
  features, refer to the "Ebuild" chapter of the html documentation that is
1808
  installed with portage.
1809
* Add PORTAGE_IONICE_COMMAND setting for make.conf which is called to adjust
1810
  IO priority on portage and it's subprocesses.
1811
* Add emerge --jobs and --load-average options which specify behavior
1812
  for building packages in parallel or for generating metadata in parallel
1813
  with emerge --regen.
1814
* Add emerge --keep-going option to continue as much as possible after
1815
  an error. When an error occurs, dependencies are recalculated for
1816
  remaining packages and any with unsatisfied dependencies are
1817
  automatically dropped. The --skipfirst option automatically drops
1818
  packages 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
1821
  installed a particular file. Package contents entries are indexed to
1822
  improve performance. A command such as `emerge /lib/modules` can serve
1823
  as a decent substitute for module-rebuild.
1824
* Namespace sanitizing: move all portage related code into portage.* namespace,
1825
  rename 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
1828
  feature except that files may be overwritten if they are not explicitly
1829
  listed in the contents of a currently installed package.
1830

1831
portage-2.1.5
1832
-------------
1833

1834
* For extra careful dependency handling, emerge has a new --complete-graph
1835
  option that causes it to consider the deep dependencies of all packages from
1836
  the system and world sets. With this option enabled, emerge will bail out
1837
  if it determines that the given operation will break any dependencies of
1838
  the packages that have been added to the graph. Unlike the --deep option,
1839
  the --complete-graph option does not cause any more packages to be updated
1840
  than would have otherwise been updated with the option disabled.
1841
* Blockers are now resolved automatically in many more cases
1842
  than before.  When it's safe, blocked packages are uninstalled
1843
  automatically so that users are no longer inconvenienced with the
1844
  task. Automatically uninstalled packages are displayed in the merge
1845
  list, marked "uninstall" and highlighted in red. With the --tree
1846
  option enabled, it's possible to see which package(s) caused other
1847
  ones to be automatically uninstalled.
1848
* The dependency resolver now has a feedback mechanism that helps make atom
1849
  selections more consistent with previous selections that have been added to
1850
  the graph. This solves some common cases of bug #1343.
1851

1852
portage-2.1.4
1853
-------------
1854

1855
* After the initial setup phase, the original ebuild and eclasses are no
1856
  longer needed because the same ebuild environment is reused for the
1857
  entire lifecycle of the package, including uninstallation.
1858
* The emerge --search action supports searching of both installed and binary packages
1859
  The --usepkg and --usepkgonly options control which repositories are searched.
1860

1861
portage-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
1868
  all of the corresponding flags that are listed in IUSE for a given package.
1869
  USE_EXPAND wildcards such as linguas_* are supported in USE and package.use.
1870
* The merge process preserves the modification timestamp of files that it
1871
  installs. The unmerge process will not uninstall files that are claimed by
1872
  another package in the same slot.
1873
* PDEPEND is now installed as soon as possible so that it behaves more like
1874
  RDEPEND.  This makes PDEPEND more useful for breaking the dependency cycles
1875
  that 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
1878
  keywords list), also see RELEASE-NOTES.
1879
* Make elog functionality available to python code
1880

1881
portage-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
1886
  bootstrap.
1887
* Profiles support multiple inheritance and package.use.
1888
* CONFIG_PROTECT and CONFIG_PROTECT_MASK both support files (not just
1889
  directories).
1890
* Collision protection handles symlinks properly.
1891
* Dependencies can be satisfied by installed packages that do not have matching
1892
  ebuilds 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
1895
  installed packages will always be respected.
1896
* Emerge builds a complete dependency graph in order to ensure correct merge
1897
  order 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
1903
  shutdown (like dispatching collected messages).
1904
* New elog modules mail_summary and save_summary that act like the mail/save
1905
  modules except that they merge messages from multiple packages in a single
1906
  file/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

1912
portage-2.1.1
1913
-------------
1914

1915
* Profiles support use.force, package.use.force, and package.use.mask files.
1916

1917
portage-2.1 (ongoing via pre releases)
1918
------------
1919

1920
* FEATURES="confcache" integration; global caching to speed up configure calls,
1921
  requires dev-util/confcache
1922
* elog framework and accompanying modules for logging ebuild warnings, errors
1923
  and 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'
1926
  version 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
1929
  register functions to be called for better debugging on errors.
1930
* Addition of pre and post user hookable functions for each ebuild phase, accessible
1931
  via 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
1945
  access 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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.