;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Mathieu Othacehe ;;; Copyright © 2023 Simon Tournier ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages barrier) #:use-module (guix build-system cmake) #:use-module (guix utils) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (gnu packages avahi) #:use-module (gnu packages check) #:use-module (gnu packages cpp) #:use-module (gnu packages curl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (gnu packages tls) #:use-module (gnu packages xorg)) (define-public barrier (package (name "barrier") (version "2.4.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/debauchee/barrier") (commit (string-append "v" version)) (recursive? #t))) (file-name (git-file-name name version)) (sha256 (base32 "19bwa9qidq2mxv1fkyxxc1xdmv3jx6bj35bkaaw70jzkblnfmlfs")))) (build-system cmake-build-system) (arguments (list #:configure-flags #~(list "-DBARRIER_USE_EXTERNAL_GTEST=ON") #:tests? #f ;; tests require a running x server #:phases #~(modify-phases %standard-phases (add-after 'unpack 'fix-null (lambda _ (substitute* "src/lib/base/Event.h" (("#include \"common/stdmap\\.h\"") "#include \"common/stdmap.h\"\n#include "))))))) (native-inputs (list googletest pkg-config)) (inputs (list avahi curl gulrak-filesystem libx11 libxtst openssl qtbase-5)) (synopsis "Keyboard Video Mouse switch software") (description "@code{Barrier} is software that mimics the functionality of a KVM switch, which historically would allow you to use a single keyboard and mouse to control multiple computers by physically turning a dial on the box to switch the machine you're controlling at any given moment. Barrier does this in software, allowing you to tell it which machine to control by moving your mouse to the edge of the screen, or by using a keypress to switch focus to a different system.") (home-page "https://github.com/debauchee/barrier") (license license:gpl2))) cthing: incorrect guessing of HOME variableSergio Pastor Pérez Fixed the issue described here: https://lists.gnu.org/archive/html/help-guix/2024-01/msg00034.html Fix `syncthing-shepherd-service` failing to guess the correct `HOME` environment variable when it's `<syncthing-configuration>` does not have a value for the `home` or `user` fields. * gnu/services/syncthing.scm (syncthing-shepherd-service): Change ‘HOME’ value in #:environment-variables argument. Change-Id: I102bfe5feba1ebb349a0cde1c987c0c10ebbab7a Signed-off-by: Ludovic Courtès <ludo@gnu.org> 2023-09-17services: syncthing: Ensure that service runs after mounting home directories.Adam Maleszka Sometimes `syncthing-service-type' fails during startup because it tries to read configuration files from the user's home directory: Failure on home directory: mkdir /home/xyz/.config: permission denied This patch adds `user-processes' to the shepherd service requirements to ensure that `user-homes' is fired before `syncthing' tries to read data from the home directory. * gnu/services/syncthing.scm (syncthing-shepherd-service): add `user-processes' to requirements Signed-off-by: Ludovic Courtès <ludo@gnu.org> 2023-08-20home: services: Add Syncthing.Ludovic Courtès * gnu/home/services/syncthing.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/services/syncthing.scm (<syncthing-configuration>)[home-service?]: New field. Adjust 'provision' and 'requirement' depending on 'home-service?', and likewise for #:user and #:group. Use 'filter' + 'negate' instead of 'remove'. * doc/guix.texi (Networking Services): Add note and cross-reference to "Networking Home Services". (Networking Home Services): New node. 2023-08-20services: syncthing: Use 'match-record'.Ludovic Courtès * gnu/services/syncthing.scm (syncthing-shepherd-service): Use 'match-record-lambda' instead of 'match-lambda'. 2023-08-11services: syncthing: Use the new command line syntax.terramorpha * gnu/services/syncthing.scm (syncthing-shepherd-service): Use the new command line syntax. Signed-off-by: Ludovic Courtès <ludo@gnu.org>