- repro builds to use fixed uid=1000 inside the container
- in case the file permissions leak into the binaries, they are still reproducible
- chown 1000:1000 fresh_clone
- repro builds to create fresh_clone dir outside git clone
- otherwise the local dev build would still interact with the fresh_clone dir
- due to e.g. recursive "find -exec touch",
- and even the "docker build" cmd itself would try to stat/read it
- see https://github.com/docker/for-linux/issues/380
- and "rm -rf fresh_clone" needs sudo if the host uid is not 1000
- this way the local dev build does not need sudo
to recap:
- local dev builds use the host userid inside the container, directly operate on the project dir
- does not need sudo
- repro builds create a fresh git clone, chown it to 1000, and use userid=1000 inside the container
- if the host userid is 1000, does not need sudo
- otherwise, needs sudo
closes https://github.com/spesmilo/electrum/issues/8261
reproducibility probably needs a hardcoded userid
Also, move the UID arg later in the dockerfiles, for better caching.
(if local dev build and repro build set different UIDs, the build caches
will diverge at that step)
The .dockerignore symlink in the project root dir is only picked up by the android build.
The android build has the project root as its build context for "docker build" --
the other builds have their own subdirectories as build context, e.g. contrib/build-linux/appimage.
Note that this allows users to save invoices that have an empty
amount, which is not allowed by the Qt GUI. Qt will complain at
pay time about empty amount if a lightning invoice without amount
is saved. With onchain invoices, Qt will create an onchain tx with
a zero output.
creating addresses beyond the gap limit.
- if lightning is enabled, propose to create a lightning-only invoice
- otherwise, propose to reuse an address
- never generate addresses beyond the gap limit
Implementation:
- createDefaultRequest is removed
- create_bitcoin_address is called whether the wallet has lightning
or not
Use the app timer instead, so that the tx is not recomputed
on every slider move (like in ConfirmTxDialog).
A similar modification is needed for QML. I started with
Qt in order to get a sense of how it should be done.
line if the first entered password is too short.
Without that, a user may enter two passwords that are identical
but too short, and then click on the eye icon in order to discover
that they actuall are identical.. and only at this point guess that
the size might be the problem.
Also, raise the minimum length to 6, because that is what is was
on Kivy.
One of the password dialogs still had two eye icons; that was only
fixed in the wizard. I guess that could be avoided if both dialogs
used the same code.