git-annex: generate build instructions with cabal2nix

This commit is contained in:
Peter Simons 2013-06-03 22:08:57 +02:00
parent 3e070f105d
commit 7b21e19a82
3 changed files with 50 additions and 74 deletions

View File

@ -42,17 +42,7 @@ rec {
sendEmailSupport = !stdenv.isDarwin; sendEmailSupport = !stdenv.isDarwin;
}); });
gitAnnex = lib.makeOverridable (import ./git-annex) { gitAnnex = pkgs.haskellPackages.gitAnnex;
inherit stdenv fetchurl perl which ikiwiki curl bup git gnupg1 lsof openssh rsync;
inherit (haskellPackages) ghc aeson async blazeBuilder bloomfilter
caseInsensitive clientsession cryptoApi dataDefault dataenc DAV dbus dns
editDistance extensibleExceptions filepath gnutls hamlet hinotify hS3
hslogger httpConduit httpTypes HUnit IfElse json liftedBase MissingH
monadControl mtl network networkInfo networkMulticast networkProtocolXmpp
QuickCheck random regexCompat SafeSemaphore SHA stm text time regexTdfa
transformers transformersBase utf8String uuid wai waiLogger warp
xmlConduit xmlTypes yesod yesodDefault yesodForm yesodStatic;
};
qgit = import ./qgit { qgit = import ./qgit {
inherit fetchurl stdenv; inherit fetchurl stdenv;

View File

@ -1,73 +1,57 @@
{ stdenv, fetchurl, perl, which, ikiwiki, ghc, aeson, async, blazeBuilder { cabal, aeson, async, blazeBuilder, bloomfilter, bup
, bloomfilter, bup, caseInsensitive, clientsession, cryptoApi, curl, dataDefault , caseInsensitive, clientsession, cryptoApi, curl, dataDefault
, dataenc, DAV, dbus, dns, editDistance, extensibleExceptions, filepath, git , dataenc, DAV, dbus, dlist, dns, editDistance
, gnupg1, gnutls, hamlet, hinotify, hS3, hslogger, httpConduit, httpTypes, HUnit , extensibleExceptions, filepath, git, gnupg1, gnutls, hamlet
, IfElse, json, liftedBase, lsof, MissingH, monadControl, mtl, network , hinotify, hS3, hslogger, HTTP, httpConduit, httpTypes, HUnit
, networkInfo, networkMulticast, networkProtocolXmpp, openssh, QuickCheck , IfElse, json, lsof, MissingH, MonadCatchIOTransformers
, random, regexCompat, rsync, SafeSemaphore, SHA, stm, text, time, transformers , monadControl, mtl, network, networkInfo, networkMulticast
, transformersBase, utf8String, uuid, wai, waiLogger, warp, xmlConduit, xmlTypes , networkProtocolXmpp, openssh, QuickCheck, random, regexTdfa
, yesod, yesodDefault, yesodForm, yesodStatic, regexTdfa , rsync, SafeSemaphore, SHA, stm, text, time, transformers
, unixCompat, utf8String, uuid, wai, waiLogger, warp, xmlConduit
, xmlTypes, yesod, yesodDefault, yesodForm, yesodStatic
}: }:
let cabal.mkDerivation (self: {
version = "4.20130521"; pname = "git-annex";
in version = "4.20130601";
stdenv.mkDerivation { sha256 = "0l6jbi9r26w5h9hfg9v9qybqvijp4n7c9l1zd4ikxg2nqcc8j8ln";
name = "git-annex-${version}"; isLibrary = false;
isExecutable = true;
src = fetchurl { buildDepends = [
url = "https://github.com/joeyh/git-annex/tarball/${version}"; aeson async blazeBuilder bloomfilter caseInsensitive clientsession
sha256 = "0wa3sgw0xbqykl5r6ba0gannwj61y0h024glm0xjj97fy06b77i0"; cryptoApi dataDefault dataenc DAV dbus dlist dns editDistance
name = "git-annex-${version}.tar.gz"; extensibleExceptions filepath gnutls hamlet hinotify hS3 hslogger
}; HTTP httpConduit httpTypes HUnit IfElse json MissingH
MonadCatchIOTransformers monadControl mtl network networkInfo
buildInputs = [ ghc aeson async blazeBuilder bloomfilter bup ikiwiki networkMulticast networkProtocolXmpp QuickCheck random regexTdfa
caseInsensitive clientsession cryptoApi curl dataDefault dataenc DAV dbus SafeSemaphore SHA stm text time transformers unixCompat utf8String
dns editDistance extensibleExceptions filepath git gnupg1 gnutls hamlet uuid wai waiLogger warp xmlConduit xmlTypes yesod yesodDefault
hinotify hS3 hslogger httpConduit httpTypes HUnit IfElse json liftedBase yesodForm yesodStatic
lsof MissingH monadControl mtl network networkInfo networkMulticast ];
networkProtocolXmpp openssh QuickCheck random regexCompat rsync buildTools = [ bup curl git gnupg1 lsof openssh rsync ];
SafeSemaphore SHA stm text time transformers transformersBase utf8String configureFlags = "-fS3
uuid wai waiLogger warp xmlConduit xmlTypes yesod yesodDefault yesodForm -fWebDAV
yesodStatic which perl regexTdfa ]; -fInotify
-fDbus
configurePhase = '' -f-Assistant
makeFlagsArray=( PREFIX=$out CABAL=./Setup ) -f-Webapp
patchShebangs . -fPairing
ghc -O2 --make Setup -fXMPP
./Setup configure -ftestsuite -f-android -fproduction -fdns -fxmpp -fpairing -f-webapp -fassistant -fdbus -finotify -fwebdav -fs3 -fDNS
''; -fProduction
-fTDFA";
doCheck = true; preConfigure = "patchShebangs .";
checkPhase = '' checkPhase = ''
export HOME="$NIX_BUILD_TOP/tmp" export HOME="$NIX_BUILD_TOP/tmp"
mkdir "$HOME" mkdir "$HOME"
cp dist/build/git-annex/git-annex git-annex
./git-annex test ./git-annex test
''; '';
meta = { meta = {
homepage = "http://git-annex.branchable.com/"; homepage = "http://git-annex.branchable.com/";
description = "Manage files with git without checking them into git"; description = "manage files with git, without checking their contents into git";
license = stdenv.lib.licenses.gpl3Plus; license = "GPL";
platforms = self.ghc.meta.platforms;
longDescription = '' maintainers = [ self.stdenv.lib.maintainers.simons ];
Git-annex allows managing files with git, without checking the
file contents into git. While that may seem paradoxical, it is
useful when dealing with files larger than git can currently
easily handle, whether due to limitations in memory, checksumming
time, or disk space.
Even without file content tracking, being able to manage files
with git, move files around and delete files with versioned
directory trees, and use branches and distributed clones, are all
very handy reasons to use git. And annexed files can co-exist in
the same git repository with regularly versioned files, which is
convenient for maintaining documents, Makefiles, etc that are
associated with annexed files but that benefit from full revision
control.
'';
platforms = ghc.meta.platforms;
maintainers = [ stdenv.lib.maintainers.simons ];
}; };
} })

View File

@ -2258,6 +2258,8 @@ let result = let callPackage = x : y : modifyPrio (newScope result.final x y);
cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix {}; cabalInstall_1_16_0_2 = callPackage ../tools/package-management/cabal-install/1.16.0.2.nix {};
cabalInstall = self.cabalInstall_1_16_0_2; cabalInstall = self.cabalInstall_1_16_0_2;
gitAnnex = callPackage ../applications/version-management/git-and-tools/git-annex {};
githubBackup = callPackage ../applications/version-management/git-and-tools/github-backup {}; githubBackup = callPackage ../applications/version-management/git-and-tools/github-backup {};
jailbreakCabal = callPackage ../development/tools/haskell/jailbreak-cabal {}; jailbreakCabal = callPackage ../development/tools/haskell/jailbreak-cabal {};