Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos-caddy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Guillaume Hervier
slapos-caddy
Commits
deabf912
Commit
deabf912
authored
Nov 29, 2012
by
Viktor Horvath
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Makefile separation: compilation part (instantiation part not touched yet!)
parent
185ad573
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
417 additions
and
256 deletions
+417
-256
component/imagemagick/buildout.cfg
component/imagemagick/buildout.cfg
+2
-2
slapos/recipe/mioga/instantiate.py
slapos/recipe/mioga/instantiate.py
+52
-24
software/mioga/instance-apacheperl.cfg
software/mioga/instance-apacheperl.cfg
+29
-0
software/mioga/mioga-patch
software/mioga/mioga-patch
+321
-226
software/mioga/software.cfg
software/mioga/software.cfg
+13
-4
No files found.
component/imagemagick/buildout.cfg
View file @
deabf912
...
@@ -28,8 +28,8 @@ filename = imagemagick-6.6.6-1-no-gsx-gsc-probe.patch
...
@@ -28,8 +28,8 @@ filename = imagemagick-6.6.6-1-no-gsx-gsc-probe.patch
[imagemagick]
[imagemagick]
recipe = hexagonit.recipe.cmmi
recipe = hexagonit.recipe.cmmi
url = ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.
7.9-10
.tar.bz2
url = ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.
8.0-4
.tar.bz2
md5sum =
f7ae7dae79e330e4b08d6c27783a9472
md5sum =
635a943f9e6e40c68bc8414754c6fcaf
depends =
depends =
${libtiff:version}
${libtiff:version}
${librsvg:version}
${librsvg:version}
...
...
slapos/recipe/mioga/instantiate.py
View file @
deabf912
...
@@ -39,6 +39,7 @@ class Recipe(GenericBaseRecipe):
...
@@ -39,6 +39,7 @@ class Recipe(GenericBaseRecipe):
"""
\
"""
\
Configure a Mioga instance:
Configure a Mioga instance:
- copy over /var and /buildinst directories
- call "make install-all"
- call "make install-all"
"""
"""
...
@@ -47,11 +48,9 @@ class Recipe(GenericBaseRecipe):
...
@@ -47,11 +48,9 @@ class Recipe(GenericBaseRecipe):
os
.
remove
(
filepath
)
os
.
remove
(
filepath
)
def
install
(
self
):
def
install
(
self
):
print
"This is a FRESH INSTALLATION."
self
.
instantiate
(
True
)
self
.
instantiate
(
True
)
def
update
(
self
):
def
update
(
self
):
print
"This is an update."
self
.
instantiate
(
False
)
self
.
instantiate
(
False
)
def
instantiate
(
self
,
isNewInstall
):
def
instantiate
(
self
,
isNewInstall
):
...
@@ -68,22 +67,23 @@ class Recipe(GenericBaseRecipe):
...
@@ -68,22 +67,23 @@ class Recipe(GenericBaseRecipe):
vardir
=
self
.
options
[
'var_directory'
]
vardir
=
self
.
options
[
'var_directory'
]
mioga_base
=
os
.
path
.
join
(
vardir
,
'lib'
,
'Mioga2'
)
mioga_base
=
os
.
path
.
join
(
vardir
,
'lib'
,
'Mioga2'
)
fm
=
FileModifier
(
'conf/Config.xml'
)
fm
=
FileModifier
(
'conf/Config.xml'
)
fm
.
modify
(
'init_sql'
,
'yes'
if
isNewInstall
else
'no'
)
fm
.
modify
Parameter
(
'init_sql'
,
'yes'
if
isNewInstall
else
'no'
)
fm
.
modify
(
'install_dir'
,
mioga_base
)
fm
.
modify
Parameter
(
'install_dir'
,
mioga_base
)
fm
.
modify
(
'tmp_dir'
,
os
.
path
.
join
(
mioga_base
,
'tmp'
))
fm
.
modify
Parameter
(
'tmp_dir'
,
os
.
path
.
join
(
mioga_base
,
'tmp'
))
fm
.
modify
(
'search_tmp_dir'
,
os
.
path
.
join
(
mioga_base
,
'mioga_search'
))
fm
.
modify
Parameter
(
'search_tmp_dir'
,
os
.
path
.
join
(
mioga_base
,
'mioga_search'
))
fm
.
modify
(
'maildir'
,
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'maildir'
))
fm
.
modify
Parameter
(
'maildir'
,
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'maildir'
))
fm
.
modify
(
'maildirerror'
,
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'error'
))
fm
.
modify
Parameter
(
'maildirerror'
,
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'error'
))
fm
.
modify
(
'mailfifo'
,
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'fifo'
))
fm
.
modify
Parameter
(
'mailfifo'
,
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'fifo'
))
notifier_fifo
=
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'notifier'
)
notifier_fifo
=
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'notifier'
)
fm
.
modify
(
'notifierfifo'
,
notifier_fifo
)
fm
.
modify
Parameter
(
'notifierfifo'
,
notifier_fifo
)
searchengine_fifo
=
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'searchengine'
)
searchengine_fifo
=
os
.
path
.
join
(
vardir
,
'spool'
,
'mioga'
,
'searchengine'
)
fm
.
modify
(
'searchenginefifo'
,
searchengine_fifo
)
fm
.
modifyParameter
(
'searchenginefifo'
,
searchengine_fifo
)
fm
.
modify
(
'dbi_passwd'
,
self
.
options
[
'db_password'
])
fm
.
modifyParameter
(
'dbi_passwd'
,
self
.
options
[
'db_password'
])
fm
.
modify
(
'db_host'
,
self
.
options
[
'db_host'
])
fm
.
modifyParameter
(
'db_host'
,
self
.
options
[
'db_host'
])
fm
.
modify
(
'db_port'
,
self
.
options
[
'db_port'
])
fm
.
modifyParameter
(
'db_port'
,
self
.
options
[
'db_port'
])
fm
.
modify
(
'dav_host'
,
self
.
options
[
'public_ipv6'
])
fm
.
modifyParameter
(
'dav_host'
,
self
.
options
[
'public_ipv6'
])
fm
.
modify
(
'dav_port'
,
self
.
options
[
'public_ipv6_port'
])
fm
.
modifyParameter
(
'dav_port'
,
self
.
options
[
'public_ipv6_port'
])
fm
.
modifyParameter
(
'bin_dir'
,
self
.
options
[
'bin_dir'
])
# db_name, dbi_login are standard
# db_name, dbi_login are standard
fm
.
save
()
fm
.
save
()
# Ensure no old data is kept
# Ensure no old data is kept
...
@@ -94,6 +94,8 @@ class Recipe(GenericBaseRecipe):
...
@@ -94,6 +94,8 @@ class Recipe(GenericBaseRecipe):
environ
=
os
.
environ
environ
=
os
.
environ
environ
[
'PATH'
]
=
':'
.
join
([
self
.
options
[
'perl_bin'
],
# priority!
environ
[
'PATH'
]
=
':'
.
join
([
self
.
options
[
'perl_bin'
],
# priority!
# Mioga scripts in Makefiles and shell scripts
self
.
options
[
'bin_dir'
],
self
.
options
[
'mioga_add_to_path'
],
self
.
options
[
'mioga_add_to_path'
],
self
.
options
[
'postgres_bin'
],
self
.
options
[
'postgres_bin'
],
environ
[
'PATH'
]
])
environ
[
'PATH'
]
])
...
@@ -116,8 +118,8 @@ class Recipe(GenericBaseRecipe):
...
@@ -116,8 +118,8 @@ class Recipe(GenericBaseRecipe):
# We must call "make installall" in the SAME environment that
# We must call "make installall" in the SAME environment that
# "perl Makefile.PL" left!
# "perl Makefile.PL" left!
cmd = subprocess.Popen(self.options['
perl_bin
'] + '
/
perl
Makefile
.
PL
'
cmd = subprocess.Popen(self.options['
perl_bin
'] + '
/
perl
Makefile
.
PL
disable_check
'
+ '
&&
make
installall
',
+ '
&&
make
slapos
-
instantiation
',
env=environ, shell=True)
env=environ, shell=True)
cmd.communicate()
cmd.communicate()
...
@@ -209,14 +211,34 @@ Include conf/extra/httpd-autoindex.conf
...
@@ -209,14 +211,34 @@ Include conf/extra/httpd-autoindex.conf
else
:
else
:
os
.
mkfifo
(
fifo
,
0600
)
os
.
mkfifo
(
fifo
,
0600
)
mioga_conf_path
=
os
.
path
.
join
(
mioga_base
,
'conf'
,
'Mioga.conf'
)
notifier_wrapper
=
self
.
createPythonScript
(
notifier_wrapper
=
self
.
createPythonScript
(
os
.
path
.
join
(
services_dir
,
'notifier
_wrapper
'
),
os
.
path
.
join
(
services_dir
,
'notifier'
),
'slapos.recipe.librecipe.execute.execute'
,
'slapos.recipe.librecipe.execute.execute'
,
[
os
.
path
.
join
(
self
.
options
[
'mioga_compile_dir'
],
'bin'
,
'notifier'
,
'notifier.pl'
),
[
os
.
path
.
join
(
self
.
options
[
'mioga_compile_dir'
],
'bin'
,
'notifier'
,
'notifier.pl'
),
os
.
path
.
join
(
mioga_base
,
'conf'
,
'Mioga.conf'
)
]
mioga_conf_path
]
)
)
path_list
.
append
(
notifier_wrapper
)
path_list
.
append
(
notifier_wrapper
)
searchengine_wrapper
=
self
.
createPythonScript
(
os
.
path
.
join
(
services_dir
,
'searchengine'
),
'slapos.recipe.librecipe.execute.execute'
,
[
os
.
path
.
join
(
self
.
options
[
'mioga_compile_dir'
],
'bin'
,
'notifier'
,
'searchengine.pl'
),
mioga_conf_path
]
)
path_list
.
append
(
searchengine_wrapper
)
crawl_fm
=
FileModifier
(
os
.
path
.
join
(
self
.
options
[
'mioga_compile_dir'
],
'bin'
,
'search'
,
'crawl_sample.sh'
)
)
# TODO: The crawl script will still call the shell command "date"
crawl_fm
.
modify
(
r'/var/tmp/crawl'
,
self
.
options
[
'log_dir'
]
+
'/crawl'
)
crawl_fm
.
modify
(
r'/var/lib/Mioga2/conf'
,
mioga_base
+
'/conf'
)
crawl_fm
.
modify
(
r'/usr/local/bin/(mioga2_(?:info|crawl|index).pl)'
,
self
.
options
[
'site_perl'
]
+
'/bin/'
+
r"\
g<
1>"
)
crawl_path
=
os
.
path
.
join
(
self
.
options
[
'bin_dir'
],
'crawl.sh'
)
crawl_fm
.
save
(
crawl_path
)
os
.
chmod
(
crawl_path
,
stat
.
S_IRWXU
)
if
os
.
path
.
exists
(
self
.
options
[
'pid_file'
]):
if
os
.
path
.
exists
(
self
.
options
[
'pid_file'
]):
# Reload apache configuration
# Reload apache configuration
with
open
(
self
.
options
[
'pid_file'
])
as
pid_file
:
with
open
(
self
.
options
[
'pid_file'
])
as
pid_file
:
...
@@ -232,7 +254,7 @@ Include conf/extra/httpd-autoindex.conf
...
@@ -232,7 +254,7 @@ Include conf/extra/httpd-autoindex.conf
# Copied
verbatim
from mioga-hooks.py - how to reuse code?
# Copied
and adapted
from mioga-hooks.py - how to reuse code?
class
FileModifier
:
class
FileModifier
:
def
__init__
(
self
,
filename
):
def
__init__
(
self
,
filename
):
self
.
filename
=
filename
self
.
filename
=
filename
...
@@ -240,14 +262,20 @@ class FileModifier:
...
@@ -240,14 +262,20 @@ class FileModifier:
self
.
content
=
f
.
read
()
self
.
content
=
f
.
read
()
f
.
close
()
f
.
close
()
def
modify
(
self
,
key
,
value
):
def
modify
Parameter
(
self
,
key
,
value
):
(
self
.
content
,
count
)
=
re
.
subn
(
(
self
.
content
,
count
)
=
re
.
subn
(
r'(<parameter[^>]*\
s
name\
s*=
\s*"'
+
re
.
escape
(
key
)
+
r'"[^>]*\
sde
fault\
s*=
\s*")[^"]*'
,
r'(<parameter[^>]*\
s
name\
s*=
\s*"'
+
re
.
escape
(
key
)
+
r'"[^>]*\
sde
fault\
s*=
\s*")[^"]*'
,
r"\
g<
1>"
+
value
,
r"\
g<
1>"
+
value
,
self
.
content
)
self
.
content
)
return
count
return
count
def
modify
(
self
,
pattern
,
replacement
):
(
self
.
content
,
count
)
=
re
.
subn
(
pattern
,
replacement
,
self
.
content
)
return
count
def
save
(
self
):
def
save
(
self
,
output
=
""
):
f
=
open
(
self
.
filename
,
'w'
)
if
output
==
""
:
output
=
self
.
filename
f
=
open
(
output
,
'w'
)
f
.
write
(
self
.
content
)
f
.
write
(
self
.
content
)
f
.
close
()
f
.
close
()
software/mioga/instance-apacheperl.cfg
View file @
deabf912
...
@@ -3,6 +3,7 @@ parts =
...
@@ -3,6 +3,7 @@ parts =
postgres-urlparse
postgres-urlparse
# apacheperl-promise
# apacheperl-promise
mioga-instance
mioga-instance
cron-entry-crawler
publish-connection-information
publish-connection-information
eggs-directory = ${buildout:eggs-directory}
eggs-directory = ${buildout:eggs-directory}
...
@@ -11,6 +12,7 @@ offline = true
...
@@ -11,6 +12,7 @@ offline = true
[rootdirectory]
[rootdirectory]
recipe = slapos.cookbook:mkdirectory
recipe = slapos.cookbook:mkdirectory
bin = $${buildout:directory}/bin
etc = $${buildout:directory}/etc
etc = $${buildout:directory}/etc
srv = $${buildout:directory}/srv
srv = $${buildout:directory}/srv
log = $${buildout:directory}/log
log = $${buildout:directory}/log
...
@@ -21,6 +23,30 @@ recipe = slapos.cookbook:mkdirectory
...
@@ -21,6 +23,30 @@ recipe = slapos.cookbook:mkdirectory
services = $${rootdirectory:etc}/run
services = $${rootdirectory:etc}/run
promises = $${rootdirectory:etc}/promise
promises = $${rootdirectory:etc}/promise
htdocs = $${rootdirectory:srv}/htdocs
htdocs = $${rootdirectory:srv}/htdocs
cronstamps = $${rootdirectory:etc}/cronstamps/
cron-entries = $${rootdirectory:etc}/cron.d/
crontabs = $${rootdirectory:etc}/crontabs/
[cron-simplelogger]
recipe = slapos.cookbook:simplelogger
wrapper = $${rootdirectory:bin}/cron_simplelogger
log = $${rootdirectory:log}/crond.log
[cron]
recipe = slapos.cookbook:cron
dcrond-binary = ${dcron:location}/sbin/crond
cronstamps = $${basedirectory:cronstamps}
cron-entries = $${basedirectory:cron-entries}
crontabs = $${basedirectory:crontabs}
catcher = $${cron-simplelogger:wrapper}
binary = $${basedirectory:services}/crond
[cron-entry-crawler]
<= cron
recipe = slapos.cookbook:cron.d
name = logrotate
frequency = 23 50 * * *
command = $${mioga-instance:bin_dir}/crawl.sh
[apacheperl-promise]
[apacheperl-promise]
recipe = slapos.cookbook:check_port_listening
recipe = slapos.cookbook:check_port_listening
...
@@ -81,3 +107,6 @@ dav_locks = $${rootdirectory:var}/dav_locks
...
@@ -81,3 +107,6 @@ dav_locks = $${rootdirectory:var}/dav_locks
services_dir = $${basedirectory:services}
services_dir = $${basedirectory:services}
error_log = $${rootdirectory:log}/error.log
error_log = $${rootdirectory:log}/error.log
access_log = $${rootdirectory:log}/access.log
access_log = $${rootdirectory:log}/access.log
bin_dir = $${rootdirectory:bin}
log_dir = $${rootdirectory:log}
site_perl = ${perl:siteprefix}
\ No newline at end of file
software/mioga/mioga-patch
View file @
deabf912
This diff is collapsed.
Click to expand it.
software/mioga/software.cfg
View file @
deabf912
...
@@ -16,6 +16,7 @@ extends =
...
@@ -16,6 +16,7 @@ extends =
../../component/perl-DBD-Pg/buildout.cfg
../../component/perl-DBD-Pg/buildout.cfg
../../component/perl-Search-Xapian/buildout.cfg
../../component/perl-Search-Xapian/buildout.cfg
../../component/libxslt/buildout.cfg
../../component/libxslt/buildout.cfg
../../component/dcron/buildout.cfg
../../component/lxml-python/buildout.cfg
../../component/lxml-python/buildout.cfg
../../stack/slapos.cfg
../../stack/slapos.cfg
...
@@ -90,12 +91,18 @@ configure-command =
...
@@ -90,12 +91,18 @@ configure-command =
[mioga]
[mioga]
recipe = hexagonit.recipe.cmmi
recipe = hexagonit.recipe.cmmi
version = 2.4.1
4
version = 2.4.1
6
# No use re-using "version", the whole URL will change for the next one
# No use re-using "version", the whole URL will change for the next one
url = http://www.alixen.org/attachments/download/87/Mioga2-2.4.14.tar.gz
url = http://www.alixen.org/attachments/download/89/Mioga2-2.4.16.tar.gz
md5sum = 8282ae4b93fcea3f346168e6a855f65c
md5sum = 1d2e76c798ee6d5f233011997200e125
location = ${buildout:parts-directory}/${:_buildout_section_name_}
buildinst = ${mioga:location}/buildinst
static = ${mioga:location}/static
environment =
environment =
PATH=${libxslt:location}/bin:${libxml2:location}/bin:%(PATH)s
MIOGA_BASE=${mioga:location}
MIOGA_BUILDINST=${mioga:buildinst}
MIOGA_STATIC=${mioga:static}
PATH=${libxslt:location}/bin:${libxml2:location}/bin:${perl:location}/bin:${perl:siteprefix}/bin:%(PATH)s
patch-options = -p1
patch-options = -p1
patches =
patches =
${mioga-patch:location}/${mioga-patch:filename}
${mioga-patch:location}/${mioga-patch:filename}
...
@@ -103,6 +110,8 @@ patches =
...
@@ -103,6 +110,8 @@ patches =
pre-configure-hook = ${mioga-hooks:location}/${mioga-hooks:filename}:pre_configure_hook
pre-configure-hook = ${mioga-hooks:location}/${mioga-hooks:filename}:pre_configure_hook
configure-command =
configure-command =
${perl:location}/bin/perl Makefile.PL
${perl:location}/bin/perl Makefile.PL
make-targets =
slapos-compilation
keep-compile-dir = true
keep-compile-dir = true
perl-binary = ${perl:location}/bin/perl
perl-binary = ${perl:location}/bin/perl
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment