pgpool.spec 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. ##
  2. ## pgpool.spec -- OpenPKG RPM Package Specification
  3. ## Copyright (c) 2000-2009 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 versions
  24. %define V_openpkg 2.3
  25. %define V_pgpool 2.3
  26. %define V_pgpool_dir 2493
  27. # package information
  28. Name: pgpool
  29. Summary: PostgreSQL Connection Pooling
  30. URL: http://pgpool.projects.postgresql.org/
  31. Vendor: Tatsuo Ishii
  32. Packager: OpenPKG Foundation e.V.
  33. Distribution: OpenPKG Community
  34. Class: PLUS
  35. Group: Database
  36. License: GPL
  37. Version: %{V_openpkg}
  38. Release: 20091212
  39. # list of sources
  40. Source0: http://pgfoundry.org/frs/download.php/%{V_pgpool_dir}/pgpool-II-%{V_pgpool}.tar.gz
  41. Source1: rc.pgpool
  42. Patch0: pgpool.patch
  43. # build information
  44. Prefix: %{l_prefix}
  45. BuildRoot: %{l_buildroot}
  46. BuildPreReq: OpenPKG, openpkg >= 20060823, make
  47. PreReq: OpenPKG, openpkg >= 20060823
  48. BuildPreReq: postgresql, openssl, getopt
  49. PreReq: postgresql, openssl, getopt
  50. AutoReq: no
  51. AutoReqProv: no
  52. %description
  53. PGPool is a connection pool server for PostgreSQL. PGPool runs
  54. between PostgreSQL's clients (front ends) and servers (back ends).
  55. A PostgreSQL client can connect to PGPool as if it were a standard
  56. PostgreSQL server. PGPool caches the connection to the PostgreSQL
  57. server to reduce the overhead to establish the connection to it.
  58. Also, PGPool could use two PostgreSQL servers for fail over. If the
  59. first server goes down, PGPool will automatically switch to the
  60. secondary server. Moreover, PGPool supports scheduled switch over.
  61. %track
  62. prog pgpool = {
  63. version = %{V_pgpool_dir}-%{V_pgpool}
  64. url = http://pgfoundry.org/frs/?group_id=1000055
  65. regex = /(\d+/pgpool-II-__VER__)\.tar\.gz
  66. transform = "s/^(\\d+)\/pgpool-II-(\d+(\.\d+)+)/$1-$2/; $_"
  67. }
  68. %prep
  69. %setup -q -n pgpool-II-%{V_pgpool}
  70. %patch -p0
  71. %build
  72. # configure program
  73. CC="%{l_cc}" \
  74. CFLAGS="%{l_cflags -O} %{l_cppflags}" \
  75. CPPFLAGS="%{l_cppflags}" \
  76. LDFLAGS="%{l_ldflags}" \
  77. LIBS="-lgetopt -lssl -lcrypto -lcrypt" \
  78. ./configure \
  79. --prefix=%{l_prefix} \
  80. --mandir=%{l_prefix}/man \
  81. --sysconfdir=%{l_prefix}/etc/pgpool \
  82. --with-pgsrc=/dummy \
  83. --disable-shared
  84. # build program
  85. %{l_make} %{l_mflags -O}
  86. %install
  87. rm -rf $RPM_BUILD_ROOT
  88. # install program
  89. %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
  90. # install default configuration
  91. mv $RPM_BUILD_ROOT%{l_prefix}/etc/pgpool/pcp.conf.sample \
  92. $RPM_BUILD_ROOT%{l_prefix}/etc/pgpool/pcp.conf
  93. mv $RPM_BUILD_ROOT%{l_prefix}/etc/pgpool/pgpool.conf.sample \
  94. $RPM_BUILD_ROOT%{l_prefix}/etc/pgpool/pgpool.conf
  95. mv $RPM_BUILD_ROOT%{l_prefix}/etc/pgpool/pool_hba.conf.sample \
  96. $RPM_BUILD_ROOT%{l_prefix}/etc/pgpool/pool_hba.conf
  97. %{l_shtool} subst \
  98. -e 's;\(logdir = .\).*\(.\)$;\1%{l_prefix}/var/pgpool\2;' \
  99. -e 's;\(socket_dir = .\).*\(.\)$;\1%{l_prefix}/var/pgpool\2;' \
  100. -e 's;\(backend_socket_dir = .\).*\(.\)$;\1%{l_prefix}/var/postgresql/run\2;' \
  101. $RPM_BUILD_ROOT%{l_prefix}/etc/pgpool/pgpool.conf
  102. # install run-command script
  103. %{l_shtool} mkdir -f -p -m 755 \
  104. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  105. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  106. %{SOURCE rc.pgpool} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  107. # create run-time directory
  108. %{l_shtool} mkdir -f -p -m 755 \
  109. $RPM_BUILD_ROOT%{l_prefix}/var/pgpool
  110. # determine installation files
  111. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  112. %{l_files_std} \
  113. '%config %{l_prefix}/etc/pgpool/*' \
  114. '%attr(-,%{l_nusr},%{l_ngrp}) %{l_prefix}/var/pgpool'
  115. %files -f files
  116. %clean
  117. rm -rf $RPM_BUILD_ROOT