F35 Change proposal: RPM 4.17 (System-Wide Change proposal)
by Ben Cotton
https://fedoraproject.org/wiki/Changes/RPM-4.17
== Summary ==
Update RPM to the [https://rpm.org/wiki/Releases/4.17.0 4.17] release.
== Owner ==
* Name: [[User:pmatilai|Panu Matilainen]]
* Email: [pmatilai(a)redhat.com]
== Detailed Description ==
RPM 4.17 contains numerous improvements over previous versions
* More robust install failure handling
* Many macro improvements, in particular much improved Lua integration
* Strict checking for unpackaged content in builds
* Libraries no longer need executable permission for dependency
generation and is automatically removed for non-executable libraries
* Long needed transaction APIs enhancements
* Improved documentation
* Tentative (planned but not committed as of this writing)
** Split debugedit to its own project and package
** Split language-specific packaging aids to separate projects
(Python, Perl, Ocaml...)
** Dynamic spec generation
The plan is to get 4.17-alpha into rawhide as early as possible
(during April) to sort out any initial rough edges long before the
general feature deadline rush. Final version is expected to be
released well in time before F35 beta.
== Benefit to Fedora ==
See description for overall benefits, but in particular:
* All users benefit from the more robust installation
* Packaging sanity wrt libraries
* Macro authors will have a much saner experience creating complex macros in Lua
* DNF for the enhanced transaction APIs
== Scope ==
* Proposal owners:
** Rebase RPM
** Assist with dealing with incompatibilities
* Other developers:
** Test new release, report issues and bugs
** Adjust packaging to adhere to the strict buildroot content checking
* Release engineering: [https://pagure.io/releng/issue/10072 #10072]
* Policies and guidelines:
** Guidelines have nothing on unpackaged contents in buildroot, so
don't necessarily need updating. Many packages will fail to build
because of the stricter checking though: with rpm >= 4.17 unpackaged
content is not permitted in the buildroot at all.
** Libraries no longer need to be executable for dependency
generation, and executable bit will in fact be removed if invalidly
set on a library. Guidelines only have a vague "executable if
appropriate" mention so it does not *need* changing but could now be
clarified/tightened if desired.
* Trademark approval: N/A (not needed for this Change)
* Alignment with Objectives: no relation to current objectives
== Upgrade/compatibility impact ==
* Many existing packages will fail to build due to the stricter
buildroot content checking. Fixing this in the packaging is always
backwards compatible. We could temporarily set
`%_unpackaged_files_terminate_build 0` in rawhide to alleviate initial
impact if necessary.
* Rpm no longer implicitly creates databases on read-only access, this
may require changes to existing scripts/tooling. Ensuring mock/dnf
works is a pre-requisite to landing this change into rawhide, and will
be handled, one way or the other, by the rpm maintainers.
== How To Test ==
Rpm receives a thorough and constant testing via every single package
build, system installs and updates. New features can be tested
specifically as per their documentation.
== User Experience ==
The user-experience remains largely as-is, but install failures are
handled more gracefully.
== Dependencies ==
* dnf and/or mock will likely need some adjusting for the lack of
implicit database creation. If necessary, rpm maintainers will provide
patches prior to landing this change.
* soname bump is not expected so rebuilds should not be required
== Contingency Plan ==
* Contingency mechanism: Revert back to RPM 4.16, but the risk of
having to do should be negligible
* Contingency deadline: Beta freeze
* Blocks release? No
== Documentation ==
Work-in-progress release notes at https://rpm.org/wiki/Releases/4.17.0
and reference manual at
https://github.com/rpm-software-management/rpm/blob/master/doc/manual/ind...
--
Ben Cotton
He / Him / His
Senior Program Manager, Fedora & CentOS Stream
Red Hat
TZ=America/Indiana/Indianapolis
3 years
Heads up, upcoming mass spec update to explicitly BuildRequire python3-setuptools
by Tomas Hrnciar
Hello everyone,
some of you might have already seen the F35 Change [0] we submitted last
week.
We are trying to reduce the number of Python packages unnecessarily
Requiring python3-setuptools. If you are interested in technical details
see the change proposal [1], there is a broad explanation of why we are
doing this.
If the change is approved by FESCo we plan to do the mass spec update that
will add explicit BuildRequire on python3-setuptools for all affected
packages. We'll try to make this addition consistent with the actual style
used in the spec files, but nobody's perfect and there might be some
discrepancies; so please, if your package is listed below, check this diff [
2] to see how the change will look like. If you disagree with the way how
the BuildRequires will be added, feel free to add it yourself in any other
way you prefer before 2021-04-15. A push to the rawhide/main branch in dist-git
is sufficient, no need to bump the release or rebuild the package.
We plan to update the list of affected packages again before we actually do
the change. If you wish to opt-out of this change entirely, please let us
know by editing the change wiki page and moving your package into the
"Packages to be ignored" section [3] before 2021-04-15. However, bear in
mind that this will likely cause future failures to build from source if
your package actually needs setuptools to build.
Thank you for your cooperation.
Tomáš Hrnčiar
[0]
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.o...
[1]
https://fedoraproject.org/wiki/Changes/Reduce_dependencies_on_python3-set...
[2]
https://github.com/hrnciar/add-setuptools-buildrequire/compare/c082a1a......
[3]
https://fedoraproject.org/wiki/Changes/Reduce_dependencies_on_python3-set...
List of all affected packages:
Maintainers by package:
0ad ignatenkobrain pcpa pwalter
OpenMolcas jussilehtola
PyGreSQL hhorak jmlich odubaj panovotn pkubat praiskup
R2spec pingou
ViTables tnorth zbyszek
ansible-review dcallagh ttrinks
barman slaanesh tsao
blender design-sw hobbes1069 ignatenkobrain kwizart luya roma
s4504kr slaanesh
btrfs-progs ignatenkobrain josef ngompa sandeen
bumpversion duriantang jdornak
calypso rathann
cinch greghellings
commissaire-client mbarnes smilner
cppcheck c72578 jussilehtola sgrubb
cranc lenkaseg
crudini apevec jruzicka pbrady
cxxtest mgieseki
datanommer ralph
dlib bizdelnick luya
ec2-hibinit-agent davdunc
electrum tredaell
fbthrift dcavalca filbranden salimma
fedora-messaging abompard
firefox alexl caolanm erack gecko-maint jgrulich kalev kengert
mbarnes rhughes rstrode sharkcz stransky tpopela ueno xhorak
folly dcavalca filbranden salimma
fontforge frixxon kevin pnemade
gajim michich suraia
gau2grid jussilehtola
gfal2-python adev andreamanzi
ginga lupinix
git-filter-repo asn
gns3-gui kwizart
gns3-net-converter kwizart
gns3-server kwizart nucleo
gpsd fab mlichvar ttorling
h5py stevetraylen terjeros
khard mathstuf sdyroff
kismon fab
koji ausil kevin mikem puiterwijk
lammps ellio167 junghans
legofy lkf williamjmorenor
libcaca hubbitus slaanesh thias
libiptcdata dcm hobbes1069 jchaloup
libnuml sagitter
libreoffice caolanm dtardon erack sbergmann
lldb airlied daveisfera jankratochvil sergesanspaille
siddharths tstellar
llvm dmalcolm ignatenkobrain jakub jistone kyle scottt
sergesanspaille siddharths tstellar
llvm10 sergesanspaille tstellar
llvm11 sergesanspaille tstellar
llvm7.0 jistone petersen sergesanspaille tstellar
llvm9.0 jistone sergesanspaille tstellar
mercurial kiilerix nbecker pstodulk
mod_wsgi jdornak jkaluza jorton lmacken mrunge
moose zbyszek
mypaint avsej
mysql-connector-python hhorak hubbitus hvad mschorm
nototools mfabian pwu
officeparser rebus
offlineimap cicku dodji sergesanspaille teuf
openbabel alexpl jussilehtola rathann
percol hubbitus
poezio fantom louizatakk
porcupine kushal
protontricks atim
protonvpn-cli calexandru2018 jflory7
prunerepo frostyx praiskup
pyaudio chkr
pyhunspell mfabian
pyodbc fjanus hhorak
pyscard orion sjenning
pyserial stingray
python-CommonMark jujens
python-GridDataFormats rathann
python-OBD rathann
python-Pyped uggla
python-Rtree volter
python-acoustid terjeros
python-agate jujens
python-aiodns fantom
python-ansicolors fab
python-apprise lead2gold
python-apsw cicku dfateyev maci
python-arviz sergiopr
python-astroplan sergiopr
python-astropy-healpix lupinix
python-astroquery lupinix
python-astroscrappy lupinix
python-asttokens zbyszek
python-audioread terjeros
python-autobahn fab jujens
python-autopep8 mrunge ndipanov
python-b2sdk jonny
python-bloom cottsay rmattes
python-blosc tnorth zbyszek
python-box dmsimard fab
python-btchip jonny xenithorb
python-cached_property adamwill immanetize
python-carbon jsteffan piotrp
python-ccdproc lupinix
python-certbot-apache nb
python-chai kevin pingou ralph
python-cmigemo hubbitus
python-colorspacious rathann
python-construct moezroy terjeros
python-contextlib2 abompard pingou ralph tjikkun
python-cookiecutter chedi wakko666
python-crochet abompard
python-css-parser zbyszek
python-dbfread jujens
python-debrepo ktdreyer
python-dialog mjakubicek noodles raphgro sundaram zbyszek
python-dijitso limb
python-django-contact-form mrunge
python-django-health-check dmsimard
python-django-registration orphan
python-django-reversion mrunge
python-django-tagging jdornak mrunge piotrp
python-django-tastypie bkabrda cquad mrunge stevetraylen
python-docx kushal124
python-dtfabric fab
python-dukpy zbyszek
python-editorconfig barracks510
python-ephem fab
python-et_xmlfile jujens
python-etcd mbarnes smilner
python-fasteners mrunge
python-ffc zbyszek
python-fields cottsay
python-fisx zbyszek
python-fitsio lupinix
python-flake8-docstrings cottsay
python-flask-gravatar devrim orphan
python-flask-htmlmin devrim iztokf
python-flask-paranoid devrim orphan
python-flask-rstpages rmarko
python-flask-security devrim orphan
python-flask-sphinx-themes devrim orphan
python-flask-wtf-decorators frostyx
python-formats uggla
python-fypp rathann
python-gevent-eventemitter atim
python-google-i18n-address pwouters
python-googletrans lyessaadi
python-graphql-relay fab
python-heapdict qulogic
python-html5-parser kevin
python-htmlmin jujens
python-humblewx rickardlindberg
python-hupper kevin
python-i3ipc alebastr
python-inotify jfilak stevetraylen terjeros
python-jep raphgro
python-jinja2-cli jujens
python-jinja2-time chedi wakko666
python-jnius raphgro
python-joblib besser82 ignatenkobrain sergiopr
python-jsonmodels oanson
python-jsonrpclib ihrachyshka jonny
python-kerberos rcritten simo
python-kitchen kevin pingou ralph
python-landslide echevemaster salimma
python-lark-parser totol
python-leather jujens
python-libsass nonamedotc
python-libusb1 jonny
python-lmdb jruzicka pspacek tkrizek
python-logfury jonny
python-managesieve stevetraylen
python-matrix-nio ankursinha
python-meld3 kevin stevetraylen tsao
python-minibelt uggla
python-mmtf rathann
python-mnemonic jonny
python-music21 zbyszek
python-mwclient adamwill rdieter tuxbrewr
python-myhdl filiperosset
python-nbclient nonamedotc
python-nbxmpp michich suraia
python-networkmanager jdulaney
python-notario ktdreyer
python-oauth2 ignatenkobrain pjp spot sundaram
python-openoffice sharkcz
python-ouimeaux kni
python-pandas-datareader sergiopr
python-paste-script andreamanzi
python-patsy sergiopr
python-pbkdf2 jonny
python-pecan-notario ktdreyer
python-pelican firemanxbr mrunge
python-pexpect amcnabb fabiand ignatenkobrain radez swt2c tomspur
python-plaster-pastedeploy abompard
python-plumbum greghellings lorenzodalrio
python-polib cicku dchen diegobz dshea ivazquez moezroy suanand
python-precis_i18n michich
python-proteus sharkcz
python-publicsuffix2 rathann
python-pulsectl pfrields
python-pvc raphgro
python-pycares fantom
python-pycha potty sharkcz
python-pygeoip kevin ralph
python-pylons-sphinx-themes abompard
python-pymc3 sergiopr
python-pynn ankursinha
python-pyotp icon
python-pypng kevin ralph
python-pyqtgraph swt2c
python-pyramid_sawing abompard
python-pysb zbyszek
python-pysignals kni
python-pyswip pampelmuse
python-pyte terjeros
python-pytest-astropy-header sergiopr
python-pytest-mock fab jujens
python-pytest-repeat cottsay
python-pytest-watch jujens
python-pyvo lupinix
python-readthedocs-sphinx-ext jjames
python-recommonmark jujens
python-relatorio sharkcz
python-requests-cache codeblock hobbes1069
python-restructuredtext-lint jujens
python-retrying apevec
python-rmtest lberk mgoodwin nathans
python-rosdep cottsay rmattes thofmann
python-sanction kevin ralph
python-scikit-learn besser82 ignatenkobrain lupinix sergiopr
python-scrapy echevemaster
python-setuptools-lint jdulaney
python-shamir-mnemonic jonny
python-simplemediawiki lmacken potty ralph
python-slixmpp fantom louizatakk
python-smbc twaugh zdohnal
python-snappy jujens
python-social-auth-core cqi
python-soupsieve zbyszek
python-spdx jbertozzi
python-spdx-lookup jbertozzi
python-sphinxcontrib-bibtex jjames
python-statsd pabelanger tdecacqu
python-steam atim
python-tables tnorth zbyszek
python-tempdir rathann
python-timeout-decorator jcapitao
python-tinydb suanand
python-tortilla uggla
python-tqdm ignatenkobrain sgallagh
python-tree-format chedi wakko666
python-trezor jonny
python-twilio mich181189
python-txaio fab jujens
python-unidecode pjp sundaram
python-unidiff dcallagh
python-upt-cpan jbertozzi
python-upt-fedora jbertozzi
python-upt-pypi jbertozzi
python-upt-rubygems jbertozzi
python-urwidtrees ttomecek
python-vdf atim
python-wand barracks510
python-watchdog jsteffan jujens pingou
python-webencodings abompard
python-webpy mrunge
python-wsaccel jujens
python-xlwt leamas moezroy rathann
python-xvfbwrapper mrunge totol
python-yarl fab ignatenkobrain
python-zstandard rathann
python3-postgresql hhorak
python3-pytest-asyncio jujens
python3-saml dcallagh tchaikov
qemu berrange bonzini crobinso dwmw2 ehabkost jforbes
lkundrak quintela rjones
rdkit giallu
root ellert
rpmspectool nphilipp
salt blarson dmurphy18 krionbsd
sepolicy_analysis vmojzis
solaar brouhaha rathann richardfearn tibbs
spec2scl jstanek
starcal hedayat
stomppy stevetraylen
sugar-speak callkalpa chimosky pbrobinson tuxbrewr
swid-tools adelton
swift-lang tachoknight
terminator dmaphy mattrose ohaessler
texlive-base spot
toot alciregi
translate-toolkit cicku dwayne petersen suanand
trellis lkundrak somlo
tryton sharkcz
trytond sharkcz
trytond-account sharkcz
trytond-account-be sharkcz
trytond-account-de-skr03 sharkcz
trytond-account-invoice sharkcz
trytond-account-invoice-history sharkcz
trytond-account-invoice-line-standalone sharkcz
trytond-account-product sharkcz
trytond-account-statement sharkcz
trytond-account-stock-anglo-saxon sharkcz
trytond-account-stock-continental sharkcz
trytond-analytic-account sharkcz
trytond-analytic-invoice sharkcz
trytond-analytic-purchase sharkcz
trytond-analytic-sale sharkcz
trytond-company sharkcz
trytond-company-work-time sharkcz
trytond-country sharkcz
trytond-currency sharkcz
trytond-dashboard sharkcz
trytond-google-maps sharkcz
trytond-ldap-authentication sharkcz
trytond-party sharkcz
trytond-party-siret sharkcz
trytond-product sharkcz
trytond-product-cost-fifo sharkcz
trytond-product-cost-history sharkcz
trytond-product-price-list sharkcz
trytond-project sharkcz
trytond-project-plan sharkcz
trytond-project-revenue sharkcz
trytond-purchase sharkcz
trytond-purchase-invoice-line-standalone sharkcz
trytond-sale sharkcz
trytond-sale-opportunity sharkcz
trytond-sale-price-list sharkcz
trytond-stock sharkcz
trytond-stock-forecast sharkcz
trytond-stock-inventory-location sharkcz
trytond-stock-location-sequence sharkcz
trytond-stock-product-location sharkcz
trytond-stock-supply sharkcz
trytond-stock-supply-day sharkcz
trytond-timesheet sharkcz
ubertooth avsej
uhd jskarvad
upt jbertozzi
uwsgi kad
watchman dcavalca filbranden salimma
wine-mono mooninite
winpdb spot
xrootd ellert simonm
xtensor-python sergesanspaille
yawn jsafrane miminar vcrhonek
Packages by maintainer:
abompard fedora-messaging python-contextlib2 python-crochet
python-plaster-pastedeploy python-pylons-sphinx-themes
python-pyramid_sawing python-webencodings
adamwill python-cached_property python-mwclient
adelton swid-tools
adev gfal2-python
airlied lldb
alciregi toot
alebastr python-i3ipc
alexl firefox
alexpl openbabel
amcnabb python-pexpect
andreamanzi gfal2-python python-paste-script
ankursinha python-matrix-nio python-pynn
apevec crudini python-retrying
asn git-filter-repo
atim protontricks python-gevent-eventemitter python-steam python-vdf
ausil koji
avsej mypaint ubertooth
barracks510 python-editorconfig python-wand
berrange qemu
besser82 python-joblib python-scikit-learn
bizdelnick dlib
bkabrda python-django-tastypie
blarson salt
bonzini qemu
brouhaha solaar
c72578 cppcheck
calexandru2018 protonvpn-cli
callkalpa sugar-speak
caolanm firefox libreoffice
chedi python-cookiecutter python-jinja2-time python-tree-format
chimosky sugar-speak
chkr pyaudio
cicku offlineimap python-apsw python-polib translate-toolkit
codeblock python-requests-cache
cottsay python-bloom python-fields python-flake8-docstrings
python-pytest-repeat python-rosdep
cqi python-social-auth-core
cquad python-django-tastypie
crobinso qemu
davdunc ec2-hibinit-agent
daveisfera lldb
dcallagh ansible-review python-unidiff python3-saml
dcavalca fbthrift folly watchman
dchen python-polib
dcm libiptcdata
design-sw blender
devrim python-flask-gravatar python-flask-htmlmin python-flask-paranoid
python-flask-security python-flask-sphinx-themes
dfateyev python-apsw
diegobz python-polib
dmalcolm llvm
dmaphy terminator
dmsimard python-box python-django-health-check
dmurphy18 salt
dodji offlineimap
dshea python-polib
dtardon libreoffice
duriantang bumpversion
dwayne translate-toolkit
dwmw2 qemu
echevemaster python-landslide python-scrapy
ehabkost qemu
ellert root xrootd
ellio167 lammps
erack firefox libreoffice
fab gpsd kismon python-ansicolors python-autobahn python-box
python-dtfabric python-ephem python-graphql-relay python-pytest-mock
python-txaio python-yarl
fabiand python-pexpect
fantom poezio python-aiodns python-pycares python-slixmpp
filbranden fbthrift folly watchman
filiperosset python-myhdl
firemanxbr python-pelican
fjanus pyodbc
frixxon fontforge
frostyx prunerepo python-flask-wtf-decorators
gecko-maint firefox
giallu rdkit
greghellings cinch python-plumbum
hedayat starcal
hhorak PyGreSQL mysql-connector-python pyodbc python3-postgresql
hobbes1069 blender libiptcdata python-requests-cache
hubbitus libcaca mysql-connector-python percol python-cmigemo
hvad mysql-connector-python
icon python-pyotp
ignatenkobrain 0ad blender btrfs-progs llvm python-joblib python-oauth2
python-pexpect python-scikit-learn python-tqdm python-yarl
ihrachyshka python-jsonrpclib
immanetize python-cached_property
ivazquez python-polib
iztokf python-flask-htmlmin
jakub llvm
jankratochvil lldb
jbertozzi python-spdx python-spdx-lookup python-upt-cpan python-upt-fedora
python-upt-pypi python-upt-rubygems upt
jcapitao python-timeout-decorator
jchaloup libiptcdata
jdornak bumpversion mod_wsgi python-django-tagging
jdulaney python-networkmanager python-setuptools-lint
jfilak python-inotify
jflory7 protonvpn-cli
jforbes qemu
jgrulich firefox
jistone llvm llvm7.0 llvm9.0
jjames python-readthedocs-sphinx-ext python-sphinxcontrib-bibtex
jkaluza mod_wsgi
jmlich PyGreSQL
jonny python-b2sdk python-btchip python-jsonrpclib python-libusb1
python-logfury python-mnemonic python-pbkdf2 python-shamir-mnemonic
python-trezor
jorton mod_wsgi
josef btrfs-progs
jruzicka crudini python-lmdb
jsafrane yawn
jskarvad uhd
jstanek spec2scl
jsteffan python-carbon python-watchdog
jujens python-CommonMark python-agate python-autobahn python-dbfread
python-et_xmlfile python-htmlmin python-jinja2-cli python-leather
python-pytest-mock python-pytest-watch python-recommonmark
python-restructuredtext-lint python-snappy python-txaio python-watchdog
python-wsaccel python3-pytest-asyncio
junghans lammps
jussilehtola OpenMolcas cppcheck gau2grid openbabel
kad uwsgi
kalev firefox
kengert firefox
kevin fontforge koji python-chai python-html5-parser python-hupper
python-kitchen python-meld3 python-pygeoip python-pypng python-sanction
kiilerix mercurial
kni python-ouimeaux python-pysignals
krionbsd salt
ktdreyer python-debrepo python-notario python-pecan-notario
kushal porcupine
kushal124 python-docx
kwizart blender gns3-gui gns3-net-converter gns3-server
kyle llvm
lberk python-rmtest
lead2gold python-apprise
leamas python-xlwt
lenkaseg cranc
limb python-dijitso
lkf legofy
lkundrak qemu trellis
lmacken mod_wsgi python-simplemediawiki
lorenzodalrio python-plumbum
louizatakk poezio python-slixmpp
lupinix ginga python-astropy-healpix python-astroquery
python-astroscrappy python-ccdproc python-fitsio python-pyvo
python-scikit-learn
luya blender dlib
lyessaadi python-googletrans
maci python-apsw
mathstuf khard
mattrose terminator
mbarnes commissaire-client firefox python-etcd
mfabian nototools pyhunspell
mgieseki cxxtest
mgoodwin python-rmtest
mich181189 python-twilio
michich gajim python-nbxmpp python-precis_i18n
mikem koji
miminar yawn
mjakubicek python-dialog
mlichvar gpsd
moezroy python-construct python-polib python-xlwt
mooninite wine-mono
mrunge mod_wsgi python-autopep8 python-django-contact-form
python-django-reversion python-django-tagging python-django-tastypie
python-fasteners python-pelican python-webpy python-xvfbwrapper
mschorm mysql-connector-python
nathans python-rmtest
nb python-certbot-apache
nbecker mercurial
ndipanov python-autopep8
ngompa btrfs-progs
nonamedotc python-libsass python-nbclient
noodles python-dialog
nphilipp rpmspectool
nucleo gns3-server
oanson python-jsonmodels
odubaj PyGreSQL
ohaessler terminator
orion pyscard
orphan python-django-registration python-flask-gravatar
python-flask-paranoid python-flask-security python-flask-sphinx-themes
pabelanger python-statsd
pampelmuse python-pyswip
panovotn PyGreSQL
pbrady crudini
pbrobinson sugar-speak
pcpa 0ad
petersen llvm7.0 translate-toolkit
pfrields python-pulsectl
pingou R2spec python-chai python-contextlib2 python-kitchen
python-watchdog
piotrp python-carbon python-django-tagging
pjp python-oauth2 python-unidecode
pkubat PyGreSQL
pnemade fontforge
potty python-pycha python-simplemediawiki
praiskup PyGreSQL prunerepo
pspacek python-lmdb
pstodulk mercurial
puiterwijk koji
pwalter 0ad
pwouters python-google-i18n-address
pwu nototools
quintela qemu
qulogic python-heapdict
radez python-pexpect
ralph datanommer python-chai python-contextlib2 python-kitchen
python-pygeoip python-pypng python-sanction python-simplemediawiki
raphgro python-dialog python-jep python-jnius python-pvc
rathann calypso openbabel python-GridDataFormats python-OBD
python-colorspacious python-fypp python-mmtf python-publicsuffix2
python-tempdir python-xlwt python-zstandard solaar
rcritten python-kerberos
rdieter python-mwclient
rebus officeparser
rhughes firefox
richardfearn solaar
rickardlindberg python-humblewx
rjones qemu
rmarko python-flask-rstpages
rmattes python-bloom python-rosdep
roma blender
rstrode firefox
s4504kr blender
sagitter libnuml
salimma fbthrift folly python-landslide watchman
sandeen btrfs-progs
sbergmann libreoffice
scottt llvm
sdyroff khard
sergesanspaille lldb llvm llvm10 llvm11 llvm7.0 llvm9.0 offlineimap
xtensor-python
sergiopr python-arviz python-astroplan python-joblib
python-pandas-datareader python-patsy python-pymc3
python-pytest-astropy-header python-scikit-learn
sgallagh python-tqdm
sgrubb cppcheck
sharkcz firefox python-openoffice python-proteus python-pycha
python-relatorio tryton trytond trytond-account trytond-account-be
trytond-account-de-skr03 trytond-account-invoice
trytond-account-invoice-history trytond-account-invoice-line-standalone
trytond-account-product trytond-account-statement
trytond-account-stock-anglo-saxon trytond-account-stock-continental
trytond-analytic-account trytond-analytic-invoice trytond-analytic-purchase
trytond-analytic-sale trytond-company trytond-company-work-time
trytond-country trytond-currency trytond-dashboard trytond-google-maps
trytond-ldap-authentication trytond-party trytond-party-siret
trytond-product trytond-product-cost-fifo trytond-product-cost-history
trytond-product-price-list trytond-project trytond-project-plan
trytond-project-revenue trytond-purchase
trytond-purchase-invoice-line-standalone trytond-sale
trytond-sale-opportunity trytond-sale-price-list trytond-stock
trytond-stock-forecast trytond-stock-inventory-location
trytond-stock-location-sequence trytond-stock-product-location
trytond-stock-supply trytond-stock-supply-day trytond-timesheet
siddharths lldb llvm
simo python-kerberos
simonm xrootd
sjenning pyscard
slaanesh barman blender libcaca
smilner commissaire-client python-etcd
somlo trellis
spot python-oauth2 texlive-base winpdb
stevetraylen h5py python-django-tastypie python-inotify python-managesieve
python-meld3 stomppy
stingray pyserial
stransky firefox
suanand python-polib python-tinydb translate-toolkit
sundaram python-dialog python-oauth2 python-unidecode
suraia gajim python-nbxmpp
swt2c python-pexpect python-pyqtgraph
tachoknight swift-lang
tchaikov python3-saml
tdecacqu python-statsd
terjeros h5py python-acoustid python-audioread python-construct
python-inotify python-pyte
teuf offlineimap
thias libcaca
thofmann python-rosdep
tibbs solaar
tjikkun python-contextlib2
tkrizek python-lmdb
tnorth ViTables python-blosc python-tables
tomspur python-pexpect
totol python-lark-parser python-xvfbwrapper
tpopela firefox
tredaell electrum
tsao barman python-meld3
tstellar lldb llvm llvm10 llvm11 llvm7.0 llvm9.0
ttomecek python-urwidtrees
ttorling gpsd
ttrinks ansible-review
tuxbrewr python-mwclient sugar-speak
twaugh python-smbc
ueno firefox
uggla python-Pyped python-formats python-minibelt python-tortilla
vcrhonek yawn
vmojzis sepolicy_analysis
volter python-Rtree
wakko666 python-cookiecutter python-jinja2-time python-tree-format
williamjmorenor legofy
xenithorb python-btchip
xhorak firefox
zbyszek ViTables moose python-asttokens python-blosc python-css-parser
python-dialog python-dukpy python-ffc python-fisx python-music21
python-pysb python-soupsieve python-tables
zdohnal python-smbc
3 years
ELN composes on mirrors
by Davide Cavalca
I had filed https://github.com/fedora-eln/eln/issues/33 a while ago to
track documentation improvements around how to consume ELN composes.
I'd like to take a step back and propose adding them to the mirror
network, akin to what we already do for Rawhide. This would make it
trivial to consume or mirror them locally (e.g. via rsync), without
having to hit ODCS directly. The only downside I can think of is that
it'd consume a bit more storage on the mirrors themselves. Thoughts?
Cheers
Davide
3 years
Fedora's GPG key in DNS(SEC)
by Miroslav Suchý
All Fedora's GPG key - starting with Fedora 27 - are now stored in fedoraproject.org DNS record and can be verified
using DNSSEC.
Why? How it can be used? That is long story and you can read about it in my blog entry:
http://miroslav.suchy.cz/blog/archives/2021/02/11/verify_package_gpg_sign...
Few last minutes notes here:
- there are still some gotchas which should be fixed. But enough code is already in production - you can play with it
now. Relevant issues are linked in the blog post.
- the DNF team is migrating their code to libdnf, I do not have any guarantee when this piece of code will be
migrating - so we are far from enabling this by default.
Comments are welcomed.
--
Miroslav Suchy, RHCA
Red Hat, Associate Manager, Community Packaging Tools, #brno, #fedora-buildsys
3 years
thinking journal retention timelimits
by Matthew Miller
As we start a new year, I'm thinking about data retention in general. :)
In my experience, it's pretty rare on an end-user laptop or desktop system for
logs from much more than the previous boot to be interesting. Maybe I
occasionally want to look back a little while to see if a problem just
started. It's exceedingly rare that I need (or want) to look back more than
a month.
Right now, we don't set MaxRetentionSec, so journal expiry on Workstation is
entirely based on disk usage.
Logs can accidentally contain sensitive data, and it's just plain faster to
work with them when there's less. I propose we set this to something like
six months by default.
--
Matthew Miller
<mattdm(a)fedoraproject.org>
Fedora Project Leader
3 years
Donate 1 minute of your time to test upgrades from F33 to F34
by Miroslav Suchý
Do you want to make Fedora 34 better? Please spend 1 minute of your time and try to run:
# Run this only if you use default Fedora modules
# next time you run any DNF command default modules will be enabled again
sudo dnf module reset '*'
sudo dnf --releasever=34 --setopt=module_platform_id=platform:f34 \
--enablerepo=updates-testing --enablerepo=updates-testing-modular \
distro-sync
This command does not replace `dnf system-upgrade`, but it will reveal potential problems. You may also run `dnf
upgrade` before running this command.
If you have have rdma-core.i686 installed you have to pass `--allowerasing`.
https://bugzilla.redhat.com/show_bug.cgi?id=1919864
If you get this prompt:
...
Total download size: XXX M
Is this ok [y/N]:
you can answer N and nothing happens, no need to test the actual upgrade.
But very likely you get some dependency problem now. In that case, please report it against the appropriate package. Or
against fedora-obsolete-packages if that package should be removed in Fedora 34. Please check existing reports against
fedora-obsolete-packages first:
https://red.ht/2kuBDPu
and also there is already bunch of "Fails to install" reports:
https://bugzilla.redhat.com/show_bug.cgi?id=F34FailsToInstall
Thank you
P.S. sent from workstation successfully upgraded to F34 :)
--
Miroslav Suchy, RHCA
Red Hat, Associate Manager, Community Packaging Tools, #brno, #fedora-buildsys
3 years
Multiple snapshots and versioning
by Artur Frenszek-Iwicki
I'm looking to package some GTK themes. Those themes come in several colour
variants. The author decided on a workflow where, instead of keeping variants
alongside each other in the tree, each variant has its own git branch.
When working with git snapshots, the packaging guidelines [1] say to put
the snapshot data in the Release: field. This is simple enough when working
with a single "main" source, but what when there's multiple sources?
A solution could be to put each colour variant into a subpackage,
and make the "main" package a file-less package that just Requires:
all the colour variants. This way, each subpackage can have a different
Release: tag. However, doing this messes with rpmdev-bumpspec, which
gets confused and slaps ".1" at the end of each subpackage's Release: tag,
which in turn makes the Requires: unsatisfiable.
I could, alternatively, put the snapshot data in each subpackage's
Version: tag, but this goes against the Guidelines.
I could also just pretend that there's only one source, ship everything as one
package, and only use the snapshot info for the "main" branch. Though
this is a rather inelegant approach.
So, I guess my question is: what would be the preferred approach?
[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_sn...
3 years
Depict: package dependency visualizer
by Jerry James
Hello all,
There is no reason anybody should remember, but last summer I
mentioned 3 tools that I really wanted to help me deal with packaging
issues. The first was opam2rpm, which I started work on last fall.
It isn't done by a long shot, but it is useful enough that I started
working on tool #2.
Introducing "depict", a Python tool to visualize package dependencies:
https://pagure.io/depict
The name is supposed to suggest "DEpendency PICTure", unless somebody
can come up with a better expansion. :-) I wanted this tool to help
me see package dependency cycles, and find ways of breaking them.
Depict comes with the ability to detect cycles and suggest low-cost
ways of breaking them (for a user-defined notion of "cost"). It's
still alpha quality, but I think it has reached a point where some of
you may find it useful. I welcome suggestions for improvement, and
pull requests are even better.
Depict can currently read dependency information from a local RPM
database, from opam (a collection of OCaml packages), and from a
specialized JSON format. I would like to eventually add a "dnf
repoquery" style front end, as well as one for Maven Central.
Here are some excessively complex examples:
Example 1:
python3 -m depict \
--input=json examples/rpm.js \
--input=rpm --stop dbus-broker:dconf:glibc:gcc:libgcc:systemd-udev \
--exclude alternatives:bash:ca-certificates:coreutils:crypto-policies:crypto-policies-scripts:device-mapper:dracut:fedora-release-common:fedora-release-workstation:fedora-repos:filesystem:fonts-filesystem:gawk:gdk-pixbuf2-modules:grep:grubby:gtk-update-icon-cache:hwdata:mkpasswd:nss-util:nss-sysinit:os-prober:pam:pcre2-syntax:python-unversioned-command:python3:python3-setuptools:rpm-libs:sed:setup:shadow-utils:shared-mime-info:systemd:tzdata
\
firefox --graph=dag --solver=ppl --output=dot firefox.dot
That says to:
1. read the JSON file examples/rpm.js, which contains some visual styling;
2. read from the RPM database:
a. If any of the packages dbus-broker, dconf, etc. are encountered, add them
to the dependency graph, but don't follow their dependencies any further.
b. If any of the packages alternatives, bash, etc. are encountered, do not
add them to the dependency graph.
c. Add the package firefox and its dependencies to the graph, subject to
(a) and (b).
3. compute a Directed Acyclic Graph (DAG) from the original dependency graph
a. use the PPL solver to find low-cost dependencies to remove
4. write the DAG in dot format to firefox.dot. The dot tool, from the graphviz
package, can then convert it into a variety of formats; e.g.,
dot -Tpdf firefox.dot > firefox.pdf
Example 2:
python3 -m depict --up --input=json examples/rpm.js --input=rpm flint
--output=dot flint.dot
That says to compute "up" dependencies instead of the default "down"
dependencies. "Up" means to find the packages that depend on those
listed on the command line. "Down" means to find packages that are
depended upon by the packages listed on the command line. So this
example finds every package installed on my machine that depends on
flint, directly or indirectly.
Example 3:
python3 -m depict --input=json examples/opam.js \
--input=opam --exclude mirage-xen:mirage-xen-ocaml --stop ocaml \
--omit-edges 'spawn,ppx_expect:bisect_ppx,ocamlformat:functoria-runtime,dune'\
--repository ~/src/opam-repository ocaml:4.12.0 \
async ANSITerminal apron atdgen base64 cmdliner core conf-autoconf conf-gmp \
conf-mpfr conf-sqlite3 conf-zlib ctypes dune elina javalib mlgmpidl mtime \
ocamlfind ocamlgraph ounit parmap ppx_deriving ppx_fields_conv ppx_let \
sawja sqlite3 utop xmlm yojson zarith \
--graph=dag --output=dot infer.dot --output=layered -
That says to:
1. read the JSON file examples/opam.js, which contains some visual styling;
2. read from opam:
a. If the packages mirage-xen or mirage-xen-ocaml are encountered, do not
add them to the dependency graph.
b. If the package ocaml is encountered, do not add any of its dependencies
to the graph.
c. If any opam file tries to add a dependency from spawn to ppx_expect,
from bisect_ppx to ocamlformat, etc. do not add those dependencies to the
graph. I omitted these because they represent dependencies on old
versions.
d. Use a local checkout of opam-repository rather than making HTTP requests
to github. You really, really do NOT want to make HTTP requests to
github to read opam information. That method is sloooooooooooow.
e. Add the packages ocaml, async, etc. and their dependencies to the graph,
subject to (a), (b), and (c). In addition, specify that we want version
4.12.0 of the ocaml package. These are the direct dependencies of
Facebook's Infer tool, in case you are wondering.
3. compute a Directed Acyclic Graph (DAG) from the original dependency graph
4. write the DAG in dot format to infer.dot.
5. write a "layered" description of the package dependencies to standard out.
Layer 0 consists of packages with no dependencies in the graph. Layer 1
contains packages whose dependencies all lie in layer 0, and so on.
The documentation is a horrible mess, and the tests are nearly
nonexistent, which is why I have marked this as alpha quality. The
RPM front end is actually in quite good shape. The opam front end is
coming along, but needs some more work.
Feel free to make pull requests against the TODO file if you see some
way depict can be improved that isn't already listed there.
Regards.
--
Jerry James
http://www.jamezone.org/
3 years
RFC: declaring estimated per-builder RAM usage in spec file
by Michel Alexandre Salim
Hi all,
This idea came about when I'm debugging build issues with mcrouter,
which turns out to be due to build jobs failing to allocate memory and
getting terminated without aborting the entire compilation, causing
link issues when empty or corrupted objects are encountered:
https://src.fedoraproject.org/rpms/mcrouter/blob/rawhide/f/mcrouter.spec#...
As a rough estimate it seems like each of the CPU core passed with
%{_smp_build_ncpus} ended up consuming close to 8 GB of RAM. And that's
with LTO disabled (yeah, it's not a good situation to be in).
Right now I'm just overriding _smp_build_ncpus to 1, but there is a
more elegant solution I'd like to propose:
What if one can declaratively set the required RAM per build job --
either with a single macro, or maybe two if the LTO usecase requires
even more RAM. e.g. to declare each core might take up to 8 GB:
%global _smp_build_ram_per_cpu 8192
then in case this is run on our aarch64 builder with 40GB RAM,
dynamically take the minimum of the existing _smp_build_ncpus (which
AIUI is determined by the number of cores on the machine) and (amount
of RAM / _smp_build_ram_per_cpu), in this case capping the actual
number passed to -j to 5.
Is there interest in having this be available? I could imagine it might
be useful for other resource-intensive package builds e.g. for
Chromium.
Best regards,
--
Michel Alexandre Salim
profile: https://keyoxide.org/michel@michel-slm.name
3 years
Please clarify master vs main vs rawhide branches
by Steven A. Falco
I see that the master to main conversion has happened. I'd like to know the recommended way to deal with that.
Currently, I'm doing:
git fetch --all
git remote prune origin
git remote set-head origin -a
git checkout main
The above sets origin/HEAD to rawhide
Question 1: Is that the right set of steps, or is there a better way to update my local repos?
Question 2: For the packages I maintain, should I put changes in main or rawhide? Should I keep main and rawhide in sync?
Steve
3 years