Download raw body.
drop old quirks
On Tue 11/08/2026 09:59, Stuart Henderson wrote:
> I think we can probably drop quirks for handling direct updates from
> 7.0/7.1 at this point, any oks/objections?
OK bket@
>
> (there are quite a few py->py3, so after this I'm considering cleaning
> up the relevant PLISTs for conflict/pkgpath markers).
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/quirks/Makefile,v
> diff -u -p -r1.1809 Makefile
> --- Makefile 8 Aug 2026 20:04:47 -0000 1.1809
> +++ Makefile 11 Aug 2026 08:52:57 -0000
> @@ -3,7 +3,7 @@ CATEGORIES = devel databases
> DISTFILES =
>
> # API.rev
> -PKGNAME = quirks-7.216
> +PKGNAME = quirks-7.217
> 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.1823 Quirks.pm
> --- files/Quirks.pm 8 Aug 2026 20:04:47 -0000 1.1823
> +++ files/Quirks.pm 11 Aug 2026 08:52:57 -0000
> @@ -64,269 +64,6 @@ my $base_exceptions = {
> };
>
> my $stem_extensions = {
> -# 7.0
> - 'weboob' => 'woob',
> - 'py-talloc' => 'py3-talloc',
> - 'py-tdb' => 'py3-tdb',
> - 'bijiben' => 'gnome-notes',
> - 'connections' => 'gnome-connections',
> - 'py-socketio-client' => 'py3-socketio-client',
> - 'py-cycler' => 'py3-cycler',
> - 'py-pyRFC3339' => 'py3-pyRFC3339',
> - 'py-libarchive-c' => 'py3-libarchive-c',
> - 'py-minimalmodbus' => 'py3-minimalmodbus',
> - 'baresip-gtk2' => 'baresip-gtk',
> - 'py-xlib' => 'py3-xlib',
> - 'py-neovim' => 'py3-neovim',
> - 'py-click-log' => 'py3-click-log',
> - 'py-click-plugins' => 'py3-click-plugins',
> - 'py-click-threading' => 'py3-click-threading',
> - 'py-spark-parser' => 'py3-spark-parser',
> - 'py-xdis' => 'py3-xdis',
> - 'py-uncompyle6' => 'py3-uncompyle6',
> - 'py-click' => 'py3-click',
> - 'py-pyinotify' => 'py3-pyinotify',
> - 'py-virtualdisplay' => 'py3-virtualdisplay',
> - 'py-meld3' => 'py3-meld3',
> - 'py-cryptography_vectors' => 'py3-cryptography_vectors',
> - 'py-boto' => 'py3-boto3',
> - 'py3-boto' => 'py3-boto3',
> - 'py-paramiko' => 'py3-paramiko',
> - 'py-nxos' => 'py3-nxos',
> - 'py-scp' => 'py3-scp',
> - 'py-bcrypt' => 'py3-bcrypt',
> - 'py-iso8601' => 'py3-iso8601',
> - 'py-asn1crypto' => 'py3-asn1crypto',
> - 'py-asn1' => 'py3-asn1',
> - 'py-snmp' => 'py3-snmp',
> - 'py-PyNaCl' => 'py3-PyNaCl',
> - 'py-websocket-client' => 'py3-websocket-client',
> - 'libmesode' => 'libstrophe',
> - 'py-stem' => 'py3-stem',
> -# 7.1
> - 'py-jsonschema' => 'py3-jsonschema',
> - 'py-CherryPy' => 'py3-CherryPy',
> - 'py-IP' => 'py3-IP',
> - 'py-PySMT' => 'py3-PySMT',
> - 'py-aes' => 'py3-aes',
> - 'py-affine' => 'py3-affine',
> - 'py-beaker' => 'py3-beaker',
> - 'py-betamax' => 'py3-betamax',
> - 'py-bleach' => 'py3-bleach',
> - 'py-bottle' => 'py3-bottle',
> - 'py-cached-property' => 'py3-cached-property',
> - 'py-cheroot' => 'py3-cheroot',
> - 'py-cookies' => 'py3-cookies',
> - 'py-country' => 'py3-country',
> - 'py-coveralls' => 'py3-coveralls',
> - 'py-curl' => 'py3-curl',
> - 'py-eapi' => 'py3-eapi',
> - 'py-fasteners' => 'py3-fasteners',
> - 'py-feedgenerator' => 'py3-feedgenerator',
> - 'py-fields' => 'py3-fields',
> - 'py-formencode' => 'py3-formencode',
> - 'py-ftpdlib' => 'py3-ftpdlib',
> - 'py-graphviz' => 'py3-graphviz',
> - 'py-html5lib' => 'py3-html5lib',
> - 'py-httplib2' => 'py3-httplib2',
> - 'py-icalendar' => 'py3-icalendar',
> - 'py-jinja2' => 'py3-jinja2',
> - 'py-mako' => 'py3-mako',
> - 'py-mistune' => 'py3-mistune',
> - 'py-mpmath' => 'py3-mpmath',
> - 'py-netaddr' => 'py3-netaddr',
> - 'py-netifaces' => 'py3-netifaces',
> - 'py-num2words' => 'py3-num2words',
> - 'py-objgraph' => 'py3-objgraph',
> - 'py-paho-mqtt' => 'py3-paho-mqtt',
> - 'py-parsedatetime' => 'py3-parsedatetime',
> - 'py-path.py' => 'py3-path.py',
> - 'py-pcapy' => 'py3-pcapy',
> - 'py-pf' => 'py3-pf',
> - 'py-pgpdump' => 'py3-pgpdump',
> - 'py-polib' => 'py3-polib',
> - 'py-portend' => 'py3-portend',
> - 'py-potr' => 'py3-potr',
> - 'py-prettytable' => 'py3-prettytable',
> - 'py-pyaml' => 'py3-pyaml',
> - 'py-pykwalify' => 'py3-pykwalify',
> - 'py-radix' => 'py3-radix',
> - 'py-redis' => 'py3-redis',
> - 'py-repoze-lru' => 'py3-repoze-lru',
> - 'py-repoze-profile' => 'py3-repoze-profile',
> - 'py-repoze-who' => 'py3-repoze-who',
> - 'py-requests-aws4auth' => 'py3-requests-aws4auth',
> - 'py-requests-futures' => 'py3-requests-futures',
> - 'py-requests-mock' => 'py3-requests-mock',
> - 'py-requests-toolbelt' => 'py3-requests-toolbelt',
> - 'py-rrdtool' => 'py3-rrdtool',
> - 'py-ruamel.yaml' => 'py3-ruamel.yaml',
> - 'py-scrypt' => 'py3-scrypt',
> - 'py-selenium' => 'py3-selenium',
> - 'py-simplesoap' => 'py3-simplesoap',
> - 'py-soupsieve' => 'py3-soupsieve',
> - 'py-spdx' => 'py3-spdx',
> - 'py-spdx-lookup' => 'py3-spdx-lookup',
> - 'py-tempita' => 'py3-tempita',
> - 'py-unidecode' => 'py3-unidecode',
> - 'py-uritemplate' => 'py3-uritemplate',
> - 'py-vobject' => 'py3-vobject',
> - 'py-waitress' => 'py3-waitress',
> - 'py-webencodings' => 'py3-webencodings',
> - 'py-xmltodict' => 'py3-xmltodict',
> - 'py-jaraco-functools' => 'py3-jaraco-functools',
> - 'py-logilab-common' => 'py3-logilab-common',
> - 'py-memcached' => 'py3-memcached',
> - 'py-tempora' => 'py3-tempora',
> - 'py-redland' => 'py3-redland',
> - 'py-GitPython' => 'py3-GitPython',
> - 'py-ICU' => 'py3-ICU',
> - 'py-MarkupSafe' => 'py3-MarkupSafe',
> - 'py-PEG2' => 'py3-PEG2',
> - 'py-PyPDF2' => 'py3-PyPDF2',
> - 'py-ana' => 'py3-ana',
> - 'py-anytree' => 'py3-anytree',
> - 'py-appdirs' => 'py3-appdirs',
> - 'py-argcomplete' => 'py3-argcomplete',
> - 'py-argh' => 'py3-argh',
> - 'py-audio' => 'py3-audio',
> - 'py-axolotl-curve25519' => 'py3-axolotl-curve25519',
> - 'py-backcall' => 'py3-backcall',
> - 'py-biplist' => 'py3-biplist',
> - 'py-bitstring' => 'py3-bitstring',
> - 'py-blessings' => 'py3-blessings',
> - 'py-blist' => 'py3-blist',
> - 'py-bsddb3' => 'py3-bsddb3',
> - 'py-cairocffi' => 'py3-cairocffi',
> - 'py-cffi' => 'py3-cffi',
> - 'py-characteristic' => 'py3-characteristic',
> - 'py-cheetah' => 'py3-cheetah',
> - 'py-clint' => 'py3-clint',
> - 'py-colored' => 'py3-colored',
> - 'py-configobj' => 'py3-configobj',
> - 'py-cooldict' => 'py3-cooldict',
> - 'py-cssutils' => 'py3-cssutils',
> - 'py-cstruct' => 'py3-cstruct',
> - 'py-cymruwhois' => 'py3-cymruwhois',
> - 'py-daemonize' => 'py3-daemonize',
> - 'py-decorator' => 'py3-decorator',
> - 'py-defusedxml' => 'py3-defusedxml',
> - 'py-demjson' => 'py3-demjson',
> - 'py-dicttoxml' => 'py3-dicttoxml',
> - 'py-discid' => 'py3-discid',
> - 'py-dispatcher' => 'py3-dispatcher',
> - 'py-dnslib' => 'py3-dnslib',
> - 'py-docopt' => 'py3-docopt',
> - 'py-easyprocess' => 'py3-easyprocess',
> - 'py-entrypoints' => 'py3-entrypoints',
> - 'py-filebytes' => 'py3-filebytes',
> - 'py-filelock' => 'py3-filelock',
> - 'py-flaky' => 'py3-flaky',
> - 'py-flexmock' => 'py3-flexmock',
> - 'py-frozendict' => 'py3-frozendict',
> - 'py-gitdb' => 'py3-gitdb',
> - 'py-greenlet' => 'py3-greenlet',
> - 'py-ipython_genutils' => 'py3-ipython_genutils',
> - 'py-iso3166' => 'py3-iso3166',
> - 'py-iso639' => 'py3-iso639',
> - 'py-isodate' => 'py3-isodate',
> - 'py-isort' => 'py3-isort',
> - 'py-jellyfish' => 'py3-jellyfish',
> - 'py-jmespath' => 'py3-jmespath',
> - 'py-magic' => 'py3-magic',
> - 'py-markdown' => 'py3-markdown',
> - 'py-mccabe' => 'py3-mccabe',
> - 'py-minimock' => 'py3-minimock',
> - 'py-mox3' => 'py3-mox3',
> - 'py-msgpack' => 'py3-msgpack',
> - 'py-munch' => 'py3-munch',
> - 'py-nose-warnings-filters' => 'py3-nose-warnings-filters',
> - 'py-nosexcover' => 'py3-nosexcover',
> - 'py-odbc' => 'py3-odbc',
> - 'py-olefile' => 'py3-olefile',
> - 'py-pandocfilters' => 'py3-pandocfilters',
> - 'py-parallel' => 'py3-parallel',
> - 'py-pathspec' => 'py3-pathspec',
> - 'py-pbkdf2' => 'py3-pbkdf2',
> - 'py-peewee' => 'py3-peewee',
> - 'py-phonenumbers' => 'py3-phonenumbers',
> - 'py-pickleshare' => 'py3-pickleshare',
> - 'py-progress' => 'py3-progress',
> - 'py-progressbar' => 'py3-progressbar',
> - 'py-pyprof2calltree' => 'py3-pyprof2calltree',
> - 'py-pyte' => 'py3-pyte',
> - 'py-rencode' => 'py3-rencode',
> - 'py-robotframework' => 'py3-robotframework',
> - 'py-rfc6555' => 'py3-rfc6555',
> - 'py-send2trash' => 'py3-send2trash',
> - 'py-setuptools_scm_git_archive' => 'py3-setuptools_scm_git_archive',
> - 'py-setuptools_trial' => 'py3-setuptools_trial',
> - 'py-sh' => 'py3-sh',
> - 'py-simpleeval' => 'py3-simpleeval',
> - 'py-simplegeneric' => 'py3-simplegeneric',
> - 'py-smmap' => 'py3-smmap',
> - 'py-socks' => 'py3-socks',
> - 'py-sql' => 'py3-sql',
> - 'py-stdnum' => 'py3-stdnum',
> - 'py-straight.plugin' => 'py3-straight.plugin',
> - 'py-test-expect' => 'py3-test-expect',
> - 'py-test-forked' => 'py3-test-forked',
> - 'py-test-relaxed' => 'py3-test-relaxed',
> - 'py-test-subtesthack' => 'py3-test-subtesthack',
> - 'py-testpath' => 'py3-testpath',
> - 'py-tld' => 'py3-tld',
> - 'py-tox' => 'py3-tox',
> - 'py-uv' => 'py3-uv',
> - 'py-vcversioner' => 'py3-vcversioner',
> - 'py-voluptuous' => 'py3-voluptuous',
> - 'py-wrapt' => 'py3-wrapt',
> - 'py-wstools' => 'py3-wstools',
> - 'py-xcbgen' => 'py3-xcbgen',
> - 'py-xlsxwriter' => 'py3-xlsxwriter',
> - 'py-yamllint' => 'py3-yamllint',
> - 'py-yapf' => 'py3-yapf',
> - 'py-sqlalchemy' => 'py3-sqlalchemy',
> - 'py-flup' => 'py3-flup',
> - 'py-feedparser' => 'py3-feedparser',
> - 'apertium-af-nl' => 'apertium-afr-nld',
> - 'apertium-ca-it' => 'apertium-cat-ita',
> - 'apertium-en-ca' => 'apertium-eng-cat',
> - 'apertium-es-ast' => 'apertium-spa-ast',
> - 'apertium-es-ca' => 'apertium-spa-cat',
> - 'apertium-id-ms' => 'apertium-ind-zlm',
> - 'apertium-is-en' => 'apertium-isl-eng',
> - 'apertium-is-sv' => 'apertium-isl-swe',
> - 'apertium-mk-bg' => 'apertium-mkd-bul',
> - 'apertium-mk-en' => 'apertium-mkd-eng',
> - 'apertium-pt-ca' => 'apertium-por-cat',
> - 'pinentry-gtk2' => 'pinentry-gnome3',
> - 'sxiv' => 'nsxiv',
> - 'geoclue' => 'geoclue2',
> - 'py-extras' => 'py3-extras',
> - 'py-fixtures' => 'py3-fixtures',
> - 'py-pbr' => 'py3-pbr',
> - 'py-testtools' => 'py3-testtools',
> - 'py-pyusb' => 'py3-pyusb',
> - 'py-atomicwrites' => 'py3-atomicwrites',
> - 'py-attrs' => 'py3-attrs',
> - 'py-coverage' => 'py3-coverage',
> - 'py-dateutil' => 'py3-dateutil',
> - 'py-freezegun' => 'py3-freezegun',
> - 'py-hypothesis' => 'py3-hypothesis',
> - 'py-more-itertools' => 'py3-more-itertools',
> - 'py-pluggy' => 'py3-pluggy',
> - 'py-py' => 'py3-py',
> - 'py-test' => 'py3-test',
> - 'py-test-benchmark' => 'py3-test-benchmark',
> - 'py-test-cov' => 'py3-test-cov',
> - 'py-test-mock' => 'py3-test-mock',
> - 'py-test-runner' => 'py3-test-runner',
> - 'py-setuptools_scm' => 'py3-setuptools_scm',
> - 'ssvnc-viewer' => 'tigervnc',
> - 'py-tz' => 'py3-tz',
> - 'py-pretend' => 'py3-pretend',
> - 'py-mock' => 'py3-mock',
> - 'gmic-qt-krita' => 'krita-gmic-plugin',
> # 7.2
> 'tracker-miners' => 'tracker3-miners',
> 'tracker' => 'tracker3',
> @@ -553,215 +290,6 @@ sub setup_obsolete_reason
> # want to put regexps as well in there (see the terraform or hs entries
> # for instance)
> setup_obsolete_reason(
> -# 7.0
> - 3 => qr{^ruby26-},
> - 3 => 'mailpile',
> - 7 => 'p5-Geo-GDAL',
> - 3 => 'gnome-latex',
> - 3 => 'p5-Puppet-Tidy',
> - 6 => 'kf5-icons-baloo',
> - 3 => 'canto',
> - 6 => 'py-mini-amf',
> - 6 => 'py3-mini-amf',
> - 9 => 'qucs-s',
> - 3 => 'qt4',
> - 3 => 'qt4-examples',
> - 3 => 'qt4-html',
> - 3 => 'qt4-mysql',
> - 3 => 'qt4-postgresql',
> - 3 => 'qt4-sqlite2',
> - 3 => 'qt4-tds',
> - 1 => 'antlr3',
> - 6 => 'enigmail',
> - 6 => 'enigmail-seamonkey',
> - 4 => 'google-compute-engine',
> - 3 => 'bzr',
> - 3 => 'bzr-svn',
> - 6 => 'libvstr',
> -# 7.1
> - 0 => 'cue',
> - 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',
> - 3 => 'tilecache',
> - 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',
> - 3 => 'mono-gnome',
> - 3 => 'libbonoboui',
> - 3 => 'libgnomeui',
> - 3 => 'gtetrinet',
> - 3 => 'gtetrinet-themes',
> - 3 => 'grhino',
> - 3 => 'gbrainy',
> - 3 => 'gnome-vfs2',
> - 3 => 'gnome-mime-data',
> - 3 => 'libIDL',
> - 3 => 'chemical-mime-data',
> - 3 => 'gmfsk',
> - 13 => 'gmapcatcher',
> - 3 => 'childsplay',
> - 6 => 'py-texscythe',
> - 6 => 'py-sqlalchemy-migrate',
> - 6 => 'py3-sqlalchemy-migrate',
> - 13 => 'rawdog',
> - 13 => 'charm',
> - 0 => 'ktsuss',
> - 11 => 'apertium-ht-en',
> - 7 => 'pear-Auth',
> - 7 => 'pear-Auth-HTTP',
> - 7 => 'pear-Auth-SASL',
> - 7 => 'pear-Cache',
> - 7 => 'pear-Config',
> - 7 => 'pear-Console-Table',
> - 7 => 'pear-Date',
> - 7 => 'pear-Date-Holidays',
> - 7 => 'pear-Date-Holidays_Australia',
> - 7 => 'pear-Date-Holidays_Austria',
> - 7 => 'pear-Date-Holidays_Brazil',
> - 7 => 'pear-Date-Holidays_Chile',
> - 7 => 'pear-Date-Holidays_Croatia',
> - 7 => 'pear-Date-Holidays_Czech',
> - 7 => 'pear-Date-Holidays_Denmark',
> - 7 => 'pear-Date-Holidays_Discordian',
> - 7 => 'pear-Date-Holidays_EnglandWales',
> - 7 => 'pear-Date-Holidays_Finland',
> - 7 => 'pear-Date-Holidays_France',
> - 7 => 'pear-Date-Holidays_Germany',
> - 7 => 'pear-Date-Holidays_Iceland',
> - 7 => 'pear-Date-Holidays_Ireland',
> - 7 => 'pear-Date-Holidays_Italy',
> - 7 => 'pear-Date-Holidays_Japan',
> - 7 => 'pear-Date-Holidays_Netherlands',
> - 7 => 'pear-Date-Holidays_Norway',
> - 7 => 'pear-Date-Holidays_PHPdotNet',
> - 7 => 'pear-Date-Holidays_Portugal',
> - 7 => 'pear-Date-Holidays_Romania',
> - 7 => 'pear-Date-Holidays_Russia',
> - 7 => 'pear-Date-Holidays_SanMarino',
> - 7 => 'pear-Date-Holidays_Serbia',
> - 7 => 'pear-Date-Holidays_Slovenia',
> - 7 => 'pear-Date-Holidays_Spain',
> - 7 => 'pear-Date-Holidays_Sweden',
> - 7 => 'pear-Date-Holidays_Turkey',
> - 7 => 'pear-Date-Holidays_UNO',
> - 7 => 'pear-Date-Holidays_USA',
> - 7 => 'pear-Date-Holidays_Ukraine',
> - 7 => 'pear-Date-Holidays_Venezuela',
> - 7 => 'pear-File',
> - 7 => 'pear-File-Find',
> - 7 => 'pear-HTML-Page2',
> - 7 => 'pear-HTML-Select',
> - 7 => 'pear-HTML-Template_IT',
> - 7 => 'pear-HTTP',
> - 7 => 'pear-HTTP-Request',
> - 7 => 'pear-HTTP-WebDAV-Server',
> - 7 => 'pear-Log',
> - 7 => 'pear-MIME-Type',
> - 7 => 'pear-Mail',
> - 7 => 'pear-Mail-Mime',
> - 7 => 'pear-Mail-mimeDecode',
> - 7 => 'pear-Net-DNS',
> - 7 => 'pear-Net-DNS2',
> - 7 => 'pear-Net-IDNA2',
> - 7 => 'pear-Net-IMAP',
> - 7 => 'pear-Net-IPv4',
> - 7 => 'pear-Net-IPv6',
> - 7 => 'pear-Net-LDAP',
> - 7 => 'pear-Net-LDAP2',
> - 7 => 'pear-Net-SMTP',
> - 7 => 'pear-Net-Sieve',
> - 7 => 'pear-Net-Socket',
> - 7 => 'pear-Net-URL',
> - 7 => 'pear-Net-URL2',
> - 7 => 'pear-Net-URL_Mapper',
> - 7 => 'pear-SOAP',
> - 7 => 'pear-Services-Weather',
> - 7 => 'pear-Services-oEmbed',
> - 7 => 'pear-System-Command',
> - 7 => 'pear-Validate',
> - 7 => 'pear-XML-Parser',
> - 7 => 'pear-XML-RSS',
> - 7 => 'pear-XML-Serializer',
> - 7 => 'pear-XML-Tree',
> - 3 => 'luacrypto',
> - 13 => 'skytools',
> - 13 => 'pgloader',
> - 7 => 'php-markdown',
> - 7 => 'php-predis',
> - 5 => 'virtuoso',
> - 3 => 'upobsd',
> - 4 => 'waagent',
> - 3 => 'slim',
> - 3 => 'slim-themes',
> - 5 => 'ocaml-biniou',
> - 5 => 'ocaml-easy-format',
> - 5 => 'libdsm',
> - 8 => 'direvent',
> - 3 => 'climm',
> - 13 => 'spe',
> - 13 => 'py-Checker',
> - 3 => 'ssvnc',
> - 11 => 'netshot',
> - 13 => 'py-contextlib2',
> - 13 => 'py-linecache2',
> - 13 => 'py-traceback2',
> - 13 => 'py-unittest2',
> - 13 => 'py-pathlib',
> - 13 => 'py-pathlib2',
> - 6 => 'py3-pathlib',
> - 6 => 'py3-pathlib2',
> - 13 => 'py-ipaddress',
> - 13 => 'py-scandir',
> - 3 => 'd-feet',
> # 7.2
> 3 => qr{^ruby27-},
> 3 => 'gnome-documents',
> @@ -1109,12 +637,6 @@ setup_obsolete_reason(
> # these should be pkgnames, there was some hope that pkg_add might later
> # be able to act on these directly.
> my $obsolete_suggestion = {
> -# 7.0
> - 'gotweb' => 'gotwebd',
> - 'compton' => 'picom',
> - 'qucs-s' => [qw(xschem kicad)],
> -# 7.1
> - 'tilecache' => 'mapproxy',
> # 7.2
> 'exa' => 'eza',
> 'go-bootstrap' => 'go',
> @@ -1152,7 +674,6 @@ my $obsolete_message = {
> 5 => "outdated and/or no longer required by other ports",
> 6 => "no longer useful",
> 7 => "removed in favor of using the language's package manager",
> - 8 => "crashes in many different ways at runtime",
> 9 => "not working correctly",
> 10 => "other OS suggested, or see https://docs.gotosocial.org/en/latest/advanced/builds/nowasm/",
> 11 => "no longer packageable",
>
drop old quirks