====== 2.1 Clonare il Repository GitHub ======
Questa pagina spiega come scaricare il codice sorgente OpenSSL da GitHub.
----
===== Cos'è Git? =====
**Git** è un sistema di controllo versione. Memorizza:
* Tutte le versioni di un progetto
* Chi ha cambiato cosa e quando
* "Tag" per versioni importanti (es. v3.6.0)
**GitHub** è un sito web che ospita repository Git.
----
===== Preparare la Struttura del Progetto =====
Prima creiamo una struttura di cartelle sensata:
# Creare la cartella principale
mkdir D:\Projects\openssl-3.6.0
# Creare le sottocartelle
mkdir D:\Projects\openssl-3.6.0\src # Qui va il codice sorgente
mkdir D:\Projects\openssl-3.6.0\bin # Qui vanno i file compilati
Risultato:
D:\Projects\openssl-3.6.0\
├── src\ # Codice sorgente OpenSSL (da GitHub)
└── bin\ # Destinazione per i binari compilati
----
===== Clonare OpenSSL =====
==== Opzione A: Solo tag v3.6.0 (consigliato) ====
cd D:\Projects\openssl-3.6.0
git clone --depth 1 --branch openssl-3.6.0 https://github.com/openssl/openssl.git src
**Spiegazione dei parametri:**
| Parametro | Significato |
|-----------|-------------|
| ''--depth 1'' | Solo l'ultima versione (risparmia ~500 MB!) |
| ''--branch openssl-3.6.0'' | Il tag per la versione 3.6.0 |
| ''src'' | Cartella di destinazione |
==== Opzione B: Repository completo ====
Se volete provare versioni diverse:
cd D:\Projects\openssl-3.6.0
git clone https://github.com/openssl/openssl.git src
cd src
git checkout openssl-3.6.0
Il repository completo è circa 500 MB. Con ''--depth 1'' solo ~50 MB.
----
===== Verificare la Versione =====
cd D:\Projects\openssl-3.6.0\src
# Mostrare il tag corrente
git describe --tags
# Output atteso: openssl-3.6.0
# Oppure: Mostrare info commit
git log -1 --oneline
----
===== Problemi Comuni =====
==== "git is not recognized" ====
Git non è installato o non è nel PATH:
winget install Git.Git
Dopo l'installazione: Aprire un nuovo terminale.
==== Il firewall blocca GitHub ====
Se siete dietro un firewall aziendale:
# Impostare il proxy (se necessario)
git config --global http.proxy http://proxy.azienda.it:8080
git config --global https.proxy http://proxy.azienda.it:8080
----
===== Continua con =====
* [[.:build:start|3. Compilazione]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//