diff --git a/Vagrantfile b/Vagrantfile index 376ed03..8f1cf06 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -42,7 +42,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.provision :shell, path: "./scripts/solr.sh", :args => shared_dir config.vm.provision :shell, path: "./scripts/gsearch.sh", :args => shared_dir config.vm.provision :shell, path: "./scripts/drupal.sh", :args => shared_dir - config.vm.provision :shell, path: "./scripts/islandora_modules.sh", :args => shared_dir + config.vm.provision :shell, path: "./scripts/islandora_modules.sh", :args => shared_dir, :privileged => false config.vm.provision :shell, path: "./scripts/islandora_libraries.sh", :args => shared_dir, :privileged => false config.vm.provision :shell, path: "./scripts/tesseract.sh", :args => shared_dir config.vm.provision :shell, path: "./scripts/ffmpeg.sh", :args => shared_dir diff --git a/configs/islandora-module-list-sans-tuque.txt b/configs/islandora-module-list-sans-tuque.txt new file mode 100644 index 0000000..ff74110 --- /dev/null +++ b/configs/islandora-module-list-sans-tuque.txt @@ -0,0 +1,44 @@ +islandora +islandora_bagit +islandora_batch +islandora_book_batch +islandora_bookmark +islandora_checksum +islandora_checksum_checker +islandora_fits +islandora_image_annotation +islandora_importer +islandora_internet_archive_bookreader +islandora_jwplayer +islandora_marcxml +islandora_oai +islandora_ocr +islandora_openseadragon +islandora_paged_content +islandora_pathauto +islandora_pdfjs +islandora_premis +islandora_scholar +islandora_simple_workflow +islandora_solr_facet_pages +islandora_solr_metadata +islandora_solr_search +islandora_solr_views +islandora_solution_pack_audio +islandora_solution_pack_book +islandora_solution_pack_collection +islandora_solution_pack_compound +islandora_solution_pack_disk_image +islandora_solution_pack_entities +islandora_solution_pack_image +islandora_solution_pack_large_image +islandora_solution_pack_newspaper +islandora_solution_pack_pdf +islandora_solution_pack_video +islandora_solution_pack_web_archive +islandora_videojs +islandora_xacml_editor +islandora_xml_forms +islandora_xmlsitemap +objective_forms +php_lib diff --git a/configs/islandora.drush.make b/configs/islandora.drush.make deleted file mode 100644 index 99725c3..0000000 --- a/configs/islandora.drush.make +++ /dev/null @@ -1,68 +0,0 @@ -; Run this from within the sites/default or sites/all directory, whichever you prefer: -; drush make --yes --no-core --contrib-destination=. islandora.drush.make - -; Core version -core = 7.x - -; Should always be 2. -api = 2 - -; Modules - -; Defaults that apply to all modules. -defaults[projects][type] = "module" -defaults[projects][download][type] = "git" -defaults[projects][download][branch] = "7.x" -defaults[projects][download][overwrite] = TRUE - -projects[islandora][download][url] = "http://github.com/Islandora/islandora.git" -projects[islandora_bagit][download][url] = "http://github.com/Islandora/islandora_bagit.git" -projects[islandora_batch][download][url] = "http://github.com/Islandora/islandora_batch.git" -projects[islandora_book_batch][download][url] = "http://github.com/Islandora/islandora_book_batch.git" -projects[islandora_bookmark][download][url] = "http://github.com/Islandora/islandora_bookmark.git" -projects[islandora_checksum][download][url] = "http://github.com/Islandora/islandora_checksum.git" -projects[islandora_checksum_checker][download][url] = "http://github.com/Islandora/islandora_checksum_checker.git" -projects[islandora_fits][download][url] = "http://github.com/Islandora/islandora_fits.git" -projects[islandora_image_annotation][download][url] = "http://github.com/Islandora/islandora_image_annotation.git" -projects[islandora_importer][download][url] = "http://github.com/Islandora/islandora_importer.git" -projects[islandora_internet_archive_bookreader][download][url] = "http://github.com/Islandora/islandora_internet_archive_bookreader.git" -projects[islandora_jwplayer][download][url] = "http://github.com/Islandora/islandora_jwplayer.git" -projects[islandora_marcxml][download][url] = "http://github.com/Islandora/islandora_marcxml.git" -projects[islandora_oai][download][url] = "http://github.com/Islandora/islandora_oai.git" -projects[islandora_ocr][download][url] = "http://github.com/Islandora/islandora_ocr.git" -projects[islandora_openseadragon][download][url] = "http://github.com/Islandora/islandora_openseadragon.git" -projects[islandora_paged_content][download][url] = "http://github.com/Islandora/islandora_paged_content.git" -projects[islandora_pathauto][download][url] = "http://github.com/Islandora/islandora_pathauto.git" -projects[islandora_pdfjs][download][url] = "http://github.com/Islandora/islandora_pdfjs.git" -projects[islandora_premis][download][url] = "http://github.com/Islandora/islandora_premis.git" -projects[islandora_scholar][download][url] = "http://github.com/Islandora/islandora_scholar.git" -projects[islandora_simple_workflow][download][url] = "http://github.com/Islandora/islandora_simple_workflow.git" -projects[islandora_solr_facet_pages][download][url] = "http://github.com/Islandora/islandora_solr_facet_pages.git" -projects[islandora_solr_metadata][download][url] = "http://github.com/Islandora/islandora_solr_metadata.git" -projects[islandora_solr_search][download][url] = "http://github.com/Islandora/islandora_solr_search.git" -projects[islandora_solr_views][download][url] = "http://github.com/Islandora/islandora_solr_views.git" -projects[islandora_solution_pack_audio][download][url] = "http://github.com/Islandora/islandora_solution_pack_audio.git" -projects[islandora_solution_pack_book][download][url] = "http://github.com/Islandora/islandora_solution_pack_book.git" -projects[islandora_solution_pack_collection][download][url] = "http://github.com/Islandora/islandora_solution_pack_collection.git" -projects[islandora_solution_pack_compound][download][url] = "http://github.com/Islandora/islandora_solution_pack_compound.git" -projects[islandora_solution_pack_disk_image][download][url] = "http://github.com/Islandora/islandora_solution_pack_disk_image.git" -projects[islandora_solution_pack_entities][download][url] = "http://github.com/Islandora/islandora_solution_pack_entities.git" -projects[islandora_solution_pack_image][download][url] = "http://github.com/Islandora/islandora_solution_pack_image.git" -projects[islandora_solution_pack_large_image][download][url] = "http://github.com/Islandora/islandora_solution_pack_large_image.git" -projects[islandora_solution_pack_newspaper][download][url] = "http://github.com/Islandora/islandora_solution_pack_newspaper.git" -projects[islandora_solution_pack_pdf][download][url] = "http://github.com/Islandora/islandora_solution_pack_pdf.git" -projects[islandora_solution_pack_video][download][url] = "http://github.com/Islandora/islandora_solution_pack_video.git" -projects[islandora_solution_pack_web_archive][download][url] = "http://github.com/Islandora/islandora_solution_pack_web_archive.git" -projects[islandora_videojs][download][url] = "http://github.com/Islandora/islandora_videojs.git" -projects[islandora_xacml_editor][download][url] = "http://github.com/Islandora/islandora_xacml_editor.git" -projects[islandora_xml_forms][download][url] = "http://github.com/Islandora/islandora_xml_forms.git" -projects[islandora_xmlsitemap][download][url] = "http://github.com/Islandora/islandora_xmlsitemap.git" -projects[objective_forms][download][url] = "http://github.com/Islandora/objective_forms.git" -projects[php_lib][download][url] = "http://github.com/Islandora/php_lib.git" - -; Libraries - -libraries[tuque][download][type] = "git" -libraries[tuque][download][overwrite] = TRUE -libraries[tuque][download][branch] = "1.x" -libraries[tuque][download][url] = "http://github.com/Islandora/tuque.git" diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 549ff1a..6eea171 100644 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -75,5 +75,8 @@ echo "CREATE USER 'fedoraAdmin'@'localhost' IDENTIFIED BY 'fedoraAdmin'" | mysql echo "GRANT ALL ON fedora3.* TO 'fedoraAdmin'@'localhost'" | mysql -uroot -pislandora echo "flush privileges" | mysql -uroot -pislandora -# Add vagrant user to Apache user's group -usermod -a -G www-data vagrant +# Add web group, and put some users in it +groupadd web +usermod -a -G web www-data +usermod -a -G web vagrant +usermod -a -G web tomcat7 diff --git a/scripts/fcrepo.sh b/scripts/fcrepo.sh index 992dd50..5f50b04 100644 --- a/scripts/fcrepo.sh +++ b/scripts/fcrepo.sh @@ -56,13 +56,19 @@ echo "Sleeping while Fedora starts for the first time." sleep 45 # Setup XACML Policies -rm -v $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-purge-* +rm /usr/local/fedora/data/fedora-xacml-policies/repository-policies/default/deny-apim-if-not-localhost.xml +rm $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-inactive-or-deleted-objects-or-datastreams-if-not-administrator.xml +rm $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-policy-management-if-not-administrator.xml +rm $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-unallowed-file-resolution.xml + cd $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/ git clone https://github.com/Islandora/islandora-xacml-policies.git islandora +rm $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/islandora/permit-apim-to-anonymous-user.xml +rm $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/islandora/permit-upload-to-anonymous-user.xml # Work around for issue #32 : Authentication error with Fedora API-M # This probably isn't ideal, and I'm not sure if this is just an issue of working from a local desktop to vagrant vm, or something else sinister. -sed -i 's|0:0:0:0:0:0:0:1%.+|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|' /usr/local/fedora/data/fedora-xacml-policies/repository-policies/default/deny-apim-if-not-localhost.xml +#sed -i 's|0:0:0:0:0:0:0:1%.+|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|' /usr/local/fedora/data/fedora-xacml-policies/repository-policies/default/deny-apim-if-not-localhost.xml # Setup Drupal filter wget -q -O "/tmp/fcrepo-drupalauthfilter-$FEDORA_VERSION.jar" https://github.com/Islandora/islandora_drupal_filter/releases/download/v7.1.3/fcrepo-drupalauthfilter-$FEDORA_VERSION.jar diff --git a/scripts/islandora_libraries.sh b/scripts/islandora_libraries.sh index 9749065..1a328ff 100644 --- a/scripts/islandora_libraries.sh +++ b/scripts/islandora_libraries.sh @@ -16,8 +16,5 @@ sudo drush -v colorbox-plugin sudo drush -v openseadragon-plugin sudo drush -v -y en islandora_openseadragon -sudo chown -hR www-data:www-data /var/www/drupal/sites/all/libraries -sudo chmod -R 775 /var/www/drupal/sites/all/libraries - # After last drush call from root user, change cache permissions sudo chown -R vagrant:vagrant $HOME_DIR/.drush diff --git a/scripts/islandora_modules.sh b/scripts/islandora_modules.sh index 76d846e..a305e31 100644 --- a/scripts/islandora_modules.sh +++ b/scripts/islandora_modules.sh @@ -6,18 +6,31 @@ if [ -f "$SHARED_DIR/configs/variables" ]; then . $SHARED_DIR/configs/variables fi -cd /var/www/drupal/sites/all +# Permissions and ownership +sudo chown -hR vagrant:web /var/www/drupal/sites/all/libraries +sudo chown -hR vagrant:web /var/www/drupal/sites/all/modules +sudo chmod -R 775 /var/www/drupal/sites/all/libraries +sudo chmod -R 775 /var/www/drupal/sites/all/modules -drush make --yes --no-core --contrib-destination=. $SHARED_DIR/configs/islandora.drush.make +# Clone all Islandora Foundation modules +cd /var/www/drupal/sites/all/modules +cat $SHARED_DIR/configs/islandora-module-list-sans-tuque.txt | while read LINE; do + git clone https://github.com/Islandora/$LINE +done +# Clone Tuque and BagItPHP +cd /var/www/drupal/sites/all if [ ! -d libraries ]; then mkdir libraries fi +cd /var/www/drupal/sites/all/libraries +git clone https://github.com/Islandora/tuque +git clone git://github.com/scholarslab/BagItPHP.git # Check for a user's .drush folder, create if it doesn't exist if [ ! -d "$HOME_DIR/.drush" ]; then mkdir "$HOME_DIR/.drush" - chown vagrant:vagrant $HOME_DIR/.drush + sudo chown vagrant:vagrant $HOME_DIR/.drush fi # Move OpenSeadragon drush file to user's .drush folder @@ -40,36 +53,13 @@ if [ -d "$HOME_DIR/.drush" -a -f "/var/www/drupal/sites/all/modules/islandora_in mv "/var/www/drupal/sites/all/modules/islandora_internet_archive_bookreader/islandora_internet_archive_bookreader.drush.inc" "$HOME_DIR/.drush" fi -# Enable all modules identified in the drush makefile -cd /var/www/drupal/sites/all/modules -# Extract all the module directory names from the drush makefile so we can loop through them -MODULES=$(grep -v "^;" $SHARED_DIR/configs/islandora.drush.make | grep -oh "projects\[[A-Za-z_]*\]" | sed "s/projects\[//" | sed "s/\]/ /" | tr -d '\n') -for MODULE in $MODULES -do - # Get the module's absolute path - MODULEPATH=/var/www/drupal/sites/all/modules/$MODULE - # For each module, find all its .info files (there could be more than one) - INFOFILES=$(find $MODULEPATH -name '*.info' -exec basename {} \;) - for INFOFILE in $INFOFILES - do - # Remove the .info extension - INFOFILE=$(echo $INFOFILE | sed "s/\.info$//") - drush --yes en $INFOFILE - done -done - -# Disable a module that was enabled in the preceding chainsaw massacre -drush --yes dis islandora_ingest_test - -# BagItPHP library -cd /var/www/drupal/sites/all/libraries -git clone git://github.com/scholarslab/BagItPHP.git - -# Permissions and ownership -chown -hR www-data:www-data /var/www/drupal/sites/all/libraries -chown -hR www-data:www-data /var/www/drupal/sites/all/modules -chmod -R 775 /var/www/drupal/sites/all/libraries -chmod -R 775 /var/www/drupal/sites/all/modules +drush -y -u 1 en php_lib islandora objective_forms +drush -y -u 1 en islandora_solr islandora_solr_metadata islandora_solr_facet_pages islandora_solr_views +drush -y -u 1 en islandora_basic_collection islandora_pdf islandora_audio islandora_book islandora_compound_object islandora_disk_image islandora_entities islandora_entities_csv_import islandora_basic_image islandora_large_image islandora_newspaper islandora_video islandora_web_archive +drush -y -u 1 en islandora_premis islandora_checksum islandora_checksum_checker +drush -y -u 1 en islandora_book_batch islandora_image_annotation islandora_pathauto islandora_pdfjs islandora_videojs islandora_jwplayer +drush -y -u 1 en xml_forms xml_form_builder xml_schema_api xml_form_elements xml_form_api jquery_update zip_importer islandora_basic_image islandora_bibliography islandora_compound_object islandora_google_scholar islandora_scholar_embargo islandora_solr_config citation_exporter doi_importer endnotexml_importer pmid_importer ris_importer +drush -y -u 1 en islandora_fits islandora_ocr islandora_oai islandora_marcxml islandora_simple_workflow islandora_xacml_api islandora_xacml_editor islandora_xmlsitemap colorbox islandora_internet_archive_bookreader islandora_bagit islandora_batch_report cd /var/www/drupal/sites/all/modules