rebuilt with systemd support [release 13.1-2mamba;Sun Jan 31 2021]

This commit is contained in:
Silvan Calarco 2024-01-06 10:27:02 +01:00
parent 243f9497d3
commit 054aec2bdd
5 changed files with 110 additions and 87 deletions

View File

@ -2,7 +2,6 @@
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
PostgreSQL is an open-source descendant of this original Berkeley code.
It provides SQL92/SQL99 language support and other modern features.

View File

@ -0,0 +1,12 @@
diff -upr postgresql-13.1.orig/src/include/pg_config_manual.h postgresql-13.1/src/include/pg_config_manual.h
--- postgresql-13.1.orig/src/include/pg_config_manual.h 2020-11-10 00:24:30.000000000 +0200
+++ postgresql-13.1/src/include/pg_config_manual.h 2020-12-10 01:55:35.999605194 +0200
@@ -201,7 +201,7 @@
* support them yet.
*/
#ifndef WIN32
-#define DEFAULT_PGSOCKET_DIR "/tmp"
+#define DEFAULT_PGSOCKET_DIR "/run/postgresql"
#else
#define DEFAULT_PGSOCKET_DIR ""
#endif

42
postgresql.service Normal file
View File

@ -0,0 +1,42 @@
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
Type=notify
TimeoutSec=120
User=postgres
Group=postgres
Environment=PGROOT=/var/lib/pgsql
SyslogIdentifier=postgres
PIDFile=/var/lib/pgsql/data/postmaster.pid
RuntimeDirectory=postgresql
RuntimeDirectoryMode=755
ExecStart=/usr/bin/postgres -D ${PGROOT}/data
ExecReload=/bin/kill -HUP ${MAINPID}
KillMode=mixed
KillSignal=SIGINT
# Due to PostgreSQL's use of shared memory, OOM killer is often overzealous in
# killing Postgres, so adjust it downward
OOMScoreAdjust=-200
# Additional security-related features
PrivateTmp=true
ProtectHome=true
ProtectSystem=full
NoNewPrivileges=true
ProtectControlGroups=true
ProtectKernelModules=true
ProtectKernelTunables=true
PrivateDevices=true
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=true
RestrictRealtime=true
SystemCallArchitectures=native
[Install]
WantedBy=multi-user.target

View File

