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 <es...@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

Reply via email to