Nothing past merge of json.sh works on Entware / QNAP #504

Closed
opened 2025-12-29 01:26:17 +01:00 by adam · 2 comments
Owner

Originally created by @jorhett on GitHub (Nov 2, 2020).

On QNAP / Entware you're required to roll back to dc552c602e in order for it to work. Any commit past this always results in

 + Generating private key...
 + Generating signing request...
 + Requesting authorization for moria.dogspa.netconsonance.com...
EXPECTED value GOT EOF

With older versions such as right after you merged json.sh

+ 1 pending challenge(s)
 + Deploying challenge tokens...
 + Responding to challenge for moria.dogspa.netconsonance.com authorization...
ERROR: Problem connecting to server (post for ; curl returned with 3)
EXPECTED value GOT EOF

bash -x shows the following from current HEAD:

++ sed -n 's/.*\["type"\][[:space:]]*"\([^"]*\)"/\1/p'
+ [[ http-01 = \u\r\n\:\a\c\m\e\:\e\r\r\o\r\:\u\n\a\u\t\h\o\r\i\z\e\d ]]
++ echo '"challenges",0
["type"]	"http-01"
["status"]	"pending"
["uri"]	"https://acme-v01.api.letsencrypt.org/acme/chall-v3/1234508925/kYa2gw"
["token"]	"SY0UsSNvrjR9TL_BB8BBgU1Tc7Cip0FXryAHkAQADGs"'
++ get_json_dict_value validationRecord
++ local filter
++ get_json_string_value uri
++ local filter
+++ json_path validationRecord ''
+++ '[' '!' validationRecord = -p ']'
+++ printf '"%s"' validationRecord
++ echo '"validationRecord"'
++++ json_path uri ''
++++ '[' '!' uri = -p ']'
++++ printf '"%s"' uri
+++ printf 's/.*\[%s\][[:space:]]*"\([^"]*\)"/\\1/p' '"uri"'
++++ json_path validationRecord ''
++++ '[' '!' validationRecord = -p ']'
++++ printf '"%s"' validationRecord
+++ printf 's/.*\[%s\][[:space:]]*\(.*\)/\\1/p' '"validationRecord"'
++ filter='s/.*\["validationRecord"\][[:space:]]*\(.*\)/\1/p'
++ sed -n 's/.*\["validationRecord"\][[:space:]]*\(.*\)/\1/p'
++ filter='s/.*\["uri"\][[:space:]]*"\([^"]*\)"/\1/p'
++ sed -n 's/.*\["uri"\][[:space:]]*"\([^"]*\)"/\1/p'
++ jsonsh
++ tokenize
++ local GREP
++ parse
++ local ESCAPE
++ read -r token
++ local CHAR
++ echo 'test string'
++ egrep -ao --color=never test
++ GREP='egrep -ao --color=never'
++ echo 'test string'
++ egrep -o test
++ ESCAPE='(\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})'
++ CHAR='[^[:cntrl:]"\\]'
++ local 'STRING="[^[:cntrl:]"\\]*((\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})[^[:cntrl:]"\\]*)*"'
++ local 'NUMBER=-?(0|[1-9][0-9]*)([.][0-9]*)?([eE][+-]?[0-9]*)?'
++ local 'KEYWORD=null|false|true'
++ local 'SPACE=[[:space:]]+'
+++ unsetopt
+++ grep -c '^shwordsplit$'
++ local is_wordsplit_disabled=0
++ '[' 0 '!=' 0 ']'
++ egrep -ao --color=never '"[^[:cntrl:]"\\]*((\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})[^[:cntrl:]"\\]*)*"|-?(0|[1-9][0-9]*)([.][0-9]*)?([eE][+-]?[0-9]*)?|null|false|true|[[:space:]]+|.'
++ egrep -v '^[[:space:]]+$'
++ '[' 0 '!=' 0 ']'
++ parse_value
++ local jpath= isleaf=0 isempty=0 print=0
++ case "$token" in
++ throw 'EXPECTED value GOT EOF'
++ echo 'EXPECTED value GOT EOF'
EXPECTED value GOT EOF
++ exit 1
+ challenge_uris[${idx}]=
+ remove_lock
+ rm -f /share/homes/jorhett/dehydrated/lock

One would assume the problem comes from it being a busybox shell...

Originally created by @jorhett on GitHub (Nov 2, 2020). On QNAP / Entware you're required to roll back to dc552c602eca94737b66e62f4c4087a4e8f251e4 in order for it to work. Any commit past this always results in ```bash + Generating private key... + Generating signing request... + Requesting authorization for moria.dogspa.netconsonance.com... EXPECTED value GOT EOF ``` With older versions such as right after you merged json.sh ```bash + 1 pending challenge(s) + Deploying challenge tokens... + Responding to challenge for moria.dogspa.netconsonance.com authorization... ERROR: Problem connecting to server (post for ; curl returned with 3) EXPECTED value GOT EOF ``` `bash -x` shows the following from current HEAD: ```bash ++ sed -n 's/.*\["type"\][[:space:]]*"\([^"]*\)"/\1/p' + [[ http-01 = \u\r\n\:\a\c\m\e\:\e\r\r\o\r\:\u\n\a\u\t\h\o\r\i\z\e\d ]] ++ echo '"challenges",0 ["type"] "http-01" ["status"] "pending" ["uri"] "https://acme-v01.api.letsencrypt.org/acme/chall-v3/1234508925/kYa2gw" ["token"] "SY0UsSNvrjR9TL_BB8BBgU1Tc7Cip0FXryAHkAQADGs"' ++ get_json_dict_value validationRecord ++ local filter ++ get_json_string_value uri ++ local filter +++ json_path validationRecord '' +++ '[' '!' validationRecord = -p ']' +++ printf '"%s"' validationRecord ++ echo '"validationRecord"' ++++ json_path uri '' ++++ '[' '!' uri = -p ']' ++++ printf '"%s"' uri +++ printf 's/.*\[%s\][[:space:]]*"\([^"]*\)"/\\1/p' '"uri"' ++++ json_path validationRecord '' ++++ '[' '!' validationRecord = -p ']' ++++ printf '"%s"' validationRecord +++ printf 's/.*\[%s\][[:space:]]*\(.*\)/\\1/p' '"validationRecord"' ++ filter='s/.*\["validationRecord"\][[:space:]]*\(.*\)/\1/p' ++ sed -n 's/.*\["validationRecord"\][[:space:]]*\(.*\)/\1/p' ++ filter='s/.*\["uri"\][[:space:]]*"\([^"]*\)"/\1/p' ++ sed -n 's/.*\["uri"\][[:space:]]*"\([^"]*\)"/\1/p' ++ jsonsh ++ tokenize ++ local GREP ++ parse ++ local ESCAPE ++ read -r token ++ local CHAR ++ echo 'test string' ++ egrep -ao --color=never test ++ GREP='egrep -ao --color=never' ++ echo 'test string' ++ egrep -o test ++ ESCAPE='(\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})' ++ CHAR='[^[:cntrl:]"\\]' ++ local 'STRING="[^[:cntrl:]"\\]*((\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})[^[:cntrl:]"\\]*)*"' ++ local 'NUMBER=-?(0|[1-9][0-9]*)([.][0-9]*)?([eE][+-]?[0-9]*)?' ++ local 'KEYWORD=null|false|true' ++ local 'SPACE=[[:space:]]+' +++ unsetopt +++ grep -c '^shwordsplit$' ++ local is_wordsplit_disabled=0 ++ '[' 0 '!=' 0 ']' ++ egrep -ao --color=never '"[^[:cntrl:]"\\]*((\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})[^[:cntrl:]"\\]*)*"|-?(0|[1-9][0-9]*)([.][0-9]*)?([eE][+-]?[0-9]*)?|null|false|true|[[:space:]]+|.' ++ egrep -v '^[[:space:]]+$' ++ '[' 0 '!=' 0 ']' ++ parse_value ++ local jpath= isleaf=0 isempty=0 print=0 ++ case "$token" in ++ throw 'EXPECTED value GOT EOF' ++ echo 'EXPECTED value GOT EOF' EXPECTED value GOT EOF ++ exit 1 + challenge_uris[${idx}]= + remove_lock + rm -f /share/homes/jorhett/dehydrated/lock ``` One would assume the problem comes from it being a busybox shell...
adam closed this issue 2025-12-29 01:26:17 +01:00
Author
Owner

@lukas2511 commented on GitHub (Nov 27, 2020):

@danimo tried requesting a certificate using openwrt with its version of busybox and tools and it worked without any issues.

The referenced change also shouldn't make a difference as it's completely separate code.

I can't keep supporting outdated / minimalized versions of weird alternative tools, it's hard enough to check if the normal versions work. You are free to contribute a patch yourself (or just keep using an older version), but I'm closing this issue as wontfix for now.

@lukas2511 commented on GitHub (Nov 27, 2020): @danimo tried requesting a certificate using openwrt with its version of busybox and tools and it worked without any issues. The referenced change also shouldn't make a difference as it's completely separate code. I can't keep supporting outdated / minimalized versions of weird alternative tools, it's hard enough to check if the normal versions work. You are free to contribute a patch yourself (or just keep using an older version), but I'm closing this issue as wontfix for now.
Author
Owner

@hefty-pty commented on GitHub (Feb 5, 2021):

sorry for replying to a closed issue, I just hat the same error
EXPECTED value GOT EOF

I had an old CA URI in my config
CA="https://acme-v01.api.letsencrypt.org/directory"
which I deleted to fix the issue.

@hefty-pty commented on GitHub (Feb 5, 2021): sorry for replying to a closed issue, I just hat the same error `EXPECTED value GOT EOF` I had an old CA URI in my config `CA="https://acme-v01.api.letsencrypt.org/directory"` which I deleted to fix the issue.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/dehydrated#504