summaryrefslogtreecommitdiff
path: root/gnu/packages/syndication.scm
blob: 6e1ca5d407fee9c872e7de5062ff5b8ff2122de6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (gnu packages syndication)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix download)
  #:use-module (guix packages)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages)
  #:use-module (gnu packages curl)
  #:use-module (gnu packages databases)
  #:use-module (gnu packages documentation)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages ruby)
  #:use-module (gnu packages xml)
  #:use-module (gnu packages web)
  #:use-module (srfi srfi-1))

(define-public newsbeuter
  (package
    (name "newsbeuter")
    (version "2.9")
    (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsbeuter.org/downloads/newsbeuter-"
                            version ".tar.gz"))
        (patches (search-patches "newsbeuter-CVE-2017-12904.patch"
                                 "newsbeuter-CVE-2017-14500.patch"))
        (sha256
         (base32
          "1j1x0hgwxz11dckk81ncalgylj5y5fgw5bcmp9qb5hq9kc0vza3l"))))
    (build-system gnu-build-system)
    (arguments
     '(#:phases
       (modify-phases %standard-phases
         (replace 'configure
           (lambda _
             (substitute* "config.sh"
               ;; try to remove this at the next release
               (("ncursesw5") "ncursesw6"))
             #t)))
       #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out")))
       #:test-target "test"))
    (native-inputs
     `(("gettext" ,gettext-minimal)
       ("perl" ,perl)
       ("pkg-config" ,pkg-config)
       ("ruby" ,ruby))) ; for tests
    (inputs
     `(("curl" ,curl)
       ("json-c" ,json-c-0.12)      ; check whether json-c-0.12 can be removed
       ("ncurses" ,ncurses)
       ("stfl" ,stfl)
       ("sqlite" ,sqlite)
       ("libxml2" ,libxml2)))
    (home-page "https://newsbeuter.org/")
    (synopsis "Text mode rss feed reader with podcast support")
    (description "Newsbeuter is an innovative RSS feed reader for the text
console.  It supports OPML import/exports, HTML rendering, podcast (podbeuter),
offline reading, searching and storing articles to your filesystem, and many
more features.  Its user interface is coherent, easy to use, and might look
common to users of @command{mutt} and @command{slrn}.")
    (license (list license:gpl2+        ; filter/*
                   license:expat))))    ; everything else

(define-public newsboat
  (package
    (inherit newsbeuter)
    (name "newsboat")
    (version "2.10.1")
    (source
      (origin
        (method url-fetch)
        (uri (string-append "https://newsboat.org/releases/" version
                            "/newsboat-" version ".tar.xz"))
        (sha256
         (base32
          "1xgqkhpjbq916g9hkaxs0s2fz8bg103pzjx75ziq5ba688l9imj4"))))
    (arguments
     '(#:phases (modify-phases %standard-phases
                  (delete 'configure) ; no configure
                  (add-after 'build 'build-documentation
                    (lambda _ (zero? (system* "make" "doc")))))
       #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))
                          ;; see https://github.com/newsboat/newsboat/issues/43
                          "WARNFLAGS=-Wno-sign-compare")
       #:test-target "test"))
    (native-inputs
     `(("asciidoc" ,asciidoc)
       ,@(alist-delete "ruby" (package-native-inputs newsbeuter))))
    (home-page "https://newsboat.org/")
    (description "Newsboat is a fork of Newsbeuter, an RSS/Atom feed reader for
the text console.  It supports OPML import/exports, HTML rendering, podcast
(podboat), offline reading, searching and storing articles to your filesystem,
and many more features.  Its user interface is coherent, easy to use, and might
look common to users of @command{mutt} and @command{slrn}.")))