Package: guix-patches;
Reported by: Raghav Gururajan <rg <at> raghavgururajan.name>
Date: Thu, 13 May 2021 04:33:02 UTC
Severity: normal
Tags: patch
Done: Raghav Gururajan <rg <at> raghavgururajan.name>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com> To: Raghav Gururajan <rg <at> raghavgururajan.name> Cc: 48394 <at> debbugs.gnu.org Subject: [bug#48394] [PATCH] gnu: Add cawbird. Date: Thu, 13 May 2021 23:40:15 -0400
Hello Raghav, Raghav Gururajan <rg <at> raghavgururajan.name> writes: > * gnu/packages/syndication.scm (cawbird): New variable. > --- > gnu/packages/syndication.scm | 92 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 92 insertions(+) > > diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm > index 3d0b9c39c8..a6bd0c2ce5 100644 > --- a/gnu/packages/syndication.scm > +++ b/gnu/packages/syndication.scm > @@ -59,8 +59,100 @@ > #:use-module (gnu packages web) > #:use-module (gnu packages webkit) > #:use-module (gnu packages xml) > + #:use-module (gnu packages xorg) > #:use-module (srfi srfi-1)) > > +(define-public cawbird > + (package > + (name "cawbird") > + (version "1.4.1") > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/IBBoard/cawbird") > + (commit (string-append "v"version)))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 "0lmrgcj1ky1vhzynl36k6ba3ws089x4qdrnkjk3lbr334kicx9na")))) > + (build-system meson-build-system) > + (arguments > + `(#:glib-or-gtk? #t > + #:configure-flags > + ;; Cawbirds's default key and secret for OAuth process with twitter. > + (list > + "-Dconsumer_key_base64=VmY5dG9yRFcyWk93MzJEZmhVdEk5Y3NMOA==" > + > "-Dconsumer_secret_base64=MThCRXIxbWRESDQ2Y0podzVtVU13SGUyVGlCRXhPb3BFRHhGYlB6ZkpybG5GdXZaSjI=") I found that weird to put the secret key only base64-encoded here, but that seems to be how it is intended for the "default key": https://github.com/IBBoard/cawbird/commit/9f0f3201ce866a8ad06f8ec4642790182642bb72. Weird also that it wants it at build time rather than at run time, but hey. > + #:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'disable-failing-tests > + (lambda _ > + ;; These tests require networking. > + (substitute* "tests/meson.build" > + (("[ \t]*.*avatardownload.*$") "") > + (("[ \t]*.*filters.*$") "") > + (("[ \t]*.*friends.*$") "") > + (("[ \t]*.*inlinemediadownloader.*$") "") > + (("[ \t]*.*tweetparsing.*$") "") > + (("[ \t]*.*usercounter.*$") "")))) > + (delete 'check) > + (add-after 'install 'custom-check > + (lambda* (#:key outputs tests? #:allow-other-keys) > + (when tests? > + ;; Tests require a running X server. > + (system "Xvfb :1 +extension GLX &") > + (setenv "DISPLAY" ":1") > + ;; Tests write to $HOME. > + (setenv "HOME" (getcwd)) > + ;; Tests look for gsettings-schemas installed by the package. > + (setenv "XDG_DATA_DIRS" > + (string-append (getenv "XDG_DATA_DIRS") > + ":" (assoc-ref outputs "out") "/share")) > + (invoke "meson" "test")) > + #t)) > + (add-after 'glib-or-gtk-wrap 'wrap-paths > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (assoc-ref outputs "out")) > + (bin (string-append out "/bin/")) > + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")) > + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) > + (wrap-program (string-append bin "cawbird") > + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) > + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) > + #t))))) > + (native-inputs > + `(("gettext" ,gettext-minimal) > + ("glib:bin" ,glib "bin") > + ("gobject-introspection" ,gobject-introspection) > + ("gtk+:bin" ,gtk+ "bin") > + ("pkg-config" ,pkg-config) > + ("vala" ,vala) > + ("xmllint" ,libxml2) > + ("xorg-server" ,xorg-server-for-tests))) > + (inputs > + `(("glib" ,glib) > + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) > + ("gspell" ,gspell) > + ("gstreamer" ,gstreamer) > + ("gst-libav" ,gst-libav) > + ("gst-plugins-bad" ,gst-plugins-bad) > + ("gst-plugins-base" ,gst-plugins-base) > + ("gst-plugins-good" ,gst-plugins-good) > + ("gtk+" ,gtk+) > + ("json-glib" ,json-glib) > + ("liboauth" ,liboauth) > + ("libsoup" ,libsoup) > + ("rest" ,rest) > + ("sqlite" ,sqlite) > + ("x11" ,libx11))) > + (propagated-inputs > + `(("dconf" ,dconf))) > + (synopsis "Client for Twitter") > + (description "Cawbird is a twitter app, built with GTK. Perhaps: "Cawbird is a Twitter client that uses the GTK+ toolkit." ? > +the main twitter features.") ^ Twitter I'd expand a bit on what some of these main features might be (text messages, sharing photos, ?). I haven't tested, but after my above comments, if it passes 'guix lint', builds and runs, LGTM. Thank you! Maxim
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.