Commit 9878019a authored by Alain Takoudjou's avatar Alain Takoudjou

Merge branch 'davstorage-ajaxplorer' into grid-computing

parents 26db4381 31c3b8b7
...@@ -21,9 +21,9 @@ md5sum = ffee70a111fd07372982b0550bbb14b7 ...@@ -21,9 +21,9 @@ md5sum = ffee70a111fd07372982b0550bbb14b7
[apr-util] [apr-util]
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
version = 1.5.1 version = 1.5.2
url = http://mir2.ovh.net/ftp.apache.org/dist/apr/apr-util-${:version}.tar.bz2 url = http://mir2.ovh.net/ftp.apache.org/dist/apr/apr-util-${:version}.tar.bz2
md5sum = 9c1db8606e520f201c451ec9a0b095f6 md5sum = 89c1348aa79e898d7c34a6206311c9c2
[apache] [apache]
# inspired on http://old.aclark.net/team/aclark/blog/a-lamp-buildout-for-wordpress-and-other-php-apps/ # inspired on http://old.aclark.net/team/aclark/blog/a-lamp-buildout-for-wordpress-and-other-php-apps/
......
...@@ -11,9 +11,43 @@ parts = postfix ...@@ -11,9 +11,43 @@ parts = postfix
[postfix] [postfix]
recipe = slapos.recipe.cmmi recipe = slapos.recipe.cmmi
url = ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-2.8.3.tar.gz url = http://cdn.postfix.johnriley.me/mirrors/postfix-release/official/postfix-2.10.0.tar.gz
md5sum = b3922ededd3fd6051f759e58a4ada3ae #md5sum = b3922ededd3fd6051f759e58a4ada3ae
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
configure-command = make configure-command = make
configure-options = makefiles CCARGS='-DUSE_TLS -DHAS_PCRE -DHAS_DB -I${libdb:location}/include -I${pcre:location}/include -I${openssl:location}/include' AUXLIBS='-L${openssl:location}/lib -L${pcre:location}/lib -L${libdb:location}/lib -lssl -lpcre -ldb -lcrypto -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${pcre:location}/lib -Wl,-rpath=${libdb:location}/lib' configure-options = makefiles CCARGS='-DUSE_TLS -DHAS_PCRE -DHAS_DB -I${libdb:location}/include -I${pcre:location}/include -I${openssl:location}/include' AUXLIBS='-L${openssl:location}/lib -L${pcre:location}/lib -L${libdb:location}/lib -lssl -lpcre -ldb -lcrypto -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${pcre:location}/lib -Wl,-rpath=${libdb:location}/lib'
make-targets = non-interactive-package install_root=${:location} make-targets = non-interactive-package install_root=${:location}
patch-options = -p1
patches =
${initgroups.patch:location}/${initgroups.patch:filename}
${session.patch:location}/${session.patch:filename}
${noroot.patch:location}/${noroot.patch:filename}
${libdb.patch:location}/${libdb.patch:filename}
[initgroups.patch]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
filename = initgroups.patch
download-only = true
md5sum = b1e509d978c566d1b4b5c8415dfe2f91
[session.patch]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
filename = session.patch
download-only = true
md5sum = 41af4ac75d9bafc85385f0688727bf45
[noroot.patch]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
filename = noroot.patch
download-only = true
md5sum = 2e73b29c4e07bc7c933b62ab5fae20de
[libdb.patch]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/${:filename}
filename = libdb.patch
download-only = true
#md5sum = 9ecec894597f35a38bdaded881af561b
--- a/src/util/chroot_uid.c
+++ b/src/util/chroot_uid.c
@@ -57,8 +57,8 @@ void chroot_uid(const char *root_dir, const char *user_name)
gid = pwd->pw_gid;
if (setgid(gid) < 0)
msg_fatal("setgid(%ld): %m", (long) gid);
- if (initgroups(user_name, gid) < 0)
- msg_fatal("initgroups: %m");
+ /*if (initgroups(user_name, gid) < 0)
+ msg_fatal("initgroups: %m");*/
}
/*
diff --git a/makedefs b/makedefs
index 93b5949..9209a61 100644
--- a/makedefs
+++ b/makedefs
@@ -290,7 +290,6 @@ case "$SYSTEM.$RELEASE" in
# by including <db.h> and by linking with -ldb
echo "No <db.h> include file found." 1>&2
echo "Install the appropriate db*-devel package first." 1>&2
- exit 1
fi
SYSLIBS="-ldb"
;;
@@ -361,7 +360,6 @@ EOF
# by including <db.h> and by linking with -ldb
echo "No <db.h> include file found." 1>&2
echo "Install the appropriate db*-devel package first." 1>&2
- exit 1
fi
SYSLIBS="-ldb"
;;
--- a/src/util/set_ugid.c
+++ b/src/util/set_ugid.c
@@ -44,7 +44,7 @@
void set_ugid(uid_t uid, gid_t gid)
{
- int saved_errno = errno;
+/* int saved_errno = errno;
if (geteuid() != 0)
if (seteuid(0) < 0)
@@ -58,4 +58,4 @@ void set_ugid(uid_t uid, gid_t gid)
if (msg_verbose > 1)
msg_info("setugid: uid %ld gid %ld", (long) uid, (long) gid);
errno = saved_errno;
-}
+*/}
--- a/src/util/set_eugid.c
+++ b/src/util/set_eugid.c
@@ -53,7 +53,7 @@
void set_eugid(uid_t euid, gid_t egid)
{
- int saved_errno = errno;
+/* int saved_errno = errno;
if (geteuid() != 0)
if (seteuid(0))
@@ -67,4 +67,4 @@ void set_eugid(uid_t euid, gid_t egid)
if (msg_verbose)
msg_info("set_eugid: euid %ld egid %ld", (long) euid, (long) egid);
errno = saved_errno;
-}
+*/}
--- a/src/postfix/postfix.c
+++ b/src/postfix/postfix.c
@@ -448,12 +448,12 @@ int main(int argc, char **argv)
* privileges for selected operations. That's right - it takes privileges
* to toss privileges.
*/
- if (getuid() != 0) {
+ /*if (getuid() != 0) {
msg_error("to submit mail, use the Postfix sendmail command");
msg_fatal("the postfix command is reserved for the superuser");
}
if (unsafe() != 0)
- msg_fatal("the postfix command must not run as a set-uid process");
+ msg_fatal("the postfix command must not run as a set-uid process");*/
/*
* Parse switches.
--- a/src/global/mail_params.c
+++ b/src/global/mail_params.c
@@ -709,7 +709,9 @@ void mail_params_init()
check_default_privs();
check_mail_owner();
check_sgid_group();
+ /*
check_overlap();
+ */
#ifdef HAS_DB
dict_db_cache_size = var_db_read_buf;
#endif
--- a/src/master/master.c
+++ b/src/master/master.c
@@ -315,10 +315,10 @@ int main(int argc, char **argv)
* privileges for selected operations. That's right - it takes privileges
* to toss privileges.
*/
- if (getuid() != 0)
+ /*if (getuid() != 0)
msg_fatal("the master command is reserved for the superuser");
if (unsafe() != 0)
- msg_fatal("the master command must not run as a set-uid process");
+ msg_fatal("the master command must not run as a set-uid process");*/
/*
* Process JCL.
--- a/src/postsuper/postsuper.c
+++ b/src/postsuper/postsuper.c
@@ -1150,10 +1150,10 @@ int main(int argc, char **argv)
* the secondary groups, the process environment, and so on. Otherwise,
* accidents can happen. If not with Postfix, then with other software.
*/
- if (unsafe() != 0)
+ /*if (unsafe() != 0)
msg_fatal("this postfix command must not run as a set-uid process");
if (getuid())
- msg_fatal("use of this command is reserved for the superuser");
+ msg_fatal("use of this command is reserved for the superuser");*/
/*
* Parse JCL.
--- a/src/master/master.c
+++ b/src/master/master.c
@@ -392,8 +392,10 @@ int main(int argc, char **argv)
* all MTA processes cleanly. Give up if we can't separate from our
* parent process. We're not supposed to blow away the parent.
*/
+ /*
if (debug_me == 0 && master_detach != 0 && setsid() == -1 && getsid(0) != getpid())
msg_fatal("unable to set session and process group ID: %m");
+ */
/*
* Make some room for plumbing with file descriptors. XXX This breaks
...@@ -84,6 +84,7 @@ setup(name=name, ...@@ -84,6 +84,7 @@ setup(name=name,
'certificate_authority = slapos.recipe.certificate_authority:Recipe', 'certificate_authority = slapos.recipe.certificate_authority:Recipe',
'certificate_authority.request = slapos.recipe.certificate_authority:Request', 'certificate_authority.request = slapos.recipe.certificate_authority:Request',
'check_page_content = slapos.recipe.check_page_content:Recipe', 'check_page_content = slapos.recipe.check_page_content:Recipe',
'check_page_content_phantomjs = slapos.recipe.check_page_content:PhantomJSRecipe',
'check_port_listening = slapos.recipe.check_port_listening:Recipe', 'check_port_listening = slapos.recipe.check_port_listening:Recipe',
'check_url_available = slapos.recipe.check_url_available:Recipe', 'check_url_available = slapos.recipe.check_url_available:Recipe',
'cloud9 = slapos.recipe.cloud9:Recipe', 'cloud9 = slapos.recipe.cloud9:Recipe',
......
...@@ -49,3 +49,26 @@ class Recipe(GenericBaseRecipe): ...@@ -49,3 +49,26 @@ class Recipe(GenericBaseRecipe):
) )
return [promise] return [promise]
class PhantomJSRecipe(GenericBaseRecipe):
"""
Create script for checking page content at url with js script
"""
def install(self):
config = {
'script-path': self.options['script-path'].strip(),
'dash-path': self.options['dash-path'].strip(),
'phantomjs-path': self.options['phantomjs-path'].strip(),
'phantomjs-options': self.options.get('phantomjs-options','')
}
promise = self.createExecutable(
self.options['path'].strip(),
self.substituteTemplate(
self.getTemplateFilename('check_page_content_phantomjs.in'),
config
)
)
return [promise]
\ No newline at end of file
#!%(dash-path)s
# BEWARE: This file is operated by slapgrid
# BEWARE: It will be overwritten automatically
%(phantomjs-path)s %(phantomjs-options)s %(script-path)s
if [ $? != 0 ]; then
echo "PhantomJS script returned non zero output" >&2
exit 1
fi
\ No newline at end of file
...@@ -34,9 +34,6 @@ from slapos.recipe.librecipe import GenericBaseRecipe ...@@ -34,9 +34,6 @@ from slapos.recipe.librecipe import GenericBaseRecipe
class Recipe(GenericBaseRecipe): class Recipe(GenericBaseRecipe):
def _options(self, options):
options['password'] = self.generatePassword()
def install(self): def install(self):
path_list = [] path_list = []
......
...@@ -13,11 +13,16 @@ extends = ...@@ -13,11 +13,16 @@ extends =
../../component/lxml-python/buildout.cfg ../../component/lxml-python/buildout.cfg
../../component/python-2.7/buildout.cfg ../../component/python-2.7/buildout.cfg
../../component/gzip/buildout.cfg ../../component/gzip/buildout.cfg
../../component/postfix/buildout.cfg
../../component/phantomjs/buildout.cfg
find-links += find-links +=
http://www.nexedi.org/static/packages/source/slapos.buildout/ http://www.nexedi.org/static/packages/source/slapos.buildout/
http://www.nexedi.org/static/packages/source/ http://www.nexedi.org/static/packages/source/
http://www.nexedi.org/static/packages/source/hexagonit.recipe.download/ http://www.nexedi.org/static/packages/source/hexagonit.recipe.download/
# SlapOS eggs directory can be used (for libnetworkcache especially)
# when there is no access to pypi
/opt/slapos/eggs/
# Use only quite well working sites. # Use only quite well working sites.
allow-hosts += allow-hosts +=
...@@ -37,9 +42,23 @@ allow-hosts += ...@@ -37,9 +42,23 @@ allow-hosts +=
www.owlfish.com www.owlfish.com
parts = parts =
postfix
apache-php apache-php
application application
template template
bootstrap-conf
boot-conf-manifest
configuration-js-template
core-ajaxplorer-manifest
mailer-plugin-template
share-url-generation-template
postfix-service-template
sendmail-script-template
postfix-conf-template
postfix-master-conf-template
test-ajaxplorer-js-template
test-sendmail-php-template
postfix-promise-template
lxml-python lxml-python
eggs eggs
instance-recipe-egg instance-recipe-egg
...@@ -61,8 +80,8 @@ eggs = ${instance-recipe:egg} ...@@ -61,8 +80,8 @@ eggs = ${instance-recipe:egg}
[application] [application]
recipe = hexagonit.recipe.download recipe = hexagonit.recipe.download
url = http://garr.dl.sourceforge.net/project/ajaxplorer/ajaxplorer/dev-channel/4.3.4/ajaxplorer-core-4.3.4.tar.gz url = http://downloads.sourceforge.net/project/ajaxplorer/ajaxplorer/stable-channel/5.0.2/ajaxplorer-core-5.0.2.tar.gz
md5sum = 2f2ff8bda7bbe841ef0e870c724eb74f md5sum = ac5490921b877cd99ba302938b3cfbc7
strip-top-level-dir = true strip-top-level-dir = true
[template] [template]
...@@ -76,9 +95,117 @@ mode = 0644 ...@@ -76,9 +95,117 @@ mode = 0644
[instance-davstorage] [instance-davstorage]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-davstorage.cfg url = ${:_profile_base_location_}/instance-davstorage.cfg
md5sum = 699ecf4678386667f58a3391bab7af0f md5sum = 740875e43048b25278e0ebbfa9b56af7
output = ${buildout:directory}/template-davstorage.cfg output = ${buildout:directory}/template-davstorage.cfg
mode = 0644 mode = 0644
[bootstrap-conf]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/templates/${:filename}
filename = bootstrap_conf.php
translation = fr_FR.UTF-8
output = ${application:location}/conf/${:filename}
mode = 0644
md5sum = f8bbf14507f9c22d7b69696345e57c2e
[boot-conf-manifest]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/templates/${:filename}
filename = boot-conf-manifest.xml.in
language = fr
mode = 0644
md5sum = 856e39c6bf42dd28a593c45b966b97d1
output = ${application:location}/plugins/boot.conf/manifest.xml
[core-ajaxplorer-manifest]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/templates/${:filename}
filename = core-ajaxplorer-manifest.xml.in
language = fr
php-cli-location = ${apache-php:location}/bin/php
mode = 0644
md5sum = ebdd3789aa65ed33130481c487018d6e
output = ${application:location}/plugins/core.ajaxplorer/manifest.xml
[configuration-js-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = configuration.js
mode = 0644
md5sum = 792917aea5bafdc9a973a9071ae89ec6
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[mailer-plugin-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = class.phpmailer-lite.php
mode = 0644
md5sum = 4649b152e1f639873a03149eccc70aaf
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[share-url-generation-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = class.AJXP_Utils.php
mode = 0644
md5sum = f681c0a0a17f4b2a0896b952e53239ed
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[postfix-service-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = postfix.in
mode = 0755
md5sum = 9f136d6c217f26e06f7437ceeb7b0c42
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[sendmail-script-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = sendmail.in
mode = 0755
md5sum = d2ea9ecfd653dcb0bd06c06bcaabc5df
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[postfix-conf-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = main.cf.in
mode = 0644
md5sum = a72b679c523f587422f95d295de27876
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[postfix-master-conf-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = master.cf.in
mode = 0644
md5sum = de33aa9ef530ef3c7661b914d2d1fbef
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[test-ajaxplorer-js-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = test-boot.js
mode = 0644
md5sum = a6a98bf3c9fcb6c330dea513d13eb054
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[test-sendmail-php-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = test-sendmail.php
mode = 0644
md5sum = ab19eff22b50fbab18879f7b96ae7e8e
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[postfix-promise-template]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = test-postfix.sh.in
mode = 0644
md5sum = d725575994cd871e6c6c419603605fe5
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[lxml-python] [lxml-python]
python = python2.7 python = python2.7
...@@ -31,64 +31,3 @@ update-command = ${:command} ...@@ -31,64 +31,3 @@ update-command = ${:command}
command = command =
grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link && grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link &&
grep parts ${buildout:develop-eggs-directory}/slapos.toolbox.egg-link grep parts ${buildout:develop-eggs-directory}/slapos.toolbox.egg-link
[versions]
zc.buildout = 1.6.0-dev-SlapOS-002
Jinja2 = 2.6
Werkzeug = 0.8.3
buildout-versions = 1.7
hexagonit.recipe.cmmi = 1.6
hexagonit.recipe.download = 1.6nxd002
meld3 = 0.6.10
openssl = 1.0.1c
# Required by:
# slapos.core
Flask = 0.9
# Required by:
# slapos.cookbook
PyXML = 0.8.4
slapos.recipe.template = 2.4.2
# Required by:
# slapos.cookbook==0.24
# slapos.core==0.14
# xml-marshaller==0.9.7
lxml = 3.1.0
# Required by:
# slapos.cookbook==0.24
netaddr = 0.7.10
# Required by:
# slapos.core==0.14
netifaces = 0.8
# Required by:
# slapos.cookbook==0.24
# slapos.core==0.14
# zc.buildout==1.5.3-dev-SlapOS-009
# zc.recipe.egg==1.3.2
setuptools = 0.6c12dev-r88846
# Required by:
# slapos.cookbook==0.73.1
slapos.core = 0.35.1
# Required by:
# slapos.core==0.35.1
supervisor = 3.0b1
# Required by:
# slapos.cookbook==0.73.1
xml-marshaller = 0.9.7
# Required by:
# slapos.cookbook==0.24
zc.recipe.egg = 1.3.2
# Required by:
# slapos.core==0.35.1
zope.interface = 4.0.5
...@@ -8,7 +8,17 @@ parts = ...@@ -8,7 +8,17 @@ parts =
cron-entry-logrotate cron-entry-logrotate
logrotate logrotate
logrotate-entry-davstorage logrotate-entry-davstorage
request-frontend copy-app
mailer-plugin
share-url-generation
configuration-promise
postfix-conf
postfix-users
postfix-master-conf
postfix-service
ajaxplorer-load-promise
test-sendmail-php
postfix-promise
eggs-directory = ${buildout:eggs-directory} eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory}
...@@ -16,15 +26,20 @@ offline = true ...@@ -16,15 +26,20 @@ offline = true
[publish-connection-informations] [publish-connection-informations]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
webdav_access = https://$${request-frontend:connection-domain} webdav_access = $${request-frontend:config-url}
url = https://$${request-frontend-ajaxupload:connection-domain} url = $${request-frontend-ajaxupload:config-url}
webdav_user = $${davstorage:user} webdav_user = $${davstorage:user}
webdav_password = $${davstorage:password} webdav_password = $${davstorage:password}
[pass-generation]
recipe = slapos.cookbook:generate.password
storage-path = $${rootdirectory:etc}/.passwd
bytes = 4
[davstorage] [davstorage]
recipe = slapos.cookbook:davstorage recipe = slapos.cookbook:davstorage
user = user user = user
password = insecure password = $${pass-generation:passwd}
port_webdav = 8080 port_webdav = 8080
port_ajax = 8070 port_ajax = 8070
ip = $${slap-network-information:global-ipv6} ip = $${slap-network-information:global-ipv6}
...@@ -157,6 +172,146 @@ cronstamps = $${rootdirectory:etc}/cronstamps/ ...@@ -157,6 +172,146 @@ cronstamps = $${rootdirectory:etc}/cronstamps/
cronoutput = $${basedirectory:log}/cron/ cronoutput = $${basedirectory:log}/cron/
php-ini-dir = $${rootdirectory:etc}/php php-ini-dir = $${rootdirectory:etc}/php
tmp-php = $${rootdirectory:tmp}/php tmp-php = $${rootdirectory:tmp}/php
postfix-conf = $${rootdirectory:etc}/postfix
spool = $${rootdirectory:var}/spool/postfix
data = $${rootdirectory:var}/lib/postfix
maildrop = $${directory:spool}/maildrop
active = $${directory:spool}/active
bounce = $${directory:spool}/bounce
corrupt = $${directory:spool}/corrupt
defer = $${directory:spool}/defer
deferred = $${directory:spool}/deferred
flush = $${directory:spool}/flush
hold = $${directory:spool}/hold
incoming = $${directory:spool}/incoming
private = $${directory:spool}/private
public = $${directory:spool}/public
pid = $${directory:spool}/pid
saved = $${directory:spool}/saved
trace = $${directory:spool}/trace
promise-js = $${rootdirectory:etc}/js/
[copy-app]
recipe = plone.recipe.command
update-command = command
command = cp -R ${application:location}/* $${directory:htdocs}
[mailer-plugin]
recipe = slapos.recipe.template
url = ${mailer-plugin-template:location}/${mailer-plugin-template:filename}
sendmail-script = $${sendmail-script:output}
output = $${directory:htdocs}/plugins/mailer.phpmailer-lite/lib/${mailer-plugin-template:filename}
mode = 0644
md5sum = 4649b152e1f639873a03149eccc70aaf
[share-url-generation]
recipe = slapos.recipe.template
url = ${share-url-generation-template:location}/${share-url-generation-template:filename}
output = $${directory:htdocs}/core/classes/${share-url-generation-template:filename}
mode = 0644
md5sum = f681c0a0a17f4b2a0896b952e53239ed
[configuration-js]
recipe = slapos.recipe.template
url = ${configuration-js-template:location}/${configuration-js-template:filename}
content-url = https://[$${davstorage:ip}]:$${davstorage:port_ajax}/
user = $${davstorage:user}
password = $${davstorage:password}
storage-type = serial
output = $${directory:promise-js}/${configuration-js-template:filename}
mode = 0644
md5sum = 792917aea5bafdc9a973a9071ae89ec6
[configuration-promise]
recipe = slapos.cookbook:check_page_content_phantomjs
path = $${basedirectory:promises}/configuration-promise
dash-path = ${dash:location}/bin/dash
phantomjs-path = ${phantomjs:location}/phantomjs-slapos
phantomjs-options = --ignore-ssl-errors=true
script-path = $${configuration-js:output}
[postfix-service]
recipe = slapos.recipe.template
url = ${postfix-service-template:location}/${postfix-service-template:filename}
python-location = ${python2.7:executable}
postfix-location = ${postfix:location}/usr/sbin/postfix
postfix-config-dir = $${directory:postfix-conf}
pid-location = $${directory:pid}/master.pid
output = $${basedirectory:services}/postfix
mode = 0755
md5sum = 9f136d6c217f26e06f7437ceeb7b0c42
[sendmail-script]
recipe = slapos.recipe.template
url = ${sendmail-script-template:location}/${sendmail-script-template:filename}
sendmail-location = ${postfix:location}/usr/sbin/sendmail
postfix-config-dir = $${directory:postfix-conf}
output = $${rootdirectory:bin}/sendmail
mode = 0755
md5sum = d2ea9ecfd653dcb0bd06c06bcaabc5df
[postfix-conf]
recipe = slapos.recipe.template
url = ${postfix-conf-template:location}/${postfix-conf-template:filename}
queue-directory = $${directory:spool}
command-directory = ${postfix:location}/usr/sbin
bin-directory = ${postfix:location}/usr/bin
daemon-directory = ${postfix:location}/usr/libexec/postfix
data-directory = $${directory:data}
mail-owner = $${slap-connection:partition-id}
mail-group = $${slap-connection:partition-id}
ipv4 = $${slap-network-information:global-ipv6}
output = $${directory:postfix-conf}/main.cf
mode = 0644
md5sum = a72b679c523f587422f95d295de27876
[postfix-users]
recipe = plone.recipe.command
update-command = $${:command}
command = sed 's/ slappart/ slapuser/g' $${postfix-conf:output} > main.tmp && mv main.tmp $${postfix-conf:output}
[postfix-master-conf]
recipe = slapos.recipe.template
url = ${postfix-master-conf-template:location}/${postfix-master-conf-template:filename}
port = 2525
output = $${directory:postfix-conf}/master.cf
mode = 0644
md5sum = de33aa9ef530ef3c7661b914d2d1fbef
[ajaxplorer-load-js]
recipe = slapos.recipe.template
url = ${test-ajaxplorer-js-template:location}/${test-ajaxplorer-js-template:filename}
content-url = https://[$${davstorage:ip}]:$${davstorage:port_ajax}/
mode = 0644
md5sum = a6a98bf3c9fcb6c330dea513d13eb054
output = $${directory:promise-js}/test-boot.js
[ajaxplorer-load-promise]
recipe = slapos.cookbook:check_page_content_phantomjs
path = $${basedirectory:promises}/ajaxplorer-load-promise
dash-path = ${dash:location}/bin/dash
phantomjs-path = ${phantomjs:location}/phantomjs-slapos
phantomjs-options = --ignore-ssl-errors=true
script-path = $${ajaxplorer-load-js:output}
[test-sendmail-php]
recipe = slapos.recipe.template
url = ${test-sendmail-php-template:location}/${test-sendmail-php-template:filename}
php-location = ${apache-php:location}/bin/php
htdocs-location = $${directory:htdocs}
output = $${rootdirectory:bin}/test-sendmail.php
mode = 0755
md5sum = ab19eff22b50fbab18879f7b96ae7e8e
[postfix-promise]
recipe = slapos.recipe.template
url = ${postfix-promise-template:location}/${postfix-promise-template:filename}
dash-path = ${dash:location}/bin/dash
test-sendmail-php-location = $${test-sendmail-php:output}
sendmail-binary = $${sendmail-script:output}
output = $${basedirectory:promises}/postfix-promise
md5sum = d725575994cd871e6c6c419603605fe5
mode = 0755
# Request frontend # Request frontend
[request-frontend-ajaxupload] [request-frontend-ajaxupload]
...@@ -182,11 +337,3 @@ config = url https-only ...@@ -182,11 +337,3 @@ config = url https-only
config-https-only = true config-https-only = true
config-url = https://$${davstorage:user}:$${davstorage:password}@[$${davstorage:ip}]:$${davstorage:port_webdav}/ config-url = https://$${davstorage:user}:$${davstorage:password}@[$${davstorage:ip}]:$${davstorage:port_webdav}/
return = domain return = domain
# XXX Vivien: promise not working for now
#[frontend-ajaxupload-promise]
#recipe = slapos.cookbook:check_url_available
#path = $${basedirectory:promises}/frontend-ajaxupload
#url = $${request-frontend-ajaxupload:connection-site_url}
#dash_path = ${dash:location}/bin/dash
#curl_path = ${curl:location}/bin/curl
\ No newline at end of file
...@@ -15,14 +15,15 @@ develop = ...@@ -15,14 +15,15 @@ develop =
[slapos.cookbook-repository] [slapos.cookbook-repository]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.git repository = http://git.erp5.org/repos/slapos.git
branch = davstorage-ajaxplorer
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
revision = 7600ecfc14371d6e056c1183599071dbdbd2e422
[slapos.toolbox-repository] [slapos.toolbox-repository]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
repository = http://git.erp5.org/repos/slapos.toolbox.git repository = http://git.erp5.org/repos/slapos.toolbox.git
branch = master #branch = master
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
revision = fc91b7f26c2fd69cedafcef9de3c8b22a50f8976
[check-recipe] [check-recipe]
recipe = plone.recipe.command recipe = plone.recipe.command
...@@ -32,6 +33,67 @@ command = ...@@ -32,6 +33,67 @@ command =
grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link && grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link &&
grep parts ${buildout:develop-eggs-directory}/slapos.toolbox.egg-link grep parts ${buildout:develop-eggs-directory}/slapos.toolbox.egg-link
[networkcache]
# signature certificates of the following uploaders.
# Romain Courteaud
# Cedric de Saint Martin
# Test Agent
# Vivien Alger
signature-certificate-list =
-----BEGIN CERTIFICATE-----
MIIB4DCCAUkCADANBgkqhkiG9w0BAQsFADA5MQswCQYDVQQGEwJGUjEZMBcGA1UE
CBMQRGVmYXVsdCBQcm92aW5jZTEPMA0GA1UEChMGTmV4ZWRpMB4XDTExMDkxNTA5
MDAwMloXDTEyMDkxNTA5MDAwMlowOTELMAkGA1UEBhMCRlIxGTAXBgNVBAgTEERl
ZmF1bHQgUHJvdmluY2UxDzANBgNVBAoTBk5leGVkaTCBnzANBgkqhkiG9w0BAQEF
AAOBjQAwgYkCgYEApYZv6OstoqNzxG1KI6iE5U4Ts2Xx9lgLeUGAMyfJLyMmRLhw
boKOyJ9Xke4dncoBAyNPokUR6iWOcnPHtMvNOsBFZ2f7VA28em3+E1JRYdeNUEtX
Z0s3HjcouaNAnPfjFTXHYj4um1wOw2cURSPuU5dpzKBbV+/QCb5DLheynisCAwEA
ATANBgkqhkiG9w0BAQsFAAOBgQBCZLbTVdrw3RZlVVMFezSHrhBYKAukTwZrNmJX
mHqi2tN8tNo6FX+wmxUUAf3e8R2Ymbdbn2bfbPpcKQ2fG7PuKGvhwMG3BlF9paEC
q7jdfWO18Zp/BG7tagz0jmmC4y/8akzHsVlruo2+2du2freE8dK746uoMlXlP93g
QUUGLQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9jCCAV+gAwIBAgIJAO4V/jiMoICoMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
BAMMCENPTVAtMjMyMCAXDTEyMDIxNjExMTAyM1oYDzIxMTIwMTIzMTExMDIzWjAT
MREwDwYDVQQDDAhDT01QLTIzMjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
wi/3Z8W9pUiegUXIk/AiFDQ0UJ4JFAwjqr+HSRUirlUsHHT+8DzH/hfcTDX1I5BB
D1ADk+ydXjMm3OZrQcXjn29OUfM5C+g+oqeMnYQImN0DDQIOcUyr7AJc4xhvuXQ1
P2pJ5NOd3tbd0kexETa1LVhR6EgBC25LyRBRae76qosCAwEAAaNQME4wHQYDVR0O
BBYEFMDmW9aFy1sKTfCpcRkYnP6zUd1cMB8GA1UdIwQYMBaAFMDmW9aFy1sKTfCp
cRkYnP6zUd1cMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAskbFizHr
b6d3iIyN+wffxz/V9epbKIZVEGJd/6LrTdLiUfJPec7FaxVCWNyKBlCpINBM7cEV
Gn9t8mdVQflNqOlAMkOlUv1ZugCt9rXYQOV7rrEYJBWirn43BOMn9Flp2nibblby
If1a2ZoqHRxoNo2yTmm7TSYRORWVS+vvfjY=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9jCCAV+gAwIBAgIJAKRvzcy7OH0UMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
BAMMCENPTVAtNzcyMCAXDTEyMDgxMDE1NDI1MVoYDzIxMTIwNzE3MTU0MjUxWjAT
MREwDwYDVQQDDAhDT01QLTc3MjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
o7aipd6MbnuGDeR1UJUjuMLQUariAyQ2l2ZDS6TfOwjHiPw/mhzkielgk73kqN7A
sUREx41eTcYCXzTq3WP3xCLE4LxLg1eIhd4nwNHj8H18xR9aP0AGjo4UFl5BOMa1
mwoyBt3VtfGtUmb8whpeJgHhqrPPxLoON+i6fIbXDaUCAwEAAaNQME4wHQYDVR0O
BBYEFEfjy3OopT2lOksKmKBNHTJE2hFlMB8GA1UdIwQYMBaAFEfjy3OopT2lOksK
mKBNHTJE2hFlMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAaNRx6YN2
M/p3R8/xS6zvH1EqJ3FFD7XeAQ52WuQnKSREzuw0dsw12ClxjcHiQEFioyTiTtjs
5pW18Ry5Ie7iFK4cQMerZwWPxBodEbAteYlRsI6kePV7Gf735Y1RpuN8qZ2sYL6e
x2IMeSwJ82BpdEI5niXxB+iT0HxhmR+XaMI=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB9jCCAV+gAwIBAgIJAIACQp7qF07DMA0GCSqGSIb3DQEBBQUAMBMxETAPBgNV
BAMMCENPTVAtODA2MCAXDTEzMDgxNDA3NTk1OFoYDzIxMTMwNzIxMDc1OTU4WjAT
MREwDwYDVQQDDAhDT01QLTgwNjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
yHenWBs1C3Rvni+EhIczG1skTm7o7f0MCIcyai7vFYzIDcgZxDM7fw//NEPGwVJG
4qtBCxYpJuNROrKtzAXRWaUGIrDpo+yhBnJgNTeNs5KQwJmex0cBFr+/dWSC2jmz
qmOS1Lk0hCq32rXgHmZlceUy+oLcdM2MahVxPYFN3CcCAwEAAaNQME4wHQYDVR0O
BBYEFMDgRs2W21Y+ptHYLE5MQ/85LOckMB8GA1UdIwQYMBaAFMDgRs2W21Y+ptHY
LE5MQ/85LOckMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAmyLpm5GA
hj1U8xwPVCLRPLg5vNjA+3jvCIFUJV602Vt+t+8V4CzKWNP7BOAIeDcsjCmtYah6
75NWNr2sleZYOdSuA5hSv09q9EZX35gMvMZK0Ha3xKI09HT6W+sfT8hcRBq/x1Sc
Z7G7Dhp4H3B+Vo8J4ngYb6YWPfCI4qsJZC0=
-----END CERTIFICATE-----
[versions] [versions]
zc.buildout = 1.6.0-dev-SlapOS-002 zc.buildout = 1.6.0-dev-SlapOS-002
Jinja2 = 2.6 Jinja2 = 2.6
......
This diff is collapsed.
<?php
/*
* Copyright 2007-2011 Charles du Jeu <contact (at) cdujeu.me>
* This file is part of AjaXplorer.
*
* AjaXplorer is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* AjaXplorer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with AjaXplorer. If not, see <http://www.gnu.org/licenses/>.
*
* The latest code can be found at <http://www.ajaxplorer.info/>.
*
* These configuration must be set at the very root loading of the framework
*/
/*
* If you have a charset warning, or problems displaying filenames with accented characters,
* check your system locale and set it in the form lang_country.charset
* Example : fr_FR.UTF-8, fr_FR.ISO-8859-1, fr_FR.CP1252 (windows), en_EN.UTF-8, etc.
*
* Windows users may define an empty string
* define("AJXP_LOCALE", "");
*/
define("AJXP_LOCALE", "${:translation}");
//define("AJXP_LOCALE", "");
/*
* If you encounter problems writing to the standard php tmp directory, you can
* define your own tmp dir here. Suggested value is ajxp_path/data/tmp/
* AJXP_DATA_PATH, AJXP_INSTALL_PATH are replaced automatically.
*
* See php.ini settings below for the session.save_path value as well.
*/
//define("AJXP_TMP_DIR", AJXP_DATA_PATH."/tmp");
/*
* Additionnal php.ini settings
* > Problems with tmp dir : set your own session tmp dir (create it and make it writeable!)
* > Concurrent versions of AjaXplorer : use session.cookie_path to differentiate them.
*/
$AJXP_INISET = array();
//$AJXP_INISET["session.save_path"] = AJXP_DATA_PATH."/tmp/sessions";
//$AJXP_INISET["session.cookie_path"] = "/ajaxplorer";
/*
* If you want to force the https, uncomment the line below. This will automatically
* redirect all calls to ajaxplorer via http to the same URL with https
*/
//define("AJXP_FORCE_SSL_REDIRECT", true);
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
var page = require('webpage').create();
var url = '${:content-url}';
page.open(url, function(status){
page.evaluate(function(){
function eventFire(el, etype){
if (el.fireEvent) {
(el.fireEvent('on' + etype));
} else {
var evObj = document.createEvent('Events');
evObj.initEvent(etype, true, false);
el.dispatchEvent(evObj);
}
}
eventFire(document.getElementById('start_button'),'click');
document.getElementsByName('ADMIN_USER_LOGIN')[0].setValue('${:user}');
document.getElementsByName('ADMIN_USER_NAME')[0].setValue('${:user}');
document.getElementsByName('ADMIN_USER_PASS')[0].setValue('${:password}');
document.getElementsByName('ADMIN_USER_PASS2')[0].setValue('${:password}');
document.getElementsByName('STORAGE_TYPE')[0].setValue('${:storage-type}');
var button = document.getElementById('save_button')
button.removeClassName('disabled');
eventFire(button,'click');
});
phantom.exit();
});
<?xml version="1.0" encoding="UTF-8"?>
<ajxpcore id="core.ajaxplorer" label="CONF_MESSAGE[AjaXplorer Main Options]"
description="CONF_MESSAGE[Main container for core AjaXplorer settings (application title, sharing, webdav server config, etc...)]"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file:../core.ajaxplorer/ajxp_registry.xsd"
>
<plugin_info>
<plugin_author>Charles du Jeu</plugin_author>
<plugin_version>follow</plugin_version>
<plugin_uri>http://ajaxplorer.info/plugins/core/ajaxplorer</plugin_uri>
<core_relation packaged="true" tested_version="follow_core"/>
</plugin_info>
<client_settings>
<resources>
<i18n namespace="" path="plugins/core.ajaxplorer/i18n"/>
</resources>
</client_settings>
<server_settings>
<global_param name="APPLICATION_TITLE" group="CONF_MESSAGE[Main]" type="string" label="CONF_MESSAGE[App Title]" description="CONF_MESSAGE[Your application title]" mandatory="true" default="AjaXplorer" expose="true"/>
<global_param name="DEFAULT_LANGUAGE" group="CONF_MESSAGE[Main]" type="select" choices="AJXP_AVAILABLE_LANGUAGES" label="CONF_MESSAGE[Default Language]" description="CONF_MESSAGE[Default language when a user does not have set his/her own.]" mandatory="true" default="${:language}"/>
<global_param name="SERVER_URL" group="CONF_MESSAGE[Main]" type="string" label="CONF_MESSAGE[Server URL]" description="CONF_MESSAGE[Server URL used to build share links and notifications. It will be detected if empty.]" mandatory="false"/>
<global_param name="PUBLIC_DOWNLOAD_FOLDER" group="CONF_MESSAGE[Sharing]" type="string" label="CONF_MESSAGE[Download Folder]" description="CONF_MESSAGE[Absolute path to the public folder where temporary download links will be created. Setting this empty will disable the sharing feature.]" mandatory="false" default="AJXP_INSTALL_PATH/data/public"/>
<global_param name="PUBLIC_DOWNLOAD_URL" group="CONF_MESSAGE[Sharing]" type="string" label="CONF_MESSAGE[Download URL]" description="CONF_MESSAGE[If not inferred directly from the current ajaxplorer URI plus the public download folder name, replace the public access URL here.]" mandatory="false" default=""/>
<global_param name="WEBDAV_ENABLE" group="CONF_MESSAGE[WebDAV Server]" type="boolean" label="CONF_MESSAGE[Enable WebDAV]" description="CONF_MESSAGE[Enable the webDAV support. Please READ THE DOC to safely use this feature.]" mandatory="false" default="false"/>
<global_param name="WEBDAV_BASEURI" group="CONF_MESSAGE[WebDAV Server]" type="string" label="CONF_MESSAGE[Shares URI]" description="CONF_MESSAGE[Common URI to access the shares. Please READ THE DOC to safely use this feature.]" mandatory="false" default="/ajaxplorer/shares"/>
<global_param name="WEBDAV_BASEHOST" group="CONF_MESSAGE[WebDAV Server]" type="string" label="CONF_MESSAGE[Shares Host]" description="CONF_MESSAGE[Host used in webDAV protocol. Should be detected by default. Please READ THE DOC to safely use this feature.]" mandatory="false" default=""/>
<global_param name="WEBDAV_DIGESTREALM" group="CONF_MESSAGE[WebDAV Server]" type="string" label="CONF_MESSAGE[Digest Realm]" description="CONF_MESSAGE[Default realm for authentication. Please READ THE DOC to safely use this feature.]" mandatory="false" default="ajxp_webdav_realm"/>
<global_param name="WEBDAV_FORCE_BASIC" group="CONF_MESSAGE[WebDAV Server]" type="boolean" label="CONF_MESSAGE[Force Basic Auth]" description="CONF_MESSAGE[This authentication mechanism is less secure, but will avoid the users having to re-enter a password in some case.]" mandatory="false" default="false"/>
<global_param name="WEBDAV_BROWSER_LISTING" group="CONF_MESSAGE[WebDAV Server]" type="boolean" label="CONF_MESSAGE[Browser Access]" description="CONF_MESSAGE[Display the list of files and folder when accessing through the browser]" mandatory="false" default="false"/>
<global_param name="CMDLINE_ACTIVE" group="CONF_MESSAGE[Command Line]" type="boolean" label="CONF_MESSAGE[Command-line Active]" description="CONF_MESSAGE[Use AjaXplorer framework via the command line, allowing CRONTAB jobs or background actions.]" mandatory="false" default="false"/>
<global_param name="CLI_PHP" group="CONF_MESSAGE[Command Line]" type="string" label="CONF_MESSAGE[Command-line PHP]" description="CONF_MESSAGE[On specific hosts, you may have to use a specific path to access the php command line]" mandatory="false" default="${:php-cli-location}"/>
<global_param name="CLI_USE_COM" group="CONF_MESSAGE[Command Line]" type="boolean" label="CONF_MESSAGE[Use COM class]" description="CONF_MESSAGE[On Windows running IIS, set this option to true if the COM extension is loaded, this may enable the use of the php command line.]" mandatory="false" default="false"/>
<global_param name="GZIP_COMPRESSION" group="CONF_MESSAGE[Compression Features]" type="boolean" label="CONF_MESSAGE[Gzip Download]" description="CONF_MESSAGE[Gzip files on-the-fly before downloading. Disabled by default, as it's generally useful only on small files, and decreases performances on big files. This has nothing to see with the Zip Creation feature, it's just a on-the-fly compression applied on a unique file at download.]" mandatory="false" default="false"/>
<global_param name="GZIP_LIMIT" group="CONF_MESSAGE[Compression Features]" type="string" label="CONF_MESSAGE[Gzip Limit]" description="CONF_MESSAGE[If activated, a default limit should be set above when files are no more compressed.]" mandatory="false" default="1048576"/>
<global_param name="ZIP_CREATION" expose="true" group="CONF_MESSAGE[Compression Features]" type="boolean" label="CONF_MESSAGE[Zip Creation]" description="CONF_MESSAGE[If you encounter problems with online zip creation or multiple files downloading, you can disable the feature.]" mandatory="false" default="true"/>
<global_param name="NODENAME_MAX_LENGTH" expose="true" group="CONF_MESSAGE[Miscalleneous]" type="integer" label="CONF_MESSAGE[Filename length]" description="CONF_MESSAGE[Maximum characters length of new files or folders]" mandatory="false" default="255"/>
<global_param name="AJXP_TMP_DIR" group="CONF_MESSAGE[Miscalleneous]" type="string" label="CONF_MESSAGE[Temporary Folder]" description="CONF_MESSAGE[This is necessary only if you have errors concerning the tmp dir access or writeability : most probably, they are due to PHP SAFE MODE (should disappear in php6) or various OPEN_BASEDIR restrictions. In that case, create and set writeable a tmp folder somewhere at the root of your hosting (but above the web/ or www/ or http/ if possible!!) and enter here the full path to this folder]" mandatory="false" default=""/>
</server_settings>
</ajxpcore>
\ No newline at end of file
This diff is collapsed.
#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
${:port} inet n - n - - smtpd
#smtp inet n - n - 1 postscreen
#smtpd pass - - n - - smtpd
#dnsblog unix - - n - 0 dnsblog
#tlsproxy unix - - n - 0 tlsproxy
#submission inet n - n - - smtpd
# -o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
#smtps inet n - n - - smtpd
# -o syslog_name=postfix/smtps
# -o smtpd_tls_wrappermode=yes
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_restrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
#628 inet n - n - - qmqpd
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent. See the pipe(8) man page for information about $recipient
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
#maildrop unix - n n - - pipe
# flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d $recipient
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
# mailbox_transport = lmtp:inet:localhost
# virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus unix - n n - - pipe
# user=cyrus argv=/cyrus/bin/deliver -e -r $sender -m $extension $user
#
# ====================================================================
#
# Old example of delivery via Cyrus.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/cyrus/bin/deliver -e -m $extension $user
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
#uucp unix - n n - - pipe
# flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# ====================================================================
#
# Other external delivery methods.
#
#ifmail unix - n n - - pipe
# flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
#
#bsmtp unix - n n - - pipe
# flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
#
#scalemail-backend unix - n n - 2 pipe
# flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
# $nexthop $user $extension
#
#mailman unix - n n - - pipe
# flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
# $nexthop $user
#!${:python-location}
import subprocess
import signal
import time
def handler(signum,frame):
pid_file = open("${:pid-location}","r")
pid = pid_file.read().strip()
subprocess.call(["kill", "-9", pid])
subprocess.call(["${:postfix-location}", "-c", "${:postfix-config-dir}", "start"])
signal.signal(signal.SIGINT,handler)
while True:
time.sleep(120)
#!/bin/sh
${:sendmail-location} -C ${:postfix-config-dir} $*
\ No newline at end of file
var page = require('webpage').create();
var url = '${:content-url}'
page.open(url,function(status){
var form = page.evaluate(function(){
return document.getElementById('login_form');
});
if(form === null){
phantom.exit(1);
} else {
phantom.exit();
}
});
#!${:dash-path}
${:test-sendmail-php-location} > /dev/null
RETURN=$(${:sendmail-binary} -bp)
if [ "$RETURN" != "Mail queue is empty" ]; then
exit 0
else
exit 1
fi
\ No newline at end of file
#!${:php-location}
<?php
require_once("${:htdocs-location}/plugins/mailer.phpmailer-lite/lib/class.phpmailer-lite.php");
$mailer = new PHPMailerLite(true);
$mailer->SetFrom('test@couscous.com');
$mailer->AddAddress('couscous@test.com');
$mailer->Subject = 'test';
$mailer->Body = 'test';
$mailer->Send();
?>
\ No newline at end of file
...@@ -16,13 +16,18 @@ extends = ...@@ -16,13 +16,18 @@ extends =
../../component/git/buildout.cfg ../../component/git/buildout.cfg
../../component/nodejs/buildout.cfg ../../component/nodejs/buildout.cfg
../../component/postgresql/buildout.cfg ../../component/postgresql/buildout.cfg
../../component/phantomjs/buildout.cfg
parts = parts =
postgresql postgresql
nodejs nodejs
phantomjs
etherpad-lite-repository etherpad-lite-repository
install-deps install-deps
template template
template-html10n
template-index-promise-js
template-pad-promise-js
lxml-python lxml-python
eggs eggs
instance-recipe-egg instance-recipe-egg
...@@ -45,8 +50,8 @@ eggs = ${instance-recipe:egg} ...@@ -45,8 +50,8 @@ eggs = ${instance-recipe:egg}
[etherpad-lite-repository] [etherpad-lite-repository]
recipe = slapos.recipe.build:gitclone recipe = slapos.recipe.build:gitclone
repository = http://github.com/ether/etherpad-lite.git repository = http://github.com/ether/etherpad-lite.git
branch = develop
git-executable = ${git:location}/bin/git git-executable = ${git:location}/bin/git
revision = cb3ab51ee14aefb2f9e71bdd9907c0a83c3aebb3
[template] [template]
# Default template for the instance. # Default template for the instance.
...@@ -59,16 +64,24 @@ mode = 0644 ...@@ -59,16 +64,24 @@ mode = 0644
[instance-etherpad-lite] [instance-etherpad-lite]
recipe = slapos.recipe.template recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-etherpad-lite.cfg url = ${:_profile_base_location_}/instance-etherpad-lite.cfg
md5sum = fd7249be8988155110234c7bb877abb9 md5sum = dea0ee49ff3a87bd146e3d6bd6d68167
output = ${buildout:directory}/template-etherpad-lite.cfg output = ${buildout:directory}/template-etherpad-lite.cfg
mode = 0644 mode = 0644
[template-html10n]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/templates/${:filename}
filename = html10n.js
mode = 0644
md5sum = 6f90afdcc50bb5020896c95162d83834
output = ${etherpad-lite-repository:location}/src/static/js/${:filename}
[template-conf] [template-conf]
recipe = slapos.recipe.download recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename} url = ${:_profile_base_location_}/templates/${:filename}
mode = 0644 mode = 0644
filename = settings.json.in filename = settings.json.in
md5sum = 19ab39e6b3256c82fd54ce074488b136 md5sum = d95264e66e2691b094d40a65d88ce681
location = ${buildout:parts-directory}/${:_buildout_section_name_} location = ${buildout:parts-directory}/${:_buildout_section_name_}
[template-run-script] [template-run-script]
...@@ -96,5 +109,21 @@ recipe = plone.recipe.command ...@@ -96,5 +109,21 @@ recipe = plone.recipe.command
command = ${template-deps-script:output} command = ${template-deps-script:output}
update-command = command update-command = command
[template-index-promise-js]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = test-index.js.in
mode = 0644
md5sum = 7ee12b1c284c2c6260689b21bb35176e
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[template-pad-promise-js]
recipe = slapos.recipe.download
url = ${:_profile_base_location_}/templates/${:filename}
filename = test-pad.js.in
mode = 0644
md5sum = 43dc2ee94e65cc7f5fa4c3d6a868eebe
location = ${buildout:parts-directory}/${:_buildout_section_name_}
[lxml-python] [lxml-python]
python = python2.7 python = python2.7
This diff is collapsed.
This diff is collapsed.
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
*/ */
//the default text of a pad //the default text of a pad
"defaultPadText" : "Welcome to Etherpad!\n\nThis pad text is synchronized as you type, so that everyone viewing this page sees the same text. This allows you to collaborate seamlessly on documents!\n\nGet involved with Etherpad at http:\/\/etherpad.org\n", "defaultPadText" : "${:welcome-message}",
/* Users must have a session to access pads. This effectively allows only group pads to be accessed. */ /* Users must have a session to access pads. This effectively allows only group pads to be accessed. */
"requireSession" : false, "requireSession" : false,
......
var page = require('webpage').create();
url = '${:content-url}'
page.open(url, function (status) {
var text = page.evaluate(function(){
return document.getElementById('button').textContent
});
if(text !== "" && text !== null) {
phantom.exit();
} else {
phantom.exit(1);
}
});
var page = require('webpage').create();
url = '${:content-url}/p/test'
page.open(url, function (status) {
setTimeout(function(){
var text = page.evaluate(function(){
var container = document.getElementById('editorcontainer');
var iframe = container.firstChild;
container = iframe.contentDocument.getElementById('outerdocbody');
iframe = container.firstChild;
container = iframe.contentDocument.getElementById('innerdocbody');
return container.textContent;
});
if (text === null) {
phantom.exit();
} else {
phantom.exit(1);
}
},2500);
});
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment