Skip to content

Islandora 2.0.0 Release Notes / Upgrade Instructions

Update to PHP 7.4

Upstream dependencies have forced us to upgrade PHP to 7.4. How to do this varies by operating system, but for Ubuntu 18.04 the following will work:

  • sudo apt install software-properties-common
  • sudo add-apt-repository ppa:ondrej/php
  • sudo apt update
  • sudo apt install php7.4
  • sudo apt install php7.4-curl php7.4-xml php7.4-gd php7.4-imap php7.4-mbstring php7.4-mysql

Updating Alpaca

Here's the steps to update Alpaca code in general. None of this is specific to this release, it's just the process.

Move your blueprint config out of the deploy directory temporarily

  • mv /opt/karaf/deploy/ca.islandora.* /opt/karaf

Now we'll uninstall the old features and install the new ones. We're assuming you're currently on 1.0.3 and want to update to 1.0.5, but you may be on an older version. Keep that in mind when copy/pasting these commands.

  • /opt/karaf/bin/client "feature:uninstall islandora-connector-derivative"
  • /opt/karaf/bin/client "feature:uninstall islandora-indexing-fcrepo"
  • /opt/karaf/bin/client "feature:uninstall islandora-indexing-triplestore"
  • /opt/karaf/bin/client "feature:uninstall islandora-http-client"
  • /opt/karaf/bin/client "feature:repo-remove mvn:ca.islandora.alpaca/islandora-karaf/1.0.3/xml/features"
  • /opt/karaf/bin/client "feature:repo-add mvn:ca.islandora.alpaca/islandora-karaf/1.0.5/xml/features"
  • /opt/karaf/bin/client "feature:install islandora-http-client"
  • /opt/karaf/bin/client "feature:install islandora-indexing-triplestore"
  • /opt/karaf/bin/client "feature:install islandora-indexing-fcrepo"
  • /opt/karaf/bin/client "feature:install islandora-connector-derivative"

Move the blueprint files back to the deploy folder to deploy the derivative routes

  • mv /opt/karaf/ca.islandora.* /opt/karaf/deploy

You can check that everything is working with

  • /opt/karaf/bin/client "la | grep islandora"

If all the bundles have a state of Active, then you're all good!

Configuring Alpaca Timeouts

Some users have experienced timeouts when generating derivatives. We've added the ability to set the timeout length to your routes. In order to do so, edit each ca.islandora.* file in the deploy directory and replace

<bean id="http" class="org.apache.camel.component.http4.HttpComponent"/>
<bean id="https" class="org.apache.camel.component.http4.HttpComponent"/>

with

<bean id="requestConfigConfigurer" class="ca.islandora.alpaca.connector.derivative.RequestConfigConfigurer">
  <property name="connectionRequestTimeoutMs" value="10000"/>
  <property name="connectTimeoutMs" value="10000"/>
  <property name="socketTimeoutMs" value="10000"/>
</bean>

<bean id="http" class="org.apache.camel.component.http4.HttpComponent">
  <property name="httpClientConfigurer" ref="requestConfigConfigurer"/>
</bean>

<bean id="https" class="org.apache.camel.component.http4.HttpComponent">
  <property name="httpClientConfigurer" ref="requestConfigConfigurer"/>
</bean>

You can set the timeout values to whatever you like, we're using 10000 in this example.

Update Drupal core and modules

To get the latest Drupal code, edit your composer.json file and change the islandora/* packages versions' to the latest (2.0.0 for most). Then run the following command to update them, your dependencies, and Drupal core:

sudo php -d memory_limit=-1 `which composer` update --with-all-dependencies

Afterwards, you need to run drush updb or visit /update.php in your browser to trigger the database updates. This includes important changes, like stripping out configuration we no longer use as well as a fix to support large media (>2.2 GB). The database updates may take a while depending on how many media you have.

Update Crayfish and Remove Gemini

We removed the Gemini microservice and pushed its code into Crayfish-Commons so that it can be used by the other microservices and Drupal modules. Once you've updated your Drupal installation, Gemini will no longer be utilized. It will still, however, need to be removed. It is recommended to test this method in a staging/development environment before running in your production environment.

  1. Make sure you have the 2.0.0 version of the islandora module. If you followed the steps above to update Drupal core and its modules, you'll have this.
  2. Import two new Islandora views

    i. This can be done by coping the views into a new directory and using drush such as

    mkdir /var/www/html/drupal/config/1time
    cp /var/www/html/drupal/web/modules/contrib/islandora/modules/islandora_core_feature/config/install/views.view.all_taxonomy_terms.yml /var/www/html/drupal/config/1time/
    cp /var/www/html/drupal/web/modules/contrib/islandora/modules/islandora_core_feature/config/install/views.view.non_fedora_files.yml /var/www/html/drupal/config/1time/
    drush config:import --partial --source /var/www/html/drupal/config/1time
    
    ii. It can also be done through the UI at /admin/config/development/configuration/single/import 4. Update Crayfish to 2.0.0 1. cd /var/www/html/Crayfish 2. git fetch origin --tags 3. git checkout 2.0.0 6. Run composer install for Milliner such as cd /var/www/html/Crayfish/Milliner && composer install 7. Run composer install for Recast such as cd /var/www/html/Crayfish/Recast && composer install 8. Update the Recast config 1. cd /var/www/html/Crayfish/Recast/cfg 2. open config.yaml 3. Remove gemini_base_url 4. Update base_url in fedora_resource section. It should contain a value something like http://localhost:8080/fcrepo/rest 8. Clear your cache in Drupal using Drush (cd /var/www/html/drupal && drush cr) or the UI. 9. Restart apache sudo systemctl restart apache2 9. Test to make sure you can view existing objects in Fedora by going to the Drupal UI and clicking one of the Fedora URI links 10. Create a new object and make sure it persists to Fedora and the Fedora URI link resolves correctly. Make sure that no new entries get added to Gemini. 11. Once you've confirmed everything is working as expected, you can then remove Gemini like 1. rm /var/www/html/Crayfish/Gemini 2. Remove the gemini database and the associated mysql user 3. Remove the vhost file for gemini: sudo rm /etc/apache2/conf-enabled/Gemini.conf 4. Restart apache: sudo systemctl restart apache2

Adding Captions

You can now add captions to A/V content! If you are starting with a new installation, there's nothing to do, but if you have an existing install, here's how to configure Drupal to display captions/

  1. Make sure you have the 2.0.0 version of islandora and islandora_defaults. If you followed the steps above to update Drupal core and its modules, you'll have this.
  2. Selectively import the following configurations from islandora_defaults using the Features UI (recommended) or by copying them into a temporary directory and using drush to do a partial config import.
    1. core.entity_form_display.media.audio.default
    2. core.entity_form_display.media.video.default
    3. core.entity_view_display.media.audio.default
    4. core.entity_view_display.media.audio.source
    5. core.entity_view_display.media.video.default
    6. core.entity_view_display.media.video.source
    7. field.field.media.audio.field_track
    8. field.field.media.video.field_track
    9. field.storage.media.field_track
  3. Clear your drupal cache drush cr
  4. You should now see a "track" field on audio and video media objects

Last update: October 11, 2023