Commit graph

416 commits

Author SHA1 Message Date
Joey Hess
14459a186f allow overriding CABAL 2013-03-10 16:44:03 -04:00
Joey Hess
a2d94bd627 Switch from using regex-compat to regex-tdfa, as the C regex library is rather buggy. 2013-03-08 15:29:01 -04:00
Joey Hess
459b9e8ab3 reuse fast build for make test 2013-03-07 19:07:25 -04:00
Joey Hess
051622c6da send hothasktags stderr to null 2013-03-03 23:33:22 -04:00
Joey Hess
6a52a47193 fix 2 bugs in android runshell 2013-02-28 19:12:54 -04:00
Joey Hess
843df51f06 use Setup.hs rather than depending on cabal-install
Based on a patch from Peter Simons
2013-02-28 16:08:11 -04:00
Joey Hess
0bca392206 remove Fast flag, pass -O0 to cabal 2013-02-28 16:03:35 -04:00
Joey Hess
c11aa969e5 Android: Enable test suite. 2013-02-27 23:26:14 -04:00
Joey Hess
e7b78c2eec re-enable fast autobuild from vim 2013-02-27 21:41:51 -04:00
Joey Hess
b1e1043bdb faster fast builds 2013-02-27 20:11:25 -04:00
Joey Hess
54cbbe460c make make fast work in clean tree 2013-02-27 18:21:32 -04:00
Joey Hess
497f81db79 install fix 2013-02-27 17:25:00 -04:00
Joey Hess
1615f21c9a fix broken build-stamp 2013-02-27 17:11:02 -04:00
Joey Hess
feb5470c0b disable test suite on Android
Cannot get QuickCheck to install just now.
2013-02-27 15:59:31 -04:00
Joey Hess
2b805b9589 one more android build fix 2013-02-27 15:46:44 -04:00
Joey Hess
d1dbf266f6 embed test suite into git annex; available by running: git annex test
I have seen some other programs do this, and think it's pretty cool. Means
you can test wherever it's deployed, as well as at build time.

My other reason for doing it is less happy. Cabal's handling of test suites
sucks, requiring duplicated info, and even when that's done, it fails to
preprocess hsc files here. Building it in avoids that and avoids having
to explicitly tell cabal to enable test suites, which would then make it
link the test executable every time, which is unnecessarily slow.

This also has the benefit that now "make fast test" does a max speed build
and tests it.
2013-02-27 15:38:21 -04:00
Joey Hess
7eb5c8cb51 fix android cross compile, working around cabal limitation 2013-02-27 15:16:52 -04:00
Joey Hess
2f4070b1db make test use cabal 2013-02-27 15:13:25 -04:00
Joey Hess
c234d46345 explicitly disable webapp on android 2013-02-27 14:34:53 -04:00
Joey Hess
64336f07db temporarily disable pairing on Android 2013-02-27 14:22:53 -04:00
Joey Hess
020e18e067 build fix 2013-02-27 14:14:38 -04:00
Joey Hess
da25488ad1 temporarily remove DNS flag for Android 2013-02-27 14:05:24 -04:00
Joey Hess
ef44103e85 build fix 2013-02-27 13:58:28 -04:00
Joey Hess
08473009cd got make fast back down to 20 seconds
This approach could also be used to get ./ghci back.. just munge the
extracted ghc command from cabal.
2013-02-27 03:05:33 -04:00
Joey Hess
cbd53b4a8c Makefile now builds using cabal, taking advantage of cabal's automatic detection of appropriate build flags.
The only thing lost is ./ghci

Speed: make fast used to take 20 seconds here, when rebuilding from
touching Command/Unused.hs. With cabal, it's 29 seconds.
2013-02-27 02:39:22 -04:00
Joey Hess
b117efc19b deal with http-conduit changing a data type
Pity that the library does not provide a function to extract the status
code from the StatusCodeException, so when they had to add a new field, it
breaks every single place that does it.
2013-02-27 00:07:28 -04:00
Joey Hess
ce2b4832d7 cleanup WITH_GLOB 2013-02-26 15:31:34 -04:00
Joey Hess
ab9ef9cb3f rename app 2013-02-21 16:02:25 -04:00
Joey Hess
a535cb3379 build an apk containing git-annex and a terminal emulator 2013-02-21 15:20:32 -04:00
Joey Hess
63ce1a4f71 prep release 2013-02-16 10:26:49 -04:00
Joey Hess
6e0f8c343b couple more android build fixes 2013-02-13 17:56:10 -04:00
Joey Hess
f342a0519b fix make -C 2013-02-13 16:44:46 -04:00
Joey Hess
f3b7e16293 Makefile and patches for reproducible build of utilities for android 2013-02-13 16:38:03 -04:00
Joey Hess
43f8b8873a add androidapp target
The android-utilities/ directory currently needs to be set up by hand to
contain busybox, etc.
2013-02-13 14:31:22 -04:00
Joey Hess
a7ef05a988 configure: hardcode some things that cannot be probed for when cross-compiling for Android 2013-02-11 16:56:30 -04:00
Joey Hess
521398cc3d Now uses the Haskell Glob library, rather than pcre-light, avoiding the need to install libpcre. Currently done only for Cabal or when the Makefile is made to use -DWITH_GLOB 2013-02-11 11:47:53 -04:00
Joey Hess
a86fe5ae94 update for path in newer ghc-android 2013-02-11 11:47:39 -04:00
Joey Hess
43b4b7d43a can now build Android targeted binary
Various things that don't work on Android are just ifdefed out.

