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

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};...

Occurrences of each letter of alphabet in the text

Program to print a table indicating the no. of occurrences of each letter of alphabet in the text entered as command line arguments. #include<iostream> #include<string> using namespace std; int main(int argc, char *argv[]) { string str=""; static int alphabet[26]; int x; cout<<"\n\n Command-Line Argument\n"; for(int i=0;i<argc;i++) { cout<<"\n "<<argv[i]; str+=argv[i]; } for(int i=0;i<str.length();i++) { if(str[i]>='A' && str[i]<='Z') { x=((int)str[i])-65; alphabet[x]++; } else if(str[i]>='a' && str[i]<='z') { x=((int)str[i])-97; alphabet[x]++; } } //Displaying No. of occurrences of each alphabets in the command line argument cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n Alphabet No. of Occurrences\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"; for(int i=0;i<26;i++)...