dannym@dayas ~/src/guix$ ./pre-inst-env guile -c '(use-modules (guix build syscalls)) (write (network-interfaces))'
(#<interface "lo" up family:17 195c200> #<interface "enp0s25" up family:17 195c1c0> #<interface "wlp2s0" up family:17 195c180> #<interface "vpn0" Backtrace:
In ice-9/boot-9.scm:
157: 9 [catch #t #<catch-closure 181a660> ...]
In unknown file:
?: 8 [apply-smob/1 #<catch-closure 181a660>]
In ice-9/boot-9.scm:
63: 7 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
432: 6 [eval # #]
In unknown file:
?: 5 [call-with-input-string "(use-modules (guix build syscalls)) (write (network-interfaces))" ...]
In ice-9/command-line.scm:
180: 4 [#<procedure 182b200 at ice-9/command-line.scm:175:6 (port)> #<input: string 15c8680>]
In unknown file:
?: 3 [eval (write (network-interfaces)) #<directory (guile-user) 180ec60>]
?: 2 Exception thrown while printing backtrace:
ERROR: In procedure vector-ref: Wrong type argument in position 1 (expecting vector): #f
ice-9/networking.scm:82:27: In procedure sockaddr:fam:
ice-9/networking.scm:82:27: In procedure vector-ref: Wrong type argument in position 1 (expecting vector): #f
dannym@dayas ~/src/guix$ ./pre-inst-env guile -c '(use-modules (guix build syscalls)) (write (network-interfaces))'
dannym@dayas /etc$ cat config.scm
;; This is an operating system configuration template for a "desktop" setup with X11.
(use-modules (ice-9 match)
(gnu)
(gnu services)
(gnu services shepherd)
(gnu services networking)
(gnu services printing)
;(gnu services syslog)
(gnu services xorg)
(gnu services web)
(guix records)
(gnu system nss))
(use-service-modules desktop databases)
(use-package-modules xfce ratpoison certs wm enlightenment databases bdw-gc java lua gprolog vpn scheme freedesktop suckless djvu mail cdrom ocr lsof ntp gnome libreoffice admin emacs gcc gnupg guile haskell hugs linux pulseaudio video version-control qemu texlive ssh gnuzilla curl messaging screen ldc guile-wm stalonetray xorg fonts webkit autotools gdb web syslog cups)
(define-record-type* <vpn-tunnel>
vpn-tunnel make-vpn-tunnel
vpn-tunnel?
(interface-name vpn-tunnel-interface-name)
(user-name vpn-tunnel-user-name))
;(define nginx-config
; (nginx-configuration (nginx nginx)
; ;(log-directory "/var/log/nginx")
; ;(run-directory "/var/run/nginx")
; (file "/etc/nginx.conf")))
;(define cups-service-type
; (shepherd-service-type
; 'cups-service (match-lambda (($ <
; ))
;(define (cups-service a-listening-port b-listening-port c-bind-address
(define vpn-tunnel-service-type
(shepherd-service-type
'vpn-tunnel (match-lambda (($ <vpn-tunnel> interface user)
(let ((ip #~(string-append #$iproute "/sbin/ip")))
(shepherd-service
(documentation "Create tunnel interface.")
(provision '(vpn-tunnel))
(requirement '(networking))
(start
#~(lambda _
;; Return #t if successfully started.
(zero? (system* #$ip "tuntap" "add" #$interface "mode" "tun" "user" #$user))))
(respawn? #f)))))))
(define (vpn-tunnel-service interface-name user-name)
"Return a service that ..."
(service vpn-tunnel-service-type
(vpn-tunnel (interface-name interface-name)
(user-name user-name))))
(operating-system
; TODO GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=/dev/sda2:main"
(kernel-arguments '("crashkernel=256M" "modprobe.blacklist=pcspkr,snd_pcsp" "intel_iommu=off" "intremap=off" "quiet" "acpi_sleep=s3_bios" "acpi_osi=Linux" "clocksource=acpi_pm"))
(host-name "dayas")
(timezone "Europe/Vienna")
(locale "en_US.UTF-8")
(bootloader (grub-configuration (device "/dev/sda")))
;(mapped-devices (list (mapped-device
; (source "/dev/sda5")
; (target "dayas-sys")
; (type luks-device-mapping))))
(file-systems (cons* (file-system
(device "/dev/sda1")
(title 'dayas:/)
(mount-point "/")
(type "ext4")
(needed-for-boot? #t))
;(file-system
; (device "/dev/mapper/dayas-sys")
; (title 'dayas:/x)
; (mount-point "/x")
; (type "btrfs")
; (needed-for-boot? #f))
%base-file-systems))
(users (cons (user-account
(name "dannym")
(uid 27481)
(comment "Danny")
(group "users")
(supplementary-groups '("wheel" "netdev" "audio" "video" "lp")) ; FIXME remove "lp" again.
(home-directory (string-append "/home/" name)))
%base-user-accounts))
; TODO lxde
(packages (cons* ratpoison enlightenment stalonetray fluxbox ; TODO xfce ;desktop environments
nss-certs ;for HTTPS access
postgresql bdb gdbm unixodbc ; DBMSes
nginx
wayland elogind udisks python-pyxdg python2-pyxdg
dwm dmenu slock st ; suckless
djvulibre
libgc
ant ; java
luajit
gprolog
openvpn
esmtp
cdparanoia abcde
tesseract-ocr ocrad
lsof
ntp
brasero eog totem evince upower goffice gnumeric devhelp ;libreoffice
cups cups-filters hplip
gcc-5 gdb
gnupg
dmidecode sudo tcpdump testdisk smartmontools fdupes wpa-supplicant
;;guile-emacs guile-for-guile-emacs
; TODO ghc hugs
procps usbutils e2fsprogs e2fsck/static extundelete strace ltrace alsa-lib alsa-utils net-tools iw powertop iotop fuse unionfs-fuse sshfs-fuse inotify-tools wireless-tools i2c-tools hdparm rfkill acpid sysfsutils cpufrequtils
ffmpeg vlc mplayer mpv youtube-dl libdvdcss xvid
webkitgtk
git git-manpages mercurial subversion cvs diffstat
; TODO texlive
; TODO sane-backends
pavucontrol
openssh curl
qemu
gnome-terminal
icecat claws-mail pidgin pidgin-otr
screen
ldc
guile-wm
icedtea ; 7
font-adobe100dpi font-adobe75dpi font-bitstream-vera font-dejavu font-gnu-freefont-ttf font-gnu-unifont font-liberation font-ubuntu
xkbcomp
automake autoconf
binutils
rsyslog
%base-packages))
; (dhcp-client-service)
; (lsh-service #:port-number 2222 #:password-authentication? #f)
(services (cons* (postgresql-service) ; #:config-file "/etc/postgresql.conf")
(vpn-tunnel-service "vpn0" "dannym")
;(rsyslog-service)
;(nginx-service-type nginx-config)
(cups-service #:printers '())
(modify-services %desktop-services
(slim-service-type config =>
(slim-configuration (inherit config)
(auto-login? #t)
(auto-login-session #~(string-append #$fluxbox "/bin/startfluxbox"))
(default-user "dannym")))
)))
; TODO nginx service
;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss)
(hosts-file (plain-file "hosts"
(string-append (local-host-aliases host-name)
"192.168.1.103 daya20\n"
%facebook-host-aliases)))
)