* the webapp (needs template haskell for arm)
* --include and --exclude globbing (needs libpcre, which is not ported;
  probably I'll make it use the pure haskell glob library instead)
* annex.diskreserve checking (missing sys/statvfs.h)
* timestamp preservation support (yawn)
* S3
* WebDAV
* XMPP

The resulting 17mb binary has been tested on Android, and it is able to,
at least, print its usage message.
2013-02-10 15:48:38 -04:00
Joey Hess
14939362cb use hothasktags 2013-01-30 14:09:46 +11:00
Joey Hess
9e941f745d add ctags generation
I need to clean up the path to hasktags. Ideally by packaging it in Debian.

Not using ghci's own tags generation because it falls over on pre-compiled
files.
2013-01-29 22:35:10 +11:00
Joey Hess
d3d791c7e7 addurl --fast: Use curl, rather than haskell HTTP library, to support https. 2013-01-27 09:30:53 +11:00
Joey Hess
8b4f601626 trim the pages built 2013-01-07 12:56:20 -04:00
Joey Hess
7af958d92c OSX FSEvents support
Needs work to deal with directory renames better; otherwise seems to
basically work.
2012-12-27 15:22:29 -04:00
Joey Hess
82617b92e9 move thirdparty program installation for standalone bundle into haskell program
This allows it to use Build.SysConfig to always install the programs
configure detected. Amoung other fixes, this ensures the right uuid
generator and checksum programs are installed.

I also cleaned up the handling of lsof's path; configure now checks for
it in PATH, but falls back to looking for it in sbin directories.
2012-12-14 16:07:59 -04:00
Joey Hess
7a08220ee9 typo 2012-12-13 15:48:32 -04:00
Joey Hess
dd032bd84c furnish git with an (empty) template directory in standalone builds
This will stop git-init complaining about missing template directory.
2012-12-13 12:27:32 -04:00
Joey Hess
0fdfab366e put sbin directories in PATH when building standalone so lsof is found
This ensures that the standalone builds will include lsof, and it'll then
be in the runshell PATH, so will work.

This does not deal with manual builds where lsof is not in path, which
will fail at runtime due to the program being missing.
2012-12-12 12:02:54 -04:00
Joey Hess
08af051238 remove set -e
Not sure why this is failing w/o an error message.
2012-12-11 14:07:06 -04:00
Joey Hess
644f8bfbb9 switch back to WITH_DNS
This is because host is not included in the standalone builds.
2012-12-11 12:14:48 -04:00
Joey Hess
941bd635d2 require all THIRDPARTY_BINS be present to build standalone/app
It's just not acceptable for eg, lsof to be left out.
2012-12-10 15:22:02 -04:00
Joey Hess
033577b661 Enable WebDAV support in Debian package. Closes: #695532 2012-12-10 11:12:55 -04:00
Joey Hess
3ecf3b1a9f run bzip2 in fast mode 2012-12-09 13:43:18 -04:00
Joey Hess
457d34696f better message 2012-12-08 15:54:46 -04:00
Joey Hess
1dd386903b use install_name_tool to adjust library paths in osx app
Have not yet been able to test this.
2012-12-08 11:07:59 -04:00
Joey Hess
48b17bd8ec include /bin/sh in standalone builds
oberon:MacOS joeyh$ ./runshell
dyld: Symbol not found: _environ
  Referenced from: /bin/sh
  Expected in: /Volumes/git-annex/git-annex.app/Contents/MacOS/usr/lib/libSystem.B.dylib
 in /bin/sh
2012-12-07 14:43:48 -04:00
Joey Hess
dc337e29de Include ssh in standalone builds.
There are two reasons to to so. First, it allows not building with
WITH_OLD_SSH, and using ssh connection caching.

Second, per
http://git-annex.branchable.com/bugs/OSX_app_issues/#comment-3bdbc400a7c87c5cbc16e5aab5a52ac3
ssh can fail when run from the standalone build, due to library
incompatabilities. Building in ssh will avoid this.
2012-11-29 15:51:21 -04:00
Joey Hess
4f9cb2041c rewrote OSX library copier in Haskell, now with recursive copying of library deps 2012-11-26 14:09:40 -04:00
Joey Hess
0cba0cb2dd skeltal webdav special remote
Doesn't actually store anything yet, but initremote works and tests the
server.
2012-11-14 20:25:31 -04:00
Joey Hess
0e84de938e add clibs to getflags 2012-11-06 15:57:01 -04:00
Joey Hess
bdeea572b6 add cp to THIRDPARTY_BINS
git-annex is built with various cp options, so cp needs to match the build
environment.
2012-11-04 15:55:01 -04:00
Joey Hess
359f386ad6 switch to new URI version by default, -DWITH_OLD_URI for old 2012-11-03 12:10:01 -04:00
Joey Hess
9173c66e40 support using haskell-dns for SRV lookups
This library should be easier to install than ADNS, so I've made it
be used by default.
2012-10-28 19:14:30 -04:00
Joey Hess
19ff559590 add host command to standalone builds 2012-10-27 20:52:39 -04:00
Joey Hess
52a48d1a78 Merge branch 'master' into xmpp 2012-10-25 14:43:55 -04:00
Joey Hess
b846a69451 Re-enable dbus, using a new version of the library that fixes the memory leak.
For now, when dbus goes away, the assistant keeps running but does not fall
back or reconnect. To do so needs more changes to the DBus library; in
particular a connectSessionWith and connectSystemWith to let me specify
my own clientThreadRunner.
2012-10-25 14:32:30 -04:00
Joey Hess
21c27fed21 also remove -ignore-package monads-fd
My previous change should mean I no longer need that hack.
2012-10-24 14:46:31 -04:00
Joey Hess
9856641ef1 deal with mtl/monads-tf conflict
I had been using -ignore-package monads-tf to deal with this, but
the XMPP library uses monads-tf, so that also ignores it. Instead,
use PackageImports to force use of mtl in my own code.
2012-10-24 14:43:32 -04:00
Joey Hess
2c788a28a1 added network-protocol-xmpp and -DWITH_XMPP 2012-10-23 20:24:23 -04:00
Joey Hess
ea5f0fca97 workaround for ghci fragility in reusing objects compiled with ghc 2012-10-20 16:20:42 -04:00
Joey Hess
46d1b25bce add solaris workaround to cabal file too
uname reports SunOS, but cabal seems to use solaris.
2012-10-17 22:00:29 -04:00
Joey Hess
baad8829c8 avoid building watch or assistant on Solaris
Solaris does not use kqueue, it has some other poll interface.
2012-10-17 13:41:09 -04:00
Joey Hess
b70aaa1891 remove the make clean for standalone builds
This seemed to be causing too much load on the autobuilder.
2012-10-16 21:43:14 -04:00
Joey Hess
053e72cbfa don't continue with missing bin
We want the standalone builds to be complete and reproducible, so a missing
bin is an error.
2012-10-16 17:02:24 -04:00
Joey Hess
d7c19ef307 Temporarily disable use of dbus, as the haskell dbus library blows up when losing connection, which will need to be fixed upstream. 2012-10-16 11:56:07 -04:00
Joey Hess
a2fc62af7f forgot to include this in last commit 2012-10-15 21:49:46 -04:00
Joey Hess
3156febec8 disable ssh connection caching for standalone builds
The standalone build does not bundle its own ssh, so should be built
to support as wide an array of ssh versions as possible, so turn off
connection caching.

Unfortunatly, as implemented this forces a full rebuild when building the
standalone binary, and of course it makes it somewhat slower.

This is not ideal, but neither is probing the ssh version every time it's
run (slow), or once when initializing a repo (fragile).
2012-10-15 14:49:40 -04:00
Joey Hess
979f9cd966 allow OPTFLAGS to be overridden 2012-10-14 20:32:27 -04:00
Joey Hess
bf11d3d8ae Makefile: Avoid building with -threaded if the ghc threaded runtime does not exist.
This should fix build on mips, mipsel, s390, s390x, and sparc.

cabal doesn't test this yet.
2012-10-11 14:08:23 -04:00
Joey Hess
e24ff46f96 move 2012-10-01 13:38:19 -04:00
Joey Hess
efb96f9153 cleanup 2012-09-29 14:51:14 -04:00
Joey Hess
0ccfb3bbb2 let's not -DOSX, that results in unwanted mangling 2012-09-29 14:49:15 -04:00
Joey Hess
cc90c2be50 bring back GIT_ANNEX_LOCAL_FEATURES, I'm using it locally 2012-09-29 12:23:38 -04:00
Joey Hess
5849c3f24b Avoid building the webapp on Debian architectures that do not yet have template haskell and thus yesod. (Should be available for arm soonish I hope). 2012-09-29 01:28:02 -04:00
Joey Hess
e88e3ba85b standalone linux app nearly ready
also made several fixes that apply to the OSX app
2012-09-28 19:08:13 -04:00
Joey Hess
ccba4404a9 typo 2012-09-28 18:33:46 -04:00
Joey Hess
211b31d552 tar paths 2012-09-28 18:32:59 -04:00
Joey Hess
81a109d8b7 fix 2012-09-28 18:31:18 -04:00
Joey Hess
008700ff13 fixes 2012-09-28 18:29:36 -04:00
Joey Hess
115f05db25 building linux standalone tarballs 2012-09-28 18:21:39 -04:00
Joey Hess
1363cea260 forgot to change one place when I moved the license 2012-09-28 16:24:23 -04:00
Joey Hess
1117583087 The Makefile now builds with the new yesod by default.
Systems like Debian that have the old yesod 1.0.1 should set
GIT_ANNEX_LOCAL_FEATURES=-DWITH_OLD_YESOD
2012-09-28 15:59:06 -04:00
Joey Hess
af8b65cf24 fix location of license file
the webapp expects it under GIT_ANNEX_OSX_APP_BASE
2012-09-28 13:11:46 -04:00
Joey Hess
c86302df2b let's build the dmz from the osxapp target
Also, delete old version, otherwise hditool chokes on it
2012-09-28 12:20:18 -04:00
Joey Hess
7a66515c1e use gzcat
on some OSX boxes, zcat is some BSD gzip that expects a .Z file

(What a flaming mess)
2012-09-28 12:17:35 -04:00
Jimmy Tang
402a9d1305 copy licenses into the root of the build-dmg folder to make it clear as to what the license is 2012-09-27 22:32:56 +01:00
Joey Hess
a02d6b36d8 Add OSX standalone app license bundle, and arrange for the About page
to link to it.
2012-09-27 16:47:52 -04:00
Jimmy Tang
ad5b35026e teach the makefile to generate a .dmg file for the OSX app, the licenses and basic readme's still needs to be copied into the tmp/build-dmg directory. 2012-09-27 20:23:40 +01:00
Joey Hess
df1790b595 avoid installing git-annex from PATH to the webapp 2012-09-27 11:44:40 -04:00
Joey Hess
ba7b27892b strip git-annex when installing into the app 2012-09-26 19:04:21 -04:00
Joey Hess
be6b68402b add gpg 2012-09-26 16:53:30 -04:00
Joey Hess
74fb57d1c4 preserve library directories
Should avoid overwriting libraries when there are multiple versions of
a library used by different programs.
2012-09-25 10:27:21 -04:00
Joey Hess
3f8d1f1289 fixes 2012-09-25 10:22:41 -04:00
Joey Hess
9cac71d68a typo 2012-09-25 10:15:07 -04:00
Joey Hess
19291ae8ad build osx app in tmp dir 2012-09-25 10:12:25 -04:00
Joey Hess
37dff15ade add osxapp target
Not fully tested.
2012-09-24 19:42:45 -04:00
Joey Hess
24bfabe263 add build dep on network-info 2012-09-07 19:44:20 -04:00
Joey Hess
a8e05c8da1 add network-multicast to bulld depends 2012-09-07 14:54:00 -04:00
Joey Hess
47b88bbd16 move build scripts 2012-09-01 15:22:22 -04:00
Joey Hess
68f1be8f0a Merge branch 'master' into assistant
Conflicts:
	Makefile
	debian/copyright
2012-08-20 16:04:56 -04:00
Joey Hess
db960871fd use a stamp file to avoid running ghc in make install
That fails when make install is run sudoed, but cabal has been used to
install dependencies in a user's home directory.
2012-08-20 16:02:41 -04:00
Joey Hess
be310ac4d0 support building with yesod-default 1.1.0
Old 1.0.1 version is still supported as well. Cabal autodetects
which version is available, but in the Makefile, WITH_OLD_YESOD
has to be configured appropriately.

I have not squashed all the $newline warnings with the new Yesod.
They should go away eventually anyway as Yesod moves past that transition.
2012-08-09 13:33:04 -04:00
Joey Hess
a66e1f68ca remove template haskell file touching
too annoying
2012-08-07 13:25:06 -04:00
Joey Hess
c08ce66427 make dir 2012-08-07 13:12:16 -04:00
Joey Hess
415f0dd5d8 don't clobber env variable if set 2012-08-07 12:24:12 -04:00
Joey Hess
8925d975a9 build in GIT_ANNEX_TMP_BUILD_DIR
This allows setting GIT_ANNEX_TMP_BUILD_DIR to be on a ramdisk,
and all the .o files as well as the git-annex binary are written there.
A useful optimisation for me to avoid SSD write thrashing during
development.
2012-08-07 12:05:24 -04:00
Joey Hess
e78b13c428 hook desktop menu file installation into makefile and cabal 2012-08-01 21:05:27 -04:00
Joey Hess
c950e8fba0 move out to template 2012-07-31 18:33:19 -04:00
Joey Hess
ff4ab6d6da work around GHC not knowing to rebuild files using template haskell
when things they include change
2012-07-26 22:59:14 -04:00
Joey Hess
8e49206af5 fix normal build to include OPTFLAGS 2012-07-26 13:02:00 -04:00
Joey Hess
32d3cffc4c run yesod, and launch webapp on startup 2012-07-25 21:26:13 -04:00
Joey Hess
03979d4d54 Merge branch 'master' into assistant
Conflicts:
	Makefile
2012-07-25 14:55:53 -04:00
Joey Hess
927b53088f force C compiler to build 32 bit on OSX when 32 bit ghc is being used 2012-07-24 11:01:15 -04:00
Joey Hess
107a7b9388 try to make Utility.Mounts portable
This is an unholy mashup, but it just might work. It works on Linux,
that's all I've tested. :)
2012-07-19 20:38:58 -04:00
Joey Hess
f20a40f9d4 MountWatcher thread
Currently only prints mount points when mounts happen.
2012-07-19 13:04:33 -04:00
Joey Hess
1d5582091e attempt at building with -threaded
Added a modified System.Cmd.Utils, working around bug #681621

