Initial commit

This commit is contained in:
Daniel Berteaud 2012-12-04 11:48:45 +01:00
commit f211f5ede4
11 changed files with 271 additions and 0 deletions

11
createlinks Normal file
View File

@ -0,0 +1,11 @@
#!/usr/bin/perl -w
use esmith::Build::CreateLinks qw(:all);
# Templates to expand
templates2events("/etc/e-smith/sql/init/ownclouddb", qw(bootstrap-console-save webapps-update));
templates2events("/etc/owncloud/autoconfig.php", qw(bootstrap-console-save webapps-update));
# PHP header and footer
safe_symlink("/etc/e-smith/templates-default/template-begin-php", "root/etc/e-smith/templates/etc/owncloud/autoconfig.php/template-begin");
safe_symlink("/etc/e-smith/templates-default/template-end-php", "root/etc/e-smith/templates/etc/owncloud/autoconfig.php/template-end");

View File

@ -0,0 +1 @@
webapp

View File

@ -0,0 +1 @@
enabled

View File

@ -0,0 +1 @@
webapp

View File

@ -0,0 +1,25 @@
{
my $rec = $DB->get('owncloud')
|| $DB->new_record('owncloud', {type => 'webapp'});
my $pw = $rec->prop('DbPassword');
if (not $pw or length($pw) < 57){
use MIME::Base64 qw(encode_base64);
$pw = "not set due to error";
if ( open( RANDOM, "/dev/urandom" ) ){
my $buf;
if ( read( RANDOM, $buf, 57 ) != 57 ){
warn("Short read from /dev/random: $!");
}
else{
$pw = encode_base64($buf);
chomp $pw;
}
close RANDOM;
}
else{
warn "Could not open /dev/urandom: $!";
}
$rec->set_prop('DbPassword', $pw);
}
}

View File

@ -0,0 +1 @@
PERMS=0750

View File

@ -0,0 +1,84 @@
{
use esmith::util;
my $ldapBase = esmith::util::ldapBase ($DomainName);
my $db = $owncloud{'DbName'} || 'owncloud';
my $user = $owncloud{'DbUser'} || 'owncloud';
my $pass = $owncloud{'DbPassword'} || 'owncloud';
$OUT .= <<"END";
#! /bin/sh
if [ ! -d /var/lib/mysql/$db ]; then
# Create the database
/usr/bin/mysql -e 'create database $db'
fi
# Update the owncloud mysql user and password
/usr/bin/mysql <<EOF
USE mysql;
REPLACE INTO user (
host,
user,
password)
VALUES (
'localhost',
'$user',
PASSWORD ('$pass'));
REPLACE INTO db (
host,
db,
user,
select_priv, insert_priv, update_priv, delete_priv,
create_priv, alter_priv, index_priv, drop_priv, create_tmp_table_priv,
grant_priv, lock_tables_priv, references_priv)
VALUES (
'localhost',
'$db',
'$user',
'Y', 'Y', 'Y', 'Y',
'Y', 'Y', 'Y', 'Y', 'Y',
'N', 'Y', 'Y');
FLUSH PRIVILEGES;
EOF
# Call owncloud URL, it will trigger the install the first time
wget -O /dev/null --no-check-certificate https://$SystemName.$DomainName/owncloud 2>&1 > /dev/null
# Now Configure owncloud to use LDAP
/usr/bin/mysql <<EOF
USE $db;
REPLACE INTO appconfig (appid, configkey, configvalue) VALUES
('user_ldap', 'ldap_base', '$ldapBase'),
('user_ldap', 'ldap_base_groups', 'ou=Groups,$ldapBase'),
('user_ldap', 'ldap_base_users', 'ou=Users,$ldapBase');
INSERT IGNORE INTO appconfig (appid, configkey, configvalue) VALUES
('user_ldap', 'enabled', 'yes'),
('user_ldap', 'ldap_cache_ttl', '1'),
('user_ldap', 'ldap_display_name', 'uid'),
('user_ldap', 'ldap_email_attr', 'mail'),
('user_ldap', 'ldap_group_display_name', 'cn'),
('user_ldap', 'ldap_group_filter', 'objectClass=mailboxRelatedObject'),
('user_ldap', 'ldap_group_member_assoc_attribute', 'memberUid'),
('user_ldap', 'ldap_host', '127.0.0.1'),
('user_ldap', 'ldap_login_filter', 'uid=%uid'),
('user_ldap', 'ldap_userlist_filter', 'objectClass=sambaSamAccount'),
('user_ldap', 'ldap_uuid_attribute', 'entryuuid'),
('user_ldap', 'types', 'authentication');
UPDATE IGNORE group_user group_user SET uid='admin' where uid='owncloud';
DELETE FROM users where uid='owncloud';
EOF
END
}

