<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.eprints.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Th.lauke%40arcor.de</id>
	<title>EPrints Documentation - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.eprints.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Th.lauke%40arcor.de"/>
	<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/Special:Contributions/Th.lauke@arcor.de"/>
	<updated>2026-08-19T23:11:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.8</generator>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Installing_EPrints_on_Debian/Ubuntu&amp;diff=17078</id>
		<title>Installing EPrints on Debian/Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Installing_EPrints_on_Debian/Ubuntu&amp;diff=17078"/>
		<updated>2026-05-27T09:35:10Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: Debian versions continued, wget installation simplified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{manual}}&lt;br /&gt;
[[Category:Debian and Ubuntu]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Ubuntu 22.04 LTS and Ubuntu 24.04 LTS (non-LTS versions not recommended)&lt;br /&gt;
* Debian 11 (Bullseye), Debian 12 (Bookworm) or Debian 13 (Trixie) - These are not as comprehensively tested as Ubuntu LTS versions.&lt;br /&gt;
&lt;br /&gt;
=== Dependencies and Pre-configuration ===&lt;br /&gt;
'''The ideal way to install from source is via git using the Core Git repositories [https://github.com/eprints/eprints3.4 EPrints 3.4] or [https://github.com/eprints/eprints EPrints 3.3], and installing from a source tarball is generally discouraged.'''&lt;br /&gt;
&lt;br /&gt;
'''Installing from source via git is now the recommended  way to install EPrints for production repositories, after having proved to be a useful installation method to those seeking to develop the EPrints code, develop a plugin or develop a Bazaar package too.'''&lt;br /&gt;
&lt;br /&gt;
First, as the root user install all the dependencies for EPrints ('''N.B.''' Some dependencies may not be able in certain versions of Debian/Ubuntu.  See [[#Operating System Version Specific Requirements|Operating System Version Specific Requirements]] towards the end of this page):&lt;br /&gt;
&lt;br /&gt;
 apt install perl libncurses6 libselinux1 apache2 libapache2-mod-perl2 libxml-libxml-perl \&lt;br /&gt;
   libunicode-string-perl libterm-readkey-perl libmime-lite-perl libmime-types-perl libdigest-sha-perl \&lt;br /&gt;
   libdbd-mysql-perl libxml-parser-perl libxml2-dev libxml-twig-perl libarchive-any-perl libjson-perl \&lt;br /&gt;
   liblwp-protocol-https-perl libtext-unidecode-perl lynx wget ghostscript poppler-utils antiword elinks \&lt;br /&gt;
   texlive-base texlive-binaries psutils imagemagick adduser tar gzip unzip libsearch-xapian-perl \&lt;br /&gt;
   libtex-encode-perl libio-string-perl python3-html2text make libexpat1-dev libxslt1-dev&lt;br /&gt;
&lt;br /&gt;
If you are installing on Ubuntu, install MySQL server and client:&lt;br /&gt;
&lt;br /&gt;
  apt install mysql-server mysql-client libmysqlclient-dev&lt;br /&gt;
&lt;br /&gt;
If you are installing on Debian, install MariaDB server and client:&lt;br /&gt;
&lt;br /&gt;
  apt install mariadb-server mariadb-client libmariadb-dev&lt;br /&gt;
&lt;br /&gt;
Next, create the eprints user&lt;br /&gt;
&lt;br /&gt;
 adduser eprints&lt;br /&gt;
&lt;br /&gt;
Now add the eprints user to the www-data group and vice-versa&lt;br /&gt;
&lt;br /&gt;
 usermod -a -G eprints www-data&lt;br /&gt;
 usermod -a -G www-data eprints&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Deploying EPrints Source ===&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.4.x for GitHub ====&lt;br /&gt;
&lt;br /&gt;
 apt install git&lt;br /&gt;
 mkdir /opt/eprints3&lt;br /&gt;
 chown eprints:eprints /opt/eprints3&lt;br /&gt;
 chmod 2775 /opt/eprints3&lt;br /&gt;
 su eprints&lt;br /&gt;
 git clone https://github.com/eprints/eprints3.4.git /opt/eprints3&lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git checkout tags/v3.4.7&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.4.x from files.eprints.org ====&lt;br /&gt;
&lt;br /&gt;
 cd /tmp/&lt;br /&gt;
 wget https://files.eprints.org/3288/1/eprints-3.4.7.tar.gz&lt;br /&gt;
 tar xzvf eprints-3.4.7.tar.gz&lt;br /&gt;
&lt;br /&gt;
If you want a publications flavoured repository, then also:&lt;br /&gt;
&lt;br /&gt;
 wget https://files.eprints.org/3288/2/eprints-3.4.7-flavours.tar.gz&lt;br /&gt;
 tar xzvf eprints-3.4.7-flavours.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then put in the prepared source code in place:&lt;br /&gt;
&lt;br /&gt;
 mv eprints-3.4.7 /opt/eprints3&lt;br /&gt;
 chmod 2775 /opt/eprints3&lt;br /&gt;
 chmod -R g+w /opt/eprints3/flavours/pub_lib&lt;br /&gt;
 chown -R eprints:eprints /opt/eprints3&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Next, as the eprints user copy &amp;lt;code&amp;gt;EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm.tmpl&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm&amp;lt;/code&amp;gt;, if it does not already exist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;EPRINTS_PATH&amp;lt;/code&amp;gt; should now always be &amp;lt;code&amp;gt;/opt/eprints3&amp;lt;/code&amp;gt;.  However, historically other paths have been used when EPrints was available as a Deb package.&lt;br /&gt;
&lt;br /&gt;
EPrints is now fully installed at &amp;lt;code&amp;gt;EPRINTS_PATH/&amp;lt;/code&amp;gt;. However, you will not yet have a running archive. Follow the [[Getting Started with EPrints 3]] instructions to set this up.&lt;br /&gt;
&lt;br /&gt;
=== Post-configuration ===&lt;br /&gt;
Next, add the file &amp;lt;code&amp;gt;/etc/apache2/sites-available/eprints.conf&amp;lt;/code&amp;gt; with the following line:&lt;br /&gt;
&lt;br /&gt;
 Include EPRINTS_PATH/cfg/apache.conf&lt;br /&gt;
&lt;br /&gt;
To enable this as root run the command:&lt;br /&gt;
&lt;br /&gt;
 root&amp;gt; a2ensite eprints&lt;br /&gt;
&lt;br /&gt;
Also it may be necessary to disable the default site otherwise the default Apache page will still be shown:&lt;br /&gt;
&lt;br /&gt;
 a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
Finally, restart Apache:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
You should now be able to access your vanilla repository at the hostname you specified when running '''epadmin create''' from the [[Getting Started with EPrints 3]] instructions.  You should then login as the admin user you created during this process and turn on the indexer.  This can be done by clicking on the '''Admin''' link under the Logged in menu, then clicking on the '''System Tools''' tab and finally the '''Start Indexer''' button.&lt;br /&gt;
&lt;br /&gt;
== Operating System Version Specific Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 22.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 22.04}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 24.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 24.04}}&lt;br /&gt;
&lt;br /&gt;
=== Debian Known Issues ===&lt;br /&gt;
See [[Debian Known Issues]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Upgrading_between_EPrints_3.4_versions&amp;diff=16735</id>
		<title>Upgrading between EPrints 3.4 versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Upgrading_between_EPrints_3.4_versions&amp;diff=16735"/>
		<updated>2025-02-28T14:28:37Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: check of configuration files added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Upgrading]]&lt;br /&gt;
