Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ go.work.sum
# .idea/
example/

./altmount
altmount
/altmount
/altmount.exe
*.db*
*node_modules*
.git
Expand Down
9 changes: 9 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -121,5 +121,14 @@ build-cli-windows: build-frontend
# WinFsp must be installed on the target machine: https://winfsp.dev/
# WinFsp headers for cgofuse (if building natively): C:\Program Files (x86)\WinFsp\inc\fuse

# Regenerate the Windows resource (.syso) files from versioninfo.json + altmount.exe.manifest.
# The generated cmd/altmount/resource_windows_*.syso files are committed and the Go linker
# picks them up automatically for GOOS=windows builds — embedding the long-path-aware
# manifest. Re-run this target after editing versioninfo.json or altmount.exe.manifest.
# Requires: go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest
.PHONY: windows-resources
windows-resources:
cd cmd/altmount && goversioninfo -platform-specific versioninfo.json

.PHONY: build
build: build-cli
27 changes: 27 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,33 @@ go install github.com/javi11/altmount@latest
altmount serve --config config.yaml
```

## Windows: Enable Long Path Support

The Windows AltMount binaries are built with a long-path-aware manifest, which
opts the process in to paths longer than the legacy `MAX_PATH` (260 character)
limit. However, Windows also requires the matching system-wide setting to be
enabled before long paths actually work — without it, you may see errors like
`The filename or extension is too long` when accessing deeply nested releases.

Enable it once per machine in an **elevated PowerShell** prompt (Run as
administrator), then restart AltMount:

```powershell
New-ItemProperty `
-Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
-Name "LongPathsEnabled" `
-Value 1 `
-PropertyType DWORD `
-Force
```

Equivalent via Group Policy: `Computer Configuration → Administrative Templates
→ System → Filesystem → Enable Win32 long paths`.

This setting requires Windows 10 version 1607 (build 14393) or newer. A reboot
is not strictly required, but any already-running process — including AltMount
and your file manager — needs to be restarted to pick up the change.

## Links

- 📚 [Documentation](https://altmount.kipsilabs.top)
Expand Down
20 changes: 20 additions & 0 deletions cmd/altmount/altmount.exe.manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="AltMount"
version="0.0.0.0"
processorArchitecture="*"/>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
</windowsSettings>
</application>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 / 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>
Binary file added cmd/altmount/resource_windows_386.syso
Binary file not shown.
Binary file added cmd/altmount/resource_windows_amd64.syso
Binary file not shown.
Binary file added cmd/altmount/resource_windows_arm.syso
Binary file not shown.
Binary file added cmd/altmount/resource_windows_arm64.syso
Binary file not shown.
42 changes: 42 additions & 0 deletions cmd/altmount/versioninfo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"FixedFileInfo": {
"FileVersion": {
"Major": 0,
"Minor": 0,
"Patch": 0,
"Build": 0
},
"ProductVersion": {
"Major": 0,
"Minor": 0,
"Patch": 0,
"Build": 0
},
"FileFlagsMask": "3f",
"FileFlags ": "00",
"FileOS": "040004",
"FileType": "01",
"FileSubType": "00"
},
"StringFileInfo": {
"Comments": "AltMount - Usenet content mounting and streaming",
"CompanyName": "AltMount",
"FileDescription": "AltMount CLI",
"FileVersion": "",
"InternalName": "altmount",
"LegalCopyright": "",
"LegalTrademarks": "",
"OriginalFilename": "altmount.exe",
"PrivateBuild": "",
"ProductName": "AltMount",
"ProductVersion": "",
"SpecialBuild": ""
},
"VarFileInfo": {
"Translation": {
"LangID": "0409",
"CharsetID": "04B0"
}
},
"ManifestPath": "altmount.exe.manifest"
}
Loading