Ez a leírás tartalmazza azokat a lépéseket, amik ahhoz szükségesek, hogy Linuxon letöltsd és fordítsd a LibreOffice forráskódját. A letöltött forráskódot természetesen módosíthatod, és ha lefordítod, a fordítás után ki is próbálhatod, hogy jól működik-e a benne végzett módosításod.
Ebben a leírásban az apt csomagkezelő frontenddel rendelkező Linux disztribúciókat (jellemzően Debian és Ubuntu alapú disztribúciók) vettem alapul. Aki nem ezeket a disztribúciókat használja, apt-get install és hasonló parancsok helyett mást kell futtatni. Ebben az egy bekezdéssel lentebbi linkek is segítséget nyújtanak.
(Hiba esetén ezeknek az áttanulmányozása segíthet:
https://wiki.documentfoundation.org/Development/Linux_Build_Dependencies
https://wiki.documentfoundation.org/Development/BuildingOnLinux )
Internetkapcsolat szükséges a fordítás alatt is (build-nocheck parancsot követően).
1. Néhány szükséges program és csomag telepítése:
Nyiss meg egy terminált (Ubuntuban ctr + alt + t), majd ott futtasd ezt a parancsot:
sudo apt-get install git gstreamer1.0-libav libkrb5-dev nasm graphviz ccache
Majd írd be a felhasználónevedhez tartozó jelszót. (Ha nincs rendszergazda jogosultságod, akkor Linuxon nem tudsz telepíteni).
2. Frissítéskezelő forrásának megadása:
Ebbe a fájlba...
/etc/apt/sources.list
..ha még nincs, akkor új sorba valami ilyesmit kell beleírni (ezek közül csak egyet)...
...PÉLDÁUL 9-es verziójú Debian esetén:
deb-src http://http.debian.net/debian/ stretch main
...PÉLDÁUL 16.04-es verziójú Ubuntu esetén:
deb-src http://archive.ubuntu.com/ubuntu/ xenial main
...PÉLDÁUL 18.04-es verziójú ubuntu esetén:
deb-src http://archive.ubuntu.com/ubuntu/ bionic main
Fájl szerkesztése ezen parancsok valamelyikével:
sudo nano /etc/apt/sources.list
sudo gedit /etc/apt/sources.list
Nano esetén a kilépés és mentés: ctrl + x, aztán y billentyű, aztán enter
Hogy pontosan milyen verziójú és kódnevű az adott Linux, azt az uname -a és az lsb_release -a parancsok futtatásával deríthetjük ki.
3. Elérhető frissítések letöltése:
sudo apt-get update
4. Előfeltételek telepítése:
sudo apt-get build-dep libreoffice
5. LibreOffice forráskódjának letöltése:
Hozz létre valahol egy új könyvtárat a LibreOfficenak. Pl. a saját könyvtáradban (ahová a cd vagy cd ~ parancsokkal léphetsz be).
mkdir libreoffice
Lépj be ebbe a könyvtárba és ott futtasd ezt a parancsot:
git clone git://gerrit.libreoffice.org/core libreoffice
6. Kapcsolók beállítása az autogen.input fájlba
Hozz létre a LibreOffice könyvtárában egy autogen.input fájlt.
Ezzel a tartalommal:
--without-system-postgresql
--without-junit
--without-java
--without-help
--without-doxygen
--disable-gtk3
--disable-odk
--disable-gstreamer-1-0
--disable-firebird-sdbc
--with-lang=hu en-US
--with-myspell-dicts
--enable-debug
--with-referenced-git=/home/linuxosfelhasznalonev/libreoffice/core
--with-external-tar=/home/linuxosfelhasznalonev/libreoffice/core/external/tarballs
Esetleg ezek is kellhetnek:
--without-krb5
--without-gssapi
Ha szükség van még valamilyen beállításra az autogen.input fájban, akkor az ./autogen.sh --help paranccsal listázhatjuk ki az összes lehetséges beállítást.
6a.
Többmagos procihoz esetleg ez is kellhet:
--with-paralellism=4
Megjegyzés: ha ezek közül kihagyunk valamit, pl. az --enable-debug sort, majd lefuttatjuk a fordítást, azt követően ha beleírjuk a kihagyott sort az autogen.inputba, egy újabb fordítás nem fogja kicserélni a már meglévő fájlokat. Ha azt szeretnénk, hogy az újonnan belerakott sor is érvényes legyen az újabb forításnál, akkor a régi fordítás eredményét törölnünk kell a make clean paranccsal.
7.
LibreOffice könyvtárában futtasd az autogen.sh-t:
./autogen.sh
8. Tényleges fordítás indítása:
LibreOffice könyvtárában:
make
Ha unit tesztek nélkül szeretnéd fordítani (tehát ha nem szeretnéd ellenőrízni, hogy amit módosítottál a forráskódban, regressziót okoz-e, azaz elront-e más dolgokat), akkor használd a build-nocheck paramétert:
make build-nocheck
9. A fejlesztői LibreOffice futtatása:
Ha a fordítás kész, így lehet indítani a LibreOffice könyvtárából:
./instdir/program/soffice
./instdir/program/soffice --writer
./instdir/program/soffice --calc
Ekkor a parancssorba sok információ kiíródik a LibreOffice futtatása közben. Ezeket így kapcsolhatjuk ki. Ezt követően csak a SAL_DEBUG( "valami erteke: " << valami ); típusú értékek lesznek kiírva a parancssorba (már ha elhelyeztünk ilyeneket a kódban valahol).
SAL_LOG=-INFO instdir/program/soffice
Ha csak konvertálni akarunk egy fájlt (pl. export hibák javítása esetén), azt így tehetjük meg. Ekkor az átkonvertált fájl a LibreOffice könyvtárában jön létre (célszerű ezért a konvertálandó fájlokat nem a LibreOffice könyvtárában elhelyezni, nehogy összekeveredjenek a már átkonvertált fájlokkal).
SAL_LOG=-INFO instdir/program/soffice --convert-to docx ../chart_borderline.docx
Kiegészítő információk
Ha lefutott a fordítás, majd módosítjuk valamelyik forrásfájl tartalmát, elindítjuk újra a fordítást, akkor nyilván nem fog lefordulni az egész projekt nulláról (kivéve ha futtatjuk a make clean parancsot), hanem csak az fordul újra, amit módosítottunk, ez pedig lényeges időmegtakarítás.
Ha az autogen.input-ba elfelejtünk beleírni egy beállítást, de már megtörtént a fordítás, akkor nem elég beleírni és újra elindítani a fordítást, hanem make clean-t is kell futtatni előtte.
Például ha --enable-debug nélkül történt meg a fordítás, akkor írjuk bele az --enable-debug-ot az autogen.input fájlba, futtassunk make clean-t, majd make-t vagy make build-nocheck-et.
Modulonként is lehet fordítani:
make sw
make build-nocheck sw
Néhány modul jelentése:
sw: szövegszerkesztő (writer, régebben starwriter)
sc: táblázatkezelő (calc)
sd: prezentációkészítő (impress/draw)
dbaccess: adatbáziskezelő (base)
starmath: képletszerkesztő (formula editor)
oox: Office Open XML szabványú fájlok (docx, xlsx, pptx, ...) importjára és exportjára vonatkozó forrásfájlok
chart2: diagramok kezelésére vonatkozó forrásfájlok
További modulok jelentését lásd itt.