Merge branch 'master' into watch

Conflicts:
	debian/changelog
	git-annex.cabal
This commit is contained in:
Joey Hess 2012-06-12 13:37:17 -04:00
commit 2e5ea30981
9 changed files with 75 additions and 23 deletions

4
.gitignore vendored
View file

@ -13,3 +13,7 @@ html
Utility/Touch.hs Utility/Touch.hs
Utility/libdiskfree.o Utility/libdiskfree.o
dist dist
# Sandboxed builds
cabal-dev
# Project-local emacs configuration
.dir-locals.el

1
CONTRIBUTING Symbolic link
View file

@ -0,0 +1 @@
doc/contributing.mdwn

1
COPYRIGHT Symbolic link
View file

@ -0,0 +1 @@
debian/copyright

View file

@ -47,18 +47,22 @@ git-annex-shell.1: doc/git-annex-shell.mdwn
git-union-merge.1: doc/git-union-merge.mdwn git-union-merge.1: doc/git-union-merge.mdwn
./mdwn2man git-union-merge 1 doc/git-union-merge.mdwn > git-union-merge.1 ./mdwn2man git-union-merge 1 doc/git-union-merge.mdwn > git-union-merge.1
install: all install-mans: $(mans)
install -d $(DESTDIR)$(PREFIX)/bin
install $(bins) $(DESTDIR)$(PREFIX)/bin
ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-annex-shell
install -d $(DESTDIR)$(PREFIX)/share/man/man1 install -d $(DESTDIR)$(PREFIX)/share/man/man1
install -m 0644 $(mans) $(DESTDIR)$(PREFIX)/share/man/man1 install -m 0644 $(mans) $(DESTDIR)$(PREFIX)/share/man/man1
install-docs: docs install-mans
install -d $(DESTDIR)$(PREFIX)/share/doc/git-annex install -d $(DESTDIR)$(PREFIX)/share/doc/git-annex
if [ -d html ]; then \ if [ -d html ]; then \
rsync -a --delete html/ $(DESTDIR)$(PREFIX)/share/doc/git-annex/html/; \ rsync -a --delete html/ $(DESTDIR)$(PREFIX)/share/doc/git-annex/html/; \
fi fi
test: install: all install-docs
install -d $(DESTDIR)$(PREFIX)/bin
install $(bins) $(DESTDIR)$(PREFIX)/bin
ln -sf git-annex $(DESTDIR)$(PREFIX)/bin/git-annex-shell
test: $(sources) $(clibs)
@if ! $(GHCMAKE) -O0 test $(clibs); then \ @if ! $(GHCMAKE) -O0 test $(clibs); then \
echo "** failed to build the test suite" >&2; \ echo "** failed to build the test suite" >&2; \
exit 1; \ exit 1; \
@ -96,13 +100,10 @@ clean:
rm -rf tmp $(bins) $(mans) test configure *.tix .hpc $(sources) \ rm -rf tmp $(bins) $(mans) test configure *.tix .hpc $(sources) \
doc/.ikiwiki html dist $(clibs) doc/.ikiwiki html dist $(clibs)
# Workaround for cabal sdist not running Setup hooks, so I cannot # Workaround for `cabal sdist` requiring all included files to be listed
# generate a file list there. # in .cabal.
sdist: clean sdist: clean $(mans)
@if [ ! -e git-annex.cabal.orig ]; then cp git-annex.cabal git-annex.cabal.orig; fi ./make-sdist.sh
@sed -e "s!\(Extra-Source-Files: \).*!\1$(shell find . -name .git -prune -or -not -name \\*.orig -not -type d -print | perl -ne 'print unless length >= 100')!i" < git-annex.cabal.orig > git-annex.cabal
@cabal sdist
@mv git-annex.cabal.orig git-annex.cabal
# Upload to hackage. # Upload to hackage.
hackage: sdist hackage: sdist

View file

