Re: Can't seem to get correct hash for binary download

"Bastian Eicher" <[email protected]> Tue, 4 Apr 2023 17:10:18 +0200
Newsgroups gmane.comp.file-systems.zero-install.devel
Message-ID <[email protected]>
This is a multipart message in MIME format.

--===============8363566850173681638==
Content-Type: multipart/alternative;
 boundary="----=_NextPart_000_000D_01D96718.559E1600"
Content-Language: de

This is a multipart message in MIME format.

------=_NextPart_000_000D_01D96718.559E1600
Content-Type: text/plain;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Laurence,

=20

the manifest digest <https://docs.0install.net/specifications/manifest/> =
 always covers an entire directory with file names and contents. Even =
for a single file it still covers that file=E2=80=99s name as well, so =
sha256sum by itself is not enough.

=20

To get a suitable manifest digest for a single file you can do one of =
the following:

*	Create an empty directory, place the file inside it and then run =
0install digest dir-path.

or

*	Create a feed with everything except the IDs and <manifest-digest>s =
and then run the following (only works on Windows):
0install run --command=3D0publish =
https://apps.0install.net/0install/0publish-win.xml --add-missing =
your-feed.xml
This will automatically download the <file>s referenced in the feed and =
calculate and insert any missing <manifest-digest>s.

=20

Implementation IDs can be anything, as long as they=E2=80=99re unique =
within the feed. But historically they=E2=80=99re usually set equal to =
the digest.

=20

For a single executable <file> the main=3D attribute of the =
<implementation> should match the <file>=E2=80=99s dest=3D. In your case =
that would be main=3D"direnv" instead of =
main=3D"./o/bins/v2.32.2/gnu/amd64/direnv".

Basically <file dest=3D"direnv" .../> tells 0install to download the =
file and put it into the implementation directory under the name direnv. =
And main=3D"direnv" tells 0install that to run that implementation it =
needs to look for a file named direnv in the directory.

=20

Hope this helps. We definitely need to add some more comprehensive =
tutorials to the docs.

=20

Regards

Bastian

=20

From: Laurence Taylor <[email protected]>=20
Sent: 4th of April 2023 16:39
To: [email protected]
Subject: [Zero-install-devel] Can't seem to get correct hash for binary =
download

=20

Hi all.

I'm hoping to remove some of the pain in installing direnv on windows by =
using 0install, but it's distributed as a bare binary and I'm running =
into problems.

=20

Show stopper being that the downloads made by 0install are consistently =
reporting a different hash to the curl + sha256sum thing I'm using to do =
the manifest-digest on the binary.=20

=20

=20

info: 0install 2.18 (OCaml version): verbose mode on
info: Missing selection of =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml:=
 <implementation> at =
/mnt/dat/i/prj/bertha/.local/bertha/o/var/0install/cache/interfaces/https=
%3a%2f%2fraw.githubusercontent.com <http://2fraw.githubusercontent.com> =
%2fohmrun%2f0install_direnv%2fmain%2fDirenv.xml:22:152
info: Checking for GTK plugin at =
'/mnt/dat/i/prj/bertha/.local/bertha/o/os/linux/prg/0install/lib/0install=
-gtk/gui_gtk.cmxs'
info: Checking for GTK plugin at =
'/mnt/dat/i/prj/bertha/.local/bertha/o/os/linux/prg/0install/lib/0install=
.net/gui_gtk.cmxs <http://0install.net/gui_gtk.cmxs> '
info: Initialising GTK GUI
info: Switching to GLib mainloop...
debug: download_icon =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml
info: No PNG icons found in =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml
debug: download_icon =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml
info: No PNG icons found in =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml
info: Starting download of feed =
'https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml=
'
debug: download_and_import_feed =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml
debug: Download URL =
'https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml=
'... (for =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml)=

debug: start_monitoring =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml
debug: Scheduling download of =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml
info: HTTP GET =
"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml=
"
debug: Checking for certificate file =
"/etc/ssl/certs/ca-certificates.crt"
info: Download =
'https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml=
' completed successfully (2415 bytes)
info: Running GnuPG: /usr/bin/gpg --no-secmem-warning --batch =
--status-fd 1 --keyserver-options no-auto-key-retrieve --verify =
/tmp/0install-b37581-gpg -
debug: Updating =
'https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml=
' from network; modified at 2023-04-04 16:16
debug: No change
info: Updated feed cache checked time for =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml =
(modified 2023-04-04 16:16)
debug: stop_monitoring =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml
info: OK button =3D> true
info: Missing selection of =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml:=
 <implementation> at =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml:=
22:152
debug: download_impls: for =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml =
get 2.32.2
debug: Download URL =
'https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2/gnu/am=
d64/direnv'... (for =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml)=

debug: start_monitoring =
https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2/gnu/amd=
64/direnv
debug: Scheduling download of =
https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2/gnu/amd=
64/direnv
info: HTTP GET =
"https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2/gnu/am=
d64/direnv"
info: Redirect from =
'https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2/gnu/am=
d64/direnv' to =
'https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/bins/v2.=
32.2/gnu/amd64/direnv' =
(https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/bins/v2.=
32.2/gnu/amd64/direnv)
debug: Scheduling download of =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/bins/v2.3=
2.2/gnu/amd64/direnv
info: HTTP GET =
"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/bins/v2.=
32.2/gnu/amd64/direnv"
info: Download =
'https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/bins/v2.=
32.2/gnu/amd64/direnv' completed successfully (8988761 bytes)
info: Removing temporary directory =
'/mnt/dat/i/prj/bertha/.local/bertha/o/var/0install/cache/implementations=
/tmp-2e3a418d'
info: OK button =3D> false
info: Reporting error to user: Incorrect manifest -- archive is =
corrupted.
Required digest: =
sha256=3D43e7200746d526aec6f37e689dcced23d5e42cfac7022e301d6b37420d625663=

Actual digest: =
sha256=3Def1810692d07fb818f121fae5032d69719e982c636e305ff11e3d8955fc5d1cc=

... downloading implementation =
https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Direnv.xml =
2.32.2 (id=3D./o/bins/v2.32.2/gnu/amd64)
Raised at Zeroinstall__Fetch.fetcher#download_impls.(fun) in file =
"src/zeroinstall/fetch.ml <http://fetch.ml> ", line 648, characters =
10-21
Called from =
Lwt.Sequential_composition.bind.create_result_promise_and_callback_if_def=
erred.callback in file "src/core/lwt.ml <http://lwt.ml> ", line 1849, =
characters 23-26

debug: stop_monitoring =
https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2/gnu/amd=
64/direnv

=20

Still reading the docs but it's been confusing me the entire day so I =
thought I'd sent a note in.

=20

regards,

Loz


------=_NextPart_000_000D_01D96718.559E1600
Content-Type: text/html;
	charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 15 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
span.EmailStyle18
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:421222522;
	mso-list-template-ids:-273927040;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l0:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:72.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:"Courier New";
	mso-bidi-font-family:"Times New Roman";}
