Ebben a leírásban található lépéseket kell végrehajtani ahhoz, hogy a LibreOffice kódjában végzett módosításodat beküldhesd, hogy az automatikus ellenőrzés megtörténjen, és ha azok sikeresek, akkor a senior programozók rábólinthassanak, és csak azt követően kerülhet bele a LibreOffice kódjába véglegesen, amit már a világon mindenki használhat a következő verziótól kezdve, aki csak letölti a LibreOffice-t.
Ez a leírás nem tartalmazza a patch (módosítás) beküldését (commitolását és pusholását), csak annak az előfeltételeit teremti meg.
Ha valamelyik pontnál elakadsz, ezek áttanulmányozása segíthet:
http://math.bme.hu/~balazs/git/gitcml.html
https://wiki.documentfoundation.org/Development/Git_For_LibreOffice_Developers
https://wiki.documentfoundation.org/Development/gerrit
-1. Jogi nyilatkozat
Ezt a szöveget levélben el kell küldeni...
All of my past & future contributions to LibreOffice may be licensed under the MPLv2/LGPLv3+ dual license.
...a levél témája legyen...
<your name> license statement
...erre az email címre:
libreoffice[kukac]lists.freedesktop.org
(forrás)
0. LibreOffice letöltése
Hozz létre egy könyvtárat (mappát) a LibreOfficenak valahol.
Parancssorban (Linuxon valamilyen terminálban, Windowson pl. cygwinben) lépj be ebbe a mappába, majd futtasd a következő parancsot:
git clone https://gerrit.libreoffice.org/core libreoffice
Néhány megjegyzés:
- az 5. pontig tartó lépések a -1. és 0. lépés előtt is elvégezhetők
- nem kell git init parancsot futtatni a git clone után
- az itt felsorolt lépésekhez elég csak a git clone parancs futtatása, nem kell elindítani az autogen.sh-t és a fordítást, az nyilván csak ahhoz kell, ha szeretnéd kipróbálni, hogy amit módosítottál a kódban, az hogyan működik
- a fordítás részletesebb kifejtése egy másik leírásban található
1. git regisztráció
(Mi az a git? Verziókezelő. Az egyes fejlesztők/közreműködők által végzett módosításokat tárolja / tartja nyilván.
Útmutató videók: [1] [2])
2. gerrit regisztráció
https://gerrit.libreoffice.org
Töltsd ki a következőket is: felhasználónév (szóközt és ékezetet ne tartalmazzon, példa: adamkovacs), név (példa: Adam Kovacs), emailcím (példa: valami@valami.com)
(Ezek a "Profile" és "Contact information" menüpontoknál találhatók).
(Mi az a gerrit? A git kiegészítése, kényelmesítése. Webes felületen tekinthetők át a beküldött módosítások (patchek) fájljai, üzenetei, valamint a módosításokhoz tartozó automatikus tesztek eredményei, a senior programozók megjegyzései, és az, hogy mergelve lett-e a beadott patch, satöbbi).
3. ssh kulcs létrehozása
Linux:
ssh-keygen -C 'sajat@email.cim'
Windows:
ssh-keygen.exe -C 'sajat@email.cim'
A parancs futtatását követően célszerű egy jelszót is megadni, hogyha valaki mégis hozzáfér a parancs által generált fájlokhoz, ne tudjon pl. a nevedben commitolni.
(A jelszóra majd például a ./logerrit submit master parancs futtatásánál lesz szükség).
4. ssh publikus kulcs bemásolása gerritbe
A ~/.ssh/ mappában található id_rsa.pub fájl teljes tartalmát másold be gerritbe a SSH Public Keys menüpontot kiválasztva.
5. ~/.ssh/ mappában hozz létre egy config nevű fájlt ilyesmi tartalommal:
Host logerrit gerrit.libreoffice.org
IdentityFile ~/.ssh/id_rsa
User gerritesfelhasznalonev
Port 29418
HostName gerrit.libreoffice.org
(Előfordulhat, hogy a 22-es (ssh) port le van tiltva egyes munkahelyeken vagy publikus hálózatokon).
5a.
A ~/.ssh/ mappában a következő parancs futtatása szükséges lehet:
chmod 600 config
Ezzel írási és olvasási (4 + 2) jogot állítasz be a saját felhasználónevedre nézve, és semmilyen jogot (0) a csoportodra és a külvilágra nézve.
6.
Állítsd be a helyi git repóban a felhasználónevet és email címet a gerritben beállítottakkal megegyezően, a következő parancsokkal, a LibreOffice mappájába belépve:
git config --global user.name "Sajat Nev"
git config --global user.email "sajat@email.cim"
A git config --list paranccsal lehet lekérni a jelenleg érvényes beállításokat. Ha ezek között nem szerepel név és email cím, akkor még nem állítottunk be semmit. De A git config user.name és a git config user.email parancsokkal erről egyértelműbben meggyőződhetünk.
6a.
A LibreOffice mappájában lévő .git mappában lévő config nevű fájlnak valahogy így kell kinéznie:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = ssh://felhasznalonev@gerrit.libreoffice.org:29418/core
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[user]
name = Gerriten Megadott Nev
email = gerriten_megadott_email_cim
[submodule "dictionaries"]
active = true
url = ssh://felhasznalonev@gerrit.libreoffice.org:29418/dictionaries
ignore = all
[submodule "helpcontent2"]
active = true
url = ssh://felhasznalonev@gerrit.libreoffice.org:29418/help
ignore = all
[submodule "translations"]
active = true
url = ssh://felhasznalonev@gerrit.libreoffice.org:29418/translations
ignore = all
Előfordulhat, hogy a fentebbi parancsok nem módosítottak semmit ebben a fájlban, ekkor vagy kézzel írd át a fájlt, vagy pedig lépj be a fájlt tartalmazó mappába és ott add ki ezt a parancsot:
chmod 600 config
Majd próbáld újra az előző pontban leírtakat.
6b.
Érdemes átállítani az alapértelmezett szövegszerkesztőt nanóra vagy mceditre, ha valaki nem szereti a vi-t.
A következő parancs futtatásával:
git config --global core.editor nano
Ezt követően a git commit parancs futtatása után nem a vi jön be, hanem a nano.
7. gerrit teszt
A következő parancsoknak sikeresen futniuk kéne:
./logerrit test
ssh -vvvv logerrit
Ha nem futnak le sikeresen, jó eséllyel informatívan tájékoztatnak a hibáról, esetleg arról, hogy milyen parancsokat kéne még futtatni.
Ha mégsem, akkor érdemes a fenti linkeket tanulmányozni.