- Move the start/stop script to /usr/share/postgresql

- Add a script for handling update-alternatives as subpackages
  get installed/uninstalled, so that the implementation packages
  don't have to repeat the logic (postgresql-install-alternatives).
- Add the postgresql-test subpackage.
- Fix some dependencies.
- Save the enabled and running state when upgrading from the
  obsolete postgresql-init package.

OBS-URL: https://build.opensuse.org/package/show/server:database:postgresql/postgresql?expand=0&rev=92
This commit is contained in:
Reinhard Max 2017-11-03 12:59:51 +00:00 committed by Git OBS Bridge
parent 00771bc5b0
commit 68e3cdac9a
4 changed files with 97 additions and 9 deletions

View File

@ -0,0 +1,27 @@
#!/bin/bash
shopt -s nullglob
if test "$#" -ne 2; then
echo "usage: $0 basedir priority" 1>&2
exit 1
fi
PGBASEDIR=$1
PRIO=$2
PGBINDIR=$PGBASEDIR/bin
for FILE in $PGBINDIR/*; do
NAME=$(basename $FILE)
DIR=/usr/bin
SLAVES="$SLAVES --slave $DIR/$NAME $NAME $FILE"
done
if test -n "$SLAVES"; then
update-alternatives --quiet --install \
/usr/lib/postgresql postgresql $PGBASEDIR $PRIO \
$SLAVES
else
update-alternatives --remove postgresql $PGBASEDIR
fi

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Fri Nov 3 12:55:14 UTC 2017 - max@suse.com
- Move the start/stop script to /usr/share/postgresql
- Add a script for handling update-alternatives as subpackages
get installed/uninstalled, so that the implementation packages
don't have to repeat the logic (postgresql-install-alternatives).
- Add the postgresql-test subpackage.
- Fix some dependencies.
- Save the enabled and running state when upgrading from the
obsolete postgresql-init package.
-------------------------------------------------------------------
Fri Oct 6 14:33:54 UTC 2017 - mrueckert@suse.de

View File

@ -8,9 +8,9 @@ After=network.target
Type=forking
User=postgres
EnvironmentFile=-/etc/sysconfig/postgresql
ExecStart=/usr/lib/postgresql-script start
ExecStop=/usr/lib/postgresql-script stop
ExecReload=/usr/lib/postgresql-script reload
ExecStart=/usr/share/postgresql/postgresql-script start
ExecStop=/usr/share/postgresql/postgresql-script stop
ExecReload=/usr/share/postgresql/postgresql-script reload
# The server might be slow to stop, and that's fine. Don't kill it
SendSIGKILL=no

View File

@ -42,6 +42,7 @@ Source3: postgresql-tmpfiles.conf
Source4: postgresql.service
Source5: postgresql-bashprofile
Source6: postgresql-script
Source7: postgresql-install-alternatives
%if 0%{?suse_version} > 1100
%define fwdir /etc/sysconfig/SuSEfirewall2.d/services
@ -68,6 +69,7 @@ Summary: The Programs Needed to Create and Run a PostgreSQL Server
Group: Productivity/Databases/Servers
Provides: postgresql-server-noarch = %version-%release
Requires: postgresql-server-implementation
Requires: postgresql = %version-%release
Recommends: %defaultpackage-server
%if 0%{?suse_version} >= 1315
Requires(pre): shadow
@ -94,6 +96,18 @@ This package includes the programs needed to create and run a
PostgreSQL server, which will in turn allow you to create and maintain
PostgreSQL databases.
%package test
Summary: The test suite for PostgreSQL
Group: Productivity/Databases/Servers
Provides: postgresql-test-noarch = %version-%release
Requires: postgresql-test-implementation
Recommends: %defaultpackage-implementation
%description test
This package contains the sources and pre-built binaries of various
tests for the PostgreSQL database management system, including
regression tests and benchmarks.
%package docs
Summary: HTML Documentation for PostgreSQL
Group: Productivity/Databases/Tools
@ -116,7 +130,7 @@ postgresql package.
Summary: Contributed Extensions and Additions to PostgreSQL
Group: Productivity/Databases/Tools
Provides: postgresql-contrib-noarch = %version-%release
Requires: postgresql-docs-implementation
Requires: postgresql-contrib-implementation
Recommends: %defaultpackage-contrib
%description contrib
@ -222,8 +236,9 @@ install -m755 -d %buildroot/usr/sbin
install -m755 -d %buildroot/%_tmpfilesdir
install -m644 %{S:3} %buildroot%_tmpfilesdir/postgresql.conf
install -m755 -d %buildroot/usr/lib
install -m755 %{S:6} %buildroot/usr/lib
install -m755 -d %buildroot/usr/share/postgresql
install -m755 %{S:6} %buildroot/usr/share/postgresql
install -m755 %{S:7} %buildroot/usr/share/postgresql/install-alternatives
install -m755 -d %buildroot%_unitdir
install -m444 %{S:4} %buildroot%_unitdir
@ -235,6 +250,9 @@ install -m755 %{S:0} %buildroot/etc/init.d/postgresql
ln -sf /etc/init.d/postgresql %buildroot/usr/sbin/rcpostgresql
%endif
%define eflag /run/postgresql-was-enabled
%define aflag /run/postgresql-was-running
%pre server
getent group postgres > /dev/null ||
groupadd -g 26 -o -r postgres
@ -243,6 +261,16 @@ getent passwd postgres > /dev/null ||
-c "PostgreSQL Server" -u 26 postgres
%if %{with systemd}
%service_add_pre postgresql.service
# Save the "enabled" and "active" state across the transition of
# ownership of postgresql.service from postgresql-init to
# postgresql-server.
if [ "$FIRST_ARG" -ge 1 ]; then \
if [ x$(systemctl is-enabled postgresql.service 2>/dev/null ||:) = "xenabled" ]; then
touch %eflag
fi
systemctl is-active postgresql.service &>/dev/null && touch %aflag ||:
fi
%endif
%post server
@ -254,21 +282,42 @@ getent passwd postgres > /dev/null ||
%preun server
%if %{with systemd}
%service_del_preun postgresql.service
# Cannot use systemd macros here, because they're doing too much
/usr/bin/systemctl --no-reload disable postgresql.service || :
%else
%stop_on_removal postgresql
%endif
%postun server
%if %{with systemd}
%service_del_postun postgresql.service
# Cannot use systemd macros here, because they're doing too much
rm -f "/var/lib/systemd/migrated/postgresql"
/usr/bin/systemctl daemon-reload || :
%else
%insserv_cleanup
%endif
%if %{with systemd}
%posttrans server
# Save the "enabled" and "active" state across the transition of
# ownership of postgresql.service from postgresql-init to
# postgresql-server.
if test -f %eflag; then
rm -f %eflag
systemctl enable postgresql.service
fi
if test -f %aflag; then
rm -f %aflag
systemctl start postgresql.service
fi
%endif
%files
%defattr(-,root,root,-)
%doc README
%dir /usr/share/postgresql
/usr/share/postgresql/install-alternatives
%files server
%defattr(-,root,root,-)
@ -285,7 +334,7 @@ getent passwd postgres > /dev/null ||
%if %{with systemd}
%_tmpfilesdir/postgresql.conf
%_unitdir/
/usr/lib/*
/usr/share/postgresql/postgresql-script
%else
%config /etc/init.d/postgresql
%endif