Unfortunatly, the test suite still hangs partway through.
Some of the hangs occur within pOpen3 still. Some of the hangs
do not seem to occur within System.Cmd.Utils at all, but in some other
code.
2012-07-17 13:37:55 -04:00
Joey Hess
41fcb3d852 Version build dependency on STM, and allow building without it, which disables the watch command. 2012-06-26 09:15:47 -04:00
Joey Hess
3c8a9043b6 skeleton C library for calling kqueue 2012-06-18 12:25:20 -04:00
Jimmy Tang
89f6f820bf Teach _Makefile_ to only do _-DWITH_INOTIFY_ when on a Linux machine. 2012-06-18 10:09:13 -04:00
Joey Hess
91567ab8f6 make inotify a build flag etc 2012-06-17 17:15:56 -04:00
Joey Hess
01beef4459 fix make-sdist to omit too long filenames 2012-06-15 14:14:50 -04:00
Nathan Collins
79a71d9ba6 Simplify git-annex.cabal and generate sdist with make-sdist.sh.
The `cabal install` is happy as long as the files it needs are
present, but `cabal sdist` will only package up files you tell it to.
So, generate the source tarball ourselves.

The source tarball is generated by make-sdist.sh, which uses cabal
sdist to calculate the package name.  Could also generate the name
from the 'Version:' field in git-annex.cabal.
2012-06-12 02:36:05 -07:00
Nathan Collins
6eb4f35c03 Merge branch 'master' into cabal-man-pages 2012-06-11 00:18:48 -07:00
Nathan Collins
7753b33c88 Refactor generation of git-annex.cabal and incorporate man pages.
The existing `sed | find | perl` hack in the Makefile was not
including the man pages in the generated git-annex.cabal.  I couldn't
figure out why it didn't work; running the `find | perl` part of the
command *did* list the man pages ...

