Then, we need to integrate following commits of 2.2 into gniibe/t7855 branch:
rG43fe9073aa81: gpg,gpgsm: Tweak the locking of the pubring.kbx
rG8491aca73cff: gpg: Revert the always locking introduced with 43fe9073aa
rGad4a5117ab1c: gpgsm: Properly release the lock when compressing a pubring.
rG7962eca3a023: gpgsm: Change delete and store certificate locking glitches.
rG22f9c4a3b3c1: gpg: Release lock after close also in the compress code path.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Oct 14 2025
I created gniibe/t7855 branch for this issue.
To start with, I forward-port/cherry-pick 2.2 commits to the branch:
rG39430d9f78dc: build,common,g13,sm,tools: Require GpgRT 1.56.
rGe71aca2a628d: common: New function gnupg_remove_ext.
rGe38c5f7d5873: w32:common: Take care of possible race on startup under Windows.
rG7bfd37e305c0: common,w32: Always use share mode readwrite for the keybox.
@timegrid Thank you for your confirmation.
Sorry for my late review. I should have reviewed earlier.
Oct 13 2025
Oct 10 2025
I understand that this is for 2.6.
Oct 9 2025
Here are places where I found problems.
Oct 8 2025
Fixed in 1.56.
Fixed in 1.3.2.
Oct 7 2025
Oct 6 2025
Reading the commit log message in rG6dc3846d7819: sm: Support creation of EdDSA certificates.
I created a file to keygen.
Key-Type: ECDSA Key-Length: 1024 Key-Grip: 0286DCA85E771F64AB9FD9C89717369524D55471 Key-Usage: sign,encrypt Hash-Algo: sha384 Serial: random Name-DN: CN=dummy test nistp384
Oct 3 2025
I updated the branch.
Oct 2 2025
I think that modifying gnupg_remove is a bit risky because it's used in many places.
I'd rather introduce new function for Windows; gnupg_w32_delete_file for this particular purpose.
Factoring out wait_when_sharing_violation function from gnupg_rename_file.
Oct 1 2025
Here is a possible fix:
Sep 26 2025
This is current work of mine:
Sep 25 2025
Sep 24 2025
I can't find any causes of slowness in keyboxd initialization. I think that there is a situation where it simply takes time on Windows.
Sep 23 2025
@ametzler1 Thank you.
Sep 22 2025
test -a is not a POSIX construct, I intentionally avoided it.
Sep 19 2025
@ametzler1 Thank you for your report.
I modified a bit (not using && between two test but using -a for a single test command), and pushed the change:
rP121494245f49: build: Allow build with fltk 1.4.
Sep 15 2025
Sep 9 2025
Sep 2 2025
@m.eik Could you please enable debug option for gpg-agent and get the log output for the crash?
Sep 1 2025
I fixed the problem (which I identified above) in gniibe/t7759 branch. There might be other causes/problems for the particular symptom, so, I don't know the fix resolves the symptom or not, though. Anyhow, I believe that this is an improvement.
Aug 27 2025
Thank you for the report.
Similar situation could happen with gpgsm + gpg-agent, when gpg-agent is invoked by gpgsm.
(1) No gpg-agent.
(2) In gpgme, by engine-gpgsm, gpgsm is invoked with --logger.
(3) In gpgsm_keylist, it makes sure gpg-agent is available by GETINFO agent-check, using gpgsm_assuan_simple_command.
(4) In the server side, it tries to connect gpg-agent, invokes gpg-agent, and connect to the agent again.
(5) On Windows, it may takes time to invoke gpg-agent. And it may try to connect multiple times. Each trial may generate debug messages.
(6) When it takes too much time, the debug messages are too much. It may fill the pipe.
(7) And it blocks at log_string in my_libassuan_log_handler.
(8) ... it hangs.
Hypothetical scenario (gpgsm --server + dirmngr):
(0) It may hang when much debug messages are generated by libassuan to the pipe of --logger (diag_cb).
(1) In gpgme, by engine-gpgsm, gpgsm is invoked with --logger.
(2) If it's the case of standard gpgme interactions which uses gpgsm_io_event, no problem. Because the data on diag_cb is consumed well.
(3) In case of gpgsm_encrypt (or other commands), it uses gpgsm_assuan_simple_command which does not consume the data on diag_cb pipe at all.
(4) In particular, in set_recipients, gpgsm_assuan_simple_command is called by the number of recipients times.
(5) IIUC, in the server side, to handle RECIPIENT command, dirmngr is used by the call chain of:
- cmd_recipient
- gpgsm_add_to_certlist
- gpgsm_validate_chain...
- gpgsm_dirmngr_isvalid
(6) In gpgsm_dirmngr_isvalid function, libassuan is used as client side, it generates debug messages.
(7) When there are many recipients, the debug message may be big enough to fill the pipe.
(8) When pipe is filled, it blocks at log_string in my_libassuan_log_handler, waiting the data in pipe is consumed.
(9) ... it hangs.
Aug 15 2025
Aug 12 2025
Aug 11 2025
The patch above is wrong for if (!rc) last_err = rc;, the condition should be (rc).
It's in master (to be 1.12), then, it's backported to 1.11.2, which is confirmed build well.
So, closing.
Aug 5 2025
Aug 4 2025
Applied the change above.
I realized that I enbugged in rG5efabec21883: gpg:ecc: Use the common function of gnupg_get_ecc_params..
It has been regression since 2.5.9.
Pushed the changes in {gniibe/synch-spawn} branch.
It consists of three commits:
Jul 31 2025
In T7642#203189, @gniibe wrote:I wonder about GCC 15 preparation for the release. If it's good to have, three patches are needed to apply:
Jul 30 2025
I pushed the longlong patch: rCb61a7661d017: mpi: Provide the function prototype of __udiv_qrnnd.
Jul 29 2025
Jul 23 2025
IIUC, it's actually binutils version dependency (instead of GCC 15), perhaps.
Jul 18 2025
I wonder about GCC 15 preparation for the release. If it's good to have, three patches are needed to apply:
- Cherry-picking rCd5fb7cd9b351: Mark nonstring use cases with __nonstring__ attribute.
- strictly speaking, this adds a macro, which is considered an API change
- Cherry-picking rCf06e90f4137a: cipher:ecc: Silence GCC 15 warning.
- Apply changes of T7721: libgcrypt build-error with gcc-15 on powerpc and alpha
I figured out that .machine "any" is needed with GCC 15.
For Alpha (hppa, and sparc), IIUC, following patch may help:
For PowerISA 3.00 Instructions issue, following patch may help: