Обсуждение: When %nls/%ssl/%xml macro is set to 0
Hi,
When %nls macro is set to 0, PostgreSQL 9.6 RPM package build fails.
---
$ rpmbuild -ba -D 'nls 0' SPECS/postgresql-9.6.spec
(snip)
+ /usr/bin/cp /dev/null pltcl.lst
+ /usr/bin/cp /dev/null plpython.lst
+ cat libpq5-9.6.lang
cat: libpq5-9.6.lang: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.ct9Vwi (%install)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.ct9Vwi (%install)
----
*.lst filename and %endif position for %if %{nls} ... %endif block are
wrong.
Even when %ssl macro is set to 0, it fails.
----
$ rpmbuild -ba -D 'ssl 0' SPECS/postgresql-9.6.spec
+ cp -pr src/tutorial
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1
+ cp -pr doc/html
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1
+ exit 0
Provides: postgresql-docs postgresql96-docs = 9.6.1-1PGDG.el7.centos postgresql96-docs(x86-64) = 9.6.1-1PGDG.el7.centos
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix)
<=4.0-1
Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.4)(64bit)rtld(GNU_HASH)
Processing files: postgresql96-contrib-9.6.1-1PGDG.el7.centos.x86_64
error: File not found:
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/lib/sslinfo.so
error: File not found by glob:
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/share/extension/sslinfo*
RPM build errors:
File not found:
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/lib/sslinfo.so
File not found by glob:
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/share/extension/sslinfo*
----
sslinfo module isn't excluded from %files list.
Even when %xml macro is set to 0, it fails.
----
$ rpmbuild -ba -D 'xml 0' SPECS/postgresql-9.6.spec
+ cp -pr src/tutorial
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1
+ cp -pr doc/html
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1
+ exit 0
Provides: postgresql-docs postgresql96-docs = 9.6.1-1PGDG.el7.centos postgresql96-docs(x86-64) = 9.6.1-1PGDG.el7.centos
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix)
<=4.0-1
Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.4)(64bit)rtld(GNU_HASH)
Processing files: postgresql96-contrib-9.6.1-1PGDG.el7.centos.x86_64
error: File not found by glob:
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/share/extension/xml2*
RPM build errors:
File not found by glob:
/home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/share/extension/xml2*
----
xml2 module isn't excluded from %files list.
Send a patch to fix them.
Regards,
----
Tomoaki Sato <sato@sraoss.co.jp>
SRA OSS, Inc. Japan
--- SPECS/postgresql-9.6.spec.orig 2016-11-03 18:16:27.442831332 +0900
+++ SPECS/postgresql-9.6.spec 2016-11-03 19:43:48.188604275 +0900
@@ -781,23 +781,14 @@
%{__rm} -rf %{buildroot}%{_docdir}/pgsql
# initialize file lists
-%{__cp} /dev/null main.lst
-%{__cp} /dev/null libs.lst
-%{__cp} /dev/null server.lst
-%{__cp} /dev/null devel.lst
-%{__cp} /dev/null plperl.lst
-%{__cp} /dev/null pltcl.lst
-%{__cp} /dev/null plpython.lst
-%{__cp} /dev/null plpython3.lst
-
-# initialize file lists
-%{__cp} /dev/null main.lst
-%{__cp} /dev/null libs.lst
-%{__cp} /dev/null server.lst
-%{__cp} /dev/null devel.lst
-%{__cp} /dev/null plperl.lst
-%{__cp} /dev/null pltcl.lst
-%{__cp} /dev/null plpython.lst
+%{__cp} /dev/null pg_main.lst
+%{__cp} /dev/null pg_libpq5.lst
+%{__cp} /dev/null pg_server.lst
+%{__cp} /dev/null pg_devel.lst
+%{__cp} /dev/null pg_plperl.lst
+%{__cp} /dev/null pg_pltcl.lst
+%{__cp} /dev/null pg_plpython.lst
+%{__cp} /dev/null pg_plpython3.lst
%if %nls
%find_lang ecpg-%{majorversion}
@@ -833,12 +824,12 @@
%endif
%find_lang postgres-%{majorversion}
%find_lang psql-%{majorversion}
-%endif
cat libpq5-%{majorversion}.lang > pg_libpq5.lst
cat pg_config-%{majorversion}.lang ecpg-%{majorversion}.lang ecpglib6-%{majorversion}.lang > pg_devel.lst
cat initdb-%{majorversion}.lang pg_ctl-%{majorversion}.lang psql-%{majorversion}.lang pg_dump-%{majorversion}.lang
pg_basebackup-%{majorversion}.langpg_rewind-%{majorversion}.lang pgscripts-%{majorversion}.lang > pg_main.lst
cat postgres-%{majorversion}.lang pg_resetxlog-%{majorversion}.lang pg_controldata-%{majorversion}.lang
plpgsql-%{majorversion}.lang> pg_server.lst
+%endif
%pre server
groupadd -g 26 -o -r postgres >/dev/null 2>&1 || :
@@ -1111,7 +1102,9 @@
%{pgbaseinstdir}/lib/postgres_fdw.so
%{pgbaseinstdir}/lib/refint.so
%{pgbaseinstdir}/lib/seg.so
+%if %ssl
%{pgbaseinstdir}/lib/sslinfo.so
+%endif
%if %selinux
%{pgbaseinstdir}/lib/sepgsql.so
%{pgbaseinstdir}/share/contrib/sepgsql.sql
@@ -1164,7 +1157,9 @@
%{pgbaseinstdir}/share/extension/postgres_fdw*
%{pgbaseinstdir}/share/extension/refint*
%{pgbaseinstdir}/share/extension/seg*
+%if %ssl
%{pgbaseinstdir}/share/extension/sslinfo*
+%endif
%{pgbaseinstdir}/share/extension/tablefunc*
%{pgbaseinstdir}/share/extension/tcn*
%{pgbaseinstdir}/share/extension/timetravel*
@@ -1175,7 +1170,9 @@
%if %uuid
%{pgbaseinstdir}/share/extension/uuid-ossp*
%endif
+%if %xml
%{pgbaseinstdir}/share/extension/xml2*
+%endif
%{pgbaseinstdir}/bin/oid2name
%{pgbaseinstdir}/bin/vacuumlo
%{pgbaseinstdir}/bin/pg_recvlogical
Hi Tomoaki,
Wow, good catch! I'll apply the patch soon. Should we release a new version, or
just wait for the next minor release? I'm inclined to go with the latter, as I
want to avoid people to restart their instances just for applying this patch.
Regards, Devrim
On Thu, 2016-11-03 at 21:35 +0900, Tomoaki Sato wrote:
> Hi,
>
> When %nls macro is set to 0, PostgreSQL 9.6 RPM package build fails.
>
> ---
> $ rpmbuild -ba -D 'nls 0' SPECS/postgresql-9.6.spec
> (snip)
> + /usr/bin/cp /dev/null pltcl.lst
> + /usr/bin/cp /dev/null plpython.lst
> + cat libpq5-9.6.lang
> cat: libpq5-9.6.lang: No such file or directory
> error: Bad exit status from /var/tmp/rpm-tmp.ct9Vwi (%install)
>
>
> RPM build errors:
> Bad exit status from /var/tmp/rpm-tmp.ct9Vwi (%install)
> ----
>
> *.lst filename and %endif position for %if %{nls} ... %endif block are
> wrong.
>
> Even when %ssl macro is set to 0, it fails.
>
> ----
> $ rpmbuild -ba -D 'ssl 0' SPECS/postgresql-9.6.spec
> + cp -pr src/tutorial /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-
> 1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1
> + cp -pr doc/html /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-
> 1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1
> + exit 0
> Provides: postgresql-docs postgresql96-docs = 9.6.1-1PGDG.el7.centos
> postgresql96-docs(x86-64) = 9.6.1-1PGDG.el7.centos
> Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests)
> <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit)
> libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.4)(64bit) rtld(GNU_HASH)
> Processing files: postgresql96-contrib-9.6.1-1PGDG.el7.centos.x86_64
> error: File not found: /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-
> 1PGDG.el7.centos.x86_64/usr/pgsql-9.6/lib/sslinfo.so
> error: File not found by glob: /home/tom-
> sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-
> 9.6/share/extension/sslinfo*
>
>
> RPM build errors:
> File not found: /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-
> 1PGDG.el7.centos.x86_64/usr/pgsql-9.6/lib/sslinfo.so
> File not found by glob: /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-
> 9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/share/extension/sslinfo*
> ----
>
> sslinfo module isn't excluded from %files list.
>
> Even when %xml macro is set to 0, it fails.
>
> ----
> $ rpmbuild -ba -D 'xml 0' SPECS/postgresql-9.6.spec
> + cp -pr src/tutorial /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-
> 1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1
> + cp -pr doc/html /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-
> 1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1
> + exit 0
> Provides: postgresql-docs postgresql96-docs = 9.6.1-1PGDG.el7.centos
> postgresql96-docs(x86-64) = 9.6.1-1PGDG.el7.centos
> Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests)
> <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit)
> libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.4)(64bit) rtld(GNU_HASH)
> Processing files: postgresql96-contrib-9.6.1-1PGDG.el7.centos.x86_64
> error: File not found by glob: /home/tom-
> sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-
> 9.6/share/extension/xml2*
>
>
> RPM build errors:
> File not found by glob: /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-
> 9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/share/extension/xml2*
> ----
>
> xml2 module isn't excluded from %files list.
>
> Send a patch to fix them.
>
> Regards,
>
>
> ----
> Tomoaki Sato <sato@sraoss.co.jp>
> SRA OSS, Inc. Japan
--
Devrim GÜNDÜZ
EnterpriseDB: http://www.enterprisedb.com
PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer
Twitter: @DevrimGunduz , @DevrimGunduzTR
Вложения
Hi, Thanks for the patch. Committed: https://git.postgresql.org/gitweb/?p=pgrpms.git;a=commit;h=b7811829fdbf46b0248f8f0f1c3ca471616b7e04 Regards, Devrim On Thu, 2016-11-03 at 21:35 +0900, Tomoaki Sato wrote: > Hi, > > When %nls macro is set to 0, PostgreSQL 9.6 RPM package build fails. > > --- > $ rpmbuild -ba -D 'nls 0' SPECS/postgresql-9.6.spec > (snip) > + /usr/bin/cp /dev/null pltcl.lst > + /usr/bin/cp /dev/null plpython.lst > + cat libpq5-9.6.lang > cat: libpq5-9.6.lang: No such file or directory > error: Bad exit status from /var/tmp/rpm-tmp.ct9Vwi (%install) > > > RPM build errors: > Bad exit status from /var/tmp/rpm-tmp.ct9Vwi (%install) > ---- > > *.lst filename and %endif position for %if %{nls} ... %endif block are > wrong. > > Even when %ssl macro is set to 0, it fails. > > ---- > $ rpmbuild -ba -D 'ssl 0' SPECS/postgresql-9.6.spec > + cp -pr src/tutorial /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1- > 1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1 > + cp -pr doc/html /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1- > 1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1 > + exit 0 > Provides: postgresql-docs postgresql96-docs = 9.6.1-1PGDG.el7.centos > postgresql96-docs(x86-64) = 9.6.1-1PGDG.el7.centos > Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) > <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 > Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) > libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.4)(64bit) rtld(GNU_HASH) > Processing files: postgresql96-contrib-9.6.1-1PGDG.el7.centos.x86_64 > error: File not found: /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1- > 1PGDG.el7.centos.x86_64/usr/pgsql-9.6/lib/sslinfo.so > error: File not found by glob: /home/tom- > sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql- > 9.6/share/extension/sslinfo* > > > RPM build errors: > File not found: /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1- > 1PGDG.el7.centos.x86_64/usr/pgsql-9.6/lib/sslinfo.so > File not found by glob: /home/tom-sato/rpmbuild/BUILDROOT/postgresql96- > 9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/share/extension/sslinfo* > ---- > > sslinfo module isn't excluded from %files list. > > Even when %xml macro is set to 0, it fails. > > ---- > $ rpmbuild -ba -D 'xml 0' SPECS/postgresql-9.6.spec > + cp -pr src/tutorial /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1- > 1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1 > + cp -pr doc/html /home/tom-sato/rpmbuild/BUILDROOT/postgresql96-9.6.1- > 1PGDG.el7.centos.x86_64/usr/share/doc/postgresql96-docs-9.6.1 > + exit 0 > Provides: postgresql-docs postgresql96-docs = 9.6.1-1PGDG.el7.centos > postgresql96-docs(x86-64) = 9.6.1-1PGDG.el7.centos > Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) > <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 > Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) > libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.4)(64bit) rtld(GNU_HASH) > Processing files: postgresql96-contrib-9.6.1-1PGDG.el7.centos.x86_64 > error: File not found by glob: /home/tom- > sato/rpmbuild/BUILDROOT/postgresql96-9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql- > 9.6/share/extension/xml2* > > > RPM build errors: > File not found by glob: /home/tom-sato/rpmbuild/BUILDROOT/postgresql96- > 9.6.1-1PGDG.el7.centos.x86_64/usr/pgsql-9.6/share/extension/xml2* > ---- > > xml2 module isn't excluded from %files list. > > Send a patch to fix them. > > Regards, > > > ---- > Tomoaki Sato <sato@sraoss.co.jp> > SRA OSS, Inc. Japan -- Devrim GÜNDÜZ EnterpriseDB: http://www.enterprisedb.com PostgreSQL Danışmanı/Consultant, Red Hat Certified Engineer Twitter: @DevrimGunduz , @DevrimGunduzTR