(name . guix-patches)(address . guix-patches@gnu.org)
Hello,
I do not know my way around git so I am offering this code to someone if they want to add it to guix proper. There were only slight changes needed.
Both packages built and ran for me.
(define-public mtxclient
(package
(name "mtxclient")
(version "0.4.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1044zil3izhb3whhfjah7w0kg5mr3hys32cjffky681d3mb3wi5n"))))
(arguments
`(#:configure-flags
(list
;; Disable example binaries (not installed)
"-DBUILD_LIB_EXAMPLES=OFF")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'disable-network-tests
(lambda _
(substitute* "CMakeLists.txt"
(("add_test\\((BasicConnectivity|ClientAPI|MediaAPI|Encryption|Pushrules)")
"# add_test"))
#t))
(add-before 'configure 'set-home
(lambda _
;; Tries to create package registry file
;; So, set HOME.
(setenv "HOME" "/tmp")
#t)))))
(build-system cmake-build-system)
(inputs
`(("boost" ,boost)
("json-modern-cxx" ,json-modern-cxx)
("libolm" ,libolm)
("libsodium" ,libsodium)
("openssl" ,openssl)
("spdlog" ,spdlog)
("zlib" ,zlib)))
(native-inputs
`(("googletest" ,googletest)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/Nheko-Reborn/mtxclient")
(synopsis "Client API library for the Matrix protocol")
(description "@code{mtxclient} is a C++ library that implements client API for the Matrix protocol. It is built on to of @code{Boost.Asio}.")
(license license:expat)))
(define-public nheko
(package
(name "nheko")
(version "0.8.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1v7k3ifzi05fdr06hmws1wkfl1bmhrnam3dbwahp086vkj0r8524"))))
(arguments
`(#:tests? #f ;no test target
#:configure-flags
(list
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_CXX_FLAGS=-fpermissive")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-Werror
(lambda _
(substitute* "CMakeLists.txt"
(("-Werror") ""))
#t))
(add-after 'unpack 'fix-determinism
(lambda _
;; Make Qt deterministic.
(setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
#t)))))
(build-system qt-build-system)
(inputs
`(("boost" ,boost)
("cmark" ,cmark)
("json-modern-cxx" ,json-modern-cxx)
("libolm" ,libolm)
("lmdb" ,lmdb)
("lmdbxx" ,lmdbxx)
("mtxclient-new" ,mtxclient-new)
("openssl" ,openssl)
("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)
("qtgraphicaleffects" ,qtgraphicaleffects)
("qtkeychain" ,qtkeychain)
("qtmultimedia" ,qtmultimedia)
("qtquickcontrols2" ,qtquickcontrols2)
("qtsvg" ,qtsvg)
("spdlog" ,spdlog)
("tweeny" ,tweeny)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)
("qtlinguist" ,qttools)))
(home-page "https://github.com/Nheko-Reborn/nheko")
(synopsis "Desktop client for Matrix using Qt and C++14")
(description "@code{Nheko} want to provide a native desktop app for the
Matrix protocol that feels more like a mainstream chat app and less like an IRC
client.
There is support for:
@itemize
@item E2E encryption (text messages only: attachments are currently sent unencrypted).
@item User registration.
@item Creating, joining & leaving rooms.
@item Sending & receiving invites.
@item Sending & receiving files and emoji.
@item Typing notifications.
@item Username auto-completion.
@item Message & mention notifications.
@item Redacting messages.
@item Read receipts.
@item Basic communities support.
@item Room switcher (@key{ctrl-K}).
@item Light, Dark & System themes.
@end itemize")
(license license:gpl3+)))