This page is intended to provide guidance for those upgrading between versions of EPrints 3.4. (e.g. 3.4.1 to 3.4.2).  This is generally intended for those upgrading using source tarballs available on [https://files.eprints.org/ files.eprints.org] or upgrading tagged release from [https://github.com/eprints/eprints3.4/ EPrints 3.4 GitHub repository].  However, '''new versions of EPrints 3.4 will no longer be released as Linux packages''' (i.e. [http://rpm.eprints.org/eprints3.4 RPMs] or [http://deb.eprints.org/3.4 Debs]).&lt;br /&gt;
&lt;br /&gt;
== General Advice ==&lt;br /&gt;
If you are running EPrints as a virtual machine, then it is worthwhile taking a snapshot that you could revert back to this in the event of an unsuccessful upgrade. Otherwise, you should take the following backups before starting an upgrade:&lt;br /&gt;
; The EPrints database &lt;br /&gt;
: This will likely have the same name as the archive.&lt;br /&gt;
; The documents directory&lt;br /&gt;
: This is the ''documents'' directory, directly under the archive's directory (i.e. ''/opt/eprints3/archives/&amp;lt;ARCHIVE_NAME&amp;gt;/'').&lt;br /&gt;
; The Xapian index&lt;br /&gt;
: This is in the ''var'' directory of the archive under the directory named or starting ''xapian''.&lt;br /&gt;
; Your EPrints archive&lt;br /&gt;
: All the directories and any files in your archive, '''except''': ''documents'' (see above), ''html'' and ''var'' ('''except''' ''xapian'', see above). If you have multiple archives be sure to backup each one.&lt;br /&gt;
; The current EPrints codebase&lt;br /&gt;
: In case any changes have been made to this.  These may be needed if you have to rollback an upgrade or also apply these changes if they are needed in the upgraded version of EPrints.  All directories in the EPrints path (e.g. /opt/eprints3/) should be backed up '''except''': ''archives'' (see above), ''debian'', ''license'', ''pod'', ''testdata'', ''tests'',''tmp'' and ''var''.  No files in the top level EPrints path directory need to be backed up.&lt;br /&gt;
&lt;br /&gt;
Again, if you have the ability to take a virtual machine snapshot of your EPrints repository, it is worth using this to produce a clone, (if you do not already have a test or pre-production server version of your EPrints repository).  This will allow you to check if you will have any snags either with the upgrade process or with the upgraded repository itself.  It should also allow you to refine your upgrade schedule for your live EPrints repository to reduce the amount of scheduled downtime required.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Schedules ==&lt;br /&gt;
It would be expected that you have scheduled downtime (at least a day) and ideally try out the upgrade schedule on a cloned instance of your EPrints repository.  If you tested the upgrade schedule on a clone, actual downtime (or more accurately at-risk period) will probably be less than an hour.&lt;br /&gt;
&lt;br /&gt;
=== From a source tarball ===&lt;br /&gt;
1. Download the source tarball for both your current version of EPrints (e.g. 3.4.1) and your intended new version (e.g. 3.4.3) from [https://files.eprints.org/ files.eprints.org] and unpack into a separate directory on your EPrints repository server.  E.g.&lt;br /&gt;
 tar -xzvf eprints-3.4.1.tar.gz /home/eprints/&lt;br /&gt;
 tar -xzvf eprints-3.4.1-flavours.tar.gz /home/eprints/&lt;br /&gt;
 tar -xzvf eprints-3.4.3.tar.gz /home/eprints/&lt;br /&gt;
 tar -xzvf eprints-3.4.3-flavours.tar.gz /home/eprints/&lt;br /&gt;
&lt;br /&gt;
2. Compare the code to see if any critical changes have been made to the core codebase:&lt;br /&gt;
 diff -x archives -x cfg -x tmp -rq /opt/eprints3 /home/eprints/eprints-3.4.1 | grep -v &amp;quot;/\(ingredients\|var\)&amp;quot;&lt;br /&gt;
Depending on your level of customization you should also pay attention to the results of&lt;br /&gt;
 diff -rq /home/eprints/eprints3.4.3/flavours/pub_lib/defaultcfg/ /home/eprints/eprints3.4.1/flavours/pub_lib/defaultcfg/&lt;br /&gt;
or the equivalent command for the other flavours, or for a Zero EPrints repository&lt;br /&gt;
 diff -rq /home/eprints/eprints3.4.3/lib/defaultcfg_zero /home/eprints/eprints3.4.1/lib/defaultcfg_zero&lt;br /&gt;
and even&lt;br /&gt;
 diff -rq /home/eprints/eprints3.4.3/flavours/pub_lib/cfg.d/ /home/eprints/eprints3.4.1/flavours/pub_lib/cfg.d/&lt;br /&gt;
 diff -rq /home/eprints/eprints3.4.3/lib/cfg.d/ /home/eprints/eprints3.4.1/lib/cfg.d/ &lt;br /&gt;
 diff -rq /home/eprints/eprints3.4.3/lib/syscfg.d/ /home/eprints/eprints3.4.1/lib/syscfg.d/ &lt;br /&gt;
One of the first two directories was used for the initial configuration of your archive, and the latters control your repository by default; each of them could be overridden by your customized versions ...&lt;br /&gt;
Decide whether any personal version is still necessary, or meanwhile obsolete!&lt;br /&gt;
&lt;br /&gt;
3. If there are any changes check to see if the change is present in the new version of EPrints. E.g.:&lt;br /&gt;
 diff /opt/eprints3/flavours/pub_lib/inc /home/eprints/eprints-3.4.1/flavours/pub_lib/inc&lt;br /&gt;
 diff /opt/eprints3/flavours/pub_lib/inc /home/eprints/eprints-3.4.3/flavours/pub_lib/inc&lt;br /&gt;
If the files in &amp;lt;Code&amp;gt;/opt/eprints3/&amp;lt;/Code&amp;gt; are the same as that in the latest version (e.g. &amp;lt;Code&amp;gt;/home/eprints-3.4.3/&amp;lt;/Code&amp;gt;) then no change is required.  If some are not present in the latest version you need to consider whether they can/should be copied across (e.g. into &amp;lt;Code&amp;gt;/home/eprints/eprints-3.4.3/flavours/pub_lib/inc&amp;lt;/Code&amp;gt;). It is likely new ingredients will be added to a flavours inc file between versions, so this file is particular important to check so your repository's local modifications to this file and modifications in the latest version of EPrints can be reconciled.&lt;br /&gt;
&lt;br /&gt;
4. If your repository has any Bazaar plug-ins installed go to the Eprints Bazaar page on your repository via the Admin menu and download each one individually from the ''Developer Tools'' tab.&lt;br /&gt;
&lt;br /&gt;
5. Stop the webserver and EPrints indexer on your repository server and check they have stopped running:&lt;br /&gt;
 systemctl stop httpd&lt;br /&gt;
 ps aux | grep httpd&lt;br /&gt;
 /opt/eprints3/bin/indexer stop&lt;br /&gt;
 ps aux | grep indexer&lt;br /&gt;
''httpd'' is for RHEL-based Linux OS, for Debian-based Linux OS use ''apache2''.&lt;br /&gt;
&lt;br /&gt;
6. As root, move the new version of EPrints (with any ported changes, from step 3) to &amp;lt;Code&amp;gt;/opt/eprints3-new&amp;lt;/code&amp;gt;&lt;br /&gt;
 mv /home/eprints-3.4.3 /opt/eprints3-new&lt;br /&gt;
&lt;br /&gt;
7. As the eprints user move the contents of the current archives into the new directory:&lt;br /&gt;
 mv /opt/eprints3/archives/* /opt/eprints3-new/archives/&lt;br /&gt;
If &amp;lt;Code&amp;gt;/opt/eprints3/archives&amp;lt;/Code&amp;gt; or any of its archives are on a different disk partition, this may take a long time and the partition you are moving it to may not be big enough.  It may be better to figure out an alternative way of updating the other EPrints directories without moving the archive between disk partitions and then switching round the eprints directories (step 9 below).&lt;br /&gt;
&lt;br /&gt;
8. As the eprints user copy across ingredients ('''except''' the bazaar and jquery ingredient) to the new version:&lt;br /&gt;
 rsync -a --exclude=bazaar --exclude=jquery /opt/eprints3/ingredients/ /opt/eprints3-new/ingredients/&lt;br /&gt;
&lt;br /&gt;
9. As root, switch round the old and new eprints directories:&lt;br /&gt;
 mv /opt/eprints3 /opt/eprints3-old&lt;br /&gt;
 mv /opt/eprints3-new /opt/eprints3&lt;br /&gt;
&lt;br /&gt;
10. As the eprints user, test EPrints is in a good state:&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
If you have various Bazaar plug-ins installed, it is likely that this will report issues.  If so you will need to disable these files until you can re-install the Bazaar plug-ins. E.g.&lt;br /&gt;
 cd /opt/eprints3/archives/&amp;lt;ARCHIVE_NAME&amp;gt;/cfg/cfg.d/&lt;br /&gt;
 rm ../epm/*&lt;br /&gt;
 mv z_orcid_support.pl z_orcid_support.pl.disabled&lt;br /&gt;
 mv zz_hefce_oa_fields.pl zz_hefce_oa_fields.pl.disabled&lt;br /&gt;
 mv zz_rioxx2.pl zz_rioxx2.pl.disabled&lt;br /&gt;
 mv z_meprints.pl z_meprints.pl.disabled &lt;br /&gt;
 mv kultur.pl kultur.pl.disabled&lt;br /&gt;
&lt;br /&gt;
11. Assuming EPrints is (now) in a good state, regenerate EPrints' Apache configuration:&lt;br /&gt;
 /opt/eprints3/bin/generate_apacheconf --system --replace&lt;br /&gt;
&lt;br /&gt;
12. As root, check the Apache configuration is sound and restart the webserver:&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
 systemctl start httpd&lt;br /&gt;
For Debian-based LinuxOS use:&lt;br /&gt;
 apache2ctl configtest&lt;br /&gt;
 systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
13. Load up your repository in a web browser, login and go to the EPrints Bazaar page via the Admin menu.  Install all the Bazaar plug-ins you downloaded in step 4.  You can do this by scrolling to the bottom of the ''Available'' tab and using the ''Upload and Install'' section.  Once you have re-installed all the Bazaar plug-ins, you can move back all the files you disabled in step 10.  Then use ''epadmin'' to re-test and restart the webserver:&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
 systemctl start httpd&lt;br /&gt;
&lt;br /&gt;
14. Now using your web browser do a thorough test of both the functionality and the appearance/layout of your repository and make tweaks to your local archive configuration as necessary (e.g. modify the CSS).&lt;br /&gt;
&lt;br /&gt;
13. Finally, as the eprints user, restart the indexer.&lt;br /&gt;
 /opt/eprints3/bin/indexer start&lt;br /&gt;
&lt;br /&gt;
It is advised that you keep the &amp;lt;Code&amp;gt;/opt/eprints3-old&amp;lt;/Code&amp;gt; directory for a while (at least a month) in case you spot any unexpected problems.  Worse case scenario you can revert back to this version by doing steps 7 and 9 in reverse.  However, typically it is useful as a reference if you forgot to port a bespoke core code change of your old version of EPrints or a change you did port does not work as expected.&lt;br /&gt;
&lt;br /&gt;
=== From GitHub release ===&lt;br /&gt;
'''N.B. These instructions are a work in progress.'''&lt;br /&gt;
&lt;br /&gt;
Before staring check that no critical files have been modified in the core codebase.  &lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git status&lt;br /&gt;
The only file that should have been modified (assuming you are running a publications flavour of EPrints) is ''flavours/pub_lib/inc''.  &lt;br /&gt;
&lt;br /&gt;
There may be various new directories/files under the ''lib'' and ''ingredients'' directories.  These will most likely have been created as a result of installing Bazaar plug-ins or EPrints ingredients.  You should make a note of these and check to see that they are present after the upgrade schedule has been completed.  &lt;br /&gt;
&lt;br /&gt;
If there are modified files (according to ''git status''), you should similarly make a note of these and the changes made, so it can be checked if either these changes have already been applied in the upgraded versions of these files or that they need to be re-applied after upgrading.  &lt;br /&gt;
&lt;br /&gt;
If ''git status'' finds missing files, then similarly these should be checked to make sure they are not present after completing your upgrade and remove them if they still exist.  They were most likely removed to deliberately disable a piece of unwanted functionality.  Although generally it should be possible to disable this with configuration. &lt;br /&gt;
&lt;br /&gt;
If only the flavour's inc file is modified and the only other things ''git status'' shows are additional untracked files, then it is safe to do an '''In-place Upgrade'''.  Otherwise, you will want to do a '''Clean Upgrade'''.&lt;br /&gt;
&lt;br /&gt;
==== In-place Upgrade ====&lt;br /&gt;
All steps should be done as the eprints users, although some commands may prompt for a root password.&lt;br /&gt;
&lt;br /&gt;
1. Stop the webserver and EPrints indexer.&lt;br /&gt;
 apachectl graceful-stop&lt;br /&gt;
 /opt/eprints3/bin/indexer stop&lt;br /&gt;
&lt;br /&gt;
2. Make a copy of the flavour's inc file:&lt;br /&gt;
 cp /opt/eprints3/flavours/FLAVOUR_lib/inc /home/eprints/inc.backup&lt;br /&gt;
&lt;br /&gt;
3. Get the latest code version. This can be done with the following commands (substituting X for the latest version):&lt;br /&gt;
 git fetch&lt;br /&gt;
 git checkout v3.4.X  &lt;br /&gt;
&lt;br /&gt;
4. Check if the flavour's inc file has been reverted, if it is move back the backup to re-update it&lt;br /&gt;
 mv /home/eprints/inc.backup /opt/eprints3/flavours/FLAVOUR_lib/inc&lt;br /&gt;
&lt;br /&gt;
5. Test the new configuration and fix ans issues reported.&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
&lt;br /&gt;
6. Update the database schema for any changes between versions&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
7. Regenerate the EPrints Apache configuration, just in case there have been any improvements to this in the new version: &lt;br /&gt;
 /opt/eprints3/bin/generate_apacheconf --system --replace&lt;br /&gt;
&lt;br /&gt;
8. Start the webserver and EPrints Indexer&lt;br /&gt;
 apachectl start&lt;br /&gt;
 /opt/eprints3/bin/indexer start&lt;br /&gt;
&lt;br /&gt;
==== Clean Upgrade ====&lt;br /&gt;
Step 1 needs to be done as the root.  Steps 2 and onwards should be done as the eprints users, although some commands may prompt for a root password.&lt;br /&gt;
&lt;br /&gt;
1. Create a new directory for latest version of eprints (substituting X for the latest version):&lt;br /&gt;
 mkdir /opt/eprints3.4.X&lt;br /&gt;
 chmod 2775 /opt/eprints3.4.X&lt;br /&gt;
 chown eprints:eprints /opt/eprints3.4.X&lt;br /&gt;
&lt;br /&gt;
2. Clone the latest released version of EPrints 3.4 (again substituting X for the latest version):&lt;br /&gt;
 git clone https://github.com/eprints/eprints3.4 /opt/eprints3.4.X&lt;br /&gt;
 cd /opt/eprints3.4.X&lt;br /&gt;
 git checkout v3.4.X&lt;br /&gt;
&lt;br /&gt;
3a. If you are not using the ''flavours/pub_lib'' copy the flavour library across (substituting ''FLAVOUR_LIB'' and ''X'' as appropriate): &lt;br /&gt;
 cp -rf /opt/eprints3/flavours/FLAVOUR_LIB/ /opt/eprints3.4.X/flavours/&lt;br /&gt;
&lt;br /&gt;
3b. If you are using ''flavours/pub_lib'' just copy over the ''inc'' file to the newly checked out ''pub_lib'' (again substituting ''X'' as appropriate):&lt;br /&gt;
 cp /opt/eprints3/flavours/pub_lib/inc /opt/eprints3.4.X/flavours/pub_lib/&lt;br /&gt;
&lt;br /&gt;
4. Review any modified tracked files by comparing these with the new version of the file in /opt/eprints3.4.X/.  If the change is present in the new version then this change can be ignored, if it is not you may need to figure out how to incorporate this change into the new version of EPrints.&lt;br /&gt;
&lt;br /&gt;
5. Copy across any additional untracked files from &amp;lt;code&amp;gt;/opt/eprints3/&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/opt/eprints3.4.X/&amp;lt;/code&amp;gt;.  These will likely be either ingredients or separate files installed as part of a Bazaar plug-in.&lt;br /&gt;
&lt;br /&gt;
6. Stop the EPrints indexer and webserver:&lt;br /&gt;
 /opt/eprints3/bin/indexer stop&lt;br /&gt;
 apachectl graceful-stop&lt;br /&gt;
&lt;br /&gt;
7. Move around the old and new eprints directories and then move the archive directory across to the newly created archives sub-directory (substituting ''X'' and ''ARCHIVEID'' as appropriate):&lt;br /&gt;
 mv /opt/eprints3 /opt/eprints3.old&lt;br /&gt;
 mv /opt/eprints3.4.X /opt/eprints3&lt;br /&gt;
 mv /opt/eprints3.old/archives/ARCHIVEID /opt/eprints3/archives/&lt;br /&gt;
&lt;br /&gt;
8. Test the new configuration and fix any issues reported.&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
&lt;br /&gt;
9. Update the database schema for any changes between versions&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
10. Regenerate the EPrints Apache configuration: &lt;br /&gt;
 /opt/eprints3/bin/generate_apacheconf --system --replace&lt;br /&gt;
&lt;br /&gt;
11. Start the webserver and EPrints Indexer&lt;br /&gt;
 apachectl start&lt;br /&gt;
 /opt/eprints3/bin/indexer start&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Cgi/users/lookup/&amp;diff=16734</id>
		<title>Cgi/users/lookup/</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Cgi/users/lookup/&amp;diff=16734"/>
		<updated>2025-02-26T18:32:01Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typo removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{dirs}}&lt;br /&gt;
&lt;br /&gt;
These are scripts used by the autocomplete system in the workflow.&lt;br /&gt;
&lt;br /&gt;
*'''[[EPrints_Directory_Structure/eprints3|eprints3]]/[[EPrints_Directory_Structure/eprints3/cgi|cgi]]/[[EPrints_Directory_Structure/eprints3/cgi/users|users]]/lookup'''&lt;br /&gt;
** '''event_by_name''' - Can only be linked from the event_name field. Looks up existing events with the same name and suggests them filling in other parts of the even data such as dates, location and type.&lt;br /&gt;
** '''file''' - This uses a file in [[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/autocomplete|eprints3/archives/ARCHIVEID/cfg/autocomplete/]]. The name of the file is specified in the CGI param &amp;quot;file&amp;quot;. The format of the file is a set of lines. Each line contains a lookup string, a tab, and a chunk of XML. This XML is a single autocomplete block.&lt;br /&gt;
** '''journal_by_issn''' - Lookup journal details (issn, name, publisher) from the issn field. Looks at only records already in the repository.&lt;br /&gt;
** '''journal_by_name''' - Lookup journal details (issn, name, publisher) from the journal title field. Looks at only records already in the repository.&lt;br /&gt;
** '''name''' - Lookup the name of creators (and their email), uses existing creators.&lt;br /&gt;
** '''simple_file''' - As with &amp;quot;file&amp;quot; above, but just contains a list of lookup values, one of which may be selected to populate the current field only.&lt;br /&gt;
** '''simple_sql''' - As with SQL (see below), but just uses the &amp;quot;value&amp;quot; field to populate the current field only.&lt;br /&gt;
** '''sql''' - Similar to file, but uses an SQL table to do the lookup. The table is specified by the CGI param &amp;quot;title&amp;quot; but will be prefixed with &amp;quot;ac_&amp;quot;. So a title param of &amp;quot;badger&amp;quot; would lookup in table &amp;quot;ac_badger&amp;quot;. This table must contain a column titled &amp;quot;value&amp;quot; containing lookup terms and a column titled &amp;quot;xml&amp;quot; containing an XML autocomplete block.&lt;br /&gt;
** '''title_duplicates''' - This works only on the &amp;quot;title&amp;quot; field and warns of duplicates, rather than offering completion.&lt;br /&gt;
&lt;br /&gt;
The '''file''', '''simple_file''', '''sql''' and '''simple_sql''' scripts may take a second CGI parameter, &amp;quot;mode&amp;quot;. This may be set to &amp;quot;phrase&amp;quot; or &amp;quot;prefix&amp;quot;. &amp;quot;phrase&amp;quot; is the default, and searches for the partial string anywhere within the lookup value. If set to &amp;quot;prefix&amp;quot; then this only matches starting at the start of the lookup value. This is primarily useful for large SQL tables, if you've added an index to the &amp;quot;value&amp;quot; field. &lt;br /&gt;
&lt;br /&gt;
You can drop your own custom scripts into this directory, but you shouldn't if you do ''not'' want to lose your file with the next update: As usually it's advised to put it into &amp;lt;code&amp;gt;repoID/cgi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cfg/cgi&amp;lt;/code&amp;gt; or even &amp;lt;code&amp;gt;site_lib/cgi&amp;lt;/code&amp;gt;, depending on the intended scope respectively.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Cgi/users/lookup/&amp;diff=16733</id>
		<title>Cgi/users/lookup/</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Cgi/users/lookup/&amp;diff=16733"/>
		<updated>2025-02-26T18:30:37Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typos removed, advice and formatting added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{dirs}}&lt;br /&gt;
&lt;br /&gt;
These are scripts used by the autocomplete system in the workflow.&lt;br /&gt;
&lt;br /&gt;
*'''[[EPrints_Directory_Structure/eprints3|eprints3]]/[[EPrints_Directory_Structure/eprints3/cgi|cgi]]/[[EPrints_Directory_Structure/eprints3/cgi/users|users]]/lookup'''&lt;br /&gt;
** '''event_by_name''' - Can only be linked from the event_name field. Looks up existing events with the same name and suggests them filling in other parts of the even data such as dates, location and type.&lt;br /&gt;
** '''file''' - This uses a file in [[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/autocomplete|eprints3/archives/ARCHIVEID/cfg/autocomplete/]]. The name of the file is specified in the CGI param &amp;quot;file&amp;quot;. The format of the file is a set of lines. Each line contains a lookup string, a tab, and a chunk of XML. This XML is a single autocomplete block.&lt;br /&gt;
** '''journal_by_issn''' - Lookup journal details (issn, name, publisher) from the issn field. Looks at only records already in the repository.&lt;br /&gt;
** '''journal_by_name''' - Lookup journal details (issn, name, publisher) from the journal title field. Looks at only records already in the repository.&lt;br /&gt;
** '''name''' - Lookup the name of creators (and their email), uses existing creators.&lt;br /&gt;
** '''simple_file''' - As with &amp;quot;file&amp;quot; above, but just contains a list of lookup values, one of which may be selected to populate the current field only.&lt;br /&gt;
** '''simple_sql''' - As with SQL (see below), but just uses the &amp;quot;value&amp;quot; field to populate the current field only.&lt;br /&gt;
** '''sql''' - Similar to file, but uses an SQL table to do the lookup. The table is specified by the CGI param &amp;quot;title&amp;quot; but will be prefixed with &amp;quot;ac_&amp;quot;. So a title param of &amp;quot;badger&amp;quot; would lookup in table &amp;quot;ac_badger&amp;quot;. This table must contain a column titled &amp;quot;value&amp;quot; containing lookup terms and a column titled &amp;quot;xml&amp;quot; containing an XML autocomplete block.&lt;br /&gt;
** '''title_duplicates''' - This works only on the &amp;quot;title&amp;quot; field and warns of duplicates, rather than offering completion.&lt;br /&gt;
&lt;br /&gt;
The '''file''', '''simple_file''', '''sql''' and '''simple_sql''' scripts may take a second CGI parameter, &amp;quot;mode&amp;quot;. This may be set to &amp;quot;phrase&amp;quot; or &amp;quot;prefix&amp;quot;. &amp;quot;phrase&amp;quot; is the default, and searches for the partial string anywhere within the lookup value. If set to &amp;quot;prefix&amp;quot; then this only matches starting at the start of the lookup value. This is primarily useful for large SQL tables, if you've added an index to the &amp;quot;value&amp;quot; field. &lt;br /&gt;
&lt;br /&gt;
You can drop your own custom scripts into this directory, but you shouldn't if do not want to lose your file with the next update: As usually it's advised to put it into &amp;lt;code&amp;gt;repoID/cgi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cfg/cgi&amp;lt;/code&amp;gt; or even &amp;lt;code&amp;gt;site_lib/cgi&amp;lt;/code&amp;gt;, depending on the intended scope respectively.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Upgrading&amp;diff=16732</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Upgrading&amp;diff=16732"/>
		<updated>2025-02-25T12:56:49Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: category added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Upgrading]]&lt;br /&gt;
{{manual}}&lt;br /&gt;
== Upgrade between same series versions of EPrints ==&lt;br /&gt;
If you are upgrading between the same series versions of EPrints (e.g. 3.3.15 to 3.3.16 or 3.4.2 to 3.4.3)  then the upgrade process is somewhat more straightforward that upgrading between EPrints series versions (e.g. 3.3.16 to 3.4.3).  This page was originally written for upgrading between 3.3 series versions,  '''[[Upgrading between EPrints 3.4 versions]]''' provides additional specific information about EPrints 3.4 series.&lt;br /&gt;
&lt;br /&gt;
=== From a Linux Package Manager ===&lt;br /&gt;
If you have installed from the Deb or RPM package, then you can just upgrade this.  However, it is recommended that you have done a backup before doing this.  Also if this is on a production server, that you do this during an extended period of scheduled downtime and have previously tested the upgrade on a pre-production server.&lt;br /&gt;
&lt;br /&gt;
Once the package upgrade has completed make sure to run both ''epadmin upgrade'' and ''epadmin update'' on all archives.  The package manager may only tell you need to run ''epadmin upgrade'' but ''epadmin update'' is also needed to ensure newly added fields to data objects are also incorporated.&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
=== From GitHub ===&lt;br /&gt;
If you have installed with GitHub, the preferred method for production repositories, you can update to the latest version using the following commands, substituting ''y'' for the version you want and ''x'' for the 3 or 4 depending on whether you are upgrading between EPrints 3.3 or 3.4 series:&lt;br /&gt;
&lt;br /&gt;
 git fetch origin&lt;br /&gt;
 git merge tags/v3.x.y&lt;br /&gt;
&lt;br /&gt;
This should warn you if you have made any locally uncommitted changes.  You may need to use ''git stash'' to move these temporarily and reintegrate after updating from GitHub.&lt;br /&gt;
&lt;br /&gt;
Once updated to the intended tagged release version any resolved and local uncommitted changes then make sure to run both ''epadmin upgrade'' and ''epadmin update'' on all archives and then reload the webserver and EPrints indexer, e.g.&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
 apachectl graceful&lt;br /&gt;
 /opt/eprints3/bin indexer restart&lt;br /&gt;
&lt;br /&gt;
=== From a Tarball ===&lt;br /&gt;
Although not impossible it is strongly discouraged to upgrade from a tarball.  One major reason not to do this is that if you have made any local changes other than to your original archive's configuration, it will be difficult to ensure all these modifications are retained.  However, if you wish to do this, you can follow the instructions below, (as the eprints user unless otherwise stated):&lt;br /&gt;
&lt;br /&gt;
==== Downloading and Unpacking 3.3 ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the tarball from files.eprints.org, (e.g. https://files.eprints.org/2306/5/eprints-3.3.16.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, unpack the tarball under the same parent path as your existing EPrints and change the ownership of this whole directory structure&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cd /opt&lt;br /&gt;
 tar -xzvf eprints-3.3.16.tar.gz&lt;br /&gt;
 mv eprints-3.3.16 eprints3_new&lt;br /&gt;
 chown -R eprints:eprints /opt/eprints3_new&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
==== Downloading and Unpacking 3.4 ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the main tarball from files.eprints.org, (e.g. https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the publications tarball from files.eprints.org, (e.g. https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, unpack the tarball under the same parent path as your existing EPrints and change the ownership of this whole directory structure&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cd /opt&lt;br /&gt;
 tar -xzvf /home/eprints/eprints-3.4.6.tar.gz&lt;br /&gt;
 tar -xzvf /home/eprints/eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 mv eprints-3.4.6 eprints3_new&lt;br /&gt;
 chown -R eprints:eprints /opt/eprints3_new&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installing and Configuring ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, stop Apache and EPrints' indexer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 apachectl graceful-stop&lt;br /&gt;
 /opt/eprints3/bin/epindexer stop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Move the archive(s) from your old EPrints to your new one, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mv /opt/eprints3/archives/* /opt/eprints3_new/archives/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Copy SystemSettings.pm to your new EPrints as well as site-wide settings&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cp -p /opt/eprints3/perl_lib/EPrints/SystemSettings.pm /opt/eprints3_new/perl_lib/EPrints/&lt;br /&gt;
 cp -pR /opt/eprints3/cfg /opt/eprints3_new/cfg&lt;br /&gt;
 cp -pR /opt/eprints3/site_lib /opt/eprints3_new/site_lib&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; If you are aware of any local modifications to files under your EPrints path (e.g. /opt/eprints3) but outside the archives directory then compare these files using diff to work out how your local changes can be integrated.  E.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 diff /opt/eprints3/perl_lib/EPrints/MetaField/Date.pm /opt/eprints3_new/perl_lib/EPrints/MetaField/Date.pm &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, switch round the old and new versions of EPrints, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mv /opt/eprints3 /opt/eprints3_old&lt;br /&gt;
 mv /opt/eprints3_new /opt/eprints3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Run epadmin test to check there are no configuration issues, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Run ''epadmin upgrade'' and ''epadmin update'' to deploy any structural changes or addition of fields to the database, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Restart EPrints' indexer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epindexer start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, restart Apache.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 apachectl restart&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Don't forget to reinstall your Bazaar packages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Upgrading to EPrints to 3.3 ==&lt;br /&gt;
Upgrading from older 3.1 and 3.2 versions of EPrints to 3.3 is somewhat more involved.  Please see the following guides:&lt;br /&gt;
* [[Upgrading from 3.1]]&lt;br /&gt;
* [[Upgrading from 3.2]]&lt;br /&gt;
&lt;br /&gt;
== Upgrading to EPrints 3.4 ==&lt;br /&gt;
To upgrade to EPrints 3.4 you will need to already be running a version of EPrints 3.3.  Ideally at least 3.3.12, which has the following guide:&lt;br /&gt;
* [[Upgrading 3.3.12+ to 3.4]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Upgrading_between_EPrints_3.4_versions&amp;diff=16731</id>
		<title>Upgrading between EPrints 3.4 versions</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Upgrading_between_EPrints_3.4_versions&amp;diff=16731"/>
		<updated>2025-02-25T12:49:50Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typos removed, category added, some reformatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Upgrading]]&lt;br /&gt;
This page is intended to provide guidance for those upgrading between versions of EPrints 3.4. (e.g. 3.4.1 to 3.4.2).  This is generally intended for those upgrading using source tarballs available on [https://files.eprints.org/ files.eprints.org] or upgrading tagged release from [https://github.com/eprints/eprints3.4/ EPrints 3.4 GitHub repository].  However, '''new versions of EPrints 3.4 will no longer be released as Linux packages''' (i.e. [http://rpm.eprints.org/eprints3.4 RPMs] or [http://deb.eprints.org/3.4 Debs]).&lt;br /&gt;
&lt;br /&gt;
== General Advice ==&lt;br /&gt;
If you are running EPrints as a virtual machine, then it is worthwhile taking a snapshot that you could revert back to this in the event of an unsuccessful upgrade. Otherwise, you should take the following backups before starting an upgrade:&lt;br /&gt;
; The EPrints database &lt;br /&gt;
: This will likely have the same name as the archive.&lt;br /&gt;
; The documents directory&lt;br /&gt;
: This is the ''documents'' directory, directly under the archive's directory (i.e. ''/opt/eprints3/archives/&amp;lt;ARCHIVE_NAME&amp;gt;/'').&lt;br /&gt;
; The Xapian index&lt;br /&gt;
: This is in the ''var'' directory of the archive under the directory named or starting ''xapian''.&lt;br /&gt;
; Your EPrints archive&lt;br /&gt;
: All the directories and any files in your archive, '''except''': ''documents'' (see above), ''html'' and ''var'' ('''except''' ''xapian'', see above). If you have multiple archives be sure to backup each one.&lt;br /&gt;
; The current EPrints codebase&lt;br /&gt;
: In case any changes have been made to this.  These may be needed if you have to rollback an upgrade or also apply these changes if they are needed in the upgraded version of EPrints.  All directories in the EPrints path (e.g. /opt/eprints3/) should be backed up '''except''': ''archives'' (see above), ''debian'', ''license'', ''pod'', ''testdata'', ''tests'',''tmp'' and ''var''.  No files in the top level EPrints path directory need to be backed up.&lt;br /&gt;
&lt;br /&gt;
Again, if you have the ability to take a virtual machine snapshot of your EPrints repository, it is worth using this to produce a clone, (if you do not already have a test or pre-production server version of your EPrints repository).  This will allow you to check if you will have any snags either with the upgrade process or with the upgraded repository itself.  It should also allow you to refine your upgrade schedule for your live EPrints repository to reduce the amount of scheduled downtime required.&lt;br /&gt;
&lt;br /&gt;
== Upgrade Schedules ==&lt;br /&gt;
It would be expected that you have scheduled downtime (at least a day) and ideally try out the upgrade schedule on a cloned instance of your EPrints repository.  If you tested the upgrade schedule on a clone, actual downtime (or more accurately at-risk period) will probably be less than an hour.&lt;br /&gt;
&lt;br /&gt;
=== From a source tarball ===&lt;br /&gt;
1. Download the source tarball for both your current version of EPrints (e.g. 3.4.1) and your intended new version (e.g. 3.4.3) from [https://files.eprints.org/ files.eprints.org] and unpack into a separate directory on your EPrints repository server.  E.g.&lt;br /&gt;
 tar -xzvf eprints-3.4.1.tar.gz /home/eprints/&lt;br /&gt;
 tar -xzvf eprints-3.4.1-flavours.tar.gz /home/eprints/&lt;br /&gt;
 tar -xzvf eprints-3.4.3.tar.gz /home/eprints/&lt;br /&gt;
 tar -xzvf eprints-3.4.3-flavours.tar.gz /home/eprints/&lt;br /&gt;
&lt;br /&gt;
2. Compare the code to see if any critical changes have been made to the core codebase:&lt;br /&gt;
 diff -x archives -x cfg -x tmp -rq /opt/eprints3 /home/eprints/eprints-3.4.1 | grep -v &amp;quot;/\(ingredients\|var\)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. If there are any changes check to see if the change is present in the new version of EPrints. E.g.:&lt;br /&gt;
 diff /opt/eprints3/flavours/pub_lib/inc /home/eprints/eprints-3.4.1/flavours/pub_lib/inc&lt;br /&gt;
 diff /opt/eprints3/flavours/pub_lib/inc /home/eprints/eprints-3.4.3/flavours/pub_lib/inc&lt;br /&gt;
If the files in &amp;lt;Code&amp;gt;/opt/eprints3/&amp;lt;/Code&amp;gt; are the same as that in the latest version (e.g. &amp;lt;Code&amp;gt;/home/eprints-3.4.3/&amp;lt;/Code&amp;gt;) then no change is required.  If some are not present in the latest version you need to consider whether they can/should be copied across (e.g. into &amp;lt;Code&amp;gt;/home/eprints/eprints-3.4.3/flavours/pub_lib/inc&amp;lt;/Code&amp;gt;). It is likely new ingredients will be added to a flavours inc file between versions, so this file is particular important to check so your repository's local modifications to this file and modifications in the latest version of EPrints can be reconciled.&lt;br /&gt;
&lt;br /&gt;
4. If your repository has any Bazaar plug-ins installed go to the Eprints Bazaar page on your repository via the Admin menu and download each one individually from the ''Developer Tools'' tab.&lt;br /&gt;
&lt;br /&gt;
5. Stop the webserver and EPrints indexer on your repository server and check they have stopped running:&lt;br /&gt;
 systemctl stop httpd&lt;br /&gt;
 ps aux | grep httpd&lt;br /&gt;
 /opt/eprints3/bin/indexer stop&lt;br /&gt;
 ps aux | grep indexer&lt;br /&gt;
''httpd'' is for RHEL-based Linux OS, for Debian-based Linux OS use ''apache2''.&lt;br /&gt;
&lt;br /&gt;
6. As root, move the new version of EPrints (with any ported changes, from step 3) to &amp;lt;Code&amp;gt;/opt/eprints3-new&amp;lt;/code&amp;gt;&lt;br /&gt;
 mv /home/eprints-3.4.3 /opt/eprints3-new&lt;br /&gt;
&lt;br /&gt;
7. As the eprints user move the contents of the current archives into the new directory:&lt;br /&gt;
 mv /opt/eprints3/archives/* /opt/eprints3-new/archives/&lt;br /&gt;
If &amp;lt;Code&amp;gt;/opt/eprints3/archives&amp;lt;/Code&amp;gt; or any of its archives are on a different disk partition, this may take a long time and the partition you are moving it to may not be big enough.  It may be better to figure out an alternative way of updating the other EPrints directories without moving the archive between disk partitions and then switching round the eprints directories (step 9 below).&lt;br /&gt;
&lt;br /&gt;
8. As the eprints user copy across ingredients ('''except''' the bazaar and jquery ingredient) to the new version:&lt;br /&gt;
 rsync -a --exclude=bazaar --exclude=jquery /opt/eprints3/ingredients/ /opt/eprints3-new/ingredients/&lt;br /&gt;
&lt;br /&gt;
9. As root, switch round the old and new eprints directories:&lt;br /&gt;
 mv /opt/eprints3 /opt/eprints3-old&lt;br /&gt;
 mv /opt/eprints3-new /opt/eprints3&lt;br /&gt;
&lt;br /&gt;
10. As the eprints user, test EPrints is in a good state:&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
If you have various Bazaar plug-ins installed, it is likely that this will report issues.  If so you will need to disable these files until you can re-install the Bazaar plug-ins. E.g.&lt;br /&gt;
 cd /opt/eprints3/archives/&amp;lt;ARCHIVE_NAME&amp;gt;/cfg/cfg.d/&lt;br /&gt;
 rm ../epm/*&lt;br /&gt;
 mv z_orcid_support.pl z_orcid_support.pl.disabled&lt;br /&gt;
 mv zz_hefce_oa_fields.pl zz_hefce_oa_fields.pl.disabled&lt;br /&gt;
 mv zz_rioxx2.pl zz_rioxx2.pl.disabled&lt;br /&gt;
 mv z_meprints.pl z_meprints.pl.disabled &lt;br /&gt;
 mv kultur.pl kultur.pl.disabled&lt;br /&gt;
&lt;br /&gt;
11. Assuming EPrints is (now) in a good state, regenerate EPrints' Apache configuration:&lt;br /&gt;
 /opt/eprints3/bin/generate_apacheconf --system --replace&lt;br /&gt;
&lt;br /&gt;
12. As root, check the Apache configuration is sound and restart the webserver:&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
 systemctl start httpd&lt;br /&gt;
For Debian-based LinuxOS use:&lt;br /&gt;
 apache2ctl configtest&lt;br /&gt;
 systemctl start apache2&lt;br /&gt;
&lt;br /&gt;
13. Load up your repository in a web browser, login and go to the EPrints Bazaar page via the Admin menu.  Install all the Bazaar plug-ins you downloaded in step 4.  You can do this by scrolling to the bottom of the ''Available'' tab and using the ''Upload and Install'' section.  Once you have re-installed all the Bazaar plug-ins, you can move back all the files you disabled in step 10.  Then use ''epadmin'' to re-test and restart the webserver:&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
 systemctl start httpd&lt;br /&gt;
&lt;br /&gt;
14. Now using your web browser do a thorough test of both the functionality and the appearance/layout of your repository and make tweaks to your local archive configuration as necessary (e.g. modify the CSS).&lt;br /&gt;
&lt;br /&gt;
13. Finally, as the eprints user, restart the indexer.&lt;br /&gt;
 /opt/eprints3/bin/indexer start&lt;br /&gt;
&lt;br /&gt;
It is advised that you keep the &amp;lt;Code&amp;gt;/opt/eprints3-old&amp;lt;/Code&amp;gt; directory for a while (at least a month) in case you spot any unexpected problems.  Worse case scenario you can revert back to this version by doing steps 7 and 9 in reverse.  However, typically it is useful as a reference if you forgot to port a bespoke core code change of your old version of EPrints or a change you did port does not work as expected.&lt;br /&gt;
&lt;br /&gt;
=== From GitHub release ===&lt;br /&gt;
'''N.B. These instructions are a work in progress.'''&lt;br /&gt;
&lt;br /&gt;
Before staring check that no critical files have been modified in the core codebase.  &lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git status&lt;br /&gt;
The only file that should have been modified (assuming you are running a publications flavour of EPrints) is ''flavours/pub_lib/inc''.  &lt;br /&gt;
&lt;br /&gt;
There may be various new directories/files under the ''lib'' and ''ingredients'' directories.  These will most likely have been created as a result of installing Bazaar plug-ins or EPrints ingredients.  You should make a note of these and check to see that they are present after the upgrade schedule has been completed.  &lt;br /&gt;
&lt;br /&gt;
If there are modified files (according to ''git status''), you should similarly make a note of these and the changes made, so it can be checked if either these changes have already been applied in the upgraded versions of these files or that they need to be re-applied after upgrading.  &lt;br /&gt;
&lt;br /&gt;
If ''git status'' finds missing files, then similarly these should be checked to make sure they are not present after completing your upgrade and remove them if they still exist.  They were most likely removed to deliberately disable a piece of unwanted functionality.  Although generally it should be possible to disable this with configuration. &lt;br /&gt;
&lt;br /&gt;
If only the flavour's inc file is modified and the only other things ''git status'' shows are additional untracked files, then it is safe to do an '''In-place Upgrade'''.  Otherwise, you will want to do a '''Clean Upgrade'''.&lt;br /&gt;
&lt;br /&gt;
==== In-place Upgrade ====&lt;br /&gt;
All steps should be done as the eprints users, although some commands may prompt for a root password.&lt;br /&gt;
&lt;br /&gt;
1. Stop the webserver and EPrints indexer.&lt;br /&gt;
 apachectl graceful-stop&lt;br /&gt;
 /opt/eprints3/bin/indexer stop&lt;br /&gt;
&lt;br /&gt;
2. Make a copy of the flavour's inc file:&lt;br /&gt;
 cp /opt/eprints3/flavours/FLAVOUR_lib/inc /home/eprints/inc.backup&lt;br /&gt;
&lt;br /&gt;
3. Get the latest code version. This can be done with the following commands (substituting X for the latest version):&lt;br /&gt;
 git fetch&lt;br /&gt;
 git checkout v3.4.X  &lt;br /&gt;
&lt;br /&gt;
4. Check if the flavour's inc file has been reverted, if it is move back the backup to re-update it&lt;br /&gt;
 mv /home/eprints/inc.backup /opt/eprints3/flavours/FLAVOUR_lib/inc&lt;br /&gt;
&lt;br /&gt;
5. Test the new configuration and fix ans issues reported.&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
&lt;br /&gt;
6. Update the database schema for any changes between versions&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
7. Regenerate the EPrints Apache configuration, just in case there have been any improvements to this in the new version: &lt;br /&gt;
 /opt/eprints3/bin/generate_apacheconf --system --replace&lt;br /&gt;
&lt;br /&gt;
8. Start the webserver and EPrints Indexer&lt;br /&gt;
 apachectl start&lt;br /&gt;
 /opt/eprints3/bin/indexer start&lt;br /&gt;
&lt;br /&gt;
==== Clean Upgrade ====&lt;br /&gt;
Step 1 needs to be done as the root.  Steps 2 and onwards should be done as the eprints users, although some commands may prompt for a root password.&lt;br /&gt;
&lt;br /&gt;
1. Create a new directory for latest version of eprints (substituting X for the latest version):&lt;br /&gt;
 mkdir /opt/eprints3.4.X&lt;br /&gt;
 chmod 2775 /opt/eprints3.4.X&lt;br /&gt;
 chown eprints:eprints /opt/eprints3.4.X&lt;br /&gt;
&lt;br /&gt;
2. Clone the latest released version of EPrints 3.4 (again substituting X for the latest version):&lt;br /&gt;
 git clone https://github.com/eprints/eprints3.4 /opt/eprints3.4.X&lt;br /&gt;
 cd /opt/eprints3.4.X&lt;br /&gt;
 git checkout v3.4.X&lt;br /&gt;
&lt;br /&gt;
3a. If you are not using the ''flavours/pub_lib'' copy the flavour library across (substituting ''FLAVOUR_LIB'' and ''X'' as appropriate): &lt;br /&gt;
 cp -rf /opt/eprints3/flavours/FLAVOUR_LIB/ /opt/eprints3.4.X/flavours/&lt;br /&gt;
&lt;br /&gt;
3b. If you are using ''flavours/pub_lib'' just copy over the ''inc'' file to the newly checked out ''pub_lib'' (again substituting ''X'' as appropriate):&lt;br /&gt;
 cp /opt/eprints3/flavours/pub_lib/inc /opt/eprints3.4.X/flavours/pub_lib/&lt;br /&gt;
&lt;br /&gt;
4. Review any modified tracked files by comparing these with the new version of the file in /opt/eprints3.4.X/.  If the change is present in the new version then this change can be ignored, if it is not you may need to figure out how to incorporate this change into the new version of EPrints.&lt;br /&gt;
&lt;br /&gt;
5. Copy across any additional untracked files from &amp;lt;code&amp;gt;/opt/eprints3/&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/opt/eprints3.4.X/&amp;lt;/code&amp;gt;.  These will likely be either ingredients or separate files installed as part of a Bazaar plug-in.&lt;br /&gt;
&lt;br /&gt;
6. Stop the EPrints indexer and webserver:&lt;br /&gt;
 /opt/eprints3/bin/indexer stop&lt;br /&gt;
 apachectl graceful-stop&lt;br /&gt;
&lt;br /&gt;
7. Move around the old and new eprints directories and then move the archive directory across to the newly created archives sub-directory (substituting ''X'' and ''ARCHIVEID'' as appropriate):&lt;br /&gt;
 mv /opt/eprints3 /opt/eprints3.old&lt;br /&gt;
 mv /opt/eprints3.4.X /opt/eprints3&lt;br /&gt;
 mv /opt/eprints3.old/archives/ARCHIVEID /opt/eprints3/archives/&lt;br /&gt;
&lt;br /&gt;
8. Test the new configuration and fix any issues reported.&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
&lt;br /&gt;
9. Update the database schema for any changes between versions&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
10. Regenerate the EPrints Apache configuration: &lt;br /&gt;
 /opt/eprints3/bin/generate_apacheconf --system --replace&lt;br /&gt;
&lt;br /&gt;
11. Start the webserver and EPrints Indexer&lt;br /&gt;
 apachectl start&lt;br /&gt;
 /opt/eprints3/bin/indexer start&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Frequently_Asked_Questions&amp;diff=16730</id>
		<title>Frequently Asked Questions</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Frequently_Asked_Questions&amp;diff=16730"/>
		<updated>2025-02-25T10:04:11Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typos removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:FAQ]]&lt;br /&gt;
[[Category:Management]]&lt;br /&gt;
[[Category:Out of Date]]&lt;br /&gt;
&lt;br /&gt;
This all needs sorting out, it's just being grabbed from the old wiki for now.&lt;br /&gt;
&lt;br /&gt;
* [[Copyright and License FAQ]]&lt;br /&gt;
* [[Searching FAQ]]&lt;br /&gt;
* [[OAI FAQ]]&lt;br /&gt;
* [[How much will it cost?]]&lt;br /&gt;
&lt;br /&gt;
== What operating systems can we use? ==&lt;br /&gt;
&lt;br /&gt;
EPrints should work on any Linux operating system. We use Ubuntu (Debian) and Redhat Enterprise Linux.&lt;br /&gt;
&lt;br /&gt;
Running EPrints on Microsoft Windows is possible but strongly not recommended.  It can be very difficult to get all the necessary dependencies in place.  If you want to get EPrints running but do not have a computer running a Linux operating system, you could install [https://www.virtualbox.org/wiki/Downloads VirtualBox] and then create a Ubuntu or Redhat &amp;quot;virtual machine&amp;quot; (VM) to run on top of your Windows operating system.  Alternatively, you could install [https://docs.docker.com/docker-for-windows/install/ Docker Desktop for Windows] and [[Installing EPrints using Docker|install EPrints using Docker]].  However, both these methods are only recommended for testing or demoing EPrints.  If you intend to run EPrints long-term you should install on a dedicated Linux server or virtual machine.&lt;br /&gt;
&lt;br /&gt;
== What computer do we need? ==&lt;br /&gt;
Any modern physical PC (server or desktop) or a virtual machine should be more than capable of running EPrints.  A suggested minimum specification for running a live service:&lt;br /&gt;
* 2GB RAM &lt;br /&gt;
* 15GB disk space&lt;br /&gt;
* 100Mb/s network speed&lt;br /&gt;
&lt;br /&gt;
== How much will it cost to set up? ==&lt;br /&gt;
&lt;br /&gt;
Most of the costs are staff time. Equipment costs are a PC, an internet connection and a BACKUP STRATEGY. Please remember to budget for backups.&lt;br /&gt;
&lt;br /&gt;
EPrints, and all the other software required to make it work, are available for no cost. At some point in the future EPrints may offer some pay-services, but the core software will remain zero cost and freely available to all.&lt;br /&gt;
&lt;br /&gt;
See [[How much will it cost?]]&lt;br /&gt;
&lt;br /&gt;
== How much disk space will we need? ==&lt;br /&gt;
The main usage of disk space will be the uploaded files for the publications, (e.g. PDF, Word documents, etc.).  On average an eprint item will have associated files (e.g. uploaded PDF and thumbnail and preview images of that PDF) that take up 2MB of disk space.  So for every extra 500 eprint items you will need an extra 1GB of disk.  However, if you intend to upload lots of videos, images, or large documents, then this requirement will be higher.  On top of the space needed for uploaded documents and associated files you will need approximately 5GB for installing the operating system.  The disk space required by the database is difficult to determine, as this is dependent on a number of different factors but 1MB per eprint item.&lt;br /&gt;
=== Example usage requirements ===&lt;br /&gt;
* Small repository: 1000 eprint items&lt;br /&gt;
** Operating system: 5GB&lt;br /&gt;
** Upload and associated files: 2MB x 1000 = 2GB&lt;br /&gt;
** Database: 1MB x 1000 = 1GB&lt;br /&gt;
** '''TOTAL:''' 8GB (15GB to give room for expansion)&lt;br /&gt;
* Medium-sized repository: 10,000 eprint items&lt;br /&gt;
** Operating system: 5GB&lt;br /&gt;
** Upload and associated files: 2MB x 10,000 = 20GB&lt;br /&gt;
** Database: 1MB x 10,000 = 10GB&lt;br /&gt;
** '''TOTAL:''' 35GB (50GB to give room for expansion)&lt;br /&gt;
* Large repository: 100,000 eprint items&lt;br /&gt;
** Operating system: 5GB&lt;br /&gt;
** Upload and associated files: 2MB x 100,000 = 200GB&lt;br /&gt;
** Database: 1MB x 100,000 = 100GB&lt;br /&gt;
** '''TOTAL:''' 305GB (350-400GB to give room for expansion)&lt;br /&gt;
&lt;br /&gt;
== Is it possible when depositing a document, to just point to an &amp;quot;alternative location&amp;quot; rather than have the full text copied and held in the eprint archive? ==&lt;br /&gt;
&lt;br /&gt;
Yes, and to suppress the normal warning about no documents attached look in '''[archive_root]/cfg/cfg.d/eprint_warnings.pl'''.&lt;br /&gt;
&lt;br /&gt;
== I need to run apache as a user other than &amp;quot;eprints&amp;quot;, what do I do to make EPrints work in this situation? ==&lt;br /&gt;
&lt;br /&gt;
Example, apache is running as user &amp;quot;apache&amp;quot;.&lt;br /&gt;
* Make all the eprints files owned by &amp;quot;apache&amp;quot; instead of &amp;quot;eprints&amp;quot;&lt;br /&gt;
* Edit SystemSettings?.pm to tell eprints to run as user &amp;quot;apache&amp;quot;&lt;br /&gt;
* You'll need to run all command line scripts as user &amp;quot;apache&amp;quot;&lt;br /&gt;
* All eprints cron jobs should be owned by user &amp;quot;apache&amp;quot; &lt;br /&gt;
&lt;br /&gt;
If you are installing a new copy of eprints, you can specify the user and group to use when you run 'configure'. Do&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./configure --help &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
for details.&lt;br /&gt;
&lt;br /&gt;
== How do I get the body HTML of a page without the template around it? ==&lt;br /&gt;
This is handy for dynamically linking EPrints content into other sites.&lt;br /&gt;
&lt;br /&gt;
For &amp;quot;view&amp;quot; pages you need to add the option &amp;lt;code&amp;gt;include=&amp;gt;1&amp;lt;/code&amp;gt; to the view configuration.  This will cause [[API:bin/generate_views|generate_views]] to make a ''.include'' page in addition to the ''.html'' page. The ''.include'' page will have no template around it.&lt;br /&gt;
&lt;br /&gt;
For dynamic pages, i.e. those under ''/cgi/'', you can add the cgi parameter &amp;lt;code&amp;gt;mainonly=yes&amp;lt;/code&amp;gt;.  E.g. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://tryme.demo.eprints-hosting.org/cgi/latest?mainonly=yes&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I get statistics on number of deposits per month? ==&lt;br /&gt;
&lt;br /&gt;
This rather grim bit of SQL should work, although datestamp is the last modified date, neither the submission nor creation date, it should still give a good indication.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
select count(*), year(datestamp), month(datestamp)&lt;br /&gt;
from archive&lt;br /&gt;
group by year(datestamp),month(datestamp)&lt;br /&gt;
order by year(datestamp),month(datestamp);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I've edited the template (or other config file) but nothing seems to have changed - why? ==&lt;br /&gt;
&lt;br /&gt;
While EPrints tries to automatically reload when a configuration file is changed you may need to reload the Web server for changes to take effect. See also the [[API:bin/epadmin|epadmin reload]], the [[API:bin/generate_static|generate_static]] and [[API:bin/generate_views|generate_views]] commands.&lt;br /&gt;
&lt;br /&gt;
= How do I add a metadata field to a live repository? =&lt;br /&gt;
See [[Adding a Field to a Live Repository]].&lt;br /&gt;
&lt;br /&gt;
= Installation Related Questions =&lt;br /&gt;
 &lt;br /&gt;
== When running a script I get the error &amp;quot;Insecure dependency in mkdir while running with -T switch&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
This usually indicates you are running an eprints script as root. Don't do that; become user 'eprints' instead by &amp;lt;code&amp;gt;su - eprints&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== title and fulltext search returns no results, but date search does ==&lt;br /&gt;
&lt;br /&gt;
The indexer daemon is probably not running or is not working correctly, see [[API:bin/indexer|indexer]].&lt;br /&gt;
&lt;br /&gt;
== I don't want to give epadmin my mysql root password. What is the alternative? ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 mysql&amp;gt; CREATE DATABASE myrepo;&lt;br /&gt;
 Query OK, 1 row affected (0.06 sec)&lt;br /&gt;
&lt;br /&gt;
 mysql&amp;gt; GRANT ALL PRIVILEGES ON myrepo.* TO myrepo@localhost IDENTIFIED BY 'secret';&lt;br /&gt;
 Query OK, 0 rows affected (0.52 sec)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then provide the database name, user name and password to the '''[[API:bin/epadmin|epadmin]] create''' command.&lt;br /&gt;
&lt;br /&gt;
==  How do I get a value for a field of an eprint (without using any SQL)? ==&lt;br /&gt;
&lt;br /&gt;
(assuming the eprint is in the main archive, and has eprintid number 23)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
my $ds = $repo-&amp;gt;dataset( &amp;quot;eprint&amp;quot; );&lt;br /&gt;
my $eprint = $ds-&amp;gt;dataobj( 23 );&lt;br /&gt;
my $value = $eprint-&amp;gt;value( &amp;quot;editors&amp;quot; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See [[API:EPrints/DataObj|DataObj]].&lt;br /&gt;
&lt;br /&gt;
== How can I get a utf8 string of the name of a subject, given its subjectid? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub get_subject_name_string&lt;br /&gt;
{&lt;br /&gt;
	my( $session, $subjectid ) = @_;&lt;br /&gt;
	my $subj = EPrints::Subject-&amp;gt;new( $session, $subjectid ); &lt;br /&gt;
	if( !defined $subj ) &lt;br /&gt;
	{&lt;br /&gt;
		return &amp;quot;error, unknown subject: $subjectid&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	return EPrints::Utils::tree_to_utf8( $subj-&amp;gt;render_description() );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Main_Page&amp;diff=16729</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Main_Page&amp;diff=16729"/>
		<updated>2025-02-25T09:10:20Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: links updated due to restructuring eprints.org&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Howto]]__NOTOC__&lt;br /&gt;
= Welcome to the EPrints Wiki =&lt;br /&gt;
&lt;br /&gt;
This wiki contains technical and user-contributed documentation for the [[Introduction|EPrints repository software]].&lt;br /&gt;
&lt;br /&gt;
[http://tryme.demo.eprints-hosting.org/ Demoprints] is our live, online server that allows anyone to try EPrints without having to install it first.  There are also [http://pub.demo.eprints-hosting.org/ examples] of various 'flavours' of EPrints available to view as well as some more information on the [https://eprints.org/ EPrints project] and related activities.&lt;br /&gt;
&lt;br /&gt;
==New to EPrints?==&lt;br /&gt;
&lt;br /&gt;
Found out more through our:&lt;br /&gt;
* [[EPrints Glossary]] - Descriptions of the terminology used within EPrints repository software.&lt;br /&gt;
* [[:Category:Training Video|Video Training Course]]&lt;br /&gt;
* [[EPrints_Manual|Documentation]] &lt;br /&gt;
* [[Working Groups]]&lt;br /&gt;
* Mailing lists - There are two mail lists that you might like to join and where you can ask for help and share ideas:&lt;br /&gt;
**  '''[[eprints-tech Mailing List|The EPrints Technical Mailing List]]''' &lt;br /&gt;
*** If you have technical questions, or a part of your EPrints installation is not working properly, this group has people who might be able to help!&lt;br /&gt;
*** [[eprints-tech Mailing List|Click here]] for information about [[eprints-tech Mailing List#Subscription_Options|subscribing to this list]] or [[eprints-tech Mailing List#List_Archives|reading its archives]].&lt;br /&gt;
** '''[https://groups.google.com/forum/#!forum/eprints-uk-user-group The EPrints User Group Google Group]'''&lt;br /&gt;
*** This group is for anyone involved in using EPrints.  Ask questions, share ideas, hear about forthcoming meetings.&lt;br /&gt;
* How to [[Main_Page#Contributing_to_the_Wiki|contribute to the EPrints wiki]]&lt;br /&gt;
* EPrints source code on GitHub:&lt;br /&gt;
** Core and major plugins - https://github.com/eprints&lt;br /&gt;
** Community code sharing - https://eprintsug.github.io and the repositories at https://github.com/eprintsug&lt;br /&gt;
&lt;br /&gt;
== Download EPrints ==&lt;br /&gt;
&lt;br /&gt;
{{Download}}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Installation|Installing]] EPrints on various platforms&lt;br /&gt;
&lt;br /&gt;
==[[New_Repository | Getting Started]]==&lt;br /&gt;
&lt;br /&gt;
* [[EPrints Manual|EPrints 3 Documentation]]&lt;br /&gt;
* [[Perl 101 for EPrints]]&lt;br /&gt;
* [[Frequently Asked Questions]]&lt;br /&gt;
* [[:Category:Howto|How to ...]]&lt;br /&gt;
* [[:Category:Plugins|Plugins and Bazaar packages for EPrints]]&lt;br /&gt;
* [[:Category:Training Video|EPrints Training Course]]&lt;br /&gt;
&lt;br /&gt;
==Getting Support==&lt;br /&gt;
&lt;br /&gt;
* [https://www.eprints.org/eprints-services/ EPrints Services] - premium support, training and hosting from EPrints experts&lt;br /&gt;
* [[Contact]] - mailing lists, bug reports etc.&lt;br /&gt;
* [[User group meetings]] - regional meetings for users, which often have notes, presentations and information of general interest&lt;br /&gt;
&lt;br /&gt;
==Add-ons, patches and translations==&lt;br /&gt;
&lt;br /&gt;
* As of version 3.3 EPrints can now install plugins and translations through the [https://bazaar.eprints.org EPrints Bazaar] the wiki also has information about [[:Category:EPrints Bazaar|packaging plugins for the Bazaar]].&lt;br /&gt;
* The [https://files.eprints.org/ EPrints Files Repository] contains add-on and 3rd party scripts, patches and translations. This also provides an archive of all previous EPrints releases (3.0 onwards).&lt;br /&gt;
* [[:Category:Plugins|Plugins]]: Some Wiki pages about scripts and patches.&lt;br /&gt;
&lt;br /&gt;
{{Register}}&lt;br /&gt;
&lt;br /&gt;
==Contributing to EPrints==&lt;br /&gt;
&lt;br /&gt;
* [[Usability|EPrints usability]]&lt;br /&gt;
* New features in EPrints - [[:Category:Releases|released]] and [[:Category:Planned Releases|proposed]]&lt;br /&gt;
* [[How to contribute|How to contribute to EPrints development]]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4 EPrints 3.4 on GitHub] - Codebase, releases and issues tracker for EPrints 3.4.&lt;br /&gt;
* [https://github.com/eprints/eprints3 EPrints 3.3 on GitHub] - Codebase, releases and issues tracker for EPrints 3.3 (legacy).&lt;br /&gt;
&lt;br /&gt;
== Content management ==&lt;br /&gt;
&lt;br /&gt;
* [[Digital preservation]]: managing content for longer-term access and use&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Import_Files&amp;diff=16728</id>
		<title>Import Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Import_Files&amp;diff=16728"/>
		<updated>2025-02-24T18:00:33Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: updated to 3.4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Howto]]&lt;br /&gt;
&lt;br /&gt;
Here is a minimalist XML file to import local files into EPrints:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version='1.0' encoding='utf-8'?&amp;gt;&lt;br /&gt;
 &amp;lt;eprints&amp;gt;&lt;br /&gt;
   &amp;lt;eprint&amp;gt;&lt;br /&gt;
     &amp;lt;documents&amp;gt;&lt;br /&gt;
       &amp;lt;document&amp;gt;&lt;br /&gt;
         &amp;lt;files&amp;gt;&lt;br /&gt;
           &amp;lt;file&amp;gt;&lt;br /&gt;
             &amp;lt;filename&amp;gt;''/valid/local/path/2/thumb.jpg''&amp;lt;/filename&amp;gt;&lt;br /&gt;
           &amp;lt;/file&amp;gt;&lt;br /&gt;
         &amp;lt;/files&amp;gt;&lt;br /&gt;
         &amp;lt;format&amp;gt;image&amp;lt;/format&amp;gt;&lt;br /&gt;
         &amp;lt;security&amp;gt;public&amp;lt;/security&amp;gt;&lt;br /&gt;
       &amp;lt;/document&amp;gt;&lt;br /&gt;
     &amp;lt;/documents&amp;gt;&lt;br /&gt;
     &amp;lt;eprint_status&amp;gt;archive&amp;lt;/eprint_status&amp;gt;&lt;br /&gt;
     &amp;lt;userid&amp;gt;''numericID''&amp;lt;/userid&amp;gt;&lt;br /&gt;
     &amp;lt;type&amp;gt;image&amp;lt;/type&amp;gt;&lt;br /&gt;
     &amp;lt;creators&amp;gt;&lt;br /&gt;
      &amp;lt;item&amp;gt;&lt;br /&gt;
        &amp;lt;name&amp;gt;&lt;br /&gt;
          &amp;lt;family&amp;gt;''Surname''&amp;lt;/family&amp;gt;&lt;br /&gt;
          &amp;lt;given&amp;gt;''givenName''&amp;lt;/given&amp;gt;&lt;br /&gt;
        &amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;/item&amp;gt;&lt;br /&gt;
     &amp;lt;/creators&amp;gt;&lt;br /&gt;
     &amp;lt;title&amp;gt;''Importtest''&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;/eprint&amp;gt;&lt;br /&gt;
 &amp;lt;/eprints&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this also set the &amp;lt;code&amp;gt;title&amp;lt;/code&amp;gt; and the &amp;lt;code&amp;gt;creators&amp;lt;/code&amp;gt;. You can override the saved &amp;lt;code&amp;gt;userid&amp;lt;/code&amp;gt; by &amp;lt;code&amp;gt;--user ''modID''&amp;lt;/code&amp;gt; when importing with the &amp;lt;code&amp;gt;~/eprints/bin/import&amp;lt;/code&amp;gt; script (run it with &amp;lt;code&amp;gt;--help&amp;lt;/code&amp;gt; to see all options, &amp;lt;code&amp;gt;--parse-only&amp;lt;/code&amp;gt; e.g.).&lt;br /&gt;
&lt;br /&gt;
This will put the eprint object straight into the live repository by &amp;lt;code&amp;gt;&amp;lt;eprint_status&amp;gt;archive&amp;lt;/eprint_status&amp;gt;&amp;lt;/code&amp;gt;! You may wish to place it into the user area by &amp;lt;code&amp;gt;&amp;lt;eprint_status&amp;gt;inbox&amp;lt;/eprint_status&amp;gt;&amp;lt;/code&amp;gt; or into the editorial review by &amp;lt;code&amp;gt;&amp;lt;eprint_status&amp;gt;buffer&amp;lt;/eprint_status&amp;gt;&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For a proper overview of any input field, enter all relevant data into the form and export your entry by&lt;br /&gt;
 ~/eprints/bin/export ''repoID'' eprint XML ''entryID''.&lt;br /&gt;
&lt;br /&gt;
See also [[Import From URL]] and XML standardisation page [[EPData XML Representation]].&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_3.4.6&amp;diff=16726</id>
		<title>EPrints 3.4.6</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_3.4.6&amp;diff=16726"/>
		<updated>2025-02-19T15:10:15Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typo removed, formatting added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{releasenotes}}&lt;br /&gt;
&lt;br /&gt;
This page contains information about the provisional EPrints v3.4.6 tag and release on GitHub.&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
EPrints 3.4.6 is now available on [https://github.com/eprints/eprints3.4/releases/tag/v3.4.6 GitHub].&lt;br /&gt;
* '''Zero codename:''' Creme Brulee Cryoseism&lt;br /&gt;
* '''Publications flavour codename:''' Affogato Snowmelt&lt;br /&gt;
&lt;br /&gt;
=== New Dependencies ===&lt;br /&gt;
Check earlier dependencies for [[EPrints 3.4.5]] and before.&lt;br /&gt;
&lt;br /&gt;
=== Changes Since 3.4.5 ===&lt;br /&gt;
&lt;br /&gt;
==== New Functionality ====&lt;br /&gt;
* Adds &amp;lt;code&amp;gt;unlink_lib&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;tools/epm&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Adds &amp;lt;code&amp;gt;--to-link&amp;lt;/code&amp;gt; flag to &amp;lt;code&amp;gt;unpack&amp;lt;/code&amp;gt; option of &amp;lt;code&amp;gt;tools/epm&amp;lt;/code&amp;gt; to allow an EPM file to be unpack so it can subsequently be deployed by &amp;lt;code&amp;gt;link_lib&amp;lt;/code&amp;gt; option.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/340 Provide support for converting HEIC and WEBP thumbnails]&lt;br /&gt;
* Adds support for setting default reply-to when separate &amp;lt;code&amp;gt;$c-&amp;gt;{adminemail}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$c-&amp;gt;{sendermail}&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/388 Allows certain URL paths to be blocked for certain IPs]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/387 Initial Signposting integration]&lt;br /&gt;
&lt;br /&gt;
==== Security and Privacy Improvements ====&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/347 Implement stronger password hashing]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/344 Creates and enables &amp;lt;code&amp;gt;export_privacy&amp;lt;/code&amp;gt; setting to prevent export formats that include email addresses to be publicly accessible by default].&lt;br /&gt;
* Ensure &amp;lt;code&amp;gt;ga.js&amp;lt;/code&amp;gt; is always served on HTTPS&lt;br /&gt;
* Makes sure &amp;lt;code&amp;gt;cache&amp;lt;/code&amp;gt; parameter value provided by search form is a number to prevent URL injection.&lt;br /&gt;
&lt;br /&gt;
==== General Improvements ====&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/336 Implement Recaptcha field to work with Google ReCAPTCHA v3]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/339 Sets &amp;lt;code&amp;gt;ignore_login_ip = 1&amp;lt;/code&amp;gt; by default if HTTPS is enabled.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/345 Improvements Accessibility based on issues raised by axe DevTools]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/348 Improves message when file retrieval fails]&lt;br /&gt;
* Adds &amp;lt;code&amp;gt;.gitignore&amp;lt;/code&amp;gt; for ingredients other than those included, so those deploying EPrints using Git do not see new ingredients as uncommitted.&lt;br /&gt;
* Updates and tidies &amp;lt;code&amp;gt;SystemSettings.pm&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SystemSettings.pm.in&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/355 Adds function to get local path on disk for file object]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/357 Overwrites media video stream if incoming stream is higher res]&lt;br /&gt;
* Uses &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt; version of citation if exists (rather than &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;) for HTML export of data objects&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/359 Adds title attribute for preview images to display on hover]&lt;br /&gt;
* Adds function to test if citation style file exists&lt;br /&gt;
* Allows truncated URL linls to set a &amp;lt;code&amp;gt;target&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* Provide large icons to be printed by EPC &amp;lt;code&amp;gt;icon&amp;lt;/code&amp;gt; function &lt;br /&gt;
* Added EPC &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; function to print out phrases into HTML attributes values&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/362 Allows certain HTML formatting tags in imports, (e.g. from PubMed)]&lt;br /&gt;
* Adds title for action button image&lt;br /&gt;
* Allows fields of various types to be more customisable in search forms&lt;br /&gt;
* Reports useful error message if user tries to remove subject that has children&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/353 Allows way to pass timeout to indexer daemon]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/351 Aligns headings when Itemref occurs within Compound Metafield]&lt;br /&gt;
* Log failure if email attempts send with &amp;lt;code&amp;gt;to_email&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;to_list&amp;lt;/code&amp;gt; set&lt;br /&gt;
* Allows &amp;lt;code&amp;gt;EPrints::Repository::render_option_list&amp;lt;/code&amp;gt; to render select box as disabled&lt;br /&gt;
* Ensures more consistent use of space for results listings where div rather than table rows are now used for better Accessibility&lt;br /&gt;
* Better margin for search results toolbar (e.g. Batch Edit)&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/367 Organise fields under stage in EPrint::View screen by workflow rather than data object]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/370 Rewrite CitationCache code to use EPrints API rather than SQL query]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/360 Allow &amp;quot;make open access&amp;quot; on request copy responses a disable-able field]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/376 Allow signed in user to be logged in Apache access logs]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/382 Adds lastmod attributes to entries in sitemap]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/381 Add &amp;lt;code&amp;gt;threads&amp;lt;/code&amp;gt; option to ffmpeg invocations]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/392 Stop unnecessarily generating list of user's eprints twice for Manage Deposits page load]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/374 Uses &amp;lt;code&amp;gt;Text::Unidecode&amp;lt;/code&amp;gt; primarily to tokenize input for indexing] (rather than manually defining mappings)&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/373 Rework cpan_modules.pl to install all required Perl modules]&lt;br /&gt;
* Allows EPC to render icon without a link&lt;br /&gt;
* Adds commented out config option &amp;lt;code&amp;gt;show_ids_in_log&amp;lt;/code&amp;gt;&lt;br /&gt;
* Removes long since deprecated pagehooks functionality&lt;br /&gt;
* Removes irrelevant &amp;lt;code&amp;gt;dbsid&amp;lt;/code&amp;gt; config setting&lt;br /&gt;
* Improvements to simplify login monitoring configuration&lt;br /&gt;
* Remove reference to defunct &amp;lt;code&amp;gt;quiet&amp;lt;/code&amp;gt; config setting&lt;br /&gt;
&lt;br /&gt;
==== Bug Fixes ====&lt;br /&gt;
* Fixes [https://github.com/eprints/eprints3.4/issues/332 Downloading document from preview image does not work for some filenames]&lt;br /&gt;
* Fixes [https://github.com/eprints/eprints3.4/issues/333 Do not add &amp;lt;code&amp;gt;requester_userid&amp;lt;/code&amp;gt; by default as access table can take a long time to add new fields.  However, ensure if field exists it is set to current user ID, if set].&lt;br /&gt;
* Fixes serialization of EPM for &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; option of &amp;lt;code&amp;gt;tools/epm&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Fixes issues with &amp;lt;code&amp;gt;disable&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;unpack&amp;lt;/code&amp;gt; options for &amp;lt;code&amp;gt;tools/epm&amp;lt;/code&amp;gt;.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/342 Duplicated &amp;quot;_label&amp;quot; span id]&lt;br /&gt;
* Fixes [https://github.com/eprints/eprints3.4/issues/341 Tab children deemed decorative]&lt;br /&gt;
* Fixes bug preventing user password updates from command line.&lt;br /&gt;
* Fixes intermittent issue with &amp;lt;code&amp;gt;xmlns:xsi&amp;lt;/code&amp;gt; attribute being defined twice on some &amp;lt;code&amp;gt;/cgi/oai2/...&amp;lt;/code&amp;gt; pages.&lt;br /&gt;
* Check that &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; of relation is set before comparing its value for &amp;lt;code&amp;gt;EPrints::DataObj::remove_dataobj_relations&amp;lt;/code&amp;gt;&lt;br /&gt;
* Check that &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; of relation is set before comparing its value for &amp;lt;code&amp;gt;EPrints::MetaField::Relation::to_sax_basic&amp;lt;/code&amp;gt;&lt;br /&gt;
* Check URL is set before testing its length in &amp;lt;code&amp;gt;EPrints::Extras::render_url_truncate_end&amp;lt;/code&amp;gt;&lt;br /&gt;
* Fixes &amp;lt;code&amp;gt;EPrints::XML::SAX::Writer::escape&amp;lt;/code&amp;gt; to make sure &amp;lt;code&amp;gt;$str&amp;lt;/code&amp;gt; is set before applying regular expression&lt;br /&gt;
* Export bar form should use &amp;lt;code&amp;gt;rel_cgipath&amp;lt;/code&amp;gt; not &amp;lt;code&amp;gt;http_cgiroot&amp;lt;/code&amp;gt;&lt;br /&gt;
* Actually use &amp;lt;code&amp;gt;size&amp;lt;/code&amp;gt; when calling &amp;lt;code&amp;gt;EPrints::DataObj::Document::render_icon_link&amp;lt;/code&amp;gt;&lt;br /&gt;
* Ensure lookup of keyname is set before using it in &amp;lt;code&amp;gt;EPrints::Database::get_dataobjs&amp;lt;/code&amp;gt;&lt;br /&gt;
* Testing an import should set the &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt; parameter like it would in a real import&lt;br /&gt;
* Checks &amp;lt;code&amp;gt;$c-&amp;gt;{oai}-&amp;gt;{comments}&amp;lt;/code&amp;gt; is set before iterating over it.&lt;br /&gt;
* Prevents bin script from complaining about email-less users. &lt;br /&gt;
* Fixed EPC &amp;lt;code&amp;gt;contains&amp;lt;/code&amp;gt; function to return a boolean value rather than a TRUE/FALSE string.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/365 Allows documents to &amp;lt;code&amp;gt;redo_thumbnails&amp;lt;/code&amp;gt; even if they have no parent eprint]&lt;br /&gt;
* Fixes wrong optione name for loading external DTDs in XML&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/366 Fixes overloading of etaField &amp;lt;code&amp;gt;render_quiet&amp;lt;/code&amp;gt; attribute by introducing &amp;lt;code&amp;gt;render_column_quiet&amp;lt;/code&amp;gt; attribute&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/369 Fixes unsecure request when uploading file]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/371 Fix encoding issues for bespoke Export plugins]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/334 Using page_id pin in page templates breaks editing static pages in web interface]&lt;br /&gt;
* Checks value is set before performing a regular expression replace in &amp;lt;code&amp;gt;EPrints::MetaField::Search::form_value_basi&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/375 Return more appropriate &amp;lt;code&amp;gt;500&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;404&amp;lt;/code&amp;gt; HTTP code if document present but database query fails]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/377 Fixes drag 'n' drop issues leading to zero byte files]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/378 Fixes &amp;quot;More input rows&amp;quot; button affecting layout of Compound field tables in workflow]&lt;br /&gt;
* Ensures clicking tabs on abstract pages does not reload page&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/380 Ensures fields sent in autocompleter requests are encoded]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/383 Allows phrase editor to add phrases for alternative languages]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/385 Fixes bug with edit subjects if ID field value is too long]&lt;br /&gt;
* Fixes warnings produced when &amp;lt;code&amp;gt;readonly&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;show_help&amp;lt;/code&amp;gt; MetaField attributes are not defined when expected&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/48 Fixes further issue with &amp;lt;code&amp;gt;toform&amp;lt;/code&amp;gt; attribute for &amp;lt;code&amp;gt;itemref&amp;lt;/code&amp;gt; MetaField]&lt;br /&gt;
* Fixes warnings when using &amp;lt;codeEPrints::UTils::compare_version function&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/323 Fixes ancestor numbers (of items) in subject-based browse views]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/390 Fixes slow page loads when user has lots of items under Manage Deposits]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/249 Reverts changes to implement subject MetaField's &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt; attribute as a function] (Best done through conditional in the workflow)&lt;br /&gt;
* Fixes XSLT import/export plugins so they no longer prevent EPrints being run using Apache MPM Event (i.e. threaded)&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/384 Ensure search pages respect &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt; specified in their configuration]&lt;br /&gt;
* Makes sure XML converted to string does not contain any control/non characters that might break if they attempt to be rendered within XML.&lt;br /&gt;
* Fixes wrong config variable loads for &amp;lt;code&amp;gt;citation_default&amp;lt;/code&amp;gt; for Dublin Core and simple export.&lt;br /&gt;
* Extends sanitization invalid characters for values of ID metadata fields and their subclasses.&lt;br /&gt;
* Fixes various typos&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/395 Fixes broken &amp;lt;code&amp;gt;eprint_status&amp;lt;/code&amp;gt; filters when &amp;lt;code&amp;gt;get_users_owned_eprints&amp;lt;/code&amp;gt; configuration function is defined]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/394 Fixes incorrect white space in citations rendered in emails]&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
=== Running generate_apacheconf with an archive without a cfg/static/javascript/auto/ directory ===&lt;br /&gt;
If you are upgrading an EPrints repository and your archive(s) do not have a &amp;lt;code&amp;gt;cfg/static/javascript/auto/&amp;lt;/code&amp;gt; directory then &amp;lt;code&amp;gt;bin/generate_apacheconf&amp;lt;/code&amp;gt; will fail.  This is because 3.4.6 [https://github.com/eprints/eprints3.4/issues/369 introduces] code that makes sure that the maximum upload limit is configured to be the same in the Apache configuration and in EPrints' JavaScript, which prevents you from trying to upload files larger than a certain size.  This is useful because if you just updated the JavaScript, EPrints would allow the upload to start but would then fail when the Apache limit was reached.  So not only would you not be able to upload the file but you would waste a load of time and possibly not understand why the upload failed.&lt;br /&gt;
&lt;br /&gt;
To fix this issue for this version of EPrints, just make sure your archive (or archives) all have a &amp;lt;code&amp;gt;cfg/static/javascript/auto/&amp;lt;/code&amp;gt; before running &amp;lt;code&amp;gt;bin/generate_apacheconf&amp;lt;/code&amp;gt;.  Future versions of EPrints will automatically create this directory if it does not already exist.&lt;br /&gt;
&lt;br /&gt;
=== Subject search does not work in workflows ===&lt;br /&gt;
If you have a subject field which renders as a subject tree in a workflow, the search form will not work.  This is due to the [https://github.com/eprints/eprints3.4/issues/246 fix for ensuring Xapian respect a MetaField's &amp;lt;tt&amp;gt;text_index&amp;lt;/tt&amp;gt; value].  This has the consequence of not indexing the &amp;lt;tt&amp;gt;ancestors&amp;lt;/tt&amp;gt; field for subjects.  This is used by the search to filter out subjects that are not part of the subject sub-tree for a particular MetaField.  [https://github.com/eprints/eprints3.4/commit/3fbd47ccc0d9e66514455c693b62b902790e3326 This patch] fixes [https://github.com/eprints/eprints3.4/issues/411 the issue].  However, you will also need to re-index all subjects:&lt;br /&gt;
 EPRINTS_PATH/bin/epadmin reindex ARCHIVE_ID subject&lt;br /&gt;
&lt;br /&gt;
=== Approved document requests still force user to login ===&lt;br /&gt;
This issue was caused by setting the &amp;lt;code&amp;gt;samesite&amp;lt;/code&amp;gt; attribute for the &amp;lt;code&amp;gt;eprints_doc_request&amp;lt;/code&amp;gt; cookie to &amp;lt;code&amp;gt;Strict&amp;lt;/code&amp;gt;, this cookie is intended to allow the user to access the restricted document for the remainder of their session.  Changing this attributes means some browsers (e.g. Firefox) still send the user to a login page even when clicking the approved request link in the email they received.  This is because the change made to the cookie prevents its from being stored because &amp;lt;code&amp;gt;/cgi/process_request&amp;lt;/code&amp;gt; never fully serves a page.  [https://github.com/eprints/eprints3.4/commit/278b5e599dc9f6aa1e4a20f3b211afabb2a4ea9a This patch] fixes the [https://github.com/eprints/eprints3.4/issues/413 the issue].&lt;br /&gt;
&lt;br /&gt;
== Further Planned Features and Improvements ==&lt;br /&gt;
See [https://github.com/eprints/eprints3.4/milestone/8  3.4.7 milestone on GitHub] for more details.&lt;br /&gt;
&lt;br /&gt;
[[Category:Eprints3.4]]&lt;br /&gt;
[[Category:Releases]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Upgrading&amp;diff=16702</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Upgrading&amp;diff=16702"/>
		<updated>2024-11-01T13:19:18Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: URL/version upgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{manual}}&lt;br /&gt;
&lt;br /&gt;
== Upgrade between same series versions of EPrints ==&lt;br /&gt;
If you are upgrading between the same series versions of EPrints (e.g. 3.3.15 to 3.3.16 or 3.4.2 to 3.4.3)  then the upgrade process is somewhat more straightforward that upgrading between EPrints series versions (e.g. 3.3.16 to 3.4.3).  This page was originally written for upgrading between 3.3 series versions,  '''[[Upgrading between EPrints 3.4 versions]]''' provides additional specific information about EPrints 3.4 series.&lt;br /&gt;
&lt;br /&gt;
=== From a Linux Package Manager ===&lt;br /&gt;
If you have installed from the Deb or RPM package, then you can just upgrade this.  However, it is recommended that you have done a backup before doing this.  Also if this is on a production server, that you do this during an extended period of scheduled downtime and have previously tested the upgrade on a pre-production server.&lt;br /&gt;
&lt;br /&gt;
Once the package upgrade has completed make sure to run both ''epadmin upgrade'' and ''epadmin update'' on all archives.  The package manager may only tell you need to run ''epadmin upgrade'' but ''epadmin update'' is also needed to ensure newly added fields to data objects are also incorporated.&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
=== From GitHub ===&lt;br /&gt;
If you have installed with GitHub, the preferred method for production repositories, you can update to the latest version using the following commands, substituting ''y'' for the version you want and ''x'' for the 3 or 4 depending on whether you are upgrading between EPrints 3.3 or 3.4 series:&lt;br /&gt;
&lt;br /&gt;
 git fetch origin&lt;br /&gt;
 git merge tags/v3.x.y&lt;br /&gt;
&lt;br /&gt;
This should warn you if you have made any locally uncommitted changes.  You may need to use ''git stash'' to move these temporarily and reintegrate after updating from GitHub.&lt;br /&gt;
&lt;br /&gt;
Once updated to the intended tagged release version any resolved and local uncommitted changes then make sure to run both ''epadmin upgrade'' and ''epadmin update'' on all archives and then reload the webserver and EPrints indexer, e.g.&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
 apachectl graceful&lt;br /&gt;
 /opt/eprints3/bin indexer restart&lt;br /&gt;
&lt;br /&gt;
=== From a Tarball ===&lt;br /&gt;
Although not impossible it is strongly discouraged to upgrade from a tarball.  One major reason not to do this is that if you have made any local changes other than to your original archive's configuration, it will be difficult to ensure all these modifications are retained.  However, if you wish to do this, you can follow the instructions below, (as the eprints user unless otherwise stated):&lt;br /&gt;
&lt;br /&gt;
==== Downloading and Unpacking 3.3 ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the tarball from files.eprints.org, (e.g. https://files.eprints.org/2306/5/eprints-3.3.16.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, unpack the tarball under the same parent path as your existing EPrints and change the ownership of this whole directory structure&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cd /opt&lt;br /&gt;
 tar -xzvf eprints-3.3.16.tar.gz&lt;br /&gt;
 mv eprints-3.3.16 eprints3_new&lt;br /&gt;
 chown -R eprints:eprints /opt/eprints3_new&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
==== Downloading and Unpacking 3.4 ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the main tarball from files.eprints.org, (e.g. https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the publications tarball from files.eprints.org, (e.g. https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, unpack the tarball under the same parent path as your existing EPrints and change the ownership of this whole directory structure&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cd /opt&lt;br /&gt;
 tar -xzvf /home/eprints/eprints-3.4.6.tar.gz&lt;br /&gt;
 tar -xzvf /home/eprints/eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 mv eprints-3.4.6 eprints3_new&lt;br /&gt;
 chown -R eprints:eprints /opt/eprints3_new&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installing and Configuring ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, stop Apache and EPrints' indexer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 apachectl graceful-stop&lt;br /&gt;
 /opt/eprints3/bin/epindexer stop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Move the archive(s) from your old EPrints to your new one, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mv /opt/eprints3/archives/* /opt/eprints3_new/archives/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Copy SystemSettings.pm to your new EPrints as well as site-wide settings&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cp -p /opt/eprints3/perl_lib/EPrints/SystemSettings.pm /opt/eprints3_new/perl_lib/EPrints/&lt;br /&gt;
 cp -pR /opt/eprints3/cfg /opt/eprints3_new/cfg&lt;br /&gt;
 cp -pR /opt/eprints3/site_lib /opt/eprints3_new/site_lib&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; If you are aware of any local modifications to files under your EPrints path (e.g. /opt/eprints3) but outside the archives directory then compare these files using diff to work out how your local changes can be integrated.  E.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 diff /opt/eprints3/perl_lib/EPrints/MetaField/Date.pm /opt/eprints3_new/perl_lib/EPrints/MetaField/Date.pm &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, switch round the old and new versions of EPrints, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mv /opt/eprints3 /opt/eprints3_old&lt;br /&gt;
 mv /opt/eprints3_new /opt/eprints3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Run epadmin test to check there are no configuration issues, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Run ''epadmin upgrade'' and ''epadmin update'' to deploy any structural changes or addition of fields to the database, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Restart EPrints' indexer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epindexer start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, restart Apache.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 apachectl restart&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Don't forget to reinstall your Bazaar packages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Upgrading to EPrints to 3.3 ==&lt;br /&gt;
Upgrading from older 3.1 and 3.2 versions of EPrints to 3.3 is somewhat more involved.  Please see the following guides:&lt;br /&gt;
* [[Upgrading from 3.1]]&lt;br /&gt;
* [[Upgrading from 3.2]]&lt;br /&gt;
&lt;br /&gt;
== Upgrading to EPrints 3.4 ==&lt;br /&gt;
To upgrade to EPrints 3.4 you will need to already be running a version of EPrints 3.3.  Ideally at least 3.3.12, which has the following guide:&lt;br /&gt;
* [[Upgrading 3.3.12+ to 3.4]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Upgrading_3.3.12%2B_to_3.4&amp;diff=16701</id>
		<title>Upgrading 3.3.12+ to 3.4</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Upgrading_3.3.12%2B_to_3.4&amp;diff=16701"/>
		<updated>2024-11-01T13:14:54Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: URL/version upgrade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions help you upgrade EPrints 3.3.16+ (or any newer version of EPrints 3.3) to EPrints 3.4 while keeping all your eprints, documents and local configuration changes.&lt;br /&gt;
&lt;br /&gt;
It assumes your EPrints 3.3.16+ was installed using a tarball (tar.gz) file and installed in &amp;lt;code&amp;gt;/opt/eprints3&amp;lt;/code&amp;gt;. The commands in these instructions assume Centos 7 OS and run as the eprints user, unless it is stated to run as the root user.&lt;br /&gt;
&lt;br /&gt;
=Upgrade from Tarball=&lt;br /&gt;
&lt;br /&gt;
==Pre-upgrade==&lt;br /&gt;
* If you have local modifications to the core files (in /opt/eprints3/perl_lib), you may need to manually migrate your changes.&lt;br /&gt;
* If you use Twitter integration, use CPAN to install LWP::Authen::OAuth as this is no longer in perl_lib.  To do so, as root run:&lt;br /&gt;
 cpan LWP::Authen::OAuth&lt;br /&gt;
* Download each of the Bazaar plugins you have installed as EPM files from your existing repository.&lt;br /&gt;
* Make a backup of your local configurations.&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
We will move your existing eprints 3.3.16+ installation from &amp;lt;code&amp;gt;/opt/eprints3/&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/opt/eprints3.3&amp;lt;/code&amp;gt;, install eprints 3.4, then migrate your configurations into EPrints 3.4; cf. [https://wiki.eprints.org/w/Category:Installation Category Installation]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''as root'''&lt;br /&gt;
 apachectl stop&lt;br /&gt;
 cd /opt&lt;br /&gt;
 eprints3/bin/epindexer stop&lt;br /&gt;
 mv eprints3 eprints3.3&lt;br /&gt;
&lt;br /&gt;
* Download EPrints 3.4 core and publication flavour tarball and install them from [http://files.eprints.org/ Files.eprints.org] with&lt;br /&gt;
 wget https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz&lt;br /&gt;
 wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
'''as root'''&lt;br /&gt;
 cd /root&lt;br /&gt;
 tar xvzf eprints-3.4.6.tar.gz&lt;br /&gt;
 tar xvzf eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
&lt;br /&gt;
* Have a look to &amp;lt;code&amp;gt;/root/eprints-3.4.6/INSTALL&amp;lt;/code&amp;gt; for some local adaption options.&lt;br /&gt;
'''as root'''&lt;br /&gt;
 cd eprints-3.4.6&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
* Move your current repository from 3.3 to 3.4&lt;br /&gt;
'''as root'''&lt;br /&gt;
 cd /opt&lt;br /&gt;
 mv eprints3.3/archives/ARCHIVENAME eprints3/archives/&lt;br /&gt;
* After moving, make sure all files inside &amp;lt;code&amp;gt;/opt/eprints3&amp;lt;/code&amp;gt; are still owned by eprints user and belongs to eprints group, thus&lt;br /&gt;
'''as root'''&lt;br /&gt;
 chown -R eprints:eprints /opt/eprints3&lt;br /&gt;
&lt;br /&gt;
* Create &amp;lt;code&amp;gt;/opt/eprints3/archives/ARCHIVENAME/cfg/cfg.d/00_flavour.pl&amp;lt;/code&amp;gt; to set the appropriate flavour, typically 'pub', i.e. &lt;br /&gt;
 echo &amp;quot;\$c-&amp;gt;{flavour} = 'pub';&amp;quot; &amp;gt; /opt/eprints3/archives/ARCHIVENAME/cfg/cfg.d/00_flavour.pl&lt;br /&gt;
&lt;br /&gt;
* create a symbolic link to &amp;lt;tt&amp;gt;default.xml&amp;lt;/tt&amp;gt; &lt;br /&gt;
 cd /opt/eprints3/archives/ARCHIVENAME/cfg/templates/ (or /opt/eprints3/archives/ARCHIVENAME/cfg/lang/en/templates/&lt;br /&gt;
 ln -s default.xml default_internal.xml&lt;br /&gt;
&lt;br /&gt;
* Audit each of their local config files against the pub_lib flavours config files:&lt;br /&gt;
#The first &amp;lt;code&amp;gt;diff&amp;lt;/code&amp;gt; below will identify all the files that are the same.  If so, delete the ones in &amp;lt;code&amp;gt;archives/ARCHIVENAME/cfg/cfg.d/&amp;lt;/code&amp;gt;.  You almost certainly should not find any, as the files in &amp;lt;code&amp;gt;flavours/pub_lib/cfg.d&amp;lt;/code&amp;gt; will at very least have updated copyright/licensing boilerplate.&lt;br /&gt;
#The second &amp;lt;code&amp;gt;diff&amp;lt;/code&amp;gt; will find where files exists in both directory are different.  Here they should be compared to see, if the local differences are superficial (e.g. slightly different comments or spacing) and therefore can be removed.  Also the pub_lib flavour version may fix an outstanding bug or perform the required functionality more succinctly.  If this is the only change, then the local archive version can be deleted, otherwise the change should be incorporated in the local version.&lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 diff -rs archives/ARCHIVENAME/cfg/cfg.d flavours/pub_lib/cfg.d | egrep '^Files .+ and .+ are identical$'&lt;br /&gt;
 diff -rq archives/ARCHIVENAME/cfg/cfg.d flavours/pub_lib/cfg.d | egrep '^Files .+ and .+ differ$'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Compare &amp;lt;code&amp;gt;archives/ARCHIVENAME/cfg/cfg.d/eprint_fields.pl&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;flavours/pub_lib/cfg/cfg.d/eprint_fields_pub.pl&amp;lt;/code&amp;gt;  maybe with the help of [http://diffuse.sourceforge.net/download_de.html ''diffuse''] to overcome this business easier:&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If these are different and fields are present in &amp;lt;code&amp;gt;eprint_fields_pub.pl&amp;lt;/code&amp;gt; and not &amp;lt;code&amp;gt;eprint_fields.pl&amp;lt;/code&amp;gt; or the definitions (e.g. type, options, etc.)  for the same field are different then:&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy &amp;lt;code&amp;gt;flavours/pub_lib/cfg.d/eprint_fields_pub.pl&amp;lt;/code&amp;gt; to their archive's &amp;lt;code&amp;gt;cfg/cfg.d/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;li&amp;gt;Modify the fields in their archive's &amp;lt;code&amp;gt;cfg/cfg.d/eprint_fields_pub.pl&amp;lt;/code&amp;gt; where they have different definitions (e.g. type, options, etc.) to those in &amp;lt;code&amp;gt;eprint_fields.pl&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;li&amp;gt;Remove all fields in their archive's &amp;lt;code&amp;gt;cfg/cfg.d/eprint_fields.pl&amp;lt;/code&amp;gt; where they also occur in their archive's &amp;lt;code&amp;gt;cfg/cfg.d/eprint_fields_pub.pl&amp;lt;/code&amp;gt;, no matter if already transferred due to previous item or initially the same.&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If there are only additional fields in &amp;lt;code&amp;gt;archives/ARCHIVENAME/cfg/cfg.d/eprint_fields.pl&amp;lt;/code&amp;gt; then just do the last step.&lt;br /&gt;
&amp;lt;li&amp;gt;If the two files are identical then you need to do nothing.  However, this is extremly unlikely.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Finally, the specification is still the same, but mostly split into two distinct files, which obey the known rule ''Local version overrides central one''.&amp;lt;/ul&amp;gt;&lt;br /&gt;
* Synchronise &amp;lt;code&amp;gt;archives/ARCHIVENAME/cfg/cfg.d/epm.pl&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;ingredients/bazaar/cfg.d/epm.pl&amp;lt;/code&amp;gt;, i.e. remove &amp;lt;code&amp;gt;archives/ARCHIVENAME/cfg/cfg.d/epm.pl&amp;lt;/code&amp;gt; in case of ''no'' local modifications.&lt;br /&gt;
&lt;br /&gt;
* Ensure the following bazaar files are disabled by renaming to FILENAME.pl''.disabled''.  Once they have been reinstalled via the Bazaar then they can be moved back into place.  Using &amp;lt;code&amp;gt;epadmin test&amp;lt;/code&amp;gt; is a good way of discovering which files need this doing, but below is a list of common files that should be temporarily moved, if they exist in your archive's &amp;lt;code&amp;gt;cfg/cfg.d/&amp;lt;/code&amp;gt; directory:&lt;br /&gt;
 mv z_orcid_support.pl z_orcid_support.pl.disabled&lt;br /&gt;
 mv zz_hefce_oa_fields.pl zz_hefce_oa_fields.pl.disabled&lt;br /&gt;
 mv zz_rioxx2.pl zz_rioxx2.pl.disabled&lt;br /&gt;
 mv z_meprints.pl z_meprints.pl.disabled &lt;br /&gt;
&lt;br /&gt;
* As the eprints user, run &amp;lt;code&amp;gt;epadmin update&amp;lt;/code&amp;gt; to add any new fields that were not previously present (typically this is embargo_reason for documents and requester_email for request)&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVENAME&lt;br /&gt;
&lt;br /&gt;
* Generate new Apache configuration and as root test (fixing any issues) and restart Apache after necessary site-specific adaption are done.&lt;br /&gt;
 /opt/eprints3/bin/generate_apacheconf --system --replace ARCHIVENAME&lt;br /&gt;
'''as root'''&lt;br /&gt;
 apachectl configtest&lt;br /&gt;
 apachectl restart&lt;br /&gt;
&lt;br /&gt;
* Once confirming that EPrints is generally working.  Go to Admin-&amp;gt;Bazaar then install the Bazaar plugins you downloaded from your 3.3 repository before starting the upgrade process.  This can be done by going to the Available tab in the Bazaar and strolling to the Upload section at the bottom.  Unfortunately, you cannot do a bulk upload, so will need to install each plugin in turn. &lt;br /&gt;
&lt;br /&gt;
* Move back the files you renamed to FILENAME''.disabled'' earlier, the epindexer into service and reload Apache&lt;br /&gt;
'''as root'''&lt;br /&gt;
 /opt/eprints3/bin/epindexer start&lt;br /&gt;
 apachectl graceful&lt;br /&gt;
&lt;br /&gt;
* Finally, run &amp;lt;code&amp;gt;generate_static&amp;lt;/code&amp;gt; to make sure all pages are regenerated with any changes to configuration.&lt;br /&gt;
  /opt/eprints3/bin/generate_static ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
* 3.4 does not automatically update an archive's &amp;lt;code&amp;gt;html/en/&amp;lt;/code&amp;gt; files. If there are any bugs with broken JavaScript or unexpected CSS, try deleting the archives &amp;lt;code&amp;gt;html/en/javascript/auto.js&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;html/en/style/auto.css&amp;lt;/code&amp;gt;.  Similarly if a static page cannot be changed try deleting it under the archive's &amp;lt;code&amp;gt;html/en/&amp;lt;/code&amp;gt; or running &amp;lt;code&amp;gt;generate_static&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If some Perl modules are giving out error messages like: &lt;br /&gt;
  Can't locate object method &amp;quot;new&amp;quot; via package &amp;quot;EPrints::Plugin::Event::PIRUS&amp;quot; at /opt/eprints3/bin/../perl_lib/EPrints/PluginFactory.pm line 276.&lt;br /&gt;
  Can't locate object method &amp;quot;new&amp;quot; via package &amp;quot;EPrints::Plugin::Screen::EPrint::Box::Tools::SUPER&amp;quot; at /opt/eprints3/site_lib/plugins/EPrints/Plugin/Screen/EPrint/Box/Tools.pm line 12.&lt;br /&gt;
It is because their parent module has not been initialised. This happens when the parent module lives in perl_lib, and the problem module live in elsewhere; e.g. parent module of PIRUS(Event.pm) is in &amp;lt;code&amp;gt;./perl_lib&amp;lt;/code&amp;gt;, while the &amp;lt;code&amp;gt;PIRUS.pm&amp;lt;/code&amp;gt; is in &amp;lt;code&amp;gt;./pub_lib&amp;lt;/code&amp;gt;. &lt;br /&gt;
Just need to &amp;lt;code&amp;gt;use&amp;lt;/code&amp;gt; the parent module before the &amp;lt;code&amp;gt;ISA&amp;lt;/code&amp;gt; line:&lt;br /&gt;
 use EPrints::Plugin::Event;&lt;br /&gt;
&lt;br /&gt;
[[Category:Upgrading]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Installing_EPrints_on_Debian/Ubuntu&amp;diff=16700</id>
		<title>Installing EPrints on Debian/Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Installing_EPrints_on_Debian/Ubuntu&amp;diff=16700"/>
		<updated>2024-10-30T18:17:55Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: version update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Debian and Ubuntu]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Ubuntu 20.04 LTS, 22.04 LTS and Ubuntu 24.04 LTS (non-LTS versions not recommended)&lt;br /&gt;
* Debian 10 (Buster), Debian 11 (Bullseye) or Debian 12 (Bookworm) - These are not as comprehensively tested as Ubuntu LTS versions.&lt;br /&gt;
&lt;br /&gt;
== Installing EPrints from Source ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies and Pre-configuration ===&lt;br /&gt;
'''The ideal way to install from source is via git using the Core Git repositories [https://github.com/eprints/eprints3.4 EPrints 3.4] or [https://github.com/eprints/eprints EPrints 3.3], and installing from a source tarball is generally discouraged.'''&lt;br /&gt;
&lt;br /&gt;
'''Installing from source via git is now the recommended  way to install EPrints for production repositories, after having proved to be a useful installation method to those seeking to develop the EPrints code, develop a plugin or develop a Bazaar package too.'''&lt;br /&gt;
&lt;br /&gt;
First, as the root user install all the dependencies for EPrints ('''N.B.''' Some dependencies may not be able in certain versions of Debian/Ubuntu.  See [[#Operating System Version Specific Requirements|Operating System Version Specific Requirements]] towards the end of this page):&lt;br /&gt;
&lt;br /&gt;
 apt-get install perl libncurses5 libselinux1 apache2 libapache2-mod-perl2 libxml-libxml-perl \&lt;br /&gt;
   libunicode-string-perl libterm-readkey-perl libmime-lite-perl libmime-types-perl libdigest-sha-perl \&lt;br /&gt;
   libdbd-mysql-perl libxml-parser-perl libxml2-dev libxml-twig-perl libarchive-any-perl libjson-perl \&lt;br /&gt;
   liblwp-protocol-https-perl libtext-unidecode-perl lynx wget ghostscript poppler-utils antiword elinks \&lt;br /&gt;
   texlive-base texlive-base-bin psutils imagemagick adduser tar gzip unzip libsearch-xapian-perl \&lt;br /&gt;
   libtex-encode-perl libio-string-perl libdbd-mysql-perl python3-html2text make libexpat1-dev libxslt1-dev&lt;br /&gt;
&lt;br /&gt;
If you are installing on Ubuntu, install MySQL server and client:&lt;br /&gt;
&lt;br /&gt;
  apt-get install mysql-server mysql-client libmysqlclient-dev&lt;br /&gt;
&lt;br /&gt;
If you are installing on Debian, install MariaDB server and client:&lt;br /&gt;
&lt;br /&gt;
  apt-get install mariadb-server mariadb-client libmariadb-dev&lt;br /&gt;
&lt;br /&gt;
Next, create the eprints user&lt;br /&gt;
&lt;br /&gt;
 adduser eprints&lt;br /&gt;
&lt;br /&gt;
Now, update Apache configuration to set it up to use the eprints user and group, by ensuring the following lines are set thus in &amp;lt;code&amp;gt;/etc/apache2/envvars&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 export APACHE_RUN_USER=eprints&lt;br /&gt;
 export APACHE_RUN_GROUP=eprints&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Deploying EPrints Source ===&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.4.x for GitHub ====&lt;br /&gt;
&lt;br /&gt;
 apt install git&lt;br /&gt;
 mkdir /opt/eprints3&lt;br /&gt;
 chown eprints:eprints /opt/eprints3&lt;br /&gt;
 chmod 2775 /opt/eprints3&lt;br /&gt;
 su eprints&lt;br /&gt;
 git clone https://github.com/eprints/eprints3.4.git /opt/eprints3&lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git checkout tags/v3.4.6&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.3.x for GitHub ====&lt;br /&gt;
&lt;br /&gt;
 apt install git&lt;br /&gt;
 mkdir /opt/eprints3&lt;br /&gt;
 chown eprints:eprints /opt/eprints3&lt;br /&gt;
 chmod 2775 /opt/eprints3&lt;br /&gt;
 su eprints&lt;br /&gt;
 git clone https://github.com/eprints/eprints.git /opt/eprints3&lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git checkout tags/v3.3.16&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.4.x from files.eprints.org ====&lt;br /&gt;
&lt;br /&gt;
 cd /tmp/&lt;br /&gt;
 wget https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.6.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then put in the source code in place:&lt;br /&gt;
&lt;br /&gt;
 mv eprints-3.4.6 /usr/share/eprints&lt;br /&gt;
 chmod 2775 /usr/share/eprints&lt;br /&gt;
 chown -R eprints:eprints /usr/share/eprints&lt;br /&gt;
&lt;br /&gt;
If you want a publications flavoured repository, then also:&lt;br /&gt;
&lt;br /&gt;
 wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 mv eprints-3.4.6/flavours/pub_lib /usr/share/eprints/flavours&lt;br /&gt;
 chmod -R g+w /usr/share/eprints/flavours/pub_lib&lt;br /&gt;
 chown -R eprints:eprints /usr/share/eprints/flavours/pub_lib&lt;br /&gt;
&lt;br /&gt;
== Installing from Debian package ==&lt;br /&gt;
As of EPrints 3.4.5 Debian (.deb) packages will no longer be produced.  Due to the complexity of the installation process there are a number of inherent problems with installing using a Deb package. As new operating systems (e.g. Debian and Ubuntu) are released the available packages have changed.  This often leads to packages upon which that EPrints depends ceasing to be available.  This makes it very difficult or impossible to install the Debian package, as well as requiring retrospective effort to install packages using other sources, (e.g. additional APT repositories or using CPAN).  However, the main concern of installation the Debian package, particularly through EPrints' APT repository, is that it can lead to EPrints being upgraded automatically to a new version.  Upgrading EPrints using a Debian package is likely to lead to EPrints producing errors, as configuration changes are often required as part of the upgrade process.  Automating these changes within the Debian package would be all but impossible due to EPrints' high level of customisability.&lt;br /&gt;
&lt;br /&gt;
=== Installing publications flavour ===&lt;br /&gt;
EPrints 3.4 DEBs only come with the in-built 'zero' flavour and not the typical publications flavour.  Before trying to set up you archive you will need to (as the eprints user) download the latest publications flavour tarball from https://files.eprints.org/ and unpack it into /usr/share/eprints/:&lt;br /&gt;
 wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.6-flavours.tar.gz -C /usr/share/eprints/&lt;br /&gt;
 mv /usr/share/eprints/eprints-3.4.6/flavours /usr/share/eprints/&lt;br /&gt;
 rmdir /usr/share/eprints/eprints-3.4.6/&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Next, as the eprints user copy &amp;lt;code&amp;gt;EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm.tmpl&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;EPRINTS_PATH&amp;lt;/code&amp;gt; will be either &amp;lt;code&amp;gt;/usr/share/eprints3/&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/usr/share/eprints&amp;lt;/code&amp;gt; depending on which instructions you followed above.&lt;br /&gt;
&lt;br /&gt;
EPrints is now fully installed at &amp;lt;code&amp;gt;EPRINTS_PATH/&amp;lt;/code&amp;gt;. However, you will not yet have a running archive. Follow the [[Getting Started with EPrints 3]] instructions to set this up.&lt;br /&gt;
&lt;br /&gt;
=== Post-configuration ===&lt;br /&gt;
Next, add the file &amp;lt;code&amp;gt;/etc/apache2/sites-available/eprints.conf&amp;lt;/code&amp;gt; with the following line:&lt;br /&gt;
&lt;br /&gt;
 Include EPRINTS_PATH/cfg/apache.conf&lt;br /&gt;
&lt;br /&gt;
To enable this as root run the command:&lt;br /&gt;
&lt;br /&gt;
 a2ensite eprints&lt;br /&gt;
&lt;br /&gt;
Also it may be necessary to disable the default site otherwise the default Apache page will still be shown:&lt;br /&gt;
&lt;br /&gt;
 a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
Finally, restart Apache:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
You should now be able to access your vanilla repository at the hostname you specified when running '''epadmin create''' from the [[Getting Started with EPrints 3]] instructions.  You should then login as the admin user you created during this process and turn on the indexer.  This can be done by clicking on the '''Admin''' link under the Logged in menu, then clicking on the '''System Tools''' tab and finally the '''Start Indexer''' button.&lt;br /&gt;
&lt;br /&gt;
=== Useful commands for source development and testing ===&lt;br /&gt;
The following commands may be useful for those developing or testing EPrints but are not necessary for installing EPrints.&lt;br /&gt;
==== Install EPrints build dependencies ====&lt;br /&gt;
 apt-get build-dep eprints&lt;br /&gt;
==== Get EPrints source ====&lt;br /&gt;
 apt-get source eprints&lt;br /&gt;
==== Rebuilding ====&lt;br /&gt;
To change the way the eprints builds you can edit the debian/rules file (the only line you will want is the configure one). Once done you can then type &amp;lt;code&amp;gt;dpkg-buildpackage -rfakeroot&amp;lt;/code&amp;gt; from the root dir of the extracted tarball. &lt;br /&gt;
&lt;br /&gt;
This will build you a .deb in the directory above your current location, which can then be installed usinging dpkg:&lt;br /&gt;
 dpkg -i ../eprints-X.X.X_all.deb&lt;br /&gt;
&lt;br /&gt;
Alternatively you can configure and install it yourself (a non debian specific version) by configuring manually and then running install.pl:&lt;br /&gt;
 $ ./configure --with-smtp-server=smtp.yourdomain&lt;br /&gt;
 $ sudo ./install.pl&lt;br /&gt;
&lt;br /&gt;
== Operating System Version Specific Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 20.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 20.04}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 22.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 22.04}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 24.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 24.04}}&lt;br /&gt;
&lt;br /&gt;
=== Debian Known Issues ===&lt;br /&gt;
See [[Debian Known Issues]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Installing_EPrints_on_Debian/Ubuntu&amp;diff=16699</id>
		<title>Installing EPrints on Debian/Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Installing_EPrints_on_Debian/Ubuntu&amp;diff=16699"/>
		<updated>2024-10-30T18:17:14Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: URL &amp;amp; version update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Debian and Ubuntu]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Ubuntu 20.04 LTS, 22.04 LTS and Ubuntu 24.04 LTS (non-LTS versions not recommended)&lt;br /&gt;
* Debian 10 (Buster), Debian 11 (Bullseye) or Debian 12 (Bookworm) - These are not as comprehensively tested as Ubuntu LTS versions.&lt;br /&gt;
&lt;br /&gt;
== Installing EPrints from Source ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies and Pre-configuration ===&lt;br /&gt;
'''The ideal way to install from source is via git using the Core Git repositories [https://github.com/eprints/eprints3.4 EPrints 3.4] or [https://github.com/eprints/eprints EPrints 3.3], and installing from a source tarball is generally discouraged.'''&lt;br /&gt;
&lt;br /&gt;
'''Installing from source via git is now the recommended  way to install EPrints for production repositories, after having proved to be a useful installation method to those seeking to develop the EPrints code, develop a plugin or develop a Bazaar package too.'''&lt;br /&gt;
&lt;br /&gt;
First, as the root user install all the dependencies for EPrints ('''N.B.''' Some dependencies may not be able in certain versions of Debian/Ubuntu.  See [[#Operating System Version Specific Requirements|Operating System Version Specific Requirements]] towards the end of this page):&lt;br /&gt;
&lt;br /&gt;
 apt-get install perl libncurses5 libselinux1 apache2 libapache2-mod-perl2 libxml-libxml-perl \&lt;br /&gt;
   libunicode-string-perl libterm-readkey-perl libmime-lite-perl libmime-types-perl libdigest-sha-perl \&lt;br /&gt;
   libdbd-mysql-perl libxml-parser-perl libxml2-dev libxml-twig-perl libarchive-any-perl libjson-perl \&lt;br /&gt;
   liblwp-protocol-https-perl libtext-unidecode-perl lynx wget ghostscript poppler-utils antiword elinks \&lt;br /&gt;
   texlive-base texlive-base-bin psutils imagemagick adduser tar gzip unzip libsearch-xapian-perl \&lt;br /&gt;
   libtex-encode-perl libio-string-perl libdbd-mysql-perl python3-html2text make libexpat1-dev libxslt1-dev&lt;br /&gt;
&lt;br /&gt;
If you are installing on Ubuntu, install MySQL server and client:&lt;br /&gt;
&lt;br /&gt;
  apt-get install mysql-server mysql-client libmysqlclient-dev&lt;br /&gt;
&lt;br /&gt;
If you are installing on Debian, install MariaDB server and client:&lt;br /&gt;
&lt;br /&gt;
  apt-get install mariadb-server mariadb-client libmariadb-dev&lt;br /&gt;
&lt;br /&gt;
Next, create the eprints user&lt;br /&gt;
&lt;br /&gt;
 adduser eprints&lt;br /&gt;
&lt;br /&gt;
Now, update Apache configuration to set it up to use the eprints user and group, by ensuring the following lines are set thus in &amp;lt;code&amp;gt;/etc/apache2/envvars&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 export APACHE_RUN_USER=eprints&lt;br /&gt;
 export APACHE_RUN_GROUP=eprints&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Deploying EPrints Source ===&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.4.x for GitHub ====&lt;br /&gt;
&lt;br /&gt;
 apt install git&lt;br /&gt;
 mkdir /opt/eprints3&lt;br /&gt;
 chown eprints:eprints /opt/eprints3&lt;br /&gt;
 chmod 2775 /opt/eprints3&lt;br /&gt;
 su eprints&lt;br /&gt;
 git clone https://github.com/eprints/eprints3.4.git /opt/eprints3&lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git checkout tags/v3.4.5&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.3.x for GitHub ====&lt;br /&gt;
&lt;br /&gt;
 apt install git&lt;br /&gt;
 mkdir /opt/eprints3&lt;br /&gt;
 chown eprints:eprints /opt/eprints3&lt;br /&gt;
 chmod 2775 /opt/eprints3&lt;br /&gt;
 su eprints&lt;br /&gt;
 git clone https://github.com/eprints/eprints.git /opt/eprints3&lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git checkout tags/v3.3.16&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.4.x from files.eprints.org ====&lt;br /&gt;
&lt;br /&gt;
 cd /tmp/&lt;br /&gt;
 wget https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.6.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then put in the source code in place:&lt;br /&gt;
&lt;br /&gt;
 mv eprints-3.4.6 /usr/share/eprints&lt;br /&gt;
 chmod 2775 /usr/share/eprints&lt;br /&gt;
 chown -R eprints:eprints /usr/share/eprints&lt;br /&gt;
&lt;br /&gt;
If you want a publications flavoured repository, then also:&lt;br /&gt;
&lt;br /&gt;
 wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 mv eprints-3.4.6/flavours/pub_lib /usr/share/eprints/flavours&lt;br /&gt;
 chmod -R g+w /usr/share/eprints/flavours/pub_lib&lt;br /&gt;
 chown -R eprints:eprints /usr/share/eprints/flavours/pub_lib&lt;br /&gt;
&lt;br /&gt;
== Installing from Debian package ==&lt;br /&gt;
As of EPrints 3.4.5 Debian (.deb) packages will no longer be produced.  Due to the complexity of the installation process there are a number of inherent problems with installing using a Deb package. As new operating systems (e.g. Debian and Ubuntu) are released the available packages have changed.  This often leads to packages upon which that EPrints depends ceasing to be available.  This makes it very difficult or impossible to install the Debian package, as well as requiring retrospective effort to install packages using other sources, (e.g. additional APT repositories or using CPAN).  However, the main concern of installation the Debian package, particularly through EPrints' APT repository, is that it can lead to EPrints being upgraded automatically to a new version.  Upgrading EPrints using a Debian package is likely to lead to EPrints producing errors, as configuration changes are often required as part of the upgrade process.  Automating these changes within the Debian package would be all but impossible due to EPrints' high level of customisability.&lt;br /&gt;
&lt;br /&gt;
=== Installing publications flavour ===&lt;br /&gt;
EPrints 3.4 DEBs only come with the in-built 'zero' flavour and not the typical publications flavour.  Before trying to set up you archive you will need to (as the eprints user) download the latest publications flavour tarball from https://files.eprints.org/ and unpack it into /usr/share/eprints/:&lt;br /&gt;
 wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.6-flavours.tar.gz -C /usr/share/eprints/&lt;br /&gt;
 mv /usr/share/eprints/eprints-3.4.6/flavours /usr/share/eprints/&lt;br /&gt;
 rmdir /usr/share/eprints/eprints-3.4.6/&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Next, as the eprints user copy &amp;lt;code&amp;gt;EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm.tmpl&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;EPRINTS_PATH&amp;lt;/code&amp;gt; will be either &amp;lt;code&amp;gt;/usr/share/eprints3/&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/usr/share/eprints&amp;lt;/code&amp;gt; depending on which instructions you followed above.&lt;br /&gt;
&lt;br /&gt;
EPrints is now fully installed at &amp;lt;code&amp;gt;EPRINTS_PATH/&amp;lt;/code&amp;gt;. However, you will not yet have a running archive. Follow the [[Getting Started with EPrints 3]] instructions to set this up.&lt;br /&gt;
&lt;br /&gt;
=== Post-configuration ===&lt;br /&gt;
Next, add the file &amp;lt;code&amp;gt;/etc/apache2/sites-available/eprints.conf&amp;lt;/code&amp;gt; with the following line:&lt;br /&gt;
&lt;br /&gt;
 Include EPRINTS_PATH/cfg/apache.conf&lt;br /&gt;
&lt;br /&gt;
To enable this as root run the command:&lt;br /&gt;
&lt;br /&gt;
 a2ensite eprints&lt;br /&gt;
&lt;br /&gt;
Also it may be necessary to disable the default site otherwise the default Apache page will still be shown:&lt;br /&gt;
&lt;br /&gt;
 a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
Finally, restart Apache:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
You should now be able to access your vanilla repository at the hostname you specified when running '''epadmin create''' from the [[Getting Started with EPrints 3]] instructions.  You should then login as the admin user you created during this process and turn on the indexer.  This can be done by clicking on the '''Admin''' link under the Logged in menu, then clicking on the '''System Tools''' tab and finally the '''Start Indexer''' button.&lt;br /&gt;
&lt;br /&gt;
=== Useful commands for source development and testing ===&lt;br /&gt;
The following commands may be useful for those developing or testing EPrints but are not necessary for installing EPrints.&lt;br /&gt;
==== Install EPrints build dependencies ====&lt;br /&gt;
 apt-get build-dep eprints&lt;br /&gt;
==== Get EPrints source ====&lt;br /&gt;
 apt-get source eprints&lt;br /&gt;
==== Rebuilding ====&lt;br /&gt;
To change the way the eprints builds you can edit the debian/rules file (the only line you will want is the configure one). Once done you can then type &amp;lt;code&amp;gt;dpkg-buildpackage -rfakeroot&amp;lt;/code&amp;gt; from the root dir of the extracted tarball. &lt;br /&gt;
&lt;br /&gt;
This will build you a .deb in the directory above your current location, which can then be installed usinging dpkg:&lt;br /&gt;
 dpkg -i ../eprints-X.X.X_all.deb&lt;br /&gt;
&lt;br /&gt;
Alternatively you can configure and install it yourself (a non debian specific version) by configuring manually and then running install.pl:&lt;br /&gt;
 $ ./configure --with-smtp-server=smtp.yourdomain&lt;br /&gt;
 $ sudo ./install.pl&lt;br /&gt;
&lt;br /&gt;
== Operating System Version Specific Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 20.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 20.04}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 22.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 22.04}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 24.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 24.04}}&lt;br /&gt;
&lt;br /&gt;
=== Debian Known Issues ===&lt;br /&gt;
See [[Debian Known Issues]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Installing_EPrints_on_Debian/Ubuntu&amp;diff=16698</id>
		<title>Installing EPrints on Debian/Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Installing_EPrints_on_Debian/Ubuntu&amp;diff=16698"/>
		<updated>2024-10-30T18:14:20Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: URL &amp;amp; version update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Debian and Ubuntu]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Ubuntu 20.04 LTS, 22.04 LTS and Ubuntu 24.04 LTS (non-LTS versions not recommended)&lt;br /&gt;
* Debian 10 (Buster), Debian 11 (Bullseye) or Debian 12 (Bookworm) - These are not as comprehensively tested as Ubuntu LTS versions.&lt;br /&gt;
&lt;br /&gt;
== Installing EPrints from Source ==&lt;br /&gt;
&lt;br /&gt;
=== Dependencies and Pre-configuration ===&lt;br /&gt;
'''The ideal way to install from source is via git using the Core Git repositories [https://github.com/eprints/eprints3.4 EPrints 3.4] or [https://github.com/eprints/eprints EPrints 3.3], and installing from a source tarball is generally discouraged.'''&lt;br /&gt;
&lt;br /&gt;
'''Installing from source via git is now the recommended  way to install EPrints for production repositories, after having proved to be a useful installation method to those seeking to develop the EPrints code, develop a plugin or develop a Bazaar package too.'''&lt;br /&gt;
&lt;br /&gt;
First, as the root user install all the dependencies for EPrints ('''N.B.''' Some dependencies may not be able in certain versions of Debian/Ubuntu.  See [[#Operating System Version Specific Requirements|Operating System Version Specific Requirements]] towards the end of this page):&lt;br /&gt;
&lt;br /&gt;
 apt-get install perl libncurses5 libselinux1 apache2 libapache2-mod-perl2 libxml-libxml-perl \&lt;br /&gt;
   libunicode-string-perl libterm-readkey-perl libmime-lite-perl libmime-types-perl libdigest-sha-perl \&lt;br /&gt;
   libdbd-mysql-perl libxml-parser-perl libxml2-dev libxml-twig-perl libarchive-any-perl libjson-perl \&lt;br /&gt;
   liblwp-protocol-https-perl libtext-unidecode-perl lynx wget ghostscript poppler-utils antiword elinks \&lt;br /&gt;
   texlive-base texlive-base-bin psutils imagemagick adduser tar gzip unzip libsearch-xapian-perl \&lt;br /&gt;
   libtex-encode-perl libio-string-perl libdbd-mysql-perl python3-html2text make libexpat1-dev libxslt1-dev&lt;br /&gt;
&lt;br /&gt;
If you are installing on Ubuntu, install MySQL server and client:&lt;br /&gt;
&lt;br /&gt;
  apt-get install mysql-server mysql-client libmysqlclient-dev&lt;br /&gt;
&lt;br /&gt;
If you are installing on Debian, install MariaDB server and client:&lt;br /&gt;
&lt;br /&gt;
  apt-get install mariadb-server mariadb-client libmariadb-dev&lt;br /&gt;
&lt;br /&gt;
Next, create the eprints user&lt;br /&gt;
&lt;br /&gt;
 adduser eprints&lt;br /&gt;
&lt;br /&gt;
Now, update Apache configuration to set it up to use the eprints user and group, by ensuring the following lines are set thus in &amp;lt;code&amp;gt;/etc/apache2/envvars&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 export APACHE_RUN_USER=eprints&lt;br /&gt;
 export APACHE_RUN_GROUP=eprints&lt;br /&gt;
&lt;br /&gt;
=== Downloading and Deploying EPrints Source ===&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.4.x for GitHub ====&lt;br /&gt;
&lt;br /&gt;
 apt install git&lt;br /&gt;
 mkdir /opt/eprints3&lt;br /&gt;
 chown eprints:eprints /opt/eprints3&lt;br /&gt;
 chmod 2775 /opt/eprints3&lt;br /&gt;
 su eprints&lt;br /&gt;
 git clone https://github.com/eprints/eprints3.4.git /opt/eprints3&lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git checkout tags/v3.4.5&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.3.x for GitHub ====&lt;br /&gt;
&lt;br /&gt;
 apt install git&lt;br /&gt;
 mkdir /opt/eprints3&lt;br /&gt;
 chown eprints:eprints /opt/eprints3&lt;br /&gt;
 chmod 2775 /opt/eprints3&lt;br /&gt;
 su eprints&lt;br /&gt;
 git clone https://github.com/eprints/eprints.git /opt/eprints3&lt;br /&gt;
 cd /opt/eprints3/&lt;br /&gt;
 git checkout tags/v3.3.16&lt;br /&gt;
&lt;br /&gt;
==== EPrints 3.4.x from files.eprints.org ====&lt;br /&gt;
&lt;br /&gt;
 cd /tmp/&lt;br /&gt;
 wget https://files.eprints.org/3097/5/eprints-3.4.6.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.6.tar.gz&lt;br /&gt;
&lt;br /&gt;
Then put in the source code in place:&lt;br /&gt;
&lt;br /&gt;
 mv eprints-3.4.6 /usr/share/eprints&lt;br /&gt;
 chmod 2775 /usr/share/eprints&lt;br /&gt;
 chown -R eprints:eprints /usr/share/eprints&lt;br /&gt;
&lt;br /&gt;
If you want a publications flavoured repository, then also:&lt;br /&gt;
&lt;br /&gt;
 wget https://files.eprints.org/3097/6/eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.6-flavours.tar.gz&lt;br /&gt;
 mv eprints-3.4.6/flavours/pub_lib /usr/share/eprints/flavours&lt;br /&gt;
 chmod -R g+w /usr/share/eprints/flavours/pub_lib&lt;br /&gt;
 chown -R eprints:eprints /usr/share/eprints/flavours/pub_lib&lt;br /&gt;
&lt;br /&gt;
== Installing from Debian package ==&lt;br /&gt;
As of EPrints 3.4.5 Debian (.deb) packages will no longer be produced.  Due to the complexity of the installation process there are a number of inherent problems with installing using a Deb package. As new operating systems (e.g. Debian and Ubuntu) are released the available packages have changed.  This often leads to packages upon which that EPrints depends ceasing to be available.  This makes it very difficult or impossible to install the Debian package, as well as requiring retrospective effort to install packages using other sources, (e.g. additional APT repositories or using CPAN).  However, the main concern of installation the Debian package, particularly through EPrints' APT repository, is that it can lead to EPrints being upgraded automatically to a new version.  Upgrading EPrints using a Debian package is likely to lead to EPrints producing errors, as configuration changes are often required as part of the upgrade process.  Automating these changes within the Debian package would be all but impossible due to EPrints' high level of customisability.&lt;br /&gt;
&lt;br /&gt;
=== Installing publications flavour ===&lt;br /&gt;
EPrints 3.4 DEBs only come with the in-built 'zero' flavour and not the typical publications flavour.  Before trying to set up you archive you will need to (as the eprints user) download the latest publications flavour tarball from https://files.eprints.org/ and unpack it into /usr/share/eprints/:&lt;br /&gt;
 wget https://files.eprints.org/2789/2/eprints-3.4.5-flavours.tar.gz&lt;br /&gt;
 tar -xzvf eprints-3.4.5-flavours.tar.gz -C /usr/share/eprints/&lt;br /&gt;
 mv /usr/share/eprints/eprints-3.4.5/flavours /usr/share/eprints/&lt;br /&gt;
 rmdir /usr/share/eprints/eprints-3.4.5/&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Next, as the eprints user copy &amp;lt;code&amp;gt;EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm.tmpl&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;EPRINTS_PATH/perl_lib/EPrints/SystemSettings.pm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;EPRINTS_PATH&amp;lt;/code&amp;gt; will be either &amp;lt;code&amp;gt;/usr/share/eprints3/&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/usr/share/eprints&amp;lt;/code&amp;gt; depending on which instructions you followed above.&lt;br /&gt;
&lt;br /&gt;
EPrints is now fully installed at &amp;lt;code&amp;gt;EPRINTS_PATH/&amp;lt;/code&amp;gt;. However, you will not yet have a running archive. Follow the [[Getting Started with EPrints 3]] instructions to set this up.&lt;br /&gt;
&lt;br /&gt;
=== Post-configuration ===&lt;br /&gt;
Next, add the file &amp;lt;code&amp;gt;/etc/apache2/sites-available/eprints.conf&amp;lt;/code&amp;gt; with the following line:&lt;br /&gt;
&lt;br /&gt;
 Include EPRINTS_PATH/cfg/apache.conf&lt;br /&gt;
&lt;br /&gt;
To enable this as root run the command:&lt;br /&gt;
&lt;br /&gt;
 a2ensite eprints&lt;br /&gt;
&lt;br /&gt;
Also it may be necessary to disable the default site otherwise the default Apache page will still be shown:&lt;br /&gt;
&lt;br /&gt;
 a2dissite 000-default&lt;br /&gt;
&lt;br /&gt;
Finally, restart Apache:&lt;br /&gt;
&lt;br /&gt;
 service apache2 restart&lt;br /&gt;
&lt;br /&gt;
You should now be able to access your vanilla repository at the hostname you specified when running '''epadmin create''' from the [[Getting Started with EPrints 3]] instructions.  You should then login as the admin user you created during this process and turn on the indexer.  This can be done by clicking on the '''Admin''' link under the Logged in menu, then clicking on the '''System Tools''' tab and finally the '''Start Indexer''' button.&lt;br /&gt;
&lt;br /&gt;
=== Useful commands for source development and testing ===&lt;br /&gt;
The following commands may be useful for those developing or testing EPrints but are not necessary for installing EPrints.&lt;br /&gt;
==== Install EPrints build dependencies ====&lt;br /&gt;
 apt-get build-dep eprints&lt;br /&gt;
==== Get EPrints source ====&lt;br /&gt;
 apt-get source eprints&lt;br /&gt;
==== Rebuilding ====&lt;br /&gt;
To change the way the eprints builds you can edit the debian/rules file (the only line you will want is the configure one). Once done you can then type &amp;lt;code&amp;gt;dpkg-buildpackage -rfakeroot&amp;lt;/code&amp;gt; from the root dir of the extracted tarball. &lt;br /&gt;
&lt;br /&gt;
This will build you a .deb in the directory above your current location, which can then be installed usinging dpkg:&lt;br /&gt;
 dpkg -i ../eprints-X.X.X_all.deb&lt;br /&gt;
&lt;br /&gt;
Alternatively you can configure and install it yourself (a non debian specific version) by configuring manually and then running install.pl:&lt;br /&gt;
 $ ./configure --with-smtp-server=smtp.yourdomain&lt;br /&gt;
 $ sudo ./install.pl&lt;br /&gt;
&lt;br /&gt;
== Operating System Version Specific Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 20.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 20.04}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 22.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 22.04}}&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 24.04 LTS ===&lt;br /&gt;
{{:Issues with Installing EPrints on Ubuntu 24.04}}&lt;br /&gt;
&lt;br /&gt;
=== Debian Known Issues ===&lt;br /&gt;
See [[Debian Known Issues]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Upgrading&amp;diff=16239</id>
		<title>Upgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Upgrading&amp;diff=16239"/>
		<updated>2024-05-08T15:50:07Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typos removed, versions updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{manual}}&lt;br /&gt;
&lt;br /&gt;
== Upgrade between same series versions of EPrints ==&lt;br /&gt;
If you are upgrading between the same series versions of EPrints (e.g. 3.3.15 to 3.3.16 or 3.4.2 to 3.4.3)  then the upgrade process is somewhat more straightforward that upgrading between EPrints series versions (e.g. 3.3.16 to 3.4.3).  This page was originally written for upgrading between 3.3 series versions,  '''[[Upgrading between EPrints 3.4 versions]]''' provides additional specific information about EPrints 3.4 series.&lt;br /&gt;
&lt;br /&gt;
=== From a Linux Package Manager ===&lt;br /&gt;
If you have installed from the Deb or RPM package, then you can just upgrade this.  However, it is recommended that you have done a backup before doing this.  Also if this is on a production server, that you do this during an extended period of scheduled downtime and have previously tested the upgrade on a pre-production server.&lt;br /&gt;
&lt;br /&gt;
Once the package upgrade has completed make sure to run both ''epadmin upgrade'' and ''epadmin update'' on all archives.  The package manager may only tell you need to run ''epadmin upgrade'' but ''epadmin update'' is also needed to ensure newly added fields to data objects are also incorporated.&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
=== From GitHub ===&lt;br /&gt;
If you have installed with GitHub, the preferred method for production repositories, you can update to the latest version using the following commands, substituting ''y'' for the version you want and ''x'' for the 3 or 4 depending on whether you are upgrading between EPrints 3.3 or 3.4 series:&lt;br /&gt;
&lt;br /&gt;
 git fetch origin&lt;br /&gt;
 git merge tags/v3.x.y&lt;br /&gt;
&lt;br /&gt;
This should warn you if you have made any locally uncommitted changes.  You may need to use ''git stash'' to move these temporarily and reintegrate after updating from GitHub.&lt;br /&gt;
&lt;br /&gt;
Once updated to the intended tagged release version any resolved and local uncommitted changes then make sure to run both ''epadmin upgrade'' and ''epadmin update'' on all archives and then reload the webserver and EPrints indexer, e.g.&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
 apachectl graceful&lt;br /&gt;
 /opt/eprints3/bin indexer restart&lt;br /&gt;
&lt;br /&gt;
=== From a Tarball ===&lt;br /&gt;
Although not impossible it is strongly discouraged to upgrade from a tarball.  One major reason not to do this is that if you have made any local changes other than to your original archive's configuration, it will be difficult to ensure all these modifications are retained.  However, if you wish to do this, you can follow the instructions below, (as the eprints user unless otherwise stated):&lt;br /&gt;
&lt;br /&gt;
==== Downloading and Unpacking 3.3 ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the tarball from files.eprints.org, (e.g. https://files.eprints.org/2306/5/eprints-3.3.16.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, unpack the tarball under the same parent path as your existing EPrints and change the ownership of this whole directory structure&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cd /opt&lt;br /&gt;
 tar -xzvf eprints-3.3.16.tar.gz&lt;br /&gt;
 mv eprints-3.3.16 eprints3_new&lt;br /&gt;
 chown -R eprints:eprints /opt/eprints3_new&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
==== Downloading and Unpacking 3.4 ====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the main tarball from files.eprints.org, (e.g. https://files.eprints.org/2789/1/eprints-3.4.5.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Download the publications tarball from files.eprints.org, (e.g. https://files.eprints.org/2789/2/eprints-3.4.5-flavours.tar.gz)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, unpack the tarball under the same parent path as your existing EPrints and change the ownership of this whole directory structure&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cd /opt&lt;br /&gt;
 tar -xzvf /home/eprints/eprints-3.4.5.tar.gz&lt;br /&gt;
 tar -xzvf /home/eprints/eprints-3.4.5-flavours.tar.gz&lt;br /&gt;
 mv eprints-3.4.5 eprints3_new&lt;br /&gt;
 chown -R eprints:eprints /opt/eprints3_new&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
==== Installing and Configuring ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, stop Apache and EPrints' indexer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 apachectl graceful-stop&lt;br /&gt;
 /opt/eprints3/bin/epindexer stop&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Move the archive(s) from your old EPrints to your new one, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mv /opt/eprints3/archives/* /opt/eprints3_new/archives/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Copy SystemSettings.pm to your new EPrints as well as site-wide settings&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 cp -p /opt/eprints3/perl_lib/EPrints/SystemSettings.pm /opt/eprints3_new/perl_lib/EPrints/&lt;br /&gt;
 cp -pR /opt/eprints3/cfg /opt/eprints3_new/cfg&lt;br /&gt;
 cp -pR /opt/eprints3/site_lib /opt/eprints3_new/site_lib&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; If you are aware of any local modifications to files under your EPrints path (e.g. /opt/eprints3) but outside the archives directory then compare these files using diff to work out how your local changes can be integrated.  E.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 diff /opt/eprints3/perl_lib/EPrints/MetaField/Date.pm /opt/eprints3_new/perl_lib/EPrints/MetaField/Date.pm &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, switch round the old and new versions of EPrints, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mv /opt/eprints3 /opt/eprints3_old&lt;br /&gt;
 mv /opt/eprints3_new /opt/eprints3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Run epadmin test to check there are no configuration issues, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epadmin test&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Run ''epadmin upgrade'' and ''epadmin update'' to deploy any structural changes or addition of fields to the database, e.g.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epadmin upgrade ARCHIVEID&lt;br /&gt;
 /opt/eprints3/bin/epadmin update ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Restart EPrints' indexer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/bin/epindexer start&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; As the root user, restart Apache.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 apachectl restart&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Don't forget to reinstall your Bazaar packages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Upgrading to EPrints to 3.3 ==&lt;br /&gt;
Upgrading from older 3.1 and 3.2 versions of EPrints to 3.3 is somewhat more involved.  Please see the following guides:&lt;br /&gt;
* [[Upgrading from 3.1]]&lt;br /&gt;
* [[Upgrading from 3.2]]&lt;br /&gt;
&lt;br /&gt;
== Upgrading to EPrints 3.4 ==&lt;br /&gt;
To upgrade to EPrints 3.4 you will need to already be running a version of EPrints 3.3.  Ideally at least 3.3.12, which has the following guide:&lt;br /&gt;
* [[Upgrading 3.3.12+ to 3.4]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Safe_Upgrading&amp;diff=16238</id>
		<title>Safe Upgrading</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Safe_Upgrading&amp;diff=16238"/>
		<updated>2024-05-08T15:27:23Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: excluding reproducible dir added, some reformatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You should really aim to upgrade your EPrints repository about once a year to keep on top of the new developments. Upgrading your EPrints repository can be a very daunting task. The aim of this page is to get people who are not confident about undertaking it into a position where it is safe to do so. Note upgrading is different to migrating (although some of the procedures maybe the same). &lt;br /&gt;
&lt;br /&gt;
==Am I Upgrading?==&lt;br /&gt;
&lt;br /&gt;
Upgrading is when you intend to update eprints code base on a server to a later version. Upgrading covers moves from EPrints 3.x.y to 3.a.b if you want to move from EPrints 2.x.y to 3.a.b then you are undertaking a migration. Also if you are moving your EPrints repository from one server to another you are migrating. Upgrading is just a different sub-version (but same main version) of EPrints on the same server.&lt;br /&gt;
&lt;br /&gt;
==Preparation==&lt;br /&gt;
&lt;br /&gt;
If you are upgrading then there are a number of precautions you can take to ensure the process runs as smoothly as possible. It is impossible to give 100% cast iron guarantee an upgrade will succeed particularly if you have a heavily customised repository so you must make sure that you are in position to roll back in the unlikely event that the upgrade does not go to plan.&lt;br /&gt;
&lt;br /&gt;
It is worth saying at this point that if possible you can ease your fears by performing this task on a development server as a practice run. This technique if available to you is strongly advised.&lt;br /&gt;
&lt;br /&gt;
To prepare you should:&lt;br /&gt;
&lt;br /&gt;
===Tell an adult===&lt;br /&gt;
&lt;br /&gt;
Talk to your system administrator about getting a full system backup made. It is advisable to do this fairly regularly anyway in case of hardware failure or fire (see [[Backups|backing up]]).&lt;br /&gt;
&lt;br /&gt;
You should also speak to who ever you need to get permission from to cause server down time. This is not always required as many upgrades can be done with very little down time but it is best to ask for permission and not use it than find you have to apologize for an unexpected service outage.&lt;br /&gt;
&lt;br /&gt;
===Create a backups directory===&lt;br /&gt;
&lt;br /&gt;
 mkdir &amp;lt;eprints_root&amp;gt;/backups&lt;br /&gt;
&lt;br /&gt;
To create a directory to put backups into.&lt;br /&gt;
&lt;br /&gt;
===Check you have enough disk space===&lt;br /&gt;
&lt;br /&gt;
 df -h&lt;br /&gt;
&lt;br /&gt;
Will give you a table:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Filesystem            Size  Used Avail Use% Mounted on&lt;br /&gt;
/dev/sda5              32G  1.4G   31G   5% /&lt;br /&gt;
/dev/sda7              32G   22G   11G  67% /opt&lt;br /&gt;
/dev/sda8              41G   24G   18G  59% /usr&lt;br /&gt;
/dev/sda6              16G  6.2G  9.9G  39% /var&lt;br /&gt;
/dev/sdb1             135G   24G  105G  19% /backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should make sure that the disk which contains your eprints directory (usually /opt or /usr) is over 50% free. The backup of the archive will take up a similar amount of space to the archive itself so you should check you have enough space for it before starting.&lt;br /&gt;
&lt;br /&gt;
===Backup your database===&lt;br /&gt;
&lt;br /&gt;
 cd &amp;lt;eprints_root&amp;gt;/backups&lt;br /&gt;
&lt;br /&gt;
to change to your backups directory&lt;br /&gt;
&lt;br /&gt;
 mysqldump -u &amp;lt;db_user&amp;gt; -p &amp;lt;db_name&amp;gt; &amp;gt; &amp;lt;archive_id&amp;gt;.archive.backup-&amp;lt;year&amp;gt;-&amp;lt;month&amp;gt;-&amp;lt;day&amp;gt;.sql&lt;br /&gt;
&lt;br /&gt;
at the prompt you will need to enter the ''password''. If your repository is large this step can take a while. The purpose of the elaborate file name is so that at a glance you can tell what this file is. Also if you have multiple backups then ordering them alphabetically will put the backups for that archive in date order so you can find your most recent backup. Ending the file with .sql means you know it is a database backup. &lt;br /&gt;
&lt;br /&gt;
If you do not know your &amp;lt;code&amp;gt;db_user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;db_name&amp;lt;/code&amp;gt; or ''password'' for the above step you can find it by typing:&lt;br /&gt;
&lt;br /&gt;
 cat &amp;lt;eprints_root&amp;gt;/archives/&amp;lt;archive_id&amp;gt;/cfg/cfg.d/database.pl&lt;br /&gt;
&lt;br /&gt;
You should now have a .sql file containing your database backup in your &amp;lt;eprints_root&amp;gt;/backups directory.&lt;br /&gt;
&lt;br /&gt;
===Backup your archive===&lt;br /&gt;
&lt;br /&gt;
 cd &amp;lt;eprints_root&amp;gt;/archives/&lt;br /&gt;
&lt;br /&gt;
and then&lt;br /&gt;
&lt;br /&gt;
 tar czf &amp;lt;eprints_root&amp;gt;/backups/&amp;lt;archive_id&amp;gt;.archive.backup-&amp;lt;year&amp;gt;-&amp;lt;month&amp;gt;-&amp;lt;day&amp;gt;.tgz &amp;lt;archive_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to create a zipped backup of your entire repository including static pages, documents, files and configuration. This can take a long time, for large repositories it can be several hours.&lt;br /&gt;
&lt;br /&gt;
Depending on the output of&lt;br /&gt;
 du -sh {var/xapian,html}&lt;br /&gt;
you may prefer if you are short of disk space  to exclude some big directories which are reproducible (maybe in some hours!). If it makes sense for you backup&lt;br /&gt;
your archive by&lt;br /&gt;
 tar --exclude=&amp;lt;archive_id&amp;gt;/{var/xapian,html} -cvzf &amp;lt;eprints_root&amp;gt;/backups/&amp;lt;archive_id&amp;gt;.archive.backup-&amp;lt;year&amp;gt;-&amp;lt;month&amp;gt;-&amp;lt;day&amp;gt;.tgz &amp;lt;archive_id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Backup your perl_lib===&lt;br /&gt;
&lt;br /&gt;
This step should not be necessary if you have followed the guide for [[Tips_to_write_plugins|making safe plugins]]. If you didn't follow the guide and modified &amp;lt;code&amp;gt;perl_lib&amp;lt;/code&amp;gt; (for shame) or you are particularly paranoid you may want to backup your &amp;lt;code&amp;gt;perl_lib&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
 cd &amp;lt;eprints_root&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then&lt;br /&gt;
&lt;br /&gt;
 tar czf backups/&amp;lt;archive_id&amp;gt;.archive.backup-&amp;lt;year&amp;gt;-&amp;lt;month&amp;gt;-&amp;lt;day&amp;gt;.tgz &amp;lt;perl_lib&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be ready to upgrade.&lt;br /&gt;
&lt;br /&gt;
==Upgrading==&lt;br /&gt;
&lt;br /&gt;
Make sure you have re-read the list of things to know about upgrading your specific EPrints version up to the one you are moving to.&lt;br /&gt;
&lt;br /&gt;
[[Category:Out of Date]]&lt;br /&gt;
[[Category: Upgrading]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_3.4.5&amp;diff=16237</id>
		<title>EPrints 3.4.5</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_3.4.5&amp;diff=16237"/>
		<updated>2024-05-08T14:04:05Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{releasenotes}}&lt;br /&gt;
&lt;br /&gt;
== Release Notes ==&lt;br /&gt;
EPrints 3.4.5 is now available on [https://github.com/eprints/eprints3.4/releases/tag/v3.4.5  GitHub] and [https://files.eprints.org/2789/ files.eprints.org].&lt;br /&gt;
* '''Zero codename:''' Smoothie Squall&lt;br /&gt;
* '''Publications flavour codename:''' Kombucha Hypercane (1.5)&lt;br /&gt;
&lt;br /&gt;
=== New Dependencies ===&lt;br /&gt;
&amp;lt;tt&amp;gt;html2text&amp;lt;/tt&amp;gt; RPM / DEB required instead of &amp;lt;tt&amp;gt;elinks&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Check earlier dependencies for [[EPrints 3.4.4]] and before.&lt;br /&gt;
&lt;br /&gt;
=== Changes Since 3.4.4 ===&lt;br /&gt;
&lt;br /&gt;
==== New Functionality ====&lt;br /&gt;
* Adds [[:API:tools/console|console-based REPL tool]]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/290 Adds &amp;lt;code&amp;gt;staged&amp;lt;/code&amp;gt; status for indexer tasks so they can be run outside the EPrints indexer.  E.g. using a cron job].&lt;br /&gt;
&lt;br /&gt;
==== Security and Privacy Improvements ====&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/245 Adds PIN based security for documents].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/246 Makes Xapian index obey &amp;lt;tt&amp;gt;text_index&amp;lt;/tt&amp;gt; attribute for fields].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/276 Allows restricted documents to not have their full texts indexed].&lt;br /&gt;
* Uses HTTPS for CrossRef lookup of DOIs.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/278 Removes (HTTP only) &amp;lt;code&amp;gt;eprints_session&amp;lt;/code&amp;gt; if HTTPS is enabled].&lt;br /&gt;
* Improves target URL validation so only local URLs are allowed and not just paths.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/281 Explicitly disables password field autocomplete].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/237 Improves &amp;quot;request copy&amp;quot; security].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/311 Ensures &amp;lt;code&amp;gt;SameSite=Strict&amp;lt;/code&amp;gt; for all cookies].&lt;br /&gt;
* Better force HTTPS when generating repository URLs.&lt;br /&gt;
&lt;br /&gt;
==== General Improvements ====&lt;br /&gt;
* Updates and makes consistent list of software contributors.&lt;br /&gt;
* Adds get_search_conditions_not_ex for float fields.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/240 Updates DOCTYPE to be more standards compliant].&lt;br /&gt;
* Updates &amp;lt;tt&amp;gt;pub_lib&amp;lt;/tt&amp;gt; homepage links for browse views.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/242 Allows MetaField::Subject to have user-defined render_value].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/238 Improves OAI-PMH representation of records that once were live].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/195 Allows &amp;lt;tt&amp;gt;userid&amp;lt;/tt&amp;gt; to be logged in Access data objects when user is logged in].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/239 Adds ability to manipulate element attributes].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/244 Updates latest_tool to use filters].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/250 Adds id and classes for individual styling of &amp;quot;Manage records&amp;quot; page].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/252 Adds class attributes for &amp;quot;View details&amp;quot; table].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/254 Adds classnames to navigation items and links].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/256 Splits off &amp;lt;tt&amp;gt;senderemail&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;adminemail&amp;lt;/tt&amp;gt; if this need to be different for DMARC reasons].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/261 Adds the optional attributes of resumptionToken in OAI-PMH].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/257 Table class for screens; Status, DatabaseSchema and MetaFieldListing].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/271 Adds &amp;lt;code&amp;gt;--prune&amp;lt;/code&amp;gt; option to &amp;lt;code&amp;gt;generate_views&amp;lt;/code&amp;gt;].&lt;br /&gt;
* Various improvements to &amp;lt;code&amp;gt;check_xapian&amp;lt;/code&amp;gt; script including &amp;lt;code&amp;gt;--facets&amp;lt;/code&amp;gt; automatically using &amp;lt;code&amp;gt;xapian.facet&amp;lt;/code&amp;gt; directory rathe than needing to specify in &amp;lt;code&amp;gt;--path&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Adds verbose debug to &amp;lt;code&amp;gt;send_alerts&amp;lt;/code&amp;gt; to advise when email is not sent as saved search notifications are only required when results are found.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/287 Set canonical URLs for abstract pages for better Google indexing].&lt;br /&gt;
* Ensures sitemaps always uses HTTPS URLs if &amp;lt;code&amp;gt;securehost&amp;lt;/code&amp;gt; is defined.&lt;br /&gt;
* Breaks up show/hide help phrases to make them more compatible with Bootstrap.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/291 Makes task timeout for EPrints' indexer configurable].  Along with making other indexer settings configurable.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/296 Replaces &amp;lt;code&amp;gt;elinks&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;html2text&amp;lt;/code&amp;gt; as application to extract text from HTML/XML files for indexing].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/299 Allows staff search to find results where &amp;lt;code&amp;gt;metadata_visibility&amp;lt;/code&amp;gt; is not set to &amp;lt;code&amp;gt;show&amp;lt;/code&amp;gt;].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/298 Allows XSL files to be viewed using &amp;lt;code&amp;gt;Config::View::XML&amp;lt;/code&amp;gt; plugin].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/249 Allows &amp;lt;code&amp;gt;MetaField::Subject&amp;lt;/code&amp;gt;'s &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt; attribute to be set to a configurable function].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/286 Provides overarching setting for maximum file upload size].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/297 Significant phrase changes to facilitate better internationalisation].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/294 Allows screen plugins to use a bespoke page template].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/210 Removes implicit commit when reordering &amp;lt;code&amp;gt;multiple&amp;lt;/code&amp;gt; fields].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/304 Adds separate CSS classes to top and bottom action buttons in workflow].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/306 Adds &amp;lt;code&amp;gt;$c-&amp;gt;{retain_embargo_dates}&amp;lt;/code&amp;gt; settings so dates can be retained when embargoes are lifted without causing any validation warnings or need to perpetually check old embargo dates].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/310 Prevent indexer.log filling up with errors from &amp;lt;code&amp;gt;pdftotext&amp;lt;/code&amp;gt;].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/312 Additional CSS classes and IDs added for parts of input forms].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/317 Improvements to phrases used for icons in input forms and views].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/318 Render paragraphs from &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt;s in emails].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/321 Allow indexcodes to be regenerated as part of &amp;lt;code&amp;gt;epadmin reindex&amp;lt;/code&amp;gt; when &amp;lt;code&amp;gt;--force&amp;lt;/code&amp;gt; flag is used].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/322 Allow different phrases to be used for field names dependent on eprint's type].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/326 Allows date input fields to be rendered shorter].&lt;br /&gt;
* Improves rendering/hiding of missing subjects depending on &amp;lt;code&amp;gt;render_quiet&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Adds data-row... attributes to compound/multiple field renders.&lt;br /&gt;
* Various improvements to POD documentation.&lt;br /&gt;
&lt;br /&gt;
==== Bug Fixes ====&lt;br /&gt;
* Fixes typo for &amp;lt;tt&amp;gt;_epname&amp;lt;/tt&amp;gt; in RPM spec file.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/243 Adds properly referenced ARIA labels for sets and fields with bespoke &amp;lt;tt&amp;gt;search_input_style&amp;lt;/tt&amp;gt;].&lt;br /&gt;
* Gets EPrints install script to create &amp;lt;tt&amp;gt;EPRINTS_PATH/tmp&amp;lt;/tt&amp;gt; directory with appropriate permissions.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/241 Stops including ARIA &amp;lt;tt&amp;gt;describedby&amp;lt;/tt&amp;gt; if help text is empty].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/247 Fixes &amp;quot;Data too long for column 'word'&amp;quot; indexing errors].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/233 Now returns &amp;quot;410 Gone&amp;quot; HTTP code when item has been retired].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/255 Adds missing &amp;lt;code&amp;gt;&amp;lt;help&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;title&amp;gt;&amp;lt;/code&amp;gt; elements used in phrases for 2nd+ document fields in eprint workflows].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/258 Fixes text indexing &amp;lt;tt&amp;gt;saved_search.spec&amp;lt;/tt&amp;gt; causing problems with Xapian].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/262 Fixes HTTPS URLs not be parseable by &amp;lt;code&amp;gt;XML::LibXML-&amp;gt;parse_file&amp;lt;/code&amp;gt;].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/263 Fixes missing URL encoding of # in filename download links].&lt;br /&gt;
* Checks &amp;lt;code&amp;gt;render_dynamic&amp;lt;/code&amp;gt; attribute is set for &amp;lt;code&amp;gt;MetaField&amp;lt;/code&amp;gt; before testing value &lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/265 Fixes LDAP-based login failures when accounts need to be created on-the-fly].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/266 Ensures &amp;lt;code&amp;gt;$c-&amp;gt;{userhome}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$c-&amp;gt;{urlpath}&amp;lt;/code&amp;gt; are auto set correctly].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/269 Fixes missing parameter field when making phrase &amp;lt;code&amp;gt;limit_names_shown_label&amp;lt;/code&amp;gt;].&lt;br /&gt;
* Adds &amp;lt;code&amp;gt;poppler-utils&amp;lt;/code&amp;gt; DEB dependency for &amp;lt;code&amp;gt;pdftotext&amp;lt;/code&amp;gt; to index PDFs.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/275 Allows &amp;lt;code&amp;gt;PHDTHESIS&amp;lt;/code&amp;gt; from BibTeX to be imported without error by correcting mappings for &amp;lt;code&amp;gt;thesis_type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;thesis_name&amp;lt;/code&amp;gt; fields].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/279 Uses original rather than proxied IP address in access record if proxied address is in (configurable) private IP address range].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/272 Fixes BibTeX import parsing by ignoring entries with empty of malformed citekeys].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/274 Fixes issues with both server-side and client-side caching of JavaScript and CSS auto files].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/284 Fixes search offset being forgotten when results reordered].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/285 Fixes search ordering reverting to &amp;quot;by relevance&amp;quot; when different default ordering is set].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/289 Makes redirects from short URLs to long URLs a 301 rather than 302 or 303].  Good for SEO.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/293 Ensures BibTeX export of &amp;lt;code&amp;gt;note&amp;lt;/code&amp;gt; is not prevented is already used by &amp;lt;code&amp;gt;ispublished&amp;lt;/code&amp;gt; field].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/295 Fixes incorrect location described in &amp;lt;code&amp;gt;lib/syscfg.d/README&amp;lt;/code&amp;gt;].&lt;br /&gt;
* Tidies up &amp;lt;code&amp;gt;replyto_name&amp;lt;/code&amp;gt; used in emails when referenced user has not set their name.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/301 Fixes disabling &amp;lt;code&amp;gt;Config::Edit&amp;lt;/code&amp;gt; plugins breaking &amp;quot;View Configuration&amp;quot;].&lt;br /&gt;
* Gracefully handles template pin not being defined or mapped.&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/253 Fixes incorrect counts for items for ancestor (e.g. parent) subjects in subject field based browse views].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/292 Fixes bug with grouping function being ignored in certain browse views].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/283 Ensures appropriate escaping in search serialization and setting of &amp;lt;code&amp;gt;$self-&amp;gt;{op}&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;regexp&amp;lt;/code&amp;gt; search condition].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/306 Fixes ordering of summary box &amp;lt;code&amp;gt;div&amp;lt;/code&amp;gt;s on abstract pages].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/309 CRUD interface GET requests now return &amp;lt;code&amp;gt;NOT_FOUND&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;FORBIDDEN&amp;lt;/code&amp;gt; for non-existent eprints].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/314 Removes redundant code from XHTML field rendering function].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/commit/bd0a1e928b70478e4c25f2c818cc77d31b12c98f Ensures consistent ordering of RejectWithEmail / RemoveWithEmail buttons on review queue].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/319 Fixes check for whether JavaScript within uploaded files can run when viewed through EPrints].  Fixes change for [https://github.com/eprints/eprints3.4/issues/62 original issue].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/320 Adds more character mappings for indexer to fix issues with indexing tasks failing to complete due to duplicate index errors].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/commit/ffd9b53079bc6969ba17671552aefd5b5d511c66|Removes unnecessary field defaults. Better restricts digits for int fields].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/pull/325 Fixes ARIA typo in upload form].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/329 Fixes use of fieldsets in input/search from to make it easier and more consistent when modifying CSS].&lt;br /&gt;
* [https://github.com/eprints/eprints3.4/issues/330 Deal with UTF8-MB4 characters that would break database queries].&lt;br /&gt;
* Makes user menu bar and footer more responsive to page width.&lt;br /&gt;
* Fixes word-wrapping overflow on homepage description list.&lt;br /&gt;
* Various improvements to the &amp;lt;code&amp;gt;tidy_pids&amp;lt;/code&amp;gt; script.&lt;br /&gt;
* Various typos&lt;br /&gt;
&lt;br /&gt;
=== Known Issues ===&lt;br /&gt;
&lt;br /&gt;
==== Long time to add &amp;lt;tt&amp;gt;requester_userid&amp;lt;/tt&amp;gt; field to access data object ====&lt;br /&gt;
Adding new columns to a database table that already contains a lot of records can take a long time.  The access table for EPrints can often have tens of millions of records.  At such a size adding a new column can take in the order of hours.  EPrints 3.4.5 add the new field &amp;lt;tt&amp;gt;requester_userid&amp;lt;/tt&amp;gt;.  This is intended to capture the logged in user that is viewing or downloading an eprint/document.  This is useful for Open Education repositories that have different access permissions.  However, if you have a large access table you may want to [https://github.com/eprints/eprints3.4/commit/79683e8dadda91f5d4862b23fa7bd80bcdee081d apply this patch] from the [https://github.com/eprints/eprints3.4/issues/333 GitHub issue].&lt;br /&gt;
&lt;br /&gt;
== Planned Development ==&lt;br /&gt;
See [[EPrints 3.4.6]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Eprints3.4]]&lt;br /&gt;
[[Category:Releases]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=How_to_Fix_UTF-8_problems&amp;diff=16208</id>
		<title>How to Fix UTF-8 problems</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=How_to_Fix_UTF-8_problems&amp;diff=16208"/>
		<updated>2024-02-19T14:18:07Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: Categories modified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a guide to bug fixing UTF-8 problems you might find around EPrints. It should be particularly helpful for people creating plugins, for example custom InputForm::Components.&lt;br /&gt;
&lt;br /&gt;
[[Category:Obsolete‏‎]] &lt;br /&gt;
[[Category:Documentation Needed‏‎]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Common_MySQL_Problems_with_EPrints&amp;diff=16207</id>
		<title>Common MySQL Problems with EPrints</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Common_MySQL_Problems_with_EPrints&amp;diff=16207"/>
		<updated>2024-02-19T13:51:51Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: link/category added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Work_in_Progress]]&lt;br /&gt;
[[Category:Documentation Needed‏‎]]&lt;br /&gt;
{{Beware | If you plan to follow any of the resolutions described below, make sure you have backed up the database, so you can restore it if things go wrong.}}&lt;br /&gt;
&lt;br /&gt;
There are a number of common problems that EPrints can have with MySQL, which often result from the increasing size and complexity of an EPrints repository.&lt;br /&gt;
&lt;br /&gt;
== Row size too large ==&lt;br /&gt;
=== Example error message ===&lt;br /&gt;
 DBD::mysql::st execute failed: Row size too large (&amp;gt; 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline. at /opt/eprints3/bin/../perl_lib/EPrints/Database.pm line 1185.&lt;br /&gt;
=== Reason for error ===&lt;br /&gt;
Many of the &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; data object fields are set to type text, which leads to then being created as &amp;lt;code&amp;gt;VARCHAR(255)&amp;lt;/code&amp;gt; columns in the &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; table in the archive's MySQL database.  A &amp;lt;code&amp;gt;VARCHAR(255)&amp;lt;/code&amp;gt; MySQL column can take up to 768 bytes of the maximum permitted 8126 bytes.  768 bytes are potentially required as each character in standard UTF-8 encoding takes three bytes.  However, if a &amp;lt;code&amp;gt;VARCHAR&amp;lt;/code&amp;gt; is empty it will only require 1 byte and more often than not it will only sue a fraction of the characters available.  Unfortunately, this means if there is an unusual &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; record that uses a lot of characters in a lot of fields then it can result in an error like the one above.  This becomes more likely to occur as additional fields are added to the &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; for bespoke requirements of the archive.&lt;br /&gt;
&lt;br /&gt;
The reason for EPrints creating so many &amp;lt;code&amp;gt;VARCHAR(255)&amp;lt;/code&amp;gt; MySQL columns is due to fields of type &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; added to a data object being created as &amp;lt;code&amp;gt;VARCHAR(255)&amp;lt;/code&amp;gt; MySQL columns rather than &amp;lt;code&amp;gt;TEXT&amp;lt;/code&amp;gt;.  There are various differences between the types of MySQL columns, most noticeably &amp;lt;code&amp;gt;TEXT&amp;lt;/code&amp;gt; can store up to 65535 characters rather than just 255.  To facilitate storing more characters it stores these as a reference rather than in the row itself and therefore only use two bytes for this reference, using up a lot less space in the row than a &amp;lt;code&amp;gt;VARCHAR(255)&amp;lt;/code&amp;gt; if this contains a long string of characters.  However, there are a number of downsides to using a &amp;lt;code&amp;gt;TEXT&amp;lt;/code&amp;gt; MySQL column:&lt;br /&gt;
# No default value other than &amp;lt;code&amp;gt;NULL&amp;lt;/code&amp;gt; can be set.  This does not affect EPrints as any requirement for default values is captured in its Perl-based configuration.&lt;br /&gt;
# The column is not fully indexed.  This may affect how efficiently EPrints can carry our MySQL queries that are determinant on the value of this column.  However, when EPrints creates new fields it typically creates an independent index, unless the field's &amp;lt;code&amp;gt;sql_index&amp;lt;/code&amp;gt; attribute is set to 0.&lt;br /&gt;
# A slightly increased latency on recovering data via the reference.  This would have no noticeable effect on the responsiveness of EPrints.&lt;br /&gt;
&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
Currently the only way to fix this problem is to manually modify various &amp;lt;code&amp;gt;VARCHAR(255)&amp;lt;/code&amp;gt; columns in the &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; and make them &amp;lt;code&amp;gt;TEXT&amp;lt;/code&amp;gt; or possibly &amp;lt;code&amp;gt;TINYTEXT&amp;lt;/code&amp;gt; that would make them the same length as the original &amp;lt;code&amp;gt;VARCHAR(255)&amp;lt;/code&amp;gt; column.  The columns you should choose are those most likely to use a large number of characters.  This may include fields like &amp;lt;code&amp;gt;publication&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;book_title&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;id_number&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;event_title&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;publisher&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;contact_email&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;series&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;department&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;institution&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;place_of_pub&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;event_dates&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
One potential issue with doing this is that if you were to recreate the database (say on a test instance of your repository), these fields would be recreated as &amp;lt;code&amp;gt;VARCHAR(255)&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;TEXT&amp;lt;/code&amp;gt;.  Currently, there is no way to define a field in EPrints that will create a MySQL &amp;lt;code&amp;gt;TEXT&amp;lt;/code&amp;gt; column.  Therefore, for simplicity it may be easier to change the attribute type of these field to &amp;lt;code&amp;gt;longtext&amp;lt;/code&amp;gt; (e.g. &amp;lt;code&amp;gt;type =&amp;gt; 'longtext'&amp;lt;/code&amp;gt;) in the EPrints configuration for this field, even though this allows text strings over 4 million characters long (although UTF-8 encoding would only allow strings up to a third of this length).  To complete this change you would also need to manually run the following MySQL command to update the MySQL table column, e.g.&lt;br /&gt;
 ALTER TABLE eprint MODIFY COLUMN publication LONGTEXT DEFAULT NULL;&lt;br /&gt;
If you modify the type of MySQL column in the &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; table it would also be sensible to make sure that the equivalent column in the &amp;lt;code&amp;gt;eprint__ordervalues_en&amp;lt;/code&amp;gt; (and other &amp;lt;code&amp;gt;eprint__ordervalues&amp;lt;/code&amp;gt; tables if your archive supports multiple languages) is also updated to use &amp;lt;code&amp;gt;LONGTEXT&amp;lt;/code&amp;gt;. (Although this is likely to be the case, unless the particular field was added to the archive some time ago).&lt;br /&gt;
 ALTER TABLE eprint__ordervalues_en MODIFY COLUMN publication LONGTEXT DEFAULT NULL;&lt;br /&gt;
&lt;br /&gt;
As the example error messages says above, an alternative resolution to this problem could be to change the &amp;lt;code&amp;gt;ROW_FORMAT&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;DYNAMIC&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;COMPRESSED&amp;lt;/code&amp;gt;.  However, (and assuming you are using [[Converting_MyISAM_tables_to_InnoDB|&amp;lt;code&amp;gt;InnoDB&amp;lt;/code&amp;gt;]] as the MySQL table engine), to do this you need to have the MySQL configuration parameters &amp;lt;code&amp;gt;innodb_file_format&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;innodb_file_format_max&amp;lt;/code&amp;gt; needs to be set to &amp;lt;code&amp;gt;Barracuda&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;Antelope&amp;lt;/code&amp;gt;.  &amp;lt;code&amp;gt;Barracuda&amp;lt;/code&amp;gt; does not become the default until MySQL 5.7 but earlier versions of MySQL should still support MySQL 5, so you can change to &amp;lt;code&amp;gt;Barracuda&amp;lt;/code&amp;gt; by setting the following configuration settings under the &amp;lt;code&amp;gt;[mysqld]&amp;lt;/code&amp;gt; section of &amp;lt;code&amp;gt;/etc/my.cnf&amp;lt;/code&amp;gt; and restart MySQL:&lt;br /&gt;
 innodb_file_format=Barracuda&lt;br /&gt;
 innodb_file_format_max=Barracuda&lt;br /&gt;
 innodb_large_prefix=1&lt;br /&gt;
You can then alter the table to change the &amp;lt;code&amp;gt;ROW_FORMAT&amp;lt;/code&amp;gt; as follows:&lt;br /&gt;
 ALTER TABLE eprint ROW_FORMAT=DYNAMIC;&lt;br /&gt;
Using &amp;lt;code&amp;gt;COMPRESSED&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;DYNAMIC&amp;lt;/code&amp;gt; maybe useful for particularly large (multi-gigabyte) tables but there may be a performance trade-off to doing so. Therefore, if there is not a disk space constraint, &amp;lt;code&amp;gt;DYNAMIC&amp;lt;/code&amp;gt; is probably the better choice.&lt;br /&gt;
&lt;br /&gt;
If you use &amp;lt;code&amp;gt;ROW_FORMAT=DYNAMIC&amp;lt;/code&amp;gt; you may still get the original &amp;quot;Row size too large&amp;quot; error message if you have more than 196 &amp;lt;code&amp;gt;LONGTEXT&amp;lt;/code&amp;gt; columns whilst using certain versions of MySQL (e.g. 5.7).  If your repository has added a lot of bespoke fields for the eprint data object, there is a fair chance your &amp;lt;code&amp;gt;eprint__ordervalues_en&amp;lt;/code&amp;gt; will be close to this 196 limit on &amp;lt;code&amp;gt;LONGTEXT&amp;lt;/code&amp;gt; columns.  &lt;br /&gt;
&lt;br /&gt;
It is likely that the eprint database tables will still include a number of fields that were created, never used and their definitions removed from the repository's configuration.  If this is the case, this may help alleviate the problem of hitting this 196 &amp;lt;code&amp;gt;LONGTEXT&amp;lt;/code&amp;gt; columns limit, as these fields can be manually removed from the eprint database tables.  It is probably best to focus on removing single and non-compound rather than multiple compound fields, as the process to remove these is more straightforward.  In the examples below the field to remove (or column to drop) is called '''unused''':&lt;br /&gt;
 ALTER TABLE eprint DROP COLUMN unused;&lt;br /&gt;
 ALTER TABLE eprint__ordervalues_en DROP COLUMN unused;&lt;br /&gt;
If you want to remove a multiple (non-compound) field the MySQL commands are more like:&lt;br /&gt;
 DROP TABLE eprint_unused;&lt;br /&gt;
 ALTER TABLE eprint__ordervalues_en DROP COLUMN unused;&lt;br /&gt;
If it is a multiple and compound field the MySQL commmands will probably be something like:&lt;br /&gt;
 DROP TABLE eprint_unused;&lt;br /&gt;
 ALTER TABLE eprint__ordervalues_en DROP COLUMN unused_subfield1;&lt;br /&gt;
 ALTER TABLE eprint__ordervalues_en DROP COLUMN unused_subfield2;&lt;br /&gt;
&lt;br /&gt;
== Data length too long for column ==&lt;br /&gt;
=== Example error message ===&lt;br /&gt;
 DBD::mysql::st execute failed: Data too long for column 'volume' at row 1 at /usr/share/eprints/perl_lib/EPrints/Database.pm line 1187.&lt;br /&gt;
&lt;br /&gt;
=== Reason for error ===&lt;br /&gt;
This is due to a field for a data object having its &amp;lt;code&amp;gt;maxlength&amp;lt;/code&amp;gt; attribute increased but this will not have updated the size of the &amp;lt;code&amp;gt;VARCHAR&amp;lt;/code&amp;gt; column in the MySQL table for the data object.  The error message will appear in the webserver (e.g. Apache) error logs when a user sets a value that is longer than the original &amp;lt;code&amp;gt;maxlength&amp;lt;/code&amp;gt; attribute value for a field.  In the example error message above this is where the &amp;lt;code&amp;gt;volume&amp;lt;/code&amp;gt; field for the &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; data object has been increased from its default &amp;lt;code&amp;gt;maxlength&amp;lt;/code&amp;gt; of 6 to a higher value.&lt;br /&gt;
&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
To fix this issue you will need to manually modify the affected MySQL column.  In the example error message above, if we assume you updated the &amp;lt;code&amp;gt;maxlength&amp;lt;/code&amp;gt; attribute for the &amp;lt;code&amp;gt;volume&amp;lt;/code&amp;gt; field of the &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; data object from 6 to 9, you will need to manually run the following MySQL command to update the database to correspond with the EPrints configuration for this field:&lt;br /&gt;
 ALTER TABLE eprint MODIFY COLUMN volume VARCHAR(9) DEFAULT NULL;&lt;br /&gt;
&lt;br /&gt;
Ideally running &amp;lt;code&amp;gt;epadmin update ARCHIVEID&amp;lt;/code&amp;gt; would update fields to effect changes to attributes like &amp;lt;code&amp;gt;maxlength&amp;lt;/code&amp;gt;.  Unfortunately, due to the extensive number or scenarios of how fields could be changed, implementing robust ways that will reliably modify MySQL columns, whilst ensuring data is not lost or worse tables becoming corrupted or inconsistent, is a very complex task.  However, writing a script to do a consistency check between the field configuration for EPrints data objects and the structure of these tables in the MySQL database for the archive [https://github.com/eprints/eprints3.4/issues/163 is being investigated].&lt;br /&gt;
&lt;br /&gt;
== Too many keys specified ==&lt;br /&gt;
=== Example error message ===&lt;br /&gt;
 #1069 - Too many keys specified; max 64 keys allowed&lt;br /&gt;
&lt;br /&gt;
=== Reason for error ===&lt;br /&gt;
The above error message will occur when running &amp;lt;code&amp;gt;EPRINTS_PATH/bin/epadmin update ARCHIVEID&amp;lt;/code&amp;gt;.  By default current versions of MySQL installed by Linux package managers (e.g. YUM, APT, etc.) only allow 64 keys per MySQL database table. A key is added when a &amp;lt;code&amp;gt;CREATE INDEX&amp;lt;/code&amp;gt; command is run and EPrints will do this for each new field added to a data object where the &amp;lt;code&amp;gt;sql_index&amp;lt;/code&amp;gt; attribute is set to 1.  However, as the generic default value for this attribute is 1, only if a specific type of field sets this default value to 0, will a field be created without an index.  This is the case for &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;longtext&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;keywords&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;secret&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;storable&amp;lt;/code&amp;gt; type fields and their sub-types.  However, this is not the case for other types, which is in most cases appropriate, as it cannot take into account in what way and how frequently the field will be used and therefore if the MySQL column would really benefit from an index.&lt;br /&gt;
&lt;br /&gt;
The reason &amp;lt;code&amp;gt;sql_index&amp;lt;/code&amp;gt; has the generic default value of 1 is that having a field indexed should speed up database queries, particularly when results need to be ordered.  It was felt it was unlikely that repository system administrators would explicitly set the &amp;lt;code&amp;gt;sql_index&amp;lt;/code&amp;gt; to 1 for new fields they would be creating, as they may not appreciate the reasons for doing so.  Therefore, a lot of fields that would benefit from an index could have ended up not getting one.  However, particularly with highly bespoke EPrints archives, the number of columns that require indexes in the &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; MySQL table has grown close if not beyond the limit of 64 keys, prompting the error message shown above.&lt;br /&gt;
&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
There is a two-fold approach to this.  One part if to change the EPrints field configuration and set the &amp;lt;code&amp;gt;sql_index&amp;lt;/code&amp;gt; attribute to 0 for types of field that have this set to 1 by default.  However, this will only be useful on the fields that are complained about when running &amp;lt;code&amp;gt;epadmin update&amp;lt;/code&amp;gt;, as their indexes will not have been created due to the limit being reached and therefore you would just be removing the need for them being created.  However, some of these new fields may benefit from having indexes but some existing fields may not or at least benefit significantly less.  The best way to determine this is to look at the existing indexes for the MySQL table for the particular data object, typically &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt;.  The following MySQL command can retrieve this information:&lt;br /&gt;
 SHOW INDEX FROM eprint;&lt;br /&gt;
Then there are a number of considerations about which fields could do without an index.  Generally, those that store numerical values where comparisons are required greatly benefit from an index, so date/time fields like &amp;lt;code&amp;gt;datestamp&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lastmod&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;date&amp;lt;/code&amp;gt; greatly benefit from an index, especially as it combines the six separate MySQL columns that make up these EPrint fields (i.e. year, month, day, hour minute and second).  The fields that are less important to have index are the ones that are sparsely used, so fields specific to a particular type of eprint that is not commonly used.  A rough guide is that if the field is used in your archive's advanced search or staff search for eprints, then you would not want to remove its index.  &lt;br /&gt;
&lt;br /&gt;
The following standard &amp;lt;code&amp;gt;eprint&amp;lt;/code&amp;gt; fields fit into the category of non-numeric and/or sparsely used, roughly in ascending order or use: &amp;lt;code&amp;gt;gscholar_cluster&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gscholar_impact&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pedagogic_type&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;num_pieces&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;succeeds&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;importid&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;monograph_type&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;sword_depositor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;thesis_name&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;thesis_type&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;event_type&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pres_type&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;contact_email&amp;lt;/code&amp;gt;.  However, the reason you will have hit your limit of keys is due to non-standard fields that will have been added to the archive so it is worth reviewing which of these are used sparsely and do not contain numeric values that are likely to have comparators or other mathematical operations applied to them.&lt;br /&gt;
&lt;br /&gt;
Once you have identified the fields that least need indexes as well as setting the &amp;lt;code&amp;gt;sql_index&amp;lt;/code&amp;gt; attribute for the field to 0 (and reloading the webserver and EPrints indexer), you will need to make sure the index has been dropped from MySQL itself. Using a MySQL command like the following:&lt;br /&gt;
 DROP INDEX gscholar_cluster_0 ON eprint;&lt;br /&gt;
You will note that the index will have a slightly different name to the field.  You should the &amp;lt;code&amp;gt;SHOW INDEX&amp;lt;/code&amp;gt; MySQL command above to determine the correct name for the index.  After doing this you should be able to add new fields without seeing the &amp;quot;Too many keys&amp;quot; error message.  However, be sure to set &amp;lt;code&amp;gt;sql_index&amp;lt;/code&amp;gt; to 0 on new fields you add if they are of a type that creates an index but you expect them to be sparsely used.&lt;br /&gt;
&lt;br /&gt;
== Duplicate entry for key ==&lt;br /&gt;
=== Example error message ===&lt;br /&gt;
 DBD::mysql::st execute failed: Duplicate entry '99288-1' for key 'PRIMARY' at /opt/eprints3/perl_lib/EPrints/Database.pm line 1287.&lt;br /&gt;
&lt;br /&gt;
=== Reason for error ===&lt;br /&gt;
'''To be written'''&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
'''To be written'''&lt;br /&gt;
&lt;br /&gt;
== Deadlock found when trying to get lock ==&lt;br /&gt;
=== Example error message ===&lt;br /&gt;
'''To be added'''&lt;br /&gt;
=== Reason for error ===&lt;br /&gt;
'''To be written'''&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
'''To be written'''&lt;br /&gt;
&lt;br /&gt;
== MariaDB order without limit on subquery ==&lt;br /&gt;
=== Symptom of error ===&lt;br /&gt;
'''To be written'''&lt;br /&gt;
=== Reason for error ===&lt;br /&gt;
'''To be written'''&lt;br /&gt;
=== Resolution ===&lt;br /&gt;
'''To be written'''&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints4_Status&amp;diff=16206</id>
		<title>EPrints4 Status</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints4_Status&amp;diff=16206"/>
		<updated>2024-02-19T13:27:35Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Eprints4]]&lt;br /&gt;
[[Category:Contribute]]&lt;br /&gt;
&lt;br /&gt;
Packages that are considered &amp;quot;CORE&amp;quot;: [[EPrints4_CORE]]&lt;br /&gt;
&lt;br /&gt;
Things which have been tested / implemented:&lt;br /&gt;
&lt;br /&gt;
=CORE=&lt;br /&gt;
&lt;br /&gt;
==Database==&lt;br /&gt;
&lt;br /&gt;
* Preferred MySQL engine is now [[Converting_MyISAM_tables_to_InnoDB|InnoDB]] (over MyISAM)&lt;br /&gt;
* Added support for transactions with InnoDB. Partially written data/data-objects may be roll-backed (they are if an error occurs)&lt;br /&gt;
* Connects on demand&lt;br /&gt;
&lt;br /&gt;
==Request handlers/routers==&lt;br /&gt;
&lt;br /&gt;
* Every request is now routed via a trigger call (to find out which controller will respond)&lt;br /&gt;
* Apache::Rewrite has been refactored to Apache::Handler and is now super-lightweight&lt;br /&gt;
* Support for CGI scripts has been removed&lt;br /&gt;
&lt;br /&gt;
==Controllers==&lt;br /&gt;
&lt;br /&gt;
* CRUD&lt;br /&gt;
* Storage (delivery of files/thumbnails)&lt;br /&gt;
* Counter (like /cgi/counter)&lt;br /&gt;
* Ping (for fun, just replies 'pong')&lt;br /&gt;
* UI (for, potentially, Screen plug-ins)&lt;br /&gt;
* Static pages (XHTML, XPAGES etc that need compilation to HTML or any other static file (js, css...)&lt;br /&gt;
&lt;br /&gt;
==Security==&lt;br /&gt;
&lt;br /&gt;
* Based around actions (e.g. edit, view, search, ...) and optional contexts ('owner', etc.)&lt;br /&gt;
* Low-level implementation to avoid objects to leak from one dataset ('inbox') to another ('archive')&lt;br /&gt;
* ACL dataset (should maybe be called 'privs') to store extra privs against a user&lt;br /&gt;
* finer-grain permission (down to a single dataobj)&lt;br /&gt;
&lt;br /&gt;
==Auth==&lt;br /&gt;
&lt;br /&gt;
* Rewritten auth mechanisms&lt;br /&gt;
* Done similarly to Controllers, via a trigger&lt;br /&gt;
* When a user is auth'ed a user-session is created (cf. login ticket)&lt;br /&gt;
* When a request comes, EPrints attempts to load a user-session - cf. above&lt;br /&gt;
* Supports AuthBasic when no UI is available&lt;br /&gt;
* Cookies are managed transparently behind the &amp;quot;user-session&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Storage==&lt;br /&gt;
&lt;br /&gt;
* Added support for generic files. It is now possible to store any file against any object.&lt;br /&gt;
* Added support for &amp;quot;thumbnails&amp;quot; (as a separate dataset)&lt;br /&gt;
&lt;br /&gt;
==CRUD==&lt;br /&gt;
&lt;br /&gt;
* CRUD extended to support more methods/URI etc&lt;br /&gt;
* Sword2 hacks temporarily removed from CRUD&lt;br /&gt;
* Doesn't require its own auth code anymore&lt;br /&gt;
* CrudClient available to perform remote operation on a repository (via CrudDataSet, CrudDataObj, CrudList etc) - the API is very similar to the standard CLI syntax to create/edit/etc objects/lists of objects.&lt;br /&gt;
* Support for ETag and If-None-Match&lt;br /&gt;
* Support for PATCH method&lt;br /&gt;
* Support for generic file upload&lt;br /&gt;
* Minimal support for searching a dataset (e.g. GET /data/user/) - though will probably have a separate /search/... interface to allow user queries (Xapian and the likes)&lt;br /&gt;
* Entry poing /id/... moved to /data/...&lt;br /&gt;
&lt;br /&gt;
==Dataset definition==&lt;br /&gt;
&lt;br /&gt;
* The following properties are now core (meaning that EPrints will automatically add appropriate fields, set/update/remove data when such or such properties are enabled):&lt;br /&gt;
** flow: replaces eprint_status and the likes. Allows to specify a flow of states and transitions&lt;br /&gt;
** revision: adds a revision number, incremented each time the data obj is modified&lt;br /&gt;
** acl (TO RENAME): allows ACL checks on the dataset (should always be ON)&lt;br /&gt;
** read-only: make the dataset read-only, no modifications are allowed via the API (whether HTTP, CLI ...)&lt;br /&gt;
** web-read-only (TOFIX): make the dataset read-only ONLY for HTTP requests - CLI scripts can still change data&lt;br /&gt;
** history (TODO): keeps an historic of changes&lt;br /&gt;
** lastmod: keeps a timestamp of when the data-obj was last modified&lt;br /&gt;
** datestamp: keeps the date of creation of a data-obj&lt;br /&gt;
** loghandler (TODO): keeps download stats for that dataset&lt;br /&gt;
** contexts: allows to add custom security contexts (eg. 'owner', 'editor', 'co-author') &lt;br /&gt;
&lt;br /&gt;
==Misc==&lt;br /&gt;
&lt;br /&gt;
* memcached: use of server-wide &amp;quot;memcached&amp;quot; service to memory cache data objects&lt;br /&gt;
* contextual debugging: allows to enable/disable only specific themes e.g. &amp;quot;db&amp;quot;, &amp;quot;security&amp;quot; etc. and only write status messages to the logs for the enabled themes&lt;br /&gt;
* much, much more!&lt;br /&gt;
&lt;br /&gt;
=UI=&lt;br /&gt;
&lt;br /&gt;
* Template using Bootstrap&lt;br /&gt;
* Data-binding with JS Framework AngularJS&lt;br /&gt;
* Dynamical pages served through light-weight Screen plug-ins (only handles the security aspect - who can see this page - and the &amp;quot;page's actions&amp;quot; via AJAX)&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_and_MySQL_8&amp;diff=16205</id>
		<title>EPrints and MySQL 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_and_MySQL_8&amp;diff=16205"/>
		<updated>2024-02-19T13:26:07Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various changes have been made to MySQL between version 5.7 and 8 and these can have some impact on EPrints.&lt;br /&gt;
&lt;br /&gt;
== Slow Performance ==&lt;br /&gt;
By default EPrints now uses [[Converting_MyISAM_tables_to_InnoDB|InnoDB]] as its table engine.  As EPrints can make a lot of transactions to update a eprint record whilst in the workflow, as well as complex background tasks this means the default configuration of MySQL makes EPrints rather slower than before.  This can be fixed by adding the following line to &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 innodb_flush_log_at_trx_commit=2&lt;br /&gt;
What this change does is ensure the logs are flushed once a second rather than after each transaction commit.  This is not ideal as your bin logs could potential miss transactions if the database was to crash but does significantly improve the performance of EPrints.  Further investigation is required to determine how serious an impact lost transactions from the bin logs would be for EPrints.  At worse this would likely affect only a small number of eprints.&lt;br /&gt;
&lt;br /&gt;
== Not Null without Default Value ==&lt;br /&gt;
In EPrints a MetaField can set the attribute &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt;.  This means strictly it has to have a default value.  Prior to EPrints 3.4.4, default values were not set for MetaField's created with &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt; and not [https://github.com/eprints/eprints3.4/issues/196 until EPrints 3.4.5] were the default values tailored depending on the type of database field.  MariaDB 10 also has the same issue.&lt;br /&gt;
&lt;br /&gt;
If you are running an earlier version of EPrints, you could manually alter your database to ensure that any MetaFields that have &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt; and set a default value something like:&lt;br /&gt;
 ALTER TABLE `eprint` MODIFY COLUMN `not_null_field` VARCHAR(255) NOT NULL DEFAULT '';&lt;br /&gt;
Otherwise, you could change your MySQL server's configuration to overlook this by adding the following to &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; (and affectively removing the part of &amp;lt;tt&amp;gt;STRICT_TRANS_TABLES&amp;lt;/tt&amp;gt; that causes this to error).  Once done remember to restart MySQL:&lt;br /&gt;
 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
&lt;br /&gt;
== Data Too Long for Field ==&lt;br /&gt;
EPrints often uses &amp;lt;tt&amp;gt;VARCHAR(255)&amp;lt;/tt&amp;gt; fields.  This can sometime present a problem especially if the text contains special characters which in affect makes the column even less than 255 characters.  Previously MySQL has just truncated data that has got to long but in MySQL 8 (as well as MariaDB 10) it now just throws and error message.&lt;br /&gt;
&lt;br /&gt;
The main place in EPrints this is a problem is indexing metadata and the full text of documents.  Since [https://github.com/eprints/eprints3.4/issues/247 EPrints 3.4.5], a restriction on the max length of a word that can be indexed has been added to restrict this to 128 characters, this ensures that even if special characters are used the total space required to store the string does not exceed that available to a &amp;lt;tt&amp;gt;VARCHAR(255)&amp;lt;/tt&amp;gt; by some margin.&lt;br /&gt;
&lt;br /&gt;
However, if you are running an earlier version of EPrints, the only solution for now is the same as for the &amp;quot;[[#Not Null without Default Value|Not Null without Default Value]]&amp;quot; issue and setting the SQL mode in &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; as follows and then restarting MySQL:&lt;br /&gt;
 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
Like this other issue it is &amp;lt;tt&amp;gt;STRICT_TRANS_TABLES&amp;lt;/tt&amp;gt; that will throw an error rather than quietly truncate, which although also not ideal is generally less problematic.  As terms that are too longer are unlikely ever to be those searched.&lt;br /&gt;
&lt;br /&gt;
== Deprecation Warnings ==&lt;br /&gt;
Some of the more recent versions of MySQL state that some of the options in &amp;lt;tt&amp;gt;sql_mode&amp;lt;/tt&amp;gt; have been deprecated.  In particular: &amp;lt;tt&amp;gt;NO_ZERO_IN_DATE&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;NO_ZERO_DATE&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ERROR_FOR_DIVISION_BY_ZERO&amp;lt;/tt&amp;gt;.  Therefore, you should additional remove these to leave SQL mode in &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; looking like:&lt;br /&gt;
  sql_mode=ONLY_FULL_GROUP_BY,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Log_Files&amp;diff=16204</id>
		<title>Log Files</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Log_Files&amp;diff=16204"/>
		<updated>2024-02-19T13:23:02Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: login log added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Work in Progress]]&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Management]]&lt;br /&gt;
&lt;br /&gt;
EPrints produces a number of log files, as do the integral components of EPrints such as Apache and MySQL.  Below is a list of logs files that may be of interest for debugging EPrints.  (Please note that log files may appear in different place for different operating systems):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name&lt;br /&gt;
! Typical Location on Red Hat based Linux&lt;br /&gt;
! Typical Location on Debian based Linux&lt;br /&gt;
! Purpose&lt;br /&gt;
! Uses&lt;br /&gt;
|-&lt;br /&gt;
! Apache access log&lt;br /&gt;
| /var/log/httpd/access_log&lt;br /&gt;
| /var/log/apache2/access.log&lt;br /&gt;
| Logs all accesses to HTTP URLs hosted by Apache unless an individual access log has been created for a particular &amp;quot;virtualhost&amp;quot;.&lt;br /&gt;
| Can be searched over to check IP addresses that are making excessive or malicious requests.&lt;br /&gt;
|-&lt;br /&gt;
! Apache error log&lt;br /&gt;
| /var/log/httpd/error_log&lt;br /&gt;
| /var/log/apache2/error.log&lt;br /&gt;
| Logs all issues that occur with Apache or underlying application (i.e. perl and mod_perl) when attempting to service URL requests.&lt;br /&gt;
| Can be used to debug issues with EPrints code base, where a script cannot or behaves normally when run directly from the command line.&lt;br /&gt;
|-&lt;br /&gt;
! Apache ssl access log&lt;br /&gt;
| /var/log/httpd/ssl_access_log&lt;br /&gt;
| /var/log/apache2/ssl_access.log&lt;br /&gt;
| Logs all accesses to HTTPS URLs hosted by Apache unless an individual access log has been created for a particular &amp;quot;virtualhost&amp;quot;.&lt;br /&gt;
| Can be searched over to check IP addresses that are making excessive or malicious requests for HTTPS URLs.&lt;br /&gt;
|-&lt;br /&gt;
! Apache ssl error log&lt;br /&gt;
| /var/log/httpd/ssl_error_log&lt;br /&gt;
| /var/log/apache2/ssl_error.log&lt;br /&gt;
| Logs all issues that occur with Apache or underlying application (i.e. perl and mod_perl) when attempting to service HTTPS URL requests.&lt;br /&gt;
| Can be used to debug issues with EPrints code base, where a script cannot or behaves normally when run directly from the command line.&lt;br /&gt;
|-&lt;br /&gt;
! MySQL log&lt;br /&gt;
| /var/log/mysql/mysql.log or /var/log/mariadb/mariadb.log&lt;br /&gt;
| /var/log/mysql/error.log&lt;br /&gt;
| Logs general operational issue about MySQL and any errors that occur with the application but not specific database queries&lt;br /&gt;
| Only really useful if MySQL / MariaDB will not start properly.&lt;br /&gt;
|-&lt;br /&gt;
! EPrints indexer log&lt;br /&gt;
| EPRINTS_PATH/var/indexer.log &lt;br /&gt;
| EPRINTS_PATH/var/indexer.log &lt;br /&gt;
| Logs information and error messages generated by the EPrints indexer that is used to schedule more processor intensive tasks to ensure EPrints itself remains responsive&lt;br /&gt;
| To find out why tasks in your event queue (see http://EPRINTS_HOSTNAME/cgi/users/home?screen=Listing&amp;amp;dataset=event_queue) have failed.&lt;br /&gt;
|-&lt;br /&gt;
! EPrints openoffice log&lt;br /&gt;
| EPRINTS_PATH/var/openoffice.log &lt;br /&gt;
| EPRINTS_PATH/var/openoffice.log &lt;br /&gt;
| If you have the Coversheets plugin installed it logs information and error messages generated by OpenOffice that runs to generate coversheets to stitch onto the front of uploaded PDF documents&lt;br /&gt;
| This file only really logs issues with OpenOffice general running not specific issues cover-sheeting a particular document.  The EPrints indexer log will more likely contain this information.&lt;br /&gt;
|-&lt;br /&gt;
! EPrints login attempts log&lt;br /&gt;
| EPRINTS_PATH/archives/ARCHVEID/var/login_attempts/yyyy/mm/dd.csv&lt;br /&gt;
| EPRINTS_PATH/archives/ARCHVEID/var/login_attempts/yyyy/mm/dd.csv&lt;br /&gt;
| Logs all issues that occur due to login attempts.&lt;br /&gt;
| Can be used to debug issues with failing or erroneous logins.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parsing the Apache access log ==&lt;br /&gt;
:&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_3.4_and_PostgreSQL&amp;diff=16203</id>
		<title>EPrints 3.4 and PostgreSQL</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_3.4_and_PostgreSQL&amp;diff=16203"/>
		<updated>2024-02-19T13:08:03Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: categories added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in Progress}}&lt;br /&gt;
[[Category:Work in Progress|Deprecated]]&lt;br /&gt;
EPrints has supported PostgreSQL since quite early in its development.  However, MySQL is the default database engine, so few repositories actually use PostgreSQL.  This page examines how to setup the latest version of EPrints 3.4 (currently 3.4.2) using PostgresSQL.&lt;br /&gt;
&lt;br /&gt;
== Installiing and Configuring PostgreSQL ==&lt;br /&gt;
'''This is based on installing on a CentOS 7 Linux operating system.'''&lt;br /&gt;
Carry out the following steps as the ''root'' user.&lt;br /&gt;
1. Install the required packages using YUM:&lt;br /&gt;
 yum install postgresql postgresql-server perl-DBD-Pg&lt;br /&gt;
2. Perform initial PostgreSQL setup&lt;br /&gt;
 postgresql-setup initdb&lt;br /&gt;
3. Edit ''/var/lib/pgsql/data/pg_hba.conf'' by changing the following two lines to allow password-less local access and access from localhost (i.e. when using ''--host localhost'' flag with ''psql''):&lt;br /&gt;
 local   all             all                                     peer&lt;br /&gt;
 host    all             all             127.0.0.1/32            ident&lt;br /&gt;
to&lt;br /&gt;
 local   all             all                                     trust&lt;br /&gt;
 host    all             all             127.0.0.1/32            trust&lt;br /&gt;
You may wish to set authentication option to ''md5'' rather than ''trust'' to restrict access for some users on your server but you will need to manual set a password for the ''postgres'' user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Enable and start PostgreSQL on the operating system&lt;br /&gt;
 systemctl enable postgresql&lt;br /&gt;
 systemctl start postgresql&lt;br /&gt;
&lt;br /&gt;
== Creating an EPrints archive with a PostgreSQL database ==&lt;br /&gt;
'''To be written...'''&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Installing_Oracle&amp;diff=16202</id>
		<title>Installing Oracle</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Installing_Oracle&amp;diff=16202"/>
		<updated>2024-02-19T13:07:00Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: categories modified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Work in Progress}}&lt;br /&gt;
[[Category:Work in Progress|Deprecated]]&lt;br /&gt;
  Oracle support hasn't been fully tested yet.&lt;br /&gt;
&lt;br /&gt;
Added in version 3.1.0.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* An Oracle database with an account that has full privileges&lt;br /&gt;
* Oracle database client&lt;br /&gt;
* [http://search.cpan.org/~pythian/DBD-Oracle-1.21/ DBD::Oracle]&lt;br /&gt;
&lt;br /&gt;
You should set the Oracle table character coding to &amp;quot;utf-8&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Installing Oracle Express Edition ==&lt;br /&gt;
&lt;br /&gt;
This is only required if you wish to use the free Oracle DB for testing/development purposes.&lt;br /&gt;
&lt;br /&gt;
See [https://help.ubuntu.com/community/Oracle Oracle on Ubuntu].&lt;br /&gt;
&lt;br /&gt;
== Adding Oracle Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Make life with Oracle easier by adding the Oracle environment variables to the global system profile.&lt;br /&gt;
&lt;br /&gt;
Create /etc/profile.d/oracle.sh (replace 10.2.0 with the correct version for your Oracle server/client):&lt;br /&gt;
&lt;br /&gt;
 ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server&lt;br /&gt;
 ORACLE_SID=XE&lt;br /&gt;
 PATH=$PATH:$ORACLE_HOME/bin&lt;br /&gt;
 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib&lt;br /&gt;
 export ORACLE_HOME&lt;br /&gt;
 export ORACLE_SID&lt;br /&gt;
 export PATH&lt;br /&gt;
 export LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
You will need to log out/in for this change to take effect.&lt;br /&gt;
&lt;br /&gt;
== GQLPlus ==&lt;br /&gt;
&lt;br /&gt;
The sqlplus tool has very poor shell support. For a better shell tool use [http://gqlplus.sourceforge.net/ gqlplus].&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Install EPrints as normal but don't create a (MySQL) database.&lt;br /&gt;
&lt;br /&gt;
Edit archives/[repoid]/cfg/cfg.d/database.pl to add the Oracle configuration:&lt;br /&gt;
&lt;br /&gt;
    #$c-&amp;gt;{dbname} = 'eprints';&lt;br /&gt;
    #$c-&amp;gt;{dbhost} = 'localhost';&lt;br /&gt;
    #$c-&amp;gt;{dbport} = undef;&lt;br /&gt;
    #$c-&amp;gt;{dbsock} = undef;&lt;br /&gt;
    $c-&amp;gt;{dbdriver} = 'Oracle';&lt;br /&gt;
    $c-&amp;gt;{dbhost} = 'localhost';&lt;br /&gt;
    $c-&amp;gt;{dbsid} = 'XE';&lt;br /&gt;
    $c-&amp;gt;{dbuser} = 'HR';&lt;br /&gt;
    $c-&amp;gt;{dbpass} = 'HR';&lt;br /&gt;
&lt;br /&gt;
dbsid is the name of the Oracle database.&lt;br /&gt;
&lt;br /&gt;
Create the database and import subjects:&lt;br /&gt;
&lt;br /&gt;
 ./bin/epadmin create_tables [repoid]&lt;br /&gt;
 ./bin/import_subjects [repoid]&lt;br /&gt;
 ./bin/epadmin create_user [repoid]&lt;br /&gt;
&lt;br /&gt;
Continue configuring EPrints.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
Depending on your server configuration you may find you need to set environment variables for DBD::Oracle to find your Oracle client:&lt;br /&gt;
&lt;br /&gt;
 export ORACLE_SID=XE&lt;br /&gt;
 export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server&lt;br /&gt;
&lt;br /&gt;
At the moment starting the indexer from the Admin page doesn't work, due to the Oracle environment variables not being present.&lt;br /&gt;
&lt;br /&gt;
=== ORA-24327: need explicit attach before authenticating a user ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have set $c-&amp;gt;{dbhost}.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Display_a_custom_response_during_downtime&amp;diff=16201</id>
		<title>Display a custom response during downtime</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Display_a_custom_response_during_downtime&amp;diff=16201"/>
		<updated>2024-02-19T12:46:30Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typos removed, some reformatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Howto]]&lt;br /&gt;
[[Category:Management]]&lt;br /&gt;
&lt;br /&gt;
See also [[Creating a Maintenance Page]].&lt;br /&gt;
&lt;br /&gt;
We were recently migrating our database from an old server to a new one - which required a dump + load of data (rather than a replication). This meant we had a period of 3 hours where EPrints wouldn't be accessible.&lt;br /&gt;
&lt;br /&gt;
During this downtime, I wanted to display a useful message, with a '503 Service unavailable' HTTP response.&lt;br /&gt;
This is how to achieve this using EPrints triggers:&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' if you are doing maintenance blocking the database, the '''method below will not work, as EPrints will complain about not being able to connect to the database''' before processing the trigger. If your maintenance will result in the database being offline (rather than read-only), the maintenance page should be delivered using Apache. Please see https://stackoverflow.com/questions/622466/how-to-put-apache-website-to-503-temporary-down for some examples).&lt;br /&gt;
&lt;br /&gt;
# Create a file &amp;lt;code&amp;gt;~/archives/ARCHIVEID/cfg/cfg.d/a_MAINTENANCE.pl&amp;lt;/code&amp;gt;. The name of the file isn't important - but it should be alphabetically '''before''' any other config file that defined a URL_REWRITE trigger.&lt;br /&gt;
# Add the following to the file, altering the &amp;lt;code&amp;gt;maintenance_allowed_ip&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;maintenance_retry_after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;maintenance_page_html&amp;lt;/code&amp;gt; including &amp;lt;code&amp;gt;###REPO NAME###&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Date/Time&amp;lt;/code&amp;gt; and contact e-mail address appropriately. I'd keep the html page quite simple, but with enough info to help a human. Remember to '''escape any single-quotes''' in the HTML block with a backslash e.g. ''BAD'': &amp;lt;code&amp;gt;we've&amp;lt;/code&amp;gt;; ''GOOD'': &amp;lt;code&amp;gt;we\'ve&amp;lt;/code&amp;gt;.:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# Set maintenance to 1 to respond with a 503 for requests, except those from the maintenance_allowed_ip.&lt;br /&gt;
$c-&amp;gt;{maintenance} = 0;&lt;br /&gt;
$c-&amp;gt;{maintenance_allowed_ip} = '127.0.0.1'; #set this to your IP address&lt;br /&gt;
&lt;br /&gt;
# set to a date/time after your maintenance will have finished, &lt;br /&gt;
# or a period (in seconds) that the maintenance will last for&lt;br /&gt;
$c-&amp;gt;{maintenance_retry_after} = 'Mon, 14 Mar 2016 12:00:00 GMT'; #set to a date/time after your maintenance will have finished&lt;br /&gt;
&lt;br /&gt;
use EPrints::Const;&lt;br /&gt;
$c-&amp;gt;add_trigger( EP_TRIGGER_URL_REWRITE, sub {&lt;br /&gt;
        my( %args ) = @_;&lt;br /&gt;
&lt;br /&gt;
        # args passed to EP_TRIGGER_URL_REWRITE are:&lt;br /&gt;
        #     request, lang, args, urlpath, cgipath, uri, secure, return_code&lt;br /&gt;
        my( $repository, $request, $return_code, $uri, $urlpath ) = @args{ qw( repository request return_code uri urlpath ) };&lt;br /&gt;
&lt;br /&gt;
        #check we're in maintenance mode&lt;br /&gt;
        if( $repository-&amp;gt;config( &amp;quot;maintenance&amp;quot; ) &amp;amp;&amp;amp; $repository-&amp;gt;config( &amp;quot;maintenance&amp;quot; ) == 1 ){&lt;br /&gt;
                # is there an IP we should allow through?&lt;br /&gt;
                # NB You might need to do other checks - e.g. X-Forwarded-For if you are behind a load-balancer&lt;br /&gt;
                # or for different versions of Apache (like here: https://github.com/eprints/eprints/issues/214)&lt;br /&gt;
                # if you're not sure, ask on the EPrints Tech list first!&lt;br /&gt;
                if( $repository-&amp;gt;config( &amp;quot;maintenance_allowed_ip&amp;quot; ) &amp;amp;&amp;amp; &lt;br /&gt;
                    $repository-&amp;gt;remote_ip eq $repository-&amp;gt;config( &amp;quot;maintenance_allowed_ip&amp;quot; ) ){&lt;br /&gt;
                        return EP_TRIGGER_OK;&lt;br /&gt;
                }&lt;br /&gt;
                elsif( $uri !~ /^$urlpath\/(style|images)\// ) # allow image/stylesheet requests &lt;br /&gt;
                                                               # through - so you can display a branded 503 page&lt;br /&gt;
                {&lt;br /&gt;
                        $request-&amp;gt;custom_response( Apache2::Const::HTTP_SERVICE_UNAVAILABLE, $c-&amp;gt;{maintenance_page_html} );&lt;br /&gt;
                        if( $repository-&amp;gt;config( &amp;quot;maintenance_retry_after&amp;quot; ) ){&lt;br /&gt;
                            $request-&amp;gt;err_headers_out-&amp;gt;{'Retry-After'} = $repository-&amp;gt;config( &amp;quot;maintenance_retry_after&amp;quot; );&lt;br /&gt;
                        }&lt;br /&gt;
                        # set the 503 response&lt;br /&gt;
                        ${$return_code} = EPrints::Const::HTTP_SERVICE_UNAVAILABLE;&lt;br /&gt;
                        # and don't process any more EP_TRIGGER_URL_REWRITE triggers.&lt;br /&gt;
                        return EP_TRIGGER_DONE;&lt;br /&gt;
                }&lt;br /&gt;
        }&lt;br /&gt;
} );&lt;br /&gt;
&lt;br /&gt;
# A simple maintenance page - not using the template (which will probably link to various other pages that aren't&lt;br /&gt;
# accessible during the maintenance window&lt;br /&gt;
$c-&amp;gt;{maintenance_page_html} = '&amp;lt;!DOCTYPE HTML&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;style&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
    font-family: sans-serif;&lt;br /&gt;
    margin: 3em;&lt;br /&gt;
}&lt;br /&gt;
footer {&lt;br /&gt;
    font-size: 80%;&lt;br /&gt;
    margin-top:2em;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;###REPO NAME### - Maintenance&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;header&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;/images/sitelogo.png&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;###REPO NAME### - Maintenance&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/header&amp;gt;&lt;br /&gt;
&amp;lt;section&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Date/Time&amp;lt;/strong&amp;gt; We\'re currently doing things to the system.&amp;lt;br /&amp;gt;&lt;br /&gt;
We\'ll be back soon!&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you have any questions, please contact someone@somewhere.blah&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/section&amp;gt;&lt;br /&gt;
&amp;lt;footer&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;###REPO NAME###&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/footer&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;';&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Do a &amp;lt;code&amp;gt;~/bin/epadmin test ARCHIVEID&amp;lt;/code&amp;gt; to make sure you haven't done anything silly in the config file.&lt;br /&gt;
# Do a &amp;lt;code&amp;gt;~/bin/epadmin reload ARCHIVEID&amp;lt;/code&amp;gt; and check that nothing's changed&lt;br /&gt;
# When you want to turn the maintenance response on, change set: &amp;lt;code&amp;gt;$c-&amp;gt;{maintenance} = 1;&amp;lt;/code&amp;gt; and reload the archive.&lt;br /&gt;
# Check that you can get in from the IP specified, and that you get the 503 response from other IPs.&lt;br /&gt;
# Do a graceful restart of Apache (e.g. &amp;lt;code&amp;gt;apachectl graceful&amp;lt;/code&amp;gt;) - to stop the noisy 'repository had been reloaded' error messages.&lt;br /&gt;
# Do the maintenance.&lt;br /&gt;
# Change &amp;lt;code&amp;gt;$c-&amp;gt;{maintenance} = 0;&amp;lt;/code&amp;gt;, graceful restart Apache (e.g. &amp;lt;code&amp;gt;apachectl graceful&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Done!&lt;br /&gt;
&lt;br /&gt;
If you want to include the default CSS files in the 503 page, include &amp;lt;code&amp;gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;/style/auto-3.3.14.css&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; in the maintenance_html_page -&amp;gt; head section (update it for your version of EPrints!).&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Required_software&amp;diff=16200</id>
		<title>Required software</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Required_software&amp;diff=16200"/>
		<updated>2024-02-19T11:53:11Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: links added, formatting harmonized&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{manual}}&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
&lt;br /&gt;
==What Additional Software does EPrints Require?==&lt;br /&gt;
&lt;br /&gt;
In brief, EPrints minimally requires Apache (with mod_perl), MySQL and Perl with some extra modules. Various utilities like wget, tar and unzip would also be useful.&lt;br /&gt;
&lt;br /&gt;
EPrints bundles some [https://github.com/eprints/eprints3.4/blob/master/cpan_modules.pl Perl modules] which it uses, to save you installing them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Where to get the Required Software==&lt;br /&gt;
Apache, MySQL, Perl and mod_perl are  all provided as operating system level packages that can be installed on EPrints' [[Recommended Platforms]].  If you wish to install on a  platform that is not recommended, then you will need to determine the best way to install these applications.  It may be possible to infer comparable packages for your platform by checking the dependencies installed on [[Installing EPrints on RHEL/Fedora/CentOS|Red Hat based]] and [[Installing EPrints on Debian/Ubuntu|Debian based]] Linux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Tools==&lt;br /&gt;
&lt;br /&gt;
===File uploads===&lt;br /&gt;
&amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;tar&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;gunzip&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;unzip&amp;lt;/tt&amp;gt; are required to allow users to upload files as &amp;lt;tt&amp;gt;.tar.gz&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;.zip&amp;lt;/tt&amp;gt; or to capture them from a URL.&lt;br /&gt;
&lt;br /&gt;
These all come installed with most modern versions of linux. If you cannot get them working, you can remove the relevant option by editing &amp;quot;archive_formats&amp;quot; in &amp;lt;tt&amp;gt;SystemSettings.pm&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If there are problems you may need to tweak how these are invoked in &amp;lt;tt&amp;gt;SystemSettings.pm&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Full Text Indexing===&lt;br /&gt;
The EPrints indexer requires various tools to extract plain (UTF-8) text from different types of document for indexing.&lt;br /&gt;
&lt;br /&gt;
The full text indexer requires various tools to index each kind of document. These tools may or may not be already installed in your system. EPrints uses these tools to build a &amp;quot;words&amp;quot; file for each document (which contains the text of the document in UTF-8). If it can't run the tool, the &amp;quot;words&amp;quot; file will be empty and EPrints will not retry creating it unless you manually remove it.&lt;br /&gt;
&lt;br /&gt;
====PDF====&lt;br /&gt;
Full text indexing PDF documents requires &amp;lt;tt&amp;gt;pdftotext&amp;lt;/tt&amp;gt; application provided by the ''poppler-utils'' Deb or RPM package.&lt;br /&gt;
&lt;br /&gt;
====Microsoft Word====&lt;br /&gt;
Full text indexing of Microsoft Word documents is provided by the ''antiword'' Deb or RPM package.  The RPM package is available through the [https://forensics.cert.org/cert-forensics-tools-release-el7.rpm forensics] RPM repository.&lt;br /&gt;
&lt;br /&gt;
====HTML====&lt;br /&gt;
Full test indexing of HTML documents requires the &amp;lt;tt&amp;gt;lynx&amp;lt;/tt&amp;gt; text-based browser provided by the ''lynx'' Deb or RPM package.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===LaTeX Tools===&lt;br /&gt;
There is an optional feature which allows you to instruct EPrints to look in certain fields (e.g. title and abstract) for strings that look like LaTeX equations and render them as images. These tools are only required if you want to use this feature.&lt;br /&gt;
&lt;br /&gt;
These are provided by the ''tetex-latex'' and ''ImageMagick'' RPMs or the ''texlive-base'', ''texlive-bin'' and ''imagemagick'' Deb packages.&lt;br /&gt;
&lt;br /&gt;
This is a &amp;quot;cosmetic&amp;quot; feature, it only affects the rendering of information, so you can always add it later if you want to save time initially.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other Platforms==&lt;br /&gt;
Often the best way to find certain packages of other platforms is to use a search engine to look for the package name for Red Hat or Ubuntu Linux along with the name of your platform. (E.g. antiword Arch Linux).  If you platform does not have comparable packages, then the next best option is to download the software tool is the official site.  Below are links to the download pages for the essential components of EPrints:&lt;br /&gt;
* [https://httpd.apache.org/download.cgi Apache]&lt;br /&gt;
* [https://dev.mysql.com/downloads/ MySQL] (or [https://downloads.mariadb.org/ MariaDB]) as well as [https://www.postgresql.org/download/ PostgreSQL] and even [https://www.oracle.com/de/downloads/ ORACLE]&lt;br /&gt;
* [https://www.perl.org/get.html Perl]&lt;br /&gt;
* [https://perl.apache.org/download/ mod_perl]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Template:EPrints-tech_Archive&amp;diff=16199</id>
		<title>Template:EPrints-tech Archive</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Template:EPrints-tech_Archive&amp;diff=16199"/>
		<updated>2024-02-19T10:32:47Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To view the archives of the list go to https://www.eprints.org/eptech/&lt;br /&gt;
&lt;br /&gt;
'''January 2024 update''': Updating with the latest posts to the list and searching is back again, but we are still working on a better structured list archive to make it easier to get an overview.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Main_Page&amp;diff=16198</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Main_Page&amp;diff=16198"/>
		<updated>2024-02-19T09:58:51Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Howto]]__NOTOC__&lt;br /&gt;
= Welcome to the EPrints Wiki =&lt;br /&gt;
&lt;br /&gt;
This wiki contains technical and user-contributed documentation for the [[Introduction|EPrints repository software]].&lt;br /&gt;
&lt;br /&gt;
[http://tryme.demo.eprints-hosting.org/ Demoprints] is our live, online server that allows anyone to try EPrints without having to install it first.  There are also [http://demo.eprints-hosting.org examples] of various 'flavours' of EPrints available to view as well as some more information on the [https://eprints.org/ EPrints project] and related activities.&lt;br /&gt;
&lt;br /&gt;
==New to EPrints?==&lt;br /&gt;
&lt;br /&gt;
Found out more through our:&lt;br /&gt;
* [[EPrints Glossary]] - Descriptions of the terminology used within EPrints repository software.&lt;br /&gt;
* [[:Category:Training Video|Video Training Course]]&lt;br /&gt;
* [[EPrints_Manual|Documentation]] &lt;br /&gt;
* [[Working Groups]]&lt;br /&gt;
* Mailing lists - There are two mail lists that you might like to join and where you can ask for help and share ideas:&lt;br /&gt;
**  '''[[eprints-tech Mailing List|The EPrints Technical Mailing List]]''' &lt;br /&gt;
*** If you have technical questions, or a part of your EPrints installation is not working properly, this group has people who might be able to help!&lt;br /&gt;
*** [[eprints-tech Mailing List|Click here]] for information about [[eprints-tech Mailing List#Subscription_Options|subscribing to this list]] or [[eprints-tech Mailing List#List_Archives|reading its archives]].&lt;br /&gt;
** '''[https://groups.google.com/forum/#!forum/eprints-uk-user-group The EPrints User Group Google Group]'''&lt;br /&gt;
*** This group is for anyone involved in using EPrints.  Ask questions, share ideas, hear about forthcoming meetings.&lt;br /&gt;
* How to [[Main_Page#Contributing_to_the_Wiki|contribute to the EPrints wiki]]&lt;br /&gt;
* EPrints source code on GitHub:&lt;br /&gt;
** Core and major plugins - https://github.com/eprints&lt;br /&gt;
** Community code sharing - https://eprintsug.github.io and the repositories at https://github.com/eprintsug&lt;br /&gt;
&lt;br /&gt;
== Download EPrints ==&lt;br /&gt;
&lt;br /&gt;
{{Download}}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Installation|Installing]] EPrints on various platforms&lt;br /&gt;
&lt;br /&gt;
==[[New_Repository | Getting Started]]==&lt;br /&gt;
&lt;br /&gt;
* [[EPrints Manual|EPrints 3 Documentation]]&lt;br /&gt;
* [[Perl 101 for EPrints]]&lt;br /&gt;
* [https://www.eprints.org/software/training/ Training materials] provided by EPrints Services.&lt;br /&gt;
* [[Frequently Asked Questions]]&lt;br /&gt;
* [[:Category:Howto|How to ...]]&lt;br /&gt;
* [[:Category:Plugins|Plugins and Bazaar packages for EPrints]]&lt;br /&gt;
* [[:Category:Training Video|EPrints Training Course]]&lt;br /&gt;
&lt;br /&gt;
==Getting Support==&lt;br /&gt;
&lt;br /&gt;
* [https://www.eprints.org/services/ EPrints Services] - premium support, training and hosting from EPrints experts&lt;br /&gt;
* [[Contact]] - mailing lists, bug reports etc.&lt;br /&gt;
* [[User group meetings]] - regional meetings for users, which often have notes, presentations and information of general interest&lt;br /&gt;
&lt;br /&gt;
==Add-ons, patches and translations==&lt;br /&gt;
&lt;br /&gt;
* As of version 3.3 EPrints can now install plugins and translations through the [https://bazaar.eprints.org EPrints Bazaar] the wiki also has information about [[:Category:EPrints Bazaar|packaging plugins for the Bazaar]].&lt;br /&gt;
* The [https://files.eprints.org/ EPrints Files Repository] contains add-on and 3rd party scripts, patches and translations. This also provides an archive of all previous EPrints releases (3.0 onwards).&lt;br /&gt;
* [[:Category:Plugins|Plugins]]: Some Wiki pages about scripts and patches.&lt;br /&gt;
&lt;br /&gt;
{{Register}}&lt;br /&gt;
&lt;br /&gt;
==Contributing to EPrints==&lt;br /&gt;
&lt;br /&gt;
* [[Usability|EPrints usability]]&lt;br /&gt;
* New features in EPrints - [[:Category:Releases|released]] and [[:Category:Planned Releases|proposed]]&lt;br /&gt;
* [[How to contribute|How to contribute to EPrints development]]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4 EPrints 3.4 on GitHub] - Codebase, releases and issues tracker for EPrints 3.4.&lt;br /&gt;
* [https://github.com/eprints/eprints3 EPrints 3.3 on GitHub] - Codebase, releases and issues tracker for EPrints 3.3 (legacy).&lt;br /&gt;
&lt;br /&gt;
== Content management ==&lt;br /&gt;
&lt;br /&gt;
* [[Digital preservation]]: managing content for longer-term access and use&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Contact&amp;diff=16197</id>
		<title>Contact</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Contact&amp;diff=16197"/>
		<updated>2024-02-19T09:53:24Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{manual}}&lt;br /&gt;
&lt;br /&gt;
==Bug Report Policy==&lt;br /&gt;
&lt;br /&gt;
We use a [https://github.com/eprints/eprints/ Github] to record bugs and issues for EPrints. You can search there or the eprints-tech mailing list for existing bugs and possible solutions.&lt;br /&gt;
&lt;br /&gt;
If you identify a new bug or &amp;quot;issue&amp;quot; (issues are not bugs, but are things which could be clearer or better) please post a message to the eprints-tech mailing list - include all the information you can: what version of eprints, operating system etc.&lt;br /&gt;
&lt;br /&gt;
If you think the bug has security implications (i.e. it shouldn't be made public) please email [mailto:support@eprints.org support@eprints.org].&lt;br /&gt;
&lt;br /&gt;
== [[eprints-tech Mailing List]] ==&lt;br /&gt;
&lt;br /&gt;
[http://www.eprints.org/tech.php/ eprints-tech] is the mailing list for technical queries or feedback. It can also have general queries, but most traffic is of a technical nature.&lt;br /&gt;
&lt;br /&gt;
{{EPrints-tech Subscription}}&lt;br /&gt;
&lt;br /&gt;
For more options to manage your subscription to the eprints-tech list [[eprints-tech Mailing List#Subscription Options|click here]].&lt;br /&gt;
&lt;br /&gt;
{{EPrints-tech Archive}}&lt;br /&gt;
&lt;br /&gt;
== Twitter==&lt;br /&gt;
&lt;br /&gt;
The following twitter accounts and hashtags are currently used:&lt;br /&gt;
&lt;br /&gt;
* [http://twitter.com/EPrints @EPrints] - EPrints twitter account&lt;br /&gt;
* [http://twitter.com/EPrintsServices @EPrintsServices] - EPrints Services twitter account&lt;br /&gt;
* [http://twitter.com/hashtag/EPrints #EPrints] - EPrints Hashtag&lt;br /&gt;
&lt;br /&gt;
== EPrints User Groups ==&lt;br /&gt;
&lt;br /&gt;
For general or language dependent EPrints discussion&lt;br /&gt;
&lt;br /&gt;
* [[German_User_Group|DE]]&lt;br /&gt;
* [https://groups.google.com/forum/#!forum/eprints-uk-user-group UK]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Eprints-tech_Mailing_List&amp;diff=16196</id>
		<title>Eprints-tech Mailing List</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Eprints-tech_Mailing_List&amp;diff=16196"/>
		<updated>2024-02-19T09:44:50Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typo removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page provides information about the eprints-tech.ecs.soton.ac.uk mailing list which is intended for those who develop and administer EPrints repository software.&lt;br /&gt;
&lt;br /&gt;
== How to Subscribe ==&lt;br /&gt;
{{EPrints-tech Subscription}}&lt;br /&gt;
&lt;br /&gt;
== Subscription Options ==&lt;br /&gt;
You can email [mailto:sympa@ecs.soton.ac.uk sympa@ecs.soton.ac.uk] with the following text in your subject line to carry out certain commands:&lt;br /&gt;
; INFO eprints-tech : Get information about the eprints-tech list.&lt;br /&gt;
; SUBSCRIBE eprints-tech ''your name'' : Subscription (or subscription confirmation) to eprints-tech.&lt;br /&gt;
; UNSUBSCRIBE eprints-tech ''email@address'' : Unsubscribe from eprints-tech. The email address is required only if you want to unsubscribe with an address other than the address with which you send the message.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The SET command allows you to change options for your current subscription to the EPrints Tech list.&lt;br /&gt;
; SET eprints-tech NOMAIL : suspend receipt of the eprints-tech's messages. &lt;br /&gt;
; SET eprints-tech DIGEST : receive messages in digest mode.&lt;br /&gt;
; SET eprints-tech DIGESTPLAIN : receive messages in digest mode (plain text). &lt;br /&gt;
; SET eprints-tech SUMMARY : only receive lists of messages.&lt;br /&gt;
; SET eprints-tech NOTICE : only receive the message subjects. &lt;br /&gt;
; SET eprints-tech MAIL : normal message delivery mode.&lt;br /&gt;
&lt;br /&gt;
== List Archives ==&lt;br /&gt;
{{EPrints-tech Archive}}&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=History&amp;diff=16195</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=History&amp;diff=16195"/>
		<updated>2024-02-19T08:50:25Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Manual}}&lt;br /&gt;
[[Category:Releases]]&lt;br /&gt;
==A Brief History of EPrints==&lt;br /&gt;
The EPrints project was created by Professor Stevan Harnad.&lt;br /&gt;
&lt;br /&gt;
; '''May 25th 2023''' : [[EPrints 3.4.5]] released.&lt;br /&gt;
; '''August 7th 2022''' : [[EPrints 3.4.4]] released.&lt;br /&gt;
; '''April 27th 2021''' : [[EPrints 3.4.3]] released.&lt;br /&gt;
; '''July 11th 2020''' : [[EPrints 3.4.2]] released.&lt;br /&gt;
; '''April 5th 2019''' : [[EPrints 3.4.1]] released.&lt;br /&gt;
; '''May 4th 2018''' : EPrints 3.4 released.&lt;br /&gt;
; '''September 16 2011''' : EPrints 3.3 released.&lt;br /&gt;
; '''March 10 2010''' : GNU EPrints 3.2 released.&lt;br /&gt;
; '''September 8 2008''' : GNU EPrints 3.1 released.&lt;br /&gt;
; '''December 18 2006''' : GNU EPrints 3.0 RC-1 released.&lt;br /&gt;
; '''December 5 2006''' : GNU EPrints 3.0 Beta-3 released.&lt;br /&gt;
; '''November 14 2006''' : GNU EPrints 3.0 Beta-2 released.&lt;br /&gt;
; '''October 26 2006''' : GNU EPrints 3.0 Beta-1 released.&lt;br /&gt;
; '''July 25 2005''' : GNU EPrints 2.3.13 released.&lt;br /&gt;
; '''May 24 2005''' : GNU EPrints 2.3.12 released.&lt;br /&gt;
; '''March 8 2005''' : GNU EPrints 2.3.11 released.&lt;br /&gt;
; '''March 2 2005''' : GNU EPrints 2.3.10 released.&lt;br /&gt;
; '''February 17 2005''' : GNU EPrints 2.3.9 released.&lt;br /&gt;
; '''February 16 2005''' : GNU EPrints 2.3.8 released.&lt;br /&gt;
; '''November 25 2004''' : GNU EPrints 2.3.7 released.&lt;br /&gt;
; '''August 9 2004''' : GNU EPrints 2.3.6 released.&lt;br /&gt;
; '''August 6 2004''' : GNU EPrints 2.3.5 released.&lt;br /&gt;
; '''July 6 2004''' : GNU EPrints 2.3.4 released.&lt;br /&gt;
; '''March 4 2004''' : GNU EPrints 2.3.3 released.&lt;br /&gt;
; '''February 25 2004''' : GNU EPrints 2.3.2 released.&lt;br /&gt;
; '''February 5 2004''' : GNU EPrints 2.3.1 released.&lt;br /&gt;
; '''January 12 2004''' : GNU EPrints 2.3.0 released.&lt;br /&gt;
; '''October 31 2002''' : GNU EPrints 2.2 (Pumpkin) released. Added subject editors and GDOME support.&lt;br /&gt;
; '''July 4 2002''' : GNU EPrints 2.1 (Pineapple) released. Added subscriptions and OAI 2.0 support.&lt;br /&gt;
; '''July 1 2002''' : EPrints officially joins GNU Project.&lt;br /&gt;
; '''Apr 17 2002''' : EPrints 2.0.1 (Tuna) released. Mostly bugfixes.&lt;br /&gt;
; '''Feb 14 2002''' : EPrints 2.0 (Olive) released.&lt;br /&gt;
; '''Jan 2002''' : EPrints 2 Alpha-2 (Pepperoni) released.&lt;br /&gt;
; '''August 2001''' : EPrints 2 Alpha-1 (Anchovy) released.&lt;br /&gt;
; '''June 2001''' : Mike Jewell joins EPrints, working primarily on installer software&lt;br /&gt;
; '''January 2001''' : EPrints 1.1 released, contains OAI 1.0 support&lt;br /&gt;
Work begins on EPrints 2&lt;br /&gt;
; '''November 2000''' : EPrints 1.0 released, contains OAI 0.2 support&lt;br /&gt;
Rob Tansley leaves the EPrints Project&lt;br /&gt;
Christopher Gutteridge joins the EPrints Project&lt;br /&gt;
; '''September 2000''' : EPrints beta-2 released&lt;br /&gt;
; '''June 2000''' : EPrints beta-1 released&lt;br /&gt;
Cogprints archive created. http://cogprints.soton.ac.uk/&lt;br /&gt;
; '''April 2000''' : Rob Tansley begins work on EPrints&lt;br /&gt;
; '''October 1999''' : A turnkey repository platform promised by Stevan Harnad &amp;amp; Les Carr at initial OAI (UPS) meeting in Santa Fe.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Category:Releases&amp;diff=16194</id>
		<title>Category:Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Category:Releases&amp;diff=16194"/>
		<updated>2024-02-19T08:25:53Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: link added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This category is where information about the [[EPrints_3.4_Version_Codenames|EPrints releases]] are stored. You can find out about older releases and see what features will be in [[:Category:Planned_Releases |future releases]].&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Template:EPrints-tech_Subscription&amp;diff=16193</id>
		<title>Template:EPrints-tech Subscription</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Template:EPrints-tech_Subscription&amp;diff=16193"/>
		<updated>2024-02-19T08:19:33Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: links extended&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To subscribe send an email with a blank message body to [mailto:sympa@ecs.soton.ac.uk?Subject=SUBSCRIBE%20eprints-tech%20yourGivenFamilyName sympa@ecs.soton.ac.uk] with the subject line:&lt;br /&gt;
 SUBSCRIBE eprints-tech ''your name''&lt;br /&gt;
You do not have to provide your name, so &amp;lt;code&amp;gt;SUBSCRIBE eprints-tech&amp;lt;/code&amp;gt; should be sufficient.  You can provide a single name or multiple names but it is preferable to use the format of '''given name followed by family name''', e.g. ''Joe Bloggs''.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=New_Repository&amp;diff=16192</id>
		<title>New Repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=New_Repository&amp;diff=16192"/>
		<updated>2024-02-19T07:44:30Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: links updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Congratulations! You have successfully installed your EPrints repository.&lt;br /&gt;
&lt;br /&gt;
* To learn how to customise features, view the [[Manual|EPrints Manual]] part of this wiki.&lt;br /&gt;
&lt;br /&gt;
* The [[:Category:Howto|How-to Configure EPrints]] section is the mainly user generated documentation and contains pragmatic explanations of how to perform common repository configuration tasks. If you do something with your repository we don't have a tutorial for why not have a go at writing one.&lt;br /&gt;
&lt;br /&gt;
* If you are a programmer looking to get started developing new features then you should look at the [[:Category:API|EPrints API]] and [[:Category:Plugins|EPrints Plugins]] documentation.&lt;br /&gt;
&lt;br /&gt;
* For free help and advice on running, maintaining and developing your repository you can ask the [https://wiki.eprints.org/w/Eprints-tech_Mailing_List EPrints Tech mailing list] but do please have a quick search of the [http://www.eprints.org/tech.php/ list archive] before asking a question since you may find your answer there more quickly.&lt;br /&gt;
&lt;br /&gt;
* If you need more help getting started, the [https://www.eprints.org/uk/index.php/about/meet-the-team/ EPrints team] has a [http://eprints.org/services/ commercial services arm] which provides training, support, hosting and consultancy services.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Category:Howto&amp;diff=16189</id>
		<title>Category:Howto</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Category:Howto&amp;diff=16189"/>
		<updated>2024-02-16T17:53:48Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typo removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When you install EPrints there are a handful of tasks you will probably have to do for every repository you create. This section is designed to give each of those tasks a focal point. The documents found here are tutorial explanations of how to perform common tasks in EPrints. They are not designed to be comprehensive but they should give you a flavour of the sort of things that can be done. If you supplement the information here with the material in the [[:Category:EPrints_3_Reference]], then you should find you are able to achieve most of your goals. &lt;br /&gt;
&lt;br /&gt;
If you run into any trouble you can always ask EP-Tech. {{EPrintsTech}} If you find one of the How-tos has a mistake or is out of date please feel free to add corrections that made it work for you.&lt;br /&gt;
&lt;br /&gt;
If you end up doing something which is not yet documented here, feel free to make a page explaining what you did and how you did it. Commonly you will not have time in your day-to-day work to write a whole How-to, so instead why not try adding a '''&amp;quot;[[:Category:Snippets|snippet]]&amp;quot;'''? &lt;br /&gt;
&lt;br /&gt;
[[Template:Register|Here you can register for an eprints.org account]] to edit the wiki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== User Accounts ==&lt;br /&gt;
&lt;br /&gt;
* [[LDAP]]&lt;br /&gt;
** slightly more complex [[LDAP user login.pl]] example with account auto-creation&lt;br /&gt;
* [[Removing User Registration]]&lt;br /&gt;
* [[CAS|How to use a CAS server to authenticate users in eprints]]&lt;br /&gt;
* [[Secure login|Light weight secure login]]&lt;br /&gt;
&lt;br /&gt;
== Eprints config (global) ==&lt;br /&gt;
&lt;br /&gt;
* [[setting up email]]&lt;br /&gt;
&lt;br /&gt;
== Eprints archive config ==&lt;br /&gt;
&lt;br /&gt;
* [[How to Create Cover Images in EPrints 3]]&lt;br /&gt;
* [[HOW TO: Add a New Field|How to add a New Field]]&lt;br /&gt;
* [[Add a parallel authentication routine]]. This is a real-world example, which alters the user table, over-rides the default methods for fields, and makes changes to the way a user is authenticated]]&lt;br /&gt;
* [[Adding a Field to a Live Repository]]&lt;br /&gt;
* [[How to add an Auto-Completer to a non-workflow page]]&lt;br /&gt;
* [[How to add the structure of an organisation]]&lt;br /&gt;
* [[How to add a subdirectory that runs PHP scripts]]&lt;br /&gt;
* [[How to create a separate, searchable 'collection' (for eTheses)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Migration and Importing ==&lt;br /&gt;
&lt;br /&gt;
* [[Importing from Endnote]]&lt;br /&gt;
* [[How to import users from another archive and keep their passwords]]&lt;br /&gt;
&lt;br /&gt;
== Development Environment ==&lt;br /&gt;
&lt;br /&gt;
* [[EclipseEpicPerlDebug|How to set up EPrints in Eclipse using EPIC and the Perl Debugger]]&lt;br /&gt;
&lt;br /&gt;
== User Interface ==&lt;br /&gt;
&lt;br /&gt;
* [[Web Interface Style and Images]]&lt;br /&gt;
* [[GUI Submission with no Documents]]&lt;br /&gt;
* [[Browse By Person]]&lt;br /&gt;
* [[Adding a link to the Front Page]]&lt;br /&gt;
* [[Contact and Information Pages]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Main_Page&amp;diff=16188</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Main_Page&amp;diff=16188"/>
		<updated>2024-02-16T17:48:30Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: links updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Howto]]__NOTOC__&lt;br /&gt;
= Welcome to the EPrints Wiki =&lt;br /&gt;
&lt;br /&gt;
This wiki contains technical and user-contributed documentation for the [[Introduction|EPrints repository software]].&lt;br /&gt;
&lt;br /&gt;
[http://tryme.demo.eprints-hosting.org/ Demoprints] is our live, online server that allows anyone to try EPrints without having to install it first.  There are also [http://demo.eprints-hosting.org examples] of various 'flavours' of EPrints available to view as well as some more information on the [https://eprints.org/ EPrints project] and related activities.&lt;br /&gt;
&lt;br /&gt;
==New to EPrints?==&lt;br /&gt;
&lt;br /&gt;
Found out more through our:&lt;br /&gt;
* [[EPrints Glossary]] - Descriptions of the terminology used within EPrints repository software.&lt;br /&gt;
* [[:Category:Training Video|Video Training Course]]&lt;br /&gt;
* [[EPrints_Manual|Documentation]] &lt;br /&gt;
* [[Working Groups]]&lt;br /&gt;
* Mailing lists - There are two mail lists that you might like to join and where you can ask for help and share ideas:&lt;br /&gt;
**  '''[[eprints-tech Mailing List|The EPrints Technical Mailing List]]''' &lt;br /&gt;
*** If you have technical questions, or a part of your EPrints installation is not working properly, this group has people who might be able to help!&lt;br /&gt;
*** [[eprints-tech Mailing List|Click here]] for information about [[eprints-tech Mailing List#Subscription_Options|subscribing to this list]] or [[eprints-tech Mailing List#List_Archives|reading its archives]].&lt;br /&gt;
** '''[https://groups.google.com/forum/#!forum/eprints-uk-user-group The EPrints User Group Google Group]'''&lt;br /&gt;
*** This group is for anyone involved in using EPrints.  Ask questions, share ideas, hear about forthcoming meetings.&lt;br /&gt;
* How to [[Main_Page#Contributing_to_the_Wiki|contribute to the EPrints wiki]]&lt;br /&gt;
* EPrints source code on GitHub:&lt;br /&gt;
** Core and major plugins - https://github.com/eprints&lt;br /&gt;
** Community code sharing - https://eprintsug.github.io and the repositories at https://github.com/eprintsug&lt;br /&gt;
&lt;br /&gt;
== Download EPrints ==&lt;br /&gt;
&lt;br /&gt;
{{Download}}&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Installation|Installing]] EPrints on various platforms&lt;br /&gt;
&lt;br /&gt;
==Getting Started==&lt;br /&gt;
&lt;br /&gt;
* [[EPrints Manual|EPrints 3 Documentation]]&lt;br /&gt;
* [[Perl 101 for EPrints]]&lt;br /&gt;
* [https://www.eprints.org/software/training/ Training materials] provided by EPrints Services.&lt;br /&gt;
* [[Frequently Asked Questions]]&lt;br /&gt;
* [[:Category:Howto|How to ...]]&lt;br /&gt;
* [[:Category:Plugins|Plugins and Bazaar packages for EPrints]]&lt;br /&gt;
* [[:Category:Training Video|EPrints Training Course]]&lt;br /&gt;
&lt;br /&gt;
==Getting Support==&lt;br /&gt;
&lt;br /&gt;
* [https://www.eprints.org/services/ EPrints Services] - premium support, training and hosting from EPrints experts&lt;br /&gt;
* [[Contact]] - mailing lists, bug reports etc.&lt;br /&gt;
* [[User group meetings]] - regional meetings for users, which often have notes, presentations and information of general interest&lt;br /&gt;
&lt;br /&gt;
==Add-ons, patches and translations==&lt;br /&gt;
&lt;br /&gt;
* As of version 3.3 EPrints can now install plugins and translations through the [https://bazaar.eprints.org EPrints Bazaar] the wiki also has information about [[:Category:EPrints Bazaar|packaging plugins for the Bazaar]].&lt;br /&gt;
* The [https://files.eprints.org/ EPrints Files Repository] contains add-on and 3rd party scripts, patches and translations. This also provides an archive of all previous EPrints releases (3.0 onwards).&lt;br /&gt;
* [[:Category:Plugins|Plugins]]: Some Wiki pages about scripts and patches.&lt;br /&gt;
&lt;br /&gt;
{{Register}}&lt;br /&gt;
&lt;br /&gt;
==Contributing to EPrints==&lt;br /&gt;
&lt;br /&gt;
* [[Usability|EPrints usability]]&lt;br /&gt;
* New features in EPrints - [[:Category:Releases|released]] and [[:Category:Planned Releases|proposed]]&lt;br /&gt;
* [[How to contribute|How to contribute to EPrints development]]&lt;br /&gt;
* [https://github.com/eprints/eprints3.4 EPrints 3.4 on GitHub] - Codebase, releases and issues tracker for EPrints 3.4.&lt;br /&gt;
* [https://github.com/eprints/eprints3 EPrints 3.3 on GitHub] - Codebase, releases and issues tracker for EPrints 3.3 (legacy).&lt;br /&gt;
&lt;br /&gt;
== Content management ==&lt;br /&gt;
&lt;br /&gt;
* [[Digital preservation]]: managing content for longer-term access and use&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Template:EPrintsTech&amp;diff=16186</id>
		<title>Template:EPrintsTech</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Template:EPrintsTech&amp;diff=16186"/>
		<updated>2024-02-16T17:32:14Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: link updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For free support and discussion about EPrints you can sign up to [[Eprints-tech_Mailing_List | EP-Tech]].&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Template:Download&amp;diff=16185</id>
		<title>Template:Download</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Template:Download&amp;diff=16185"/>
		<updated>2024-02-16T17:22:18Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: download link updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* '''EPrints 3.4 series (latest release)'''&lt;br /&gt;
** [[Upgrading_3.3.12%2B_to_3.4|'''Read this before upgrading your archive from 3.3 to 3.4''']]&lt;br /&gt;
** [[Upgrading between EPrints 3.4 versions]]&lt;br /&gt;
** [http://files.eprints.org/2789/ Download]&lt;br /&gt;
** [https://github.com/eprints/eprints3.4 Development]&lt;br /&gt;
* '''EPrints 3.3 series (legacy supported release)'''&lt;br /&gt;
** [[Upgrading_from_3.2|'''Read this before upgrading your archive from 3.2 to 3.3''']]&lt;br /&gt;
** [https://files.eprints.org/2306/ Download]&lt;br /&gt;
** [https://files.eprints.org/2349/ February 2021 security patch for EPrints 3.3.16]&lt;br /&gt;
** [https://github.com/eprints/eprints Legacy development]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Debian_from_source&amp;diff=16184</id>
		<title>Debian from source</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Debian_from_source&amp;diff=16184"/>
		<updated>2024-02-16T17:03:24Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: outdated strategy removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Installing_EPrints_on_Debian/Ubuntu#Installing_EPrints_from_Source | Installing EPrints from Source]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Admin&amp;diff=16183</id>
		<title>Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Admin&amp;diff=16183"/>
		<updated>2024-02-16T16:08:34Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typo removed, category added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Management]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: solid black 1px; text-align: center; background-color: #eee; padding-bottom: 0.5em&amp;quot;&amp;gt;&lt;br /&gt;
'''Admin:''' {{admin_tabs}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The page pertains to the '''Admin''' web interface of an EPrints repository, which provides tools for an administrator to manage their repository. As a logged in repository administrator, it can be accessed by clicking on the ''Admin'' link in the EPrints [[User Menu]] or at the following equivalent URL on your repository:&lt;br /&gt;
 https://example.eprints.org/cgi/users/home?screen=Admin&lt;br /&gt;
&lt;br /&gt;
By default this will display three tabs of administration sub-menus:&lt;br /&gt;
# [[Admin/Editorial Tools|Editorial Tools]] - Tools to support editorial tasks.  Typically searching across various different datasets.&lt;br /&gt;
# [[Admin/System Tools|System Tools]] - Tools for controlling the EPrints System.  Checking the status, controlling the indexer, interacting with the Bazaar, regenerating pages, etc.&lt;br /&gt;
# [[Admin/Config. Tools|Config. Tools]] - Tools for modifying the EPrints repository configuration.  Editing subjects, phrases of configuration files directly,  updating the database, reloading configuration and managing storage.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_and_MariaDB_10&amp;diff=16179</id>
		<title>EPrints and MariaDB 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_and_MariaDB_10&amp;diff=16179"/>
		<updated>2024-02-08T08:47:03Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typo removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various changes have been made to MariaDB between version 5.5 and 10 and these can have some impact on EPrints.&lt;br /&gt;
&lt;br /&gt;
== Not Null without Default Value ==&lt;br /&gt;
In EPrints a MetaField can set the attribute &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt;.  This means strictly it has has to have a default value.  Prior to EPrints 3.4.4, default values were not set for MetaFields created with &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt; and not [https://github.com/eprints/eprints3.4/issues/196 until EPrints 3.4.5] were the default values tailored depending on the type of database field.  [[EPrints_and_MySQL_8 | MySQL 8]] also has the same issue.&lt;br /&gt;
&lt;br /&gt;
If you are running an earlier version of EPrints, you could manually alter your database to make sure any MetaField that have &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt; and set a default value something like:&lt;br /&gt;
 ALTER TABLE `eprint` MODIFY COLUMN `not_null_field` VARCHAR(255) NOT NULL DEFAULT '';&lt;br /&gt;
Otherwise, you could change your MySQL server's configuration to overlook this by adding the following to &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; (and affectively removing the part of &amp;lt;tt&amp;gt;STRICT_TRANS_TABLES&amp;lt;/tt&amp;gt; that causes this to error).  Once done remember to restart MySQL:&lt;br /&gt;
 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
&lt;br /&gt;
== Data Too Long for Field ==&lt;br /&gt;
EPrints often uses &amp;lt;tt&amp;gt;VARCHAR(255)&amp;lt;/tt&amp;gt; fields.  This can sometime present a problem especially if the text contains special characters which in affect makes the column even less than 255 characters.  Previously MySQL has just truncated data that has got to long but in MariaDB 10 (as well as [[EPrints_and_MySQL_8 | MySQL 8]]) it now just throws an error message.&lt;br /&gt;
&lt;br /&gt;
The main place in EPrints this is a problem is indexing metadata and the full text of documents.  Since [https://github.com/eprints/eprints3.4/issues/247 EPrints 3.4.5], a restriction on the max length of a word that can be indexed has been added to restrict this to 128 characters, this ensures that even if special characters are used the total space required to store the string does not exceed that available to a &amp;lt;tt&amp;gt;VARCHAR(255)&amp;lt;/tt&amp;gt; by some margin.&lt;br /&gt;
&lt;br /&gt;
However, if you are running an earlier version of EPrints, the only solution for now is the same as for the &amp;quot;[[#Not Null without Default Value|Not Null without Default Value]]&amp;quot; issue and setting the SQL mode in &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; as follows and then restarting MySQL:&lt;br /&gt;
 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
Like this other issue it is &amp;lt;tt&amp;gt;STRICT_TRANS_TABLES&amp;lt;/tt&amp;gt; that will throw an error rather than quietly truncate, which although also not ideal is generally less problematic as terms that are too long are unlikely ever to be those searched.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_and_MariaDB_10&amp;diff=16178</id>
		<title>EPrints and MariaDB 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_and_MariaDB_10&amp;diff=16178"/>
		<updated>2024-02-08T08:39:30Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typos removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various changes have been made to MariaDB between version 5.5 and 10 and these can have some impact on EPrints.&lt;br /&gt;
&lt;br /&gt;
== Not Null without Default Value ==&lt;br /&gt;
In EPrints a MetaField can set the attribute &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt;.  This means strictly it has has to have a default value.  Prior to EPrints 3.4.4, default values were not set for MetaFields created with &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt; and not [https://github.com/eprints/eprints3.4/issues/196 until EPrints 3.4.5] were the default values tailored depending on the type of database field.  [[EPrints_and_MySQL_8 | MySQL 8]] also has the same issue.&lt;br /&gt;
&lt;br /&gt;
If you are running an earlier version of EPrints, you could manually alter your database to make sure any MetaField that have &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt; and set a default value something like:&lt;br /&gt;
 ALTER TABLE `eprint` MODIFY COLUMN `not_null_field` VARCHAR(255) NOT NULL DEFAULT '';&lt;br /&gt;
Otherwise, you could change your MySQL server's configuration to overlook this by adding the following to &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; (and affectively removing the part of &amp;lt;tt&amp;gt;STRICT_TRANS_TABLES&amp;lt;/tt&amp;gt; that causes this to error).  Once done remember to restart MySQL:&lt;br /&gt;
 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
&lt;br /&gt;
== Data Too Long for Field ==&lt;br /&gt;
EPrints often uses &amp;lt;tt&amp;gt;VARCHAR(255)&amp;lt;/tt&amp;gt; fields.  This can sometime present a problem especially if the text contains special characters which in affect makes the column even less than 255 characters.  Previously MySQL has just truncated data that has got to long but in MariaDB 10 (as well as MySQL 8) it now just throws and error message.&lt;br /&gt;
&lt;br /&gt;
The main place in EPrints this is a problem is indexing metadata and the full text of documents.  Since [https://github.com/eprints/eprints3.4/issues/247 EPrints 3.4.5], a restriction on the max length of a word that can be indexed has been added to restrict this to 128 characters, this ensures that even if special characters are used the total space required to store the string does not exceed that available to a &amp;lt;tt&amp;gt;VARCHAR(255)&amp;lt;/tt&amp;gt; by some margin.&lt;br /&gt;
&lt;br /&gt;
However, if you are running an earlier version of EPrints, the only solution for now is the same as for the &amp;quot;[[#Not Null without Default Value|Not Null without Default Value]]&amp;quot; issue and setting the SQL mode in &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; as follows and then restarting MySQL:&lt;br /&gt;
 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
Like this other issue it is &amp;lt;tt&amp;gt;STRICT_TRANS_TABLES&amp;lt;/tt&amp;gt; that will throw an error rather than quietly truncate, which although also not ideal is generally less problematic.  As terms that are too longer are unlikely ever to be those searched.&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_and_MySQL_8&amp;diff=16174</id>
		<title>EPrints and MySQL 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_and_MySQL_8&amp;diff=16174"/>
		<updated>2023-12-28T14:40:22Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typos removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Various changes have been made to MySQL between version 5.7 and 8 and these can have some impact on EPrints.&lt;br /&gt;
&lt;br /&gt;
== Slow Performance ==&lt;br /&gt;
By default EPrints now uses InnoDB as its table engine.  As EPrints can make a lot of transactions to update a eprint record whilst in the workflow, as well as complex background tasks this means the default configuration of MySQL makes EPrints rather slower than before.  This can be fixed by adding the following line to &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 innodb_flush_log_at_trx_commit=2&lt;br /&gt;
What this change does is ensure the logs are flushed once a second rather than after each transaction commit.  This is not ideal as your bin logs could potential miss transactions if the database was to crash but does significantly improve the performance of EPrints.  Further investigation is required to determine how serious an impact lost transactions from the bin logs would be for EPrints.  At worse this would likely affect only a small number of eprints.&lt;br /&gt;
&lt;br /&gt;
== Not Null without Default Value ==&lt;br /&gt;
In EPrints a MetaField can set the attribute &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt;.  This means strictly it has to have a default value.  Prior to EPrints 3.4.4, default values were not set for MetaField's created with &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt; and not [https://github.com/eprints/eprints3.4/issues/196 until EPrints 3.4.5] were the default values tailored depending on the type of database field.  MariaDB 10 also has the same issue.&lt;br /&gt;
&lt;br /&gt;
If you are running an earlier version of EPrints, you could manually alter your database to ensure that any MetaFields that have &amp;lt;tt&amp;gt;allow_null =&amp;gt; 0&amp;lt;/tt&amp;gt; and set a default value something like:&lt;br /&gt;
 ALTER TABLE `eprint` MODIFY COLUMN `not_null_field` VARCHAR(255) NOT NULL DEFAULT '';&lt;br /&gt;
Otherwise, you could change your MySQL server's configuration to overlook this by adding the following to &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; (and affectively removing the part of &amp;lt;tt&amp;gt;STRICT_TRANS_TABLES&amp;lt;/tt&amp;gt; that causes this to error).  Once done remember to restart MySQL:&lt;br /&gt;
 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
&lt;br /&gt;
== Data Too Long for Field ==&lt;br /&gt;
EPrints often uses &amp;lt;tt&amp;gt;VARCHAR(255)&amp;lt;/tt&amp;gt; fields.  This can sometime present a problem especially if the text contains special characters which in affect makes the column even less than 255 characters.  Previously MySQL has just truncated data that has got to long but in MySQL 8 (as well as MariaDB 10) it now just throws and error message.&lt;br /&gt;
&lt;br /&gt;
The main place in EPrints this is a problem is indexing metadata and the full text of documents.  Since [https://github.com/eprints/eprints3.4/issues/247 EPrints 3.4.5], a restriction on the max length of a word that can be indexed has been added to restrict this to 128 characters, this ensures that even if special characters are used the total space required to store the string does not exceed that available to a &amp;lt;tt&amp;gt;VARCHAR(255)&amp;lt;/tt&amp;gt; by some margin.&lt;br /&gt;
&lt;br /&gt;
However, if you are running an earlier version of EPrints, the only solution for now is the same as for the &amp;quot;[[#Not Null without Default Value|Not Null without Default Value]]&amp;quot; issue and setting the SQL mode in &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; as follows and then restarting MySQL:&lt;br /&gt;
 sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
Like this other issue it is &amp;lt;tt&amp;gt;STRICT_TRANS_TABLES&amp;lt;/tt&amp;gt; that will throw an error rather than quietly truncate, which although also not ideal is generally less problematic.  As terms that are too longer are unlikely ever to be those searched.&lt;br /&gt;
&lt;br /&gt;
== Deprecation Warnings ==&lt;br /&gt;
Some of the more recent versions of MySQL state that some of the options in &amp;lt;tt&amp;gt;sql_mode&amp;lt;/tt&amp;gt; have been deprecated.  In particular: &amp;lt;tt&amp;gt;NO_ZERO_IN_DATE&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;NO_ZERO_DATE&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ERROR_FOR_DIVISION_BY_ZERO&amp;lt;/tt&amp;gt;.  Therefore, you should additional remove these to leave SQL mode in &amp;lt;tt&amp;gt;/etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/tt&amp;gt; looking like:&lt;br /&gt;
  sql_mode=ONLY_FULL_GROUP_BY,NO_ENGINE_SUBSTITUTION&lt;br /&gt;
&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_Flavours&amp;diff=15654</id>
		<title>EPrints Flavours</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_Flavours&amp;diff=15654"/>
		<updated>2023-02-21T18:30:06Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: typos removed, links added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since EPrints 3.4 flavours have been introduced into EPrints.  Flavours provide customisation for different types of EPrints.  The following three flavours are currently available:&lt;br /&gt;
# '''Publications''' - This is the original EPrints for research publications. Its flavours sub-directory is '''[[flavours/pub_lib/|pub_lib]]''', which comes as part of the core codebase but is provided separately on [https://files.eprints.org files.eprints.org].&lt;br /&gt;
# '''Research Data''' - This provides specific customisations for research data. Its flavours sub-directory is '''[[flavours/data_lib/|data_lib]]'''.&lt;br /&gt;
# '''Open Education''' -  This provides specific customisations for open education, previously known as EdShare. Its flavours sub-directory is '''[[flavours/edu_lib/|edu_lib]]'''.&lt;br /&gt;
&lt;br /&gt;
== Installing a Flavour ==&lt;br /&gt;
If you install EPrints from [https://files.eprints.org files.eprints.org] instead of before when you could just download a single tarball, you will need to:&lt;br /&gt;
&lt;br /&gt;
# Download the '''EPrints Zero''' tarball which is a base version of EPrints without any specializations for publications, like was the case for EPrints 3.3 and earlier.&lt;br /&gt;
# Unpack the '''EPrints Zero''' tarball to '''[[EPrints_Directory_Structure_Tree|/opt/eprints3/]]'''&lt;br /&gt;
# Download the flavour you want, such as the publication flavour tarball, and unpack it into '''[[EPrints_Directory_Structure/eprints3/flavours|/opt/eprints3/flavours/]]'''.&lt;br /&gt;
&lt;br /&gt;
After you have finished installing EPrints as a flavour, you may also want to add [[EPrints Ingredients|Ingredients]].  Ingredients are often similar to [https://bazaar.eprints.org Bazaar] plug-ins and intend to replace some of the more complex Bazaar plug-ins, which are not really suited to a one-click installation as they need extensive configuration and/or non-EPrints dependencies.&lt;br /&gt;
&lt;br /&gt;
[[Category:Customisation]]&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Flavours/&amp;diff=15653</id>
		<title>Flavours/</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Flavours/&amp;diff=15653"/>
		<updated>2023-02-21T18:05:51Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: data_lib &amp;amp; edu_lib added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{dirs}}&lt;br /&gt;
{{noeditdir}}&lt;br /&gt;
&lt;br /&gt;
The '''flavours/''' directory contains the libraries for the [[EPrints Flavours|flavour]] or flavours for repository archives. This directory (and below) should not be edited by hand only to add additional complete flavour libraries.&lt;br /&gt;
&lt;br /&gt;
*'''[[EPrints_Directory_Structure/eprints3|eprints3]]/flavours'''&lt;br /&gt;
** '''[[Flavours/pub_lib/|pub_lib/]]''' - Publication flavour library.&lt;br /&gt;
** '''[[Flavours/data_lib/|data_lib/]]''' - Research Data flavour library.&lt;br /&gt;
** '''[[Flavours/edu_lib/|edu_lib/]]''' - Open Education flavour library.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Configuration_orientation&amp;diff=15652</id>
		<title>Configuration orientation</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Configuration_orientation&amp;diff=15652"/>
		<updated>2023-02-21T18:05:16Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: sitewide configuration added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Howto]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Configuration]]&lt;br /&gt;
&lt;br /&gt;
You've just installed EPrints 3 and created a repository, and now you're keen to get started on customising it. Before diving into the how-tos, take some time to read through this brief orientation guide and familiarise yourself with the EPrints configuration landscape.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Where are the configuration files?==&lt;br /&gt;
&lt;br /&gt;
The default installation directory for EPrints is:&lt;br /&gt;
&lt;br /&gt;
 /opt/eprints3/&lt;br /&gt;
&lt;br /&gt;
(You may have chosen a different installation directory when you installed EPrints.)&lt;br /&gt;
&lt;br /&gt;
There are several sub-directories at this level, but this guide covers only those relevant to repository configuration - the ''lib'' and ''archives'' directories. Before looking at the contents of these directories, we need to understand the concepts of ''global'' and ''repository-specific'' (or  ''local'') configuration. If several repositories running on your server are very similar you should consider a [[sitewide configuration]].&lt;br /&gt;
&lt;br /&gt;
'''What about everything else?''' The EPrints installation directory contains several other files and directories, which are described in the [[EPrints Directory Structure]] section.&lt;br /&gt;
&lt;br /&gt;
==Local vs global configuration==&lt;br /&gt;
&lt;br /&gt;
A single installation of EPrints can run multiple repositories, each potentially very different in style and functionality. Therefore, EPrints configuration files are divided into two default sets: ''global configuration'' and ''repository-specific configuration''. Each repository shares the global configuration settings, whilst keeping its own set of local (private) configuration settings.&lt;br /&gt;
&lt;br /&gt;
EPrints tries to strike a sensible balance between the two sets. The global set contains the configuration options that you are probably least likely to need to change (although they are by no means unchangeable - you can override a global setting for a specific repository if you need to). On the other hand, the repository-specific set contains the most often tweaked settings.&lt;br /&gt;
&lt;br /&gt;
===The ''lib'' directory===&lt;br /&gt;
&lt;br /&gt;
[[Image:Orientation_lib.png|right]]&lt;br /&gt;
&lt;br /&gt;
The lib directory is where the global configuration files are kept. '''This directory should be considered [[Read Only Directories|read only]]'''. Best practice when changing a global setting for a particular repository is to override the setting at the repository level rather than edit the global configuration files directly. The configuration files in ''lib'' are organised into subdirectories according to their function, which should help make locating a specific configuration setting intuitive.&lt;br /&gt;
&lt;br /&gt;
[[EPrints_Directory_Structure/eprints3/lib|Explore the contents of the lib directory]].&lt;br /&gt;
&lt;br /&gt;
Note that the ''defaultcfg'' subdirectory contains the default set of configuration files that are copied into each new repository's local configuration directory. These local configuration directories are covered in the next section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=&amp;quot;all&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The ''archives'' directory===&lt;br /&gt;
&lt;br /&gt;
[[Image:Orientation_cfg.png|right]]&lt;br /&gt;
&lt;br /&gt;
Each repository has its own subdirectory (named according to the repository id) under the ''archives'' directory. &lt;br /&gt;
&lt;br /&gt;
Each repository directory contains several [[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID|subdirectories]], including the ''cfg'' directory. This is where the repository-specific configuration files are kept.&lt;br /&gt;
&lt;br /&gt;
[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg|Explore the contents of the cfg directory]].&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_Directory_Structure_Tree&amp;diff=15651</id>
		<title>EPrints Directory Structure Tree</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_Directory_Structure_Tree&amp;diff=15651"/>
		<updated>2023-02-21T18:02:19Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: site_lib added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{dirs}}&lt;br /&gt;
&lt;br /&gt;
A graphical representation of the [[EPrints Directory Structure|EPrints3 directory structure]] after executing the install.pl command. Initially the &amp;quot;archives&amp;quot; directory is empty, it is populated when executing (as the eprints user) the &amp;quot;bin/epadmin create&amp;quot; command. The new repository is created using the data in the [[EPrints_Directory_Structure/eprints3/lib/defaultcfg]] directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:2em; background-color:#e9e9e9;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;margin: 6px; background-color:#e9e9e9;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/perl_lib|perl_lib]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png|-&amp;amp;gt;]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;perl routines&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/bin|bin]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png|-&amp;amp;gt;]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;command line and crontab tools&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/cgi|cgi]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;dynamic (cgi) EPrints web pages&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/cfg|cfg]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;apache configuration for the whole site&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/testdata|testdata]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;tools and sample test data&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/tests|tests]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;unit tests&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/tools|tools]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;command line tools&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/var|var]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;apache include files plus indexer log&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/site_lib|site_lib]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;10&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;for customized system [[EPrints_Directory_Structure/eprints3/lib|lib]] files or [[sitewide configuration]] concurrent to [[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg|archives/[ArchiveID]/cfg]]&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/lib|lib]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Lib/cfg.d/|cfg.d]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;core config files&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Lib/citations/|citations]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;4&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;how to render data objects&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Lib/defaultcfg_zero/|defaultcfg_zero]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;the content of&amp;lt;/i&amp;gt; archives/ID/cfg/ &amp;lt;i&amp;gt;is copied from here&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/lang/|lang]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;XX (langid)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/lang/en/phrases/|phrases]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;system-wide phrases&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/lang/en/static/|static]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;web pages and icons&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/namedsets/|namedsets]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;options for namedset fields&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;plugins&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;extra EPrints plugins&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/static/|static]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;files to be copied to the html directory&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/syscfg.d/|syscfg.d]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;system config files&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/templates/|templates]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;web page templates&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png|&amp;quot;-&amp;amp;gt;&amp;quot;]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/themes/|themes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/themes/example/|example]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/themes/example/lang/|lang]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;XX (langid)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/themes/example/lang/en/phrases/|phrases]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;theme phrases&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/themes/example/lang/en/static/|static]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;theme language-specific pages&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/themes/example/lang/en/templates/|templates]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;theme language-specific templates&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/themes/example/static/|static]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;theme CSS and images&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/themes/example/templates/|templates]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;theme templates&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Lib/workflows/|workflows]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;4&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;workflows for data objects&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/flavours|flavours]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Flavours/pub_lib/|pub_lib]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;see [[EPrints Flavours|3.4+ publication flavour]]&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/ingredients|ingredients]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;see [[EPrints Ingredients|3.4+ ingredients]]&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives|archives]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID|ARCHIVEID]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;see below&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The content of the  &amp;quot;archives/[ArchiveID]/&amp;quot; directory. Any change you make here has effect on the particular repository only.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:2em; background-color:#e9e9e9;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;2&amp;quot; style=&amp;quot;margin: 6px; background-color:#e9e9e9;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/documents|documents]]&amp;amp;nbsp;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;uploaded files, extracted words, abstract pages, etc.&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/html|html]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;static files for the repository on all languages&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/var|var]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;various repository dependent files&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg|cfg]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;7&amp;quot;&amp;gt;subjects &amp;amp;#91;&amp;lt;i&amp;gt;used for importing the subject tree&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/static|static]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/static/images|images]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;files to be copied to the html directory&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/static/javascript|javascript]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;files to be copied to the html directory&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/static/style|style]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;3&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;files to be copied to the html directory&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/cfg.d|cfg.d]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;general configuration files as perl script fragments&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/autocomplete|autocomplete]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;data files for the autocompletion feature&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/citations|citations]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;directories for citations for different data objects&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/namedsets|namedsets]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;files containing the possible values for different sets&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/workflows|workflows]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;directories for workflows for different data objects&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/lang|lang]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;XX (langid)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/lang/en/phrases|phrases]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;phrases used locally&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/lang/en/static|static]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;templates for static html pages&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg/lang/en/templates|templates]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Image:jobbra.png]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;amp;#91;&amp;lt;i&amp;gt;default html page template&amp;lt;/i&amp;gt;&amp;amp;#93;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=EPrints_Directory_Structure/eprints3/site_lib&amp;diff=15650</id>
		<title>EPrints Directory Structure/eprints3/site lib</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=EPrints_Directory_Structure/eprints3/site_lib&amp;diff=15650"/>
		<updated>2023-02-21T18:01:08Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: initial creation of new content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:EPrints_Directory_Structure]]&lt;br /&gt;
{{dirs}}&lt;br /&gt;
&lt;br /&gt;
The '''site_lib/''' directory may contain the customized version of the data directories files originally located for the EPrints system in [[EPrints_Directory_Structure/eprints3/lib|eprints3/lib]] (except [[Lib/defaultcfg_zero/|defaultcfg_zero]]). &lt;br /&gt;
Assuming you are running several similar sites by one server this directory facilitates the maintenance of the overall configuration!&lt;br /&gt;
The appropriate order in [[flavours/pub_lib/inc|eprints3/flavours/pub_lib/inc]] controls which configuration file is used in favour of all files not found in the subdirectories below [[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg|eprints3/archives/[ArchiveID]/cfg]].&lt;br /&gt;
&lt;br /&gt;
*'''[[EPrints_Directory_Structure/eprints3|eprints3]]/site_lib'''&lt;br /&gt;
** '''[[Lib/cfg.d/|cfg.d/]]''' - Perl configuration files.&lt;br /&gt;
** '''[[Lib/citations/|citations/]]''' - Citation configuration files which are not repository specific.&lt;br /&gt;
** '''[[Lib/lang/|lang/]]''' - Language specific lib data files.&lt;br /&gt;
** '''[[Lib/namedsets/|namedsets/]]''' - Options for [[API:EPrints/MetaField/Namedset|namedset]] fields.&lt;br /&gt;
** '''plugins/''' - Empty directory but all customized plugins could be added here.&lt;br /&gt;
** '''[[Lib/static/|static/]]''' - Language neutral items which appear in the website of every eprints repository (eg. javascript and arrow icons).&lt;br /&gt;
** '''[[Lib/syscfg.d/|syscfg.d/]]''' - System Perl configuration files.&lt;br /&gt;
** '''[[Lib/templates/|templates/]]''' - Web page templates.&lt;br /&gt;
** '''[[Lib/themes/|themes/]]''' - Themes that can be used by a repository.&lt;br /&gt;
** '''[[Lib/workflows/|workflows/]]''' - Workflow configuration files which are not repository specific.&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.eprints.org/w/index.php?title=Sitewide_configuration&amp;diff=15649</id>
		<title>Sitewide configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.eprints.org/w/index.php?title=Sitewide_configuration&amp;diff=15649"/>
		<updated>2023-02-21T17:58:49Z</updated>

		<summary type="html">&lt;p&gt;Th.lauke@arcor.de: initial creation of new content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Customisation]]&lt;br /&gt;
&lt;br /&gt;
Assuming you are running several similar sites by one server using [[EPrints_Directory_Structure/eprints3/site_lib|eprints3/site_lib]] facilitates the maintenance of the overall configuration!&lt;br /&gt;
The appropriate order in e.g. [[flavours/pub_lib/inc|eprints3/flavours/pub_lib/inc]] controls which configuration file is used in favour of all files not found in the subdirectories below [[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg|archives/[ArchiveID]/cfg]]. Thus you can define your personally customized version which will be pushed somewhere in between the probably existing ones in [[EPrints_Directory_Structure/eprints3/lib|eprints3/lib]], [[EPrints_Directory_Structure/eprints3/flavours|eprints3/flavours/[pub|data|edu]_lib]] or [[EPrints_Directory_Structure/eprints3/archives/ARCHIVEID/cfg|archives/[ArchiveID]/cfg]].&lt;/div&gt;</summary>
		<author><name>Th.lauke@arcor.de</name></author>
		
	</entry>
</feed>