Commit graph

926 commits

Author SHA1 Message Date
Joey Hess
65c1003bf5
don't try to pull in libmagic on windows
May be possible to install the library somehow, but it certainly won't be
available normally, and so cabal will fail to install magic.
2016-02-15 15:05:31 -04:00
Joey Hess
40207b26ea
move old ghc compat code into separate module; eliminate WITH_CLIBS
This avoids hsc2hs being run except when building for the old version of ghc.
Should speed up builds.
2016-02-15 11:47:33 -04:00
Joey Hess
a665f92b91
switch from homegrown code to disk-free-space
According to https://github.com/redneb/disk-free-space/issues/3 ,
disk-free-space should be at least as portable as my homegrown code was.

One change I noticed is, getDiskSize was not implemented for windows
in the old code, and should work now.
2016-02-15 11:29:27 -04:00
Joey Hess
46fe686ba0
remove Utility.Mounts et al; moved to mountpoints package 2016-02-15 11:14:37 -04:00
Joey Hess
c8b201ad87
releasing package git-annex version 6.20160211 2016-02-11 12:02:38 -04:00
Joey Hess
0226122842
Brought back the dbus and xmpp build flags, so build from source can be done without C libraries that may be hard to install. 2016-02-05 18:00:20 -04:00
Joey Hess
5127cb59cc
annex.largefiles: Add support for mimetype=text/* etc, when git-annex is linked with libmagic. 2016-02-03 16:29:34 -04:00
Joey Hess
015a3f6061
prep release
Note that 039e83ed5d maligned FTP
incorrectly. The type checker didn't catch that bug because of the monad
instance for lists.
2016-01-26 15:05:36 -04:00
Joey Hess
ecec42bbb4
remove TDFA build flag 2016-01-26 08:52:34 -04:00
Joey Hess
dcfb038cd2
Roll the dns build flag into the assistant build flag. 2016-01-26 08:48:23 -04:00
Joey Hess
f051b51645
remove 3 build flags
* Removed the webapp-secure build flag, rolling it into the webapp build
  flag.
* Removed the quvi and tahoe build flags, which only adds aeson to
  the core dependencies.
* Removed the feed build flag, which only adds feed to the core
  dependencies.

Build flags have cost in both code complexity and also make Setup configure
have to work harder to find a usable set of build flags when some
dependencies are missing.
2016-01-26 08:14:57 -04:00
Joey Hess
6976d57f64
prep release 2016-01-14 10:18:30 -04:00
Joey Hess
f9c5aa84e0
add database benchmark
The benchmark shows that the database access is quite fast indeed!
And, it scales linearly to the number of keys, with one exception,
getAssociatedKey.

Based on this benchmark, I don't think I need worry about optimising
for cases where all files are locked and the database is mostly empty.
In those cases, database access will be misses, and according to this
benchmark, should add only 50 milliseconds to runtime.

(NB: There may be some overhead to getting the database opened and locking
the handle that this benchmark doesn't see.)

joey@darkstar:~/src/git-annex>./git-annex benchmark
setting up database with 1000
setting up database with 10000
benchmarking keys database/getAssociatedFiles from 1000 (hit)
time                 62.77 μs   (62.70 μs .. 62.85 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 62.81 μs   (62.76 μs .. 62.88 μs)
std dev              201.6 ns   (157.5 ns .. 259.5 ns)

benchmarking keys database/getAssociatedFiles from 1000 (miss)
time                 50.02 μs   (49.97 μs .. 50.07 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 50.09 μs   (50.04 μs .. 50.17 μs)
std dev              206.7 ns   (133.8 ns .. 295.3 ns)

benchmarking keys database/getAssociatedKey from 1000 (hit)
time                 211.2 μs   (210.5 μs .. 212.3 μs)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 211.0 μs   (210.7 μs .. 212.0 μs)
std dev              1.685 μs   (334.4 ns .. 3.517 μs)

benchmarking keys database/getAssociatedKey from 1000 (miss)
time                 173.5 μs   (172.7 μs .. 174.2 μs)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 173.7 μs   (173.0 μs .. 175.5 μs)
std dev              3.833 μs   (1.858 μs .. 6.617 μs)
variance introduced by outliers: 16% (moderately inflated)

benchmarking keys database/getAssociatedFiles from 10000 (hit)
time                 64.01 μs   (63.84 μs .. 64.18 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 64.85 μs   (64.34 μs .. 66.02 μs)
std dev              2.433 μs   (547.6 ns .. 4.652 μs)
variance introduced by outliers: 40% (moderately inflated)

benchmarking keys database/getAssociatedFiles from 10000 (miss)
time                 50.33 μs   (50.28 μs .. 50.39 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 50.32 μs   (50.26 μs .. 50.38 μs)
std dev              202.7 ns   (167.6 ns .. 252.0 ns)

benchmarking keys database/getAssociatedKey from 10000 (hit)
time                 1.142 ms   (1.139 ms .. 1.146 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.142 ms   (1.140 ms .. 1.144 ms)
std dev              7.142 μs   (4.994 μs .. 10.98 μs)

benchmarking keys database/getAssociatedKey from 10000 (miss)
time                 1.094 ms   (1.092 ms .. 1.096 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.095 ms   (1.095 ms .. 1.097 ms)
std dev              4.277 μs   (2.591 μs .. 7.228 μs)
2016-01-12 13:07:03 -04:00
Joey Hess
e40d8bc625
remove Inotify build flag
Available for a long time in Linux, and only used there, so a flag is not
needed.
2015-12-28 14:46:01 -04:00
Joey Hess
664208d19f
remove XMPP, DBus, DesktopNotify build flags
Make these features solely dependent on the OS being built on.

This lets stack build on windows w/o XMPP, on OSX w/o DBUS,
and on Linux with everything.
2015-12-28 14:38:58 -04:00
Joey Hess
87f0708f88
persistent-sqlite is now a hard build dependency, since v6 repository mode needs it. 2015-12-26 13:00:52 -04:00
Joey Hess
f1a73de560
prep release 2015-12-18 12:09:55 -04:00
Joey Hess
e74e612945
prep release 2015-12-08 11:14:28 -04:00
Joey Hess
b5df6c7b93
prep release 2015-11-16 14:18:01 -04:00
Joey Hess
189718cf8a
enable ConcurrentOutput by default when library is available 2015-11-16 11:51:16 -04:00
Joey Hess
e96d9bbdb4
move dep on http-client to main dep list, since Utility.Url uses it 2015-11-06 12:54:23 -04:00
Joey Hess
2ca52b4a9d
needs concurrent-output 1.6 for bugfixes and windows port 2015-11-05 16:13:10 -04:00
Joey Hess
a4dd8503b8
add regions to concurrent output
still no progress displays when getting files etc, but a big improvement
2015-11-04 14:52:07 -04:00
Joey Hess
4fd03ccd7b
concurrent-output, first pass
Output without -Jn should be unchanged from before. With -Jn,
concurrent-output is used for messages, but regions are not used yet, so
it's a mess.
2015-11-04 13:45:34 -04:00
Joey Hess
61987c6983
point release for cabal file fixes
Seems that some changes to the cabal file a few months ago resulted in a
git-annex that broke stackage infrastructure.
2015-11-03 12:10:01 -04:00
Joey Hess
29d250923b
prep release 2015-11-02 12:41:33 -04:00
Joey Hess
4cc892f938
prep release 2015-10-19 14:08:14 -04:00
Joey Hess
933fef6ae0 Merge branch 'winprocfix' 2015-10-04 15:46:25 -04:00
Joey Hess
d4d880c1a4 prep release 2015-09-30 14:32:45 -04:00
Joey Hess
23f3bd6453 prep release 2015-09-16 10:31:41 -04:00
Joey Hess
19dbe2a611 webapp: Fix support for entering password when setting up a ssh remote. 2015-09-03 11:03:08 -07:00
Joey Hess
86e638567a Fix Windows build to work with ghc 7.10
It was failing at link time, some problem with terminatePID.
Re-implemented that to not use a C wrapper function, which cleared up the
problem. Removed old EvilLinker hack with must have been related to the
same problem.

Note that I have not tested this with older ghc's. In
f11f7520b5 I mention having tried this
approach before, and getting segfaults.. So, who knows. It seems to work
fine with ghc 7.10 at least.
2015-09-01 14:51:14 -07:00
Joey Hess
18c57daf2e speed up fast builds
Enabling -dynamic avoids writing out many mb of static libs.

-j parallelizes
2015-08-27 09:31:41 -07:00
Joey Hess
d4fd4ed5fe hackage still doesn't accept os(gnu), remove again 2015-08-24 14:22:26 -07:00
Joey Hess
33978f8448 prep release 2015-08-24 14:12:38 -07:00
Joey Hess
ca7614ff2c android still not building, revert breaking change 2015-08-24 10:57:22 -07:00
Joey Hess
e3dedd3c89 better android build fix 2015-08-24 10:56:08 -07:00
Joey Hess
5ef4fe1746 android ghc doesn't support -j flag, fix build 2015-08-24 10:54:00 -07:00
Joey Hess
a1f36054c6 comment 2015-08-19 13:07:35 -04:00
Joey Hess
ba56d10c60 Avoid building the assistant on the hurd, since an inotify equivilant is not yet implemented in git-annex for the hurd.
Note that https://github.com/haskell/hackage-server/issues/269 is fixed, so
hopefully I can upload this to hackage this time.
2015-08-17 11:53:16 -04:00
Joey Hess
0050215ed1 enable parallel build for fast mode and explicitly disable for production
Currently, ghc has issues getting reproducible builds with parallel
building. https://ghc.haskell.org/trac/ghc/ticket/4012
2015-08-14 17:39:56 -04:00
Joey Hess
730573e0ba prep release 2015-08-12 11:16:38 -04:00
Joey Hess
0ec9bc2200 Added support for SHA3 hashed keys (in 8 varieties), when git-annex is built using the cryptonite library.
While cryptohash has SHA3 support, it has not been updated for the final
version of the spec. Note that cryptonite has not been ported to all arches
that cryptohash builds on yet.
2015-08-06 15:02:25 -04:00
Joey Hess
7cf0cb48ee Tighten dependency on optparse-applicative to 0.11.0.
Type of str changed in 0.11.
2015-08-02 19:05:24 -04:00
Joey Hess
e954b165a1 prep release 2015-07-31 11:34:53 -04:00
Joey Hess
b62f8fa6ad prep release 2015-07-27 12:25:03 -04:00
Joey Hess
1fb9ab342b Support building without persistent database on for systems that lack TH. This removes support for incremental fsck. 2015-07-25 17:37:09 -04:00
Joey Hess
d4c7cde087 remove new-time build flag
This caused problems building with stackage and ghc 7.6, since cabal
assumes the flag means it wants a newer time. Since time is bundled with
ghc, stackage doesn't pin it.

Since this flag was only there to avoid a dep on old-locale, which is
currently bundled with ghc, let's remove the flag.
2015-07-21 19:25:12 -04:00
Joey Hess
02d522a12e Debian package (and any other packages built using make install) now includes bash completion. 2015-07-13 12:26:06 -04:00
Joey Hess
dd54d9b617 Merge branch 'master' into optparse-applicative
Conflicts:
	debian/changelog
2015-07-10 17:07:54 -04:00
Joey Hess
bda6a020e6 prep release 2015-07-10 16:39:05 -04:00
Joey Hess
a2ba701056 started converting to use optparse-applicative
This is a work in progress. It compiles and is able to do basic command
dispatch, including git autocorrection, while using optparse-applicative
for the core commandline parsing.

* Many commands are temporarily disabled before conversion.
* Options are not wired in yet.
* cmdnorepo actions don't work yet.

Also, removed the [Command] list, which was only used in one place.
2015-07-08 13:36:25 -04:00
Joey Hess
aea694ed3f Removed support for optparse-applicative versions older than 0.10.
Debian stable has 0.10.0.
2015-07-07 23:54:46 -04:00
Joey Hess
751f9c40ce On linux, pass --as-needed to linker to avoid linking with unused shared libraries including libyaml. 2015-07-07 13:19:13 -04:00
Joey Hess
f20a8f88de prep release 2015-06-16 20:29:09 -04:00
Joey Hess
9b38c14165 debian/cabal-wrapper: Removed this hack which should not be needed anymore. 2015-06-14 14:43:55 -04:00
Joey Hess
2989cdfe3e re-remove hamlet dep 2015-06-06 14:13:46 -04:00
Joey Hess
e62f82ca9d -fPIC broke the autobuilders, so remove again. hmm 2015-06-06 12:09:45 -04:00
Joey Hess
5211b8fc70 not sure why, but ghc started failing linking the C libs unless explicitly built with -fPIC 2015-06-05 14:37:01 -04:00
Joey Hess
0fd4bef75e prep release 2015-05-28 10:49:04 -04:00
Joey Hess
e810564338 Revert "remove deprecated hamlet package"
This reverts commit cf650eaa99.

It's too early to do this; the linux and android autobuilder will need to
be updated to use the new version of shakespeare, and that will require a
complete refresh of them. In the meantime, this has knocked the webapp out
of the autobuilders.
2015-05-27 14:47:41 -04:00
Joey Hess
cf650eaa99 remove deprecated hamlet package
shakespeare provides this now
2015-05-22 15:46:47 -04:00
Joey Hess
979064b1cb prep release 2015-05-22 14:20:21 -04:00
Joey Hess
505d540360 allow building without ascii-progress, since it is not ready yet
No progress bars with -J unless built with ascii-progress.
2015-05-12 13:54:16 -04:00
Joey Hess
e27b97d364 Merge branch 'master' into concurrentprogress
Conflicts:
	Command/Fsck.hs
	Messages.hs
	Remote/Directory.hs
	Remote/Git.hs
	Remote/Helper/Special.hs
	Types/Remote.hs
	debian/changelog
	git-annex.cabal
2015-05-12 13:23:22 -04:00
Joey Hess
6ebf615995 cutting a point release, will be a cabal-only update 2015-05-11 12:09:02 -04:00
Joey Hess
7d3b052fd4 reorder dependency list 2015-05-10 17:03:20 -04:00
Joey Hess
663eb15aa3 avoid unncessary dep on old-locale when building with new version of time 2015-05-10 16:50:22 -04:00
Joey Hess
fd2d90d319 disable ghc 7.10's obnoxious warnings about every line using tab to indent 2015-05-10 14:41:34 -04:00
Joey Hess
f1a81cfce2 prep release 2015-05-08 13:42:45 -04:00
Magnus Therning
8ab56a5cf2 Replace dataenc with sandi.
The library dataenc is unmaintained and has been superseded by sandi.

Signed-off-by: Magnus Therning <magnus@therning.org>
2015-05-07 18:07:05 -04:00
Joey Hess
8f010bb55b also drop old dbus compat 2015-04-22 16:23:41 -04:00
Joey Hess
eb8ef44133 Dropped support for older versions of yesod and warp than the ones in Debian Jessie.
466 lines of compat cruft deleted!
2015-04-22 16:19:11 -04:00
Joey Hess
b7be1680a7 prep release 2015-04-20 14:44:15 -04:00
Joey Hess
5f73bc3a12 Removed dependency on haskell SHA library, instead using cryptohash >= 0.11.0. 2015-04-19 11:05:32 -04:00
Joey Hess
c0497aa571 switch to using cryptohash for MAC 2015-04-19 10:54:12 -04:00
Joey Hess
a5d89633c3 scale progress bar to terminal size 2015-04-14 16:39:30 -04:00
Joey Hess
86a2f9dc4d Merge branch 'master' into concurrentprogress
Conflicts:
	debian/changelog
2015-04-14 15:35:15 -04:00
Joey Hess
b14ec45aa8 info dir: Added information about repositories that contain files in the specified directory.
This is a nearly free feature; it piggybacks on the location log lookups
done for the numcopies stats. So, the only extra overhead is updating
the map of repository sizes.

However, I had to switch to Data.Map.Strict, which needs containers 0.5.
If backporting to wheezy, will probably need to revert this commit.
2015-04-12 12:54:41 -04:00
Joey Hess
64ab652af4 pin ascii-progress version for now; big changes coming 2015-04-10 13:10:15 -04:00
Joey Hess
c45da74241 Merge branch 'master' into concurrentprogress 2015-04-10 12:45:42 -04:00
Joey Hess
b22aacab44 prep release 2015-04-09 15:06:46 -04:00
Joey Hess
683c596a0e Merge branch 'master' into concurrentprogress 2015-04-07 13:32:52 -04:00
Joey Hess
c83940393a emergency release 2015-04-06 17:13:20 -04:00
Joey Hess
dd96043011 prep release 2015-04-06 12:50:22 -04:00
Joey Hess
a06f9ff329 WIP use ascii-progress
A bit flickery due to
https://github.com/yamadapc/haskell-ascii-progress/issues/12

And, won't handle large files until ascii-progress is changed to use
Integers.
2015-04-04 15:58:38 -04:00
Joey Hess
e473d59b92 prep release 2015-03-27 13:11:40 -04:00
Joey Hess
86bdd5198f prep release 2015-03-17 13:03:31 -04:00
Justin Lebar
d5c0b500d3 Specify a version for the 'feed' build dependency.
Versions of feed before 0.3.4 don't have 'getItemSummary', which is used
in ImportFeed.hs.
2015-03-17 12:49:45 -04:00
Joey Hess
8914773c05 move resourcet dependency out of S3 only; needed by database code 2015-02-27 11:15:09 -04:00
Joey Hess
fd2a543c7d Merge branch 'master' into database
Conflicts:
	debian/changelog
2015-02-22 14:12:42 -04:00
Joey Hess
bf80a16c2e complete work around for sqlite SELECT ErrorBusy on new connection bug 2015-02-22 14:08:26 -04:00
Joey Hess
8c915ccebc prep release 2015-02-19 14:16:19 -04:00
Joey Hess
b541a5e38b WIP 2015-02-18 17:46:58 -04:00
Joey Hess
91e9146d1b convert incremental fsck to using sqlite database
Did not keep backwards compat for sticky bit records. An incremental fsck
that is already in progress will start over on upgrade to this version.

This is not yet ready for merging. The autobuilders need to have sqlite
installed.

Also, interrupting a fsck --incremental does not commit the database.
So, resuming with fsck --more restarts from beginning.

Memory: Constant during a fsck of tens of thousands of files.
(But, it does seem to buffer whole transation in memory, so
may really scale with number of files.)

CPU: ?
2015-02-16 15:35:26 -04:00
Joey Hess
9527414e67 prep release 2015-02-05 14:21:13 -04:00
Joey Hess
95c1593098 Remove support for building without cryptohash.
This will prevent backporting to wheezy, but it's time to simplify the
code.
2015-02-04 13:41:26 -04:00
Joey Hess
afc5153157 update my email address and homepage url 2015-01-21 12:50:09 -04:00
Joey Hess
4d7bc922a2 prep release 2015-01-13 12:10:33 -04:00
Joey Hess
e0dbf380f1 prep release 2014-12-31 15:16:01 -04:00
Joey Hess
148c0c2048 prep Solstice release 2014-12-19 16:53:36 -04:00
Joey Hess
ef12386924 When possible, build with the haskell torrent library for parsing torrent files. 2014-12-18 14:26:10 -04:00
Sergei Trofimovich
a78a119fb3 git-annex.cabal: add missing http-client depend to S3
With the following flags:
  $ cabal configure --ghc --prefix=/usr --with-compiler=/usr/bin/ghc --with-hc-pkg=/usr/bin/ghc-pkg --prefix=/usr --libdir=/usr/lib64 --libsubdir=git-annex-5.20141203/ghc-7.8.3.20141119 --datadir=/usr/share/ --datasubdir=git-annex-5.20141203/ghc-7.8.3.20141119 --ghc-option=-O2 --ghc-option=+RTS --ghc-option=-H64M --ghc-option=-M4G --ghc-option=-RTS --ghc-option=-O0 --ghc-option=-j4 --ghc-option=-optl-Wl,-O1 --ghc-option=-optl-Wl,--as-needed --ghc-option=-optl-Wl,--hash-style=gnu --disable-executable-stripping --docdir=/usr/share/doc/git-annex-5.20141203 --verbose --sysconfdir=/etc --disable-library-stripping --flags=-android --flags=-androidsplice --flags=-assistant --flags=cryptohash --flags=dbus --flags=-desktop-notify --flags=dns --flags=-ekg --flags=-feed --flags=-inotify --flags=pairing --flags=production --flags=-quvi --flags=s3 --flags=tahoe --flags=tdfa --flags=-testsuite --flags=-webapp --flags=-webapp-secure --flags=-webdav --flags=-xmpp

ghc detects missing module (used directly by Remote.S3):
  Remote/Helper/Http.hs:16:8:
    Could not find module ‘Network.HTTP.Client’
    It is a member of the hidden package ‘http-client-0.3.8.2’.
    Perhaps you need to add ‘http-client’ to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.

Signed-off-by: Sergei Trofimovich <siarheit@google.com>
2014-12-17 23:48:31 -04:00
Joey Hess
15d1bd6c83 prep release 2014-12-03 15:17:09 -04:00
Joey Hess
41f0f3daa2 remove PatchedAWS flag
Now that deps are sorted out in hackage, cabal is unlikely to try to
install a too old AWS, so I don't think this flag is worth the bother of
being completely correct with the dependency versioning.

This avoids me needing to enable to flag on the autobuilders..
2014-12-03 15:09:18 -04:00
Joey Hess
911ba8d972 Merge branch 's3-aws' 2014-12-03 14:10:52 -04:00
Joey Hess
ec6ff6b1cf remove redundant deps 2014-12-01 17:04:26 -04:00
Joey Hess
36476aa005 prep release 2014-11-05 12:02:55 -04:00
Joey Hess
2c53f331bd fix build 2014-11-03 17:23:46 -04:00
Joey Hess
6e89d070bc WIP multipart S3 upload
I'm a little stuck on getting the list of etags of the parts.
This seems to require taking the md5 of each part locally,
which doesn't get along well with lazily streaming in the part from the
file. It would need to read the file twice, or lose laziness and buffer a
whole part -- but parts might be quite large.

This seems to be a problem with the API provided; S3 is supposed to return
an etag, but that is not exposed. I have filed a bug:
https://github.com/aristidb/aws/issues/141
2014-10-28 14:17:30 -04:00
Joey Hess
e535ff8fa4 Merge branch 'master' into s3-aws 2014-10-28 12:39:22 -04:00
Joey Hess
5bdcb23424 prep release 2014-10-24 13:03:50 -04:00
Joey Hess
c986bc67e5 add cabal flag for use with debian's older version of aws, which is now patched with the necessary stuff 2014-10-23 16:39:55 -04:00
Joey Hess
35551d0ed0 Merge branch 'master' into s3-aws
Conflicts:
	Remote/S3.hs
2014-10-22 17:14:38 -04:00
Joey Hess
1e59df083d Use haskell setenv library to clean up several ugly workarounds for inability to manipulate the environment on windows.
Didn't know that this library existed!

This includes making git-annex not re-exec itself on start on windows, and
making the test suite on Windows run tests without forking.
2014-10-15 20:33:52 -04:00
Joey Hess
cdcb4548b3 Remove hurd stuff from cabal file, since hackage currently rejects it.
https://github.com/haskell/hackage-server/issues/269
2014-10-15 13:31:20 -04:00
Joey Hess
86a7bddb41 prep release 2014-10-13 10:13:27 -04:00
Joey Hess
e6a432bb56 rewrote and expanded package description 2014-10-03 14:12:32 -04:00
Joey Hess
1d5bde3be5 Adjust cabal file to support building w/o assistant on the hurd.
I used to have this and hackage rejected the os(gnu), so I am going to see
if the new hackage still rejects it.
2014-09-29 14:08:29 -04:00
Joey Hess
a001207aef prep release 2014-09-27 14:25:15 -04:00
Joey Hess
5e3c41c7aa prep release 2014-09-26 15:09:13 -04:00
Joey Hess
264c65e8f8 prep release 2014-09-19 13:02:19 -04:00
Joey Hess
f7847ae98d Merge branch 'master' into s3-aws
Conflicts:
	Utility/Url.hs
	debian/changelog
	git-annex.cabal
2014-09-18 14:36:20 -04:00
Joey Hess
90d172365d fix display of git-annex test command name in usage
This needs optparse-applicative 0.10. Dropped support for 0.9 and older,
but kept 0.9.1 working since autobuilders and debian testing still use it.
(The display is not perfect with 0.9.1.)
2014-09-17 13:46:01 -04:00
Joey Hess
05e7518c3e prep 2014-09-15 10:47:10 -04:00
Joey Hess
9504781e4b deal with network-uri split, in a backwards-compatable way 2014-09-13 12:02:02 -04:00
Joey Hess
62e6ad8bee prep release 2014-08-31 12:30:29 -07:00
Joey Hess
5eb5451021 update aws version requirements 2014-08-18 15:26:18 -04:00
Joey Hess
5f749a0665 fix lower bounds on version of exceptions
This is needed only because of the new MonadMask needed for bracket
in the new version. Ifdefing it everywhere is not practical, since the
Setup.hs uses it.
2014-08-17 14:37:14 -04:00
Joey Hess
f273882567 prep release 2014-08-17 10:31:21 -04:00
Joey Hess
dd619c7166 Switched from the old haskell HTTP library to http-conduit.
The hoary old HTTP library was only used when checking if an url exists,
when curl was not available. It had many problems, including not supporting
https at all.

Now, this is done using http-conduit for all urls that it supports. Falls
back to curl for any url that http-conduit doesn't like (probably ftp etc,
but could also be an url that its parser chokes on for whatever reason).

This adds a new dependency on http-conduit, but webdav support already
indirectly depended on that, and the s3-aws branch also uses it.

This opens up the possibility of using http-conduit for large file
downloads, but for now I've left it using wget/curl.

This commit was sponsored by Paul Tötterman.
2014-08-15 17:37:42 -04:00
Joey Hess
ef01ff1e77 Merge branch 'master' into s3-aws
Conflicts:
	git-annex.cabal
2014-08-15 17:30:40 -04:00
Joey Hess
edac4afc53 Switched from the old haskell HTTP library to http-conduit.
The hoary old HTTP library was only used when checking if an url exists,
when curl was not available. It had many problems, including not supporting
https at all.

Now, this is done using http-conduit for all urls that it supports. Falls
back to curl for any url that http-conduit doesn't like (probably ftp etc,
but could also be an url that its parser chokes on for whatever reason).

This adds a new dependency on http-conduit, but webdav support already
indirectly depended on that, and the s3-aws branch also uses it.
2014-08-15 17:27:44 -04:00
Joey Hess
7285896996 make windows depend on new enough unix-compat to get inode numbers 2014-08-12 12:30:40 -04:00
Joey Hess
a6da13c1e9 deps 2014-08-09 15:56:46 -04:00
Joey Hess
6fcca2f13e WIP converting S3 special remote from hS3 to aws library
Currently, initremote works, but not the other operations. They should be
fairly easy to add from this base.

Also, https://github.com/aristidb/aws/issues/119 blocks internet archive
support.

Note that since http-conduit is used, this also adds https support to S3.
Although git-annex encrypts everything anyway, so that may not be extremely
useful. It is not enabled by default, because existing S3 special remotes
have port=80 in their config. Setting port=443 will enable it.

This commit was sponsored by Daniel Brockman.
2014-08-08 19:00:53 -04:00
Joey Hess
1f8c170c95 http-conduit not used for dav 2014-08-08 17:17:23 -04:00
Joey Hess
871b6cb886 DAV version turns out to be 1.0. 2014-08-08 12:50:51 -04:00
Joey Hess
d3d30d2bf3 need transformers for Utility.Exception 2014-08-07 22:11:28 -04:00
Joey Hess
c784ef4586 unify exception handling into Utility.Exception
Removed old extensible-exceptions, only needed for very old ghc.

Made webdav use Utility.Exception, to work after some changes in DAV's
exception handling.

Removed Annex.Exception. Mostly this was trivial, but note that
tryAnnex is replaced with tryNonAsync and catchAnnex replaced with
catchNonAsync. In theory that could be a behavior change, since the former
caught all exceptions, and the latter don't catch async exceptions.

However, in practice, nothing in the Annex monad uses async exceptions.
Grepping for throwTo and killThread only find stuff in the assistant,
which does not seem related.

Command.Add.undo is changed to accept a SomeException, and things
that use it for rollback now catch non-async exceptions, rather than
only IOExceptions.
2014-08-07 22:03:29 -04:00
Joey Hess
fc4b3cdcce webdav: reuse http connection when operating on the chunks of a file
For both new and legacy chunks.

Massive speed up!

This commit was sponsored by Dominik Wagenknecht.
2014-08-07 18:33:14 -04:00
Joey Hess
0b1b85d9ea use DAV monad
This speeds up the webdav special remote somewhat, since it often now
groups actions together in a single http connection when eg, storing a
file.

Legacy chunks are still supported, but have not been sped up.

This depends on a as-yet unreleased version of DAV.

This commit was sponsored by Thomas Hochstein.
2014-08-07 17:32:57 -04:00
Joey Hess
9720ee9e56 testremote: New command to test uploads/downloads to a remote.
This only performs some basic tests so far; no testing of chunking or
resuming. Also, the existing encryption type of the remote is used; it
would be good later to derive an encrypted and a non-encrypted version of
the remote and test them both.

This commit was sponsored by Joseph Liu.
2014-08-01 15:10:01 -04:00
Joey Hess
b5ac627fee WebDAV: Dropped support for DAV before 0.6.1.
0.6.1 is in testing, and stable does not have DAV at all, so I can dispense
with this compatability code
2014-07-30 11:20:35 -04:00
Joey Hess
e532fad6f7 prep release 2014-07-17 11:37:21 -04:00
Joey Hess
542a8288a8 fix build with path-pieces-0.1.4 2014-07-13 19:24:38 -04:00
Joey Hess
ef915baf2f prep release 2014-07-09 15:28:19 -04:00
Joey Hess
fd2f050a74 network-conduit build dep in cabal was spuriious, remove 2014-07-07 12:31:27 -04:00
Joey Hess
6bd4e3b690 prep release 2014-07-07 12:25:06 -04:00
Joey Hess
1600ed1ab9 prep release 2014-06-13 09:58:51 -04:00
Joey Hess
8ff9938d97 Fix build with wai 0.3.0.
This version of wai changed the type of Middleware, so I cannot seem
to liftIO inside it. So, got rid of a lot of not really needed
complexity to use System.Log.Logger's logging stuff, and just use
the standard wai stdout logger when debug logging is enabled.

Format may change some, and it logs http to stdout instead of stderr
now. Doesn't matter for the webapp since both go to the same log anyway.
2014-06-11 01:29:00 -04:00
Joey Hess
783975bb8d prep release 2014-06-06 13:06:13 -04:00
Joey Hess
bc6f0a4dfe prep release 2014-05-29 14:42:52 -04:00
Joey Hess
810fdaabca lower bound on exceptions 2014-05-29 14:00:25 -04:00
Ben Gamari
99b89b22fd Use exceptions in place of deprecated MonadCatchIO-transformers 2014-05-28 17:03:40 -04:00
Joey Hess
1600b2728e prep release 2014-05-17 13:31:42 -04:00
Joey Hess
291847bf88
allow building with old feed lib, w/o pubdate 2014-04-21 00:37:14 -04:00
Joey Hess
6fbf4ab776 prep release 2014-04-20 19:46:01 -04:00
Joey Hess
ab09a50f3a Avoid depending on shakespeare except for when building the webapp. 2014-04-13 13:12:14 -04:00
Joey Hess
2503f433dc prep release 2014-04-11 18:10:10 -04:00
Joey Hess
bdb81af880
prep release 2014-04-11 15:01:10 -04:00
Joey Hess
836f2cc816 importfeed: Filename template can now contain an itempubdate variable. Needs feed 0.3.9.2. 2014-04-07 16:55:04 -04:00
Gaëtan Lehmann
7d28937420 fix missing shakespeare dependency 2014-04-07 14:04:02 +02:00
Joey Hess
aff7691d8d prepping for a linux-only release 2014-04-05 16:57:05 -04:00
Joey Hess
9febc5fd58 try to avoid windows wanting to build dbus 2014-04-02 17:50:47 -04:00
Joey Hess
aad6efe890 prep release 2014-04-02 16:45:04 -04:00
Joey Hess
eb3b6b7e09 byteable only needed for webapp-secure 2014-03-26 15:21:19 -04:00
Joey Hess
e426fac273 add desktop notifications
Motivation: Hook scripts for nautilus or other file managers
need to provide the user with feedback that a file is being downloaded.

This commit was sponsored by THM Schoemaker.
2014-03-22 14:12:19 -04:00
Joey Hess
2230828779 prep release 2014-03-20 13:24:24 -04:00
Joey Hess
2c317fef61 list changelog file in cabal file, should make it visible on hackage 2014-03-20 11:04:47 -04:00
Joey Hess
66b8b9c094 webapp: Use securemem for constant time auth token comparisons.
Debian stable does not have securemem, but neither does it have warp-tls,
so just disable use of securemem when not building with https support.
2014-03-12 21:41:20 -04:00
Joey Hess
06218428c7 quick fix to build with old warp-tls
Debian stable's warp-tls is too old to support the new https feature well,
so only use http with that old version.

Note that the webapp still depends on warp-tls, because the TLSSettings
type is used.
2014-03-12 12:19:48 -04:00
Joey Hess
93a526ba82 prep release 2014-03-06 12:29:11 -04:00
Joey Hess
cdc5b4a385 depend on warp-tls.. at least for now 2014-02-28 21:37:33 -04:00
Joey Hess
0609d754cc prep release 2014-02-27 11:36:38 -04:00
Joey Hess
692fbc6d7e Add build dep on regex-compat to fix build on mipsel, which lacks regex-tdfa. 2014-02-26 13:41:33 -04:00
Joey Hess
06e9080f01 metadata: FIeld names are now case insensative. 2014-02-25 18:45:09 -04:00
Joey Hess
06142f4943
fix #740010 properly 2014-02-25 01:55:01 -04:00
Joey Hess
003fc2b7e1
add UrlOptions sum type 2014-02-24 22:00:25 -04:00
Joey Hess
d5a2b498f6 webdav: When built with DAV 0.6.0, use the new DAV monad to avoid locking files, which is not needed by git-annex's use of webdav, and does not work on Box.com. 2014-02-24 18:21:51 -04:00
Joey Hess
1f6f034e90 prep release 2014-02-21 11:24:18 -04:00
Joey Hess
f11f7520b5 windows: Fix process termination code.
The ctrl-c hack used before didn't actually seem to work.

No haskell libraries expose TerminateProcess. I tried just calling it via
FFI, but got segfaults, probably to do with the wacky process handle not
being managed correctly. Moving it all into one C function worked.

This was hell. The EvilLinker hack was just final icing on the cake.
We all know what the cake was made of.
2014-02-13 15:53:10 -04:00
Joey Hess
b3a002f21d prep release 2014-02-10 12:59:18 -04:00
Joey Hess
250df4685c avoid broken version of DAV 2014-02-07 17:42:52 -04:00
Joey Hess
4602b3bcbc updating cabal release only 2014-01-29 13:58:49 -04:00
Joey Hess
998d76ae04 Revert "temporarily revert tasty-rerun support for this release"
This reverts commit 8fcf041159.
2014-01-27 14:22:44 -04:00
Joey Hess
8fcf041159 temporarily revert tasty-rerun support for this release
revert c340d9506c

tasty-rerun is stuck in NEW in debian
2014-01-27 13:58:43 -04:00
Joey Hess
e0224f01c1 prep release 2014-01-27 13:44:12 -04:00
Joey Hess
c340d9506c tasty-rerun! make rerest runs much much faster than running whole test suite 2014-01-24 12:21:30 -04:00
Joey Hess
e38a21a768 tests should now all run independently, without needing any prior tests to have run
Should be ready now for tasty-rerun.
2014-01-21 14:26:13 -04:00
Joey Hess
4a4e2f9a6c use tasty resources 2014-01-21 14:04:50 -04:00
Joey Hess
d1bf61464f expose tasty test suite's option parser 2014-01-21 00:08:43 -04:00
Joey Hess
ecd4c35d7e promote stm dependency, since Remote.External needs it 2014-01-20 14:32:06 -04:00
Joey Hess
3cbb366ebc Really fix FTBFS on mipsel and sparc due to test suite not being available on those architectures. 2014-01-17 14:48:56 -04:00
Joey Hess
31b80e55f8 prep release 2014-01-16 11:38:16 -04:00
Joey Hess
85272d8a98 Added tahoe special remote.
Known problems:

1. Tries to tahoe start when daemon is already running.

2. If multiple tahoe remotes are set up on the same computer,
   they will have the same node.url configured by default,
   and this confuses tahoe commands.

This commit was sponsored by LeastAuthority.com
2014-01-08 16:14:41 -04:00
Joey Hess
5740489927 Revert "need a newish version of containers"
This reverts commit bad6b46f7f.
2014-01-07 20:42:13 -04:00
Joey Hess
bad6b46f7f need a newish version of containers 2014-01-07 14:18:41 -04:00
Joey Hess
0a98f1be15 prep release 2014-01-07 12:25:12 -04:00
Joey Hess
1c02fc4987 no lsof on kfreebsd 2014-01-07 12:12:36 -04:00
Joey Hess
515e2fef54 prep release 2013-12-30 14:20:55 -04:00
Joey Hess
0e47d6ba97 prep release 2013-12-21 12:00:47 -04:00
Joey Hess
a168b8de12 switch define used, not android specific 2013-12-18 02:06:15 -04:00
Joey Hess
d7ee0bdbb8 OSX: Remove ssh and ssh-keygen from dmg as they're included in OSX by default. 2013-12-13 14:25:24 -04:00
Joey Hess
011b8bc7ec pull in Win32-extras, to be able to get current process id in Windows
Fixed up a number of things that had worked around there not being a way to
get that.

Most notably, transfer info files on windows now include the process id,
since no locking is currently done. This means the file format varies
between windows and unix.
2013-12-11 00:15:10 -04:00
Joey Hess
063a183a61 windows disk free space checking 2013-12-10 01:18:04 -04:00
Joey Hess
85936392ec fix 2013-12-06 22:38:01 -04:00
Joey Hess
0a66293600 avoid hsc2hs on windows (more epathtolong) 2013-12-06 18:06:22 -04:00
Joey Hess
e5a683ae4c enable Webapp on windows, using EvilLinker to link 2013-12-06 15:04:19 -04:00
Joey Hess
eed6809525 isolate dependency workaround to windows 2013-12-05 21:25:20 -04:00
Joey Hess
97c4af975f syntax 2013-12-05 20:42:52 -04:00
Joey Hess
b2e56dab52 temporarily disable webapp on windows; re-enable webdav on windows
The gcc response file should make it build with webdav (fingers crossed).

webapp is waiting on a haskell platform upgrade on the autobuilder.
Current one has a too old version of network for hxt to install.
2013-12-05 19:15:23 -04:00
Joey Hess
10309c1d80 work around https://github.com/kazu-yamamoto/logger/issues/18 2013-12-05 17:51:46 -04:00
Joey Hess
d99b2db372 Revert "test enable webapp on windows"
This reverts commit 958d9fa110.

Some stuff fails to install on the autobuilder, it will need to be upgraded
probably.
2013-12-05 14:23:42 -04:00
Joey Hess
958d9fa110 test enable webapp on windows
It builds, but fails to link locally. Let's try on the autobuilder.
2013-12-05 14:17:31 -04:00
Joey Hess
4ebb35dc59 explicitly disable WebDAV on Windows
For reasons suspiciously similar to 342d508e -- ie, building with it
enabled crashes the compiler, at least in my development VM.. dunno why.
2013-12-04 17:14:24 -04:00
Joey Hess
4249c85ece prep release 2013-11-30 16:33:03 -04:00
Joey Hess
27b70f7c5b update 2013-11-28 08:00:42 -04:00
Joey Hess
6896db17ae prep release 2013-11-27 18:47:37 -04:00
Joey Hess
710b7c72b1 fix flag name 2013-11-25 13:16:04 -04:00
Joey Hess
5163d5fb39 ensure that Android TH splice is expanded in native side of build 2013-11-25 13:01:53 -04:00
Joey Hess
e9b88f8db1 releasing package git-annex version 5.20131120 2013-11-20 13:10:11 -04:00
Joey Hess
187b844b1e releasing package git-annex version 5.20131118 2013-11-18 11:01:00 -04:00
Joey Hess
238fa05545 tasty fully working 2013-11-14 20:09:47 -04:00
Joey Hess
2755c7f558 Merge branch 'master' into tasty-tests
Conflicts:
	Test.hs
2013-11-14 17:04:58 -04:00
Joey Hess
b9b5e3370d build assistant and watcher on windows (doesn't work yet) 2013-11-12 17:22:34 -04:00
Joey Hess
16fa980689 separate android 4.0 and 4.3 builds needed
Also, parameterize the abdroid abi version
2013-11-12 14:24:53 -04:00
Joey Hess
9ccfaa84f1 pass -optl-z -optlnocopyreloc on Android 2013-11-11 23:33:50 -04:00
Joey Hess
691850ca39 Allow optionally configuring git-annex with -fEKG to enable awesome remote monitoring interfaceat http://localhost:4242/ 2013-11-06 16:33:45 -04:00
Joey Hess
a74018ea98 prep release 2013-11-06 11:37:06 -04:00
Joey Hess
3b76a141ea prep release 2013-11-01 11:57:47 -04:00
Joey Hess
76dd6f814d always depend on async 2013-10-26 11:46:45 -04:00
Joey Hess
f51327f44e releasing package git-annex version 4.20131024 2013-10-24 13:14:54 -04:00
Joey Hess
342d508e00 avoid trying to link with XMPP on Windows
It doesn't work, in a most puzzling way, which just wasted me hours, even
if XMPP libs are installed. Webapp too.
2013-10-17 18:56:28 -04:00
Joey Hess
ad86926f09 Revert "avoid hsc files on Windows"
This reverts commit 158ba9d332.

My windows build environment was broken; reverted to backup.
2013-10-17 17:53:50 -04:00
Joey Hess
158ba9d332 avoid hsc files on Windows
This used to work, but now hsc2hs is failing with a usage message.
Since I have not changed my windows build environment at all, it must be
some change due to a change in the cabal file. Perhaps too make flags are
causing it to hit a windows command line length limit?

Anyway, these hsc files did nothing on Windows, so can be omitted and not
built to work around yet another epic windows weirdness.
2013-10-17 16:35:14 -04:00
Joey Hess
6622875cf8 Revert "use vector in local status", which was not an improvement
This reverts commit eb3ce3581a.
2013-10-07 04:06:10 -04:00
Joey Hess
eb3ce3581a use vector in local status
Thought was that this would be faster than a map, since a vector can be
updated more efficiently. It turns out to not seem to matter; runtime and
memory usage are basically identical.
2013-10-07 04:05:14 -04:00
Joey Hess
571fe4999b remove __WINDOWS__ ifdef 2013-10-06 17:23:30 -04:00
Joey Hess
cf428895a2 increase base upper bound
Android builds tested with very close to 4.8
2013-10-05 13:15:00 -04:00
Joey Hess
20fb905bb6 allow building w/o cryptohash
Mostly for the debian stable autobuilds, which have a too old version
to use the Crypto.Hash module.
2013-10-03 12:33:38 -04:00
Joey Hess
eb582b17b8 prep relase 2013-10-02 16:03:53 -04:00
Joey Hess
dcb9dead6f Merge branch 'master' into android-rebuild 2013-09-22 22:45:51 -04:00
Joey Hess
7390f08ef9 Use cryptohash rather than SHA for hashing.
This is a massive win on OSX, which doesn't have a sha256sum normally.

Only use external hash commands when the file is > 1 mb,
since cryptohash is quite close to them in speed.

SHA is still used to calculate HMACs. I don't quite understand
cryptohash's API for those.

Used the following benchmark to arrive at the 1 mb number.

1 mb file:

benchmarking sha256/internal
mean: 13.86696 ms, lb 13.83010 ms, ub 13.93453 ms, ci 0.950
std dev: 249.3235 us, lb 162.0448 us, ub 458.1744 us, ci 0.950
found 5 outliers among 100 samples (5.0%)
  4 (4.0%) high mild
  1 (1.0%) high severe
variance introduced by outliers: 10.415%
variance is moderately inflated by outliers

benchmarking sha256/external
mean: 14.20670 ms, lb 14.17237 ms, ub 14.27004 ms, ci 0.950
std dev: 230.5448 us, lb 150.7310 us, ub 427.6068 us, ci 0.950
found 3 outliers among 100 samples (3.0%)
  2 (2.0%) high mild
  1 (1.0%) high severe

2 mb file:

benchmarking sha256/internal
mean: 26.44270 ms, lb 26.23701 ms, ub 26.63414 ms, ci 0.950
std dev: 1.012303 ms, lb 925.8921 us, ub 1.122267 ms, ci 0.950
variance introduced by outliers: 35.540%
variance is moderately inflated by outliers

benchmarking sha256/external
mean: 26.84521 ms, lb 26.77644 ms, ub 26.91433 ms, ci 0.950
std dev: 347.7867 us, lb 210.6283 us, ub 571.3351 us, ci 0.950
found 6 outliers among 100 samples (6.0%)

import Crypto.Hash
import Data.ByteString.Lazy as L
import Criterion.Main
import Common

testfile :: FilePath
testfile = "/run/shm/data" -- on ram disk

main = defaultMain
        [ bgroup "sha256"
                [ bench "internal" $ whnfIO internal
                , bench "external" $ whnfIO external
                ]
        ]

sha256 :: L.ByteString -> Digest SHA256
sha256 = hashlazy

internal :: IO String
internal = show . sha256 <$> L.readFile testfile

external :: IO String
external = do
	s <- readProcess "sha256sum" [testfile]
        return $ fst $ separate (== ' ') s
2013-09-22 20:06:02 -04:00
Joey Hess
00a12afffe successfully builds (except XMPP) 2013-09-22 19:13:31 +01:00
Joey Hess
70f205717c release 2013-09-20 10:43:08 -04:00
Joey Hess
e5d4f4fb0c prep release 2013-09-11 13:02:22 -04:00
Joey Hess
b64f5baf2d sync: support gcrypt 2013-09-09 10:02:15 -04:00
Joey Hess
ecbb326e9d Allow building without quvi support. 2013-09-09 02:16:22 -04:00
Joey Hess
a8d74d39c1 prep release 2013-08-27 13:31:41 -04:00
Joey Hess
46b6d75274 Youtube support! (And 53 other video hosts)
When quvi is installed, git-annex addurl automatically uses it to detect
when an page is a video, and downloads the video file.

web special remote: Also support using quvi, for getting files,
or checking if files exist in the web.

This commit was sponsored by Mark Hepburn. Thanks!
2013-08-22 18:50:43 -04:00
Joey Hess
572d6fde14 releasing version 4.20130815 2013-08-15 10:46:33 +02:00
Joey Hess
8189738b13 test suite partially converted to use tasty test framework
This is a win. Will need to wait for tasty getting into Debian,
and do a trivial conversion of the remainder of the hunit tests.
2013-08-06 00:12:06 -04:00
Joey Hess
7fdf9ea5dd releasing version 4.20130802 2013-08-02 13:38:18 -04:00
Joey Hess
7e66d260ea importfeed: git-annex becomes a podcatcher in 150 LOC 2013-07-28 16:55:42 -04:00
Joey Hess
fc1a79835b Always build with -threaded, to avoid a deadlock when communicating with gpg. 2013-07-25 13:57:53 -04:00
Joey Hess
ba4e0b4878 releasing version 4.20130723 2013-07-23 11:41:16 -04:00
Joey Hess
6402f2081e Revert "avoid pulling in unneeded dependencies when the assistant is disabled"
Cabal does not seem to have a way to check if flag A is set and then, if
flag B is set, add a dep. Instead, it makes flag B get unset if the
dep is not available.
2013-07-16 11:29:43 -04:00
Joey Hess
4b9fa37b72 avoid pulling in unneeded dependencies when the assistant is disabled 2013-07-12 15:45:34 -04:00
Joey Hess
a2269eef9e releasing version 4.20130709 2013-07-09 15:58:01 -04:00
Joey Hess
6e9e0c3238 temporarily remove cabal os(gnu) until I find the real right name for the hurd
Or until hackage stops rejecting os(gnu), if it is indeed the right name..
2013-06-30 13:17:10 -04:00
Joey Hess
0292e82eb1 releasing version 4.20130627 2013-06-27 14:58:40 -04:00
Joey Hess
b44c978e2c webapp: Fix bug that caused the webapp to hang when built with yesod 1.2. 2013-06-27 00:01:31 -04:00
Joey Hess
b717823402 Temporarily revert back to building with yesod before 1.2. Version 1.2 of yesod, or the new version of warp seem to have a bug that causes the webapp to hang. 2013-06-26 17:52:39 -04:00
Joey Hess
2f9b0ba351 simpler ifdef for linux 2013-06-21 13:09:09 -04:00
Joey Hess
0c759f3852 colin tells me it's os(gnu) for the hurd 2013-06-21 11:45:48 -04:00
Joey Hess
679cfcede7 don't try to build assistant on hurd 2013-06-21 01:44:57 -04:00
Joey Hess
6e309b63f8 assistant: On Linux, the expensive transfer scan is run niced.
This is a compromise. I would like to nice every thread except for the
webapp thread, but it's not practical to do so. That would need every
thread to run as a bound thread, which could add significant overhead.
And any forkIO would escape the nice level.
2013-06-20 22:25:41 -04:00
Peter Simons
df04dc578f git-annex.cabal: declare GPL3+ license 2013-06-04 14:30:43 -04:00
Joey Hess
1198b5444d now builds with both yesod 1.2 and 1.1 2013-06-03 18:14:22 -04:00
Joey Hess
79fd677805 WIP yesod 1.2 2013-06-03 11:25:23 -04:00
Joey Hess
2465c2abd1 releasing version 4.20130601 2013-06-01 20:58:32 -04:00
Joey Hess
e5b3739bea further restrict yesod versions, for people who have newer stuff installed 2013-05-24 10:25:39 -04:00
Joey Hess
372a7f727f version dep on yesod-default, otherwise cabal explodes
Will be re-releasing the last version to hackage with a .1 with this fix.
2013-05-23 11:07:11 -04:00
Joey Hess
b3a521db70 releasing version 4.20130521 2013-05-21 14:23:27 -04:00
Joey Hess
9fa063a00f debian architecture build fun 2013-05-19 21:44:33 -04:00
Joey Hess
345ee4f37c Switch to MonadCatchIO-transformers for better handling of state while catching exceptions.
As seen in this bug report, the lifted exception handling using the StateT
monad throws away state changes when an action throws an exception.
http://git-annex.branchable.com/bugs/git_annex_fork_bombs_on_gpg_file/
  .. Which can result in cached values being redundantly calculated, or other
     possibly worse bugs when the annex state gets out of sync with reality.

This switches from a StateT AnnexState to a ReaderT (MVar AnnexState).
All changes to the state go via the MVar. So when an Annex action is
running inside an exception handler, and it makes some changes, they
immediately go into affect in the MVar. If it then throws an exception
(or even crashes its thread!), the state changes are still in effect.

The MonadCatchIO-transformers change is actually only incidental.
I could have kept on using lifted-base for the exception handling.
However, I'd have needed to write a new instance of MonadBaseControl
for the new monad.. and I didn't write the old instance.. I begged Bas
and he kindly sent it to me. Happily, MonadCatchIO-transformers is
able to derive a MonadCatchIO instance for my monad.

This is a deep level change. It passes the test suite! What could it break?

Well.. The most likely breakage would be to code that runs an Annex action
in an exception handler, and *wants* state changes to be thrown away.
Perhaps the state changes leaves the state inconsistent, or wrong. Since
there are relatively few places in git-annex that catch exceptions in the
Annex monad, and the AnnexState is generally just used to cache calculated
data, this is unlikely to be a problem.

Oh yeah, this change also makes Assistant.Types.ThreadedMonad a bit
redundant. It's now entirely possible to run concurrent Annex actions in
different threads, all sharing access to the same state! The ThreadedMonad
just adds some extra work on top of that, with its own MVar, and avoids
such actions possibly stepping on one-another's toes. I have not gotten
rid of it, but might try that later. Being able to run concurrent Annex
actions would simplify parts of the Assistant code.
2013-05-19 14:16:36 -04:00
Joey Hess
eb8344c598 releasing version 4.20130516 2013-05-16 11:35:52 -04:00
Joey Hess
3a7eb68c1a use unix-compat, removed a lot of stubs in Utility.FileMode 2013-05-11 11:16:47 -05:00
Joey Hess
e5f1ca7b4b avoid build depending on unix in windows 2013-05-10 15:37:38 -05:00
Joey Hess
a05b4619bb stub out posix stuff for Windows
This is enough to let the configure program build.
2013-05-10 15:08:53 -05:00
Joey Hess
2d51434341 Avoid depending on regex-tdfa on mips, mipsel, and s390, where it fails to build. 2013-05-06 09:44:55 -04:00
Joey Hess
8860cff556 Disable building with the haskell threaded runtime when the assistant is not built. This may fix builds on s390x and sparc, which are failing to link -lHSrts_thr 2013-05-06 09:35:43 -04:00
Joey Hess
c96ff106d0 avoid crashing on Android when file mode of .git/annex/url cannot be set
Presumably, if the filesystem doesn't support file permissions, it's not
much of a multiuser system.
2013-05-03 00:56:01 -04:00
Joey Hess
8df0611e00 Temporarily add an upper bound to the version of yesod that can be built with, since yesod 1.2 has a great many changes that will require extensive work on the webapp. 2013-05-02 23:12:47 -04:00
Joey Hess
f7d2523adc work around strange endianness bug in port number on Android 2013-05-02 22:38:45 -04:00
Joey Hess
b61740e6d3 releasing version 4.20130501 2013-05-01 13:19:29 -04:00
Joey Hess
25aabf4ffe add TList, built on DList 2013-04-24 16:01:01 -04:00
Joey Hess
3233e0fb60 revert addition of Includes: sys/event.h in cabal file
That is very dodgy; it makes *every* C file compiled have that header added
to it. Apparently sys/event.h needs some other header files to be included
on some OS's, and so this leads to compile failures in completely unrelated
places to the code that actually uses sys/event.h

This reverts commit c993d8e710, which added
this with no rationalle and I must have missed in amoung the other patches
when merging.

Also, Utility/kqueue.c already includes sys/event.h
2013-04-24 10:35:09 -04:00
Joey Hess
9f4017003f enable webdav on android 2013-04-19 17:30:05 -04:00
Joey Hess
67eadf3fa2 releasing version 4.20130417 2013-04-17 11:16:44 -04:00
Joey Hess
6490418a4e Fall back to internal url downloader when built without curl. 2013-04-16 15:42:51 -04:00
Joey Hess
13a65d028d use Extensions instead of -X 2013-04-14 12:49:09 -04:00
Joey Hess
11d106a18c turn on PackageImports globally
This will make it easier to use the Evil Splicer, when it needs to add
package qualified imports

And there's no real downside.
2013-04-13 18:12:44 -04:00
Joey Hess
5e2e4347a3 webapp: New --listen= option allows running the webapp on one computer and connecting to it from another.
Does not yet use HTTPS. I'd need to generate a certificate, and I'm not
sure what's the best way to do that.
2013-04-08 15:04:35 -04:00
Joey Hess
c709623ff8 prep release 2013-04-05 11:12:41 -04:00
Joey Hess
a87e046049 avoid displaying alert when syncing only to removable drives and all not attached 2013-03-27 14:25:49 -04:00
Joey Hess
e9f495d662 prep for release tomorrow 2013-03-22 19:25:28 -04:00
Joey Hess
fa4b44438f close 2013-03-18 12:01:40 -04:00
Joey Hess
bcc40eac4a another hamlet compat fix 2013-03-14 16:22:18 -04:00
Joey Hess
ccb7e5cfa4 got hdevtools working on the git-annex source tree 2013-03-12 05:51:34 -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
422928394e fix android app upgrade hang
rm was blocked waiting for input
2013-02-28 19:18:56 -04:00
Joey Hess
323aaac805 revert 2013-02-28 19:13:32 -04:00
Joey Hess
6a52a47193 fix 2 bugs in android runshell 2013-02-28 19:12:54 -04:00
Joey Hess
967f3b14e0 blog for the day 2013-02-28 17:56:37 -04:00
Joey Hess
8cfbef6a91 finish removing fast flag 2013-02-28 16:10:37 -04:00
Joey Hess
0bca392206 remove Fast flag, pass -O0 to cabal 2013-02-28 16:03:35 -04:00
Peter Simons
be6d9f6f5c git-annex.cabal: let the 'Fast' flag default to 'False' unless it's explicitly specified
The current use of the 'Fast' and 'Production' flags is both inconsistent and
redundant. It's inconsistent, because users are allowed to specify both '-fFast
-fProduction' at the same time -- thereby enabling two contradicting features.

The flags are redundant, because Cabal allows users to specify '-O0' at
configure time, which is essentially the same as '-fFast'. Since 'Production'
is just the opposite of 'Fast', this means that neither flag is needed.
2013-02-28 16:02:54 -04:00
Peter Simons
c993d8e710 git-annex.cabal: declare dependency on <sys/event.h> header file when building on BSD 2013-02-28 16:02:27 -04:00
Peter Simons
2df5e25a06 git-annex.cabal: relax 'mtl >= 2.1' constraint to 'mtl >= 2'
Git-annex doesn't actually depend on mtl version 2.1. By relaxing this
constraint, builds can succeed on Ubuntu 12.04.
2013-02-28 16:02:17 -04:00
Joey Hess
0151f42cdf Stop depending on testpack. 2013-02-27 23:23:41 -04:00
Joey Hess
b1e1043bdb faster fast builds 2013-02-27 20:11:25 -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
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
32aee1bb3e add android flag; misc other flag fixes
Stopped checking the assistant flag for flags like webapp and xmpp,
because cabal disables the assistant if the other flag's dependencies
cannot be satisfied.
2013-02-27 02:30:26 -04:00
Joey Hess
dcc6096fdc add Production flag 2013-02-27 01:41:01 -04:00
Joey Hess
32fd97a82e consistent format 2013-02-27 00:28:47 -04:00
Joey Hess
f440ee8c06 no need to globally enable CPP in cabal, it's enabled where needed 2013-02-27 00:13:12 -04:00
Joey Hess
ece3bbfbb0 expose regex-compat 2013-02-26 23:58:36 -04:00
Joey Hess
ce2b4832d7 cleanup WITH_GLOB 2013-02-26 15:31:34 -04:00
Joey Hess
7df2861d67 fix * glob matching files in subdirectories 2013-02-26 14:35:39 -04:00
Peter Simons
fbc04feb53 git-annex.cabal: strip trailing whitespace 2013-02-23 17:05:43 +01:00
Peter Simons
41fcb607df git-annex.cabal: add missing 'random' and 'uuid' dependencies to the test suite 2013-02-23 17:05:43 +01:00
Peter Simons
ea00ff129f git-annex.cabal: specify '-DWITH_GLOB' in cpp-options, not ghc-options 2013-02-23 17:05:43 +01:00
Joey Hess
0f4cc559a7 Android: Support ssh connection caching. 2013-02-19 14:57:45 -04:00
Joey Hess
dec8b6ec8c updated hackage version to add missing dependency 2013-02-18 13:33:49 -04:00
Joey Hess
169712fc9a add random 2013-02-17 17:00:28 -04:00
Joey Hess
63ce1a4f71 prep release 2013-02-16 10:26:49 -04:00
Joey Hess
3ef3b5225e remove HTTP from test deps 2013-02-11 15:22:07 -04:00
Joey Hess
9a3520613a fix case of uuid dep 2013-02-11 15:21:13 -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
f202d997f4 Now uses the Haskell uuid library, rather than needing a uuid program.
Been meaning to do this for some time; Android port was last straw.

Note that newer versions of the uuid library have a Data.UUID.V4 that
generates random UUIDs slightly more cleanly, but Debian has an old version
of the library, so I do it slightly round-about.
2013-02-10 14:52:54 -04:00
Joey Hess
8e591d50fd Revert "use Simple built type on Android"
This reverts commit b09e0ceb6c.

Don't think we'll be building for Android with cabal, at least for now.
2013-02-10 14:21:01 -04:00
Joey Hess
b09e0ceb6c use Simple built type on Android
cabal cannot cross-compile with Custom
2013-02-08 22:02:02 -04:00
Joey Hess
fa3fbf824c don't need HTTP any longer 2013-02-08 14:19:59 -04:00
Joey Hess
4bed954e87 update base dependency 2013-02-08 14:19:45 -04:00
Joey Hess
6a9dd21795 prep release 2013-02-07 12:59:02 -04:00
Joey Hess
76ddf9b6d3 webapp: Now allows restarting any threads that crash. 2013-01-26 17:09:33 +11:00
Joey Hess
1713ed95f7 use async to track and manage threads 2013-01-26 14:14:32 +11:00
Joey Hess
869ad4729e finalizing release 2013-01-24 13:33:21 +11:00
Joey Hess
6a067e5c28 manual and source repository groups 2013-01-21 04:18:46 -04:00
Joey Hess
757e5a219e releasing version 3.20130114 2013-01-14 16:10:25 -04:00
Joey Hess
174867b846 blog for yesterday 2013-01-08 12:41:09 -04:00
Joey Hess
a06340a111 releasing version 3.20130107 2013-01-07 13:24:31 -04:00
Joey Hess
40ffd3c3fe version dep on yesod-form 2013-01-06 21:07:02 -04:00
Joey Hess
1cdf2b923d assistant: Make expensive transfer scan work fully in direct mode.
The expensive scan uses lookupFile, but in direct mode, that doesn't work
for files that are present. So the scan was not finding things that are
present that need to be uploaded. (It did find things not present that
needed to be downloaded.)

Now lookupFile also works in direct mode. Note that it still prefers
symlinks on disk to info committed to git, in direct mode. This is
necessary to make things like Assistant.Threads.Watcher.onAddSymlink
work correctly, when given a new symlink not yet checked into git (or
replacing a file checked into git).
2013-01-05 15:57:53 -04:00
Joey Hess
ef1b0775d8 bump 2013-01-05 14:02:09 -04:00
Joey Hess
56331c438e cabal file typo broke use of hfsevents 2013-01-05 13:48:21 -04:00
Joey Hess
c3ae2d2e30 releasing version 3.20130102 2013-01-02 15:25:06 -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
Sergei Trofimovich
1c47956bcf cabal: add missing depend to 'test-suite', guard against 'kqueue' on linux
Fixes the following test failure:

Preprocessing test suite 'test' for git-annex-3.20121211...

Remote/Git.hs:42:8:
    Could not find module `Control.Concurrent.MSampleVar'
    It is a member of the hidden package `SafeSemaphore-0.9.0'.
    Perhaps you need to add `SafeSemaphore' to the build-depends in your .cabal file.
    Use -v to see a list of the files searched for.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2012-12-14 16:58:52 -04:00
Joey Hess
c0bf569417 releasing version 3.20121211 2012-12-11 12:28:23 -04:00
Joey Hess
bed19fb65c add yesod-form to cabal 2012-12-09 11:55:52 -04:00
Joey Hess
d64ef96e77 add http-types dep for webdav 2012-12-06 18:04:38 -04:00
Joey Hess
5460414486 webdav: Avoid trying to set props, avoiding incompatability with livedrive.com. Needs DAV version 0.3. 2012-12-01 17:12:41 -04:00
Joey Hess
76ca972112 releasing version 3.20121127 2012-11-27 17:55:06 -04:00
Joey Hess
6d775b704b releasing version 3.20121126 2012-11-26 12:35:39 -04:00
Joey Hess
66c0da1fa9 build-depend on a recent mtl
Old versions have an insufficiently generic definition of reader,
which only works on ReaderT and not on newtypes made of it, or something
like that.
2012-11-25 16:24:05 -04:00
Joey Hess
8730c551ff cabal fix for webdav 2012-11-18 13:28:18 -04:00
Joey Hess
fe11b3a940 fix build with shakespeare-js-1.0.0.2
For no apparent reason, this version removes all useful instances of
ToJavaScript, leavind behind only an instance for Aeson.Value. Argh. Pissed
off at this arbitrary breaking change, and seriously considering dropping
this library.
2012-11-18 13:00:35 -04:00
Joey Hess
a4b86c63d6 webdav is fully working in non-enctypted mode 2012-11-16 00:09:22 -04:00
Joey Hess
3c039d329c update to dav 0.1, and basic uploading is working! 2012-11-15 13:46:16 -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
cf565c0098 remove async build dep
Not needed.. At least for now..
2012-11-14 11:53:59 -04:00
Joey Hess
4371d0b8c0 releasing version 3.20121112 2012-11-12 11:04:26 -04:00
Joey Hess
7c30be0e8c use cabal macro to detect if old version of network is being used 2012-11-11 18:05:01 -04:00
Joey Hess
b312e54ba7 added a runTimeout function
This adds a dep on haskell's async library, but since that's been
added to the recent haskell platform release, it should not be
much hardship to my poor long-suffering library chasing users.
2012-11-11 13:38:08 -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
a4c6b30e2c avoid using Blaze directly
New 0.5 changes the api, rather gratuitously, so run away. I can juse use
Hamlet here.
2012-10-31 13:27:56 -04:00
Joey Hess
4757bd3728 added a missing build-dep 2012-10-31 11:50:43 -04:00
Joey Hess
87ebdc8f90 add build-dep on blaze-markup
which blaze-html depends on, so not a significant new dep
2012-10-30 12:59:05 -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
0c0ef99341 gnutls segfault fixed
Adjust build deps to ensure that only a fixed version of the library will
be used.

Also, removed the bound thread stuff, which I now think was (probably)
a red herring.
2012-10-26 23:07:30 -04:00
Joey Hess
d1e5f2d596 Merge branch 'master' into xmpp
Conflicts:
	Assistant/Threads/NetWatcher.hs
2012-10-26 19:42:24 -04:00
Joey Hess
8e4620a6c7 NetWatcher: When dbus connection is lost, try to reconnect.
MountWatcher can't do this, because it uses the session dbus,
and won't have access to the new DBUS_SESSION_BUS_ADDRESS if a new session
is started.

Bumped dbus library version, FD leak in it is fixed.
2012-10-26 19:38:27 -04:00
Joey Hess
a0bdb2bb00 SRV lookup library
This uses the ADNS library, if available. Otherwise, the host program.

I anticipate that cabal users won't easily get hsdns installed, since
it's a Haskell binding to a C library. And using host is just fine, as
long as the system has it.
2012-10-25 17:54:00 -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
2c788a28a1 added network-protocol-xmpp and -DWITH_XMPP 2012-10-23 20:24:23 -04:00
Joey Hess
14b376d440 Merge branch 'safesemaphore'
Conflicts:
	debian/changelog
	git-annex.cabal
2012-10-20 12:44:25 -04:00
Nicolas Pouillard
4af755d504 Relax the dependency on the base package, to accomodate with GHC 7.6 2012-10-18 15:51:04 +02: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
45201f78a7 releasing version 3.20121017 2012-10-16 21:24:33 -04:00
Joey Hess
634b870240 releasing version 3.20121016 2012-10-16 16:47:59 -04:00
Joey Hess
8c4d5130eb releasing version 3.20121010 2012-10-12 14:17:57 -04:00
Joey Hess
8fcb84dd2f deal with incompatable api change in network 2.4.0.1
On the cabal side, let's just require this new version, and set -DURI_24
to enable the code using it.
2012-10-10 11:26:30 -04:00
Joey Hess
558a69d34d releasing version 3.20121009 2012-10-09 15:43:36 -04:00
Ben Gamari
cff451b37c TransferSlots: Use SafeSemaphore's MSemN instead of QSemN from base
As described in the documentation, QSemN is unsafe for a variety of
reasons.
2012-10-05 17:02:51 -04:00
Ben Gamari
831532b141 Admit base-4.6 in Build-Depends 2012-10-05 15:03:35 -04:00
Joey Hess
e0432bc140 releasing version 3.20121001 2012-10-01 14:12:31 -04:00
Joey Hess
0ccfb3bbb2 let's not -DOSX, that results in unwanted mangling 2012-09-29 14:49:15 -04:00
Joey Hess
38128d911e update 2012-09-24 19:59:53 -04:00
Joey Hess
300a4ebade releasing version 3.20120924 2012-09-24 15:20:28 -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
46ef078b93 include libkqueue in C-Sources for !linux 2012-09-06 13:19:41 -04:00
Joey Hess
f68afa9cc1 add missing data-default dependency (needed with new yesod only) 2012-08-30 12:58:12 -04:00
Joey Hess
38e2dbb1cb remove yesod version parametisation
Seems cabal defaults to trying to satisfy both flags, which cannot works,
and does not fall back to only selecting one, as hoped. While users could
manually specify flags, I don't want to require that to build, so let's
just require the newer yesod version when building with cabal.
2012-08-29 11:59:00 -04:00
Joey Hess
b12db9ef92 Merge branch 'master' into assistant
Conflicts:
	debian/changelog

Updated changelog for assistant and webapp
2012-08-27 13:31:54 -04:00
Joey Hess
0ef7028077 releasing version 3.20120825 2012-08-25 10:27:59 -04:00
Joey Hess
2e1f3a86ae Merge branch 'master' into assistant
Conflicts:
	debian/changelog
2012-08-09 14:03:40 -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
d99abc1255 releasing version 3.20120807 2012-08-07 13:49:58 -04:00
Joey Hess
2a9077f4e9 fix transfer log cleanup crash
Avoid crashing when "git annex get" fails to download from one location,
and falls back to downloading from a second location.

The problem is that git annex get calls download recursively from within
itself if the first download attempt fails. So the first time through, it
writes a transfer info file, which is then overwritten on the second,
recursive call. Then on cleanup, it tries to delete the file twice, which
of course doesn't work.

Fixed both by not crashing if the transfer file is removed, and by
changing Get to not run download recursively like that. It's the only
thing that did so, and it just seems like a bad idea.
2012-08-07 13:30:08 -04:00
Joey Hess
ffeb060002 don't use hamlet for htmlshim
This allows me to not build-depend on blaze-markup, which was causing
me some trouble when tring to build with cabal on debian. Seems debian
ships Text.Blaze.Renderer.String in two packages.
2012-08-01 21:28:37 -04:00
Joey Hess
ed07546288 add template-haskell build-dep for webapp 2012-08-01 21:04:15 -04:00
Joey Hess
a498be7f98 renamed /status to /transfers
Also fixed a bug; the ident for the div was regnerated each time
/status was called. This only was the same as the original ident due to
luck.
2012-07-28 23:55:41 -04:00
Joey Hess
3305e019db add yesod-default
another dependency cabal works without here, oddly
2012-07-27 12:09:34 -04:00
Joey Hess
df00c6166c update deps
Note that here I don't need blaze-markup for cabal to succeed, but Jimmy
reports he does. Seems like Text.Blaze.Renderer.String moved from blaze to
blaze-markup in some version.
2012-07-26 13:13:23 -04:00
Joey Hess
78002d4976 only enable dbus on linux for now 2012-07-26 13:05:52 -04:00
Joey Hess
6cecc26206 update build deps 2012-07-26 05:13:27 -04:00
Joey Hess
e6ce54de82 build fixes 2012-07-25 22:04:10 -04:00
Joey Hess
32d3cffc4c run yesod, and launch webapp on startup 2012-07-25 21:26:13 -04:00
Joey Hess
e4592649d6 Merge branch 'master' into assistant
Conflicts:
	git-annex.cabal
2012-07-22 12:50:54 -04:00
Joey Hess
b902a2960c releasing version 3.20120721 2012-07-21 17:01:19 -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
d1da9cf221 switch from System.Cmd.Utils to System.Process
Test suite now passes with -threaded!

I traced back all the hangs with -threaded to System.Cmd.Utils. It seems
it's just crappy/unsafe/outdated, and should not be used. System.Process
seems to be the cool new thing, so converted all the code to use it
instead.

In the process, --debug stopped printing commands it runs. I may try to
bring that back later.

Note that even SafeSystem was switched to use System.Process. Since that
was a modified version of code from System.Cmd.Utils, it needed to be
converted too. I also got rid of nearly all calls to forkProcess,
and all calls to executeFile, which I'm also doubtful about working
well with -threaded.
2012-07-18 18:00:24 -04:00
Joey Hess
182526ff68 add debugging 2012-07-17 14:40:05 -04:00
Joey Hess
61786c52ad releasing version 3.20120629 2012-06-29 14:03:03 -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
cede7bdcde cabal: Only try to use inotify on Linux. 2012-06-25 11:38:42 -04:00
Joey Hess
a0952dd0f9 releasing version 3.20120624 2012-06-24 12:51:18 -04:00
Joey Hess
91567ab8f6 make inotify a build flag etc 2012-06-17 17:15:56 -04:00
Ben Gamari
0b7047f750 stm package name is lowercase 2012-06-16 13:59:20 +02:00
Joey Hess
53d2e81ffd Merge branch 'master' into watch 2012-06-15 15:20:11 -04:00
Joey Hess
8492f1c182 releasing version 3.20120614 2012-06-14 20:32:06 -04:00
Joey Hess
2e5ea30981 Merge branch 'master' into watch
Conflicts:
	debian/changelog
	git-annex.cabal
2012-06-12 13:37:17 -04:00
Joey Hess
4ebb0b51d7 remove xxx ... cabal test works for me 2012-06-12 11:48:31 -04:00
Nathan Collins
fd40af6e62 Merge branch 'master' into cabal-man-pages 2012-06-12 02:54:27 -07: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
72b0054931 Get ready for a simple git-annex.cabal.
I have a new idea: instead of the template-based approaches that work
around cabals requirement that you list all files to put in the sdist,
we can simply generate the sdist ourselves, with the files we
want. Take that cabal!
2012-06-12 00:53:51 -07:00
Joey Hess
d3a6f04abf update 2012-06-11 15:41:26 -04:00
Joey Hess
0847a300fc Revert "Build with ghc's threaded runtime, so threaded code does not busy-wait."
This reverts commit 129f6123fe.

Saw hang during batch add with -threaded, so deferred for now.
2012-06-11 12:46:35 -04:00
Joey Hess
129f6123fe Build with ghc's threaded runtime, so threaded code does not busy-wait.
Sort of a work around for http://bugs.debian.org/677096
2012-06-11 12:21:18 -04:00
Joey Hess
a5a3cd55ac Merge branch 'master' into watch
Conflicts:
	debian/changelog
2012-06-11 12:13:07 -04:00
Joey Hess
5a7b7d67f7 releasing version 3.20120611 2012-06-11 10:44:16 -04:00
Nathan Collins
b86f201bdf Rename git-annex.cabal. 2012-06-10 19:17:51 -07:00
Joey Hess
2de50f733a smart commit thread
The commit thread now has access to a channel containing the times of
all uncommitted changes. This lets it be smart about detecting busy times
when a batch job is running (such as rm -rf, or untarring something, etc),
and avoid committing until it's done. While at the same time, instantly
committing one-off changes that the user is going to expect to see
immediately.

I had to use STM to implement the channel, because of
http://hackage.haskell.org/trac/ghc/ticket/4154
While this adds a dependency, I always wanted to use STM, so this actually
makes me happy. ;)

Also happy that shouldCommit is a pure function, so other commit smartness
strategies can easily be played with. Although the current one seems pretty
good.

There is one bug, for some reason it does double commits, every time.
2012-06-10 16:07:48 -04:00
Joey Hess
78f5f90c24 Merge branch 'master' into watch 2012-06-05 14:53:38 -04:00
Joey Hess
8511957c68 releasing version 3.20120605 2012-06-05 14:14:45 -04:00
Joey Hess
59ce18d757 add hinotify dependencies 2012-06-04 13:34:22 -04:00
Joey Hess
ab07762ddb releasing version 3.20120522 2012-05-22 11:27:22 -04:00
Joey Hess
61a5df33d4 releasing version 3.20120511 2012-05-11 12:37:26 -04:00
Joey Hess
76b80d6af0 releasing version 3.20120430 2012-04-30 13:59:28 -04:00
Joey Hess
1b876daad1 remove unneeded dependency 2012-04-22 11:25:26 -04:00
Joey Hess
94e479dd1b simplfy versioned base dependency 2012-04-22 11:22:19 -04:00
Joey Hess
840315c350 releasing version 3.20120418 2012-04-18 12:22:22 -04:00
Joey Hess
61e5663097 make cabal test work again 2012-04-14 15:23:13 -04:00