summaryrefslogtreecommitdiff
path: root/git-annex.cabal
Commit message (Collapse)AuthorAge
* releasing package git-annex version 6.201710266.20171026Gravatar Joey Hess2017-10-26
|
* build for windows with forked win32 package that has terminateProcessIdGravatar Joey Hess2017-10-25
| | | | | | | | | Get ugly reversion out of CHANGELOG. Also, relocated the windows stack.yaml to top, and updated windows build instructions. This commit was sponsored by Henrik Riomar on Patreon.
* Revert "try to avoid TerminateProcess link error on windows"Gravatar Joey Hess2017-10-24
| | | | | | | | | | This reverts commit d6d0b1fe20397bf073f11d579f5c0c38785e071a. Neither way is working.. The other way failed: .stack-work\dist\5f9bc736\build\git-annex\git-annex-tmp\Assistant.o:fake:(.text+0x6bb3): undefined reference to `terminatepid' Seems that winprocess.c is not getting linked in.
* indentationGravatar Joey Hess2017-10-24
|
* add includes to cabalGravatar Joey Hess2017-10-24
|
* try to avoid TerminateProcess link error on windowsGravatar Joey Hess2017-10-24
| | | | | | | | | Building with stack, it failed: `_TerminateProcess' referenced in section `.text' of .stack-work\dist\5f9bc736\build\git-annex\git-annex-tmp\Utility\WinProcess.o: defined in discarded section `.text' of C:/Users/jenkins/AppData/Local/Programs/stack/i386-windows/ghc-8.0.2/mingw/bin/../lib/gcc/i686-w64-mingw32/5.2.0/../../../../i686-w64-mingw32/lib/../lib/libkernel32.a(dacgs01154.o) This is a reversion of 6d66a81ca98f8579bf06f7fb724ed733670d39b9, to try the other way to implement it, which will hopefully avoid the problem.
* try lts-9.10 with old win32Gravatar Joey Hess2017-10-22
| | | | toolchain issue is preventing nightly from building anything on windows
* temporarily remove custom-setup stanzaGravatar Joey Hess2017-10-22
| | | | | | | | | This needs to include unix except on windows, but when I tried an if (! os(windows)) cabal crashed: 'parseField' called on a non-field. This is possibly a bug in Cabal. Cabal is able to configure w/o the custom-setup stanza, so omit it.
* add IfElse versionGravatar Joey Hess2017-10-22
|
* releasing package git-annex version 6.201710186.20171018Gravatar Joey Hess2017-10-18
|
* Revert "new Win32 fails to build; fall back to old one"Gravatar Joey Hess2017-10-16
| | | | | | | This reverts commit adb9d19ac54595f7daea984933cdc1a34ccdedb2. Old win32-extras fails to install. I suspect toolchain breakage because a lot of stuff is failing on the windows autobuilder.
* new Win32 fails to build; fall back to old oneGravatar Joey Hess2017-10-16
|
* releasing package git-annex version 6.201710036.20171003Gravatar Joey Hess2017-10-03
|
* fix build without S3Gravatar Joey Hess2017-09-29
|
* releasing package git-annex version 6.201709256.20170925Gravatar Joey Hess2017-09-25
|
* add exporter thread to assistantGravatar Joey Hess2017-09-20
| | | | | | | | | | | | | | | | | | | | | | | This is similar to the pusher thread, but a separate thread because git pushes can be done in parallel with exports, and updating a big export should not prevent other git pushes going out in the meantime. The exportThread only runs at most every 30 seconds, since updating an export is more expensive than pushing. This may need to be tuned. Added a separate channel for export commits; the committer records a commit in that channel. Also, reconnectRemotes records a dummy commit, to make the exporter thread wake up and make sure all exports are up-to-date. So, connecting a drive with a directory special remote export will immediately update it, and getting online will automatically update S3 and WebDAV exports. The transfer queue is not involved in exports. Instead, failed exports are retried much like failed pushes. This commit was sponsored by Ewen McNeill.
* add ExportTree table to export dbGravatar Joey Hess2017-09-18
| | | | | | | | | | | | New table needed to look up what filenames are used in the currently exported tree, for reasons explained in export.mdwn. Also, added smart constructors for ExportLocation and ExportDirectory to make sure they contain filepaths with the right direction slashes. And some code refactoring. This commit was sponsored by Francois Marier on Patreon.
* split out Types.ExportGravatar Joey Hess2017-09-15
|
* add Command.ExportGravatar Joey Hess2017-09-13
|
* track exported files in a sqlite databaseGravatar Joey Hess2017-09-04
| | | | | | | | | Went with a separate db per export remote, rather than a single export database. Mostly because there will probably not be a lot of separate export remotes, and it might be convenient to be able to delete a given remote's export database. This commit was supported by the NSF-funded DataLad project.
* refactor ExportActionsGravatar Joey Hess2017-09-01
| | | | | | | | This will allow disabling exports for remotes that are not configured to allow them. Also, exportSupported will be useful for the external special remote to probe. This commit was supported by the NSF-funded DataLad project
* implement export.log and resolve export conflictsGravatar Joey Hess2017-08-31
| | | | | | Incremental export updates work now too. This commit was sponsored by Anthony DeRobertis on Patreon.
* releasing package git-annex version 6.201708186.20170818Gravatar Joey Hess2017-08-18
|
* git-annex.cabal: Deal with breaking changes in Cabal 2.0Gravatar Joey Hess2017-08-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/haskell/cabal/issues/4655 This means that when a module is conditionally imported via ifdef depending on the OS or build flags, the cabal file has to mirror the same logic there to only list the module then. Since there are lots of OS's and lots of combinations of build flags here, it's rather difficult to know if the cabal file has been completelty correctly updated to match the source code. So I am very unhappy with needing to update things in two places. I've only tested this on linux with most build flags enables; this will probably need significant time and testing to catch every cabal file tweak that this change to Cabal requires. And it will be a continual source of compile failures going forward when the code is modified and the cabal file not also updated. DRY DRY DRY, I repeat myself, but: DRY! Sigh.. (Also, had to remove all Build.* that are standalone programs from the Other-Modules list, because since cabal passes those modules to ghc when building git-annex, it complains that they use module Main. Those modules are only used when building with the Makefile anyway, so this change shouldn't break anything.) This commit was sponsored by Thomas Hochstein on Patreon.
* avoid the dashed ssh hostname class of security holesGravatar Joey Hess2017-08-17
| | | | | | | | | | | | | | | | | | | | | | | | Security fix: Disallow hostname starting with a dash, which would get passed to ssh and be treated an option. This could be used by an attacker who provides a crafted ssh url (for eg a git remote) to execute arbitrary code via ssh -oProxyCommand. No CVE has yet been assigned for this hole. The same class of security hole recently affected git itself, CVE-2017-1000117. Method: Identified all places where ssh is run, by git grep '"ssh"' Converted them all to use a SshHost, if they did not already, for specifying the hostname. SshHost was made a data type with a smart constructor, which rejects hostnames starting with '-'. Note that git-annex already contains extensive use of Utility.SafeCommand, which fixes a similar class of problem where a filename starting with a dash gets passed to a program which treats it as an option. This commit was sponsored by Jochen Bartl on Patreon.
* add annex-ignore-command and annex-sync-command configsGravatar Joey Hess2017-08-17
| | | | | | | | | | | | | | | | Added remote configuration settings annex-ignore-command and annex-sync-command, which are dynamic equivilants of the annex-ignore and annex-sync configurations. For this I needed a new DynamicConfig infrastructure. Its implementation should be as fast as before when there is no dynamic config, and it caches so shell commands are only run once. Note that annex-ignore-command exits nonzero when the remote should be ignored. While that may seem backwards, it allows using the same command for it as for annex-sync-command when you want to disable both. This commit was sponsored by Trenton Cronholm on Patreon.
* Windows: Win32 package has subsumed Win32-extras; update dependency.Gravatar Joey Hess2017-08-16
|
* Added GIT_ANNEX_VECTOR_CLOCK environment variableGravatar Joey Hess2017-08-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Can be used to override the default timestamps used in log files in the git-annex branch. This is a dangerous environment variable; use with caution. Note that this only affects writing to the logs on the git-annex branch. It is not used for metadata in git commits (other env vars can be set for that). There are many other places where timestamps are still used, that don't get committed to git, but do touch disk. Including regular timestamps of files, and timestamps embedded in some files in .git/annex/, including the last fsck timestamp and timestamps in transfer log files. A good way to find such things in git-annex is to get for getPOSIXTime and getCurrentTime, although some of the results are of course false positives that never hit disk (unless git-annex gets swapped out..) So this commit does NOT necessarily make git-annex comply with some HIPPA privacy regulations; it's up to the user to determine if they can use it in a way compliant with such regulations. Benchmarking: It takes 0.00114 milliseconds to call getEnv "GIT_ANNEX_VECTOR_CLOCK" when that env var is not set. So, 100 thousand log files can be written with an added overhead of only 0.114 seconds. That should be by far swamped by the actual overhead of writing the log files and making the commit containing them. This commit was supported by the NSF-funded DataLad project.
* releasing package git-annex version 6.201705206.20170520Gravatar Joey Hess2017-06-12
|
* releasing package git-annex version 6.201705196.20170519Gravatar Joey Hess2017-05-19
|
* adeiu, MissingHGravatar Joey Hess2017-05-16
| | | | | | | | | | | | | | | | Removed dependency on MissingH, instead depending on the split library. After laying groundwork for this since 2015, it was mostly straightforward. Added Utility.Tuple and Utility.Split. Eyeballed System.Path.WildMatch while implementing the same thing. Since MissingH's progress meter display was being used, I re-implemented my own. Bonus: Now progress is displayed for transfers of files of unknown size. This commit was sponsored by Shane-o on Patreon.
* stop using MissingH for MD5Gravatar Joey Hess2017-05-15
| | | | | | | | | | Cryptonite is faster and allocates less, and I want to get rid of MissingH use. Note that the new dependency on memory is free; it's a dependency of cryptonite. This commit was supported by the NSF-funded DataLad project.
* add Other-Extensions: TemplateHaskellGravatar Joey Hess2017-05-15
| | | | | Fixes a build failure of stack build --profile. See https://ghc.haskell.org/trac/ghc/ticket/8443
* releasing package git-annex version 6.201705106.20170510Gravatar Joey Hess2017-05-10
|
* avoiding depending on latest version of process except on WindowsGravatar Joey Hess2017-04-10
|
* version: Added "dependency versions" line.Gravatar Joey Hess2017-04-07
| | | | This commit was sponsored by Anthony DeRobertis on Patreon.
* multicast: New command, uses uftp to multicast annexed files, for eg a ↵Gravatar Joey Hess2017-03-30
| | | | | | classroom setting. This commit was supported by the NSF-funded DataLad project.
* releasing package git-annex version 6.201703216.20170321Gravatar Joey Hess2017-03-21
|
* Support GIT_SSH and GIT_SSH_COMMANDGravatar Joey Hess2017-03-17
| | | | | | | | | | | | | | | | | | | | They are handled close the same as they are by git. However, unlike git, git-annex sometimes needs to pass the -n parameter when using these. So, this has the potential for breaking some setup, and perhaps there ought to be a ANNEX_USE_GIT_SSH=1 needed to use these. But I'd rather avoid that if possible, so let's see if anyone complains. Almost all places where "ssh" was run have been changed to support the env vars. Anything still calling sshOptions does not support them. In particular, rsync special remotes don't. Seems that annex-rsync-transport already gives sufficient control there. (Fixed in passing: Remote.Helper.Ssh.toRepo used to extract remoteAnnexSshOptions and pass them to sshOptions, which was redundant since sshOptions also extracts those.) This commit was sponsored by Jeff Goeke-Smith on Patreon.
* Drop support for building with old versions of directory, feed, and http-types.Gravatar Joey Hess2017-03-10
|
* Revert "Drop support for building without network-uri."Gravatar Joey Hess2017-03-10
| | | | | | This reverts commit bfad6f5a7d156d5ddf0e5cf3840d8d22f82a2377. Need it in stable w/o backports for the ancient autobuilder.
* Drop support for building with old versions of dns and http-conduit.Gravatar Joey Hess2017-03-10
|
* Drop support for building without network-uri.Gravatar Joey Hess2017-03-10
| | | | | network-uri is available in Debian stable (backports) and testing, so no need to complicate the cabal file anymore
* releasing package git-annex version 6.20170301.16.20170301.1Gravatar Joey Hess2017-03-01
|
* 6.20170301 version for hackage6.20170301Gravatar Joey Hess2017-03-01
| | | | No changes from 6.20170228; a new version number was needed due to a problem with Hackage.
* releasing package git-annex version 6.201702286.20170228Gravatar Joey Hess2017-02-28
|
* Removed support for building with the old cryptohash library.Gravatar Joey Hess2017-02-24
| | | | | Building with that library made git-annex not support SHA3; it's time for that to always be supported in case SHA2 dominoes.
* factor non-type stuff out of KeyGravatar Joey Hess2017-02-24
|
* git-annex.cabal: Make crypto-api a dependency even when built w/o webapp and ↵Gravatar Joey Hess2017-02-20
| | | | | | | | test suite. The p2p code made it always be needed. This commit was sponsored by Anthony DeRobertis on Patreon.
* sync hack to make updateInstead work on eg FATGravatar Joey Hess2017-02-17
| | | | | | | | | | | | sync: When syncing with a local repository located on a crippled filesystem, run the post-receive hook there, since it wouldn't get run otherwise. This makes pushing to repos on FAT-formatted removable drives update them when receive.denyCurrentBranch=updateInstead. Made Remote.Git export onLocal, which was cleaned up to not have so many caveats about its use. This commit was sponsored by Jeff Goeke-Smith on Patreon.