@ -4,7 +4,7 @@
Name: postgresql
Version: 13.1
Release: 1mamba
Release: 2mamba
Summary: An object-relational database management system (ORDBMS)
Group: Applications/Databases
Vendor: openmamba
@ -13,33 +13,34 @@ Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://www.postgresql.org
Source0: https://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version}.tar.bz2
Source1: postgresql-initscript
#Source2: http://www.postgresql.org/files/documentation/pdf/%{majver}/postgresql-%{majver}-US.pdf
Source2: postgresql.service
Source3: postgresql.tmpfiles
Patch0: postgresql-13.1-run-socket.patch
License: BSD
BuildRequires: flex
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libe2fs-devel
BuildRequires: ldconfig
BuildRequires: libkrb5-devel
BuildRequires: libncurses-devel
BuildRequires: libopenldap-devel
BuildRequires: libopenssl-devel
BuildRequires: libpython-devel
BuildRequires: libpam-devel
BuildRequires: libperl
BuildRequires: libpython3-devel
BuildRequires: libreadline-devel
BuildRequires: libsystemd-devel
BuildRequires: libtcl-devel
BuildRequires: libxml2-devel
BuildRequires: libxslt-devel
BuildRequires: libz-devel
BuildRequires: pam-devel
BuildRequires: perl-devel
## AUTOBUILDREQ-END
Requires(pre): /usr/sbin/groupadd, /usr/sbin/useradd, /sbin/chkconfig
BuildRequires: flex
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
%systemd_requires
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Requires: lib%{name} == %{version}
%description
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
PostgreSQL is an open-source descendant of this original Berkeley code.
It provides SQL92/SQL99 language support and other modern features.
@ -50,94 +51,79 @@ Group: System/Libraries
%description -n lib%{name}
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
This package contains the libraries used by postgresql.
%package -n lib%{name}-devel
Summary: Devel files for PostgreSQL
Group: Development/Libraries
Requires: lib%{name} = %{version}
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
Provides: %{name}-devel = %{?epoch:%epoch:}%{version}-%{release}
Obsoletes: %{name}-devel
Provides: %{name}-devel == %{version}
%description -n lib%{name}-devel
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
This package contains static libraries and header files need for development.
This package contains static libraries and header files needed for development.
%package server
Summary: PostgreSQL DBMS server
Group: System/Database
Requires: %{name} = %{version}
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description server
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
PostgreSQL is an open-source descendant of this original Berkeley code.
It provides SQL92/SQL99 language support and other modern features.
This is the DBMS server.
This package provides the DBMS server.
%package tcltk
Summary: PostgreSQL Tcl/Tk interface
Group: Graphical Desktop/Applications/Databases
Requires: %{name} = %{version}
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description tcltk
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
This package contains the Tcl/Tk interface.
%package contrib
Summary: Contributed source and binaries distributed with PostgreSQL
Group: Applications/Databases
Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description contrib
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
The postgresql-contrib package contains contributed packages that are
included in the PostgreSQL distribution.
The postgresql-contrib package contains contributed packages that are included in the PostgreSQL distribution.
%package test
Summary: The test suite distributed with PostgreSQL
Group: Applications/Databases
Requires: %{name}-server = %{version}-%{release}
Requires: %{name}-server = %{?epoch:%epoch:}%{version}-%{release}
%description test
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
The postgresql-test package includes the sources and pre-built
binaries of various tests for the PostgreSQL database management
system, including regression tests and benchmarks.
The postgresql-test package includes the sources and pre-built binaries of various tests for the PostgreSQL database management system, including regression tests and benchmarks.
%package docs
Summary: Extra documentation for PostgreSQL
Group: Documentation
Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description docs
PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science Department.
The POSTGRES project, led by Professor Michael Stonebraker, was sponsored by the Defense Advanced Research Projects Agency (DARPA), the Army Research Office (ARO), the National Science Foundation (NSF), and ESL, Inc.
The postgresql-docs package includes some additional documentation for
PostgreSQL. Currently, this includes the main documentation in PDF format,
the FAQ, and source files for the PostgreSQL tutorial.
The postgresql-docs package includes some additional documentation for PostgreSQL. Currently, this includes the main documentation in PDF format, the FAQ, and source files for the PostgreSQL tutorial.
%debug_package
%prep
%setup -q
#cp -p %{SOURCE2} .
%patch0 -p1
%build
CFLAGS="%{optflags} -ltermcap"; export CFLAGS
PYTHON=%{__python} \
%configure \
--prefix=%{_prefix} \
--mandir=%{_mandir} \
@ -151,11 +137,14 @@ PYTHON=%{__python} \
--with-perl \
--with-ldap \
--with-krb5 \
--with-gssapi
--with-gssapi \
--with-systemd \
PYTHON=%{__python3}
# --with-bonjour
%make
make %{?_smp_mflags} -C contrib all
make %{?_smp_mflags} -C contrib all
# put correct path into tutorial scripts
sed "s|C=\`pwd\`;|C=%{_libdir}/postgresql/tutorial;|" < src/tutorial/Makefile > src/tutorial/GNUmakefile
@ -187,25 +176,12 @@ strip *.so
install -d -m 755 %{buildroot}%{_libdir}/postgresql/tutorial
cp src/tutorial/* %{buildroot}%{_libdir}/postgresql/tutorial
# Fix some more documentation
#mv %{buildroot}%{_docdir}/pgsql/html doc
#rm -rf %{buildroot}%{_docdir}/pgsql
install -d %{buildroot}/var/pgsql/data
install -D -m0755 %{SOURCE1} %{buildroot}%{_initrddir}/postgresql
#mv %{buildroot}%{_includedir}/postgresql/informix/esql/sqltypes.h \
# %{buildroot}%{_includedir}/postgresql/informix/esql/sqltypes-postgres.h
install -d %{buildroot}/var/lib/pgsql/data
install -D -m0755 %{SOURCE2} %{buildroot}%{_unitdir}/postgresql.service
install -D -m0755 %{SOURCE3} %{buildroot}%{_tmpfilesdir}/postgresql.conf
%find_lang %{name} --with-qt --with-man --all-name || touch %{name}.lang
#%define lang_files pg_basebackup pg_ctl psql plperl postgres plpgsql plpython pltcl pgscripts ecpg initdb pg_dump pg_config pg_controldata pg_resetxlog libpq5 ecpglib6 pg_rewind
#
#> %{name}-all.lang
#for lang_file in %{lang_files}
# do %find_lang ${lang_file}-%{majver}
# cat ${lang_file}-%{majver}.lang >> %{name}-all.lang
#done
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
@ -213,31 +189,28 @@ install -D -m0755 %{SOURCE1} %{buildroot}%{_initrddir}/postgresql
if [ $1 -eq 1 ]; then
/usr/sbin/groupadd postgres -g %{groupid} 2>/dev/null
/usr/sbin/useradd -u %{userid} -g postgres \
-d /var/pgsql/data -c 'PostgreSQL Server' \
-d /var/lib/pgsql/data -c 'PostgreSQL Server' \
-s /bin/false postgres 2>/dev/null
fi
:
%post server
[ -e /var/pgsql/data/PG_VERSION ] || su -s /bin/sh - postgres -c "%{_bindir}/initdb -D /var/pgsql/data >/dev/null"
if [ $1 -eq 1 ]; then
/sbin/chkconfig --add postgresql
service postgresql start
fi
[ -e /var/lib/pgsql/data/PG_VERSION ] || su -s /bin/sh - postgres -c "%{_bindir}/initdb -D /var/lib/pgsql/data >/dev/null"
%tmpfiles_create named.conf
%systemd_post postgresql
:
%preun server
if [ $1 -eq 0 ]; then
service postgresql stop
/sbin/chkconfig --del postgresql
/usr/sbin/userdel postgres
fi
%systemd_preun postgresql
:
%postun server
if [ $1 -eq 1 ]; then
service postgresql restart
fi
%systemd_postun_with_restart postgresql
:
%posttrans
# clean broken old sysv links
find /etc/rc[0-6].d/ -type l -xtype l -exec rm -f {} \;
:
%files -f %{name}.lang
@ -255,14 +228,16 @@ fi
%dir %{_datadir}/doc/postgresql
%{_datadir}/doc/postgresql/*
#%{_mandir}/man1/*
%doc COPYRIGHT HISTORY INSTALL README
%doc COPYRIGHT
%files server
%defattr(-,root,root)
%attr(755,root,root) %{_initrddir}/postgresql
%{_bindir}/postmaster
%{_bindir}/postgres
%attr(700,postgres,root) %dir %{_localstatedir}/pgsql/data
%{_unitdir}/postgresql.service
%{_tmpfilesdir}/postgresql.conf
%dir %dir %{_localstatedir}/lib/pgsql
%attr(700,postgres,root) %dir %{_localstatedir}/lib/pgsql/data
%files -n lib%{name}
%defattr(-,root,root)
@ -296,10 +271,6 @@ fi
%exclude %{_libdir}/postgresql/seg.so
%exclude %{_libdir}/postgresql/sslinfo.so
%exclude %{_libdir}/postgresql/tablefunc.so
#%exclude %{_libdir}/postgresql/test_parser.so
#%exclude %{_libdir}/postgresql/timetravel.so
#%exclude %{_libdir}/postgresql/tsearch2.so
#%exclude %{_libdir}/postgresql/pgxml.so
%{_datadir}/postgresql/*
%files -n lib%{name}-devel
@ -319,6 +290,7 @@ fi
%{_libdir}/pkgconfig/libecpg_compat.pc
%{_libdir}/pkgconfig/libpgtypes.pc
%{_libdir}/pkgconfig/libpq.pc
%doc HISTORY INSTALL README
#%files tcltk
#%defattr(-,root,root)
@ -356,13 +328,7 @@ fi
%{_libdir}/postgresql/seg.so
%{_libdir}/postgresql/sslinfo.so
%{_libdir}/postgresql/tablefunc.so
#%{_libdir}/postgresql/test_parser.so
#%{_libdir}/postgresql/timetravel.so
#%{_libdir}/postgresql/tsearch2.so
#%{_libdir}/postgresql/pgxml.so
#%{_datadir}/pgsql/contrib/
%{_bindir}/oid2name
#%{_bindir}/pg_standby
%{_bindir}/pgbench
%{_bindir}/vacuumlo
@ -379,6 +345,9 @@ fi
%{_libdir}/postgresql/tutorial/*
%changelog
* Sun Jan 31 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 13.1-2mamba
- rebuilt with systemd support
* Fri Nov 13 2020 Automatic Build System <autodist@mambasoft.it> 13.1-1mamba
- automatic version update by autodist

1
postgresql.tmpfiles Normal file
View File

@ -0,0 +1 @@
d /run/postgresql 700 postgres postgres