Commit graph

300 commits

Author SHA1 Message Date
Brice Waegeneire ef3f38ea00
services: openssh: Replace 'without-password' by 'prohibit-password'.
For some time, OpenSSH's option 'PermitRootLogin' has deprecated the
ambiguous argument 'without-password' with 'prohibit-password'.

* doc/guix.texi (Network Services): Replace 'without-password by
'prohibit-password.
* gnu/machine/digital-ocean.scm (guix-infect): Change system
configuration to use 'prohibit-password.
* gnu/services/ssh.scm (openssh-configuration): Change comment to use
'prohibit-password.
(openssh-config-file): Add support for 'prohibit-password to
'permit-root-login'.  Warn about deprecated 'without-password usage.
* gnu/tests/ganeti.scm (%ganeti-os): Replace 'without-password by
'prohibit-password.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-06-20 16:44:08 +02:00
Mathieu Othacehe 0b76b25a0e
tests: hpcguix-web: Fix it.
* gnu/tests/web.scm (run-hpcguix-web-server-test): Increase the VM memory size
and add retries for the http-get test.
2021-06-01 14:33:27 +02:00
Brice Waegeneire 8a0dc5f1bf
tests: Fix loadable-kernel-modules-service tests.
* gnu/tests/linux-modules.scm
(run-loadable-kernel-modules-service-test): Actually load the modules
with kernel-module-loader-service-type.  Use a singleton service instead
of defining a custom one.
* doc/guix.texi (Service Reference): To give an example of
linux-loadable-module-service-type use a singleton instead of defining a
new service.
2021-05-31 21:57:26 +02:00
raid5atemyhomework a3df382525
gnu: Allow services to install kernel-loadable modules.
* gnu/system.scm (operating-system-directory-base-entries): Remove code
to handle generation of "kernel" for linux-libre kernels.
(operating-system-default-essential-services): Instantiate
linux-builder-service-type.
(package-for-kernel): Move ...
* gnu/services.scm: ... to here.
(linux-builder-service-type): New variable.
(linux-builder-configuration): New type.
(linux-loadable-module-service-type): New variable.
* gnu/tests/linux-modules.scm (run-loadable-kernel-modules-test): Move
code to ...
(run-loadable-kernel-modules-test-base): ... new procedure here.
(run-loadable-kernel-modules-service-test): New procedure.
(%test-loadable-kernel-modules-service-0): New variable.
(%test-loadable-kernel-modules-service-1): New variable.
(%test-loadable-kernel-modules-service-2): New variable.
* doc/guix.texi: Document linux-loadable-module-service-type.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2021-05-11 16:13:48 +02:00
Mathieu Othacehe 95b3fc12bc
tests: Add gui-uefi-installed-os test.
* gnu/installer/tests.scm (conclude-installation): Rename it into ...
(start-installation): ... this new procedure.
(complete-installation): New procedure.
(choose-partitioning): Add an uefi-support? argument.
* gnu/tests/install.scm (uefi-firmware): New procedure.
(run-install, qemu-command/writable-image, gui-test-program,
installation-target-os-for-gui-tests): Add an uefi-support? argument.
(%extra-packages): Add grub-efi, fatfsck/static and dosfstools.
(%test-gui-installed-os): New variable.
2021-04-28 15:51:12 +02:00
Mathieu Othacehe 868d8068a0
tests: ldap: Fix it.
Fixes: <https://issues.guix.gnu.org/47745>.

* gnu/tests/ldap.scm (run-ldap-test): Use a password with more that 8
characters so that dscreate doesn't fail.
2021-04-18 10:31:59 +02:00
Mathieu Othacehe 89af95313d
tests: Increase VM memory size.
The patchwork test sometimes fail because there's not enough available RAM in
the marionette. Increase the VM memory size to 1024MiB.

* gnu/tests/web.scm (run-patchwork-test): Increase VM memory size to 1024MiB.
2021-04-18 09:52:18 +02:00
Mathieu Othacehe 3b5c4e6fb2
tests: patchwork: Fix it.
The "http-get" test is sometimes failing because the Web server is not yet
initialized and returns the 500 error code.

Use the retry-or-error procedure, like in the tailon test to do a few retries.

* gnu/tests/web.scm (run-tailon-test): Move "retry-or-error" procedure to the
top level and adapt its call.
(run-patchwork-test): Use it.
2021-04-18 09:52:18 +02:00
Mathieu Othacehe c51ffa784e
tests: postgresql: Fix it.
This is a follow-up of c311147bd1.

* gnu/tests/databases.scm (run-postgresql-test): Use "/tmp" as database host.
2021-04-13 19:31:28 +02:00
Mathieu Othacehe 822eacc6bb
tests: halt: Fix it.
This fixes: <https://issues.guix.gnu.org/47727>.  The OCR prompt detection is
failing, so remove it altogether.  It looks like the test doesn't need the
prompt detection delay to work properly.

* gnu/tests/base.scm (run-halt-test): Remove failing OCR detection.
2021-04-13 10:02:46 +02:00
Christopher Baines c311147bd1
services: postgresql: Change service default socket directory.
Fixes <https://bugs.gnu.org/46737>.

PostgreSQL running with a different socket directory to the default one in the
package itself breaks some services, this commit restores the previous
behaviour where PostgreSQL by default will run with a socket directory that
matches the default used by PostgreSQL packaged for Guix.

Switching to a different default value can happen, but only alongside changing
the PostgreSQL package.

* gnu/services/databases.scm (<postgresql-config-file>)[socket-directory]:
Change default to #false.
* doc/guix.texi (Database Services): Update documentation, and specify a
different value for disabling connections via sockets.
* gnu/tests/guix.scm (%guix-data-service-os): Use default PostgreSQL
behaviour.
* gnu/tests/monitoring.scm (%zabbix-os): Likewise.
* gnu/tests/web.scm (patchwork-os): Likewise.

Signed-off-by: Leo Famulari <leo@famulari.name>
2021-04-12 19:12:46 -04:00
Maxime Devos 68c9e0a56e
gnu: tests: Test basic funtionality of the IPFS service.
It is tested whether the IPFS service listens
at the gateway and API ports and whether it
is possible to upload and download a bytevector.

* gnu/tests/networking.scm
  (%ipfs-os): New variable.
  (run-ipfs-test): New procedure.
  (%test-ipfs): New system test.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-04-12 18:42:23 +02:00
Mathieu Othacehe e1a4652099
tests: docker: Increase VM building memory size to 1024MiB.
This fixes the following error when running the "docker-system" test:

