<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.ext-9.eprints-hosting.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LukeWallin</id>
	<title>EPrints Documentation - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ext-9.eprints-hosting.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=LukeWallin"/>
	<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/Special:Contributions/LukeWallin"/>
	<updated>2026-05-10T02:03:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Shibboleth_Debug_Logging&amp;diff=17002</id>
		<title>Shibboleth Debug Logging</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Shibboleth_Debug_Logging&amp;diff=17002"/>
		<updated>2025-11-17T11:28:06Z</updated>

		<summary type="html">&lt;p&gt;LukeWallin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As described on the main [[Shibboleth]] page.  EPrints uses the Shibboleth Service Provider (SP) provided by shibboleth.net.  This includes a logger that can be configured at &#039;&#039;&#039;/etc/shibboleth/shibd.logger&#039;&#039;&#039; and which logs to &#039;&#039;&#039;/var/log/shibboleth/shibd.log&#039;&#039;&#039;.  This typically only logs errors and warnings and the occasionally informationl log message, typically when starting or stopping.  However, if you are having problems with the Shibboleth SP, particularly when setting up, it may be useful to enable debug.  To do this&lt;br /&gt;
&lt;br /&gt;
1. Edit the &#039;&#039;&#039;/etc/shibboleth/shibd.logger&#039;&#039;&#039; and uncomment the following lines:&lt;br /&gt;
 # tracing of SAML messages and security policies&lt;br /&gt;
 #log4j.category.OpenSAML.MessageDecoder=DEBUG&lt;br /&gt;
 #log4j.category.OpenSAML.MessageEncoder=DEBUG&lt;br /&gt;
 #log4j.category.OpenSAML.SecurityPolicyRule=DEBUG&lt;br /&gt;
 #log4j.category.XMLTooling.SOAPClient=DEBUG&lt;br /&gt;
 # interprocess message remoting&lt;br /&gt;
 #log4j.category.Shibboleth.Listener=DEBUG&lt;br /&gt;
 # mapping of requests to applicationId&lt;br /&gt;
 #log4j.category.Shibboleth.RequestMapper=DEBUG&lt;br /&gt;
 # high level session cache operations&lt;br /&gt;
 #log4j.category.Shibboleth.SessionCache=DEBUG&lt;br /&gt;
 # persistent storage and caching&lt;br /&gt;
 #log4j.category.XMLTooling.StorageService=DEBUG&lt;br /&gt;
So they look like&lt;br /&gt;
 # tracing of SAML messages and security policies&lt;br /&gt;
 log4j.category.OpenSAML.MessageDecoder=DEBUG&lt;br /&gt;
 log4j.category.OpenSAML.MessageEncoder=DEBUG&lt;br /&gt;
 log4j.category.OpenSAML.SecurityPolicyRule=DEBUG&lt;br /&gt;
 log4j.category.XMLTooling.SOAPClient=DEBUG&lt;br /&gt;
 # interprocess message remoting&lt;br /&gt;
 log4j.category.Shibboleth.Listener=DEBUG&lt;br /&gt;
 # mapping of requests to applicationId&lt;br /&gt;
 log4j.category.Shibboleth.RequestMapper=DEBUG&lt;br /&gt;
 # high level session cache operations&lt;br /&gt;
 log4j.category.Shibboleth.SessionCache=DEBUG&lt;br /&gt;
 # persistent storage and caching&lt;br /&gt;
 log4j.category.XMLTooling.StorageService=DEBUG&lt;br /&gt;
&lt;br /&gt;
2. Test the Shibboleth SP is correctly configured&lt;br /&gt;
 shibd -t&lt;br /&gt;
&lt;br /&gt;
3. Restart the Shibboleth SP&lt;br /&gt;
 systemctl restart shibd&lt;br /&gt;
&lt;br /&gt;
There is various debugging that has been enabled by these changes.  Particularly useful are the first two line:&lt;br /&gt;
 log4j.category.OpenSAML.MessageDecoder=DEBUG&lt;br /&gt;
 log4j.category.OpenSAML.MessageEncoder=DEBUG&lt;br /&gt;
This will allow you to see the XML messages sent to and from the Shibboleth Identity Provider (IdP), such as MicroSoft Entra or OpenAthens.  &lt;br /&gt;
&lt;br /&gt;
== Debugging User Attributes Mapping Issues ==&lt;br /&gt;
This debugging can be particularly useful if you are trying to work attributes in your attribute-map.xml are not being mapped as expected.  If you tail the log file &#039;&#039;&#039;/var/log/shibboleth/shibd.log&#039;&#039;&#039; and then try to login using the Shibboleth, you should see a line in the logs that starts:&lt;br /&gt;
 &amp;lt;samlp:Response ...&lt;br /&gt;
If you copy the whole of that line into a text file in /tmp/ and save it.  Then you can run xmllint on it to format the output.  E.g.&lt;br /&gt;
 xmllint --format /tmp/saml-response.xml&lt;br /&gt;
