====== 2.1 Kloniranje iz GitHub ======
Ta stran razloži, kako prenesti izvorno kodo OpenSSL iz GitHub.
----
===== Kaj je Git? =====
**Git** je sistem za nadzor različic. Shranjuje:
* Vse različice projekta
* Kdo je kaj kdaj spremenil
* "Oznake" za pomembne različice (npr. v3.6.0)
**GitHub** je spletna stran, ki gosti Git repozitorije.
----
===== Priprava strukture projekta =====
Najprej ustvarimo smiselno strukturo map:
# Ustvarjanje glavne mape
mkdir D:\Projects\openssl-3.6.0
# Ustvarjanje podmap
mkdir D:\Projects\openssl-3.6.0\src # Sem pride izvorna koda
mkdir D:\Projects\openssl-3.6.0\bin # Sem pridejo prevedene datoteke
Rezultat:
D:\Projects\openssl-3.6.0\
├── src\ # Izvorna koda OpenSSL (iz GitHub)
└── bin\ # Cilj za prevedene datoteke
----
===== Kloniranje OpenSSL =====
==== Možnost A: Samo oznaka v3.6.0 (priporočeno) ====
cd D:\Projects\openssl-3.6.0
git clone --depth 1 --branch openssl-3.6.0 https://github.com/openssl/openssl.git src
**Razlaga parametrov:**
| Parameter | Pomen |
|-----------|-------|
| ''--depth 1'' | Samo najnovejša različica (prihrani ~500 MB!) |
| ''--branch openssl-3.6.0'' | Oznaka za različico 3.6.0 |
| ''src'' | Ciljna mapa |
==== Možnost B: Celoten repozitorij ====
Če želite preizkusiti različne različice:
cd D:\Projects\openssl-3.6.0
git clone https://github.com/openssl/openssl.git src
cd src
git checkout openssl-3.6.0
Celoten repozitorij je približno 500 MB velik. Z ''--depth 1'' samo ~50 MB.
----
===== Seznam razpoložljivih oznak =====
Če potrebujete drugo različico:
cd D:\Projects\openssl-3.6.0\src
# Prikaz vseh oznak
git tag | Select-String "openssl-3"
# Izpis (primer):
# openssl-3.0.0
# openssl-3.0.1
# ...
# openssl-3.5.0
# openssl-3.6.0
----
===== Preklop na drugo oznako =====
cd D:\Projects\openssl-3.6.0\src
# Preklop na drugo različico
git checkout openssl-3.5.0
# Nazaj na 3.6.0
git checkout openssl-3.6.0
----
===== Preverjanje različice =====
cd D:\Projects\openssl-3.6.0\src
# Prikaz trenutne oznake
git describe --tags
# Pričakovani izpis: openssl-3.6.0
# Ali: Prikaz informacij o potrditvi
git log -1 --oneline
----
===== Posodabljanje izvorne kode =====
Če imate celoten repozitorij in želite posodobiti:
cd D:\Projects\openssl-3.6.0\src
# Pridobitev najnovejših sprememb
git fetch --all --tags
# Prikaz novih oznak
git tag | Select-String "openssl-3.6"
# Preklop na novo oznako (npr. 3.6.1)
git checkout openssl-3.6.1
----
===== Pogoste težave =====
==== "git ni prepoznan" ====
Git ni nameščen ali ni v PATH:
winget install Git.Git
Po namestitvi: Odprite nov terminal.
==== Požarni zid blokira GitHub ====
Če ste za korporativnim požarnim zidom:
# Nastavitev proxyja (če je potrebno)
git config --global http.proxy http://proxy.podjetje.si:8080
git config --global https.proxy http://proxy.podjetje.si:8080
==== Napaka SSL certifikata ====
# Začasno: Onemogočanje preverjanja SSL (ne za produkcijo!)
git config --global http.sslVerify false
----
===== Prenos brez Git (alternativa) =====
Če Git ni na voljo:
- Pojdite na [[https://github.com/openssl/openssl/releases]]
- Izberite različico 3.6.0
- Prenesite "Source code (zip)"
- Razpakirajte v ''D:\Projects\openssl-3.6.0\src''
**Slabost:** Enostavno posodabljanje ni mogoče!
----
===== Naprej na =====
* [[wvds:sl:openssl:build:start|3. Gradnja - Prevajanje]]
* [[wvds:sl:openssl:quellen:verzeichnisstruktur|Razumevanje strukture imenikov]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//