sqlite.spec 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. ##
  2. ## sqlite.spec -- OpenPKG RPM Package Specification
  3. ## Copyright (c) 2000-2008 OpenPKG Foundation e.V. <http://openpkg.net/>
  4. ##
  5. ## Permission to use, copy, modify, and distribute this software for
  6. ## any purpose with or without fee is hereby granted, provided that
  7. ## the above copyright notice and this permission notice appear in all
  8. ## copies.
  9. ##
  10. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  11. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  12. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  13. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  14. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  15. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  16. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  17. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  18. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  19. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  20. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  21. ## SUCH DAMAGE.
  22. ##
  23. # package version
  24. %define V_sqlite 3.6.0
  25. %define V_odbc 0.77
  26. %define V_jdbc 20080420
  27. # package information
  28. Name: sqlite
  29. Summary: SQL Lite
  30. URL: http://www.sqlite.org/
  31. Vendor: D. Richard Hipp
  32. Packager: OpenPKG Foundation e.V.
  33. Distribution: OpenPKG Community
  34. Class: BASE
  35. Group: Database
  36. License: PD
  37. Version: %{V_sqlite}
  38. Release: 20080717
  39. # package options
  40. %option with_debug no
  41. %option with_readline no
  42. %option with_threads no
  43. %option with_fts3 no
  44. %option with_rtree no
  45. %option with_odbc no
  46. %option with_jdbc no
  47. # list of sources
  48. Source0: http://www.sqlite.org/sqlite-%{V_sqlite}.tar.gz
  49. Source1: http://www.ch-werner.de/sqliteodbc/sqliteodbc-%{V_odbc}.tar.gz
  50. Source2: http://www.ch-werner.de/javasqlite/javasqlite-%{V_jdbc}.tar.gz
  51. Patch0: sqlite.patch
  52. Patch1: sqlite.patch.odbc
  53. # build information
  54. Prefix: %{l_prefix}
  55. BuildRoot: %{l_buildroot}
  56. BuildPreReq: OpenPKG, openpkg >= 20040130, make, gawk
  57. PreReq: OpenPKG, openpkg >= 20040130
  58. %if "%{with_readline}" == "yes"
  59. BuildPreReq: readline, pkgconfig
  60. PreReq: readline
  61. %endif
  62. %if "%{with_odbc}" == "yes"
  63. BuildPreReq: ODBC
  64. PreReq: ODBC
  65. %endif
  66. %if "%{with_jdbc}" == "yes"
  67. BuildPreReq: java, JAVA-JDK
  68. PreReq: java, JAVA-JDK
  69. %endif
  70. AutoReq: no
  71. AutoReqProv: no
  72. %description
  73. SQLite is a C library that implements an embeddable SQL database
  74. engine. Programs that link with the SQLite library can have SQL
  75. database access without running a separate RDBMS process. The
  76. distribution comes with a standalone command-line access program
  77. (sqlite) that can be used to administer an SQLite database and which
  78. serves as an example of how to use the SQLite library. SQLite is not
  79. a client library used to connect to a big database server. SQLite is
  80. the server. The SQLite library reads and writes directly to and from
  81. the database files on disk.
  82. %track
  83. prog sqlite = {
  84. version = %{V_sqlite}
  85. url = http://www.sqlite.org/download.html
  86. regex = sqlite-(\d+\.\d+\.\d+)\.tar\.gz
  87. }
  88. prog sqlite:odbc = {
  89. version = %{V_odbc}
  90. url = http://www.ch-werner.de/sqliteodbc/
  91. regex = sqliteodbc-(__VER__)\.tar\.gz
  92. }
  93. prog sqlite:jdbc = {
  94. version = %{V_jdbc}
  95. url = http://www.ch-werner.de/javasqlite/overview-summary.html
  96. regex = javasqlite-(\d+)\.tar\.gz
  97. }
  98. %prep
  99. %setup -q
  100. %patch -p0 -P 0
  101. %if "%{with_odbc}" == "yes"
  102. %setup -q -D -T -a 1
  103. %patch -p0 -d sqliteodbc-%{V_odbc} -P 1
  104. %endif
  105. %if "%{with_jdbc}" == "yes"
  106. %setup -q -D -T -a 2
  107. %endif
  108. # post-adjust sources
  109. %{l_shtool} subst \
  110. -e '/LINENO: error: C[+]* preprocessor/{N;N;N;N;s/.*/:/;}' \
  111. configure
  112. %build
  113. # configure and build SQLite
  114. CC="%{l_cc}"
  115. CFLAGS="%{l_cflags -O}"
  116. CPPFLAGS="-I. %{l_cppflags}"
  117. LDFLAGS="%{l_ldflags}"
  118. LIBS="-lm"
  119. export CC
  120. export CPPFLAGS
  121. export CFLAGS
  122. export LDFLAGS
  123. export LIBS
  124. GREP="grep" \
  125. ./configure \
  126. --prefix=%{l_prefix} \
  127. %if "%{with_threads}" == "yes"
  128. --enable-threadsafe \
  129. %else
  130. --disable-threadsafe \
  131. %endif
  132. %if "%{with_readline}" == "yes"
  133. --enable-readline \
  134. --with-readline-lib="`%{l_prefix}/bin/pkg-config --libs readline`" \
  135. --with-readline-inc="`%{l_prefix}/bin/pkg-config --cflags readline`" \
  136. %else
  137. --disable-readline \
  138. %endif
  139. %if "%{with_debug}" == "yes"
  140. --enable-debug \
  141. %else
  142. --disable-debug \
  143. %endif
  144. --disable-amalgamation \
  145. --disable-shared
  146. MFLAGS=""
  147. %if "%{with_fts3}" == "yes"
  148. MFLAGS="$MFLAGS FTS3=1"
  149. %endif
  150. %if "%{with_rtree}" == "yes"
  151. MFLAGS="$MFLAGS RTREE=1"
  152. %endif
  153. %{l_make} %{l_mflags -O} $MFLAGS
  154. # optionally build ODBC driver
  155. %if "%{with_odbc}" == "yes"
  156. ( cd sqliteodbc-%{V_odbc}
  157. export CC="%{l_cc}"
  158. export CFLAGS="%{l_cflags -O}"
  159. export CPPFLAGS=""
  160. export LDFLAGS=""
  161. CPPFLAGS="$CPPFLAGS -I.."
  162. LDFLAGS="$LDFLAGS -L../.libs"
  163. ./configure \
  164. --prefix=%{l_prefix} \
  165. --with-sqlite3=.. \
  166. --with-odbc=%{l_prefix} \
  167. --disable-static \
  168. --enable-shared
  169. %{l_make} %{l_mflags -O}
  170. ) || exit $?
  171. %endif
  172. # optionally build JDBC driver
  173. %if "%{with_jdbc}" == "yes"
  174. ( cd javasqlite-%{V_jdbc}
  175. export JAVA_PLATFORM="sun-jdk"
  176. eval `%{l_prefix}/bin/java-toolkit -e`
  177. export CC="%{l_cc}"
  178. export CFLAGS="%{l_cflags -O}"
  179. export CPPFLAGS=""
  180. export LDFLAGS=""
  181. CPPFLAGS="$CPPFLAGS -I.."
  182. LDFLAGS="$LDFLAGS -L../.libs"
  183. ./configure \
  184. --prefix=%{l_prefix} \
  185. --with-jardir=%{l_prefix}/lib \
  186. --with-jdk=$JAVA_HOME \
  187. --with-sqlite3=..
  188. %{l_make} %{l_mflags}
  189. ) || exit $?
  190. %endif
  191. %install
  192. # create installation hierarchy
  193. rm -rf $RPM_BUILD_ROOT
  194. %{l_shtool} mkdir -f -p -m 755 \
  195. $RPM_BUILD_ROOT%{l_prefix}/bin \
  196. $RPM_BUILD_ROOT%{l_prefix}/lib \
  197. $RPM_BUILD_ROOT%{l_prefix}/include \
  198. $RPM_BUILD_ROOT%{l_prefix}/man/man1
  199. # install SQLite
  200. %{l_make} %{l_mflags} install \
  201. prefix=$RPM_BUILD_ROOT%{l_prefix}
  202. %{l_shtool} install -c -m 644 \
  203. sqlite3.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/sqlite3.1
  204. # install SQLite ODBC driver (optional)
  205. %if "%{with_odbc}" == "yes"
  206. ( cd sqliteodbc-%{V_odbc}
  207. %{l_make} %{l_mflags} install \
  208. prefix=$RPM_BUILD_ROOT%{l_prefix}
  209. ) || exit $?
  210. %endif
  211. # install SQLite JDBC driver (optional)
  212. %if "%{with_jdbc}" == "yes"
  213. ( cd javasqlite-%{V_jdbc}
  214. %{l_make} %{l_mflags} install DESTDIR=$RPM_BUILD_ROOT
  215. ) || exit $?
  216. %endif
  217. # strip down installation files
  218. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  219. # provide convenient symlinks
  220. ln $RPM_BUILD_ROOT%{l_prefix}/bin/sqlite3 \
  221. $RPM_BUILD_ROOT%{l_prefix}/bin/sqlite
  222. ln $RPM_BUILD_ROOT%{l_prefix}/man/man1/sqlite3.1 \
  223. $RPM_BUILD_ROOT%{l_prefix}/man/man1/sqlite.1
  224. # determine installation files
  225. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  226. %{l_files_std}
  227. %files -f files
  228. %clean
  229. rm -rf $RPM_BUILD_ROOT
  230. %post
  231. # optionally link into ODBC
  232. %if "%{with_odbc}" == "yes"
  233. if ! $RPM_INSTALL_PREFIX/bin/odbcinst -q -d -n "SQLite3" >/dev/null 2>&1; then
  234. ( echo "[SQLite3]"
  235. echo "Description = SQLite 3 ODBC Driver"
  236. echo "Driver = $RPM_INSTALL_PREFIX/lib/libsqlite3odbc.so"
  237. echo "Setup = $RPM_INSTALL_PREFIX/lib/libsqlite3odbc.so"
  238. echo "FileUsage = 1"
  239. ) | $RPM_INSTALL_PREFIX/bin/odbcinst -i -d -n "SQLite3" -r >/dev/null 2>&1 || true
  240. fi
  241. %endif
  242. %preun
  243. if [ $1 -eq 1 ]; then : ;
  244. # optionally unlink from ODBC
  245. %if "%{with_odbc}" == "yes"
  246. $RPM_INSTALL_PREFIX/bin/odbcinst -u -s -l -n "SQLite3 DataSource" >/dev/null 2>&1 || true
  247. %endif
  248. fi