Line # Revision Author
1 8 ahitrov@rambler.ru ##############################################################################
2 # $HeadURL$
3 # $Id$
4 #
5 # Project default & calculated settings
6 ###############################################################################
7
8
9 # it must!
10 PROJECT_NAME ?= $(error "ERROR: PROJECT_NAME not defined")
11
12 ifeq (${DB_TYPE},NONE)
13 PGSQL_PORT =
14 PGSQL_BASE =
15
16 BASE_HOST =
17 BASE_USER =
18 BASE_PASSWD =
19 else
20 PGSQL_PORT ?= $(error "ERROR: PGSQL_PORT not defined")
21 PGSQL_BASE ?= $(error "ERROR: PGSQL_BASE not defined")
22
23 BASE_HOST ?= $(error "ERROR: BASE_HOST not defined")
24 BASE_USER ?= $(error "ERROR: BASE_USER not defined")
25 BASE_PASSWD ?= $(error "ERROR: BASE_PASSWD not defined")
26 endif
27
28 # additional DB for replications
29 MASTER_BASE_HOST ?= ${BASE_HOST}
30 MASTER_BASE_NAME ?= ${PGSQL_BASE}
31 MASTER_BASE_PASSWD ?= ${BASE_PASSWD}
32 MASTER_BASE_PORT ?= ${PGSQL_PORT}
33 MASTER_BASE_USER ?= ${BASE_USER}
34
35 # additional ports if any
36 PROJECT_REQUIRED ?=
37 217 ahitrov SERIALIZE_WITH ?=
38 650 ahitrov VCS_TYPE ?= svn
39 8 ahitrov@rambler.ru
40 # defaults
41 PRELOADS ?=
42 PERSISTENT_CONN ?= YES
43 PGSQL_REAL_PREPARE ?= YES
44
45 459 ahitrov MEMCACHED_BACKEND ?= Cache::Memcached::Fast
46 8 ahitrov@rambler.ru MEMCACHED_ENABLE ?= NO
47 MEMCACHED_SELECT_TIMEOUT ?= 0.5
48 MEMCACHED_SERVERS ?=
49 MEMCACHED_ENABLE_COMPRESS ?= YES
50 MEMCACHED_DELAYED ?= NO
51 MEMCACHED_SET_MODE ?= SET
52
53 STORE_METHOD ?= TOAST
54 CASCADE ?= YES
55
56 # TODO drop PREVIEW!
57 PREVIEW ?= 150x150
58 AUTH_COOKIE ?= rsid
59
60 DEFAULT_HANDLER ?= HTML::Mason::ApacheHandler
61 DEFAULT_ESCAPE_FLAGS ?=
62
63 # main preamble hanler
64 PREAMBLE_HANDLER ?=
65 # extra preamble handlers relative path
66 PREAMBLE_HANDLER_PATH ?=
67
68 RSYNC_DIRS ?=
69 614 ahitrov RSYNC_CORE_DIRS += contenido/i
70 8 ahitrov@rambler.ru
71 # apache pool
72 ${PROJECT_LC}_START_SERVERS ?= 1
73 START_SERVERS ?= ${${PROJECT_LC}_START_SERVERS}
74
75 ${PROJECT_LC}_MAX_CLIENTS ?= 3
76 MAX_CLIENTS ?= ${${PROJECT_LC}_MAX_CLIENTS}
77
78 ${PROJECT_LC}_MIN_SPARE_SERVERS ?= 1
79 MIN_SPARE_SERVERS ?= ${${PROJECT_LC}_MIN_SPARE_SERVERS}
80
81 ${PROJECT_LC}_MAX_SPARE_SERVERS ?= ${shell perl -e 'print ${MIN_SPARE_SERVERS}+1'}
82 MAX_SPARE_SERVERS ?= ${${PROJECT_LC}_MAX_SPARE_SERVERS}
83
84 ${PROJECT_LC}_SPARE_REAPER_DELAY ?= 0
85 SPARE_REAPER_DELAY ?= ${${PROJECT_LC}_SPARE_REAPER_DELAY}
86
87 SPARE_REAPER_DELAY_FAKEMOD ?= ${shell perl -e 'print ${SPARE_REAPER_DELAY} ? "http_core" : "nonexistent"'}
88
89 # logging
90 ${PROJECT_LC}_HTTPD_ELOG_LEVEL ?= info
91 HTTPD_ELOG_LEVEL ?= ${${PROJECT_LC}_HTTPD_ELOG_LEVEL}
92
93 # kinds of limits
94 MAX_PROCESS_SIZE ?= 65535
95 LIMIT_CMD ?= /usr/bin/limits
96 LIMIT_VMEMORY_HTTPD ?= 256m
97 LISTEN_BACK_LOG_PERCHILD ?= 5
98 LISTEN_BACK_LOG ?= ${shell perl -e 'print ${LISTEN_BACK_LOG_PERCHILD}*${MAX_CLIENTS}'}
99
100 # logging options
101 RSYSLOG_ENABLE ?= NO
102 RSYSLOG_HOST ?= lc.park.rambler.ru
103 LOGGER ?= ${LOCAL}/bin/clogger
104
105 # disable 'start' command
106 DISABLE ?= ${${PROJECT_LC}_DISABLE}
107
108 # cronolog options
109 CRONOLOG_ENABLE ?= NO
110 CRONOLOG_FORMAT ?= %Y/%m/%d/
111
112 # load cron tab
113 CRON_ENABLE ?= NO
114
115 LOCALE ?= ru_RU.UTF-8
116
117 # use mtt or old rewrite?
118 USE_MTT ?= NO
119
120 # use READONLY mode
121 READONLY ?= NO
122
123 # later captcha setting
124 USE_CAPTCHA ?= NO
125 ifeq (${USE_CAPTCHA},YES)
126 CORE_REQUIRED += Authen-Captcha
127 endif
128
129 # Calculated
130 MODULES =
131 ifeq (${shell perl -e 'print lc "${DEVELOPMENT}"'},yes)
132 MODULES = ${PROJ_SRC}/${PROJECT}/lib
133 endif
134 MODULES += ${PROJ_USR}/${PROJECT}/lib
135 ifneq (${PLUGINS},)
136 MODULES += ${addprefix ${PLUG_USR}/,${addsuffix /lib,${PLUGINS}}}
137 endif
138 MODULES += ${CORE_USR}/lib
139
140 PLUGIN_COMP ?= ${shell perl -e 'print lc "${DEVELOPMENT}" eq "yes" ? "${PLUG_SRC}" : "${PLUG_USR}"'}
141 MASON_COMP ?= ${shell perl -e 'print lc "${DEVELOPMENT}" eq "yes" ? "${PROJ_SRC}" : "${PROJ_USR}"'}/${PROJECT}/comps
142 CORE_COMP ?= ${shell perl -e 'print lc "${DEVELOPMENT}" eq "yes" ? "${CORE_SRC}" : "${CORE_USR}"'}/comps
143 RSYNC_ROOT ?= ${PROJ_USR}/${PROJECT}/comps
144 614 ahitrov RSYNC_CORE_ROOT ?= ${CORE_USR}/comps
145 ASSETS_ROOT ?= ${PROJ_VAR}/${PROJECT}
146 8 ahitrov@rambler.ru BINARY ?= ${MASON_COMP}/binary
147 ifdef FRONTENDS
148 FILES ?= ${addprefix http://, ${addsuffix /dav/${PROJECT_LC}, ${FRONTENDS}}}
149 else
150 FILES ?= ${MASON_COMP}/files
151 endif
152 IMAGES ?= ${MASON_COMP}/images
153 STATIC_SOURCE_TOUCH_FILE ?= ${MASON_COMP}/.touch
154
155 203 ahitrov # Files are stored in NFS (=Common) or independently on each front (=Separate)
156 FILE_WEB_STORAGE ?= Separate
157
158 8 ahitrov@rambler.ru HTTPD_DOCS ?= ${MASON_COMP}/www
159 CONF ?= ${PROJ_USR}/${PROJECT}/conf
160
161 # pregenerate static
162 PREGEN_GLOB ?= keeper project state
163 PREGEN_LIST ?=
164
165 # Mason caching
166 MASON_CACHE_ENABLED ?= YES
167
168 # Mason caching via Memcached
169 MASON_MEMCACHED_BACKEND ?= ${MEMCACHED_BACKEND}
170 MASON_MEMCACHED_DEBUG ?= NO
171 MASON_MEMCACHED_ENABLED ?= NO
172 MASON_MEMCACHED_NAMESPACE ?= ${PROJECT}:${PROJECT_VERSION}
173 MASON_MEMCACHED_SERVERS ?=
174 597 ahitrov COMP_TIMINGS_DISABLE ?= YES
175 8 ahitrov@rambler.ru
176 # overrides
177 ifeq (${DB_TYPE},SINGLE)
178 BASE_HOST =
179 endif
180
181 # psql wrappers
182 PSQL ?= ${shell export PATH=${LOCAL}/pgsql/bin:$${PATH}; \
183 PSQL=`which psql`; \
184 if [ -x "$${PSQL}" ]; then \
185 echo $${PSQL}; \
186 else \
187 echo 'echo "ERROR: No executable psql found";'; \
188 echo 'echo "HINT: Add path to psql to your environment PATH";'; \
189 echo 'exit 1;'; \
190 fi;}
191
192 PGDUMP ?= ${shell export PATH=${LOCAL}/pgsql/bin:$${PATH}; \
193 PGDUMP=`which pg_dump`; \
194 if [ -x "$${PGDUMP}" ]; then \
195 echo $${PGDUMP}; \
196 else \
197 echo 'echo "ERROR: No executable pg_dump found";'; \
198 echo 'echo "HINT: Add path to pg_dump to your environment PATH";'; \
199 echo 'exit 1;'; \
200 fi;}
201
202 # rsync wrappers
203 RSYNC = ${shell export PATH=${LOCAL}/bin:$${PATH}; \
204 RSYNC=`which rsync`; \
205 if [ -x "$${RSYNC}" ]; then \
206 echo $${RSYNC}; \
207 else \
208 echo 'echo "ERROR: No executable rsync found";'; \
209 echo 'echo "HINT: Add path to rsync to your environment PATH,";'; \
210 echo 'echo " or install with: make port_install PORT=rsync``";'; \
211 echo 'exit 1;'; \
212 fi;}
213
214 365 ahitrov COMPOSITE = ${shell export PATH=${LOCAL}/bin:$${PATH}; which composite}
215 496 ahitrov #CONVERT = ${shell export PATH=${LOCAL}/bin:$${PATH}; which convert}
216 #ifeq (${CONVERT},)
217 #${error ERROR: No executable convert found, you need to install ImageMagick first}
218 #endif

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.