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

# User Rev Content
1 valya 1.2 ### RPM cms dbs-light DBS_1_0_8_pre2
2 valya 1.1 ## INITENV +PATH PYTHONPATH %i/lib/Clients/Python
3    
4 valya 1.3 # in order to build DBS RPM you MUST specify which schema/client version should be used.
5 valya 1.4 %define schemaVer DBS_1_0_7
6     %define clientVer DBS_1_0_7
7 valya 1.3
8 valya 1.1 %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 valya 1.6
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 valya 1.1 # 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 valya 1.3 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 valya 1.5 echo -e "export DBS_SERVER_CONFIG=\044DBS_LIGHT_ROOT/Servers/JavaServer/etc/context.xml"; \
53 valya 1.1 ) > %{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 valya 1.3 echo -e "setenv PYTHONPATH \044PYTHONPATH:\044DBS_LIGHT_ROOT/Clients/Python:\044DBS_LIGHT_ROOT/Clients/Python/DBSAPI"; \
61 valya 1.5 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 valya 1.1 ) > %{i}/etc/profile.d/dependencies-setup.csh
64    
65 valya 1.6 # 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 valya 1.1
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 valya 1.3 sed "s/DBSHOME/#DBSHOME/g" |
89     sed "s/JAVAHOME/#JAVAHOME/g" |
90 valya 1.1 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 valya 1.3 <Context path="/servlet/DBSServlet" docBase="DBSServlet" debug="5" reloadable="true" crossContext="true">
104 valya 1.1 <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 valya 1.3 <SupportedSchemaVersion schemaversion="%{schemaVer}" />
115     <SupportedClientVersions clientversions="%{clientVer}" />
116     <DBSBlockConfig maxBlockSize="20000" maxBlockFiles="50" />
117     </Context>
118 valya 1.1 EOF
119 valya 1.6
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"