Repository navigation
Conversation
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
0d4699c to
5d2e55b
Compare
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
5d2e55b to
82411df
Compare
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
84b7180 to
19d0a0a
Compare
19d0a0a to
82b98b5
Compare
5f8a33b to
19d0a0a
Compare
19d0a0a to
9b0133f
Compare
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
9b0133f to
b4ccd75
Compare
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
b4ccd75 to
de9cc1a
Compare
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
openwrt-ai
left a comment
There was a problem hiding this comment.
Commit checks
- de9cc1a "veracrypt: add version 1.26.29" — the
Signed-off-by: Ville Takiotrailer appears twice; keep one.
Generated by Claude Code
de9cc1a to
8ece9cb
Compare
Web UI for the console veracrypt package (packages feed): openwrt/packages#30597 Not bundled into veracrypt; apk add luci-app-veracrypt depends on +veracrypt. Calls veracrypt --text only. The current password is passed on stdin (--stdin), never --password. New password, hidden volume password and token PIN are fed on stdin, not via --new-password, --protection-password or --token-pin. CLI reference: https://www.veracrypt.fr/en/Command%20Line%20Usage.html Signed-off-by: Ville Takio <ville+git@takio.fi>
No one is going to read AI wall of texts. It is just too exhausting to read it. It is wrong. Folder /etc/config is where UCI config files are. So, you should do it as other packages does. :) UCI config belongs to the packages, not to the LuCI integration. |
|
OK, reluctantly: I'm still of the opinion that veracrypt and the luci-app are and will be separate packages. and the luci-app is naturally dependent of this package, but not the other way around. |
|
On VeraCrypt reading its own settings from
|
|
You don't normally patch the package to understand UCI config files. I don't think I've ever seen that done. Normally, the openwrt init script that you provide as part of your package, handles UCI config files and generates a suitable config file in the native format that the package expects. dnsmasq, snmpd, mosquitto come to mind as examples off the top of my head. As mentioned, that is part of this package. a Luci app would provide unified editing of that config, but is completely independent. |
|
@karlp Thanks, agreed that's the usual pattern for daemons like dnsmasq or mosquitto. VeraCrypt isn't a service, though: there's nothing to start at boot (automounting is out of scope, as it would mean storing the password on the router), and the console tool takes everything it needs as command-line options. An init script generating VeraCrypt's XML preferences from UCI would have nothing to do, so I think it's unnecessary. The only config that's actually needed is the settings and favorites of luci-app-veracrypt, and that is the |
|
Updated (81378fe): this package ships no configuration anymore; |
|
Added |
BKPepe
left a comment
There was a problem hiding this comment.
I don't think the current init script is sufficient for an OpenWrt package. If we provide /etc/config/veracrypt, the base package should actually consume it, rather than leaving volume management to the optional LuCI app.
I'd expect a UCI-driven init script that mounts only explicitly enabled volumes at boot and cleanly unmounts only the volumes it manages. The UCI configuration and its conffiles should live in this package, so the feature also works through the CLI, scripts and configuration management without LuCI.
START=99 is too late for volumes needed by services started earlier. Start after fstab has mounted the backing storage but before dependent services, and stop after those services have stopped. A one-shot rc.common script is sufficient; USE_PROCD=1 is not mandatory when there is no long-running process to supervise.
Please also define how unattended authentication works without storing passwords in UCI or exposing them in process arguments. If the init script generates VeraCrypt's native XML configuration, make sure it uses the correct configuration path and preserves per-volume options that the native favorites format cannot represent.
Finally, the current global unmount with an unconditional forced fallback and the mount helper's handling of ro, -f and password= need to be addressed before merging.
Also, please consider adding nasm/host to PKG_BUILD_DEPENDS instead of setting NOASM=1 on i386/x86_64, as NOASM=1 disables hardware AES-NI and SIMD acceleration on x86 targets.
Hey, I'll be honest, if you want to help, it's not the best way to keep reminding yourself on IRC and saying I'm the bad guy and that I'm driving you crazy.
No other pull request has as much attention as yours. Be a little considerate, I'm telling it like it is and we have 137 open pull requests here.
A lot of people are trying to help you, including @karlp, who says that the UCI config should just be here and we're going around in circles again. I understand that the AI is answering me and that it's vibe-coded, but it takes a little self-reflection and taming the AI a little, see #30782
Each of your force pushes contains so many changes that I simply cannot review them all over again. It really takes so much time that I can't even afford it.
|
@BKPepe I'm very sorry if you got offended. The "driving me crazy" on IRC was purely about me not understanding your requests, not about you. Mea culpa. Addressed in e2eb671:
To say it once more: VeraCrypt has no configuration of its own that it would read, and it never will. The command-line tool takes everything as options (its only optional per-user preferences are XML files under Noted on the force pushes: from now on each push will be small, with a short list of what changed. |
|
I disagree with keeping volume configuration and handling exclusively in LuCI. OpenWrt routinely wraps CLI-only tools with UCI configuration and init scripts. You have also just added Please move If this PR is deliberately CLI-only, remove the init script. The current middle ground adds system integration without actually providing it. Personally, I don't consider a CLI-only package user-friendly enough, and I think proper OpenWrt integration should be part of this PR rather than postponed to a future one. |
|
I don't understand why we're still arguing about this instead of implementing it properly. I asked AI (Argon 4 High and GPT-6] as reviewer to draft a possible approach. The files below are not tested or reviewed by me, so treat them as a starting point, not a patch to merge blindly:
Could you explain what is actually wrong with this approach and why we couldn't have taken this direction from the beginning? We've been discussing this for three weeks, and I'd rather see concrete technical objections and a workable solution than keep going in circles about whether VeraCrypt itself reads UCI. Regarding automount: the credentials don't necessarily have to be stored on the router next to the volume. They can come from a separate keyfile location, a password file populated at runtime, or a suitable hardware-token setup. Keep automount disabled by default, never store secrets in UCI, and let users choose their own threat model. That's no reason to omit an explicitly opt-in feature. A CLI-only package is not user-friendly enough, and I don't want proper OpenWrt integration postponed to another PR. |
|
Don't mind my comment about the config file being in this package, I was commenting generally to the perceived request that veracrypt grow a patch to handle uci config directly. I was (mistakenly, I don't know anything about veracrypt) that it was like ~any other packaged service and had an init script, the commentary was general. |
|
@GeorgeSapkin OpenWrt's Mount Points (block-mount) only mounts block devices and has no crypttab. VeraCrypt volumes are often container files, opened by the veracrypt program itself (FUSE or dm-crypt), so fstab alone can't mount them. The bigger point is security: a volume that mounts itself at boot needs its secret stored on the same router. If you don't need to enter a password, an attacker won't need to either. The usual setup is a fully encrypted system disk whose shortcuts mount the other encrypted disks; keyfiles on a USB stick avoid typing the password, but lower security a lot. My own use: a disk attached to the router that I unlock only occasionally and then use over the LAN via Samba. For those who want it anyway, the package now has an opt-in init script; nothing is mounted unless a volume has |
|
@BKPepe Thanks for the drafts. Done in 79a99f1, following their structure and option names: Where the draft would not work on OpenWrt, I deviated:
Patch 080 now has full git-am headers and is submitted upstream (veracrypt/VeraCrypt#1928). |
|
@BKPepe On the credentials: covered in 4560e09. Automount stays off by default, and secrets never go in UCI. |
openwrt-ai
left a comment
There was a problem hiding this comment.
Commit checks
- 9b128db "veracrypt: add version 1.26.29": the run-test line still lists
mount.veracrypt (-f, ro, passwordfile=), but the reworked patch 080 droppedpasswordfile=, so the helper now passes it on as a filesystem option. Removepasswordfile=from the commit message, and from the PR description, which also says "password not in the process list".
Generated by Claude Code
|
If someone doesn't want to wait for the merging, the builds are available here: https://github.com/flatstik/packages/releases/tag/veracrypt-1.26.30-wx3.2.12 |
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
3 open issues
1 resolved since last review
Review effort: Lite
Add the non-GUI part of wxWidgets (wxBase) as a shared library, libwxbase3.2. VeraCrypt (added next) links against it. 3.2 is upstream's stable series, which keeps the API and ABI compatible across 3.2.x releases, so a security update of the library does not need its users to be rebuilt. The 3.3 releases are upstream's development branch without that guarantee. ABI_VERSION follows the soname, libwx_baseu-3.2.so.0. To keep the library small (1.3 MB installed on x86_64), it is built without networking, archive and compressed streams, regular expressions, file system watching and debug assertions; enabling zlib, archives, regex and fswatcher would add about 400 KB. wx-config is staged like gpg-error-config, for packages building against it. Upstream: https://github.com/wxWidgets/wxWidgets/releases/tag/v3.2.12 Run-tested with veracrypt on ramips/mt7621 (ASUS RT-AX53U, mipsel_24kc) with OpenWrt 25.12.6. Signed-off-by: Ville Takio <ville+git@takio.fi>
Add a console-only VeraCrypt package using FUSE3 and wxBase from libwxbase. x86 builds without assembler (NOASM); other targets use VeraCrypt's C/intrinsics code, including ARMv8 hardware AES. Without dmsetup (lvm2), volumes are mounted and formatted through FUSE3. /etc/config/veracrypt describes the volumes; luci-app-veracrypt edits the same sections. The init script mounts the volumes with auto_mount '1' (none by default) in the background at boot and when their disk appears, reading the password from a root-only password_file on stdin, and unmounts the configured volumes on stop, never forced. Changelog: https://github.com/veracrypt/VeraCrypt/releases/tag/VeraCrypt_1.26.31 Signed-off-by: Ville Takio <ville+git@takio.fi>



📦 Package Details
Maintainer: @flatstik
Description:
Add a console-only VeraCrypt package and wxWidgets' non-GUI library (wxBase), which it needs, as a shared-library package (one commit per package).
wxwidgets (
libwxbase3.2):ABI_VERSION:=3.2follows the soname.wx-configis staged for other packages.veracrypt 1.26.31:
NOASM).kmod-crypto-xts, AES only)./etc/config/veracryptdescribes the volumes (also edited by luci-app-veracrypt, luci-app-veracrypt: add optional LuCI UI luci#9069). The init script and a block hotplug script mount volumes withauto_mount '1', reading the password from a root-onlypassword_fileon stdin; stop never forces an unmount.License.txtis installed as the TrueCrypt License 3.0 requires.Changelog: https://github.com/veracrypt/VeraCrypt/releases/tag/VeraCrypt_1.26.31 (VeraCrypt 1.26.31), https://github.com/wxWidgets/wxWidgets/releases/tag/v3.2.12 (wxWidgets 3.2.12)
🧪 Run Testing Details
Run-tested: self-tests, create, mount/write/read/unmount,
mount.veracrypt,--stdin, the init script and the luci-app-veracrypt backend.Build-tested: mipsel_24kc, mips_24kc, mips64, arm_cortex-a15_neon-vfpv4, aarch64_generic, x86_64.
✅ Formalities