Die Sektion <content /> ist aus der Konfigurationsdatei entfernt worden. Der Schalter mit dem die Anzeige des Widgets für den Download von Dateien gesteuert werden kann ist in die Sidebar-Sektion umgezogen. Bei einem Update ist zu prüfen ob in der lokalen config_viewer.xml der folgende Eintrag existiert um diesen bei Bedarf umzuziehen:
<!-- ALT -->
<content>
<originalContentDownload>false</originalContentDownload>
</content>
<!-- NEU -->
<sidebar>
<sidebarWidgetDownloads visible="false" />
</sidebar>
4.12.0
Goobi viewer Core
Wird der TaskManager für die Generierung von PDF-Dateien verwendet muss ein UNIQUE Constraint auf die identifierSpalte in der download_jobs Tabelle gesetzt werden. Dafür müssen gegebenenfalls vorher Duplikate entfernt werden:
SELECT * FROM download_jobs WHERE identifier IN(SELECT identifier FROM download_jobs GROUP BY identifier HAVING COUNT(identifier) > 1);
/*DELETE FROM download_jobs WHERE identifier=<one row from the duplicates>;*/ALTERTABLE download_jobs ADDUNIQUE(identifier);
Goobi viewer Indexer
Der in der solr_indexerconfig.xml definierte Ordner für die gespeicherten Annotationen muss überprüft und gegebenenfalls angepasst werden. Der Goobi viewer Core erwartet die Dateien im Ordner annotations, es ist aber möglich, dass im Goobi viewer Indexer der Ordner annotation konfiguriert ist, also ohne s. Wenn das der Fall ist muss das in der Konfigurationsdatei wie auch im im Dateisystem korrigiert werden.
Prüfen ob ein falscher Ordner konfiguriert ist. Dafür das folgende Kommando ausführen. Wenn es eine Ausgabe gibt, dann muss den folgenden Punkten fortgefahren werden. Ist die Ausgabe leer ist hier Schluss.
Wenn eine Korrektur notwendig ist, dann müssen nun die Ordner im Dateisystem angepasst werden:
# Keine Datarepositories:mv/opt/digiverso/viewer/annotation//opt/digiverso/viewer/annotations/# Mit Datarepositoriesfor i in $(ls /opt/digiverso/viewer/data); do mv /opt/digiverso/viewer/data/${i}/annotation/ /opt/digiverso/viewer/data/${i}/annotations/; done
4.11.0
Apache
Der gleichzeitige Zugriff auf Werke wird über WebSockets gesteuert. Dafür muss dessen Unterstützung in dem Apache Webserver in die Konfiguration mit aufgenommen werden:
Sollte der Tomcat nicht auf 8080 lauschen bitte den Port entsprechend anpassen. Es muss aber immer auf den HTTP Connector, nicht auf den AJP Connector weitergeleitet werden.
Anschließend das benötigte Modul aktivieren und den Dienst neu starten:
a2enmodproxy_wstunnelsystemctlrestartapache2
Goobi viewer Core
Mit dem Update des Themes wird der Titel der Installation aus der Konfigurationsdatei gelesen. Dieser muss in der lokalen Konfigurationsdatei gesetzt werden:
config_viewer.xml
<viewer>
<name>Goobi viewer</name>
</viewer>
Goobi viewer Indexer
Um die neue Möglichkeit für die Einschränkung des gleichzeitigen Zugriffs nutzen zu können muss das Feld konfiguriert werden:
Die URL zur REST API des Goobi viewers sowie für den Volltext muss an die neuen REST Endpoints angepasst werden:
config_oai.xml
<!-- Alt -->
<restApiUrl>http://localhost:8080/rest/</restApiUrl>
<fulltextUrl>http://viewer.example.org/rest/content/fulltext/{pi}/{fileName}/</fulltextUrl>
<!-- Neu -->
<restApiUrl>http://localhost:8080/api/v1/</restApiUrl>
<fulltextUrl>https://viewer.example.org/api/v1/records/{pi}/files/plaintext/{fileName}</fulltextUrl>
4.10.0
Solr
Um das Logging von Solr zu reduzieren muss das Loglevel angepasst und der Dienst neu gestartet werden:
patch/etc/default/solr.in.sh<<"EOF"@@ -113,7 +113,7 @@ # Changes the logging level. Valid values: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF. Default is INFO # This is an alternative to changing the rootLogger in log4j2.xml-#SOLR_LOG_LEVEL=INFO+SOLR_LOG_LEVEL=ERROR # Location where Solr should write logs to. Absolute or relative to solr start dir #SOLR_LOGS_DIR=logsEOFsystemctlrestartsolr
Goobi viewer Indexer
Für die neue Möglichkeit den PDF-Download prozentual pro Nutzersession einzuschränken ist ein Update des Schemas und des Goobi viewer Indexers notwendig:
Bei der Migration zu Solr 8 wurde vergessen die JTS Bibliothek für die Suche in Koordinatenbereichen zu übernehmen. Das muss nachgeholt werden. Dafür sind die folgenden Schritte notwendig.
Herunterladen der notwendigen Bibliothek, anpassen der Rechte und Neustart damit die Library bekannt ist:
Da wir Zookeeper nur lokal benötigen, kann der Dienst auch nur auf localhost lauschen:
patch /etc/zookeeper/conf/zoo.cfg <<"EOF"@@ -15,6+15,7 @@ # the port at which the clients will connect clientPort=2181+clientPortAddress=127.0.0.1 # specify all zookeeper servers # The fist port is used by followers to connect to the leaderEOFsystemctl restart zookeeper
Goobi viewer Indexer
Der Goobi viewer Indexer muss aktualisiert werden, um die neusten Anpassungen für die Suche nach Geokoordinaten zu Unterstützen:
Frühere Versionen haben manchmal fälschlicherweise Dateien mit angehängtem Iterator in den indexed_mets Ordner verschoben anstelle sie in den Originaldateienamen umzubenennen. Diese Dateien sollten mit dem folgenden Kommando entfernt werden:
find /opt/digiverso/viewer/indexed_mets -regex '.*#[0-9]+\.xml' | while read i; do test -e ${i%#*}.xml && rm $i; done
Goobi viewer Connector
Um die OAI und SRU Schnittstelle auf die aktuelle Version zu aktualisieren können die folgenden Zeilen verwendet werden:
Bei der Feldkonfiguration für das Stöbern Menü wurde das Attribut docstructFilters entfernt. Bereits länger gibt es die Möglichkeit eine filterQuery zu definieren, die das Attribut und seine Logik ersetzt haben. Bei einem Update ist zu prüfen ob in der lokalen config_viewer.xml das docstructFilters Attribut verwendet wird und die gewünschte Funktionalität gegenebenfalls als filterQuery umzuformulieren.
config_viewer.xml
<!-- ALT -->
<luceneField docstructFilters="Monograph;Volume">MD_TITLE_UNTOKENIZED</luceneField>
<!-- NEU -->
<luceneField filterQuery="+(DOCSTRCT:Monograph DOCSTRCT:Volume)">MD_TITLE_UNTOKENIZED</luceneField>
4.8.0
Mit dieser Version wird der verwendete Suchindex Apache Solr auf die Version 8 aktualisiert. Dafür muss Solr 8 komplett neu installiert und der Datenbestand anschließend durch eine besondere Neuindexierung in die neuen Installation überführt werden. Eine Migration über mehr als zwei Major Versionen wird von Solr offiziell nicht unterstützt (Hintergrund).
Für die Unterstützung von Solr Streaming Expressions ist es notwendig SolrCloud zu verwenden. Die notwendigen Schritte sind im folgenden in chronologischer Reihenfolge aufgelistet:
Solr
Die Installation von Apache Solr 8 ist hier in der Updateanleitung nur in gekürzter Form. Für eine längere Variante bitte den entsprechenden Abschnitt in der Installationsanleitung lesen.
cd/tmpwgethttp://archive.apache.org/dist/lucene/solr/8.5.2/solr-8.5.2.tgztar-xzfsolr-8.5.2.tgzsolr-8.5.2/bin/install_solr_service.sh--strip-components=2mkdir-p/opt/digiverso/solr/./install_solr_service.shsolr-8.5.2.tgz-i/opt/digiverso/solr-d/opt/digiverso/solr-usolr-ssolr-p8983-ncat<<"EOF">/etc/security/limits.d/solr.confsolr hard nofile 65535solr soft nofile 65535solr hard nproc 65535solr soft nproc 65535EOFaptinstall-yzookeeperdpatch/etc/default/solr.in.sh<<"EOF"@@ -28,7 +28,7 @@ #SOLR_STOP_WAIT="180" # Increase Java Heap as needed to support your indexing / query needs-#SOLR_HEAP="512m"+SOLR_HEAP="2048m" # Expert: If you want finer control over memory options, specify them directly # Comment out SOLR_HEAP if you are using this though, that takes precedence@@ -64,7 +64,7 @@ # Set the ZooKeeper connection string if using an external ZooKeeper ensemble # e.g. host1:2181,host2:2181/chroot # Leave empty if not using SolrCloud-#ZK_HOST=""+ZK_HOST="127.0.0.1:2181" # Set the ZooKeeper client timeout (for SolrCloud mode) #ZK_CLIENT_TIMEOUT="15000"EOFchmod755/opt/digiverso/solr/solr/bin/solrcd/opt/digiverso/solr/solr/server/solr/configsets/cp-a_default/goobiviewercdgoobiviewer/conf/rmmanaged-schemawget https://raw.githubusercontent.com/intranda/goobi-viewer-indexer/master/goobi-viewer-indexer/src/main/resources/other/schema.xml
cplang/stopwords_de.txtlang/stopwords.txtwget https://raw.githubusercontent.com/intranda/goobi-viewer-indexer/master/goobi-viewer-indexer/src/main/resources/other/mapping-ISOLatin1Accent.txt
patchsolrconfig.xml<<"EOF"@@ -21,6 +21,7 @@ this file, see http://wiki.apache.org/solr/SolrConfigXml. --> <config>+ <schemaFactory class="ClassicIndexSchemaFactory"/> <!-- In all configuration below, a prefix of "solr." for class names is an alias that causes solr to search appropriate packages, including org.apache.solr.(search|update|request|core|analysis)@@ -58,6 +59,11 @@ <lib dir="./lib" /> -->+ <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" regex=".*\.jar" />+ <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" regex=".*\.jar" />+ <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-analysis-extras-\d.*\.jar" />++ <!-- A 'dir' option by itself adds any files found in the directory to the classpath, this is useful for including all jars in a directory.@@ -773,7 +779,7 @@ <initParams path="/update/**,/query,/select,/spell"> <lst name="defaults">- <str name="df">_text_</str>+ <str name="df">DEFAULT</str> </lst> </initParams>@@ -1108,7 +1114,7 @@ </updateProcessor> <!-- The update.autoCreateFields property can be turned to false to disable schemaless mode -->- <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:true}"+ <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:false}" processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
<processor class="solr.LogUpdateProcessorFactory"/> <processor class="solr.DistributedUpdateProcessorFactory"/>EOFchown-Rsolr.*cd/opt/digiverso/solr/solr/sudo-usolrbin/solrzkupconfig-ngoobiviewer-dserver/solr/configsets/goobiviewer/
Sollte dieser Befehl unter Ubuntu Linux 20.04 einen Timeout werfen, dann muss geprüft werden Java 11 der Standard ist (update-alternatives --config java). Zookeeper ist nicht mehr mit Java 8 kompatibel.
Schlägt dieser Befehl fehl, dann muss in der /etc/default/solr.in.sh die Variable #SOLR_HOST="" einkommentiert und auf die IP-Adresse des lokalen Rechners gesetzt werden.
Nun die Apache Konfiguration anpassen, so dass Solr auf dem neuen Port angesprochen wird. Dafür den entsprechenden Apache vhost öffnen und in dem Block <Location /solr/> die ProxyPass und ProxyPassReverse Einträge auf diese neuen Werte anpassen:
Anschließend sicherstellen, dass auch das benötigte Modul proxy_http geladen ist und den Dienst neu starten:
a2enmod proxy_http
systemctl restart apache2
Goobi viewer Indexer
Der Datenbestand muss neu indexiert werden. Dafür muss der Goobi viewer Indexer aktualisiert werden damit er bei der Neuindexierung einige Solr Felder von der alten in die neue Installation übernimmt:
Dieser Abschnitt ist wichtig. Da sich die Neuindexierung über einen längeren Zeitraum hinziehen kann ist es wichtig spätere Arbeiten nicht zu vergessen!
Nun die Konfigurationsdatei des Goobi viewer Indexers anpassen. Der Eintrag in <solrUrl> muss dabei auf den neuen Solr 8 und ein neuer Eintrag <oldSolrUrl> auf den bisherigen Solr 4 zeigen:
Anschließend erst mit einem Datensatz testen ob keine Fehler bei der Indexierung auftreten. Wenn das der Fall ist den Datenbestand neu Indexieren.
Wenn die Neuindexierung abgeschlossen ist, muss der Eintrag <oldSolrUrl /> aus der solr_indexerconfig.xml auskommentiert werden.
Damit die Versionsnummer an den Goobi viewer Core zur Anzeige im Dashboard korrekt übermittelt werden kann, müssen die folgenden beiden Einstellungen in der Konfigurationsdatei vorhanden sein. Bitte URL und Token prüfen und gegebenenfalls an die lokalen Gegebenheiten anpassen:
Damit der Goobi viewer Connector mit Solr 8 kompatibel ist und zusätzlich seine Versionsnummer im gewünschten Format ausgeben kann, ist es notwendig den Connector zu aktualisieren:
Zur korrekten Anzeige von Beschreibungstexten muss sichergestellt werden, dass in der Datenbank auch die richtigen Message Keys hinterlegt sind. Dafür die folgenden beiden SQL Statements ausführen:
UPDATE license_types SET description = "licenseType_setRepresentativeImage_desc" WHERE name = "licenseType_setRepresentativeImage";
UPDATE license_types SETdescription="licenseType_deleteOcrPage_desc"WHEREname="licenseType_deleteOcrPage";
4.7.0
Goobi viewer Indexer
Um die Ausgabe von Fehlern beim Start des Goobi viewer Indexers auch in die Logdatei mit zu übernehmen muss die folgende Zeile in den Abschnitt [Service] in der Systemd Unit File eingefügt werden:
Die Option wurde erst mit Systemd 236 eingeführt und steht demnach erst ab Ubuntu Linux 18.04 Systemen zur Verfügung.
4.6.0
Goobi viewer Core
Die Solr Konfiguration wurde um weiteres Mapping von diakritischen Zeichen erweitert. Zur Übernahme der Änderungen muss die Datei mapping-ISOLatin1Accent.txt aktualisiert und der Datenbestand neu indexiert werden:
Um vom ContentServer die neuen Standardwerte für die PDF-Generierung zu verwenden muss geprüft werden, ob eine lokale config_contentServer.xml Datei vorliegt. Ist das der Fall müssen in dem Konfigurationselement <defaultPdfConfig /> die beiden Attribute imageScale="0.5" und imageCompression="50" hinzugefügt werden. Das vollständige Element sieht dann zum Beispiel so aus:
Zur Unterstützung der Kartenfunktionalität wurde das Solr-Schema und der Goobi viewer Indexer erweitert. Beide Komponenten müssen aktualisiert werden. Weiter ist es notwendig eine zusätzliche Jar in den WEB-INF/lib Ordner von Solr abzulegen
Der Datenbestand muss neu indexiert werden, ansonsten fehlt die Sektion "Bild" in dem Widget "Zitieren und Nachnutzen.
4.5.0
Goobi viewer Indexer
Damit die Indexierung von im Backend erstellten Dublin Core Datensätzen funktioniert, muss zusammen mit dem Core auch der Indexer aktualisiert werden. Damit das Feature aktiviert wird, muss der indexedDublinCore Ordner definiert werden:
Damit alle Metadaten korrekt indexiert werden auf das Mapping der folgenden Felder achten. Gegebenenfalls müssen einige Felder wie MD_RECORDDESCRIPTION oder MD_ACCESSLICENSE neu angelegt werden.
4.4.0
Goobi viewer Core
Auf PDF-Titelseiten im Goobi viewer ist die Unterstützung für hebräische Sprachzeichen hinzugefügt worden. Dafür müssen in der fop.xconf die Schriften definiert und die TTF Dateien daneben abgelegt werden:
Anschließend noch in dem Ordner /opt/digiverso/viewer/config/PdfTitlePage/ in den *.fo Dateien die Zeile <fo:flow ...> suchen und darin das Attribut font-family="opensans, unicode" ergänzen.
<!-- Alt -->
<fo:flow flow-name="xsl-region-body">
<!-- Neu -->
<fo:flow flow-name="xsl-region-body" font-family="opensans, unicode">
Weiter ist der schon länger als veraltet gekennzeichnete Schalter <alwaysDisplayDocstruct /> aus der Sektion <toc /> entfallen. Wenn ein entsprechender Eintrag in der lokalen config_viewer.xml existiert kann dieser gelöscht werden. Die Funktionalität wird jetzt über den Bereich <labelConfig /> zur Verfügung gestellt.
Für den Zugriff auf das IIIF Manifest eines Werkes und den Download von Metadaten stehen neue Rechte zur Verfügung. Diese werden nicht automatisch hinzugefügt.
Bei einem Update auf die Version 4.4.0 müssen im Backend konfigurierte Lizenzen geprüft und die neuen Rechte explizit neu hinzugefügt werden!
Goobi viewer Indexer
Wenn DataRepositories und dabei die RemainingSpaceStrategy verwendet werden, muss der Token zur WebAPI des Goobi viewer Cores hinterlegt werden, damit dieser beim Verschieben zwischen den DataRepositories informiert wird:
Sofern die Unterstützung der Recht-Nach-Links Leserichtung für einzelne Werke gewünscht ist muss das folgende Feld in die Konfigurationsdatei hinzugefügt werden. Dafür muss sichergestellt sein, dass der intranda-Namespace definiert ist:
Bei einem Update auf die Version 4.4.0 des Goobi viewer Connectors ist in der lokalen config_oai.xml zu prüfen ob dort der Schalter <contentApiUrl /> gesetzt ist und wenn ja muss dieser zu <restApiUrl /> umbenannt und der Pfad angepasst werden::
config_oai.xml
<!-- Alt -->
<contentApiUrl>http://localhost:8080/viewer/rest/content/</contentApiUrl>
<!-- Neu -->
<restApiUrl>http://localhost:8080/viewer/rest/</restApiUrl>
Weiter kann optional das Inhaltsverzeichnis eines Werkes als Text im DublinCore Feld dc:description ausgegeben werden. Dafür ist ein Goobi viewer Core ab der Version 4.4.0 notwendig, da ansonsten der notwendige REST Endpoint nicht zur Verfügung steht.
Das Inhaltsverzeichnis in dc:description kann wie folgt konfiguriert werden:
Durch die Refaktorisierung der Bücherregale/Merklisten Funktionalität hin zu einheitlicher Benennung aller Funktionen in im Java-Stack, XHTML-Seiten bis hin zu CSS und JavaScript hat sich auch der Schalter in der Konfigurationsdatei geändert. Bei einem Update auf die Version 4.3.0 muss in der lokalen config_viewer.xml der Schalter <bookshelves /> zu <bookmarks /> umbenannt werden: