Guix Case Study: plover-python-dictionary

Table of Contents

Overview

This case study walks through packaging the plover-python-dictionary plugin within Guix. The plugin allows Plover to load steno dictionaries which are stored as Python files.

The following Guix version is used here:

guix describe
Generation 67	Nov 05 2021 21:31:58	(current)
  guix c55a64c
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: c55a64cb7e82e88e26c26995f983fc9675b6276e

Garbage collection is run beforehand so that more of the build process can be demonstrated. It removes unused packages and build artifacts. Because of this, some parts of this case study take longer to build (and produce more output) than they may otherwise, since Guix needs to rebuild more things.

guix gc

DISCLAIMER

This may not be the most efficient way to create and maintain a package! However, it does show how packaging works within Guix and, if it's not the best method, it is sufficient.

Steps

1. Create a build environment

The guix shell command1 can create a new shell with the dependencies for a given package installed, but not the package itself. Any dependencies are installed if they're not already present on the system. It seems reasonable to assume that the dependencies needed to build Plover would work for the plover-python-dictionary plugin. At the very least, such an environment should provide a good starting point.

In order to future-proof this case study, the guix time-machine command is used. Guix is a rolling release and the guix command behaves similarly to git in that it can walk the version history. The guix time-machine command provides access to other revisions of Guix.

Here an alias is created so that instead of using the current (system) version of guix, the version given in the guix describe above is used. This is only for illustration purposes (unless you want to follow along at home)! When developing a package on your own, just use the latest guix version (i.e. after guix pull).

alias guix!="guix time-machine --url=https://git.savannah.gnu.org/git/guix.git --commit=c55a64cb7e82e88e26c26995f983fc9675b6276e --branch=master -- "

The following guix shell command creates and activates a Plover build environment. The --check option confirms that no environment variables unexpectedly get modified. If some are, the command has several options to adjust the "purity" of the environment. The --development option installs the build dependencies while excluding the package itself.

guix! shell --check --development plover