In ice-9/ftw.scm:
   553:30  1 (_ #<directory stream db6660>)
In unknown file:
           0 (readdir #<directory stream db6660>)

ERROR: In procedure readdir:
In procedure readdir: Cannot allocate memory

* gnu/tests/docker.scm (%test-docker-system): Bump image building VM memory
size to 1024 MiB.
2021-04-12 14:12:49 +02:00
Tobias Geerinckx-Rice 173a631da0
tests: nfs: Fix typo in description.
* gnu/tests/nfs.scm (%test-nfs-root-fs)[description]: Fix typo.
2021-04-10 14:11:26 +02:00
Christopher Baines eda4bb4f16
services: Add Laminar.
* gnu/services/ci.scm: New file.
* gnu/tests/ci.scm: New file.
* doc/guix.texi (Laminar): Document the Laminar service.
2021-04-09 11:59:58 +01:00
Pierre Langlois 81f65a3a2c
tests: libvirt: Catch issues with incorrect /var and /etc in package.
* gnu/tests/virtualization.scm (run-libvirt-test): Chdir to "/tmp" before
running test.  Add "connect" test.
2021-04-05 18:26:36 +01:00
Simon South 5d8c2c00d6
tests: Add Transmission Daemon system test.
* gnu/tests/file-sharing.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-03-28 22:31:00 +02:00
Mathieu Othacehe eee69da3a5
tests: Remove Cuirass tests.
Those tests don't make sense anymore as the Cuirass 1.0 version has removed
the possibility to execute a custom registration procedure.

* gnu/tests/cuirass.scm: Remove it.
* gnu/local.mk (GNU_SYSTEM_MODULES): Ditto.
2021-03-23 16:47:47 +01:00
Léo Le Bouter 097cf21d1d
gnu: Remove MongoDB.
mongodb 3.4.10 has unpatched CVEs and mongodb 3.4.24 has some files in the
release tarball under the SSPL, therefore we cannot provide mongodb while
upholding to good security standards.

It turns out feff80cec3 was right since while
the main license file wasnt altered to SSPL, some files in the tree contain
SSPL headers.

* gnu/packages/databases.scm (go-gopkg.in-mgo.v2): Remove.
* gnu/packages/databases.scm (mongo-tools): Remove.
* doc/guix.texi (mongodb-service-type): Remove.
* gnu/tests/databases.scm (%test-mongodb, %mongodb-os, run-mongodb-test):
Remove.
* gnu/services/databases.scm (mongodb-configuration, mongodb-configuration?,
mongodb-configuration-mongodb, mongodb-configuration-config-file,
mongodb-configuration-data-directory, mongodb-service-type,
%default-mongodb-configuration-file, %mongodb-accounts, mongodb-activation,
mongodb-shepherd-service): Remove.
* gnu/packages/databases.scm (mongodb): Remove.
2021-03-16 11:05:24 +01:00
Mathieu Othacehe 207ef1a2b4
tests: cuirass: Remove cuirass simple test.
This is a follow-up of 6c883d0f1d.

* gnu/tests/cuirass.scm (simple-cuirass-service, %cuirass-simple-test): Remove
them.
2021-03-10 09:37:48 +01:00
Ludovic Courtès 2b0026813b
tests: docker-system: Increase VM memory.
* gnu/tests/docker.scm (run-docker-system-test)[vm]: Increase
'memory-size'.
2021-02-25 11:29:35 +01:00
Mathieu Othacehe 0de0074844
tests: cuirass: Restore "cuirass running".
This is a follow-up of ab054868af. The test was
failing because the Shepherd control socket wasn't ready yet. Restore it but
make sure that the control socket is available first.

* gnu/tests/cuirass.scm ("shepherd socket ready"): New test.
("cuirass running"): Restore it.
2021-02-23 11:54:53 +01:00
Mathieu Othacehe ab054868af
tests: cuirass: Remove "cuirass running" test.
* gnu/tests/cuirass.scm ("cuirass running"): Remove it as it fails if all the
dependencies are not started yet.
2021-02-23 11:24:47 +01:00
Mathieu Othacehe bebcf97600
services: cuirass: Improve simple-cuirass-services.
Instead of returning multiple services in simple-cuirass-services, rely on the
instantiate-missing-services procedure to instantiate postgresql and
postgresql-role-service-type when missing.

Turn simple-cuirass-services procedure into
simple-cuirass-configuration->specs, that takes a simple-cuirass-configuration
record and returns a Cuirass specification.

Suggested-by: Ludovic Courtès <ludo@gnu.org>

* gnu/services/cuirass.scm (%default-cuirass-config): Remove it.
(simple-cuirass-services): Rename it to ...
(simple-cuirass-configuration->specs): ... this procedure.
* gnu/tests/cuirass.scm (cuirass-services): Remove postgresql and
postgresql-role services that are automatically instantiated.
(simple-cuirass-service): New variable.
(%cuirass-simple-test): Adapt it to use simple-cuirass-configuration->specs
instead of simple-cuirass-services.
* doc/guix.texi (Simple Cuirass): Update it.
2021-02-23 09:45:09 +01:00
Mathieu Othacehe e9bf511082
services: cuirass: Add "simple-cuirass-services".
* gnu/services/cuirass.scm (<build-manifest>,
<simple-cuirass-configuration>): New records.
(build-manifest, build-manifest?, simple-cuirass-configuration,
simple-cuirass-configuration?, simple-cuirass-services): New procedures.
(%default-cuirass-config): New variable.
* gnu/tests/cuirass.scm (%cuirass-simple-test): New variable.
* doc/guix.texi (Continuous Integration): Document it.
2021-02-19 20:10:09 +01:00
Mathieu Othacehe 25ad6e1d8e
tests: cuirass: Add an operating system argument.
Rewrite so that "run-cuirass-test" takes an operating-system argument. This is
functionally equivalent.

* gnu/tests/cuirass.scm (%derivation-file, git-service, cow-service,
%cuirass-specs): New variables.
(cuirass-services): New procedure.
(run-cuirass-test): Add an "operating-system" argument.
(%cuirass-test): Adapt it.
(%cuirass-remote-test): Ditto.
2021-02-19 20:10:08 +01:00
Leo Famulari 75b775e81b
Merge branch 'staging' 2021-02-01 14:18:38 -05:00
Mathieu Othacehe d7db38341a
tests: cuirass: Increase delay.
* gnu/tests/cuirass.scm (run-cuirass-test): Increase "cuirass-web build
queued" test delay.
2021-01-29 11:48:47 +01:00
Mathieu Othacehe df656c1518
tests: cuirass: Add Cuirass remote test.
* gnu/tests/cuirass.scm (run-cuirass-test): Add "name" and "remote-build?"
arguments.
(%cuirass-test): Adapt it.
(%cuirass-remote-test): New variable.
2021-01-29 11:36:06 +01:00
Mathieu Othacehe f58d071366
tests: Add cuirass test. 2021-01-28 12:57:27 +01:00
Mathieu Othacehe ec145a2ff9
services: postgresql: Add postgresql-role-service-type.
* gnu/services/databases.scm (postgresql-role,
postgresql-role?, postgresql-role-name,
postgresql-role-permissions, postgresql-role-create-database?,
postgresql-role-configuration, postgresql-role-configuration?,
postgresql-role-configuration-host, postgresql-role-configuration-roles,
postgresql-role-service-type): New procedures.
* gnu/tests/databases.scm: Test it.
* doc/guix.texi: Document it.
2021-01-28 12:57:27 +01:00
Mathieu Othacehe fe4b882350
services: postgresql: Add log directory support.
* gnu/services/databases.scm (postgresql-configuration-log-directory): New
procedure.
(<postgresql-configuration>)[log-directory]: New field.
(postgresql-activation): Create the log directory.
(postgresql-shepherd-service): Honor it.
* gnu/tests/databases.scm (%postgresql-log-directory): New variable.
(log-file): New test case.
* doc/guix.texi (Database Services): Document it.
2021-01-28 12:57:26 +01:00
Mathieu Othacehe 6c0679215f
services: postgresql: Add socket directory support.
* gnu/services/databases.scm (postgresql-config-file-socket-directory): New
procedure.
(<postgresql-config-file>)[socket-directory]: New field.
(postgresql-config-file-compiler): Honor it.
(postgresql-activation): Create the socket directory if needed.
* doc/guix.texi (Database Services): Document it.
* gnu/tests/guix.scm (%guix-data-service-os): Adapt it.
* gnu/tests/monitoring.scm (%zabbix-os): Ditto.
* gnu/tests/web.scm (patchwork-os): Ditto.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 12:57:26 +01:00
Mathieu Othacehe a38d0b0137
services: postgresql: Use Guile datatypes.
* gnu/services/databases.scm (postgresql-config-file-compiler): Support Guile
datatypes in the "extra-config" field.
* gnu/tests/databases.scm (%postgresql-os): Test it.
* doc/guix.texi (Database Services): Document it.
2021-01-28 12:57:26 +01:00
Maxim Cournoyer 886302fcf7
system: tests: Add a Btrfs RAID system test.
* gnu/tests/install.scm (%btrfs-raid-root-os)
(%btrfs-raid-root-os-source, %btrfs-raid-root-installation-script)
(%test-btrfs-raid-root-os): New variables.
2021-01-27 11:38:44 -05:00
Leo Famulari 68dd78e2e4
Merge branch 'master' into staging 2021-01-25 15:40:55 -05:00
Mathieu Othacehe c64adff4c6
tests: install: Fix build.
This is a follow-up of: 2f497d94e7.

* gnu/tests/install.scm (run-install): Rename 'raw to 'efi-raw.
2021-01-20 12:50:47 +01:00
Leo Famulari 48d8d92c51
tests: monitoring: Use the latest postgresql for testing Zabbix.
This avoids a package collision while building the operating-system profile.

* gnu/tests/monitoring.scm (%zabbix-os): Use POSTGRESQL instead of
POSTGRESQL-10.
2021-01-04 18:07:53 -05:00
Miguel Ángel Arruga Vivas f00e68ace0
system: Allow separated /boot and encrypted root.
* gnu/bootloader/grub.scm (grub-configuration-file): New parameter
store-crypto-devices.
[crypto-devices]: New helper function.
[builder]: Use crypto-devices.
* gnu/machine/ssh.scm (roll-back-managed-host): Use
boot-parameters-store-crypto-devices to provide its contents to the
bootloader configuration generation process.
* gnu/tests/install.scm (%encrypted-root-not-boot-os,
%encrypted-root-not-boot-os): New os declaration.
(%encrypted-root-not-boot-installation-script): New script, whose contents
were initially taken from %encrypted-root-installation-script.
(%test-encrypted-root-not-boot-os): New test.
* gnu/system.scm (define-module): Export
operating-system-bootoader-crypto-devices and
boot-parameters-store-crypto-devices.
(<boot-parameters>): Add field store-crypto-devices.
(read-boot-parameters): Parse store-crypto-devices field.
[uuid-sexp->uuid]: New helper function extracted from
device-sexp->device.
(operating-system-bootloader-crypto-devices): New function.
(operating-system-bootcfg): Use
operating-system-bootloader-crypto-devices to provide its contents to
the bootloader configuration generation process.
(operating-system-boot-parameters): Add store-crypto-devices to the
generated boot-parameters.
(operating-system-boot-parameters-file): Likewise to the file with
the serialized structure.
* guix/scripts/system.scm (reinstall-bootloader): Use
boot-parameters-store-crypto-devices to provide its contents to the
bootloader configuration generation process.
* tests/boot-parameters.scm (%default-store-crypto-devices): New
variable.
(%grub-boot-parameters, test-read-boot-parameters): Use
%default-store-crypto-devices.
(tests store-crypto-devices): New tests.
2020-12-21 18:41:11 +01:00
Marius Bakke 97c4fd21bd
services: MySQL: Add more tests.
* gnu/tests/databases.scm (run-mysql-test): Try creating a database and
inserting data.
2020-11-28 19:51:40 +01:00
Marius Bakke e20388ad7f
services: MySQL: Upgrade database schemas automatically.
* gnu/services/databases.scm (<mysql-configuration>): Add AUTO-UPGRADE? field.
(mysql-upgrade-wrapper, mysql-upgrade-shepherd-service,
mysql-shepherd-services): New variables.
(mysql-service-type): Use MYSQL-SHEPHERD-SERVICES instead of
MYSQL-SHEPHERD-SERVICE.
* doc/guix.texi (Database Services): Document the AUTO-UPGRADE? field of
MYSQL-SERVICE-TYPE.
* gnu/tests/databases.scm (run-mysql-test): Test that mysql_upgrade has run.
2020-11-28 19:51:40 +01:00
Marius Bakke 89b704a456
services: MySQL: Deprecate 'mysql-service'.
* gnu/services/databases.scm (mysql-service): Define in terms of DEFINE-DEPRECATED.
* gnu/tests/databases.scm (%mysql-os): Adjust accordingly.
* doc/guix.texi (Database Services): Adjust the MariaDB/MySQL section to
document MYSQL-SERVICE-TYPE instead of MYSQL-SERVICE.  While at it, document
the EXTRA-CONTENT field.
2020-11-28 19:51:40 +01:00
Mikhail Tsykalov a9a2fdaabc
mapped-devices: Add 'lvm-device-mapping'.
* gnu/system/mapped-devices.scm (lvm-device-mapping, open-lvm-device,
close-lvm-device): New variables.

* gnu/tests/install.scm (%lvm-separate-home-os,
%lvm-separate-home-os-source, %lvm-separate-home-installation-script,
%test-lvm-separate-home-os): New variables.

* gnu/system/linux-initrd.scm (raw-initrd): Add (srfi srfi-1) to initrd expression.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-11-26 00:05:39 +01:00
Ludovic Courtès 7286c9b187
tests: nfs-root-fs: Use the right store file name.
* gnu/tests/nfs.scm (run-nfs-root-fs-test): Pass "nfs-root-fs-test" as
the first argument to 'gexp->derivation'.
2020-11-07 12:48:24 +01:00
Ludovic Courtès de6b649f80
tests: git-http: Avoid race condition.
* gnu/tests/version-control.scm (run-git-http-test)[test]("fcgiwrap
listens"): New test.
2020-11-07 12:07:41 +01:00
Ludovic Courtès 9909eddbc5
tests: mpd: Remove race condition; use default MPD configuration.
* gnu/tests/audio.scm (%mpd-os): Use the default 'mpd-configuration'.
(run-mpd-test)[test]("mpd listening"): New test.
("mpc connect"): Use 'system*' and 'test-equal'.
2020-11-06 23:14:14 +01:00
Ludovic Courtès 3c69e81d85
tests: docker-system: Increase VM memory.
The test was failing with ENOSPC.

* gnu/tests/docker.scm (run-docker-system-test)[vm]: Increase 'memory-size'.
(%test-docker-system): Change 'locale-libcs' for the OS passed to
'system-docker-image'.
2020-11-06 16:16:02 +01:00
Ludovic Courtès a4e7749e91
services: Remove imports of (ice-9 …) modules.
* gnu/services/monitoring.scm (zabbix-server-activation): Remove (ice-9
rdelim) from the imported modules.
(zabbix-agent-activation): Likewise.
* gnu/tests/mail.scm (run-exim-test)[test]: Remove (ice-9 ftw) from the
imported modules.
2020-11-05 16:13:50 +01:00
Mathieu Othacehe a38d861e57
system: reconfigure: Use the disk-installer if provided.
Fixes: <https://issues.guix.gnu.org/44101>.

* gnu/build/bootloader.scm (write-file-on-device): Pass 'no-fail flag instead
of 'no-create. Use a latin-1 transcoder.
* guix/scripts/system/reconfigure.scm (install-bootloader-program): Add a
"disk-installer" argument and use it as a fallback.
(install-bootloader): Adapt accordingly.
* gnu/tests/reconfigure.scm (run-install-bootloader-test): Ditto.
2020-11-03 07:59:59 +01:00
Ludovic Courtès 1c6d985331
installer: Use UUIDs in the 'swap-devices' field.
Note: This change requires an updated 'guix' package that contains
Linux-swap support in (gnu build file-systems).

* gnu/installer/parted.scm (user-partitions->configuration): Use UUIDs
in the 'swap-devices' field.
* gnu/installer/newt/final.scm (run-final-page)[wait-for-clients]: New
procedure.   Use it.
* gnu/installer/tests.scm (choose-partitioning): Wait for
'starting-final-step' message and move configuration file dialog
handling to...
(conclude-installation): ... here.  Send over PORT the reply
corresponding to 'starting-final-step'.
* gnu/tests/install.scm (gui-test-program): When ENCRYPTED? is false,
invoke 'swaplabel' in the marionette.
(installation-target-os-for-gui-tests): When ENCRYPTED? is false, except
a fixed UUID.
2020-10-30 01:14:21 +01:00