If attributes are being mapped, in the formatted output you should be able to see section that starts with an &#039;&#039;&#039;AttributeStatment&#039;&#039;&#039; XML tag.  E.g.&lt;br /&gt;
 &amp;lt;AttributeStatement&amp;gt;&lt;br /&gt;
   &amp;lt;Attribute Name=&amp;quot;http://schemas.microsoft.com/identity/claims/tenantid&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;AttributeValue&amp;gt;01234567-89ab-cdef-0123-456789abcdef&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
   &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
   &amp;lt;Attribute Name=&amp;quot;http://schemas.microsoft.com/identity/claims/objectidentifier&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;AttributeValue&amp;gt;fedcba98-7654-3210-fedc-ba9876543210&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
   &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
   &amp;lt;Attribute Name=&amp;quot;http://schemas.microsoft.com/identity/claims/identityprovider&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;AttributeValue&amp;gt;https://sts.windows.net/89abcdef-0123-4567-89ab-cdef01234567/&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
   &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
   &amp;lt;Attribute Name=&amp;quot;http://schemas.microsoft.com/claims/authnmethodsreferences&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;AttributeValue&amp;gt;http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
     &amp;lt;AttributeValue&amp;gt;http://schemas.microsoft.com/claims/multipleauthn&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
   &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
   &amp;lt;Attribute Name=&amp;quot;urn:oid:0.9.2342.19200300.100.1.3&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;AttributeValue&amp;gt;j.bloggs@example.org&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
   &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
   &amp;lt;Attribute Name=&amp;quot;urn:oid:2.5.4.4&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;AttributeValue&amp;gt;Bloggs&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
   &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
   &amp;lt;Attribute Name=&amp;quot;urn:oid:2.5.4.42&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;AttributeValue&amp;gt;Joe&amp;lt;/AttributeValue&amp;gt;&lt;br /&gt;
   &amp;lt;/Attribute&amp;gt;&lt;br /&gt;
 &amp;lt;/AttributeStatement&amp;gt;&lt;br /&gt;
If you cannot find users attributes you are expecting to see based on what you have configurured in your Shibboleth SP&#039;s attribute-map.xml, then you will need to get the maintainer of Shibboleth IdP to make sure these attributes are released or otherwise release attributes that store the sane user metadata.  At this point you can re-run this debugging to see what user attributes you are now getting and update your Shibboleth SP&#039;s attribute-map.xml as appropriate.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;When you have finished debugging.  It is sensible to comment out the debug lines in &#039;&#039;&#039;/etc/shibboleth/shibd.logger&#039;&#039;&#039; again and restart the Shibboleth SP.&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>LukeWallin</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Branding_with_confidence&amp;diff=16765</id>
		<title>Branding with confidence</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=Branding_with_confidence&amp;diff=16765"/>
		<updated>2025-05-01T13:44:58Z</updated>

		<summary type="html">&lt;p&gt;LukeWallin: /* Changing the theme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Branding]]&lt;br /&gt;
&lt;br /&gt;
One of the most common EPrints customisations is to add your own institution&#039;s branding and &amp;quot;look and feel&amp;quot; to the interface - this may include logos, page layouts, stylesheets and colour schemes.&lt;br /&gt;
&lt;br /&gt;
It is generally advised that you have command line access to the server so you can add/edit these files for branding directly.  Alternatively you may have some means of mapping EPrints on a network drive so you can edit these files with a graphical text editor or your own computer.  It is possible to use the &#039;&#039;Config. Tools -&amp;gt; View Configuration&#039;&#039; section of the EPrints Admin web interface.  However, this is discouraged, as anything beyond minor changes runs the risk of breaking EPrints in a way where you can no longer access these &#039;&#039;View Configuration&#039;&#039; pages to revert the changes you have made.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Branding fast track==&lt;br /&gt;
&lt;br /&gt;
This section describes techniques for very quickly changing the appearance of your EPrints repository. These techniques could be useful, for example, to quickly brand a demonstration repository so that your audience can identify with it.&lt;br /&gt;
&lt;br /&gt;
===Adding a logo===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 1&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The simplest approach, (which will require command line access to the server, as this cannot be done safely through the &#039;&#039;Config. Tools -&amp;gt; View Configuration&#039;&#039; section of the EPrints Admin web interface), is to overwrite the default EPrints logo with a copy of your own logo. Copy your logo (e.g. using SCP or SFTP) to: &lt;br /&gt;
&lt;br /&gt;
 EPRINTS_PATH/archives/ARCHIVEID/cfg/static/images/sitelogo.png&lt;br /&gt;
&lt;br /&gt;
And refresh the web page. Your logo should now be displayed in place of the default EPrints logo.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 2&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The image that EPrints uses for the site logo is defined in the branding configuration file. You can change this setting to point to the logo image on your institution&#039;s Web page.&lt;br /&gt;
&lt;br /&gt;
Open the branding configuration file in a text editor (e.g. Vim or Nano) if you are editing it from the command line:&lt;br /&gt;
&lt;br /&gt;
 EPRINTS_PATH/archives/ARCHIVEID/cfg/cfg.d/branding.pl&lt;br /&gt;
&lt;br /&gt;
You can alternatively edit this file via the &#039;&#039;&#039;Config. Tools -&amp;gt; View Configuration&#039;&#039;&#039; section of the EPrints Admin web interface, under just:&lt;br /&gt;
&lt;br /&gt;
 cfg/cfg.d/branding.pl&lt;br /&gt;
&lt;br /&gt;
Find the site_logo configuration setting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
$c-&amp;gt;{site_logo} = &amp;quot;/images/sitelogo.png&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the setting to point to your own logo image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
$c-&amp;gt;{site_logo} = &amp;quot;http://www.soton.ac.uk/img/furniture/royal/corp_logo.gif&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reload the EPrints configuration by typing:&lt;br /&gt;
&lt;br /&gt;
 EPRINTS_PATH/bin/epadmin reload ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
If you are doing this via the EPrints Admin web interface click on the &#039;&#039;&#039;Reload Configuration&#039;&#039;&#039; button under the &#039;&#039;&#039;Config. Tools&#039;&#039;&#039; tab.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example 3&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can also adjust the &amp;lt;tt&amp;gt;site_logo&amp;lt;/tt&amp;gt; configuration setting to point any local image file using a text editor at the command line. Place a copy (e.g. using SCP of SFTP) of your logo image somewhere in the &amp;lt;tt&amp;gt;EPRINTS_PATH/archives/ARCHIVEID/cfg/static/images/&amp;lt;/tt&amp;gt; directory and then update the branding configuration file to point to it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
$c-&amp;gt;{site_logo} = &amp;quot;/images/mylogo.gif&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reload the EPrints configuration by typing:&lt;br /&gt;
&lt;br /&gt;
 EPRINTS_PATH/bin/epadmin reload ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
===Changing the theme===&lt;br /&gt;
&lt;br /&gt;
Open the branding configuration file in a text editor:&lt;br /&gt;
(Note if this file does not exist, copy it from lib/cfg.d/branding.pl)&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/cfg.d/branding.pl&lt;br /&gt;
&lt;br /&gt;
Find the theme configuration setting:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
# $c-&amp;gt;{theme} = &amp;quot;green&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the setting to use the chosen theme.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
$c-&amp;gt;{theme} = &amp;quot;green&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Currently EPrints 3 only includes the default and &amp;quot;green&amp;quot; theme, but look out for more themes in future versions of EPrints and on the http://files.eprints.org/ community repository.&lt;br /&gt;
&lt;br /&gt;
==Taking control==&lt;br /&gt;
&lt;br /&gt;
This section describes techniques for taking complete control of the appearance of your repository.&lt;br /&gt;
&lt;br /&gt;
===Changing the page layout===&lt;br /&gt;
&lt;br /&gt;
Every page in your repository is displayed using a single template. A custom layout can be applied to your repository pages by editing this template.&lt;br /&gt;
&lt;br /&gt;
Copy the default layout to your repository:&lt;br /&gt;
&lt;br /&gt;
 cp lib/templates/default.xml archives/ARCHIVEID/cfg/templates/default.xml&lt;br /&gt;
&lt;br /&gt;
Open the template file for your repository:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/templates/default.xml&lt;br /&gt;
&lt;br /&gt;
The template is an XHTML file with some additional syntax (see [[API:EPrints/Apache/Template]]).&lt;br /&gt;
&lt;br /&gt;
====Pins====&lt;br /&gt;
&lt;br /&gt;
You will notice a number of epc:pin elements. These tell EPrints how to combine the template with page-specific content to build each individual page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;ep_tm_page_content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h1 class=&amp;quot;ep_tm_pagetitle&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;epc:pin ref=&amp;quot;title&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/h1&amp;gt;&lt;br /&gt;
        &amp;lt;epc:pin ref=&amp;quot;page&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This part of the template lays out the main content area of the page (the &#039;&#039;page&#039;&#039; pin) which is centered on the page.&lt;br /&gt;
&lt;br /&gt;
You can incorporate the epc:pin elements however you like into your new layout (although note that the head pin should always be inside the head section of the template, and the pagetop pin should be at the start of the body section). You can also define new pins (see below).&lt;br /&gt;
&lt;br /&gt;
====Configuration Strings====&lt;br /&gt;
&lt;br /&gt;
There are also a number of epc:print elements in the default template which are useful for including configuration values in the template.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;style type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;@import url(&amp;lt;epc:print expr=&amp;quot;$config{base_url}&amp;quot;/&amp;gt;/style/auto.css);&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This extract from the head section of the template shows how an epc:print element is used to refer to the base URL of the repository. This avoids hardcoding URLs into the template (which is good for maintainability - if the repository URL should change, you do not have to change the template).&lt;br /&gt;
&lt;br /&gt;
Configuration values can also be used inside attributes, using the {...} syntax.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;{$config{frontpage}}&amp;quot;&amp;gt;&amp;lt;img alt=&amp;quot;Logo&amp;quot; src=&amp;quot;{$config{site_logo}}&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This extract shows how the URL of both the front page of the repository and the logo are derived from the configuration rather than being hard coded directly into the template.&lt;br /&gt;
&lt;br /&gt;
====Template checklist====&lt;br /&gt;
&lt;br /&gt;
A typical repository page layout will include:&lt;br /&gt;
&lt;br /&gt;
# the correct XML declaration at the top of the file&lt;br /&gt;
# a head section (load default and custom stylesheets, &#039;&#039;title&#039;&#039; and &#039;&#039;head&#039;&#039; pins)&lt;br /&gt;
# a body section, containing:&lt;br /&gt;
## &#039;&#039;pagetop&#039;&#039; pin&lt;br /&gt;
## header (repository title and logo)&lt;br /&gt;
## navigation menu (links to browse, search etc.)&lt;br /&gt;
## quick search box&lt;br /&gt;
## toolbar (&#039;&#039;login_status&#039;&#039; and &#039;&#039;toolbar&#039;&#039; pins)&lt;br /&gt;
## main content area (&#039;&#039;title&#039;&#039; and &#039;&#039;page&#039;&#039; pins)&lt;br /&gt;
## footer (copyright notice etc.)&lt;br /&gt;
&lt;br /&gt;
====Loading the new template====&lt;br /&gt;
&lt;br /&gt;
Load your new template by running:&lt;br /&gt;
&lt;br /&gt;
 bin/epadmin reload ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
====Dealing with template errors====&lt;br /&gt;
&lt;br /&gt;
A common cause of errors when loading a new template is that the template is not &#039;&#039;well formed&#039;&#039;. The template is in XHTML syntax, and therefore must follow the rules for writing well-formed XML documents:&lt;br /&gt;
&lt;br /&gt;
* http://en.wikipedia.org/wiki/XML#Well-formed_documents&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
You get the following error when reloading the template:&lt;br /&gt;
&lt;br /&gt;
 parser error : Opening and ending tag mismatch: img line 25 and div&lt;br /&gt;
&lt;br /&gt;
Open the template file, and look for an img tag on line 25:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;img src=&amp;quot;/images/mylogo.gif&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The problem is that the img tag is opened, but there is no closing img tag. The img element is empty, so we can add a self-closing tag to make the eleemtn well formed:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;img src=&amp;quot;/images/mylogo.gif&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
 parser error : Opening and ending tag mismatch: p line 60 and body&lt;br /&gt;
&lt;br /&gt;
Open the template file and look for the p tag on line 60:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;This repository is maintained by the &amp;lt;b&amp;gt;Library and Computing team&amp;lt;/b&amp;gt;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no closing p tag. The p element is not empty, so we add a closing p tag at the end of the paragraph to make the element well formed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 &amp;lt;p&amp;gt;This repository is maintained by the &amp;lt;b&amp;gt;Library and Computing team&amp;lt;/b&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding extra images===&lt;br /&gt;
&lt;br /&gt;
If your new layout requires additional images, or if you want to add additional images to the default layout, you need to place a copy of each image in your repository&#039;s image directory:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/static/images/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
Place a copy of small_logo.gif in:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/static/images/&lt;br /&gt;
&lt;br /&gt;
Use the image in the template:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;{$config{base_url}}/images/small_logo.gif&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Working with stylesheets===&lt;br /&gt;
&lt;br /&gt;
EPrints has [[EPrints_Directory_Structure/eprints3/lib/static/style/auto|several stylesheet files]], each of which contains style rules for a specific aspect of the repository. By default these stylesheets are applied to every repository page, in alphabetical order.&lt;br /&gt;
&lt;br /&gt;
The default stylesheets can be found here:&lt;br /&gt;
&lt;br /&gt;
 lib/static/style/auto/&lt;br /&gt;
&lt;br /&gt;
====Overriding default style rules====&lt;br /&gt;
&lt;br /&gt;
You may decide that you want to override a particular rule in one of the default stylesheets. Rather than edit the default stylesheet directly (since the edited rule will then be applied to any other repositories running on the same server), you should override the rule in your repository&#039;s overrides file:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/static/style/auto/zzz_local.css&lt;br /&gt;
&lt;br /&gt;
Remember that the stylesheets are applied in alphabetical order, so this file will be applied last.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
 h1 {&lt;br /&gt;
         margin: 0px 0px 10px 0px;&lt;br /&gt;
         font: bold 130% Arial,Sans-serif;&lt;br /&gt;
         text-align: center;&lt;br /&gt;
         color: #606060;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This rule is from general.css and defines how the h1 (heading level 1) element should be displayed (in the default template, h1 is used to display the title of the page).&lt;br /&gt;
&lt;br /&gt;
Edit the local overrides file for your repository:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/static/style/auto/zzz_local.css&lt;br /&gt;
&lt;br /&gt;
Override the &#039;&#039;font&#039;&#039; part of the h1 style:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
 h1 {&lt;br /&gt;
         font: bold 200% Arial,Sans-serif;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This renders the page title on each page in a larger font.&lt;br /&gt;
&lt;br /&gt;
====Overriding default stylesheets====&lt;br /&gt;
&lt;br /&gt;
If you want to override a default stylesheet in its entirety, you should copy it into your repository&#039;s stylesheet directory and edit it there.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
Make a copy of the default stylesheet general.css:&lt;br /&gt;
&lt;br /&gt;
 cp lib/static/style/auto/general.css archives/ARCHIVEID/cfg/static/style/auto/&lt;br /&gt;
&lt;br /&gt;
Edit the repository copy:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/static/style/auto/general.css&lt;br /&gt;
&lt;br /&gt;
After making changes to the repository copy of general.css, apply the new stylesheet by running:&lt;br /&gt;
&lt;br /&gt;
 bin/generate_static ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
====Adding institutional stylesheets====&lt;br /&gt;
&lt;br /&gt;
Your institutional Web site may already have a stylesheet or set of stylesheets that you want to apply to your repository.&lt;br /&gt;
&lt;br /&gt;
Copy the institutional stylesheets into your repository stylesheet directory:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/static/style/&lt;br /&gt;
&lt;br /&gt;
Process the stylesheets by running:&lt;br /&gt;
&lt;br /&gt;
 bin/generate_static ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
The stylesheets are then available to use in the template file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;@import url(&amp;lt;epc:print expr=&amp;quot;$config{base_url}&amp;quot;/&amp;gt;/style/auto.css);&amp;lt;/style&amp;gt;&lt;br /&gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot;&amp;gt;@import url(&amp;lt;epc:print expr=&amp;quot;$config{base_url}&amp;quot;/&amp;gt;/style/my_inst.css);&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we add a stylesheet link to our institutional stylesheet my_inst.css to the head section of the template. Note that we apply my_inst.css &#039;&#039;after&#039;&#039; the repository stylesheets (applied in order by auto.css) so that the institutional style rules override the repository style rules.&lt;br /&gt;
&lt;br /&gt;
====Adding extra style-related images====&lt;br /&gt;
&lt;br /&gt;
If your new stylesheet requires additional images (eg. background images for tables or divs), you need to place a copy of each image in your repository style/image directory:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/static/style/images/&lt;br /&gt;
&lt;br /&gt;
Note that this keeps the style-related images separate from other images used by your repository pages, such as logos.&lt;br /&gt;
&lt;br /&gt;
The images can then be used in your stylesheet.&lt;br /&gt;
&lt;br /&gt;
===Adding dynamic content===&lt;br /&gt;
&lt;br /&gt;
You can add dynamic content to the template by adding extra epc:pin elements.&lt;br /&gt;
&lt;br /&gt;
Dynamic pins can be created in the dynamic template configuration file:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/cfg.d/dynamic_template.pl&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example&lt;br /&gt;
&lt;br /&gt;
Open the template file for your repository:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/lang/en/templates/default.xml&lt;br /&gt;
&lt;br /&gt;
Add a new pin called &#039;&#039;todays_date&#039;&#039; to the template; here we add the pin next to the user&#039;s login status:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;ep_tm_page_content&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;h1 class=&amp;quot;ep_tm_pagetitle&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;epc:pin ref=&amp;quot;title&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;/h1&amp;gt;&lt;br /&gt;
        &amp;lt;epc:pin ref=&amp;quot;page&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;epc:pin ref=&amp;quot;todays_date&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open the dynamic template configuration file for your repository:&lt;br /&gt;
&lt;br /&gt;
 archives/ARCHIVEID/cfg/cfg.d/dynamic_template.pl&lt;br /&gt;
&lt;br /&gt;
Find and uncomment the function that creates the content for the dynamic pins:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
 $c-&amp;gt;{dynamic_template}-&amp;gt;{function} = sub {&lt;br /&gt;
    my( $repository, $parts ) = @_;&lt;br /&gt;
 };&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add a line which creates the content for the &#039;&#039;todays_date&#039;&#039; pin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
$c-&amp;gt;{dynamic_template}-&amp;gt;{function} = sub {&lt;br /&gt;
 my( $repository, $parts ) = @_;&lt;br /&gt;
 $parts-&amp;gt;{todays_date} = $repository-&amp;gt;make_text( scalar localtime );&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reload the dynamic template configuration:&lt;br /&gt;
&lt;br /&gt;
 bin/epadmin reload ARCHIVEID&lt;br /&gt;
&lt;br /&gt;
The date should now be displayed on your repository pages.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Branding, the next level]]&lt;/div&gt;</summary>
		<author><name>LukeWallin</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=User:LukeWallin&amp;diff=16725</id>
		<title>User:LukeWallin</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=User:LukeWallin&amp;diff=16725"/>
		<updated>2025-02-18T15:21:50Z</updated>

		<summary type="html">&lt;p&gt;LukeWallin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Employee of EPrints Services.&lt;/div&gt;</summary>
		<author><name>LukeWallin</name></author>
	</entry>
	<entry>
		<id>https://wiki.ext-9.eprints-hosting.org/w/index.php?title=EPrints_and_SELinux&amp;diff=16724</id>
		<title>EPrints and SELinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.ext-9.eprints-hosting.org/w/index.php?title=EPrints_and_SELinux&amp;diff=16724"/>
		<updated>2025-02-18T15:21:29Z</updated>

		<summary type="html">&lt;p&gt;LukeWallin: /* Changing Directory Permissions and SELinux Contexts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended to write a rough set of instructions for how to get a CentOS 7 system setup with SELinux enforcing so EPrints 3.4 (with site_lib) runs without any issues.  This guidance will be applicable to other versions of CentOS as well as RHEL and Fedora.  Furthermore, it may be applicable for enabling SELinux on other Linux operatings ystems.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;N.B. All commands described below need to be run as the root user or using sudo.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Apache Configuration ==&lt;br /&gt;
* Set the httpd user and group to Apache (rather than eprints like is currently used on our hosted CentOS 7 VMs) in &#039;&#039;&#039;/etc/httpd/conf/httpd.conf&#039;&#039;&#039;.&lt;br /&gt;
 User apache&lt;br /&gt;
 Group apache&lt;br /&gt;
&lt;br /&gt;
== System Users and Groups ==&lt;br /&gt;
* Add eprints to the apache group and apache to the eprints group (so that &#039;&#039;&#039;/etc/group&#039;&#039;&#039; for these looks something like the following, order does not matter):&lt;br /&gt;
 apache:x:48:eprints&lt;br /&gt;
 eprints:x:1000:apache&lt;br /&gt;
&lt;br /&gt;
== Changing Directory Permissions and SELinux Contexts ==&lt;br /&gt;
In general when a new EPrints root is deployed in /opt/eprints3/ this directory has been setup to have eprints as its owner and group with permissions set to 2775 (drwxrwsr-x).  This should generally ensure that all subdirectories will share the same permissions when checked out from SVN/Git and all files will get the permissions 0664 (-rw-rw-r--).  If directories of files to not have at least these permissions (with the exception of and SSL keys) then these permissions should be added.  svn:executable should be set on appropriate files so when they are checked out they should have 0775 (-rwxrwxr-x) permissions.&lt;br /&gt;
&lt;br /&gt;
What will need to be changed are the SELinux contexts of various directory.  This is the list compiled so far for the changes required.  It is assumed the command are run from the /opt/eprints3/ directory:&lt;br /&gt;
&lt;br /&gt;
(if the directory does not exist, there is no need to run that line)&lt;br /&gt;
&lt;br /&gt;
 chcon -R -t httpd_sys_content_t archives/&lt;br /&gt;
 chcon -R -t httpd_sys_content_t flavours/&lt;br /&gt;
 chcon -R -t httpd_sys_content_t ingredients/&lt;br /&gt;
 chcon -R -t httpd_sys_content_t site_lib/&lt;br /&gt;
 chcon -R -t httpd_sys_rw_content_t archives/ARCHIVENAME/cfg/&lt;br /&gt;
 chcon -R -t httpd_sys_rw_content_t archives/ARCHIVENAME/documents/&lt;br /&gt;
 chcon -R -t httpd_sys_rw_content_t archives/ARCHIVENAME/html/&lt;br /&gt;
 chcon -R -t httpd_sys_rw_content_t archives/ARCHIVENAME/var/&lt;br /&gt;
 chcon -R -t httpd_sys_rw_content_t lib/&lt;br /&gt;
 chcon -R -t httpd_sys_rw_content_t tmp/&lt;br /&gt;
 chcon -R -t httpd_sys_rw_content_t var/&lt;br /&gt;
&lt;br /&gt;
== Setting SELinux Booleans ==&lt;br /&gt;
You will definitely need to modify the SELinux boolean so that Apache (httpd) to be able to send email:&lt;br /&gt;
 setsebool -P httpd_can_sendmail 1&lt;br /&gt;
Unless you are running an absolutely vanilla repository you will almost certainly need to allow APache (httpd) to connect to the network:&lt;br /&gt;
 setsebool -P httpd_can_network_connect 1&lt;br /&gt;
In particular this should allow EPrints to connect to LDAP to authenticate user login and allow connecting to remote detabases.  There are also the following options for these two things but &#039;&#039;httpd_can_network_connect&#039;&#039; should be sufficient.&lt;br /&gt;
 setsebool -P httpd_can_connect_ldap 1&lt;br /&gt;
 setsebool -P httpd_can_network_connect_db 1&lt;br /&gt;
By default the following booleans for httpd should be set on:&lt;br /&gt;
 httpd_enable_cgi&lt;br /&gt;
 httpd_builtin_scripting&lt;br /&gt;
 httpd_graceful_shutdown&lt;br /&gt;
There is no need to turn any of these off.  However, the &#039;&#039;httpd_builtin_scripting&#039;&#039; is probably not needed as ModPerl uses &#039;&#039;httpd_enable_cgi&#039;&#039;, which definitely should not be turned off. Having &#039;&#039;httpd_graceful_shutdown&#039;&#039; is useful for reloading Apache after making changes to EPrints configuration.&lt;br /&gt;
&lt;br /&gt;
== Extra settings for OpenOffice/Coversheets ==&lt;br /&gt;
&#039;&#039;&#039;This assumes switching to use packaged LibreOffice and UNO converter as detailed [[Coversheets#LibreOffice|here]].&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* The following changes are need so that httpd can execute things for coversheets:&lt;br /&gt;
&lt;br /&gt;
 chcon -t httpd_sys_script_exec_t &amp;quot;/PATH/TO/stitchPDFs&amp;quot;&lt;br /&gt;
 setsebool -P httpd_execmem 1&lt;br /&gt;
&lt;br /&gt;
* Ensure the httpd can manage TCP port 2002 that OpenOffice listens on:&lt;br /&gt;
 semanage port -a -t http_port_t -p tcp 2002&lt;br /&gt;
&lt;br /&gt;
* Add executables and invocation lines for openoffice to /opt/eptints3/EPrints/SystemSettings.pm&lt;br /&gt;
 # invocation&lt;br /&gt;
 openoffice&#039; =&amp;gt; &#039;/usr/lib64/libreoffice/program/soffice.bin&#039;,&lt;br /&gt;
 # executable&lt;br /&gt;
 openoffice&#039; =&amp;gt; &#039;$(openoffice) &amp;quot;-accept=socket,host=localhost,port=2002;urp;StarOffice.ServiceManager&amp;quot; -norestore -nofirststartwizard -nologo -headless&#039;,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Make sure $ENV{&#039;HOME&#039;} as well as $ENV{&#039;TMPDIR&#039;} is set to /opt/eprints3/tmp/ in the appropriate session.pl&lt;br /&gt;
&lt;br /&gt;
== Extra settings for MePrints ==&lt;br /&gt;
 chcon -t httpd_sys_rw_content_t &amp;quot;/opt/eprints3/archives/ARCHIVENAME/meprints&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
I have tested and have been able to successfully install the following Bazaar plugin:&lt;br /&gt;
* Dates, Dates, Dates&lt;br /&gt;
* Generic Reporting Framework&lt;br /&gt;
* IRStats2&lt;br /&gt;
* RIOXX2&lt;br /&gt;
* REFCC (hefce_oa)&lt;br /&gt;
* Coversheets&lt;br /&gt;
* OpenOffice&lt;br /&gt;
* MePrints&lt;br /&gt;
However there are some issue with OpenOffice saying it is running when it is not and not being able to get soffice.bin actually running as a result.  You can upload and frontfile.odt file as a coversheet and this will get stored under cfg/static/coversheets/ in the archive.&lt;br /&gt;
&lt;br /&gt;
If you install MePrints you subsequently need to create archives/ARCHIVENAME/meprints directory and then run:&lt;br /&gt;
&lt;br /&gt;
 chcon -R -t httpd_sys_rw_content_t archives/ARCHIVENAME/meprints/&lt;br /&gt;
&lt;br /&gt;
Otherwise, the above Bazaar plugins need to be tested to make sure they are full functional along with other functionality of the repository like: the phrase editor, &amp;quot;edit this page&amp;quot;, storage manger, subjects editor, send test email, etc.&lt;br /&gt;
&lt;br /&gt;
== Policy file ==&lt;br /&gt;
First install the following packages:&lt;br /&gt;
 yum install checkpolicy policycoreutils-python&lt;br /&gt;
Then put all these files under /home/eprints/policy/ and run &#039;&#039;&#039;redeploy_policy.sh&#039;&#039;&#039; as the root user:&lt;br /&gt;
 bash /home/eprints/policy/redeploy_policy.sh&lt;br /&gt;
After this be sure to run &#039;&#039;&#039;restorecon&#039;&#039;&#039; on your EPrints path&lt;br /&gt;
 restorecon -R /opt/eprints3&lt;br /&gt;
&lt;br /&gt;
=== eprints.fc ===&lt;br /&gt;
It is assumed that the the path for your EPrints installation is &#039;&#039;/opt/eprints3&#039;&#039; if that is not the case or even that you have symlinked &#039;&#039;/opt/eprints3&#039;&#039; to where EPrints is actually installed the file below will not work as intended.  However you can fix this with a simple find and replace. &lt;br /&gt;
 # SELinux file contexts for EPrints&lt;br /&gt;
 &lt;br /&gt;
 /opt/eprints3/archives(/.*)?                    unconfined_u:object_r:httpd_sys_content_t:s0&lt;br /&gt;
 /opt/eprints3/flavours(/.*)?                    unconfined_u:object_r:httpd_sys_content_t:s0&lt;br /&gt;
 /opt/eprints3/ingredients(/.*)?                 unconfined_u:object_r:httpd_sys_content_t:s0&lt;br /&gt;
 /opt/eprints3/site_lib(/.*)?                    unconfined_u:object_r:httpd_sys_content_t:s0&lt;br /&gt;
 /opt/eprints3/archives/[^/]*/bin(/.*)?          unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
 /opt/eprints3/archives/[^/]*/cfg(/.*)?          unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
 /opt/eprints3/archives/[^/]*/cgi(/.*)?          unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
 /opt/eprints3/archives/[^/]*/documents(/.*)?    unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
 /opt/eprints3/archives/[^/]*/html(/.*)?         unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
 /opt/eprints3/archives/[^/]*/var(/.*)?          unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
 /opt/eprints3/lib(/.*)?                         unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
 /opt/eprints3/tmp(/.*)?                         unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
 /opt/eprints3/var(/.*)?                         unconfined_u:object_r:httpd_sys_rw_content_t:s0&lt;br /&gt;
