LibreOffice fejlesztés

Fejlesztői LibreOffice letöltése és telepítése Windowson

2018. december 04. - christo161

Ez a leírás tartalmazza azokat a lépéseket, amik ahhoz szükségesek, hogy Windowson 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.

(Hiba esetén ezeknek az áttanulmányozása segíthet:
https://wiki.documentfoundation.org/Development/BuildingOnWindows )

1. Visual Studio community verzió (ingyenes) letöltése és telepítése

https://visualstudio.microsoft.com/downloads/

1a. Ezek bepipálása a Visual Studioban telepítéskor

C++ compiler
Windows SDK 10
UCRT library
Visual C++ ATL for x86 and x64
.NET Framework SDK

2. openJDK letöltése és telepítése

https://openjdk.java.net/install/
https://jdk.java.net/11/
https://download.java.net/java/GA/jdk11/13/GPL/openjdk-11.0.1_windows-x64_bin.zip

3. cygwin letöltése és telepítése

https://cygwin.com/install.html

3a. cygwinhez a következők telepítése

A cmdben lépj be a cygwin telepítőjét tartalmazó könyvtárba, például:

cd c:\Users\felhasznalonev\Desktop\

...és ott futtasd a következő parancsot:

setup-x86_64.exe -P autoconf -P automake -P bison -P cabextract -P doxygen -P flex -P gcc-g++ ^
-P gettext-devel git -P gnupg -P gperf -P make -P mintty ^
-P nasm -P openssh -P openssl -P patch -P perl -P python -P python3 ^
-P pkg-config -P rsync -P unzip -P vim -P wget -P zip -P perl-Archive-Zip ^
-P perl-Font-TTF -P perl-IO-String

(Ez a parancs különböző függőségeket (csomagokat, programokat) telepít, amik a LibreOffice fordításához szükségesek).

Ha később új programokat / csomagokat szeretnél cygwinbe telepíteni, akkor úgy is megteheted, hogy újra elindítod a telepítőfájlt, és amikor ki lehet választani a programokat egy listából, rákeresel a megfelelő névre (pl. nano, mc, wdiff), és a legördülő listában a pendinget átállítod fullra.

4. junit és ant letöltése

(Innentől kezdve minden parancsot cygwinbe futtass).

mkdir -p /cygdrive/c/sources
cd /cygdrive/c/sources
wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.5-bin.tar.bz2
tar -xjvf apache-ant-1.9.5-bin.tar.bz2
wget http://downloads.sourceforge.net/project/junit/junit/4.10/junit-4.10.jar

(Ezek a parancsok a c:\sources mappába töltik le a jutitot és az antot. Az ant elérési útja pl. ilyesmi lesz: c:\sources\apache-ant-1.9.5 , amit majd az autogen.inputban később meg kell adni.)

5. make letöltése

mkdir -p /opt/lo/bin
cd /opt/lo/bin
wget http://dev-www.libreoffice.org/bin/cygwin/make-4.2.1-msvc.exe
mv make-4.2.1-msvc.exe make
chmod a+x make

(Később ezzel lehet majd a tényleges fordítást elindítani).

6. LibreOffice forrásfájljainak letöltése

Hozz létre valahol (pl. a saját könyvtáradban) egy könyvtárat a LibreOfficenak:

mkdir ~/libreoffice

Lépj be ebbe a könyvtárba:

cd ~/libreoffice

Ez a parancs az aktuális könyvtárba tölti le a forrásfájlokat (a . az aktuális könyvtár jele):

git clone git://gerrit.libreoffice.org/core .

Ha nincs paraméterként megadva az aktuális könyvtár, akkor létre fog hozni egy core könyvtárat, és abba tölti le a fájlokat.

Egy másik példa, ez a parancs pedig az aktuális könyvtárban létrehoz egy libreoffice nevű könyvtárat, és a libreoffice forráskódját ebbe az újonnan létrehozott könyvtárba tölti le:

git clone git://gerrit.libreoffice.org/core libreoffice

Letöltési hiba esetén esetleg meg lehet próbálni a git://-t https://-re cserélni.

7. autogen.input szerkesztése

A LibreOffice mappájában hozz létre egy fájlt autogen.input néven, a következő tartalommal:

--enable-64-bit
--enable-debug
--with-visual-studio=2017
--with-windows-sdk=10.0
--with-ant-home=/cygdrive/c/cygwin64/source/apache-ant-1.9.5
--with-jdk-home=/cygdrive/c/Program Files (x86)/ojdkbuild/java-1.8.0-openjdk-1.8.0.181-1 
--without-junit
--without-helppack-integration
--enable-extension-integration
--enable-scripting-beanshell
--enable-scripting-javascript
--disable-ext-wiki-publisher
--disable-ext-nlpsolver
--disable-online-update
--enable-breakpad
--disable-odk
--disable-gtk
--with-myspell-dicts
--enable-mergelibs
--enable-pch
--disable-ccache
--disable-firebird-sdbc

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.

8. Futtasd az autogen.sh-t a LibreOffice könyvtárába lépve:

cd ~/libreoffice
./autogen.sh

9. Futtasd a make-t a LibreOffice könyvtárába lépve (ez a tényleges fordítás):

cd ~/libreoffice
/opt/lo/bin/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:

/opt/lo/bin/make build-nocheck

Egyéb:
Ha elfelejtettél az autogen.inputba belerakni egy adott opciót, például az --enable-debug-ot, akkor ha belerakod, és újra futtatod az autogen.sh-t és a make-et, az már nem generálja újra a már meglévő fájlokat, tehát nem érvényesül az új beállítás.
Ekkor először egy make clean-t kell futtatni, majd újra egy maket:

/opt/lo/bin/make clean
/opt/lo/bin/make

(Az utóbbit természetesen lehet build-nocheck paraméterrel futtatni).

10. 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:

/opt/lo/bin/make sw
/opt/lo/bin/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.

A bejegyzés trackback címe:

https://libreoffice.blog.hu/api/trackback/id/tr9414428598

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.