ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/COMP/CMSDIST/dbs-light.spec
Revision: 1.6
Committed: Sat Sep 22 16:55:01 2007 UTC (17 years, 7 months ago) by valya
Branch: MAIN
Changes since 1.5: +24 -13 lines
Log Message:
Move compilation of stand-along DBS jar file into build process, it's not required on client side

File Contents

# Content
1 ### RPM cms dbs-light DBS_1_0_8_pre2
2 ## INITENV +PATH PYTHONPATH %i/lib/Clients/Python
3
4 # in order to build DBS RPM you MUST specify which schema/client version should be used.
5 %define schemaVer DBS_1_0_7
6 %define clientVer DBS_1_0_7
7
8 %define cvstag %v
9 Source: cvs://:pserver:anonymous@cmscvs.cern.ch:2401/cvs_server/repositories/CMSSW?passwd=AA_:yZZ3e&module=DBS&export=DBS&tag=-r%{cvstag}&output=/dbs-light.tar.gz
10 #Source: cvs://:pserver:anonymous@cmscvs.cern.ch:2401/cvs_server/repositories/CMSSW?passwd=AA_:yZZ3e&module=DBS/{Servers/JavaServer,Clients/Python,Schema/NeXtGen/DBS-NeXtGen-SQLite_DEPLOYABLE.sql}&export=DBS&tag=-r%{cvstag}&output=/dbs-light.tar.gz
11 Requires: python openssl apache-ant sqlite
12 #Requires: apache-ant mysql oracle apache-tomcat
13
14 %prep
15 %setup -n DBS
16 %build
17 echo "PWD=$PWD"
18 # server
19 cd Servers/JavaServer
20 echo "PWD=$PWD"
21 ant --noconfig dist
22 cd ../../
23 # client
24 (make DBSHOME=%_builddir/DBS/Clients/Python )
25 # schema
26 (make DBSHOME=%_builddir/DBS/Schema/NeXtGen )
27
28 %install
29 mkdir -p %{i}/bin
30 mkdir -p %{i}/lib
31
32 # client
33 mkdir -p %{i}/Clients/Python
34 cp -r Clients/Python/DBSAPI %{i}/Clients/Python
35
36 # schema
37 ls -l Schema/NeXtGen
38 mkdir -p %{i}/Schema/NeXtGen
39 cp -r Schema/NeXtGen/DBS-NeXtGen-SQLite_DEPLOYABLE.sql %{i}/Schema/NeXtGen/
40
41 # server
42 mkdir -p %{i}/Servers/JavaServer/
43
44 mkdir -p %{i}/etc/profile.d
45 (echo "#!/bin/sh"; \
46 echo "source $PYTHON_ROOT/etc/profile.d/init.sh"; \
47 echo "source $SQLITE_ROOT/etc/profile.d/init.sh"; \
48 echo "source $APACHE_ANT_ROOT/etc/profile.d/init.sh"; \
49 echo "source $OPENSSL_ROOT/etc/profile.d/init.sh"; \
50 echo -e "export PYTHONPATH=\044PYTHONPATH:\044DBS_LIGHT_ROOT/Clients/Python:\044DBS_LIGHT_ROOT/Clients/Python/DBSAPI"; \
51 echo -e "export DBS_CLIENT_CONFIG=\044DBS_LIGHT_ROOT/Clients/Python/DBSAPI/dbs.config"; \
52 echo -e "export DBS_SERVER_CONFIG=\044DBS_LIGHT_ROOT/Servers/JavaServer/etc/context.xml"; \
53 ) > %{i}/etc/profile.d/dependencies-setup.sh
54
55 (echo "#!/bin/tcsh"; \
56 echo "source $PYTHON_ROOT/etc/profile.d/init.csh"; \
57 echo "source $SQLITE_ROOT/etc/profile.d/init.csh"; \
58 echo "source $APACHE_ANT_ROOT/etc/profile.d/init.csh"; \
59 echo "source $OPENSSL_ROOT/etc/profile.d/init.csh"; \
60 echo -e "setenv PYTHONPATH \044PYTHONPATH:\044DBS_LIGHT_ROOT/Clients/Python:\044DBS_LIGHT_ROOT/Clients/Python/DBSAPI"; \
61 echo -e "setenv DBS_CLIENT_CONFIG \044DBS_LIGHT_ROOT/Clients/Python/DBSAPI/dbs.config"; \
62 echo -e "setenv DBS_SERVER_CONFIG \044DBS_LIGHT_ROOT/Servers/JavaServer/etc/context.xml"; \
63 ) > %{i}/etc/profile.d/dependencies-setup.csh
64
65 # compile server code
66 cd Servers/JavaServer
67 ant --noconfig jar
68 ls -l $PWD
69 find . -name "*.jar"
70 cd ../../
71 cp -r Servers/JavaServer/* %{i}/Servers/JavaServer
72
73 %post
74 %{relocateConfig}etc/profile.d/dependencies-setup.sh
75 %{relocateConfig}etc/profile.d/dependencies-setup.csh
76
77 # setup approripate links and made post install procedure
78 . $RPM_INSTALL_PREFIX/%{pkgrel}/etc/profile.d/init.sh
79
80 # install DBS stand-along DB
81 if [ ! -f $RPM_INSTALL_PREFIX/%{pkgrel}/dbs.db ]; then
82 sqlite3 $RPM_INSTALL_PREFIX/%{pkgrel}/dbs.db < \
83 $RPM_INSTALL_PREFIX/%{pkgrel}/Schema/NeXtGen/DBS-NeXtGen-SQLite_DEPLOYABLE.sql
84 fi
85
86 # correct DBS client config file to operate in stand-along mode
87 cat $RPM_INSTALL_PREFIX/%{pkgrel}/Clients/Python/DBSAPI/dbs.config | \
88 sed "s/DBSHOME/#DBSHOME/g" |
89 sed "s/JAVAHOME/#JAVAHOME/g" |
90 sed "s/MODE=POST/#MODE=POST/g" > \
91 $RPM_INSTALL_PREFIX/%{pkgrel}/Clients/Python/DBSAPI/dbs.config.tmp
92 cat >> $RPM_INSTALL_PREFIX/%{pkgrel}/Clients/Python/DBSAPI/dbs.config.tmp << EOF
93 # RPM AUTO-CONFIG FOR STANDALONE MODE
94 MODE=EXEC
95 DBSHOME=`echo $DBS_LIGHT_ROOT`/Servers/JavaServer
96 JAVAHOME=`echo $JAVA_HOME`
97 EOF
98 mv $RPM_INSTALL_PREFIX/%{pkgrel}/Clients/Python/DBSAPI/dbs.config.tmp \
99 $RPM_INSTALL_PREFIX/%{pkgrel}/Clients/Python/DBSAPI/dbs.config
100
101 # correct DBS server config file
102 cat > $RPM_INSTALL_PREFIX/%{pkgrel}/Servers/JavaServer/etc/context.xml << EOF
103 <Context path="/servlet/DBSServlet" docBase="DBSServlet" debug="5" reloadable="true" crossContext="true">
104 <Resource name="jdbc/dbs"
105 auth="Container"
106 type="javax.sql.DataSource"
107 maxActive="0"
108 maxIdle="1"
109 maxWait="-1"
110 username=""
111 password=""
112 driverClassName="org.sqlite.JDBC"
113 url="jdbc:sqlite:`echo $RPM_INSTALL_PREFIX/%{pkgrel}/dbs.db`"/>
114 <SupportedSchemaVersion schemaversion="%{schemaVer}" />
115 <SupportedClientVersions clientversions="%{clientVer}" />
116 <DBSBlockConfig maxBlockSize="20000" maxBlockFiles="50" />
117 </Context>
118 EOF
119
120 # obsolete code for reference, since it demonstrates how to do post-install compilation
121 #cd $RPM_INSTALL_PREFIX/%{pkgrel}/Servers/JavaServer/
122 #ant --noconfig jar
123 #ls -l $PWD
124 #find . -name "*.jar"
125 #find $RPM_INSTALL_PREFIX/%{pkgrel} -name "*.jar"