mlibrary / heliotrope

Codebase for Fulcrum, a Samvera-based digital publishing platform built by the University of Michigan Library
https://fulcrum.org
Apache License 2.0
45 stars 9 forks source link

upgrade FITS version #133

Closed acozine closed 8 years ago

acozine commented 8 years ago

install 0.10.1, test

acozine commented 8 years ago

http://projects.iq.harvard.edu/fits/downloads

acozine commented 8 years ago

None of the FITS 0.10.x versions works correctly with heliotrope as of today. I wonder if hydra-derivatives and/or hydra-file_characterization are compatible with the most recent FITS releases. Heliotrope is on hydra-derivatives 3.0.1 and hydra-file_characterization 0.3.3. I have not tested FITS 0.9.x, but 0.8.4 works for sure, so I'm declaring a dependency on that version for now.

mark-dce commented 8 years ago

I created a ticket in hydra-derivatives asking for clarification about which versions of FITS are compatible with the current release of hydra-derivatives: https://github.com/projecthydra/hydra-derivatives/issues/100

acozine commented 8 years ago

Justin's original report: I saw stuff in the logs about not being able to run DROID on Java 8, so I would think that (FITS) 0.10.1 would have fixed that.

mark-dce commented 8 years ago

According to Mike Giarlo, who just closed https://github.com/projecthydra/hydra-derivatives/issues/100, hydra-derivatives is known to support FITS 0.8.x (specifically 0.8.5) - see the updated readme here: https://github.com/projecthydra/hydra-derivatives#dependencies

mark-dce commented 8 years ago

I tested both FITS 0.8.6 (installed via home-brew) and FITS 0.10.2 (installed manually) and both work without issue in both alexandria and heliotrope.

It would be worth launching rescue-web to ensure that jobs are being processed without errors - for the manual install I needed to symlink fits.sh to fits and hardcode FITS_HOME infits-env.sh:

#!/bin/bash
#
# Sets up the environment for launching a FITS instance via
# either the fits.sh launcher, or the fits-ngserver.sh Nailgun server

#FITS_HOME=`dirname "$0"`
FITS_HOME="/usr/local/lib/fits-0.10.2"
export FITS_HOME
... #etc.

Though I'd think that if the 0.8.x ansible does this, it would work the same way for 0.10.x,, but it might be worth checking.

acozine commented 8 years ago

Mark's approach works beautifully: Copy the unzipped fits directory in its entirety to /usr/local/lib/fits-{{ fits_version }}, symlink /usr/local/lib/fits-{{ fits_version }}/fits to /usr/local/bin/fits and to /usr/local/bin/fits.sh; edit /usr/local/lib/fits-{{ fits_version }}/fits-env.sh to point FITS_HOME to the /usr/local/lib/fits-{{ fits_version }} directory, then symlink the edited fits-env.sh to /usr/local/bin/fits-env.sh. I've updated the Ansible scripts to install fits this way and press.curationexperts.com upgraded to 0.10.2. As a breadcrumb for others, if you see

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/bin/lib/slf4j-log4j12-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/bin/lib/tika-app-1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]

this method of installing fits will circumvent the issue. The older version of the Tika jar may be installed by Solr or ImageMagick.