[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#36477] [PATCH v3 48/48] wip: tools.
From: |
Mathieu Othacehe |
Subject: |
[bug#36477] [PATCH v3 48/48] wip: tools. |
Date: |
Mon, 2 Sep 2019 17:33:33 +0200 |
---
build-sorted-ok-ko-packages.sh | 354 ++++++++++++++++++++++++
deps.scm | 184 ++++++++++++
gnu/system/examples/mini-beaglebone.scm | 61 ++++
gnu/system/examples/mini.scm | 54 ++++
4 files changed, 653 insertions(+)
create mode 100755 build-sorted-ok-ko-packages.sh
create mode 100644 deps.scm
create mode 100644 gnu/system/examples/mini-beaglebone.scm
create mode 100644 gnu/system/examples/mini.scm
diff --git a/build-sorted-ok-ko-packages.sh b/build-sorted-ok-ko-packages.sh
new file mode 100755
index 0000000000..a2a13dcdfc
--- /dev/null
+++ b/build-sorted-ok-ko-packages.sh
@@ -0,0 +1,354 @@
+#!/bin/bash -
+
+set -o nounset # Treat unset variables as an error
+
+mngt_dir()
+{
+ local dirname=$1
+
+ rm -rf ${dirname}.bk
+ if [ -e $dirname ]; then
+ mv $dirname ${dirname}.bk
+ fi
+ mkdir ${dirname}
+}
+
+DEPENDENCIES_DIR="packages-dependencies"
+KO_OUT_LOG_DIR="ko-out-log-dir"
+OUT_FILE_NAME_BASE="packages-status"
+OUT_FILE_NAME_EXT="wiki"
+OUT_FILE_NAME=${OUT_FILE_NAME_BASE}.${OUT_FILE_NAME_EXT}
+
+rm -f ${OUT_FILE_NAME}.bk
+if [ -e $OUT_FILE_NAME ]; then
+ mv $OUT_FILE_NAME ${OUT_FILE_NAME}.bk
+fi
+
+mngt_dir ${DEPENDENCIES_DIR}
+mngt_dir ${KO_OUT_LOG_DIR}
+
+NB_OK=0
+NB_KO=0
+NB_UNKNOWN=0
+
+file_header()
+{
+ local title="Packages status"
+
+ echo ""
+ echo "start file $OUT_FILE_NAME"
+ echo ""
+
+ echo "" >> $OUT_FILE_NAME
+ echo "= $title =" >> $OUT_FILE_NAME
+ echo "" >> $OUT_FILE_NAME
+}
+
+section_header()
+{
+ local title=$1
+
+ echo ""
+ echo ""
+ echo "start section \"$title\""
+
+ echo "" >> $OUT_FILE_NAME
+ echo "== $title ==" >> $OUT_FILE_NAME
+ echo "" >> $OUT_FILE_NAME
+ echo "| package | status | nb dependencies |" >> $OUT_FILE_NAME
+
+ NB_OK=0
+ NB_KO=0
+ NB_UNKNOWN=0
+}
+
+section_footer()
+{
+ echo "" >> $OUT_FILE_NAME
+ echo "nb packages OK in section: $NB_OK" >> $OUT_FILE_NAME
+ echo "" >> $OUT_FILE_NAME
+ echo "nb packages *KO* in section: $NB_KO" >> $OUT_FILE_NAME
+ echo "" >> $OUT_FILE_NAME
+ echo "nb packages UNKNOWN in section: $NB_UNKNOWN" >> $OUT_FILE_NAME
+ echo "" >> $OUT_FILE_NAME
+ echo "" >> $OUT_FILE_NAME
+}
+
+add_package_status()
+{
+ local package=$1
+ local status=$2
+ local nb_deps=$3
+
+ if [ "$status" = "OK" ]; then
+ NB_OK=$(($NB_OK+1))
+ elif [ "$status" = "KO" ]; then
+ status="*KO*"
+ NB_KO=$(($NB_KO+1))
+ else
+ NB_UNKNOWN=$(($NB_UNKNOWN+1))
+ fi
+
+ echo "| $package | $status | $nb_deps |" >> $OUT_FILE_NAME
+}
+
+LIST_PACK_SUPPOSED_OK=""
+
+LIST_PACK_SUPPOSED_OK+=" xz"
+LIST_PACK_SUPPOSED_OK+=" tk"
+LIST_PACK_SUPPOSED_OK+=" m4"
+LIST_PACK_SUPPOSED_OK+=" ed"
+LIST_PACK_SUPPOSED_OK+=" bc"
+LIST_PACK_SUPPOSED_OK+=" tcl"
+LIST_PACK_SUPPOSED_OK+=" sed"
+LIST_PACK_SUPPOSED_OK+=" mpc"
+LIST_PACK_SUPPOSED_OK+=" lzo"
+LIST_PACK_SUPPOSED_OK+=" isl"
+LIST_PACK_SUPPOSED_OK+=" gss"
+LIST_PACK_SUPPOSED_OK+=" gmp"
+LIST_PACK_SUPPOSED_OK+=" bdb"
+LIST_PACK_SUPPOSED_OK+=" acl"
+LIST_PACK_SUPPOSED_OK+=" zlib"
+LIST_PACK_SUPPOSED_OK+=" sudo"
+LIST_PACK_SUPPOSED_OK+=" perl"
+LIST_PACK_SUPPOSED_OK+=" pcre"
+LIST_PACK_SUPPOSED_OK+=" mpfr"
+LIST_PACK_SUPPOSED_OK+=" make"
+LIST_PACK_SUPPOSED_OK+=" lzip"
+LIST_PACK_SUPPOSED_OK+=" gzip"
+LIST_PACK_SUPPOSED_OK+=" grep"
+LIST_PACK_SUPPOSED_OK+=" gdbm"
+LIST_PACK_SUPPOSED_OK+=" gawk"
+LIST_PACK_SUPPOSED_OK+=" fuse"
+LIST_PACK_SUPPOSED_OK+=" flex"
+LIST_PACK_SUPPOSED_OK+=" flac"
+LIST_PACK_SUPPOSED_OK+=" file"
+LIST_PACK_SUPPOSED_OK+=" fftw"
+LIST_PACK_SUPPOSED_OK+=" bash"
+LIST_PACK_SUPPOSED_OK+=" attr"
+LIST_PACK_SUPPOSED_OK+=" which"
+LIST_PACK_SUPPOSED_OK+=" unzip"
+LIST_PACK_SUPPOSED_OK+=" rhash"
+LIST_PACK_SUPPOSED_OK+=" libuv"
+LIST_PACK_SUPPOSED_OK+=" libgc"
+LIST_PACK_SUPPOSED_OK+=" libev"
+LIST_PACK_SUPPOSED_OK+=" guile"
+LIST_PACK_SUPPOSED_OK+=" groff"
+LIST_PACK_SUPPOSED_OK+=" gperf"
+LIST_PACK_SUPPOSED_OK+=" glibc"
+LIST_PACK_SUPPOSED_OK+=" expat"
+LIST_PACK_SUPPOSED_OK+=" bzip2"
+LIST_PACK_SUPPOSED_OK+=" bison"
+LIST_PACK_SUPPOSED_OK+=" xtrans"
+LIST_PACK_SUPPOSED_OK+=" tzdata"
+LIST_PACK_SUPPOSED_OK+=" sqlite"
+LIST_PACK_SUPPOSED_OK+=" shishi"
+LIST_PACK_SUPPOSED_OK+=" shadow"
+LIST_PACK_SUPPOSED_OK+=" python"
+LIST_PACK_SUPPOSED_OK+=" nettle"
+LIST_PACK_SUPPOSED_OK+=" libxft"
+LIST_PACK_SUPPOSED_OK+=" libxcb"
+LIST_PACK_SUPPOSED_OK+=" libxau"
+LIST_PACK_SUPPOSED_OK+=" libx11"
+LIST_PACK_SUPPOSED_OK+=" libpng"
+LIST_PACK_SUPPOSED_OK+=" libogg"
+LIST_PACK_SUPPOSED_OK+=" libidn"
+LIST_PACK_SUPPOSED_OK+=" libffi"
+LIST_PACK_SUPPOSED_OK+=" libelf"
+LIST_PACK_SUPPOSED_OK+=" libcap"
+LIST_PACK_SUPPOSED_OK+=" libbsd"
+LIST_PACK_SUPPOSED_OK+=" indent"
+LIST_PACK_SUPPOSED_OK+=" gnutls"
+LIST_PACK_SUPPOSED_OK+=" c-ares"
+LIST_PACK_SUPPOSED_OK+=" texinfo"
+LIST_PACK_SUPPOSED_OK+=" python2"
+LIST_PACK_SUPPOSED_OK+=" psutils"
+LIST_PACK_SUPPOSED_OK+=" ncurses"
+LIST_PACK_SUPPOSED_OK+=" libxslt"
+LIST_PACK_SUPPOSED_OK+=" libxml2"
+LIST_PACK_SUPPOSED_OK+=" libxext"
+LIST_PACK_SUPPOSED_OK+=" libtool"
+LIST_PACK_SUPPOSED_OK+=" libtiff"
+LIST_PACK_SUPPOSED_OK+=" libssh2"
+LIST_PACK_SUPPOSED_OK+=" libltdl"
+LIST_PACK_SUPPOSED_OK+=" libjpeg"
+LIST_PACK_SUPPOSED_OK+=" libidn2"
+LIST_PACK_SUPPOSED_OK+=" jansson"
+LIST_PACK_SUPPOSED_OK+=" shepherd"
+LIST_PACK_SUPPOSED_OK+=" net-base"
+LIST_PACK_SUPPOSED_OK+=" libxdmcp"
+LIST_PACK_SUPPOSED_OK+=" libtasn1"
+LIST_PACK_SUPPOSED_OK+=" libpaper"
+LIST_PACK_SUPPOSED_OK+=" jemalloc"
+LIST_PACK_SUPPOSED_OK+=" jbig2dec"
+LIST_PACK_SUPPOSED_OK+=" gs-fonts"
+LIST_PACK_SUPPOSED_OK+=" freetype"
+LIST_PACK_SUPPOSED_OK+=" elfutils"
+LIST_PACK_SUPPOSED_OK+=" binutils"
+LIST_PACK_SUPPOSED_OK+=" automake"
+LIST_PACK_SUPPOSED_OK+=" autoconf"
+LIST_PACK_SUPPOSED_OK+=" alsa-lib"
+LIST_PACK_SUPPOSED_OK+=" xorgproto"
+LIST_PACK_SUPPOSED_OK+=" xcb-proto"
+LIST_PACK_SUPPOSED_OK+=" linux-pam"
+LIST_PACK_SUPPOSED_OK+=" libvorbis"
+LIST_PACK_SUPPOSED_OK+=" libgcrypt"
+LIST_PACK_SUPPOSED_OK+=" inetutils"
+LIST_PACK_SUPPOSED_OK+=" findutils"
+LIST_PACK_SUPPOSED_OK+=" e2fsprogs"
+LIST_PACK_SUPPOSED_OK+=" diffutils"
+LIST_PACK_SUPPOSED_OK+=" coreutils"
+LIST_PACK_SUPPOSED_OK+=" util-linux"
+LIST_PACK_SUPPOSED_OK+=" libxrender"
+LIST_PACK_SUPPOSED_OK+=" libsndfile"
+LIST_PACK_SUPPOSED_OK+=" libsigsegv"
+LIST_PACK_SUPPOSED_OK+=" libfontenc"
+LIST_PACK_SUPPOSED_OK+=" guile-json"
+LIST_PACK_SUPPOSED_OK+=" fontconfig"
+LIST_PACK_SUPPOSED_OK+=" util-macros"
+LIST_PACK_SUPPOSED_OK+=" mkfontscale"
+LIST_PACK_SUPPOSED_OK+=" linux-libre"
+LIST_PACK_SUPPOSED_OK+=" ghostscript"
+LIST_PACK_SUPPOSED_OK+=" docbook-xsl"
+LIST_PACK_SUPPOSED_OK+=" docbook-xml"
+LIST_PACK_SUPPOSED_OK+=" bash-static"
+LIST_PACK_SUPPOSED_OK+=" libunistring"
+LIST_PACK_SUPPOSED_OK+=" libgpg-error"
+LIST_PACK_SUPPOSED_OK+=" bash-minimal"
+LIST_PACK_SUPPOSED_OK+=" libsamplerate"
+LIST_PACK_SUPPOSED_OK+=" libatomic-ops"
+LIST_PACK_SUPPOSED_OK+=" e2fsck-static"
+LIST_PACK_SUPPOSED_OK+=" wireless-regdb"
+LIST_PACK_SUPPOSED_OK+=" python-wrapper"
+LIST_PACK_SUPPOSED_OK+=" python-minimal"
+LIST_PACK_SUPPOSED_OK+=" guile-readline"
+LIST_PACK_SUPPOSED_OK+=" guile-gdbm-ffi"
+LIST_PACK_SUPPOSED_OK+=" gettext-minimal"
+LIST_PACK_SUPPOSED_OK+=" libpthread-stubs"
+LIST_PACK_SUPPOSED_OK+=" openfwwf-firmware"
+LIST_PACK_SUPPOSED_OK+=" glibc-utf8-locales"
+LIST_PACK_SUPPOSED_OK+=" ath9k-htc-firmware"
+LIST_PACK_SUPPOSED_OK+=" linux-libre-headers"
+LIST_PACK_SUPPOSED_OK+=" guile-static-stripped"
+LIST_PACK_SUPPOSED_OK+=" python-minimal-wrapper"
+LIST_PACK_SUPPOSED_OK+=" pkg-config"
+LIST_PACK_SUPPOSED_OK+=" libarchive"
+LIST_PACK_SUPPOSED_OK+=" cyrus-sasl"
+LIST_PACK_SUPPOSED_OK+=" tcsh"
+LIST_PACK_SUPPOSED_OK+=" xmlto"
+LIST_PACK_SUPPOSED_OK+=" icu4c" # ?
+LIST_PACK_SUPPOSED_OK+=" mit-krb5" # ok ?
+LIST_PACK_SUPPOSED_OK+=" help2man"
+LIST_PACK_SUPPOSED_OK+=" mkfontdir"
+LIST_PACK_SUPPOSED_OK+=" lvm2"
+LIST_PACK_SUPPOSED_OK+=" eudev"
+LIST_PACK_SUPPOSED_OK+=" procps"
+LIST_PACK_SUPPOSED_OK+=" alsa-utils"
+LIST_PACK_SUPPOSED_OK+=" boost"
+LIST_PACK_SUPPOSED_OK+=" swig"
+LIST_PACK_SUPPOSED_OK+=" doxygen"
+LIST_PACK_SUPPOSED_OK+=" curl"
+LIST_PACK_SUPPOSED_OK+=" nghttp2"
+LIST_PACK_SUPPOSED_OK+=" openldap"
+LIST_PACK_SUPPOSED_OK+=" git-minimal"
+
+
+LIST_PACK_SUPPOSED_KO=""
+
+LIST_PACK_SUPPOSED_KO+=" libnl"
+LIST_PACK_SUPPOSED_KO+=" crda" # depends on libnl
+LIST_PACK_SUPPOSED_KO+=" cmake"
+LIST_PACK_SUPPOSED_KO+=" guile-wm"
+LIST_PACK_SUPPOSED_KO+=" guile-xcb"
+
+count_dependencies()
+{
+ local pack="$1"
+ local depsfile="$DEPENDENCIES_DIR/${pack}.dot"
+ guix graph -t bag-emerged $pack > $depsfile
+ count=$(cat $depsfile | grep "\->" | wc -l)
+ echo $count
+}
+
+build_pack()
+{
+ local pack="$1"
+ local out_file=$(mktemp /tmp/test-guix.XXXXX)
+ local result=0
+
+ ./pre-inst-env guix build --target=aarch64-linux-gnu $pack > $out_file 2>&1
+ result=$?
+
+ if [ $result -eq 0 ]; then
+ rm -f $out_file
+ else
+ mv $out_file ${KO_OUT_LOG_DIR}/${pack}.log
+ fi
+
+ return $result
+}
+
+build_all_in_list()
+{
+ local list_pack="$@"
+ local status=unknown
+
+ for pack in $list_pack; do
+ echo ""
+ echo ""
+ echo "--------------- package $pack ---------------"
+ echo ""
+ build_pack $pack
+ if [ $? -eq 0 ]; then
+ status="OK"
+ else
+ status="KO"
+ fi
+
+ nb_deps="$(count_dependencies $pack)"
+ echo " package $pack is $status (and has $nb_deps dependencies)"
+ echo ""
+ echo ""
+
+ add_package_status $pack $status $nb_deps
+ done
+}
+
+if [ $# -ge 1 ]; then
+ EXEC_SUPPOSED_OK=0
+ EXEC_SUPPOSED_KO=0
+ while [ $# -ge 1 ]; do
+ case "$1" in
+ "--ok")
+ EXEC_SUPPOSED_OK=1
+ ;;
+ "--ko")
+ EXEC_SUPPOSED_KO=1
+ ;;
+ *)
+ echo "Unknown argument $1"
+ exit 1
+ ;;
+ esac
+ shift
+ done
+else
+ EXEC_SUPPOSED_OK=1
+ EXEC_SUPPOSED_KO=1
+fi
+
+file_header
+
+if [ $EXEC_SUPPOSED_OK -eq 1 ]; then
+ section_header "Supposed OK Packages"
+ build_all_in_list $LIST_PACK_SUPPOSED_OK
+ section_footer
+fi
+
+if [ $EXEC_SUPPOSED_KO -eq 1 ]; then
+ section_header "Supposed KO Packages"
+ build_all_in_list $LIST_PACK_SUPPOSED_KO
+ section_footer
+fi
+
+
diff --git a/deps.scm b/deps.scm
new file mode 100644
index 0000000000..75e8f106fe
--- /dev/null
+++ b/deps.scm
@@ -0,0 +1,184 @@
+(use-modules (guix)
+ (guix scripts build)
+ (gnu)
+ (ice-9 receive))
+
+(define deps
+ '("sudo"
+ "guile-xcb"
+ "guile-wm"
+ "tzdata"
+ "guile-gdbm-ffi"
+ "gzip"
+ "expat"
+ "attr"
+ "gettext-minimal"
+ "m4"
+ "perl"
+ "gmp"
+ "acl"
+ "libcap"
+ "libsigsegv"
+ "pkg-config"
+ "zlib"
+ "libffi"
+ "glibc"
+ "bash-static"
+ "bison"
+ "texinfo"
+ "lzip"
+ "ed"
+ "libatomic-ops"
+ "libltdl"
+ "libunistring"
+ "libgc"
+ "linux-libre-headers"
+ "bzip2"
+ "bash-minimal"
+ "diffutils"
+ "binutils"
+ "findutils"
+ "guile"
+ "sed"
+ "make"
+ "gawk"
+ "xz"
+ "grep"
+ "file"
+ "coreutils"
+ "glibc-utf8-locales"
+ "libpng"
+ "freetype"
+ "libfontenc"
+ "mkfontdir"
+ "mkfontscale"
+ "guile-readline"
+ "lzo"
+ "rhash"
+ "libuv"
+ "libarchive"
+ "cmake"
+ "ath9k-htc-firmware"
+ "openfwwf-firmware"
+ "inetutils"
+ "tcsh"
+ "pcre"
+ "boost"
+ "swig"
+ "libnl"
+ "wireless-regdb"
+ "flac"
+ "libsndfile"
+ "libvorbis"
+ "libogg"
+ "xmlto"
+ "fftw"
+ "alsa-lib"
+ "alsa-utils"
+ "libsamplerate"
+ "lvm2"
+ "fuse"
+ "crda"
+ "which"
+ "help2man"
+ "indent"
+ "flex"
+ "gdbm"
+ "mit-krb5"
+ "openldap"
+ "cyrus-sasl"
+ "curl"
+ "icu4c"
+ "bdb"
+ "libev"
+ "jemalloc"
+ "jansson"
+ "c-ares"
+ "linux-pam"
+ "shishi"
+ "xtrans"
+ "libbsd"
+ "python-minimal-wrapper"
+ "xcb-proto"
+ "python-minimal"
+ "gs-fonts"
+ "fontconfig"
+ "libxrender"
+ "libxft"
+ "tk"
+ "xorgproto"
+ "libpthread-stubs"
+ "util-macros"
+ "libxau"
+ "libxext"
+ "libxcb"
+ "sqlite"
+ "libxdmcp"
+ "libx11"
+ "libpaper"
+ "jbig2dec"
+ "tcl"
+ "libjpeg"
+ "libtiff"
+ "psutils"
+ "ghostscript"
+ "groff"
+ "libgpg-error"
+ "libtasn1"
+ "libssh2"
+ "python2"
+ "gss"
+ "libgcrypt"
+ "nettle"
+ "libidn"
+ "nghttp2"
+ "libidn2"
+ "git-minimal"
+ "gnutls"
+ "guile-json"
+ "unzip"
+ "autoconf"
+ "automake"
+ "docbook-xml"
+ "libtool"
+ "python"
+ "python-wrapper"
+ "libxslt"
+ "libxml2"
+ "docbook-xsl"
+ "gperf"
+ "eudev"
+ "shadow"
+ "bash"
+ "shepherd"
+ "isl"
+ "net-base"
+ "procps"
+ "util-linux"
+ "e2fsprogs"
+ "e2fsck-static"
+ "guile-static-stripped"
+ "libelf"
+ "ncurses"
+ "mpc"
+ "bc"
+ "elfutils"
+ "mpfr"
+ "linux-libre"))
+
+(define store (open-connection))
+
+(define arguments
+ (map (lambda (spec)
+ `(argument . ,spec))
+ deps))
+
+(run-with-store store
+ (mlet %store-monad
+ ((derivations ->
+ ((@@ (guix scripts build) options->derivations)
+ store
+ `((target . "aarch64-linux-gnu")
+ ,@arguments))))
+ (mbegin %store-monad
+ (built-derivations derivations))))
diff --git a/gnu/system/examples/mini-beaglebone.scm
b/gnu/system/examples/mini-beaglebone.scm
new file mode 100644
index 0000000000..6ce0ab1b1c
--- /dev/null
+++ b/gnu/system/examples/mini-beaglebone.scm
@@ -0,0 +1,61 @@
+;; This is an operating system configuration template
+;; for a "bare bones" setup, with no X11 display server.
+
+(use-modules (gnu) (gnu bootloader u-boot))
+(use-service-modules networking ssh)
+(use-package-modules bootloaders linux screen)
+
+(operating-system
+ (host-name "komputilo")
+ (timezone "Europe/Berlin")
+ (locale "en_US.utf8")
+
+ ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
+ ;; target hard disk, and "my-root" is the label of the target
+ ;; root file system.
+ (bootloader (bootloader-configuration
+ (bootloader u-boot-beaglebone-black-bootloader)
+ (target "/dev/vda")))
+
+ (kernel linux-libre-arm-omap2plus)
+
+ ;; This module is required to mount the SD card.
+ (initrd-modules (cons "omap_hsmmc" %base-initrd-modules))
+
+ (file-systems (cons (file-system
+ (device (file-system-label "my-root"))
+ (mount-point "/")
+ (type "ext4"))
+ %base-file-systems))
+
+ ;; This is where user accounts are specified. The "root"
+ ;; account is implicit, and is initially created with the
+ ;; empty password.
+ (users (cons (user-account
+ (name "alice")
+ (comment "Bob's sister")
+ (group "users")
+
+ ;; Adding the account to the "wheel" group
+ ;; makes it a sudoer. Adding it to "audio"
+ ;; and "video" allows the user to play sound
+ ;; and access the webcam.
+ (supplementary-groups '("wheel"
+ "audio" "video")))
+ %base-user-accounts))
+
+ ;; Globally-installed packages.
+ (packages '())
+
+ ;; Add services to the baseline: a DHCP client and
+ ;; an SSH server.
+ (services (list
+ (service udev-service-type
+ (udev-configuration
+ (rules (list lvm2 fuse alsa-utils crda))))
+ (agetty-service
+ (agetty-configuration
+ (extra-options '("-L"))
+ (baud-rate "115200")
+ (term "vt100")
+ (tty "ttyO0"))))))
diff --git a/gnu/system/examples/mini.scm b/gnu/system/examples/mini.scm
new file mode 100644
index 0000000000..f7c7b63308
--- /dev/null
+++ b/gnu/system/examples/mini.scm
@@ -0,0 +1,54 @@
+;; This is an operating system configuration template
+;; for a "bare bones" setup, with no X11 display server.
+
+(use-modules (gnu))
+(use-service-modules networking ssh)
+(use-package-modules linux screen)
+
+(define dummy-bootloader
+ (bootloader
+ (inherit grub-bootloader)
+ (installer #f)))
+
+(operating-system
+ (host-name "komputilo")
+ (timezone "Europe/Berlin")
+ (locale "en_US.utf8")
+
+ ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
+ ;; target hard disk, and "my-root" is the label of the target
+ ;; root file system.
+ (bootloader (bootloader-configuration
+ (bootloader dummy-bootloader)
+ (target "/dev/sdX")))
+ (file-systems (cons (file-system
+ (device (file-system-label "my-root"))
+ (mount-point "/")
+ (type "ext4"))
+ %base-file-systems))
+
+ ;; This is where user accounts are specified. The "root"
+ ;; account is implicit, and is initially created with the
+ ;; empty password.
+ (users (cons (user-account
+ (name "alice")
+ (comment "Bob's sister")
+ (group "users")
+
+ ;; Adding the account to the "wheel" group
+ ;; makes it a sudoer. Adding it to "audio"
+ ;; and "video" allows the user to play sound
+ ;; and access the webcam.
+ (supplementary-groups '("wheel"
+ "audio" "video")))
+ %base-user-accounts))
+
+ ;; Globally-installed packages.
+ (packages '())
+
+ ;; Add services to the baseline: a DHCP client and
+ ;; an SSH server.
+ (services (list
+ (service udev-service-type
+ (udev-configuration
+ (rules (list lvm2 fuse alsa-utils crda)))))))
--
2.20.1
- [bug#36477] [PATCH v3 40/48] gnu: linux-libre: Enable built-in ext4 support., (continued)
- [bug#36477] [PATCH v3 27/48] gnu: guile-gcrypt: Fix cross-compilation., Mathieu Othacehe, 2019/09/02
- [bug#36477] [PATCH v3 39/48] linux-initrd: Use native gzip., Mathieu Othacehe, 2019/09/02
- [bug#36477] [PATCH v3 41/48] gexp: Use cross extensions when cross-compiling., Mathieu Othacehe, 2019/09/02
- [bug#36477] [PATCH v3 45/48] system: vm: Add arm64 support., Mathieu Othacehe, 2019/09/02
- [bug#36477] [PATCH v3 48/48] wip: tools.,
Mathieu Othacehe <=
- [bug#36477] [PATCH v3 47/48] scripts: system: Add --target option., Mathieu Othacehe, 2019/09/02