{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":4142220,"defaultBranch":"master","name":"squashfuse","ownerLogin":"vasi","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2012-04-25T23:03:48.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3305?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1726195506.0","currentOid":""},"activityList":{"items":[{"before":"e6ecfb0f23f859c3454448f2a27287362ef6ea0a","after":"4289904882b54c84ec70f6b3bca738d7ca93e429","ref":"refs/heads/master","pushedAt":"2024-09-13T04:03:36.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Merge pull request #137 from vasi/upload-artifact\n\nupdate upload-artifact version","shortMessageHtmlLink":"Merge pull request #137 from vasi/upload-artifact"}},{"before":null,"after":"7668188fc88b1c95bc3a536f73526d99c31df7c3","ref":"refs/heads/upload-artifact","pushedAt":"2024-09-13T02:45:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"update upload-artifact version","shortMessageHtmlLink":"update upload-artifact version"}},{"before":"94f998c58d2bb6dff00173f33140a0354adce324","after":"e6ecfb0f23f859c3454448f2a27287362ef6ea0a","ref":"refs/heads/master","pushedAt":"2024-08-08T09:20:50.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Merge pull request #135 from vasi/fuset2\n\nAllow handling broken directory offsets","shortMessageHtmlLink":"Merge pull request #135 from vasi/fuset2"}},{"before":"d1517c6a39ccbf44afe60f38682f8ac6cab7e0b5","after":"17b7c66bdae6a3a8ed0c129ec6eb685179904134","ref":"refs/heads/fuset2","pushedAt":"2024-08-08T08:49:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Allow handling broken directory offsets\n\nFUSE-T is an implementation of FUSE for macOS, which is becoming popular. But squashfuse doesn't work with FUSE-T, erroring when directories are listed. This is due to FUSE-T supplying improper `offset` values to the FUSE readdir ops.\n\nNow, squashfuse can be built with `--enable-broken-directory-offsets` to fix this behavior.\n\nFUSE readdir ops (both high-level and low-level) return lists of directory entries. Each returned entry has an `off` field, whose value is arbitrary, entirely up to the filesystem. Subsequent calls to readdir can supply one of these offsets to continue reading from the middle of a directory.\n\nIn squashfuse, we return as `off` an offset into the squashfs internal directory entries. This lets us quickly jump to the right entry using the squashfs directory index, without reading all intermediate entries.\n\nHowever, FUSE-T does NOT supply a previously-returned offset to readdir.\nInstead, it uses the size of the buffer that squashfuse returned\nfrom readdir. This is entirely outside of the FUSE spec! When FUSE-T does this, squashfuse can't find the supplied offset, and errors.\n\nThe fix is to simply not attempt to jump to the correct entry. When squashfuse is built with broken-directory-offsets enabled, we just read every entry from the start of the directory, until our buffer size reaches the provided offset. This is inefficient, but probably ok for reasonable directory sizes.\n\nUnfortunately, we need the user to provide a `configure` argument to trigger this fix. FUSE-T attempts to exactly mirror the FUSE headers and API, so there doesn't seem to be a way to detect this behavior. Even at run-time, FUSE-T could provide a wrong offset that happens to be a valid value, so we can't just look for seek failures.","shortMessageHtmlLink":"Allow handling broken directory offsets"}},{"before":null,"after":"d1517c6a39ccbf44afe60f38682f8ac6cab7e0b5","ref":"refs/heads/fuset2","pushedAt":"2024-08-08T08:47:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Allow handling broken directory offsets\n\nFUSE-T is an implementation of FUSE for macOS, which is becoming popular. But squashfuse doesn't work with FUSE-T, erroring when directories are listed. This is due to FUSE-T supplying improper `offset` values to the FUSE readdir ops.\n\nNow, squashfuse can be built with `--enable-broken-directory-offsets` to fix this behavior.\n\nFUSE readdir ops (both high-level and low-level) return lists of directory entries. Each returned entry has an `off` field, whose value is arbitrary, entirely up to the filesystem. Subsequent calls to readdir can supply one of these offsets to continue reading from the middle of a directory.\n\nIn squashfuse, we return as `off` an offset into the squashfs internal directory entries. This lets us quickly jump to the right entry using the squashfs directory index, without reading all intermediate entries.\n\nHowever, FUSE-T does NOT supply a previously-returned offset to readdir.\nInstead, it uses the size of the buffer that squashfuse returned\nfrom readdir. This is entirely outside of the FUSE spec! When FUSE-T does this, squashfuse can't find the supplied offset, and errors.\n\nThe fix is to simply not attempt to jump to the correct entry. When squashfuse is built with broken-directory-offsets enabled, we just read every entry from the start of the directory, until our buffer size reaches the provided offset. This is inefficient, but probably ok for reasonable directory sizes.\n\nUnfortunately, we need the user to provide a `configure` argument to trigger this fix. FUSE-T attempts to exactly mirror the FUSE headers and API, so there doesn't seem to be a way to detect this behavior. Even at run-time, FUSE-T could provide a wrong offset that happens to be a valid value, so we can't just look for seek failures.","shortMessageHtmlLink":"Allow handling broken directory offsets"}},{"before":null,"after":"e89072120ae1ae336b3863919de0e5bcc978ac22","ref":"refs/heads/fuset","pushedAt":"2024-08-08T07:48:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"fix fuse-t directory offset breakage","shortMessageHtmlLink":"fix fuse-t directory offset breakage"}},{"before":"775b4cc72ab47641637897f11ce0da15d5c1f115","after":"94f998c58d2bb6dff00173f33140a0354adce324","ref":"refs/heads/master","pushedAt":"2024-02-23T18:18:28.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Merge pull request #132 from vasi/nodist-configh\n\nLeave config.h out of dist","shortMessageHtmlLink":"Merge pull request #132 from vasi/nodist-configh"}},{"before":null,"after":"5d17e1599c1350e519124a5700e121c88c3fbf42","ref":"refs/heads/nodist-configh","pushedAt":"2024-02-23T05:54:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Leave config.h out of dist","shortMessageHtmlLink":"Leave config.h out of dist"}},{"before":"a325260e0247dfc5cb2024748e5f99bbc3921089","after":"775b4cc72ab47641637897f11ce0da15d5c1f115","ref":"refs/heads/master","pushedAt":"2024-02-22T15:19:33.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Merge pull request #131 from DrDaveD/prepare-0.5.2\n\nUpdate to 0.5.2","shortMessageHtmlLink":"Merge pull request #131 from DrDaveD/prepare-0.5.2"}},{"before":"dca54920802004d5aa39be31b9b307caf606d026","after":"a325260e0247dfc5cb2024748e5f99bbc3921089","ref":"refs/heads/master","pushedAt":"2024-02-19T15:05:28.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Merge pull request #128 from DrDaveD/prepare-0.5.1\n\nPrepare for 0.5.1 release","shortMessageHtmlLink":"Merge pull request #128 from DrDaveD/prepare-0.5.1"}},{"before":"ceb31cce30a72e0a9d7681bac337a8858a7063fe","after":"dca54920802004d5aa39be31b9b307caf606d026","ref":"refs/heads/master","pushedAt":"2024-02-18T22:04:38.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Merge pull request #126 from DrDaveD/fix-32bit\n\nFix 32 bit compile on Fedora 40","shortMessageHtmlLink":"Merge pull request #126 from DrDaveD/fix-32bit"}},{"before":"c41a22a3617f8e54002741efa43ae19caf358e64","after":"ceb31cce30a72e0a9d7681bac337a8858a7063fe","ref":"refs/heads/master","pushedAt":"2024-02-16T18:41:00.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Merge pull request #127 from DrDaveD/freebsd14\n\nUpdate to freebsd-14-0","shortMessageHtmlLink":"Merge pull request #127 from DrDaveD/freebsd14"}},{"before":"d32e4644fc0bec09ce4436a010a3233a9590abe5","after":"c41a22a3617f8e54002741efa43ae19caf358e64","ref":"refs/heads/master","pushedAt":"2023-11-28T15:16:28.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Merge pull request #124 from DrDaveD/fix-ubuntu-ci\n\nDo apt-get update before any installs","shortMessageHtmlLink":"Merge pull request #124 from DrDaveD/fix-ubuntu-ci"}},{"before":"b44be7ec8e6a01e74c7533e8b85fe558e89ccb0e","after":"d32e4644fc0bec09ce4436a010a3233a9590abe5","ref":"refs/heads/master","pushedAt":"2023-11-22T05:29:11.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Merge pull request #123 from cmangla/patch-4\n\nUpdate README macOS example","shortMessageHtmlLink":"Merge pull request #123 from cmangla/patch-4"}},{"before":"200ba3d467150a47d4ddbc5e34f91f768e0688c7","after":"b44be7ec8e6a01e74c7533e8b85fe558e89ccb0e","ref":"refs/heads/master","pushedAt":"2023-11-21T12:22:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Create shell.nix (#122)\n\n* Create shell.nix\r\n\r\nThis functions as an easy way to set up a development environment for anyone using the Nix package manager\r\n\r\n* Add NixOS to PLATFORMS\r\n\r\n* Add NixOS build instructions\r\n\r\n* Update shell.nix\r\n\r\nAdd gnumake and fuse 2\r\n\r\ngnumake comes default on NixOS but may not on other Linux systems using the package manager","shortMessageHtmlLink":"Create shell.nix (#122)"}},{"before":"209240833583258fdd1ab75e56bbc54fa6508514","after":"200ba3d467150a47d4ddbc5e34f91f768e0688c7","ref":"refs/heads/master","pushedAt":"2023-11-13T15:52:36.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Merge pull request #117 from cmangla/patch-3\n\nUpdate README","shortMessageHtmlLink":"Merge pull request #117 from cmangla/patch-3"}},{"before":"6835845ab90c424905a55a8e4eedbbd9147a9612","after":"209240833583258fdd1ab75e56bbc54fa6508514","ref":"refs/heads/master","pushedAt":"2023-11-10T08:05:57.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Merge pull request #120 from vasi/update-example2\n\nFix example + distcheck","shortMessageHtmlLink":"Merge pull request #120 from vasi/update-example2"}},{"before":"64cfd6a27d45714e4fc6bffd32602084038810e7","after":"ebfad3671694d10d2b2df3b69bbfab80b183add5","ref":"refs/heads/update-example2","pushedAt":"2023-11-09T18:07:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"distcheck in its own build","shortMessageHtmlLink":"distcheck in its own build"}},{"before":"7ddb5087dc373d37c31d8d52cdeb51081cf8845d","after":"64cfd6a27d45714e4fc6bffd32602084038810e7","ref":"refs/heads/update-example2","pushedAt":"2023-11-09T18:05:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"distcheck in its own build","shortMessageHtmlLink":"distcheck in its own build"}},{"before":"bfc5ab0e45156f79d06ed54b69752868887926f3","after":"7ddb5087dc373d37c31d8d52cdeb51081cf8845d","ref":"refs/heads/update-example2","pushedAt":"2023-11-09T17:52:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"fix distcheck\n\n* Include some missing test files in dist (+ some docs)\n* Make ll-smoke-singlethreaded not get confused by out-of-tree builds\n* Run distcheck in CI","shortMessageHtmlLink":"fix distcheck"}},{"before":"c6c61e878f731cbade784d8630f98fe4aa8a8728","after":"bfc5ab0e45156f79d06ed54b69752868887926f3","ref":"refs/heads/update-example2","pushedAt":"2023-11-09T17:49:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"fix distcheck\n\n* Include some missing test files in dist (+ some docs)\n* Make ll-smoke-singlethreaded not get confused by out-of-tree builds\n* Run distcheck in CI","shortMessageHtmlLink":"fix distcheck"}},{"before":"db9221ace09624e7d15984d6f8cacf7703d7a126","after":"c6c61e878f731cbade784d8630f98fe4aa8a8728","ref":"refs/heads/update-example2","pushedAt":"2023-11-09T17:47:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"fix distcheck\n\n* Include some missing test files in dist (+ some docs)\n* Make ll-smoke-singlethreaded not get confused by out-of-tree builds\n* Run distcheck in CI","shortMessageHtmlLink":"fix distcheck"}},{"before":null,"after":"db9221ace09624e7d15984d6f8cacf7703d7a126","ref":"refs/heads/update-example2","pushedAt":"2023-11-09T17:41:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"fix distcheck\n\n* Include some missing test files in dist (+ some docs)\n* Make ll-smoke-singlethreaded not get confused by out-of-tree builds\n* Run distcheck in CI","shortMessageHtmlLink":"fix distcheck"}},{"before":"807e7625a70c191c15c04ad54660513a118d02dc","after":"6835845ab90c424905a55a8e4eedbbd9147a9612","ref":"refs/heads/master","pushedAt":"2023-11-09T14:37:46.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Merge pull request #119 from vasi/update-example\n\nupdate ubuntu build example","shortMessageHtmlLink":"Merge pull request #119 from vasi/update-example"}},{"before":null,"after":"67b7f3afa78f81e6188a2f84a04393dd4f26252f","ref":"refs/heads/update-example","pushedAt":"2023-11-09T14:25:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"update ubuntu build example","shortMessageHtmlLink":"update ubuntu build example"}},{"before":"012fc8da6955c3ea5a301acafe19a1bf2d98672a","after":"807e7625a70c191c15c04ad54660513a118d02dc","ref":"refs/heads/master","pushedAt":"2023-11-09T14:13:06.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"Merge pull request #118 from vasi/fix-singlethread-script\n\nWIP: fix shell path for freebsd build","shortMessageHtmlLink":"Merge pull request #118 from vasi/fix-singlethread-script"}},{"before":null,"after":"a82ecc89a845bf5a9d65905dd34d96b036515878","ref":"refs/heads/fix-singlethread-script","pushedAt":"2023-11-09T13:59:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"vasi","name":"Dave Vasilevsky","path":"/vasi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3305?s=80&v=4"},"commit":{"message":"fix shell path for freebsd build","shortMessageHtmlLink":"fix shell path for freebsd build"}},{"before":"3f4dd2928ab362f8b20eab2be864d8e622472df5","after":"012fc8da6955c3ea5a301acafe19a1bf2d98672a","ref":"refs/heads/master","pushedAt":"2023-10-30T17:24:55.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Merge pull request #115 from cmangla/patch-1\n\nAdd macOS build example to README","shortMessageHtmlLink":"Merge pull request #115 from cmangla/patch-1"}},{"before":"422f074f0798dfb649b72e4ae10d5520568a7a95","after":"3f4dd2928ab362f8b20eab2be864d8e622472df5","ref":"refs/heads/master","pushedAt":"2023-09-13T14:50:21.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Merge pull request #114 from DrDaveD/prepare-0.5.0\n\nPrepare for 0.5.0 release","shortMessageHtmlLink":"Merge pull request #114 from DrDaveD/prepare-0.5.0"}},{"before":"b0efb4a7b38db2d55a825583952fab3851dcc9ea","after":"422f074f0798dfb649b72e4ae10d5520568a7a95","ref":"refs/heads/master","pushedAt":"2023-09-13T14:28:18.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"DrDaveD","name":null,"path":"/DrDaveD","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2129743?s=80&v=4"},"commit":{"message":"Merge pull request #113 from ariel-miculas/fix_notification_of_mount\n\nFix the notification pipe for squashfuse in case of failure","shortMessageHtmlLink":"Merge pull request #113 from ariel-miculas/fix_notification_of_mount"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xM1QwNDowMzozNi4wMDAwMDBazwAAAAS1ENSE","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xM1QwNDowMzozNi4wMDAwMDBazwAAAAS1ENSE","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wOS0xM1QxNDoyODoxOC4wMDAwMDBazwAAAAN_xWoZ"}},"title":"Activity ยท vasi/squashfuse"}