commit
c2eb423c1c
18 changed files with 246 additions and 0 deletions
@ -0,0 +1,7 @@ |
||||
#!/usr/bin/perl -w |
||||
|
||||
use esmith::Build::CreateLinks qw(:all); |
||||
|
||||
templates2events("/etc/mozilla-sync-server/mozilla-sync-server.conf", qw(webapps-update bootstrap-console-save)); |
||||
templates2events("/etc/e-smith/sql/init/mozillasyncdb", qw(webapps-update bootstrap-console-save)); |
||||
|
@ -0,0 +1 @@ |
||||
mozillasyncdb |
@ -0,0 +1 @@ |
||||
mozillasync |
@ -0,0 +1 @@ |
||||
enabled |
@ -0,0 +1 @@ |
||||
service |
@ -0,0 +1,27 @@ |
||||
{ |
||||
my $rec = $DB->get('mozilla-sync') |
||||
|| $DB->new_record('mozilla-sync', {type => 'service'}); |
||||
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; |
||||
# 57 bytes is a full line of Base64 coding, and contains |
||||
# 456 bits of randomness - given a perfectly random /dev/random |
||||
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); |
||||
} |
||||
} |
@ -0,0 +1,43 @@ |
||||
{ |
||||
my $db = ${'mozilla-sync'}{'DbName'} || 'mozillasyncdb'; |
||||
my $user = ${'mozilla-sync'}{'DbUser'} || 'mozillasync'; |
||||
my $pass = ${'mozilla-sync'}{'DbPassword'} || 'secret'; |
||||
|
||||
$OUT .= <<"END"; |
||||
#! /bin/sh |
||||
if [ ! -d /var/lib/mysql/$db ]; then |
||||
/usr/bin/mysql -e 'create database $db' |
||||
fi |
||||
|
||||
/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 |
||||
END |
||||
} |
@ -0,0 +1,2 @@ |
||||
# Load mod_wsgi for Mozilla Sync Server |
||||
LoadModule wsgi_module modules/python26-mod_wsgi.so |
@ -0,0 +1,27 @@ |
||||
{ |
||||
|
||||
if ((${'mozilla-sync'}{'status'} || 'disabled') eq 'enabled') { |
||||
my $access = ((${'mozilla-sync'}{'access'} || 'private') eq 'public') ? "all":"$localAccess $externalSSLAccess"; |
||||
|
||||
$OUT .=<<"EOF"; |
||||
|
||||
WSGIDaemonProcess localhost user=www group=www processes=2 threads=25 |
||||
WSGIScriptAlias /mozilla-sync /usr/share/mozilla-sync-server/mozilla-sync-server.wsgi |
||||
WSGISocketPrefix /var/run/mozilla-sync-server.pid |
||||
|
||||
<Location /mozilla-sync/> |
||||
Order deny,allow |
||||
Deny from all |
||||
Allow from $access |
||||
SSLRequireSSL on |
||||
|
||||
WSGIProcessGroup localhost |
||||
WSGIPassAuthorization On |
||||
</Location> |
||||
|
||||
EOF |
||||
} |
||||
else{ |
||||
$OUT .= "# Mozilla Sync server is disabled"; |
||||
} |
||||
} |
@ -0,0 +1,10 @@ |
||||
{ |
||||
|
||||
our $db = ${'mozilla-sync'}{'DbName'} || 'mozillasyncdb'; |
||||
our $user = ${'mozilla-sync'}{'DbUser'} || 'mozillasync'; |
||||
our $pass = ${'mozilla-sync'}{'DbPassword'} || 'secret'; |
||||
our $quota = ${'mozilla-sync'}{'UserQuota'} || '102400'; |
||||
our $useQuota = ($quota =~ m/^\d+$/) ? 'true':'false'; |
||||
|
||||
|
||||
} |
@ -0,0 +1,3 @@ |
||||
[global] |
||||
clean_shutdown = false |
||||
|
@ -0,0 +1,7 @@ |
||||
|
||||
[captcha] |
||||
use = false |
||||
public_key = 6Le8OLwSAAAAAK-wkjNPBtHD4Iv50moNFANIalJL |
||||
private_key = 6Le8OLwSAAAAAEKoqfc-DmoF4HNswD7RNdGwxRij |
||||
use_ssl = false |
||||
|
@ -0,0 +1,20 @@ |
||||
|
||||
{ |
||||
|
||||
$OUT .=<<"EOF"; |
||||
|
||||
[storage] |
||||
backend = syncstorage.storage.sql.SQLStorage |
||||
sqluri = mysql://$user:$pass@localhost/$db |
||||
standard_collections = false |
||||
use_quota = $useQuota |
||||
quota_size = $quota |
||||
pool_size = 20 |
||||
pool_recycle = 3600 |
||||
reset_on_return = true |
||||
display_config = true |
||||
create_tables = true |
||||
|
||||
EOF |
||||
|
||||
} |
@ -0,0 +1,14 @@ |
||||
{ |
||||
|
||||
$OUT .=<<"EOF"; |
||||
|
||||
[auth] |
||||
backend = services.user.sql.SQLUser |
||||
sqluri = mysql://$user:$pass@localhost/$db |
||||
pool_size = 20 |
||||
pool_recycle = 3600 |
||||
create_tables = true |
||||
|
||||
EOF |
||||
|
||||
} |
@ -0,0 +1,10 @@ |
||||
{ |
||||
|
||||
$OUT .=<<"EOF"; |
||||
|
||||
[nodes] |
||||
fallback_node = https://$SystemName.$DomainName/mozilla-sync/ |
||||
|
||||
EOF |
||||
|
||||
} |
@ -0,0 +1,6 @@ |
||||
|
||||
[smtp] |
||||
host = localhost |
||||
port = 25 |
||||
sender = weave@{$DomainName} |
||||
|
@ -0,0 +1,9 @@ |
||||
|
||||
[cef] |
||||
use = true |
||||
file = syslog |
||||
vendor = mozilla |
||||
version = 0 |
||||
device_version = 1.3 |
||||
product = weave |
||||
|
@ -0,0 +1,57 @@ |
||||
# Authority: vip-ire |
||||
# Name: Daniel Berteaud |
||||
|
||||
%define name smeserver-mozilla-sync-server |
||||
%define version 0.0.1 |
||||
%define release 0.beta1 |
||||
Summary: sme server integration of Firefox Sync Server |
||||
Name: %{name} |
||||
Version: %{version} |
||||
Release: %{release}%{?dist} |
||||
License: GNU GPL |
||||
URL: https://wiki.mozilla.org/Firefox_Sync |
||||
Group: SMEserver/addon |
||||
Source: %{name}-%{version}.tar.gz |
||||
|
||||
BuildArchitectures: noarch |
||||
BuildRequires: e-smith-devtools |
||||
BuildRoot: /var/tmp/%{name}-%{version} |
||||
Requires: e-smith-base >= 5.2.0-56 |
||||
Requires: mozilla-sync-server |
||||
Requires: python26-wsgiproxy |
||||
Requires: python26-mysqldb |
||||
Requires: smeserver-webapps-common |
||||
|
||||
%description |
||||
smserver integration of Firefox Sync Server. |
||||
The Firefox Sync Server (formelly known as Weave) lets you |
||||
sync history, settings, passwords, tabs etc... between several |
||||
devices or computers |
||||
|
||||
%changelog |
||||
* Sun Sep 2 2012 Daniel Berteaud <daniel@firewall-services.com> 0.0.1 |
||||
- 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 |
||||
echo "%doc CHANGELOG.git" >> %{name}-%{version}-filelist |
||||
|
||||
%files -f %{name}-%{version}-filelist |
||||
%defattr(-,root,root) |
||||
|
||||
%clean |
||||
rm -rf $RPM_BUILD_ROOT |
||||
|
||||
|
||||
%postun |
||||
|
Loading…
Reference in new issue