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
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!
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.
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.
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.
-
Make sure you have the
2.0.0
version of theislandora
module. If you followed the steps above to update Drupal core and its modules, you'll have this. -
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
-
Update Crayfish to
2.0.0
cd /var/www/html/Crayfish
git fetch origin --tags
git checkout 2.0.0
-
Run composer install for Milliner such as
cd /var/www/html/Crayfish/Milliner && composer install
-
Run composer install for Recast such as
cd /var/www/html/Crayfish/Recast && composer install
-
Update the Recast config
cd /var/www/html/Crayfish/Recast/cfg
- open
config.yaml
- Remove
gemini_base_url
- Update
base_url
infedora_resource
section. It should contain a value something likehttp://localhost:8080/fcrepo/rest
-
Clear your cache in Drupal using Drush (
cd /var/www/html/drupal && drush cr
) or the UI. -
Restart apache
sudo systemctl restart apache2
-
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
-
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.
-
Once you've confirmed everything is working as expected, you can then remove Gemini like
rm /var/www/html/Crayfish/Gemini
- Remove the gemini database and the associated mysql user
- Remove the vhost file for gemini:
sudo rm /etc/apache2/conf-enabled/Gemini.conf
- Restart apache:
sudo systemctl restart apache2
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/
- 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. - Selectively import the following configurations from
islandora_defaults
using the Features UI (recommended) or by copying them into a temporary directory and usingdrush
to do a partial config import.- core.entity_form_display.media.audio.default
- core.entity_form_display.media.video.default
- core.entity_view_display.media.audio.default
- core.entity_view_display.media.audio.source
- core.entity_view_display.media.video.default
- core.entity_view_display.media.video.source
- field.field.media.audio.field_track
- field.field.media.video.field_track
- field.storage.media.field_track
- Clear your drupal cache
drush cr
- You should now see a "track" field on audio and video media objects