Bug#835342: curl or git clone commands throws "gnutls_handshake() failed" on https targets

Andreas Metzler ametzler at bebt.de
Tue Sep 13 17:50:55 UTC 2016


On 2016-09-13 "marcelomendes at gmail.com" <marcelomendes at gmail.com> wrote:
> 2016-09-03 1:51 GMT-04:00 Andreas Metzler <ametzler at bebt.de>:
{git bisect]
> > Any specific difficulties I could help you with there?

> Never used git bisect before, so I don't know how much time until I
> figure out how it works and give you proper feedback.

In essence you tell git that revision  #50 worked and #100 didn't. Then
git checks out #75 for you to test. Depending on whether #75 was already
broken it then moves on to let you check either #62 or #87, continously
narrowing down the suspect subset and after ten tries or so you know
which commit broke.

> Today 13/09 I noticed a new version of gnutls-bin and libgnutls30 (3.5.4-2)

> Tried to do a "vagrant box update" to update my boxes and got the same
> little error, now from vagrant:
[...]
> sudo dpkg -i libgnutls30_3.5.2-3_amd64.deb gnutls-bin_3.5.2-3_amd64.deb
[...]
> And everything works as expected with vagrant, git, curl, etc.

In short you need this:

sudo apt-get install gperf build-essential
sudo apt-get build-dep gnutls28
ametzler at argenau:~$ mkdir /tmp/GNUTLS
ametzler at argenau:~$ cd /tmp/GNUTLS
ametzler at argenau:/tmp/GNUTLS$ git clone git://gitlab.com/gnutls/gnutls.git
ametzler at argenau:/tmp/GNUTLS$ cd gnutls
ametzler at argenau:/tmp/GNUTLS/gnutls$ git submodule update --init
[... wait ... ]
ametzler at argenau:/tmp/GNUTLS/gnutls$ git bisect start
ametzler at argenau:/tmp/GNUTLS/gnutls$ git bisect good gnutls_3_5_2
ametzler at argenau:/tmp/GNUTLS/gnutls$ git bisect bad gnutls_3_5_3
Bisecting: 75 revisions left to test after this (roughly 6 steps)
[72650a09530d5e62a6e6aa5aae4e74955ff1b384] doc: added section on reducing round-trips
ametzler at argenau:/tmp/GNUTLS/gnutls$ make bootstrap && ./configure && make -j4 ; echo build-exit $?
ametzler at argenau:/tmp/GNUTLS/gnutls$ git clean -f -x &&  git clean -d -x -f

Now you have got a freshly built gnutls library in
/tmp/GNUTLS/gnutls/lib/.libs and can run your test:

ametzler at argenau:/some/directory$ env LD_LIBRARY_PATH=/tmp/GNUTLS/gnutls/lib/.libs some-failing-command

Then you tell git about the test result:
success -> git bisect good
error -> git bisect bad
clean the repo 
ametzler at argenau:/tmp/GNUTLS/gnutls$ git clean -f -x &&  git clean -d -x -f
and start the build again (at make bootstrap).

If the repository contains a broken commit that does not even compile
you can jump to the next one with "git bisect skip".

cu Andreas
-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'



More information about the Pkg-gnutls-maint mailing list