Linux - Reddit – Telegram
Linux - Reddit
754 subscribers
4.17K photos
207 videos
39.8K links
Stay up-to-date with everything Linux!
Content directly fetched from the subreddit just for you.

Powered by : @r_channels
Download Telegram
Possibly the most negative update size I've ever gotten. How does this even happen???
https://redd.it/1no9d1e
@r_linux
RPM 6 released!

Source: https://rpm.org/releases/6.0.0

# Download

Source: [rpm-6.0.0.tar.bz2](https://ftp.osuosl.org/pub/rpm/releases/rpm-6.0.x/rpm-6.0.0.tar.bz2)
SHA256SUM: 14abb1b944476788d90005d8d61d5d30fce80d9f0de11eb657b14e5c9ef27441

# Changes since 4.20.1

# Overview

Support for both RPM v4 and v6 packages (see [Compatibility Notes](https://rpm.org/releases/6.0.0#compatibility-notes))
Support for multiple OpenPGP signatures per package (\#3385)
Support for OpenPGP v6 and PQC keys and signatures ([\#3363](https://github.com/rpm-software-management/rpm/issues/3363))
Support for updating previously imported keys (\#2577)
Support for installing RPM v3 packages has been removed ([\#1107](https://github.com/rpm-software-management/rpm/issues/1107))
RPM defaults to enforcing signature checking (\#1573)
RPM uses the full key ID or fingerprint to identify OpenPGP keys everywhere ([\#2403](https://github.com/rpm-software-management/rpm/issues/2403))
Man page and other documentation overhaul (#3612, #3669, #3751)
Pristine and verifiable release tarballs ([\#3565](https://github.com/rpm-software-management/rpm/issues/3565)) ([\#2702](https://github.com/rpm-software-management/rpm/issues/2702))

# General Use

Several enhancements to rpmkeys(8):
`rpmkeys --import` can now be used to update keys ([\#2577](https://github.com/rpm-software-management/rpm/issues/2577)). This also updates the key handle from a short ambiguous key id to full fingerprint.
rpmkeys --import now also works from a pipe
`rpmkeys --export` added for exporting keys
rpmkeys --checksig, --list, --delete use and expect full fingerprint of the keys (\#3360)
`rpmkeys` works identically with all keystore backends
rpmkeys --rebuild can be used to rebuild the keystore contents and move between different keystore backends (\#3347)
`rpmkeys` key lookup is now case-insensitive
Several enhancements to rpmsign(1):
`rpmsign` can use either GnuPG or Sequoia-sq for signing (controlled by `%_openpgp_sign` macro (`gpg` or `sq`))
rpmsign --addsign no longer replaces existing signatures. Arbitrary number of signatures can be added on v6 packages by default and on v4 packages, with --rpmv6
`rpmsign --resign` replaces all existing signatures with a new one
New query tag extensions (e.g. with --qf <format>):
`rpmformat` for determining package format version (3/4/6)
openpgp for managing all supported OpenPGP signature types
New query formatter `:hashalgo` for displaying hash algorithm names
New --filemime query alias for querying per-file MIME info
Consistent terminology and case usage in signature and key messages
OpenPGP signatures are called OpenPGP in output
RPM v3 header+payload signatures are called “legacy” in output
New feature to calculate a set of configurable digests on verification and safe them in the rpmdb. This can help identifying the originating package file. (RHEL-35619)
Fix noscriptlet errors not reflected in transaction result code ([\#2581](https://github.com/rpm-software-management/rpm/issues/2581))
Fix %triggerprein and %triggerun not failing the associated install/erase operation (\#3815)
Fix `--hash`, `--percent` and `--test` not working with `--restore` ([\#3917](https://github.com/rpm-software-management/rpm/issues/3917))
Fix a segfault and memory leaks in rpmgraph(1)
(\#3925)
Fix [rpm2archive(1)](https://rpm-software-management.github.io/rpm/man/rpm2archive.1) using the same suffix for tar and cpio ([\#3922](https://github.com/rpm-software-management/rpm/issues/3922))
Man page overhaul (WIP):
Update all manual pages to a new consistent style with examples ([\#3669](https://github.com/rpm-software-management/rpm/issues/3669))
Add man pages for all major components and file formats (\#3612)
[rpm-config(5)](https://rpm-software-management.github.io/rpm/man/rpm-config.5)
rpm-rpmrc(5)
[rpm-macrofile(5)](https://rpm-software-management.github.io/rpm/man/rpm-macrofile.5)
rpm-manifest(5)
[rpm-lua(7)](https://rpm-software-management.github.io/rpm/man/rpm-lua.7)
rpm-macros(7)
[rpm-payloadflags(7)](https://rpm-software-management.github.io/rpm/man/rpm-payloadflags.7)
rpm-queryformat(7)
[rpm-version(7)](https://rpm-software-management.github.io/rpm/man/rpm-version.7)
rpmuncompress(1)
Move end-user commands to section 1
Many previously undocumented things covered, many errors fixed
Versioned documentation on [https://rpm.org/docs/](https://rpm.org/docs/)
Man pages
Reference manual
API docs

# Packaging

[rpmbuild(1)](https://rpm-software-management.github.io/rpm/man/rpmbuild.1) now supports generating two different package formats, controlled by `%_rpmformat` macro value `6`/`4`:
RPM v6
[RPM v4](https://rpm-software-management.github.io/rpm/manual/format_v4.html)
rpmbuild(1) can now automatically sign packages if %_openpgp_autosign_id macro is defined (\#2678)
New command [rpm-setup-autosign(1)](https://rpm-software-management.github.io/rpm/man/rpm-setup-autosign.1) added for easy auto-signing configuration ([\#3522](https://github.com/rpm-software-management/rpm/issues/3522))
New %{span:...} macro to make defining multi-line macros nicer
New `%{xdg:...}` macro for evaluating XDG base directories
Add support for E2K architecture
Fix sources and patches stored in reverse order in the header ([\#3014](https://github.com/rpm-software-management/rpm/issues/3014))
Fix Lua rpm.glob() not honoring the c argument (\#3794)
Fix architecture checking accidentally moved after build ([\#3569](https://github.com/rpm-software-management/rpm/issues/3569))
Fix buildsys specific %prep section not accepted (\#3635)
Fix `check-rpaths` brp noscript when both RPATH and RUNPATH exist ([\#3667](https://github.com/rpm-software-management/rpm/issues/3667))
Fix a memory leak in rpmspec --shell
Fix 4.20 regression on `rpmbuild -rs` failing on non-existent directory ([\#3682](https://github.com/rpm-software-management/rpm/issues/3682))
Fix an extra newline printed on rpm --eval
Fix a segfault on invalid dependency generator output in `multi` mode ([\#3821](https://github.com/rpm-software-management/rpm/issues/3821))
Fix brp-strip-comment-note failure due to a race condition
`brp-elfperms` buildroot policy noscript was removed ([\#3195](https://github.com/rpm-software-management/rpm/issues/3195))
Drop support for obsolete --nodirtokens rpmbuild(1) switch
(\#3927)

# API Changes

New functions related to rpmKeyring:
rpmKeyringInitIterator(), rpmKeyringIteratorNext(), rpmKeyringIteratorFree() for iterating over keyring contents
`rpmKeyringVerifySig2()`
rpmKeyringLookupKey() for finding a key in a keyring
`rpmKeyringModify()`
New functions related to rpmPubkey:
`rpmPubkeyFingperint()`, `rpmPubkeyFingerprintAsHex()`, `rpmPubkeyKeyIDAsHex()` and `rpmPubkeyArmorWrap()` accessors
rpmPubkeyMerge() for merging two pubkeys describing the same key
New functions for managing transaction permanent keystore:
rpmtxnImportPubkey() for importing keys
`rpmtxnDeletePubkey()` for deleting pubkey’s from transaction keystore
rpmtxnRebuildKeystore() for rebuilding transaction keystore
New flags to control `rpmSign()` operation added: `RPMSIGN_FLAG_RESIGN`, `RPMSIGN_FLAG_RPMV4`, `RPMSIGN_FLAG_RPMV6`
New functions for controlling per-package verification level:
`rpmteVfyLevel()` and `rpmteSetVfyLevel()`
te.VfyLevel() and te.SetVfyLevel() in the Python bindings
New identifiers related to multiple signature support added:
RPMTAG_OPENPGP rpm tag
`RPMSIGTAG_OPENPGP` signature header tag (alias to `RPMTAG_OPENPGP`)
RPMVSF_NOOPENPGP verification flag
New rpm tags: `RPMTAG_PAYLOADSIZE`, `RPMTAG_PAYLOADSIZEALT`, `RPMTAG_RPMFORMAT`, `RPMTAG_FILEMIMEINDEX`, `RPMTAG_MIMEDICT`, `RPMTAG_FILEMIMES`, `RPMTAG_SOURCENEVR`, `RPMTAG_PAYLOADSHA512`, `RPMTAG_PAYLOADSHA512ALT`, `RPMTAG_PAYLOADSHA3_256`, `RPMTAG_PAYLOADSHA3_256ALT`, `RPMTAG_SHA3_256HEADER`
Renamed rpm tags:
`RPMTAG_PAYLOADDIGEST` to `RPMTAG_PAYLOADSHA256`
RPMTAG_PAYLOADDIGESTALT to RPMTAG_PAYLOADSHA256ALT
`RPMTAG_PAYLOADDIGESTALGO` to `RPMTAG_PAYLOADSHA256ALGO` (obsolete)
New identifiers related to SHA-3 added: RPM_HASH_SHA3_256, RPM_HASH_SHA3_512
New symbols related to MIME types in v6 packages:
rpmfilesFMime(), rpmfiFMime() for retrieving per-file MIME info
`RPMFI_NOFILEMIME` flag to control behavior
New OpenPGP identifiers related to RFC-9580 added
New `pgpDigParamsSalt()` function retrieving OpenPGP v6 signature pre-salt ([\#3846](https://github.com/rpm-software-management/rpm/issues/3846))
New rpmDigestBundleUpdateID() function for updating individual ID’s in a digest bundle (\#3845)
`rpmtsAddInstallElement()` returns `3` on unsupported package format
fdSize() returns an error on non-regular files

# Internal Improvements

RPM is now built as C++20 code (except for plugins and Python bindings)
More background available in the initial announcement
All relevant sources have been renamed to `.cc` or `.hh` extension
Many dynamic data structures moved to STL and other similar refactorings
Numerous improvements to the test-suite
Simplify test creation
Add an actual keystore abstraction
New openpgp.cert.d based keystore (experimental) (\#3341)
New `make site` build target for easy local rendering of documentation
Make reference counting atomic throughout the codebase
Make the test-suite image `toolbox(1)` ready
Support underscores in RPMTAG names
Fix 4.20 regression signature size reservation not being used ([\#3768](https://github.com/rpm-software-management/rpm/issues/3768))
Fix alternatives mechanism unintentionally kicking in for signatures (\#3872)
Fix keystore reads lacking transaction lock
Fix a race condition in rpmioMkpath() (\#3508)
Fix recursion depth for macro error message ([\#3197](https://github.com/rpm-software-management/rpm/issues/3197))
Fix empty password field in passwd/group causing entry to be ignored
(\#3594)
Fix built-in macros not usable before loading macro files ([\#3638](https://github.com/rpm-software-management/rpm/issues/3638))
Fix fdSize() failure handling in rpmSign()
Fix pseudo-tags without an associated type showing up in –querytags
Fix rpm install prefix not honored in the legacy find-provides and find-requires dependency generator noscripts
Fix Python reference leaks related to archive handling
Fix non-deterministic storage of dependency information in packages (\#1056)
Fix `sysusers` noscript escaping chroot for `u!` entires
Fix RPM 4.19 regression on failed update return code (\#3718)
Issue a warning on `macrofiles` entry in an `rpmrc` ([\#3901](https://github.com/rpm-software-management/rpm/issues/3901))
Recreate the transaction lock file after --rebuilddb (\#3886)
Drop `gpg(keyid)` provides from gpg-pubkey headers ([\#3360](https://github.com/rpm-software-management/rpm/issues/3360))
Eliminate various internal symbols accidentally leaking to the ABI
Eliminate uses of non-portable `signal(2)` API ([\#3688](https://github.com/rpm-software-management/rpm/issues/3688))
Optimize rpmlog() locking
Python bindings:
Support Python module isolation (RhBug:2327289)
Fix some resource leaks, run tests with ASAN

# Building RPM

A C++20 compiler is now required in addition to a C99 compiler, but C++20 modules support is not required.
rpm-sequoia >= 1.9.0 is now required for building with Sequoia (default)
Python >= 3.10 is now required for building the Python bindings
[scdoc](https://git.sr.ht/~sircmpwn/scdoc) man page generator is now required for building RPM
Pre-built API documentation is no longer shipped in the release tarballs. Building it is optional, but Doxygen is required for doing so. Pre-built API documentation for all releases can be found in https://ftp.rpm.org/api/

# Compatibility Notes

# Package format

New RPM v6 package format
All file sizes and related limits are 64bit
Crypto modernization
Obsolete crypto (MD5 and SHA1) dropped
SHA3-256 header digest added ([\#3797](https://github.com/rpm-software-management/rpm/issues/3797))
SHA512 and SHA3-256 payload digests added (#3642, #3894)
Per-file MIME info
Widely compatible with RPM >= 4.14
The “external” dependency generator mode no longer supported with v6 packages ([\#2373](https://github.com/rpm-software-management/rpm/issues/2373))
rpmlib() dependencies for pre-4.6 features removed to reduce clutter (\#3854)
Can be queried with RPM >= 4.6
Can be unpacked with RPM >= 4.12
Can be verified and installed with RPM >= 4.14 (with caveats/limitations)
RPM v4 packages:
Built packages are identical to those generated by RPM 4.x versions
Remain fully supported
In the default configuration, packages built with RPM < 4.14.0 cannot be verified due to their use of weak, obsolete MD5 and SHA1 digests. For strongly signed packages, this can be worked around by changing `%_pkgverify_level` to `signature` so the weak digests are simply ignored. If verifying the weak digests is necessary, the RPM 4.x behavior can be restored by setting `%_pkgverify_flags` to `0`.
Support for installing RPM v3 packages has been removed. (\#1107) They can still be queried and also unpacked with rpm2cpio(1).
RPM defaults to building v6 packages, this can be changed with the `%_rpmformat` macro.
Lua posix.fork() family of calls, deprecated in 4.20, is disabled in packages built with RPM >= 6.0. They
continue to function in packages built by RPM <= 4.20 however.

# Other

Package signing key configuration differs from the past. To support other implementations besides GnuPG, the signer ID is now set via `%_openpgp_sign_id` macro, which defaults to `%{?_gpg_name}` for backwards compatibility.
The low-level package signing macros are now parametric, any custom %__gpg_sign_cmd overrides will simply not work as such. Users are encouraged to look into dropping such overrides rather than just updating, most such overrides haven’t been necessary in a long time.
`%_passwd_path` and `%_group_path` are now treated as colon separated paths to allow using multiple files as the source of NSS information (e.g. with nss-altfiles)
--pkgid and --hdrid query CLI-switches have been dropped (\#2633)

https://redd.it/1noeyw9
@r_linux
This media is not supported in your browser
VIEW IN TELEGRAM
[OC] Introducing pwmenu: A launcher-driven audio manager for Linux
https://redd.it/1nogolx
@r_linux
Software for audio CD ripping?

I wanted to create accurate (as close to perfect) digital replicas of some audio CDs. I saw that this would be done through ripping them into BIN/CUE files. I was wondering if there were any tools or anything that you guys would recommend to be used in this case? I am prioritising perfect replication over anything.

Edit: Just to clarify, this is not to extract audio files to listen to the tracks. I meant a digital replica that could be burned onto other CDs to make a perfect copy. So preserving every bit of data is needed.

https://redd.it/1nohn20
@r_linux
Im Doing it! Im switching to Linux!
https://redd.it/1nomebn
@r_linux
New Patches Optimize EXT4 Online Defragmentation for Better Performance

A set of 13 patches were posted today to the Linux kernel mailing list for optimizing the online defragmentation handling by the EXT4 kernel driver. The online defragmentation improvements for EXT4 can net a nice performance win with a very significant improvement in a variety of scenarios.

Huawei engineer Zhang Yi posted the patches to the Linux kernel mailing list for improving the EXT4 file-system online defragmentation handling. Plus it's also working toward converting the EXT4 buffered I/O code for regular files over to the IOmap infrastructure. Zhang Yi explained with the LKML patch series:

* "Currently, the online defragmentation of the ext4 is primarily implemented through the move extent operation in the kernel. This extent-moving operates at the granularity of PAGE\_SIZE, iteratively performing extent swapping and data movement operations, which is quite inefficient. Especially since ext4 now supports large folios, iterations at the PAGE\_SIZE granularity are no longer practical and fail to leverage the advantages of large folios. Additionally, the current implementation is tightly coupled with buffer\_head, making it unable to support after the conversion of buffered I/O processes to the iomap infrastructure.
* This patch set (based on 6.17-rc7) optimizes the extent-moving process, deprecates the old move\_extent\_per\_page() interface, and introduces a new mext\_move\_extent() interface. The new interface iterates over and copies data based on the extents of the original file instead of the PAGE\_SIZE, and supporting large folios. The data processing logic in the iteration remains largely consistent with previous versions, with no additional optimizations or changes made.
* Additionally, the primary objective of this set of patches is to prepare for converting the buffered I/O process for regular files to the iomap infrastructure. These patches decouple the buffer\_head from the main extent-moving process, restricting its use to only the helpers mext\_folio\_mkwrite() and mext\_folio\_mkuptodate(), which handle updating and marking pages in the swapped page cache as dirty. The overall coding style of the extent-moving process aligns with the iomap infrastructure, laying the foundation for supporting online defragmentation once the iomap infrastructure is adopted."

The benchmarks included as part of [the patch series](https://lore.kernel.org/lkml/20250923012724.2378858-1-yi.zhang@huaweicloud.com/) are very enticing:
Some really solid wins at the different block sizes and both for written/unwritten extent moving.

Source: [New Patches Optimize EXT4 Online Defragmentation For Better Performance - Phoronix](https://www.phoronix.com/news/EXT4-Faster-Online-Defrag)

https://redd.it/1nomfjv
@r_linux
Linux isn't (that) hard and is so awesome!!

New Linux user here that migrated off of Windows 10 to Linux Mint yesterday and I was shocked at how user-friendly and smooth both the transition process and actually using Linux is!

Yes, it is an adjustment and a learning curve, since Linux is NOT Windows or MacOS, but you can't fault the OS, as most people incurred the learning curve when they picked up their first Windows or MacOS PC all those years ago and most people are not exposed to Linux until a later age, if at all.

But I have to say there are SO many great guides online that walk you through exactly what you're inquiring about. Yes, there are more guides for Windows or MacOS in volume compared to Linux, but it's quality, not quantity. The Linux community is so knowledgeable and makes such great guides. Contrary to popular belief, I find the community to be even more hospitable with being open to helping.

Also, the way Linux functionally operates is such a refreshing new perspective on PC OS... I really dig the idea of having a "one-stop shop" Software Manager, similar to the Apple App Store or the Google Play Store on Mobile OS.

Lastly, the command Terminal may seem intimidating to non-techy people (believe me, I'm a normie), but it feels so badass and cool to use... I've used so much ChatGPT, DeepSeek, etc. to help me prompt out commands to achieve what I want to achieve and I really feel the power in my hands.

I love Linux!! I have had no trouble as well with getting setup and meeting my gaming needs on Linux, finding Linux software alternatives (e.g. LibreOffice), and even having Wine as an option (if you really need Windows).

I hope others and more people can be exposed to the magic of Linux and enjoy it, as Windows 10 support comes to an "end" in Oct 2025, and we all know how negative the perception of Windows 11 is. 😉

https://redd.it/1noqu7w
@r_linux
Guys, how do I get him out of my terminal?
https://redd.it/1noxh7i
@r_linux
Why are so many Linux newbies going to Linux Mint?

I remember when everyone would install Ubuntu LTS and it was a really good distro for its time. Now everyone says "Mint or zorin OS!" I do know that Ubuntu is forcing snaps and the cold startup time for chromium (I use it on my Ubuntu) is like ~10 secs. It's not really that horrible, just slightly slow.

https://redd.it/1nozluk
@r_linux
Finally made the move to Linux!

Got sick and tired of all the random crashes that was plaguing my old Thinkpad X270 (previously running Windows) so I finally installed Linux Mint. Haven't regretted my decision yet. I can do everything I was doing before, but this time without the frustration. :-)

https://redd.it/1np5uwn
@r_linux
Is there anyone that uses windows on work and linux at home? How is it?

I used windows from 7 then 8 on my netbook and since it was so trash switched linux and im using it since then. Now I'm applying for job IT support role where everything runs on windows. Is there any reason to dualboot at home?

https://redd.it/1np346g
@r_linux
SPARC v9-targetted Linux Distro?

I'm getting into the SPARC eco-system in a quest to collect all of the dead-tech RISC UNIX workstations of old. In that vein, I've glommed onto a reasonably new (13 years old) Sun SPARC T5-2 server.

Now, what to run on it? I've downloaded Oracle Solaris 11.4, but I'd rather do straight up Linux, but I don't know if it has drivers for all of the funky hardware that SPARC brings to the party. I know Debian does/used to have a sparc port, but this is a sparc64 architecture.

If worse comes to worst, there's always the Gentoo sparc64 port.

But really, if it were relatively straight forward, I'd love to have an Arch sparc64 (SPARCH-64?) port.

https://redd.it/1nphvch
@r_linux