So, I set up a new hack. It produces a cleaner .cabal file and
includes the man pages in the sdist.  I changed git-annex.cabal and
its generation as follows:

- git-annex.cabal is now generated by a here document in
  git-annex.cabal.template.sh.  The here document has inline file list
  insertion, whereas before the file lists were inserted with sed.

- The 'Extra-Source-Files:' field now only includes the non-source
  files: the man pages, plain text documentation, and license.

- The source dependencies are now listed in 'Other-Modules' sections
  in the 'Executable' and 'Test-Suite' sections.  The list of
  dependencies is generated by `gen-other-modules.sh`.

- The ./debian and ./doc are no longer included in the sdist package.
  These were not installed anywhere by `cabal install`.  A user that
  wants them could clone the git repo.

Running the tests with cabal is not yet working, i.e.

  cabal configure --enable-tests && cabal build && cabal test

and

  cabal install --enable-tests

fail to find Utility.Touch.  However, I did not break this: it doesn't
work for the git-annex package on Hackage either.  Next step is to
figure out how to deal with HSC in cabal ... or not bother, because
`make test` works.  I'm worried this is a cabal bug.

To test building from sdist, I've been running

  cd ../.. ; cabal sdist ; cd dist ; tar xf git-annex-3.20120605.tar.gz && cd git-annex-3.20120605 && rm -fr /tmp/git-annex && cabal install --prefix=/tmp/git-annex && tree -A /tmp/git-annex

