====== 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//