Dear all,
I just received a kind reply from David suggesting to publicly discuss the
consequences of my patch to the <server code directories>/Makefile.am files.
The current "make install" instructions are incomplete in that they do not copy
all the files that need to by copied - most prominently the html directory but
also various others in sched and tools. And it copies files to directories
where "make_project" does not expect them. The attached patch (against
yesterday's HEAD of the git repository) fixes all that, but David indicated
that it may interfere with other ideas on how the "make install" for the server
parts would be used.
The motivation behind the patch was to have at $(prefix)/$(somewhere) with
somewhere=lib/boinc-server-maker (should become a configure option, I propose)
a collection of all files that "make_project" expects, i.e. also the html files
which do not even have a Makefile.am and hence are not installed anywhere. More
severely, files expected separately by make_project in sched, tools and vda are
today found together in /usr/bin. Many hours were previously sunk into
separating them for the boinc-server-maker package that we once uploaded, and
with build instructions which then were soon rendered obsolete with any later
release. With the patch, the Debian packaging would instead take everything for
the boinc-server-maker package from a single location and that is it: the
boinc-server-maker package is ready, server packaging issues solved by "rm *",
basically. This means, all the server logics for the Debian/Ubuntu packages
remain within the BOINC source tree, which should considera
bly help the adoption of those ready-to-use server packages.
With my testing (and consequently also with the tutorial on
http://wiki.debian.org/BOINC/ServerGuide) I did not get any much further than
calling 'make_project'. This now works like a charm - without access to the
checked-out source tree. Reasons speaking against any such approach please
summarise in a quick reply.
Many thanks and best wishes for 2013+
Steffen
Index: boinc_upstream/Makefile.am
===================================================================
--- boinc_upstream.orig/Makefile.am
+++ boinc_upstream/Makefile.am
@@ -13,7 +13,7 @@
endif
if ENABLE_SERVER
- SERVER_SUBDIRS = db test py sched apps tools vda
+ SERVER_SUBDIRS = db test py sched apps tools vda html
## once contained samples/example_app which breaks out-of-source-tree builds
endif
Index: boinc_upstream/html/Makefile.am
===================================================================
--- /dev/null
+++ boinc_upstream/html/Makefile.am
@@ -0,0 +1,5 @@
+
+htmldir=$(DESTDIR)/$(prefix)/share/boinc-server-maker/html
+install-data-local:
+ mkdir -p $(htmldir)
+ cp -r bt drupal inc languages ops project.sample queue user $(htmldir)
Index: boinc_upstream/sched/Makefile.am
===================================================================
--- boinc_upstream.orig/sched/Makefile.am
+++ boinc_upstream/sched/Makefile.am
@@ -87,11 +87,12 @@
if ENABLE_SERVER
-cgidir = $(libexecdir)/cgi-bin
-scheddir = $(libexecdir)/sched
+schedcgidir = $(prefix)/lib/boinc-server-maker/sched
+schedsharedir = $(prefix)/lib/boinc-server-maker/sched
+schedbindir = $(prefix)/lib/boinc-server-maker/sched
-bin_PROGRAMS = \
- adjust_user_priority \
+schedbin_PROGRAMS = \
+ adjust_user_priority \
delete_file \
get_file \
make_work \
@@ -100,9 +101,9 @@
show_shmem \
wu_check
-sched_PROGRAMS = \
+schedshare_PROGRAMS = \
census \
- credit_test \
+ credit_test \
db_dump \
db_purge \
feeder \
@@ -120,12 +121,18 @@
trickle_echo \
update_stats
-cgi_PROGRAMS= \
+schedcgi_PROGRAMS= \
cgi \
file_upload_handler
+schedshare_DATA = \
+ db_dump_spec.xml \
+ assimilator.py \
+ pymw_assimilator.py \
+ transitioner_catchup.php
+
# scripts that 'make install' should put in bindir
-bin_SCRIPTS = start stop status
+schedshare_SCRIPTS = start stop status
noinst_HEADERS = \
assimilate_handler.h \
@@ -275,8 +282,7 @@
if ENABLE_FCGI
-cgi_PROGRAMS += fcgi \
- fcgi_file_upload_handler
+schedcgi_PROGRAMS += fcgi fcgi_file_upload_handler
fcgi_SOURCES = $(cgi_sources)
fcgi_CPPFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
Index: boinc_upstream/configure.ac
===================================================================
--- boinc_upstream.orig/configure.ac
+++ boinc_upstream/configure.ac
@@ -969,6 +969,7 @@
db/Makefile
doc/Makefile
doc/manpages/Makefile
+ html/Makefile
lib/Makefile
locale/Makefile
Makefile
Index: boinc_upstream/db/Makefile.am
===================================================================
--- boinc_upstream.orig/db/Makefile.am
+++ boinc_upstream/db/Makefile.am
@@ -9,4 +9,5 @@
endif
## other stuff to go into the distribution
-EXTRA_DIST = constraints.sql schema.sql init_db
+extradir = $(prefix)/share/boinc-server-maker/db
+dist_extra_DATA = constraints.sql schema.sql init_db
Index: boinc_upstream/tools/Makefile.am
===================================================================
--- boinc_upstream.orig/tools/Makefile.am
+++ boinc_upstream/tools/Makefile.am
@@ -1,11 +1,13 @@
## -*- mode: makefile; tab-width: 4 -*-
include $(top_srcdir)/Makefile.incl
-scheddir = $(libexecdir)/sched
+scheddir = $(prefix)/lib/boinc-server-maker/sched
+toolsdir = $(prefix)/lib/boinc-server-maker/tools
+toolbindir = $(prefix)/lib/boinc-server-maker/tools
-bin_PROGRAMS = create_work sign_executable dir_hier_path dir_hier_move cancel_jobs
+toolbin_PROGRAMS = create_work sign_executable dir_hier_path dir_hier_move cancel_jobs
-dist_bin_SCRIPTS = \
+dist_toolbin_SCRIPTS = \
boinc_submit \
dbcheck_files_exist \
demo_submit \
@@ -23,6 +25,15 @@
makelog.sh \
run_in_ops
+dist_tools_SCRIPTS = \
+ appmgr \
+ db_query \
+ manage_privileges \
+ run_in_ops \
+ stage_file \
+ watch_tcp \
+ project.xml
+
AM_CXXFLAGS += $(MYSQL_CFLAGS)
AM_LDFLAGS += -static -L../sched -L../lib/.libs
Index: boinc_upstream/vda/Makefile.am
===================================================================
--- boinc_upstream.orig/vda/Makefile.am
+++ boinc_upstream/vda/Makefile.am
@@ -1,6 +1,7 @@
include $(top_srcdir)/Makefile.incl
-bin_PROGRAMS = vda vdad ssim
+vdadir=$(prefix)/lib/boinc-server-maker/vda
+vda_PROGRAMS = vda vdad ssim
AM_CXXFLAGS += $(MYSQL_CFLAGS)
AM_LDFLAGS += -static -L../lib/.libs -L../sched
Index: boinc_upstream/samples/wrapper/Makefile
===================================================================
--- boinc_upstream.orig/samples/wrapper/Makefile
+++ boinc_upstream/samples/wrapper/Makefile
@@ -38,4 +38,4 @@
wrapper: wrapper.o libstdc++.a $(BOINC_LIB_DIR)/libboinc.a $(BOINC_API_DIR)/libboinc_api.a $(REGEXP_OBJS)
g++ $(CXXFLAGS) -o wrapper wrapper.o $(REGEXP_OBJS) libstdc++.a -pthread -lboinc_api -lboinc -lboinc_zip
- g++ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -o wrapper wrapper.o $(REGEXP_OBJS) libstdc++.a -pthread -lboinc_api -lboinc -lboinc_zip
+ g++ $(CXXFLAGS) $(CPPFLAGS) -o wrapper wrapper.o $(REGEXP_OBJS) libstdc++.a -pthread -lboinc_api -lboinc -lboinc_zip
Index: boinc_upstream/apps/Makefile.am
===================================================================
--- boinc_upstream.orig/apps/Makefile.am
+++ boinc_upstream/apps/Makefile.am
@@ -3,7 +3,7 @@
include $(top_srcdir)/Makefile.incl
-exampledir = $(libexecdir)/examples
+exampledir = $(prefix)/lib/boinc-apps-examples
example_PROGRAMS = upper_case concat 1sec
upper_case_SOURCES = upper_case.cpp
Index: boinc_upstream/lib/Makefile.am
===================================================================
--- boinc_upstream.orig/lib/Makefile.am
+++ boinc_upstream/lib/Makefile.am
@@ -8,7 +8,8 @@
# Stuff needed for server builds goes here.
if ENABLE_SERVER
-bin_PROGRAMS += crypt_prog parse_test
+serverbindir = $(prefix)/lib/boinc-server-maker/lib
+serverbin_PROGRAMS = crypt_prog parse_test
endif
# end of "if ENABLE_SERVER"
Index: boinc_upstream/py/Makefile.am
===================================================================
--- boinc_upstream.orig/py/Makefile.am
+++ boinc_upstream/py/Makefile.am
@@ -19,6 +19,10 @@
Boinc/tools.py \
Boinc/util.py
+pydir=$(prefix)/usr/share/boinc-server-maker/py/Boinc
+py_SCRIPTS=$(EXTRA_DIST)
+
+
$(srcdir)/Boinc/boinc_db.py: $(top_srcdir)/db/boinc_db.h $(top_srcdir)/lib/common_defs.h
cat $^ | $(top_srcdir)/py/db_def_to_py > $@
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.