@ -1,27 +1,49 @@
{-# LANGUAGE NamedFieldPuns #-}
{- cabal setup file -} {- cabal setup file -}
import Distribution.Simple import Distribution.Simple
import Distribution.Simple.LocalBuildInfo import Distribution.Simple.LocalBuildInfo
import Distribution.Simple.Setup import Distribution.Simple.Setup
import System.Cmd import Distribution.Simple.Utils (installOrdinaryFiles, rawSystemExit)
import Distribution.PackageDescription (PackageDescription(..))
import Distribution.Verbosity (Verbosity)
import System.FilePath import System.FilePath
import qualified Build.Configure as Configure import qualified Build.Configure as Configure
main = defaultMainWithHooks simpleUserHooks main = defaultMainWithHooks simpleUserHooks
{ preConf = configure { preConf = configure
, instHook = install , postInst = myPostInst
} }
configure _ _ = do configure _ _ = do
Configure.run Configure.tests Configure.run Configure.tests
return (Nothing, []) return (Nothing, [])
install pkg_descr lbi userhooks flags = do myPostInst :: Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()
r <- (instHook simpleUserHooks) pkg_descr lbi userhooks flags myPostInst _ (InstallFlags { installVerbosity }) pkg lbi = do
_ <- rawSystem "ln" ["-sf", "git-annex", installGitAnnexShell dest verbosity pkg lbi
bindir installDirs </> "git-annex-shell"] installManpages dest verbosity pkg lbi
return r
where where
installDirs = absoluteInstallDirs pkg_descr lbi $ dest = NoCopyDest
fromFlag (copyDest defaultCopyFlags) verbosity = fromFlag installVerbosity
installGitAnnexShell :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
installGitAnnexShell copyDest verbosity pkg lbi =
rawSystemExit verbosity "ln"
["-sf", "git-annex", dstBinDir </> "git-annex-shell"]
where
dstBinDir = bindir $ absoluteInstallDirs pkg lbi copyDest
-- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages.
--
-- Based on pandoc's Setup.hs.
installManpages :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
installManpages copyDest verbosity pkg lbi =
installOrdinaryFiles verbosity dstManDir srcManpages
where
dstManDir = mandir (absoluteInstallDirs pkg lbi copyDest) </> "man1"
srcManpages = zip (repeat srcManDir) manpages
srcManDir = ""
manpages = ["git-annex.1", "git-annex-shell.1"]

4
debian/changelog vendored
View file

@ -3,8 +3,10 @@ git-annex (3.20120612) UNRELEASED; urgency=low
* watch: New subcommand, which uses inotify to watch for changes to * watch: New subcommand, which uses inotify to watch for changes to
files and automatically annexes new files, etc, so you don't need files and automatically annexes new files, etc, so you don't need
to manually run git commands when manipulating files. to manually run git commands when manipulating files.
* Install man page when run by cabal, in a location where man will
find it, even when installing under $HOME. Thanks, Nathan Collins
-- Joey Hess <joeyh@debian.org> Tue, 05 Jun 2012 20:25:51 -0400 -- Joey Hess <joeyh@debian.org> Tue, 12 Jun 2012 11:35:59 -0400
git-annex (3.20120611) unstable; urgency=medium git-annex (3.20120611) unstable; urgency=medium

7
doc/contributing.mdwn Normal file
View file

@ -0,0 +1,7 @@
## Style
This project uses tabs for indentation and the code looks fine with
any tab width. If you are using Emacs, and have it configured to use
spaces for indentation, then you can add a `./.dir-locals.el` to use
tabs for files in this project. See
<http://www.emacswiki.org/emacs/DirectoryVariables>.

View file

@ -7,7 +7,6 @@ Author: Joey Hess
Stability: Stable Stability: Stable
Copyright: 2010-2012 Joey Hess Copyright: 2010-2012 Joey Hess
License-File: GPL License-File: GPL
Extra-Source-Files: use-make-sdist-instead
Homepage: http://git-annex.branchable.com/ Homepage: http://git-annex.branchable.com/
Build-type: Custom Build-type: Custom
Category: Utility Category: Utility
@ -37,6 +36,7 @@ Executable git-annex
base == 4.5.*, monad-control, transformers-base, lifted-base, base == 4.5.*, monad-control, transformers-base, lifted-base,
IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance, IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance,
hinotify, STM hinotify, STM
-- Need to list this because it's generated from a .hsc file.
Other-Modules: Utility.Touch Other-Modules: Utility.Touch
C-Sources: Utility/libdiskfree.c C-Sources: Utility/libdiskfree.c
Extensions: CPP Extensions: CPP
@ -54,6 +54,7 @@ Test-Suite test
base == 4.5.*, monad-control, transformers-base, lifted-base, base == 4.5.*, monad-control, transformers-base, lifted-base,
IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance, IfElse, text, QuickCheck >= 2.1, bloomfilter, edit-distance,
hinotify, STM hinotify, STM
Other-Modules: Utility.Touch
C-Sources: Utility/libdiskfree.c C-Sources: Utility/libdiskfree.c
Extensions: CPP Extensions: CPP

13
make-sdist.sh Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
# Create target directory
sdist_dir=git-annex-$(grep '^Version:' git-annex.cabal | sed -re 's/Version: *//')
mkdir --parents dist/$sdist_dir
find . \( -name .git -or -name dist -or -name cabal-dev \) -prune \
-or -not -name \\*.orig -not -type d -print \
| perl -ne 'print unless length >= 100' \
| xargs cp --parents --target-directory dist/$sdist_dir
cd dist
tar -caf $sdist_dir.tar.gz $sdist_dir