in the dist directory.  Using `cabal-dev install` is a better test,
but is very slow.
2012-06-11 00:12:11 -07:00
Nathan Collins
f4b82e31b4 Fix Makefile dependencies for make test. 2012-06-10 18:59:16 -07:00
Sergei Trofimovich
3bb58afd59 Makefile: ignore monads-tf in favour of mtl
Fixes build breakage when both 'mtl' and 'monads-tf' are present:
$ make git-annex
> ghc -O2 -Wall -ignore-package monads-fd -outputdir tmp -IUtility -DWITH_S3 --make git-annex Utility/libdiskfree.o
>
> Common.hs:6:8:
>    Ambiguous module name `Control.Monad.State.Strict':
>      it was found in multiple packages: monads-tf-0.1.0.0 mtl-2.1.1
> make: *** [git-annex] Error 1

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2012-06-10 12:11:30 -04:00
Nathan Collins
2b29a02285 Make man pages when making sdist. 2012-06-09 20:46:41 -07:00
Nathan Collins
f5261f60c3 Make standalone man-page installation possible
The `cabal install git-annex` doesn't install the man pages, and the
Makefile only installed the man pages as part of a full build/install.
So, I factored out the documentation parts of the Makefile.
2012-06-05 20:36:42 -07:00
Joey Hess
aa353d1400 use LANGUAGE CPP pragma, avoids running cpp on all the other sources 2012-04-17 18:37:40 -04:00
Joey Hess
626697b459 cabal file now autodetects whether S3 support is available. 2012-04-14 14:22:33 -04:00
Joey Hess
3642c72320 Renamed diskfree.c to avoid OSX case insensativity bug. 2012-04-13 11:26:39 -04:00
Joey Hess
16acc507f3 releasing version 3.20120405 2012-04-05 16:37:44 -04:00
Joey Hess
e38a839a80 Rewrote free disk space checking code
Moving the portability handling into a small C library cleans up things
a lot, avoiding the pain of unpacking structs from inside haskell code.
2012-03-22 17:32:47 -04:00
Joey Hess
d2769cf795 shave some 12 mb from the installed size
* git-annex now behaves as git-annex-shell if symlinked to and run by that
  name. The Makefile sets this up, saving some 8 mb of installed size.
* git-union-merge is a demo program, so it is no longer built by default.
2012-03-15 12:00:19 -04:00
Joey Hess
d820099c8f makefile tweaks
Put build cruft in a subdir
2012-03-15 00:04:28 -04:00
Joey Hess
94d7b323ee remove cruft 2012-03-10 23:02:17 -04:00
Joey Hess
6d3fb5cba7 remove -fspec-constr-count workaround
not needed with ghc 7.4
2012-02-27 14:36:40 -04:00
Joey Hess
81856c3175 add a configure check for StatFS
This way, the build log will indicate whether StatFS can be relied on.
I've tested all the failing architectures now, and on all of them,
the StatFS code now returns Nothing, rather than Just nonsense.

Also, if annex.diskreserve is set on a platform where StatFS is not
working, git-annex will complain.

Also, the Makefile was missing the sources target used when building with
cabal.
2012-01-15 13:49:32 -04:00
Joey Hess
9ad52ef67c add hackage target 2012-01-13 15:08:28 -04:00
Joey Hess
f534fcc7b1 remove S3stub stuff
Let's keep that in a no-s3 branch, which can be merged into eg,
debian-stable.
2012-01-05 23:14:10 -04:00
Joey Hess
7e6a54f984 Added quickcheck to build dependencies, and fail if test suite cannot be built. 2012-01-03 14:52:20 -04:00
Joey Hess
435a349ef5 increate spec-constr-count
Was getting SpecConstr warnings on Command.Find
2011-12-30 20:20:25 -04:00
Joey Hess
9cfa7a969c note 2011-12-20 16:07:34 -04:00
Joey Hess
f30d545256 remove seemingly unneeded dependencies 2011-12-20 16:02:59 -04:00
Joey Hess
a71c03bc51 add make fast target 2011-11-10 03:10:17 -04:00
Joey Hess
737f043c55 fast build mode for vim 2011-11-09 21:36:11 -04:00
Joey Hess
dab5bddc64 propigate test suite failure
(but not test suite build failure)
2011-10-06 11:12:03 -04:00
Joey Hess
72b54d6170 Fix build without S3. 2011-09-07 10:21:19 -04:00
Joey Hess
ebb92221fd Fix Makefile to work with cabal again. 2011-09-06 15:35:13 -04:00
Joey Hess
b26ee162f3 guess not everyone configures their shell to show nonzero exit codes.. 2011-08-27 12:34:02 -04:00
Joey Hess
737b5d14c9 moved files around 2011-08-20 16:11:42 -04:00
Joey Hess
8c1fa1ab5f add a nasty workaround for a nasty cabal limitation
It croaks on long filenames.. probably >= 100 chars
100 characters was a (historial) limit on filenames in tarballs.
2011-07-07 19:50:14 -04:00
Joey Hess
84a9fee6f2 fix sdist to include symlinks, without which it doesn't build
oops.. will upload a new minor version to hackage
2011-07-02 17:10:43 -04:00
Joey Hess
6488278610 cabal sdist: plan C 2011-07-02 14:58:01 -04:00
Joey Hess
b3ab44f8bb add a filelist for cabal sdist
I hate hard-coded 40 kilobyte lone file lists, and just once would like to
see a build system that does not assume it's a good idea to have a file
list, or a hardcoded file list, or a file list that can only be generated
with a crippled form of globs. But not today, thank you cabal.
2011-06-30 15:37:35 -04:00
Joey Hess
ee3a0551a7 Merge branch 'master' into v3
Conflicts:
	debian/changelog
2011-06-30 15:01:08 -04:00
Joey Hess
56aeeb4565 cabal can now be used to build git-annex.
This is substantially slower than using make, does not build or install
documentation, does not run the test suite, and is not particularly
recommended, but could be useful to some.
2011-06-30 14:55:03 -04:00
Joey Hess
c0fbd3017f ssh 2011-06-22 20:42:00 -04:00
Joey Hess
c835166a7c add git-union-merge
This is a new git subcommand, that does a generic union merge operation
between two refs, storing the result in a branch. It operates efficiently
without touching the working tree. It does need to write out a temporary
index file, and may need to write out some other temp files as well.

This could be useful for anything that stores data in a branch,
and needs to merge changes into that branch without actually checking the
branch out. Since conflict handling can't be done without a working copy,
the merge type is always a union merge, which is fine for data stored in
log format (as git-annex does), or in non-conflicting files
(as pristine-tar does).

This probably belongs in git proper, but it will live in git-annex for now.

---

Plan is to move .git-annex/ to a git-annex branch, and use git-union-merge
to handle merging changes when pulling from remotes.

Some preliminary benchmarking using real .git-annex/ data indicates
that it's quite fast, except for the "git add" call, which is as slow
as "git add" tends to be with a big index.
2011-06-20 21:37:18 -04:00
Joey Hess
db540b746b don't optimise test suite
This avoids needing to adjust -fspec-constr-count, which
continues to need high values (> 8 now) when building the test suite.
2011-05-15 12:32:18 -04:00
Joey Hess
49efc6c399 add -fspec-constr-count workaround
ghc 7 produces these warnings http://hackage.haskell.org/trac/ghc/ticket/4288
The specialization is enabled by -O2, and the default limit of 3 is
there to avoid specialization blowing up binary size. Perhaps that default
is a little low? I needed 4 to avoid a warning on Unused.hs, and 5 to avoid
warnings on test.hs
2011-04-29 13:12:26 -04:00
Joey Hess
8512a4a1a1 Remove testpack from build depends, as it is not available on all architectures.
The test suite will not be run if it cannot be compiled.

It may be possible later to split off the quickcheck using tests into
a separate program and keep most of the tests using just hunit.
2011-04-25 12:43:22 -04:00
Joey Hess
82347fc5ab seems -rtsopts is needed now for profiling 2011-04-21 11:23:44 -04:00
Joey Hess
788fcc2bb4 typo 2011-04-06 21:41:13 -04:00
Joey Hess
094983a2bd support PROFILE=1 to enable profiling 2011-04-05 14:00:51 -04:00
Joey Hess
9c96d86502 nasty hack to build when hS3 is not available
So, it would be nicer to just use Cabal and take advantage
of its conditional compilation support. But, Cabal seems to
lack good support for a package with an internal library that is used by
multiple executables. It wants to build everything twice or more.
That's too slow for me.

Anyway, fairly soon, I expect to upgrade hS3 to a requirment, and I
can just revert this.
2011-03-30 01:32:05 -04:00
Joey Hess
cf99575d74 update 2011-03-28 12:09:47 -04:00
Joey Hess
9f9325aa3d clean too 2011-03-22 18:51:14 -04:00
Jimmy Tang
c44c318eaf Touch up Makefile to depend on StatFS.hs 2011-03-22 18:43:54 -04:00
Joey Hess
25605d18fd generalize 2011-03-22 15:39:36 -04:00
Joey Hess
9d49fe2c17 first pass at using new keys
It compiles. It sorta works. Several subcommands are FIXME marked and
broken, because things that used to accept separate --backend and --key
params need to be changed to accept just a --key that encodes all the key
info, now that there is metadata in keys.
2011-03-15 21:34:13 -04:00
Joey Hess
bc5c54c987 symlink touching fun
When adding files to the annex, the symlinks pointing at the annexed
content are made to have the same mtime as the original file. While git
does not preserve that information, this allows a tool like metastore to be
used with annexed files.
2011-03-14 23:00:23 -04:00
Joey Hess
45387b3fcb Deal with the mtl/monads-fd conflict. 2011-02-08 15:11:49 -04:00
Joey Hess
778966b4f4 improve man building 2011-01-25 18:54:27 -04:00
Joey Hess
4465689cc2 refactor 2011-01-19 20:02:48 -04:00
Joey Hess
f189929b8b workaround ghc weirdness with -odir
The option cause it to always build to build/Main.o, no matter what
binary it was building. This caused extra work, and in some cases,
could cause the wrong code to be put into the final binary.
2011-01-07 02:15:23 -04:00
Joey Hess
87f424eca7 more tests 2011-01-06 21:39:26 -04:00
Joey Hess
aedc46caca cleanup 2011-01-04 21:07:58 -04:00
Joey Hess
759e860e4b add testcoverage target using hpc
added a test for key read and show
2011-01-04 21:05:31 -04:00
Joey Hess
7a52b34e06 add git-annex-shell command
This is not yet complete, as it does not allow starting rsync or scp.
2010-12-30 16:52:24 -04:00
Joey Hess
67c5036579 Makefile: Add GHCFLAGS variable. 2010-12-12 13:17:53 -04:00
Joey Hess
b805b9ae66 Makefile: Add GHCOPTS variable. 2010-12-12 13:16:34 -04:00
Joey Hess
98ad5402d9 Makefile: Install man page and html (when built). 2010-12-12 13:15:16 -04:00
Joey Hess
3a252efd9d releasing version 0.12 2010-12-11 17:37:24 -04:00
Joey Hess
10484a69b8 Makefile: Add PREFIX variable. 2010-12-11 17:29:50 -04:00
Joey Hess
6f932a0963 avoid building news page when building doc wiki for package 2010-12-02 21:37:55 -04:00
Joey Hess
161823d6ea Only use cp -a if it is supported, falling back to cp -p or plain cp.
* cp --reflink=auto is used if supported, and will make git annex unlock
  much faster on filesystems like btrfs that support copy of write.
2010-11-18 13:49:01 -04:00
Joey Hess
54513c69ba Add configure step to build process.
* configure: Check to see if cp -a can be used.
* configure: Check to see if cp --reflink=auto can be used.
2010-11-18 13:30:42 -04:00
Joey Hess
0b57b68918 deal with OSX case brokenness
HELLO, it's 2010.. POSIX calling..
2010-11-14 17:56:12 -04:00
Joey Hess
b5ce88dd2a build with -O2 2010-11-11 17:04:00 -04:00
Joey Hess
58fffdb73b remove unnecessary mkdir 2010-11-11 15:34:28 -04:00
Joey Hess
515d6b6c7d Avoid using runghc to run test suite as it is not available on all architectures. Closes: #603006 2010-11-10 10:49:35 -04:00
Joey Hess
d93a372894 add a stupid test harness 2010-11-02 16:49:35 -04:00
Joey Hess
e379307900 better message when ikiwiki is not available 2010-11-01 20:27:30 -04:00
Joey Hess
1576c48c80 more Wall cleaning 2010-10-31 14:32:18 -04:00
Joey Hess
963bfa9673 cpp not needed 2010-10-30 22:47:34 -04:00
Joey Hess
23da029b75 Support building with Debian stable's ghc. 2010-10-30 15:10:10 -04:00
Joey Hess
5b4272aba3 update 2010-10-22 15:12:48 -04:00
Joey Hess
19fde4960d new fromkey subcommand, for registering urls, etc
had to redo Annex monad's flag storage
2010-10-21 16:30:16 -04:00
Joey Hess
9d5b8ebab0 update 2010-10-19 19:28:29 -04:00
Joey Hess
d6911f57b7 update 2010-10-19 16:17:29 -04:00
Joey Hess
7bc4435ffd update 2010-10-19 15:59:40 -04:00
Joey Hess
21128c88e7 tweak 2010-10-19 14:39:40 -04:00
Joey Hess
e8267f1b9e add doc wiki 2010-10-19 14:37:19 -04:00
Joey Hess
117e97ea30 debianization 2010-10-16 16:41:24 -04:00
Joey Hess
50630840ee build in subdir 2010-10-14 03:46:34 -04:00
Joey Hess
c67521741a add 2010-10-10 00:18:16 -04:00