View File

@ -0,0 +1,53 @@
{
if (($owncloud{'status'} || 'disabled') eq 'enabled'){
my $access = (($owncloud{'access'} || 'private') eq 'public') ? 'all':"$localAccess $externalSSLAccess";
my $alias = (($owncloud{'AliasOnPrimary'} || 'enabled') eq 'disabled') ?
'':"Alias /owncloud /usr/share/owncloud\n".
"Alias /oc-apps /var/lib/owncloud/apps";
$OUT .=<<"HERE";
# owncloud config
$alias
<Directory /usr/share/owncloud>
Options None
Options +FollowSymLinks
AllowOverride All
# PHP tuning
AddType application/x-httpd-php .php
php_admin_value open_basedir /usr/share/owncloud:/var/lib/owncloud/:/etc/owncloud:/var/log/owncloud.log
php_admin_value memory_limit 512M
php_admin_flag allow_url_fopen on
php_admin_value max_execution_time 3600
php_admin_value max_post_size 2047M
php_admin_value upload_max_filesize 2047M
php_admin_value upload_tmp_dir /var/lib/owncloud/tmp
php_admin_value session.save_path /var/lib/owncloud/sessions
# Access restriction
order deny,allow
deny from all
allow from $access
</Directory>
<Directory /var/lib/owncloud/apps>
Options None
AddType application/x-httpd-php .php
php_admin_value open_basedir /usr/share/owncloud:/var/lib/owncloud/:/etc/owncloud:/var/log/owncloud.log
php_admin_value memory_limit 512M
php_admin_flag allow_url_fopen on
php_admin_value max_execution_time 3600
order deny,allow
deny from all
allow from $access
</Directory>
HERE
}
else {
$OUT .= "# OwnCloud is disabled\n";
}
}

View File

@ -0,0 +1,13 @@
{
my $sslport = $modSSL{'TCPPort'} || '443';
my $status = $owncloud{'status'} || 'enabled';
my $alias = $owncloud{'AliasOnPrimary'} || 'enabled';
if (($port ne $sslport) && ($status eq 'enabled') && ($alias eq 'enabled')){
## Redirect Web Address to Secure Address
$OUT .= " RewriteEngine on\n";
$OUT .= " RewriteRule ^/owncloud(/.*|\$) https://%{HTTP_HOST}/owncloud\$1 \[L,R\]\n";
}
}

View File

@ -0,0 +1,23 @@
{
my $dbname = $owncloud{'DbName'} || 'owncloud';
my $dbuser = $owncloud{'DbUser'} || 'owncloud';
my $dbpass = $owncloud{'DbPassword'} || 'owncloud';
$OUT .=<<"EOF";
\$AUTOCONFIG = array (
'adminlogin' => 'owncloud',
'adminpass' => 'owncloud',
'directory' => '/var/lib/owncloud/data',
'dbtype' => 'mysql',
'dbname' => '$dbname',
'dbuser' => '$dbuser',
'dbpass' => '$dbpass',
'dbhost' => '127.0.0.1',
'dbtableprefix' => '',
);
EOF
}

58
smeserver-owncloud.spec Normal file
View File

@ -0,0 +1,58 @@
# Authority: vip-ire
# Name: Daniel Berteaud
%define name smeserver-owncloud
%define version 0.0.1
%define release 1.beta5
Summary: sme server integration of owncloud
Name: %{name}
Version: %{version}
Release: %{release}%{?dist}
License: GNU GPL version 2
URL: http://www.zabbix.com/
Group: SMEserver/addon
Source: %{name}-%{version}.tar.gz
BuildArchitectures: noarch
BuildRequires: e-smith-devtools
BuildRoot: /var/tmp/%{name}-%{version}
Requires: e-smith-release
Requires: owncloud >= 4.5.3
Requires: smeserver-webapps-common
AutoReqProv: no
%description
Integration of owncloud on SME Server
%changelog
* Tue Dec 4 2012 Daniel Berteaud <daniel@firewall-services.com> 0.0.1-1.sme
- Initial release
%prep
%setup
%build
perl ./createlinks
%install
rm -rf $RPM_BUILD_ROOT
(cd root ; find . -depth -print | cpio -dump $RPM_BUILD_ROOT)
rm -f %{name}-%{version}-filelist
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \
> %{name}-%{version}-filelist
%files -f %{name}-%{version}-filelist
%defattr(-,root,root)
%clean
rm -rf $RPM_BUILD_ROOT
%postun
#uninstall
if [ $1 = 0 ] ; then
/sbin/e-smith/expand-template /etc/httpd/conf/httpd.conf
/usr/bin/sv h /service/httpd-e-smith
fi
true