Skip to main content

gnutls_handshake() failed GIT Clone [Solution]

If you are facing error like "curl 56 GnuTLS recv error" while cloning a git repository, it is a "gnutls_handshake()" error.

Error: RPC failed; curl 56 GnuTLS recv error (-24): Decryption has failed

 

Solution

Rebuilding git with openssl

Follow the steps given below:

1. Install build-essential, fakeroot and dpkg-dev using the following command.

sudo apt-get install build-essential fakeroot dpkg-dev

2. Create a directory named git-rectify in the home folder using the following command.

mkdir ~/git-rectify


3. CD in to the get-rectify directory and get the git source files.

cd ~/git-rectify
apt-get source git


4. Install all the git dependencies.

sudo apt-get build-dep git

5. Install libcurl with all development files.

sudo apt-get install libcurl4-openssl-dev

 

6. Unpack all the source packages using the following command.

Note: The name “git_2.34.1-1ubuntu1.9” could vary based on the lastest version. So look in to the directory for the correct version name.

dpkg-source -x git_2.34.1-1ubuntu1.9

7. Cd in to “git_2.34.1” folder and open the control file located inside debian folder (git_2.34.1/debian/control) in a text editor. Replace all the occurences of “libcurl4-gnutls-dev” to “libcurl4-openssl-dev”. Also open “debian/rules” file and delete the line “TEST=test”

8. Build the package files using the following command.

sudo dpkg-buildpackage -rfakeroot -b


9. Install the new git package by executing the folling command.

Note: The package name is based on the system architecture. So have a look at the package name located in “git_2.34.1” (could be a different name for you) folder.

sudo dpkg -i git_2.34.1-1ubuntu1.9_amd64.deb

 


Comments

Popular posts from this blog

Use Case Diagram for Online Book Store

Online Movie Ticket Booking Sequence Diagram

Linear search & Binary search using Template

Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions. #include<iostream> using namespace std; template <class T> void Lsearch(T *a, T item, int n) { int z=0; for(int i=0;i<n;i++) { if(a[i]== item) { z=1; cout<<"\n Item found at position = "<<i+1<<"\n\n"; } else if(z!=1) { z=0; } } if(z==0) cout<<"\n Item not found in the list\n\n"; } template <class T> void Bsearch(T *a, T item, int n) { int beg=0,end=n-1; int mid=beg+end/2; while((a[mid]!=item) && (n>0)) { if(item>a[mid]) beg=mid; else end=mid; mid=(beg+end)/2; n--; } if(a[mid]==item) cout<<"\n Item found at position = "<<mid+1<<"\n\n"; else cout<<"\n Item not found in the list\n\n"; } void main() { int iarr[10] = {2,42,56,86,87,99,323,546,767,886};