summary refs log tree commit diff
path: root/gnu/packages/syndication.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/syndication.scm')
-rw-r--r--gnu/packages/syndication.scm179
1 files changed, 112 insertions, 67 deletions
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index 9c066bb4e4..506245fd17 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
 ;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
 ;;; Copyright © 2022 Luis Felipe López Acevedo <luis.felipe.la@protonmail.com>
+;;; Copyright © 2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,6 +27,7 @@
   #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix utils)
+  #:use-module (guix gexp)
   #:use-module (guix build-system cargo)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
@@ -35,7 +37,10 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages documentation)
@@ -48,6 +53,7 @@
   #:use-module (gnu packages kde-frameworks)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-xyz)
@@ -158,7 +164,7 @@ cards.")
 (define-public giara
   (package
     (name "giara")
-    (version "0.3")
+    (version "1.0.1")
     (source
      (origin
        (method git-fetch)
@@ -166,15 +172,17 @@ cards.")
              (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"))))
+        (base32 "00vmfghp9g8yzn2d1xjawz5a8bdwn1jl1k24mjaf4vlvdy4sg9l4"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'skip-icon-cache
+           (lambda _
+             (substitute* "meson_post_install.py"
+               (("gtk-update-icon-cache") "true"))))
          (add-after 'glib-or-gtk-wrap 'wrap-paths
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out"))
@@ -187,52 +195,53 @@ cards.")
                  `("GUIX_PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH") ,lib))
                  `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH"))))))))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:bin" ,gtk+ "bin")
-       ("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)))
+     (list gettext-minimal
+           (list glib "bin")
+           gobject-introspection
+           (list gtk "bin")
+           pkg-config))
     (inputs
-     `(("glib" ,glib)
-       ("gtk+" ,gtk+)
-       ("gtksourceview" ,gtksourceview-4)
-       ("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-with-libsoup2)))
+     (list blueprint-compiler
+           glib
+           gtk
+           gtksourceview
+           libadwaita
+           python
+           python-beautifulsoup4
+           python-dateutil
+           python-mistune-next
+           python-pillow
+           python-praw
+           python-pygobject
+           python-requests))
     (propagated-inputs
      (list dconf))
     (synopsis "Client for Reddit")
-    (description "Giara is a reddit app, built with Python, GTK and Handy.")
+    (description "Giara is a reddit app, built with Python, GTK4 and libadwaita.")
     (home-page "https://giara.gabmus.org/")
     (license license:gpl3+)))
 
 (define-public newsboat
   (package
     (name "newsboat")
-    (version "2.26")
+    (version "2.29")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsboat.org/releases/" version
                            "/newsboat-" version ".tar.xz"))
        (sha256
-        (base32 "061w86jffyi49m4d9n974a3pd1svbw3azmh0qx8h2v7h0178791l"))))
+        (base32 "0szx4pivkaja8v399m6v7ycp1xprm4cz7n5z929g4j191hg81f8q"))))
     (build-system cargo-build-system)
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("openssl" ,openssl)
        ("pkg-config" ,pkg-config)
        ;; For building documentation.
-       ("asciidoctor" ,ruby-asciidoctor)))
+       ,@(if (member (%current-system)
+                     (package-transitive-supported-systems ruby-asciidoctor))
+           `(("asciidoctor" ,ruby-asciidoctor))
+           `())))
     (inputs
      (list curl
            json-c
@@ -252,6 +261,7 @@ cards.")
         ("rust-chrono" ,rust-chrono-0.4)
         ("rust-curl-sys" ,rust-curl-sys-0.4)
         ("rust-cxx" ,rust-cxx-1)
+        ("rust-cxx-build" ,rust-cxx-build-1)
         ("rust-fastrand" ,rust-fastrand-1)
         ("rust-gettext-rs" ,rust-gettext-rs-0.7)
         ("rust-lexopt" ,rust-lexopt-0.2)
@@ -265,12 +275,20 @@ cards.")
         ("rust-unicode-width" ,rust-unicode-width-0.1)
         ("rust-xdg" ,rust-xdg-2))
        #:cargo-development-inputs
-       (("rust-cxx-build" ,rust-cxx-build-1)
-        ("rust-tempfile" ,rust-tempfile-3)
+       (("rust-tempfile" ,rust-tempfile-3)
         ("rust-proptest" ,rust-proptest-1)
         ("rust-section-testing" ,rust-section-testing-0.0))
        #:phases
        (modify-phases %standard-phases
+         ,@(if (not (assoc-ref inputs "asciidoctor"))
+             `((add-after 'unpack 'dont-use-asciidoctor
+                 (lambda _
+                   (substitute* "config.sh"
+                     ((".*asciidoctor.*") ""))
+                   (substitute* "Makefile"
+                     (("^doc:.*") "doc:\n")
+                     (("install-podboat install-docs") "install-podboat")))))
+             '())
          (add-after 'configure 'dont-vendor-self
            (lambda* (#:key vendor-dir #:allow-other-keys)
              ;; Don't keep the whole tarball in the vendor directory
@@ -491,67 +509,94 @@ a simple interface that makes it easy to organize and browse feeds.")
     (license (list license:expat
                    license:gpl3+))))    ; tuir/packages/praw
 
+(define-public syndication-domination
+  (let ((revision "1")
+        (commit "f64caabd6f46be14fdb92085971a7f2d6fa5e61e"))
+    (package
+      (name "syndication-domination")
+      (version (git-version "0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://gitlab.com/gabmus/syndication-domination")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "1i0llzzm3lc2kw7rjhb46c7wlknsb6r9bdrf61chi2pk6hpjyscv"))))
+      (build-system meson-build-system)
+      (arguments
+       (list #:meson meson-0.63))
+      (inputs (list fmt tidy-html pybind11 python pugixml))
+      (native-inputs (list cmake pkg-config)) ; need cmake to find pybind11
+      (home-page "https://gitlab.com/gabmus/syndication-domination")
+      (synopsis "RSS/Atom feed parser")
+      (description "This package provides an experimental RSS/Atom feed
+parser.  It is \"not fit for use at this point\", but gfeeds uses it anyway.")
+      (license license:agpl3))))
+
 (define-public gfeeds
   (package
     (name "gfeeds")
-    (version "0.16.2")
+    (version "1.0.3")
     (source (origin
-              (method url-fetch)
-              (uri
-               (string-append
-                "https://gitlab.gnome.org/World/gfeeds/-/archive/" version
-                "/gfeeds-" version ".tar.bz2"))
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.gnome.org/World/gfeeds")
+                    (commit version)))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "05gwwzqfz29m477imd5vh84jfla1wnklwpc2sdxnqli72wg08fli"))))
+                "1lkvhff7pl1y4brqsix6sar5yl8flyhfp3w96fx0klhk3586bvhg"))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-mpv-path
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "gfeeds/confManager.py"
-               (("mpv") (search-input-file inputs "/bin/mpv")))
-             #t))
-         (add-after 'unpack 'patch-webkit2-version
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "bin/gfeeds.in"
-               (("gi\\.require_version\\('WebKit2', '4\\.0'\\)")
-                "gi.require_version('WebKit2', '4.1')"))))
-         (add-after 'install 'wrap-gfeeds
-           (lambda* (#:key outputs #:allow-other-keys)
-             (wrap-program (string-append
-                            (assoc-ref outputs "out") "/bin/gfeeds")
-               `("PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
-               `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
-               `("XDG_DATA_DIRS" ":" prefix (,(getenv "XDG_DATA_DIRS"))))
-             #t)))))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-mpv-path
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "gfeeds/confManager.py"
+                (("mpv") (search-input-file inputs "/bin/mpv")))))
+          (add-after 'unpack 'skip-icon-cache
+            (lambda _
+              (substitute* "meson_post_install.py"
+                (("gtk-update-icon-cache") "true"))))
+          (add-after 'install 'wrap-gfeeds
+            (lambda* (#:key outputs #:allow-other-keys)
+              (wrap-program (string-append
+                             (assoc-ref outputs "out") "/bin/gfeeds")
+                `("PYTHONPATH" ":" prefix (,(getenv "GUIX_PYTHONPATH")))
+                `("GI_TYPELIB_PATH" ":" prefix (,(getenv "GI_TYPELIB_PATH")))
+                `("XDG_DATA_DIRS" ":" prefix (,(getenv "XDG_DATA_DIRS")))))))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk+:bin" ,gtk+ "bin")
-       ("pkg-config" ,pkg-config)))
+     (list `(,glib "bin")
+           blueprint-compiler
+           gobject-introspection
+           pkg-config))
     (inputs
-     (list glib
+     (list bash-minimal
+           glib
            gsettings-desktop-schemas
-           gtk+
+           gtk
            hicolor-icon-theme
-           libhandy
+           libadwaita
            mpv
            python
            python-beautifulsoup4
            python-dateutil
            python-feedparser
            python-html5lib
+           python-humanize
            python-listparser
            python-lxml
+           python-magic
            python-pillow
            python-pygments
+           python-pygobject
            python-pytz
-           python-readability
+           python-readability-lxml
            python-requests
-           webkitgtk
-           python-pygobject))
+           syndication-domination
+           webkitgtk-next))
     (home-page "https://gfeeds.gabmus.org/")
     (synopsis "Easy-to-use GTK+ RSS/Atom feed reader")
     (description "Feeds is an RSS/Atom feed reader made with GTK+