#5 Find orphaned packages
Merged 5 years ago by tibbs. Opened 5 years ago by churchyard.
churchyard/fedora-misc-package-utilities find-orphaned-packages  into  master

file modified
+6
@@ -42,3 +42,9 @@ 

  

  For convenience, will look for ldconfig and install-info calls when called as

  find-ldconfig-calls and find-installinfo-calls, respectively.

+ 

+ find-orphaned-packages

+ ----------------------

+ 

+ This lists all orphaned packages that are not retired on master.

+ Needs Python 3.7 and aiohttp.

@@ -0,0 +1,40 @@ 

+ #!/usr/bin/python3.7

+ import asyncio

+ import aiohttp

+ 

+ 

+ async def all_orphanned():

+     url = 'https://src.fedoraproject.org/extras/pagure_owner_alias.json'

+     async with aiohttp.ClientSession() as session:

+         async with session.get(url) as resp:

+             rpms = (await resp.json())['rpms']

+     for pkg in rpms:

+         if 'orphan' in rpms[pkg]:

+             yield pkg

+ 

+ 

+ async def print_if_not_retired(pkg, sleep=1):

+     url = f'https://src.fedoraproject.org/rpms/{pkg}/blob/master/f/dead.package'

+     async with aiohttp.ClientSession() as session:

+         try:

+             async with session.head(url) as resp:

+                 if resp.status == 404:

+                     print(pkg)

+                 elif resp.status >= 400:

+                     raise aiohttp.client_exceptions.ServerConnectionError()

+         except (aiohttp.client_exceptions.ClientError, asyncio.TimeoutError):

+             if sleep > 15 * 60:

+                 raise

+             await asyncio.sleep(sleep)

+             return await print_if_not_retired(pkg, sleep*2)

+ 

+ 

+ async def main():

+     tasks = []

+     async for pkg in all_orphanned():

+         tasks.append(asyncio.create_task(print_if_not_retired(pkg)))

+     await asyncio.gather(*tasks)

+ 

+ 

+ if __name__ == '__main__':

+     asyncio.run(main())

no initial comment

Current results:

