3 %bcond_without tests # disable testing
4 %bcond_without tcl # disable Tcl support
5 %bcond_without kerberos5 # disable kerberos5 support
6 %bcond_without perl # disable Perl support
7 %bcond_without python # disable Python support
8 %bcond_with bonjour # Bonjour/DNS_SD support
9 %bcond_without ldap # disable LDAP support
10 %bcond_without selinux # sepgsql contrib module
11 %bcond_with systemtap # systemtap/dtrace probes
12 %bcond_with absolute_dbpaths # enable absolute paths to create database
13 # (disabled by default because it is a security risk)
17 %define pgsqlversion 9.4
18 %define pgsqlpriority 94
20 Summary: PostgreSQL Data Base Management System
21 Summary(de.UTF-8): PostgreSQL Datenbankverwaltungssystem
22 Summary(es.UTF-8): Gestor de Banco de Datos PostgreSQL
23 Summary(fr.UTF-8): Sysème de gestion de base de données PostgreSQL
24 Summary(pl.UTF-8): PostgreSQL - system bazodanowy
25 Summary(pt_BR.UTF-8): Gerenciador de Banco de Dados PostgreSQL
26 Summary(ru.UTF-8): PostgreSQL - система управления базами данных
27 Summary(tr.UTF-8): Veri Tabanı Yönetim Sistemi
28 Summary(uk.UTF-8): PostgreSQL - система керування базами даних
29 Summary(zh_CN.UTF-8): PostgreSQL 客户端程序和库文件
30 Name: postgresql-%{pgsqlversion}
31 Version: %{pgsqlversion}.20
34 Group: Applications/Databases
35 Source0: http://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2
36 # Source0-md5: 5821867741c821736266f27b6b8a859a
37 Source1: postgresql.init
38 Source2: pgsql-Database-HOWTO-html.tar.gz
39 # Source2-md5: 5b656ddf1db41965761f85204a14398e
40 Source3: postgresql.sysconfig
41 Source4: postgresql.logrotate
42 Patch0: postgresql-conf.patch
43 Patch1: postgresql-absolute_dbpaths.patch
44 Patch2: postgresql-ecpg-includedir.patch
45 Patch3: per-version-dirs.patch
46 Patch4: postgresql-disable_horology_test.patch
47 Patch5: postgresql-heimdal.patch
48 Patch7: socket-dir-fixes.patch
49 URL: http://www.postgresql.org/
50 BuildRequires: autoconf >= 2.69
51 BuildRequires: automake
52 %{?with_bonjour:BuildRequires: avahi-compat-libdns_sd-devel}
53 # not needed for releases... but fixes something in snapshot
54 BuildRequires: bison >= 1.875
55 BuildRequires: docbook-dtd42-sgml
56 BuildRequires: docbook-dtd42-xml
57 BuildRequires: docbook-style-xsl
58 BuildRequires: flex >= 2.5.31
59 BuildRequires: gettext-tools
60 BuildRequires: gnome-doc-tools
61 %{?with_kerberos5:BuildRequires: heimdal-devel}
62 %{?with_selinux:BuildRequires: libselinux-devel >= 2.1.10}
63 BuildRequires: libtool
64 BuildRequires: libxml2-devel >= 1:2.6.23
65 BuildRequires: libxslt-devel
66 BuildRequires: libxslt-progs
67 BuildRequires: ncurses-devel >= 5.0
68 %{?with_ldap:BuildRequires: openldap-devel}
69 BuildRequires: openssl-devel >= 0.9.7d
70 BuildRequires: ossp-uuid-devel
71 BuildRequires: pam-devel
72 %{?with_perl:BuildRequires: perl-devel}
74 BuildRequires: python >= 1:2.3
75 BuildRequires: python-devel >= 1:2.3
76 BuildRequires: python-modules >= 1:2.3
78 BuildRequires: readline-devel >= 4.2
79 BuildRequires: rpmbuild(macros) >= 1.671
80 %{?with_systemtap:BuildRequires: systemtap-sdt-devel}
81 %{?with_tcl:BuildRequires: tcl-devel >= 8.4.3}
82 %{?with_tests:BuildRequires: tzdata}
83 BuildRequires: zlib-devel
84 Requires(post,preun): /sbin/chkconfig
85 Requires(pre): /bin/id
86 Requires(pre): /usr/bin/getgid
87 Requires(triggerpostun): /bin/id
88 Requires(triggerpostun): /usr/sbin/usermod
89 Requires: %{name}-clients = %{version}-%{release}
90 Requires: %{name}-dirs = %{version}-%{release}
91 Requires: postgresql-libs >= %{version}-%{release}
92 Requires: rc-scripts >= 0.4.3.0
95 Obsoletes: postgresql-module-plpgsql
96 Obsoletes: postgresql-module-tsearch2
97 Obsoletes: postgresql-server
98 Obsoletes: postgresql-test
99 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
101 %define pgsqldatadir %{_datadir}/postgresql/%{pgsqlversion}
102 %define pgsqllibdir %{_libdir}/postgresql/%{pgsqlversion}
103 %define moduledir %{pgsqllibdir}/lib
104 %define extensiondir %{pgsqldatadir}/extension
106 %define _ulibdir /usr/lib
109 # spi, test_decoding, worker_spi - examples/tests
110 # tsearch2 - old module for compatibility only
111 %define contrib_modules adminpack auth_delay auto_explain btree_gin btree_gist chkpass citext cube dblink dict_int dict_xsyn earthdistance file_fdw fuzzystrmatch hstore intagg intarray isn lo ltree oid2name pageinspect passwordcheck pg_archivecleanup pg_buffercache pg_freespacemap pg_prewarm pg_standby pg_stat_statements pg_trgm pg_test_fsync pg_test_timing pg_upgrade pg_xlogdump pgbench pgcrypto pgrowlocks pgstattuple postgres_fdw seg %{?with_selinux:sepgsql} sslinfo tablefunc tcn unaccent uuid-ossp vacuumlo xml2
114 PostgreSQL Data Base Management System (formerly known as Postgres,
117 PostgreSQL is an enhancement of the POSTGRES database management
118 system, a next-generation DBMS research prototype. While PostgreSQL
119 retains the powerful data model and rich data types of POSTGRES, it
120 replaces the PostQuel query language with an extended subset of SQL.
121 PostgreSQL is free and the complete source is available.
123 PostgreSQL development is being performed by a team of Internet
124 developers who all subscribe to the PostgreSQL development mailing
125 list. The current coordinator is Marc G. Fournier
126 (scrappy@postgreSQL.org). This team is now responsible for all current
127 and future development of PostgreSQL.
129 The authors of PostgreSQL 1.01 were Andrew Yu and Jolly Chen. Many
130 others have contributed to the porting, testing, debugging and
131 enhancement of the code. The original Postgres code, from which
132 PostgreSQL is derived, was the effort of many graduate students,
133 undergraduate students, and staff programmers working under the
134 direction of Professor Michael Stonebraker at the University of
135 California, Berkeley.
137 The original name of the software at Berkeley was Postgres. When SQL
138 functionality was added in 1995, its name was changed to Postgres95.
139 The name was changed at the end of 1996 to PostgreSQL.
141 PostgreSQL runs on Solaris, SunOS, HPUX, AIX, Linux, Irix, FreeBSD,
142 and most flavours of Unix.
144 %description -l pl.UTF-8
145 System Zarządzania Bazą Danych PostgreSQL (dawniej znany jako
146 Postgres, następnie jako Postgres95).
148 PostgreSQL jest rozszerzeniem systemu zarządzania baz danych POSTGRES,
149 prototypu DBMS następnej generacji. Co prawda PostgreSQL odziedziczył
150 model danych oraz bogaty zbiór różnych typów danych, to jednak język
151 zapytań PostQuel został zastąpiony rozszerzonym SQL-em. PostgreSQL
152 jest wolnym oprogramowaniem i kody źródłowe tego oprogramowania są w
155 System PostgreSQL jest tworzony przez zespół ludzi, którzy są zapisani
156 na listę dyskusyjną dotyczącą PostgreSQL-a. Obecnym koordynatorem jest
157 Marc G. Fournier (scrappy@postgreSQL.org). Wymieniony wyżej zespół
158 jest odpowiedzialny za aktualny i przyszły rozwój systemu PostgreSQL.
160 Autorami PostgreSQL-a 1.01 byli Andrew Yu oraz Jolly Chen. Wielu
161 innych pomagało przenosząc na różne platformy, testując, analizując i
162 rozszerzając kod. Oryginalny kod Postgres-a, na podstawie którego
163 PostgreSQL powstał, był wysiłkiem wielu absolwentów, studentów oraz
164 zespołu programistów, którzy pracowali pod kierunkiem profesora
165 Michaela Stonebrakera z Uniwersytetu Kalifornii w Berkeley.
167 Nazwa oryginalna oprogramowania tworzonego w Berkeley brzmiała
168 Postgres. W 1995 roku dodano język zapytań SQL i nazwę zmieniono na
169 Postgres95. W końcu roku 1996 nazwę ostatecznie zmieniono na
172 PostgreSQL może być uruchomiony pod następującymi systemami: Solaris,
173 SunOS, HPUX, AIX, Linux, Irix, FreeBSD i innymi systemami uniksowymi.
176 Summary: Common directories for PostgresSQL %{pgsqlversion}
177 Summary(pl.UTF-8): Wspólne pliki i katalogi dla PostgreSQL %{pgsqlversion}
178 Group: Applicataion/Databases
179 Requires: postgresql-common >= %{version}-%{release}
182 Common directories for PostgresSQL %{pgsqlversion}
184 %description dirs -l pl.UTF-8
185 Wspólne pliki i katalogi dla PostgreSQL %{pgsqlversion}
187 %package backend-devel
188 Summary: PostgreSQL backend development header files
189 Summary(pl.UTF-8): PostgreSQL - pliki nagłówkowe dla backendu
190 Group: Development/Libraries
191 Requires: postgresql-devel >= %{version}-%{release}
192 Requires: postgresql-libs >= %{version}-%{release}
193 Obsoletes: postgresql-backend-devel
195 %description backend-devel
196 This package contains header files required to compile functions that
197 could be loaded directly by backend
199 %description backend-devel -l pl.UTF-8
200 Pakiet zawiera nagłówki wymagane do kompilacji funkcji ktore moga byc
201 bezposrednio ladowane przez beckend serwera PostgreSQL.
204 Summary: Clients needed to access a PostgreSQL server
205 Summary(es.UTF-8): Clientes necesarios para acceder al servidor PostgreSQL
206 Summary(pl.UTF-8): Klienci wymagani do dostępu do serwera PostgreSQL
207 Summary(pt_BR.UTF-8): Clientes necessários para acessar o servidor PostgreSQL
208 Summary(ru.UTF-8): Клиентские программы, необходимые для доступа к серверу PostgreSQL
209 Summary(uk.UTF-8): Клієнтські програми, необхідні для доступу до сервера PostgreSQL
210 Group: Applications/Databases
211 Requires: alternatives
212 Requires: %{name}-dirs = %{version}-%{release}
213 Requires: postgresql-libs >= %{version}-%{release}
214 Obsoletes: postgresql-clients
217 This package includes only the clients needed to access an PostgreSQL
218 server. The server is included in the main package. If all you need is
219 to connect to another PostgreSQL server, the this is the only package
220 you need to install. Clients include several command-line utilities
221 you can use to manage your databases on a remote PostgreSQL server.
223 %description clients -l pl.UTF-8
224 Pakiet zawiera programy klienckie potrzebne dla dostępu do serwera
225 PostgreSQL oraz narzędzia do zarządzania bazami działające z linii
226 poleceń. Serwer znajduje się w głównym pakiecie.
229 Summary: Documentation for PostgreSQL
230 Summary(pl.UTF-8): Dodatkowa dokumantacja dla PostgreSQL
231 Group: Applications/Databases
232 Obsoletes: postgresql-doc
235 This package includes documentation and HOWTO for programmer, admin
236 etc., in HTML format.
238 %description doc -l pl.UTF-8
239 Pakiet ten zawiera dokumentację oraz HOWTO m.in. dla programistów,
240 administratorów w formacie HTML.
243 Summary: Embedded SQL in C interface
244 Summary(pl.UTF-8): Interfejs wbudowanego SQL-a w język C
246 Requires: %{name}-dirs = %{version}-%{release}
247 Requires: postgresql-libs >= %{version}-%{release}
248 Requires: postgresql-ecpg-libs >= %{version}-%{release}
249 Obsoletes: postgresql-ecpg
252 Embedded SQL in C interface.
254 %description ecpg -l pl.UTF-8
255 Interfejs wbudowanego SQL-a w język C.
257 %package module-plperl
258 Summary: PL/perl - PostgreSQL procedural language
259 Summary(pl.UTF-8): PL/perl - język proceduralny bazy danych PostgreSQL
260 Group: Applications/Databases
261 Requires: %{name} = %{version}-%{release}
262 Obsoletes: postgresql-module-plperl
264 %description module-plperl
265 From PostgreSQL documentation:
267 Postgres supports the definition of procedural languages. In the case
268 of a function or trigger procedure defined in a procedural language,
269 the database has no built-in knowledge about how to interpret the
270 function's source text. Instead, the task is passed to a handler that
271 knows the details of the language. The handler itself is a special
272 programming language function compiled into a shared object and loaded
275 To enable PL/Perl procedural language for your database you have to
276 run createlang command.
278 %description module-plperl -l pl.UTF-8
279 Z dokumentacji PostgreSQL:
281 Postgres ma wsparcie dla języków proceduralnych. W przypadku, kiedy
282 programista zdefiniuje procedurę wyzwalacza lub funkcję w języku
283 proceduralnym, baza danych nie ma pojęcia jak interpretować tego typu
284 funkcję. Funkcja lub procedura ta jest przekazywana do interpretera,
285 który wie jak ją wykonać. Interpreter jest odpowiednią, specjalną
286 funkcją, która jest skompilowana w obiekt dzielony i ładowany w razie
289 Za pomocą polecenia createlang można dodać obsługę języka
290 proceduralnego PL/Perl dla swojej bazy danych.
292 %package module-plpython
293 Summary: PL/Python - PostgreSQL procedural language
294 Summary(pl.UTF-8): PL/Python - język proceduralny bazy danych PostgreSQL
295 Group: Applications/Databases
296 Requires: %{name} = %{version}-%{release}
297 %pyrequires_eq python
298 Obsoletes: postgresql-module-plpython
300 %description module-plpython
301 From PostgreSQL documentation:
303 Postgres supports the definition of procedural languages. In the case
304 of a function or trigger procedure defined in a procedural language,
305 the database has no built-in knowledge about how to interpret the
306 function's source text. Instead, the task is passed to a handler that
307 knows the details of the language. The handler itself is a special
308 programming language function compiled into a shared object and loaded
311 To enable PL/Python procedural language for your database you have to
312 run createlang command.
314 %description module-plpython -l pl.UTF-8
315 Z dokumentacji PostgreSQL:
317 Postgres ma wsparcie dla języków proceduralnych. W przypadku, kiedy
318 programista zdefiniuje procedurę wyzwalacza lub funkcję w języku
319 proceduralnym, baza danych nie ma pojęcia jak interpretować tego typu
320 funkcję. Funkcja lub procedura ta jest przekazywana do interpretera,
321 który wie jak ją wykonać. Interpreter jest odpowiednią, specjalną
322 funkcją, która jest skompilowana w obiekt dzielony i ładowany w razie
325 Za pomocą polecenia createlang można dodać obsługę języka
326 proceduralnego PL/Python dla swojej bazy danych.
328 %package module-pltcl
329 Summary: PL/Tcl - PostgreSQL procedural language
330 Summary(pl.UTF-8): PL/Tcl - język proceduralny bazy danych PostgreSQL
331 Group: Applications/Databases
332 Requires: %{name} = %{version}-%{release}
334 Obsoletes: postgresql-module-pltcl
336 %description module-pltcl
337 From PostgreSQL documentation:
339 Postgres supports the definition of procedural languages. In the case
340 of a function or trigger procedure defined in a procedural language,
341 the database has no built-in knowledge about how to interpret the
342 function's source text. Instead, the task is passed to a handler that
343 knows the details of the language. The handler itself is a special
344 programming language function compiled into a shared object and loaded
347 To enable PL/Tcl procedural language for your database you have to run
350 %description module-pltcl -l pl.UTF-8
351 Z dokumentacji PostgreSQL:
353 Postgres ma wsparcie dla języków proceduralnych. W przypadku, kiedy
354 programista zdefiniuje procedurę wyzwalacza lub funkcję w języku
355 proceduralnym, baza danych nie ma pojęcia jak interpretować tego typu
356 funkcję. Funkcja lub procedura ta jest przekazywana do interpretera,
357 który wie jak ją wykonać. Interpreter jest odpowiednią, specjalną
358 funkcją, która jest skompilowana w obiekt dzielony i ładowany w razie
361 Za pomocą polecenia createlang można dodać obsługę języka
362 proceduralnego PL/Tcl dla swojej bazy danych.
364 %package module-dblink
365 Summary: dblink module for PostgreSQL
366 Summary(pl.UTF-8): Moduł dblink dla PostgreSQL-a
367 Group: Applications/Databases
368 Requires: %{name} = %{version}-%{release}
369 Obsoletes: postgresql-module-dblink
371 %description module-dblink
372 dblink module for PostgreSQL provides functions returning results from
375 %description module-dblink -l pl.UTF-8
376 Moduł dblink dla PostgreSQL-a udostępnia funkcje zwracające wyniki ze
380 Summary: Large Objects module for PostgreSQL
381 Summary(pl.UTF-8): Moduł Large Objects dla PostgreSQL-a
382 Group: Applications/Databases
383 Requires: %{name} = %{version}-%{release}
384 Obsoletes: postgresql-module-lo
386 %description module-lo
387 Large Objects module for PostgreSQL adds a new data type 'lo', some
388 support functions and a trigger which handles the orphaning problem.
390 %description module-lo -l pl.UTF-8
391 Moduł Large Objects dla PostgreSQL-a dodaje nowy typ danych 'lo',
392 kilka funkcji pomocniczych i wyzwalacz rozwiązujący problem
393 osieroconych obiektów.
395 %package module-pg_trgm
396 Summary: Trigram matching for PostgreSQL
397 Summary(pl.UTF-8): Dopasowanie trigramowe dla PostgreSQL-a
398 Group: Applications/Databases
399 Requires: %{name} = %{version}-%{release}
400 Obsoletes: postgresql-module-pg_trgm
402 %description module-pg_trgm
403 This module provides functions and index classes for determining the
404 similarity of text based on trigram matching.
406 %description module-pg_trgm -l pl.UTF-8
407 Ten moduł dostarcza funkcje i klasy do rozpoznawania podobnych tekstów
408 w oparciu o dopasowywanie trigramowe (trigram matching).
410 %package module-pgcrypto
411 Summary: Cryptographic functions for PostgreSQL
412 Summary(pl.UTF-8): Funkcje kryptograficzne dla PostgreSQL-a
413 Group: Applications/Databases
414 Requires: %{name} = %{version}-%{release}
415 Obsoletes: postgresql-module-pgcrypto
417 %description module-pgcrypto
418 Cryptographic functions for PostgreSQL.
420 %description module-pgcrypto -l pl.UTF-8
421 Funkcje kryptograficzne dla PostgreSQL.
423 %package module-sepgsql
424 Summary: PostgreSQL external security provider using SELinux
425 Summary(pl.UTF-8): Zewnętrzny moduł bezpieczeństwa PostgreSQL-a wykorzystujący SELinuksa
426 Group: Applications/Databases
427 Requires: %{name} = %{version}-%{release}
428 Requires: libselinux >= 2.1.10
429 Obsoletes: postgresql-module-sepgsql
431 %description module-sepgsql
432 PostgreSQL external security provider using SELinux.
434 %description module-sepgsql -l pl.UTF-8
435 Zewnętrzny moduł bezpieczeństwa PostgreSQL-a wykorzystujący SELinuksa.
437 %package module-tablefunc
438 Summary: crosstab functions for PostgreSQL
439 Summary(pl.UTF-8): Funkcje crosstab dla PostgreSQL-a
440 Group: Applications/Databases
441 Requires: %{name} = %{version}-%{release}
442 Obsoletes: postgresql-module-tablefunc
444 %description module-tablefunc
445 crosstab functions for PostgreSQL.
447 %description module-tablefunc -l pl.UTF-8
448 Funkcje crosstab dla PostgreSQL-a.
451 Summary: XML-handling functions for PostgreSQL
452 Summary(pl.UTF-8): Funkcje do obsługi XML-a dla PostgreSQL-a
453 Group: Applications/Databases
454 Requires: %{name} = %{version}-%{release}
455 Requires: libxml2 >= 1:2.6.23
456 Obsoletes: postgresql-module-xml2
458 %description module-xml2
459 Module with XML functions provides both XPath querying and XSLT
460 functionality. There is also a new table function which allows the
461 straightforward return of multiple XML results.
463 %description module-xml2 -l pl.UTF-8
464 Moduł z funkcjami XML zapewniającymi obsługę zapytań XPath oraz
465 funkcjonalność XSLT. Jest także nowa funkcja tabelowa pozwalająca na
466 bezpośrednie zwracanie wielu wyników XML.
469 Summary: Miscellaneous PostgreSQL contrib modules
470 Summary(pl.UTF-8): Różne moduły dołączone do PostgreSQL-a
471 Group: Applications/Databases
472 Requires: %{name} = %{version}-%{release}
473 Obsoletes: postgresql-contrib
476 Miscellaneous PostgreSQL contrib modules.
478 %description contrib -l pl.UTF-8
479 Różne moduły dołączone do PostgreSQL-a.
482 %setup -q -n postgresql-%{version}
484 %{?with_absolute_dbpaths:%patch1 -p1}
491 # force rebuild of bison/flex files
492 find src -name \*.l -o -name \*.y | xargs touch
495 #find contrib -type d -name CVS -exec rm -rf {} \;
498 %{__aclocal} -I config
502 CFLAGS="%{rpmcflags} -DNEED_REENTRANT_FUNCS `uuid-config --cflags`" \
503 --prefix=%{pgsqldatadir} \
504 --bindir=%{pgsqllibdir}/bin \
505 --sbindir=%{pgsqllibdir}/sbin \
506 --includedir=%{_includedir} \
507 --mandir=%{pgsqldatadir}/man \
508 --datadir=%{pgsqldatadir} \
509 --libdir=%{_libdir} \
510 --docdir=%{pgsqldatadir}/doc \
511 --localedir=%{_datadir}/locale \
514 %{?with_systemtap:--enable-dtrace} \
515 --enable-integer-datetimes \
517 --enable-thread-safety \
518 %{?with_bonjour:--with-bonjour} \
519 %{?with_kerberos5:--with-gssapi} \
520 %{?with_ldap:--with-ldap} \
525 %{?with_perl:--with-perl} \
526 %{?with_python:--with-python} \
527 %{?with_selinux:--with-selinux} \
528 --with-system-tzdata=%{_datadir}/zoneinfo \
529 %{?with_tcl:--with-tcl --with-tclconfig=%{_ulibdir}} \
534 for mod in %{contrib_modules}; do \
535 flags="%{rpmcflags} %{rpmcppflags} -DNEED_REENTRANT_FUNCS"
536 if [ $mod = "xml2" ]; then flags="$flags -I/usr/include/libxml2"; fi
537 if [ $mod = "uuid-ossp" ]; then flags="$flags `uuid-config --cflags`"; fi
538 %{__make} -C contrib/$mod CFLAGS="$flags"
541 %{__make} -C src/tutorial \
544 %ifnarch sparc sparcv9 sparc64 alpha
545 %{?with_tests:%{__make} -j1 check}
549 rm -rf $RPM_BUILD_ROOT
550 install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{logrotate.d,rc.d/init.d,sysconfig}} \
551 $RPM_BUILD_ROOT/var/{lib/postgresql/%{pgsqlversion},log/{archive,}/postgresql,run/postgresql} \
552 $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} \
553 $RPM_BUILD_ROOT%{_mandir}
555 install src/tutorial/*.sql $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
558 DESTDIR=$RPM_BUILD_ROOT
559 %{__make} -C doc/src/sgml install-man \
560 DESTDIR=$RPM_BUILD_ROOT
563 %{__make} install -C src/pl/plperl \
564 DESTDIR=$RPM_BUILD_ROOT
567 for mod in %{contrib_modules}; do \
568 %{__make} -C contrib/$mod install \
569 DESTDIR=$RPM_BUILD_ROOT
572 sed -e 's,@pgsqlbindir@,%{pgsqllibdir}/bin,g; s,@pgsqlversion@,%{pgsqlversion},g;' %{SOURCE1} >$RPM_BUILD_ROOT/etc/rc.d/init.d/postgresql-%{pgsqlversion}
573 sed -e 's,@pgsqlversion@,%{pgsqlversion},g;' %{SOURCE3} >$RPM_BUILD_ROOT/etc/sysconfig/postgresql-%{pgsqlversion}
574 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/postgresql
577 tar zxf %{SOURCE2} -C howto
580 %py_comp $RPM_BUILD_ROOT%{py_libdir}
581 %py_ocomp $RPM_BUILD_ROOT%{py_libdir}
585 for f in libpq5 pgscripts postgres psql initdb ecpg ecpglib6 \
586 plpgsql %{?with_perl:plperl} %{?with_python:plpython} \
587 pg_basebackup pg_config pg_controldata pg_ctl pg_dump pg_resetxlog; do
588 %find_lang $f-%{pgsqlversion}
592 cat $(for f in $@; do echo ${f}-%{pgsqlversion}.lang ; done)
594 merge_lang pgscripts postgres plpgsql \
595 pg_basebackup pg_controldata pg_resetxlog > main.lang
596 merge_lang psql initdb \
597 pg_ctl pg_dump > clients.lang
600 %find_lang pltcl-%{pgsqlversion}
604 %{__mv} $RPM_BUILD_ROOT{%{pgsqldatadir}/contrib,%{extensiondir}}/sepgsql.sql
607 cp -p src/pl/plperl/ppport.h $RPM_BUILD_ROOT%{_includedir}/postgresql/%{pgsqlversion}/server/
609 # package it...? nah, why bother.
610 %{__rm} -r $RPM_BUILD_ROOT%{pgsqldatadir}/doc/html
612 # remove common files provided by PostgreSQL from master branch
613 %{__rm} -r $RPM_BUILD_ROOT%{_includedir}/{ecpg*,libpq*,pg_config*,postgres_ext.h,postgresql/internal}
614 %{__rm} -r $RPM_BUILD_ROOT{%{_libdir}/{libecpg*,libpg*,libpq*,pkgconfig},%{pgsqllibdir}/bin/pg_config,%{pgsqldatadir}/man/man1/pg_config.1*}
615 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/locale/*/LC_MESSAGES/{ecpglib*,libpq*,pg_config*}
618 rm -rf $RPM_BUILD_ROOT
622 if [ -f /etc/sysconfig/postgresql-%{pgsqlversion} ]; then
623 . /etc/sysconfig/postgresql-%{pgsqlversion}
624 if [ -z "$PG_DB_CLUSTERS" -a -n "$POSTGRES_DATA_DIR" ]; then
625 PG_DB_CLUSTERS="$POSTGRES_DATA_DIR"
629 for pgdir in $PG_DB_CLUSTERS; do
630 if [ -f $pgdir/PG_VERSION ]; then
631 if [ $(cat $pgdir/PG_VERSION) != '%{pgsqlversion}' ]; then
632 echo "Found database(s) in older, incompatible format in cluster $pgdir."
637 if [ "$foundold" = "1" ]; then
639 echo "Dump all data from clusters mentioned above (using pg_dump or pg_dumpall)"
640 echo "and clean (or rename) those directories; then upgrade postgresql and"
641 echo "restore all data (using pg_restore or psql)."
642 echo "Remember to stop the daemon before upgrading!"
644 echo "Alternatively you can use pg_upgrade for 8.3+ online upgrade with"
645 echo "some restrictions: http://www.postgresql.org/docs/10.0/static/pgupgrade.html"
651 /sbin/chkconfig --add postgresql-%{pgsqlversion}
652 %service postgresql-%{pgsqlversion} restart "postgresql-%{pgsqlversion} server"
655 if [ "$1" = "0" ]; then
656 %service postgresql-%{pgsqlversion} stop
657 /sbin/chkconfig --del postgresql-%{pgsqlversion}
661 update-alternatives \
662 --install %{_bindir}/clusterdb clusterdb %{pgsqllibdir}/bin/clusterdb %{pgsqlpriority} \
663 --slave %{_mandir}/man1/clusterdb.1 clusterdb.1 %{pgsqldatadir}/man/man1/clusterdb.1* || :
664 update-alternatives \
665 --install %{_bindir}/createdb createdb %{pgsqllibdir}/bin/createdb %{pgsqlpriority} \
666 --slave %{_mandir}/man1/createdb.1 createdb.1 %{pgsqldatadir}/man/man1/createdb.1* || :
667 update-alternatives \
668 --install %{_bindir}/createuser createuser %{pgsqllibdir}/bin/createuser %{pgsqlpriority} \
669 --slave %{_mandir}/man1/createuser.1 createuser.1 %{pgsqldatadir}/man/man1/createuser.1* || :
670 update-alternatives \
671 --install %{_bindir}/dropdb dropdb %{pgsqllibdir}/bin/dropdb %{pgsqlpriority} \
672 --slave %{_mandir}/man1/dropdb.1 dropdb.1 %{pgsqldatadir}/man/man1/dropdb.1* || :
673 update-alternatives \
674 --install %{_bindir}/dropuser dropuser %{pgsqllibdir}/bin/dropuser %{pgsqlpriority} \
675 --slave %{_mandir}/man1/dropuser.1 dropuser.1 %{pgsqldatadir}/man/man1/dropuser.1* || :
676 update-alternatives \
677 --install %{_bindir}/pg_dump pg_dump %{pgsqllibdir}/bin/pg_dump %{pgsqlpriority} \
678 --slave %{_mandir}/man1/pg_dump.1 pg_dump.1 %{pgsqldatadir}/man/man1/pg_dump.1* || :
679 update-alternatives \
680 --install %{_bindir}/pg_dumpall pg_dumpall %{pgsqllibdir}/bin/pg_dumpall %{pgsqlpriority} \
681 --slave %{_mandir}/man1/pg_dumpall.1 pg_dumpall.1 %{pgsqldatadir}/man/man1/pg_dumpall.1* || :
682 update-alternatives \
683 --install %{_bindir}/pg_isready pg_isready %{pgsqllibdir}/bin/pg_isready %{pgsqlpriority} \
684 --slave %{_mandir}/man1/pg_isready.1 pg_isready.1 %{pgsqldatadir}/man/man1/pg_isready.1* || :
685 update-alternatives \
686 --install %{_bindir}/pg_restore pg_restore %{pgsqllibdir}/bin/pg_restore %{pgsqlpriority} \
687 --slave %{_mandir}/man1/pg_restore.1 pg_restore.1 %{pgsqldatadir}/man/man1/pg_restore.1* || :
688 update-alternatives \
689 --install %{_bindir}/psql psql %{pgsqllibdir}/bin/psql %{pgsqlpriority} \
690 --slave %{_mandir}/man1/psql.1 pgsql.1 %{pgsqldatadir}/man/man1/psql.1* || :
691 update-alternatives \
692 --install %{_bindir}/reindexdb reindexdb %{pgsqllibdir}/bin/reindexdb %{pgsqlpriority} \
693 --slave %{_mandir}/man1/reindexdb.1 reindexdb.1 %{pgsqldatadir}/man/man1/reindexdb.1* || :
694 update-alternatives \
695 --install %{_bindir}/vacuumdb vacuumdb %{pgsqllibdir}/bin/vacuumdb %{pgsqlpriority} \
696 --slave %{_mandir}/man1/vacuumdb.1 vacuumdb.1 %{pgsqldatadir}/man/man1/vacuumdb.1* || :
699 if [ $1 -eq 0 ]; then
700 update-alternatives --remove clusterdb %{pgsqllibdir}/bin/clusterdb || :
701 update-alternatives --remove createdb %{pgsqllibdir}/bin/createdb || :
702 update-alternatives --remove createuser %{pgsqllibdir}/bin/createuser || :
703 update-alternatives --remove dropdb %{pgsqllibdir}/bin/dropdb || :
704 update-alternatives --remove dropuser %{pgsqllibdir}/bin/dropuser || :
705 update-alternatives --remove pg_dump %{pgsqllibdir}/bin/pg_dump || :
706 update-alternatives --remove pg_dumpall %{pgsqllibdir}/bin/pg_dumpall || :
707 update-alternatives --remove pg_isready %{pgsqllibdir}/bin/pg_isready || :
708 update-alternatives --remove pg_restore %{pgsqllibdir}/bin/pg_restore || :
709 update-alternatives --remove psql %{pgsqllibdir}/bin/psql || :
710 update-alternatives --remove reindexdb %{pgsqllibdir}/bin/reindexdb || :
711 update-alternatives --remove vacuumdb %{pgsqllibdir}/bin/vacuumdb || :
715 %defattr(644,root,root,755)
716 %doc COPYRIGHT README HISTORY doc/{bug.template,KNOWN_BUGS,MISSING_FEATURES,TODO}
717 %attr(754,root,root) /etc/rc.d/init.d/postgresql-%{pgsqlversion}
718 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/postgresql-%{pgsqlversion}
720 %attr(755,root,root) %{pgsqllibdir}/bin/initdb
721 %attr(755,root,root) %{pgsqllibdir}/bin/pg_basebackup
722 %attr(755,root,root) %{pgsqllibdir}/bin/pg_controldata
723 %attr(755,root,root) %{pgsqllibdir}/bin/pg_ctl
724 %attr(755,root,root) %{pgsqllibdir}/bin/pg_resetxlog
725 %attr(755,root,root) %{pgsqllibdir}/bin/pg_receivexlog
726 %attr(755,root,root) %{pgsqllibdir}/bin/pg_recvlogical
727 %attr(755,root,root) %{pgsqllibdir}/bin/pg_test_fsync
728 %attr(755,root,root) %{pgsqllibdir}/bin/pg_test_timing
729 %attr(755,root,root) %{pgsqllibdir}/bin/pg_upgrade
730 %attr(755,root,root) %{pgsqllibdir}/bin/pg_xlogdump
731 %attr(755,root,root) %{pgsqllibdir}/bin/pgbench
732 %attr(755,root,root) %{pgsqllibdir}/bin/postgres
733 %attr(755,root,root) %{pgsqllibdir}/bin/postmaster
735 %attr(755,root,root) %{moduledir}/ascii_and_mic.so
736 %attr(755,root,root) %{moduledir}/cyrillic_and_mic.so
737 %attr(755,root,root) %{moduledir}/dict_int.so
738 %attr(755,root,root) %{moduledir}/dict_snowball.so
739 %attr(755,root,root) %{moduledir}/dict_xsyn.so
740 %attr(755,root,root) %{moduledir}/euc*.so
741 %attr(755,root,root) %{moduledir}/latin2_and_win1250.so
742 %attr(755,root,root) %{moduledir}/latin_and_mic.so
743 %attr(755,root,root) %{moduledir}/libpqwalreceiver.so
744 %attr(755,root,root) %{moduledir}/plpgsql.so
745 %attr(755,root,root) %{moduledir}/utf8_and_*.so
748 %{extensiondir}/plpgsql--*.sql
749 %{extensiondir}/plpgsql.control
751 %{pgsqldatadir}/*.bki
752 %{pgsqldatadir}/*.sample
753 %{pgsqldatadir}/*.description
754 %{pgsqldatadir}/*.shdescription
755 %{pgsqldatadir}/*.sql
756 %{pgsqldatadir}/*.txt
757 %{pgsqldatadir}/timezonesets
758 %{pgsqldatadir}/tsearch_data
760 %dir %{pgsqldatadir}/contrib
762 %{pgsqldatadir}/man/man1/initdb.1*
763 %{pgsqldatadir}/man/man1/pg_basebackup.1*
764 %{pgsqldatadir}/man/man1/pg_controldata.1*
765 %{pgsqldatadir}/man/man1/pg_ctl.1*
766 %{pgsqldatadir}/man/man1/pg_resetxlog.1*
767 %{pgsqldatadir}/man/man1/pg_receivexlog.1*
768 %{pgsqldatadir}/man/man1/pg_recvlogical.1*
769 %{pgsqldatadir}/man/man1/pg_test_fsync.1*
770 %{pgsqldatadir}/man/man1/pg_test_timing.1*
771 %{pgsqldatadir}/man/man1/pg_test_timing.1*
772 %{pgsqldatadir}/man/man1/pg_upgrade.1*
773 %{pgsqldatadir}/man/man1/pg_xlogdump.1*
774 %{pgsqldatadir}/man/man1/pgbench.1*
775 %{pgsqldatadir}/man/man1/postgres.1*
776 %{pgsqldatadir}/man/man1/postmaster.1*
779 %defattr(644,root,root,755)
781 %dir %{pgsqllibdir}/bin
782 %dir %{pgsqllibdir}/lib
784 %dir %{pgsqldatadir}/man
785 %dir %{pgsqldatadir}/man/man1
786 %dir %{pgsqldatadir}/man/man3
787 %dir %{pgsqldatadir}/man/man7
788 %attr(700,postgres,postgres) %dir /var/lib/postgresql/%{pgsqlversion}
791 %defattr(644,root,root,755)
792 %doc doc/src/sgml/html howto
793 %{_examplesdir}/%{name}-%{version}
795 %files ecpg -f ecpg-%{pgsqlversion}.lang
796 %defattr(644,root,root,755)
797 %attr(755,root,root) %{pgsqllibdir}/bin/ecpg
798 %{pgsqldatadir}/man/man1/ecpg.1*
801 %defattr(644,root,root,755)
802 %dir %{_includedir}/postgresql/%{pgsqlversion}
803 %{_includedir}/postgresql/%{pgsqlversion}/server
804 %dir %{moduledir}/pgxs
805 %attr(755,root,root) %{moduledir}/pgxs/config
806 %{moduledir}/pgxs/src
807 %{pgsqldatadir}/man/man3/SPI_*.3*
809 %files clients -f clients.lang
810 %defattr(644,root,root,755)
811 %attr(755,root,root) %{pgsqllibdir}/bin/clusterdb
812 %attr(755,root,root) %{pgsqllibdir}/bin/createdb
813 %attr(755,root,root) %{pgsqllibdir}/bin/createlang
814 %attr(755,root,root) %{pgsqllibdir}/bin/createuser
815 %attr(755,root,root) %{pgsqllibdir}/bin/dropdb
816 %attr(755,root,root) %{pgsqllibdir}/bin/droplang
817 %attr(755,root,root) %{pgsqllibdir}/bin/dropuser
818 %attr(755,root,root) %{pgsqllibdir}/bin/pg_archivecleanup
819 %attr(755,root,root) %{pgsqllibdir}/bin/pg_dump
820 %attr(755,root,root) %{pgsqllibdir}/bin/pg_dumpall
821 %attr(755,root,root) %{pgsqllibdir}/bin/pg_isready
822 %attr(755,root,root) %{pgsqllibdir}/bin/pg_restore
823 %attr(755,root,root) %{pgsqllibdir}/bin/psql
824 %attr(755,root,root) %{pgsqllibdir}/bin/reindexdb
825 %attr(755,root,root) %{pgsqllibdir}/bin/vacuumdb
827 %{pgsqldatadir}/man/man1/clusterdb.1*
828 %{pgsqldatadir}/man/man1/createdb.1*
829 %{pgsqldatadir}/man/man1/createlang.1*
830 %{pgsqldatadir}/man/man1/createuser.1*
831 %{pgsqldatadir}/man/man1/dropdb.1*
832 %{pgsqldatadir}/man/man1/droplang.1*
833 %{pgsqldatadir}/man/man1/dropuser.1*
834 %{pgsqldatadir}/man/man1/pg_archivecleanup.1*
835 %{pgsqldatadir}/man/man1/pg_dump.1*
836 %{pgsqldatadir}/man/man1/pg_dumpall.1*
837 %{pgsqldatadir}/man/man1/pg_isready.1*
838 %{pgsqldatadir}/man/man1/pg_restore.1*
839 %{pgsqldatadir}/man/man1/psql.1*
840 %{pgsqldatadir}/man/man1/reindexdb.1*
841 %{pgsqldatadir}/man/man1/vacuumdb.1*
842 %{pgsqldatadir}/man/man7/*.7*
845 %files module-plperl -f plperl-%{pgsqlversion}.lang
846 %defattr(644,root,root,755)
847 %attr(755,root,root) %{moduledir}/plperl.so
848 %{extensiondir}/plperl--*.sql
849 %{extensiondir}/plperl.control
850 %{extensiondir}/plperlu--*.sql
851 %{extensiondir}/plperlu.control
855 %files module-plpython -f plpython-%{pgsqlversion}.lang
856 %defattr(644,root,root,755)
857 %attr(755,root,root) %{moduledir}/plpython2.so
858 %{extensiondir}/plpython*--*.sql
859 %{extensiondir}/plpython*.control
863 %files module-pltcl -f pltcl-%{pgsqlversion}.lang
864 %defattr(644,root,root,755)
865 %attr(755,root,root) %{pgsqllibdir}/bin/pltcl_*
866 %attr(755,root,root) %{moduledir}/pltcl.so
867 %{pgsqldatadir}/unknown.pltcl
868 %{extensiondir}/pltcl*--*.sql
869 %{extensiondir}/pltcl*.control
873 %defattr(644,root,root,755)
874 %attr(755,root,root) %{moduledir}/dblink.so
875 %{extensiondir}/dblink--*.sql
876 %{extensiondir}/dblink.control
877 %{pgsqldatadir}/man/man3/dblink*.3*
880 %defattr(644,root,root,755)
881 %attr(755,root,root) %{moduledir}/lo.so
882 %{extensiondir}/lo--*.sql
883 %{extensiondir}/lo.control
885 %files module-pg_trgm
886 %defattr(644,root,root,755)
887 %attr(755,root,root) %{moduledir}/pg_trgm.so
888 %{extensiondir}/pg_trgm--*.sql
889 %{extensiondir}/pg_trgm.control
891 %files module-pgcrypto
892 %defattr(644,root,root,755)
893 %attr(755,root,root) %{moduledir}/pgcrypto.so
894 %{extensiondir}/pgcrypto--*.sql
895 %{extensiondir}/pgcrypto.control
898 %files module-sepgsql
899 %defattr(644,root,root,755)
900 %attr(755,root,root) %{moduledir}/sepgsql.so
901 %{extensiondir}/sepgsql.sql
904 %files module-tablefunc
905 %defattr(644,root,root,755)
906 %attr(755,root,root) %{moduledir}/tablefunc.so
907 %{extensiondir}/*tablefunc--*.sql
908 %{extensiondir}/*tablefunc.control
911 %defattr(644,root,root,755)
912 %attr(755,root,root) %{moduledir}/pgxml.so
913 %{extensiondir}/xml2--*.sql
914 %{extensiondir}/xml2.control
917 %defattr(644,root,root,755)
919 %attr(755,root,root) %{pgsqllibdir}/bin/oid2name
920 %attr(755,root,root) %{pgsqllibdir}/bin/pg_standby
921 %attr(755,root,root) %{pgsqllibdir}/bin/vacuumlo
922 %attr(755,root,root) %{moduledir}/_int.so
923 %attr(755,root,root) %{moduledir}/adminpack.so
924 %attr(755,root,root) %{moduledir}/auth_delay.so
925 %attr(755,root,root) %{moduledir}/auto_explain.so
926 %attr(755,root,root) %{moduledir}/btree_gin.so
927 %attr(755,root,root) %{moduledir}/btree_gist.so
928 %attr(755,root,root) %{moduledir}/chkpass.so
929 %attr(755,root,root) %{moduledir}/citext.so
930 %attr(755,root,root) %{moduledir}/cube.so
931 %attr(755,root,root) %{moduledir}/earthdistance.so
932 %attr(755,root,root) %{moduledir}/file_fdw.so
933 %attr(755,root,root) %{moduledir}/fuzzystrmatch.so
934 %attr(755,root,root) %{moduledir}/hstore.so
935 %attr(755,root,root) %{moduledir}/isn.so
936 %attr(755,root,root) %{moduledir}/ltree.so
937 %attr(755,root,root) %{moduledir}/pageinspect.so
938 %attr(755,root,root) %{moduledir}/passwordcheck.so
939 %attr(755,root,root) %{moduledir}/pg_buffercache.so
940 %attr(755,root,root) %{moduledir}/pg_freespacemap.so
941 %attr(755,root,root) %{moduledir}/pg_prewarm.so
942 %attr(755,root,root) %{moduledir}/pg_stat_statements.so
943 %attr(755,root,root) %{moduledir}/pgrowlocks.so
944 %attr(755,root,root) %{moduledir}/pgstattuple.so
945 %attr(755,root,root) %{moduledir}/postgres_fdw.so
946 %attr(755,root,root) %{moduledir}/seg.so
947 %attr(755,root,root) %{moduledir}/sslinfo.so
948 %attr(755,root,root) %{moduledir}/tcn.so
949 %attr(755,root,root) %{moduledir}/unaccent.so
950 %attr(755,root,root) %{moduledir}/uuid-ossp.so
951 %{extensiondir}/adminpack--*.sql
952 %{extensiondir}/adminpack.control
953 %{extensiondir}/btree_gin--*.sql
954 %{extensiondir}/btree_gin.control
955 %{extensiondir}/btree_gist--*.sql
956 %{extensiondir}/btree_gist.control
957 %{extensiondir}/chkpass--*.sql
958 %{extensiondir}/chkpass.control
959 %{extensiondir}/citext--*.sql
960 %{extensiondir}/citext.control
961 %{extensiondir}/cube--*.sql
962 %{extensiondir}/cube.control
963 %{extensiondir}/dict_int--*.sql
964 %{extensiondir}/dict_int.control
965 %{extensiondir}/dict_xsyn--*.sql
966 %{extensiondir}/dict_xsyn.control
967 %{extensiondir}/earthdistance--*.sql
968 %{extensiondir}/earthdistance.control
969 %{extensiondir}/file_fdw--*.sql
970 %{extensiondir}/file_fdw.control
971 %{extensiondir}/fuzzystrmatch--*.sql
972 %{extensiondir}/fuzzystrmatch.control
973 %{extensiondir}/hstore--*.sql
974 %{extensiondir}/hstore.control
975 %{extensiondir}/intarray--*.sql
976 %{extensiondir}/intarray.control
977 %{extensiondir}/intagg--*.sql
978 %{extensiondir}/intagg.control
979 %{extensiondir}/isn--*.sql
980 %{extensiondir}/isn.control
981 %{extensiondir}/ltree--*.sql
982 %{extensiondir}/ltree.control
983 %{extensiondir}/pageinspect--*.sql
984 %{extensiondir}/pageinspect.control
985 %{extensiondir}/pg_buffercache--*.sql
986 %{extensiondir}/pg_buffercache.control
987 %{extensiondir}/pg_freespacemap--*.sql
988 %{extensiondir}/pg_freespacemap.control
989 %{extensiondir}/pg_prewarm--*.sql
990 %{extensiondir}/pg_prewarm.control
991 %{extensiondir}/pg_stat_statements--*.sql
992 %{extensiondir}/pg_stat_statements.control
993 %{extensiondir}/pgrowlocks--*.sql
994 %{extensiondir}/pgrowlocks.control
995 %{extensiondir}/pgstattuple--*.sql
996 %{extensiondir}/pgstattuple.control
997 %{extensiondir}/postgres_fdw--*.sql
998 %{extensiondir}/postgres_fdw.control
999 %{extensiondir}/seg--*.sql
1000 %{extensiondir}/seg.control
1001 %{extensiondir}/sslinfo--*.sql
1002 %{extensiondir}/sslinfo.control
1003 %{extensiondir}/tcn--*.sql
1004 %{extensiondir}/tcn.control
1005 %{extensiondir}/unaccent--*.sql
1006 %{extensiondir}/unaccent.control
1007 %{extensiondir}/uuid-ossp--*.sql
1008 %{extensiondir}/uuid-ossp.control
1009 %{pgsqldatadir}/man/man1/oid2name.1*
1010 %{pgsqldatadir}/man/man1/pg_standby.1*
1011 %{pgsqldatadir}/man/man1/vacuumlo.1*