gnu: libjami: Move jamid daemon to a "bin" output.

* gnu/packages/jami.scm (libjami) [outputs]: Add a "bin" output.
[arguments]: Add a move-jamid phase.
* gnu/services/telephony.scm
(jami-configuration->command-line-arguments): Refer to the "bin" output of
libjami.
(jami-shepherd-services): Likewise.
This commit is contained in:
Maxim Cournoyer 2023-02-07 20:45:59 -05:00
parent c0106ea5c9
commit aef75942fc
No known key found for this signature in database
GPG key ID: 1260E46482E63562
2 changed files with 23 additions and 6 deletions

View file

@ -402,7 +402,7 @@ (define-public libjami
(name "libjami")
(version %jami-version)
(source %jami-sources)
(outputs '("out" "debug"))
(outputs '("out" "bin" "debug")) ;"bin' contains jamid
(build-system gnu-build-system)
(arguments
(list
@ -425,7 +425,20 @@ (define-public libjami
(lambda _
(for-each delete-file
(find-files (string-append #$output "/lib")
"\\.a$")))))))
"\\.a$"))))
(add-after 'install 'move-jamid
;; This nearly halves the size of the main output (from 1566.2 MiB
;; to 833.6 MiB), due to not depending on dbus-c++ and its large
;; dependencies.
(lambda* (#:key outputs #:allow-other-keys)
(let ((libexec (string-append #$output:bin "/libexec"))
(share (string-append #$output:bin "/share")))
(mkdir-p libexec)
(rename-file (search-input-file outputs "libexec/jamid")
(string-append libexec "/jamid"))
(mkdir-p share)
(rename-file (search-input-directory outputs "share/dbus-1")
(string-append share "/dbus-1"))))))))
(inputs
(list alsa-lib
asio
@ -461,7 +474,9 @@ (define-public libjami
Jami core functionality. Jami is a secure and distributed voice, video and
chat communication platform that requires no centralized server and leaves the
power of privacy in the hands of the user. It supports the SIP and IAX
protocols, as well as decentralized calling using P2P-DHT.")
protocols, as well as decentralized calling using P2P-DHT. The @samp{\"bin\"}
output contains the D-Bus daemon (@command{jamid}) as well as the Jami D-Bus
service definitions.")
(home-page "https://jami.net/")
(license license:gpl3+)))

View file

@ -267,7 +267,7 @@ (define (jami-configuration->command-line-arguments config)
CONFIG, a <jami-configuration> object."
(match-record config <jami-configuration>
(libjami dbus enable-logging? debug? auto-answer?)
`(,(file-append libjami "/libexec/jamid")
`(,#~(string-append #$libjami:bin "/libexec/jamid")
"--persistent" ;stay alive after client quits
,@(if enable-logging?
'() ;logs go to syslog by default
@ -524,7 +524,8 @@ (define disable-account-action
#:environment-variables
;; This is so that the cx.ring.Ring service D-Bus
;; definition is found by dbus-daemon.
(list (string-append "XDG_DATA_DIRS=" #$libjami "/share"))))
(list (string-append "XDG_DATA_DIRS="
#$libjami:bin "/share"))))
(stop #~(make-kill-destructor)))
(shepherd-service
@ -595,7 +596,8 @@ (define (delete-file-recursively/safe file)
;; Start the daemon.
(define daemon-pid
((make-forkexec-constructor/container
'#$(jami-configuration->command-line-arguments config)
(list #$@(jami-configuration->command-line-arguments
config))
#:mappings
(list (file-system-mapping
(source "/dev/log") ;for syslog