(guix build-system gnu)
(gnu packages)
(gnu packages autotools)
- (gnu packages bison)
- (gnu packages flex)
- (gnu packages gettext)
(gnu packages guile)
- (gnu packages gsasl)
- (gnu packages mail)
(gnu packages pkg-config)
(gnu packages texinfo)
(srfi srfi-1))
-(define-public mailutils-next
- ;; This version of Mailutils supports Guile 2.2, unlike version <= 3.4.
- (let ((commit "ce5b13e92b6e2f7af243654fe0673646f00dc3a6")
- (revision "1"))
- (package
- (inherit mailutils)
- (version (string-append (package-version mailutils)
- "-" revision "." (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://git.savannah.gnu.org/git/mailutils.git")
- (commit commit)
- (recursive? #t))) ;for Gnulib & co.
- (sha256
- (base32
- "15vbj5by7qg8zmh3scr3k9pymls6ijk1s85y1skclsln172r9p33"))
- (file-name (string-append "mailutils-" version "-checkout"))))
- (outputs '("out" "debug"))
- (inputs
- `(("guile" ,guile-2.2)
- ("gsasl" ,gsasl) ;for SMTP authentication
- ,@(alist-delete "guile" (package-inputs mailutils))))
- (native-inputs
- `(("autoconf" ,autoconf-wrapper)
- ("automake" ,automake)
- ("bison" ,bison)
- ("flex" ,flex)
- ("libtool" ,libtool)
- ("gettext" ,gnu-gettext)
- ,@(package-native-inputs mailutils)))
- (arguments
- (substitute-keyword-arguments (package-arguments mailutils)
- ((#:modules modules %gnu-build-system-modules)
- `((srfi srfi-1) ,@modules))
- ((#:configure-flags flags ''())
- `(cons* "--disable-radius"
-
- ;; Add "/2.2" to the installation directory.
- (string-append "--with-guile-site-dir="
- (assoc-ref %outputs "out")
- "/share/guile/site/2.2")
- ,flags))
- ((#:phases phases)
- `(modify-phases ,phases
- (replace 'bootstrap
- (lambda* (#:key inputs #:allow-other-keys)
- (for-each patch-shebang
- '("bootstrap" "gnulib/gnulib-tool"))
- (substitute* "bootstrap.conf"
- (("git submodule" all)
- (string-append "#" all)))
- (for-each make-file-writable (find-files "gnulib"))
- (substitute* "configure.ac"
- (("AM_GNU_RADIUS") ""))
- (invoke "./bootstrap" "--no-git" "--skip-po"
- (string-append "--gnulib-srcdir=gnulib"))
- #t))
- (delete 'prepare-test-suite)))
- ((#:parallel-build? _ #f) ;due to parser.y
- #f)
- ((#:tests? _ #f) ;XXX
- #f))))))
-
(define-public guile-debbugs-next
(let ((commit "75a331d561c8b6f8efcf16216dab961c17759efe")
(revision "1"))
`(("guile-debbugs" ,guile-debbugs-next)
("guile-email" ,guile-email)
("guile-syntax-highlight" ,guile-syntax-highlight)
- ("mailutils" ,mailutils-next)
("guile" ,guile-2.2.4)))
(native-inputs
`(("autoconf" ,autoconf)
#:use-module (debbugs rfc822)
#:use-module (email email)
#:use-module (mumi config)
- #:use-module (mailutils mailutils)
#:export (search-bugs
fetch-bug
recent-bugs
multipart-message?
- extract-attachment
- qp-decoder))
+ extract-attachment))
(define-public (extract-name address)
(or (assoc-ref address 'name)
'type)
'multipart))
-(define (qp-decoder port)
- "Read a quoted-printable line from PORT and return the decoded
-string."
- (let ((decoder-port (mu-decoder-port port "quoted-printable")))
- (with-output-to-string
- (lambda ()
- (let loop ((line (get-line decoder-port)))
- (cond
- ((eof-object? line) #t)
- (else
- (display line)
- (newline)
- (loop (get-line decoder-port)))))))))
-
(define* (extract-attachment id msg-num path)
"Extract attachment from message number MSG-NUM in the thread for
the bug with the given ID. Follow PATH to get to the correct