F35 Change: Gconv package split in glibc (System-Wide Change proposal)
by Ben Cotton
https://fedoraproject.org/wiki/Changes/Gconv_package_split_in_glibc
== Summary ==
Most Gconv modules with the exception of unicode and similar essential
ones have been split into a separate package called glibc-gconv-extra.
Currently, the core package glibc has a strong (Requires) dependency
on glibc-gconv-extra making this change transparent to users. This
proposal is to weaken this dependency to Recommends so that it is
possible to remove glibc-gconv-extra from installations that do not
need it.
== Owner ==
* Name: [[User:siddhesh| Siddhesh Poyarekar]]
* Email: sipoyare(a)redhat.com
== Detailed Description ==
The glibc-gconv-extra package contains all iconv converter plugins
except UTF-*, unicode, ISO-8859-1, ISO8859-15, CP1252 and ANSI_X3.110.
A number of minimal installations would typically not need all those
plugins and they can be removed without any ill effects to those
environments. To achieve this, the glibc dependency on
glibc-gconv-extra needs to be weakened from Requires to Recommends.
Weakening the dependency of glibc on glibc-gconv-extra implies that
glibc-gconv-extra may not be pulled into certain installations by
default, e.g. in buildroots for package builds. glibc-gconv-extra is
however necessary because a number of packages either run tests that
verify conversions between arbitrary character sets or need similar
functionality to convert character sets of files in the upstream
sources. A method would have to be devised to ensure that
glibc-gconv-extra is available in buildroots. One option is to have
redhat-rpm-config Require glibc-gconv-extra as a way to ensure that
glibc-gconv-extra is in every buildroot, but better ideas are
desirable.
== Feedback ==
The change was made assuming that the weak dependency would be
sufficient to address compatibility but it was subsequently rolled
back when it was discovered that buildroots do not pull in weak
dependencies. Since the
[https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
announcement on fedora-devel] the reception to the change idea itself
has been positive. There are compatibility concerns with respect to
buildroots and backward compatibility, which will be addressed.
== Benefit to Fedora ==
The ability to remove glibc-gconv-extra brings in two main benefits:
* Removal can save about 8MB in the installed size, which is an
advantage for minimal container images
* A number of the infrequently used modules have historically had bugs
that have been considered security issues. Removing the
glibc-gconv-extra package is thus a hardening opportunity for UTF-8
clean environments.
== Scope ==
* Proposal owners:
The change required in glibc is minimal, requiring only spec file
changes to change dependencies.
* Other developers:
To allow glibc-gconv-extra to be installed in minimal koji buildroots,
redhat-rpm-config needs to be modified to depend on glibc-gconv-extra.
Alternatively, the buildroot definition needs to be altered somehow to
include glibc-gconv-extra.
If none of the above are feasible, package owners will need to add a
BuildRequires on glibc-gconv-extra if they need the extra converter
modules. However this is the last option and should ideally be
avoided.
* Release engineering: [https://pagure.io/releng/issue/10176]
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives:
== Upgrade/compatibility impact ==
1. Update glibc on an older system and verify that glibc-gconv-extra
gets updated by default
2. Update glibc on a system that has glibc-gconv-extra removed and
verify that glibc-gconv-extra is not pulled in
3. glibc downgrades should also have analogous behaviour
4. Build any package in mock or koji and verify that glibc-gconv-extra
is present in the buildroot
== User Experience ==
Minimal, UTF-8-only containers can be reduced by 8MB.
== Dependencies ==
If buildroot issues cannot be resolved through releng or a dependency
on redhat-rpm-config, a number of packages will need to be updated to
ensure that they build. At this moment that list is unknown.
== Contingency Plan ==
* Contingency mechanism: glibc dependency on glibc-gconv-extra is
reverted to Requires
* Contingency deadline: 2021/08/24 (Beta freeze)
* Blocks release? No
== Documentation ==
Package split and its potential announced and discussed here:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
--
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
2 years, 10 months
PSA: /usr/lib/rpm/redhat/brp-python-hardlink: No such file or
directory [and how to solve it]
by Miro Hrončok
If you see the following error in a Rawhide mock build:
...
+ /usr/lib/rpm/redhat/brp-python-hardlink
/var/tmp/rpm-tmp.WFxggi: line 65: /usr/lib/rpm/redhat/brp-python-hardlink: No
such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.WFxggi (%install)
Update your mock chroot from the "local" repository:
$ mock -r fedora-rawhide-x86_64 --enablerepo=local --update
And don't clean it before running the build.
If you see the error in Koji, please let me know ASAP.
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
2 years, 10 months
F35 Change: Rebase firewalld to upstream v1.0.0 (System-Wide Change proposal)
by Ben Cotton
https://fedoraproject.org/wiki/Changes/firewalld-1.0.0
== Summary ==
Firewalld upstream is about to release v1.0.0. As indicated by the
major version bump this includes behavioral changes.
== Owner ==
* Name: [[User:erig0| Eric Garver]]
* Email: egarver(a)redhat.com
== Detailed Description ==
Firewalld v1.0.0 includes breaking changes meant to improve the
overall health of the project. The majority of the changes are
centered around improving and strengthening the zone concept. All
breaking changes are detailed in depth in the
[https://firewalld.org/2021/06/the-upcoming-1-0-0 upstream blog].
Major changes:
* Reduced dependencies
* Intra-zone forwarding by default
* NAT rules moved to inet family (reduced rule set)
* Default target is now similar to reject
* ICMP blocks and block inversion only apply to input, not forward
* tftp-client service has been removed
* iptables backend is deprecated
* Direct interface is deprecated
* CleanupModulesOnExit defaults to no (kernel modules not unloaded)
== Benefit to Fedora ==
The major benefit to Fedora is more predictability in the stock
firewall. In particular, "Default target is now similar to reject"
addresses many subtle issues encountered by users. "NAT rules moved to
inet family" also significantly reduces the rule set size for users of
`ipset`s.
== Scope ==
* Proposal owners: Changes are isolated to firewalld, but given
firewalld is core a System Wide Change is being filed.
* Other developers: None. Isolated change.
* Release engineering:
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives:
== Upgrade/compatibility impact ==
* Most configurations will migrate. No intervention required.
** Exceptions
*** configurations that utilize `tftp-client` service will have
firewalld start in `failed` state because the service has been
removed. As noted in the upstream blog this service has ''never''
worked properly.
* Zones that users have not modified will now have intra-zone
forwarding enabled.
** for this to occur the user must ''not'' have added an interface,
service, port, etc. to the zone
** minimal concern because this also means the zone was not in use,
the exception being an unmodified default zone, e.g.
`FedoraWorkstation`
== How To Test ==
Testing for this rebase should revolve around integrations.
* libvirt
** verify VMs still have network access
* podman
** verify containers still have network access
** verify forwarding ports via podman still works
* NetworkManager
** verify connection sharing still works
== User Experience ==
N/A
== Dependencies ==
firewalld has yet to release v1.0.0. It is expected in early July.
== Contingency Plan ==
* Contingency mechanism: revert package to v0.9.z (what f34 uses)
* Contingency deadline: July 27, 2021
* Blocks release? No
== Documentation ==
https://firewalld.org/2021/06/the-upcoming-1-0-0
== Release Notes ==
firewalld has been rebased to v1.0.0. This includes some breaking
changes that may affect users.
Major changes:
* Reduced dependencies
* Intra-zone forwarding by default
* NAT rules moved to inet family (reduced rule set)
* Default target is now similar to reject
* ICMP blocks and block inversion only apply to input, not forward
* tftp-client service has been removed
* iptables backend is deprecated
* Direct interface is deprecated
* CleanupModulesOnExit defaults to no (kernel modules not unloaded)
Full details on the upstream blog:
https://firewalld.org/2021/06/the-upcoming-1-0-0
--
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
2 years, 10 months
F35 Change: Golang 1.17 (System-Wide Change proposal)
by Ben Cotton
https://fedoraproject.org/wiki/Changes/golang1.17
== Summary ==
Rebase of Golang package to upcoming version 1.17 in Fedora 35,
including the rebuild of all dependent packages(the pre-release
version of Go will be used for the rebuild if released version will
not be available at the time of the mass rebuild).
== Owner ==
* Name: [[User:alexsaezm| Alejandro Sáez Morollón]], [[User:Jcajka|
Jakub Čajka]]
* Email: asm(a)redhat.com, jcajka(a)redhat.com
== Detailed Description ==
Rebase of Golang package to upcoming version 1.17 in Fedora 35. Golang
1.17 is scheduled to be released in August 2021.
Due to Go packages' current nature and state, the rebuild of dependent
packages will be required.
== Benefit to Fedora ==
Stay closely behind upstream by providing the latest release of Go,
which includes improved support of the risc-v processor architecture
and added support for aarch64 based darwin(macOS) machines, among
other bug fixes, enhancements and new features. For a complete list of
changes, see upstream change notes at
https://tip.golang.org/doc/go1.17 . Therefore Fedora will be providing
a reliable development platform for Go language and projects written
in it.
== Scope ==
* Proposal owners: Rebase Golang package in Fedora 35, help resolve
possible issues found during package rebuilds.
* Other developers: Fix possible issues, with help from Golang maintainers.
* Release engineering: Rebuild of dependent packages as part of
planned mass-rebuild.
* Policies and guidelines: N/A
* Trademark approval: N/A
== Upgrade/compatibility impact ==
None
== How To Test ==
;0.
:a) Install golang 1.17 from rawhide and use it to build your
application(s)/package(s).
:b) Scratch build against rawhide.
;1.
:Your application/package built using golang 1.17 should work as expected.
== User Experience ==
None
== Dependencies ==
<pre>
dnf repoquery -q --releasever=rawhide --disablerepo='*'
--qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source
--enablerepo=updates-testing-source --archlist=src --whatrequires
'golang'
dnf repoquery -q --releasever=rawhide --disablerepo='*'
--qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source
--enablerepo=updates-testing-source --archlist=src --whatrequires
'compiler(go-compiler)'
dnf repoquery -q --releasever=rawhide --disablerepo='*'
--qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source
--enablerepo=updates-testing-source --archlist=src --whatrequires
'compiler(golang)'
dnf repoquery -q --releasever=rawhide --disablerepo='*'
--qf='%{name}' --enablerepo=fedora-source --enablerepo=updates-source
--enablerepo=updates-testing-source --archlist=src --whatrequires
'go-rpm-macros'
</pre>
<pre>
Omitted due to the number of packages listed ~1600.
</pre>
Not all of listed require re-build as they might not ship binaries
and/or do not use golang compiler during build, but only use Go rpm
macros that pull it in to every build root.
== Contingency Plan ==
* Contingency mechanism:Reverting to golang version 1.16.X if
significant issues are discovered.
* Contingency deadline: Beta Freeze
* Blocks release? No
* Blocks product? No
== Documentation ==
https://tip.golang.org/doc/go1.17
--
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
2 years, 10 months
F35 Change: IBus 1.5.25 (System-Wide Change proposal)
by Ben Cotton
https://fedoraproject.org/wiki/Changes/IBus_1.5.25
== Summary ==
IBus 1.5.25 will use `transfiletriggerin` script to generate the cache
file instead of `posttrans` script in each engine package, support the
include directive in the user compose file, IBus compose feature will
follow the GTK4 compose pre-edit style, the emoji shortcut key will be
changed to `Ctrl-period`, IBus GTK4 module will proceed the key events
synchronistically to follow GTK4 specification.
== Owner ==
* Name: [[User:Fujiwara|Takao Fujiwara]]
* Email: fujiwara [at] redhat [dot] com
== Detailed Description ==
* Each IBus language engine has run `posttrans` script to run `ibus
write-cache` to cache their component files in
/usr/share/ibus/component whenever the package is installed but `ibus
write-cache` will moved to `transfiletriggerin` script in IBus core
package and the script will be executed only one time per the Fedora
installation.
* IBus compose file will support the include directive in the user
compose file ($XDG_CONFIG_HOME/ibus/Compose,
$XDG_CONFIG_HOME/gtk-3.0/Compose or $HOME/.XCompose)
* IBus compose feature will follow the
[https://blog.gtk.org/2021/03/24/input-revisited/ GTK4 compose
pre-edit style].
* IBus emoji shortcut key is `Ctrl-Shift-e` and it will be changed to
`Ctrl-period` to follow the latest GTK while it's customizable with
`ibus-setup` utility.
* IBus GTK3 module proceeds the key events asynchronistically because
some langauge engines spend much time to compose key events and D-Bus
process could causes a timeout but now GTK4 does not allow the async
events and IBus GTK4 module will proceed the key events
synchronistically.
== Feedback ==
* Only one `transfiletriggerin` script is much simpler than many
`posttrans` scripts.
== Benefit to Fedora ==
Users can use the include directive in their compose files. IBus GTK4
module can send the application specific keys of Backspace, Enter to
the target application to follow GTK4 specification,
== Scope ==
* Proposal owners: Update SPEC file to add `transfiletriggerin`
script. Update libibus.so to enhance compose feature. Update
org.freedesktop.ibus.gschema.xml for emoji shortcut key. Update
libim-ibus.so to fix IBus sync process.
* Other developers: Update SPEC files to delete `posttrans` script.
* Release engineering: [https://pagure.io/releng/issue/10184 #10184]
* Policies and guidelines: N/A
* Trademark approval: N/A
* Alignment with Objectives:
== Upgrade/compatibility impact ==
We should avoid regressions with `transfiletriggerin` script in the
Fedora installation.
== How To Test ==
# Install ibus and the language engine packages
# `ibus read-cache --system` shows the installed engines.
# `rpm -q --scripts` does not show `ibus write-cache` in engine packages
# `rpm -q --filetriggers` shows `ibus write-cache` in ibus package
# Write the line of 'include "%H/foo.compose"' in your $HOME/.XCompose
and some compose sequences in $HOME/foo.compose
# Run `gnome-control-center keyboard` and configure some IBus language
engines besides XKB engines, likes ibus-hangul, ibus-typing-booster
# Enable an XKB engine with Super-space or clicking of the keyboard
idicator in GNOME
# Launch gedit
# Confirm your compose sequences in $HOME/foo.compose is reflected
# Confirm compose preedit is short
# Run `gnome-control-center keyboard` and configure some IBus language
engines besides XKB engines, likes ibus-hangul, ibus-typing-booster
# Enable an XKB engine with Super-space or clicking of the keyboard
idicator in GNOME
# Launch gedit
# Type Ctrl-period
# Confirm emoji pre-edit and lookup table is available
# Install gtk4-devel
# Run `env GTK_IM_MODULE=ibus gtk4-demo`
# Backspace, Enter keys works
== User Experience ==
The emoji shortcut key is changed if users do not customize it but
they can customize it with ibus-setup utility.
== Dependencies ==
ibus-anthy, ibus-chewing, ibus-hangul, ibus-input-pad, ibus-kkc,
ibus-libpinyin, ibus-rawcode, ibus-sayura, ibus-skk, ibus-table,
ibus-typing-booster, mozc (`posttrans` script has already been
deleted in each engine package in Fedora rawhide.)
== Contingency Plan ==
* Contingency mechanism: Revert the change to IBus.
* Contingency deadline: Beta release
* Blocks release? No
== Documentation ==
TBD
--
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
2 years, 10 months