&lt;br /&gt;
=== eprints.te ===&lt;br /&gt;
 module eprints 1.2;&lt;br /&gt;
 &lt;br /&gt;
 require {&lt;br /&gt;
         type cgroup_t;&lt;br /&gt;
         type fusefs_t;&lt;br /&gt;
         type http_port_t;&lt;br /&gt;
         type httpd_sys_content_t;&lt;br /&gt;
         type httpd_sys_rw_content_t;&lt;br /&gt;
         type httpd_sys_script_exec_t;&lt;br /&gt;
         type httpd_sys_script_t;&lt;br /&gt;
         type httpd_t;&lt;br /&gt;
         type init_t;&lt;br /&gt;
         type modules_object_t;&lt;br /&gt;
         type mysqld_db_t;&lt;br /&gt;
         type mysqld_etc_t;&lt;br /&gt;
         type mysqld_t;&lt;br /&gt;
         type mysqld_var_run_t;&lt;br /&gt;
         type nrpe_t;&lt;br /&gt;
         type shadow_t;&lt;br /&gt;
         type smtp_port_t;&lt;br /&gt;
         type unconfined_service_t;&lt;br /&gt;
         type var_run_t;&lt;br /&gt;
         class dir { add_name create getattr open read remove_name rmdir search setattr write };&lt;br /&gt;
         class file { create execute execute_no_trans getattr ioctl map open read rename unlink write };&lt;br /&gt;
         class lnk_file { getattr read };&lt;br /&gt;
         class sock_file { write };&lt;br /&gt;
         class tcp_socket{ name_connect };&lt;br /&gt;
         class unix_stream_socket { connectto };&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 # Required by the HTTP webserver&lt;br /&gt;
 allow httpd_t http_port_t:tcp_socket { name_connect };&lt;br /&gt;
 allow httpd_t httpd_sys_content_t:dir { add_name create remove_name setattr write };&lt;br /&gt;
 allow httpd_t httpd_sys_content_t:file { create rename unlink write };&lt;br /&gt;
 allow httpd_t smtp_port_t:tcp_socket { name_connect };&lt;br /&gt;
 allow httpd_t unconfined_service_t:dir { getattr };&lt;br /&gt;
 &lt;br /&gt;
 # Requiired by init processes&lt;br /&gt;
 allow init_t httpd_sys_content_t:file { create execute execute_no_trans ioctl open read };&lt;br /&gt;
 allow init_t httpd_sys_rw_content_t:dir { add_name remove_name };&lt;br /&gt;
 allow init_t httpd_sys_rw_content_t:file { ioctl open read unlink write };&lt;br /&gt;
 allow init_t mysqld_t:unix_stream_socket { connectto };&lt;br /&gt;
 &lt;br /&gt;
 # Required for Icinga NRPE checks&lt;br /&gt;
 allow nrpe_t httpd_sys_content_t:dir { read };&lt;br /&gt;
 allow nrpe_t httpd_sys_content_t:file { getattr };&lt;br /&gt;
 allow nrpe_t httpd_sys_rw_content_t:dir { search };&lt;br /&gt;
 allow nrpe_t httpd_sys_rw_content_t:file { getattr open read };&lt;br /&gt;
 allow nrpe_t modules_object_t:dir { search };&lt;br /&gt;
 allow nrpe_t modules_object_t:file { getattr };&lt;br /&gt;
 allow nrpe_t modules_object_t:lnk_file { getattr read };&lt;br /&gt;
 allow nrpe_t mysqld_t:unix_stream_socket { connectto };&lt;br /&gt;
 allow nrpe_t mysqld_db_t:dir { search };&lt;br /&gt;
 allow nrpe_t mysqld_etc_t:dir { getattr open read search };&lt;br /&gt;
 allow nrpe_t mysqld_etc_t:file { getattr open read };&lt;br /&gt;
 allow nrpe_t mysqld_var_run_t:sock_file { write }; &lt;br /&gt;
 &lt;br /&gt;
 # Only needed for coversheets, considering commenting out otherwise.&lt;br /&gt;
 allow httpd_t shadow_t:file { getattr open read };&lt;br /&gt;
 &lt;br /&gt;
 # Only needed for Shibboleth authentication, consider commenting out otherwise.&lt;br /&gt;
 allow httpd_t var_run_t:sock_file { write };&lt;br /&gt;
 &lt;br /&gt;
 # Only needed for SSH FuseFS, consider commeting out otherwise.&lt;br /&gt;
 allow httpd_t fusefs_t:dir { add_name create read remove_name rmdir setattr write };&lt;br /&gt;
 allow httpd_t fusefs_t:file { create getattr ioctl map open read rename unlink write };&lt;br /&gt;
&lt;br /&gt;
=== redeploy_policy.sh ===&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 &lt;br /&gt;
 rm -f eprints.mod eprints.pp &lt;br /&gt;
 &lt;br /&gt;
 # Build the policy package (.pp) file from type enforcement (.te) and file contexts (.fc) files.&lt;br /&gt;
 checkmodule -M -m -o eprints.mod eprints.te&lt;br /&gt;
 semodule_package -o eprints.pp -m eprints.mod -f eprints.fc&lt;br /&gt;
 &lt;br /&gt;
 # Install it.&lt;br /&gt;
 semodule -i eprints.pp&lt;/div&gt;</summary>
		<author><name>LukeWallin</name></author>
	</entry>
</feed>