Merging from trunk.

I tried to fix some trivial conflicts.
I don't know if I merged well some more difficult conflicts on openssl/darwin_patch
or haskell-platform.


svn path=/nixpkgs/branches/stdenv-updates/; revision=22878
This commit is contained in:
Lluís Batlle i Rossell 2010-08-02 15:48:19 +00:00
commit 5417c720fd
674 changed files with 10063 additions and 117749 deletions

View File

@ -12,4 +12,3 @@ src-for-default.nix will contain advertisedUrl (raw URL chosen on the site; its
nixpkgs/pkgs/build-support/upstream-updater directory contains some scripts. The worker script is called update-upstream-data.sh. This script requires main expression name (e.g. default.nix). It can optionally accpet a second parameter, URL which will be used instead of getting one by parsing the downloadPage (version extraction, mirror URL creation etc. will still be run). After running the script, check src-for-default.nix (or replace default.nix with expression name, if there are seceral expressions in the directory) for new version information.

View File

@ -1,4 +1,829 @@
#!/bin/sh
# This is actually -*- mode: scheme; coding: utf-8; -*- text.
main='(module-ref (resolve-module '\''(gnupdate)) '\'gnupdate')'
exec ${GUILE-guile} -L "$PWD" -l "$0" \
-c "(apply $main (command-line))" "$@"
!#
;;; GNUpdate -- Update GNU packages in Nixpkgs.
;;; Copyright (C) 2010 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This program 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.
;;;
;;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
exec "${GUILE:-guile}" $GUILE_FLAGS -L . -l gnupdate.scm \
-e '(apply main (cdr (command-line)))' -- "$@"
(cond-expand (guile-2 #t)
(else (error "GNU Guile 2.0 is required")))
(define-module (gnupdate)
#:use-module (sxml ssax)
#:use-module (ice-9 popen)
#:use-module (ice-9 match)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 regex)
#:use-module (ice-9 vlist)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-37)
#:use-module (system foreign)
#:use-module (rnrs bytevectors)
#:export (gnupdate))
;;;
;;; SNix.
;;;
(define-record-type <location>
(make-location file line column)
location?
(file location-file)
(line location-line)
(column location-column))
(define (->loc line column path)
(and line column path
(make-location path (string->number line) (string->number column))))
;; Nix object types visible in the XML output of `nix-instantiate' and
;; mapping to S-expressions (we map to sexps, not records, so that we
;; can do pattern matching):
;;
;; at (at varpat attrspat)
;; attr (attribute loc name value)
;; attrs (attribute-set attributes)
;; attrspat (attribute-set-pattern patterns)
;; bool #f|#t
;; derivation (derivation drv-path out-path attributes)
;; ellipsis '...
;; expr (snix loc body ...)
;; function (function loc at|attrspat|varpat)
;; int int
;; list list
;; null 'null
;; path string
;; string string
;; unevaluated 'unevaluated
;; varpat (varpat name)
;;
;; Initially ATTRIBUTES in `derivation' and `attribute-set' was a promise;
;; however, handling `repeated' nodes makes it impossible to do anything
;; lazily because the whole SXML tree has to be traversed to maintain the
;; list of known derivations.
(define (xml-element->snix elem attributes body derivations)
;; Return an SNix element corresponding to XML element ELEM.
(define (loc)
(->loc (assq-ref attributes 'line)
(assq-ref attributes 'column)
(assq-ref attributes 'path)))
(case elem
((at)
(values `(at ,(car body) ,(cadr body)) derivations))
((attr)
(let ((name (assq-ref attributes 'name)))
(cond ((null? body)
(values `(attribute-pattern ,name) derivations))
((and (pair? body) (null? (cdr body)))
(values `(attribute ,(loc) ,name ,(car body))
derivations))
(else
(error "invalid attribute body" name (loc) body)))))
((attrs)
(values `(attribute-set ,(reverse body)) derivations))
((attrspat)
(values `(attribute-set-pattern ,body) derivations))
((bool)
(values (string-ci=? "true" (assq-ref attributes 'value))
derivations))
((derivation)
(let ((drv-path (assq-ref attributes 'drvPath))
(out-path (assq-ref attributes 'outPath)))
(if (equal? body '(repeated))
(let ((body (vhash-assoc drv-path derivations)))
(if (pair? body)
(values `(derivation ,drv-path ,out-path ,(cdr body))
derivations)
(error "no previous occurrence of derivation"
drv-path)))
(values `(derivation ,drv-path ,out-path ,body)
(vhash-cons drv-path body derivations)))))
((ellipsis)
(values '... derivations))
((expr)
(values `(snix ,(loc) ,@body) derivations))
((function)
(values `(function ,(loc) ,body) derivations))
((int)
(values (string->number (assq-ref attributes 'value))
derivations))
((list)
(values body derivations))
((null)
(values 'null derivations))
((path)
(values (assq-ref attributes 'value) derivations))
((repeated)
(values 'repeated derivations))
((string)
(values (assq-ref attributes 'value) derivations))
((unevaluated)
(values 'unevaluated derivations))
((varpat)
(values `(varpat ,(assq-ref attributes 'name)) derivations))
(else (error "unhandled Nix XML element" elem))))
(define xml->snix
;; Return the SNix represention of TREE, an SXML tree as returned by
;; parsing the XML output of `nix-instantiate' on Nixpkgs.
(let ((parse
(ssax:make-parser NEW-LEVEL-SEED
(lambda (elem-gi attributes namespaces expected-content
seed)
(cons '() (cdr seed)))
FINISH-ELEMENT
(lambda (elem-gi attributes namespaces parent-seed
seed)
(let ((snix (car seed))
(derivations (cdr seed)))
(let-values (((snix derivations)
(xml-element->snix elem-gi
attributes
snix
derivations)))
(cons (cons snix (car parent-seed))
derivations))))
CHAR-DATA-HANDLER
(lambda (string1 string2 seed)
;; Discard inter-node strings, which are blanks.
seed))))
(lambda (port)
;; Discard the second value returned by the parser (the derivation
;; vhash).
(caar (parse port (cons '() vlist-null))))))
(define (call-with-package snix proc)
(match snix
(('attribute _ (and attribute-name (? string?))
('derivation _ _ body))
;; Ugly pattern matching.
(let ((meta
(any (lambda (attr)
(match attr
(('attribute _ "meta" ('attribute-set metas)) metas)
(_ #f)))
body))
(package-name
(any (lambda (attr)
(match attr
(('attribute _ "name" (and name (? string?)))
name)
(_ #f)))
body))
(location
(any (lambda (attr)
(match attr
(('attribute loc "name" (? string?))
loc)
(_ #f)))
body))
(src
(any (lambda (attr)
(match attr
(('attribute _ "src" src)
src)
(_ #f)))
body)))
(proc attribute-name package-name location meta src)))))
(define (call-with-src snix proc)
;; Assume SNIX contains the SNix expression for the value of an `src'
;; attribute, as returned by `call-with-package', and call PROC with the
;; relevant SRC information, or #f if SNIX doesn't match.
(match snix
(('derivation _ _ body)
(let ((name
(any (lambda (attr)
(match attr
(('attribute _ "name" (and name (? string?)))
name)
(_ #f)))
body))
(output-hash
(any (lambda (attr)
(match attr
(('attribute _ "outputHash" (and hash (? string?)))
hash)
(_ #f)))
body))
(urls
(any (lambda (attr)
(match attr
(('attribute _ "urls" (and urls (? pair?)))
urls)
(_ #f)))
body)))
(proc name output-hash urls)))
(_ (proc #f #f #f))))
(define (src->values snix)
(call-with-src snix values))
(define (attribute-value attribute)
;; Return the value of ATTRIBUTE.
(match attribute
(('attribute _ _ value) value)))
(define (derivation-source derivation)
;; Return the "src" attribute of DERIVATION or #f if not found.
(match derivation
(('derivation _ _ (attributes ...))
(find-attribute-by-name "src" attributes))))
(define (derivation-output-path derivation)
;; Return the output path of DERIVATION.
(match derivation
(('derivation _ out-path _)
out-path)
(_ #f)))
(define (source-output-path src)
;; Return the output path of SRC, the "src" attribute of a derivation.
(derivation-output-path (attribute-value src)))
(define (derivation-source-output-path derivation)
;; Return the output path of the "src" attribute of DERIVATION or #f if
;; DERIVATION lacks an "src" attribute.
(and=> (derivation-source derivation) source-output-path))
(define (open-nixpkgs nixpkgs)
(let ((script (string-append nixpkgs
"/maintainers/scripts/eval-release.nix")))
(open-pipe* OPEN_READ "nix-instantiate"
"--strict" "--eval-only" "--xml"
script)))
(define (nix-prefetch-url url)
;; Download URL in the Nix store and return the base32-encoded SHA256 hash
;; of the file at URL
(let* ((pipe (open-pipe* OPEN_READ "nix-prefetch-url" url))
(hash (read-line pipe)))
(close-pipe pipe)
(if (eof-object? hash)
(values #f #f)
(let* ((pipe (open-pipe* OPEN_READ "nix-store" "--print-fixed-path"
"sha256" hash (basename url)))
(path (read-line pipe)))
(if (eof-object? path)
(values #f #f)
(values (string-trim-both hash) (string-trim-both path)))))))
(define (update-nix-expression file
old-version old-hash
new-version new-hash)
;; Modify FILE in-place. Ugly: we call out to sed(1).
(let ((cmd (format #f "sed -i \"~a\" -e 's/~A/~a/g ; s/~A/~A/g'"
file
(regexp-quote old-version) new-version
old-hash
(or new-hash "new hash not available, check the log"))))
(format #t "running `~A'...~%" cmd)
(system cmd)))
(define (find-attribute-by-name name attributes)
;; Return attribute NAME in ATTRIBUTES, a list of SNix attributes, or #f if
;; NAME cannot be found.
(find (lambda (a)
(match a
(('attribute _ (? (cut string=? <> name)) _)
a)
(_ #f)))
attributes))
(define (find-package-by-attribute-name name packages)
;; Return the package bound to attribute NAME in PACKAGES, a list of
;; packages (SNix attributes), or #f if NAME cannot be found.
(find (lambda (package)
(match package
(('attribute _ (? (cut string=? <> name))
('derivation _ _ _))
package)
(_ #f)))
packages))
(define (stdenv-package packages)
;; Return the `stdenv' package from PACKAGES, a list of SNix attributes.
(find-package-by-attribute-name "stdenv" packages))
(define (package-requisites package)
;; Return the list of derivations required to build PACKAGE (including that
;; of PACKAGE) by recurring into its derivation attributes.
(let loop ((snix package)
(result '()))
(match snix
(('attribute _ _ body)
(loop body result))
(('derivation _ out-path body)
(if (any (lambda (d)
(match d
(('derivation _ (? (cut string=? out-path <>)) _) #t)
(_ #f)))
result)
result
(loop body (cons snix result))))
((things ...)
(fold loop result things))
(_ result))))
(define (package-source-output-path package)
;; Return the output path of the "src" derivation of PACKAGE.
(derivation-source-output-path (attribute-value package)))
;;;
;;; FTP client.
;;;
(define-record-type <ftp-connection>
(%make-ftp-connection socket addrinfo)
ftp-connection?
(socket ftp-connection-socket)
(addrinfo ftp-connection-addrinfo))
(define %ftp-ready-rx
(make-regexp "^([0-9]{3}) (.+)$"))
(define (%ftp-listen port)
(let loop ((line (read-line port)))
(cond ((eof-object? line) (values line #f))
((regexp-exec %ftp-ready-rx line)
=>
(lambda (match)
(values (string->number (match:substring match 1))
(match:substring match 2))))
(else
(loop (read-line port))))))
(define (%ftp-command command expected-code port)
(format port "~A~A~A" command (string #\return) (string #\newline))
(let-values (((code message) (%ftp-listen port)))
(if (eqv? code expected-code)
message
(throw 'ftp-error port command code message))))
(define (%ftp-login user pass port)
(let ((command (string-append "USER " user (string #\newline))))
(display command port)
(let-values (((code message) (%ftp-listen port)))
(case code
((230) #t)
((331) (%ftp-command (string-append "PASS " pass) 230 port))
(else (throw 'ftp-error port command code message))))))
(define (ftp-open host)
(catch 'getaddrinfo-error
(lambda ()
(let* ((ai (car (getaddrinfo host "ftp")))
(s (socket (addrinfo:fam ai) (addrinfo:socktype ai)
(addrinfo:protocol ai))))
(connect s (addrinfo:addr ai))
(setvbuf s _IOLBF)
(let-values (((code message) (%ftp-listen s)))
(if (eqv? code 220)
(begin
;(%ftp-command "OPTS UTF8 ON" 200 s)
(%ftp-login "anonymous" "ludo@example.com" s)
(%make-ftp-connection s ai))
(begin
(format (current-error-port) "FTP to `~a' failed: ~A: ~A~%"
host code message)
(close s)
#f)))))
(lambda (key errcode)
(format (current-error-port) "failed to resolve `~a': ~a~%"
host (gai-strerror errcode))
#f)))
(define (ftp-close conn)
(close (ftp-connection-socket conn)))
(define (ftp-chdir conn dir)
(%ftp-command (string-append "CWD " dir) 250
(ftp-connection-socket conn)))
(define (ftp-pasv conn)
(define %pasv-rx
(make-regexp "([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+),([0-9]+)"))
(let ((message (%ftp-command "PASV" 227 (ftp-connection-socket conn))))
(cond ((regexp-exec %pasv-rx message)
=>
(lambda (match)
(+ (* (string->number (match:substring match 5)) 256)
(string->number (match:substring match 6)))))
(else
(throw 'ftp-error conn "PASV" 227 message)))))
(define* (ftp-list conn #:optional directory)
(define (address-with-port sa port)
(let ((fam (sockaddr:fam sa))
(addr (sockaddr:addr sa)))
(cond ((= fam AF_INET)
(make-socket-address fam addr port))
((= fam AF_INET6)
(make-socket-address fam addr port
(sockaddr:flowinfo sa)
(sockaddr:scopeid sa)))
(else #f))))
(if directory
(ftp-chdir conn directory))
(let* ((port (ftp-pasv conn))
(ai (ftp-connection-addrinfo conn))
(s (socket (addrinfo:fam ai) (addrinfo:socktype ai)
(addrinfo:protocol ai))))
(connect s (address-with-port (addrinfo:addr ai) port))
(setvbuf s _IOLBF)
(dynamic-wind
(lambda () #t)
(lambda ()
(%ftp-command "LIST" 150 (ftp-connection-socket conn))
(let loop ((line (read-line s))
(result '()))
(cond ((eof-object? line) (reverse result))
((regexp-exec %ftp-ready-rx line)
=>
(lambda (match)
(let ((code (string->number (match:substring match 1))))
(if (= 126 code)
(reverse result)
(throw 'ftp-error conn "LIST" code)))))
(else
(loop (read-line s)
(let ((file (car (reverse (string-tokenize line)))))
(cons file result)))))))
(lambda ()
(close s)
(let-values (((code message) (%ftp-listen (ftp-connection-socket conn))))
(or (eqv? code 226)
(throw 'ftp-error conn "LIST" code message)))))))
;;;
;;; GNU.
;;;
(define %ignored-package-attributes
;; Attribute name of packages to be ignored.
'("bash" "bashReal" "bashInteractive" ;; the full versioned name is incorrect
"autoconf213"
"automake17x"
"automake19x"
"automake110x"
"automake" ;; = 1.10.x
"bison1875"
"bison23"
"bison" ;; = 2.3
"emacs22"
"emacsSnapshot"
"gcc295"
"gcc33"
"gcc34"
"gcc40"
"gcc41"
"gcc42"
"gcc43"
"gcc44"
"gcc45"
"glibc25"
"glibc27"
"glibc29"
"guile_1_9"
))
(define (gnu? package)
;; Return true if PACKAGE (a snix expression) is a GNU package (according
;; to a simple heuristic.) Otherwise return #f.
(match package
(('attribute _ _ ('derivation _ _ body))
(any (lambda (attr)
(match attr
(('attribute _ "meta" ('attribute-set metas))
(any (lambda (attr)
(match attr
(('attribute _ "description" value)
(string-prefix? "GNU" value))
(('attribute _ "homepage" value)
(string-contains value "www.gnu.org"))
(_ #f)))
metas))
(_ #f)))
body))
(_ #f)))
(define (gnu-packages packages)
(fold (lambda (package gnu)
(match package
(('attribute _ "emacs23Packages" emacs-packages)
;; XXX: Should prepend `emacs23Packages.' to attribute names.
(append (gnu-packages emacs-packages) gnu))
(('attribute _ attribute-name ('derivation _ _ body))
(if (member attribute-name %ignored-package-attributes)
gnu
(if (gnu? package)
(cons package gnu)
gnu)))
(_ gnu)))
'()
packages))
(define (ftp-server/directory project)
(define quirks
'(("commoncpp2" "ftp.gnu.org" "/gnu/commoncpp" #f)
("libgcrypt" "ftp.gnupg.org" "/gcrypt" #t)
("libgpg-error" "ftp.gnupg.org" "/gcrypt" #t)
("gnupg" "ftp.gnupg.org" "/gcrypt" #t)
("gnu-ghostscript" "ftp.gnu.org" "/ghostscript" #f)
("grub" "alpha.gnu.org" "/gnu" #t)
("GNUnet" "ftp.gnu.org" "/gnu/gnunet" #f)
("mit-scheme" "ftp.gnu.org" "/gnu/mit-scheme/stable.pkg")
("icecat" "ftp.gnu.org" "/gnu/gnuzilla" #f)
("TeXmacs" "ftp.texmacs.org" "/TeXmacs/targz" #f)))
(let ((quirk (assoc project quirks)))
(match quirk
((_ server directory subdir?)
(values server (if (not subdir?)
directory
(string-append directory "/" project))))
(_
(values "ftp.gnu.org" (string-append "/gnu/" project))))))
(define (nixpkgs->gnu-name project)
(define quirks
'(("gcc-wrapper" . "gcc")
("ghostscript" . "gnu-ghostscript") ;; ../ghostscript/gnu-ghoscript-X.Y.tar.gz
("gnum4" . "m4")
("gnugrep" . "grep")
("gnused" . "sed")
("gnutar" . "tar")
("gnunet" . "GNUnet") ;; ftp.gnu.org/gnu/gnunet/GNUnet-x.y.tar.gz
("mitscheme" . "mit-scheme")
("texmacs" . "TeXmacs")))
(or (assoc-ref quirks project) project))
(define (releases project)
;; TODO: Handle project release trees like that of IceCat and MyServer.
(define release-rx
(make-regexp (string-append "^" project "-[0-9].*\\.tar\\.")))
(catch #t
(lambda ()
(let-values (((server directory) (ftp-server/directory project)))
(let* ((conn (ftp-open server))
(files (ftp-list conn directory)))
(ftp-close conn)
(map (lambda (tarball)
(let ((end (string-contains tarball ".tar")))
(substring tarball 0 end)))
;; Filter out signatures, deltas, and files which are potentially
;; not releases of PROJECT (e.g., in /gnu/guile, filter out
;; guile-oops and guile-www).
(filter (lambda (file)
(and (not (string-suffix? ".sig" file))
(regexp-exec release-rx file)))
files)))))
(lambda (key subr message . args)
(format (current-error-port)
"failed to get release list for `~A': ~A ~A~%"
project message args)
'())))
(define version-string>?
(let ((strverscmp
(let ((sym (or (dynamic-func "strverscmp" (dynamic-link))
(error "could not find `strverscmp' (from GNU libc)"))))
(make-foreign-function int sym (list '* '*))))
(string->null-terminated-utf8
(lambda (s)
(let* ((utf8 (string->utf8 s))
(len (bytevector-length utf8))
(nts (make-bytevector (+ len 1))))
(bytevector-copy! utf8 0 nts 0 len)
(bytevector-u8-set! nts len 0)
nts))))
(lambda (a b)
(let ((a (bytevector->foreign (string->null-terminated-utf8 a)))
(b (bytevector->foreign (string->null-terminated-utf8 b))))
(> (strverscmp a b) 0)))))
(define (latest-release project)
;; Return "FOO-X.Y" or #f.
(let ((releases (releases project)))
(and (not (null? releases))
(fold (lambda (release latest)
(if (version-string>? release latest)
release
latest))
""
releases))))
(define (package/version name+version)
(let ((hyphen (string-rindex name+version #\-)))
(if (not hyphen)
(values name+version #f)
(let ((name (substring name+version 0 hyphen))
(version (substring name+version (+ hyphen 1)
(string-length name+version))))
(values name version)))))
(define (file-extension file)
(let ((dot (string-rindex file #\.)))
(and dot (substring file (+ 1 dot) (string-length file)))))
(define (packages-to-update gnu-packages)
(fold (lambda (pkg result)
(call-with-package pkg
(lambda (attribute name+version location meta src)
(let-values (((name old-version)
(package/version name+version)))
(let ((latest (latest-release (nixpkgs->gnu-name name))))
(cond ((not latest)
(format #t "~A [unknown latest version]~%"
name+version)
result)
((string=? name+version latest)
(format #t "~A [up to date]~%" name+version)
result)
(else
(let-values (((project new-version)
(package/version latest))
((old-name old-hash old-urls)
(src->values src)))
(format #t "~A -> ~A [~A]~%" name+version latest
(and (pair? old-urls) (car old-urls)))
(let* ((url (and (pair? old-urls)
(car old-urls)))
(new-hash (fetch-gnu project new-version
(if url
(file-extension url)
"gz"))))
(cons (list name attribute
old-version old-hash
new-version new-hash
location)
result))))))))))
'()
gnu-packages))
(define (fetch-gnu project version archive-type)
(let-values (((server directory)
(ftp-server/directory project)))
(let* ((base (string-append project "-" version ".tar." archive-type))
(url (string-append "ftp://" server "/" directory "/" base))
(sig (string-append base ".sig"))
(sig-url (string-append url ".sig")))
(let-values (((hash path) (nix-prefetch-url url)))
(pk 'prefetch-url url hash path)
(and hash path
(begin
(false-if-exception (delete-file sig))
(system* "wget" sig-url)
(if (file-exists? sig)
(let ((ret (system* "gpg" "--verify" sig path)))
(false-if-exception (delete-file sig))
(if (and ret (= 0 (status:exit-val ret)))
hash
(begin
(format (current-error-port)
"signature verification failed for `~a'~%"
base)
(format (current-error-port)
"(could be because the public key is not in your keyring)~%")
#f)))
(begin
(format (current-error-port)
"no signature for `~a'~%" base)
hash))))))))
;;;
;;; Main program.
;;;
(define %options
;; Specifications of the command-line options.
(list (option '(#\h "help") #f #f
(lambda (opt name arg result)
(format #t "Usage: gnupdate [OPTIONS...]~%")
(format #t "GNUpdate -- update Nix expressions of GNU packages in Nixpkgs~%")
(format #t "~%")
(format #t " -x, --xml=FILE Read XML output of `nix-instantiate'~%")
(format #t " from FILE.~%")
(format #t " -s, --select=SET Update only packages from SET, which may~%")
(format #t " be either `all', `stdenv', or `non-stdenv'.~%")
(format #t " -d, --dry-run Don't actually update Nix expressions~%")
(format #t " -h, --help Give this help list.~%~%")
(format #t "Report bugs to <ludo@gnu.org>~%")
(exit 0)))
(option '(#\s "select") #t #f
(lambda (opt name arg result)
(cond ((string-ci=? arg "stdenv")
(alist-cons 'filter 'stdenv result))
((string-ci=? arg "non-stdenv")
(alist-cons 'filter 'non-stdenv result))
((string-ci=? arg "all")
(alist-cons 'filter #f result))
(else
(format (current-error-port)
"~A: unrecognized selection type~%"
arg)
(exit 1)))))
(option '(#\d "dry-run") #f #f
(lambda (opt name arg result)
(alist-cons 'dry-run #t result)))
(option '(#\x "xml") #t #f
(lambda (opt name arg result)
(alist-cons 'xml-file arg result)))))
(define (gnupdate . args)
;; Assume Nixpkgs is under $NIXPKGS or ~/src/nixpkgs.
(let* ((opts (args-fold (cdr args) %options
(lambda (opt name arg result)
(error "unrecognized option `~A'" name))
(lambda (operand result)
(error "extraneous argument `~A'" operand))
'()))
(home (getenv "HOME"))
(path (or (getenv "NIXPKGS")
(string-append home "/src/nixpkgs")))
(snix (begin
(format (current-error-port) "parsing XML...~%")
(xml->snix
(or (and=> (assoc-ref opts 'xml-file) open-input-file)
(open-nixpkgs path)))))
(packages (match snix
(('snix _ ('attribute-set attributes))
attributes)
(_ #f)))
(stdenv (delay
;; The source tarballs that make up stdenv.
(filter-map derivation-source-output-path
(package-requisites (stdenv-package packages)))))
(gnu (gnu-packages packages))
(gnu* (case (assoc-ref opts 'filter)
;; Filter out packages that are/aren't in `stdenv'. To
;; do that reliably, we check whether their "src"
;; derivation is a requisite of stdenv.
((stdenv)
(filter (lambda (p)
(member (package-source-output-path p)
(force stdenv)))
gnu))
((non-stdenv)
(filter (lambda (p)
(not (member (package-source-output-path p)
(force stdenv))))
gnu))
(else gnu)))
(updates (packages-to-update gnu*)))
(format #t "~%~A packages to update...~%" (length updates))
(for-each (lambda (update)
(match update
((name attribute
old-version old-hash
new-version new-hash
location)
(if (assoc-ref opts 'dry-run)
(format #t "`~a' would be updated from ~a to ~a (~a -> ~a)~%"
name old-version new-version
old-hash new-hash)
(update-nix-expression (location-file location)
old-version old-hash
new-version new-hash)))
(_ #f)))
updates)
#t))

View File

@ -1,7 +1,10 @@
args: with args;
{ stdenv, fetchurl, scons, boost, pkgconfig, fftw, librdf_raptor
, librdf_rasqal, jackaudio, flac, libsamplerate, alsaLib, libxml2
, libxslt, libsndfile, libsigcxx, libusb, cairomm, glib, pango
, gtk, glibmm, gtkmm, libgnomecanvas, librdf, liblo, aubio
, fftwSinglePrec, libmad }:
stdenv.mkDerivation {
name = "ardour-2.8.2";
# svn is the source to get official releases from their site?
@ -13,11 +16,10 @@ stdenv.mkDerivation {
};
buildInputs = [
scons boost
pkgconfig fftw librdf_raptor librdf_rasqal jackaudio flac
libsamplerate alsaLib libxml2 libxslt libsndfile libsigcxx libusb cairomm
glib pango gtk glibmm gtkmm libgnomecanvas fftw librdf liblo aubio
fftw fftwSinglePrec libmad
scons boost pkgconfig fftw librdf_raptor librdf_rasqal jackaudio
flac libsamplerate alsaLib libxml2 libxslt libsndfile libsigcxx
libusb cairomm glib pango gtk glibmm gtkmm libgnomecanvas librdf
liblo aubio fftwSinglePrec libmad
];
buildPhase = ''
@ -35,7 +37,7 @@ stdenv.mkDerivation {
'';
homepage = http://ardour.org/;
license = "GPLv2";
maintainers = [args.lib.maintainers.marcweber];
platforms = args.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,36 +1,37 @@
args: with args;
args.stdenv.mkDerivation {
{ stdenv, fetchurl, zlib, guile, libart_lgpl, pkgconfig, intltool
, gtk, glib, libogg, libvorbis, libgnomecanvas, gettext, perl }:
stdenv.mkDerivation {
name = "beast-0.7.1";
src = args.fetchurl {
src = fetchurl {
url = ftp://beast.gtk.org/pub/beast/v0.7/beast-0.7.1.tar.bz2;
sha256 = "0jyl1i1918rsn4296w07fsf6wx3clvad522m3bzgf8ms7gxivg5l";
};
buildInputs =[zlib guile libart_lgpl pkgconfig intltool gtk glib
buildInputs =
[ zlib guile libart_lgpl pkgconfig intltool gtk glib
libogg libvorbis libgnomecanvas gettext
];
inherit bash perl;
];
patchPhase = ''
unset patchPhase; patchPhase
sed 's=-DG_DISABLE_DEPRECATED==g' -i `find -type f` # the patches didn't remove all occurences
sed 's=/bin/bash=/$bash/bin/bash=g' -i `find -type f`
sed 's=/usr/bin/perl=/$perl/bin/bash=g' -i `find -type f`
sed 's=/bin/bash=/${stdenv.shell}=g' -i `find -type f`
sed 's=/usr/bin/perl=/${perl}/bin/perl=g' -i `find -type f`
'';
patches = [
(fetchurl {
url = mirror://gentoo/distfiles/beast-0.7.1-guile-1.8.diff.bz2;
sha256 = "dc5194deff4b0a0eec368a69090db682d0c3113044ce2c2ed017ddfec9d3814e";
})
./patch.patch # patches taken from gentoo
];
patches =
[ (fetchurl {
url = mirror://gentoo/distfiles/beast-0.7.1-guile-1.8.diff.bz2;
sha256 = "dc5194deff4b0a0eec368a69090db682d0c3113044ce2c2ed017ddfec9d3814e";
})
./patch.patch # patches taken from gentoo
];
meta = {
description = "BEAST - the Bedevilled Sound Engine";
homepage = http://beast.gtk.org;
license = ["GPL-2" "LGPL-2.1"];
description = "BEAST - the Bedevilled Sound Engine";
homepage = http://beast.gtk.org;
license = ["GPL-2" "LGPL-2.1"];
};
}

View File

@ -1,23 +1,20 @@
args: with args;
{ stdenv, fetchurl, jackaudio, pkgconfig }:
let name = "jackmeter-0.3";
in
stdenv.mkDerivation {
inherit name;
stdenv.mkDerivation rec {
name = "jackmeter-0.3";
src = fetchurl {
url = "http://www.aelius.com/njh/jackmeter/${name}.tar.gz";
sha256 = "03siznnq3f0nnqyighgw9qdq1y4bfrrxs0mk6394pza3sz4b6sgp";
};
buildInputs = [jackaudio pkgconfig];
buildInputs = [ jackaudio pkgconfig ];
meta = {
description = "console jack loudness meter";
description = "Console jack loudness meter";
homepage = http://www.aelius.com/njh/jackmeter/;
license = "GPLv2";
maintainers = [args.lib.maintainers.marcweber];
platforms = args.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,27 +1,22 @@
args: with args;
let localDefs = builderDefs.passthru.function {
src =
fetchurl {
url = http://plugin.org.uk/releases/0.4.15/swh-plugins-0.4.15.tar.gz;
sha256 = "0h462s4mmqg4iw7zdsihnrmz2vjg0fd49qxw2a284bnryjjfhpnh";
};
buildInputs = [fftw ladspaH pkgconfig];
configureFlags = [];
};
in with localDefs;
let
postInstall = fullDepEntry ("
ensureDir \$out/share/ladspa/
ln -s \$out/lib/ladspa \$out/share/ladspa/lib
") [minInit defEnsureDir];
in
{ stdenv, fetchurl, fftw, ladspaH, pkgconfig }:
stdenv.mkDerivation {
name = "swh-plugins-0.4.15";
builder = writeScript "swh-plugins-0.4.15-builder"
(textClosure localDefs [doConfigure doMakeInstall
postInstall doForceShare]);
meta = {
description = "LADSPA format audio plugins";
inherit src;
};
name = "swh-plugins-0.4.15";
src = fetchurl {
url = http://plugin.org.uk/releases/0.4.15/swh-plugins-0.4.15.tar.gz;
sha256 = "0h462s4mmqg4iw7zdsihnrmz2vjg0fd49qxw2a284bnryjjfhpnh";
};
buildInputs = [fftw ladspaH pkgconfig];
postInstall =
''
ensureDir $out/share/ladspa/
ln -s $out/lib/ladspa $out/share/ladspa/lib
'';
meta = {
description = "LADSPA format audio plugins";
};
}

View File

@ -1,28 +1,28 @@
args: with args;
{ stdenv, fetchurl, builderDefs }:
let
src =
fetchurl {
url = http://www.ladspa.org/ladspa_sdk/ladspa.h.txt;
sha256 = "1b908csn85ng9sz5s5d1mqk711cmawain2z8px2ajngihdrynb67";
};
src = fetchurl {
url = http://www.ladspa.org/ladspa_sdk/ladspa.h.txt;
sha256 = "1b908csn85ng9sz5s5d1mqk711cmawain2z8px2ajngihdrynb67";
};
in
let localDefs = builderDefs.passthru.function {
buildInputs = [];
inherit src;
};
in with localDefs;
let localDefs = builderDefs.passthru.function {
buildInputs = [];
inherit src;
};
in with localDefs;
let
copyFile = fullDepEntry ("
ensureDir \$out/include
cp ${src} \$out/include/ladspa.h
") [minInit defEnsureDir];
copyFile = fullDepEntry ("
ensureDir \$out/include
cp ${src} \$out/include/ladspa.h
") [minInit defEnsureDir];
in
stdenv.mkDerivation {
name = "ladspa.h";
builder = writeScript "ladspa.h-builder"
(textClosure localDefs [copyFile]);
meta = {
description = "LADSPA format audio plugins";
inherit src;
};
name = "ladspa.h";
builder = writeScript "ladspa.h-builder"
(textClosure localDefs [copyFile]);
meta = {
description = "LADSPA format audio plugins";
inherit src;
};
}

View File

@ -1,20 +1,20 @@
args:
args.stdenv.mkDerivation {
{ stdenv, fetchurl, qt4, alsaLib, jackaudio }:
stdenv.mkDerivation {
name = "qjackctl-0.3.3";
# some dependencies such as killall have to be installed additionally
name = "qjackctl-0.3.3";
src = args.fetchurl {
src = fetchurl {
url = http://downloads.sourceforge.net/qjackctl/qjackctl-0.3.3.tar.gz;
sha256 = "1z9v208fs79ka6ni3p5v5xb0k5y1wqqm2a9cf903387b9p3fhpxj";
};
buildInputs =(with args; [qt4 alsaLib jackaudio]);
buildInputs = [ qt4 alsaLib jackaudio ];
meta = {
description = "qt jackd control gui tool";
homepage = http://qjackctl.sourceforge.net/;
license = "GPL";
description = "qt jackd control gui tool";
homepage = http://qjackctl.sourceforge.net/;
license = "GPL";
};
}

View File

@ -1,11 +1,10 @@
# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
args: with args;
{ stdenv, fetchurl, libsndfile, qt, fftw, librdf, rubberband
, libsamplerate, vampSDK, alsaLib, librdf_raptor, librdf_rasqal
, redland, jackaudio, pulseaudio, libmad, libogg, liblo, bzip2 }:
stdenv.mkDerivation {
#TODO add plugins!
name = "sonic-visualizer-1.6";
src = fetchurl {
@ -13,16 +12,17 @@ stdenv.mkDerivation {
sha256 = "1dbqqa7anii2jnjpfwm4sr83nn4bwmz68xw4n6clycsz5iqk52f5";
};
buildInputs = [libsndfile qt fftw /* should be fftw3f ??*/ bzip2 librdf rubberband
libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
# optional
jackaudio
# portaudio
pulseaudio
libmad
libogg # ?
# fishsound
liblo
buildInputs =
[ libsndfile qt fftw /* should be fftw3f ??*/ bzip2 librdf rubberband
libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland
# optional
jackaudio
# portaudio
pulseaudio
libmad
libogg # ?
# fishsound
liblo
];
buildPhase = ''
@ -39,7 +39,7 @@ stdenv.mkDerivation {
description = "View and analyse contents of music audio files";
homepage = http://www.sonicvisualiser.org/;
license = "GPLv2";
maintainers = [args.lib.maintainers.marcweber];
platforms = args.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,4 +1,5 @@
args : with args;
{ stdenv, fetchurl, ncurses }:
stdenv.mkDerivation {
name = "bvi-1.3.2";
@ -7,11 +8,11 @@ stdenv.mkDerivation {
sha256 = "110wxqnyianqamxq4y53drqqxb9vp4k2fcvic45qggvlqkqhlfgz";
};
buildInputs = [ncurses];
buildInputs = [ ncurses ];
meta = {
description = "hex editor with vim style keybindings";
homepage = http://bvi.sourceforge.net/download.html;
license = "GPL2";
description = "Hex editor with vim style keybindings";
homepage = http://bvi.sourceforge.net/download.html;
license = "GPL2";
};
}

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, emacs}:
stdenv.mkDerivation rec {
name = "haskell-mode-2.6.1";
name = "haskell-mode-2.7.0";
src = fetchurl {
url = "http://projects.haskell.org/haskellmode-emacs/${name}.tar.gz";
sha256 = "cc33fd0d4692667a6eb56fea3dc549de3897d8dbb7b71818489760f45d564a76";
sha256 = "8b45c55ed5f2b498529a6d7e01b77fea899c1de93e24653cab188cb3a4f495bc";
};
buildInputs = [emacs];

View File

@ -0,0 +1,41 @@
{ fetchurl, stdenv, emacs, texinfo }:
stdenv.mkDerivation rec {
name = "org-7.01f";
src = fetchurl {
url = "http://orgmode.org/${name}.tar.gz";
sha256 = "1db7s57g8gh8w0464n18lxpcz270x9ns63b2blhkz8wrdnk57fia";
};
buildInputs = [ emacs texinfo ];
configurePhase =
'' sed -i Makefile \
-e "s|^prefix=.*$|prefix=$out|g"
'';
installPhase =
'' make install install-info
ensureDir "$out/share/doc/${name}"
cp -v doc/orgcard*.{pdf,txt} "$out/share/doc/${name}"
'';
meta = {
description = "Org-Mode, an Emacs mode for notes, project planning, and authoring";
longDescription =
'' Org-mode is for keeping notes, maintaining ToDo lists, doing project
planning, and authoring with a fast and effective plain-text system.
This package contains a version of Org-mode typically more recent
than that found in GNU Emacs.
'';
license = "GPLv3+";
maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

View File

@ -0,0 +1,28 @@
{stdenv, fetchurl}:
let
version = "0.2-4";
in
stdenv.mkDerivation
{
name = "rudel-${version}";
src = fetchurl
{
url = "mirror://sourceforge/rudel/rudel-${version}.tar.gz";
sha256 = "68247bfb702d929877f6d098932e8b0ca45c573a3510187e1ccc43e5ea194f25";
};
installPhase = ''
for n in . obby zeroconf jupiter; do
ensureDir "$out/share/emacs/site-lisp/$n";
cp $n/*.el "$out/share/emacs/site-lisp/$n/";
done
install -D -m444 doc/card.pdf "$out/share/doc/rudel/card.pdf"
'';
meta = {
homepage = "http://rudel.sourceforge.net/";
description = "Rudel is a collaborative editing environment for GNU Emacs";
license = "GPL";
};
}

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, ant }:
stdenv.mkDerivation {
name = "jedit-4.2";
@ -18,11 +19,11 @@ stdenv.mkDerivation {
cp modes/catalog \$out/lib/modes
";
buildInputs = [ant];
buildInputs = [ ant ];
meta = {
description = "really nice programmers editor written in Java. Give it a try";
homepage = http://www.jedit.org;
license = "GPL";
description = "really nice programmers editor written in Java. Give it a try";
homepage = http://www.jedit.org;
license = "GPL";
};
}

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, ncurses, gettext }:
stdenv.mkDerivation (rec {
pname = "nano";
version = "2.2.3";
@ -9,9 +10,10 @@ stdenv.mkDerivation (rec {
url = "mirror://gnu/nano/${name}.tar.gz";
sha256 = "1vpl993xrpj8bqi1ayga8fc0j2jag90xp6rqakzwm3bxw71hmwi2";
};
buildInputs = [ncurses gettext];
# configureFlags = "--enable-tiny";
configureFlags = "
buildInputs = [ ncurses gettext ];
configureFlags = ''
--disable-browser
--disable-help
--disable-justify
@ -20,7 +22,7 @@ stdenv.mkDerivation (rec {
--disable-speller
--disable-tabcomp
--disable-wrapping
";
'';
meta = {
homepage = http://www.nano-editor.org/;

View File

@ -1,86 +1,17 @@
args:
let
defList = [];
#stdenv and fetchurl are added automatically
getVal = (args.lib.getValue args defList);
check = args.lib.checkFlag args;
reqsList = [
["gtkGUI" "glib" "gtk" "pkgconfig" "libXpm" "libXext" "x11Support"]
["athenaGUI" "libXau" "libXt" "libXaw" "libXpm" "libXext" "x11Support"]
["x11Support" "libX11"]
["hugeFeatures"]
["pythonSupport" "python"]
["perlSupport" "perl"]
["tclSupport" "tcl"]
["eclSupport" "ecl" "gmp" "mpfr"]
["luaSupport" "lua"]
{ stdenv, fetchurl, ncurses }:
# Currently causes problems
["mzSchemeSupport" "pltScheme"]
["perlSupport" "perl"]
["rubySupport" "ruby"]
["hangulSupport"]
["sniffSupport"]
["gettextSupport" "gettext"]
["true" "ncurses"]
["false" "libSM"]
];
nameSuffixes = [
"hugeFeatures" "-huge"
"x11Support" "-X11"
"pythonSupport" "-python"
"perlSupport" "-perl"
"tclSupport" "-tcl"
"ximSupport" "-xim"
"eclSupport" "-ecl"
"luaSupport" "-lua"
"perlSupport" "-perl"
"rubySupport" "-ruby"
"mzSchemeSupport" "-mzscheme"
];
configFlags = [
"true" " --enable-multibyte "
"x11Support" " --enable-gui=auto "
"hugeFeatures" "--with-features=huge --enable-cscope --enable-xsmp "
"pythonSupport" " --enable-pythoninterp "
"perlSupport" " --enable-perlinterp "
"tclSupport" " --enable-tclinterp "
"ximSupport" " --enable-xim "
"eclSupport" " --enable-eclinterp "
"hangulSupport" " --enable-hangulinput "
"perlSupport" " --enable-perlinterp "
"luaSupport" " --enable-luainterp --with-lua-prefix=${args.lua} "
"rubySupport" " --enable-rubyinterp "
"sniffSupport" " --enable-sniff "
"mzSchemeSupport" " --enable-mzschemeinterp "
"gettextSupport" " --enable-nls "
];
buildInputsNames = args.lib.filter (x: (null!=getVal x))
(args.lib.uniqList {inputList =
(args.lib.concatLists (map
(x:(if (x==[]) then [] else builtins.tail x))
reqsList));});
in
assert args.lib.checkReqs args defList reqsList;
args.stdenv.mkDerivation {
name = args.lib.condConcat "vim-7.2" nameSuffixes check;
stdenv.mkDerivation rec {
name = "vim-7.2";
src = args.lib.attrByPath ["src"] (args.fetchurl {
url = ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2;
src = fetchurl {
url = "ftp://ftp.vim.org/pub/vim/unix/${name}.tar.bz2";
sha256 = "11hxkb6r2550c4n13nwr0d8afvh30qjyr5c2hw16zgay43rb0kci";
}) args;
};
inherit (args) ncurses;
buildInputs = args.lib.filter (x: (x!=null)) (map getVal buildInputsNames);
buildInputs = [ ncurses ];
postInstall = "ln -s $out/bin/vim $out/bin/vi";
preBuild="touch src/auto/link.sed";
configureFlags = args.lib.condConcat "" configFlags check;
NIX_LDFLAGS = "-lpthread -lutil";
meta = {
description = "The most popular clone of the VI editor";
homepage = http://www.vim.org;

View File

@ -1,11 +1,11 @@
{ fetchurl, stdenv, ncurses, help2man }:
stdenv.mkDerivation rec {
name = "zile-2.3.16";
name = "zile-2.3.17";
src = fetchurl {
url = "mirror://gnu/zile/${name}.tar.gz";
sha256 = "1lm24sw2ziqsib11sddz7gcqzw5iwfnsx65m1i461kxq218xl59h";
sha256 = "1wrg53qz0s4336nq8z2v7pi18vpz5ifxvlwq4jv0w4rwmbksgvi0";
};
buildInputs = [ ncurses ];

View File

@ -1,4 +1,4 @@
args: with args;
{stdenv, fetchurl, djvulibre, qt4 }:
stdenv.mkDerivation {
name = "djview4-4.1-2";
@ -13,5 +13,7 @@ stdenv.mkDerivation {
homepage = http://djvu.sourceforge.net/djview4.html;
description = "A new portable DjVu viewer and browser plugin";
license = "GPL2";
inherit (qt4.meta) platforms;
maintainers = [ stdenv.lib.maintainers.urkud ];
};
}

View File

@ -1,8 +1,8 @@
args: with args;
{ stdenv, fetchurl, pkgconfig, fltk, openexr, mesa, which, openexr_ctl }:
assert fltk.glSupport;
stdenv.mkDerivation {
stdenv.mkDerivation {
name ="openexr_viewers-1.0.1";
src = fetchurl {
@ -10,18 +10,18 @@ stdenv.mkDerivation {
sha256 = "1w5qbcdp7sw48z1wk2v07f7p14vqqb1m2ncxyxnbkm9f4ab0ymg6";
};
inherit fltk mesa;
configurePhase =
''
# don't know why.. adding these flags it works
#export CXXFLAGS=`fltk-config --use-gl --cxxflags --ldflags`
./configure --prefix=$out --with-fltk-config=${fltk}/bin/fltk-config
'';
configurePhase = "
# don't know why.. adding these flags it works
#export CXXFLAGS=`fltk-config --use-gl --cxxflags --ldflags`
./configure --prefix=\$out --with-fltk-config=\$fltk/bin/fltk-config";
buildInputs = [openexr fltk pkgconfig mesa which openexr_ctl];
buildInputs = [ openexr fltk pkgconfig mesa which openexr_ctl ];
meta = {
description = "tool to view OpenEXR images";
homepage = http://openexr.com;
license = "BSD-like";
description = "Tool to view OpenEXR images";
homepage = http://openexr.com;
license = "BSD-like";
};
}

View File

@ -1,15 +1,27 @@
{ stdenv, fetchurl, pkgconfig, gtk, libpng, exiv2, lcms
, intltool, gettext }:
, intltool, gettext, libchamplain }:
stdenv.mkDerivation rec {
name = "geeqie-1.0beta2";
name = "geeqie-1.0";
src = fetchurl {
url = "mirror://sourceforge/geeqie/${name}.tar.gz";
sha256 = "13h924iykmxwgpx562lrsh2j78fnzyyfmg4w7qgj9vbjq18nq7fd";
sha256 = "1p8z47cqdqqkn8b0fr5bqsfinz4dgqk4353s8f8d9ha6cik69bfi";
};
buildInputs = [ pkgconfig gtk libpng exiv2 lcms intltool gettext ];
preConfigure =
# XXX: Trick to have Geeqie use the version we have.
'' sed -i "configure" \
-e 's/champlain-0.4/champlain-0.6/g ;
s/champlain-gtk-0.4/champlain-gtk-0.6/g'
'';
configureFlags = [ "--enable-gps" ];
buildInputs =
[ pkgconfig gtk libpng exiv2 lcms intltool gettext
libchamplain
];
meta = {
description = "Geeqie, a lightweight GTK+ based image viewer";

View File

@ -4,11 +4,11 @@
}:
stdenv.mkDerivation rec {
name = "gimp-2.6.8";
name = "gimp-2.6.10";
src = fetchurl {
url = "ftp://ftp.gtk.org/pub/gimp/v2.6/${name}.tar.bz2";
sha256 = "0cikkb4l6psankz9yhgal934b41nwk6d5a93r9zib413fj5j3m6m";
sha256 = "0cp0abdmqczncy0miazbyd61sjm63r1mhlwsvbz8lb9m7gkkyypg";
};
buildInputs = [

View File

@ -1,21 +0,0 @@
args : with args;
let localDefs = builderDefs.passthru.function {
src = /* put a fetchurl here */
fetchurl {
url = http://prdownloads.sourceforge.net/jocr/gocr-0.44.tar.gz;
sha256 = "0kvb7cbk6z5n4g0hhbwpdk2f3819yfamwsmkwanj99yhni6p5mr0";
};
buildInputs = [];
configureFlags = [];
};
in with localDefs;
stdenv.mkDerivation rec {
name = "gocr";
builder = writeScript (name + "-builder")
(textClosure localDefs [doConfigure doMakeInstall doForceShare doPropagate]);
meta = {
description = "GPL Optical Character Recognition";
inherit src;
};
}

View File

@ -0,0 +1,14 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "gocr-0.44";
src = fetchurl {
url = http://prdownloads.sourceforge.net/jocr/gocr-0.44.tar.gz;
sha256 = "0kvb7cbk6z5n4g0hhbwpdk2f3819yfamwsmkwanj99yhni6p5mr0";
};
meta = {
description = "GPL Optical Character Recognition";
};
}

View File

@ -3,15 +3,13 @@
glew, libXmu, libXi }:
stdenv.mkDerivation rec {
name = "hugin-2009.4.0";
name = "hugin-2010.0.0";
src = fetchurl {
url = "mirror://sourceforge/hugin/${name}.tar.gz";
sha256 = "1xa7rnpwlv68wfkikmlrs74hqylpkh837p3narqljr2a7fxf04r9";
sha256 = "08xm7ggfrh536lqvdzw7zg09p2awbclw5r7i8c59gf092w1cac7d";
};
# patches = [ ./levmar-64-bit-alignment.patch ];
NIX_CFLAGS_COMPILE = "-I${ilmbase}/include/OpenEXR";
NIX_LDFLAGS = "-lrt";

View File

@ -1,64 +0,0 @@
This patch fixes alignment issues on 64-bit machines. It was taken
from http://www.mail-archive.com/hugin-ptx@googlegroups.com/msg02976.html .
See also http://thread.gmane.org/gmane.linux.distributions.nixos/2352 .
--- hugin/src/foreign/levmar/misc_core.c 2009-04-28 13:30:33.000000000 +0200 # SVN 3799
+++ hugin/src/foreign/levmar/misc_core.c 2009-05-04 07:49:00.000000000 +0200 # Merged patch.pt and fix_alias.diff
@@ -332,7 +332,7 @@
a_sz=m*m;
u_sz=m*m; s_sz=m; vt_sz=m*m;
- tot_sz=iworksz*sizeof(int) + (a_sz + u_sz + s_sz + vt_sz + worksz)*sizeof(LM_REAL);
+ tot_sz=(a_sz + u_sz + s_sz + vt_sz + worksz)*sizeof(LM_REAL) + iworksz*sizeof(int); /* should be arranged in that order for proper doubles alignment */
buf_sz=tot_sz;
buf=(LM_REAL *)malloc(buf_sz);
@@ -414,25 +414,27 @@
int buf_sz=0;
register int i, j, k, l;
-int *idx, maxi=-1, idx_sz, a_sz, x_sz, work_sz, tot_sz;
+int *idxbuf, *idx, maxi=-1, idx_sz, a_sz, x_sz, work_sz, tot_sz;
LM_REAL *a, *x, *work, max, sum, tmp;
/* calculate required memory size */
idx_sz=m;
+ idxbuf=(void *)malloc(idx_sz*sizeof(int));
+
a_sz=m*m;
x_sz=m;
work_sz=m;
- tot_sz=idx_sz*sizeof(int) + (a_sz+x_sz+work_sz)*sizeof(LM_REAL);
+ tot_sz=(a_sz + x_sz + work_sz)*sizeof(LM_REAL) + idx_sz*sizeof(int); /* should be arranged in that order for proper doubles alignment */
buf_sz=tot_sz;
buf=(void *)malloc(tot_sz);
- if(!buf){
+ if(!buf || !idxbuf){
fprintf(stderr, RCAT("memory allocation in ", LEVMAR_LUINVERSE) "() failed!\n");
exit(1);
}
- idx=(int *)buf;
- a=(LM_REAL *)(idx + idx_sz);
+ idx=(int *)idxbuf;
+ a=(LM_REAL *)buf;
x=a + a_sz;
work=x + x_sz;
@@ -448,6 +450,7 @@
if(max==0.0){
fprintf(stderr, RCAT("Singular matrix A in ", LEVMAR_LUINVERSE) "()!\n");
free(buf);
+ free(idxbuf);
return 0;
}
@@ -522,6 +525,7 @@
}
free(buf);
+ free(idxbuf);
return 1;
}

View File

@ -1,4 +1,7 @@
args: with args;
{ stdenv, fetchurl, pkgconfig, perl, perlXMLParser, gtk, libXft
, libpng, zlib, popt, boehmgc, libxml2, libxslt, glib, gtkmm
, glibmm, libsigcxx, lcms, boost, gettext, makeWrapper, intltool
, gsl, python, pyxml, lxml }:
stdenv.mkDerivation rec {
name = "inkscape-0.47";
@ -45,6 +48,5 @@ stdenv.mkDerivation rec {
If you want to import .eps files install ps2edit.
'';
};
}

View File

@ -1,49 +1,37 @@
{stdenv, fetchurl, qt, bzip2, lib3ds, levmar, muparser, unzip}:
stdenv.mkDerivation rec {
name = "meshlab-1.2.2";
name = "meshlab-1.2.3a";
src = fetchurl {
url = mirror://sourceforge/meshlab/MeshLabSrc_v122.tar.gz;
sha256 = "166a8mx72wf3r84pnpr0ssqkd2xw6y5brviywlj8rjk6w9cy8fdc";
url = mirror://sourceforge/meshlab/MeshLabSrc_AllInc_v123a.tgz;
sha256 = "09w42q0x1yjr7l9ng952lic7vkb1arsvqg1fld5s297zwzfmsl9v";
};
srcGlew151 = fetchurl {
url = mirror://sourceforge/glew/glew-1.5.1-src.tgz;
sha256 = "02n1p6s6sia92fgng9iq0kqq890rga8d8g0y34mc6qxmbh43vrl9";
};
srcQHull20031 = fetchurl {
url = http://www.qhull.org/download/qhull-2003.1.zip;
sha256 = "07mh371i6xs691qz6wwzkqk9h0d2dkih2q818is2b041w1l79b46";
};
patchPhase = ''
cd meshlab/src
mkdir external
pushd external
tar xf ${srcGlew151}
mv glew glew-1.5.1
unzip ${srcQHull20031}
popd
'';
# I don't know why I need this; without this, the rpath set at the beginning of the
# buildPhase gets removed from the 'meshlab' binary
dontPatchELF = true;
buildPhase = ''
pwd
export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS"
cd meshlab/src
pushd external
qmake -recursive external.pro
make
popd
qmake -recursive meshlabv12.pro
make
'';
installPhase = ''
ensureDir $out/opt/meshlab $out/bin
pushd meshlab
cp -R meshlab plugins shaders* textures images $out/opt/meshlab
ensureDir $out/opt/meshlab $out/bin $out/lib
pushd distrib
cp -R * $out/opt/meshlab
popd
ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
'';
buildInputs = [ qt bzip2 lib3ds levmar muparser unzip ];
buildInputs = [ qt unzip ];
meta = {
description = "System for the processing and editing of unstructured 3D triangular meshes";

View File

@ -0,0 +1,44 @@
{stdenv, fetchgit, mono, gtksharp, pkgconfig}:
stdenv.mkDerivation {
name = "pinta-0.3";
src = fetchgit {
url = http://github.com/jpobst/Pinta.git;
rev = "0.3";
sha256 = "17fde1187be4cfd50a9acda4ba45584e24d51ff22df5074654bed23f61faf33b";
};
buildInputs = [mono gtksharp pkgconfig];
buildPhase = ''
# xbuild understands pkgconfig, but gtksharp does not give .pc for gdk-sharp
# So we have to go the GAC-way
export MONO_GAC_PREFIX=${gtksharp}
xbuild Pinta.sln
'';
# Very ugly - I don't know enough Mono to improve this. Isn't there any rpath in binaries?
installPhase = ''
ensureDir $out/lib/pinta $out/bin
cp bin/*.{dll,exe} $out/lib/pinta
cat > $out/bin/pinta << EOF
#!/bin/sh
export MONO_GAC_PREFIX=${gtksharp}:\$MONO_GAC_PREFIX
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${gtksharp}/lib:${gtksharp.gtk}/lib:${mono}/lib
exec ${mono}/bin/mono $out/lib/pinta/Pinta.exe
EOF
chmod +x $out/bin/pinta
'';
# Always needed on Mono, otherwise nothing runs
dontStrip = true;
meta = {
homepage = http://www.pinta-project.com/;
description = "Drawing/editing program modeled after Paint.NET";
license = "MIT";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -0,0 +1,40 @@
{ fetchurl, stdenv, erlang, esdl }:
stdenv.mkDerivation rec {
name = "wings-1.3.0.1";
src = fetchurl {
url = "mirror://sourceforge/wings/${name}.tar.bz2";
sha256 = "1zab1qxhgrncwqj1xg6z08m0kqbkdiqp4777p1bv2kczcf31isyp";
};
ERL_LIBS = "${esdl}/lib/erlang/addons";
patchPhase = ''
sed -i 's,include("sdl_keyboard.hrl"),include_lib("esdl/include/sdl_keyboard.hrl"),' \
src/wings_body.erl plugins_src/commands/wpc_constraints.erl
'';
buildInputs = [ erlang esdl ];
installPhase = ''
ensureDir $out/bin $out/lib/${name}/ebin
cp ebin/* $out/lib/${name}/ebin
cp -R fonts textures shaders plugins $out/lib/$name
cat << EOF > $out/bin/wings
#!/bin/sh
export ROOTDIR=$out/lib/erlang/addons/${name}
${erlang}/bin/erl -smp disable -pa ${esdl}/lib/erlang/addons/${esdl.name}/ebin \
-pa $out/lib/${name}/ebin -run wings_start start_halt "$@"
EOF
chmod +x $out/bin/wings
'';
meta = {
homepage = http://www.wings3d.com/;
description = "Subdivision modeler inspired by Nendo and Mirai from Izware";
license = "BSD";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -1,15 +1,18 @@
{ stdenv, fetchurl, pkgconfig, bc, perl, xlibs, libjpeg, mesa, gtk
, libxml2, libglade }:
x@{ pkgconfig, bc, perl, xlibs, libjpeg, mesa, gtk
, libxml2, libglade, builderDefsPackage, ... }:
stdenv.mkDerivation rec {
name = "xscreensaver-5.10";
builderDefsPackage
(a: rec {
version = "5.11";
name = "xscreensaver-${version}";
url = "http://www.jwz.org/xscreensaver/${name}.tar.gz";
src = fetchurl {
url = "http://www.jwz.org/xscreensaver/${name}.tar.gz";
sha256 = "07zy157wqwgcapqycyv89yabxa8byk4p8jn3zlvhf7lx5w1xmval";
src = a.fetchurl {
inherit url;
sha256="0w47s0qd8ab6ywhhhkqjx0grb2b28bh2flnkdpj3yaind202l0s7";
};
buildInputs =
buildInputs = with a;
[ pkgconfig bc perl libjpeg mesa gtk libxml2 libglade
xlibs.xlibs xlibs.libXmu
];
@ -18,19 +21,21 @@ stdenv.mkDerivation rec {
[ "--with-gl"
"--with-dpms"
"--with-pixbuf"
"--with-x-app-defaults=\$out/share/xscreensaver/app-defaults"
"--with-hackdir=\$out/share/xscreensaver-hacks"
"--with-x-app-defaults=\${out}/share/xscreensaver/app-defaults"
"--with-hackdir=\${out}/share/xscreensaver-hacks"
];
preConfigure =
preConfigure = a.fullDepEntry
''
sed -e 's%@GTK_DATADIR@%@datadir@% ; s%@PO_DATADIR@%@datadir@%' \
-i driver/Makefile.in po/Makefile.in.in
'';
'' ["minInit" "doUnpack"];
phaseNames = ["preConfigure" "doConfigure" "doMakeInstall"];
meta = {
description = "A set of screensavers";
maintainers = [ stdenv.lib.maintainers.raskin ];
platforms = stdenv.lib.platforms.allBut "i686-cygwin";
maintainers = [ a.lib.maintainers.raskin ];
platforms = a.lib.platforms.allBut "i686-cygwin";
};
}
}) x

View File

@ -1,15 +1,16 @@
args: with args;
let inherit (args.composableDerivation) composableDerivation edf; in
composableDerivation {} {
{ composableDerivation, lib, fetchurl, alsaLib, libao, lame, libmad }:
name = "sox-14.3.0";
let inherit (composableDerivation) edf; in
src = args.fetchurl {
url = mirror://sourceforge/sox/sox-14.3.0.tar.gz;
sha256 = "15r39dq9nlwrypm0vpxmbxyqqv0bd6284djbi1fdfrlkjhf43gws";
};
composableDerivation.composableDerivation {} {
name = "sox-14.3.0";
flags =
src = fetchurl {
url = mirror://sourceforge/sox/sox-14.3.0.tar.gz;
sha256 = "15r39dq9nlwrypm0vpxmbxyqqv0bd6284djbi1fdfrlkjhf43gws";
};
flags =
# are these options of interest? We'll see
#--disable-fftw disable usage of FFTW
#--enable-debug enable debugging
@ -23,39 +24,21 @@ composableDerivation {} {
// edf { name = "dl-mad"; enable.buildInputs = [ libmad ]; } # use shared library
// edf { name = "mad"; enable.buildInputs =[ libmad ]; }
;
# These options should be autodetected by the configure script
/*
--without-sndfile Don't try to use libsndfile
--without-ogg Don't try to use Ogg Vorbis
--without-flac Don't try to use FLAC
--without-ffmpeg Don't try to use ffmpeg
--without-mad Don't try to use MAD (MP3 Audio Decoder)
--without-lame Don't try to use LAME (LAME Ain't an MP3 Encoder)
--without-amr-wb Don't try to use amr-wb
--without-amr-nb Don't try to use amr-nb
--without-samplerate Don't try to use libsamplerate (aka Secret Rabbit
Code)
--without-ladspa Don't try to use LADSPA
--with-ladspa-path Default search path for LADSPA plugins
*/
cfg = {
ossSupport = false;
sun_audioSupport = false;
} // lib.listToAttrs [
{ name = "dl-lameSupport"; value = true; }
} // lib.listToAttrs
[ { name = "dl-lameSupport"; value = true; }
{ name = "dl-madSupport"; value = true; }
];
];
configureFlags = ["-enable-dl-lame"];
optionals = [ "libsndfile" "libogg" "flac" "ffmpeg" "libmad" "lame"
/* "amr-wb" "amr-nb" */
"libsamplerate" /* "ladspa" */ ];
meta = {
description = "Sample Rate Converter for audio";
homepage = http://www.mega-nerd.com/SRC/index.html;

View File

@ -1,13 +1,14 @@
args:
args.stdenv.mkDerivation {
{ stdenv, fetchurl, snack, tcl, tk, makeWrapper }:
stdenv.mkDerivation {
name = "wavesurfer-1.8.5";
src = args.fetchurl {
src = fetchurl {
url = http://www.speech.kth.se/wavesurfer/wavesurfer-1.8.5.tar.gz;
sha256 = "1yx9s1j47cq0v40cwq2gn7bdizpw46l95ba4zl9z4gg31mfvm807";
};
buildInputs =(with args; [snack tcl tk makeWrapper]);
buildInputs = [ snack tcl tk makeWrapper ];
installPhase = ''
ensureDir $out/{bin,nix-support,share/wavesurfer/}
@ -15,13 +16,13 @@ args.stdenv.mkDerivation {
mv * $out/nix-support
ln -s $out/{nix-support,bin}/wavesurfer.tcl
wrapProgram "$out/nix-support/wavesurfer.tcl" \
--set TCLLIBPATH "${args.snack}/lib" \
--prefix PATH : "${args.tcl}/bin:${args.tk}/bin"
--set TCLLIBPATH "${snack}/lib" \
--prefix PATH : "${tcl}/bin:${tk}/bin"
'';
meta = {
description = "tool for recording, playing, editing, viewing and labeling of audio";
homepage = http://www.speech.kth.se/wavesurfer/;
license = "BSD";
description = "Tool for recording, playing, editing, viewing and labeling of audio";
homepage = http://www.speech.kth.se/wavesurfer/;
license = "BSD";
};
}

View File

@ -1,13 +0,0 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
name = "bluez-firmware-1.1";
src = fetchurl {
url = http://bluez.sf.net/download/bluez-firmware-1.1.tar.gz;
md5 = "2f1c2d939108c865dd07bae3e819c573";
};
meta = {
homepage = http://www.bluez.org;
};
}

View File

@ -1,14 +0,0 @@
{stdenv, fetchurl, bluezLibs}:
stdenv.mkDerivation {
name = "bluez-utils-2.25";
src = fetchurl {
url = http://bluez.sf.net/download/bluez-utils-2.25.tar.gz;
md5 = "ae3729ab5592be06ed01b973d4b3e9fe";
};
buildInputs = [bluezLibs];
meta = {
homepage = http://www.bluez.org;
};
}

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, gtk, glib, pkgconfig, openssl, boost }:
stdenv.mkDerivation {
name = "d4x-2.5.7.1";
@ -12,11 +13,12 @@ stdenv.mkDerivation {
configurePhase = "./configure --prefix=\$out "
+ " --with-boost-libdir=\$boost/lib"
+ " --with-boost-includedir=\$boost/include";
buildInputs = [gtk glib pkgconfig openssl boost];
buildInputs = [ gtk glib pkgconfig openssl boost ];
meta = {
description = "graphical download manager";
homepage = http://www.krasu.ru/soft/chuchelo/;
license = "Artistic";
description = "Graphical download manager";
homepage = http://www.krasu.ru/soft/chuchelo/;
license = "Artistic";
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, lib, useQt3 ? true, libjpeg, libtiff, libpng, ghostscript
{ stdenv, fetchurl, lib, useQt3 ? false, libjpeg, libtiff, libpng, ghostscript
, libungif, zlib, x11, libX11, mesa, qt3 }:
stdenv.mkDerivation {

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "flite-1.3-release";
@ -7,20 +8,22 @@ stdenv.mkDerivation {
sha256 = "12wanxx57bbqgkag54dlqzv6h2kr9053p0z8mkxs0mqy03vja8lj";
};
buildPhase = "
unset buildPhase
ensureDir \$out/lib
buildPhase
";
buildPhase =
''
unset buildPhase
ensureDir $out/lib
buildPhase
'';
installPhase = "
ensureDir \$out/share/flite
cp -r bin \$out
";
installPhase =
''
ensureDir $out/share/flite
cp -r bin $out
'';
meta = {
description = "Flite text to speech engine";
homepage = http://www.speech.cs.cmu.edu/flite/download.html;
license = "BSD as-is";
description = "Flite text to speech engine";
homepage = http://www.speech.cs.cmu.edu/flite/download.html;
license = "BSD as-is";
};
}

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, jdk, jre, ant, coreutils, gnugrep }:
stdenv.mkDerivation {
name = "freemind-0.9.0_RC_6";
@ -7,43 +8,44 @@ stdenv.mkDerivation {
sha256 = "0qxpwqmb4xd8c83zh76gczmx0hsx5m209k7p60kh7c4f25snhngf";
};
buildInputs = [jdk ant];
buildInputs = [ jdk ant ];
phases="unpackPhase patchPhase buildPhase installPhase";
phases = "unpackPhase patchPhase buildPhase installPhase";
patchPhase=''
patchPhase = ''
# There is a complain about this. I don't understand it.
mkdir plugins/plugins
'';
buildPhase="ant dist";
# LIBXCB_ALLOW_SLOPPY_LOCK=true :
# don't know yet what this option really means but I'm no longer getting
# Checking Java Version...
# Locking assertion failure. Backtrace:
# java: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed
# this way
# reference and more info https://bugs.launchpad.net/ubuntu/+source/sun-java5/+bug/86103
# JDK 7 beta seems to have fixed this (bug ?)
# LIBXCB_ALLOW_SLOPPY_LOCK=true :
# don't know yet what this option really means but I'm no longer getting
# Checking Java Version...
# Locking assertion failure. Backtrace:
# java: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock' failed
# this way
# reference and more info https://bugs.launchpad.net/ubuntu/+source/sun-java5/+bug/86103
# JDK 7 beta seems to have fixed this (bug ?)
installPhase=''
installPhase = ''
ensureDir $out/{bin,nix-support}
cp -r ../bin/dist $out/nix-support
sed -i 's/which/type -p/' $out/nix-support/dist/freemind.sh
cat > $out/bin/freemind << EOF
#!/bin/sh
export PATH=${args.coreutils}/bin:${args.gnugrep}/bin:"$PATH"
export PATH=${coreutils}/bin:${gnugrep}/bin:"$PATH"
export JAVA_HOME="${jre}"
export LIBXCB_ALLOW_SLOPPY_LOCK=true
$out/nix-support/dist/freemind.sh
EOF
chmod +x $out/{bin/freemind,nix-support/dist/freemind.sh}
'';
'';
meta = {
description = "mind mapping software";
homepage = http://freemind.sourceforge.net/wiki/index.php/Main_Page;
license = "GPL";
description = "Mind-mapping software";
homepage = http://freemind.sourceforge.net/wiki/index.php/Main_Page;
license = "GPL";
};
}

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, gtk, glib, pkgconfig, libgnome, libgnomeui, vte
, curl, cdparanoia, libid3tag }:
stdenv.mkDerivation {
name = "grip-3.2.0";
@ -8,13 +9,13 @@ stdenv.mkDerivation {
sha256 = "1jh5x35rq15n8ivlp9wbdx8x9mj6agf5rfdv8sd6gai851zsclas";
};
buildInputs = [gtk glib pkgconfig libgnome libgnomeui vte curl cdparanoia libid3tag];
buildInputs = [ gtk glib pkgconfig libgnome libgnomeui vte curl cdparanoia libid3tag ];
meta = {
description = "GTK+ based Audio CD Player/Ripper";
description = "GTK+-based audio CD player/ripper";
homepage = http://nostatic.org/grip;
license = "GPLv2";
maintainers = [args.lib.maintainers.marcweber];
maintainers = [ stdenv.lib.maintainers.marcweber ];
#platforms = args.lib.platforms.linux;
};
}

View File

@ -1,26 +1,34 @@
{ stdenv, fetchurl, perl, gettext, makeWrapper, lib, PerlMagick,
TextMarkdown, URI, HTMLParser, HTMLScrubber, HTMLTemplate, TimeDate,
CGISession, CGIFormBuilder, DBFile, LocaleGettext, RpcXML, XMLSimple
, git ? null
, monotone ? null
, extraUtils ? []
}:
, gitSupport ? false
, git ? null
, monotoneSupport ? false
, monotone ? null
, extraUtils ? []
}:
assert gitSupport -> (git != null);
assert monotoneSupport -> (monotone != null);
let
name = "ikiwiki";
version = "3.20100515";
version = "3.20100704";
in
stdenv.mkDerivation {
name = "${name}-${version}";
src = fetchurl {
url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz";
sha256 = "143f245196d98ab037a097402420208da14506d6a65793d042daef5dd765ddd7";
sha256 = "1kakh2bf9k0fhvqhn9p9g4wwck64if2y9z23zmlcrm02bw1m6lr9";
};
buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate
TimeDate gettext makeWrapper DBFile CGISession CGIFormBuilder LocaleGettext
RpcXML XMLSimple PerlMagick git monotone];
RpcXML XMLSimple PerlMagick]
++ stdenv.lib.optionals gitSupport [git]
++ stdenv.lib.optionals monotoneSupport [monotone];
patchPhase = ''
sed -i s@/usr/bin/perl@${perl}/bin/perl@ pm_filter mdwn2man

View File

@ -1,4 +1,4 @@
args: with args;
{ stdenv, fetchurl, db45, gtk, bzip2 }:
stdenv.mkDerivation {
name = "jigdo-0.7.3";
@ -9,18 +9,18 @@ stdenv.mkDerivation {
sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv";
};
buildInputs = [db45 gtk bzip2];
configureFlags = "--without-libdb";
meta = {
description = "tool designed to ease the distribution of very large files over the internet";
homepage = http://atterer.net/jigdo/;
license = "GPLv2";
};
patches = fetchurl {
url = http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_0.7.3-2.diff.gz;
sha256 = "0jnlzm9m2hjlnw0zs2fv456ml5r2jj2q1lncqbrgg52lq18f6fa3";
};
buildInputs = [ db45 gtk bzip2 ];
configureFlags = "--without-libdb";
meta = {
description = "Download utility that can fetch files from several sources simultaneously";
homepage = http://atterer.net/jigdo/;
license = "GPLv2";
};
}

View File

@ -18,6 +18,6 @@ stdenv.mkDerivation {
homepage = http://merkaartor.org/;
license = "GPLv2+";
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; all;
platforms = qt.meta.platforms;
};
}

View File

@ -1,12 +1,13 @@
args: with args;
stdenv.mkDerivation {
{ stdenv, fetchurl, libX11, libXft, libXi, inputproto, libSM, libICE
, freetype, pkgconfig, which }:
stdenv.mkDerivation {
name = "mrxvt-0.5.4";
buildInputs = [libX11 libXft libXi inputproto libSM libICE
freetype pkgconfig which];
buildInputs =
[ libX11 libXft libXi inputproto libSM libICE freetype pkgconfig which ];
configureFlags=[
configureFlags = [
"--with-x"
"--enable-frills"
"--enable-xft"
@ -17,7 +18,7 @@ stdenv.mkDerivation {
"--with-save-lines=10000"
];
preConfigure=''
preConfigure = ''
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2";
'';
@ -27,10 +28,10 @@ stdenv.mkDerivation {
};
meta = {
description = "lightweight multitabbed feature-rich X11 terminal emulator";
description = "Lightweight multitabbed feature-rich X11 terminal emulator";
longDescription = "
Multitabbed lightweight terminal emulator based on rxvt.
Supports transparency, backgroundimages, freetype fonts,..
Supports transparency, backgroundimages, freetype fonts, ...
";
homepage = http://sourceforge.net/projects/materm;
license = "GPL";

View File

@ -1,15 +1,19 @@
args: with args;
{ stdenv, fetchurl, gtk, glib, ORBit2, libbonobo, libtool, pkgconfig
, libgnomeui, GConf, automake, autoconf }:
stdenv.mkDerivation {
name = "multisync-0.82-1";
src = fetchurl {
url = mirror://sourceforge/multisync/multisync-0.82-1.tar.bz2;
sha256 = "1azb6zsn3n1rnla2qc3c440gc4vgmbj593k6xj5g1v0xha2vm2y3";
};
buildInputs = [ gtk glib ORBit2 libbonobo libtool pkgconfig libgnomeui GConf
automake autoconf
];
buildInputs =
[ gtk glib ORBit2 libbonobo libtool pkgconfig libgnomeui GConf
automake autoconf
];
preConfigure = "./autogen.sh"; # install.sh is not contained in the tar
meta = {

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, postgresql, wxGTK, libxml2, libxslt, openssl }:
stdenv.mkDerivation rec {
name = "pgadmin3-1.10.0";
@ -7,11 +8,11 @@ stdenv.mkDerivation rec {
sha256 = "1ndi951da3jw5800fjdgkbvl8n6k71x7x16ghihi1l88bilf2a16";
};
buildInputs = [postgresql wxGTK libxml2 libxslt openssl];
buildInputs = [ postgresql wxGTK libxml2 libxslt openssl ];
meta = {
description = "postgresql admin gui tool";
homepage = http://www.pgadmin.org;
license = "GPL2";
};
description = "PostgreSQL administration GUI tool";
homepage = http://www.pgadmin.org;
license = "GPL2";
};
}

View File

@ -1,6 +1,7 @@
args: with args;
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name="procmail-3.22";
name = "procmail-3.22";
buildInputs = [ stdenv.gcc.libc ];

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "pstree-2.33";
@ -7,15 +8,13 @@ stdenv.mkDerivation rec {
sha256 = "1469lrhpy6wghlvbjx6lmvh27rakq00x11cpz4n965fg11i121hg";
};
unpackPhase="unpackFile \$src; sourceRoot=.";
unpackPhase = "unpackFile \$src; sourceRoot=.";
buildPhase="pwd; gcc -o pstree pstree.c";
installPhase="ensureDir \$out/bin; cp pstree \$out/bin";
buildPhase = "pwd; gcc -o pstree pstree.c";
installPhase = "ensureDir \$out/bin; cp pstree \$out/bin";
meta = {
description = "show the running processes as tree";
# don't know the correct homepage..
homepage = http://fresh.t-systems-sfr.com/unix/src/misc/pstree-2.32.tar.gz;
license = "GPL";
};
description = "Show the set of running processes as a tree";
license = "GPL";
};
}

View File

@ -1,5 +1,7 @@
# translations still misssing
args: with args;
{ stdenv, fetchurl, qt3, libpng, libXext, libX11 }:
stdenv.mkDerivation {
name = "qcad-2.0.5.0-1-community";
@ -15,7 +17,7 @@ stdenv.mkDerivation {
cd ..
'';
buildInputs = [qt3 libpng libXext libX11];
buildInputs = [ qt3 libpng libXext libX11 ];
patchPhase = ''
sed -i 's/-pedantic//' mkspecs/defs.pro
@ -35,8 +37,8 @@ stdenv.mkDerivation {
'';
meta = {
description="A 2D CAD package based upon Qt.";
homepage = http://www.ribbonsoft.de/qcad.html;
license = "GPLv2"; # community edition
description = "A 2D CAD package based upon Qt";
homepage = http://www.ribbonsoft.de/qcad.html;
license = "GPLv2"; # community edition
};
}

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, libX11, libXt }:
stdenv.mkDerivation {
name = "rxvt-2.6.4";
@ -10,8 +11,8 @@ stdenv.mkDerivation {
buildInputs = [ libX11 libXt ];
meta = {
description = "colour vt102 terminal emulator with less features and lower memory consumption";
homepage = http://www.rxvt.org/;
license = "GPL";
description = "Colour vt102 terminal emulator with less features and lower memory consumption";
homepage = http://www.rxvt.org/;
license = "GPL";
};
}

View File

@ -1,11 +1,11 @@
args: with args;
# args.perlSupport: enables perl interpreter support
# see man urxvtperl for details
{ stdenv, fetchurl, perlSupport, libX11, libXt, libXft, ncurses, perl }:
let
name = "rxvt-unicode";
version = "9.07";
n = "${name}-${version}";
in
stdenv.mkDerivation (rec {
name = "${n}${if perlSupport then "-with-perl" else ""}";
@ -15,26 +15,25 @@ stdenv.mkDerivation (rec {
sha256 = "18y5mb3cm1gawjm723q5r7yk37s9drzg39kna036i694m2667865";
};
buildInputs = [ libX11 libXt libXft ncurses /* required to build the terminfo file */ ]
++ lib.optional perlSupport perl;
buildInputs =
[ libX11 libXt libXft ncurses /* required to build the terminfo file */ ]
++ stdenv.lib.optional perlSupport perl;
preConfigure=''
configureFlags="${if perlSupport then "--enable-perl" else "--disable-perl"}";
export TERMINFO=$out/share/terminfo # without this the terminfo won't be compiled by tic, see man tic
''
# make urxvt find its perl file lib/perl5/site_perl is added to PERL5LIB automatically
+ (if perlSupport then ''
preConfigure =
''
configureFlags="${if perlSupport then "--enable-perl" else "--disable-perl"}";
export TERMINFO=$out/share/terminfo # without this the terminfo won't be compiled by tic, see man tic
''
# make urxvt find its perl file lib/perl5/site_perl is added to PERL5LIB automatically
+ stdenv.lib.optionalString perlSupport ''
ensureDir $out/lib/perl5
ln -s $out/{lib/urxvt,lib/perl5/site_perl}
'' else "");
postInstall = ''
'';
'';
meta = {
description = "rxvt-unicode is a clone of the well known terminal emulator rxvt.";
description = "A clone of the well-known terminal emulator rxvt";
longDescription = "
you should put this into your .bashrc
You should put this into your ~/.bashrc:
export TERMINFO=~/.nix-profile/share/terminfo
";
homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html";

View File

@ -1,18 +1,18 @@
args: with args;
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "sbagen-1.4.4";
buildPhases="buildPhase installPhase";
buildPhases = "buildPhase installPhase";
buildPhase="./mk";
buildPhase = "./mk";
installPhase="
ensureDir \$out/{bin,share/sbagen/doc}
cp -r --target-directory=\$out/share/sbagen examples scripts river1.ogg river2.ogg
installPhase = ''
ensureDir $out/{bin,share/sbagen/doc}
cp -r --target-directory=$out/share/sbagen examples scripts river1.ogg river2.ogg
cp sbagen $out/bin
cp --target-directory=\$out/share/sbagen/doc README.txt SBAGEN.txt theory{,2}.txt {wave,holosync,focus,TODO}.txt
";
cp --target-directory=$out/share/sbagen/doc README.txt SBAGEN.txt theory{,2}.txt {wave,holosync,focus,TODO}.txt
'';
src = fetchurl {
url = http://uazu.net/sbagen/sbagen-1.4.4.tgz;
@ -20,8 +20,8 @@ stdenv.mkDerivation {
};
meta = {
description = "binaural sound generator";
homepage = http://uazu.net/sbagen;
license = "GPL";
};
description = "Binaural sound generator";
homepage = http://uazu.net/sbagen;
license = "GPL";
};
}

View File

@ -0,0 +1,26 @@
{ stdenv, fetchurl, cmake, qt4, kdelibs, soprano, automoc4, phonon }:
stdenv.mkDerivation {
name = "semnotes-0.4.0-1";
src = fetchurl {
url = "mirror://sf/semn/0.4.0/semnotes-0.4.0-1-src.tar.bz2";
sha256 = "1zh5jfh7pyhyz5fbzcgzyckdg0ny7sf8s16yy6rjw9n021zz5i7m";
};
buildInputs = [ cmake qt4 kdelibs automoc4 phonon soprano ];
meta = with stdenv.lib; {
description = "Semantic note-taking tool for KDE based on Nepomuk-KDE";
longDescription = ''
SemNotes links notes to the data that is available on the user's desktop.
The data stored about a note consists of: a title, content, tags, creation
and last modification time. The notes and all the information about them
are stored as RDF resources in the Nepomuk repository. They are
automatically linked to the resources they reference.
'';
license = "GPL";
homepage = http://smile.deri.ie/projects/semn;
maintainers = [ maintainers.phreedom ];
platforms = platforms.linux;
};
}

View File

@ -1,4 +1,6 @@
args: with args;
{ stdenv, fetchurl, x11, xextproto, libXtst, inputproto, libXi
, automake, autoconf, sourceFromHead }:
stdenv.mkDerivation {
name = "synergy-cvs";
@ -10,18 +12,20 @@ stdenv.mkDerivation {
(fetchurl { url = "http://mawercer.de/~nix/repos/synergy-F_23-55-02.tar.gz"; sha256 = "ae16a9b59039a32e383e71397405d7b610de6c6902c03177c2496bac440d3e28"; });
# END
buildInputs = [x11 xextproto libXtst inputproto libXi automake autoconf autoconf];
buildInputs = [ x11 xextproto libXtst inputproto libXi automake autoconf ];
preConfigure = "autoreconf; ";
preConfigure = "autoreconf";
patches = [ (fetchurl {
url = http://mawercer.de/~nix/synergy-gcc43-r2.patch.gz;
sha256 = "0wnj5k93ybj7jg8ml1i1brwsnszfh41117q2qh7r8xr9m37997b7";
}) ];
patches =
[ (fetchurl {
url = http://mawercer.de/~nix/synergy-gcc43-r2.patch.gz;
sha256 = "0wnj5k93ybj7jg8ml1i1brwsnszfh41117q2qh7r8xr9m37997b7";
})
];
meta= {
description = "share mouse keyboard and clipboard between computers";
homepage = http://synergy2.sourceforge.net;
license = "GPL";
meta = {
description = "Tool to share the mouse keyboard and the clipboard between computers";
homepage = http://synergy2.sourceforge.net;
license = "GPL";
};
}

View File

@ -1,8 +1,9 @@
args:
args.stdenv.mkDerivation {
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "thinkingrock-2.2.1-binary";
src = args.fetchurl {
src = fetchurl {
url = mirror://sourceforge/thinkingrock/ThinkingRock/TR%202.2.1/tr-2.2.1.tar.gz;
sha256 = "0hnwvvyc8miiz8w2g4iy7s4rgfy0kfbncgbgfzpsq6nrzq334kgm";
};
@ -28,11 +29,12 @@ args.stdenv.mkDerivation {
EOF
chmod +x $out/bin/thinkingrock
'';
installPhase = ":";
meta = {
description = "task managing system";
homepage = http://www.thinkingrock.com.au/;
license = "CDDL"; # Common Development and Distribution License
description = "Task management system";
homepage = http://www.thinkingrock.com.au/;
license = "CDDL"; # Common Development and Distribution License
};
}

View File

@ -1,26 +1,28 @@
args: with args;
{ stdenv, fetchurl, pkgconfig, pcre, GStreamer, glib, libxml2, aspell
, imlib2, xorg, xosd }:
stdenv.mkDerivation {
name = "xneur-0.8.0";
src = fetchurl {
url = http://dists.xneur.ru/release-0.8.0/tgz/xneur-0.8.0.tar.bz2;
sha256 = "1f05bm4vqdrlm8rxwgqv89k5lhc236xg841aw4snw514g0hi2sl8";
};
buildInputs = [libX11 pkgconfig pcre GStreamer glib libxml2 aspell
libXpm imlib2 xosd libXt libXext];
inherit aspell imlib2 xosd;
buildInputs =
[ xorg.libX11 pkgconfig pcre GStreamer glib libxml2 aspell
xorg.libXpm imlib2 xosd xorg.libXt xorg.libXext
];
preConfigure = ''
sed -e 's/-Werror//' -i configure
sed -e 's/for aspell_dir in/for aspell_dir in $aspell /' -i configure
sed -e 's/for imlib2_dir in/for imlib2_dir in $imlib2 /' -i configure
sed -e 's/for xosd_dir in/for xosd_dir in $xosd /' -i configure
sed -e 's/for aspell_dir in/for aspell_dir in ${aspell} /' -i configure
sed -e 's/for imlib2_dir in/for imlib2_dir in ${imlib2} /' -i configure
sed -e 's/for xosd_dir in/for xosd_dir in ${xosd} /' -i configure
'';
meta = {
description = "xneur is the keyboard layout switcher.";
description = "Utility for switching between keyboard layouts";
};
}

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, pkgconfig, xorg, pcre, GStreamer, glib, libxml2
, aspell, cairo, imlib2, xosd, libnotify, gtk, pango, atk }:
let s = import ./src-for-default.nix; in
@ -9,17 +10,17 @@ stdenv.mkDerivation rec {
sha256 = s.hash;
};
buildInputs = [libX11 pkgconfig pcre GStreamer glib libxml2 aspell
libXpm imlib2 xosd libXt libXext libXi libnotify gtk pango
cairo];
inherit aspell imlib2 xosd;
buildInputs =
[ xorg.libX11 pkgconfig pcre GStreamer glib libxml2 aspell cairo
xorg.libXpm imlib2 xosd xorg.libXt xorg.libXext xorg.libXi libnotify
gtk pango
];
preConfigure = ''
sed -e 's/-Werror//' -i configure
sed -e 's/for aspell_dir in/for aspell_dir in $aspell /' -i configure
sed -e 's/for imlib2_dir in/for imlib2_dir in $imlib2 /' -i configure
sed -e 's/for xosd_dir in/for xosd_dir in $xosd /' -i configure
sed -e 's/for aspell_dir in/for aspell_dir in ${aspell} /' -i configure
sed -e 's/for imlib2_dir in/for imlib2_dir in ${imlib2} /' -i configure
sed -e 's/for xosd_dir in/for xosd_dir in ${xosd} /' -i configure
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk}/include/gtk-2.0"
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gtk}/lib/gtk-2.0/include"
@ -31,11 +32,10 @@ stdenv.mkDerivation rec {
'';
meta = {
description = "xneur is the keyboard layout switcher.";
description = "Utility for switching between keyboard layouts";
homepage = http://xneur.ru;
license = "GPL2+";
maintainers = [ stdenv.lib.maintainers.raskin ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,16 +1,24 @@
args: with args;
{ stdenv, fetchurl, xorg, ncurses, freetype, pkgconfig }:
stdenv.mkDerivation rec {
name = "xterm-231";
src = fetchurl {
url = "ftp://invisible-island.net/xterm/${name}.tgz";
sha256 = "0qlz5nkdqkahdg9kbd1ni96n69srj1pd9yggwrw3z0kghaajb2sr";
};
buildInputs = [libXaw xproto libXt libXext libX11 libSM libICE ncurses
freetype pkgconfig libXft luit];
configureFlags = "--enable-wide-chars --enable-256-color
--enable-load-vt-fonts --enable-i18n --enable-doublechars --enable-luit
--enable-mini-luit --with-tty-group=tty";
buildInputs =
[ xorg.libXaw xorg.xproto xorg.libXt xorg.libXext xorg.libX11 xorg.libSM xorg.libICE
ncurses freetype pkgconfig xorg.libXft xorg.luit
];
configureFlags =
''
--enable-wide-chars --enable-256-color
--enable-load-vt-fonts --enable-i18n --enable-doublechars --enable-luit
--enable-mini-luit --with-tty-group=tty
'';
# Hack to get xterm built with the feature of releasing a possible setgid of 'utmp',
# decided by the sysadmin to allow the xterm reporting to /var/run/utmp

View File

@ -1,9 +1,8 @@
args: with args;
{ composableDerivation, fetchurl, lib, qt, openssl, autoconf, automake, pkgconfig }:
let inherit (args.composableDerivation) composableDerivation edf wwf; in
composableDerivation {} ( fixed : {
let inherit (composableDerivation) edf wwf; in
composableDerivation.composableDerivation {} ( fixed : {
name = "yate2";
src = fetchurl {
@ -12,28 +11,29 @@ composableDerivation {} ( fixed : {
};
# TODO zaptel ? postgres ?
buildInputs = [qt openssl autoconf automake pkgconfig];
buildInputs = [ qt openssl autoconf automake pkgconfig ];
# /dev/null is used when linking which is a impure path for the wrapper
preConfigure = "
sed -i 's@,/dev/null@@' configure
";
preConfigure =
''
sed -i 's@,/dev/null@@' configure
'';
# --unresolved-symbols=ignore-in-shared-libs makes ld no longer find --library=yate? Why?
preBuild = ''
export NIX_LDFLAGS="-L$TMP/yate $NIX_LDFLAGS"
find . -type f -iname Makefile | xargs sed -i \
-e 's@-Wl,--unresolved-symbols=ignore-in-shared-libs@@' \
-e 's@-Wl,--retain-symbols-file@@'
'';
preBuild =
''
export NIX_LDFLAGS="-L$TMP/yate $NIX_LDFLAGS"
find . -type f -iname Makefile | xargs sed -i \
-e 's@-Wl,--unresolved-symbols=ignore-in-shared-libs@@' \
-e 's@-Wl,--retain-symbols-file@@'
'';
meta = {
description = "YATE - Yet Another Telephony Engine";
homepage = http://yate.null.ro/;
license = ["GPL" "MPL"]; # Yate's license is GPL with an exception for linking with OpenH323 and PWlib (licensed under MPL).
maintainers = [args.lib.maintainers.marcweber];
platforms = args.lib.platforms.linux;
maintainers = [ lib.maintainers.marcweber ];
platforms = lib.platforms.linux;
};
} )

View File

@ -27,23 +27,25 @@
, dbus
, dbus_glib
, patchelf
, cups
, libgcrypt
}:
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" ;
stdenv.mkDerivation rec {
name = "chrome-${version}";
version = "47504";
version = "51653";
src =
if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://build.chromium.org/buildbot/snapshots/chromium-rel-linux-64/${version}/chrome-linux.zip";
sha256 = "06cwfr02acv9b0sbc14irqx099p4mgyjl9w58g1vja6r7jbb234c";
sha256 = "1d8q4ac8s3b1bncli537phzxshfr50j69y49409g5p64v7iya9kw";
}
else if stdenv.system == "i686-linux" then
fetchurl {
url = "http://build.chromium.org/buildbot/snapshots/chromium-rel-linux/${version}/chrome-linux.zip";
sha256 = "1g9m2d5x415gybjd6kvnhbj2sbfcaszv3dzvdwncsrcviic6w634";
sha256 = "1kdhwkl7xxssmkrkkgrdwrwvbah97va7rxbwrfhlcnjgw60ppf9v";
}
else null;
@ -53,7 +55,7 @@ stdenv.mkDerivation rec {
libPath =
stdenv.lib.makeLibraryPath
[ stdenv.glibc stdenv.gcc.gcc ffmpeg cairo pango glib libXrender gtk nspr nss fontconfig freetype alsaLib libX11 GConf libXext atk libXt expat zlib libjpeg bzip2 libpng libXScrnSaver dbus dbus_glib] ;
[ stdenv.glibc stdenv.gcc.gcc ffmpeg cairo pango glib libXrender gtk nspr nss fontconfig freetype alsaLib libX11 GConf libXext atk libXt expat zlib libjpeg bzip2 libpng libXScrnSaver dbus dbus_glib cups libgcrypt] ;
installPhase = ''
ensureDir $out/bin

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, python, perl, ncurses, x11, bzip2, zlib, openssl
, spidermonkey, guile, gpm }:
stdenv.mkDerivation rec {
name = "elinks-0.12pre5";
@ -8,13 +9,17 @@ stdenv.mkDerivation rec {
sha256 = "1li4vlbq8wvnigxlkzb15490y90jg6y9yzzrqpqcz2h965w5869d";
};
buildInputs = [python perl ncurses x11 bzip2 zlib openssl spidermonkey guile gpm];
configureFlags = "--enable-finger --enable-html-highlight --with-guile
--with-perl --with-python --enable-gopher --enable-cgi --enable-bittorrent
--enable-nntp --with-openssl=${openssl}";
buildInputs = [ python perl ncurses x11 bzip2 zlib openssl spidermonkey guile gpm ];
configureFlags =
''
--enable-finger --enable-html-highlight --with-guile
--with-perl --with-python --enable-gopher --enable-cgi --enable-bittorrent
--enable-nntp --with-openssl=${openssl}
'';
meta = {
description = "Full-Featured Text WWW Browser";
description = "Full-featured text-mode web browser";
homepage = http://elinks.or.cz;
};
}

View File

@ -12,14 +12,14 @@
rec {
firefoxVersion = "3.5.9";
firefoxVersion = "3.5.10";
xulVersion = "1.9.1.9"; # this attribute is used by other packages
xulVersion = "1.9.1.10"; # this attribute is used by other packages
src = fetchurl {
url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
sha1 = "f20f06a783ee81ec1d7d6f7a75b38a25dc58f0e1";
sha1 = "9e84dee03f003eaf79df12de9d13ac8f6c4cd9b1";
};

View File

@ -12,14 +12,14 @@
rec {
firefoxVersion = "3.6.3";
firefoxVersion = "3.6.8";
xulVersion = "1.9.2.3"; # this attribute is used by other packages
xulVersion = "1.9.2.8"; # this attribute is used by other packages
src = fetchurl {
url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";
sha256 = "1l5290l1jrglvih0957iv8xn5sxmqklx67kqqnv059dsg5fv781m";
sha1 = "4936e543f6c7492c5954cbd5b30ddda6b20e3797";
};
@ -46,11 +46,15 @@ rec {
inherit src;
# To be removed when the change gets upstream. I don't know if the patch
# affects xulrunner or firefox.
patches = [ ./symlinks-bug551152.patch ];
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
python dbus dbus_glib pango freetype fontconfig xlibs.libXi
xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file
alsaLib nspr /* nss */ libnotify
alsaLib nspr /* nss */ libnotify xlibs.pixman
];
configureFlags =
@ -101,9 +105,14 @@ rec {
inherit src;
# To be removed when the change gets upstream. I don't know if the patch
# affects xulrunner or firefox.
patches = [ ./symlinks-bug551152.patch ];
buildInputs =
[ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python
dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify
xlibs.pixman
];
propagatedBuildInputs = [xulrunner];

View File

@ -0,0 +1,139 @@
The firefox people has not applied this patch along all the 3.6 releases so in 3.6.4 it is still not there.
https://bugzilla.mozilla.org/show_bug.cgi?id=551152
https://bugzilla.mozilla.org/attachment.cgi?id=431403
diff --git a/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp b/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp
index 57f6df9..e9909a7 100644
--- a/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp
+++ b/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp
@@ -633,10 +633,6 @@ IndexOfDirectoryOfFile(nsISupportsArray* aSearchPath, nsILocalFile* aFile)
aSearchPath->QueryElementAt(i, NS_GET_IID(nsIFile),
getter_AddRefs(current));
NS_ASSERTION(current, "broken search path! bad element");
- // nsIFile::Equals basically compares path strings so normalize
- // before the comparison.
- parent->Normalize();
- current->Normalize();
PRBool same;
if (NS_SUCCEEDED(parent->Equals(current, &same)) && same)
return (int) i;
diff --git a/xpcom/tests/unit/test_file_equality.js b/xpcom/tests/unit/test_file_equality.js
index 4f424fe..14ba5a8 100644
--- a/xpcom/tests/unit/test_file_equality.js
+++ b/xpcom/tests/unit/test_file_equality.js
@@ -63,7 +63,7 @@ function test_normalized_vs_non_normalized()
// this is a non-normalized version of tmp1, it should not equal tmp1
tmp2.appendRelativePath(".");
- do_check_false(tmp1.equals(tmp2));
+ do_check_true(tmp1.equals(tmp2));
// normalize and make sure they are equivalent again
tmp2.normalize();
diff --git a/xulrunner/stub/nsXULStub.cpp b/xulrunner/stub/nsXULStub.cpp
index dc3a592..b270175 100644
--- a/xulrunner/stub/nsXULStub.cpp
+++ b/xulrunner/stub/nsXULStub.cpp
@@ -490,14 +490,6 @@ main(int argc, char **argv)
range.lower, range.upper);
return 1;
}
-#ifdef XP_UNIX
- // Using a symlinked greDir will fail during startup. Not sure why, but if
- // we resolve the symlink, everything works as expected.
- char resolved_greDir[MAXPATHLEN] = "";
- if (realpath(greDir, resolved_greDir) && *resolved_greDir) {
- strncpy(greDir, resolved_greDir, MAXPATHLEN);
- }
-#endif
}
#ifdef XP_OS2
diff --git a/xpcom/io/nsLocalFileOSX.mm b/xpcom/io/nsLocalFileOSX.mm
index bbe2b26..6f51638 100644
--- a/xpcom/io/nsLocalFileOSX.mm
+++ b/xpcom/io/nsLocalFileOSX.mm
@@ -1068,6 +1068,9 @@ NS_IMETHODIMP nsLocalFile::Clone(nsIFile **_retval)
NS_IMETHODIMP nsLocalFile::Equals(nsIFile *inFile, PRBool *_retval)
{
+ struct STAT st, inst;
+ PRBool exists = PR_TRUE;
+
NS_ENSURE_ARG(inFile);
NS_ENSURE_ARG_POINTER(_retval);
*_retval = PR_FALSE;
@@ -1077,7 +1080,27 @@ NS_IMETHODIMP nsLocalFile::Equals(nsIFile *inFile, PRBool *_retval)
if (NS_FAILED(rv))
return rv;
- *_retval = !strcmp(mPath, inPath.get());
+ if (STAT(mPath.get(), &st) == -1) {
+ // try lstat it may be a symlink
+ if (LSTAT(mPath.get(), &st) == -1)
+ exists = PR_FALSE;
+ }
+
+ if (exists && (STAT(inPath.get(), &inst) == -1)) {
+ // try lstat it may be a symlink
+ if (LSTAT(inPath.get(), &inst) == -1)
+ exists = PR_FALSE;
+ }
+
+ if (!exists) {
+ // We don't need to worry about "/foo/" vs. "/foo" here
+ // because trailing slashes are stripped on init.
+ *_retval = !strcmp(inPath.get(), mPath.get());
+ return NS_OK;
+ }
+
+ *_retval = (st.st_ino == inst.st_ino) &&
+ (st.st_dev == inst.st_dev);
return NS_OK;
}
diff --git a/xpcom/io/nsLocalFileUnix.cpp b/xpcom/io/nsLocalFileUnix.cpp
index 289600a..bdf0f81 100644
--- a/xpcom/io/nsLocalFileUnix.cpp
+++ b/xpcom/io/nsLocalFileUnix.cpp
@@ -1400,6 +1400,9 @@ nsLocalFile::IsSpecial(PRBool *_retval)
NS_IMETHODIMP
nsLocalFile::Equals(nsIFile *inFile, PRBool *_retval)
{
+ struct STAT st, inst;
+ PRBool exists = PR_TRUE;
+
NS_ENSURE_ARG(inFile);
NS_ENSURE_ARG_POINTER(_retval);
*_retval = PR_FALSE;
@@ -1409,9 +1412,27 @@ nsLocalFile::Equals(nsIFile *inFile, PRBool *_retval)
if (NS_FAILED(rv))
return rv;
- // We don't need to worry about "/foo/" vs. "/foo" here
- // because trailing slashes are stripped on init.
- *_retval = !strcmp(inPath.get(), mPath.get());
+ if (STAT(mPath.get(), &st) == -1) {
+ // try lstat it may be a symlink
+ if (LSTAT(mPath.get(), &st) == -1)
+ exists = PR_FALSE;
+ }
+
+ if (exists && (STAT(inPath.get(), &inst) == -1)) {
+ // try lstat it may be a symlink
+ if (LSTAT(inPath.get(), &inst) == -1)
+ exists = PR_FALSE;
+ }
+
+ if (!exists) {
+ // We don't need to worry about "/foo/" vs. "/foo" here
+ // because trailing slashes are stripped on init.
+ *_retval = !strcmp(inPath.get(), mPath.get());
+ return NS_OK;
+ }
+
+ *_retval = (st.st_ino == inst.st_ino) &&
+ (st.st_dev == inst.st_dev);
return NS_OK;
}

View File

@ -1,7 +1,7 @@
{ fetchurl, stdenv, pkgconfig, gtk, pango, perl, python, ply, zip, libIDL
{ fetchurl, stdenv, xz, pkgconfig, gtk, pango, perl, python, ply, zip, libIDL
, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs, alsaLib
, libnotify, gnomevfs, libgnomeui
, freetype, fontconfig, wirelesstools ? null
, freetype, fontconfig, wirelesstools ? null, pixman
, application ? "browser" }:
# Build the WiFi stuff on Linux-based systems.
@ -9,18 +9,18 @@
# http://thread.gmane.org/gmane.comp.gnu.gnuzilla/1376 .
#assert stdenv.isLinux -> (wirelesstools != null);
let version = "3.6"; in
let version = "3.6.7"; in
stdenv.mkDerivation {
name = "icecat-${version}";
src = fetchurl {
url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.bz2";
sha256 = "0fsf8zd8nncg1w1gg2jhlxwkbljvrx4mm9pywasklyi0gvi939ds";
url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.xz";
sha256 = "0nm0py3kd55pgyx1yv44v1acq5d1rgka3p6msfbgqx60yd38rwsm";
};
buildInputs =
[ libgnomeui libnotify gnomevfs alsaLib
pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
[ xz libgnomeui libnotify gnomevfs alsaLib
pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 pixman
python ply dbus dbus_glib pango freetype fontconfig
xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt
]
@ -30,18 +30,6 @@ stdenv.mkDerivation {
./skip-gre-registration.patch ./rpath-link.patch
];
postPatch =
# Work around the broken `firefox.js' in 3.6. See
# http://news.gmane.org/gmane.comp.gnu.gnuzilla/1419 for details.
let firefox_js = fetchurl {
url = "http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/icecat/browser/app/profile/firefox.js?revision=98&root=gnuzilla";
sha256 = "1jf86wa7r7pf4f3ixrnsslv0i35ypm8hrzlw14hcm5wjcwidzq0f";
name = "firefox.js";
};
in
'' cp -v "${firefox_js}" "browser/app/profile/firefox.js"
'';
configureFlags =
[ "--enable-application=${application}"
"--enable-libxul"

View File

@ -51,9 +51,9 @@ let
url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_1_p2_debug_linux_121709.tar.gz;
sha256 = "162cnzn8sfdvr8mwyggsxi2bcl7zzi1nrl61bw481hhhpwnrjdx4";
} else {
version = "10.1pre2-121709";
url = http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_1_p2_linux_121709.tar.gz;
sha256 = "1mzxcp7y5zxjnjdqmzq9dzg1jqs9lwb4j2njfhwiw2jifffjw2fw";
version = "10.1.53.64";
url = http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.tar.gz;
sha256 = "1598vn4dd96cp1nv225vvjpna70ydkd8lcyfm88gnpzkwx2scz1b";
}
else throw "flashplayer is not supported on this platform";

View File

@ -1,16 +1,20 @@
{ stdenv, fetchurl, fetchgit, cmake, qt4, kdelibs, automoc4, phonon, perl
, v ? "0.4.90" }:
{ stdenv, fetchurl, cmake, qt4, kdelibs, automoc4, phonon, perl
, gtk, gettext, pixman}:
stdenv.mkDerivation (
builtins.getAttr v (import ./source.nix { inherit fetchurl fetchgit; })
// {
buildInputs = [ cmake qt4 kdelibs automoc4 phonon perl ];
stdenv.mkDerivation rec {
name = "rekonq-0.5.0";
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.urkud ];
description = "KDE Webkit browser";
homepage = http://rekonq.sourceforge.net;
};
}
)
src = fetchurl {
url = "mirror://sf/rekonq/${name}.tar.bz2";
sha256 = "0qm16ivxlh3pj7v39z3ajf90sgm5q5xq6a8s2x1a0ipsh7fgkp58";
};
buildInputs = [ cmake qt4 kdelibs automoc4 phonon perl gtk gettext pixman ];
meta = with stdenv.lib; {
platforms = platforms.linux;
maintainers = [ maintainers.urkud ];
description = "KDE Webkit browser";
homepage = http://rekonq.sourceforge.net;
};
}

View File

@ -9,7 +9,7 @@ let
];
in
rec {
src = (a.fetchGitFromSrcInfo s) + "/";
src = (a.fetchUrlFromSrcInfo s);
inherit (s) name;
inherit buildInputs;
@ -19,9 +19,10 @@ rec {
phaseNames = ["addInputs" "setVars" "doMakeInstall" "doWrap"];
setVars = a.noDepEntry (''
export NIX_LDFLAGS="$NIX_LDFLAGS -L${a.libX11}/lib -lX11"
'');
doWrap = a.makeManyWrappers "$out/bin/uzbl"
doWrap = a.makeManyWrappers "$out/bin/uzbl-core"
''
--prefix GST_PLUGIN_PATH : ${a.webkit.gstreamer}/lib/gstreamer-* \
--prefix GST_PLUGIN_PATH : ${a.webkit.gstPluginsBase}/lib/gstreamer-* \

View File

@ -1,38 +0,0 @@
a :
let
s = import ./src-for-experimental.nix;
buildInputs = with a; [
libsoup pkgconfig webkit gtk makeWrapper
];
in
rec {
src = (a.fetchGitFromSrcInfo s) + "/";
inherit (s) name;
inherit buildInputs;
configureFlags = [];
/* doConfigure should be removed if not needed */
phaseNames = ["setVars" "addInputs" "doMakeInstall" "doWrap"];
setVars = a.noDepEntry ''
export NIX_LDFLAGS="$NIX_LDFLAGS -lX11"
'';
doWrap = a.makeManyWrappers "$out/bin/uzbl*"
''
--prefix GST_PLUGIN_PATH : ${a.webkit.gstreamer}/lib/gstreamer-* \
--prefix GST_PLUGIN_PATH : ${a.webkit.gstPluginsBase}/lib/gstreamer-* \
--prefix GST_PLUGIN_PATH : ${a.webkit.gstPluginsGood}/lib/gstreamer-* \
--prefix GST_PLUGIN_PATH : ${a.webkit.gstFfmpeg}/lib/gstreamer-*
'';
installFlags = "PREFIX=$out";
meta = {
description = "Tiny externally controllable webkit browser";
maintainers = [a.lib.maintainers.raskin];
platforms = with a.lib.platforms;
linux;
};
}

View File

@ -1,9 +1,10 @@
rec {
version="d2d73ad463f3d9f1c673d37457af159947b3faac";
name="uzbl-stable-d2d73ad463f3d9f1c673d37457af159947b3faac";
hash="7b162ad46445b4080c0cf2ac57c777186d4a9a58979499fe5556e6e855d4e53c";
rev="d2d73ad463f3d9f1c673d37457af159947b3faac";
url="git://github.com/Dieterbe/uzbl.git";
version="2010.04.03";
name="uzbl-stable-2010.04.03";
hash="1jxs9agk4jd09v73vl69k3mil4jfr5rhfb0v4sq8sfh1p8nl389s";
url="http://github.com/Dieterbe/uzbl/tarball/${version}";
advertisedUrl="http://github.com/Dieterbe/uzbl/tarball/2010.04.03";
downloadName="2010.04.03.tar.gz";
}

View File

@ -1,7 +0,0 @@
rec {
version="1461ac760f79b8f153c8317c4534cb047a48331a";
name="uzbl-experimental-1461ac760f79b8f153c8317c4534cb047a48331a";
hash="b5dfae5245b1b3934ca918831fbe9fa0bb7ae790c682b69f5ecc042cccf58894";
rev="1461ac760f79b8f153c8317c4534cb047a48331a";
url="git://github.com/Dieterbe/uzbl.git";
}

View File

@ -1,7 +1,9 @@
{
repoUrl = "git://github.com/Dieterbe/uzbl.git";
baseName = "uzbl-stable";
method = "fetchgit";
rev = "origin/master";
downloadPage = "http://github.com/Dieterbe/uzbl/downloads";
sourceRegexp = "/tarball/";
versionExtractorSedScript = ''s@.*[/]@@'';
versionReferenceCreator = ''$(replaceAllVersionOccurences)'';
extraVars = "downloadName";
eval_downloadName = ''downloadName=$version.tar.gz'';
}

View File

@ -1,6 +0,0 @@
{
repoUrl = "git://github.com/Dieterbe/uzbl.git";
baseName = "uzbl-experimental";
method = "fetchgit";
rev = "origin/experimental";
}

View File

@ -1,10 +1,10 @@
args: with args;
{ stdenv, fetchurl, pidgin, intltool, libxml2 }:
let version = "1.10.0"; in
let
version = "1.10.0";
in
stdenv.mkDerivation {
name = "pidgin-sipe-${version}";
src = fetchurl {
url = "mirror://sourceforge/sipe/sipe/pidgin-sipe-${version}/pidgin-sipe-${version}.tar.gz";
sha256 = "11d85qxix1dmwvzs3lx0sycsx1d5sy67r9y78fs7z716py4mg9np";

View File

@ -21,10 +21,10 @@
} :
stdenv.mkDerivation {
name = "pidgin-2.7.1";
name = "pidgin-2.7.2";
src = fetchurl {
url = mirror://sourceforge/pidgin/pidgin-2.7.1.tar.bz2;
sha256 = "1lcmpb86qsknkzwc1395r2aq09v8z6cr7d23jwi57mcs72ksa4pl";
url = mirror://sourceforge/pidgin/pidgin-2.7.2.tar.bz2;
sha256 = "1h3112548rjkz4gycm2yq9wjfp1jcdk30qcgvckpf6c4yckg3dca";
};
inherit nss ncurses;

View File

@ -1,15 +1,15 @@
{stdenv, fetchurl, unzip}:
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation {
name = "chatzilla-0.9.85";
stdenv.mkDerivation rec {
name = "chatzilla-0.9.86";
src = fetchurl {
# Obtained from http://chatzilla.rdmsoft.com/xulrunner/.
url = http://chatzilla.rdmsoft.com/xulrunner/download/chatzilla-0.9.85-xr.zip;
sha256 = "0jd7mq05715vad82sl4ycr7ga587k53dijxz371y3zwpf8479hqx";
url = http://chatzilla.rdmsoft.com/xulrunner/download/chatzilla-0.9.86-xr.zip;
sha256 = "1z8767arx2ncch0pzkdzhisjgmd45qianahz3xr8isvahv2klj5x";
};
buildInputs = [unzip];
buildInputs = [ unzip ];
buildCommand = ''
ensureDir $out

View File

@ -0,0 +1,56 @@
{ monolithic ? true # build monolithic Quassel
, daemon ? false # build Quassel daemon
, client ? false # build Quassel client
, kde ? true # enable KDE integration
, ssl ? true # enable SSL support
, previews ? false # enable webpage previews on hovering over URLs
, stdenv, fetchurl, cmake, qt4, kdelibs ? null, automoc4 ? null, phonon ? null }:
assert kde -> kdelibs != null && automoc4 != null && phonon != null;
let
edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
in with stdenv; mkDerivation rec {
name = "quassel-0.6.1";
src = fetchurl {
url = "http://quassel-irc.org/pub/${name}.tar.bz2";
sha256 = "1v5mxligfygn7r7hm3b9by38qxigncfkp6w4n8ypp8ww6n8ml6z0";
};
buildInputs = [ cmake qt4 ]
++ lib.optional kde kdelibs
++ lib.optional kde automoc4
++ lib.optional kde phonon;
cmakeFlags = [
"-DWITH_DBUS=OFF"
"-DWITH_LIBINDICATE=OFF"
"-DEMBED_DATA=OFF"
"-DSTATIC=OFF"
"-DWITH_PHONON=ON" ]
++ edf monolithic "WANT_MONO"
++ edf daemon "WANT_CORE"
++ edf client "WANT_QTCLIENT"
++ edf kde "WITH_KDE"
++ edf ssl "WITH_OPENSSL"
++ edf previews "WITH_WEBKIT" ;
meta = with stdenv.lib; {
homepage = http://quassel-irc.org/;
description = "Qt4/KDE4 distributed IRC client suppporting a remote daemon";
longDescription = ''
Quassel IRC is a cross-platform, distributed IRC client,
meaning that one (or multiple) client(s) can attach to
and detach from a central core -- much like the popular
combination of screen and a text-based IRC client such
as WeeChat, but graphical(based on Qt4/KDE4).
'';
license = "GPLv3";
maintainers = [ maintainers.phreedom ];
platforms = platforms.all;
};
}

View File

@ -1,4 +1,6 @@
args: with args;
{ stdenv, fetchurl, autoconf, automake, libtool, qt, pkgconfig
, openssl, libpng, alsaLib, libX11, libXext, libXt, libICE
, libSM }:
stdenv.mkDerivation {
name = "kphone-1.2";
@ -10,7 +12,7 @@ stdenv.mkDerivation {
buildInputs =
[ autoconf automake libtool qt pkgconfig openssl libpng alsaLib
libX11 libXext libXt libICE libSM libX11
libX11 libXext libXt libICE libSM
];
preConfigure = "autoconf";
@ -19,7 +21,7 @@ stdenv.mkDerivation {
description = "KPhone is a SIP UA for Linux";
homepage = http://sourceforge.net/projects/kphone/;
license = "GPL";
maintainers = [args.lib.maintainers.marcweber];
platforms = args.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -14,16 +14,21 @@ assert saslSupport -> cyrus_sasl != null;
stdenv.mkDerivation {
name = "mutt-1.5.20";
src = fetchurl {
url = ftp://ftp.mutt.org/mutt/devel/mutt-1.5.20.tar.gz;
sha256 = "15m7m419r82awx4mr4nam25m0kpg0bs9vw1z4a4mrzvlkl3zqycm";
};
patches = [ ./openssl.patch ];
buildInputs = [
ncurses which perl
(if headerCache then gdbm else null)
(if sslSupport then openssl else null)
(if saslSupport then cyrus_sasl else null)
];
configureFlags = [
"--with-mailpath=" "--enable-smtp"
# The next allows building mutt without having anything setgid

View File

@ -0,0 +1,15 @@
Fixes a compilation problem with OpenSSL 1.0.0.
From http://www.freebsd.org/cgi/query-pr.cgi?pr=146261
diff -ru -x '*~' mutt-1.5.20-orig/mutt_ssl.c mutt-1.5.20/mutt_ssl.c
--- mutt-1.5.20-orig/mutt_ssl.c 2009-06-10 07:08:29.000000000 +0200
+++ mutt-1.5.20/mutt_ssl.c 2010-07-24 10:46:08.000000000 +0200
@@ -652,7 +652,7 @@
char *buf = NULL;
int bufsize;
/* needed to get the DNS subjectAltNames: */
- STACK *subj_alt_names;
+ STACK_OF(GENERAL_NAME) *subj_alt_names;
int subj_alt_names_count;
GENERAL_NAME *subj_alt_name;
/* did we find a name matching hostname? */

View File

@ -1,5 +1,6 @@
{ stdenv, fetchurl, pkgconfig, gtk, perl, python, zip, libIDL
, dbus_glib, bzip2, alsaLib, nspr
, libnotify, cairo, pixman, fontconfig
, # If you want the resulting program to call itself "Thunderbird"
# instead of "Shredder", enable this option. However, those
@ -10,18 +11,21 @@
}:
let version = "3.0.4"; in
let version = "3.1.1"; in
stdenv.mkDerivation {
name = "thunderbird-${version}";
src = fetchurl {
url = "http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.bz2";
sha1 = "5a6e89096da61a520e5cecb61f8afeb981f90412";
sha1 = "8e25fd786fbe094c3f4d9bc4e18285701bd42279";
};
buildInputs =
[ pkgconfig perl python zip bzip2 gtk dbus_glib alsaLib libIDL nspr ];
[ pkgconfig perl python zip bzip2 gtk dbus_glib alsaLib libIDL nspr libnotify
libnotify cairo pixman fontconfig ];
NIX_LDFLAGS = "-lpixman-1";
configureFlags =
[ "--enable-application=mail"
@ -34,6 +38,7 @@ stdenv.mkDerivation {
"--with-system-nspr"
"--enable-system-cairo"
"--disable-crashreporter"
"--disable-necko-wifi"
"--disable-tests"
"--enable-static" # required by `make install'
]

View File

@ -27,5 +27,6 @@ stdenv.mkDerivation {
meta = {
description = "A GTK+-based Usenet newsreader good at both text and binaries";
homepage = http://pan.rebelbase.com/;
maintainers = [ stdenv.lib.maintainers.eelco ];
};
}

View File

@ -1,4 +1,6 @@
args : with args; with builderDefs;
{ builderDefs, scons, pkgconfig, gtk, bzip2, libglade, openssl, libX11 }:
with builderDefs;
let localDefs = builderDefs.passthru.function ((rec {
src = /* put a fetchurl here */
fetchurl {
@ -6,7 +8,7 @@ args : with args; with builderDefs;
sha256 = "0w9c8k13cl85y4v4av8ic6w4zkdivcj6p5q86llfh3sz077vckiv";
};
buildInputs = [scons pkgconfig gtk bzip2 pkgconfig libglade
buildInputs = [scons pkgconfig gtk bzip2 libglade
openssl libX11];
configureFlags = [];
doScons = fullDepEntry (''
@ -15,7 +17,7 @@ args : with args; with builderDefs;
scons PREFIX=$out
scons PREFIX=$out install
'') ["minInit" "doUnpack" "addInputs" "defEnsureDir"];
}) // args);
}));
in with localDefs;
stdenv.mkDerivation rec {
name = "ldcpp-1.0.3";

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, ocaml, zlib, bzip2, ncurses, file, gd, libpng }:
stdenv.mkDerivation (rec {
name = "mldonkey-3.0.1";
name = "mldonkey-3.0.2";
src = fetchurl {
url = "mirror://sourceforge/mldonkey/${name}.tar.bz2";
sha256 = "09zk53rfdkjipf5sl37rypzi2mx0a5v57vsndj22zajkqr4l0zds";
sha256 = "0l1gcgsn603l2lv5jxjjr44r7kq2hpfcy98w3y2gf5n9d4fhja84";
};
meta = {

View File

@ -1,4 +1,7 @@
args: with args;
{ stdenv, fetchurl, pkgconfig, commoncpp2, ccrtp, openssl, boost
, libsndfile, libxml2, libjpeg, readline, qt, perl, file
, alsaLib, speex, libzrtpcpp, xorg }:
stdenv.mkDerivation {
name = "twinkle-1.4.2";
@ -9,19 +12,18 @@ stdenv.mkDerivation {
configureFlags = "--with-extra-includes=${libjpeg}/include";
buildInputs = [pkgconfig commoncpp2 ccrtp openssl boost libsndfile
libxml2 libjpeg readline qt libjpeg perl file
# optional ? :
alsaLib
speex libzrtpcpp libX11 libXaw libICE libXext
buildInputs =
[ pkgconfig commoncpp2 ccrtp openssl boost libsndfile
libxml2 libjpeg readline qt perl file
# optional ? :
alsaLib
speex libzrtpcpp xorg.libX11 xorg.libXaw xorg.libICE xorg.libXext
];
meta = {
description = "softphone for your voice over IP";
homepage = http://www.xs4all.nl/~mfnboer/twinkle/index.html;
license = "GPL";
maintainers = [args.lib.maintainers.marcweber];
platforms = args.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
};
}

View File

@ -1,15 +1,17 @@
{stdenv, fetchurl, pkgconfig, gtk, libglade, libgnomecanvas, fribidi, libpng, popt, libgsf,
enchant, wv, librsvg, bzip2
{ stdenv, fetchurl, pkgconfig, gtk, libglade, libgnomecanvas, fribidi
, libpng, popt, libgsf, enchant, wv, librsvg, bzip2
}:
stdenv.mkDerivation {
name = "abiword-2.8.5";
name = "abiword-2.8.6";
src = fetchurl {
url = http://www.abisource.org/downloads/abiword/2.8.5/source/abiword-2.8.5.tar.gz;
sha256 = "0k82y1wd2lx4ifk8rbifbr301zqnrbx61b7x78b14n4k8x13srxa";
url = http://www.abisource.org/downloads/abiword/2.8.6/source/abiword-2.8.6.tar.gz;
sha256 = "059sd2apxdmcacc4pll880i7vm18h0kyjsq299m1mz3c7ak8k46r";
};
buildInputs = [pkgconfig gtk libglade librsvg bzip2
libgnomecanvas fribidi libpng popt libgsf enchant wv
];
buildInputs =
[ pkgconfig gtk libglade librsvg bzip2 libgnomecanvas fribidi libpng popt
libgsf enchant wv
];
}

View File

@ -2,7 +2,7 @@
let
download_root = "http://homebank.free.fr/public/";
name = "homebank-4.2.1";
name = "homebank-4.3";
lastrelease = download_root + name + ".tar.gz";
oldrelease = download_root + "old/" + name + ".tar.gz";
in
@ -12,7 +12,7 @@ stdenv.mkDerivation {
src = fetchurl {
urls = [ lastrelease oldrelease ];
sha256 = "13xz9k55mw14fnp8cf3ypnl6im5dyfbial75wr6i7ikxxpahd00g";
sha256 = "1r4bvyc2wnizjjc27hap6b4b01zjfp1x0rygylvi5n29jy6r2fn6";
};
buildInputs = [ pkgconfig gtk libofx intltool ];

View File

@ -1,4 +1,6 @@
args: with args;
{ stdenv, fetchurl, pkgconfig, freetype, lcms, libtiff, libxml2
, libart_lgpl, qt, python, cups, fontconfig, libjpeg
, zlib, libpng, xorg, cairo, cmake }:
assert stdenv.gcc.gcc != null;
@ -8,13 +10,9 @@ assert stdenv.gcc.gcc != null;
# will be released with the next version of scribus - So don't miss them
# when upgrading this package
#let useCairo = true;
let useCairo = false;
in
let useCairo = false; in
stdenv.mkDerivation {
name = "scribus-1.3.3.14";
src = fetchurl {
@ -35,9 +33,9 @@ stdenv.mkDerivation {
buildInputs =
[ pkgconfig /*<- required fro cairo only?*/ cmake freetype lcms libtiff libxml2 libart_lgpl qt
python cups fontconfig
libXaw libXext libX11 libXtst libXi libXinerama
libjpeg libtiff zlib libpng
] ++ lib.optional useCairo cairo;
xorg.libXaw xorg.libXext xorg.libX11 xorg.libXtst xorg.libXi xorg.libXinerama
libjpeg zlib libpng
] ++ stdenv.lib.optional useCairo cairo;
# fix rpath which is removed by cmake..
postFixup = ''
@ -49,9 +47,9 @@ stdenv.mkDerivation {
'';
meta = {
maintainers = [lib.maintainers.marcweber];
platforms = lib.platforms.linux;
description = "Desktop Publishing (DTP) and Layout program for Linux.";
maintainers = [ stdenv.lib.maintainers.marcweber ];
platforms = stdenv.lib.platforms.linux;
description = "Desktop Publishing (DTP) and Layout program for Linux";
homepage = http://www.scribus.net;
license = "GPLv2";
};

View File

@ -1,4 +1,5 @@
args: with args;
{ stdenv, fetchurl, glew, mesa, libpng, lesstif, lynx, freeglut
, libtiff, rxp, sablotron, perl, jdk, transfig, gv, gnuplot, xorg }:
# NOTE: This package does not build on 64-bit systems. Because of some faulty
# int->pointer arithmatic. The build scripts are abnormal - but it appears to
@ -6,6 +7,7 @@ args: with args;
stdenv.mkDerivation {
name = "arb-2007-Dec-07";
src = fetchurl {
url = http://download.arb-home.de/release/2007_12_07/arbsrc.tgz;
sha256 = "04l7qj0wigg1h56a9d70hxhdr343v3dg5dhqrc7fahc1v4h8f1rd";
@ -13,7 +15,11 @@ stdenv.mkDerivation {
patches = [ ./makefile.patch ];
buildInputs = [ glew mesa libpng libXpm lesstif lynx freeglut libtiff rxp sablotron libXaw perl jdk transfig libX11 libXext libXt gv gnuplot ];
buildInputs =
[ glew mesa libpng xorg.libXpm lesstif lynx freeglut libtiff rxp
sablotron xorg.libXaw perl jdk transfig xorg.libX11 xorg.libXext
xorg.libXt gv gnuplot
];
unpackPhase = ''
tar xzf $src
@ -49,20 +55,22 @@ stdenv.mkDerivation {
chmod a+rwx $shareddir/lib/pixmaps
# bulk copy
cp -vau * $out
# replace arb script
mv $out/bin/arb $out/bin/arb.orig
cat > $out/bin/arb << ARB
#!/bin/sh
#!/bin/sh
echo Starting Nix compiled arb from $out
echo Shared databases are located in $shareddir
# sometimes local profiles override these:
export ARBHOME=$out
export LD_LIBRARY=$ARBHOME/lib
echo Starting Nix compiled arb from $out
echo Shared databases are located in $shareddir
# sometimes local profiles override these:
export ARBHOME=$out
export LD_LIBRARY=$ARBHOME/lib
$out/bin/arb_ntree $*
$out/bin/arb_ntree $*
ARB
ARB
chmod +x $out/bin/arb
'';

View File

@ -1,17 +1,22 @@
args:
args.stdenv.mkDerivation {
name = "ng-spice-rework-15c";
{stdenv, fetchurl, readline, bison, libX11, libICE, libXaw, libXext}:
src = args.fetchurl {
url = mirror://sourceforge/ngspice/ng-spice-rework-15c.tar.gz;
sha256 = "0v0pbdc54ra0s98dz6mhj80n333ggbn4xpf53vi66sd02hcjblmg";
stdenv.mkDerivation {
name = "ng-spice-rework-21";
src = fetchurl {
url = mirror://sourceforge/ngspice/ng-spice-rework-21.tar.gz;
sha256 = "1hmvfl33dszy8xgbixx0zmiz4rdzjhl7lwlwm953jibd4dgx42j5";
};
buildInputs =(with args; [readline]);
buildInputs = [ readline libX11 bison libICE libXaw libXext ];
configureFlags = [ "--enable-x" "--with-x" "--with-readline" ];
meta = {
description = "The Next Generation Spice (Electronic Circuit Simulator).";
homepage = http://ngspice.sourceforge.net;
license = ["BSD" "GPLv2"];
description = "The Next Generation Spice (Electronic Circuit Simulator).";
homepage = http://ngspice.sourceforge.net;
license = ["BSD" "GPLv2"];
maintainers = with stdenv.lib.maintainers; [viric];
platforms = with stdenv.lib.platforms; linux;
};
}

View File

@ -0,0 +1,49 @@
x@{builderDefsPackage,
wxGTK, perl, python, zlib
, ...}:
builderDefsPackage
(a :
let
s = import ./src-for-default.nix;
helperArgNames = ["builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
in
rec {
src = a.fetchUrlFromSrcInfo s;
inherit (s) name;
inherit buildInputs;
/* doConfigure should be removed if not needed */
phaseNames = ["setVars" "doMake" "doDeploy"];
setVars = a.noDepEntry ''
export NIX_LDFLAGS="$NIX_LDFLAGS -lperl -L$(echo "${perl}"/lib/perl5/5*/*/CORE)"
pythonLib="$(echo "${python}"/lib/libpython*.so)"
pythonLib="''${pythonLib##*/lib}"
pythonLib="''${pythonLib%%.so}"
export NIX_LDFLAGS="$NIX_LDFLAGS -l$pythonLib"
echo "Flags: $NIX_LDFLAGS"
'';
goSrcDir = ''cd */'';
makeFlags = [
"-f makefile-gtk"
];
doDeploy = a.fullDepEntry ''
cat < ${./make-install.make} >> makefile-gtk
make -f makefile-gtk out="$out" install
'' ["minInit" "doMake" "defEnsureDir"];
meta = {
description = "Cellular automata simulation program";
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
linux;
license = "GPLv2";
};
}) x

View File

@ -0,0 +1,9 @@
install_file = echo "\#! /bin/sh" > "$(out)/bin/$(binfile)"; echo "$(out)/share/golly/$(binfile)" >> "$(out)/bin/$(binfile)"; chmod a+x "$(out)/bin/$(binfile)";
install:
mkdir -p "$(out)/share/golly"
mkdir -p "$(out)/bin"
cp -r $(BINFILES) $(SHAREDFILES) "$(out)/share/golly"
$(foreach binfile,$(BINFILES),$(install_file))

View File

@ -0,0 +1,9 @@
rec {
version="2.1-src";
name="golly-2.1-src";
hash="0m9sz0b7pwsxpgvscdvab2q8qnncr337gg3anzgzw83z5zyn3rdz";
url="http://downloads.sourceforge.net/project/golly/golly/golly-2.1/golly-2.1-src.tar.gz";
advertisedUrl="http://downloads.sourceforge.net/project/golly/golly/golly-2.1/golly-2.1-src.tar.gz";
}

View File

@ -0,0 +1,4 @@
{
downloadPage = "http://sourceforge.net/projects/golly/files/";
method="fetchSF";
}

View File

@ -0,0 +1,62 @@
{ fetchurl, stdenv, cmake, ruby }:
stdenv.mkDerivation rec {
name = "simgrid-3.4.1";
src = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/26944/${name}.tar.bz2";
sha256 = "acd2bb2c1abf59e9b190279b1c38582b7c1edd4b6ef4c6a9b01100740f1a6b28";
};
/* FIXME: Ruby currently disabled because of this:
Linking C shared library ../src/.libs/libsimgrid.so
ld: cannot find -lruby-1.8.7-p72
*/
buildInputs = [ cmake /* ruby */ ];
preConfigure =
# Make it so that libsimgrid.so will be found when running programs from
# the build dir.
'' export LD_LIBRARY_PATH="$PWD/src/.libs"
export cmakeFlags="-Dprefix=$out"
# Enable tracing.
export cmakeFlags="$cmakeFlags -Denable_tracing=on"
'';
makeFlags = "VERBOSE=1";
patchPhase =
'' for i in "src/smpi/"*
do
sed -i "$i" -e's|/bin/bash|/bin/sh|g'
done
'';
installPhase = "make install-simgrid";
# Fixing the few tests that fail is left as an exercise to the reader.
doCheck = false;
meta = {
description = "SimGrid, a simulator for distributed applications in heterogeneous environments";
longDescription =
'' SimGrid is a toolkit that provides core functionalities for the
simulation of distributed applications in heterogeneous distributed
environments. The specific goal of the project is to facilitate
research in the area of distributed and parallel application
scheduling on distributed computing platforms ranging from simple
network of workstations to Computational Grids.
'';
homepage = http://simgrid.gforge.inria.fr/;
license = "LGPLv2+";
maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

View File

@ -0,0 +1,75 @@
Remove broken detection of OpenGL and GLEW. See
<http://sourceforge.net/tracker/?func=detail&aid=3015936&group_id=61223&atid=496518>.
--- tulip-3.3.1/acinclude.m4 2010-01-18 20:34:02.000000000 +0100
+++ tulip-3.3.1/acinclude.m4 2010-06-14 16:25:25.000000000 +0200
@@ -353,68 +353,8 @@ AC_ARG_WITH(gl-libraries,
[ ac_gl_libraries="$withval"
])
-AC_CACHE_VAL(ac_cv_have_gl,
-[
-if test ${VAR_WIN32} = 1
-then
-gl_incdirs=" /mingw/include $ac_gl_includes $GLDIR/include /usr/include /usr/X11R6/include/X11 /usr/X11R6/include $x_includes "
-else
-gl_incdirs=" $ac_gl_includes $GLDIR/include /usr/include /usr/X11R6/include/X11 /usr/X11R6/include $x_includes "
-fi
-AC_FIND_FILE(GL/gl.h, $gl_incdirs, gl_incdir)
-ac_gl_includes="$gl_incdir"
-
-if test ${VAR_WIN32} = 1
-then
-gl_libdirs="$GLDIR $ac_gl_libraries $GLLIB /usr/X11R6/lib /usr/lib /usr/local/lib $x_libraries "
-else
-gl_libdirs="$ac_gl_libraries $GLLIB /usr/X11R6/lib64 /usr/lib64 /usr/local/lib64/usr/X11R6/lib /usr/lib /usr/local/lib $x_libraries "
-fi
-
-test -n "$GLDIR" && gl_libdirs="$GLDIR/lib64 $GLDIR/lib $GLDIR $gl_libdirs"
-test=NONE
-gl_libdir=NONE
-for dir in $gl_libdirs; do
-if test ${VAR_WIN32} = 1
-then
- try="ls -1 $dir/*opengl*"
-else
- try="ls -1 $dir/libGL*"
-fi
- if test=`eval $try 2> /dev/null`; then
- gl_libdir=$dir
- if test ${VAR_WIN32} = 0 ; then
- try="ls -1 $gl_libdir/libGLEW.*"
- if test=`eval $try 2> /dev/null`; then break; else AC_MSG_ERROR([ libGLEW not found , please install it in $gl_libdir ]); fi
- else
- break
- fi
- else
- echo "tried $dir" >&AC_FD_CC
- fi
-done
-ac_gl_libraries="$gl_libdir"
])
-eval "$ac_cv_have_gl"
-if test "$ac_gl_libraries" = NONE; then
- AC_MSG_ERROR([ Not found , put your GLDIR environnement variable to the OpenGL directory ]);
-else
- ac_cv_have_gl="have_gl=yes \
- ac_gl_includes=$ac_gl_includes ac_gl_libraries=$ac_gl_libraries"
- AC_MSG_RESULT([ libraries $ac_gl_libraries, headers $ac_gl_includes ])
- gl_libraries="$ac_gl_libraries"
- gl_includes="$ac_gl_includes"
-if test ${VAR_MACOSX} = 1
-then
- GL_INCLUDES="-I$ac_gl_includes"
- GL_LDFLAGS=""
-else
- GL_INCLUDES="-I$ac_gl_includes"
- GL_LDFLAGS="-L$ac_gl_libraries"
-fi
-fi
-
dnl MAC PORT
if test ${VAR_MACOSX} = 1
then

View File

@ -0,0 +1,50 @@
{ fetchurl, stdenv, libxml2, freetype, mesa, glew, qt
, autoconf, automake, libtool }:
let version = "3.4.0"; in
stdenv.mkDerivation rec {
name = "tulip-${version}";
src = fetchurl {
url = "mirror://sourceforge/auber/tulip/tulip-${version}/${name}.tar.bz2";
sha256 = "2889113f773ba539472d501fb4f45dbf5eb76e02c949dfa74c63f6f815a2baab";
};
patches = [ ./configure-opengl.patch ];
preConfigure =
'' export CPATH="${mesa}/include:${glew}/include"
export LIBRARY_PATH="${mesa}/lib:${glew}/lib"
export QTDIR="${qt}"
export LDFLAGS="-lGLEW"
rm -vf aclocal.m4 ltmain.sh
autoreconf -fi
'';
buildInputs = [ libxml2 freetype glew ]
++ [ autoconf automake libtool ];
propagagedBuildInputs = [ mesa qt ];
# FIXME: "make check" needs Docbook's DTD 4.4, among other things.
doCheck = false;
meta = {
description = "Tulip, a visualization framework for the analysis and visualization of relational data";
longDescription =
'' Tulip is an information visualization framework dedicated to the
analysis and visualization of relational data. Tulip aims to
provide the developer with a complete library, supporting the design
of interactive information visualization applications for relational
data that can be tailored to the problems he or she is addressing.
'';
homepage = http://tulip.labri.fr/;
license = "GPLv3+";
maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

View File

@ -0,0 +1,48 @@
{ fetchsvn, stdenv, cmake, qt, mesa }:
# ViTE 1.1 has several bugs, so use the SVN version.
let
rev = "1143";
externals = fetchsvn {
url = "svn://scm.gforge.inria.fr/svn/vite/externals";
sha256 = "0wg3yh5q8gx7189rvkd8achld7bzp0i7qqn6c77pg767b4b8dh1a";
inherit rev;
};
in
stdenv.mkDerivation {
name = "vite-1.2pre${rev}";
src = fetchsvn {
url = "svn://scm.gforge.inria.fr/svn/vite/trunk";
sha256 = "0cy9b6isiwqwnv9gk0cg97x370fpwyccljadds4a118k5gh58zw4";
inherit rev;
};
preConfigure =
'' rm -v externals
ln -sv "${externals}" externals
'';
patches = [ ./larger-line-buffer.patch ];
buildInputs = [ cmake qt mesa ];
NIX_LDFLAGS = "-lGLU";
meta = {
description = "Visual Trace Explorer (ViTE), a tool to visualize execution traces";
longDescription =
'' ViTE is a trace explorer. It is a tool to visualize execution traces
in Pajé or OTF format for debugging and profiling parallel or
distributed applications.
'';
homepage = http://vite.gforge.inria.fr/;
license = "CeCILL-A";
maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
};
}

View File

@ -0,0 +1,14 @@
ViTE has an arbitrary restriction on the length of lines read by the parser.
Make it larger.
--- a/src/parser/PajeFileManager.hpp
+++ b/src/parser/PajeFileManager.hpp
@@ -67,7 +67,7 @@
#include <string.h>
-#define _PAJE_BUFSIZE 256
+#define _PAJE_BUFSIZE 16384
#define _PAJE_NBMAXTKS 16
/**

View File

@ -1,7 +1,8 @@
args: with args;
{ stdenv, fetchurl, which, diffutils, gnupatch, gnutar }:
stdenv.mkDerivation rec {
name = "tla-1.3.5";
src = fetchurl {
url = "mirror://gnu/gnu-arch/" + name + ".tar.gz";
sha256 = "01mfzj1i6p4s8191cgd5850hds1zls88hkf9rb6qx1vqjv585aj0";
@ -10,6 +11,7 @@ stdenv.mkDerivation rec {
patches = [ ./configure-tmpdir.patch ];
buildInputs = [which];
propagatedBuildInputs = [diffutils gnupatch gnutar];
# Instead of GNU Autoconf, tla uses Tom Lord's now

View File

@ -3,8 +3,8 @@
cabal.mkDerivation (self : {
pname = "darcs";
name = self.fname;
version = "2.4.1";
sha256 = "6ac0e84d2eca160e6e33755679dfb185d9b5f9f5bdc43f99db326210aabbc4aa";
version = "2.4.4";
sha256 = "97cde35ae4b74488f8b98b487bc0498069eaa74fe035903394f3d4aff1da9f9e";
extraBuildInputs = [
html parsec regexCompat curl haskeline hashedStorage zlib

Some files were not shown because too many files have changed in this diff Show More