From: Konrad Hinsen <konrad.hinsen@fastmail.net>
To: zimoun <zimon.toutoune@gmail.com>, Guix Devel <guix-devel@gnu.org>
Subject: Re: Python 2 end-of-life?
Date: Thu, 28 Nov 2019 15:40:19 +0100 [thread overview]
Message-ID: <m1k17kkqss.fsf@fastmail.net> (raw)
In-Reply-To: <m1eexu8tsn.fsf@khs-macbook.home>
Konrad Hinsen <konrad.hinsen@fastmail.net> writes:
> I'd say the very first thing we should do is look at all non-Python
> packages that depend indirectly on Python 2.
Here comes an update of my Python-2-in-Guix analysis. Sorted output,
distinction between likely libraries and likely application packages.
Plus the list of Python 2 libraries that something else depends on, with
special attention on those who don't currently have a Python 3
equivalent in Guix. Those would be good targets for porting work as
well.
Cheers,
Konrad.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(use-modules (guix packages)
(gnu packages)
(srfi srfi-1)
(ice-9 format))
(define (library-in-python2-ecosystem? package)
(string-prefix? "python2" (package-name package)))
(define (has-no-python3-equivalent? package)
(define python3-name (string-replace (package-name package) "python" 0 7))
(null? (find-packages-by-name python3-name)))
(define (dependencies package)
(filter package?
(map second
(package-direct-inputs package))))
(define python2-dependent-packages
(fold-packages
(lambda (package result)
(define deps (dependencies package))
(cond ((library-in-python2-ecosystem? package)
result)
((and (not (null? deps))
(every library-in-python2-ecosystem? deps))
(list (cons package (first result))
(second result)
(lset-union equal? deps (third result))))
((any library-in-python2-ecosystem? deps)
(list (first result)
(cons package (second result))
(lset-union equal? (third result))))
(else result)))
'(() () ())))
(define (package-< p1 p2)
(or (string<? (package-name p1) (package-name p2))
(and (string=? (package-name p1) (package-name p2))
(string<? (package-version p1) (package-version p2)))))
(display "Application packages written in Python 2\n")
(display "(all dependencies are Python 2)\n")
(display "\n")
(for-each (lambda (package)
(format #t "~a~%" (package-full-name package)))
(sort (first python2-dependent-packages) package-<))
(display "\n")
(display "\n")
(display "Application packages depending on Python 2\n")
(display "(some Python 2 dependencies)\n")
(display "\n")
(for-each (lambda (package)
(format #t "~a~%" (package-full-name package)))
(sort (second python2-dependent-packages) package-<))
(display "\n")
(display "\n")
(display "Python 2 packages on which the above packages depend\n")
(display "\n")
(for-each (lambda (package)
(format #t "~a~a~%"
(package-full-name package)
(if (has-no-python3-equivalent? package)
" (no Python 3 version in Guix)"
"")))
(sort (third python2-dependent-packages) package-<))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Output on today's state of Guix:
Application packages written in Python 2
(all dependencies are Python 2)
alot@0.5.1
android-googletest@1.8.0
bpython2@0.18
chirp@20181205
clipper@1.2.1
cmdtest@0.32
domainfinder@2.0.5
express-beta-diversity@1.0.8
fabric@1.14.0
find-circ@1.2-1.8655dca
gess@1.0
git-annex-remote-hubic@0.3.1
googletest@1.8.1
grit@2.0.5
iotop@0.6
key-mon@1.17
lekha@0.2.1
macs@2.1.1.20160309
miniupnpc@2.1.20190824
mlucas@18
nototools@20170925
pagekite@1.0.0.190721
patches@0.0-1.ef1b8a7
pbtranscript-tofu@2.2.3.8f5467f
pepr@1.0.9
pootle@2.8.2
postorius@1.0.3
ptpython2@0.34
pulseaudio-dlna@0.5.2-1.4472928
pyicoteo@2.0.7
python-cookies@2.2.1
python-rope@0.11.0
ribodiff@0.2.2
seabios@1.12.1
slingshot@0.9
stapler@0.3.2
taxtastic@0.8.5
tegaki-wagomu-japanese@0.3
tegaki-wagomu-japanese-joyo@0.3
tegaki-wagomu-japanese-kyoiku@0.3
tegaki-wagomu-simplified-chinese@0.3
tegaki-wagomu-traditional-chinese@0.3
tegaki-zinnia-japanese@0.3
tegaki-zinnia-japanese-joyo@0.3
tegaki-zinnia-japanese-kyoiku@0.3
tegaki-zinnia-japanese-light@0.3
tegaki-zinnia-simplified-chinese@0.3
tegaki-zinnia-simplified-chinese-light@0.3
tegaki-zinnia-traditional-chinese@0.3
tegaki-zinnia-traditional-chinese-light@0.3
tryton@4.6.2
woof@2012-05-31
Application packages depending on Python 2
(some Python 2 dependencies)
0ad@0.0.23b-alpha
4store@1.1.6
arachne-pnr@0.0-2-840bdfdeb
arandr@0.1.9
asciidoc@8.6.10
atril@1.22.0
audacity@2.3.2
avogadro@1.2.0
bam@0.5.1
bamm@1.7.3
beast@0.10.0
bedtools@2.18.0
bedtools@2.26.0
bedtools@2.27.1
bitlbee@3.5.1
bluefish@2.2.10
boost@1.70.0
boost-static@1.70.0
bubblewrap@0.4.0
calibre@3.42.0
caribou@0.4.21
ceph@13.2.6
childsplay@3.4
cinnamon-desktop@3.4.2
clang@3.5.2
clang@3.6.2
clang@3.7.1
clang@3.8.1
clang@3.9.1
clang@6.0.1
clang@7.0.1
clang@8.0.0
clang@9.0.0
clang-runtime@3.5.2
clang-runtime@3.6.2
clang-runtime@3.7.1
clang-runtime@3.8.1
clang-runtime@3.9.1
clang-runtime@6.0.1
clang-runtime@7.0.1
clang-runtime@8.0.0
clang-runtime@9.0.0
claws-mail@3.17.4
codingquarry@2.0
conkeror@68.2.0-guix0-preview3
coq@8.9.1
couger@1.8.2
crda@3.18
criu@3.11
crossmap@0.2.9
cvs-fast-export@1.45
deja-dup@34.3
deluge@1.3.15
dico@2.9
dot2tex@2.9.0
dtc@1.5.1
duplicity@0.7.19
dvdstyler@3.0.4
emacs-clang-format@8.0.0
emacs-clang-rename@8.0.0
evince@3.34.1
ffmpeg@3.4.6
ffmpeg@4.2.1
filtlong@0.2.0-1.d1bb46d
fio@3.14
flann@1.8.4
fraggenescan@1.30
freebayes@1.0.2-1.3ce827d
freeorion@0.4.8
gcompris-qt@0.96
gcr@3.28.1
ghc@7.10.2
ghc@8.0.2
ghmm@0.9-rc3-0.2341
gimp@2.10.14
git@2.24.0
git-repo@1.12.37
glade@3.22.1
glusterfs@3.10.12
gn@0.0-1666.6e5ba2e
gnome-doc-utils@0.20.10
gnome-keyring@3.28.2
gnubackgammon@1.06.002
gnubg@1.06.002
gnumeric@1.12.46
gnurl@7.63.0
golly@3.2
gourmet@0.17.4
graphene@1.6.0
gtklick@0.6.4
handbrake@1.2.2
hexchat@2.14.2
hoedown@3.0.7
icecat@68.2.0-guix0-preview3
imp@2.6.2
impressive@0.12.0
inkscape@0.92.4
jellyfish@2.2.10
john-the-ripper-jumbo@1.9.0-1
julia@1.1.1
kaldi-gstreamer-server@0-1.1735ba4
keybinder@0.3.1
kfilemetadata@5.55.0
kiki@1.0.2
kiki-the-nano-bot@1.0.2
kodi@18.4
kodi-wayland@18.4
lapack@3.7.1
lash@0.6.0-rc2
lci@0.11.2
ledger@3.1.3
libbigwig@0.4.4
libdbusmenu@16.04.0
libnl@3.5.0
libpqxx@4.0.1
libtorrent-rasterbar@1.1.13
lightdm@1.24.0
lilypond@2.19.80
linkchecker@9.4.0
llvm@3.5.2
llvm@3.6.2
llvm@3.7.1
llvm@3.8.1
llvm@3.9.1
llvm@6.0.1
llvm@7.0.1
llvm@8.0.0
llvm@9.0.0
llvm-for-extempore@3.7.1
makeself-safeextract@0.0.0-1.1a95e12
mate-applets@1.22.0
mate-menus@1.22.0
mcomix@1.2.1
mia@2.4.6
miso@0.5.4
mod-host@0.10.6-3.1726ad06b
mongodb@3.4.10
mono@4.4.1.0
mozjs@17.0.0
mozjs@24.2.0
mozjs@38.2.1.rc0
mozjs@52.0-1.6507e63
mozjs@60.2.3-2
nmap@7.80
nmoldyn@3.0.11
node@10.16.0
ocaml-dose3@5.0.1
offlineimap@7.2.4
openbox@3.6.1
openimageio@1.7.19
openimageio@1.8.17
opensmtpd-extras@5.7.1
openvswitch@2.12.0
osm2pgsql@0.96.0
ovmf@20170116-1.13a50a6
ovmf-aarch64@20170116-1.13a50a6
ovmf-arm@20170116-1.13a50a6
parted@3.3
perf@5.3.13
petsc@3.11.2
petsc-complex@3.11.2
petsc-complex-openmpi@3.11.2
petsc-openmpi@3.11.2
pidgin@2.13.0
piranha@1.2.1-1.0466d364b
pius@2.2.7
pluma@1.22.0
polybar@3.4.1
poretools@0.6.0-1.e426b1f
proteinortho@5.16b
pspp@1.2.0
pybitmessage@0.6.3.2
qt@4.8.7
qtbase@5.11.3
qtdeclarative@5.11.3
qtmultimedia@5.11.3
qtwebkit@5.212.0-alpha3
qucs@0.0.19-0.b4f27d9
rapicorn@16.0.0
rdiff-backup@1.2.8
renpy@7.3.5
rhythmbox@3.4.3
rocksdb@5.18.3
rrdtool@1.7.1
rseqc@2.6.1
rubber@1.1
rust@1.20.0
rust@1.21.0
rust@1.22.1
rust@1.23.0
rust@1.24.1
rust@1.25.0
rust@1.26.2
rust@1.27.2
rust@1.28.0
rust@1.29.2
rust@1.30.1
rust@1.31.1
rust@1.32.0
rust@1.33.0
rust@1.34.1
rust@1.35.0
rust@1.36.0
rust@1.37.0
scribus@1.5.5
sdcc@3.7.0
singular@4.1.2p1
slepc@3.11.1
slepc-complex@3.11.1
slepc-complex-openmpi@3.11.1
slepc-openmpi@3.11.1
solfege@3.22.2
sundials@3.1.1
sundials-openmpi@3.1.1
syslinux@6.04-pre-1.bb41e93
tadbit@0.2.0
telepathy-glib@0.24.1
telepathy-idle@0.2.0
telepathy-logger@0.8.2
telepathy-mission-control@5.16.5
terminator@1.91
tetoolkit@2.0.3
texlive-bin@20180414
tophat@2.1.1
tor@0.4.1.6
totem@3.30.0
u-boot-a20-olinuxino-lime@2019.04
u-boot-a20-olinuxino-lime2@2019.04
u-boot-a20-olinuxino-micro@2019.04
u-boot-am335x-boneblack@2019.04
u-boot-am335x-evm@2019.04
u-boot-bananapi-m2-ultra@2019.04
u-boot-cubieboard@2019.04
u-boot-cubietruck@2019.04
u-boot-firefly-rk3399@2019.10
u-boot-malta@2019.04
u-boot-mx6cuboxi@2019.04
u-boot-nintendo-nes-classic-edition@2019.04
u-boot-novena@2019.04
u-boot-pine64-plus@2019.04
u-boot-pinebook@2019.04
u-boot-puma-rk3399@2019.04
u-boot-rock64-rk3328@2019.10
u-boot-rockpro64-rk3399@2019.10
u-boot-tools@2019.04
u-boot-vexpress-ca9x4@2019.04
u-boot-wandboard@2019.04
ungoogled-chromium@78.0.3904.108-0.8f06513
ungoogled-chromium-wayland@78.0.3904.108-0.8f06513
vboot-utils@R63-10032.B
vcflib@0.0.0-1.5ac0913
vigra@1.11.1
volk@1.3
wabt@1.0.12
wicd@1.7.4
xcb-util-errors@1.0-1.5d660eb
xen@4.11.1
xpra@2.5.3
youtube-dl-gui@0.3.8
zn-poly@0.9.1
zziplib@0.13.69
Python 2 packages on which the above packages depend
python2@2.7.16
python2-babel@2.7.0
python2-bcrypt@3.1.7
python2-biopython@1.70
python2-booleanoperations@0.7.1 (no Python 3 version in Guix)
python2-bx-python@0.8.2
python2-chardet@3.0.4
python2-cliapp@1.20180812.1 (no Python 3 version in Guix)
python2-configobj@5.0.6
python2-coverage-test-runner@1.15 (no Python 3 version in Guix)
python2-cssmin@0.2.0
python2-curtsies@0.2.11
python2-cython@0.29.13
python2-dateutil@2.8.0
python2-dbus@1.2.14
python2-decorator@4.3.0
python2-defcon@0.3.5 (no Python 3 version in Guix)
python2-dendropy@4.4.0
python2-diff-match-patch@20121119
python2-dirsync@2.2.3
python2-django@1.11.25
python2-django-allauth@0.39.1
python2-django-assets@0.12
python2-django-bulk-update@1.1.10
python2-django-contact-form@1.3
python2-django-contrib-comments@1.8.0
python2-django-jsonfield@1.0.3
python2-django-mailman3@1.1.0 (no Python 3 version in Guix)
python2-django-overextends@0.4.3
python2-django-redis@4.10.0
python2-django-rq@1.3.1
python2-django-sortedm2m@1.3.3
python2-django-statici18n@1.3.0
python2-docopt@0.6.2
python2-efl@1.23.0
python2-elasticsearch@6.1.1
python2-factory-boy@2.8.1
python2-fastalite@0.3
python2-fonttools@3.38.0
python2-fudge@0.9.6
python2-futures@3.2.0 (no Python 3 version in Guix)
python2-greenlet@0.4.15
python2-h5py@2.8.0
python2-htseq@0.9.1 (no Python 3 version in Guix)
python2-jedi@0.15.1
python2-jinja2@2.10.1
python2-levenshtein@0.12.0
python2-libxml2@2.9.9
python2-lxml@4.4.1
python2-magic@0.4.15
python2-mailmanclient@3.1.1
python2-markdown@3.1.1
python2-matplotlib@2.2.4
python2-mmtk@2.7.12 (no Python 3 version in Guix)
python2-mock@2.0.0
python2-mysqlclient@1.3.13
python2-netifaces@0.10.7
python2-networkx@2.2
python2-nose@1.3.7
python2-notify2@0.3.1
python2-notmuch@0.29.3
python2-numpy@1.16.5
python2-pandas@0.24.2
python2-paramiko@2.4.2
python2-pbcore@1.2.10 (no Python 3 version in Guix)
python2-pillow@6.1.0
python2-prompt-toolkit@2.0.7
python2-protobuf@3.10.0
python2-psutil@5.6.5
python2-psycopg2@2.7.7
python2-pybedtools@0.8.0
python2-pyclipper@1.1.0.post1
python2-pygame@1.9.4
python2-pygments@2.4.2
python2-pygobject@3.28.3
python2-pygpgme@0.3
python2-pygtk@2.24.0 (no Python 3 version in Guix)
python2-pynacl@1.3.0
python2-pypdf2@1.26.0
python2-pyroute2@0.5.6 (no Python 3 version in Guix)
python2-pysam@0.15.1
python2-pyserial@3.1.1
python2-pytest@4.4.2
python2-pytest-catchlog@1.2.2
python2-pytest-cov@2.6.1
python2-pytest-django@3.1.2
python2-pytz@2019.1
python2-pyxdg@0.25
python2-pyyaml@3.13
python2-rauth@0.7.3
python2-requests@2.22.0
python2-rq@0.13.0
python2-rsvg@2.32.0 (no Python 3 version in Guix)
python2-scandir@1.9.0
python2-scikit-learn@0.20.4
python2-scipy@1.2.2
python2-setproctitle@1.1.10
python2-six@1.12.0
python2-socksipychain@2.0.15
python2-sphinx@1.7.7
python2-sqlalchemy@1.3.3
python2-statsmodels@0.9.0
python2-stemming@1.0.1 (no Python 3 version in Guix)
python2-swiftclient@2.6.0
python2-tegaki-tools@0.3.1 (no Python 3 version in Guix)
python2-translate-toolkit@2.1.0
python2-ttystatus@0.36 (no Python 3 version in Guix)
python2-twisted@19.7.0
python2-ufolib@2.1.1 (no Python 3 version in Guix)
python2-unittest2@1.1.0
python2-urwid@2.0.1
python2-urwidtrees@1.0.2
python2-xlib@0.14 (no Python 3 version in Guix)
python2-zeroconf@0.19.1 (no Python 3 version in Guix)
next prev parent reply other threads:[~2019-11-28 14:40 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-31 15:39 Python 2 end-of-life? zimoun
2019-11-21 11:46 ` zimoun
2019-11-21 12:01 ` Konrad Hinsen
2019-11-26 16:51 ` Konrad Hinsen
2019-11-26 17:50 ` Hartmut Goebel
2019-11-26 18:55 ` ng0
2019-11-27 8:28 ` Konrad Hinsen
2019-11-27 17:41 ` zimoun
2019-11-26 21:51 ` Bengt Richter
2019-11-27 7:56 ` Konrad Hinsen
2019-11-27 17:35 ` zimoun
2019-11-29 6:07 ` Bengt Richter
2019-11-29 7:38 ` Konrad Hinsen
2019-11-29 12:12 ` zimoun
2019-11-29 11:41 ` zimoun
2019-11-29 13:42 ` Bengt Richter
2019-11-29 14:12 ` zimoun
2019-11-29 22:16 ` Bengt Richter
2019-11-27 17:28 ` zimoun
2019-11-27 17:43 ` Ricardo Wurmus
2019-11-29 6:54 ` Bengt Richter
2019-11-29 11:55 ` zimoun
2019-11-28 14:40 ` Konrad Hinsen [this message]
2019-11-28 15:50 ` Hartmut Goebel
2019-11-28 18:22 ` zimoun
2019-11-21 17:28 ` Alex Griffin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1k17kkqss.fsf@fastmail.net \
--to=konrad.hinsen@fastmail.net \
--cc=guix-devel@gnu.org \
--cc=zimon.toutoune@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).