gnu: Add RPM.
* gnu/packages/package-management.scm (rpm): New variable. * gnu/packages/backup.scm (libarchive): Add comment.
This commit is contained in:
		
							parent
							
								
									64a719203f
								
							
						
					
					
						commit
						e3e1ecf67c
					
				
					 2 changed files with 83 additions and 1 deletions
				
			
		| 
						 | 
					@ -147,6 +147,7 @@ backups (called chunks) to allow easy burning to CD/DVD.")
 | 
				
			||||||
              (search-patch "libarchive-fix-lzo-test-case.patch")
 | 
					              (search-patch "libarchive-fix-lzo-test-case.patch")
 | 
				
			||||||
              (search-patch "libarchive-CVE-2013-0211.patch")))))
 | 
					              (search-patch "libarchive-CVE-2013-0211.patch")))))
 | 
				
			||||||
    (build-system gnu-build-system)
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    ;; TODO: Add -L/path/to/nettle in libarchive.pc.
 | 
				
			||||||
    (inputs
 | 
					    (inputs
 | 
				
			||||||
     `(("zlib" ,zlib)
 | 
					     `(("zlib" ,zlib)
 | 
				
			||||||
       ("nettle" ,nettle)
 | 
					       ("nettle" ,nettle)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,9 +23,12 @@
 | 
				
			||||||
  #:use-module (guix git-download)
 | 
					  #:use-module (guix git-download)
 | 
				
			||||||
  #:use-module (guix utils)
 | 
					  #:use-module (guix utils)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+))
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
 | 
					  #:use-module ((guix licenses) #:select (gpl2+ gpl3+ lgpl2.1+ asl2.0))
 | 
				
			||||||
  #:use-module (gnu packages)
 | 
					  #:use-module (gnu packages)
 | 
				
			||||||
  #:use-module (gnu packages guile)
 | 
					  #:use-module (gnu packages guile)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages file)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages backup)
 | 
				
			||||||
  #:use-module (gnu packages compression)
 | 
					  #:use-module (gnu packages compression)
 | 
				
			||||||
  #:use-module (gnu packages gnupg)
 | 
					  #:use-module (gnu packages gnupg)
 | 
				
			||||||
  #:use-module (gnu packages databases)
 | 
					  #:use-module (gnu packages databases)
 | 
				
			||||||
| 
						 | 
					@ -34,12 +37,17 @@
 | 
				
			||||||
  #:use-module (gnu packages autotools)
 | 
					  #:use-module (gnu packages autotools)
 | 
				
			||||||
  #:use-module (gnu packages gettext)
 | 
					  #:use-module (gnu packages gettext)
 | 
				
			||||||
  #:use-module (gnu packages texinfo)
 | 
					  #:use-module (gnu packages texinfo)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages nettle)
 | 
				
			||||||
  #:use-module (gnu packages perl)
 | 
					  #:use-module (gnu packages perl)
 | 
				
			||||||
  #:use-module (gnu packages curl)
 | 
					  #:use-module (gnu packages curl)
 | 
				
			||||||
  #:use-module (gnu packages web)
 | 
					  #:use-module (gnu packages web)
 | 
				
			||||||
  #:use-module (gnu packages man)
 | 
					  #:use-module (gnu packages man)
 | 
				
			||||||
  #:use-module (gnu packages emacs)
 | 
					  #:use-module (gnu packages emacs)
 | 
				
			||||||
  #:use-module (gnu packages bdw-gc)
 | 
					  #:use-module (gnu packages bdw-gc)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages python)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages popt)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages gnuzilla)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages cpio)
 | 
				
			||||||
  #:use-module (gnu packages tls))
 | 
					  #:use-module (gnu packages tls))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define (boot-guile-uri arch)
 | 
					(define (boot-guile-uri arch)
 | 
				
			||||||
| 
						 | 
					@ -275,3 +283,76 @@ typically used for managing software packages installed from source, by
 | 
				
			||||||
letting you install them apart in distinct directories and then create
 | 
					letting you install them apart in distinct directories and then create
 | 
				
			||||||
symlinks to the files in a common directory such as /usr/local.")
 | 
					symlinks to the files in a common directory such as /usr/local.")
 | 
				
			||||||
    (license gpl2+)))
 | 
					    (license gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public rpm
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (name "rpm")
 | 
				
			||||||
 | 
					    (version "4.12.0")
 | 
				
			||||||
 | 
					    (source (origin
 | 
				
			||||||
 | 
					              (method url-fetch)
 | 
				
			||||||
 | 
					              (uri (string-append "http://rpm.org/releases/rpm-4.12.x/rpm-"
 | 
				
			||||||
 | 
					                                  version ".tar.bz2"))
 | 
				
			||||||
 | 
					              (sha256
 | 
				
			||||||
 | 
					               (base32
 | 
				
			||||||
 | 
					                "18hk47hc755nslvb7xkq4jb095z7va0nlcyxdpxayc4lmb8mq3bp"))))
 | 
				
			||||||
 | 
					    (build-system gnu-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     '(#:configure-flags '("--with-external-db"   ;use the system's bdb
 | 
				
			||||||
 | 
					                           "--enable-python"
 | 
				
			||||||
 | 
					                           "--without-lua")
 | 
				
			||||||
 | 
					       #:phases (modify-phases %standard-phases
 | 
				
			||||||
 | 
					                  (add-before 'configure 'set-nspr-search-path
 | 
				
			||||||
 | 
					                    (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					                      ;; nspr.pc contains the right -I flag pointing to
 | 
				
			||||||
 | 
					                      ;; 'include/nspr', but unfortunately 'configure' doesn't
 | 
				
			||||||
 | 
					                      ;; use 'pkg-config'.  Thus, augment CPATH.
 | 
				
			||||||
 | 
					                      ;; Likewise for NSS.
 | 
				
			||||||
 | 
					                      (let ((nspr (assoc-ref inputs "nspr"))
 | 
				
			||||||
 | 
					                            (nss  (assoc-ref inputs "nss")))
 | 
				
			||||||
 | 
					                        (setenv "CPATH"
 | 
				
			||||||
 | 
					                                (string-append (getenv "CPATH") ":"
 | 
				
			||||||
 | 
					                                               nspr "/include/nspr:"
 | 
				
			||||||
 | 
					                                               nss "/include/nss"))
 | 
				
			||||||
 | 
					                        (setenv "LIBRARY_PATH"
 | 
				
			||||||
 | 
					                                (string-append (getenv "LIBRARY_PATH") ":"
 | 
				
			||||||
 | 
					                                               nss "/lib/nss"))
 | 
				
			||||||
 | 
					                        #t)))
 | 
				
			||||||
 | 
					                  (add-after 'install 'fix-rpm-symlinks
 | 
				
			||||||
 | 
					                    (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					                      ;; 'make install' gets these symlinks wrong.  Fix them.
 | 
				
			||||||
 | 
					                      (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                             (bin (string-append out "/bin")))
 | 
				
			||||||
 | 
					                        (with-directory-excursion bin
 | 
				
			||||||
 | 
					                          (for-each (lambda (file)
 | 
				
			||||||
 | 
					                                      (delete-file file)
 | 
				
			||||||
 | 
					                                      (symlink "rpm" file))
 | 
				
			||||||
 | 
					                                    '("rpmquery" "rpmverify"))
 | 
				
			||||||
 | 
					                          #t)))))))
 | 
				
			||||||
 | 
					    (native-inputs
 | 
				
			||||||
 | 
					     `(("pkg-config" ,pkg-config)))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("python" ,python-2)
 | 
				
			||||||
 | 
					       ("xz" ,xz)
 | 
				
			||||||
 | 
					       ("bdb" ,bdb)
 | 
				
			||||||
 | 
					       ("popt" ,popt)
 | 
				
			||||||
 | 
					       ("nss" ,nss)
 | 
				
			||||||
 | 
					       ("nspr" ,nspr)
 | 
				
			||||||
 | 
					       ("libarchive" ,libarchive)
 | 
				
			||||||
 | 
					       ("nettle" ,nettle)            ;XXX: actually a dependency of libarchive
 | 
				
			||||||
 | 
					       ("file" ,file)
 | 
				
			||||||
 | 
					       ("bzip2" ,bzip2)
 | 
				
			||||||
 | 
					       ("zlib" ,zlib)
 | 
				
			||||||
 | 
					       ("cpio" ,cpio)))
 | 
				
			||||||
 | 
					    (home-page "http://www.rpm.org/")
 | 
				
			||||||
 | 
					    (synopsis "The RPM Package Manager")
 | 
				
			||||||
 | 
					    (description
 | 
				
			||||||
 | 
					     "The RPM Package Manager (RPM) is a command-line driven package
 | 
				
			||||||
 | 
					management system capable of installing, uninstalling, verifying, querying,
 | 
				
			||||||
 | 
					and updating computer software packages.  Each software package consists of an
 | 
				
			||||||
 | 
					archive of files along with information about the package like its version, a
 | 
				
			||||||
 | 
					description.  There is also a library permitting developers to manage such
 | 
				
			||||||
 | 
					transactions from C or Python.")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ;; The whole is GPLv2+; librpm itself is dual-licensed LGPLv2+ | GPLv2+.
 | 
				
			||||||
 | 
					    (license gpl2+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue