aboutsummaryrefslogtreecommitdiff
path: root/git-annex.cabal
Commit message (Collapse)AuthorAge
* releasing package git-annex version 6.201711246.20171124Gravatar Joey Hess2017-11-24
|
* enable LambdaCase and convert around 10% of places that could use itGravatar Joey Hess2017-11-15
| | | | | | | | | | | Needs ghc 7.6.1, so minimum base version increased slightly. All builds are well above this version of ghc, and debian oldstable is as well. Code that could use lambdacase can be found by running: git grep -B 1 'case ' | less and searching in less for "<-" This commit was sponsored by andrea rota.
* still can't express custom-setup depsGravatar Joey Hess2017-11-14
| | | | | | | | They need unix on non-windows, for Utility.Env, which Build.Configure uses, but cabal can't express that in a custom-setup stanza. To avoid this problem, Utility.Env would need to be moved into unix-compat..
* typoGravatar Joey Hess2017-11-14
|
* add utf8-string to custom-setup depsGravatar Joey Hess2017-11-14
|
* split out setEnv to avoid adding depGravatar Joey Hess2017-11-14
| | | | | | | | | | | Windows needs the setenv package in custom-setup, but I don't want to pull it in on unix, which would probably break some builds and need more work. Instead, split out setEnv to a separate module. Quite likely, unix-compat will get a portable environment layer, and then both modules can be removed from here. This commit was sponsored by Øyvind Andersen Holm.
* bring back custom-setup stanzaGravatar Joey Hess2017-11-14
| | | | | | | | | | | | | Now that windows is using unix-compat 0.5, don't need a dep on Win32 or unix in custom-setup, so the stanza can be parsed by cabal's limited parser again. Note that unix-compat 0.5 is needed on windows, but the cabal file hasn't bumped it yet, since that would necessarily affect non-windows builds. Instead, the stack-windows.yaml makes sure the right version is pulled in. This commit was sponsored by Jeff Goeke-Smith on Patreon.
* use unix-compat 0.5 on windowsGravatar Joey Hess2017-11-14
| | | | Re-applying ac57659e61f9743aebd35258e89752ced0040f9f
* Revert "Revert "remove dep on Win32-extras""Gravatar Joey Hess2017-11-13
| | | | This reverts commit ce44f20f128ad8740b9098ad86ed70156919cd43.
* use win32 2.6.1.0 (second try)Gravatar Joey Hess2017-11-13
| | | | Using patched http-client.
* Revert "use unix-compat 0.5 on windows"Gravatar Joey Hess2017-11-09
| | | | | | This reverts commit ac57659e61f9743aebd35258e89752ced0040f9f. Too early for this; needs newer Win32 version. Le sigh.
* Revert "remove dep on Win32-extras"Gravatar Joey Hess2017-11-09
| | | | | | This reverts commit afaf1799d47d88e1e0ace4f1bb128684761e11c1. Yeah, too early for that too
* Revert "use win32 2.6.1.0"Gravatar Joey Hess2017-11-09
| | | | | | | This reverts commit 757a7d6e22b9faa443a4f063e1a6df3204e298c1. Blocked by https://github.com/snoyberg/http-client/issues/309 this commit can be reverted once that's fixed.
* bump process to version supporting newer Win32Gravatar Joey Hess2017-11-09
|
* remove dep on Win32-extrasGravatar Joey Hess2017-11-09
| | | | Win32 now has its own getCurrentProcessId.
* still need stack-windows.yaml to specify newer versions of Win32 and unix-compatGravatar Joey Hess2017-11-09
|
* use win32 2.6.1.0Gravatar Joey Hess2017-11-09
| | | | | | | That has my patches merged into it, so stack-windows.yaml is not needed any longer. This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
* use unix-compat 0.5 on windowsGravatar Joey Hess2017-11-09
| | | | | | | | | | | That version has my patches for the problems that Utility.PosixFiles was working around, so am able to get rid of that module now. This will later allow bringing back the custom-setup stanza in the cabal file. It will need to depend on unix-compat 0.5 on all OS's, which I'm not ready to do yet. This commit was sponsored by Nick Daly on Patreon.
* releasing package git-annex version 6.201711096.20171109Gravatar Joey Hess2017-11-09
|
* remove custom-setup again until cabal issue is fixedGravatar Joey Hess2017-10-27
|
* this is the custom-setup I wantGravatar Joey Hess2017-10-27
| | | | | Unfortunately, cabal fails to parse this. https://github.com/haskell/cabal/issues/4852
* try putting back custom-setupGravatar Joey Hess2017-10-27
| | | | will this build on doze?
* 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.