gnu: Add opensmtpd-filter-dkimsign.
* gnu/packages/mail.scm (libopensmtpd): New variable. opensmtpd-filter-dkimsign): New public variable.
This commit is contained in:
		
							parent
							
								
									f5ca844fc1
								
							
						
					
					
						commit
						62035656ca
					
				
					 2 changed files with 122 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -138,6 +138,7 @@
 | 
			
		|||
  #:use-module (guix packages)
 | 
			
		||||
  #:use-module (guix download)
 | 
			
		||||
  #:use-module (guix git-download)
 | 
			
		||||
  #:use-module (guix svn-download)
 | 
			
		||||
  #:use-module (guix utils)
 | 
			
		||||
  #:use-module (guix build-system gnu)
 | 
			
		||||
  #:use-module (guix build-system guile)
 | 
			
		||||
| 
						 | 
				
			
			@ -2493,6 +2494,125 @@ for OpenSMTPD to extend its functionality.")
 | 
			
		|||
    (license (list license:bsd-2 license:bsd-3 ; openbsd-compat
 | 
			
		||||
                   license:isc))))             ; everything else
 | 
			
		||||
 | 
			
		||||
(define libopensmtpd
 | 
			
		||||
  ;; Private source dependency of opensmtpd-filter-dkimsign (by the same
 | 
			
		||||
  ;; author), until any project actually uses it in its compiled form.
 | 
			
		||||
  (let ((revision 48))
 | 
			
		||||
    (package
 | 
			
		||||
      (name "libopensmtpd")
 | 
			
		||||
      (version (format #f "0.0.0-~a" revision))
 | 
			
		||||
      (source
 | 
			
		||||
       (origin
 | 
			
		||||
         (method svn-fetch)
 | 
			
		||||
         (uri (svn-reference
 | 
			
		||||
               (url "http://imperialat.at/dev/libopensmtpd/")
 | 
			
		||||
               (revision revision)))
 | 
			
		||||
         (sha256
 | 
			
		||||
          (base32 "04fgibpi6q0c3468ww3z7gsvraz0gyfps0c2dj8mdyri636c0x0s"))
 | 
			
		||||
         (file-name (git-file-name name version))))
 | 
			
		||||
      (build-system gnu-build-system)
 | 
			
		||||
      (arguments
 | 
			
		||||
       `(#:make-flags
 | 
			
		||||
         (list "-f" "Makefile.gnu"
 | 
			
		||||
               (string-append "CC=" ,(cc-for-target))
 | 
			
		||||
               (string-append "LOCALBASE=" (assoc-ref %outputs "out")))
 | 
			
		||||
         #:tests? #f                    ; no test suite
 | 
			
		||||
         #:phases
 | 
			
		||||
         (modify-phases %standard-phases
 | 
			
		||||
           (add-after 'unpack 'inherit-ownership
 | 
			
		||||
             (lambda _
 | 
			
		||||
               (substitute* "Makefile.gnu"
 | 
			
		||||
                 (("-o \\$\\{BINOWN\\} -g \\$\\{BINGRP\\}") ""))
 | 
			
		||||
               #t))
 | 
			
		||||
           (delete 'configure)          ; no configure script
 | 
			
		||||
           (add-before 'install 'create-output-directories
 | 
			
		||||
             (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
               (let ((out (assoc-ref outputs "out")))
 | 
			
		||||
                 (mkdir-p (string-append out "/lib"))
 | 
			
		||||
                 #t)))
 | 
			
		||||
           (add-after 'install 'install-header-file
 | 
			
		||||
             (lambda* (#:key make-flags outputs #:allow-other-keys)
 | 
			
		||||
               (let ((out (assoc-ref outputs "out")))
 | 
			
		||||
                 (mkdir-p (string-append out "/include"))
 | 
			
		||||
                 (apply invoke "make" "includes" make-flags))))
 | 
			
		||||
           (add-after 'install 'install-man-page
 | 
			
		||||
             (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
               (let* ((out (assoc-ref outputs "out"))
 | 
			
		||||
                      (man3 (string-append out "/share/man/man3")))
 | 
			
		||||
                 ;; There is no make target for this.
 | 
			
		||||
                 (install-file "osmtpd_run.3" man3)
 | 
			
		||||
                 #t))))))
 | 
			
		||||
      (inputs
 | 
			
		||||
       `(("libevent" ,libevent)))
 | 
			
		||||
      (home-page "http://imperialat.at/dev/libopensmtpd/")
 | 
			
		||||
      (synopsis "OpenSMTPd filter C API")
 | 
			
		||||
      (description
 | 
			
		||||
       "The @code{osmtpd} API is an event-based C programming interface for
 | 
			
		||||
writing OpenSMTPd filters.")
 | 
			
		||||
      (license license:expat))))
 | 
			
		||||
 | 
			
		||||
(define-public opensmtpd-filter-dkimsign
 | 
			
		||||
  (package
 | 
			
		||||
    (name "opensmtpd-filter-dkimsign")
 | 
			
		||||
    ;; The .arch repackaging provides not only a usable Makefile, but patches
 | 
			
		||||
    ;; the source to actually build on GNU, e.g., by making pledge() optional.
 | 
			
		||||
    ;; It's effectively the portable branch that upstream lacks at this time.
 | 
			
		||||
    (version "0.2.arch2")               ; also update both native-inputs
 | 
			
		||||
    (source
 | 
			
		||||
     (origin
 | 
			
		||||
       (method git-fetch)
 | 
			
		||||
       (uri (git-reference
 | 
			
		||||
             (url "https://github.com/de-vri-es/filter-dkimsign")
 | 
			
		||||
             (commit (string-append "v" version))))
 | 
			
		||||
       (sha256
 | 
			
		||||
        (base32 "1dv6184h0gq2safnc7ln4za3arbafzc1xwkgwmiihqcjvdyxig0c"))
 | 
			
		||||
       (file-name (git-file-name name version))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:make-flags
 | 
			
		||||
       (list (string-append "CC=" ,(cc-for-target)))
 | 
			
		||||
       #:tests? #f                      ; no test suite
 | 
			
		||||
       #:phases
 | 
			
		||||
       (modify-phases %standard-phases
 | 
			
		||||
         (replace 'unpack
 | 
			
		||||
           (lambda* (#:key source inputs #:allow-other-keys)
 | 
			
		||||
             (copy-recursively source "filter-dkimsign")
 | 
			
		||||
             (copy-recursively (assoc-ref inputs "libopensmtpd-source")
 | 
			
		||||
                               "libopensmtpd")
 | 
			
		||||
             (copy-file (assoc-ref inputs "Makefile") "Makefile")
 | 
			
		||||
             #t))
 | 
			
		||||
         (delete 'configure)            ; no configure script
 | 
			
		||||
         (replace 'install
 | 
			
		||||
           (lambda* (#:key outputs #:allow-other-keys)
 | 
			
		||||
             (let* ((out     (assoc-ref outputs "out"))
 | 
			
		||||
                    (libexec (string-append out "/libexec/opensmtpd"))
 | 
			
		||||
                    (man8    (string-append out "/share/man/man8")))
 | 
			
		||||
               (chdir "filter-dkimsign")
 | 
			
		||||
               (install-file "filter-dkimsign" libexec)
 | 
			
		||||
               (install-file "filter-dkimsign.8" man8)
 | 
			
		||||
               #t))))))
 | 
			
		||||
    (native-inputs
 | 
			
		||||
     `(("Makefile"
 | 
			
		||||
        ,(origin
 | 
			
		||||
           (method url-fetch)
 | 
			
		||||
           (uri (string-append
 | 
			
		||||
                 "https://aur.archlinux.org/cgit/aur.git/plain/Makefile"
 | 
			
		||||
                 "?h=opensmtpd-filter-dkimsign"
 | 
			
		||||
                 "&id=58393470477a2ff2a58f9d72f5d851698067539f"))
 | 
			
		||||
           (sha256
 | 
			
		||||
            (base32 "0da5qr9hfjkf07ybvfva967njmf2x0b82z020r6v5f93jzsbqx92"))
 | 
			
		||||
           (file-name (string-append name "-" version "-Makefile"))))
 | 
			
		||||
       ("libopensmtpd-source" ,(package-source libopensmtpd))))
 | 
			
		||||
    (inputs
 | 
			
		||||
     `(("libevent" ,libevent)
 | 
			
		||||
       ("libressl" ,libressl)))         ; openssl works too but follow opensmtpd
 | 
			
		||||
    (home-page "http://imperialat.at/dev/filter-dkimsign/")
 | 
			
		||||
    (synopsis "OpenSMTPd filter for signing mail with DKIM")
 | 
			
		||||
    (description
 | 
			
		||||
     "The @command{filter-dkimsign} OpenSMTPd filter signs outgoing e-mail
 | 
			
		||||
messages with @acronym{DKIM, DomainKeys Identified Mail} (RFC 4871).")
 | 
			
		||||
    (license license:expat)))
 | 
			
		||||
 | 
			
		||||
(define-public mailman
 | 
			
		||||
  (package
 | 
			
		||||
    (name "mailman")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -558,14 +558,14 @@ out) and returning a package that uses that as its 'source'."
 | 
			
		|||
(define-public nix
 | 
			
		||||
  (package
 | 
			
		||||
    (name "nix")
 | 
			
		||||
    (version "2.3.6")
 | 
			
		||||
    (version "2.3.7")
 | 
			
		||||
    (source (origin
 | 
			
		||||
             (method url-fetch)
 | 
			
		||||
             (uri (string-append "http://nixos.org/releases/nix/nix-"
 | 
			
		||||
                                 version "/nix-" version ".tar.xz"))
 | 
			
		||||
             (sha256
 | 
			
		||||
              (base32
 | 
			
		||||
               "128xf2as0y7hr28x575pbf9lkjpxr9hsxknbavv4p7ywr4lhbs85"))))
 | 
			
		||||
               "15p50jkss6szinisb7axhxybgfi29sm9grz7mxwair8ljj2553yx"))))
 | 
			
		||||
    (build-system gnu-build-system)
 | 
			
		||||
    (arguments
 | 
			
		||||
     `(#:configure-flags
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue