git-annex.git
21 months agoMerge branch 'master' into p2pv4
Joey Hess [Wed, 30 Oct 2024 12:13:49 +0000 (08:13 -0400)]
Merge branch 'master' into p2pv4

21 months agobreak out todo item
Joey Hess [Wed, 30 Oct 2024 12:13:33 +0000 (08:13 -0400)]
break out todo item

21 months agoadd tip for DATA-PRESENT feature
Joey Hess [Tue, 29 Oct 2024 20:14:10 +0000 (16:14 -0400)]
add tip for DATA-PRESENT feature

21 months agodocument DATA-PRESENT in CHANGELOG
Joey Hess [Tue, 29 Oct 2024 19:07:30 +0000 (15:07 -0400)]
document DATA-PRESENT in CHANGELOG

I wonder where else this could be documented? It's kind of a niche
feature, since it needs at least a partial custom implementation of the p2p
protocol or the p2phttp protocol. But it can save a lot of bandwidth and
avoid the proxy needing disk space to buffer files uploaded to a special
remote.

21 months agosupport DATA-PRESENT when proxtying for special remotes
Joey Hess [Tue, 29 Oct 2024 18:53:06 +0000 (14:53 -0400)]
support DATA-PRESENT when proxtying for special remotes

There is a TODO left in the code for exporttree special remotes. If
possible, it should check if one of the export locations contains the
content of the key.

21 months agosupport DATA-PRESENT in the p2p protocol proxy
Joey Hess [Tue, 29 Oct 2024 18:20:07 +0000 (14:20 -0400)]
support DATA-PRESENT in the p2p protocol proxy

But not yet when proxying to special remotes.

When proxying for a cluster, the client can store the object on any node
or nodes of the cluster, and send DATA-PRESENT. That gets proxied to each
node, and if any of them agree that they have the data, the proxy will
respond with SUCCESS or SUCCESS-PLUS.

I think it's ok to not check for the proxied remotes supporting protocol
version 4. When there are multiple remotes in a cluster, it behaves as
described above, and if they all respond with ERROR, the result will be
FAILURE. And when not proxying for a cluster, the proxy negotiates the
p2p protocol to be the same version or lower than the proxied remote,
which will prevent sending DATA-PRESENT when it's too old.

21 months agoimplement put data-present parameter in http servant
Joey Hess [Tue, 29 Oct 2024 17:13:28 +0000 (13:13 -0400)]
implement put data-present parameter in http servant

Changed the protocol docs because servant parses "true" and "false" for
booleans in query parameters, not "1" and "0".

clientPut with datapresent=True is not used by git-annex, and I don't
anticipate it being used in git-annex, except for testing.

I've tested this by making clientPut be called with datapresent=True and
git-annex copy to a remote succeeds once the object file is first
manually copied to the remote. That would be a good test for the test
suite, but running the http client means exposing it to at least
localhost, and would fail if a real http client was already running on
that port.

21 months agoimplement DATA-PRESENT in p2p protocol
Joey Hess [Tue, 29 Oct 2024 17:12:12 +0000 (13:12 -0400)]
implement DATA-PRESENT in p2p protocol

Not yet implemented for the http server or the proxy.

21 months agoupdate http servant for p2p protocol version 4
Joey Hess [Tue, 29 Oct 2024 16:13:05 +0000 (12:13 -0400)]
update http servant for p2p protocol version 4

This is all just adding the v4 routes and boilerplate. At this point v4
is implemented the same as v3.

21 months agop2p protocol version 4 for DATA-PRESENT
Joey Hess [Mon, 28 Oct 2024 18:16:15 +0000 (14:16 -0400)]
p2p protocol version 4 for DATA-PRESENT

21 months agoformatting
Joey Hess [Mon, 28 Oct 2024 17:49:58 +0000 (13:49 -0400)]
formatting

21 months agoupdate
Joey Hess [Mon, 28 Oct 2024 17:46:57 +0000 (13:46 -0400)]
update

21 months agosimplified design for indirect uploads
Joey Hess [Mon, 28 Oct 2024 17:29:33 +0000 (13:29 -0400)]
simplified design for indirect uploads

21 months agofix reversion in getting from unchunked encrypted special remotes
Joey Hess [Mon, 28 Oct 2024 16:20:10 +0000 (12:20 -0400)]
fix reversion in getting from unchunked encrypted special remotes

Have to use the object file for the encrypted key, not the unencrypted
key.

Bug introduced in 835283b86240ef4b68c44f4332ac1b644e08e49f

21 months agobisected
Joey Hess [Mon, 28 Oct 2024 16:01:23 +0000 (12:01 -0400)]
bisected

21 months agoreproduced
Joey Hess [Mon, 28 Oct 2024 15:30:09 +0000 (11:30 -0400)]
reproduced

21 months agoinitial report on fresh FTBFS on debian
yarikoptic [Thu, 24 Oct 2024 14:00:14 +0000 (14:00 +0000)]
initial report on fresh FTBFS on debian

21 months agocomment
Joey Hess [Tue, 22 Oct 2024 17:54:54 +0000 (13:54 -0400)]
comment

21 months agocomment
Joey Hess [Tue, 22 Oct 2024 17:36:31 +0000 (13:36 -0400)]
comment

21 months agoremove warnings about tuning being experimental
Joey Hess [Tue, 22 Oct 2024 17:27:25 +0000 (13:27 -0400)]
remove warnings about tuning being experimental

21 months agofollowup and close
Joey Hess [Tue, 22 Oct 2024 17:25:46 +0000 (13:25 -0400)]
followup and close

21 months agoclose old xmpp bug
Joey Hess [Tue, 22 Oct 2024 17:19:04 +0000 (13:19 -0400)]
close old xmpp bug

21 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 22 Oct 2024 17:04:37 +0000 (13:04 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

21 months agopondering
Joey Hess [Tue, 22 Oct 2024 15:37:36 +0000 (11:37 -0400)]
pondering

21 months agoadd missing space
Joey Hess [Tue, 22 Oct 2024 15:12:12 +0000 (11:12 -0400)]
add missing space

21 months agoplanning
Joey Hess [Tue, 22 Oct 2024 15:09:47 +0000 (11:09 -0400)]
planning

21 months agoAdded a comment
matrss [Tue, 22 Oct 2024 14:44:10 +0000 (14:44 +0000)]
Added a comment

21 months agoAdded a comment: Re: rclone remote config in special remote
matrss [Tue, 22 Oct 2024 14:13:53 +0000 (14:13 +0000)]
Added a comment: Re: rclone remote config in special remote

21 months agoMerge branch 'master' into streamproxy
Joey Hess [Tue, 22 Oct 2024 13:49:28 +0000 (09:49 -0400)]
Merge branch 'master' into streamproxy

21 months agoresponse
Joey Hess [Mon, 21 Oct 2024 23:25:42 +0000 (19:25 -0400)]
response

21 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Oct 2024 20:04:47 +0000 (16:04 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

21 months agoadjust: Allow any order of options when combining --hide-missing with options like...
Joey Hess [Mon, 21 Oct 2024 20:03:29 +0000 (16:03 -0400)]
adjust: Allow any order of options when combining --hide-missing with options like --unlock.

optparse-applicative made this hard, the naive implementation this had
before didn't let --hide-missing come after --unlock. And just adding
additional <|> with --hide-missing coming after --unlock didn't work
either. So need to get some options and then combine them.

21 months agobetter name for LinkPresentAdjustment
Joey Hess [Mon, 21 Oct 2024 19:42:01 +0000 (15:42 -0400)]
better name for LinkPresentAdjustment

21 months agocomment
Joey Hess [Mon, 21 Oct 2024 19:07:19 +0000 (15:07 -0400)]
comment

21 months agoresponse
Joey Hess [Mon, 21 Oct 2024 19:03:55 +0000 (15:03 -0400)]
response

21 months agoAdded a comment
matrss [Mon, 21 Oct 2024 16:32:18 +0000 (16:32 +0000)]
Added a comment

21 months agocomment
Joey Hess [Mon, 21 Oct 2024 16:08:56 +0000 (12:08 -0400)]
comment

21 months agocomment
Joey Hess [Mon, 21 Oct 2024 15:39:27 +0000 (11:39 -0400)]
comment

21 months agoremove stack-lts-18.13.yaml
Joey Hess [Mon, 21 Oct 2024 15:33:07 +0000 (11:33 -0400)]
remove stack-lts-18.13.yaml

windows autobuilder fixed to use stack.yaml

21 months agocomment
Joey Hess [Mon, 21 Oct 2024 15:32:02 +0000 (11:32 -0400)]
comment

21 months agocomment
Joey Hess [Mon, 21 Oct 2024 15:24:50 +0000 (11:24 -0400)]
comment

21 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Oct 2024 14:41:51 +0000 (10:41 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

21 months agoresponse
Joey Hess [Mon, 21 Oct 2024 14:40:51 +0000 (10:40 -0400)]
response

21 months ago(no commit message)
git-annex@3fb6b72405b924a12d8319f01d0fdb908a3c551e [Mon, 21 Oct 2024 14:14:18 +0000 (14:14 +0000)]

21 months ago(no commit message)
git-annex@3fb6b72405b924a12d8319f01d0fdb908a3c551e [Mon, 21 Oct 2024 14:12:31 +0000 (14:12 +0000)]

21 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Mon, 21 Oct 2024 14:03:32 +0000 (10:03 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

21 months agop2phttp: Allow unauthenticated users to lock content by default
Joey Hess [Mon, 21 Oct 2024 14:02:12 +0000 (10:02 -0400)]
p2phttp: Allow unauthenticated users to lock content by default

* p2phttp: Allow unauthenticated users to lock content by default.
* p2phttp: Added --unauth-nolocking option to prevent unauthenticated
  users from locking content.

The rationalle for this is that locking is not really a write operation, so
makes sense to allow in a repository that only allows read-only access. Not
supporting locking in that situation will prevent the user from dropping
content from a special remote they control in cases where the other copy of
the content is on the p2phttp server.

Also, when p2phttp is configured to also allow authenticated access,
lockcontent was resulting in a password prompt for users who had no way to
authenticate. And there is no good way to distinguish between the two types
of users client side.

--unauth-nolocking anticipates that this might be abused, and seems better
than disabling unauthenticated access entirely if a server is being
attacked. It may be that rate limiting locking by IP address or similar
would be an effective measure in such a situation. Or just limiting the
number of locks by anonymous users that can be live at any one time. Since
the impact of such an DOS attempt is limited to preventing dropping content
from the server, it seems not a very appealing target anyway.

21 months ago(no commit message)
git-annex@3fb6b72405b924a12d8319f01d0fdb908a3c551e [Mon, 21 Oct 2024 13:10:52 +0000 (13:10 +0000)]

21 months agocomment
Joey Hess [Sat, 19 Oct 2024 21:53:28 +0000 (17:53 -0400)]
comment

21 months agotag
Joey Hess [Sat, 19 Oct 2024 21:13:26 +0000 (17:13 -0400)]
tag

21 months agoadd GITMANIFEST to parseKeyVariety
Joey Hess [Sat, 19 Oct 2024 21:12:23 +0000 (17:12 -0400)]
add GITMANIFEST to parseKeyVariety

git-remote-annex: Fix bug that prevented using it with external special
remotes, leading to protocol error messages involving "GITMANIFEST".

21 months agocomment
Joey Hess [Sat, 19 Oct 2024 20:43:35 +0000 (16:43 -0400)]
comment

21 months agoAdded a comment
yarikoptic [Fri, 18 Oct 2024 20:31:21 +0000 (20:31 +0000)]
Added a comment

21 months agoAdded a comment
matrss [Fri, 18 Oct 2024 16:56:46 +0000 (16:56 +0000)]
Added a comment

21 months agocomments
Joey Hess [Fri, 18 Oct 2024 16:04:48 +0000 (12:04 -0400)]
comments

21 months agoclarification on 403
Joey Hess [Fri, 18 Oct 2024 15:05:41 +0000 (11:05 -0400)]
clarification on 403

21 months agocomment
Joey Hess [Fri, 18 Oct 2024 14:28:49 +0000 (10:28 -0400)]
comment

21 months agoMerge branch 'master' into streamproxy
Joey Hess [Fri, 18 Oct 2024 14:18:59 +0000 (10:18 -0400)]
Merge branch 'master' into streamproxy

21 months agofix build on windows
Joey Hess [Fri, 18 Oct 2024 14:17:07 +0000 (10:17 -0400)]
fix build on windows

Utility.OpenFile is posix only

21 months agoAdded a comment
yarikoptic [Fri, 18 Oct 2024 13:10:38 +0000 (13:10 +0000)]
Added a comment

21 months agoreport on windows FTBFS
yarikoptic [Fri, 18 Oct 2024 13:04:49 +0000 (13:04 +0000)]
report on windows FTBFS

21 months agoAdded a comment
yarikoptic [Fri, 18 Oct 2024 13:01:25 +0000 (13:01 +0000)]
Added a comment

21 months agocomment
Joey Hess [Fri, 18 Oct 2024 00:56:31 +0000 (20:56 -0400)]
comment

21 months agoAllow enabling the servant build flag with older versions of stm
Joey Hess [Fri, 18 Oct 2024 00:55:31 +0000 (20:55 -0400)]
Allow enabling the servant build flag with older versions of stm

Allowing building with ghc 9.0.2 (debian stable).

Updated patch covering all uses of writeTMVar.

21 months agoremoved
yarikoptic [Thu, 17 Oct 2024 22:08:32 +0000 (22:08 +0000)]
removed

21 months agoAdded a comment
yarikoptic [Thu, 17 Oct 2024 21:44:50 +0000 (21:44 +0000)]
Added a comment

21 months agoAdded a comment
yarikoptic [Thu, 17 Oct 2024 21:44:17 +0000 (21:44 +0000)]
Added a comment

21 months agoAdded a comment
yarikoptic [Thu, 17 Oct 2024 21:44:04 +0000 (21:44 +0000)]
Added a comment

21 months agoTag with project ID
mih [Thu, 17 Oct 2024 20:26:08 +0000 (20:26 +0000)]
Tag with project ID

21 months agoAdded a comment
yarikoptic [Thu, 17 Oct 2024 18:37:57 +0000 (18:37 +0000)]
Added a comment

21 months agocomment
Joey Hess [Thu, 17 Oct 2024 18:05:20 +0000 (14:05 -0400)]
comment

21 months agoAllow enabling the servant build flag with older versions of stm
Joey Hess [Thu, 17 Oct 2024 17:44:38 +0000 (13:44 -0400)]
Allow enabling the servant build flag with older versions of stm

Allowing building with ghc 9.0.2 (debian stable).

21 months agoAdded a comment
yarikoptic [Thu, 17 Oct 2024 17:04:07 +0000 (17:04 +0000)]
Added a comment

21 months agop2phttp combining unauth and auth options
Joey Hess [Thu, 17 Oct 2024 15:10:28 +0000 (11:10 -0400)]
p2phttp combining unauth and auth options

p2phttp: Support serving unauthenticated users while requesting
authentication for operations that need it. Eg, --unauth-readonly can be
combined with --authenv.

Drop locking currently needs authentication so it will prompt for that.
That still needs to be addressed somehow.

21 months agoresponse
Joey Hess [Thu, 17 Oct 2024 14:10:26 +0000 (10:10 -0400)]
response

21 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Thu, 17 Oct 2024 14:06:25 +0000 (10:06 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

21 months agoadd IMN7 to projects and tag a relevant issue
Joey Hess [Thu, 17 Oct 2024 14:06:08 +0000 (10:06 -0400)]
add IMN7 to projects and tag a relevant issue

21 months agocomment
Joey Hess [Thu, 17 Oct 2024 14:01:31 +0000 (10:01 -0400)]
comment

21 months agoquestion about Servant
yarikoptic [Thu, 17 Oct 2024 13:57:43 +0000 (13:57 +0000)]
question about Servant

21 months ago(no commit message)
matrss [Thu, 17 Oct 2024 09:39:56 +0000 (09:39 +0000)]

21 months agoMake VURL a proper list item
matrss [Thu, 17 Oct 2024 09:18:04 +0000 (09:18 +0000)]
Make VURL a proper list item

21 months agoinitial report on divergence in behavior on ACL
yarikoptic [Wed, 16 Oct 2024 19:13:08 +0000 (19:13 +0000)]
initial report on divergence in behavior on ACL

21 months agoAdded a comment
yarikoptic [Wed, 16 Oct 2024 18:58:04 +0000 (18:58 +0000)]
Added a comment

21 months agomake freeze/thaw relative paths
yarikoptic [Wed, 16 Oct 2024 18:51:45 +0000 (18:51 +0000)]
make freeze/thaw relative paths

21 months agoinitial report on freeze/thaw exit code ignorance
yarikoptic [Wed, 16 Oct 2024 18:34:06 +0000 (18:34 +0000)]
initial report on freeze/thaw exit code ignorance

21 months agoAdded a comment
matrss [Wed, 16 Oct 2024 12:09:02 +0000 (12:09 +0000)]
Added a comment

21 months agostreaming uploads
Joey Hess [Tue, 15 Oct 2024 20:02:19 +0000 (16:02 -0400)]
streaming uploads

21 months agoadded retrieveKeyFileInOrder and ORDERED to external special remote protocol
Joey Hess [Tue, 15 Oct 2024 19:35:09 +0000 (15:35 -0400)]
added retrieveKeyFileInOrder and ORDERED to external special remote protocol

I anticipate lots of external special remote programs will neglect
implementing this. Still, it's the right thing to do to assume that some
of them may write files out of order. Probably most external special
remotes will not be used with a proxy. When someone is using one with a
proxy, they can always get it fixed to send ORDERED.

21 months agosmaller delay in proxy streamer
Joey Hess [Tue, 15 Oct 2024 18:38:20 +0000 (14:38 -0400)]
smaller delay in proxy streamer

A one second delay made it seem really choppy and slow when the special
remote was sending content fairly steadily but was bottlenecked on
running gpg on 10 mb chunks.

This does not appreciably increase CPU, although of course if the
special remote is very slow it will add up over time.

It would perhaps be better to use inotify, like tailVerify does.

21 months agostream through proxy when using fileRetriever
Joey Hess [Tue, 15 Oct 2024 18:29:06 +0000 (14:29 -0400)]
stream through proxy when using fileRetriever

The problem was that when the proxy requests a key be retrieved to its
own temp file, fileRetriever was retriving it to the key's temp
location, and then moving it at the end, which broke streaming.

So, plumb through the path where the key is being retrieved to.

21 months agofix logic error
Joey Hess [Tue, 15 Oct 2024 18:28:47 +0000 (14:28 -0400)]
fix logic error

21 months agoinitial report on not all files being saved
yarikoptic [Tue, 15 Oct 2024 18:15:16 +0000 (18:15 +0000)]
initial report on not all files being saved

21 months agoremove change that was accidentially committed
Joey Hess [Tue, 15 Oct 2024 17:30:52 +0000 (13:30 -0400)]
remove change that was accidentially committed

21 months agocomment
Joey Hess [Tue, 15 Oct 2024 17:27:27 +0000 (13:27 -0400)]
comment

21 months agoMerge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 15 Oct 2024 16:27:01 +0000 (12:27 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com

21 months agoworking in streamproxy branch
Joey Hess [Tue, 15 Oct 2024 16:26:53 +0000 (12:26 -0400)]
working in streamproxy branch

21 months agoSped up proxied downloads from special remotes, by streaming
Joey Hess [Tue, 15 Oct 2024 16:22:34 +0000 (12:22 -0400)]
Sped up proxied downloads from special remotes, by streaming

Currently works for special remotes that don't use fileRetriever. Ones that
do will download to another filename and rename it into place, defeating
the streaming.

This actually benchmarks slightly slower when getting a large file from
a fast proxied special remote. However, when the proxied special remote
is slow, it will be a big win.

21 months agoimplement openFileBeingWritten
Joey Hess [Tue, 15 Oct 2024 15:56:42 +0000 (11:56 -0400)]
implement openFileBeingWritten

This bypasses the usual haskell file locking used to prevent opening a
file for read that is being written to.

This is unfortunately a bit of a hack. But it seems fairly unlikely to
get broken by changes to ghc. I hope. Using fdToHandle' will also work.

This does not work on windows because it uses openFd from posix. It
would probably be possible to implement it for windows too, just opening
the FD using the Win32 library instead. However, whether windows will
allow reading from a file that is also being written to I don't know,
and since in the git-annex case the writer could be another process (eg
external special remote), that might be doing its own locking in
windows, that seems a can of worms I'd prefer not to open.

21 months agoupdate
Joey Hess [Tue, 15 Oct 2024 14:31:42 +0000 (10:31 -0400)]
update

21 months agoAdded a comment
matrss [Mon, 14 Oct 2024 12:21:54 +0000 (12:21 +0000)]
Added a comment