Fedora 32 System-Wide Change proposal: Use update-alternatives for
/usr/bin/cc and /usr/bin/c++
by Ben Cotton
https://fedoraproject.org/wiki/Changes/Use-Update-Alternatives-For-usr-bi...
== Summary ==
Modify the gcc package so that the /usr/bin/cc and /usr/bin/c++
symlinks are managed by update-alternatives.
== Owner ==
* Name: [[User:tstellar| Tom Stellard]]
* Email: <tstellar(a)redhat.com>
== Detailed Description ==
The gcc package currently installs symlinks to /usr/bin/cc and
/usr/bin/c++ which point to /usr/bin/gcc and /usr/bin/g++
respectively. For this change, the gcc package will be modified so
that update-alternatives creates and manages these symlinks.
In addition to modifying the gcc package, the clang package will be
modified so that /usr/bin/clang and /usr/bin/clang++ can be used as
alternatives for /usr/bin/cc and /usr/bin/c++. The clang alternatives
will have a lower priority than the gcc alternatives, so that by
default, gcc will provide the /usr/bin/cc and /usr/bin/c++
implementations.
The clang package currently has a run-time dependency on gcc, so this
ensures that gcc will always provide the default implementation,
because it's impossible to install clang without gcc.
The only way users will be able to change the /usr/bin/cc or
/usr/bin/c++ implementations will be by explicitly using the
update-alternatives tool.
== Benefit to Fedora ==
Many build systems default to using /usr/bin/cc and /usr/bin/c++ as
the default C/C++ compilers. Being able to easily swap out these
implementation will provide a lot of flexibility within Fedora for
doing things like:
* Setting up alternative buildroots for testing.
* Installing a gcc wrapper script to /usr/bin/cc to help migrate
packages to new compiler flags or to capture statistics about compiler
usage.
* Letting users experiment easily with alternate compilers.
* Easily switch between system gcc and a development version of gcc.
== Scope ==
* Proposal owners: The proposal owner will implement the necessary
changes in the gcc and clang packages.
* Other developers: The gcc maintainers will be responsible for
reviewing and approving changes to the gcc package.
* Release engineering: (a check of an impact with Release Engineering is needed)
* Policies and guidelines: No policies or guidelines will need to be
updated as a result of this change.
* Trademark approval: N/A (not needed for this Change)
== Upgrade/compatibility impact ==
This change should not impact upgradeability.
== How To Test ==
CI tests will be added to the gcc package to ensure that /usr/bin/cc
and /usr/bin/c++ still point to /usr/bin/gcc and /usr/bin/g++ when
installed. There will also be a CI test added to the clang package to
ensure that /usr/bin/gcc and /usr/bin/g++ remain the default when
clang is installed.
== User Experience ==
This change will give users a much better way to experiment using
other compilers for their own development. They will be able to
easily switch between different compilers without having to modify
their projects build system or make non-standard changes to their
Fedora system.
== Dependencies ==
This change has no other dependencies besides the changes to the gcc
and clang packages.
== Contingency Plan ==
* Contingency mechanism: (What to do? Who will do it?) Proposal Owner
will revert changes made to gcc and clang packages and rebuild.
* Contingency deadline: If the changes are not complete by 2 weeks
before the mass rebuild, then we will consider postponing to the next
Fedora release and back out any changes that were made.
* Blocks release? No
* Blocks product? None
== Documentation ==
Release notes will be added for this change.
== Release Notes ==
The user /usr/bin/cc and /usr/bin/c++ symlinks are now managed by
update-alternatives. If you would like to change these symlinks to
point to another compiler, like clang, for example, you can use these
commands:
`update-alternatives --set cc /usr/bin/clang`
`update-alternatives --set c++ /usr/bin/clang++`
--
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
3 years, 8 months
Self Introduction: Joerg Kastning
by jkastning@my-it-brain.de
Hello to everyone,
My name is Joerg Kastning and I'm a Sysadmin who is currently working for the Bielefeld University.
On my carreer counter I have round about 15 years of expierience as Sysadmin, DevOp and IT Project Manager. Using Linux since 2009 as a user and working with it as a professional (more or less) since 2012. Some of my Open Source Projects and the ones I have contributed to, you could find at [0].
At the office I'm using Timewarrior (timew) to track the time I spend on different topics. And it came to my mind that it would be nice to package this software to be able to install it using the package manager that I know. And why build the package only for me when I could build it could get it into an official repository?
So I did some reading [1] and have found Ankur who maintains timew for Fedora. I've told him that I'm eager to learn the bits of package building and maintainig and he agreed coaching me to become a co-maintainer for timew. And here I am. Looking forward to learn new things about the operating system I enjoy.
Best regards,
Joerg
[0] https://github.com/Tronde
[1] https://fedoraproject.org/wiki/Join_the_package_collection_maintainers
3 years, 8 months
[minimization] Feedback Pipeline feedback wanted
by Adam Samalik
The Minimization Objective[1] has been going on for a while. There are two
high-level goals: making things smaller, and keeping things smaller. On the
keeping smaller side, the team prototyped a service called Feedback
Pipeline [2] that monitors use cases for their installation size and
dependencies, including a size history. This will help us see bigger
changes in size for things the community cares about [3].
I already got some feedback from a few individuals I asked while developing
it, but I feel it's in a good enough state for a more broad feedback. So I
have a few questions:
1/ We plan to send weekly size updates to the devel list. Would that be
useful? What should they include?
2/ Regarding the use cases [4], especially the container ones, could people
please review and give feedback to those? Are all the packages there
actually required? I'm specifically looking at the "nss_wrapper" package
that drags in Perl and cmake which makes it huge.
3/ Are there any other use cases we should track? I'm sure there are!
4/ And a more general one: is there something you're working on that's
related Minimization? Please let me know.
Cheers,
Adam
PS: The service is a prototype, so please excuse if there are some rough
edges — like the history graph showing multiple values of the same color.
If you happen to be interested to contribute, I'd be glad to accept issues
(or even PRs!) in the repo [5].
[1] Objective: https://docs.fedoraproject.org/en-US/minimization/
[2] Feedback Pipeline: https://minimization.github.io
<https://minimization.github.io/reports/>\
[3] Things the community cares about: There is an initial list [4] of use
cases defined by the Minimization Team, and we're now looking for feedback
and suggestions for new ones.
[4] Use cases:
https://minimization.github.io/reports/view--use-cases-definitions.html
[5] Feedback Pipeline repo:
https://github.com/minimization/feedback-pipeline/
--
Adam Šamalík
---------------------------
Senior Software Engineer
Red Hat
3 years, 8 months
Orphaned packages looking for new maintainers
by Miro Hrončok
The following packages are orphaned and will be retired when they
are orphaned for six weeks, unless someone adopts them. If you know for sure
that the package should be retired, please do so now with a proper reason:
https://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life
Note: If you received this mail directly you (co)maintain one of the affected
packages or a package that depends on one. Please adopt the affected package or
retire your depending package to avoid broken dependencies, otherwise your
package will be retired when the affected package gets retired.
Request package ownership via the *Take* button in he left column on
https://src.fedoraproject.org/rpms/<pkgname>
Full report available at:
https://churchyard.fedorapeople.org/orphans-2019-12-23.txt
grep it for your FAS username and follow the dependency chain.
Package (co)maintainers Status Change
================================================================================
ExchangeIR orphan 5 weeks ago
MochiKit orphan 1 weeks ago
apache-logging-parent mizdebsk, orphan 5 weeks ago
apachetop orphan, robert 1 weeks ago
apt-cacher-ng orphan 5 weeks ago
archaius orphan 5 weeks ago
archmage lbazan, orphan 4 weeks ago
audit-viewer mitr, orphan 4 weeks ago
avalon-logkit jerboaa, mizdebsk, orphan 4 weeks ago
binclock lbalhar, orphan 1 weeks ago
buildnumber-maven-plugin orphan 4 weeks ago
camotics orphan 5 weeks ago
cduce orphan 5 weeks ago
clapham orphan 5 weeks ago
csstidy orphan 5 weeks ago
delve go-sig, orphan 5 weeks ago
dzen2 bstinson, dcantrel, fale, 3 weeks ago
lupinix, orphan
eclipse-anyedit eclipse-sig, orphan, swagiaal 5 weeks ago
eclipse-checkstyle akurtakov, eclipse-sig, orphan 5 weeks ago
eclipse-color-theme eclipse-sig, orphan 5 weeks ago
eclipse-dltk akurtakov, eclipse-sig, 5 weeks ago
kdaniel, orphan, rgrunber
eclipse-epic eclipse-sig, orphan 5 weeks ago
eclipse-m2e-antlr eclipse-sig, mizdebsk, orphan 5 weeks ago
eclipse-m2e-cxf eclipse-sig, mizdebsk, orphan 5 weeks ago
eclipse-m2e-maven-dependency- mizdebsk, orphan 5 weeks ago
plugin
eclipse-m2e-modello eclipse-sig, mizdebsk, orphan 5 weeks ago
eclipse-m2e-plexus eclipse-sig, mizdebsk, orphan 5 weeks ago
eclipse-m2e-sisu eclipse-sig, mizdebsk, orphan 5 weeks ago
eclipse-m2e-takari mizdebsk, orphan 5 weeks ago
eclipse-nls orphan 5 weeks ago
eclipse-pdt eclipse-sig, orphan 5 weeks ago
eclipse-quickrex eclipse-sig, orphan 5 weeks ago
eclipse-sgx orphan 5 weeks ago
exercism go-sig, orphan 0 weeks ago
fabric orphan 5 weeks ago
ferm orphan, slankes 5 weeks ago
giis orphan 5 weeks ago
gipfel orphan 5 weeks ago
glob2 cheese, orphan 5 weeks ago
glusterd2 kkeithle, orphan 5 weeks ago
gns3-gui orphan 5 weeks ago
gns3-net-converter orphan 5 weeks ago
gns3-server orphan 5 weeks ago
golang-github-10gen-openssl go-sig, jchaloup, mskalick, 5 weeks ago
orphan
golang-github-codahale- go-sig, orphan 0 weeks ago
aesnicheck
graphite-web jamielinux, orphan, piotrp 5 weeks ago
guestfs-browser orphan 5 weeks ago
hystrix orphan 4 weeks ago
i3-ipc cicku, fale, gchamoul, 3 weeks ago
lupinix, mpreisle, orphan
ike-scan orphan, pwouters 1 weeks ago
infinispan gil, orphan 3 weeks ago
ioprocess dougsland, nsoffer, orphan, 5 weeks ago
smizrahi
jackson mizdebsk, orphan 5 weeks ago
jandex orphan 5 weeks ago
jboss-transaction-1.1-api orphan 5 weeks ago
jdo-api gil, lef, moceap, orphan 5 weeks ago
jgraphx jerboaa, orphan 0 weeks ago
jhdf5 orphan, zbyszek 0 weeks ago
jogl2 orphan 5 weeks ago
jove orphan 5 weeks ago
libee mbartos, orphan 4 weeks ago
libgovirt orphan 5 weeks ago
libx86 jcpunk, orphan 5 weeks ago
lv2-abGate orphan 5 weeks ago
lv2-kn0ck0ut orphan 5 weeks ago
matio lupinix, orphan 0 weeks ago
maven-ant-plugin mizdebsk, orphan 2 weeks ago
maven-checkstyle-plugin lef, mizdebsk, orphan 5 weeks ago
maven-deploy-plugin orphan 4 weeks ago
maven-docck-plugin mizdebsk, orphan 2 weeks ago
maven-ear-plugin orphan 2 weeks ago
maven-eclipse-plugin orphan 5 weeks ago
maven-war-plugin mizdebsk, orphan 4 weeks ago
mcollective-qpid-plugin orphan, tdawson 1 weeks ago
memoryfilesystem orphan 4 weeks ago
multibit-commons orphan 5 weeks ago
multibit-hardware orphan 5 weeks ago
multithreadedtc orphan 2 weeks ago
nbtscan orphan 1 weeks ago
nesc cicku, orphan 2 weeks ago
ninvaders orphan 1 weeks ago
nm-tray lxqt-sig, orphan 5 weeks ago
nodejs-buffertools nodejs-sig, orphan 5 weeks ago
nodejs-compressible nodejs-sig, orphan, patches 5 weeks ago
nodejs-encodeurl nodejs-sig, orphan 5 weeks ago
nodejs-eyes nodejs-sig, orphan, patches 5 weeks ago
nodejs-finalhandler nodejs-sig, orphan 5 weeks ago
nodejs-method-override nodejs-sig, orphan, patches 5 weeks ago
nodejs-moment nodejs-sig, orphan, patches 5 weeks ago
nodejs-negotiator nodejs-sig, orphan, patches 5 weeks ago
nodejs-send nodejs-sig, orphan, patches 5 weeks ago
nodejs-stylus nodejs-sig, orphan, patches 5 weeks ago
nodejs-tilejson jamielinux, nodejs-sig, orphan 5 weeks ago
nodejs-tilelive jamielinux, nodejs-sig, orphan 5 weeks ago
ocaml-bin-prot orphan 5 weeks ago
ocaml-bisect orphan 5 weeks ago
ocaml-bitstring orphan 5 weeks ago
ocaml-deriving orphan 5 weeks ago
ocaml-json-static orphan 5 weeks ago
ocaml-mikmatch orphan 5 weeks ago
ocaml-openin orphan 5 weeks ago
ocaml-pa-monad orphan 5 weeks ago
ocaml-pgocaml orphan 5 weeks ago
ocaml-sexplib orphan 5 weeks ago
ocaml-type-conv orphan 5 weeks ago
ocamldsort orphan 5 weeks ago
ohc acaringi, hhorak, orphan 4 weeks ago
oyranos orphan 1 weeks ago
paulstretch orphan 5 weeks ago
perdition orphan 5 weeks ago
pscan orphan 1 weeks ago
python-alchimia orphan 5 weeks ago
python-cattrs orphan 5 weeks ago
python-dockerpty carlwgeorge, lsm5, orphan, 1 weeks ago
ttomecek
python-flask-classy orphan 3 weeks ago
python-flask-debugtoolbar orphan 3 weeks ago
python-fsmonitor orphan 3 weeks ago
python-gfm orphan 5 weeks ago
python-k8sclient orphan 5 weeks ago
python-mongoengine bowlofeggs, echevemaster, 3 weeks ago
orphan
python-nose-ignore-docstring orphan 4 weeks ago
python-sanic orphan 5 weeks ago
python-texttable carlwgeorge, orphan 1 weeks ago
python-virtkey orphan 1 weeks ago
python-zipstream orphan 5 weeks ago
qpid-proton orphan 0 weeks ago
resiprocate orphan 5 weeks ago
rgbds orphan 5 weeks ago
rubygem-awesome_spawn jstribny, orphan 2 weeks ago
rubygem-bootstrap-sass orphan 2 weeks ago
rubygem-charlock_holmes orphan 2 weeks ago
rubygem-omniauth orphan 1 weeks ago
rubygem-orm_adapter orphan 2 weeks ago
saxon dbhole, dchen, jjohnstn, 3 weeks ago
mbooth, orphan
scamper orphan 5 weeks ago
shed orphan 1 weeks ago
sonatype-plugins-parent mizdebsk, orphan 5 weeks ago
swt-chart orphan 5 weeks ago
tmuxinator orphan 1 weeks ago
trac-doxygen-plugin orphan 5 weeks ago
trac-xmlrpc-plugin orphan 5 weeks ago
vttest cicku, orphan 1 weeks ago
xml-stylebook mizdebsk, orphan 3 weeks ago
zookeeper ctubbsii, greghellings, 5 weeks ago
mluscon, orphan, skottler
The following packages require above mentioned packages:
See https://churchyard.fedorapeople.org/orphans-2019-12-23.txt
Grep it for your username and follow the dependency chain.
Affected (co)maintainers
abompard: qpid-proton
acaringi: ohc
agoode: matio
akurtakov: eclipse-dltk, buildnumber-maven-plugin, eclipse-checkstyle
arobinso: multithreadedtc
ausil: qpid-proton
berrange: libgovirt
bgilbert: matio
bkabrda: qpid-proton
bowlofeggs: qpid-proton, python-mongoengine
bstinson: dzen2
carlwgeorge: python-dockerpty, python-texttable
cheese: glob2
churchyard: nodejs-moment
cicku: vttest, i3-ipc, nesc
clalance: buildnumber-maven-plugin
cqi: qpid-proton
cquad: buildnumber-maven-plugin
crobinso: libgovirt
ctubbsii: zookeeper
cverna: qpid-proton
dbhole: saxon
dcantrel: dzen2
dchen: saxon
dgoodwin: qpid-proton
dmach: qpid-proton
dodji: qpid-proton
domcleal: buildnumber-maven-plugin
dominik: jackson
dougsland: ioprocess
dridi: vttest
echevemaster: python-mongoengine
eclipse-sig: eclipse-m2e-antlr, eclipse-checkstyle, eclipse-anyedit,
eclipse-dltk, eclipse-m2e-cxf, eclipse-m2e-modello, eclipse-m2e-sisu,
eclipse-quickrex, eclipse-m2e-plexus, eclipse-epic, eclipse-pdt, eclipse-color-theme
ellert: maven-deploy-plugin, maven-docck-plugin
elmarco: libgovirt
error: python-dockerpty, python-texttable
fab: vttest, avalon-logkit
fale: dzen2, i3-ipc
fidencio: libgovirt
frixxon: qpid-proton
frostyx: qpid-proton
fsimonce: jackson
fujiwara: qpid-proton
gchamoul: i3-ipc
ggillies: buildnumber-maven-plugin
gil: infinispan, jdo-api
go-sig: exercism, golang-github-10gen-openssl, delve,
golang-github-codahale-aesnicheck
greghellings: zookeeper
halfie: qpid-proton
hhorak: ohc
infra-sig: qpid-proton
ingvar: vttest
irina: qpid-proton
jackorp: buildnumber-maven-plugin
jamesturner246: matio, avalon-logkit, jogl2, saxon, jgraphx
jamielinux: nodejs-encodeurl, nodejs-finalhandler, graphite-web,
nodejs-tilelive, nodejs-eyes, nodejs-tilejson, nodejs-negotiator
jaruga: buildnumber-maven-plugin
jchaloup: golang-github-10gen-openssl
jcline: qpid-proton
jcpunk: libx86
jerboaa: avalon-logkit, jgraphx
jfearn: avalon-logkit
jjelen: buildnumber-maven-plugin, avalon-logkit
jjohnstn: saxon
jlieskov: qpid-proton
jortel: qpid-proton
jplesnik: qpid-proton
jsmith: nodejs-encodeurl, nodejs-finalhandler, nodejs-buffertools,
nodejs-moment, nodejs-eyes
jsteffan: vttest
jstribny: buildnumber-maven-plugin, rubygem-awesome_spawn
jvanek: buildnumber-maven-plugin
jvymazal: qpid-proton
kdaniel: eclipse-dltk, buildnumber-maven-plugin
kellin: qpid-proton
kevin: qpid-proton, vttest
kgiusti: qpid-proton
kkeithle: glusterd2
lbalhar: binclock
lbazan: archmage
leamas: qpid-proton
lef: jdo-api, maven-checkstyle-plugin, buildnumber-maven-plugin,
multithreadedtc, jandex
limb: matio
lkundrak: qpid-proton, buildnumber-maven-plugin
lsedlar: qpid-proton
lsm5: python-dockerpty, python-texttable
luhliarik: vttest
lupinix: dzen2, i3-ipc, matio
lxqt-sig: nm-tray
lzap: buildnumber-maven-plugin
maxamillion: qpid-proton
mbartos: libee
mbooth: saxon
mdarade: qpid-proton
mhlavink: vttest
mikem: qpid-proton
mikep: matio
mildew: qpid-proton
mitr: audit-viewer
mizdebsk: apache-logging-parent, maven-war-plugin, eclipse-m2e-antlr,
avalon-logkit, maven-ant-plugin, eclipse-m2e-cxf, eclipse-m2e-modello,
eclipse-m2e-sisu, eclipse-m2e-takari, eclipse-m2e-maven-dependency-plugin,
jackson, maven-checkstyle-plugin, xml-stylebook, maven-docck-plugin,
eclipse-m2e-plexus, sonatype-plugins-parent
mluscon: zookeeper
mmagr: buildnumber-maven-plugin
mmorsi: buildnumber-maven-plugin
moceap: jdo-api, avalon-logkit
mohanboddu: qpid-proton
mpreisle: i3-ipc
mskalick: golang-github-10gen-openssl, avalon-logkit
msrb: buildnumber-maven-plugin
neuro-sig: jhdf5, matio
ngompa: qpid-proton
nim: qpid-proton
nodejs-sig: nodejs-compressible, nodejs-encodeurl, nodejs-method-override,
nodejs-finalhandler, nodejs-stylus, nodejs-buffertools, nodejs-moment,
nodejs-send, nodejs-tilelive, nodejs-eyes, nodejs-tilejson, nodejs-negotiator
nsoffer: ioprocess
odubaj: jandex
onosek: qpid-proton
orion: qpid-proton, matio, avalon-logkit
panovotn: avalon-logkit
patches: nodejs-method-override, nodejs-compressible, nodejs-stylus,
nodejs-encodeurl, nodejs-finalhandler, nodejs-moment, nodejs-send, nodejs-eyes,
nodejs-negotiator
peter: avalon-logkit
pingou: qpid-proton
piotrp: graphite-web, nodejs-eyes
pmackinn: jdo-api
ppisar: qpid-proton
puiterwijk: qpid-proton
pvalena: buildnumber-maven-plugin
pwouters: ike-scan
python-sig: nodejs-moment
qwan: qpid-proton
ralph: qpid-proton
rgrunber: eclipse-dltk
rlandmann: avalon-logkit
robert: apachetop
romanofski: qpid-proton
rsroka: qpid-proton
ruben: vttest
ruby-packagers-sig: buildnumber-maven-plugin
s4504kr: avalon-logkit
sagitter: matio, avalon-logkit
santiago: qpid-proton
sbonazzo: buildnumber-maven-plugin
sgallagh: python-texttable
sinnykumari: qpid-proton
skottler: zookeeper, buildnumber-maven-plugin
slaanesh: matio
slankes: ferm
smizrahi: ioprocess
sochotni: qpid-proton
stahnma: buildnumber-maven-plugin
stevetraylen: buildnumber-maven-plugin
swagiaal: eclipse-anyedit
tagoh: qpid-proton
tc01: nodejs-eyes
tdawson: qpid-proton, buildnumber-maven-plugin, mcollective-qpid-plugin
terjeros: buildnumber-maven-plugin
teuf: libgovirt
tomh: nodejs-send, nodejs-eyes, nodejs-encodeurl, nodejs-finalhandler
tosykora: qpid-proton
tross: qpid-proton
ttomecek: qpid-proton, python-dockerpty, python-texttable
twaugh: qpid-proton
valtri: buildnumber-maven-plugin
victortoso: libgovirt
virtmaint-sig: libgovirt
volter: matio
vondruch: buildnumber-maven-plugin
vrutkovs: qpid-proton
wakko666: buildnumber-maven-plugin
wwoods: qpid-proton
xaeth: vttest
xiubli: qpid-proton
zbyszek: jhdf5
--
The script creating this output is run and developed by Fedora
Release Engineering. Please report issues at its pagure instance:
https://pagure.io/releng/
The sources of this script can be found at:
https://pagure.io/releng/blob/master/f/scripts/find_unblocked_orphans.py
3 years, 8 months
Fedora 32 System-Wide Change proposal: Enable fstrim.timer by default
by Ben Cotton
https://fedoraproject.org/wiki/Changes/EnableFSTrimTimer
== Summary ==
Enabling fstrim.timer will cause fstrim.service to execute weekly,
which in turn executes `/usr/sbin/fstrim --fstab --verbose --quiet`
== Owner ==
* Name: [[User:chrismurphy| Chris Murphy]]
* Email: bugzilla(a)colorremedies.com
== Detailed Description ==
Over time, some users experience slow downs in certain flash storage
devices. This might be alleviated by issuing a periodic fstrim command
to the mounted file system. Devices and file systems that don't
support fstrim are unaffected.
By enabling the existing fstrim.timer systemd unit file by default,
will cause weekly execution of the fstrim.service. This service acts
only on mounted filesystems listed in fstab. On supported hardware
(e.g. most SD Card, SSD, and NVMe drives), LVM thin provisioned
storage, and file systems (ext4, XFS, Btrfs, f2fs, but excluding
FAT16/32), fstrim will inform underlying physical storage device's
firmware about unused blocks. This hinting can make wear leveling and
block erasure more efficient.
The timer will execute Monday at 00:00 local time. If the system is
inactive at this time, it will be run immediately upon becoming active
again (upon wake from suspend, during or very soon after boot).
Some devices do not support "queued trim" and there may be a brief
(seconds) pause as the drive firmware acts upon command issuance. It's
expected most users won't notice this.
== Benefit to Fedora ==
This is an optimization to the storage stack, and may help improve
performance and wear leveling for some devices. On LVM thin
provisioned stacks, unused LV extents will be returned to the thin
pool, reducing the likelihood of pool exhaustion.
In a way, this is overdue on Fedora, as it's been the default behavior
on other distributions for a while (at least Ubuntu and openSUSE). At
least it has been well tested.
== Scope ==
* Proposal owners:<br>
Upon approval, submit a PR for fedora-release, modifying
90-default.preset to enable fstrim.timer
* Other developers:<br>
fstrim.timer is provided by util-linux, notify util-linux maintainer<br>
https://bugzilla.redhat.com/show_bug.cgi?id=1785041
* Release engineering: [https://pagure.io/releng/issues #9116]
* Policies and guidelines: N/A
* Trademark approval: N/A
== Upgrade/compatibility impact ==
fstrim.timer will be enabled on upgrade. An upgraded system should
exhibit the same behaviors as a clean installed system.
== How To Test ==
The low level function of systemd timers, fstrim.service, and fstrim
command are well understood and tested already, all Fedora needs to
test is that the timer is enabled following clean installation and
upgrades:<br><br>
Preliminaries:
* Clean install Fedora 32, any edition or spin; or
* Upgrade from Fedora 30 or Fedora 31, any edition or spin, to Fedora 32
Confirm:
* Run `sudo systemctl list-timers`
* Confirm `fstrim.timer` is listed under UNITS, and is next scheduled
for Monday 00:00:00
* Anytime following the listed NEXT date+time, run `sudo systemctl
status fstrim.timer`
Example, should apply in all cases:<br>
{{code|Dec 18 13:48:54 fmac.local systemd[1]: fstrim.service: Succeeded.}}
Full example on a device with an SSD and filesystem supporting trim:<br>
<pre>
$ sudo systemctl status fstrim.service
● fstrim.service - Discard unused blocks on filesystems from /etc/fstab
Loaded: loaded (/usr/lib/systemd/system/fstrim.service; static;
vendor preset: disabled)
Active: inactive (dead) since Wed 2019-12-18 13:48:54 MST; 15min ago
Docs: man:fstrim(8)
Process: 3870 ExecStart=/usr/sbin/fstrim --fstab --verbose --quiet
(code=exited, status=0/SUCCESS)
Main PID: 3870 (code=exited, status=0/SUCCESS)
CPU: 1.387s
Dec 18 13:48:48 fmac.local systemd[1]: Starting Discard unused blocks
on filesystems from /etc/fstab...
Dec 18 13:48:54 fmac.local fstrim[3870]: /: 32 GiB (34409328640 bytes)
trimmed on /dev/sda4
Dec 18 13:48:54 fmac.local systemd[1]: fstrim.service: Succeeded.
Dec 18 13:48:54 fmac.local systemd[1]: Started Discard unused blocks
on filesystems from /etc/fstab.
Dec 18 13:48:54 fmac.local systemd[1]: fstrim.service: Consumed 1.387s CPU time.
</pre>
<br>
Regardless of configuration, there should be no errors.
== User Experience ==
Most users will not notice the change. Some will notice improved
performance of flash storage devices, and more efficient use of thinly
provisioned storage.
This does not affect all storage. Only file systems listed in fstab
are affected.
If the user/admin wants fstrim to apply to all mounted file systems,
they should copy the original fstrim.service unit file, replacing
`--fstab` with `--all`, and use this modified unit file as a drop-in
service unit in /etc. See
https://www.freedesktop.org/software/systemd/man/systemd.unit.html
== Dependencies ==
None
== Contingency Plan ==
* Contingency mechanism: Owner will revert the change
* Contingency deadline: final freeze
* Blocks release? No
* Blocks product? No
== Documentation ==
man fstrim
== Release Notes ==
fstrim.timer is enabled by default, and runs fstrim.service weekly.
This service executes `/usr/sbin/fstrim --fstab --verbose --quiet` See
`man fstrim` for details.
--
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
3 years, 8 months
Self Introduction: Michael Hrechyn
by Michael Hrechyn
Hi! I'm Michael Hrechyn, 17 years old school boy, who lives in Belarus.
In addition to studying at school, I study programming in Rust and administration of Linux systems because I like it.
I have few simple open-source projects writen in Rust and they are also available in Copr.
Also I maintain few other packages, which also available in Copr. For instance, it's a libinput-gestures and MultiMC.
Currently I want to maintain a ddnet package in Fedora repos.
I already send a review request (https://bugzilla.redhat.com/show_bug.cgi?id=1787069) and now I'm searching for a sponsor.
if you want to know more about me, please just ask.
3 years, 8 months
Fedora 32 System-Wide Change proposal: Firewalld Default to nftables
by Ben Cotton
https://fedoraproject.org/wiki/Changes/firewalld_default_to_nftables
== Summary ==
This change will toggle the default firewalld backend from iptables to
nftables. All of firewalld's primitives will use nftables while direct
rules continue to use iptables/ebtables.
== Owner ==
* Name: [[User:erig0| Eric Garver]]
* Email: egarver(a)redhat.com
== Detailed Description ==
Firewalld upstream has used nftables as the default backend for the
past two minor releases. It is also the default in other distributions
(e.g. RHEL-8). This change will bring Fedora in line with upstream.
Using nftables bring many advantages. See firewalld's upstream
[https://firewalld.org/2018/07/nftables-backend blog post]. It also
highlights a few behavioral changes.
== Benefit to Fedora ==
* Fewer firewall rules (rule consolidation)
All of firewalld's primitives will use the same underlying firewall
(nftables) instead of duplicating rules both in iptables and
ip6tables. In nftables rules can match both IPv4 and IPv6 packets.
This reduces the number of firewall rules by half.
* firewalld's rules are namespaced
With nftables firewalld's rules are isolated to a "firewalld" table. A
separate firewall (or user) can create its own independent ruleset and
firewalld will never touch it.
* Netfilter upstream is focusing on nftables, not iptables
== Scope ==
* Proposal owners: firewalld (erig0, Eric Garver)
Currently the firewalld package has a Fedora downstream patch to hide
the nftables backend. The only firewalld change required is to remove
that patch from the package and rebuild.
* Other developers: libvirt, podman, docker
** libvirt
*** libvirt already cooperates with the firewalld nftables backend.
The only thing needed is to test/verify.
** podman
*** libvirt already cooperates with the firewalld nftables backend.
The only thing needed is to test/verify.
** docker
*** Docker currently does not cooperate with the nftables backend. It
currently side-steps firewalld by injecting its own rules in iptables
ahead of firewalld's rules. However, with the nftables backend
firewalld's rule will still be evaluated. Netfilter in the kernel will
call iptables, then nftables for the same packet. This means
firewalld/nftables is likely to drop the packet even if docker has
iptables rules to ACCEPT.
*** Proposed fix 1: Docker package should provide a firewalld zone
definition that includes the docker interfaces (e.g. docker0). The
zone should use the "ACCEPT" policy (firewalld --set-target). This
will allow docker's traffic to pass through firewalld/nftables.
**** Issue 1: If a user has configured a different docker bridge name,
then they'll have to manually add the bridge to the docker zone (or
firewalld's trusted zone).
*** Proposed fix 2: Just like "Proposed fix 1", but instead of adding
the zone definition to docker we created a "docker-firewalld" (or
firewalld-docker?) package that has the zone definition. This could be
installed by default when docker is installed.
* Policies and guidelines: No updated needed.
* Trademark approval: N/A (not needed for this Change)
== Upgrade/compatibility impact ==
When users are upgraded to firewalld with nftables enabled (f32) all
their firewall rules will exist in nftables instead of iptables. All
of firewalld's primitives (zones, services, ports, rich rules, etc.)
are 100% compatible between backends.
Users of direct rules may need to consider the
[https://firewalld.org/2018/07/nftables-backend behavioral changes]
that were announced upstream. Some are also highlighted here:
* direct rules execute before _all_ firewalld rules
** This has been requested by users
* packets dropped in iptables (or direct rules) will never be seen by firewalld
* packets accepted in iptables (or direct rules) are still subject to
firewalld's rules
== How To Test ==
Testing should mostly be integration based. Firewalld upstream has a
fairly comprehensive testsuite that covers functional testing.
The following are packages known to integrate with firewalld. They
should be tested with the nftables backend.
* libvirt
** verify VMs with different network types (bridged, routed) have
working network access
** newer version of libvirt should create and use a "libvirt"
firewalld zone. Interfaces should be dynamically added to the zone.
* podman
** verify podman adds container bridge interface to the "trusted" zone
** verify container still has network access
* docker
** known to not work with the firewalld nftables backend out of the box
** verify new package docker-firewalld installs firewalld docker zone
and has "docker0" interface added
** verify container still has network access
* fail2ban-firewalld
** verify the direct rules added to firewalld by fail2ban still block traffic
== User Experience ==
In general users shouldn't notice the change. Occasional a user will
look at the iptables rule that firewalld generates. They'll now have
to look at nftables instead.
== Dependencies ==
* libvirt >= 5.1.0
* CNI >= 0.8.0 (used by podman)
* docker-firewalld (new package)
== Contingency Plan ==
* Contingency mechanism: firewalld maintainer (erig0) will reinstate
the current patch to default to the iptables backend.
* Contingency deadline: beta freeze
== Documentation ==
* [https://firewalld.org/2018/07/nftables-backend Firewalld blog post]
--
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
3 years, 8 months