summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:19:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:19:20 +0000
commit983ee639b550634d447cd203c4644705f1a8b471 (patch)
tree5f499905dc2dbbf1625be1afc09d14f0e96c4b14
parentAdding upstream version 13.4. (diff)
downloadpostgresql-13-983ee639b550634d447cd203c4644705f1a8b471.tar.xz
postgresql-13-983ee639b550634d447cd203c4644705f1a8b471.zip
Adding debian version 13.4-3.debian/13.4-3debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--debian/changelog297
-rw-r--r--debian/control263
-rw-r--r--debian/copyright333
-rw-r--r--debian/gitlab-ci.yml1
-rw-r--r--debian/libecpg-compat3.install1
-rw-r--r--debian/libecpg-compat3.lintian-overrides2
-rw-r--r--debian/libecpg-compat3.symbols44
-rw-r--r--debian/libecpg-dev.install18
-rw-r--r--debian/libecpg6.install2
-rw-r--r--debian/libecpg6.symbols31
-rw-r--r--debian/libpgtypes3.install1
-rw-r--r--debian/libpgtypes3.symbols48
-rw-r--r--debian/libpq-dev.dirs1
-rw-r--r--debian/libpq-dev.install11
-rw-r--r--debian/libpq5.install2
-rw-r--r--debian/libpq5.symbols181
-rw-r--r--debian/patches/50-per-version-dirs.patch69
-rw-r--r--debian/patches/51-default-sockets-in-var.patch20
-rw-r--r--debian/patches/52-tutorial-README.patch16
-rw-r--r--debian/patches/53-pg_service.conf_directory_doc.patch19
-rw-r--r--debian/patches/54-debian-alternatives-for-external-tools.patch28
-rw-r--r--debian/patches/70-history13
-rw-r--r--debian/patches/extension_destdir270
-rw-r--r--debian/patches/filter-debug-prefix-map44
-rw-r--r--debian/patches/initdb-startup-message15
-rw-r--r--debian/patches/libpgport-pkglibdir84
-rw-r--r--debian/patches/risc-spinlock61
-rw-r--r--debian/patches/series11
-rwxr-xr-xdebian/pg_config.pl76
-rw-r--r--debian/po/POTFILES.in1
-rw-r--r--debian/po/de.po37
-rw-r--r--debian/po/es.po58
-rw-r--r--debian/po/fr.po39
-rw-r--r--debian/po/nl.po40
-rw-r--r--debian/po/pt.po39
-rw-r--r--debian/po/pt_BR.po37
-rw-r--r--debian/po/ru.po39
-rw-r--r--debian/po/templates.pot33
-rwxr-xr-xdebian/postgresql-13.install61
-rw-r--r--debian/postgresql-13.lintian-overrides17
-rw-r--r--debian/postgresql-13.postinst13
-rw-r--r--debian/postgresql-13.postrm80
-rw-r--r--debian/postgresql-13.preinst18
-rw-r--r--debian/postgresql-13.prerm16
-rw-r--r--debian/postgresql-13.templates7
-rw-r--r--debian/postgresql-client-13.install42
-rw-r--r--debian/postgresql-client-13.lintian-overrides3
-rw-r--r--debian/postgresql-client-13.postinst13
-rw-r--r--debian/postgresql-client-13.prerm12
-rw-r--r--debian/postgresql-doc-13.doc-base18
-rw-r--r--debian/postgresql-doc-13.install2
-rw-r--r--debian/postgresql-doc-13.postinst29
-rw-r--r--debian/postgresql-doc-13.prerm17
-rwxr-xr-xdebian/postgresql-plperl-13.install6
-rw-r--r--debian/postgresql-plperl-13.lintian-overrides7
-rwxr-xr-xdebian/postgresql-plpython3-13.install6
-rw-r--r--debian/postgresql-plpython3-13.lintian-overrides7
-rw-r--r--debian/postgresql-pltcl-13.install3
-rw-r--r--debian/postgresql-pltcl-13.lintian-overrides7
-rw-r--r--debian/postgresql-server-dev-13.install2
-rw-r--r--debian/postgresql-server-dev-13.lintian-overrides7
-rwxr-xr-xdebian/rules216
-rw-r--r--debian/source/format1
-rw-r--r--debian/tests/Makefile.regress5
-rw-r--r--debian/tests/control7
-rwxr-xr-xdebian/tests/installcheck30
-rw-r--r--debian/tests/postgresql.conf8
-rwxr-xr-xdebian/tests/run-testsuite5
-rw-r--r--debian/watch4
69 files changed, 2954 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..fcac27b
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,297 @@
+postgresql-13 (13.4-3) unstable; urgency=medium
+
+ * Cherry-pick riscv spinlocks patch from upstream. (Closes: #993217)
+
+ -- Christoph Berg <myon@debian.org> Tue, 31 Aug 2021 11:59:29 +0200
+
+postgresql-13 (13.4-2) unstable; urgency=medium
+
+ * Enable spinlocks on riscv64.
+ * Fix awk to be mawk, spotted by Yangfl. (Closes: #987786)
+ * B-D on autoconf2.69. (Closes: #978886)
+ * Spanish debconf translation by Jonathan Bustillos, thanks!
+ (Closes: #986775)
+ * Flatten debian/*.lintian-overrides symlinks.
+
+ -- Christoph Berg <myon@debian.org> Thu, 26 Aug 2021 15:34:27 +0200
+
+postgresql-13 (13.4-1) unstable; urgency=medium
+
+ * New upstream version.
+
+ + Fix mis-planning of repeated application of a projection step (Tom Lane)
+
+ The planner could create an incorrect plan in cases where two
+ ProjectionPaths were stacked on top of each other. The only known way
+ to trigger that situation involves parallel sort operations, but there
+ may be other instances. The result would be crashes or incorrect query
+ results. Disclosure of server memory contents is also possible.
+ (CVE-2021-3677)
+
+ + Disallow SSL renegotiation more completely (Michael Paquier)
+
+ SSL renegotiation has been disabled for some time, but the server would
+ still cooperate with a client-initiated renegotiation request. A
+ maliciously crafted renegotiation request could result in a server crash
+ (see OpenSSL issue CVE-2021-3449). Disable the feature altogether on
+ OpenSSL versions that permit doing so, which are 1.1.0h and newer.
+
+ * Remove obsolete #dbg# and #PIE# code.
+
+ -- Christoph Berg <myon@debian.org> Tue, 18 May 2021 13:56:18 +0200
+
+postgresql-13 (13.3-1) unstable; urgency=medium
+
+ * New upstream version.
+
+ + Prevent integer overflows in array subscripting calculations (Tom Lane)
+
+ The array code previously did not complain about cases where an array's
+ lower bound plus length overflows an integer. This resulted in later
+ entries in the array becoming inaccessible (since their subscripts could
+ not be written as integers), but more importantly it confused subsequent
+ assignment operations. This could lead to memory overwrites, with
+ ensuing crashes or unwanted data modifications. (CVE-2021-32027)
+
+ + Fix mishandling of junk columns in INSERT ... ON CONFLICT ... UPDATE
+ target lists (Tom Lane)
+
+ If the UPDATE list contains any multi-column sub-selects (which give
+ rise to junk columns in addition to the results proper), the UPDATE path
+ would end up storing tuples that include the values of the extra junk
+ columns. That's fairly harmless in the short run, but if new columns are
+ added to the table then the values would become accessible, possibly
+ leading to malfunctions if they don't match the datatypes of the added
+ columns.
+
+ In addition, in versions supporting cross-partition updates, a
+ cross-partition update triggered by such a case had the reverse problem:
+ the junk columns were removed from the target list, typically causing an
+ immediate crash due to malfunction of the multi-column sub-select
+ mechanism. (CVE-2021-32028)
+
+ + Fix possibly-incorrect computation of UPDATE ... RETURNING outputs for
+ joined cross-partition updates (Amit Langote, Etsuro Fujita)
+
+ If an UPDATE for a partitioned table caused a row to be moved to another
+ partition with a physically different row type (for example, one with a
+ different set of dropped columns), computation of RETURNING results for
+ that row could produce errors or wrong answers. No error is observed
+ unless the UPDATE involves other tables being joined to the target
+ table. (CVE-2021-32029)
+
+ * Mark libio-pty-perl and libipc-run-perl as <!nocheck>. (Closes: #988121)
+
+ -- Christoph Berg <myon@debian.org> Tue, 11 May 2021 22:10:35 +0200
+
+postgresql-13 (13.2-1) unstable; urgency=medium
+
+ * New upstream version.
+
+ + Fix failure to check per-column SELECT privileges in some join queries
+ (Tom Lane)
+
+ In some cases involving joins, the parser failed to record all the
+ columns read by a query in the column-usage bitmaps that are used for
+ permissions checking. Although the executor would still insist on some
+ sort of SELECT privilege to run the query, this meant that a user having
+ SELECT privilege on only one column of a table could nonetheless read
+ all its columns through a suitably crafted query.
+
+ A stored view that is subject to this problem will have incomplete
+ column-usage bitmaps, and thus permissions will still not be enforced
+ properly on the view after updating. In installations that depend on
+ column-level permissions for security, it is recommended to CREATE OR
+ REPLACE all user-defined views to cause them to be re-parsed.
+
+ The PostgreSQL Project thanks Sven Klemm for reporting this problem.
+ (CVE-2021-20229)
+
+ + Fix information leakage in constraint-violation error messages
+ (Heikki Linnakangas)
+
+ If an UPDATE command attempts to move a row to a different partition but
+ finds that it violates some constraint on the new partition, and the
+ columns in that partition are in different physical positions than in
+ the parent table, the error message could reveal the contents of columns
+ that the user does not have SELECT privilege on. (CVE-2021-3393)
+
+ + Fix incorrect detection of concurrent page splits while inserting into a
+ GiST index (Heikki Linnakangas)
+
+ Concurrent insertions could lead to a corrupt index with entries placed
+ in the wrong pages. It's recommended to reindex any GiST index that's
+ been subject to concurrent insertions.
+
+ + Fix CREATE INDEX CONCURRENTLY to wait for concurrent prepared
+ transactions (Andrey Borodin)
+
+ At the point where CREATE INDEX CONCURRENTLY waits for all concurrent
+ transactions to complete so that it can see rows they inserted, it must
+ also wait for all prepared transactions to complete, for the same
+ reason. Its failure to do so meant that rows inserted by prepared
+ transactions might be omitted from the new index, causing queries
+ relying on the index to miss such rows. In installations that have
+ enabled prepared transactions (max_prepared_transactions > 0), it's
+ recommended to reindex any concurrently-built indexes in case this
+ problem occurred when they were built.
+
+ [ Christoph Berg ]
+ * Remove obsolete --enable-integer-datetimes configure option.
+ (Closes: #974988)
+ * Modernize server package description.
+ * Use xsltproc --nonet.
+ * run-testsuite: Test only this version.
+
+ [ Helmut Grohne ]
+ * Reduce Build-Depends: (Closes: #979456)
+ + gdb is only used for testing.
+
+ -- Christoph Berg <myon@debian.org> Wed, 10 Feb 2021 17:33:55 +0100
+
+postgresql-13 (13.1-1) unstable; urgency=medium
+
+ * New upstream version.
+ + Fixes timetz regression test failures. (Closes: #974063)
+
+ + Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers
+ within index expressions and materialized view queries (Noah Misch)
+
+ This is essentially a leak in the security restricted operation sandbox
+ mechanism. An attacker having permission to create non-temporary SQL
+ objects could parlay this leak to execute arbitrary SQL code as a
+ superuser.
+
+ The PostgreSQL Project thanks Etienne Stalmans for reporting this
+ problem. (CVE-2020-25695)
+
+ + Fix usage of complex connection-string parameters in pg_dump,
+ pg_restore, clusterdb, reindexdb, and vacuumdb (Tom Lane)
+
+ The -d parameter of pg_dump and pg_restore, or the --maintenance-db
+ parameter of the other programs mentioned, can be a connection string
+ containing multiple connection parameters rather than just a database
+ name. In cases where these programs need to initiate additional
+ connections, such as parallel processing or processing of multiple
+ databases, the connection string was forgotten and just the basic
+ connection parameters (database name, host, port, and username) were
+ used for the additional connections. This could lead to connection
+ failures if the connection string included any other essential
+ information, such as non-default SSL or GSS parameters. Worse, the
+ connection might succeed but not be encrypted as intended, or be
+ vulnerable to man-in-the-middle attacks that the intended connection
+ parameters would have prevented. (CVE-2020-25694)
+
+ + When psql's \connect command re-uses connection parameters, ensure that
+ all non-overridden parameters from a previous connection string are
+ re-used (Tom Lane)
+
+ This avoids cases where reconnection might fail due to omission of
+ relevant parameters, such as non-default SSL or GSS options. Worse, the
+ reconnection might succeed but not be encrypted as intended, or be
+ vulnerable to man-in-the-middle attacks that the intended connection
+ parameters would have prevented. This is largely the same problem as
+ just cited for pg_dump et al, although psql's behavior is more complex
+ since the user may intentionally override some connection parameters.
+ (CVE-2020-25694)
+
+ + Prevent psql's \gset command from modifying specially-treated variables
+ (Noah Misch)
+
+ \gset without a prefix would overwrite whatever variables the server
+ told it to. Thus, a compromised server could set specially-treated
+ variables such as PROMPT1, giving the ability to execute arbitrary shell
+ code in the user's session.
+
+ The PostgreSQL Project thanks Nick Cleaton for reporting this problem.
+ (CVE-2020-25696)
+
+ * Show only log files on failure.
+
+ -- Christoph Berg <myon@debian.org> Tue, 10 Nov 2020 13:45:55 +0100
+
+postgresql-13 (13.0-6) unstable; urgency=medium
+
+ * Use readline instead of libedit in psql. OpenSSL is considered a system
+ library now which voids the GPL-2 linking conflict.
+ http://meetbot.debian.net/debian-ftp/2020/debian-ftp.2020-03-13-20.02.html
+ * Disable JIT on powerpc riscv64 sparc64 again.
+
+ -- Christoph Berg <myon@debian.org> Tue, 20 Oct 2020 10:51:32 +0200
+
+postgresql-13 (13.0-5) unstable; urgency=medium
+
+ * Bump LLVM version to 11.
+ * Enable JIT on powerpc riscv64 s390x sparc64.
+ * Cherry-pick upstream llvmjit fixes, thanks Andres!
+
+ -- Christoph Berg <myon@debian.org> Fri, 16 Oct 2020 11:07:06 +0200
+
+postgresql-13 (13.0-4) unstable; urgency=medium
+
+ * Add extension_destdir to postgresql.conf.sample file.
+ * R³: no.
+
+ -- Christoph Berg <myon@debian.org> Tue, 13 Oct 2020 22:05:47 +0200
+
+postgresql-13 (13.0-3) unstable; urgency=medium
+
+ * extension_destdir: Allow ALTER EXTENSION ... UPDATE;
+
+ -- Christoph Berg <myon@debian.org> Thu, 08 Oct 2020 00:16:33 +0200
+
+postgresql-13 (13.0-2) unstable; urgency=medium
+
+ * Force JITing of all queries at test time.
+ * Disable JIT on s390x, it's broken with LLVM 10.
+ https://www.postgresql.org/message-id/20200925152907.GI293907%40msg.df7cb.de
+
+ -- Christoph Berg <myon@debian.org> Fri, 25 Sep 2020 23:43:22 +0200
+
+postgresql-13 (13.0-1) unstable; urgency=medium
+
+ * First PostgreSQL 13 stable release.
+ * Update extension_destdir to look both in destdir and original location.
+ * Drop build-time kerberos test, too unstable.
+
+ -- Christoph Berg <myon@debian.org> Thu, 24 Sep 2020 12:00:45 +0200
+
+postgresql-13 (13~rc1-1) experimental; urgency=medium
+
+ * Release candidate.
+ * New GUC extension_destdir: Path to prepend for extension loading
+
+ This directory is prepended to paths when loading extensions (control
+ and SQL files), and to the '$libdir' directive when loading modules that
+ back functions. The location is made configurable to allow build-time
+ testing of extensions that do not have been installed to their proper
+ location yet.
+
+ -- Christoph Berg <myon@debian.org> Tue, 15 Sep 2020 22:56:40 +0200
+
+postgresql-13 (13~beta3-1) experimental; urgency=medium
+
+ * New beta release.
+ * Extend lintian overrides to client, plperl, and pltcl.
+
+ -- Christoph Berg <myon@debian.org> Thu, 16 Jul 2020 13:23:46 +0200
+
+postgresql-13 (13~beta2-2) experimental; urgency=medium
+
+ * Drop ldap-utils and slapd from build-dependencies while the "extra" ldap
+ test isn't run.
+ * Print backtrace from coredumps at build-time when tests crash.
+
+ -- Christoph Berg <myon@debian.org> Wed, 15 Jul 2020 17:14:45 +0200
+
+postgresql-13 (13~beta2-1) experimental; urgency=medium
+
+ * New beta release.
+
+ -- Christoph Berg <myon@debian.org> Wed, 24 Jun 2020 16:19:12 +0200
+
+postgresql-13 (13~beta1-1) experimental; urgency=medium
+
+ * New major upstream version 13; packaging based on postgresql-12.
+
+ -- Christoph Berg <myon@debian.org> Tue, 19 May 2020 15:22:03 +0200
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..21e14f5
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,263 @@
+Source: postgresql-13
+Section: database
+Priority: optional
+Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
+Uploaders:
+ Martin Pitt <mpitt@debian.org>,
+ Peter Eisentraut <petere@debian.org>,
+ Christoph Berg <myon@debian.org>
+Standards-Version: 4.5.0
+Rules-Requires-Root: no
+Build-Depends:
+ autoconf2.69 | autoconf (<< 2.69+),
+ bison,
+ clang-11 [!alpha !hppa !hurd-i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !powerpc !riscv64 !sh4 !sparc64 !x32],
+ debhelper-compat (= 13),
+ dh-exec (>= 0.13~),
+ docbook-xml,
+ docbook-xsl (>= 1.77),
+ dpkg-dev (>= 1.16.1~),
+ flex,
+ gdb <!nocheck>,
+ gettext,
+ libicu-dev,
+ libio-pty-perl <!nocheck>,
+ libipc-run-perl <!nocheck>,
+ libkrb5-dev,
+ libldap2-dev,
+ libpam0g-dev | libpam-dev,
+ libperl-dev,
+ libreadline-dev,
+ libselinux1-dev [linux-any],
+ libssl-dev,
+ libsystemd-dev [linux-any],
+ libxml2-dev,
+ libxml2-utils,
+ libxslt1-dev,
+ llvm-11-dev [!alpha !hppa !hurd-i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !powerpc !riscv64 !sh4 !sparc64 !x32],
+ mawk,
+ perl (>= 5.8),
+ pkg-config,
+ python3-dev,
+ systemtap-sdt-dev,
+ tcl-dev,
+ uuid-dev,
+ xsltproc,
+ zlib1g-dev | libz-dev
+Homepage: http://www.postgresql.org/
+Vcs-Browser: https://salsa.debian.org/postgresql/postgresql
+Vcs-Git: https://salsa.debian.org/postgresql/postgresql.git -b 13
+
+Package: libpq-dev
+Architecture: any
+Section: libdevel
+Depends:
+ libpq5 (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends}
+Suggests: postgresql-doc-13
+Description: header files for libpq5 (PostgreSQL library)
+ Header files and static library for compiling C programs to link
+ with the libpq library in order to communicate with a PostgreSQL
+ database backend.
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: libpq5
+Architecture: any
+Section: libs
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+Description: PostgreSQL C client library
+ libpq is a C library that enables user programs to communicate with
+ the PostgreSQL database server. The server can be on another machine
+ and accessed through TCP/IP. This version of libpq is compatible
+ with servers from PostgreSQL 8.2 or later.
+ .
+ This package contains the run-time library, needed by packages using
+ libpq.
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: libecpg6
+Architecture: any
+Section: libs
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+Description: run-time library for ECPG programs
+ The libecpg shared library is used by programs built with ECPG
+ (Embedded PostgreSQL for C).
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: libecpg-dev
+Architecture: any
+Section: libdevel
+Depends:
+ libecpg-compat3 (= ${binary:Version}),
+ libecpg6 (= ${binary:Version}),
+ libpgtypes3 (= ${binary:Version}),
+ libpq-dev,
+ ${misc:Depends},
+ ${shlibs:Depends}
+Description: development files for ECPG (Embedded PostgreSQL for C)
+ This package contains the necessary files to build ECPG (Embedded
+ PostgreSQL for C) programs. It includes the development libraries
+ and the preprocessor program ecpg.
+ .
+ PostgreSQL is an object-relational SQL database management system.
+ .
+ Install this package if you want to write C programs with SQL statements
+ embedded in them (rather than run by an external process).
+
+Package: libecpg-compat3
+Architecture: any
+Section: libs
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+Description: older version of run-time library for ECPG programs
+ The libecpg_compat shared library is used by programs built with ecpg.
+ (Embedded PostgreSQL for C).
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: libpgtypes3
+Architecture: any
+Section: libs
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+Description: shared library libpgtypes for PostgreSQL 13
+ The libpgtypes shared library is used by programs built with ecpg.
+ (Embedded PostgreSQL for C).
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: postgresql-13
+Architecture: any
+Depends:
+ locales | locales-all,
+ postgresql-client-13,
+ postgresql-common (>= 182~),
+ ssl-cert,
+ tzdata,
+ ${misc:Depends},
+ ${shlibs:Depends}
+Provides: postgresql-contrib-13
+Recommends: sysstat
+Description: The World's Most Advanced Open Source Relational Database
+ PostgreSQL, also known as Postgres, is a free and open-source relational
+ database management system (RDBMS) emphasizing extensibility and SQL
+ compliance. It features transactions with Atomicity, Consistency, Isolation,
+ Durability (ACID) properties, automatically updatable views, materialized
+ views, triggers, foreign keys, and stored procedures. It is designed to handle
+ a range of workloads, from single machines to data warehouses or Web services
+ with many concurrent users.
+ .
+ This package provides the database server for PostgreSQL 13.
+XB-Postgresql-Catversion: ${postgresql:Catversion}
+
+Package: postgresql-client-13
+Architecture: any
+Multi-Arch: foreign
+Depends:
+ libpq5 (>= ${source:Upstream-Version}),
+ postgresql-client-common (>= 182~),
+ sensible-utils,
+ ${misc:Depends},
+ ${shlibs:Depends}
+Suggests: postgresql-13, postgresql-doc-13
+Provides: postgresql-client
+Description: front-end programs for PostgreSQL 13
+ This package contains client and administrative programs for
+ PostgreSQL: these are the interactive terminal client psql and
+ programs for creating and removing users and databases.
+ .
+ This is the client package for PostgreSQL 13. If you install
+ PostgreSQL 13 on a standalone machine, you need the server package
+ postgresql-13, too. On a network, you can install this package on
+ many client machines, while the server package may be installed on
+ only one machine.
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: postgresql-server-dev-13
+Architecture: any
+Section: libdevel
+Depends:
+ clang-11 [!alpha !hppa !hurd-i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !powerpc !riscv64 !sh4 !sparc64 !x32],
+ libpq-dev (>= 13~~),
+ llvm-11-dev [!alpha !hppa !hurd-i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !powerpc !riscv64 !sh4 !sparc64 !x32],
+ postgresql-client-13,
+ postgresql-common (>= 142~),
+ ${misc:Depends},
+ ${shlibs:Depends}
+Breaks:
+ postgresql-server-dev-all (<< 181~)
+Description: development files for PostgreSQL 13 server-side programming
+ Header files for compiling SSI code to link into PostgreSQL's backend; for
+ example, for C functions to be called from SQL.
+ .
+ This package also contains the Makefiles necessary for building add-on
+ modules of PostgreSQL, which would otherwise have to be built in the
+ PostgreSQL source-code tree.
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: postgresql-doc-13
+Architecture: all
+Multi-Arch: foreign
+Section: doc
+Depends: ${misc:Depends}
+Breaks: postgresql-common (<< 158~)
+Description: documentation for the PostgreSQL database management system
+ This package contains all README files, user manual, and examples for
+ PostgreSQL 13. The manual is in HTML format.
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: postgresql-plperl-13
+Architecture: any
+Depends:
+ perl,
+ postgresql-13 (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends}
+Provides: postgresql-plperl
+Description: PL/Perl procedural language for PostgreSQL 13
+ PL/Perl enables an SQL developer to write procedural language functions
+ for PostgreSQL 13 in Perl. You need this package if you have any
+ PostgreSQL 13 functions that use the languages plperl or plperlu.
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: postgresql-plpython3-13
+Architecture: any
+Depends:
+ postgresql-13 (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends}
+Provides: postgresql-plpython3
+Description: PL/Python 3 procedural language for PostgreSQL 13
+ PL/Python 3 enables an SQL developer to write procedural language functions
+ for PostgreSQL 13 in Python 3. You need this package if you have any
+ PostgreSQL 13 functions that use the languages plpython3 or plpython3u.
+ .
+ PostgreSQL is an object-relational SQL database management system.
+
+Package: postgresql-pltcl-13
+Architecture: any
+Depends:
+ postgresql-13 (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends}
+Provides: postgresql-pltcl
+Description: PL/Tcl procedural language for PostgreSQL 13
+ PL/Tcl enables an SQL developer to write procedural language functions
+ for PostgreSQL 13 in Tcl. You need this package if you have any
+ PostgreSQL 13 functions that use the languages pltcl or pltclu.
+ .
+ PostgreSQL is an object-relational SQL database management system.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..b78eca2
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,333 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: PostgreSQL
+Source: https://www.postgresql.org/ftp/source/
+
+### PostgreSQL copyrights ###
+
+Files: *
+Copyright: Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
+ Portions Copyright (c) 1994, The Regents of the University of California
+License: PostgreSQL
+ Permission to use, copy, modify, and distribute this software and its
+ documentation for any purpose, without fee, and without a written agreement
+ is hereby granted, provided that the above copyright notice and this
+ paragraph and the following two paragraphs appear in all copies.
+ .
+ IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
+ DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
+ LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
+ DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ .
+ THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
+ PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+Files: src/backend/regex/*
+Copyright: Copyright (c) 1998, 1999 Henry Spencer. All rights reserved.
+License: Custom-regex
+ Development of this software was funded, in part, by Cray Research Inc.,
+ UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics
+ Corporation, none of whom are responsible for the results. The author
+ thanks all of them.
+ .
+ Redistribution and use in source and binary forms -- with or without
+ modification -- are permitted for any purpose, provided that
+ redistributions in source form retain this entire copyright notice and
+ indicate the origin and nature of any modifications.
+ .
+ I'd appreciate being given credit for this package in the documentation
+ of software which uses it, but that is not a requirement.
+ .
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+ HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Files: src/backend/regex/regc_locale.c
+Copyright: Copyright (c) 1998 by Scriptics Corporation.
+License: Tcl
+
+Files: src/backend/regex/re_syntax.n
+Copyright: Copyright (c) 1998 Sun Microsystems, Inc.
+ Copyright (c) 1999 Scriptics Corporation
+License: Tcl
+
+Files: src/bin/pg_dump/*
+Copyright: Portions Copyright (c) 2000, Philip Warner
+License: Custom-pg_dump
+ Rights are granted to use this software in any way so long as this notice is
+ not removed. The author is not responsible for loss or damages that may
+ result from its use.
+
+Files: src/backend/snowball/libstemmer/* src/include/snowball/libstemmer/*
+Copyright: Copyright (c) 2001, Dr Martin Porter,
+ Copyright (c) 2002, Richard Boulton.
+License: BSD-3-Clause
+Comment:
+ This module uses the word stemming code developed by the Snowball project,
+ http://snowballstem.org which is released by them under a BSD-style license.
+ Postgres' files under src/backend/snowball/libstemmer/ and
+ src/include/snowball/libstemmer/ are taken directly from the Snowball files,
+ with only some minor adjustments of file inclusions.
+ See src/backend/snowball/README for details.
+
+Files: src/backend/utils/mb/Unicode/*.txt
+Copyright: Copyright (C) 2001 earthian@tama.or.jp, All Rights Reserved.
+ Copyright (C) 2001 I'O, All Rights Reserved.
+ Copyright (C) 2006 Project X0213, All Rights Reserved.
+License: Custom-Unicode
+ You can use, modify, distribute this table freely.
+
+Files:
+ src/common/sha2.c
+ src/include/common/sha2.h
+Copyright: Copyright (c) 2000-2001, Aaron D. Gifford
+License: BSD-3-Clause
+
+### contrib copyrights ###
+
+Files: contrib/fuzzystrmatch/dmetaphone.c
+Copyright: Copyright 2000, Maurice Aubrey <maurice@hevanet.com>
+ Copyright 2003, North Carolina State Highway Patrol
+License: double-metaphone
+ This module is free software; you may redistribute it and/or
+ modify it under the same terms as Perl itself.
+ .
+ All rights reserved.
+ .
+ Permission to use, copy, modify, and distribute this software and its
+ documentation for any purpose, without fee, and without a written agreement
+ is hereby granted, provided that the above copyright notice and this
+ paragraph and the following two paragraphs appear in all copies.
+ .
+ IN NO EVENT SHALL THE NORTH CAROLINA STATE HIGHWAY PATROL BE LIABLE TO ANY
+ PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+ INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
+ DOCUMENTATION, EVEN IF THE NORTH CAROLINA STATE HIGHWAY PATROL HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ .
+ THE NORTH CAROLINA STATE HIGHWAY PATROL SPECIFICALLY DISCLAIMS ANY
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED
+ HEREUNDER IS ON AN "AS IS" BASIS, AND THE NORTH CAROLINA STATE HIGHWAY PATROL
+ HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+ MODIFICATIONS.
+ .
+ The license of Perl is:
+ .
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either:
+ .
+ a) the GNU General Public License as published by the Free Software
+ Foundation; either version 1, or (at your option) any later
+ version, or
+ .
+ b) the "Artistic License" which comes with Perl.
+ .
+ On Debian GNU/Linux systems, the complete text of the GNU General
+ Public License version 1 can be found in
+ `/usr/share/common-licenses/GPL-1' and the Artistic Licence in
+ `/usr/share/common-licenses/Artistic'.
+
+Files:
+ contrib/pageinspect/btreefuncs.c
+ contrib/pgrowlocks/*
+ contrib/pgstattuple/*
+Copyright: Copyright (c) 2006 Satoshi Nagayasu <nagayasus@nttdata.co.jp>
+ Copyright (c) 2001, 2002, 2005-2006 Tatsuo Ishii
+License: nagaysau-ishii
+ Permission to use, copy, modify, and distribute this software and
+ its documentation for any purpose, without fee, and without a
+ written agreement is hereby granted, provided that the above
+ copyright notice and this paragraph and the following two
+ paragraphs appear in all copies.
+ .
+ IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT,
+ INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
+ LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
+ DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+ .
+ THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS
+ IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE,
+ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+Files: contrib/pgcrypto/blf.*
+Copyright: PuTTY is copyright 1997-2007 Simon Tatham.
+ Portions copyright Robert de Bath, Joris van Rantwijk, Delian
+ Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,
+ Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus
+ Kuhn, and CORE SDI S.A.
+License: blf
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE
+ FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Files:
+ contrib/pgcrypto/crypt-des.c
+ contrib/pgcrypto/md5.*
+ contrib/pgcrypto/sha1.*
+Copyright: Copyright (c) 1994 David Burren
+ Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+License: BSD-3-clause
+
+Files:
+ contrib/pgcrypto/internal*
+ contrib/pgcrypto/mbuf.*
+ contrib/pgcrypto/openssl.c
+ contrib/pgcrypto/pgcrypto.*
+ contrib/pgcrypto/pgp*
+ contrib/pgcrypto/px*
+Copyright: Copyright (c) 2001, 2005 Marko Kreen
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+Files: contrib/pgcrypto/imath.*
+Copyright: Copyright (C) 2002 Michael J. Fromberger
+License: imath
+ All Rights Reserved.
+ .
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+
+Files: contrib/pgcrypto/rijndael.*
+Copyright: Dr Brian Gladman
+License: rijndael
+ Copyright in this implementation is held by Dr B R Gladman but I
+ hereby give permission for its free direct or derivative use subject
+ to acknowledgment of its origin and compliance with any conditions
+ that the originators of the algorithm place on its exploitation.
+
+### licenses ###
+
+License: BSD-3-Clause
+ All rights reserved.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ .
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+ .
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ .
+ 3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: Tcl
+ This software is copyrighted by the Regents of the University of
+ California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+ Corporation and other parties. The following terms apply to all files
+ associated with the software unless explicitly disclaimed in
+ individual files.
+ .
+ The authors hereby grant permission to use, copy, modify, distribute,
+ and license this software and its documentation for any purpose, provided
+ that existing copyright notices are retained in all copies and that this
+ notice is included verbatim in any distributions. No written agreement,
+ license, or royalty fee is required for any of the authorized uses.
+ Modifications to this software may be copyrighted by their authors
+ and need not follow the licensing terms described here, provided that
+ the new terms are clearly indicated on the first page of each file where
+ they apply.
+ .
+ IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+ FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+ DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+ .
+ THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
+ IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+ NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+ MODIFICATIONS.
+ .
+ GOVERNMENT USE: If you are acquiring this software on behalf of the
+ U.S. government, the Government shall have only "Restricted Rights"
+ in the software and related documentation as defined in the Federal
+ Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
+ are acquiring the software on behalf of the Department of Defense, the
+ software shall be classified as "Commercial Computer Software" and the
+ Government shall have only "Restricted Rights" as defined in Clause
+ 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
+ authors grant the U.S. Government and others acting in its behalf
+ permission to use and distribute the software in accordance with the
+ terms specified in this license.
diff --git a/debian/gitlab-ci.yml b/debian/gitlab-ci.yml
new file mode 100644
index 0000000..67e4816
--- /dev/null
+++ b/debian/gitlab-ci.yml
@@ -0,0 +1 @@
+include: https://salsa.debian.org/postgresql/postgresql-common/raw/master/gitlab/gitlab-ci.yml
diff --git a/debian/libecpg-compat3.install b/debian/libecpg-compat3.install
new file mode 100644
index 0000000..c69d50d
--- /dev/null
+++ b/debian/libecpg-compat3.install
@@ -0,0 +1 @@
+usr/lib/*/libecpg_compat.so.3*
diff --git a/debian/libecpg-compat3.lintian-overrides b/debian/libecpg-compat3.lintian-overrides
new file mode 100644
index 0000000..48be65b
--- /dev/null
+++ b/debian/libecpg-compat3.lintian-overrides
@@ -0,0 +1,2 @@
+# False positive, -D_FORTIFY_SOURCE=2 is present when compiling informix.c
+hardening-no-fortify-functions usr/lib/*/libecpg_compat.so.*
diff --git a/debian/libecpg-compat3.symbols b/debian/libecpg-compat3.symbols
new file mode 100644
index 0000000..3bd41e0
--- /dev/null
+++ b/debian/libecpg-compat3.symbols
@@ -0,0 +1,44 @@
+libecpg_compat.so.3 libecpg-compat3 #MINVER#
+* Build-Depends-Package: libecpg-dev
+ ECPG_informix_get_var@Base 0
+ ECPG_informix_reset_sqlca@Base 9.0~
+ ECPG_informix_set_var@Base 0
+ byleng@Base 0
+ decadd@Base 0
+ deccmp@Base 0
+ deccopy@Base 0
+ deccvasc@Base 0
+ deccvdbl@Base 0
+ deccvint@Base 0
+ deccvlong@Base 0
+ decdiv@Base 0
+ decmul@Base 0
+ decsub@Base 0
+ dectoasc@Base 0
+ dectodbl@Base 0
+ dectoint@Base 0
+ dectolong@Base 0
+ dtcurrent@Base 0
+ dtcvasc@Base 0
+ dtcvfmtasc@Base 0
+ dtsub@Base 0
+ dttoasc@Base 0
+ dttofmtasc@Base 0
+ intoasc@Base 0
+ ldchar@Base 0
+ rdatestr@Base 0
+ rdayofweek@Base 0
+ rdefmtdate@Base 0
+ rfmtdate@Base 0
+ rfmtlong@Base 0
+ rgetmsg@Base 0
+ risnull@Base 0
+ rjulmdy@Base 0
+ rmdyjul@Base 0
+ rsetnull@Base 0
+ rstrdate@Base 0
+ rtoday@Base 0
+ rtypalign@Base 0
+ rtypmsize@Base 0
+ rtypwidth@Base 0
+ rupshift@Base 0
diff --git a/debian/libecpg-dev.install b/debian/libecpg-dev.install
new file mode 100644
index 0000000..1935a0d
--- /dev/null
+++ b/debian/libecpg-dev.install
@@ -0,0 +1,18 @@
+usr/include/postgresql/ecpg*.h
+usr/include/postgresql/informix/*
+usr/include/postgresql/pgtypes*.h
+usr/include/postgresql/sql3types.h
+usr/include/postgresql/sqlca.h
+usr/include/postgresql/sqlda*.h
+usr/lib/*/libecpg.a
+usr/lib/*/libecpg.so
+usr/lib/*/libecpg_compat.a
+usr/lib/*/libecpg_compat.so
+usr/lib/*/libpgtypes.a
+usr/lib/*/libpgtypes.so
+usr/lib/*/pkgconfig/libecpg.pc
+usr/lib/*/pkgconfig/libecpg_compat.pc
+usr/lib/*/pkgconfig/libpgtypes.pc
+usr/lib/postgresql/*/bin/ecpg usr/bin
+usr/share/locale/*/*/ecpg-*.mo
+usr/share/postgresql/*/man/man1/ecpg.1* /usr/share/man/man1
diff --git a/debian/libecpg6.install b/debian/libecpg6.install
new file mode 100644
index 0000000..394dd60
--- /dev/null
+++ b/debian/libecpg6.install
@@ -0,0 +1,2 @@
+usr/share/locale/*/*/ecpglib*.mo
+usr/lib/*/libecpg.so.6*
diff --git a/debian/libecpg6.symbols b/debian/libecpg6.symbols
new file mode 100644
index 0000000..d20881a
--- /dev/null
+++ b/debian/libecpg6.symbols
@@ -0,0 +1,31 @@
+libecpg.so.6 libecpg6 #MINVER#
+* Build-Depends-Package: libecpg-dev
+ ECPGallocate_desc@Base 0
+ ECPGconnect@Base 0
+ ECPGdeallocate@Base 0
+ ECPGdeallocate_all@Base 0
+ ECPGdeallocate_desc@Base 0
+ ECPGdebug@Base 0
+ ECPGdescribe@Base 0
+ ECPGdisconnect@Base 0
+ ECPGdo@Base 0
+ ECPGdo_descriptor@Base 0
+ ECPGfree_auto_mem@Base 0
+ ECPGget_PGconn@Base 8.3.1-2~
+ ECPGget_desc@Base 0
+ ECPGget_desc_header@Base 0
+ ECPGget_sqlca@Base 0
+ ECPGget_var@Base 9.0~
+ ECPGis_noind_null@Base 0
+ ECPGprepare@Base 0
+ ECPGprepared_statement@Base 0
+ ECPGset_desc@Base 0
+ ECPGset_desc_header@Base 0
+ ECPGset_noind_null@Base 0
+ ECPGset_var@Base 9.0~
+ ECPGsetcommit@Base 0
+ ECPGsetconn@Base 0
+ ECPGstatus@Base 0
+ ECPGtrans@Base 0
+ ECPGtransactionStatus@Base 9.0~
+ sqlprint@Base 0
diff --git a/debian/libpgtypes3.install b/debian/libpgtypes3.install
new file mode 100644
index 0000000..decf90a
--- /dev/null
+++ b/debian/libpgtypes3.install
@@ -0,0 +1 @@
+usr/lib/*/libpgtypes.so.3*
diff --git a/debian/libpgtypes3.symbols b/debian/libpgtypes3.symbols
new file mode 100644
index 0000000..a398be3
--- /dev/null
+++ b/debian/libpgtypes3.symbols
@@ -0,0 +1,48 @@
+libpgtypes.so.3 libpgtypes3 #MINVER#
+* Build-Depends-Package: libecpg-dev
+ PGTYPESchar_free@Base 11~beta2
+ PGTYPESdate_dayofweek@Base 0
+ PGTYPESdate_defmt_asc@Base 0
+ PGTYPESdate_fmt_asc@Base 0
+ PGTYPESdate_free@Base 0
+ PGTYPESdate_from_asc@Base 0
+ PGTYPESdate_from_timestamp@Base 0
+ PGTYPESdate_julmdy@Base 0
+ PGTYPESdate_mdyjul@Base 0
+ PGTYPESdate_new@Base 0
+ PGTYPESdate_to_asc@Base 0
+ PGTYPESdate_today@Base 0
+ PGTYPESdecimal_free@Base 0
+ PGTYPESdecimal_new@Base 0
+ PGTYPESinterval_copy@Base 0
+ PGTYPESinterval_free@Base 0
+ PGTYPESinterval_from_asc@Base 0
+ PGTYPESinterval_new@Base 0
+ PGTYPESinterval_to_asc@Base 0
+ PGTYPESnumeric_add@Base 0
+ PGTYPESnumeric_cmp@Base 0
+ PGTYPESnumeric_copy@Base 0
+ PGTYPESnumeric_div@Base 0
+ PGTYPESnumeric_free@Base 0
+ PGTYPESnumeric_from_asc@Base 0
+ PGTYPESnumeric_from_decimal@Base 0
+ PGTYPESnumeric_from_double@Base 0
+ PGTYPESnumeric_from_int@Base 0
+ PGTYPESnumeric_from_long@Base 0
+ PGTYPESnumeric_mul@Base 0
+ PGTYPESnumeric_new@Base 0
+ PGTYPESnumeric_sub@Base 0
+ PGTYPESnumeric_to_asc@Base 0
+ PGTYPESnumeric_to_decimal@Base 0
+ PGTYPESnumeric_to_double@Base 0
+ PGTYPESnumeric_to_int@Base 0
+ PGTYPESnumeric_to_long@Base 0
+ PGTYPEStimestamp_add_interval@Base 0
+ PGTYPEStimestamp_current@Base 0
+ PGTYPEStimestamp_defmt_asc@Base 0
+ PGTYPEStimestamp_defmt_scan@Base 0
+ PGTYPEStimestamp_fmt_asc@Base 0
+ PGTYPEStimestamp_from_asc@Base 0
+ PGTYPEStimestamp_sub@Base 0
+ PGTYPEStimestamp_sub_interval@Base 0
+ PGTYPEStimestamp_to_asc@Base 0
diff --git a/debian/libpq-dev.dirs b/debian/libpq-dev.dirs
new file mode 100644
index 0000000..e772481
--- /dev/null
+++ b/debian/libpq-dev.dirs
@@ -0,0 +1 @@
+usr/bin
diff --git a/debian/libpq-dev.install b/debian/libpq-dev.install
new file mode 100644
index 0000000..734cb6f
--- /dev/null
+++ b/debian/libpq-dev.install
@@ -0,0 +1,11 @@
+usr/include/postgresql/internal/*
+usr/include/postgresql/libpq-events.h
+usr/include/postgresql/libpq-fe.h
+usr/include/postgresql/libpq/libpq-fs.h
+usr/include/postgresql/pg_config*.h
+usr/include/postgresql/postgres_ext.h
+usr/lib/*/libpq.a
+usr/lib/*/libpq.so
+usr/lib/*/pkgconfig/libpq.pc
+# pg_config manpage for both the perl and C versions
+usr/share/postgresql/*/man/man1/pg_config.1* /usr/share/man/man1
diff --git a/debian/libpq5.install b/debian/libpq5.install
new file mode 100644
index 0000000..c9811d7
--- /dev/null
+++ b/debian/libpq5.install
@@ -0,0 +1,2 @@
+usr/lib/*/libpq.so.5*
+usr/share/locale/*/LC_MESSAGES/libpq*.mo
diff --git a/debian/libpq5.symbols b/debian/libpq5.symbols
new file mode 100644
index 0000000..7a90597
--- /dev/null
+++ b/debian/libpq5.symbols
@@ -0,0 +1,181 @@
+libpq.so.5 libpq5 #MINVER#
+* Build-Depends-Package: libpq-dev
+ PQbackendPID@Base 0
+ PQbinaryTuples@Base 0
+ PQcancel@Base 0
+ PQclear@Base 0
+ PQclientEncoding@Base 0
+ PQcmdStatus@Base 0
+ PQcmdTuples@Base 0
+ PQconndefaults@Base 0
+ PQconnectPoll@Base 0
+ PQconnectStart@Base 0
+ PQconnectStartParams@Base 9.0~
+ PQconnectdb@Base 0
+ PQconnectdbParams@Base 9.0~
+ PQconnectionNeedsPassword@Base 8.3~rc1-1~
+ PQconnectionUsedPassword@Base 8.3~
+ PQconninfo@Base 9.3~
+ PQconninfoFree@Base 0
+ PQconninfoParse@Base 8.4~
+ PQconsumeInput@Base 0
+ PQcopyResult@Base 8.4~
+ PQdb@Base 0
+ PQdefaultSSLKeyPassHook_OpenSSL@Base 13~~
+ PQdescribePortal@Base 0
+ PQdescribePrepared@Base 0
+ PQdisplayTuples@Base 0
+ PQdsplen@Base 0
+ PQencryptPassword@Base 0
+ PQencryptPasswordConn@Base 10~~
+ PQendcopy@Base 0
+ PQenv2encoding@Base 0
+ PQerrorMessage@Base 0
+ PQescapeBytea@Base 0
+ PQescapeByteaConn@Base 0
+ PQescapeIdentifier@Base 9.0~
+ PQescapeLiteral@Base 9.0~
+ PQescapeString@Base 0
+ PQescapeStringConn@Base 0
+ PQexec@Base 0
+ PQexecParams@Base 0
+ PQexecPrepared@Base 0
+ PQfformat@Base 0
+ PQfinish@Base 0
+ PQfireResultCreateEvents@Base 8.4~
+ PQflush@Base 0
+ PQfmod@Base 0
+ PQfn@Base 0
+ PQfname@Base 0
+ PQfnumber@Base 0
+ PQfreeCancel@Base 0
+ PQfreeNotify@Base 0
+ PQfreemem@Base 0
+ PQfsize@Base 0
+ PQftable@Base 0
+ PQftablecol@Base 0
+ PQftype@Base 0
+ PQgetCancel@Base 0
+ PQgetCopyData@Base 0
+ PQgetResult@Base 0
+ PQgetSSLKeyPassHook_OpenSSL@Base 13~~
+ PQgetgssctx@Base 12~~
+ PQgetisnull@Base 0
+ PQgetlength@Base 0
+ PQgetline@Base 0
+ PQgetlineAsync@Base 0
+ PQgetssl@Base 0
+ PQgetvalue@Base 0
+ PQgssEncInUse@Base 12~~
+ PQhost@Base 0
+ PQhostaddr@Base 12~~
+ PQinitOpenSSL@Base 8.4~
+ PQinitSSL@Base 0
+ PQinstanceData@Base 8.4~
+ PQisBusy@Base 0
+ PQisnonblocking@Base 0
+ PQisthreadsafe@Base 0
+ PQlibVersion@Base 9.1~
+ PQmakeEmptyPGresult@Base 0
+ PQmblen@Base 0
+ PQnfields@Base 0
+ PQnotifies@Base 0
+ PQnparams@Base 0
+ PQntuples@Base 0
+ PQoidStatus@Base 0
+ PQoidValue@Base 0
+ PQoptions@Base 0
+ PQparameterStatus@Base 0
+ PQparamtype@Base 0
+ PQpass@Base 0
+ PQping@Base 9.1~
+ PQpingParams@Base 9.1~
+ PQport@Base 0
+ PQprepare@Base 0
+ PQprint@Base 0
+ PQprintTuples@Base 0
+ PQprotocolVersion@Base 0
+ PQputCopyData@Base 0
+ PQputCopyEnd@Base 0
+ PQputline@Base 0
+ PQputnbytes@Base 0
+ PQregisterEventProc@Base 8.4~
+ PQregisterThreadLock@Base 0
+ PQrequestCancel@Base 0
+ PQresStatus@Base 0
+ PQreset@Base 0
+ PQresetPoll@Base 0
+ PQresetStart@Base 0
+ PQresultAlloc@Base 8.4~
+ PQresultErrorField@Base 0
+ PQresultErrorMessage@Base 0
+ PQresultInstanceData@Base 8.4~
+ PQresultMemorySize@Base 12~~
+ PQresultSetInstanceData@Base 8.4~
+ PQresultStatus@Base 0
+ PQresultVerboseErrorMessage@Base 9.6~~
+ PQsendDescribePortal@Base 0
+ PQsendDescribePrepared@Base 0
+ PQsendPrepare@Base 0
+ PQsendQuery@Base 0
+ PQsendQueryParams@Base 0
+ PQsendQueryPrepared@Base 0
+ PQserverVersion@Base 0
+ PQsetClientEncoding@Base 0
+ PQsetErrorContextVisibility@Base 9.6~~
+ PQsetErrorVerbosity@Base 0
+ PQsetInstanceData@Base 8.4~
+ PQsetNoticeProcessor@Base 0
+ PQsetNoticeReceiver@Base 0
+ PQsetResultAttrs@Base 8.4~
+ PQsetSSLKeyPassHook_OpenSSL@Base 13~~
+ PQsetSingleRowMode@Base 9.2~beta3
+ PQsetdbLogin@Base 0
+ PQsetnonblocking@Base 0
+ PQsetvalue@Base 8.4~
+ PQsocket@Base 0
+ PQsslAttribute@Base 9.5~~
+ PQsslAttributeNames@Base 9.5~~
+ PQsslInUse@Base 9.5~~
+ PQsslStruct@Base 9.5~~
+ PQstatus@Base 0
+ PQtrace@Base 0
+ PQtransactionStatus@Base 0
+ PQtty@Base 0
+ PQunescapeBytea@Base 0
+ PQuntrace@Base 0
+ PQuser@Base 0
+ appendBinaryPQExpBuffer@Base 0
+ appendPQExpBuffer@Base 0
+ appendPQExpBufferChar@Base 0
+ appendPQExpBufferStr@Base 0
+ createPQExpBuffer@Base 0
+ destroyPQExpBuffer@Base 0
+ enlargePQExpBuffer@Base 0
+ initPQExpBuffer@Base 0
+ lo_close@Base 0
+ lo_creat@Base 0
+ lo_create@Base 0
+ lo_export@Base 0
+ lo_import@Base 0
+ lo_import_with_oid@Base 8.4~
+ lo_lseek64@Base 9.3~
+ lo_lseek@Base 0
+ lo_open@Base 0
+ lo_read@Base 0
+ lo_tell64@Base 9.3~
+ lo_tell@Base 0
+ lo_truncate64@Base 9.3~
+ lo_truncate@Base 8.3~
+ lo_unlink@Base 0
+ lo_write@Base 0
+ pg_char_to_encoding@Base 0
+ pg_encoding_to_char@Base 0
+ pg_utf_mblen@Base 0
+ pg_valid_server_encoding@Base 0
+ pg_valid_server_encoding_id@Base 8.3~beta1-2~
+ pgresStatus@Base 0
+ pqsignal@Base 0
+ printfPQExpBuffer@Base 0
+ resetPQExpBuffer@Base 0
+ termPQExpBuffer@Base 0
diff --git a/debian/patches/50-per-version-dirs.patch b/debian/patches/50-per-version-dirs.patch
new file mode 100644
index 0000000..7819df3
--- /dev/null
+++ b/debian/patches/50-per-version-dirs.patch
@@ -0,0 +1,69 @@
+Author: Martin Pitt <mpitt@debian.org>
+Description: Use version specific installation directories so that several major versions can be installed in parallel.
+Forwarded: No, Debian specific packaging with postgresql-common
+
+ * Install lib files into /usr/lib/postgresql/<version>/lib/
+ * Install server related header files into /usr/include/postgresql/<version>/server/
+ * Disable PostgreSQL's automagic path mangling and fix libdir for pg_config,
+ so that pg_config in /usr/bin and /usr/lib/postgresql/<version>/bin behave
+ identically.
+
+Bug-Debian: http://bugs.debian.org/462037
+
+--- a/src/Makefile.global.in
++++ b/src/Makefile.global.in
+@@ -119,7 +119,7 @@ libdir := @libdir@
+ pkglibdir = $(libdir)
+ ifeq "$(findstring pgsql, $(pkglibdir))" ""
+ ifeq "$(findstring postgres, $(pkglibdir))" ""
+-override pkglibdir := $(pkglibdir)/postgresql
++override pkglibdir := /usr/lib/postgresql/@PG_MAJORVERSION@/lib
+ endif
+ endif
+
+@@ -167,7 +167,7 @@ endif # PGXS
+
+ # These derived path variables aren't separately configurable.
+
+-includedir_server = $(pkgincludedir)/server
++includedir_server = $(pkgincludedir)/@PG_MAJORVERSION@/server
+ includedir_internal = $(pkgincludedir)/internal
+ pgxsdir = $(pkglibdir)/pgxs
+ bitcodedir = $(pkglibdir)/bitcode
+--- a/src/bin/pg_config/pg_config.c
++++ b/src/bin/pg_config/pg_config.c
+@@ -27,6 +27,8 @@
+ #include "common/config_info.h"
+ #include "port.h"
+
++#include "../port/pg_config_paths.h"
++
+ static const char *progname;
+
+ /*
+@@ -149,11 +151,7 @@ main(int argc, char **argv)
+ }
+ }
+
+- if (find_my_exec(argv[0], my_exec_path) < 0)
+- {
+- fprintf(stderr, _("%s: could not find own program executable\n"), progname);
+- exit(1);
+- }
++ snprintf(my_exec_path, sizeof(my_exec_path), "%s/%s", PGBINDIR, progname);
+
+ configdata = get_configdata(my_exec_path, &configdata_len);
+ /* no arguments -> print everything */
+--- a/src/test/perl/TestLib.pm
++++ b/src/test/perl/TestLib.pm
+@@ -591,6 +591,10 @@ sub check_pg_config
+ or die "could not execute pg_config";
+ chomp($stdout);
+ $stdout =~ s/\r$//;
++ # Debian's pg_config is not relocatable, manually check for correct location
++ if (-d "../../../build/tmp_install/usr/include/postgresql") {
++ $stdout = "../../../build/tmp_install/usr/include/postgresql";
++ }
+
+ open my $pg_config_h, '<', "$stdout/pg_config.h" or die "$!";
+ my $match = (grep { /^$regexp/ } <$pg_config_h>);
diff --git a/debian/patches/51-default-sockets-in-var.patch b/debian/patches/51-default-sockets-in-var.patch
new file mode 100644
index 0000000..5ea8488
--- /dev/null
+++ b/debian/patches/51-default-sockets-in-var.patch
@@ -0,0 +1,20 @@
+Author: Martin Pitt <mpitt@debian.org>
+Description: Put server Unix sockets into /var/run/postgresql/ by default
+Forwarded: No, Debian specific configuration with postgresql-common
+
+Using /tmp for sockets allows everyone to spoof a PostgreSQL server. Thus use
+/var/run/postgresql/ for "system" clusters which run as 'postgres' (user
+clusters will still use /tmp). Since system cluster are by far the common case,
+set it as default.
+
+--- a/src/include/pg_config_manual.h
++++ b/src/include/pg_config_manual.h
+@@ -201,7 +201,7 @@
+ * support them yet.
+ */
+ #ifndef WIN32
+-#define DEFAULT_PGSOCKET_DIR "/tmp"
++#define DEFAULT_PGSOCKET_DIR "/var/run/postgresql"
+ #else
+ #define DEFAULT_PGSOCKET_DIR ""
+ #endif
diff --git a/debian/patches/52-tutorial-README.patch b/debian/patches/52-tutorial-README.patch
new file mode 100644
index 0000000..9eb3263
--- /dev/null
+++ b/debian/patches/52-tutorial-README.patch
@@ -0,0 +1,16 @@
+Author: Martin Pitt <mpitt@debian.org>
+Description: Update tutorial README for required build dependencies.
+Forwarded: No, Debian specific
+
+--- a/src/tutorial/README
++++ b/src/tutorial/README
+@@ -6,8 +6,7 @@ tutorial
+ This directory contains SQL tutorial scripts. To look at them, first do a
+ % make
+ to compile all the scripts and C files for the user-defined functions
+-and types. (make needs to be GNU make --- it may be named something
+-different on your system, often 'gmake')
++and types. This requires a postgresql-server-dev-* package to be installed.
+
+ Then, run psql with the -s (single-step) flag:
+ % psql -s
diff --git a/debian/patches/53-pg_service.conf_directory_doc.patch b/debian/patches/53-pg_service.conf_directory_doc.patch
new file mode 100644
index 0000000..584b41c
--- /dev/null
+++ b/debian/patches/53-pg_service.conf_directory_doc.patch
@@ -0,0 +1,19 @@
+Author: Martin Pitt <mpitt@debian.org>
+Description: Update pg_service.conf example to tell the Debian specific file location.
+Forwarded: No, Debian specific
+
+Index: postgresql-9.2-9.2~beta1/src/interfaces/libpq/pg_service.conf.sample
+===================================================================
+--- postgresql-9.2-9.2~beta1.orig/src/interfaces/libpq/pg_service.conf.sample 2011-04-27 23:17:22.000000000 +0200
++++ postgresql-9.2-9.2~beta1/src/interfaces/libpq/pg_service.conf.sample 2011-05-10 11:25:42.151949794 +0200
+@@ -8,8 +8,8 @@
+ # to look up such parameters. A sample configuration for postgres is
+ # included in this file. Lines beginning with '#' are comments.
+ #
+-# Copy this to your sysconf directory (typically /usr/local/pgsql/etc) and
+-# rename it pg_service.conf.
++# Copy this to /etc/postgresql-common/ (or select its location with the
++# PGSYSCONFDIR environment variable) and rename it pg_service.conf.
+ #
+ #
+ #[postgres]
diff --git a/debian/patches/54-debian-alternatives-for-external-tools.patch b/debian/patches/54-debian-alternatives-for-external-tools.patch
new file mode 100644
index 0000000..0031989
--- /dev/null
+++ b/debian/patches/54-debian-alternatives-for-external-tools.patch
@@ -0,0 +1,28 @@
+Author: Martin Pitt <mpitt@debian.org>
+Description: Use Debian alternatives for external tools instead of hardcoded programs
+Forwarded: No, Debian specific
+
+--- a/src/bin/psql/settings.h
++++ b/src/bin/psql/settings.h
+@@ -19,8 +19,8 @@
+ #define DEFAULT_EDITOR "notepad.exe"
+ /* no DEFAULT_EDITOR_LINENUMBER_ARG for Notepad */
+ #else
+-#define DEFAULT_EDITOR "vi"
+-#define DEFAULT_EDITOR_LINENUMBER_ARG "+"
++#define DEFAULT_EDITOR "sensible-editor"
++/*#define DEFAULT_EDITOR_LINENUMBER_ARG "+"*/
+ #endif
+
+ #define DEFAULT_PROMPT1 "%/%R%x%# "
+--- a/src/include/fe_utils/print.h
++++ b/src/include/fe_utils/print.h
+@@ -20,7 +20,7 @@
+
+ /* This is not a particularly great place for this ... */
+ #ifndef __CYGWIN__
+-#define DEFAULT_PAGER "more"
++#define DEFAULT_PAGER "pager"
+ #else
+ #define DEFAULT_PAGER "less"
+ #endif
diff --git a/debian/patches/70-history b/debian/patches/70-history
new file mode 100644
index 0000000..34c8683
--- /dev/null
+++ b/debian/patches/70-history
@@ -0,0 +1,13 @@
+Author: Christoph Berg <myon@debian.org>
+Description: Document Debian location of release notes files.
+Forwarded: No, Debian specific
+
+--- a/HISTORY
++++ b/HISTORY
+@@ -3,3 +3,6 @@
+
+ Distribution file sets include release notes for their version and preceding
+ versions. Visit the file doc/src/sgml/html/release.html in an HTML browser.
++
++On Debian systems, the release notes are contained in the postgresql-doc-*
++packages, located in /usr/share/doc/postgresql-doc-*/html/release.html.
diff --git a/debian/patches/extension_destdir b/debian/patches/extension_destdir
new file mode 100644
index 0000000..6c20e46
--- /dev/null
+++ b/debian/patches/extension_destdir
@@ -0,0 +1,270 @@
+--- a/src/backend/utils/misc/guc.c
++++ b/src/backend/utils/misc/guc.c
+@@ -562,6 +562,7 @@ char *ConfigFileName;
+ char *HbaFileName;
+ char *IdentFileName;
+ char *external_pid_file;
++char *extension_destdir;
+
+ char *pgstat_temp_directory;
+
+@@ -4237,6 +4238,17 @@ static struct config_string ConfigureNam
+ },
+
+ {
++ {"extension_destdir", PGC_SUSET, FILE_LOCATIONS,
++ gettext_noop("Path to prepend for extension loading"),
++ gettext_noop("This directory is prepended to paths when loading extensions (control and SQL files), and to the '$libdir' directive when loading modules that back functions. The location is made configurable to allow build-time testing of extensions that do not have been installed to their proper location yet."),
++ GUC_SUPERUSER_ONLY
++ },
++ &extension_destdir,
++ "",
++ NULL, NULL, NULL
++ },
++
++ {
+ {"ssl_library", PGC_INTERNAL, PRESET_OPTIONS,
+ gettext_noop("Name of the SSL library."),
+ NULL,
+--- a/src/backend/commands/extension.c
++++ b/src/backend/commands/extension.c
+@@ -128,6 +128,8 @@ static void ApplyExtensionUpdates(Oid ex
+ bool cascade,
+ bool is_create);
+ static char *read_whole_file(const char *filename, int *length);
++static bool file_exists(const char *name);
++static bool directory_exists(const char *dir);
+
+
+ /*
+@@ -388,6 +390,16 @@ get_extension_control_filename(const cha
+
+ get_share_path(my_exec_path, sharepath);
+ result = (char *) palloc(MAXPGPATH);
++ /*
++ * If extension_destdir is set, try to find the file there first
++ */
++ if (*extension_destdir != '\0')
++ {
++ snprintf(result, MAXPGPATH, "%s%s/extension/%s.control",
++ extension_destdir, sharepath, extname);
++ if (file_exists(result))
++ return result;
++ }
+ snprintf(result, MAXPGPATH, "%s/extension/%s.control",
+ sharepath, extname);
+
+@@ -427,6 +439,16 @@ get_extension_aux_control_filename(Exten
+ scriptdir = get_extension_script_directory(control);
+
+ result = (char *) palloc(MAXPGPATH);
++ /*
++ * If extension_destdir is set, try to find the file there first
++ */
++ if (*extension_destdir != '\0')
++ {
++ snprintf(result, MAXPGPATH, "%s%s/%s--%s.control",
++ extension_destdir, scriptdir, control->name, version);
++ if (file_exists(result))
++ return result;
++ }
+ snprintf(result, MAXPGPATH, "%s/%s--%s.control",
+ scriptdir, control->name, version);
+
+@@ -445,6 +467,23 @@ get_extension_script_filename(ExtensionC
+ scriptdir = get_extension_script_directory(control);
+
+ result = (char *) palloc(MAXPGPATH);
++ /*
++ * If extension_destdir is set, try to find the file there first
++ */
++ if (*extension_destdir != '\0')
++ {
++ if (from_version)
++ snprintf(result, MAXPGPATH, "%s%s/%s--%s--%s.sql",
++ extension_destdir, scriptdir, control->name, from_version, version);
++ else
++ snprintf(result, MAXPGPATH, "%s%s/%s--%s.sql",
++ extension_destdir, scriptdir, control->name, version);
++ if (file_exists(result))
++ {
++ pfree(scriptdir);
++ return result;
++ }
++ }
+ if (from_version)
+ snprintf(result, MAXPGPATH, "%s/%s--%s--%s.sql",
+ scriptdir, control->name, from_version, version);
+@@ -1121,6 +1160,59 @@ get_ext_ver_list(ExtensionControlFile *c
+ DIR *dir;
+ struct dirent *de;
+
++ /*
++ * If extension_destdir is set, try to find the files there first
++ */
++ if (*extension_destdir != '\0')
++ {
++ char location[MAXPGPATH];
++
++ snprintf(location, MAXPGPATH, "%s%s", extension_destdir,
++ get_extension_script_directory(control));
++ dir = AllocateDir(location);
++ while ((de = ReadDir(dir, location)) != NULL)
++ {
++ char *vername;
++ char *vername2;
++ ExtensionVersionInfo *evi;
++ ExtensionVersionInfo *evi2;
++
++ /* must be a .sql file ... */
++ if (!is_extension_script_filename(de->d_name))
++ continue;
++
++ /* ... matching extension name followed by separator */
++ if (strncmp(de->d_name, control->name, extnamelen) != 0 ||
++ de->d_name[extnamelen] != '-' ||
++ de->d_name[extnamelen + 1] != '-')
++ continue;
++
++ /* extract version name(s) from 'extname--something.sql' filename */
++ vername = pstrdup(de->d_name + extnamelen + 2);
++ *strrchr(vername, '.') = '\0';
++ vername2 = strstr(vername, "--");
++ if (!vername2)
++ {
++ /* It's an install, not update, script; record its version name */
++ evi = get_ext_ver_info(vername, &evi_list);
++ evi->installable = true;
++ continue;
++ }
++ *vername2 = '\0'; /* terminate first version */
++ vername2 += 2; /* and point to second */
++
++ /* if there's a third --, it's bogus, ignore it */
++ if (strstr(vername2, "--"))
++ continue;
++
++ /* Create ExtensionVersionInfos and link them together */
++ evi = get_ext_ver_info(vername, &evi_list);
++ evi2 = get_ext_ver_info(vername2, &evi_list);
++ evi->reachable = lappend(evi->reachable, evi2);
++ }
++ FreeDir(dir);
++ }
++
+ location = get_extension_script_directory(control);
+ dir = AllocateDir(location);
+ while ((de = ReadDir(dir, location)) != NULL)
+@@ -3450,3 +3542,32 @@ read_whole_file(const char *filename, in
+ buf[*length] = '\0';
+ return buf;
+ }
++
++static bool
++file_exists(const char *name)
++{
++ struct stat st;
++
++ AssertArg(name != NULL);
++
++ if (stat(name, &st) == 0)
++ return S_ISDIR(st.st_mode) ? false : true;
++ else if (!(errno == ENOENT || errno == ENOTDIR || errno == EACCES))
++ ereport(ERROR,
++ (errcode_for_file_access(),
++ errmsg("could not access file \"%s\": %m", name)));
++
++ return false;
++}
++
++static bool
++directory_exists(const char *dir)
++{
++ struct stat st;
++
++ if (stat(dir, &st) != 0)
++ return false;
++ if (S_ISDIR(st.st_mode))
++ return true;
++ return false;
++}
+--- a/src/include/utils/guc.h
++++ b/src/include/utils/guc.h
+@@ -270,6 +270,7 @@ extern PGDLLIMPORT char *ConfigFileName;
+ extern char *HbaFileName;
+ extern char *IdentFileName;
+ extern char *external_pid_file;
++extern char *extension_destdir;
+
+ extern PGDLLIMPORT char *application_name;
+
+--- a/src/backend/utils/fmgr/dfmgr.c
++++ b/src/backend/utils/fmgr/dfmgr.c
+@@ -34,6 +34,7 @@
+ #include "lib/stringinfo.h"
+ #include "miscadmin.h"
+ #include "storage/shmem.h"
++#include "utils/guc.h"
+ #include "utils/hsearch.h"
+
+
+@@ -487,7 +488,7 @@ expand_dynamic_library_name(const char *
+ {
+ bool have_slash;
+ char *new;
+- char *full;
++ char *full, *full2;
+
+ AssertArg(name);
+
+@@ -502,6 +503,19 @@ expand_dynamic_library_name(const char *
+ else
+ {
+ full = substitute_libpath_macro(name);
++ /*
++ * If extension_destdir is set, try to find the file there first
++ */
++ if (*extension_destdir != '\0')
++ {
++ full2 = psprintf("%s%s", extension_destdir, full);
++ if (file_exists(full2))
++ {
++ pfree(full);
++ return full2;
++ }
++ pfree(full2);
++ }
+ if (file_exists(full))
+ return full;
+ pfree(full);
+@@ -520,6 +534,19 @@ expand_dynamic_library_name(const char *
+ {
+ full = substitute_libpath_macro(new);
+ pfree(new);
++ /*
++ * If extension_destdir is set, try to find the file there first
++ */
++ if (*extension_destdir != '\0')
++ {
++ full2 = psprintf("%s%s", extension_destdir, full);
++ if (file_exists(full2))
++ {
++ pfree(full);
++ return full2;
++ }
++ pfree(full2);
++ }
+ if (file_exists(full))
+ return full;
+ pfree(full);
+--- a/src/backend/utils/misc/postgresql.conf.sample
++++ b/src/backend/utils/misc/postgresql.conf.sample
+@@ -710,6 +710,8 @@
+ # - Other Defaults -
+
+ #dynamic_library_path = '$libdir'
++#extension_destdir = '' # prepend path when loading extensions
++ # and shared objects (added by Debian)
+
+
+ #------------------------------------------------------------------------------
diff --git a/debian/patches/filter-debug-prefix-map b/debian/patches/filter-debug-prefix-map
new file mode 100644
index 0000000..5abd4fa
--- /dev/null
+++ b/debian/patches/filter-debug-prefix-map
@@ -0,0 +1,44 @@
+To make the PostgreSQL server packages build reproducibly, we need to remove
+the build path from -fdebug-prefix-map and -ffile-prefix-map in CFLAGS.
+
+* The actual server build still uses the original CFLAGS so the build path is
+ correctly mapped in the object files.
+* The information printed by the pg_config binary and the system view is
+ filtered in src/common/Makefile and the configure script.
+* The build paths stored in Makefile.global are filtered in debian/rules.
+ (abs_top_builddir, abs_top_srcdir, configure_args, CFLAGS)
+* To make PGXS module builds reproducible, pg_buildext copies the environment
+ CFLAGS to COPT where Makefile.global picks them up, using the prefix maps
+ from dpkg-buildflags.
+
+--- a/src/common/Makefile
++++ b/src/common/Makefile
+@@ -33,7 +33,7 @@ STD_CPPFLAGS := $(filter-out -I$(top_src
+ STD_LDFLAGS := $(filter-out -L$(top_builddir)/src/common -L$(top_builddir)/src/port,$(LDFLAGS))
+ override CPPFLAGS += -DVAL_CC="\"$(CC)\""
+ override CPPFLAGS += -DVAL_CPPFLAGS="\"$(STD_CPPFLAGS)\""
+-override CPPFLAGS += -DVAL_CFLAGS="\"$(CFLAGS)\""
++override CPPFLAGS += -DVAL_CFLAGS="\"$(filter-out -fdebug-prefix-map=% -ffile-prefix-map=%,$(CFLAGS))\""
+ override CPPFLAGS += -DVAL_CFLAGS_SL="\"$(CFLAGS_SL)\""
+ override CPPFLAGS += -DVAL_LDFLAGS="\"$(STD_LDFLAGS)\""
+ override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
+--- a/configure.in
++++ b/configure.in
+@@ -27,6 +27,7 @@ AC_COPYRIGHT([Copyright (c) 1996-2020, P
+ AC_CONFIG_SRCDIR([src/backend/access/common/heaptuple.c])
+ AC_CONFIG_AUX_DIR(config)
+ AC_PREFIX_DEFAULT(/usr/local/pgsql)
++[ac_configure_args=$(echo "$ac_configure_args" | sed -e "s/ -f\(debug\|file\)-prefix-map=[^' ]*//g")]
+ AC_DEFINE_UNQUOTED(CONFIGURE_ARGS, ["$ac_configure_args"], [Saved arguments from configure])
+
+ [PG_MAJORVERSION=`expr "$PACKAGE_VERSION" : '\([0-9][0-9]*\)'`]
+--- a/configure
++++ b/configure
+@@ -2796,6 +2796,7 @@ ac_config_sub="$SHELL $ac_aux_dir/config
+ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
++ac_configure_args=$(echo "$ac_configure_args" | sed -e "s/ -f\(debug\|file\)-prefix-map=[^' ]*//g")
+
+
+ cat >>confdefs.h <<_ACEOF
diff --git a/debian/patches/initdb-startup-message b/debian/patches/initdb-startup-message
new file mode 100644
index 0000000..c164ad9
--- /dev/null
+++ b/debian/patches/initdb-startup-message
@@ -0,0 +1,15 @@
+Author: Christoph Berg <myon@debian.org>
+Description: Debian-specific cluster startup message from initdb
+Forwarded: No, Debian specific
+
+--- a/src/bin/initdb/initdb.c
++++ b/src/bin/initdb/initdb.c
+@@ -3411,7 +3411,7 @@ main(int argc, char *argv[])
+
+ printf(_("\nSuccess. You can now start the database server using:\n\n"
+ " %s\n\n"),
+- start_db_cmd->data);
++ getenv("CLUSTER_START_COMMAND") ? getenv("CLUSTER_START_COMMAND") : start_db_cmd->data);
+
+ destroyPQExpBuffer(start_db_cmd);
+
diff --git a/debian/patches/libpgport-pkglibdir b/debian/patches/libpgport-pkglibdir
new file mode 100644
index 0000000..0677f5b
--- /dev/null
+++ b/debian/patches/libpgport-pkglibdir
@@ -0,0 +1,84 @@
+Author: Christoph Berg <myon@debian.org>
+Description: Move libpgport/libpgcommon/libpgfeutils from libdir to pkglibdir
+ This allows client applications to link to version-specific libraries.
+ Used by pg-checksums.
+Forwarded: No, (somewhat) Debian specific
+
+--- a/src/common/Makefile
++++ b/src/common/Makefile
+@@ -68,15 +68,15 @@ all: libpgcommon.a libpgcommon_shlib.a l
+
+ # libpgcommon is needed by some contrib
+ install: all installdirs
+- $(INSTALL_STLIB) libpgcommon.a '$(DESTDIR)$(libdir)/libpgcommon.a'
+- $(INSTALL_STLIB) libpgcommon_shlib.a '$(DESTDIR)$(libdir)/libpgcommon_shlib.a'
++ $(INSTALL_STLIB) libpgcommon.a '$(DESTDIR)$(pkglibdir)/libpgcommon.a'
++ $(INSTALL_STLIB) libpgcommon_shlib.a '$(DESTDIR)$(pkglibdir)/libpgcommon_shlib.a'
+
+ installdirs:
+- $(MKDIR_P) '$(DESTDIR)$(libdir)'
++ $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'
+
+ uninstall:
+- rm -f '$(DESTDIR)$(libdir)/libpgcommon.a'
+- rm -f '$(DESTDIR)$(libdir)/libpgcommon_shlib.a'
++ rm -f '$(DESTDIR)$(pkglibdir)/libpgcommon.a'
++ rm -f '$(DESTDIR)$(pkglibdir)/libpgcommon_shlib.a'
+
+ libpgcommon.a: $(OBJS_FRONTEND)
+ rm -f $@
+--- a/src/fe_utils/Makefile
++++ b/src/fe_utils/Makefile
+@@ -35,13 +35,13 @@ distprep: psqlscan.c
+
+ # libpgfeutils could be useful to contrib, so install it
+ install: all installdirs
+- $(INSTALL_STLIB) libpgfeutils.a '$(DESTDIR)$(libdir)/libpgfeutils.a'
++ $(INSTALL_STLIB) libpgfeutils.a '$(DESTDIR)$(pkglibdir)/libpgfeutils.a'
+
+ installdirs:
+- $(MKDIR_P) '$(DESTDIR)$(libdir)'
++ $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'
+
+ uninstall:
+- rm -f '$(DESTDIR)$(libdir)/libpgfeutils.a'
++ rm -f '$(DESTDIR)$(pkglibdir)/libpgfeutils.a'
+
+ clean distclean:
+ rm -f libpgfeutils.a $(OBJS) lex.backup
+--- a/src/port/Makefile
++++ b/src/port/Makefile
+@@ -54,15 +54,15 @@ all: libpgport.a libpgport_shlib.a libpg
+
+ # libpgport is needed by some contrib
+ install: all installdirs
+- $(INSTALL_STLIB) libpgport.a '$(DESTDIR)$(libdir)/libpgport.a'
+- $(INSTALL_STLIB) libpgport_shlib.a '$(DESTDIR)$(libdir)/libpgport_shlib.a'
++ $(INSTALL_STLIB) libpgport.a '$(DESTDIR)$(pkglibdir)/libpgport.a'
++ $(INSTALL_STLIB) libpgport_shlib.a '$(DESTDIR)$(pkglibdir)/libpgport_shlib.a'
+
+ installdirs:
+- $(MKDIR_P) '$(DESTDIR)$(libdir)'
++ $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'
+
+ uninstall:
+- rm -f '$(DESTDIR)$(libdir)/libpgport.a'
+- rm -f '$(DESTDIR)$(libdir)/libpgport_shlib.a'
++ rm -f '$(DESTDIR)$(pkglibdir)/libpgport.a'
++ rm -f '$(DESTDIR)$(pkglibdir)/libpgport_shlib.a'
+
+ libpgport.a: $(OBJS)
+ rm -f $@
+--- a/src/Makefile.global.in
++++ b/src/Makefile.global.in
+@@ -549,8 +549,8 @@ libpq = -L$(libpq_builddir) -lpq
+ # on client link lines, since that also appears in $(LIBS).
+ # libpq_pgport_shlib is the same idea, but for use in client shared libraries.
+ ifdef PGXS
+-libpq_pgport = -L$(libdir) -lpgcommon -lpgport $(libpq)
+-libpq_pgport_shlib = -L$(libdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
++libpq_pgport = -L$(pkglibdir) -lpgcommon -lpgport $(libpq)
++libpq_pgport_shlib = -L$(pkglibdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
+ else
+ libpq_pgport = -L$(top_builddir)/src/common -lpgcommon -L$(top_builddir)/src/port -lpgport $(libpq)
+ libpq_pgport_shlib = -L$(top_builddir)/src/common -lpgcommon_shlib -L$(top_builddir)/src/port -lpgport_shlib $(libpq)
diff --git a/debian/patches/risc-spinlock b/debian/patches/risc-spinlock
new file mode 100644
index 0000000..a63d1a4
--- /dev/null
+++ b/debian/patches/risc-spinlock
@@ -0,0 +1,61 @@
+commit c32fcac56a212b4e6bb5ba63596f60a25a18109a
+Author: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Fri Aug 13 13:58:47 2021 -0400
+
+ Add RISC-V spinlock support in s_lock.h.
+
+ Like the ARM case, just use gcc's __sync_lock_test_and_set();
+ that will compile into AMOSWAP.W.AQ which does what we need.
+
+ At some point it might be worth doing some work on atomic ops
+ for RISC-V, but this should be enough for a creditable port.
+
+ Back-patch to all supported branches, just in case somebody
+ wants to try them on RISC-V.
+
+ Marek Szuba
+
+ Discussion: https://postgr.es/m/dea97b6d-f55f-1f6d-9109-504aa7dfa421@gentoo.org
+
+diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
+index 254c40d477..dccbd299ce 100644
+--- a/src/include/storage/s_lock.h
++++ b/src/include/storage/s_lock.h
+@@ -314,6 +314,7 @@ tas(volatile slock_t *lock)
+ #endif /* __INTEL_COMPILER */
+ #endif /* __ia64__ || __ia64 */
+
++
+ /*
+ * On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available.
+ *
+@@ -340,6 +341,29 @@ tas(volatile slock_t *lock)
+ #endif /* __arm__ || __arm || __aarch64__ || __aarch64 */
+
+
++/*
++ * RISC-V likewise uses __sync_lock_test_and_set(int *, int) if available.
++ */
++#if defined(__riscv)
++#ifdef HAVE_GCC__SYNC_INT32_TAS
++#define HAS_TEST_AND_SET
++
++#define TAS(lock) tas(lock)
++
++typedef int slock_t;
++
++static __inline__ int
++tas(volatile slock_t *lock)
++{
++ return __sync_lock_test_and_set(lock, 1);
++}
++
++#define S_UNLOCK(lock) __sync_lock_release(lock)
++
++#endif /* HAVE_GCC__SYNC_INT32_TAS */
++#endif /* __riscv */
++
++
+ /* S/390 and S/390x Linux (32- and 64-bit zSeries) */
+ #if defined(__s390__) || defined(__s390x__)
+ #define HAS_TEST_AND_SET
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..39d356d
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,11 @@
+50-per-version-dirs.patch
+51-default-sockets-in-var.patch
+52-tutorial-README.patch
+53-pg_service.conf_directory_doc.patch
+54-debian-alternatives-for-external-tools.patch
+70-history
+filter-debug-prefix-map
+libpgport-pkglibdir
+initdb-startup-message
+extension_destdir
+risc-spinlock
diff --git a/debian/pg_config.pl b/debian/pg_config.pl
new file mode 100755
index 0000000..2c90236
--- /dev/null
+++ b/debian/pg_config.pl
@@ -0,0 +1,76 @@
+#!/usr/bin/perl
+
+# Perl reimplementation of PostgreSQL's pg_config binary.
+# We provide this as /usr/bin/pg_config to support cross-compilation using
+# libpq-dev. Also, this makes the two installed pg_config copies not conflict
+# via their debugging symbols.
+#
+# This code is released under the terms of the PostgreSQL License.
+# Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
+# Author: Christoph Berg
+
+use strict;
+use warnings;
+
+# no arguments, print all items
+if (@ARGV == 0) {
+ while (<DATA>) {
+ last if /^$/; # begin of help section
+ print;
+ }
+ exit 0;
+}
+
+# --help or -?
+if (grep {$_ =~ /^(--help|-\?)$/} @ARGV) {
+ while (<DATA>) {
+ last if /^$/; # begin of help section
+ }
+ print; # include empty line in output
+ while (<DATA>) {
+ next if /^Report bugs/; # Skip bug address in the perl version
+ print;
+ }
+ exit 0;
+}
+
+# specific value(s) requested
+my %options;
+my $help;
+while (<DATA>) {
+ last if /^$/; # begin of help section
+ /^(\S+) = (.*)/ or die "malformatted data item";
+ $options{'--' . lc $1} = $2;
+}
+
+foreach my $arg (@ARGV) {
+ unless ($options{$arg}) {
+ print "pg_config: invalid argument: $arg\n";
+ print "Try \"pg_config --help\" for more information.\n";
+ exit 1;
+ }
+ print "$options{$arg}\n";
+}
+
+exit 0;
+
+# The DATA section consists of the `pg_config` output (one KEY = value item per
+# line), and the `pg_config --help` text. The first --help line is empty, which
+# we use to detect the beginning of the help section.
+
+__DATA__
+INCLUDEDIR = /usr/include/postgresql
+
+pg_config provides information about the installed version of PostgreSQL.
+
+Usage:
+ pg_config [OPTION]...
+
+Options:
+ --includedir show location of C header files of the client
+ interfaces
+ -?, --help show this help, then exit
+
+With no arguments, all known items are shown.
+
+Report bugs to <pgsql-bugs@postgresql.org>.
diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
new file mode 100644
index 0000000..7235fe7
--- /dev/null
+++ b/debian/po/POTFILES.in
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] postgresql-13.templates
diff --git a/debian/po/de.po b/debian/po/de.po
new file mode 100644
index 0000000..df2bd4d
--- /dev/null
+++ b/debian/po/de.po
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the postgresql-11 package.
+# Copyright (C) Helge Kreutzmann <debian@helgefjell.de>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: postgresql-11 11.1-2\n"
+"Report-Msgid-Bugs-To: postgresql-11@packages.debian.org\n"
+"POT-Creation-Date: 2019-01-09 15:22+0100\n"
+"PO-Revision-Date: 2019-01-19 07:33+0100\n"
+"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
+"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid "Remove PostgreSQL directories when package is purged?"
+msgstr ""
+"PostgreSQL-Verzeichnisse entfernen, wenn das Paket endgültig gelöscht wird?"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid ""
+"Removing the PostgreSQL server package will leave existing database clusters "
+"intact, i.e. their configuration, data, and log directories will not be "
+"removed. On purging the package, the directories can optionally be removed."
+msgstr ""
+"Beim Entfernen der PostgreSQL-Server-Pakete werden existierende Datenbank-"
+"Cluster intakt gelassen, d.h. ihre Konfigurations-, Daten- und "
+"Log-Verzeichnisse werden nicht entfernt. Beim endgültigen Löschen des "
+"Pakets können die Verzeichnisse optional entfernt werden."
diff --git a/debian/po/es.po b/debian/po/es.po
new file mode 100644
index 0000000..d408e65
--- /dev/null
+++ b/debian/po/es.po
@@ -0,0 +1,58 @@
+# postgresql-13 po-debconf translation to Spanish.
+# Copyright (C) 2021 Software in the Public Interest
+# This file is distributed under the same license as the postgresql-13 package.
+#
+# Changes:
+# - Initial translation
+# Jonathan Bustillos <jathan@debian.org>, 2021.
+#
+# Traductores, si no conocen el formato PO, merece la pena leer la
+# documentación de gettext, especialmente las secciones dedicadas a este
+# formato, por ejemplo ejecutando:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traducción de Debian al español
+# http://www.debian.org/intl/spanish/
+# especialmente las notas y normas de traducción en
+# http://www.debian.org/intl/spanish/notas
+#
+# - La guía de traducción de po's de debconf:
+# /usr/share/doc/po-debconf/README-trans
+# o http://www.debian.org/intl/l10n/po-debconf/README-trans
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-03-31 18:37+0000\n"
+"PO-Revision-Date: 2021-04-03 14:25-0600\n"
+"Last-Translator: Jonathan Bustillos <jathan@debian.org>\n"
+"Language-Team: Debian Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-13.templates:1001
+msgid "Remove PostgreSQL directories when package is purged?"
+msgstr "¿Eliminar los directorios de PostgreSQL cuando se purga el paquete?"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-13.templates:1001
+msgid ""
+"Removing the PostgreSQL server package will leave existing database clusters "
+"intact, i.e. their configuration, data, and log directories will not be "
+"removed. On purging the package, the directories can optionally be removed."
+msgstr ""
+"La eliminación del paquete del servidor PostgreSQL dejará intactos los "
+"clusters de bases de datos existentes, es decir, no se eliminarán sus "
+"directorios de configuración, datos y registro. Al purgar el paquete, los "
+"directorios pueden ser eliminados opcionalmente."
diff --git a/debian/po/fr.po b/debian/po/fr.po
new file mode 100644
index 0000000..cc3c6ee
--- /dev/null
+++ b/debian/po/fr.po
@@ -0,0 +1,39 @@
+# Translation of postgresql debconf templates to French
+# Copyright (C) 2019 Debian French l10n team <debian-l10n-french@lists.debian.org>
+# This file is distributed under the same license as the postgresql-11 package.
+#
+# Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: postgresql-11\n"
+"Report-Msgid-Bugs-To: postgresql-11@packages.debian.org\n"
+"POT-Creation-Date: 2019-01-09 15:22+0100\n"
+"PO-Revision-Date: 2019-01-14 14:25+0100\n"
+"Last-Translator: Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Lokalize 2.0\n"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid "Remove PostgreSQL directories when package is purged?"
+msgstr ""
+"Faut-il supprimer les répertoires de PostgreSQL lors de la purge du paquet ?"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid ""
+"Removing the PostgreSQL server package will leave existing database clusters "
+"intact, i.e. their configuration, data, and log directories will not be "
+"removed. On purging the package, the directories can optionally be removed."
+msgstr ""
+"La suppression du paquet du serveur PostgreSQL laissera les grappes de bases "
+"de données existantes intactes, c'est-à-dire que leurs répertoires de "
+"configuration, de données et de journal ne seront pas supprimés. Lors de la "
+"purge du paquet, les répertoires peuvent être supprimés de façon optionnelle."
diff --git a/debian/po/nl.po b/debian/po/nl.po
new file mode 100644
index 0000000..11cda87
--- /dev/null
+++ b/debian/po/nl.po
@@ -0,0 +1,40 @@
+# Dutch translation of postgresql-11 debconf templates.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the postgresql-11 package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# Frans Spiesschaert <Frans.Spiesschaert@yucom.be>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: postgresql-11_11.1-2\n"
+"Report-Msgid-Bugs-To: postgresql-11@packages.debian.org\n"
+"POT-Creation-Date: 2019-01-09 15:22+0100\n"
+"PO-Revision-Date: 2019-01-19 10:43+0100\n"
+"Last-Translator: Frans Spiesschaert <Frans.Spiesschaert@yucom.be>\n"
+"Language-Team: Debian Dutch l10n Team <debian-l10n-dutch@lists.debian.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Gtranslator 2.91.7\n"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid "Remove PostgreSQL directories when package is purged?"
+msgstr ""
+"De PostgreSQL-mappen verwijderen wanneer het pakket gewist (purged) wordt?"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid ""
+"Removing the PostgreSQL server package will leave existing database clusters "
+"intact, i.e. their configuration, data, and log directories will not be "
+"removed. On purging the package, the directories can optionally be removed."
+msgstr ""
+"Bij het verwijderen van het serverpakket van PostgreSQL blijven de bestaande "
+"databaseclusters intact. Dit wil zeggen dat hun configuratie-, gegevens- en "
+"logboekmappen niet verwijderd worden. Bij het wissen (purge) van het pakket, "
+"kunnen de mappen naar keuze verwijderd worden."
diff --git a/debian/po/pt.po b/debian/po/pt.po
new file mode 100644
index 0000000..ee294d1
--- /dev/null
+++ b/debian/po/pt.po
@@ -0,0 +1,39 @@
+# Translation of postgresql-11's debconf messages to European Portuguese
+# Copyright (C) 2019 THE postgresql-11'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the postgresql-11 package.
+#
+# Américo Monteiro <a_monteiro@gmx.com>, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: postgresql-11 11.1-2\n"
+"Report-Msgid-Bugs-To: postgresql-11@packages.debian.org\n"
+"POT-Creation-Date: 2019-01-09 15:22+0100\n"
+"PO-Revision-Date: 2019-01-15 00:34+0000\n"
+"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
+"Language-Team: Portuguese <>\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 2.0\n"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid "Remove PostgreSQL directories when package is purged?"
+msgstr "Remover os directórios do PostgreSQL quando o pacote for purgado?"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid ""
+"Removing the PostgreSQL server package will leave existing database clusters "
+"intact, i.e. their configuration, data, and log directories will not be "
+"removed. On purging the package, the directories can optionally be removed."
+msgstr ""
+"Remover o pacote do servidor PostgreSQL irá deixar intactos agrupamentos de "
+"bases de dados existentes, isto é, a sua configuração, dados, e relatórios "
+"são serão removidos. Ao purgar o pacote, estes directórios podem "
+"opcionalmente ser removidos."
+
diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po
new file mode 100644
index 0000000..5e746cf
--- /dev/null
+++ b/debian/po/pt_BR.po
@@ -0,0 +1,37 @@
+# Debconf translations for postgresql-11.
+# Copyright (C) 2019 THE postgresql-11'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the postgresql-11 package.
+# Adriano Rafael Gomes <adrianorg@debian.org>, 2019.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: postgresql-11\n"
+"Report-Msgid-Bugs-To: postgresql-11@packages.debian.org\n"
+"POT-Creation-Date: 2019-01-09 15:22+0100\n"
+"PO-Revision-Date: 2019-01-19 18:06-0200\n"
+"Last-Translator: Adriano Rafael Gomes <adrianorg@debian.org>\n"
+"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
+"org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid "Remove PostgreSQL directories when package is purged?"
+msgstr "Remover diretórios do PostgreSQL ao expurgar o pacote?"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid ""
+"Removing the PostgreSQL server package will leave existing database clusters "
+"intact, i.e. their configuration, data, and log directories will not be "
+"removed. On purging the package, the directories can optionally be removed."
+msgstr ""
+"Remover o pacote do servidor PostgreSQL deixará os \"clusters\" de bancos de "
+"dados existentes intactos, ou seja, suas configurações, dados e diretórios "
+"de log não serão removidos. Ao expurgar o pacote, os diretórios podem ser "
+"opcionalmente removidos."
diff --git a/debian/po/ru.po b/debian/po/ru.po
new file mode 100644
index 0000000..9828439
--- /dev/null
+++ b/debian/po/ru.po
@@ -0,0 +1,39 @@
+# Russian translation of debconf template for postgresql-11
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the postgresql-11 package.
+# Lev Lamberov <dogsleg@debian.org>, 2019
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: postgresql-11\n"
+"Report-Msgid-Bugs-To: postgresql-11@packages.debian.org\n"
+"POT-Creation-Date: 2019-01-09 15:22+0100\n"
+"PO-Revision-Date: 2019-01-27 14:56+0500\n"
+"Language-Team: Debian L10N Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 2.2.1\n"
+"Last-Translator: Lev Lamberov <dogsleg@debian.org>\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
+"Language: ru\n"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid "Remove PostgreSQL directories when package is purged?"
+msgstr "Удалить каталоги PostgreSQL при вычищении пакета?"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid ""
+"Removing the PostgreSQL server package will leave existing database clusters "
+"intact, i.e. their configuration, data, and log directories will not be "
+"removed. On purging the package, the directories can optionally be removed."
+msgstr ""
+"При удалении серверного пакета PostgreSQL существующие кластеры баз данных "
+"останутся нетронутыми. То есть, их каталоги с настройками, данными и "
+"журналами не будут удалены. При вычистке пакета эти каталоги могут быть при "
+"необходимости удалены."
diff --git a/debian/po/templates.pot b/debian/po/templates.pot
new file mode 100644
index 0000000..8cdb85c
--- /dev/null
+++ b/debian/po/templates.pot
@@ -0,0 +1,33 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the postgresql-11 package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: postgresql-11\n"
+"Report-Msgid-Bugs-To: postgresql-11@packages.debian.org\n"
+"POT-Creation-Date: 2019-01-09 15:22+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid "Remove PostgreSQL directories when package is purged?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../postgresql-11.templates:1001
+msgid ""
+"Removing the PostgreSQL server package will leave existing database clusters "
+"intact, i.e. their configuration, data, and log directories will not be "
+"removed. On purging the package, the directories can optionally be removed."
+msgstr ""
diff --git a/debian/postgresql-13.install b/debian/postgresql-13.install
new file mode 100755
index 0000000..96fd4ee
--- /dev/null
+++ b/debian/postgresql-13.install
@@ -0,0 +1,61 @@
+#!/usr/bin/dh-exec
+
+usr/lib/postgresql/*/bin/initdb
+usr/lib/postgresql/*/bin/oid2name
+usr/lib/postgresql/*/bin/pg_archivecleanup
+usr/lib/postgresql/*/bin/pgbench
+usr/lib/postgresql/*/bin/pg_checksums
+usr/lib/postgresql/*/bin/pg_controldata
+usr/lib/postgresql/*/bin/pg_ctl
+usr/lib/postgresql/*/bin/pg_resetwal
+usr/lib/postgresql/*/bin/pg_rewind
+usr/lib/postgresql/*/bin/pg_standby
+usr/lib/postgresql/*/bin/pg_test_fsync
+usr/lib/postgresql/*/bin/pg_test_timing
+usr/lib/postgresql/*/bin/pg_upgrade
+usr/lib/postgresql/*/bin/pg_waldump
+usr/lib/postgresql/*/bin/postgres
+usr/lib/postgresql/*/bin/postmaster
+usr/lib/postgresql/*/bin/vacuumlo
+[!alpha !hppa !hurd-i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !powerpc !riscv64 !sh4 !sparc64 !x32] usr/lib/postgresql/*/lib/bitcode
+[!alpha !hppa !hurd-i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !powerpc !riscv64 !sh4 !sparc64 !x32] usr/lib/postgresql/*/lib/llvmjit_types.bc
+usr/lib/postgresql/*/lib/*.so
+usr/share/locale/*/LC_MESSAGES/initdb-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_archivecleanup-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_checksums-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_controldata-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_ctl-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_resetwal-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_rewind-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_test_fsync-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_test_timing-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_upgrade-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_waldump-*.mo
+usr/share/locale/*/LC_MESSAGES/postgres-*.mo
+usr/share/locale/*/LC_MESSAGES/plpgsql-*.mo
+[linux-any] usr/share/postgresql/*/contrib/sepgsql.sql
+usr/share/postgresql/*/errcodes.txt
+usr/share/postgresql/*/extension/*
+usr/share/postgresql/*/man/man1/initdb.1*
+usr/share/postgresql/*/man/man1/oid2name.1*
+usr/share/postgresql/*/man/man1/pg_archivecleanup.1*
+usr/share/postgresql/*/man/man1/pgbench.1*
+usr/share/postgresql/*/man/man1/pg_checksums.1*
+usr/share/postgresql/*/man/man1/pg_controldata.1*
+usr/share/postgresql/*/man/man1/pg_ctl.1*
+usr/share/postgresql/*/man/man1/pg_resetwal.1*
+usr/share/postgresql/*/man/man1/pg_rewind.1*
+usr/share/postgresql/*/man/man1/pg_standby.1*
+usr/share/postgresql/*/man/man1/pg_test_fsync.1*
+usr/share/postgresql/*/man/man1/pg_test_timing.1*
+usr/share/postgresql/*/man/man1/pg_upgrade.1*
+usr/share/postgresql/*/man/man1/pg_waldump.1*
+usr/share/postgresql/*/man/man1/postgres.1*
+usr/share/postgresql/*/man/man1/postmaster.1*
+usr/share/postgresql/*/man/man1/vacuumlo.1*
+usr/share/postgresql/*/timezonesets/*
+usr/share/postgresql/*/tsearch_data
+usr/share/postgresql/*/*.sql
+usr/share/postgresql/*/*.conf.sample
+usr/share/postgresql/*/postgres.bki
+usr/share/postgresql/*/sql_features.txt
diff --git a/debian/postgresql-13.lintian-overrides b/debian/postgresql-13.lintian-overrides
new file mode 100644
index 0000000..7018449
--- /dev/null
+++ b/debian/postgresql-13.lintian-overrides
@@ -0,0 +1,17 @@
+# We test for /usr/bin/pg_dropcluster, but run it without path
+command-with-path-in-maintainer-script
+
+# We ship binaries and libs in subdirs of /usr/lib/postgresql
+executable-in-usr-lib
+repeated-path-segment lib *
+
+# These are PostgreSQL server plugins; some need no external libraries
+hardening-no-fortify-functions usr/lib/postgresql/*/lib/*
+library-not-linked-against-libc usr/lib/postgresql/*/lib/*
+shared-library-lacks-prerequisites usr/lib/postgresql/*/lib/*
+
+# We use debconf in postrm only
+no-debconf-config
+
+# We store the PostgreSQL catalog version in a custom control field
+unknown-field *Postgresql-Catversion
diff --git a/debian/postgresql-13.postinst b/debian/postgresql-13.postinst
new file mode 100644
index 0000000..be69843
--- /dev/null
+++ b/debian/postgresql-13.postinst
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+VERSION=${DPKG_MAINTSCRIPT_PACKAGE##*-}
+
+if [ "$1" = configure ]; then
+ . /usr/share/postgresql-common/maintscripts-functions
+
+ configure_version $VERSION "$2"
+fi
+
+#DEBHELPER#
diff --git a/debian/postgresql-13.postrm b/debian/postgresql-13.postrm
new file mode 100644
index 0000000..c9f8893
--- /dev/null
+++ b/debian/postgresql-13.postrm
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+set -e
+
+VERSION=${DPKG_MAINTSCRIPT_PACKAGE##*-}
+
+clean_dir() {
+ if [ -d "$1" ] && [ ! -L "$1" ]; then
+ rmdir "$1" >/dev/null 2>/dev/null || true
+ fi
+}
+
+drop_cluster() {
+ # if we still have the postgresql-common package, use it to also shutdown
+ # server, etc.; otherwise just remove the directories
+ if [ -x /usr/bin/pg_dropcluster ]; then
+ pg_dropcluster --stop-server $VERSION "$1"
+ else
+ # remove data directory
+ PGDATALINK="/etc/postgresql/$VERSION/$1/pgdata"
+ if [ -e "$PGDATALINK" ]; then
+ rm -rf $(readlink -f "$PGDATALINK") "$PGDATALINK"
+ else
+ rm -rf "/var/lib/postgresql/$VERSION/$1/"
+ fi
+
+ # remove log file, including rotated ones
+ LOGLINK="/etc/postgresql/$VERSION/$1/log"
+ if [ -e "$LOGLINK" ]; then
+ LOG=$(readlink -f "$LOGLINK")
+ rm -f $LOG* "$LOGLINK"
+ else
+ rm -f /var/log/postgresql/postgresql-$VERSION-"$1".log*
+ fi
+
+ # remove conffiles
+ for f in pg_hba.conf pg_ident.conf postgresql.conf start.conf environment pg_ctl.conf; do
+ rm -f /etc/postgresql/$VERSION/"$1"/$f
+ done
+ # remove empty conf.d directories
+ for d in /etc/postgresql/$VERSION/"$1"/*/; do
+ clean_dir "$d"
+ done
+
+ clean_dir /etc/postgresql/$VERSION/"$1"
+ fi
+}
+
+purge_package () {
+ # ask the user if they want to remove clusters. If debconf is not
+ # available, just remove everything
+ if [ -e /usr/share/debconf/confmodule ]; then
+ db_set $DPKG_MAINTSCRIPT_PACKAGE/postrm_purge_data true
+ db_input high $DPKG_MAINTSCRIPT_PACKAGE/postrm_purge_data || :
+ db_go || :
+ db_get $DPKG_MAINTSCRIPT_PACKAGE/postrm_purge_data || :
+ [ "$RET" = "false" ] && return 0
+ fi
+
+ for c in /etc/postgresql/$VERSION/*; do
+ [ -e "$c/postgresql.conf" ] || continue
+ cluster=$(basename "$c")
+ echo "Dropping cluster $cluster..."
+ drop_cluster "$cluster"
+ done
+
+ clean_dir /etc/postgresql/$VERSION
+ clean_dir /var/lib/postgresql/$VERSION
+ clean_dir /var/log/postgresql/$VERSION
+}
+
+if [ "$1" = purge ] && [ -d "/etc/postgresql/$VERSION" ] && [ "$(ls /etc/postgresql/$VERSION)" ]; then
+ # can't load debconf from a function
+ if [ -e /usr/share/debconf/confmodule ]; then
+ . /usr/share/debconf/confmodule
+ fi
+ purge_package
+fi
+
+#DEBHELPER#
diff --git a/debian/postgresql-13.preinst b/debian/postgresql-13.preinst
new file mode 100644
index 0000000..a1bccbc
--- /dev/null
+++ b/debian/postgresql-13.preinst
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+
+MAJOR_VER="${DPKG_MAINTSCRIPT_PACKAGE#postgresql-}"
+CATVERSION="@CATVERSION@" # set by override_dh_installdeb
+
+case $1 in
+ install|upgrade)
+ if [ "$2" ]; then
+ . /usr/share/postgresql-common/maintscripts-functions
+ preinst_check_catversion "$MAJOR_VER" "$CATVERSION"
+ fi ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/debian/postgresql-13.prerm b/debian/postgresql-13.prerm
new file mode 100644
index 0000000..828c6fb
--- /dev/null
+++ b/debian/postgresql-13.prerm
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+VERSION=${DPKG_MAINTSCRIPT_PACKAGE##*-}
+
+#DEBHELPER#
+
+. /usr/share/postgresql-common/maintscripts-functions
+
+stop_version $VERSION
+
+if [ "$1" = remove ]; then
+ remove_version $VERSION
+fi
+
diff --git a/debian/postgresql-13.templates b/debian/postgresql-13.templates
new file mode 100644
index 0000000..27996cc
--- /dev/null
+++ b/debian/postgresql-13.templates
@@ -0,0 +1,7 @@
+Template: postgresql-13/postrm_purge_data
+Type: boolean
+Default: true
+_Description: Remove PostgreSQL directories when package is purged?
+ Removing the PostgreSQL server package will leave existing database clusters
+ intact, i.e. their configuration, data, and log directories will not be
+ removed. On purging the package, the directories can optionally be removed.
diff --git a/debian/postgresql-client-13.install b/debian/postgresql-client-13.install
new file mode 100644
index 0000000..e1900e4
--- /dev/null
+++ b/debian/postgresql-client-13.install
@@ -0,0 +1,42 @@
+usr/lib/postgresql/*/bin/clusterdb
+usr/lib/postgresql/*/bin/createdb
+usr/lib/postgresql/*/bin/createuser
+usr/lib/postgresql/*/bin/dropdb
+usr/lib/postgresql/*/bin/dropuser
+usr/lib/postgresql/*/bin/pg_basebackup
+usr/lib/postgresql/*/bin/pg_config
+usr/lib/postgresql/*/bin/pg_dump
+usr/lib/postgresql/*/bin/pg_dumpall
+usr/lib/postgresql/*/bin/pg_isready
+usr/lib/postgresql/*/bin/pg_receivewal
+usr/lib/postgresql/*/bin/pg_recvlogical
+usr/lib/postgresql/*/bin/pg_restore
+usr/lib/postgresql/*/bin/pg_verifybackup
+usr/lib/postgresql/*/bin/psql
+usr/lib/postgresql/*/bin/reindexdb
+usr/lib/postgresql/*/bin/vacuumdb
+usr/lib/postgresql/*/lib/pgxs/*
+usr/share/locale/*/LC_MESSAGES/pg_basebackup-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_config-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_dump-*.mo
+usr/share/locale/*/LC_MESSAGES/pg_verifybackup-*.mo
+usr/share/locale/*/LC_MESSAGES/pgscripts-*.mo
+usr/share/locale/*/LC_MESSAGES/psql-*.mo
+usr/share/postgresql/*/man/man1/clusterdb.1*
+usr/share/postgresql/*/man/man1/createdb.1*
+usr/share/postgresql/*/man/man1/createuser.1*
+usr/share/postgresql/*/man/man1/dropdb.1*
+usr/share/postgresql/*/man/man1/dropuser.1*
+usr/share/postgresql/*/man/man1/pg_basebackup.1*
+usr/share/postgresql/*/man/man1/pg_dump.1*
+usr/share/postgresql/*/man/man1/pg_dumpall.1*
+usr/share/postgresql/*/man/man1/pg_isready.1*
+usr/share/postgresql/*/man/man1/pg_receivewal.1*
+usr/share/postgresql/*/man/man1/pg_recvlogical.1*
+usr/share/postgresql/*/man/man1/pg_restore.1*
+usr/share/postgresql/*/man/man1/pg_verifybackup.1*
+usr/share/postgresql/*/man/man1/psql.1*
+usr/share/postgresql/*/man/man1/reindexdb.1*
+usr/share/postgresql/*/man/man1/vacuumdb.1*
+usr/share/postgresql/*/man/man7/
+usr/share/postgresql/*/psqlrc.sample
diff --git a/debian/postgresql-client-13.lintian-overrides b/debian/postgresql-client-13.lintian-overrides
new file mode 100644
index 0000000..a3cef5b
--- /dev/null
+++ b/debian/postgresql-client-13.lintian-overrides
@@ -0,0 +1,3 @@
+# We ship binaries and libs in subdirs of /usr/lib/postgresql
+executable-in-usr-lib
+repeated-path-segment lib *
diff --git a/debian/postgresql-client-13.postinst b/debian/postgresql-client-13.postinst
new file mode 100644
index 0000000..a5cf251
--- /dev/null
+++ b/debian/postgresql-client-13.postinst
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+VERSION=${DPKG_MAINTSCRIPT_PACKAGE##*-}
+
+. /usr/share/postgresql-common/maintscripts-functions
+
+if [ "$1" = configure ]; then
+ configure_client_version $VERSION "$2"
+fi
+
+#DEBHELPER#
diff --git a/debian/postgresql-client-13.prerm b/debian/postgresql-client-13.prerm
new file mode 100644
index 0000000..14c2188
--- /dev/null
+++ b/debian/postgresql-client-13.prerm
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+set -e
+
+VERSION=${DPKG_MAINTSCRIPT_PACKAGE##*-}
+
+#DEBHELPER#
+
+if [ "$1" = remove ]; then
+ . /usr/share/postgresql-common/maintscripts-functions
+ remove_client_version $VERSION
+fi
diff --git a/debian/postgresql-doc-13.doc-base b/debian/postgresql-doc-13.doc-base
new file mode 100644
index 0000000..5c36bfe
--- /dev/null
+++ b/debian/postgresql-doc-13.doc-base
@@ -0,0 +1,18 @@
+Document: postgresql-13
+Title: PostgreSQL 13 Documentation
+Author: The PostgreSQL Global Development Group
+Abstract: The documentation for the PostgreSQL database management system,
+ version 13. PostgreSQL is a powerful, open source object-relational database
+ system. It is fully ACID compliant, has full support for foreign keys, joins,
+ views, triggers, and stored procedures (in multiple languages). It includes
+ most SQL:2008 data types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR,
+ DATE, INTERVAL, and TIMESTAMP. It also supports storage of binary large
+ objects, including pictures, sounds, or video. It has native programming
+ interfaces for C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, among others,
+ and exceptional documentation.
+Section: Data Management
+
+Format: HTML
+Index: /usr/share/doc/postgresql-doc-13/html/index.html
+Files: /usr/share/doc/postgresql-doc-13/html/*
+
diff --git a/debian/postgresql-doc-13.install b/debian/postgresql-doc-13.install
new file mode 100644
index 0000000..a41ef19
--- /dev/null
+++ b/debian/postgresql-doc-13.install
@@ -0,0 +1,2 @@
+usr/share/doc/postgresql-doc-*
+usr/share/postgresql/*/man/man3/
diff --git a/debian/postgresql-doc-13.postinst b/debian/postgresql-doc-13.postinst
new file mode 100644
index 0000000..58b2fee
--- /dev/null
+++ b/debian/postgresql-doc-13.postinst
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+set -e
+
+VERSION=${DPKG_MAINTSCRIPT_PACKAGE##*-}
+
+# arguments: version master package [package]
+__link_manpages() {
+ MANS=$(unset GREP_OPTIONS; dpkg -L $3 $4 $5 2>/dev/null|egrep '/man/.*\.[1-9](\.gz)?$' | grep -v "$2") || true
+ [ -n "$MANS" ] || return 0
+
+ SLAVES=$(for i in $MANS; do TARGET=$(echo $i | sed "s/postgresql\/$1\///"); echo -n " --slave $TARGET $(basename $i) $i"; done)
+
+ section=$(echo "$2" | sed -e 's/.*\.\(.*\)\..*/man\1/')
+ update-alternatives --install /usr/share/man/$section/$2 \
+ $2 /usr/share/postgresql/$1/man/$section/$2 \
+ $(echo "$1" | tr -cd 0-9) $SLAVES
+}
+
+if [ "$1" = configure ]; then
+ if [ -f /usr/share/postgresql-common/maintscripts-functions ]; then
+ . /usr/share/postgresql-common/maintscripts-functions
+ configure_doc_version $VERSION "$2"
+ else
+ __link_manpages $VERSION SPI_connect.3.gz "postgresql-doc-$VERSION"
+ fi
+fi
+
+#DEBHELPER#
diff --git a/debian/postgresql-doc-13.prerm b/debian/postgresql-doc-13.prerm
new file mode 100644
index 0000000..9b72239
--- /dev/null
+++ b/debian/postgresql-doc-13.prerm
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+set -e
+
+VERSION=${DPKG_MAINTSCRIPT_PACKAGE##*-}
+
+if [ "$1" = remove ]; then
+ if [ -f /usr/share/postgresql-common/maintscripts-functions ]; then
+ . /usr/share/postgresql-common/maintscripts-functions
+ remove_doc_version $VERSION
+ else
+ update-alternatives --remove SPI_connect.3.gz \
+ /usr/share/postgresql/$VERSION/man/man3/SPI_connect.3.gz
+ fi
+fi
+
+#DEBHELPER#
diff --git a/debian/postgresql-plperl-13.install b/debian/postgresql-plperl-13.install
new file mode 100755
index 0000000..c4bac49
--- /dev/null
+++ b/debian/postgresql-plperl-13.install
@@ -0,0 +1,6 @@
+#!/usr/bin/dh-exec
+
+usr/lib/postgresql/*/lib/*plperl*.so
+[!alpha !hppa !hurd-i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !powerpc !riscv64 !sh4 !sparc64 !x32] usr/lib/postgresql/*/lib/bitcode/*plperl*
+usr/share/locale/*/*/plperl-*.mo
+usr/share/postgresql/*/extension/*plperl*
diff --git a/debian/postgresql-plperl-13.lintian-overrides b/debian/postgresql-plperl-13.lintian-overrides
new file mode 100644
index 0000000..8b0b664
--- /dev/null
+++ b/debian/postgresql-plperl-13.lintian-overrides
@@ -0,0 +1,7 @@
+# We ship binaries and libs in subdirs of /usr/lib/postgresql
+repeated-path-segment lib *
+
+# These are PostgreSQL server plugins; some need no external libraries
+hardening-no-fortify-functions usr/lib/postgresql/*/lib/*
+library-not-linked-against-libc usr/lib/postgresql/*/lib/*
+shared-library-lacks-prerequisites usr/lib/postgresql/*/lib/*
diff --git a/debian/postgresql-plpython3-13.install b/debian/postgresql-plpython3-13.install
new file mode 100755
index 0000000..4632547
--- /dev/null
+++ b/debian/postgresql-plpython3-13.install
@@ -0,0 +1,6 @@
+#!/usr/bin/dh-exec
+
+usr/lib/postgresql/*/lib/*plpython3*.so
+[!alpha !hppa !hurd-i386 !ia64 !kfreebsd-amd64 !kfreebsd-i386 !m68k !powerpc !riscv64 !sh4 !sparc64 !x32] usr/lib/postgresql/*/lib/bitcode/*plpython3*
+usr/share/locale/*/*/plpython-*.mo
+usr/share/postgresql/*/extension/*plpython3*
diff --git a/debian/postgresql-plpython3-13.lintian-overrides b/debian/postgresql-plpython3-13.lintian-overrides
new file mode 100644
index 0000000..8b0b664
--- /dev/null
+++ b/debian/postgresql-plpython3-13.lintian-overrides
@@ -0,0 +1,7 @@
+# We ship binaries and libs in subdirs of /usr/lib/postgresql
+repeated-path-segment lib *
+
+# These are PostgreSQL server plugins; some need no external libraries
+hardening-no-fortify-functions usr/lib/postgresql/*/lib/*
+library-not-linked-against-libc usr/lib/postgresql/*/lib/*
+shared-library-lacks-prerequisites usr/lib/postgresql/*/lib/*
diff --git a/debian/postgresql-pltcl-13.install b/debian/postgresql-pltcl-13.install
new file mode 100644
index 0000000..f56fc0f
--- /dev/null
+++ b/debian/postgresql-pltcl-13.install
@@ -0,0 +1,3 @@
+usr/lib/postgresql/*/lib/pltcl.so
+usr/share/locale/*/*/pltcl-*.mo
+usr/share/postgresql/*/extension/pltcl*
diff --git a/debian/postgresql-pltcl-13.lintian-overrides b/debian/postgresql-pltcl-13.lintian-overrides
new file mode 100644
index 0000000..8b0b664
--- /dev/null
+++ b/debian/postgresql-pltcl-13.lintian-overrides
@@ -0,0 +1,7 @@
+# We ship binaries and libs in subdirs of /usr/lib/postgresql
+repeated-path-segment lib *
+
+# These are PostgreSQL server plugins; some need no external libraries
+hardening-no-fortify-functions usr/lib/postgresql/*/lib/*
+library-not-linked-against-libc usr/lib/postgresql/*/lib/*
+shared-library-lacks-prerequisites usr/lib/postgresql/*/lib/*
diff --git a/debian/postgresql-server-dev-13.install b/debian/postgresql-server-dev-13.install
new file mode 100644
index 0000000..4c84b49
--- /dev/null
+++ b/debian/postgresql-server-dev-13.install
@@ -0,0 +1,2 @@
+usr/include/postgresql/*/server
+usr/lib/postgresql/*/lib/libpg*.a
diff --git a/debian/postgresql-server-dev-13.lintian-overrides b/debian/postgresql-server-dev-13.lintian-overrides
new file mode 100644
index 0000000..8b0b664
--- /dev/null
+++ b/debian/postgresql-server-dev-13.lintian-overrides
@@ -0,0 +1,7 @@
+# We ship binaries and libs in subdirs of /usr/lib/postgresql
+repeated-path-segment lib *
+
+# These are PostgreSQL server plugins; some need no external libraries
+hardening-no-fortify-functions usr/lib/postgresql/*/lib/*
+library-not-linked-against-libc usr/lib/postgresql/*/lib/*
+shared-library-lacks-prerequisites usr/lib/postgresql/*/lib/*
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..a566bc3
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,216 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/architecture.mk
+include /usr/share/dpkg/pkg-info.mk
+include /usr/share/dpkg/vendor.mk
+
+MAJOR_VER := 13
+#CASSERT_FLAGS := --enable-cassert
+
+CATVERSION = $(shell awk '/CATALOG_VERSION_NO/ { print $$3 }' src/include/catalog/catversion.h)
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
+# Facilitate hierarchical profile generation on amd64 (#730134)
+ifeq ($(DEB_HOST_ARCH),amd64)
+CFLAGS+= -fno-omit-frame-pointer
+endif
+
+export DPKG_GENSYMBOLS_CHECK_LEVEL=4
+
+# if LLVM is installed, use it
+ifneq ($(wildcard /usr/bin/llvm-config*),)
+LLVM_FLAGS = --with-llvm LLVM_CONFIG=/usr/bin/llvm-config-11 CLANG=/usr/bin/clang-11
+endif
+
+# PostgreSQL 9.5+ does not have native spinlock support on alpha
+ifneq ($(findstring $(DEB_HOST_ARCH), alpha),)
+SPINLOCK_FLAGS = --disable-spinlocks
+endif
+
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+SYSTEMD_FLAGS = --with-systemd
+SELINUX_FLAGS= --with-selinux
+endif
+
+COMMON_CONFIGURE_FLAGS= \
+ --mandir=/usr/share/postgresql/$(MAJOR_VER)/man \
+ --docdir=/usr/share/doc/postgresql-doc-$(MAJOR_VER) \
+ --sysconfdir=/etc/postgresql-common \
+ --datarootdir=/usr/share/ \
+ --datadir=/usr/share/postgresql/$(MAJOR_VER) \
+ --bindir=/usr/lib/postgresql/$(MAJOR_VER)/bin \
+ --libdir=/usr/lib/$(DEB_HOST_MULTIARCH)/ \
+ --libexecdir=/usr/lib/postgresql/ \
+ --includedir=/usr/include/postgresql/ \
+ --with-extra-version=" ($(DEB_VENDOR) $(DEB_VERSION))" \
+ --enable-nls \
+ --enable-thread-safety \
+ --enable-tap-tests \
+ --enable-debug \
+ --enable-dtrace \
+ $(CASSERT_FLAGS) \
+ --disable-rpath \
+ --with-uuid=e2fs \
+ --with-gnu-ld \
+ --with-pgport=5432 \
+ --with-system-tzdata=/usr/share/zoneinfo \
+ $(LLVM_FLAGS) \
+ $(SYSTEMD_FLAGS) \
+ $(SELINUX_FLAGS) \
+ $(SPINLOCK_FLAGS) \
+ AWK=mawk \
+ MKDIR_P='/bin/mkdir -p' \
+ PROVE='/usr/bin/prove' \
+ TAR='/bin/tar' \
+ XSLTPROC='xsltproc --nonet' \
+ CFLAGS='$(CFLAGS)' \
+ LDFLAGS='$(LDFLAGS)'
+
+# allow missing gssapi and ldap during bootstrapping
+ifeq ($(DEB_STAGE),stage1)
+BOOTSTRAP_FLAGS=
+else
+BOOTSTRAP_FLAGS= --with-gssapi --with-ldap
+endif
+
+%:
+ dh $@
+
+# use autoconf2.69 if available
+ifneq ($(wildcard /usr/bin/autoreconf2.69),)
+override_dh_autoreconf:
+ dh_autoreconf autoreconf2.69 -- -f -i
+endif
+
+override_dh_auto_configure:
+ dh_auto_configure --builddirectory=build -- \
+ --with-icu \
+ --with-tcl \
+ --with-perl \
+ --with-python \
+ --with-pam \
+ --with-openssl \
+ --with-libxml \
+ --with-libxslt \
+ PYTHON=/usr/bin/python3 \
+ $(COMMON_CONFIGURE_FLAGS) \
+ $(BOOTSTRAP_FLAGS)
+ # remove pre-built documentation
+ rm -fv doc/src/sgml/*-stamp
+
+override_dh_auto_build-indep:
+ $(MAKE) -C build/doc all # build man + html
+
+override_dh_auto_build-arch:
+ # set MAKELEVEL to 0 to force building submake-generated-headers in src/Makefile.global(.in)
+ MAKELEVEL=0 $(MAKE) -C build/src all
+ $(MAKE) -C build/doc man # build man only
+ $(MAKE) -C build/config all
+ $(MAKE) -C build/contrib all
+ # build tutorial stuff
+ $(MAKE) -C build/src/tutorial NO_PGXS=1
+
+override_dh_auto_install-arch:
+ $(MAKE) -C build/doc/src/sgml install-man DESTDIR=$(CURDIR)/debian/tmp
+ $(MAKE) -C build/src install DESTDIR=$(CURDIR)/debian/tmp
+ $(MAKE) -C build/config install DESTDIR=$(CURDIR)/debian/tmp
+ $(MAKE) -C build/contrib install DESTDIR=$(CURDIR)/debian/tmp
+ # move SPI examples into server package (they wouldn't be in the doc package in an -A build)
+ mkdir -p debian/postgresql-$(MAJOR_VER)/usr/share/doc/postgresql-$(MAJOR_VER)
+ mv debian/tmp/usr/share/doc/postgresql-doc-$(MAJOR_VER)/extension debian/postgresql-$(MAJOR_VER)/usr/share/doc/postgresql-$(MAJOR_VER)/examples
+
+override_dh_auto_install-indep:
+ $(MAKE) -C build/doc install DESTDIR=$(CURDIR)/debian/tmp
+
+override_dh_makeshlibs:
+ dh_makeshlibs -Xusr/lib/postgresql/$(MAJOR_VER)
+
+override_dh_auto_clean:
+ rm -rf build
+
+override_dh_installchangelogs:
+ dh_installchangelogs HISTORY
+
+override_dh_compress:
+ dh_compress -X.source -X.c
+ # compress manpages (excluding debian/tmp/)
+ gzip -9n $(CURDIR)/debian/*-*/usr/share/postgresql/*/man/man*/*.[137]
+
+override_dh_install-arch:
+ dh_install -a
+
+ # link README.Debian.gz to postgresql-common
+ mkdir -p debian/postgresql-$(MAJOR_VER)/usr/share/doc/postgresql-$(MAJOR_VER)
+ ln -s ../postgresql-common/README.Debian.gz debian/postgresql-$(MAJOR_VER)/usr/share/doc/postgresql-$(MAJOR_VER)/README.Debian.gz
+
+ # assemble perl version of pg_config in libpq-dev
+ sed -ne '1,/__DATA__/p' debian/pg_config.pl > debian/libpq-dev/usr/bin/pg_config
+ LC_ALL=C debian/postgresql-client-$(MAJOR_VER)/usr/lib/postgresql/$(MAJOR_VER)/bin/pg_config >> debian/libpq-dev/usr/bin/pg_config
+ LC_ALL=C debian/postgresql-client-$(MAJOR_VER)/usr/lib/postgresql/$(MAJOR_VER)/bin/pg_config --help >> debian/libpq-dev/usr/bin/pg_config
+ chmod 755 debian/libpq-dev/usr/bin/pg_config
+
+ # remove actual build path from Makefile.global for reproducibility
+ sed -i -e "s!^abs_top_builddir.*!abs_top_builddir = /build/postgresql-$(MAJOR_VER)/build!" \
+ -e "s!^abs_top_srcdir.*!abs_top_srcdir = /build/postgresql-$(MAJOR_VER)/build/..!" \
+ -e 's!-f\(debug\|file\)-prefix-map=[^ ]* !!g' \
+ debian/postgresql-client-$(MAJOR_VER)/usr/lib/postgresql/$(MAJOR_VER)/lib/pgxs/src/Makefile.global
+
+ # these are shipped in the pl packages
+ bash -c "rm -v debian/postgresql-$(MAJOR_VER)/usr/share/postgresql/$(MAJOR_VER)/extension/{plperl,plpython,pltcl,*_pl}*"
+ bash -c "rm -v debian/postgresql-$(MAJOR_VER)/usr/lib/postgresql/$(MAJOR_VER)/lib/{plperl,plpython,pltcl,*_pl}*"
+ bash -c "rm -rfv debian/postgresql-$(MAJOR_VER)/usr/lib/postgresql/$(MAJOR_VER)/lib/bitcode/*{plperl,plpython,pltcl}*"
+
+ # record catversion in a file
+ echo $(CATVERSION) > debian/postgresql-$(MAJOR_VER)/usr/share/postgresql/$(MAJOR_VER)/catalog_version
+
+override_dh_install-indep:
+ dh_install -i
+
+ if [ -d debian/postgresql-doc-$(MAJOR_VER) ]; then set -e; \
+ install -d debian/postgresql-doc-$(MAJOR_VER)/usr/share/doc/postgresql-doc-$(MAJOR_VER)/tutorial; \
+ install src/tutorial/*.c src/tutorial/*.source src/tutorial/Makefile src/tutorial/README debian/postgresql-doc-$(MAJOR_VER)/usr/share/doc/postgresql-doc-$(MAJOR_VER)/tutorial; \
+ fi
+
+override_dh_auto_test-indep:
+ # nothing to do
+
+override_dh_auto_test-arch:
+ifeq (, $(findstring nocheck, $(DEB_BUILD_OPTIONS)))
+ # when tests fail, print newest log files
+ # initdb doesn't like LANG and LC_ALL to contradict, unset LANG and LC_CTYPE here
+ # temp-install wants to be invoked from a top-level make, unset MAKELEVEL here
+ # hurd doesn't implement semaphores shared between processes yet; succeed anyway so they at least have libpq5
+ # plperl currently fails on kfreebsd-*
+ unset LANG LC_CTYPE MAKELEVEL; ulimit -c unlimited; \
+ if ! make -C build check-world \
+ EXTRA_REGRESS_OPTS='--port=$(shell perl -le 'print 1024 + int(rand(64000))')' \
+ TEMP_CONFIG=$(CURDIR)/debian/tests/postgresql.conf \
+ PG_TEST_EXTRA='ssl' \
+ PROVE_FLAGS="--verbose"; \
+ then \
+ for l in `find build -name 'regression.*' -o -name '*.log' -o -name '*_log_*' | perl -we 'print map { "$$_\n"; } sort { (stat $$a)[9] <=> (stat $$b)[9] } map { chomp; $$_; } <>' | tail -n 10`; do \
+ echo "******** $$l ********"; \
+ cat $$l; \
+ done; \
+ for c in `find build -name 'core*'`; do \
+ echo "******** $$c ********"; \
+ gdb -batch -ex 'bt full' build/tmp_install/usr/lib/postgresql/$(MAJOR_VER)/bin/postgres $$c || :; \
+ done; \
+ case $(DEB_HOST_ARCH) in \
+ hurd-*|kfreebsd-*) exit 0 ;; \
+ *) exit 1 ;; \
+ esac; \
+ fi
+endif
+
+override_dh_installdeb-arch:
+ dh_installdeb
+ # record catversion in preinst
+ sed -i -e 's/@CATVERSION@/$(CATVERSION)/' debian/postgresql-$(MAJOR_VER)/DEBIAN/preinst
+
+override_dh_gencontrol:
+ # record catversion in .deb control file
+ dh_gencontrol -- -Vpostgresql:Catversion=$(CATVERSION)
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/tests/Makefile.regress b/debian/tests/Makefile.regress
new file mode 100644
index 0000000..f01a80a
--- /dev/null
+++ b/debian/tests/Makefile.regress
@@ -0,0 +1,5 @@
+MODULE_big = regress
+OBJS = regress.o
+PG_CONFIG = pg_config
+PGXS = $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..bd61eb8
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,7 @@
+Tests: run-testsuite
+Depends: @, build-essential, perl, hunspell-en-us, locales, netcat-openbsd, net-tools, logrotate
+Restrictions: needs-root
+
+Tests: installcheck
+Depends: @, build-essential
+Restrictions: allow-stderr
diff --git a/debian/tests/installcheck b/debian/tests/installcheck
new file mode 100755
index 0000000..33cab91
--- /dev/null
+++ b/debian/tests/installcheck
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -eux
+
+SOURCE=$(dpkg-parsechangelog -SSource)
+MAJOR=${SOURCE#*-}
+top_srcdir=$PWD
+
+cd src/test/regress
+
+# compile regress.so
+make -f $top_srcdir/debian/tests/Makefile.regress PG_CONFIG=/usr/lib/postgresql/$MAJOR/bin/pg_config with_llvm=no
+
+# tell regression files that regress.so is not installed
+sed -i -e "s:@libdir@/regress:$PWD/regress:" input/*.source output/*.source
+
+# create tablespace and results directories
+rm -rf testtablespace results regression.*
+mkdir testtablespace results
+[ "$(id -u)" = "0" ] && chown postgres: testtablespace results
+
+# run the regression tests
+if ! pg_virtualenv -v $MAJOR \
+ /usr/lib/postgresql/$MAJOR/lib/pgxs/src/test/regress/pg_regress \
+ --schedule=parallel_schedule \
+ --temp-config=$top_srcdir/debian/tests/postgresql.conf
+ then
+ cat regression.diffs
+ exit 1
+fi
diff --git a/debian/tests/postgresql.conf b/debian/tests/postgresql.conf
new file mode 100644
index 0000000..c68a521
--- /dev/null
+++ b/debian/tests/postgresql.conf
@@ -0,0 +1,8 @@
+# config used by pg_regress --temp-config
+
+fsync = off
+
+# force JITing of all queries in tests
+jit = on
+jit_above_cost = 0
+jit_optimize_above_cost = 1000
diff --git a/debian/tests/run-testsuite b/debian/tests/run-testsuite
new file mode 100755
index 0000000..bb08eb5
--- /dev/null
+++ b/debian/tests/run-testsuite
@@ -0,0 +1,5 @@
+#!/bin/sh
+set -e
+
+cd /usr/share/postgresql-common
+./testsuite -v 13
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..8b15048
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,4 @@
+version=3
+opts=uversionmangle=s/alpha/~alpha/;s/beta/~beta/;s/rc/~rc/ \
+https://ftp.postgresql.org/pub/source/v(13.*)/postgresql-(13.*).tar.bz2
+