2ping
Canna
NetPIPE
OpenTK
PySolFC
PySolFC-cardsets
PySolFC-music
Quake2
RepetierHost
adonthell
aldusleaf-crimson-text-fonts
almas-mongolian-title-fonts
ambari
apigen
arc-theme
arm-none-eabi-gdb
ascii-design
ath_info
audiofile
autodocksuite
aws-shell
balloontip
bonesi
bouml
bouml-doc
brightnessctl
caribou
cclive
cdm
cf-sorts-mill-goudy-fonts
chck
clamav-unofficial-sigs
cpptest
csmith
dnscrypt-proxy
doclifter
dojo
dokuwiki
dpkg
dreamchess-tools
dzen2
eclipse-emf-mwe
eclipse-emf-transaction
eclipse-xpand
eclipse-xtext
eclipse-xtext-antlr-generator
editarea
emacs-mew
enemies-of-carlotta
evopop-gtk-theme
evopop-icon-theme
fbset
fotowall
freehoo
frepple
gausssum
gdesklets-goodweather
getdata
ghc-fgl
ghc-hgettext
ghc-pcap
ghc-setlocale
git-bugzilla
gmusicbrowser
gnome-hearts
gnome-shell-extension-calc
gnudiff
golang-github-docopt-docopt-go
golang-github-go-errors-error
google-roboto-mono-fonts
gsview
herbstluftwm
hex-a-hop
hexalate
hive
hoard
hornetq
htmlparser
httrack
hunspell-de
hyphen-de
ike
impallari-lobster-fonts
iniparser
inkboy-fonts
ioping
ipplan
isrcsubmit
jacknativeclient
javasysmon
jbosscache-support
jemmy
jinput
jktestpackage
js-jquery1
js-jquery2
knapsen
ladspa-swh-plugins
ldd-pdf
libcryptui
libnatpmp
libpuzzle
libpwiz
libqxt
log4shib
lzma
mMass
madplay
makedepf90
mbox2eml
metamorphose2
min12xxw
mindi-busybox
minion
modplugtools
moka-icon-theme
monitor-edid
monkeystudio
moyogo-molengo-fonts
mozvoikko
mph-2b-damase-fonts
mylvmbackup
mythes-de
ncftp
ngrep
nodejs-accepts
nodejs-agent-base
nodejs-as-number
nodejs-browser-request
nodejs-capture-stack-trace
nodejs-chainsaw
nodejs-corser
nodejs-create-error-class
nodejs-decompress-response
nodejs-duplex
nodejs-duplexer3
nodejs-ecstatic
nodejs-encoding
nodejs-errs
nodejs-event-stream
nodejs-eventemitter3
nodejs-fd-slicer
nodejs-filed
nodejs-follow
nodejs-from2
nodejs-get-stream
nodejs-gettext-parser
nodejs-got
nodejs-grunt-html-validation
nodejs-has-unicode
nodejs-he
nodejs-http-proxy
nodejs-http-proxy-agent
nodejs-http-server
nodejs-infinity-agent
nodejs-into-stream
nodejs-is-plain-obj
nodejs-is-redirect
nodejs-is-retry-allowed
nodejs-json-parse-better-errors
nodejs-lowercase-keys
nodejs-map-stream
nodejs-mimic-response
nodejs-minstache
nodejs-native-or-bluebird
nodejs-nested-error-stacks
nodejs-node-print
nodejs-node-status-codes
nodejs-nsp-api
nodejs-nsp-audit-shrinkwrap
nodejs-p-is-promise
nodejs-package-info
nodejs-parse-json
nodejs-pause-stream
nodejs-pegjs
nodejs-pem
nodejs-portfinder
nodejs-posix-getopt
nodejs-prepend-http
nodejs-proxy-agent
nodejs-rc
nodejs-registry-url
nodejs-requires-port
nodejs-seq
nodejs-silent-npm-registry-client
nodejs-stream-reduce
nodejs-strscanner
nodejs-superagent-proxy
nodejs-test
nodejs-timed-out
nodejs-ttembed-js
nodejs-typedarray
nodejs-union
nodejs-url-join
nodejs-url-parse-lax
nodejs-w3cjs
nodejs-xmldom
nodejs-yauzl
not-yet-commons-ssl
novprog
npush
ntetris
ntop
nudoku
oflb-brett-fonts
oflb-icelandic-fonts
oflb-roadstencil-fonts
oflb-sportrop-fonts
ofono
openjfx
openmx
pagul-fonts
pam_pkcs11
peervpn
peg-solitaire
perl-GO-TermFinder
perl-Net-Ping-External
perl-Net-Telnet
perl-Satcon
perl-Term-Animation
pew
phatch
phetsarath-fonts
photoprint
php-apigen-theme-bootstrap
php-apigen-theme-default
php-email-address-validation
php-facedetect
php-kdyby-events
php-kdyby-strict-objects
php-latte
php-layers-menu
php-nette
php-nette-application
php-nette-bootstrap
php-nette-caching
php-nette-component-model
php-nette-database
php-nette-deprecated
php-nette-di
php-nette-finder
php-nette-forms
php-nette-http
php-nette-mail
php-nette-neon
php-nette-php-generator
php-nette-reflection
php-nette-robot-loader
php-nette-safe-stream
php-nette-security
php-nette-tester
php-nette-tokenizer
php-nette-utils
php-pear-Auth_HTTP
php-pear-HTML_Template_PHPLIB
php-pecl-geoip
php-pecl-lzf
php-pecl-sphinx
php-tracy
pixz
plv8
pnmixer
pop-gtk-theme
pop-icon-theme
portecle
posterazor
postscriptbarcode
preload
publican-genome
pyjoke
python-4Suite-XML
python-PSI
python-afl
python-backport_collections
python-beaker
python-botocore
python-cclib
python-celery
python-characteristic
python-configobj
python-contexttimer
python-django-classy-tags
python-django-fas
python-django-markdown2
python-django-rest-framework-braces
python-django14
python-django15
python-flock
python-gnupg
python-html2text
python-importanize
python-importlib
python-jmespath
python-lasagna
python-libcnml
python-librosa
python-markups
python-multiprocessing
python-ncclient
python-netdiff
python-netjsonconfig
python-os-client-config
python-oslo-i18n
python-pgpdump
python-prompt_toolkit
python-pylcdsysinfo
python-pymtp
python-pythonz-bd
python-rangehttpserver
python-resumable-urlretrieve
python-rply
python-s3transfer
python-simplepath
python-social-auth
python-tlslite
python-wcwidth
python3-openid
pytorctl
qmforge
qtiocompressor
qtkeychain
rb_libtorrent
recoverjpeg
remind
rendercheck
retext
rhnmd
ripright
rocksdb
rogue
rpm-ostree-toolbox
ruby-RRDtool
rubygem-activerecord-nulldb-adapter
rubygem-acts-as-taggable-on
rubygem-arrayfields
rubygem-asciidoctor-pdf
rubygem-attributes
rubygem-axiom-types
rubygem-bogus
rubygem-bourne
rubygem-boxgrinder-build
rubygem-boxgrinder-core
rubygem-bunny
rubygem-capillary
rubygem-climate_control
rubygem-cocaine
rubygem-coercible
rubygem-colored
rubygem-columnize
rubygem-css_parser
rubygem-dependor
rubygem-descendants_tracker
rubygem-equalizer
rubygem-escape_utils
rubygem-exception_notification
rubygem-facade
rubygem-facets
rubygem-fattr
rubygem-ferret
rubygem-font-awesome-rails
rubygem-gemcutter
rubygem-gemnasium-parser
rubygem-geoip
rubygem-haml-rails
rubygem-hawler
rubygem-hipchat
rubygem-ice_nine
rubygem-innertube
rubygem-joiner
rubygem-just_paginate
rubygem-literati
rubygem-logging
rubygem-main
rubygem-markaby
rubygem-middleware
rubygem-net-dns
rubygem-pathname2
rubygem-pcaprub
rubygem-pdf-core
rubygem-pervasives
rubygem-picnic
rubygem-pkgwat
rubygem-posix-spawn
rubygem-prawn
rubygem-prawn-icon
rubygem-prawn-manual_builder
rubygem-prawn-svg
rubygem-prawn-table
rubygem-prawn-templates
rubygem-rack-openid
rubygem-rack-ssl
rubygem-rails_autolink
rubygem-resque-cleaner
rubygem-restr
rubygem-reststop
rubygem-review
rubygem-riddle
rubygem-rots
rubygem-ruby-openid
rubygem-thinking-sphinx
rubygem-tiltout
rubygem-virtus
sap
sarai-fonts
senamirmir-washra-font
sequence-library
simple-tpm-pk11
simsu
snmptt
sonar
sonar-plugins-parent
sonar-runner
sonar-update-center
spacewalk-config
spacewalk-koan
spacewalk-proxy-docs
spacewalk-proxy-html
spamassassin-FuzzyOcr
sqljet
stevetraylen
stupid-package
sudoku-savant
sugar-calendario
svnkit
tabish-eeyek-fonts
tangerine-fonts
tanglet
tesla-pom
tharlon-fonts
tinyxpath
tlomt-orbitron-fonts
tlsdate
tong
trabajo-fonts
trac-code-comments-plugin
ttname
tuladha-jejeg-fonts
tuxcmd
typemade-josefinsansstd-light-fonts
udunits
vdr-ttxtsubs
vdr-tvonscreen
vldocking
vnc-ltsp-config
waffle
webcpp
webkit-sharp
wyrd
xboxdrv
xcftools
xls2csv
xsettingsd
xsupplicant
xtv
yafc
zopfli

rebased onto 7756c9e

5 years ago

Pull-Request has been merged by tibbs

5 years ago
Metadata