@list l0:level3
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:108.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level4
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:144.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level5
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:180.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level6
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:216.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level7
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:252.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level8
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:288.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l0:level9
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:324.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1
	{mso-list-id:1828284610;
	mso-list-template-ids:793657480;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1:level2
	{mso-level-number-format:bullet;
	mso-level-text:o;
	mso-level-tab-stop:72.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:"Courier New";
	mso-bidi-font-family:"Times New Roman";}
@list l1:level3
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:108.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level4
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:144.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level5
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:180.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level6
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:216.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level7
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:252.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level8
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:288.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
@list l1:level9
	{mso-level-number-format:bullet;
	mso-level-text:=EF=82=A7;
	mso-level-tab-stop:324.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DDE link=3Dblue =
vlink=3Dpurple style=3D'word-wrap:break-word'><div =
class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'mso-fareast-language:EN-US'>Hi =
Laurence,<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>the <a =
href=3D"https://docs.0install.net/specifications/manifest/">manifest =
digest</a> always covers an entire directory with file names and =
contents. Even for a single file it still covers that file=E2=80=99s =
name as well, so sha256sum by itself is not =
enough.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>To get a suitable manifest digest =
for a single file&nbsp;you can do one of the =
following:<o:p></o:p></span></p><ul style=3D'margin-top:0cm' =
type=3Ddisc><li class=3DMsoNormal style=3D'mso-list:l0 level1 =
lfo1'><span lang=3DEN-US style=3D'mso-fareast-language:EN-US'>Create an =
empty directory, place the file inside it and then run&nbsp;</span><span =
lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>0install =
digest dir-path</span><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>.<o:p></o:p></span></li></ul><p =
class=3DMsoNormal><span =
style=3D'mso-fareast-language:EN-US'>or<o:p></o:p></span></p><ul =
style=3D'margin-top:0cm' type=3Ddisc><li class=3DMsoNormal =
style=3D'mso-list:l1 level1 lfo2'><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>Create a feed with everything =
except the IDs and&nbsp;</span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>&lt;manifest-di=
gest&gt;</span><span lang=3DEN-US style=3D'mso-fareast-language:EN-US'>s =
and then run the following (only works on Windows):<br></span><span =
lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>0install run =
--command=3D0publish https://apps.0install.net/0install/0publish-win.xml =
--add-missing your-feed.xml<br></span><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>This will automatically download =
the&nbsp;</span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>&lt;file&gt;</s=
pan><span lang=3DEN-US style=3D'mso-fareast-language:EN-US'>s referenced =
in the feed and calculate and insert any missing&nbsp;</span><span =
lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>&lt;manifest-di=
gest&gt;</span><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>s.<o:p></o:p></span></li></ul><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>Implementation IDs can be anything, =
as long as they=E2=80=99re unique within the feed. But historically =
they=E2=80=99re usually set equal to the digest.<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>For a single executable =
</span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>&lt;file&gt;</s=
pan><span lang=3DEN-US style=3D'mso-fareast-language:EN-US'> the =
</span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>main=3D</span><=
span lang=3DEN-US style=3D'mso-fareast-language:EN-US'> attribute of the =
</span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>&lt;implementat=
ion&gt;</span><span lang=3DEN-US style=3D'mso-fareast-language:EN-US'> =
should match the </span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>&lt;file&gt;</s=
pan><span lang=3DEN-US style=3D'mso-fareast-language:EN-US'>=E2=80=99s =
</span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>dest=3D</span><=
span lang=3DEN-US style=3D'mso-fareast-language:EN-US'>. In your case =
that would be </span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>main=3D&quot;di=
renv&quot;</span><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'> instead of </span><span =
lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>main=3D&quot;./=
o/bins/v2.32.2/gnu/amd64/direnv&quot;</span><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>.<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>Basically </span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>&lt;file =
dest=3D&quot;direnv&quot; .../&gt;</span><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'> tells 0install to download the =
file and put it into the implementation directory under the name =
</span><span lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>direnv</span><s=
pan lang=3DEN-US style=3D'mso-fareast-language:EN-US'>. And </span><span =
lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>main=3D&quot;di=
renv&quot;</span><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'> tells 0install that to run that =
implementation it needs to look for a file named </span><span =
lang=3DEN-US =
style=3D'font-family:Consolas;mso-fareast-language:EN-US'>direnv</span><s=
pan lang=3DEN-US style=3D'mso-fareast-language:EN-US'> in the =
directory.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>Hope this helps. We definitely need =
to add some more comprehensive tutorials to the =
docs.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>Regards<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'>Bastian<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><div =
style=3D'border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm =
0cm 0cm'><p class=3DMsoNormal><b><span =
lang=3DEN-US>From:</span></b><span lang=3DEN-US> Laurence Taylor =
&lt;[email protected]&gt; <br><b>Sent:</b> 4<sup>th</sup> of April =
2023 16:39<br><b>To:</b> =
[email protected]<br><b>Subject:</b> =
[Zero-install-devel] Can't seem to get correct hash for binary =
download<o:p></o:p></span></p></div><p class=3DMsoNormal><span =
lang=3DEN-US><o:p>&nbsp;</o:p></span></p><div><div><p =
class=3DMsoNormal>Hi all.<o:p></o:p></p></div><div><p =
class=3DMsoNormal>I'm hoping to remove some of the pain in installing =
direnv on windows by using 0install, but it's distributed as a bare =
binary and I'm running into problems.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Show stopper being that the downloads made by 0install =
are consistently reporting a different hash to the curl + sha256sum =
thing I'm using to do the manifest-digest on the binary. =
<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal><span style=3D'font-family:"Courier New"'>info: =
0install 2.18 (OCaml version): verbose mode on<br>info: Missing =
selection of <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a>: &lt;implementation&gt; at =
/mnt/dat/i/prj/bertha/.local/bertha/o/var/0install/cache/interfaces/https=
%3a%2f%<a =
href=3D"http://2fraw.githubusercontent.com">2fraw.githubusercontent.com</=
a>%2fohmrun%2f0install_direnv%2fmain%2fDirenv.xml:22:152<br>info: =
Checking for GTK plugin at =
'/mnt/dat/i/prj/bertha/.local/bertha/o/os/linux/prg/0install/lib/0install=
-gtk/gui_gtk.cmxs'<br>info: Checking for GTK plugin at =
'/mnt/dat/i/prj/bertha/.local/bertha/o/os/linux/prg/0install/lib/<a =
href=3D"http://0install.net/gui_gtk.cmxs">0install.net/gui_gtk.cmxs</a>'<=
br>info: Initialising GTK GUI<br>info: Switching to GLib =
mainloop...<br>debug: download_icon <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a><br>info: No PNG icons found in <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a><br>debug: download_icon <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a><br>info: No PNG icons found in <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a><br>info: Starting download of feed '<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a>'<br>debug: download_and_import_feed <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a><br>debug: Download URL '<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml'.">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/=
Direnv.xml'.</a>.. (for <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a>)<br>debug: start_monitoring <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a><br>debug: Scheduling download of <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a><br>info: HTTP GET &quot;<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a>&quot;<br>debug: Checking for certificate file =
&quot;/etc/ssl/certs/ca-certificates.crt&quot;<br>info: Download '<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a>' completed successfully (2415 bytes)<br>info: Running =
GnuPG: /usr/bin/gpg --no-secmem-warning --batch --status-fd 1 =
--keyserver-options no-auto-key-retrieve --verify =
/tmp/0install-b37581-gpg -<br>debug: Updating '<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a>' from network; modified at 2023-04-04 16:16<br>debug: No =
change<br>info: Updated feed cache checked time for <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a> (modified 2023-04-04 16:16)<br>debug: stop_monitoring <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a><br>info: OK button =3D&gt; true<br>info: Missing selection =
of <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a>: &lt;implementation&gt; at <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml:22:152">https://raw.githubusercontent.com/ohmrun/0install_direnv/=
main/Direnv.xml:22:152</a><br>debug: download_impls: for <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a> get 2.32.2<br>debug: Download URL '<a =
href=3D"https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2=
/gnu/amd64/direnv'.">https://github.com/ohmrun/0install_direnv/raw/main/o=
/bins/v2.32.2/gnu/amd64/direnv'.</a>.. (for <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a>)<br>debug: start_monitoring <a =
href=3D"https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2=
/gnu/amd64/direnv">https://github.com/ohmrun/0install_direnv/raw/main/o/b=
ins/v2.32.2/gnu/amd64/direnv</a><br>debug: Scheduling download of <a =
href=3D"https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2=
/gnu/amd64/direnv">https://github.com/ohmrun/0install_direnv/raw/main/o/b=
ins/v2.32.2/gnu/amd64/direnv</a><br>info: HTTP GET &quot;<a =
href=3D"https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2=
/gnu/amd64/direnv">https://github.com/ohmrun/0install_direnv/raw/main/o/b=
ins/v2.32.2/gnu/amd64/direnv</a>&quot;<br>info: Redirect from '<a =
href=3D"https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2=
/gnu/amd64/direnv">https://github.com/ohmrun/0install_direnv/raw/main/o/b=
ins/v2.32.2/gnu/amd64/direnv</a>' to '<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/b=
ins/v2.32.2/gnu/amd64/direnv">https://raw.githubusercontent.com/ohmrun/0i=
nstall_direnv/main/o/bins/v2.32.2/gnu/amd64/direnv</a>' (<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/b=
ins/v2.32.2/gnu/amd64/direnv">https://raw.githubusercontent.com/ohmrun/0i=
nstall_direnv/main/o/bins/v2.32.2/gnu/amd64/direnv</a>)<br>debug: =
Scheduling download of <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/b=
ins/v2.32.2/gnu/amd64/direnv">https://raw.githubusercontent.com/ohmrun/0i=
nstall_direnv/main/o/bins/v2.32.2/gnu/amd64/direnv</a><br>info: HTTP GET =
&quot;<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/b=
ins/v2.32.2/gnu/amd64/direnv">https://raw.githubusercontent.com/ohmrun/0i=
nstall_direnv/main/o/bins/v2.32.2/gnu/amd64/direnv</a>&quot;<br>info: =
Download '<a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/o/b=
ins/v2.32.2/gnu/amd64/direnv">https://raw.githubusercontent.com/ohmrun/0i=
nstall_direnv/main/o/bins/v2.32.2/gnu/amd64/direnv</a>' completed =
successfully (8988761 bytes)<br>info: Removing temporary directory =
'/mnt/dat/i/prj/bertha/.local/bertha/o/var/0install/cache/implementations=
/tmp-2e3a418d'<br>info: OK button =3D&gt; false<br>info: Reporting error =
to user: Incorrect manifest -- archive is corrupted.<br>Required digest: =
sha256=3D43e7200746d526aec6f37e689dcced23d5e42cfac7022e301d6b37420d625663=
<br>Actual digest: =
sha256=3Def1810692d07fb818f121fae5032d69719e982c636e305ff11e3d8955fc5d1cc=
<br>... downloading implementation <a =
href=3D"https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Dir=
env.xml">https://raw.githubusercontent.com/ohmrun/0install_direnv/main/Di=
renv.xml</a> 2.32.2 (id=3D./o/bins/v2.32.2/gnu/amd64)<br>Raised at =
Zeroinstall__Fetch.fetcher#download_impls.(fun) in file =
&quot;src/zeroinstall/<a href=3D"http://fetch.ml">fetch.ml</a>&quot;, =
line 648, characters 10-21<br>Called from =
Lwt.Sequential_composition.bind.create_result_promise_and_callback_if_def=
erred.callback in file &quot;src/core/<a =
href=3D"http://lwt.ml">lwt.ml</a>&quot;, line 1849, characters =
23-26<br><br>debug: stop_monitoring <a =
href=3D"https://github.com/ohmrun/0install_direnv/raw/main/o/bins/v2.32.2=
/gnu/amd64/direnv">https://github.com/ohmrun/0install_direnv/raw/main/o/b=
ins/v2.32.2/gnu/amd64/direnv</a></span><o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>Still reading the docs but it's been confusing me the =
entire day so I thought I'd sent a note in.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>regards,<o:p></o:p></p></div><div><p =
class=3DMsoNormal>Loz<o:p></o:p></p></div></div></div></body></html>
------=_NextPart_000_000D_01D96718.559E1600--



--===============8363566850173681638==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============8363566850173681638==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Zero-install-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/zero-install-devel

--===============8363566850173681638==--