Tuesday, October 15, 2024

Re: a first sweep of cleaning up quirks

On Tue, Oct 15, 2024 at 02:46:18PM +0100, Stuart Henderson wrote:
> Some of the quirks tables are getting a bit unwieldy (particularly
> noticeable if you're scrolling around trying to add new things to it).
> So I thought I'd have a bit of a tidy.
>
> - remove pre-6.9 information and associated $obsolete_message entries
> that were only associated with those.
>
> a big jump from 6.8 or before in a single step to 7.6 is expecting a bit
> much from packages. (this could possibly go further - binaries from the
> installed packages are automatically run in some cases at pkg_delete
> time by @unexec or @tag and that's simply not going to work with changes
> to the libc/kernel interface - though those tend to be in ports which
> are more common on desktops than servers - so this seems a reasonable
> cutoff for now).
>
> - switch some more-specific messages that don't add user-actionable
> information to simple "no longer maintained upstream", for example these
>
> "crashes in many different ways at runtime, does not build with '-fno-common'",
> "upstream is dead, default settings cause crash when connecting to mpd",
> "upstream is dead, basic functionality does not work, use tcpdump(1) and scapy(1) instead",
> "upstream is dead, no longer useful, does not support IPv6",
> "upstream is dead, default settings cause crash when connecting to mpd",
> "Flash/SWF is end-of-life",
>
> - there are probably more that can go or be amalgamated to a new
> description (for example a few specific ones could change to "newer
> versions require software that doesn't work on OpenBSD") - also
> there are $cve entries which are from paths which no longer exist -
> but it's a start..
>
> any objections? ok?
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/quirks/Makefile,v
> diff -u -p -r1.1648 Makefile
> --- Makefile 15 Oct 2024 10:47:21 -0000 1.1648
> +++ Makefile 15 Oct 2024 13:37:45 -0000
> @@ -3,7 +3,7 @@ CATEGORIES = devel databases
> DISTFILES =
>
> # API.rev
> -PKGNAME = quirks-7.55
> +PKGNAME = quirks-7.56
> PKG_ARCH = *
> MAINTAINER = Marc Espie <espie@openbsd.org>
>
> Index: files/Quirks.pm
> ===================================================================
> RCS file: /cvs/ports/devel/quirks/files/Quirks.pm,v
> diff -u -p -r1.1659 Quirks.pm
> --- files/Quirks.pm 15 Oct 2024 10:47:21 -0000 1.1659
> +++ files/Quirks.pm 15 Oct 2024 13:37:45 -0000
> @@ -57,260 +57,12 @@ sub tweak_list
> my $p5a = $Config{archlib};
> my $p5 = "/usr/libdata/perl5";
> my $base_exceptions = {
> -# 6.5
> - 'libelf' => '/usr/lib/libelf.so.*',
> # 6.9
> 'acme-client' => '/usr/sbin/acme-client',
> 'libexecinfo' => '/usr/include/execinfo.h',
> };
>
> my $stem_extensions = {
> -# 6.3
> - 'ruby-arirang' => 'arirang',
> - 'ja-mplus-ttf' => 'mixfont-mplus-ipa',
> - 'kdirstat' => 'qdirstat',
> - 'stem' => 'py-stem',
> - 'arm' => 'nyx',
> - 'luabitop' => 'lua-bitop',
> - 'livestreamer' => 'streamlink',
> - 'newsbeuter' => 'newsboat',
> - 'php-fastcgi' => 'php-cgi',
> - 'advancemess' => 'advancemame',
> -# 6.4
> - 'gnome-tweak-tool' => 'gnome-tweaks',
> - 'latexila' => 'gnome-latex',
> - 'osh' => 'etsh',
> - 'gnome-themes-standard' => 'gnome-themes-extra',
> - 'open-cobol' => 'gnucobol',
> - 'fanstasque-sans' => 'fantasque-sans',
> - 'rope' => 'py-rope',
> - 'py-upt-rubygems' => 'upt-rubygems',
> - 'pygame' => 'py-game',
> - 'py-cryptodomex' => 'py-cryptodome',
> - 'py3-cryptodomex' => 'py3-cryptodome',
> - 'py-crypto' => 'py-cryptodome',
> - 'py3-crypto' => 'py3-cryptodome',
> - 'py-link-grammar' => 'py3-link-grammar',
> - 'py-buildbot' => 'buildbot',
> - 'py-buildbot-www' => 'py3-buildbot-www',
> - 'py-buildbot-pkg' => 'py3-buildbot-pkg',
> - 'py-buildbot-grid-view' => 'py3-buildbot-grid-view',
> - 'py-buildbot-console-view' => 'py3-buildbot-console-view',
> - 'py-buildbot-waterfall-view' => 'py3-buildbot-waterfall-view',
> - 'py-buildslave' => 'buildbot-worker',
> - 'sdlmame' => 'mame',
> - 'sdlmame-tools' => 'mame',
> - 'sdlmess' => 'mame',
> - 'suricata-update' => 'suricata',
> -# 6.5
> - 'ValyriaTear' => 'valyriatear',
> - 'apertium-es-ast_NO-PN' => 'apertium-es-ast',
> - 'py-pafy' => 'py3-pafy',
> - 'py-libmagic' => 'py-magic',
> - 'py3-libmagic' => 'py3-magic',
> - 'pecl-chroot' => 'pecl71-chroot',
> - 'pecl-geoip' => 'pecl71-geoip',
> - 'pecl-http' => 'pecl71-pecl_http',
> - 'pecl-imagick' => 'pecl71-imagick',
> - 'pecl-libsodium' => 'pecl71-libsodium',
> - 'pecl-lzf' => 'pecl71-lzf',
> - 'pecl-mailparse' => 'pecl71-mailparse',
> - 'pecl-memcached' => 'pecl71-memcached',
> - 'pecl-proctitle' => 'pecl71-proctitle',
> - 'pecl-propro' => 'pecl71-propro',
> - 'pecl-raphf' => 'pecl71-raphf',
> - 'pecl-rar' => 'pecl71-rar',
> - 'pecl-redis' => 'pecl71-redis',
> - 'pecl-ssh2' => 'pecl71-ssh2',
> - 'pecl56-chroot' => 'pecl71-chroot',
> - 'pecl56-geoip' => 'pecl71-geoip',
> - 'pecl56-http' => 'pecl71-pecl_http',
> - 'pecl56-imagick' => 'pecl71-imagick',
> - 'pecl56-libsodium' => 'pecl71-libsodium',
> - 'pecl56-lzf' => 'pecl71-lzf',
> - 'pecl56-mailparse' => 'pecl71-mailparse',
> - 'pecl56-memcached' => 'pecl71-memcached',
> - 'pecl56-proctitle' => 'pecl71-proctitle',
> - 'pecl56-propro' => 'pecl71-propro',
> - 'pecl56-raphf' => 'pecl71-raphf',
> - 'pecl56-rar' => 'pecl71-rar',
> - 'pecl56-redis' => 'pecl71-redis',
> - 'pecl56-ssh2' => 'pecl71-ssh2',
> - 'pecl70-chroot' => 'pecl71-chroot',
> - 'pecl70-geoip' => 'pecl71-geoip',
> - 'pecl70-http' => 'pecl71-pecl_http',
> - 'pecl70-imagick' => 'pecl71-imagick',
> - 'pecl70-libsodium' => 'pecl71-libsodium',
> - 'pecl70-lzf' => 'pecl71-lzf',
> - 'pecl70-mailparse' => 'pecl71-mailparse',
> - 'pecl70-memcached' => 'pecl71-memcached',
> - 'pecl70-proctitle' => 'pecl71-proctitle',
> - 'pecl70-propro' => 'pecl71-propro',
> - 'pecl70-raphf' => 'pecl71-raphf',
> - 'pecl70-rar' => 'pecl71-rar',
> - 'pecl70-redis' => 'pecl71-redis',
> - 'pecl70-ssh2' => 'pecl71-ssh2',
> - 'zh-bg5ps' => 'bg5ps',
> - 'zh-bg5pdf' => 'bg5pdf',
> - 'wxWidgets-gtk2' => 'wxWidgets-gtk3',
> - 'atf-allwinner' => 'arm-trusted-firmware',
> - 'u-boot-pinebook' => 'u-boot-aarch64',
> - 'suricata-update' => 'suricata',
> - 'wireshark-gtk' => 'wireshark',
> - 'py-zeroconf' => 'py3-zeroconf',
> - 'digikam' => 'digikam-kde4',
> - 'apertium-sv-da' => 'apertium-swe-dan',
> -# 6.6
> - 'Xonotic' => 'xonotic',
> - 'Xonotic-data' => 'xonotic-data',
> - 'Xonotic-server' => 'xonotic-server',
> - 'gettext' => 'gettext-runtime',
> - 'kwebapp' => 'openradtool',
> - 'py-xmldiff' => 'py3-xmldiff',
> - 'bro' => 'zeek',
> - 'filter-rspamd' => 'opensmtpd-filter-rspamd',
> - 'filter-senderscore' => 'opensmtpd-filter-senderscore',
> - 'ilmbase' => 'OpenEXR',
> - 'openexr-viewers' => 'OpenEXR-tools',
> - 'libvirt-python' => 'py-libvirt',
> -# 6.7
> - 'py-jaraco-functoolsjaraco.functools' => 'py-jaraco-functools',
> - 'py3-jaraco-functoolsjaraco.functools' => 'py3-jaraco-functools',
> - 'py-netmiko' => 'py3-netmiko',
> - 'py-napalm' => 'py3-napalm',
> - 'py-IOSXR' => 'py3-IOSXR',
> - 'py-cligj' => 'py3-cligj',
> - 'py-fiona' => 'py3-fiona',
> - 'py-laspy' => 'py3-laspy',
> - 'py-owslib' => 'py3-owslib',
> - 'py-proj' => 'py3-proj',
> - 'py-planet' => 'py3-planet',
> - 'py-rasterio' => 'py3-rasterio',
> - 'py-rio-cogeo' => 'py3-rio-cogeo',
> - 'py-shapely' => 'py3-shapely',
> - 'py-terminado' => 'py3-terminado',
> - 'py-prometheus_client' => 'py3-prometheus_client',
> - 'py-influxdb' => 'py3-influxdb',
> - 'py-pandas' => 'py3-pandas',
> - 'py-siphon' => 'py3-siphon',
> - 'py-mlpack' => 'py3-mlpack',
> - 'py-bottleneck' => 'py3-bottleneck',
> - 'py-daemon' => 'py3-daemon',
> - 'py-nbval' => 'py3-nbval',
> - 'py-oauthlib' => 'py3-oauthlib',
> - 'py-requests-oauthlib' => 'py3-requests-oauthlib',
> - 'py-discogs-client' => 'py3-discogs-client',
> - 'py-semver' => 'py3-semver',
> - 'py-seaborn' => 'py3-seaborn',
> - 'py-natsort' => 'py3-natsort',
> - 'py-mastodon.py' => 'py3-mastodon.py',
> - 'py-bokeh' => 'py3-bokeh',
> - 'py-algorithm-munkres' => 'py3-algorithm-munkres',
> - 'py-pdfminer' => 'py3-pdfminer',
> - 'jupyter-notebook3' => 'jupyter-notebook',
> - 'py-html2text' => 'py3-html2text',
> - 'py-acme' => 'py3-acme',
> - 'py-josepy' => 'py3-josepy',
> - 'py-spyder-kernels' => 'py3-spyder-kernels',
> - 'spyder' => 'spyder3',
> - 'py-qtconsole' => 'py3-qtconsole',
> - 'py-sympy' => 'py3-sympy',
> - 'py-wurlitzer' => 'py3-wurlitzer',
> - 'py-gunicorn' => 'py3-gunicorn',
> - 'py-multidict' => 'py3-multidict',
> - 'py-elasticsearch' => 'py3-elasticsearch',
> - 'py-vmomi' => 'py3-vmomi',
> - 'py-nbconvert' => 'py3-nbconvert',
> - 'py-smbc' => 'py3-smbc',
> - 'py-git2' => 'py3-git2',
> - 'py-bencode' => 'py3-bencode',
> - 'py-dfwinreg' => 'py3-dfwinreg',
> - 'py-dfvfs' => 'py3-dfvfs',
> - 'py-dfdatetime' => 'py3-dfdatetime',
> - 'py-artifacts' => 'py3-artifacts',
> - 'py-rope' => 'py3-rope',
> - 'py-xlrd' => 'py3-xlrd',
> - 'ipython' => 'ipython3',
> - 'py-ipykernel' => 'py3-ipykernel',
> - 'py-jupyter_client' => 'py3-jupyter_client',
> - 'py-jupyter_core' => 'py3-jupyter_core',
> - 'py-nbformat' => 'py3-nbformat',
> - 'py-traitlets' => 'py3-traitlets',
> - 'py-parso' => 'py3-parso',
> - 'py-jedi' => 'py3-jedi',
> - 'py-botocore' => 'py3-botocore',
> - 'py-boto3' => 'py3-boto3',
> - 'py-s3transfer' => 'py3-s3transfer',
> - 'py-libpst' => 'py3-libpst',
> - 'Clementine' => 'clementine',
> - 'py-curtsies' => 'py3-curtsies',
> - 'bpython3' => 'bpython',
> - 'py-prompt_toolkit' => 'py3-prompt_toolkit',
> - 'py-wcwidth' => 'py3-wcwidth',
> - 'py-twitter' => 'py3-twitter',
> - 'py-irclib' => 'py3-irclib',
> - 'py-casttube' => 'py3-casttube',
> - 'py-libcloud' => 'py3-libcloud',
> - 'gegl03' => 'gegl04',
> - 'py-mysql' => 'py-mysqlclient',
> -# 6.8
> - 'py-dulwich' => 'py3-dulwich',
> - 'py-cups' => 'py3-cups',
> - 'py-fastimport' => 'py3-fastimport',
> - 'py-impacket' => 'py3-impacket',
> - 'py-pynetbox' => 'py3-pynetbox',
> - 'py-libvirt' => 'py3-libvirt',
> - 'py-libxml' => 'py3-libxml',
> - 'py-rsa' => 'py3-rsa',
> - 'py-unicorn' => 'py3-unicorn',
> - 'prison' => 'prison-kf5',
> - 'kdegraphics-mobipocket' => 'kdegraphics-mobipocket-kf5',
> - 'kdegraphics-thumbnailers' => 'kdegraphics-thumbnailers-kf5',
> - 'svgpart' => 'svgpart-kf5',
> - 'kdenetwork-filesharing' => 'kdenetwork-filesharing-kf5',
> - 'py-cloudpickle' => 'py3-cloudpickle',
> - 'py-podcastparser' => 'py3-podcastparser',
> - 'py-configargparse' => 'py3-configargparse',
> - 'py-aiodns' => 'py3-aiodns',
> - 'ebc' => 'bc-gh',
> - 'py-cares' => 'py3-cares',
> - 'py-astroid' => 'py3-astroid',
> - 'pylint' => 'pylint3',
> - 'pylint-gui' => 'pylint3-gui',
> - 'py-M2Crypto' => 'py3-M2Crypto',
> - 'sslscan-openssl' => 'sslscan',
> - 'py-rarfile' => 'py3-rarfile',
> - 'py-pygfm' => 'py3-pygfm',
> - 'py-humanize' => 'py3-humanize',
> - 'py-sabyenc' => 'py3-sabyenc',
> - 'py-cftime' => 'py3-cftime',
> - 'py-astral' => 'py3-astral',
> - 'py-ropper' => 'py3-ropper',
> - 'py-snuggs' => 'py3-snuggs',
> - 'py-osqp' => 'py3-osqp',
> - 'py-ecos' => 'py3-ecos',
> - 'py-numexpr' => 'py3-numexpr',
> - 'py-notmuch' => 'py3-notmuch',
> - 'py-webpy' => 'py3-webpy',
> - 'phonon-qt5' => 'phonon',
> - 'phonon-qt5-gstreamer' => 'phonon-backend-gstreamer',
> - 'phonon-qt5-vlc' => 'phonon-backend-vlc',
> - 'phonon-gstreamer-icons' => 'phonon-backend-gstreamer',
> - 'iosevka-fonts-default' => 'iosevka',
> - 'iosevka-fonts-term' => 'iosevka',
> - 'py-distutils-extra' => 'py3-distutils-extra',
> - 'uqm-remix1' => 'uqm-remix',
> - 'uqm-remix2' => 'uqm-remix',
> - 'uqm-remix3' => 'uqm-remix',
> - 'uqm-remix4' => 'uqm-remix',
> - 'py-responses' => 'py3-responses',
> - 'py-pudb' => 'py3-pudb',
> - 'py-keyring' => 'py3-keyring',
> - 'py-secretstorage' => 'py3-secretstorage',
> - 'rgain' => 'rgain3',
> - 'py-urwid' => 'py3-urwid',
> - 'py-ply' => 'py3-ply',
> - 'py-dtfabric' => 'py3-dtfabric',
> # 6.9
> 'py-qscintilla' => 'py3-qscintilla',
> 'py-gobject3' => 'py3-gobject3',
> @@ -858,561 +610,6 @@ sub setup_obsolete_reason
> # want to put regexps as well in there (see the terraform or hs entries
> # for instance)
> setup_obsolete_reason(
> -# 6.3
> - 5 => 'puppet-dashboard',
> - 3 => 'dnsfilter',
> - 6 => 'empathy',
> - 3 => 'telepathy-salut',
> - 3 => 'telepthy-haze',
> - 3 => 'telepathy-gabble',
> - 3 => 'telepathy-qt',
> - 3 => 'telepathy-farstream',
> - 3 => 'farstream',
> - 5 => 'ardour',
> - 5 => 'aubio',
> - 5 => 'libgnomecanvasmm',
> - 2 => 'mixmaster',
> - 0 => 'xscorch',
> - 5 => 'libwbxml',
> - 6 => 'haskell-platform',
> - 0 => 'gnokii',
> - 5 => 'dee',
> - 6 => 'pidgin-tlen',
> - 5 => 'pep8',
> - 6 => 'gnuvd',
> - 5 => 'gtkhtml4',
> - 6 => 'livestreamer-curses',
> - 6 => 'xdmchoose',
> - 0 => 'vomit',
> - 6 => 'p5-WWW-YouTube-Download',
> - 6 => 'oggtag',
> - 6 => 'aimsniff',
> - 6 => 'pork',
> - 3 => 'ntimed',
> - 2 => 'man2web',
> - 6 => 'decss',
> - 6 => 'libgcal',
> - 6 => 'akonadi-googledata',
> - 3 => 'arora',
> - 6 => 'powerdns-ldap',
> - 6 => 'p5-Net-LDNS',
> - 0 => 'sirc',
> - 6 => 'hgview',
> - 5 => 'xerces',
> -# 6.4
> - 2 => 'mozjs17',
> - 3 => 'qvwm',
> - 3 => 'prepop',
> - 3 => 'centerim',
> - 3 => 'gpgmepp',
> - 0 => 'xnc',
> - 3 => 'nepenthes',
> - 6 => 'mongrel2',
> - 6 => 'ja-groff',
> - 3 => 'gtkglextmm',
> - 3 => 'goocanvas',
> - 6 => 'osm2go',
> - 6 => 'kedpm',
> - 3 => 'mediatomb',
> - 6 => 'apache-couchdb',
> - 6 => 'py-couchdb',
> - 3 => 'chive',
> - 3 => 'opengroupware',
> - 3 => 'git-bz',
> - 3 => 'hot-babe',
> - 0 => 'wmgrabimage',
> - 0 => 'wmphoto',
> - 0 => 'wmminichess',
> - 0 => 'wmifinfo',
> - 0 => 'wmnet',
> - 0 => 'wmwave',
> - 0 => 'wmcb',
> - 0 => 'wmpinboard',
> - 0 => 'wmbiff',
> - 0 => 'wmmail',
> - 0 => 'wmtimer',
> - 3 => 'py-crypto',
> - 3 => 'py3-crypto',
> - 5 => 'tremor',
> - 5 => 'tremor-tools',
> - 2 => 'webkit',
> - 5 => 'py-test-capturelog',
> - 5 => 'py3-test-capturelog',
> - 3 => 'snapdl',
> - 6 => 'ccnet',
> - 10 => 'dkim-milter',
> - 11 => 'aircontrol',
> - 3 => 'corebird',
> - 5 => 'py-pcs',
> - 5 => 'ifmcstat',
> - 6 => 'suricata-update',
> -# 6.5
> - 5 => 'py-dtopt',
> - 5 => 'py3-dtopt',
> - 0 => 'memtest86+',
> - 5 => 'py-reat',
> - 12 => 'dovecot-antispam',
> - 3 => 'py-hgtools',
> - 3 => 'py3-hgtools',
> - 3 => 'py-hgsubversion',
> - 5 => 'py-hgnested',
> - 6 => 'py-keyczar',
> - 5 => 'py-hg-git',
> - 3 => 'py-czmq',
> - 13 => 'p5-Math-Pari',
> - 13 => 'p5-Math-BigInt-Pari',
> - 13 => 'p5-Crypt-Random',
> - 13 => 'p5-Crypt-DH',
> - 13 => 'p5-Crypt-Primes',
> - 13 => 'p5-Crypt-RSA',
> - 0 => 'directoryassistant',
> - 3 => 'x-pack',
> - 5 => 'libepc',
> - 0 => 'dysnomia-en',
> - 3 => 'casperjs',
> - 3 => 'phantomjs',
> - 6 => 'owncloud',
> - 13 => 'php-librdf',
> - 13 => 'nedi',
> - 13 => 'xcache',
> - 13 => 'pecl-memcache',
> - 13 => 'pecl56-memcache',
> - 13 => 'pecl-swish',
> - 13 => 'pecl56-swish',
> - 13 => 'pecl-uploadprogress',
> - 13 => 'pecl56-uploadprogress',
> - 3 => 'sickbeard',
> - 2 => 'nxssh',
> - 3 => 'opennx',
> - 3 => 'iaxcomm',
> - 0 => 'pinot',
> - 0 => 'gaia',
> - 0 => 'openafs',
> - 3 => 'emerillon',
> - 5 => 'mplex',
> - 0 => 'gromit',
> - 3 => 'discwrapper',
> - 6 => 'libhttpseverywhere',
> - 3 => 'poppler-qt4',
> - 3 => 'ushare',
> - 6 => 'ffmpeg2theora',
> - 3 => 'p5-WWW-Google-SiteMap',
> - 3 => 'p5-YAML-Perl',
> - 5 => 'py-nevow',
> - 3 => 'gupnp-ui',
> - 6 => 'suricata-update',
> - 1 => 'exploitdb-papers',
> - 3 => 'nautilus-sendto',
> - 2 => 'ghostview',
> - 7 => 'libcudf',
> - 7 => 'ocaml-cudf',
> - 7 => 'ocaml-cmdliner',
> - 7 => 'ocaml-dose',
> - 7 => 'ocaml-extlib',
> - 7 => 'ocaml-jsonm',
> - 7 => 'ocaml-re',
> - 7 => 'omake',
> - 7 => 'ounit',
> - 5 => 'obc',
> - 3 => 'mlbviewer',
> - 3 => 'upsd',
> - 0 => 'vagalume',
> - 7 => 'ocaml-uutf',
> - 3 => 'xbat',
> - 3 => 'xripple',
> - 3 => 'sliderule',
> - 3 => 'swisswatch',
> - 3 => 'xaniroc',
> - 3 => 'xmascot',
> - 3 => 'xmold',
> - 3 => 'xsnow',
> - 3 => 'xtattr',
> - 1 => 'ruby25-akami',
> - 1 => 'ruby25-gyoku',
> - 1 => 'ruby25-httpclient',
> - 1 => 'ruby25-httpi',
> - 1 => 'ruby25-nori',
> - 1 => 'ruby25-savon',
> - 1 => 'ruby25-sonos',
> - 1 => 'ruby25-wasabi',
> - 6 => 'linuxdoc',
> - 3 => 'luna',
> - 3 => 'rsynth',
> - 3 => 'agm',
> - 3 => 'connect4',
> - 3 => 'xchomp',
> - 3 => 'xdeblock',
> - 3 => 'xzip',
> - 3 => 'jive',
> - 3 => 'compface',
> - 3 => 'mirror',
> - 3 => 'dclock',
> - 3 => 'xfishtank',
> - 6 => 'mpeg_play',
> -# 6.6
> - 5 => 'py-async',
> - 5 => 'py3-async',
> - 5 => 'py3-funcsigs',
> - 1 => 'rust-doc',
> - 6 => 'glib-openssl',
> - 5 => 'gcj',
> - 5 => 'classpath',
> - 5 => 'jamvm',
> - 3 => 'gnome-code-assistance',
> - 3 => 'gedit-code-assistance',
> - 5 => 'py3-backports-abc',
> - 0 => 'libkgeomap',
> - 1 => 'piwik',
> - 5 => 'wml',
> - 1 => 'junit',
> - 6 => 'jeoip',
> - 0 => 'gnaughty',
> - 5 => 'mysql++',
> - 3 => 'mysqlcc',
> - 6 => 'relayd-updateconf',
> - 1 => 'java-getopt',
> - 5 => 'avidemux',
> - 5 => 'OGIlexicon',
> - 5 => 'festival',
> - 5 => 'festlex_CMU',
> - 5 => 'festlex_OALD',
> - 5 => 'festlex_POSLEX',
> - 5 => 'festvox_cmu_us_awb_arctic_hts',
> - 5 => 'festvox_cmu_us_bdl_arctic_hts',
> - 5 => 'festvox_cmu_us_jmk_arctic_hts',
> - 5 => 'festvox_cmu_us_slt_arctic_hts',
> - 5 => 'festvox_cstr_us_awb_arctic_multisyn',
> - 5 => 'festvox_cstr_us_jmk_arctic_multisyn',
> - 5 => 'festvox_don',
> - 5 => 'festvox_ellpc11k',
> - 5 => 'festvox_kallpc16k',
> - 5 => 'festvox_kedlpc16k',
> - 5 => 'festvox_rablpc16k',
> - 5 => 'voice_aec_di',
> - 5 => 'voice_jph_di',
> - 5 => 'voice_mwm_di',
> - 5 => 'voice_tll_di',
> - 3 => 'proxy-suite',
> - 6 => 'py-amf',
> - 3 => 'lam',
> - 6 => 'gxml',
> - 3 => 'nulib',
> - 3 => 'py-turbocheetah',
> - 3 => 'py-turbokid',
> - 3 => 'py-addons',
> - 3 => 'py-peak-rules',
> - 3 => 'py-prioritized_methods',
> - 3 => 'py-extremes',
> - 3 => 'py-kid',
> - 3 => 'py-Chart',
> - 3 => 'py-id3',
> - 3 => 'py-tagger',
> - 3 => 'py-zhCodecs',
> - 3 => 'py-iconvcodec',
> - 3 => 'py-cjkcodecs',
> - 3 => 'py-cdb',
> - 3 => 'py-pgsql',
> - 3 => 'pgworksheet',
> - 3 => 'py-HappyDoc',
> - 3 => 'py-Rijndael',
> - 3 => 'py-adns',
> - 3 => 'py-cherrypy2',
> - 3 => 'py-clientform',
> - 3 => 'py-crack',
> - 3 => 'py-cryptkit',
> - 3 => 'py-epydoc',
> - 3 => 'py-flowd',
> - 3 => 'py-flowtools',
> - 3 => 'py-gnuplot',
> - 3 => 'py-htmltmpl',
> - 3 => 'py-jaxml',
> - 3 => 'py-kiwi',
> - 3 => 'py-medusa',
> - 3 => 'py-monthdelta',
> - 3 => 'py-optik',
> - 3 => 'py-osd',
> - 3 => 'py-probstat',
> - 3 => 'py-protocols',
> - 3 => 'py-rtf',
> - 3 => 'py-ruledispatch',
> - 3 => 'py-silc',
> - 3 => 'py-tpg',
> - 3 => 'py-unit',
> - 3 => 'pybugz',
> - 3 => 'pymissile',
> - 6 => 'arm-elf-binutils',
> - 6 => 'arm-elf-gcc',
> - 6 => 'arm-elf-gdb',
> - 6 => 'arm-elf-newlib',
> - 5 => 'g77',
> - 5 => 'libf2c',
> - 3 => 'p5-WWW-Curl',
> - 5 => 'java-tanukiwraper',
> - 6 => 'opencv-docs',
> - 6 => 'p5-Device-USB',
> - 0 => 'p5-Crypt-GpgME',
> - 6 => 'p5-HTTP-BrowserDetect',
> -# 6.7
> - 3 => 'awless',
> - 3 => 'mousetweaks',
> - 6 => 'py-ioflo',
> - 6 => 'py3-ioflo',
> - 5 => 'postgresql-plv8',
> - 6 => 'py-GeoIP',
> - 3 => 'cvsync',
> - 6 => 'pecl-geoip',
> - 5 => 'clive',
> - 6 => 'aws-shell',
> - 5 => 'aqsis',
> - 3 => 'gtk-xfce-engine',
> - 0 => 'firewalk',
> - 5 => 'goffice08',
> - 3 => 'py-webdav',
> - 6 => 'yabause',
> - 5 => 'py-elementtidy',
> - 5 => 'py-gd',
> - 5 => 'py-oauth2',
> - 6 => 'afm',
> - 6 => 'p5-Geo-IP',
> - 3 => 'py-libnacl',
> - 5 => 'py3-typing',
> - 3 => 'p5-Net-IRC',
> - 0 => 'pangox-compat',
> - 5 => 'tmake',
> - 5 => 'qt3-sqlite3',
> - 5 => 'eigen',
> - 5 => 'eigen2',
> - 5 => 'qt-gstreamer',
> - 3 => 'qsynergy',
> - 5 => 'kqoauth',
> - 3 => 'valknut',
> - 3 => 'dclib',
> - 3 => 'luma',
> - 3 => 'qhacc',
> - 17 => 'nginx-geoip',
> - 3 => 'qgo',
> - 3 => 'qrfcview',
> - 3 => 'mutella',
> - 5 => 'erl-bcrypt',
> - 5 => 'erl-mochiweb',
> - 5 => 'rebar18',
> - 5 => 'rebar17',
> - 3 => 'bouml',
> - 3 => 'beediff',
> - 3 => 'php-mcrypt',
> - 3 => 'sqliteman',
> - 3 => 'entomologist',
> - 6 => 'fcitx-qt4',
> - 3 => 'partiwm',
> - 2 => 'ejabberd',
> - 5 => 'rebar16',
> - 5 => 'tortoisehg',
> - 3 => 'cjc',
> - 3 => 'spectrum',
> - 3 => 'py-xmpp',
> - 0 => 'mirage',
> - 0 => 'rpm',
> - 3 => 'oggconvert',
> - 3 => 'radiotray',
> - 0 => 'xevil',
> - 3 => 'py-vatnumber',
> - 6 => 'nap',
> - 5 => 'qucs',
> - 1 => 'py-chai',
> - 1 => 'py3-chai',
> - 1 => 'py-whichcraft',
> - 1 => 'py3-whichcraft',
> - 20 => 'celt07',
> - 1 => qr{^terraform-provider-},
> - 6 => 'radare2-bindings',
> - 1 => 'py3-django',
> - 1 => 'py3-django-lts',
> - 3 => 'dspam',
> - 3 => 'dspam-mysql',
> - 3 => 'dspam-pgsql',
> - 5 => 'py-iniparse',
> - 3 => 'qt5-declarative-xmllistmodel',
> - 3 => 'jabberd',
> - 22 => 'GeoIP',
> - 2 => 'akpop3d',
> - 6 => 'gtk+4-cloudprint',
> - 21 => qr{^drupal},
> -# 6.8
> - 3 => 'planner',
> - 3 => 'gnome-recipes',
> - 6 => 'shared-color-targets',
> - 6 => 'argyll',
> - 23 => 'libnipper',
> - 23 => 'nipper',
> - 13 => 'bg5pdf',
> - 23 => 'pdflib',
> - 3 => 'pop3gwd',
> - 3 => 'tircd',
> - 6 => 'gtksourceviewmm3',
> - 3 => 'hpodder',
> - 5 => 'py-gstreamer',
> - 3 => 'py-libxslt',
> - 3 => 'gconf-editor',
> - 3 => 'amide',
> - 3 => 'xmedcon',
> - 3 => 'gq',
> - 3 => 'gnome-doc-utils',
> - 3 => 'rarian',
> - 3 => 'qtcanvas3d',
> - 3 => 'qtcanvas3d-examples',
> - 3 => 'gtkparasite',
> - 3 => 'gutenpy',
> - 3 => 'klogic',
> - 3 => 'soprano',
> - 3 => 'automoc',
> - 3 => 'qimageblitz',
> - 3 => 'cagibi',
> - 3 => 'libkvkontakte',
> - 3 => 'libkfbapi',
> - 3 => 'libkgapi',
> - 3 => 'attica',
> - 3 => 'kwebkitpart',
> - 3 => 'grantlee',
> - 3 => 'libkscreen',
> - 3 => 'polkit-qt',
> - 3 => 'phonon-gstreamer',
> - 3 => 'phonon-gstreamer-icons',
> - 3 => 'phonon-vlc',
> - 3 => 'kde4-minimal',
> - 3 => 'kde4',
> - 3 => 'kde4-extras',
> - 3 => 'kdeadmin',
> - 3 => 'kdegames',
> - 3 => 'kdenetwork',
> - 3 => 'kdesdk',
> - 3 => 'kdetoys',
> - 3 => 'kdeadmin',
> - 3 => 'kdegames',
> - 3 => 'kdenetwork',
> - 3 => 'kdesdk',
> - 3 => 'kdetoys',
> - 3 => qr{^kde-l10n-},
> - 3 => 'amor',
> - 3 => 'audiocd-kio',
> - 3 => 'baloo-widgets',
> - 3 => 'ffmpegthumbs',
> - 3 => 'jovie',
> - 3 => 'kaccessible',
> - 3 => 'kactivities',
> - 3 => 'kde-base-artwork',
> - 3 => 'kde-emoticons',
> - 3 => 'kde-runtime',
> - 3 => 'kde-shared-data',
> - 3 => 'kde-wallpapers',
> - 3 => 'kde-workspace',
> - 3 => 'kde4-kopete-sounds',
> - 3 => 'kde4-langlist',
> - 3 => 'kde4-locale',
> - 3 => 'kde4-locale-en_US',
> - 3 => 'kdegraphics-strigi-analyzer',
> - 3 => 'kdelibs',
> - 3 => 'kdenetwork',
> - 3 => 'kdenetwork-strigi-analyzers',
> - 3 => 'kdepim',
> - 3 => 'kdepim-runtime',
> - 3 => 'kdepimlibs',
> - 3 => 'kdeplasma-addons',
> - 3 => 'kdesdk-strigi-analyzers',
> - 3 => 'kdewebdev',
> - 3 => 'kfilemetadata',
> - 3 => 'kgpg',
> - 3 => 'kimono',
> - 3 => 'kopete',
> - 3 => 'korundum',
> - 3 => 'kpat',
> - 3 => 'kppp',
> - 3 => 'kremotecontrol',
> - 3 => 'kross-java',
> - 3 => 'kscd',
> - 3 => 'ktux',
> - 3 => 'kuser',
> - 3 => 'libkcddb',
> - 3 => 'libkcompactdisc',
> - 3 => 'libkdeedu',
> - 3 => 'libkdegames',
> - 3 => 'libkexiv2',
> - 3 => 'mplayerthumbs',
> - 3 => 'nepomuk-core',
> - 3 => 'nepomuk-widgets',
> - 3 => 'p5-kde',
> - 3 => 'p5-qt',
> - 3 => 'pairs',
> - 3 => 'parley',
> - 3 => 'py-kde',
> - 3 => 'qyoto',
> - 3 => 'ruby26-qt4',
> - 3 => 'smokegen',
> - 3 => 'smokekde',
> - 3 => 'smokeqt',
> - 3 => 'superkaramba',
> - 3 => 'gbirthday',
> - 4 => 'wireguard-go',
> - 4 => 'wiresep',
> - 4 => 'wireless',
> - 6 => 'sisctrl',
> - 0 => 'vteplugin',
> - 5 => 'p5-Net-GPSD',
> - 0 => 'mozplugger',
> - 3 => 'ajaxterm',
> - 1 => 'uim-kde',
> - 1 => 'uim-qt',
> - 1 => 'uim-qt4',
> - 5 => 'dbusmenu-qt',
> - 3 => 'qlandkartegt',
> - 3 => 'qca',
> - 3 => 'qca-gnupg',
> - 3 => 'qca-ossl',
> - 26 => 'keepassx',
> - 7 => 'go-xlsx',
> - 7 => 'go-check-v1',
> - 6 => 'freemat',
> - 6 => 'scim-qtimm',
> - 6 => 'gambatte-qt',
> - 3 => 'liblxqt-l10n',
> - 3 => 'lxqt-about-l10n',
> - 3 => 'lxqt-config-l10n',
> - 3 => 'lxqt-notificationd-l10n',
> - 3 => 'lxqt-openssh-askpass-l10n',
> - 3 => 'lxqt-panel-l10n',
> - 3 => 'lxqt-policykit-l10n',
> - 3 => 'lxqt-powermanagement-l10n',
> - 3 => 'lxqt-runner-l10n',
> - 3 => 'lxqt-session-l10n',
> - 3 => 'lxqt-sudo-l10n',
> - 3 => 'lximage-l10n',
> - 3 => 'compton-conf-l10n',
> - 3 => 'obconf-l10n',
> - 3 => 'libfm-qt-l10n',
> - 3 => 'pavucontrol-qt-l10n',
> - 3 => 'pcmanfm-qt-l10n',
> - 3 => 'qtermwidget-l10n',
> - 3 => 'qterminal-l10n',
> - 6 => 'gmc4cc',
> - 5 => 'py-sockjs-tornado',
> - 5 => 'apache-activemq',
> - 5 => 'libgda-ui',
> - 6 => 'ocrfeeder',
> - 5 => 'goocanvas2',
> - 5 => 'py-termcolor',
> - 5 => 'py3-termcolor',
> - 3 => 'py-carddav',
> - 5 => 'py-rdflib',
> - 5 => 'py3-rdflib',
> - 3 => 'fookebox',
> - 5 => 'py-pylons',
> - 5 => 'py-routes',
> - 5 => 'py-weberror',
> - 5 => 'py-webhelpers',
> - 0 => 'hedgewars',
> - 0 => 'lazarus',
> - 13 => 'exaile',
> - 3 => 'instead-launcher',
> - 3 => qr{^(ruby(19|2[0-7]|30)-|^j?ruby-[^0-9])},
> # 6.9
> 3 => 'py-notify',
> 3 => 'glimpse',
> @@ -1487,31 +684,30 @@ setup_obsolete_reason(
> 3 => 'py-qt4',
> 3 => 'py-qt4-docs',
> 29 => 'hitch',
> - 30 => 'xtraceroute',
> - 31 => 'py-vorbis',
> - 31 => 'py-ogg',
> - 32 => 'sattrack',
> - 33 => 'sattrack',
> - 34 => 'packit',
> - 34 => 'nemesis',
> + 3 => 'xtraceroute',
> + 13 => 'py-vorbis',
> + 13 => 'py-ogg',
> + 3 => 'sattrack',
> + 3 => 'packit',
> + 3 => 'nemesis',
> 6 => 'lxnb',
> - 35 => 'siphon',
> + 3 => 'siphon',
> 6 => 'avinfo',
> 0 => 'xfed',
> 36 => 'www6to4',
> - 37 => 'gimmix',
> + 3 => 'gimmix',
> 3 => 'xhippo',
> 0 => 'hnb',
> 38 => 'icinga',
> 38 => 'icinga-web',
> 38 => 'icinga-cgi',
> 38 => 'icinga-idoutils',
> - 39 => 'swftools',
> - 39 => 'swfmill',
> - 39 => 'ming',
> - 39 => 'quvi',
> - 39 => 'libquvi',
> - 39 => 'libquvi-scripts',
> + 3 => 'swftools',
> + 3 => 'swfmill',
> + 3 => 'ming',
> + 3 => 'quvi',
> + 3 => 'libquvi',
> + 3 => 'libquvi-scripts',
> 6 => 'cclive',
> 4 => 'viz',
> 40 => 'driftnet',
> @@ -1520,9 +716,9 @@ setup_obsolete_reason(
> 0 => 'xboing',
> 3 => 'beaver',
> 3 => 'tracnav',
> - 39 => 'flasm',
> - 31 => 'mpd-add-similar',
> - 31 => 'py-mpd',
> + 3 => 'flasm',
> + 13 => 'mpd-add-similar',
> + 13 => 'py-mpd',
> 3 => 'abs',
> 3 => 'arena',
> 3 => 'teagtk',
> @@ -1588,58 +784,58 @@ setup_obsolete_reason(
> 6 => 'libvstr',
> # 7.1
> 0 => 'cue',
> - 31 => 'py-SOAPpy',
> - 31 => 'py-ao',
> - 31 => 'py-backports-abc',
> - 31 => 'py-backports-functools-lru-cache',
> - 31 => 'py-backports-lzma',
> - 31 => 'py-backports-shutil-get-terminal-size',
> - 31 => 'py-backports-ssl-match-hostname',
> - 31 => 'py-binplist',
> - 31 => 'py-bytecodeassembler',
> - 31 => 'py-cddb',
> - 31 => 'py-editdist',
> - 31 => 'py-efilter',
> - 31 => 'py-faulthandler',
> - 31 => 'py-fpconst',
> - 31 => 'py-functools32',
> - 31 => 'py-gdata',
> - 31 => 'py-guppy',
> - 31 => 'py-hachoir-core',
> - 31 => 'py-hachoir-metadata',
> - 31 => 'py-hachoir-parser',
> - 31 => 'py-jonpy',
> - 31 => 'py-jsonrpclib',
> - 31 => 'py-lzo',
> - 31 => 'py-milter',
> - 31 => 'py-monotonic',
> - 31 => 'py-mox',
> - 31 => 'py-mxDateTime',
> - 31 => 'py-pdf',
> - 31 => 'py-pyro',
> - 31 => 'py-pysha3',
> - 31 => 'py-python2-pythondialog',
> - 31 => 'py-recaptcha-client',
> - 31 => 'py-ruamel.ordereddict',
> - 31 => 'py-singledispatch',
> - 31 => 'py-storm',
> - 31 => 'py-subprocess32',
> - 31 => 'py-sybase',
> - 31 => 'py-symboltype',
> - 31 => 'py-xmlrunner',
> - 31 => 'py-xmpppy',
> - 31 => 'py-yenc',
> - 31 => 'py-zsi',
> + 13 => 'py-SOAPpy',
> + 13 => 'py-ao',
> + 13 => 'py-backports-abc',
> + 13 => 'py-backports-functools-lru-cache',
> + 13 => 'py-backports-lzma',
> + 13 => 'py-backports-shutil-get-terminal-size',
> + 13 => 'py-backports-ssl-match-hostname',
> + 13 => 'py-binplist',
> + 13 => 'py-bytecodeassembler',
> + 13 => 'py-cddb',
> + 13 => 'py-editdist',
> + 13 => 'py-efilter',
> + 13 => 'py-faulthandler',
> + 13 => 'py-fpconst',
> + 13 => 'py-functools32',
> + 13 => 'py-gdata',
> + 13 => 'py-guppy',
> + 13 => 'py-hachoir-core',
> + 13 => 'py-hachoir-metadata',
> + 13 => 'py-hachoir-parser',
> + 13 => 'py-jonpy',
> + 13 => 'py-jsonrpclib',
> + 13 => 'py-lzo',
> + 13 => 'py-milter',
> + 13 => 'py-monotonic',
> + 13 => 'py-mox',
> + 13 => 'py-mxDateTime',
> + 13 => 'py-pdf',
> + 13 => 'py-pyro',
> + 13 => 'py-pysha3',
> + 13 => 'py-python2-pythondialog',
> + 13 => 'py-recaptcha-client',
> + 13 => 'py-ruamel.ordereddict',
> + 13 => 'py-singledispatch',
> + 13 => 'py-storm',
> + 13 => 'py-subprocess32',
> + 13 => 'py-sybase',
> + 13 => 'py-symboltype',
> + 13 => 'py-xmlrunner',
> + 13 => 'py-xmpppy',
> + 13 => 'py-yenc',
> + 13 => 'py-zsi',
> 8 => 'tilecache',
> - 31 => 'py-configparser',
> - 31 => 'py-decoratortools',
> - 31 => 'py-paste',
> - 31 => 'py-paste-deploy',
> - 31 => 'py-paste-script',
> - 31 => 'py-selectors2',
> - 31 => 'py-wsgiutils',
> - 31 => 'py-xml',
> - 31 => 'py-backports',
> + 13 => 'py-configparser',
> + 13 => 'py-decoratortools',
> + 13 => 'py-paste',
> + 13 => 'py-paste-deploy',
> + 13 => 'py-paste-script',
> + 13 => 'py-selectors2',
> + 13 => 'py-wsgiutils',
> + 13 => 'py-xml',
> + 13 => 'py-backports',
> 3 => 'ORBit2',
> 3 => 'libbonobo',
> 3 => 'libgnome',
> @@ -1755,20 +951,20 @@ setup_obsolete_reason(
> 5 => 'libdsm',
> 45 => 'direvent',
> 3 => 'climm',
> - 31 => 'spe',
> - 31 => 'py-Checker',
> - 14 => 'ssvnc',
> + 13 => 'spe',
> + 13 => 'py-Checker',
> + 3 => 'ssvnc',
> 11 => 'netshot',
> - 31 => 'py-contextlib2',
> - 31 => 'py-linecache2',
> - 31 => 'py-traceback2',
> - 31 => 'py-unittest2',
> - 31 => 'py-pathlib',
> - 31 => 'py-pathlib2',
> + 13 => 'py-contextlib2',
> + 13 => 'py-linecache2',
> + 13 => 'py-traceback2',
> + 13 => 'py-unittest2',
> + 13 => 'py-pathlib',
> + 13 => 'py-pathlib2',
> 6 => 'py3-pathlib',
> 6 => 'py3-pathlib2',
> - 31 => 'py-ipaddress',
> - 31 => 'py-scandir',
> + 13 => 'py-ipaddress',
> + 13 => 'py-scandir',
> 3 => 'd-feet',
> # 7.2
> 3 => 'gnome-documents',
> @@ -1777,10 +973,10 @@ setup_obsolete_reason(
> 5 => 'gnats',
> 3 => 'gnome-books',
> 46 => 'go-bootstrap',
> - 31 => 'py-typing',
> + 13 => 'py-typing',
> 6 => 'py-funcsigs',
> 6 => 'py-statistics',
> - 31 => 'pyrex',
> + 13 => 'pyrex',
> 3 => 'luasoldout',
> 3 => 'honeyd',
> 47 => 'totd',
> @@ -1815,8 +1011,8 @@ setup_obsolete_reason(
> 5 => 'xalan-j',
> 5 => 'opencdk',
> 5 => 'klaxon',
> - 49 => 'sentinel',
> - 50 => 'sslScanner',
> + 3 => 'sentinel',
> + 3 => 'sslScanner',
> 5 => 'softhsm',
> 1 => 'chntpw',
> 5 => 'nbaudit',
> @@ -1826,7 +1022,7 @@ setup_obsolete_reason(
> 1 => 'samdump2',
> 1 => 'smbsniff',
> 0 => 'fragroute',
> - 52 => 'ikeman',
> + 3 => 'ikeman',
> 3 => 'libperseus',
> 0 => 'hatchet',
> 51 => 'ctunnel',
> @@ -1836,10 +1032,10 @@ setup_obsolete_reason(
> 1 => 'stm32loader',
> 3 => 'tmda',
> 3 => 'spambayes',
> - 31 => 'nmap-zenmap',
> + 13 => 'nmap-zenmap',
> 0 => 'uucpd',
> 6 => 'py-sqlite2',
> - 31 => 'py-ipaddr',
> + 13 => 'py-ipaddr',
> 3 => 'hlfl',
> 6 => 'caribou',
> 5 => 'riak',
> @@ -1903,12 +1099,12 @@ setup_obsolete_reason(
> # 7.5
> 56 => 'psi',
> 56 => 'coccinella',
> - 31 => 'py-snack',
> + 13 => 'py-snack',
> 5 => 'wxglade',
> 57 => 'barony',
> 58 => 'exa',
> 6 => 'libgnomekbd',
> - 59 => 'xmlrpc-c',
> + 3 => 'xmlrpc-c',
> 1 => 'pwntools',
> 1 => 'floss',
> 5 => 'py-enum34',
> @@ -1921,15 +1117,15 @@ setup_obsolete_reason(
> 3 => 'GAMMApage',
> 3 => 'comix',
> 3 => 'hwsensorsbeat',
> - 60 => 'jailkit',
> + 3 => 'jailkit',
> 13 => 'p5-sybperl',
> - 61 => 'xprobe2',
> + 3 => 'xprobe2',
> 3 => 'minbif',
> 3 => 'atlas',
> - 62 => 'dicepassc',
> + 3 => 'dicepassc',
> 5 => 'py-parsing',
> 3 => 'freehdl',
> - 63 => 'freetalk',
> + 3 => 'freetalk',
> 2 => 'trojita',
> 5 => 'birdfont',
> 5 => 'libxmlbird',
> @@ -1938,7 +1134,7 @@ setup_obsolete_reason(
> 3 => 'h2o',
> 3 => 'smtube',
> 65 => 'goldendict',
> - 31 => 'mkplaylist',
> + 13 => 'mkplaylist',
> 1 => 'proteus',
> 1 => qr{^tryton},
> # 7.6
> @@ -1954,7 +1150,7 @@ setup_obsolete_reason(
> 66 => 'opensmtpd-extras-mysql',
> 66 => 'opensmtpd-extras-pgsql',
> 66 => 'opensmtpd-extras-redis',
> - 31 => 'opensmtpd-extras-python',
> + 13 => 'opensmtpd-extras-python',
> 3 => 'pdf2djvu',
> 3 => 'py3-fsb5',
> 3 => 'khotkeys',
> @@ -2018,30 +1214,14 @@ my $obsolete_message = {
> 7 => "removed in favor of using the language's package manager",
> 8 => "no longer maintained upstream, consider mapproxy as an alternative",
> 9 => "removed, needs a port maintainer",
> - 10 => "has been replaced by opendkim",
> 11 => "no longer packageable",
> - 12 => "replace with IMAPSieve, see https://wiki.dovecot.org/HowTo/AntispamWithSieve",
> 13 => "has a dependency on obsolete software",
> - 14 => "no longer maintained upstream and has security issues, consider remmina or tigervnc's vncviewer as an alternative",
> 15 => "use rspamd's internal milter support instead",
> - 17 => "old GeoIP databases end-of-life, see alternative using geoip2/libmaxminddb",
> - 20 => "merged into IETF Opus codec, obsolete, audio/mumble uses bundled version now",
> - 21 => "upstream recommends to use composer to build a drupal site",
> - 22 => "the original GeoIP database is end of life; use libmaxminddb/GeoIP2",
> - 23 => "no longer maintained upstream, became commercial over ten years ago",
> - 26 => "outdated Qt4 application",
> 27 => "requires GUdev",
> 28 => "consider migrating MCollective agents and filters using tools like Bolt and PuppetDB's Puppet Query Language",
> 29 => "unmaintained port that was blocking other changes in ports",
> - 30 => "crashes in many different ways at runtime, does not build with '-fno-common'",
> - 31 => "python port without 3.x support, no other ports use it",
> - 33 => "no longer maintained upstream, website suggests https://cronometer.com until rewrite is done",
> - 34 => "upstream is dead, basic functionality does not work, use tcpdump(1) and scapy(1) instead",
> - 35 => "upstream is dead, no longer useful, does not support IPv6",
> 36 => "ancient software, use pf.conf(5) 'af-to'",
> - 37 => "upstream is dead, default settings cause crash when connecting to mpd",
> 38 => "icinga 1 is end-of-life, migrate to icinga 2 (needs config rewrite)",
> - 39 => "Flash/SWF is end-of-life",
> 40 => "ancient software that often crashes and relies on single HTTP (no TLS) connections, use wireshark",
> 41 => "upstream moved to unversioned tarballs, use the plan9port (same upstream) package instead",
> 43 => "using portgen instead is recommended",
> @@ -2050,21 +1230,13 @@ my $obsolete_message = {
> 46 => "moved to binary bootstraps",
> 47 => "DNS network daemon running as root and not using random source ports. use DNS64 support in unbound or isc-bind",
> 48 => "horrible ecosystem",
> - 49 => "has no license, unmaintained since too long, crashes at runtime",
> - 50 => "abandoned ten years ago, broken by default due to missing runtime dependencies, use security/sslscan",
> 51 => "dead upstream, consider using socat or SSH",
> - 52 => "unmaintained since import, already on LibreSSL life support for too long",
> 53 => "upstream is dead, consider migrating to picom",
> 54 => "dependencies for recent versions can't be met (dotnet), consider switching to steamctl",
> 55 => "residualvm is dead upstream and has been merged into scummvm",
> 56 => "outdated, fails to establish TLS connections/cannot login, use dino, mcabber, gajim or pidgin",
> 57 => "frequent breakage with new versions, required openal audio backend has been orphaned for > 1 year",
> 58 => "abandoned upstream, use eza as a drop-in replacement",
> - 59 => "unmaintained/outdated for years, no consumers in over a decade, questionable security sensitive code",
> - 60 => "unmaintained/outdated for years, setuid python 2 scripts, not recommended",
> - 61 => "long dead upstream/unmaintained, fails to build with clang 16",
> - 62 => "not maintained, upstream suggests using passphraseme or pwgen",
> - 63 => "outdated, unmaintained, crashes on startup",
> 64 => "dead upstream, crashes when showing the Syncthing web interface, use a browser",
> 65 => "superseded by goldendict-ng",
> 66 => "superseded by opensmtpd-table-*",
>
>
I'm happy with this as well

No comments:

Post a Comment