Verinice/Kompilieren: Unterschied zwischen den Versionen
(17 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Vernice kompilieren''' - Client, Update-Site und Server für Linux, Mac und Windows | '''Vernice kompilieren''' - Client, Update-Site und Server für Linux, Mac und Windows | ||
== | === Umgebung === | ||
== | |||
'''Betriebssystem''' | '''Betriebssystem''' | ||
$ '''cat /etc/os-release''' | $ '''cat /etc/os-release''' | ||
Zeile 36: | Zeile 35: | ||
openjdk-20 | openjdk-20 | ||
== Quellen bereitstellen == | === Quellen bereitstellen === | ||
$ '''cd /usr/src''' | $ '''cd /usr/src''' | ||
$ '''<nowiki>git clone https://github.com/SerNet/verinice</nowiki>''' | $ '''<nowiki>git clone https://github.com/SerNet/verinice</nowiki>''' | ||
Zeile 50: | Zeile 49: | ||
; Basisverzeichnis | ; Basisverzeichnis | ||
$ '''ls /usr/srv/verinice''' | $ '''ls /usr/srv/verinice''' | ||
bouncycastle | bouncycastle sernet.birt.feature sernet.thirdparty.feature | ||
CODINGSTYLE.md | CODINGSTYLE.md sernet.client.service sernet.verinice.app.feature | ||
COPYRIGHT.md | COPYRIGHT.md sernet.client.service.handlerrights sernet.verinice.bp.importer | ||
dependencies | dependencies sernet.datatools.feature sernet.verinice.desktop.integration | ||
doc | doc sernet.eclipse.feature sernet.verinice.extraresources.feature | ||
gnumail | gnumail sernet.gs.db.fragment sernet.verinice.extraresources.jre_linux_64 | ||
gui-test-runner | gui-test-runner sernet.gs.ehcache.fragment sernet.verinice.extraresources.jre_macos_64 | ||
jbpm | jbpm sernet.gs.hibernate.fragment sernet.verinice.extraresources.jre_win_64 | ||
Jenkinsfile | Jenkinsfile sernet.gs.log4j.fragment sernet.verinice.fei.rcp | ||
Jenkinsfile.nightly | Jenkinsfile.nightly sernet.gs.pax_web.fragment sernet.verinice.fei.service | ||
Jenkinsfile.rcptt-all-report-tests | Jenkinsfile.rcptt-all-report-tests sernet.gs.reveng sernet.verinice.kerberos | ||
Jenkinsfile.rcptt-client-performance-test | Jenkinsfile.rcptt-client-performance-test sernet.gs.server sernet.verinice.lang.feature | ||
Jenkinsfile.rcptt-client-test | Jenkinsfile.rcptt-client-test sernet.gs.server.feature sernet.verinice.oda.driver | ||
Jenkinsfile.rcptt-product-report-test | Jenkinsfile.rcptt-product-report-test sernet.gs.server.tests '''sernet.verinice.releng.client.product''' | ||
Jenkinsfile.rcptt-server-performance-test | Jenkinsfile.rcptt-server-performance-test sernet.gs.service sernet.verinice.releng.server.product | ||
Jenkinsfile.server-rcptt-test | Jenkinsfile.server-rcptt-test sernet.gs.service.tests sernet.verinice.report.service | ||
LICENSE | LICENSE sernet.gs.springweb.fragment sernet.verinice.samt.rcp | ||
mvnw | mvnw sernet.gs.ui.rcp.main sernet.verinice.samt.service | ||
mvnw.cmd | mvnw.cmd sernet.gs.ui.rcp.main.tests target-platform | ||
notes | notes sernet.hui.common TCOracle.pdf | ||
org.eclipse.e4.rcp.sernet | org.eclipse.e4.rcp.sernet sernet.hui.swtclient verinice-distribution | ||
pom.xml | pom.xml sernet.localdependencies verinice-gui-tests | ||
README.md | README.md sernet.rcp.ui.feature waffle | ||
SECURITY.md | SECURITY.md sernet.springclient | ||
=== Java integrieren === | ==== Java integrieren ==== | ||
; | ; [[JRE]] integrieren | ||
sernet.verinice.extraresources.feature/linux/jre | sernet.verinice.extraresources.feature/linux/jre | ||
sernet.verinice.extraresources.feature/windows/jre | sernet.verinice.extraresources.feature/windows/jre | ||
sernet.verinice.extraresources.feature/macos/jre | sernet.verinice.extraresources.feature/macos/jre | ||
; Erforderlich macOS-Builds | ; Erforderlich für macOS-Builds | ||
* Es ist | * Es ist [https://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html best practice], eine JRE in einen Application.app Ordner zu packen. | ||
* Um eine gültige verinice.app zu erhalten, muss daher eine geeignete macOS JRE in sernet.thirdparty.feature/macos vorhanden sein. | * Um eine gültige verinice.app zu erhalten, muss daher eine geeignete macOS JRE in sernet.thirdparty.feature/macos vorhanden sein. | ||
==== Linux ==== | ===== Linux ===== | ||
$ '''mkdir -p sernet.verinice.extraresources.jre_linux_64/jre ''' | $ '''mkdir -p sernet.verinice.extraresources.jre_linux_64/jre ''' | ||
$ '''cp -Lr $JAVA_HOME* sernet.verinice.extraresources.jre_linux_64/jre/''' | $ '''cp -Lr $JAVA_HOME* sernet.verinice.extraresources.jre_linux_64/jre/''' | ||
$ '''ls sernet.verinice.extraresources.jre_linux_64/jre''' | $ '''ls sernet.verinice.extraresources.jre_linux_64/jre''' | ||
bin | bin conf docs legal lib man release | ||
==== Windows ==== | ===== Windows ===== | ||
# '''mkdir -p sernet.verinice.extraresources.jre_win_64/jre''' | # '''mkdir -p sernet.verinice.extraresources.jre_win_64/jre''' | ||
$ '''<nowiki>wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip -P /tmp</nowiki>''' | $ '''<nowiki>wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip -P /tmp</nowiki>''' | ||
Zeile 101: | Zeile 100: | ||
$ '''ls sernet.verinice.extraresources.jre_win_64/jre''' | $ '''ls sernet.verinice.extraresources.jre_win_64/jre''' | ||
bin | bin conf include jmods legal lib release | ||
==== MacOS ==== | ===== MacOS ===== | ||
# '''mkdir -p sernet.verinice.extraresources.jre_macos_64/jre''' | # '''mkdir -p sernet.verinice.extraresources.jre_macos_64/jre''' | ||
$ '''wget <nowiki> https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz</nowiki> -P /tmp''' | $ '''wget <nowiki> https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz</nowiki> -P /tmp''' | ||
Zeile 112: | Zeile 111: | ||
$ '''ls sernet.verinice.extraresources.jre_macos_64/jre/''' | $ '''ls sernet.verinice.extraresources.jre_macos_64/jre/''' | ||
bin | bin conf include jmods legal lib release | ||
=== Hinweise zu Versionen === | ==== Hinweise zu Versionen ==== | ||
==== Verinice 1.23.1 ==== | ===== Verinice 1.23.1 ===== | ||
In der Datei ''sernet.gs.server/pom.xml'' alle '''http:''' durch '''https:''' ersetzen | In der Datei ''sernet.gs.server/pom.xml'' alle '''http:''' durch '''https:''' ersetzen | ||
# sed -i 's/http:/https:/g' sernet.gs.server/pom.xml | # sed -i 's/http:/https:/g' sernet.gs.server/pom.xml | ||
== Kompilieren == | === Kompilieren === | ||
; Umgebung bereinigen | ; Umgebung bereinigen | ||
$ '''rm -r ~/.m2/''' | $ '''rm -r ~/.m2/''' | ||
Zeile 130: | Zeile 129: | ||
[INFO] Reactor Summary: | [INFO] Reactor Summary: | ||
[INFO] | [INFO] | ||
[INFO] sernet.verinice.tycho.root 1.26.0-SNAPSHOT ......... SUCCESS [ | [INFO] sernet.verinice.tycho.root 1.26.0-SNAPSHOT ......... SUCCESS [ 0.440 s] | ||
[INFO] target-platform 1.26.0-SNAPSHOT .................... SUCCESS [ | [INFO] target-platform 1.26.0-SNAPSHOT .................... SUCCESS [ 0.078 s] | ||
[INFO] jbpm 4.4.1 ......................................... SUCCESS [ | [INFO] jbpm 4.4.1 ......................................... SUCCESS [ 5.611 s] | ||
[INFO] org.eclipse.e4.rcp.sernet 1.26.0-SNAPSHOT .......... SUCCESS [ | [INFO] org.eclipse.e4.rcp.sernet 1.26.0-SNAPSHOT .......... SUCCESS [ 5.949 s] | ||
[INFO] sernet.birt.feature 1.26.0-SNAPSHOT ................ SUCCESS [ 20.496 s] | [INFO] sernet.birt.feature 1.26.0-SNAPSHOT ................ SUCCESS [ 20.496 s] | ||
[INFO] sernet.datatools.feature 1.26.0-SNAPSHOT ........... SUCCESS [ | [INFO] sernet.datatools.feature 1.26.0-SNAPSHOT ........... SUCCESS [ 6.688 s] | ||
[INFO] sernet.eclipse.feature 1.26.0-SNAPSHOT ............. SUCCESS [ | [INFO] sernet.eclipse.feature 1.26.0-SNAPSHOT ............. SUCCESS [ 5.607 s] | ||
[INFO] sernet.gs.db.fragment 1.26.0-SNAPSHOT .............. SUCCESS [ | [INFO] sernet.gs.db.fragment 1.26.0-SNAPSHOT .............. SUCCESS [ 0.132 s] | ||
[INFO] sernet.gs.ehcache.fragment 1.26.0-SNAPSHOT ......... SUCCESS [ | [INFO] sernet.gs.ehcache.fragment 1.26.0-SNAPSHOT ......... SUCCESS [ 0.075 s] | ||
[INFO] sernet.gs.hibernate.fragment 1.26.0-SNAPSHOT ....... SUCCESS [ | [INFO] sernet.gs.hibernate.fragment 1.26.0-SNAPSHOT ....... SUCCESS [ 0.053 s] | ||
[INFO] sernet.gs.log4j.fragment 1.26.0-SNAPSHOT ........... SUCCESS [ | [INFO] sernet.gs.log4j.fragment 1.26.0-SNAPSHOT ........... SUCCESS [ 0.021 s] | ||
[INFO] sernet.gs.pax_web.fragment 1.26.0-SNAPSHOT ......... SUCCESS [ | [INFO] sernet.gs.pax_web.fragment 1.26.0-SNAPSHOT ......... SUCCESS [ 1.286 s] | ||
[INFO] sernet.gs.reveng 1.26.0-SNAPSHOT ................... SUCCESS [ | [INFO] sernet.gs.reveng 1.26.0-SNAPSHOT ................... SUCCESS [ 5.958 s] | ||
[INFO] sernet.hui.common 1.26.0-SNAPSHOT .................. SUCCESS [ | [INFO] sernet.hui.common 1.26.0-SNAPSHOT .................. SUCCESS [ 3.534 s] | ||
[INFO] sernet.gs.service 1.26.0-SNAPSHOT .................. SUCCESS [ | [INFO] sernet.gs.service 1.26.0-SNAPSHOT .................. SUCCESS [ 6.184 s] | ||
[INFO] sernet.hui.swtclient 1.26.0-SNAPSHOT ............... SUCCESS [ | [INFO] sernet.hui.swtclient 1.26.0-SNAPSHOT ............... SUCCESS [ 3.519 s] | ||
[INFO] sernet.springclient 1.26.0-SNAPSHOT ................ SUCCESS [ 29.967 s] | [INFO] sernet.springclient 1.26.0-SNAPSHOT ................ SUCCESS [ 29.967 s] | ||
[INFO] sernet.gs.ui.rcp.main 1.26.0-SNAPSHOT .............. SUCCESS [ 32.955 s] | [INFO] sernet.gs.ui.rcp.main 1.26.0-SNAPSHOT .............. SUCCESS [ 32.955 s] | ||
[INFO] sernet.verinice.oda.driver 1.26.0-SNAPSHOT ......... SUCCESS [ | [INFO] sernet.verinice.oda.driver 1.26.0-SNAPSHOT ......... SUCCESS [ 1.346 s] | ||
[INFO] sernet.verinice.samt.service 1.26.0-SNAPSHOT ....... SUCCESS [ | [INFO] sernet.verinice.samt.service 1.26.0-SNAPSHOT ....... SUCCESS [ 0.304 s] | ||
[INFO] sernet.verinice.report.service 1.26.0-SNAPSHOT ..... SUCCESS [ | [INFO] sernet.verinice.report.service 1.26.0-SNAPSHOT ..... SUCCESS [ 3.574 s] | ||
[INFO] sernet.verinice.fei.service 1.26.0-SNAPSHOT ........ SUCCESS [ | [INFO] sernet.verinice.fei.service 1.26.0-SNAPSHOT ........ SUCCESS [ 0.246 s] | ||
[INFO] sernet.gs.server 1.26.0-SNAPSHOT ................... SUCCESS [ 47.196 s] | [INFO] sernet.gs.server 1.26.0-SNAPSHOT ................... SUCCESS [ 47.196 s] | ||
[INFO] sernet.gs.server.feature 1.26.0-SNAPSHOT ........... SUCCESS [ | [INFO] sernet.gs.server.feature 1.26.0-SNAPSHOT ........... SUCCESS [ 0.075 s] | ||
[INFO] sernet.gs.springweb.fragment 1.26.0-SNAPSHOT ....... SUCCESS [ | [INFO] sernet.gs.springweb.fragment 1.26.0-SNAPSHOT ....... SUCCESS [ 0.018 s] | ||
[INFO] sernet.localdependencies 1.26.0-SNAPSHOT ........... SUCCESS [ | [INFO] sernet.localdependencies 1.26.0-SNAPSHOT ........... SUCCESS [ 0.009 s] | ||
[INFO] sernet.verinice.fei.rcp 1.26.0-SNAPSHOT ............ SUCCESS [ | [INFO] sernet.verinice.fei.rcp 1.26.0-SNAPSHOT ............ SUCCESS [ 2.011 s] | ||
[INFO] sernet.verinice.samt.rcp 1.26.0-SNAPSHOT ........... SUCCESS [ | [INFO] sernet.verinice.samt.rcp 1.26.0-SNAPSHOT ........... SUCCESS [ 1.956 s] | ||
[INFO] sernet.verinice.desktop.integration 1.26.0-SNAPSHOT | [INFO] sernet.verinice.desktop.integration 1.26.0-SNAPSHOT SUCCESS [ 0.319 s] | ||
[INFO] waffle 1.7.4 ....................................... SUCCESS [ | [INFO] waffle 1.7.4 ....................................... SUCCESS [ 0.065 s] | ||
[INFO] sernet.verinice.kerberos 1.26.0-SNAPSHOT ........... SUCCESS [ | [INFO] sernet.verinice.kerberos 1.26.0-SNAPSHOT ........... SUCCESS [ 0.424 s] | ||
[INFO] sernet.rcp.ui.feature 1.26.0-SNAPSHOT .............. SUCCESS [ | [INFO] sernet.rcp.ui.feature 1.26.0-SNAPSHOT .............. SUCCESS [ 0.089 s] | ||
[INFO] sernet.thirdparty.feature 1.26.0-SNAPSHOT .......... SUCCESS [ | [INFO] sernet.thirdparty.feature 1.26.0-SNAPSHOT .......... SUCCESS [ 6.551 s] | ||
[INFO] sernet.verinice.lang.feature 1.26.0-SNAPSHOT ....... SUCCESS [ 12.515 s] | [INFO] sernet.verinice.lang.feature 1.26.0-SNAPSHOT ....... SUCCESS [ 12.515 s] | ||
[INFO] sernet.verinice.extraresources.jre_linux_64 1.26.0-SNAPSHOT SUCCESS [ | [INFO] sernet.verinice.extraresources.jre_linux_64 1.26.0-SNAPSHOT SUCCESS [ 4.896 s] | ||
[INFO] sernet.verinice.extraresources.jre_win_64 1.26.0-SNAPSHOT SUCCESS [ | [INFO] sernet.verinice.extraresources.jre_win_64 1.26.0-SNAPSHOT SUCCESS [ 3.795 s] | ||
[INFO] sernet.verinice.extraresources.jre_macos_64 1.26.0-SNAPSHOT SUCCESS [ | [INFO] sernet.verinice.extraresources.jre_macos_64 1.26.0-SNAPSHOT SUCCESS [ 3.779 s] | ||
[INFO] sernet.verinice.extraresources.feature 1.26.0-SNAPSHOT SUCCESS [ | [INFO] sernet.verinice.extraresources.feature 1.26.0-SNAPSHOT SUCCESS [ 0.042 s] | ||
[INFO] sernet.verinice.app.feature 1.26.0-SNAPSHOT ........ SUCCESS [ | [INFO] sernet.verinice.app.feature 1.26.0-SNAPSHOT ........ SUCCESS [ 0.107 s] | ||
[INFO] sernet.verinice.releng.client.product 1.26.0-SNAPSHOT SUCCESS [01:52 min] | [INFO] sernet.verinice.releng.client.product 1.26.0-SNAPSHOT SUCCESS [01:52 min] | ||
[INFO] sernet.verinice.releng.server.product 1.26.0-SNAPSHOT SUCCESS [ 25.027 s] | [INFO] sernet.verinice.releng.server.product 1.26.0-SNAPSHOT SUCCESS [ 25.027 s] | ||
[INFO] sernet.gs.server.tests 1.26.0-SNAPSHOT ............. SUCCESS [ 16.057 s] | [INFO] sernet.gs.server.tests 1.26.0-SNAPSHOT ............. SUCCESS [ 16.057 s] | ||
[INFO] sernet.gs.service.tests 1.26.0-SNAPSHOT ............ SUCCESS [ | [INFO] sernet.gs.service.tests 1.26.0-SNAPSHOT ............ SUCCESS [ 3.761 s] | ||
[INFO] sernet.gs.ui.rcp.main.tests 1.26.0-SNAPSHOT ........ SUCCESS [ | [INFO] sernet.gs.ui.rcp.main.tests 1.26.0-SNAPSHOT ........ SUCCESS [ 9.020 s] | ||
[INFO] ------------------------------------------------------------------------ | [INFO] ------------------------------------------------------------------------ | ||
[INFO] BUILD SUCCESS | [INFO] BUILD SUCCESS | ||
[INFO] ------------------------------------------------------------------------ | [INFO] ------------------------------------------------------------------------ | ||
[INFO] Total time: | [INFO] Total time: 09:38 min | ||
[INFO] Finished at: 2023-05-29T09:56:59+02:00 | [INFO] Finished at: 2023-05-29T09:56:59+02:00 | ||
[INFO] ------------------------------------------------------------------------ | [INFO] ------------------------------------------------------------------------ | ||
=== | ==== Client ==== | ||
Kompilate Programme befinden sich in | Kompilate Programme befinden sich in | ||
sernet.verinice.releng.client.product/target/products/ | sernet.verinice.releng.client.product/target/products/ | ||
Zeile 190: | Zeile 189: | ||
* Mac OS X 64 bit | * Mac OS X 64 bit | ||
=== | ====Update-Site ==== | ||
Die P2-Update-Site befindet sich in | Die P2-Update-Site befindet sich in | ||
sernet.verinice.update_site/target/repository | sernet.verinice.update_site/target/repository | ||
=== | ==== Server ==== | ||
Die WAR-Datei (die z. B. auf Tomcat bereitgestellt werden kann) befindet sich unter | Die WAR-Datei (die z. B. auf Tomcat bereitgestellt werden kann) befindet sich unter | ||
sernet.verinice.releng.server.product/target/ | sernet.verinice.releng.server.product/target/ | ||
Zeile 201: | Zeile 200: | ||
* im Gegensatz zu den Verinice-Client- und Report-Designer-Builds | * im Gegensatz zu den Verinice-Client- und Report-Designer-Builds | ||
== Update == | === Update === | ||
; Backup | ; Backup | ||
# apt install pigz | # apt install pigz | ||
Zeile 212: | Zeile 211: | ||
; Quellen aktualisieren | ; Quellen aktualisieren | ||
$ '''cd /usr/src/verinice''' | $ '''cd /usr/src/verinice''' | ||
/usr/src/verinice $ '''git pull''' | /usr/src/verinice $ '''git pull''' | ||
; Kompilation | ; Kompilation | ||
siehe [[#Kompilieren]] | siehe [[#Kompilieren]] | ||
=== Versionierung === | ==== Versionierung ==== | ||
Aktualisieren der Version des Projekts | Aktualisieren der Version des Projekts | ||
1. | ===== 1. Version setzen ===== | ||
./mvnw -Dtycho.mode=maven -DnewVersion=x.y.z.qualifier tycho-versions:set-version | ./mvnw -Dtycho.mode=maven -DnewVersion=x.y.z.qualifier tycho-versions:set-version | ||
; Hinweis | |||
:* ''qualifier'' ist wörtlich gemeint | |||
:* wird von tycho/osgi als ''magische Zeichenkette'' behandelt | |||
./mvnw -DnewVersion=1.19.0.qualifier tycho-versions:set-version | ./mvnw -DnewVersion=1.19.0.qualifier tycho-versions:set-version | ||
schreibt ''1.19.0-SNAPSHOT'' in die Update pom.xml Dateien und ''1.19.0.qualifier'' in die aktualisierten feature.xml Dateien. | schreibt ''1.19.0-SNAPSHOT'' in die Update pom.xml Dateien und ''1.19.0.qualifier'' in die aktualisierten feature.xml Dateien. | ||
; Die endgültige Produktversion erhält einen Zeitstempel, z.B.*1.19.0.201908011226'' | |||
* Siehe [Plugin-Dokumentation](https://www.eclipse.org/tycho/sitedocs/tycho-packaging-plugin/plugin-info.html) für Details. | * Siehe [Plugin-Dokumentation](https://www.eclipse.org/tycho/sitedocs/tycho-packaging-plugin/plugin-info.html) für Details. | ||
2. Aktualisieren Sie Version und Codename im About-Text in ''Branding > About Dialog'' von | ===== 2. Version und Codename ===== | ||
; Aktualisieren Sie Version und Codename | |||
im About-Text in ''Branding > About Dialog'' von | |||
''sernet.verinice.releng.client.product/sernet.verinice.releng.client.product'' | ''sernet.verinice.releng.client.product/sernet.verinice.releng.client.product'' | ||
3. | ===== 3. About-Text ===== | ||
; Synchronisieren Sie den About-Text | |||
wieder mit dem Plugin (''Übersicht > Testen > Synchronisieren'') in | |||
''sernet.verinice.releng.client.product/sernet.verinice.releng.client.product''. | ''sernet.verinice.releng.client.product/sernet.verinice.releng.client.product''. | ||
4. Aktualisieren Sie das Versionsmakro in den Handbüchern | ===== 4. Versionsmakro in Handbüchern ===== | ||
; Aktualisieren Sie das Versionsmakro in den Handbüchern | |||
5. Aktualisieren Sie die Version in den Splash-Screens von verinice | ===== 5. Splash-Screen ===== | ||
; Aktualisieren Sie die Version in den Splash-Screens von verinice | |||
sernet.gs.ui.rcp.main/etc/splashscreen/splash.xcf | sernet.gs.ui.rcp.main/etc/splashscreen/splash.xcf | ||
== Siehe auch == | == Anhang == | ||
=== Siehe auch === | |||
* [[Verinice/Installation]] | * [[Verinice/Installation]] | ||
* [[Verinice/Architektur]] | * [[Verinice/Architektur]] | ||
---- | |||
=== Links === | {{Special:PrefixIndex/{{BASEPAGENAME}}}} | ||
==== Projekt ==== | ==== Dokumentation ==== | ||
==== Links ==== | |||
===== Projekt ===== | |||
# https://github.com/SerNet/verinice | # https://github.com/SerNet/verinice | ||
===== Weblinks ===== | |||
[[Kategorie:Verinice]] | [[Kategorie:Verinice/Verwaltung]] | ||
</noinclude> |
Aktuelle Version vom 2. September 2023, 09:44 Uhr
Vernice kompilieren - Client, Update-Site und Server für Linux, Mac und Windows
Umgebung
Betriebssystem
$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
Java
$ java -version openjdk version "17.0.6" 2023-01-17 OpenJDK Runtime Environment (build 17.0.6+10-Debian-1) OpenJDK 64-Bit Server VM (build 17.0.6+10-Debian-1, mixed mode, sharing)
$ echo $JAVA_HOME /usr/lib/jvm/default-java/
$ ls /usr/lib/jvm/ default-java -> java-1.17.0-openjdk-amd64 java-1.11.0-openjdk-amd64 -> java-11-openjdk-amd64 java-1.17.0-openjdk-amd64 -> java-17-openjdk-amd64 java-1.18.0-openjdk-amd64 -> java-18-openjdk-amd64 java-1.19.0-openjdk-amd64 -> java-19-openjdk-amd64 java-11-openjdk-amd64 java-1.20.0-openjdk-amd64 -> java-20-openjdk-amd64 java-17-openjdk-amd64 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64 java-18-openjdk-amd64 java-19-openjdk-amd64 java-20-openjdk-amd64 java-8-openjdk-amd64 openjdk-11 openjdk-17 openjdk-18 openjdk-19 openjdk-20
Quellen bereitstellen
$ cd /usr/src $ git clone https://github.com/SerNet/verinice Klone nach 'verinice'... remote: Enumerating objects: 148244, done. remote: Counting objects: 100% (6964/6964), done. remote: Compressing objects: 100% (2221/2221), done. remote: Total 148244 (delta 4588), reused 6150 (delta 4235), pack-reused 141280 Empfange Objekte: 100% (148244/148244), 1.23 GiB | 8.96 MiB/s, fertig. Löse Unterschiede auf: 100% (95543/95543), fertig. Aktualisiere Dateien: 100% (12390/12390), fertig.
- Basisverzeichnis
$ ls /usr/srv/verinice bouncycastle sernet.birt.feature sernet.thirdparty.feature CODINGSTYLE.md sernet.client.service sernet.verinice.app.feature COPYRIGHT.md sernet.client.service.handlerrights sernet.verinice.bp.importer dependencies sernet.datatools.feature sernet.verinice.desktop.integration doc sernet.eclipse.feature sernet.verinice.extraresources.feature gnumail sernet.gs.db.fragment sernet.verinice.extraresources.jre_linux_64 gui-test-runner sernet.gs.ehcache.fragment sernet.verinice.extraresources.jre_macos_64 jbpm sernet.gs.hibernate.fragment sernet.verinice.extraresources.jre_win_64 Jenkinsfile sernet.gs.log4j.fragment sernet.verinice.fei.rcp Jenkinsfile.nightly sernet.gs.pax_web.fragment sernet.verinice.fei.service Jenkinsfile.rcptt-all-report-tests sernet.gs.reveng sernet.verinice.kerberos Jenkinsfile.rcptt-client-performance-test sernet.gs.server sernet.verinice.lang.feature Jenkinsfile.rcptt-client-test sernet.gs.server.feature sernet.verinice.oda.driver Jenkinsfile.rcptt-product-report-test sernet.gs.server.tests sernet.verinice.releng.client.product Jenkinsfile.rcptt-server-performance-test sernet.gs.service sernet.verinice.releng.server.product Jenkinsfile.server-rcptt-test sernet.gs.service.tests sernet.verinice.report.service LICENSE sernet.gs.springweb.fragment sernet.verinice.samt.rcp mvnw sernet.gs.ui.rcp.main sernet.verinice.samt.service mvnw.cmd sernet.gs.ui.rcp.main.tests target-platform notes sernet.hui.common TCOracle.pdf org.eclipse.e4.rcp.sernet sernet.hui.swtclient verinice-distribution pom.xml sernet.localdependencies verinice-gui-tests README.md sernet.rcp.ui.feature waffle SECURITY.md sernet.springclient
Java integrieren
- JRE integrieren
sernet.verinice.extraresources.feature/linux/jre sernet.verinice.extraresources.feature/windows/jre sernet.verinice.extraresources.feature/macos/jre
- Erforderlich für macOS-Builds
- Es ist best practice, eine JRE in einen Application.app Ordner zu packen.
- Um eine gültige verinice.app zu erhalten, muss daher eine geeignete macOS JRE in sernet.thirdparty.feature/macos vorhanden sein.
Linux
$ mkdir -p sernet.verinice.extraresources.jre_linux_64/jre $ cp -Lr $JAVA_HOME* sernet.verinice.extraresources.jre_linux_64/jre/
$ ls sernet.verinice.extraresources.jre_linux_64/jre bin conf docs legal lib man release
Windows
# mkdir -p sernet.verinice.extraresources.jre_win_64/jre $ wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip -P /tmp
$ unzip /tmp/openjdk-11.0.2_windows-x64_bin.zip -d /tmp/openjdk-11.0.2_windows-x64_bin
$ cp -Lr /tmp/openjdk-11.0.2_windows-x64_bin/jdk-11.0.2/* sernet.verinice.extraresources.jre_win_64/jre
$ ls sernet.verinice.extraresources.jre_win_64/jre bin conf include jmods legal lib release
MacOS
# mkdir -p sernet.verinice.extraresources.jre_macos_64/jre $ wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_osx-x64_bin.tar.gz -P /tmp
$ mkdir /tmp/openjdk-11.0.2_osx-x64_bin; tar --directory=/tmp/openjdk-11.0.2_osx-x64_bin -xf /tmp/openjdk-11.0.2_osx-x64_bin.tar.gz
$ cp -Lr /tmp/openjdk-11.0.2_osx-x64_bin/jdk-11.0.2.jdk/Contents/Home/* sernet.verinice.extraresources.jre_macos_64/jre
$ ls sernet.verinice.extraresources.jre_macos_64/jre/ bin conf include jmods legal lib release
Hinweise zu Versionen
Verinice 1.23.1
In der Datei sernet.gs.server/pom.xml alle http: durch https: ersetzen
# sed -i 's/http:/https:/g' sernet.gs.server/pom.xml
Kompilieren
- Umgebung bereinigen
$ rm -r ~/.m2/
- Verinice-Client, Client-Update-Site und Server kompilieren
$ cd /usr/src/verinice /usr/src/verinice $ ./mvnw -Dtycho.disableP2Mirrors=true -DskipTests clean verify
[INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] sernet.verinice.tycho.root 1.26.0-SNAPSHOT ......... SUCCESS [ 0.440 s] [INFO] target-platform 1.26.0-SNAPSHOT .................... SUCCESS [ 0.078 s] [INFO] jbpm 4.4.1 ......................................... SUCCESS [ 5.611 s] [INFO] org.eclipse.e4.rcp.sernet 1.26.0-SNAPSHOT .......... SUCCESS [ 5.949 s] [INFO] sernet.birt.feature 1.26.0-SNAPSHOT ................ SUCCESS [ 20.496 s] [INFO] sernet.datatools.feature 1.26.0-SNAPSHOT ........... SUCCESS [ 6.688 s] [INFO] sernet.eclipse.feature 1.26.0-SNAPSHOT ............. SUCCESS [ 5.607 s] [INFO] sernet.gs.db.fragment 1.26.0-SNAPSHOT .............. SUCCESS [ 0.132 s] [INFO] sernet.gs.ehcache.fragment 1.26.0-SNAPSHOT ......... SUCCESS [ 0.075 s] [INFO] sernet.gs.hibernate.fragment 1.26.0-SNAPSHOT ....... SUCCESS [ 0.053 s] [INFO] sernet.gs.log4j.fragment 1.26.0-SNAPSHOT ........... SUCCESS [ 0.021 s] [INFO] sernet.gs.pax_web.fragment 1.26.0-SNAPSHOT ......... SUCCESS [ 1.286 s] [INFO] sernet.gs.reveng 1.26.0-SNAPSHOT ................... SUCCESS [ 5.958 s] [INFO] sernet.hui.common 1.26.0-SNAPSHOT .................. SUCCESS [ 3.534 s] [INFO] sernet.gs.service 1.26.0-SNAPSHOT .................. SUCCESS [ 6.184 s] [INFO] sernet.hui.swtclient 1.26.0-SNAPSHOT ............... SUCCESS [ 3.519 s] [INFO] sernet.springclient 1.26.0-SNAPSHOT ................ SUCCESS [ 29.967 s] [INFO] sernet.gs.ui.rcp.main 1.26.0-SNAPSHOT .............. SUCCESS [ 32.955 s] [INFO] sernet.verinice.oda.driver 1.26.0-SNAPSHOT ......... SUCCESS [ 1.346 s] [INFO] sernet.verinice.samt.service 1.26.0-SNAPSHOT ....... SUCCESS [ 0.304 s] [INFO] sernet.verinice.report.service 1.26.0-SNAPSHOT ..... SUCCESS [ 3.574 s] [INFO] sernet.verinice.fei.service 1.26.0-SNAPSHOT ........ SUCCESS [ 0.246 s] [INFO] sernet.gs.server 1.26.0-SNAPSHOT ................... SUCCESS [ 47.196 s] [INFO] sernet.gs.server.feature 1.26.0-SNAPSHOT ........... SUCCESS [ 0.075 s] [INFO] sernet.gs.springweb.fragment 1.26.0-SNAPSHOT ....... SUCCESS [ 0.018 s] [INFO] sernet.localdependencies 1.26.0-SNAPSHOT ........... SUCCESS [ 0.009 s] [INFO] sernet.verinice.fei.rcp 1.26.0-SNAPSHOT ............ SUCCESS [ 2.011 s] [INFO] sernet.verinice.samt.rcp 1.26.0-SNAPSHOT ........... SUCCESS [ 1.956 s] [INFO] sernet.verinice.desktop.integration 1.26.0-SNAPSHOT SUCCESS [ 0.319 s] [INFO] waffle 1.7.4 ....................................... SUCCESS [ 0.065 s] [INFO] sernet.verinice.kerberos 1.26.0-SNAPSHOT ........... SUCCESS [ 0.424 s] [INFO] sernet.rcp.ui.feature 1.26.0-SNAPSHOT .............. SUCCESS [ 0.089 s] [INFO] sernet.thirdparty.feature 1.26.0-SNAPSHOT .......... SUCCESS [ 6.551 s] [INFO] sernet.verinice.lang.feature 1.26.0-SNAPSHOT ....... SUCCESS [ 12.515 s] [INFO] sernet.verinice.extraresources.jre_linux_64 1.26.0-SNAPSHOT SUCCESS [ 4.896 s] [INFO] sernet.verinice.extraresources.jre_win_64 1.26.0-SNAPSHOT SUCCESS [ 3.795 s] [INFO] sernet.verinice.extraresources.jre_macos_64 1.26.0-SNAPSHOT SUCCESS [ 3.779 s] [INFO] sernet.verinice.extraresources.feature 1.26.0-SNAPSHOT SUCCESS [ 0.042 s] [INFO] sernet.verinice.app.feature 1.26.0-SNAPSHOT ........ SUCCESS [ 0.107 s] [INFO] sernet.verinice.releng.client.product 1.26.0-SNAPSHOT SUCCESS [01:52 min] [INFO] sernet.verinice.releng.server.product 1.26.0-SNAPSHOT SUCCESS [ 25.027 s] [INFO] sernet.gs.server.tests 1.26.0-SNAPSHOT ............. SUCCESS [ 16.057 s] [INFO] sernet.gs.service.tests 1.26.0-SNAPSHOT ............ SUCCESS [ 3.761 s] [INFO] sernet.gs.ui.rcp.main.tests 1.26.0-SNAPSHOT ........ SUCCESS [ 9.020 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 09:38 min [INFO] Finished at: 2023-05-29T09:56:59+02:00 [INFO] ------------------------------------------------------------------------
Client
Kompilate Programme befinden sich in
sernet.verinice.releng.client.product/target/products/
- Es werden Artefakte für die folgenden Plattformen erzeugt
- Linux GTK 64 bit
- Windows 64 bit
- Mac OS X 64 bit
Update-Site
Die P2-Update-Site befindet sich in
sernet.verinice.update_site/target/repository
Server
Die WAR-Datei (die z. B. auf Tomcat bereitgestellt werden kann) befindet sich unter
sernet.verinice.releng.server.product/target/
Die WAR-Datei ist plattformunabhängig
- im Gegensatz zu den Verinice-Client- und Report-Designer-Builds
Update
- Backup
# apt install pigz $ cd /usr/src/ /usr/src/ $ tar -cf verinice_$(date +%Y-%m-%d-%H%M%S).tar.gz -I pigz verinice/
- Umgebung bereinigen
$ rm -r ~/.m2/
- Quellen aktualisieren
$ cd /usr/src/verinice /usr/src/verinice $ git pull
- Kompilation
siehe #Kompilieren
Versionierung
Aktualisieren der Version des Projekts
1. Version setzen
./mvnw -Dtycho.mode=maven -DnewVersion=x.y.z.qualifier tycho-versions:set-version
- Hinweis
-
- qualifier ist wörtlich gemeint
- wird von tycho/osgi als magische Zeichenkette behandelt
./mvnw -DnewVersion=1.19.0.qualifier tycho-versions:set-version
schreibt 1.19.0-SNAPSHOT in die Update pom.xml Dateien und 1.19.0.qualifier in die aktualisierten feature.xml Dateien.
- Die endgültige Produktversion erhält einen Zeitstempel, z.B.*1.19.0.201908011226
- Siehe [Plugin-Dokumentation](https://www.eclipse.org/tycho/sitedocs/tycho-packaging-plugin/plugin-info.html) für Details.
2. Version und Codename
- Aktualisieren Sie Version und Codename
im About-Text in Branding > About Dialog von
sernet.verinice.releng.client.product/sernet.verinice.releng.client.product
3. About-Text
- Synchronisieren Sie den About-Text
wieder mit dem Plugin (Übersicht > Testen > Synchronisieren) in
sernet.verinice.releng.client.product/sernet.verinice.releng.client.product.
4. Versionsmakro in Handbüchern
- Aktualisieren Sie das Versionsmakro in den Handbüchern
5. Splash-Screen
- Aktualisieren Sie die Version in den Splash-Screens von verinice
sernet.gs.ui.rcp.main/etc/splashscreen/splash.xcf