summaryrefslogtreecommitdiff
path: root/gnu/packages/syndication.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/syndication.scm')
-rw-r--r--gnu/packages/syndication.scm186
1 files changed, 173 insertions, 13 deletions
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index 5f0aa1bd8b..2f3f191a47 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -23,6 +23,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (guix build-system cargo)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
@@ -36,6 +37,7 @@
#:use-module (gnu packages crates-io)
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
@@ -50,6 +52,7 @@
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
#:use-module (gnu packages ruby)
+ #:use-module (gnu packages rust)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
@@ -57,20 +60,173 @@
#: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=")
+ #: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 client built with GTK and Vala.
+It supports all features except non-mention notifications, polls, threads and
+cards.")
+ (home-page "https://ibboard.co.uk/cawbird/")
+ (license license:gpl3+)))
+
+(define-public giara
+ (package
+ (name "giara")
+ (version "0.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.gnome.org/World/giara")
+ (commit version)))
+ (file-name (git-file-name name version))
+ ;; To fix authentication while adding accounts.
+ (patches (search-patches "giara-fix-login.patch"))
+ (sha256
+ (base32 "004qmkfrgd37axv0b6hfh6v7nx4pvy987k5yv4bmlmkj9sbqm6f9"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (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/"))
+ (lib (string-append out "/lib/python"
+ ,(version-major+minor
+ (package-version python))
+ "/site-packages")))
+ (wrap-program (string-append bin "giara")
+ `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH") ,lib))
+ `("GI_TYPELIB_PATH" ":" prefix (,(getenv "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)
+ ("xmllint" ,libxml2)))
+ (inputs
+ `(("glib" ,glib)
+ ("gtk+" ,gtk+)
+ ("gtksourceview" ,gtksourceview)
+ ("libhandy" ,libhandy)
+ ("python" ,python)
+ ("python-beautifulsoup" ,python-beautifulsoup4)
+ ("python-dateutil" ,python-dateutil)
+ ("python-mistune" ,python-mistune)
+ ("python-pillow" ,python-pillow)
+ ("python-praw" ,python-praw)
+ ("python-pycairo" ,python-pycairo)
+ ("python-pygobject" ,python-pygobject)
+ ("python-requests" ,python-requests)
+ ("webkitgtk" ,webkitgtk)))
+ (propagated-inputs
+ `(("dconf" ,dconf)))
+ (synopsis "Client for Reddit")
+ (description "Giara is a reddit app, built with Python, GTK and Handy.")
+ (home-page "https://giara.gabmus.org/")
+ (license license:gpl3+)))
+
(define-public newsboat
(package
(name "newsboat")
- (version "2.22.1")
+ (version "2.24")
(source
(origin
(method url-fetch)
(uri (string-append "https://newsboat.org/releases/" version
"/newsboat-" version ".tar.xz"))
(sha256
- (base32
- "1476fmfw2hkrjwyr3f7k9316lzwnn2b1dbc51rybcxipqlfg8849"))))
+ (base32 "1yvggkb29qykxlvrysb6yyf5piwsvzv0zla8jn2ihmm2rj40chk2"))))
(build-system cargo-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@@ -90,6 +246,7 @@
(guix build utils)
((guix build gnu-build-system) #:prefix gnu:))
#:vendor-dir "vendor"
+ #:rust ,rust-1.48 ; or newer
#:install-source? #f
#:cargo-inputs
(("rust-backtrace" ,rust-backtrace-0.3)
@@ -97,18 +254,20 @@
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-2)
("rust-curl-sys" ,rust-curl-sys-0.4)
- ("rust-cxx" ,rust-cxx-0.5)
- ("rust-cxx-build" ,rust-cxx-build-0.5)
- ("rust-gettext-rs" ,rust-gettext-rs-0.5)
+ ("rust-cxx" ,rust-cxx-1)
+ ("rust-gettext-rs" ,rust-gettext-rs-0.7)
("rust-libc" ,rust-libc-0.2)
("rust-natord" ,rust-natord-1)
("rust-nom" ,rust-nom-6)
("rust-once-cell" ,rust-once-cell-1)
- ("rust-rand" ,rust-rand-0.7)
+ ("rust-percent-encoding" ,rust-percent-encoding-2)
+ ("rust-rand" ,rust-rand-0.8)
("rust-url" ,rust-url-2)
- ("rust-unicode-width" ,rust-unicode-width-0.1))
+ ("rust-unicode-width" ,rust-unicode-width-0.1)
+ ("rust-xdg" ,rust-xdg-2))
#:cargo-development-inputs
- (("rust-tempfile" ,rust-tempfile-3)
+ (("rust-cxx-build" ,rust-cxx-build-1)
+ ("rust-tempfile" ,rust-tempfile-3)
("rust-proptest" ,rust-proptest-0.9)
("rust-section-testing" ,rust-section-testing-0.0))
#:phases
@@ -316,9 +475,10 @@ a simple interface that makes it easy to organize and browse feeds.")
`(#:phases
(modify-phases %standard-phases
(replace 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
+ (lambda* (#:key tests? inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
- (invoke "pytest"))))))
+ (when tests?
+ (invoke "pytest")))))))
(inputs
`(("python-beautifulsoup4" ,python-beautifulsoup4)
("python-decorator" ,python-decorator)
@@ -410,14 +570,14 @@ formats, including all versions of RSS and Atom.")
("qttools" ,qttools)))
(inputs
`(("qtwebkit" ,qtwebkit)
- ("qtbase" ,qtbase)
+ ("qtbase" ,qtbase-5)
("qtmultimedia" ,qtmultimedia)
("phonon" ,phonon)
("sqlite" ,sqlite)))
(home-page "https://quiterss.org/")
(synopsis "RSS/Atom news feeds reader written on Qt/C++")
(description "QuiteRSS is an RSS/Atom news feeds reader written on Qt/C++
-that aims to be quite fast and comfortable to it's user.")
+that aims to be quite fast and comfortable to its user.")
(license license:gpl3+)))
(define-public gfeeds