11.9 MB will be downloaded
 libx11-1.7.1A-doc  1.2MiB                                     468KiB/s 00:00 [##                ]  16.1%
:  libx11-1.7.1A-doc  1.2MiB                                     997KiB/s 00:01 [#########         ]  53.7%
:  libx11-1.7.1A-doc  1.2MiB                                     1.4MiB/s 00:01 [##################] 100.0%
29.8 MB will be downloaded
]   6.1%
:  gnutls-3.6.16-doc  1.0MiB                                     480KiB/s 00:00 [###               ]  18.4%
:  gnutls-3.6.16-doc  1.0MiB                                     949KiB/s 00:01 [#########         ]  55.3%
:  gnutls-3.6.16-doc  1.0MiB                                     1.3MiB/s 00:01 [##################] 100.0%
 gnutls-3.6.16  1.7MiB                                         3.7MiB/s 00:00 [#########         ]  52.1%
:  gnutls-3.6.16  1.7MiB                                         3.9MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxrender-0.9.10  23KiB                                      1.3MiB/s 00:00 [##################] 100.0%
 gnutls-3.6.16-debug  2.3MiB                                   2.0MiB/s 00:00 [####              ]  24.8%
:  gnutls-3.6.16-debug  2.3MiB                                   3.6MiB/s 00:00 [#############     ]  77.2%
:  gnutls-3.6.16-debug  2.3MiB                                   3.7MiB/s 00:01 [##################] 100.0%
#################] 100.0%
:  libxft-2.3.3  47KiB                                           1.6MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  python-pyqt5-sip-12.8.1  66KiB                                4.5MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  python-wrapper-3.8.2  362B                                    103KiB/s 00:00 [##################] 100.0%
 tk-8.6.10  1.3MiB                                             3.5MiB/s 00:00 [##########        ]  59.1%
:  tk-8.6.10  1.3MiB                                             3.1MiB/s 00:00 [##################] 100.0%
:  tk-8.6.10  1.3MiB                                             3.1MiB/s 00:00 [##################] 100.0%
####             ]  29.7%
:  python-pyparsing-2.4.6-doc  430KiB                            5.5MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  python-3.8.2-tk  33KiB                                        3.1MiB/s 00:00 [##################] 100.0%
10.7 MB will be downloaded
##               ]  17.9%
:  libtiff-4.2.0-doc  358KiB                                     433KiB/s 00:00 [#########         ]  53.6%
:  libtiff-4.2.0-doc  358KiB                                     481KiB/s 00:01 [################  ]  89.3%
:  libtiff-4.2.0-doc  358KiB                                     490KiB/s 00:01 [##################] 100.0%
11.5 MB will be downloaded
###              ]  27.4%
:  cyrus-sasl-2.1.27  234KiB                                     451KiB/s 00:00 [##############    ]  82.2%
:  cyrus-sasl-2.1.27  234KiB                                     489KiB/s 00:00 [##################] 100.0%
 openldap-2.4.57  1.2MiB                                       1.2MiB/s 00:00 [####              ]  26.1%
:  openldap-2.4.57  1.2MiB                                       1.9MiB/s 00:00 [#############     ]  73.0%
:  openldap-2.4.57  1.2MiB                                       2.3MiB/s 00:01 [##################] 100.0%
12.3 MB will be downloaded
##               ]  20.3%
:  curl-7.77.0-doc  630KiB                                       887KiB/s 00:01 [##############    ]  81.3%
:  curl-7.77.0-doc  630KiB                                       988KiB/s 00:01 [##################] 100.0%
 openldap-2.4.50  1.2MiB                                       2.1MiB/s 00:00 [########          ]  47.1%
:  openldap-2.4.50  1.2MiB                                       3.0MiB/s 00:00 [##################] 100.0%
#                ]  16.5%
:  curl-7.77.0  389KiB                                           1.8MiB/s 00:00 [##################] 100.0%
:  curl-7.77.0  389KiB                                           1.8MiB/s 00:00 [##################] 100.0%
14.8 MB will be downloaded
##               ]  16.9%
:  curl-7.74.0  379KiB                                           465KiB/s 00:00 [#########         ]  50.7%
:  curl-7.74.0  379KiB                                           630KiB/s 00:01 [##################] 100.0%
 git-minimal-2.33.1  4.3MiB                                    1.2MiB/s 00:00 [#                 ]   7.3%
:  git-minimal-2.33.1  4.3MiB                                    1.2MiB/s 00:01 [##                ]  14.6%
:  git-minimal-2.33.1  4.3MiB                                    1.3MiB/s 00:01 [###               ]  22.0%
:  git-minimal-2.33.1  4.3MiB                                    1.3MiB/s 00:01 [#####             ]  29.3%
:  git-minimal-2.33.1  4.3MiB                                    1.3MiB/s 00:01 [######            ]  38.1%
:  git-minimal-2.33.1  4.3MiB                                    1.4MiB/s 00:01 [########          ]  46.8%
:  git-minimal-2.33.1  4.3MiB                                    1.4MiB/s 00:02 [##########        ]  55.6%
:  git-minimal-2.33.1  4.3MiB                                    1.5MiB/s 00:02 [###########       ]  65.9%
:  git-minimal-2.33.1  4.3MiB                                    1.5MiB/s 00:02 [#############     ]  74.7%
:  git-minimal-2.33.1  4.3MiB                                    1.6MiB/s 00:02 [###############   ]  86.4%
:  git-minimal-2.33.1  4.3MiB                                    1.6MiB/s 00:03 [################# ]  96.6%
:  git-minimal-2.33.1  4.3MiB                                    1.6MiB/s 00:03 [##################] 100.0%
23.0 MB will be downloaded
 glib-2.62.6  2.4MiB                                           480KiB/s 00:00 [#                 ]   7.9%
:  glib-2.62.6  2.4MiB                                           1.2MiB/s 00:01 [######            ]  34.2%
:  glib-2.62.6  2.4MiB                                           1.9MiB/s 00:01 [############      ]  71.1%
:  glib-2.62.6  2.4MiB                                           2.3MiB/s 00:01 [##################] 100.0%
 glibc-2.31-static  1.3MiB                                     759KiB/s 00:01 [#######           ]  39.3%
:  glibc-2.31-static  1.3MiB                                     607KiB/s 00:01 [#######           ]  44.3%
:  glibc-2.31-static  1.3MiB                                     577KiB/s 00:01 [#########         ]  54.1%
:  glibc-2.31-static  1.3MiB                                     613KiB/s 00:01 [############      ]  68.9%
:  glibc-2.31-static  1.3MiB                                     785KiB/s 00:02 [##################] 100.0%
#########        ]  60.9%
:  glib-2.62.6-bin  105KiB                                       4.2MiB/s 00:00 [##################] 100.0%
 glibc-utf8-locales-2.31  3.2MiB                               4.8MiB/s 00:00 [#####             ]  31.1%
:  glibc-utf8-locales-2.31  3.2MiB                               5.3MiB/s 00:00 [############      ]  67.1%
:  glibc-utf8-locales-2.31  3.2MiB                               5.0MiB/s 00:01 [################# ]  96.0%
:  glibc-utf8-locales-2.31  3.2MiB                               5.1MiB/s 00:01 [##################] 100.0%
#################] 100.0%
:  python-appdirs-1.4.3  12KiB                                   4.1MiB/s 00:00 [##################] 100.0%
 python-cython-0.29.22  1.8MiB                                 2.0MiB/s 00:00 [#####             ]  30.7%
:  python-cython-0.29.22  1.8MiB                                 3.2MiB/s 00:00 [###############   ]  85.1%
:  python-cython-0.29.22  1.8MiB                                 3.4MiB/s 00:01 [##################] 100.0%
####             ]  32.4%
:  python-nose-1.3.7  197KiB                                     2.7MiB/s 00:00 [##################] 100.0%
#####            ]  36.2%
:  python-pytest-bootstrap-5.3.5  353KiB                         1.7MiB/s 00:00 [##################] 100.0%
#####            ]  37.2%
:  python-sip-5.5.0  345KiB                                      3.3MiB/s 00:00 [##################] 100.0%
#######          ]  45.7%
:  python-xmlschema-1.1.2  280KiB                                4.9MiB/s 00:00 [##################] 100.0%
 sed-4.8  278KiB                                               7.3MiB/s 00:00 [##################] 100.0%
#####            ]  36.2%
:  python-pytest-5.3.5  354KiB                                   3.9MiB/s 00:00 [##################] 100.0%
 apr-1.6.5  432KiB                                             8.0MiB/s 00:00 [##################] 100.0%
 python-numpy-1.17.3  4.3MiB                                   2.7MiB/s 00:00 [###               ]  20.4%
:  python-numpy-1.17.3  4.3MiB                                   5.0MiB/s 00:01 [###########       ]  61.2%
:  python-numpy-1.17.3  4.3MiB                                   4.9MiB/s 00:01 [###############   ]  84.5%
:  python-numpy-1.17.3  4.3MiB                                   4.6MiB/s 00:01 [##################] 100.0%
 apr-util-1.6.1  242KiB                                        6.1MiB/s 00:00 [##################] 100.0%
 utf8proc-2.5.0  147KiB                                        4.4MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  serf-1.3.9  86KiB                                             5.6MiB/s 00:00 [##################] 100.0%
 subversion-1.14.1  2.8MiB                                     2.3MiB/s 00:00 [####              ]  22.5%
:  subversion-1.14.1  2.8MiB                                     4.2MiB/s 00:01 [#############     ]  76.6%
:  subversion-1.14.1  2.8MiB                                     4.0MiB/s 00:01 [##################] 100.0%
11.9 MB will be downloaded
 graphviz-2.42.3-doc  3.8MiB                                   456KiB/s 00:00 [                  ]   4.9%
:  graphviz-2.42.3-doc  3.8MiB                                   717KiB/s 00:01 [##                ]  11.5%
:  graphviz-2.42.3-doc  3.8MiB                                   818KiB/s 00:01 [###               ]  18.1%
:  graphviz-2.42.3-doc  3.8MiB                                   963KiB/s 00:01 [####              ]  26.3%
:  graphviz-2.42.3-doc  3.8MiB                                  1011KiB/s 00:01 [#####             ]  32.9%
:  graphviz-2.42.3-doc  3.8MiB                                   1.1MiB/s 00:02 [#######           ]  42.7%
:  graphviz-2.42.3-doc  3.8MiB                                   1.1MiB/s 00:02 [#########         ]  52.6%
:  graphviz-2.42.3-doc  3.8MiB                                   1.2MiB/s 00:02 [###########       ]  62.4%
:  graphviz-2.42.3-doc  3.8MiB                                   1.3MiB/s 00:02 [#############     ]  75.6%
:  graphviz-2.42.3-doc  3.8MiB                                   1.3MiB/s 00:02 [###############   ]  85.4%
:  graphviz-2.42.3-doc  3.8MiB                                   1.4MiB/s 00:03 [##################] 100.0%
:  graphviz-2.42.3-doc  3.8MiB                                   1.4MiB/s 00:03 [##################] 100.0%
#################] 100.0%
:  desktop-file-utils-0.26  46KiB                                1.8MiB/s 00:00 [##################] 100.0%
#######          ]  49.5%
:  gd-2.3.0  129KiB                                              1.8MiB/s 00:00 [##################] 100.0%
######           ]  40.8%
:  gts-0.7.6  314KiB                                             5.3MiB/s 00:00 [##################] 100.0%
#                ]  15.6%
:  harfbuzz-2.6.4  822KiB                                        2.6MiB/s 00:00 [################  ]  93.5%
:  harfbuzz-2.6.4  822KiB                                        2.3MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxext-1.3.4  103KiB                                         2.5MiB/s 00:00 [##################] 100.0%
##########       ]  61.6%
:  libxt-1.2.0  208KiB                                           6.2MiB/s 00:00 [##################] 100.0%
#                ]  15.7%
:  cairo-1.16.0  814KiB                                          364KiB/s 00:01 [###########       ]  62.9%
:  cairo-1.16.0  814KiB                                          531KiB/s 00:02 [##################] 100.0%
##############   ]  88.4%
:  libxmu-1.1.3  72KiB                                           1.9MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxpm-3.5.13  51KiB                                          1.5MiB/s 00:00 [##################] 100.0%
##               ]  19.6%
:  pango-1.44.7  327KiB                                          4.6MiB/s 00:00 [##################] 100.0%
##               ]  19.0%
:  libxaw-1.0.13  337KiB                                         3.0MiB/s 00:00 [##################] 100.0%
#                ]  16.3%
:  shared-mime-info-1.15  787KiB                                 2.0MiB/s 00:00 [##############    ]  81.3%
:  shared-mime-info-1.15  787KiB                                 1.9MiB/s 00:00 [##################] 100.0%
 graphviz-2.42.3  3.3MiB                                       2.7MiB/s 00:00 [####              ]  26.1%
:  graphviz-2.42.3  3.3MiB                                       3.0MiB/s 00:01 [########          ]  48.5%
:  graphviz-2.42.3  3.3MiB                                       3.0MiB/s 00:01 [############      ]  70.9%
:  graphviz-2.42.3  3.3MiB                                       3.1MiB/s 00:01 [################  ]  93.3%
:  graphviz-2.42.3  3.3MiB                                       3.1MiB/s 00:01 [##################] 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
28.8 MB will be downloaded
 cups-minimal-2.3.3  5.1MiB                                    453KiB/s 00:00 [                  ]   3.7%
:  cups-minimal-2.3.3  5.1MiB                                    925KiB/s 00:01 [#                 ]  11.1%
:  cups-minimal-2.3.3  5.1MiB                                    1.7MiB/s 00:01 [####              ]  27.0%
:  cups-minimal-2.3.3  5.1MiB                                    2.4MiB/s 00:01 [########          ]  47.9%
:  cups-minimal-2.3.3  5.1MiB                                    2.9MiB/s 00:01 [############      ]  70.1%
:  cups-minimal-2.3.3  5.1MiB                                    3.0MiB/s 00:01 [###############   ]  86.1%
:  cups-minimal-2.3.3  5.1MiB                                    2.9MiB/s 00:02 [################  ]  93.4%
:  cups-minimal-2.3.3  5.1MiB                                    2.9MiB/s 00:02 [##################] 100.0%
##               ]  16.7%
:  libtiff-4.1.0  383KiB                                         4.3MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxfixes-5.0.3  13KiB                                        1.7MiB/s 00:00 [##################] 100.0%
#########        ]  58.3%
:  lcms-2.9  219KiB                                              6.1MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxdamage-1.1.5  7KiB                                        2.3MiB/s 00:00 [##################] 100.0%
#######          ]  46.3%
:  libxi-1.7.10  138KiB                                          3.0MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxrandr-1.5.2  26KiB                                        2.3MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxv-1.0.11  33KiB                                           3.8MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxxf86vm-1.1.4  14KiB                                       1.1MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxvmc-1.0.12  24KiB                                         5.4MiB/s 00:00 [##################] 100.0%
####             ]  30.5%
:  openjpeg-2.3.1  210KiB                                        5.7MiB/s 00:00 [##################] 100.0%
 mesa-20.2.4  37.0MiB                                          2.2MiB/s 00:00 [                  ]   2.0%
:  mesa-20.2.4  37.0MiB                                          4.2MiB/s 00:01 [#                 ]   6.8%
:  mesa-20.2.4  37.0MiB                                          4.2MiB/s 00:01 [#                 ]   9.1%
:  mesa-20.2.4  37.0MiB                                          4.2MiB/s 00:01 [##                ]  11.5%
:  mesa-20.2.4  37.0MiB                                          4.2MiB/s 00:01 [##                ]  13.8%
:  mesa-20.2.4  37.0MiB                                          4.3MiB/s 00:01 [##                ]  16.5%
:  mesa-20.2.4  37.0MiB                                          4.3MiB/s 00:02 [###               ]  19.2%
:  mesa-20.2.4  37.0MiB                                          4.3MiB/s 00:02 [###               ]  22.0%
:  mesa-20.2.4  37.0MiB                                          4.4MiB/s 00:02 [####              ]  24.7%
:  mesa-20.2.4  37.0MiB                                          4.4MiB/s 00:02 [####              ]  27.4%
:  mesa-20.2.4  37.0MiB                                          4.5MiB/s 00:02 [#####             ]  30.1%
:  mesa-20.2.4  37.0MiB                                          4.5MiB/s 00:03 [#####             ]  32.4%
:  mesa-20.2.4  37.0MiB                                          4.5MiB/s 00:03 [######            ]  35.1%
:  mesa-20.2.4  37.0MiB                                          4.5MiB/s 00:03 [######            ]  37.8%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:03 [#######           ]  40.9%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:04 [#######           ]  43.6%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:04 [########          ]  46.3%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:04 [########          ]  49.3%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:04 [#########         ]  52.0%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:04 [#########         ]  55.0%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:05 [##########        ]  58.1%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:05 [###########       ]  61.1%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:05 [###########       ]  63.8%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:05 [###########       ]  66.2%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:05 [############      ]  69.6%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:06 [#############     ]  72.3%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:06 [#############     ]  75.3%
:  mesa-20.2.4  37.0MiB                                          4.8MiB/s 00:06 [##############    ]  78.3%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:06 [##############    ]  80.7%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:06 [##############    ]  83.1%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:07 [###############   ]  86.1%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:07 [###############   ]  88.1%
:  mesa-20.2.4  37.0MiB                                          4.7MiB/s 00:07 [################  ]  90.5%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:07 [################  ]  93.2%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:08 [################# ]  96.2%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:08 [################# ]  98.6%
:  mesa-20.2.4  37.0MiB                                          4.6MiB/s 00:08 [##################] 100.0%
#################] 100.0%
:  freeglut-3.2.1  126KiB                                        3.1MiB/s 00:00 [##################] 100.0%
#####            ]  35.6%
:  libwebp-1.1.0  360KiB                                         7.2MiB/s 00:00 [##################] 100.0%
##               ]  19.3%
:  python-pillow-8.1.1  663KiB                                   3.5MiB/s 00:00 [##################] 100.0%
26.5 MB will be downloaded
 python-babel-2.9.0  4.9MiB                                    469KiB/s 00:00 [                  ]   3.9%
:  python-babel-2.9.0  4.9MiB                                    1.0MiB/s 00:01 [##                ]  12.9%
:  python-babel-2.9.0  4.9MiB                                    1.5MiB/s 00:01 [####              ]  25.7%
:  python-babel-2.9.0  4.9MiB                                    682KiB/s 00:02 [#####             ]  28.3%
:  python-babel-2.9.0  4.9MiB                                    930KiB/s 00:02 [#######           ]  42.5%
:  python-babel-2.9.0  4.9MiB                                    1.2MiB/s 00:02 [###########       ]  61.8%
:  python-babel-2.9.0  4.9MiB                                    1.5MiB/s 00:03 [##############    ]  81.1%
:  python-babel-2.9.0  4.9MiB                                    1.4MiB/s 00:03 [################  ]  90.1%
:  python-babel-2.9.0  4.9MiB                                    1.3MiB/s 00:03 [################  ]  91.4%
:  python-babel-2.9.0  4.9MiB                                    1.2MiB/s 00:04 [################  ]  93.9%
:  python-babel-2.9.0  4.9MiB                                    1.2MiB/s 00:04 [##################] 100.0%
:  python-babel-2.9.0  4.9MiB                                    1.2MiB/s 00:04 [##################] 100.0%
##               ]  17.3%
:  avahi-0.8  371KiB                                             4.5MiB/s 00:00 [##################] 100.0%
#                ]  15.7%
:  cairo-1.16.0  815KiB                                          523KiB/s 00:01 [###########       ]  62.9%
:  cairo-1.16.0  815KiB                                          605KiB/s 00:01 [################  ]  94.3%
:  cairo-1.16.0  815KiB                                          609KiB/s 00:01 [##################] 100.0%
 ghostscript-with-cups-9.52  9.3MiB                            1.3MiB/s 00:00 [                  ]   4.7%
:  ghostscript-with-cups-9.52  9.3MiB                            3.2MiB/s 00:01 [###               ]  18.9%
:  ghostscript-with-cups-9.52  9.3MiB                            3.1MiB/s 00:01 [####              ]  25.6%
:  ghostscript-with-cups-9.52  9.3MiB                            4.1MiB/s 00:01 [#######           ]  42.5%
:  ghostscript-with-cups-9.52  9.3MiB                            3.8MiB/s 00:01 [##########        ]  58.7%
:  ghostscript-with-cups-9.52  9.3MiB                            4.3MiB/s 00:02 [#############     ]  76.2%
:  ghostscript-with-cups-9.52  9.3MiB                            4.9MiB/s 00:02 [################# ]  97.1%
:  ghostscript-with-cups-9.52  9.3MiB                            4.9MiB/s 00:02 [##################] 100.0%
 poppler-0.86.1  1.4MiB                                        1.8MiB/s 00:00 [#######           ]  41.4%
:  poppler-0.86.1  1.4MiB                                        2.3MiB/s 00:01 [###############   ]  87.3%
:  poppler-0.86.1  1.4MiB                                        2.4MiB/s 00:01 [##################] 100.0%
##########       ]  64.3%
:  python-dbus-1.2.16  100KiB                                    1.4MiB/s 00:00 [##################] 100.0%
#                ]  13.6%
:  cups-filters-1.27.4  940KiB                                   4.8MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  python-hidapi-0.7.99.post21  44KiB                            2.8MiB/s 00:00 [##################] 100.0%
 cups-2.3.3  5.2MiB                                            2.0MiB/s 00:00 [##                ]  12.1%
:  cups-2.3.3  5.2MiB                                            4.3MiB/s 00:01 [#######           ]  43.5%
:  cups-2.3.3  5.2MiB                                            4.1MiB/s 00:01 [##########        ]  60.4%
:  cups-2.3.3  5.2MiB                                            4.2MiB/s 00:01 [#############     ]  77.4%
:  cups-2.3.3  5.2MiB                                            3.8MiB/s 00:01 [################  ]  91.9%
:  cups-2.3.3  5.2MiB                                            3.8MiB/s 00:01 [##################] 100.0%
#################] 100.0%
:  python-pyserial-3.5  120KiB                                   1.8MiB/s 00:00 [##################] 100.0%
0.1 MB will be downloaded
###########      ]  68.1%
:  zziplib-0.13.72  94KiB                                        443KiB/s 00:00 [##################] 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'...  50.0%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
49.9 MB will be downloaded
2B-3.24.24-doc  3.0MiB                                    448KiB/s 00:00 [                  ]   2.1%
:  gtk%2B-3.24.24-doc  3.0MiB                                    616KiB/s 00:00 [#                 ]   8.3%
:  gtk%2B-3.24.24-doc  3.0MiB                                   1018KiB/s 00:01 [###               ]  20.8%
:  gtk%2B-3.24.24-doc  3.0MiB                                    1.8MiB/s 00:01 [########          ]  49.9%
:  gtk%2B-3.24.24-doc  3.0MiB                                    2.1MiB/s 00:01 [#############     ]  74.9%
:  gtk%2B-3.24.24-doc  3.0MiB                                    2.4MiB/s 00:01 [##################] 100.0%
###              ]  23.8%
:  atk-2.34.1  269KiB                                            2.2MiB/s 00:00 [##################] 100.0%
 cups-2.3.3  5.2MiB                                            2.0MiB/s 00:00 [##                ]  12.1%
:  cups-2.3.3  5.2MiB                                            3.6MiB/s 00:01 [######            ]  36.3%
:  cups-2.3.3  5.2MiB                                            3.5MiB/s 00:01 [#########         ]  50.8%
:  cups-2.3.3  5.2MiB                                            3.5MiB/s 00:01 [###########       ]  65.3%
:  cups-2.3.3  5.2MiB                                            3.5MiB/s 00:01 [##############    ]  82.2%
:  cups-2.3.3  5.2MiB                                            3.4MiB/s 00:01 [################  ]  94.3%
:  cups-2.3.3  5.2MiB                                            3.3MiB/s 00:02 [##################] 100.0%
###              ]  22.6%
:  gdk-pixbuf-2.40.0  566KiB                                     4.7MiB/s 00:00 [##################] 100.0%
#########        ]  56.1%
:  libcroco-0.6.13  228KiB                                       2.0MiB/s 00:00 [##################] 100.0%
####             ]  31.4%
:  libepoxy-1.5.4  408KiB                                        4.5MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxcursor-1.2.0  29KiB                                       1.1MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxinerama-1.1.4  9KiB                                       878KiB/s 00:00 [##################] 100.0%
##               ]  21.8%
:  libxkbcommon-1.0.3  293KiB                                    3.8MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxtst-1.2.3  29KiB                                          1.4MiB/s 00:00 [##################] 100.0%
 mariadb-10.5.8-lib  5.3MiB                                    3.8MiB/s 00:00 [##                ]  16.4%
:  mariadb-10.5.8-lib  5.3MiB                                    3.7MiB/s 00:00 [#####             ]  30.5%
:  mariadb-10.5.8-lib  5.3MiB                                    3.5MiB/s 00:01 [#######           ]  42.3%
:  mariadb-10.5.8-lib  5.3MiB                                    3.7MiB/s 00:01 [##########        ]  61.1%
:  mariadb-10.5.8-lib  5.3MiB                                    3.8MiB/s 00:01 [#############     ]  77.5%
:  mariadb-10.5.8-lib  5.3MiB                                    3.9MiB/s 00:01 [################  ]  93.9%
:  mariadb-10.5.8-lib  5.3MiB                                    3.9MiB/s 00:01 [##################] 100.0%
##########       ]  63.1%
:  at-spi2-core-2.34.0  203KiB                                   2.3MiB/s 00:00 [##################] 100.0%
 mariadb-10.5.8  22.2MiB                                       4.2MiB/s 00:00 [                  ]   4.5%
:  mariadb-10.5.8  22.2MiB                                       4.2MiB/s 00:00 [#                 ]   8.4%
:  mariadb-10.5.8  22.2MiB                                       3.9MiB/s 00:01 [##                ]  11.8%
:  mariadb-10.5.8  22.2MiB                                       3.8MiB/s 00:01 [##                ]  15.2%
:  mariadb-10.5.8  22.2MiB                                       3.7MiB/s 00:01 [###               ]  18.6%
:  mariadb-10.5.8  22.2MiB                                       3.7MiB/s 00:01 [###               ]  21.9%
:  mariadb-10.5.8  22.2MiB                                       3.7MiB/s 00:02 [####              ]  25.3%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:02 [#####             ]  28.7%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:02 [#####             ]  32.1%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:02 [######            ]  35.5%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:02 [#######           ]  39.4%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:03 [#######           ]  42.8%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:03 [########          ]  46.7%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:03 [#########         ]  50.1%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:03 [#########         ]  52.9%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:04 [##########        ]  56.8%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:04 [##########        ]  60.8%
:  mariadb-10.5.8  22.2MiB                                       3.7MiB/s 00:04 [###########       ]  64.7%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:04 [############      ]  68.1%
:  mariadb-10.5.8  22.2MiB                                       3.7MiB/s 00:04 [############      ]  72.0%
:  mariadb-10.5.8  22.2MiB                                       3.7MiB/s 00:05 [#############     ]  75.4%
:  mariadb-10.5.8  22.2MiB                                       3.7MiB/s 00:05 [##############    ]  79.3%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:05 [##############    ]  82.7%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:05 [###############   ]  86.1%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:05 [################  ]  88.9%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:06 [################  ]  92.3%
:  mariadb-10.5.8  22.2MiB                                       3.7MiB/s 00:06 [################# ]  97.4%
:  mariadb-10.5.8  22.2MiB                                       3.6MiB/s 00:06 [##################] 100.0%
#################] 100.0%
:  at-spi2-atk-2.34.1  71KiB                                     3.0MiB/s 00:00 [##################] 100.0%
#                ]  13.3%
:  mariadb-10.5.8-dev  960KiB                                    3.9MiB/s 00:00 [##################] 100.0%
:  mariadb-10.5.8-dev  960KiB                                    3.7MiB/s 00:00 [##################] 100.0%
###              ]  26.7%
:  pango-1.42.4  480KiB                                          4.3MiB/s 00:00 [##################] 100.0%
#########        ]  60.1%
:  polkit-0.116  213KiB                                          3.6MiB/s 00:00 [##################] 100.0%
##############   ]  88.0%
:  librsvg-2.40.21  145KiB                                       2.0MiB/s 00:00 [##################] 100.0%
2Bsvg-2.40.0  4.8MiB                               4.1MiB/s 00:00 [                  ]   2.6%
:  gdk-pixbuf%2Bsvg-2.40.0  4.8MiB                               2.0MiB/s 00:00 [##                ]  13.0%
:  gdk-pixbuf%2Bsvg-2.40.0  4.8MiB                               3.6MiB/s 00:01 [#######           ]  39.1%
:  gdk-pixbuf%2Bsvg-2.40.0  4.8MiB                               3.3MiB/s 00:01 [#########         ]  52.1%
:  gdk-pixbuf%2Bsvg-2.40.0  4.8MiB                               3.3MiB/s 00:01 [############      ]  67.7%
:  gdk-pixbuf%2Bsvg-2.40.0  4.8MiB                               3.3MiB/s 00:01 [##############    ]  83.3%
:  gdk-pixbuf%2Bsvg-2.40.0  4.8MiB                               3.3MiB/s 00:01 [################# ]  96.3%
:  gdk-pixbuf%2Bsvg-2.40.0  4.8MiB                               3.2MiB/s 00:02 [##################] 100.0%
2B-3.24.24  8.1MiB                                        4.0MiB/s 00:00 [                  ]   1.5%
:  gtk%2B-3.24.24  8.1MiB                                        3.6MiB/s 00:00 [#                 ]  10.8%
:  gtk%2B-3.24.24  8.1MiB                                        3.7MiB/s 00:00 [###               ]  21.6%
:  gtk%2B-3.24.24  8.1MiB                                        3.6MiB/s 00:01 [#####             ]  30.9%
:  gtk%2B-3.24.24  8.1MiB                                        3.6MiB/s 00:01 [#######           ]  40.1%
:  gtk%2B-3.24.24  8.1MiB                                        3.5MiB/s 00:01 [########          ]  49.4%
:  gtk%2B-3.24.24  8.1MiB                                        3.5MiB/s 00:01 [##########        ]  58.7%
:  gtk%2B-3.24.24  8.1MiB                                        3.6MiB/s 00:02 [############      ]  67.9%
:  gtk%2B-3.24.24  8.1MiB                                        3.6MiB/s 00:02 [#############     ]  77.2%
:  gtk%2B-3.24.24  8.1MiB                                        3.6MiB/s 00:02 [###############   ]  88.0%
:  gtk%2B-3.24.24  8.1MiB                                        3.6MiB/s 00:02 [################# ]  98.8%
:  gtk%2B-3.24.24  8.1MiB                                        3.6MiB/s 00:02 [##################] 100.0%
2B-3.24.24-bin  812KiB                                    5.5MiB/s 00:00 [##                ]  15.8%
:  gtk%2B-3.24.24-bin  812KiB                                    3.6MiB/s 00:00 [##################] 100.0%
:  gtk%2B-3.24.24-bin  812KiB                                    3.5MiB/s 00:00 [##################] 100.0%
5.7 MB will be downloaded
 postgresql-13.3  5.4MiB                                       615KiB/s 00:00 [                  ]   4.6%
:  postgresql-13.3  5.4MiB                                      1020KiB/s 00:01 [##                ]  12.7%
:  postgresql-13.3  5.4MiB                                       1.3MiB/s 00:01 [###               ]  21.9%
:  postgresql-13.3  5.4MiB                                       1.4MiB/s 00:01 [#####             ]  29.9%
:  postgresql-13.3  5.4MiB                                       1.5MiB/s 00:01 [######            ]  36.8%
:  postgresql-13.3  5.4MiB                                       1.6MiB/s 00:02 [########          ]  46.0%
:  postgresql-13.3  5.4MiB                                       1.6MiB/s 00:02 [#########         ]  54.1%
:  postgresql-13.3  5.4MiB                                       1.7MiB/s 00:02 [###########       ]  63.3%
:  postgresql-13.3  5.4MiB                                       1.8MiB/s 00:02 [#############     ]  72.5%
:  postgresql-13.3  5.4MiB                                       1.9MiB/s 00:02 [###############   ]  84.0%
:  postgresql-13.3  5.4MiB                                       1.9MiB/s 00:03 [################# ]  95.5%
:  postgresql-13.3  5.4MiB                                       1.9MiB/s 00:03 [##################] 100.0%
:  postgresql-13.3  5.4MiB                                       1.9MiB/s 00:03 [##################] 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'...  33.3%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  66.7%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
120.8 MB will be downloaded
###########      ]  69.8%
:  glib-networking-2.62.2  92KiB                                 404KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  enchant-2.2.15  49KiB                                         1.3MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  gamin-0.1.10  71KiB                                           441KiB/s 00:00 [##################] 100.0%
###              ]  24.9%
:  glu-9.0.1  257KiB                                             1.3MiB/s 00:00 [##################] 100.0%
 gstreamer-1.18.2  1.4MiB                                      3.4MiB/s 00:00 [#########         ]  52.6%
:  gstreamer-1.18.2  1.4MiB                                      2.9MiB/s 00:00 [###############   ]  87.7%
:  gstreamer-1.18.2  1.4MiB                                      2.9MiB/s 00:00 [##################] 100.0%
#                ]  11.4%
:  libical-3.0.8  564KiB                                         3.2MiB/s 00:00 [##################] 100.0%
]   6.3%
:  gst-plugins-base-1.18.2  2.0MiB                               3.6MiB/s 00:00 [#######           ]  44.2%
:  gst-plugins-base-1.18.2  2.0MiB                               3.3MiB/s 00:00 [#############     ]  75.8%
:  gst-plugins-base-1.18.2  2.0MiB                               1.0MiB/s 00:02 [###############   ]  88.4%
:  gst-plugins-base-1.18.2  2.0MiB                               1.1MiB/s 00:02 [##################] 100.0%
]   6.6%
:  bluez-5.55  973KiB                                            3.7MiB/s 00:00 [################  ]  92.1%
:  bluez-5.55  973KiB                                            3.7MiB/s 00:00 [##################] 100.0%
###              ]  25.1%
:  libinput-minimal-1.16.4  255KiB                               4.0MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libnotify-0.7.9  37KiB                                        1.5MiB/s 00:00 [##################] 100.0%
######           ]  41.5%
:  libsecret-0.20.4  309KiB                                      3.5MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libwpe-1.6.0  48KiB                                           2.6MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  libxcomposite-0.4.5  10KiB                                    580KiB/s 00:00 [##################] 100.0%
 postgresql-13.1  6.2MiB                                       4.2MiB/s 00:00 [##                ]  16.2%
:  postgresql-13.1  6.2MiB                                       4.5MiB/s 00:00 [#####             ]  32.3%
:  postgresql-13.1  6.2MiB                                       4.4MiB/s 00:01 [########          ]  46.4%
:  postgresql-13.1  6.2MiB                                       4.4MiB/s 00:01 [##########        ]  60.6%
:  postgresql-13.1  6.2MiB                                       4.2MiB/s 00:01 [#############     ]  72.7%
:  postgresql-13.1  6.2MiB                                       4.3MiB/s 00:01 [###############   ]  88.9%
:  postgresql-13.1  6.2MiB                                       3.9MiB/s 00:02 [##################] 100.0%
]   7.0%
:  pulseaudio-14.0  1.8MiB                                       3.9MiB/s 00:00 [########          ]  49.1%
:  pulseaudio-14.0  1.8MiB                                       4.1MiB/s 00:00 [##################] 100.0%
:  pulseaudio-14.0  1.8MiB                                       3.9MiB/s 00:00 [##################] 100.0%
 qtbase-5.15.2  17.5MiB                                        4.8MiB/s 00:00 [#                 ]   6.4%
:  qtbase-5.15.2  17.5MiB                                        4.8MiB/s 00:00 [##                ]  12.2%
:  qtbase-5.15.2  17.5MiB                                        4.1MiB/s 00:01 [##                ]  15.7%
:  qtbase-5.15.2  17.5MiB                                        3.6MiB/s 00:01 [###               ]  17.9%
:  qtbase-5.15.2  17.5MiB                                        3.2MiB/s 00:01 [###               ]  20.0%
:  qtbase-5.15.2  17.5MiB                                        4.6MiB/s 00:01 [######            ]  34.3%
:  qtbase-5.15.2  17.5MiB                                        4.6MiB/s 00:02 [#######           ]  40.1%
:  qtbase-5.15.2  17.5MiB                                        4.6MiB/s 00:02 [########          ]  45.8%
:  qtbase-5.15.2  17.5MiB                                        4.7MiB/s 00:02 [#########         ]  51.5%
:  qtbase-5.15.2  17.5MiB                                        4.7MiB/s 00:02 [##########        ]  58.0%
:  qtbase-5.15.2  17.5MiB                                        4.7MiB/s 00:02 [###########       ]  63.7%
:  qtbase-5.15.2  17.5MiB                                        4.8MiB/s 00:03 [############      ]  69.4%
:  qtbase-5.15.2  17.5MiB                                        4.7MiB/s 00:03 [#############     ]  75.1%
:  qtbase-5.15.2  17.5MiB                                        4.7MiB/s 00:03 [##############    ]  80.1%
:  qtbase-5.15.2  17.5MiB                                        4.7MiB/s 00:03 [###############   ]  86.6%
:  qtbase-5.15.2  17.5MiB                                        4.8MiB/s 00:03 [################# ]  94.5%
:  qtbase-5.15.2  17.5MiB                                        4.7MiB/s 00:04 [################# ]  99.5%
:  qtbase-5.15.2  17.5MiB                                        4.7MiB/s 00:04 [##################] 100.0%
####             ]  28.2%
:  sdl-1.2.15  454KiB                                            3.8MiB/s 00:00 [##################] 100.0%
 qtdeclarative-5.15.2  5.6MiB                                  3.7MiB/s 00:00 [###               ]  17.9%
:  qtdeclarative-5.15.2  5.6MiB                                  4.0MiB/s 00:00 [######            ]  33.5%
:  qtdeclarative-5.15.2  5.6MiB                                  3.9MiB/s 00:01 [########          ]  47.0%
:  qtdeclarative-5.15.2  5.6MiB                                  4.1MiB/s 00:01 [###########       ]  64.8%
:  qtdeclarative-5.15.2  5.6MiB                                  4.2MiB/s 00:01 [##############    ]  82.7%
:  qtdeclarative-5.15.2  5.6MiB                                  4.3MiB/s 00:01 [##################] 100.0%
#################] 100.0%
:  qtserialport-5.15.2  69KiB                                    3.7MiB/s 00:00 [##################] 100.0%
#                ]  11.6%
:  qtconnectivity-5.15.2  552KiB                                 1.3MiB/s 00:00 [##################] 100.0%
:  qtconnectivity-5.15.2  552KiB                                 1.2MiB/s 00:00 [##################] 100.0%
 qtlocation-5.15.2  3.1MiB                                     325KiB/s 00:01 [#                 ]   6.1%
:  qtlocation-5.15.2  3.1MiB                                     778KiB/s 00:01 [###               ]  20.4%
:  qtlocation-5.15.2  3.1MiB                                     1.0MiB/s 00:01 [######            ]  34.6%
:  qtlocation-5.15.2  3.1MiB                                     1.2MiB/s 00:01 [#########         ]  50.9%
:  qtlocation-5.15.2  3.1MiB                                     1.4MiB/s 00:01 [###########       ]  65.2%
:  qtlocation-5.15.2  3.1MiB                                     1.5MiB/s 00:02 [###############   ]  83.5%
:  qtlocation-5.15.2  3.1MiB                                     1.6MiB/s 00:02 [################# ]  99.8%
:  qtlocation-5.15.2  3.1MiB                                     1.6MiB/s 00:02 [##################] 100.0%
]   7.9%
:  qtmultimedia-5.15.2  810KiB                                   3.7MiB/s 00:00 [##################] 100.0%
:  qtmultimedia-5.15.2  810KiB                                   3.5MiB/s 00:00 [##################] 100.0%
########         ]  52.9%
:  qtsensors-5.15.2  242KiB                                      2.8MiB/s 00:00 [##################] 100.0%
##########       ]  65.8%
:  qtsvg-5.15.2  195KiB                                          3.2MiB/s 00:00 [##################] 100.0%
 qttools-5.15.2  5.5MiB                                        2.6MiB/s 00:00 [##                ]  13.7%
:  qttools-5.15.2  5.5MiB                                        2.7MiB/s 00:01 [####              ]  25.1%
:  qttools-5.15.2  5.5MiB                                        2.6MiB/s 00:01 [######            ]  34.2%
:  qttools-5.15.2  5.5MiB                                        2.6MiB/s 00:01 [########          ]  45.6%
:  qttools-5.15.2  5.5MiB                                        2.7MiB/s 00:01 [##########        ]  57.0%
:  qttools-5.15.2  5.5MiB                                        2.8MiB/s 00:01 [############      ]  70.6%
:  qttools-5.15.2  5.5MiB                                        2.9MiB/s 00:02 [###############   ]  84.3%
:  qttools-5.15.2  5.5MiB                                        3.0MiB/s 00:02 [##################] 100.0%
:  qttools-5.15.2  5.5MiB                                        3.0MiB/s 00:02 [##################] 100.0%
#################] 100.0%
:  qtwebchannel-5.15.2  101KiB                                   4.7MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  qtwebsockets-5.15.2  114KiB                                   4.0MiB/s 00:00 [##################] 100.0%
 qtwebkit-5.212.0-alpha4  12.8MiB                              4.4MiB/s 00:00 [#                 ]   7.3%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.5MiB/s 00:00 [##                ]  14.7%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.6MiB/s 00:01 [####              ]  22.5%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.4MiB/s 00:01 [#####             ]  28.8%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.5MiB/s 00:01 [######            ]  37.2%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.5MiB/s 00:01 [########          ]  44.5%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.5MiB/s 00:01 [#########         ]  52.3%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.6MiB/s 00:02 [##########        ]  60.1%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.7MiB/s 00:02 [############      ]  68.9%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.7MiB/s 00:02 [#############     ]  76.8%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.7MiB/s 00:02 [###############   ]  85.1%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.8MiB/s 00:02 [################  ]  93.9%
:  qtwebkit-5.212.0-alpha4  12.8MiB                              4.8MiB/s 00:03 [##################] 100.0%
#################] 100.0%
:  qtx11extras-5.15.2  33KiB                                     2.4MiB/s 00:00 [##################] 100.0%
]   9.0%
:  qtxmlpatterns-5.15.2  1.4MiB                                  1.9MiB/s 00:00 [#########         ]  54.0%
:  qtxmlpatterns-5.15.2  1.4MiB                                  2.3MiB/s 00:01 [##################] 100.0%
#################] 100.0%
:  talloc-2.3.3  37KiB                                           2.8MiB/s 00:00 [##################] 100.0%
 python-pyqt-5.15.2  5.1MiB                                    2.0MiB/s 00:00 [#                 ]   9.8%
:  python-pyqt-5.15.2  5.1MiB                                    4.3MiB/s 00:00 [#######           ]  39.1%
:  python-pyqt-5.15.2  5.1MiB                                    4.3MiB/s 00:01 [##########        ]  56.2%
:  python-pyqt-5.15.2  5.1MiB                                    4.2MiB/s 00:01 [#############     ]  73.3%
:  python-pyqt-5.15.2  5.1MiB                                    4.2MiB/s 00:01 [################  ]  90.4%
:  python-pyqt-5.15.2  5.1MiB                                    3.7MiB/s 00:01 [##################] 100.0%
#################] 100.0%
:  tevent-0.11.0  56KiB                                          3.7MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  wpebackend-fdo-1.6.1  27KiB                                   4.6MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  xdg-dbus-proxy-0.1.2  29KiB                                   3.2MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  xprop-1.2.5  24KiB                                            1.6MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  xset-1.2.4  18KiB                                             4.1MiB/s 00:00 [##################] 100.0%
##               ]  18.6%
:  zstd-1.4.4-lib  345KiB                                        2.1MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  xdg-utils-1.1.3  52KiB                                        991KiB/s 00:00 [##################] 100.0%
 libarchive-3.4.2  556KiB                                      6.0MiB/s 00:00 [##################] 100.0%
 samba-4.13.10  15.9MiB                                        4.2MiB/s 00:00 [#                 ]   6.3%
:  samba-4.13.10  15.9MiB                                        4.4MiB/s 00:00 [##                ]  12.6%
:  samba-4.13.10  15.9MiB                                        4.5MiB/s 00:01 [###               ]  18.9%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:01 [####              ]  25.2%
:  samba-4.13.10  15.9MiB                                        4.5MiB/s 00:01 [#####             ]  31.5%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:01 [######            ]  38.6%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:02 [########          ]  44.9%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:02 [#########         ]  51.2%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:02 [##########        ]  57.5%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:02 [###########       ]  64.6%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:02 [############      ]  70.9%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:03 [#############     ]  77.3%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:03 [###############   ]  83.6%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:03 [################  ]  89.9%
:  samba-4.13.10  15.9MiB                                        4.6MiB/s 00:03 [################# ]  95.4%
:  samba-4.13.10  15.9MiB                                        4.5MiB/s 00:04 [##################] 100.0%
###              ]  27.6%
:  libsoup-2.72.0  463KiB                                        2.3MiB/s 00:00 [##################] 100.0%
 webkitgtk-2.34.1  24.1MiB                                     4.9MiB/s 00:00 [                  ]   4.7%
:  webkitgtk-2.34.1  24.1MiB                                     4.9MiB/s 00:00 [#                 ]   8.8%
:  webkitgtk-2.34.1  24.1MiB                                     4.9MiB/s 00:01 [##                ]  13.0%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:01 [###               ]  17.1%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:01 [###               ]  21.8%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:01 [####              ]  26.0%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:01 [#####             ]  29.6%
:  webkitgtk-2.34.1  24.1MiB                                     4.9MiB/s 00:02 [######            ]  34.8%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:02 [#######           ]  38.9%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:02 [#######           ]  43.1%
:  webkitgtk-2.34.1  24.1MiB                                     4.9MiB/s 00:02 [########          ]  47.8%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:03 [#########         ]  51.9%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:03 [##########        ]  56.1%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:03 [##########        ]  59.7%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:03 [###########       ]  63.9%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:03 [############      ]  68.0%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:04 [#############     ]  72.7%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:04 [#############     ]  76.9%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:04 [##############    ]  81.0%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:04 [###############   ]  85.7%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:05 [################  ]  89.8%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:05 [################  ]  94.0%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:05 [################# ]  97.6%
:  webkitgtk-2.34.1  24.1MiB                                     4.8MiB/s 00:05 [##################] 100.0%
 wxwidgets-3.0.5.1  7.5MiB                                     2.1MiB/s 00:00 [#                 ]   8.3%
:  wxwidgets-3.0.5.1  7.5MiB                                     4.1MiB/s 00:01 [#####             ]  29.9%
:  wxwidgets-3.0.5.1  7.5MiB                                     4.1MiB/s 00:01 [#######           ]  41.6%
:  wxwidgets-3.0.5.1  7.5MiB                                     4.1MiB/s 00:01 [#########         ]  53.2%
:  wxwidgets-3.0.5.1  7.5MiB                                     4.1MiB/s 00:01 [###########       ]  64.9%
:  wxwidgets-3.0.5.1  7.5MiB                                     4.1MiB/s 00:01 [#############     ]  76.5%
:  wxwidgets-3.0.5.1  7.5MiB                                     4.1MiB/s 00:02 [###############   ]  88.2%
:  wxwidgets-3.0.5.1  7.5MiB                                     4.1MiB/s 00:02 [################# ]  99.8%
:  wxwidgets-3.0.5.1  7.5MiB                                     4.1MiB/s 00:02 [##################] 100.0%
 python-wxpython-4.0.7.post1  9.4MiB                           3.1MiB/s 00:00 [#                 ]   9.3%
:  python-wxpython-4.0.7.post1  9.4MiB                           3.7MiB/s 00:01 [###               ]  19.9%
:  python-wxpython-4.0.7.post1  9.4MiB                           3.8MiB/s 00:01 [#####             ]  29.2%
:  python-wxpython-4.0.7.post1  9.4MiB                           3.9MiB/s 00:01 [#######           ]  39.9%
:  python-wxpython-4.0.7.post1  9.4MiB                           4.0MiB/s 00:01 [########          ]  49.2%
:  python-wxpython-4.0.7.post1  9.4MiB                           4.1MiB/s 00:01 [##########        ]  59.8%
:  python-wxpython-4.0.7.post1  9.4MiB                           4.2MiB/s 00:02 [############      ]  70.4%
:  python-wxpython-4.0.7.post1  9.4MiB                           4.2MiB/s 00:02 [##############    ]  81.1%
:  python-wxpython-4.0.7.post1  9.4MiB                           4.2MiB/s 00:02 [################  ]  90.4%
:  python-wxpython-4.0.7.post1  9.4MiB                           4.2MiB/s 00:02 [##################] 100.0%
:  python-wxpython-4.0.7.post1  9.4MiB                           4.2MiB/s 00:02 [##################] 100.0%
The following derivation will be built:
   /gnu/store/lzl4cb37ma9972hwgwivni3x5k2n5k6c-profile.drv

1.1 MB will be downloaded
########         ]  54.0%
:  module-import-compiled  119KiB                                393KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  ed-1.16  56KiB                                                1.7MiB/s 00:00 [##################] 100.0%
#                ]  12.9%
:  findutils-4.7.0  497KiB                                       1.4MiB/s 00:00 [#############     ]  77.3%
:  findutils-4.7.0  497KiB                                       1.5MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  mkfontscale-1.2.1  21KiB                                      1.2MiB/s 00:00 [##################] 100.0%
]  10.4%
:  module-import-compiled  77KiB                                 3.7MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  mkfontdir-1.0.7  4KiB                                         965KiB/s 00:00 [##################] 100.0%
###############  ]  93.0%
:  module-import-compiled  69KiB                                 1.7MiB/s 00:00 [##################] 100.0%
]   8.1%
:  module-import-compiled  98KiB                                 3.8MiB/s 00:00 [##################] 100.0%
]   8.9%
:  module-import-compiled  90KiB                                 5.1MiB/s 00:00 [##################] 100.0%
]   6.8%
:  patch-2.7.6  117KiB                                           5.1MiB/s 00:00 [##################] 100.0%

: applying 1 graft for /gnu/store/wqqi36vzcqkrmq1kddzd6gv1b5i9xwic-desktop-file-utils-0.26.drv ...

: \
: applying 3 grafts for /gnu/store/7c3liz6kiqcjyg5nq0l2mhyb9qvn7h4r-python-babel-2.9.0.drv ...

: |
: applying 9 grafts for /gnu/store/blfyw85vk7n6ylqqdn1ixfb39n5df02b-sdl-1.2.15.drv ...

: /
: applying 20 grafts for /gnu/store/n6kalnmqimq0vb3bd77dy9wh6vdh34cm-wxwidgets-3.0.5.1.drv ...

-

applying 5 grafts for /gnu/store/nb2pp3qwg3cid7sm7xjv3xv5nw3j0vfn-python-wxpython-4.0.7.post1.drv ...

\

building CA certificate bundle...


listing Emacs sub-directories...


building fonts directory...


generating GLib schema cache...

|

creating GTK+ icon theme cache...


building cache files for GTK+ input methods...


building directory of Info manuals...


building XDG desktop file cache...


building XDG MIME database...


building profile with 52 packages...

/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
-
\
|
/
guix shell: checking the environment variables visible from shell '/gnu/store/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16/bin/bash'...
guix shell: All is good!  The shell gets correct environment variables.

2. Determine the package source

The plover-python-dictionary is available on GitHub and PyPI. Both sources could be used to build the Guix package. However, it may be easier to use the PyPI source. Guix provides a helper function, guix import, which will try to generate a package definition using PyPI's package definition. It will also recursively generate definitions for all the base package's dependencies.

3. Create a package definition

Since the plover-python-dictionary plugin is on PyPI, guix import can be used. Use a redirect to create a file containing the output of guix import.

guix! import pypi --recursive plover-python-dictionary > plover-python-dictionary.scm
Starting download of /tmp/guix-file.N685PN
From https://files.pythonhosted.org/packages/8d/ab/bcffe845da95f30fc9871ee0423570ad780c7b13c7b1a740da12cc7f5cfc/plover_python_dictionary-1.1.0.tar.gz...
 …ionary-1.1.0.tar.gz  5KiB           5.1MiB/s 00:00 [##################] 100.0%
:  …ionary-1.1.0.tar.gz  5KiB           629KiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.GNejWK
From https://files.pythonhosted.org/packages/15/61/42845042f6ee303eb4a7c958eff4b0d8b063e93282a653a4dd233195c97c/plover_python_dictionary-1.1.0-py3-none-any.whl...
 …y-1.1.0-py3-none-any.whl  4KiB      3.9MiB/s 00:00 [##################] 100.0%
:  …y-1.1.0-py3-none-any.whl  4KiB      2.3MiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.GZv6eN
From https://files.pythonhosted.org/packages/c0/9e/4680b98378f8829ce4adeecc0f5a285381e20a3f8476fbb518b407c67046/plover-3.1.1.tar.gz...
 …1.1.tar.gz  3.0MiB                  2.2MiB/s 00:00 [                  ]   2.1%
:  …1.1.tar.gz  3.0MiB                  5.1MiB/s 00:00 [#######           ]  39.3%
:  …1.1.tar.gz  3.0MiB                  5.2MiB/s 00:00 [#############     ]  76.6%
:  …1.1.tar.gz  3.0MiB                  5.2MiB/s 00:01 [##################] 100.0%

Starting download of /tmp/guix-file.p1lXUJ
From https://files.pythonhosted.org/packages/58/6f/04bf293b59681f279f691377035e3b5c0eaa5d519aae6803156a7b469675/plover-3.1.1-py2.py3-none-any.whl...
 ….py3-none-any.whl  2.1MiB           2.0MiB/s 00:00 [                  ]   3.0%
:  ….py3-none-any.whl  2.1MiB           4.4MiB/s 00:00 [#########         ]  51.1%
:  ….py3-none-any.whl  2.1MiB           5.0MiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.DUiJGK
From https://files.pythonhosted.org/packages/e9/bc/2d2c567fe5ac1924f35df879dbf529dd7e7cabd94745dc9d89024a934e76/appnope-0.1.2.tar.gz...
 …1.2.tar.gz  4KiB                    3.9MiB/s 00:00 [##################] 100.0%
:  …1.2.tar.gz  4KiB                    3.0MiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.OM5kmK
From https://files.pythonhosted.org/packages/e4/fa/0c6c9786aa6927d12d100d322588e125e6ed466ab0a3d2d509ea18aeb56d/appnope-0.1.2-py2.py3-none-any.whl...
 ….py3-none-any.whl  4KiB             8.7MiB/s 00:00 [##################] 100.0%
:  ….py3-none-any.whl  4KiB             5.5MiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.kQKKOM
From https://files.pythonhosted.org/packages/50/eb/a358e36731f5cb3b824ca27d2260f7f6acbd0d1f63c971ca83b4627d9ec6/pyobjc-core-7.3.tar.gz...
 …-7.3.tar.gz  668KiB                 3.5MiB/s 00:00 [#                 ]   9.6%
:  …-7.3.tar.gz  668KiB                 5.0MiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.rzw4kL
From https://files.pythonhosted.org/packages/88/9f/6778a9de41bc0b5602505b2ed92cc3ea242d5f2208ab41c3ad9ea3fdc18c/pyobjc_core-7.3-1-cp310-cp310-macosx_10_9_universal2.whl...
 …0-macosx_10_9_universal2.whl  504KiB 1.8MiB/s 00:00 [##                ]  12.7%
:  …0-macosx_10_9_universal2.whl  504KiB 3.6MiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.Qgti4M
From https://files.pythonhosted.org/packages/72/b8/ff4fad9271931746a38c0a253b26054d7a94720353d9ab8b9dd847f47e1f/pyobjc-framework-Cocoa-7.3.tar.gz...
 …-Cocoa-7.3.tar.gz  3.3MiB           2.5MiB/s 00:00 [                  ]   1.9%
:  …-Cocoa-7.3.tar.gz  3.3MiB           4.6MiB/s 00:00 [#####             ]  32.3%
:  …-Cocoa-7.3.tar.gz  3.3MiB           5.1MiB/s 00:00 [###########       ]  66.4%
:  …-Cocoa-7.3.tar.gz  3.3MiB           5.4MiB/s 00:01 [##################] 100.0%

Starting download of /tmp/guix-file.ZEdPvK
From https://files.pythonhosted.org/packages/ef/39/d1b6767500e9a78ef2d1290faa3011a064371d8d6aa4fe0668ca0e0177be/pyobjc_framework_Cocoa-7.3-1-cp310-cp310-macosx_10_9_universal2.whl...
 …0-cp310-macosx_10_9_universal2.whl  369KiB 2.4MiB/s 00:00 [###               ]  17.3%
:  …0-cp310-macosx_10_9_universal2.whl  369KiB 3.8MiB/s 00:00 [##################] 100.0%

Starting download of /tmp/guix-file.7n5iyN
From https://files.pythonhosted.org/packages/92/77/d565a22274350f04bd9c5816d171c9e5cfd75e53b3f1dc52bb7171801ed3/pyobjc-framework-Quartz-7.3.tar.gz...
 …Quartz-7.3.tar.gz  3.2MiB           2.0MiB/s 00:00 [                  ]   2.0%
:  …Quartz-7.3.tar.gz  3.2MiB           5.0MiB/s 00:00 [######            ]  37.4%
:  …Quartz-7.3.tar.gz  3.2MiB           5.4MiB/s 00:00 [#############     ]  74.8%
:  …Quartz-7.3.tar.gz  3.2MiB           5.5MiB/s 00:01 [##################] 100.0%

Starting download of /tmp/guix-file.74cHdN
From https://files.pythonhosted.org/packages/8a/15/c04808fd18e5361889633d473a56d61433d830b9f6415d7c1011f2f7cb6c/pyobjc_framework_Quartz-7.3-1-cp310-cp310-macosx_10_9_universal2.whl...
 …0-cp310-macosx_10_9_universal2.whl  222KiB 2.3MiB/s 00:00 [#####             ]  28.8%
:  …0-cp310-macosx_10_9_universal2.whl  222KiB 3.8MiB/s 00:00 [##################] 100.0%

The raw output looks like:

(define-public python-pyobjc-framework-quartz
    (package
    (name "python-pyobjc-framework-quartz")
    (version "7.3")
    (source
        (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-framework-Quartz" version))
        (sha256
            (base32 "02ygxh0dhb5xagyvcxc3i9147kbmm0ihkxmxh3wxwqj2qd22i0cq"))))
    (build-system python-build-system)
    (propagated-inputs
        `(("python-pyobjc-core" ,python-pyobjc-core)
        ("python-pyobjc-framework-cocoa" ,python-pyobjc-framework-cocoa)))
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Wrappers for the Quartz frameworks on macOS")
    (description "Wrappers for the Quartz frameworks on macOS")
    (license license:expat)))

(define-public python-pyobjc-framework-cocoa
    (package
    (name "python-pyobjc-framework-cocoa")
    (version "7.3")
    (source
        (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-framework-Cocoa" version))
        (sha256
            (base32 "0zhbp18i06aprwfbp06l9wm3qrzsdcyy9hwis5d4b8wmlzkhb3di"))))
    (build-system python-build-system)
    (propagated-inputs `(("python-pyobjc-core" ,python-pyobjc-core)))
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Wrappers for the Cocoa frameworks on macOS")
    (description "Wrappers for the Cocoa frameworks on macOS")
    (license license:expat)))

(define-public python-pyobjc-core
    (package
    (name "python-pyobjc-core")
    (version "7.3")
    (source
        (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-core" version))
        (sha256
            (base32 "0x3msrzvcszlmladdpl64s48l52fwk4xlnnri8daq2mliggsx0ah"))))
    (build-system python-build-system)
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Python<->ObjC Interoperability Module")
    (description "Python<->ObjC Interoperability Module")
    (license license:expat)))

(define-public python-appnope
    (package
    (name "python-appnope")
    (version "0.1.2")
    (source
        (origin
        (method url-fetch)
        (uri (pypi-uri "appnope" version))
        (sha256
            (base32 "12i50gv145cl9qkf87av5aprq7qbcq601cvfiy1mh2a6bd5wv0yx"))))
    (build-system python-build-system)
    (home-page "http://github.com/minrk/appnope")
    (synopsis "Disable App Nap on macOS >= 10.9")
    (description "Disable App Nap on macOS >= 10.9")
    (license license:bsd-3)))
(define-public python-plover
    (package
    (name "python-plover")
    (version "3.1.1")
    (source
        (origin
        (method url-fetch)
        (uri (pypi-uri "plover" version))
        (sha256
            (base32 "1c2sz84g6n1y15g55sg8gkbja08kg2mmmbwxxhf3ibj0kg0d7gzl"))))
    (build-system python-build-system)
    (propagated-inputs
        `(("python-appdirs" ,python-appdirs)
        ("python-appnope" ,python-appnope)
        ("python-hidapi" ,python-hidapi)
        ("python-pyobjc-core" ,python-pyobjc-core)
        ("python-pyobjc-framework-cocoa" ,python-pyobjc-framework-cocoa)
        ("python-pyobjc-framework-quartz" ,python-pyobjc-framework-quartz)
        ("python-pyserial" ,python-pyserial)
        ("python-setuptools" ,python-setuptools)
        ("python-six" ,python-six)
        ("python-xlib" ,python-xlib)))
    (home-page "http://www.openstenoproject.org/")
    (synopsis "Open Source Stenography Software")
    (description "Open Source Stenography Software")
    (license #f)))
(define-public python-plover-python-dictionary
    (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
        (origin
        (method url-fetch)
        (uri (pypi-uri "plover-python-dictionary" version))
        (sha256
            (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
    (build-system python-build-system)
    (propagated-inputs `(("python-plover" ,python-plover)))
    (native-inputs
        `(("python-plover" ,python-plover) ("python-pytest" ,python-pytest)))
    (home-page "https://github.com/benoit-pierre/plover_python_dictionary")
    (synopsis "Python dictionaries support for Plover")
    (description "Python dictionaries support for Plover")
    (license #f)))

The output of guix import is not likely to work without modification. It doesn't include any module imports and, although it creates a definition, it doesn't return the package value. Fortunately, Guix will warn about these issues.

Notice that guix import outputs a definition for Plover v3.1.1 (marked in red). Plover used to be distributed on PyPI, but that stopped sometime around v4.0. The definition isn't needed (and might get in the way) since the goal is to build for Plover v4.0. Just delete it. There are other dependencies, like those for MacOS, which probably aren't relevant for Guix. Those can remain for now.

4. Handle package and module errors

Now that there's a package definition, try building to see if it works.

guix! build -f plover-python-dictionary.scm
[                                                                               ]
: receiving objects   1% [                                                                               ]
: receiving objects   2% [#                                                                              ]
: receiving objects   3% [##                                                                             ]
: receiving objects   4% [###                                                                            ]
: receiving objects   5% [###                                                                            ]
: receiving objects   6% [####                                                                           ]
: receiving objects   7% [#####                                                                          ]
: receiving objects   8% [######                                                                         ]
: receiving objects   9% [######                                                                         ]
: receiving objects  10% [#######                                                                        ]
: receiving objects  11% [########                                                                       ]
: receiving objects  12% [#########                                                                      ]
: receiving objects  13% [##########                                                                     ]
: receiving objects  14% [##########                                                                     ]
: receiving objects  15% [###########                                                                    ]
: receiving objects  16% [############                                                                   ]
: receiving objects  17% [#############                                                                  ]
: receiving objects  18% [#############                                                                  ]
: receiving objects  19% [##############                                                                 ]
: receiving objects  20% [###############                                                                ]
: receiving objects  21% [################                                                               ]
: receiving objects  22% [#################                                                              ]
: receiving objects  23% [#################                                                              ]
: receiving objects  24% [##################                                                             ]
: receiving objects  25% [###################                                                            ]
: receiving objects  26% [####################                                                           ]
: receiving objects  27% [####################                                                           ]
: receiving objects  28% [#####################                                                          ]
: receiving objects  29% [######################                                                         ]
: receiving objects  30% [#######################                                                        ]
: receiving objects  31% [########################                                                       ]
: receiving objects  31% [########################                                                       ]
: receiving objects  32% [#########################                                                      ]
: receiving objects  33% [##########################                                                     ]
: receiving objects  34% [###########################                                                    ]
: receiving objects  35% [###########################                                                    ]
: receiving objects  36% [############################                                                   ]
: receiving objects  37% [#############################                                                  ]
: receiving objects  38% [##############################                                                 ]
: receiving objects  39% [###############################                                                ]
: receiving objects  40% [###############################                                                ]
: receiving objects  41% [################################                                               ]
: receiving objects  42% [#################################                                              ]
: receiving objects  43% [##################################                                             ]
: receiving objects  44% [##################################                                             ]
: receiving objects  45% [###################################                                            ]
: receiving objects  46% [####################################                                           ]
: receiving objects  47% [#####################################                                          ]
: receiving objects  48% [######################################                                         ]
: receiving objects  49% [######################################                                         ]
: receiving objects  50% [#######################################                                        ]
: receiving objects  51% [########################################                                       ]
: receiving objects  52% [#########################################                                      ]
: receiving objects  53% [#########################################                                      ]
: receiving objects  54% [##########################################                                     ]
: receiving objects  55% [###########################################                                    ]
: receiving objects  56% [############################################                                   ]
: receiving objects  57% [#############################################                                  ]
: receiving objects  58% [#############################################                                  ]
: receiving objects  59% [##############################################                                 ]
: receiving objects  60% [###############################################                                ]
: receiving objects  61% [################################################                               ]
: receiving objects  62% [################################################                               ]
: receiving objects  63% [#################################################                              ]
: receiving objects  64% [##################################################                             ]
: receiving objects  65% [###################################################                            ]
: receiving objects  66% [####################################################                           ]
: receiving objects  67% [####################################################                           ]
: receiving objects  68% [#####################################################                          ]
: receiving objects  69% [######################################################                         ]
: receiving objects  70% [#######################################################                        ]
: receiving objects  71% [#######################################################                        ]
: receiving objects  72% [########################################################                       ]
: receiving objects  73% [#########################################################                      ]
: receiving objects  74% [##########################################################                     ]
: receiving objects  75% [###########################################################                    ]
: receiving objects  76% [###########################################################                    ]
: receiving objects  77% [############################################################                   ]
: receiving objects  78% [#############################################################                  ]
: receiving objects  79% [##############################################################                 ]
: receiving objects  80% [##############################################################                 ]
: receiving objects  81% [###############################################################                ]
: receiving objects  82% [################################################################               ]
: receiving objects  83% [#################################################################              ]
: receiving objects  84% [##################################################################             ]
: receiving objects  85% [##################################################################             ]
: receiving objects  86% [###################################################################            ]
: receiving objects  87% [####################################################################           ]
: receiving objects  88% [#####################################################################          ]
: receiving objects  89% [#####################################################################          ]
: receiving objects  90% [######################################################################         ]
: receiving objects  91% [#######################################################################        ]
: receiving objects  92% [########################################################################       ]
: receiving objects  93% [#########################################################################      ]
: receiving objects  94% [#########################################################################      ]
: receiving objects  94% [##########################################################################     ]
: receiving objects  95% [###########################################################################    ]
: receiving objects  96% [############################################################################   ]
: receiving objects  97% [############################################################################   ]
: receiving objects  98% [#############################################################################  ]
: receiving objects  99% [############################################################################## ]
: indexing objects  20% [###############                                                                 ]
: indexing objects  21% [################                                                                ]
: indexing objects  22% [#################                                                               ]
: indexing objects  23% [##################                                                              ]
: indexing objects  24% [##################                                                              ]
: indexing objects  25% [###################                                                             ]
: indexing objects  26% [####################                                                            ]
: indexing objects  27% [#####################                                                           ]
: indexing objects  28% [######################                                                          ]
: indexing objects  29% [######################                                                          ]
: indexing objects  30% [#######################                                                         ]
: indexing objects  31% [########################                                                        ]
: indexing objects  31% [#########################                                                       ]
: indexing objects  32% [#########################                                                       ]
: indexing objects  33% [##########################                                                      ]
: indexing objects  34% [###########################                                                     ]
: indexing objects  35% [############################                                                    ]
: indexing objects  36% [#############################                                                   ]
: indexing objects  37% [#############################                                                   ]
: indexing objects  38% [##############################                                                  ]
: indexing objects  39% [###############################                                                 ]
: indexing objects  40% [################################                                                ]
: indexing objects  41% [#################################                                               ]
: indexing objects  42% [#################################                                               ]
: indexing objects  43% [##################################                                              ]
: indexing objects  44% [###################################                                             ]
: indexing objects  45% [####################################                                            ]
: indexing objects  46% [#####################################                                           ]
: indexing objects  47% [#####################################                                           ]
: indexing objects  48% [######################################                                          ]
: indexing objects  49% [#######################################                                         ]
: indexing objects  50% [########################################                                        ]
: indexing objects  51% [########################################                                        ]
: indexing objects  52% [#########################################                                       ]
: indexing objects  53% [##########################################                                      ]
: indexing objects  54% [###########################################                                     ]
: indexing objects  55% [############################################                                    ]
: indexing objects  56% [############################################                                    ]
: indexing objects  57% [#############################################                                   ]
: indexing objects  58% [##############################################                                  ]
: indexing objects  59% [###############################################                                 ]
: indexing objects  60% [################################################                                ]
: indexing objects  61% [################################################                                ]
: indexing objects  62% [#################################################                               ]
: indexing objects  63% [##################################################                              ]
: indexing objects  64% [###################################################                             ]
: indexing objects  65% [###################################################                             ]
: indexing objects  66% [####################################################                            ]
: indexing objects  67% [#####################################################                           ]
: indexing objects  68% [######################################################                          ]
: indexing objects  69% [#######################################################                         ]
: indexing objects  70% [#######################################################                         ]
: indexing objects  71% [########################################################                        ]
: indexing objects  72% [#########################################################                       ]
: indexing objects  73% [##########################################################                      ]
: indexing objects  74% [###########################################################                     ]
: indexing objects  75% [###########################################################                     ]
: indexing objects  76% [############################################################                    ]
: indexing objects  77% [#############################################################                   ]
: indexing objects  78% [##############################################################                  ]
: indexing objects  79% [##############################################################                  ]
: indexing objects  80% [###############################################################                 ]
: indexing objects  81% [################################################################                ]
: indexing objects  82% [#################################################################               ]
: indexing objects  83% [##################################################################              ]
: indexing objects  84% [##################################################################              ]
: indexing objects  85% [###################################################################             ]
: indexing objects  86% [####################################################################            ]
: indexing objects  87% [#####################################################################           ]
: indexing objects  88% [######################################################################          ]
: indexing objects  89% [######################################################################          ]
: indexing objects  90% [#######################################################################         ]
: indexing objects  91% [########################################################################        ]
: indexing objects  92% [#########################################################################       ]
: indexing objects  93% [##########################################################################      ]
: indexing objects  94% [##########################################################################      ]
: indexing objects  94% [###########################################################################     ]
: indexing objects  95% [############################################################################    ]
: indexing objects  96% [#############################################################################   ]
: indexing objects  97% [#############################################################################   ]
: indexing objects  98% [##############################################################################  ]
: indexing objects  99% [############################################################################### ]
: Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix',
 commits 9edb3f6 to f52719d (414 new commits)...
]
: [#                                                                                                      ]
: [#                                                                                                      ]
: [#                                                                                                      ]
: [##                                                                                                     ]
: [##                                                                                                     ]
: [##                                                                                                     ]
: [##                                                                                                     ]
: [###                                                                                                    ]
: [###                                                                                                    ]
: [###                                                                                                    ]
: [###                                                                                                    ]
: [####                                                                                                   ]
: [####                                                                                                   ]
: [####                                                                                                   ]
: [####                                                                                                   ]
: [#####                                                                                                  ]
: [#####                                                                                                  ]
: [#####                                                                                                  ]
: [#####                                                                                                  ]
: [######                                                                                                 ]
: [######                                                                                                 ]
: [######                                                                                                 ]
: [######                                                                                                 ]
: [#######                                                                                                ]
: [#######                                                                                                ]
: [#######                                                                                                ]
: [#######                                                                                                ]
: [########                                                                                               ]
: [########                                                                                               ]
: [########                                                                                               ]
: [########                                                                                               ]
: [#########                                                                                              ]
: [#########                                                                                              ]
: [#########                                                                                              ]
: [#########                                                                                              ]
: [##########                                                                                             ]
: [##########                                                                                             ]
: [##########                                                                                             ]
: [##########                                                                                             ]
: [###########                                                                                            ]
: [###########                                                                                            ]
: [###########                                                                                            ]
: [###########                                                                                            ]
: [############                                                                                           ]
: [############                                                                                           ]
: [############                                                                                           ]
: [############                                                                                           ]
: [#############                                                                                          ]
: [#############                                                                                          ]
: [#############                                                                                          ]
: [#############                                                                                          ]
: [##############                                                                                         ]
: [##############                                                                                         ]
: [##############                                                                                         ]
: [##############                                                                                         ]
: [###############                                                                                        ]
: [###############                                                                                        ]
: [###############                                                                                        ]
: [###############                                                                                        ]
: [################                                                                                       ]
: [################                                                                                       ]
: [################                                                                                       ]
: [################                                                                                       ]
: [#################                                                                                      ]
: [#################                                                                                      ]
: [#################                                                                                      ]
: [#################                                                                                      ]
: [##################                                                                                     ]
: [##################                                                                                     ]
: [##################                                                                                     ]
: [##################                                                                                     ]
: [###################                                                                                    ]
: [###################                                                                                    ]
: [###################                                                                                    ]
: [###################                                                                                    ]
: [####################                                                                                   ]
: [####################                                                                                   ]
: [####################                                                                                   ]
: [####################                                                                                   ]
: [#####################                                                                                  ]
: [#####################                                                                                  ]
: [#####################                                                                                  ]
: [#####################                                                                                  ]
: [######################                                                                                 ]
: [######################                                                                                 ]
: [######################                                                                                 ]
: [######################                                                                                 ]
: [#######################                                                                                ]
: [#######################                                                                                ]
: [#######################                                                                                ]
: [#######################                                                                                ]
: [########################                                                                               ]
: [########################                                                                               ]
: [########################                                                                               ]
: [########################                                                                               ]
: [#########################                                                                              ]
: [#########################                                                                              ]
: [#########################                                                                              ]
: [#########################                                                                              ]
: [##########################                                                                             ]
: [##########################                                                                             ]
: [##########################                                                                             ]
: [##########################                                                                             ]
: [###########################                                                                            ]
: [###########################                                                                            ]
: [###########################                                                                            ]
: [###########################                                                                            ]
: [############################                                                                           ]
: [############################                                                                           ]
: [############################                                                                           ]
: [############################                                                                           ]
: [#############################                                                                          ]
: [#############################                                                                          ]
: [#############################                                                                          ]
: [#############################                                                                          ]
: [##############################                                                                         ]
: [##############################                                                                         ]
: [##############################                                                                         ]
: [##############################                                                                         ]
: [###############################                                                                        ]
: [###############################                                                                        ]
: [###############################                                                                        ]
: [###############################                                                                        ]
: [################################                                                                       ]
: [################################                                                                       ]
: [################################                                                                       ]
: [################################                                                                       ]
: [#################################                                                                      ]
: [#################################                                                                      ]
: [#################################                                                                      ]
: [#################################                                                                      ]
: [##################################                                                                     ]
: [##################################                                                                     ]
: [##################################                                                                     ]
: [##################################                                                                     ]
: [###################################                                                                    ]
: [###################################                                                                    ]
: [###################################                                                                    ]
: [###################################                                                                    ]
: [####################################                                                                   ]
: [####################################                                                                   ]
: [####################################                                                                   ]
: [####################################                                                                   ]
: [#####################################                                                                  ]
: [#####################################                                                                  ]
: [#####################################                                                                  ]
: [#####################################                                                                  ]
: [######################################                                                                 ]
: [######################################                                                                 ]
: [######################################                                                                 ]
: [######################################                                                                 ]
: [#######################################                                                                ]
: [#######################################                                                                ]
: [#######################################                                                                ]
: [#######################################                                                                ]
: [########################################                                                               ]
: [########################################                                                               ]
: [########################################                                                               ]
: [########################################                                                               ]
: [#########################################                                                              ]
: [#########################################                                                              ]
: [#########################################                                                              ]
: [#########################################                                                              ]
: [##########################################                                                             ]
: [##########################################                                                             ]
: [##########################################                                                             ]
: [##########################################                                                             ]
: [###########################################                                                            ]
: [###########################################                                                            ]
: [###########################################                                                            ]
: [###########################################                                                            ]
: [############################################                                                           ]
: [############################################                                                           ]
: [############################################                                                           ]
: [############################################                                                           ]
: [#############################################                                                          ]
: [#############################################                                                          ]
: [#############################################                                                          ]
: [#############################################                                                          ]
: [##############################################                                                         ]
: [##############################################                                                         ]
: [##############################################                                                         ]
: [##############################################                                                         ]
: [###############################################                                                        ]
: [###############################################                                                        ]
: [###############################################                                                        ]
: [###############################################                                                        ]
: [################################################                                                       ]
: [################################################                                                       ]
: [################################################                                                       ]
: [################################################                                                       ]
: [#################################################                                                      ]
: [#################################################                                                      ]
: [#################################################                                                      ]
: [#################################################                                                      ]
: [##################################################                                                     ]
: [##################################################                                                     ]
: [##################################################                                                     ]
: [##################################################                                                     ]
: [###################################################                                                    ]
: [###################################################                                                    ]
: [###################################################                                                    ]
: [###################################################                                                    ]
: [###################################################                                                    ]
: [####################################################                                                   ]
: [####################################################                                                   ]
: [####################################################                                                   ]
: [####################################################                                                   ]
: [#####################################################                                                  ]
: [#####################################################                                                  ]
: [#####################################################                                                  ]
: [#####################################################                                                  ]
: [######################################################                                                 ]
: [######################################################                                                 ]
: [######################################################                                                 ]
: [######################################################                                                 ]
: [#######################################################                                                ]
: [#######################################################                                                ]
: [#######################################################                                                ]
: [#######################################################                                                ]
: [########################################################                                               ]
: [########################################################                                               ]
: [########################################################                                               ]
: [########################################################                                               ]
: [#########################################################                                              ]
: [#########################################################                                              ]
: [#########################################################                                              ]
: [#########################################################                                              ]
: [##########################################################                                             ]
: [##########################################################                                             ]
: [##########################################################                                             ]
: [##########################################################                                             ]
: [###########################################################                                            ]
: [###########################################################                                            ]
: [###########################################################                                            ]
: [###########################################################                                            ]
: [############################################################                                           ]
: [############################################################                                           ]
: [############################################################                                           ]
: [############################################################                                           ]
: [#############################################################                                          ]
: [#############################################################                                          ]
: [#############################################################                                          ]
: [#############################################################                                          ]
: [##############################################################                                         ]
: [##############################################################                                         ]
: [##############################################################                                         ]
: [##############################################################                                         ]
: [###############################################################                                        ]
: [###############################################################                                        ]
: [###############################################################                                        ]
: [###############################################################                                        ]
: [################################################################                                       ]
: [################################################################                                       ]
: [################################################################                                       ]
: [################################################################                                       ]
: [#################################################################                                      ]
: [#################################################################                                      ]
: [#################################################################                                      ]
: [#################################################################                                      ]
: [##################################################################                                     ]
: [##################################################################                                     ]
: [##################################################################                                     ]
: [##################################################################                                     ]
: [###################################################################                                    ]
: [###################################################################                                    ]
: [###################################################################                                    ]
: [###################################################################                                    ]
: [####################################################################                                   ]
: [####################################################################                                   ]
: [####################################################################                                   ]
: [####################################################################                                   ]
: [#####################################################################                                  ]
: [#####################################################################                                  ]
: [#####################################################################                                  ]
: [#####################################################################                                  ]
: [######################################################################                                 ]
: [######################################################################                                 ]
: [######################################################################                                 ]
: [######################################################################                                 ]
: [#######################################################################                                ]
: [#######################################################################                                ]
: [#######################################################################                                ]
: [#######################################################################                                ]
: [########################################################################                               ]
: [########################################################################                               ]
: [########################################################################                               ]
: [########################################################################                               ]
: [#########################################################################                              ]
: [#########################################################################                              ]
: [#########################################################################                              ]
: [#########################################################################                              ]
: [##########################################################################                             ]
: [##########################################################################                             ]
: [##########################################################################                             ]
: [##########################################################################                             ]
: [###########################################################################                            ]
: [###########################################################################                            ]
: [###########################################################################                            ]
: [###########################################################################                            ]
: [############################################################################                           ]
: [############################################################################                           ]
: [############################################################################                           ]
: [############################################################################                           ]
: [#############################################################################                          ]
: [#############################################################################                          ]
: [#############################################################################                          ]
: [#############################################################################                          ]
: [##############################################################################                         ]
: [##############################################################################                         ]
: [##############################################################################                         ]
: [##############################################################################                         ]
: [###############################################################################                        ]
: [###############################################################################                        ]
: [###############################################################################                        ]
: [###############################################################################                        ]
: [################################################################################                       ]
: [################################################################################                       ]
: [################################################################################                       ]
: [################################################################################                       ]
: [#################################################################################                      ]
: [#################################################################################                      ]
: [#################################################################################                      ]
: [#################################################################################                      ]
: [##################################################################################                     ]
: [##################################################################################                     ]
: [##################################################################################                     ]
: [##################################################################################                     ]
: [###################################################################################                    ]
: [###################################################################################                    ]
: [###################################################################################                    ]
: [###################################################################################                    ]
: [####################################################################################                   ]
: [####################################################################################                   ]
: [####################################################################################                   ]
: [####################################################################################                   ]
: [#####################################################################################                  ]
: [#####################################################################################                  ]
: [#####################################################################################                  ]
: [#####################################################################################                  ]
: [######################################################################################                 ]
: [######################################################################################                 ]
: [######################################################################################                 ]
: [######################################################################################                 ]
: [#######################################################################################                ]
: [#######################################################################################                ]
: [#######################################################################################                ]
: [#######################################################################################                ]
: [########################################################################################               ]
: [########################################################################################               ]
: [########################################################################################               ]
: [########################################################################################               ]
: [#########################################################################################              ]
: [#########################################################################################              ]
: [#########################################################################################              ]
: [#########################################################################################              ]
: [##########################################################################################             ]
: [##########################################################################################             ]
: [##########################################################################################             ]
: [##########################################################################################             ]
: [###########################################################################################            ]
: [###########################################################################################            ]
: [###########################################################################################            ]
: [###########################################################################################            ]
: [############################################################################################           ]
: [############################################################################################           ]
: [############################################################################################           ]
: [############################################################################################           ]
: [#############################################################################################          ]
: [#############################################################################################          ]
: [#############################################################################################          ]
: [#############################################################################################          ]
: [##############################################################################################         ]
: [##############################################################################################         ]
: [##############################################################################################         ]
: [##############################################################################################         ]
: [###############################################################################################        ]
: [###############################################################################################        ]
: [###############################################################################################        ]
: [###############################################################################################        ]
: [################################################################################################       ]
: [################################################################################################       ]
: [################################################################################################       ]
: [################################################################################################       ]
: [#################################################################################################      ]
: [#################################################################################################      ]
: [#################################################################################################      ]
: [#################################################################################################      ]
: [##################################################################################################     ]
: [##################################################################################################     ]
: [##################################################################################################     ]
: [##################################################################################################     ]
: [###################################################################################################    ]
: [###################################################################################################    ]
: [###################################################################################################    ]
: [###################################################################################################    ]
: [####################################################################################################   ]
: [####################################################################################################   ]
: [####################################################################################################   ]
: [####################################################################################################   ]
: [#####################################################################################################  ]
: [#####################################################################################################  ]
: [#####################################################################################################  ]
: [#####################################################################################################  ]
: [###################################################################################################### ]
: [###################################################################################################### ]
: [###################################################################################################### ]
: [###################################################################################################### ]
: [#######################################################################################################]
: substitute:
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...   0.0%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
#################] 100.0%
:  config.scm  501B                                               61KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  git.scm  101B                                                  59KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  hash.scm  132B                                                 63KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  module-import  2KiB                                           177KiB/s 00:00 [##################] 100.0%
]   7.0%
:  module-import-compiled  1.8MiB                                683KiB/s 00:01 [###               ]  20.9%
:  module-import-compiled  1.8MiB                                873KiB/s 00:01 [#######           ]  41.8%
:  module-import-compiled  1.8MiB                                925KiB/s 00:01 [##########        ]  55.7%
:  module-import-compiled  1.8MiB                               1002KiB/s 00:01 [#############     ]  76.6%
:  module-import-compiled  1.8MiB                                1.1MiB/s 00:02 [################# ]  97.4%
:  module-import-compiled  1.8MiB                                1.1MiB/s 00:02 [##################] 100.0%
#################] 100.0%
:  compute-guix-derivation  1006B                                410KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  guile-avahi-0.4.0-1.6d43caf  54KiB                           54.5MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  guile-sqlite3-0.1.2  56KiB                                   41.3MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  guile-zstd-0.1.1  24KiB                                      20.6MiB/s 00:00 [##################] 100.0%
##               ]  21.8%
:  libgit2-1.1.0  587KiB                                       449.9MiB/s 00:00 [##################] 100.0%
#######          ]  49.0%
:  libssh-0.9.6  261KiB                                          217KiB/s 00:01 [##################] 100.0%
###              ]  23.7%
:  guile-git-0.5.2  540KiB                                       700KiB/s 00:01 [################# ]  94.8%
:  guile-git-0.5.2  540KiB                                       737KiB/s 00:01 [##################] 100.0%
:  guile-git-0.5.2  540KiB                                       736KiB/s 00:01 [##################] 100.0%
####             ]  29.1%
:  guile-ssh-0.13.1  220KiB                                    144.6MiB/s 00:00 [##################] 100.0%
########         ]  54.1%
:  guile-ssh-0.13.1-debug  237KiB                              156.1MiB/s 00:00 [##################] 100.0%
###              ]  24.9%
:  guix-daemon-1.3.0-11.014f1b6  257KiB                        412.6MiB/s 00:00 [################# ]  99.6%
:  guix-daemon-1.3.0-11.014f1b6  257KiB                        264.3MiB/s 00:00 [##################] 100.0%
 po4a-0.63  1.8MiB                                           523.0MiB/s 00:00 [##                ]  14.3%
:  po4a-0.63  1.8MiB                                           970.3MiB/s 00:00 [#######           ]  42.8%
:  po4a-0.63  1.8MiB                                           883.6MiB/s 00:00 [#########         ]  53.5%\|
#################] 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'...   6.3%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  12.5%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  18.8%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  25.0%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  31.3%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  37.5%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  43.8%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  50.0%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  56.3%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  62.5%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  68.8%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  75.0%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  81.3%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  87.5%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'...  93.8%
: substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivations will be built:
   /gnu/store/9qddis4pcj79ybz1m5x7l5apa062581z-profile.drv
   /gnu/store/0145hnyd81dw6rglkw7b183r6jiji0yj-guix-extra-modules.drv
   /gnu/store/0bkk73z8hzpbxkay91pjq7hhmld6axgi-guix-cli-core-modules.drv
   /gnu/store/1spchx0bi445779qsqv4wj5f8czbfid9-guix-system-tests-modules.drv
   /gnu/store/36lrs4m2ci15ra2qrm9x4ivymn1icl3j-guix-home-modules.drv
   /gnu/store/940nh2xk8wkd28j5aj2w6dd9amsjb492-guix-cli-modules.drv
   /gnu/store/igjsqplmxd7974qcv06lhk3gyl6fvdqm-guix-system-modules.drv
   /gnu/store/phixxzbxj1vvvzv9j76k132llg7yqlfq-guix-packages-base-modules.drv
   /gnu/store/cvgiry8zdrnfsxkgykpd1r3hxwfwg0qp-guix-command.drv
   /gnu/store/g8gqph2slsv23wg96jl9j68m27i4rkp0-guix-daemon.drv

55.0 MB will be downloaded
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%

:  guix-package-cache                                                  434.1MiB/s 00:00 | 64KiB transferred
:  guix-package-cache                                                   1.8MiB/s 00:00 | 256KiB transferred
:  guix-package-cache                                                   2.0MiB/s 00:00 | 704KiB transferred
:  guix-package-cache                                                   2.0MiB/s 00:00 | 704KiB transferred

:  guix-cli                                                              452KiB/s 00:00 | 64KiB transferred
:  guix-cli                                                             624KiB/s 00:00 | 256KiB transferred
:  guix-cli                                                             576KiB/s 00:00 | 256KiB transferred

:  guix-cli-core                                                         484KiB/s 00:00 | 64KiB transferred
:  guix-cli-core                                                        622KiB/s 00:00 | 256KiB transferred
:  guix-cli-core                                                        772KiB/s 00:01 | 512KiB transferred
:  guix-cli-core                                                        916KiB/s 00:01 | 832KiB transferred
:  guix-cli-core                                                        972KiB/s 00:01 | 1.1MiB transferred
:  guix-cli-core                                                        990KiB/s 00:01 | 1.1MiB transferred
#################] 100.0%
:  guix-cli-modules  263B                                         74KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  guix-cli-core-modules  265B                                    72KiB/s 00:00 [##################] 100.0%
 guix-extra  2.3MiB                                            619KiB/s 00:00 [#                 ]  10.8%
:  guix-extra  2.3MiB                                            1.2MiB/s 00:01 [#####             ]  32.5%
:  guix-extra  2.3MiB                                            2.0MiB/s 00:01 [############      ]  70.4%
:  guix-extra  2.3MiB                                            2.4MiB/s 00:01 [##################] 100.0%
###              ]  23.8%
:  guix-home  269KiB                                             2.8MiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  guix-extra-modules  264B                                       91KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  guix-home-modules  266B                                        76KiB/s 00:00 [##################] 100.0%
 guix-manual  7.3MiB                                           2.2MiB/s 00:00 [#                 ]   8.5%
:  guix-manual  7.3MiB                                           4.9MiB/s 00:00 [#####             ]  32.5%
:  guix-manual  7.3MiB                                           4.9MiB/s 00:01 [########          ]  46.1%
:  guix-manual  7.3MiB                                           4.7MiB/s 00:01 [##########        ]  58.1%
:  guix-manual  7.3MiB                                           4.8MiB/s 00:01 [#############     ]  73.5%
:  guix-manual  7.3MiB                                           4.9MiB/s 00:01 [###############   ]  88.9%
:  guix-manual  7.3MiB                                           4.8MiB/s 00:02 [##################] 100.0%
 guix-packages-base  12.0MiB                                   2.3MiB/s 00:00 [#                 ]   5.7%
:  guix-packages-base  12.0MiB                                   3.3MiB/s 00:00 [##                ]  13.6%
:  guix-packages-base  12.0MiB                                   4.0MiB/s 00:01 [####              ]  23.0%
:  guix-packages-base  12.0MiB                                   4.4MiB/s 00:01 [#####             ]  32.9%
:  guix-packages-base  12.0MiB                                   4.4MiB/s 00:01 [#######           ]  40.2%
:  guix-packages-base  12.0MiB                                   4.4MiB/s 00:01 [########          ]  48.0%
:  guix-packages-base  12.0MiB                                   4.3MiB/s 00:02 [#########         ]  55.3%
:  guix-packages-base  12.0MiB                                   4.4MiB/s 00:02 [###########       ]  63.6%
:  guix-packages-base  12.0MiB                                   4.4MiB/s 00:02 [############      ]  70.9%
:  guix-packages-base  12.0MiB                                   4.3MiB/s 00:02 [#############     ]  77.7%
:  guix-packages-base  12.0MiB                                   4.3MiB/s 00:02 [###############   ]  85.6%
:  guix-packages-base  12.0MiB                                   4.4MiB/s 00:03 [################  ]  93.4%
:  guix-packages-base  12.0MiB                                   4.4MiB/s 00:03 [##################] 100.0%

:  guix-system                                                          9.4MiB/s 00:00 | 128KiB transferred
:  guix-system                                                          2.2MiB/s 00:00 | 640KiB transferred
:  guix-system                                                          3.8MiB/s 00:01 | 2.0MiB transferred
:  guix-system                                                          3.8MiB/s 00:01 | 2.8MiB transferred
:  guix-system                                                          3.7MiB/s 00:01 | 3.5MiB transferred
:  guix-system                                                          3.7MiB/s 00:01 | 4.4MiB transferred
:  guix-system                                                          3.7MiB/s 00:01 | 5.3MiB transferred
:  guix-system                                                          3.7MiB/s 00:02 | 6.0MiB transferred
:  guix-system                                                          3.7MiB/s 00:02 | 6.9MiB transferred
:  guix-system                                                          3.7MiB/s 00:02 | 7.6MiB transferred
:  guix-system                                                          3.7MiB/s 00:02 | 8.5MiB transferred
:  guix-system                                                          3.7MiB/s 00:02 | 9.3MiB transferred
:  guix-system                                                          3.7MiB/s 00:03 | 9.9MiB transferred
#################] 100.0%
:  guix-packages-base-modules  270B                               61KiB/s 00:00 [##################] 100.0%
#################] 100.0%
:  guix-system-modules  263B                                      92KiB/s 00:00 [##################] 100.0%
###              ]  23.7%
:  guix-system-tests  539KiB                                     884KiB/s 00:01 [################# ]  94.9%
:  guix-system-tests  539KiB                                     880KiB/s 00:01 [##################] 100.0%
#################] 100.0%
:  guix-system-tests-modules  270B                                90KiB/s 00:00 [##################] 100.0%
 guix-f52719dfa-modules  22.8MiB                               4.1MiB/s 00:00 [                  ]   3.8%
:  guix-f52719dfa-modules  22.8MiB                               4.5MiB/s 00:00 [#                 ]   8.2%
:  guix-f52719dfa-modules  22.8MiB                               4.6MiB/s 00:01 [##                ]  12.3%
:  guix-f52719dfa-modules  22.8MiB                               3.1MiB/s 00:01 [##                ]  16.4%
:  guix-f52719dfa-modules  22.8MiB                               3.3MiB/s 00:01 [###               ]  20.3%
:  guix-f52719dfa-modules  22.8MiB                               3.7MiB/s 00:02 [####              ]  26.0%
:  guix-f52719dfa-modules  22.8MiB                               4.0MiB/s 00:02 [#####             ]  31.5%
:  guix-f52719dfa-modules  22.8MiB                               4.1MiB/s 00:02 [######            ]  36.1%
:  guix-f52719dfa-modules  22.8MiB                               4.2MiB/s 00:02 [#######           ]  41.3%
:  guix-f52719dfa-modules  22.8MiB                               4.3MiB/s 00:02 [########          ]  46.5%
:  guix-f52719dfa-modules  22.8MiB                               4.5MiB/s 00:03 [#########         ]  52.0%
:  guix-f52719dfa-modules  22.8MiB                               4.5MiB/s 00:03 [##########        ]  56.4%
:  guix-f52719dfa-modules  22.8MiB                               4.5MiB/s 00:03 [##########        ]  60.8%
:  guix-f52719dfa-modules  22.8MiB                               4.6MiB/s 00:03 [###########       ]  65.7%
:  guix-f52719dfa-modules  22.8MiB                               4.6MiB/s 00:03 [############      ]  70.1%
:  guix-f52719dfa-modules  22.8MiB                               4.7MiB/s 00:04 [#############     ]  75.3%
:  guix-f52719dfa-modules  22.8MiB                               4.7MiB/s 00:04 [##############    ]  79.4%
:  guix-f52719dfa-modules  22.8MiB                               4.7MiB/s 00:04 [###############   ]  84.6%
 guix-f52719dfa-modules  22.8MiB                               4.7MiB/s 00:04 [################  ]  88.9%
 guix-f52719dfa-modules  22.8MiB                               4.7MiB/s 00:05 [################  ]  93.6%
 guix-f52719dfa-modules  22.8MiB                               4.7MiB/s 00:05 [################# ]  98.0%
 guix-f52719dfa-modules  22.8MiB                               4.7MiB/s 00:05 [##################] 100.0%
#################] 100.0%
 guix-module-union  3KiB                                       163KiB/s 00:00 [##################] 100.0%
#################] 100.0%
 guix-command  649B                                            415KiB/s 00:00 [##################] 100.0%
#################] 100.0%
 guix-daemon  394B                                              91KiB/s 00:00 [##################] 100.0%
#################] 100.0%
 guix-f52719dfa  14KiB                                         862KiB/s 00:00 [##################] 100.0%

building CA certificate bundle...


listing Emacs sub-directories...


building fonts directory...


building directory of Info manuals...


building profile with 1 package...

/home/ahab/Projects/excalamus.com/src/draft/guix/case-study-plover-python-dictionary/plover-python-dictionary.scm:2:3: error: package: unbound variable
hint: Did you forget `(use-modules (guix packages))'?

Building packages is mainly following the error messages. Sometimes it helps to look at other package definitions. Use guix edit to see definitions for a specific Guix package. Don't be ashamed to grep the package directory itself to figure out which module might work (e.g. gnu/packages or ~/.config/guix/current/share/guile/site/3.0/gnu/packages/).

The error message tells us that the guix module might work. Add it to the package definition.

(use-modules (guix packages))

Run again,

guix build -f plover-python-dictionary.scm
/home/ahab/Projects/excalamus.com/src/draft/guix/plover-python-dictionary.scm:9:16: error: url-fetch: unbound variable
hint: Did you forget `(use-modules (guix download))'?

Add what it says,

(use-modules
 (guix packages)
(guix download))

And try again,

guix build -f plover-python-dictionary.scm
/home/ahab/Projects/excalamus.com/src/draft/guix/plover-python-dictionary.scm:12:14: error: pypi-uri: unbound variable
hint: Did you forget a `use-modules' form?

The error message doesn't say which module is needed, only that one may be missing. It also says the pypi-uri variable is unbound. PyPi is a Python thing, so it's probably a Python related module. Maybe looking at the definition for Plover with guix edit might help? There are two Python related modules: python and python-xyz. These correspond to python.scm and python-xyz.scm. The string "pypi" isn't found anywhere in python.scm. Checking python-xyz.scm, what jumps out is that "pypi" is part of every package's definition in the file. That might be a clue later on if adding the python and python-xyz modules doesn't work. However, as it turns out, adding either module satisifies the error2. For now, just add the python module.

(use-modules
 (guix packages)
 (guix download)
(gnu packages python))

And that resolves the previous error. Run again…

guix build -f plover-python-dictionary.scm
/home/ahab/Projects/excalamus.com/src/draft/guix/plover-python-dictionary.scm:15:14: error: pypi-uri: unbound variable
hint: Did you forget `(use-modules (guix build-system python))'?

Add what it says…

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
(guix build-system python))

…and build again.

guix build -f plover-python-dictionary.scm
/home/ahab/Projects/excalamus.com/src/draft/guix/plover-python-dictionary.scm:25:13: error: license:expat: unbound variable
hint: Did you forget a `use-modules' form?

Again, the hint isn't specific, but the error message mentions licensing. The definition for Plover is helpful. It contains a module for guix licenses. That's probably what's needed here. Copy that in and rerun.

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
 (guix build-system python)
((guix licenses) #:prefix license:))

The module includes the optional "#:prefix" clause. The prefix is a symbol that is prepended to imported names. So, "license:" will be prepended to variables from that module. This prevents clashes with variables of the same name from different modules. For example, there is an "expat" license and an "expat" module3.

Try building again and a new error appears.

guix build -f plover-python-dictionary.scm
<unspecified>: not something we can build
<unspecified>'.
To fix this, add a Scheme expression at the end of the file that consists only of the package's variable name you defined, as in this example:

    (define-public my-package
        (package
        ...))

    my-package

The errors have mainly been about unbound variables up to this point. This error is different. Each of the define-public expressions, when evaluated, creates a variable binding visible from other modules that import the current module. The python-plover-python-dictionary package isn't available in the current namespace, however. Evaluating the symbol returns the package and satisfies the error.

Overall, the package definition to this point looks like:

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
 (guix build-system python)
 ((guix licenses) #:prefix license:))

(define-public python-pyobjc-framework-quartz
  (package
   (name "python-pyobjc-framework-quartz")
   (version "7.3")
   (source
    (origin
     (method url-fetch)
     (uri (pypi-uri "pyobjc-framework-Quartz" version))
     (sha256
      (base32 "02ygxh0dhb5xagyvcxc3i9147kbmm0ihkxmxh3wxwqj2qd22i0cq"))))
   (build-system python-build-system)
   (propagated-inputs
    `(("python-pyobjc-core" ,python-pyobjc-core)
      ("python-pyobjc-framework-cocoa" ,python-pyobjc-framework-cocoa)))
   (home-page "https://github.com/ronaldoussoren/pyobjc")
   (synopsis "Wrappers for the Quartz frameworks on macOS")
   (description "Wrappers for the Quartz frameworks on macOS")
   (license license:expat)))

(define-public python-pyobjc-framework-cocoa
  (package
   (name "python-pyobjc-framework-cocoa")
   (version "7.3")
   (source
    (origin
     (method url-fetch)
     (uri (pypi-uri "pyobjc-framework-Cocoa" version))
     (sha256
      (base32 "0zhbp18i06aprwfbp06l9wm3qrzsdcyy9hwis5d4b8wmlzkhb3di"))))
   (build-system python-build-system)
   (propagated-inputs `(("python-pyobjc-core" ,python-pyobjc-core)))
   (home-page "https://github.com/ronaldoussoren/pyobjc")
   (synopsis "Wrappers for the Cocoa frameworks on macOS")
   (description "Wrappers for the Cocoa frameworks on macOS")
   (license license:expat)))

(define-public python-pyobjc-core
  (package
   (name "python-pyobjc-core")
   (version "7.3")
   (source
    (origin
     (method url-fetch)
     (uri (pypi-uri "pyobjc-core" version))
     (sha256
      (base32 "0x3msrzvcszlmladdpl64s48l52fwk4xlnnri8daq2mliggsx0ah"))))
   (build-system python-build-system)
   (home-page "https://github.com/ronaldoussoren/pyobjc")
   (synopsis "Python<->ObjC Interoperability Module")
   (description "Python<->ObjC Interoperability Module")
   (license license:expat)))

(define-public python-appnope
  (package
   (name "python-appnope")
   (version "0.1.2")
   (source
    (origin
     (method url-fetch)
     (uri (pypi-uri "appnope" version))
     (sha256
      (base32 "12i50gv145cl9qkf87av5aprq7qbcq601cvfiy1mh2a6bd5wv0yx"))))
   (build-system python-build-system)
   (home-page "http://github.com/minrk/appnope")
   (synopsis "Disable App Nap on macOS >= 10.9")
   (description "Disable App Nap on macOS >= 10.9")
   (license license:bsd-3)))

(define-public python-plover-python-dictionary
  (package
   (name "python-plover-python-dictionary")
   (version "1.1.0")
   (source
    (origin
     (method url-fetch)
     (uri (pypi-uri "plover-python-dictionary" version))
     (sha256
      (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
   (build-system python-build-system)
   (propagated-inputs `(("python-plover" ,python-plover)))
   (native-inputs
    `(("python-plover" ,python-plover) ("python-pytest" ,python-pytest)))
   (home-page "https://github.com/benoit-pierre/plover_python_dictionary")
   (synopsis "Python dictionaries support for Plover")
   (description "Python dictionaries support for Plover")
   (license #f)))

python-plover-python-dictionary

With the package expression at the end, try building again.

5. Keep handling errors until success

Adding the package expression and building again gives what follows.

guix build -f plover-python-dictionary.scm
/home/ahab/Projects/excalamus.com/src/draft/guix/plover-python-dictionary.scm:87:43: In procedure propagated-inputs:
error: python-plover: unbound variable
hint: Did you forget a `use-modules' form?

Here again is a hint about a potentially missing module. The message says that in the propagated-inputs, the "python-plover" variable is unbound. Propagated-inputs are a kind of input. The input field indicates that the dependencies listed are built for the target architecture during cross-compilation. The propagated-inputs field acts like input, but also inserts dependencies into the Guix profile alongside the final package. Recall (or understand) that packages are installed to the /gnu/store and a profile determines which of these are accessible to a user. A Guix profile is like a switchboard operator connecting user's requests for software with the binaries in the /gnu/store.

The error says there is no package known by the name "python-plover". Remember, however, that a definition for "python-plover" was removed from the guix import output (the snippet in red). Since the definition for python-plover-python-dictionary was also generated by the same process, the error must be saying the build process can't find Plover. It should be enough to replace the "python-plover" variable with a reference to a recent version of Plover. Using guix edit, the Plover package is found in the stenography.scm module and its name is "plover".

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
 (guix build-system python)
 ((guix licenses) #:prefix license:)
(gnu packages stenography))
... (define-public python-plover-python-dictionary (package (name "python-plover-python-dictionary") (version "1.1.0") (source (origin (method url-fetch) (uri (pypi-uri "plover-python-dictionary" version)) (sha256 (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2")))) (build-system python-build-system)
(propagated-inputs `(("python-plover" ,python-plover)))
(propagated-inputs `(("python-plover" ,plover)))
(native-inputs `(("python-plover" ,python-plover) ("python-pytest" ,python-pytest))) (home-page "https://github.com/benoit-pierre/plover_python_dictionary") (synopsis "Python dictionaries support for Plover") (description "Python dictionaries support for Plover") (license #f)))

Import stenography, replace "python-plover" with "plover", and build again.

guix build -f plover-python-dictionary.scm
/home/ahab/Projects/excalamus.com/src/draft/guix/plover-python-dictionary.scm:90:26: In procedure native-inputs:
error: python-plover: unbound variable
hint: Did you forget a `use-modules' form?

Looks like the same thing is happening as above, but with native-inputs instead of propagated-inputs. The native-inputs field lists tools to be used at build time. It looks like Plover is needed to run tests since pytest is also in native-inputs.

(define-public python-plover-python-dictionary
  (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "plover-python-dictionary" version))
        (sha256
          (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
    (build-system python-build-system)
    (propagated-inputs `(("python-plover" ,plover)))
    (native-inputs
`(("python-plover" ,python-plover) ("python-pytest" ,python-pytest)))
`(("python-plover" ,plover) ("python-pytest" ,python-pytest)))
(home-page "https://github.com/benoit-pierre/plover_python_dictionary") (synopsis "Python dictionaries support for Plover") (description "Python dictionaries support for Plover") (license #f)))

Make the replacement and build again.

guix build -f plover-python-dictionary.scm
/home/ahab/Projects/excalamus.com/src/draft/guix/plover-python-dictionary.scm:90:52: In procedure native-inputs:
error: python-pytest: unbound variable
hint: Did you forget `(use-modules (gnu packages check))'?

It looks like the (gnu packages check) module is needed for pytest.

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
 (guix build-system python)
 ((guix licenses) #:prefix license:)
 (gnu packages stenography)
(gnu packages check))

Add the module and run again.

guix build -f plover-python-dictionary.scm
substitute: updating substitutes from 'https://ci.guix.gnu.org'...  50.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'...  50.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
The following derivations will be built:
   /gnu/store/hg96jp1xli47i80si5gkdy2h4cnlrip7-python-plover-python-dictionary-1.1.0.drv
   /gnu/store/shvfsw07pyh4kf23i2wy5ja55b31sy75-plover-python-dictionary-1.1.0.tar.gz.drv
building /gnu/store/shvfsw07pyh4kf23i2wy5ja55b31sy75-plover-python-dictionary-1.1.0.tar.gz.drv...

Starting download of /gnu/store/6dr8w3b1lgh3n7p16sfl98p8jxd9x6rd-plover-python-dictionary-1.1.0.tar.gz
From https://files.pythonhosted.org/packages/source/p/plover-python-dictionary/plover-python-dictionary-1.1.0.tar.gz...
download failed "https://files.pythonhosted.org/packages/source/p/plover-python-dictionary/plover-python-dictionary-1.1.0.tar.gz" 404 "Not Found"

Starting download of /gnu/store/6dr8w3b1lgh3n7p16sfl98p8jxd9x6rd-plover-python-dictionary-1.1.0.tar.gz
From https://ci.guix.gnu.org/file/plover-python-dictionary-1.1.0.tar.gz/sha256/02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2...
download failed "https://ci.guix.gnu.org/file/plover-python-dictionary-1.1.0.tar.gz/sha256/02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2" 404 "Not Found"

Starting download of /gnu/store/6dr8w3b1lgh3n7p16sfl98p8jxd9x6rd-plover-python-dictionary-1.1.0.tar.gz
From https://tarballs.nixos.org/sha256/02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2...
download failed "https://tarballs.nixos.org/sha256/02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2" 404 "Not Found"

Starting download of /gnu/store/6dr8w3b1lgh3n7p16sfl98p8jxd9x6rd-plover-python-dictionary-1.1.0.tar.gz
From https://archive.softwareheritage.org/api/1/content/sha256:6251d398cb4a59469d39b19bb2bb05f8f52ca420782abf9a9b2e7b0d0e1e090b/raw/...
download failed "https://archive.softwareheritage.org/api/1/content/sha256:6251d398cb4a59469d39b19bb2bb05f8f52ca420782abf9a9b2e7b0d0e1e090b/raw/" 404 "Not Found"
Trying to use Disarchive to assemble /gnu/store/6dr8w3b1lgh3n7p16sfl98p8jxd9x6rd-plover-python-dictionary-1.1.0.tar.gz...
download failed "https://disarchive.ngyro.com/sha256/6251d398cb4a59469d39b19bb2bb05f8f52ca420782abf9a9b2e7b0d0e1e090b" 404 "Not Found"
could not find its Disarchive specification
failed to download "/gnu/store/6dr8w3b1lgh3n7p16sfl98p8jxd9x6rd-plover-python-dictionary-1.1.0.tar.gz" from "https://files.pythonhosted.org/packages/source/p/plover-python-dictionary/plover-python-dictionary-1.1.0.tar.gz"
builder for `/gnu/store/shvfsw07pyh4kf23i2wy5ja55b31sy75-plover-python-dictionary-1.1.0.tar.gz.drv' failed to produce output path `/gnu/store/6dr8w3b1lgh3n7p16sfl98p8jxd9x6rd-plover-python-dictionary-1.1.0.tar.gz'
build of /gnu/store/shvfsw07pyh4kf23i2wy5ja55b31sy75-plover-python-dictionary-1.1.0.tar.gz.drv failed
View build log at '/var/log/guix/drvs/sh/vfsw07pyh4kf23i2wy5ja55b31sy75-plover-python-dictionary-1.1.0.tar.gz.drv.bz2'.
cannot build derivation `/gnu/store/hg96jp1xli47i80si5gkdy2h4cnlrip7-python-plover-python-dictionary-1.1.0.drv': 1 dependencies couldn't be built
guix build: error: build of `/gnu/store/hg96jp1xli47i80si5gkdy2h4cnlrip7-python-plover-python-dictionary-1.1.0.drv' failed

This error is different from the others. Guix builds packages from source. Which source to use is specified by the source field. Here, Guix tries to download the source for "plover-python-dictionary" but fails. Why it fails is infuriatingly simple: the package is stored on PyPI using underscores instead of hyphens.

(define-public python-plover-python-dictionary
  (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
      (origin
        (method url-fetch)
(uri (pypi-uri "plover-python-dictionary" version))
(uri (pypi-uri "plover_python_dictionary" version))
(sha256 (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2")))) (build-system python-build-system) (propagated-inputs `(("python-plover" ,plover))) (native-inputs `(("python-plover" ,plover) ("python-pytest" ,python-pytest))) (home-page "https://github.com/benoit-pierre/plover_python_dictionary") (synopsis "Python dictionaries support for Plover") (description "Python dictionaries support for Plover") (license #f)))

Make the replacement and build again.

guix build -f plover-python-dictionary.scm

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
The following derivation will be built:
   /gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv
building /gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv...
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/f8s95qc6dfhl0r45m70hczw5zip0xjxq-python-wrapper-3.8.2/bin:/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/bin:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/bin:/gnu/store/v6f44zccwh9z5zk3pjlywjybbi8n2hjh-tar-1.32/bin:/gnu/store/ncydgq2znms5n1d2k5yqshhf58nsixwv-gzip-1.10/bin:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/bin:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/bin:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/bin:/gnu/store/n4n560pfvvw50a9369axw5vj5rrqfj1n-diffutils-3.7/bin:/gnu/store/cd5qf3kcnlq35p9k392pjdpdzpsnds70-patch-2.7.6/bin:/gnu/store/hic7snhayfl7m6cpfqqr73nmm19bpqkg-findutils-4.7.0/bin:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/bin:/gnu/store/ishk7fswcs4gkwcp8mh788z4mvvl9bxh-sed-4.8/bin:/gnu/store/bhs4rj58v8j1narb2454raan2ps38xd8-grep-3.4/bin:/gnu/store/57xj5gcy1jbl9ai2lnrqnpr0dald9i65-coreutils-8.32/bin:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/bin:/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin:/gnu/store/mpa04aq8lblbcviyxywxcsb1zbi0mf39-ld-wrapper-0/bin:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/bin:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/sbin:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin'
environment variable `PYTHONPATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib/python3.8/site-packages:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib/python3.8/site-packages:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/site-packages:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib/python3.8/site-packages:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib/python3.8/site-packages:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib/python3.8/site-packages:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib/python3.8/site-packages:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib/python3.8/site-packages:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib/python3.8/site-packages:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib/python3.8/site-packages:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib/python3.8/site-packages:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib/python3.8/site-packages'
environment variable `BASH_LOADABLES_PATH' unset
environment variable `C_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include/c++:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/lib:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/lib:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/lib:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/lib:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/lib:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib:/gnu/store/s3dcqzwqaakv1yx37by9chksdbkgih17-glibc-2.31-static/lib:/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib'
environment variable `GUIX_LOCPATH' set to `/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib/locale'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
using 'en_US.utf8' locale for category "LC_ALL"
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
plover_python_dictionary-1.1.0/
plover_python_dictionary-1.1.0/MANIFEST.in
plover_python_dictionary-1.1.0/PKG-INFO
plover_python_dictionary-1.1.0/README.md
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/PKG-INFO
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/SOURCES.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/dependency_links.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/entry_points.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/requires.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/top_level.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/zip-safe
plover_python_dictionary-1.1.0/plover_python_dictionary.py
plover_python_dictionary-1.1.0/pyproject.toml
plover_python_dictionary-1.1.0/setup.cfg
plover_python_dictionary-1.1.0/setup.py
plover_python_dictionary-1.1.0/test/
plover_python_dictionary-1.1.0/test/conftest.py
plover_python_dictionary-1.1.0/test/dict_callable_checks.py
plover_python_dictionary-1.1.0/test/dict_reverse_lookup.py
plover_python_dictionary-1.1.0/test/dict_show_stroke.py
plover_python_dictionary-1.1.0/test/dict_utf8.py
plover_python_dictionary-1.1.0/test/test_python_dict.py
plover_python_dictionary-1.1.0/tox.ini
phase `unpack' succeeded after 0.0 seconds
starting phase `ensure-no-mtimes-pre-1980'
phase `ensure-no-mtimes-pre-1980' succeeded after 0.0 seconds
starting phase `enable-bytecode-determinism'
phase `enable-bytecode-determinism' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./setup.py: changing `/usr/bin/env python3' to `/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin/python3'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
running "python setup.py" with command "build" and parameters ()
running build
running build_py
creating build
creating build/lib
build/lib
phase `build' succeeded after 0.3 seconds
starting phase `install'
running "python setup.py" with command "install" and parameters ("--prefix=/gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0" "--single-version-externally-managed" "--root=/")
running install
running build
running build_py
running install_lib
creating /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0
creating /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib
creating /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8
creating /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
/gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
byte-compiling /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary.py to plover_python_dictionary.cpython-38.pyc
running install_egg_info
running egg_info
writing plover_python_dictionary.egg-info/PKG-INFO
writing dependency_links to plover_python_dictionary.egg-info/dependency_links.txt
writing entry points to plover_python_dictionary.egg-info/entry_points.txt
writing requirements to plover_python_dictionary.egg-info/requires.txt
writing top-level names to plover_python_dictionary.egg-info/top_level.txt
reading manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
Copying plover_python_dictionary.egg-info to /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary-1.1.0-py3.8.egg-info
running install_scripts
phase `install' succeeded after 0.3 seconds
starting phase `wrap'
find-files: /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/bin: No such file or directory
find-files: /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/sbin: No such file or directory
phase `wrap' succeeded after 0.0 seconds
starting phase `check'
running "python setup.py" with command "test" and parameters ()
running test
=0.16
Reading https://pypi.org/simple/python-xlib/
Download error on https://pypi.org/simple/python-xlib/: [Errno -2] Name or service not known -- Some packages may not be found!
Couldn't find index page for 'python-xlib' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.org/simple/
Download error on https://pypi.org/simple/: [Errno -2] Name or service not known -- Some packages may not be found!
=0.16
=0.16')
command "python" "-c" "import setuptools,
 tokenize;__file__='setup.py';f=getattr(tokenize,
 'open',
 open)(__file__);code=f.read().replace('\\r\\n',
 '\\n');f.close();exec(compile(code,
 __file__,
 'exec'))" "test" failed with status 1
builder for `/gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv' failed with exit code 1
build of /gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv failed
View build log at '/var/log/guix/drvs/1j/iv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv.bz2'.
guix build: error: build of `/gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv' failed

It looks to be failing on python-xlib. This turns out to be in the python-xyz.scm\/=python-xyz= module.

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
 (guix build-system python)
 ((guix licenses) #:prefix license:)
 (gnu packages stenography)
 (gnu packages check)
(gnu packages python-xyz))

Add the module and build again.

guix build -f plover-python-dictionary.scm
The following derivation will be built:
   /gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv
building /gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv...
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/f8s95qc6dfhl0r45m70hczw5zip0xjxq-python-wrapper-3.8.2/bin:/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/bin:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/bin:/gnu/store/v6f44zccwh9z5zk3pjlywjybbi8n2hjh-tar-1.32/bin:/gnu/store/ncydgq2znms5n1d2k5yqshhf58nsixwv-gzip-1.10/bin:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/bin:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/bin:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/bin:/gnu/store/n4n560pfvvw50a9369axw5vj5rrqfj1n-diffutils-3.7/bin:/gnu/store/cd5qf3kcnlq35p9k392pjdpdzpsnds70-patch-2.7.6/bin:/gnu/store/hic7snhayfl7m6cpfqqr73nmm19bpqkg-findutils-4.7.0/bin:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/bin:/gnu/store/ishk7fswcs4gkwcp8mh788z4mvvl9bxh-sed-4.8/bin:/gnu/store/bhs4rj58v8j1narb2454raan2ps38xd8-grep-3.4/bin:/gnu/store/57xj5gcy1jbl9ai2lnrqnpr0dald9i65-coreutils-8.32/bin:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/bin:/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin:/gnu/store/mpa04aq8lblbcviyxywxcsb1zbi0mf39-ld-wrapper-0/bin:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/bin:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/sbin:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin'
environment variable `PYTHONPATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib/python3.8/site-packages:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib/python3.8/site-packages:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/site-packages:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib/python3.8/site-packages:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib/python3.8/site-packages:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib/python3.8/site-packages:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib/python3.8/site-packages:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib/python3.8/site-packages:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib/python3.8/site-packages:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib/python3.8/site-packages:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib/python3.8/site-packages:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib/python3.8/site-packages'
environment variable `BASH_LOADABLES_PATH' unset
environment variable `C_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include/c++:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/lib:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/lib:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/lib:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/lib:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/lib:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib:/gnu/store/s3dcqzwqaakv1yx37by9chksdbkgih17-glibc-2.31-static/lib:/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib'
environment variable `GUIX_LOCPATH' set to `/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib/locale'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
using 'en_US.utf8' locale for category "LC_ALL"
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
plover_python_dictionary-1.1.0/
plover_python_dictionary-1.1.0/MANIFEST.in
plover_python_dictionary-1.1.0/PKG-INFO
plover_python_dictionary-1.1.0/README.md
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/PKG-INFO
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/SOURCES.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/dependency_links.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/entry_points.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/requires.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/top_level.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/zip-safe
plover_python_dictionary-1.1.0/plover_python_dictionary.py
plover_python_dictionary-1.1.0/pyproject.toml
plover_python_dictionary-1.1.0/setup.cfg
plover_python_dictionary-1.1.0/setup.py
plover_python_dictionary-1.1.0/test/
plover_python_dictionary-1.1.0/test/conftest.py
plover_python_dictionary-1.1.0/test/dict_callable_checks.py
plover_python_dictionary-1.1.0/test/dict_reverse_lookup.py
plover_python_dictionary-1.1.0/test/dict_show_stroke.py
plover_python_dictionary-1.1.0/test/dict_utf8.py
plover_python_dictionary-1.1.0/test/test_python_dict.py
plover_python_dictionary-1.1.0/tox.ini
phase `unpack' succeeded after 0.0 seconds
starting phase `ensure-no-mtimes-pre-1980'
phase `ensure-no-mtimes-pre-1980' succeeded after 0.0 seconds
starting phase `enable-bytecode-determinism'
phase `enable-bytecode-determinism' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./setup.py: changing `/usr/bin/env python3' to `/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin/python3'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
running "python setup.py" with command "build" and parameters ()
running build
running build_py
creating build
creating build/lib
build/lib
phase `build' succeeded after 0.2 seconds
starting phase `install'
running "python setup.py" with command "install" and parameters ("--prefix=/gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0" "--single-version-externally-managed" "--root=/")
running install
running build
running build_py
running install_lib
creating /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0
creating /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib
creating /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8
creating /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
/gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
byte-compiling /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary.py to plover_python_dictionary.cpython-38.pyc
running install_egg_info
running egg_info
writing plover_python_dictionary.egg-info/PKG-INFO
writing dependency_links to plover_python_dictionary.egg-info/dependency_links.txt
writing entry points to plover_python_dictionary.egg-info/entry_points.txt
writing requirements to plover_python_dictionary.egg-info/requires.txt
writing top-level names to plover_python_dictionary.egg-info/top_level.txt
reading manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
Copying plover_python_dictionary.egg-info to /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary-1.1.0-py3.8.egg-info
running install_scripts
phase `install' succeeded after 0.2 seconds
starting phase `wrap'
find-files: /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/bin: No such file or directory
find-files: /gnu/store/ia7g764hc7wlfghqs568vx589vypr3si-python-plover-python-dictionary-1.1.0/sbin: No such file or directory
phase `wrap' succeeded after 0.0 seconds
starting phase `check'
running "python setup.py" with command "test" and parameters ()
running test
=0.16
Reading https://pypi.org/simple/python-xlib/
Download error on https://pypi.org/simple/python-xlib/: [Errno -2] Name or service not known -- Some packages may not be found!
Couldn't find index page for 'python-xlib' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.org/simple/
Download error on https://pypi.org/simple/: [Errno -2] Name or service not known -- Some packages may not be found!
=0.16
=0.16')
command "python" "-c" "import setuptools,
 tokenize;__file__='setup.py';f=getattr(tokenize,
 'open',
 open)(__file__);code=f.read().replace('\\r\\n',
 '\\n');f.close();exec(compile(code,
 __file__,
 'exec'))" "test" failed with status 1
builder for `/gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv' failed with exit code 1
build of /gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv failed
View build log at '/var/log/guix/drvs/1j/iv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv.bz2'.
guix build: error: build of `/gnu/store/1jiv4jwv9lrcm6ccv5kjc2abyrwd2rfs-python-plover-python-dictionary-1.1.0.drv' failed

Whoops! Adding the python-xyz module which contains python-xlib isn't enough. The python-xlib package also needs to be added to the build process. Recall that the input field indicates that the dependencies listed are built for the target architecture during cross-compilation. The error demonstrates that the build process fails because it lacks the python-xlib package. So, add it as an input

(define-public python-plover-python-dictionary
  (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "plover_python_dictionary" version))
        (sha256
          (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
    (build-system python-build-system)
(inputs `(("python-xlib" ,python-xlib)))
(propagated-inputs (propagated-inputs `(("python-plover" ,plover))) (native-inputs `(("python-plover" ,plover) ("python-pytest" ,python-pytest))) (home-page "https://github.com/benoit-pierre/plover_python_dictionary") (synopsis "Python dictionaries support for Plover") (description "Python dictionaries support for Plover") (license #f)))

…and build again.

guix build -f plover-python-dictionary.scm
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
The following derivation will be built:
   /gnu/store/68w1ms1zvs2grni70xgq9djjis0i9yva-python-plover-python-dictionary-1.1.0.drv
building /gnu/store/68w1ms1zvs2grni70xgq9djjis0i9yva-python-plover-python-dictionary-1.1.0.drv...
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/f8s95qc6dfhl0r45m70hczw5zip0xjxq-python-wrapper-3.8.2/bin:/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/bin:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/bin:/gnu/store/v6f44zccwh9z5zk3pjlywjybbi8n2hjh-tar-1.32/bin:/gnu/store/ncydgq2znms5n1d2k5yqshhf58nsixwv-gzip-1.10/bin:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/bin:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/bin:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/bin:/gnu/store/n4n560pfvvw50a9369axw5vj5rrqfj1n-diffutils-3.7/bin:/gnu/store/cd5qf3kcnlq35p9k392pjdpdzpsnds70-patch-2.7.6/bin:/gnu/store/hic7snhayfl7m6cpfqqr73nmm19bpqkg-findutils-4.7.0/bin:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/bin:/gnu/store/ishk7fswcs4gkwcp8mh788z4mvvl9bxh-sed-4.8/bin:/gnu/store/bhs4rj58v8j1narb2454raan2ps38xd8-grep-3.4/bin:/gnu/store/57xj5gcy1jbl9ai2lnrqnpr0dald9i65-coreutils-8.32/bin:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/bin:/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin:/gnu/store/mpa04aq8lblbcviyxywxcsb1zbi0mf39-ld-wrapper-0/bin:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/bin:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/sbin:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin'
environment variable `PYTHONPATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib/python3.8/site-packages:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib/python3.8/site-packages:/gnu/store/rhy576kcv5dhfdyrpibhrzqg36rsrbwc-python-xlib-0.29/lib/python3.8/site-packages:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/site-packages:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib/python3.8/site-packages:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib/python3.8/site-packages:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib/python3.8/site-packages:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib/python3.8/site-packages:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib/python3.8/site-packages:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib/python3.8/site-packages:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib/python3.8/site-packages:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib/python3.8/site-packages:/gnu/store/hjmz8ymac939ribn7g3jkgms4dk2az3a-python-six-1.14.0/lib/python3.8/site-packages:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib/python3.8/site-packages'
environment variable `BASH_LOADABLES_PATH' unset
environment variable `C_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include/c++:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib:/gnu/store/rhy576kcv5dhfdyrpibhrzqg36rsrbwc-python-xlib-0.29/lib:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/lib:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/lib:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/lib:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/lib:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/lib:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib:/gnu/store/s3dcqzwqaakv1yx37by9chksdbkgih17-glibc-2.31-static/lib:/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib:/gnu/store/hjmz8ymac939ribn7g3jkgms4dk2az3a-python-six-1.14.0/lib:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib'
environment variable `GUIX_LOCPATH' set to `/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib/locale'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
using 'en_US.utf8' locale for category "LC_ALL"
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
plover_python_dictionary-1.1.0/
plover_python_dictionary-1.1.0/MANIFEST.in
plover_python_dictionary-1.1.0/PKG-INFO
plover_python_dictionary-1.1.0/README.md
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/PKG-INFO
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/SOURCES.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/dependency_links.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/entry_points.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/requires.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/top_level.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/zip-safe
plover_python_dictionary-1.1.0/plover_python_dictionary.py
plover_python_dictionary-1.1.0/pyproject.toml
plover_python_dictionary-1.1.0/setup.cfg
plover_python_dictionary-1.1.0/setup.py
plover_python_dictionary-1.1.0/test/
plover_python_dictionary-1.1.0/test/conftest.py
plover_python_dictionary-1.1.0/test/dict_callable_checks.py
plover_python_dictionary-1.1.0/test/dict_reverse_lookup.py
plover_python_dictionary-1.1.0/test/dict_show_stroke.py
plover_python_dictionary-1.1.0/test/dict_utf8.py
plover_python_dictionary-1.1.0/test/test_python_dict.py
plover_python_dictionary-1.1.0/tox.ini
phase `unpack' succeeded after 0.0 seconds
starting phase `ensure-no-mtimes-pre-1980'
phase `ensure-no-mtimes-pre-1980' succeeded after 0.0 seconds
starting phase `enable-bytecode-determinism'
phase `enable-bytecode-determinism' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./setup.py: changing `/usr/bin/env python3' to `/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin/python3'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
running "python setup.py" with command "build" and parameters ()
running build
running build_py
creating build
creating build/lib
build/lib
phase `build' succeeded after 0.2 seconds
starting phase `install'
running "python setup.py" with command "install" and parameters ("--prefix=/gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0" "--single-version-externally-managed" "--root=/")
running install
running build
running build_py
running install_lib
creating /gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0
creating /gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0/lib
creating /gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0/lib/python3.8
creating /gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
/gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
byte-compiling /gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary.py to plover_python_dictionary.cpython-38.pyc
running install_egg_info
running egg_info
writing plover_python_dictionary.egg-info/PKG-INFO
writing dependency_links to plover_python_dictionary.egg-info/dependency_links.txt
writing entry points to plover_python_dictionary.egg-info/entry_points.txt
writing requirements to plover_python_dictionary.egg-info/requires.txt
writing top-level names to plover_python_dictionary.egg-info/top_level.txt
reading manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
Copying plover_python_dictionary.egg-info to /gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary-1.1.0-py3.8.egg-info
running install_scripts
phase `install' succeeded after 0.2 seconds
starting phase `wrap'
find-files: /gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0/bin: No such file or directory
find-files: /gnu/store/13kysqq3p7chry6yv9lhwiks2rh1sa7c-python-plover-python-dictionary-1.1.0/sbin: No such file or directory
phase `wrap' succeeded after 0.0 seconds
starting phase `check'
running "python setup.py" with command "test" and parameters ()
running test
=2.7
Reading https://pypi.org/simple/pyserial/
Download error on https://pypi.org/simple/pyserial/: [Errno -2] Name or service not known -- Some packages may not be found!
Couldn't find index page for 'pyserial' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.org/simple/
Download error on https://pypi.org/simple/: [Errno -2] Name or service not known -- Some packages may not be found!
=2.7
=2.7')
command "python" "-c" "import setuptools,
 tokenize;__file__='setup.py';f=getattr(tokenize,
 'open',
 open)(__file__);code=f.read().replace('\\r\\n',
 '\\n');f.close();exec(compile(code,
 __file__,
 'exec'))" "test" failed with status 1
builder for `/gnu/store/68w1ms1zvs2grni70xgq9djjis0i9yva-python-plover-python-dictionary-1.1.0.drv' failed with exit code 1
build of /gnu/store/68w1ms1zvs2grni70xgq9djjis0i9yva-python-plover-python-dictionary-1.1.0.drv failed
View build log at '/var/log/guix/drvs/68/w1ms1zvs2grni70xgq9djjis0i9yva-python-plover-python-dictionary-1.1.0.drv.bz2'.
guix build: error: build of `/gnu/store/68w1ms1zvs2grni70xgq9djjis0i9yva-python-plover-python-dictionary-1.1.0.drv' failed

This time the problem is similar. The build process can't find pyserial. It looks like pyserial is also in python-xyz.scm. Since that was added in the last change, that means pyserial needs to be added to inputs. Looking at the package definition, the package is called "python-pyserial" within Guix.

(define-public python-plover-python-dictionary
  (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "plover_python_dictionary" version))
        (sha256
          (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
    (build-system python-build-system)
(inputs `(("python-xlib" ,python-xlib)))
(inputs
`(("python-xlib" ,python-xlib)
("python-pyserial" ,python-pyserial)))
(propagated-inputs `(("python-plover" ,plover))) (native-inputs `(("python-plover" ,plover) ("python-pytest" ,python-pytest))) (home-page "https://github.com/benoit-pierre/plover_python_dictionary") (synopsis "Python dictionaries support for Plover") (description "Python dictionaries support for Plover") (license #f)))

After adding the needed input, try to build again.

guix build -f plover-python-dictionary.scm
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
The following derivation will be built:
   /gnu/store/fl4m0dhnvflmnws9kmwqm570lxyx37qq-python-plover-python-dictionary-1.1.0.drv
building /gnu/store/fl4m0dhnvflmnws9kmwqm570lxyx37qq-python-plover-python-dictionary-1.1.0.drv...
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/f8s95qc6dfhl0r45m70hczw5zip0xjxq-python-wrapper-3.8.2/bin:/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/bin:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/bin:/gnu/store/ci0f79qsippv8rqcjfgfxyds28iy4nc3-python-pyserial-3.5/bin:/gnu/store/v6f44zccwh9z5zk3pjlywjybbi8n2hjh-tar-1.32/bin:/gnu/store/ncydgq2znms5n1d2k5yqshhf58nsixwv-gzip-1.10/bin:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/bin:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/bin:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/bin:/gnu/store/n4n560pfvvw50a9369axw5vj5rrqfj1n-diffutils-3.7/bin:/gnu/store/cd5qf3kcnlq35p9k392pjdpdzpsnds70-patch-2.7.6/bin:/gnu/store/hic7snhayfl7m6cpfqqr73nmm19bpqkg-findutils-4.7.0/bin:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/bin:/gnu/store/ishk7fswcs4gkwcp8mh788z4mvvl9bxh-sed-4.8/bin:/gnu/store/bhs4rj58v8j1narb2454raan2ps38xd8-grep-3.4/bin:/gnu/store/57xj5gcy1jbl9ai2lnrqnpr0dald9i65-coreutils-8.32/bin:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/bin:/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin:/gnu/store/mpa04aq8lblbcviyxywxcsb1zbi0mf39-ld-wrapper-0/bin:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/bin:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/sbin:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin'
environment variable `PYTHONPATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib/python3.8/site-packages:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib/python3.8/site-packages:/gnu/store/rhy576kcv5dhfdyrpibhrzqg36rsrbwc-python-xlib-0.29/lib/python3.8/site-packages:/gnu/store/ci0f79qsippv8rqcjfgfxyds28iy4nc3-python-pyserial-3.5/lib/python3.8/site-packages:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/site-packages:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib/python3.8/site-packages:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib/python3.8/site-packages:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib/python3.8/site-packages:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib/python3.8/site-packages:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib/python3.8/site-packages:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib/python3.8/site-packages:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib/python3.8/site-packages:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib/python3.8/site-packages:/gnu/store/hjmz8ymac939ribn7g3jkgms4dk2az3a-python-six-1.14.0/lib/python3.8/site-packages:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib/python3.8/site-packages'
environment variable `BASH_LOADABLES_PATH' unset
environment variable `C_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include/c++:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib:/gnu/store/rhy576kcv5dhfdyrpibhrzqg36rsrbwc-python-xlib-0.29/lib:/gnu/store/ci0f79qsippv8rqcjfgfxyds28iy4nc3-python-pyserial-3.5/lib:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/lib:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/lib:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/lib:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/lib:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/lib:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib:/gnu/store/s3dcqzwqaakv1yx37by9chksdbkgih17-glibc-2.31-static/lib:/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib:/gnu/store/hjmz8ymac939ribn7g3jkgms4dk2az3a-python-six-1.14.0/lib:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib'
environment variable `GUIX_LOCPATH' set to `/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib/locale'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
using 'en_US.utf8' locale for category "LC_ALL"
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
plover_python_dictionary-1.1.0/
plover_python_dictionary-1.1.0/MANIFEST.in
plover_python_dictionary-1.1.0/PKG-INFO
plover_python_dictionary-1.1.0/README.md
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/PKG-INFO
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/SOURCES.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/dependency_links.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/entry_points.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/requires.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/top_level.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/zip-safe
plover_python_dictionary-1.1.0/plover_python_dictionary.py
plover_python_dictionary-1.1.0/pyproject.toml
plover_python_dictionary-1.1.0/setup.cfg
plover_python_dictionary-1.1.0/setup.py
plover_python_dictionary-1.1.0/test/
plover_python_dictionary-1.1.0/test/conftest.py
plover_python_dictionary-1.1.0/test/dict_callable_checks.py
plover_python_dictionary-1.1.0/test/dict_reverse_lookup.py
plover_python_dictionary-1.1.0/test/dict_show_stroke.py
plover_python_dictionary-1.1.0/test/dict_utf8.py
plover_python_dictionary-1.1.0/test/test_python_dict.py
plover_python_dictionary-1.1.0/tox.ini
phase `unpack' succeeded after 0.0 seconds
starting phase `ensure-no-mtimes-pre-1980'
phase `ensure-no-mtimes-pre-1980' succeeded after 0.0 seconds
starting phase `enable-bytecode-determinism'
phase `enable-bytecode-determinism' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./setup.py: changing `/usr/bin/env python3' to `/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin/python3'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
running "python setup.py" with command "build" and parameters ()
running build
running build_py
creating build
creating build/lib
build/lib
phase `build' succeeded after 0.2 seconds
starting phase `install'
running "python setup.py" with command "install" and parameters ("--prefix=/gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0" "--single-version-externally-managed" "--root=/")
running install
running build
running build_py
running install_lib
creating /gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0
creating /gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0/lib
creating /gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0/lib/python3.8
creating /gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
/gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
byte-compiling /gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary.py to plover_python_dictionary.cpython-38.pyc
running install_egg_info
running egg_info
writing plover_python_dictionary.egg-info/PKG-INFO
writing dependency_links to plover_python_dictionary.egg-info/dependency_links.txt
writing entry points to plover_python_dictionary.egg-info/entry_points.txt
writing requirements to plover_python_dictionary.egg-info/requires.txt
writing top-level names to plover_python_dictionary.egg-info/top_level.txt
reading manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
Copying plover_python_dictionary.egg-info to /gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary-1.1.0-py3.8.egg-info
running install_scripts
phase `install' succeeded after 0.2 seconds
starting phase `wrap'
find-files: /gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0/bin: No such file or directory
find-files: /gnu/store/lfkbfwc9w1hby1l19ylng5y10pcmvxw7-python-plover-python-dictionary-1.1.0/sbin: No such file or directory
phase `wrap' succeeded after 0.0 seconds
starting phase `check'
running "python setup.py" with command "test" and parameters ()
running test
=1.3.0
Reading https://pypi.org/simple/appdirs/
Download error on https://pypi.org/simple/appdirs/: [Errno -2] Name or service not known -- Some packages may not be found!
Couldn't find index page for 'appdirs' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.org/simple/
Download error on https://pypi.org/simple/: [Errno -2] Name or service not known -- Some packages may not be found!
=1.3.0
=1.3.0')
command "python" "-c" "import setuptools,
 tokenize;__file__='setup.py';f=getattr(tokenize,
 'open',
 open)(__file__);code=f.read().replace('\\r\\n',
 '\\n');f.close();exec(compile(code,
 __file__,
 'exec'))" "test" failed with status 1
builder for `/gnu/store/fl4m0dhnvflmnws9kmwqm570lxyx37qq-python-plover-python-dictionary-1.1.0.drv' failed with exit code 1
build of /gnu/store/fl4m0dhnvflmnws9kmwqm570lxyx37qq-python-plover-python-dictionary-1.1.0.drv failed
View build log at '/var/log/guix/drvs/fl/4m0dhnvflmnws9kmwqm570lxyx37qq-python-plover-python-dictionary-1.1.0.drv.bz2'.
guix build: error: build of `/gnu/store/fl4m0dhnvflmnws9kmwqm570lxyx37qq-python-plover-python-dictionary-1.1.0.drv' failed

The next error is another missing Python package. This time it's the appdirs package. It too is in the python-xyz module. So, just add it to the inputs field.

(define-public python-plover-python-dictionary
  (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "plover_python_dictionary" version))
        (sha256
          (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
    (build-system python-build-system)
    (inputs
     `(("python-xlib" ,python-xlib)
("python-pyserial" ,python-pyserial)))
("python-pyserial" ,python-pyserial)
("python-appdirs" ,python-appdirs)))
(propagated-inputs `(("python-plover" ,plover))) (native-inputs `(("python-plover" ,plover) ("python-pytest" ,python-pytest))) (home-page "https://github.com/benoit-pierre/plover_python_dictionary") (synopsis "Python dictionaries support for Plover") (description "Python dictionaries support for Plover") (license #f)))

And build again.

guix build -f plover-python-dictionary.scm
The following derivation will be built:
   /gnu/store/bia4xsxfrr9ibgpxy03ixpwyayg16hfq-python-plover-python-dictionary-1.1.0.drv
building /gnu/store/bia4xsxfrr9ibgpxy03ixpwyayg16hfq-python-plover-python-dictionary-1.1.0.drv...
starting phase `set-SOURCE-DATE-EPOCH'
phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
starting phase `set-paths'
environment variable `PATH' set to `/gnu/store/f8s95qc6dfhl0r45m70hczw5zip0xjxq-python-wrapper-3.8.2/bin:/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/bin:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/bin:/gnu/store/ci0f79qsippv8rqcjfgfxyds28iy4nc3-python-pyserial-3.5/bin:/gnu/store/v6f44zccwh9z5zk3pjlywjybbi8n2hjh-tar-1.32/bin:/gnu/store/ncydgq2znms5n1d2k5yqshhf58nsixwv-gzip-1.10/bin:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/bin:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/bin:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/bin:/gnu/store/n4n560pfvvw50a9369axw5vj5rrqfj1n-diffutils-3.7/bin:/gnu/store/cd5qf3kcnlq35p9k392pjdpdzpsnds70-patch-2.7.6/bin:/gnu/store/hic7snhayfl7m6cpfqqr73nmm19bpqkg-findutils-4.7.0/bin:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/bin:/gnu/store/ishk7fswcs4gkwcp8mh788z4mvvl9bxh-sed-4.8/bin:/gnu/store/bhs4rj58v8j1narb2454raan2ps38xd8-grep-3.4/bin:/gnu/store/57xj5gcy1jbl9ai2lnrqnpr0dald9i65-coreutils-8.32/bin:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/bin:/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin:/gnu/store/mpa04aq8lblbcviyxywxcsb1zbi0mf39-ld-wrapper-0/bin:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/bin:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/bin:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/sbin:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin'
environment variable `PYTHONPATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib/python3.8/site-packages:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib/python3.8/site-packages:/gnu/store/rhy576kcv5dhfdyrpibhrzqg36rsrbwc-python-xlib-0.29/lib/python3.8/site-packages:/gnu/store/ci0f79qsippv8rqcjfgfxyds28iy4nc3-python-pyserial-3.5/lib/python3.8/site-packages:/gnu/store/iw4nff8b53cf65brf5bsxx3j8pn37fk3-python-appdirs-1.4.3/lib/python3.8/site-packages:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib/python3.8/site-packages:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib/python3.8/site-packages:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib/python3.8/site-packages:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib/python3.8/site-packages:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib/python3.8/site-packages:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib/python3.8/site-packages:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib/python3.8/site-packages:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib/python3.8/site-packages:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib/python3.8/site-packages:/gnu/store/hjmz8ymac939ribn7g3jkgms4dk2az3a-python-six-1.14.0/lib/python3.8/site-packages:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib/python3.8/site-packages'
environment variable `BASH_LOADABLES_PATH' unset
environment variable `C_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/include:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/include:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/include:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/include:/gnu/store/hm40bxnv8jxmbc1lpb7zfimii4xm9m81-make-4.3/include:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/include:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include/c++:/gnu/store/rn75fm7adgx3pw5j8pg3bczfqq1y17lk-gcc-7.5.0/include:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/include:/gnu/store/gfapkk5c6hvl1d94m4sqnhn7f9l5gqyh-linux-libre-headers-5.4.20/include'
environment variable `LIBRARY_PATH' set to `/gnu/store/ipk30s5pq9hdnqqvnq32ajcakwqpcxxi-plover-4.0.0.dev8/lib:/gnu/store/436410968f8mpdlsn1pw456mpgwmbh4m-python-pytest-5.3.5/lib:/gnu/store/rhy576kcv5dhfdyrpibhrzqg36rsrbwc-python-xlib-0.29/lib:/gnu/store/ci0f79qsippv8rqcjfgfxyds28iy4nc3-python-pyserial-3.5/lib:/gnu/store/iw4nff8b53cf65brf5bsxx3j8pn37fk3-python-appdirs-1.4.3/lib:/gnu/store/i8h2pcxqdq07ijm3ibkka8f4smn1w48v-bzip2-1.0.8/lib:/gnu/store/9860f1abqj8wjjnwl8a9v54pdcc3bhgf-xz-5.2.4/lib:/gnu/store/60g7r3l01fd7c58yjbm6krgcwj1jkpwg-file-5.38/lib:/gnu/store/swqdvwri9dbv6zssg6v0by7l05hd6wxp-gawk-5.0.1/lib:/gnu/store/m1z7cdbqsqyp9xnjw5cvlb4a7gkcg3m4-binutils-2.34/lib:/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib:/gnu/store/s3dcqzwqaakv1yx37by9chksdbkgih17-glibc-2.31-static/lib:/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib:/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/lib:/gnu/store/xjiplzqxr084ximm4wdhyx3wzf8nxvv0-python-wcwidth-0.1.8/lib:/gnu/store/wqw4gzwl3nh9z9kzzs46zjw5v4dlb3hy-python-six-bootstrap-1.14.0/lib:/gnu/store/avj1ma4bvfjnw86pd9ys64899b627f0x-python-py-1.8.1/lib:/gnu/store/nqi6xqx8h2fxldi3xbigkc24wfzzsy5j-python-pluggy-0.13.1/lib:/gnu/store/fnhij2sl3yx4048ij4jnx4lfikw43v78-python-packaging-bootstrap-20.0/lib:/gnu/store/bpbpmqwx2zvrw2h5k8c8fwk91xmzfym3-python-more-itertools-8.2.0/lib:/gnu/store/jjqhdlpg9bx3j0l4z52zm5xzrpscd0yk-python-attrs-bootstrap-19.3.0/lib:/gnu/store/v166fk97g9np2rb27m2kgfbnivlfxcgn-python-atomicwrites-1.3.0/lib:/gnu/store/hjmz8ymac939ribn7g3jkgms4dk2az3a-python-six-1.14.0/lib:/gnu/store/69lzz2dp87f896843jj05mw5z4hd9my2-python-pyparsing-2.4.6/lib'
environment variable `GUIX_LOCPATH' set to `/gnu/store/hwcky7446s952w0mwchhmm211ll07zrq-glibc-utf8-locales-2.31/lib/locale'
phase `set-paths' succeeded after 0.0 seconds
starting phase `install-locale'
using 'en_US.utf8' locale for category "LC_ALL"
phase `install-locale' succeeded after 0.0 seconds
starting phase `unpack'
plover_python_dictionary-1.1.0/
plover_python_dictionary-1.1.0/MANIFEST.in
plover_python_dictionary-1.1.0/PKG-INFO
plover_python_dictionary-1.1.0/README.md
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/PKG-INFO
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/SOURCES.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/dependency_links.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/entry_points.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/requires.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/top_level.txt
plover_python_dictionary-1.1.0/plover_python_dictionary.egg-info/zip-safe
plover_python_dictionary-1.1.0/plover_python_dictionary.py
plover_python_dictionary-1.1.0/pyproject.toml
plover_python_dictionary-1.1.0/setup.cfg
plover_python_dictionary-1.1.0/setup.py
plover_python_dictionary-1.1.0/test/
plover_python_dictionary-1.1.0/test/conftest.py
plover_python_dictionary-1.1.0/test/dict_callable_checks.py
plover_python_dictionary-1.1.0/test/dict_reverse_lookup.py
plover_python_dictionary-1.1.0/test/dict_show_stroke.py
plover_python_dictionary-1.1.0/test/dict_utf8.py
plover_python_dictionary-1.1.0/test/test_python_dict.py
plover_python_dictionary-1.1.0/tox.ini
phase `unpack' succeeded after 0.0 seconds
starting phase `ensure-no-mtimes-pre-1980'
phase `ensure-no-mtimes-pre-1980' succeeded after 0.0 seconds
starting phase `enable-bytecode-determinism'
phase `enable-bytecode-determinism' succeeded after 0.0 seconds
starting phase `patch-usr-bin-file'
phase `patch-usr-bin-file' succeeded after 0.0 seconds
starting phase `patch-source-shebangs'
patch-shebang: ./setup.py: changing `/usr/bin/env python3' to `/gnu/store/9w9jvy3bgjg4qaqmrij01nbppiccqr7c-python-3.8.2/bin/python3'
phase `patch-source-shebangs' succeeded after 0.0 seconds
starting phase `patch-generated-file-shebangs'
phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
starting phase `build'
running "python setup.py" with command "build" and parameters ()
running build
running build_py
creating build
creating build/lib
build/lib
phase `build' succeeded after 0.2 seconds
starting phase `install'
running "python setup.py" with command "install" and parameters ("--prefix=/gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0" "--single-version-externally-managed" "--root=/")
running install
running build
running build_py
running install_lib
creating /gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0
creating /gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/lib
creating /gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/lib/python3.8
creating /gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
/gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages
byte-compiling /gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary.py to plover_python_dictionary.cpython-38.pyc
running install_egg_info
running egg_info
writing plover_python_dictionary.egg-info/PKG-INFO
writing dependency_links to plover_python_dictionary.egg-info/dependency_links.txt
writing entry points to plover_python_dictionary.egg-info/entry_points.txt
writing requirements to plover_python_dictionary.egg-info/requires.txt
writing top-level names to plover_python_dictionary.egg-info/top_level.txt
reading manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
Copying plover_python_dictionary.egg-info to /gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/lib/python3.8/site-packages/plover_python_dictionary-1.1.0-py3.8.egg-info
running install_scripts
phase `install' succeeded after 0.2 seconds
starting phase `wrap'
find-files: /gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/bin: No such file or directory
find-files: /gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/sbin: No such file or directory
phase `wrap' succeeded after 0.0 seconds
starting phase `check'
running "python setup.py" with command "test" and parameters ()
running test
running egg_info
writing plover_python_dictionary.egg-info/PKG-INFO
writing dependency_links to plover_python_dictionary.egg-info/dependency_links.txt
writing entry points to plover_python_dictionary.egg-info/entry_points.txt
writing requirements to plover_python_dictionary.egg-info/requires.txt
writing top-level names to plover_python_dictionary.egg-info/top_level.txt
reading manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'plover_python_dictionary.egg-info/SOURCES.txt'
running build_ext

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
phase `check' succeeded after 0.3 seconds
starting phase `patch-shebangs'
phase `patch-shebangs' succeeded after 0.0 seconds
starting phase `rename-pth-file'
phase `rename-pth-file' succeeded after 0.0 seconds
starting phase `strip'
stripping binaries in "/gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/lib" with "strip" and flags ("--strip-debug" "--enable-deterministic-archives")
phase `strip' succeeded after 0.0 seconds
starting phase `validate-runpath'
validating RUNPATH of 0 binaries in "/gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0/lib"...
phase `validate-runpath' succeeded after 0.0 seconds
starting phase `validate-documentation-location'
phase `validate-documentation-location' succeeded after 0.0 seconds
starting phase `delete-info-dir-file'
phase `delete-info-dir-file' succeeded after 0.0 seconds
starting phase `patch-dot-desktop-files'
phase `patch-dot-desktop-files' succeeded after 0.0 seconds
starting phase `install-license-files'
installing 0 license files from '.'
phase `install-license-files' succeeded after 0.0 seconds
starting phase `reset-gzip-timestamps'
phase `reset-gzip-timestamps' succeeded after 0.0 seconds
starting phase `compress-documentation'
phase `compress-documentation' succeeded after 0.0 seconds
successfully built /gnu/store/bia4xsxfrr9ibgpxy03ixpwyayg16hfq-python-plover-python-dictionary-1.1.0.drv
/gnu/store/vlrxy0xgrvlfpk4h29h4rg2js5nmvz8m-python-plover-python-dictionary-1.1.0

Woo-hoo! Look at that second to last line (excuse the control characters, an artifact of the writing process):

successfully built /gnu/store/bia4xsxfrr9ibgpxy03ixpwyayg16hfq-python-plover-python-dictionary-1.1.0.drv

The definition so far looks like:

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
 (guix build-system python)
 ((guix licenses) #:prefix license:)
 (gnu packages stenography)
 (gnu packages check)
 (gnu packages python-xyz))

(define-public python-pyobjc-framework-quartz
  (package
    (name "python-pyobjc-framework-quartz")
    (version "7.3")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-framework-Quartz" version))
        (sha256
          (base32 "02ygxh0dhb5xagyvcxc3i9147kbmm0ihkxmxh3wxwqj2qd22i0cq"))))
    (build-system python-build-system)
    (propagated-inputs
      `(("python-pyobjc-core" ,python-pyobjc-core)
        ("python-pyobjc-framework-cocoa" ,python-pyobjc-framework-cocoa)))
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Wrappers for the Quartz frameworks on macOS")
    (description "Wrappers for the Quartz frameworks on macOS")
    (license license:expat)))

(define-public python-pyobjc-framework-cocoa
  (package
    (name "python-pyobjc-framework-cocoa")
    (version "7.3")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-framework-Cocoa" version))
        (sha256
          (base32 "0zhbp18i06aprwfbp06l9wm3qrzsdcyy9hwis5d4b8wmlzkhb3di"))))
    (build-system python-build-system)
    (propagated-inputs `(("python-pyobjc-core" ,python-pyobjc-core)))
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Wrappers for the Cocoa frameworks on macOS")
    (description "Wrappers for the Cocoa frameworks on macOS")
    (license license:expat)))

(define-public python-pyobjc-core
  (package
    (name "python-pyobjc-core")
    (version "7.3")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-core" version))
        (sha256
          (base32 "0x3msrzvcszlmladdpl64s48l52fwk4xlnnri8daq2mliggsx0ah"))))
    (build-system python-build-system)
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Python<->ObjC Interoperability Module")
    (description "Python<->ObjC Interoperability Module")
    (license license:expat)))

(define-public python-appnope
  (package
    (name "python-appnope")
    (version "0.1.2")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "appnope" version))
        (sha256
          (base32 "12i50gv145cl9qkf87av5aprq7qbcq601cvfiy1mh2a6bd5wv0yx"))))
    (build-system python-build-system)
    (home-page "http://github.com/minrk/appnope")
    (synopsis "Disable App Nap on macOS >= 10.9")
    (description "Disable App Nap on macOS >= 10.9")
    (license license:bsd-3)))

(define-public python-plover-python-dictionary
  (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "plover_python_dictionary" version))
        (sha256
          (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
    (build-system python-build-system)
    (inputs
     `(("python-xlib" ,python-xlib)
       ("python-pyserial" ,python-pyserial)
       ("python-appdirs" ,python-appdirs)))
    (propagated-inputs `(("python-plover" ,plover)))
    (native-inputs
      `(("python-plover" ,plover) ("python-pytest" ,python-pytest)))
    (home-page "https://github.com/benoit-pierre/plover_python_dictionary")
    (synopsis "Python dictionaries support for Plover")
    (description "Python dictionaries support for Plover")
    (license #f)))

python-plover-python-dictionary

Clean things up

The python-plover-python-dictionary definition has a lot of cruft in it. There are lots of references to macOS which, especially as a Guix user, aren't needed. There's also a definition for something related to Objective-C, again a Mac thing. Let's kill those and try building again.

(define-public python-pyobjc-framework-quartz
  (package
    (name "python-pyobjc-framework-quartz")
    (version "7.3")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-framework-Quartz" version))
        (sha256
          (base32 "02ygxh0dhb5xagyvcxc3i9147kbmm0ihkxmxh3wxwqj2qd22i0cq"))))
    (build-system python-build-system)
    (propagated-inputs
      `(("python-pyobjc-core" ,python-pyobjc-core)
        ("python-pyobjc-framework-cocoa" ,python-pyobjc-framework-cocoa)))
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Wrappers for the Quartz frameworks on macOS")
    (description "Wrappers for the Quartz frameworks on macOS")
    (license license:expat)))

(define-public python-pyobjc-framework-cocoa
  (package
    (name "python-pyobjc-framework-cocoa")
    (version "7.3")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-framework-Cocoa" version))
        (sha256
          (base32 "0zhbp18i06aprwfbp06l9wm3qrzsdcyy9hwis5d4b8wmlzkhb3di"))))
    (build-system python-build-system)
    (propagated-inputs `(("python-pyobjc-core" ,python-pyobjc-core)))
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Wrappers for the Cocoa frameworks on macOS")
    (description "Wrappers for the Cocoa frameworks on macOS")
    (license license:expat)))

(define-public python-pyobjc-core
  (package
    (name "python-pyobjc-core")
    (version "7.3")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyobjc-core" version))
        (sha256
          (base32 "0x3msrzvcszlmladdpl64s48l52fwk4xlnnri8daq2mliggsx0ah"))))
    (build-system python-build-system)
    (home-page "https://github.com/ronaldoussoren/pyobjc")
    (synopsis "Python<->ObjC Interoperability Module")
    (description "Python<->ObjC Interoperability Module")
    (license license:expat)))

(define-public python-appnope
  (package
    (name "python-appnope")
    (version "0.1.2")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "appnope" version))
        (sha256
          (base32 "12i50gv145cl9qkf87av5aprq7qbcq601cvfiy1mh2a6bd5wv0yx"))))
    (build-system python-build-system)
    (home-page "http://github.com/minrk/appnope")
    (synopsis "Disable App Nap on macOS >= 10.9")
    (description "Disable App Nap on macOS >= 10.9")
    (license license:bsd-3)))

Killing all the code related to non-free systems leaves only:

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
 (guix build-system python)
 ((guix licenses) #:prefix license:)
 (gnu packages stenography)
 (gnu packages check)
 (gnu packages python-xyz))

(define-public python-plover-python-dictionary
  (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "plover_python_dictionary" version))
        (sha256
          (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
    (build-system python-build-system)
    (inputs
     `(("python-xlib" ,python-xlib)
       ("python-pyserial" ,python-pyserial)
       ("python-appdirs" ,python-appdirs)))
    (propagated-inputs `(("python-plover" ,plover)))
    (native-inputs
      `(("python-plover" ,plover)
        ("python-pytest" ,python-pytest)))
    (home-page "https://github.com/benoit-pierre/plover_python_dictionary")
    (synopsis "Python dictionaries support for Plover")
    (description "Python dictionaries support for Plover")
    (license #f)))

python-plover-python-dictionary

Now try building again and seeing if the Mac packages are really needed.

guix build -f plover-python-dictionary.scm
/gnu/store/j8w6f98115vri1gapc7i4h4gqa20q3mv-python-plover-python-dictionary-1.1.0

Nope, not needed.

Install the final package

Now that there's a working definition, the package can be installed.

guix package -f plover-python-dictionary.scm && guix package -I | grep plover-python-dictionary
The following package will be installed:
   python-plover-python-dictionary 1.1.0

python-plover-python-dictionary	1.1.0			out	/gnu/store/j8w6f98115vri1gapc7i4h4gqa20q3mv-python-plover-python-dictionary-1.1.0

Get the plugin to be recognized by Plover

The build was successful, yet when Plover is restarted, Python dictionaries still can't be loaded. Why?

One person advised me to add native-search-paths to the Plover definition:

"after you have that package working, you'll want to add `(native-search-paths (package-native-search-paths python))' to plover's definition so plover sees plugins"

This appeared to fix the issue but turned out to not really be needed.

(use-modules
(define-public plover
  (package
    (name "plover")
    (version "4.0.0.dev8")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/openstenoproject/plover")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1b2ys77bkjsdmyg97i7lq3lj45q56bycvsm06d4rs656kxhvc0a3"))))
    (build-system python-build-system)
(native-search-paths (package-native-search-paths python))
(native-inputs `(("python-mock" ,python-mock) ("python-pytest" ,python-pytest) ("python-setuptools-scm" ,python-setuptools-scm))) (inputs `(("python-appdirs" ,python-appdirs) ("python-pyqt" ,python-pyqt) ("python-babel" ,python-babel) ("python-dbus" ,python-dbus) ("python-hidapi" ,python-hidapi) ("python-pyserial" ,python-pyserial) ("python-wxpython" ,python-wxpython) ("python-xlib" ,python-xlib))) (home-page "https://www.openstenoproject.org/plover/") (synopsis "Stenography engine") (description "Plover (rhymes with @emph{lover}) is a desktop application that allows anyone to use stenography to write on their computer, up to speeds of 200WPM and beyond.") (license license:gpl2+)))

Later, when making a new Plover definition, I noticed that Plover was able to see the plugin even though it didn't have the native-search-paths declared! When I asked about it, I was told:

"when you build a profile, you get a union of all installed packages in the profile, with the search paths set to $GUIX_PROFILE/thesearchpathspec, so as long as you installed the plugin, it's gonna be visible to python"

Honestly, I'm not sure what's meant by "build a profile". I suspect it means doing an upgrade.

Final package definition

The final package definition is:

(use-modules
 (guix packages)
 (guix download)
 (gnu packages python)
 (guix build-system python)
 ((guix licenses) #:prefix license:)
 (gnu packages stenography)
 (gnu packages check)
 (gnu packages python-xyz))

(define-public python-plover-python-dictionary
  (package
    (name "python-plover-python-dictionary")
    (version "1.1.0")
    (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "plover_python_dictionary" version))
        (sha256
          (base32 "02q93q70syrfkfdbyakq42j2rxgq0nxv56xi76flcnaarfcd6lb2"))))
    (build-system python-build-system)
    (inputs
     `(("python-xlib" ,python-xlib)
       ("python-pyserial" ,python-pyserial)
       ("python-appdirs" ,python-appdirs)))
    ;; (propagated-inputs `(("python-plover" ,plover)))
    (native-inputs
      `(("python-plover" ,plover) ("python-pytest" ,python-pytest)))
    (home-page "https://github.com/benoit-pierre/plover_python_dictionary")
    (synopsis "Python dictionaries support for Plover")
    (description "Python dictionaries support for Plover")
    (license #f)))

python-plover-python-dictionary

Lessons learned

What is a Guix package?

A Guix package is actually a "record". It's basically a struct, a form of data storage where information is held in "fields" (and probably stored contigously in memory). A package definition specifies fields such as "name", "source", "inputs", etc.

Don't be afraid to grep

Start off looking at the manual. Ideally, it should have answers to common questions. When something can't be found in the docs, use grep to search the Guix source code. This, of course, means a copy of the source is available (i.e. it was cloned). To find which module something like "pypi-url" is in, run:

git grep -F pypi-uri | grep define

or

git grep -F define\*\ \(pypi-uri

Modules imported correspond to files of the same name

Modules are created (in Guile) using the "define-module" form. Often module definitions are stored in files of the same name. For example, the license module, imported with (use-modules (gnu licenses)), is stored in license.scm.

From grepping, it was found that the pypi-uri function is in the python.scm file in the guix/build-system directory. Note that there may be, and in fact are, source files with the same name. It's the path which differentiates them and that's reflected in the module call:

(use-modules
 (guix packages)
 (guix download)
(gnu packages python)
(guix build-system python))

We can see from the import statement that there are two python modules, one in gnu/packages and another in guix/build-system. This gives a hint at how the Guix project is structured.

Modules with "-xyz"

Modules whose names end in "-xyz" are for miscellaneous packages whereas non-"xyz" modules contain code which is more central. For example, python.scm contains the package definition for various Python core releases whereas python-xyz.scm has packages whose purpose don't quite fit neatly into a single category.

Footnotes:

1

The guix shell command replaces the guix environment command. They perform much the same things, but guix shell is born from the lessons learned from guix environment. The guix environment command is deprecated and may no longer be included with future versions of Guix. See https://guix.gnu.org/en/blog/2021/from-guix-environment-to-guix-shell/

2

This is actually not the "correct" module (quotes because it does work to create a build). The actual module that contains "pypi-uri" is (guix build-system python). This can be discovered by grepping the guix source.

3

The disambiguation is needed because Guix is written in Guile Scheme. Scheme is what's called a "Lisp-1". This means that a symbol corresponds only to a value. The value may be a function, variable, or something else. So, the prefix is needed to keep straight what thing the symbol refers to. This is in contrast to a "Lisp-2" language, like Emacs lisp or Common Lisp, where a function and a variable can share the same symbol; which to use, the function or the variable, depends on the context. See the classic "Technical Issues of Separation in Function Cells and Value Cells" for details on the differences between lisp-1 and lisp-2.

Initial: 2021-09-11 Updates: 2021-10-04, 2021-11-06

Powered by peut-publier

©2024 Excalamus.com