Subject: [bug#54539] [PATCH v2 24/30] gnu: web: Autoload unless used by Guix.

From: Maxime Devos <[email-masked]>
Date: Sat, 3 Sep 2022 18:43:26 +0200

See first commit in the series for the procedure.
This helps with, but is not sufficient for, avoiding Java, Go and Qt.
---
 gnu/packages/web.scm | 219 +++++++++++++++++++++++++------------------
 1 file changed, 128 insertions(+), 91 deletions(-)

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index b687e4e3e7..4d269169a8 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -98,97 +98,134 @@ (define-module (gnu packages web)
   #:use-module (guix build-system scons)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
-  #:use-module (gnu packages admin)
-  #:use-module (gnu packages adns)
-  #:use-module (gnu packages apr)
-  #:use-module (gnu packages autotools)
-  #:use-module (gnu packages base)
-  #:use-module (gnu packages bash)
-  #:use-module (gnu packages bison)
-  #:use-module (gnu packages bittorrent)
-  #:use-module (gnu packages boost)
-  #:use-module (gnu packages build-tools)
-  #:use-module (gnu packages check)
-  #:use-module (gnu packages compression)
-  #:use-module (gnu packages cpp)
-  #:use-module (gnu packages crates-gtk)
-  #:use-module (gnu packages crates-io)
-  #:use-module (gnu packages curl)
-  #:use-module (gnu packages cyrus-sasl)
-  #:use-module (gnu packages databases)
-  #:use-module (gnu packages django)
-  #:use-module (gnu packages docbook)
-  #:use-module (gnu packages documentation)
-  #:use-module (gnu packages emacs)
-  #:use-module (gnu packages emacs-xyz)
-  #:use-module (gnu packages flex)
-  #:use-module (gnu packages fontutils)
-  #:use-module (gnu packages freedesktop)
-  #:use-module (gnu packages gcc)
-  #:use-module (gnu packages gd)
-  #:use-module (gnu packages gettext)
-  #:use-module (gnu packages glib)
-  #:use-module (gnu packages gnome)
-  #:use-module (gnu packages gnu-doc)
-  #:use-module (gnu packages gnunet)
-  #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages golang)
-  #:use-module (gnu packages gperf)
-  #:use-module (gnu packages graphviz)
-  #:use-module (gnu packages gtk)
-  #:use-module (gnu packages guile)
-  #:use-module (gnu packages guile-xyz)
-  #:use-module (gnu packages hurd)
-  #:use-module (gnu packages icu4c)
-  #:use-module (gnu packages image)
-  #:use-module (gnu packages java)
-  #:use-module (gnu packages jemalloc)
-  #:use-module (gnu packages imagemagick)
-  #:use-module (gnu packages kde)
-  #:use-module (gnu packages kerberos)
-  #:use-module (gnu packages libevent)
-  #:use-module (gnu packages libidn)
-  #:use-module (gnu packages libunistring)
-  #:use-module (gnu packages libunwind)
-  #:use-module (gnu packages linux)
-  #:use-module (gnu packages lisp-xyz)
-  #:use-module (gnu packages lsof)
-  #:use-module (gnu packages lua)
-  #:use-module (gnu packages mail)
-  #:use-module (gnu packages man)
-  #:use-module (gnu packages markup)
-  #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages networking)
-  #:use-module (gnu packages node)
-  #:use-module (gnu packages nss)
-  #:use-module (gnu packages openldap)
-  #:use-module (gnu packages openstack)
-  #:use-module (gnu packages package-management)
-  #:use-module (gnu packages pcre)
-  #:use-module (gnu packages perl)
-  #:use-module (gnu packages perl-check)
-  #:use-module (gnu packages python)
-  #:use-module (gnu packages python-build)
-  #:use-module (gnu packages python-check)
-  #:use-module (gnu packages python-crypto)
-  #:use-module (gnu packages python-web)
-  #:use-module (gnu packages python-xyz)
-  #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages qt)
-  #:use-module (gnu packages re2c)
-  #:use-module (gnu packages readline)
-  #:use-module (gnu packages search)
-  #:use-module (gnu packages serialization)
-  #:use-module (gnu packages sphinx)
-  #:use-module (gnu packages texinfo)
-  #:use-module (gnu packages textutils)
-  #:use-module (gnu packages tls)
-  #:use-module (gnu packages valgrind)
-  #:use-module (gnu packages version-control)
-  #:use-module (gnu packages video)
-  #:use-module (gnu packages vim)
-  #:use-module (gnu packages wget)
-  #:use-module (gnu packages xml)
+  #:autoload (gnu packages admin) (netcat)
+  #:use-module (gnu packages adns) ; required by "guix build -d guix"
+  #:use-module (gnu packages apr) ; required by "guix build -d guix"
+  #:autoload (gnu packages autotools) (autoconf automake libtool)
+  #:use-module (gnu packages base) ; required by "guix build -d guix"
+  #:autoload (gnu packages bash) (bash-minimal)
+  #:autoload (gnu packages bison) (bison)
+  #:autoload (gnu packages bittorrent) (aria2)
+  #:autoload (gnu packages boost) (boost)
+  #:use-module (gnu packages build-tools) ; required by "guix build -d guix"
+  #:use-module (gnu packages check) ; required by "guix build -d guix"
+  #:use-module (gnu packages compression) ; required by "guix build -d guix"
+  #:autoload (gnu packages cpp) (cpp-mustache)
+  #:autoload (gnu packages crates-gtk) (rust-gdk-0.13 rust-gtk-0.8)
+  #:autoload (gnu packages crates-io)
+  (rust-ansi-parser-0.6
+   rust-assert-cmd-1 rust-atty-0.2 rust-base64-0.13
+   rust-chrono-0.4 rust-clap-2 rust-cssparser-0.28 rust-dirs-2
+   rust-encoding-rs-0.8 rust-html5ever-0.24 rust-linkify-0.4 rust-native-tls-0.2
+   rust-open-1 rust-percent-encoding-2 rust-regex-1 rust-reqwest-0.11
+   rust-sha2-0.9 rust-url-2)
+  #:autoload (gnu packages curl) (curl)
+  #:autoload (gnu packages cyrus-sasl) (cyrus-sasl)
+  #:autoload (gnu packages databases)
+  (ephemeralpg perl-dbd-sqlite perl-dbix-class perl-dbix-class-cursor-cached
+               perl-dbix-class-schema-loader perl-db-file postgresql-13
+               sqitch)
+  #:autoload (gnu packages django)
+  (python-django-3.1.14 python-django-extensions)
+  #:autoload (gnu packages documentation) (doxygen)
+  #:autoload (gnu packages emacs) (emacs-minimal)
+  #:autoload (gnu packages emacs-xyz) (emacs-htmlize)
+  #:autoload (gnu packages flex) (flex)
+  #:autoload (gnu packages fontutils) (freetype)
+  #:autoload (gnu packages freedesktop) (perl-file-mimeinfo python-pyxdg)
+  #:autoload (gnu packages gd) (perl-gd-securityimage)
+  #:autoload (gnu packages gettext) (po4a gettext-minimal)
+  #:autoload (gnu packages glib) (glib gobject-introspection)
+  #:autoload (gnu packages gnome)
+  (glib-networking gsettings-desktop-schemas libsoup-minimal-2)
+  #:autoload (gnu packages gnu-doc) (miscfiles)
+  #:autoload (gnu packages gnunet) (libmicrohttpd)
+  #:autoload (gnu packages gnupg) (libgcrypt)
+  #:autoload (gnu packages golang)
+  (go-github-com-kylelemons-godebug
+   go-github-com-robfig-cron go-golang-org-x-sys go-golang-org-x-time)
+  #:autoload (gnu packages gperf) (gperf-3.0)
+  #:autoload (gnu packages graphviz) (graphviz)
+  #:autoload (gnu packages gtk) (atk cairo gdk-pixbuf gtk+ pango)
+  #:autoload (gnu packages guile) (guile-json-4 guile-zlib)
+  #:autoload (gnu packages guile-xyz)
+  (guile-commonmark guile-email guile-fibers-1.1 guile-prometheus guile-squee)
+  #:use-module (gnu packages hurd) ; required by "guix build -d guix"
+  #:autoload (gnu packages icu4c) (icu4c)
+  #:autoload (gnu packages image) (libjpeg-turbo libpng)
+  #:autoload (gnu packages java)
+  (icedtea
+   icedtea-8 java-asm java-cglib java-commons-codec java-commons-daemon
+   java-ecj java-gson java-hamcrest-all java-hamcrest-core java-hdrhistogram
+   java-javaee-servletapi java-junit java-mockito-1 java-objenesis
+   java-slf4j-api)
+  #:use-module (gnu packages jemalloc) ; required by "guix build -d guix"
+  #:autoload (gnu packages imagemagick) (perl-image-magick)
+  #:autoload (gnu packages kde) (qca)
+  #:autoload (gnu packages kerberos) (mit-krb5)
+  #:use-module (gnu packages libevent) ; required by "guix build -d guix"
+  #:autoload (gnu packages libidn) (libidn libidn2)
+  #:autoload (gnu packages libunistring) (libunistring)
+  #:autoload (gnu packages libunwind) (libunwind)
+  #:autoload (gnu packages linux)
+  (iproute linux-pam procps util-linux)
+  #:autoload (gnu packages lisp-xyz) (uglify-js)
+  #:autoload (gnu packages lsof) (lsof)
+  #:autoload (gnu packages lua) (luajit lua-5.1)
+  #:autoload (gnu packages mail) (mailcap)
+  #:autoload (gnu packages man) (scdoc)
+  #:autoload (gnu packages markup) (perl-text-markdown-discount)
+  #:autoload (gnu packages ncurses) (ncurses)
+  #:autoload (gnu packages networking) (perl-net-dns)
+  #:autoload (gnu packages node) (node)
+  #:autoload (gnu packages nss) (nss)
+  #:autoload (gnu packages openldap) (openldap)
+  #:autoload (gnu packages openstack) (python-mox3)
+  #:autoload (gnu packages package-management) (guix)
+  #:autoload (gnu packages pcre) (pcre pcre2)
+  #:use-module (gnu packages perl) ; required by "guix build -d guix"
+  #:autoload (gnu packages perl-check)
+  (perl-test-cpan-meta
+   perl-test-deep perl-test-differences perl-test-eol perl-test-exception
+   perl-test-fatal perl-test-longstring perl-test-memory-cycle
+   perl-test-mocktime perl-test-needs perl-test-notabs perl-test-nowarnings
+   perl-test-output perl-test-pod perl-test-pod-coverage perl-test-requires
+   perl-test-requiresinternet perl-test-sharedfork perl-test-simple
+   perl-test-utf8 perl-test-warn perl-test-warnings)
+  #:use-module (gnu packages python) ; required by "guix build -d guix"
+  #:autoload (gnu packages python-build) (python-wheel)
+  #:autoload (gnu packages python-check) (python-mypy-extensions)
+  #:autoload (gnu packages python-crypto)
+  (python-certifi python-cryptography)
+  #:autoload (gnu packages python-web)
+  (python-flask python-html5lib python-requests python-responses python-tornado
+                python-urllib3 python-w3lib)
+  #:autoload (gnu packages python-xyz)
+  (python-backports-csv
+   python-beautifulsoup4 python-clint python-croniter python-crontab
+   python-dateparser python-decorator python-dnspython python-docopt
+   python-docutils python-eventlet python-ipython python-itsdangerous
+   python-jsonpatch-0.4 python-markupsafe python-miniboa python-numpy
+   python-pyaml python-pygments python-schema-0.5 python-sgmllib3k python-six
+   python-sure)
+  #:use-module (gnu packages pkg-config) ; required by "guix build -d guix"
+  #:autoload (gnu packages qt)
+  (qtbase-5 qtdeclarative-5 qtwebchannel-5 qtwebengine-5) 
+  #:autoload (gnu packages re2c) (re2c)
+  #:autoload (gnu packages readline) (readline)
+  #:autoload (gnu packages search) (xapian)
+  #:autoload (gnu packages serialization) (libyaml)
+  #:autoload (gnu packages sphinx) (python-sphinx)
+  #:autoload (gnu packages texinfo) (texinfo)
+  #:autoload (gnu packages textutils) (oniguruma utf8proc)
+  #:use-module (gnu packages tls) ; required by "guix build -d guix"
+  #:autoload (gnu packages valgrind) (valgrind)
+  #:autoload (gnu packages version-control)
+  (bazaar cvs git mercurial subversion)
+  #:autoload (gnu packages video) (youtube-dl)
+  #:autoload (gnu packages vim) (xxd)
+  #:autoload (gnu packages wget) (wget)
+  #:use-module (gnu packages xml) ; required by "guix build -d guix"
   #:use-module ((srfi srfi-1) #:select (delete-duplicates)))
 
 (define-public qhttp
-- 
2.37.2