📄 postgresql.spec
字号:
%if %ssl --with-openssl \%endif%if %kerberos --with-krb5=/usr/kerberos \%endif --sysconfdir=/etc/pgsql \ --mandir=%{_mandir} \ --docdir=%{_docdir} \ --includedir=%{_includedir}/pgsql \ --datadir=/usr/share/pgsqlif [ -x /usr/bin/getconf ]; then CPUS=`getconf _NPROCESSORS_ONLN`fiif test "x$CPUS" = "x" -o "x$CPUS" = "x0"; then CPUS=1fimake -j$CPUS COPT="$CFLAGS" all%if %plperl pushd src/pl/plperl make INC=-I../../include popd%endif%if %python pushd src pushd interfaces/python cp /usr/lib/python%{pyver}/config/Makefile.pre.in . echo *shared* > Setup echo _pg pgmodule.c -I../../include -I../libpq -L../libpq -lpq -lcrypt >> Setup make -f Makefile.pre.in boot make popd popd%endif%if %test pushd src/test make all popd%endif%installrm -rf $RPM_BUILD_ROOTmake DESTDIR=$RPM_BUILD_ROOT install%if %plperlmake DESTDIR=$RPM_BUILD_ROOT -C src/pl/plperl install#cp blib/arch/auto/plperl/plperl.so $RPM_BUILD_ROOT/usr/lib%endif%if %perl make PREFIX=$RPM_BUILD_ROOT/usr -C src/interfaces/perl5 -f Makefile install # Get rid of the packing list generated by the perl Makefile, and build my own... find $RPM_BUILD_ROOT/usr/lib/perl5 -name .packlist -exec rm -f {} \; find $RPM_BUILD_ROOT/usr/lib/perl5 -type f -print | \ sed -e "s|$RPM_BUILD_ROOT/|/|g" | \ sed -e "s|.*/man/.*|&\*|" > perlfiles.list find $RPM_BUILD_ROOT/usr/lib/perl5 -type d -name Pg -print | \ sed -e "s|$RPM_BUILD_ROOT/|%dir /|g" >> perlfiles.list # check and fixup Pg manpage location.... if [ ! -e $RPM_BUILD_ROOT%{_mandir}/man3/Pg.* ] then mkdir -p $RPM_BUILD_ROOT%{_mandir}/man3 cp `find $RPM_BUILD_ROOT -name 'Pg.3*' -print` $RPM_BUILD_ROOT%{_mandir}/man3 fi pushd src/interfaces mkdir -p $RPM_BUILD_ROOT/usr/share/pgsql/perl5 cp -a perl5/test.pl $RPM_BUILD_ROOT/usr/share/pgsql/perl5 popd # remove perllocal.pod and Pg.bs from the file list - only occurs with 5.6 perl -pi -e "s/^.*perllocal.pod$//" perlfiles.list perl -pi -e "s/^.*Pg.bs$//" perlfiles.list mkdir -p $RPM_BUILD_ROOT/usr/lib/perl5/site_perl/%{_arch}-linux/auto/Pg%endifmake -C doc# man pages....pushd $RPM_BUILD_ROOT%{_mandir}tar xzf $RPM_BUILD_DIR/postgresql-%{version}/doc/man.tar.gz# the postgresql-dump manpage.....cp %{SOURCE12} man1popd# install the dump scriptinstall -m755 %SOURCE14 $RPM_BUILD_ROOT/usr/bin/# install dev headers.make DESTDIR=$RPM_BUILD_ROOT install-all-headers#fixup directory permissions for SPI stuff...#pushd $RPM_BUILD_ROOT/usr/include/pgsql#chmod 755 access catalog executor nodes rewrite storage tcop utils#popd#popd# copy over Makefile.global to the include dir....install -m755 src/Makefile.global $RPM_BUILD_ROOT/usr/include/pgsql%if %pgaccess # pgaccess installation pushd src/bin install -m 755 pgaccess/pgaccess $RPM_BUILD_ROOT/usr/bin mkdir -p $RPM_BUILD_ROOT/usr/share/pgsql/pgaccess install -m 644 pgaccess/main.tcl $RPM_BUILD_ROOT/usr/share/pgsql/pgaccess tar cf - pgaccess/lib pgaccess/images | tar xf - -C $RPM_BUILD_ROOT/usr/share/pgsql cp -a pgaccess/doc/html ../../doc/pgaccess cp pgaccess/demo/*.sql ../../doc/pgaccess popd%endif%if %python # Python pushd src/interfaces/python # Makefile.pre.in doesn't yet support .py files anyway, so we stick to a manual installation mkdir -p $RPM_BUILD_ROOT/usr/lib/python%{pyver}/site-packages install -m 755 _pgmodule.so *.py $RPM_BUILD_ROOT/usr/lib/python%{pyver}/site-packages/ popd%endif%if %jdbc # Java/JDBC # The user will have to set a CLASSPATH to find it here, but not sure where else to put it... # Install 7.0 JDBC jars install -m 755 %{SOURCE10} $RPM_BUILD_ROOT/usr/share/pgsql install -m 755 %{SOURCE11} $RPM_BUILD_ROOT/usr/share/pgsql install -m 755 %{SOURCE13} $RPM_BUILD_ROOT/usr/share/pgsql%endif# Fixup more permissions...chmod 644 $RPM_BUILD_ROOT%{_mandir}/*/*chmod +x $RPM_BUILD_ROOT/usr/lib/lib*.so.*# The initscripts....# Redhat-style....if [ -d /etc/rc.d/init.d ]then install -d $RPM_BUILD_ROOT/etc/rc.d/init.d install -m 755 %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/postgresql mv redhat-style-files.lst files.lstfi# SuSE-style....# NOTE: SuSE stuff not yet fully implemented -- this is likely to not work yet.# Putting SuSE-style stuff hereif [ -d /sbin/init.d ]then # install the SuSE stuff... mv suse-style-files.lst files.lstfi# PGDATA needs removal of group and world permissions due to pg_pwd hole.install -d -m 700 $RPM_BUILD_ROOT/var/lib/pgsql/data# backups of data go here...install -d -m 700 $RPM_BUILD_ROOT/var/lib/pgsql/backups# Move the PL's to the right placemkdir -p $RPM_BUILD_ROOT/usr/lib/pgsqlmv $RPM_BUILD_ROOT/usr/lib/pl*.so $RPM_BUILD_ROOT/usr/lib/pgsql# postgres' .bash_profileinstall -m 644 %{SOURCE15} $RPM_BUILD_ROOT/var/lib/pgsql/.bash_profile%if %test # tests. There are many files included here that are unnecessary, but include # them anyway for completeness. mkdir -p $RPM_BUILD_ROOT/usr/lib/pgsql/test cp -a src/test/regress $RPM_BUILD_ROOT/usr/lib/pgsql/test install -m 0755 config/config.guess $RPM_BUILD_ROOT/usr/lib/pgsql install -m 0755 contrib/spi/refint.so $RPM_BUILD_ROOT/usr/lib/pgsql/test/regress install -m 0755 contrib/spi/autoinc.so $RPM_BUILD_ROOT/usr/lib/pgsql/test/regress pushd $RPM_BUILD_ROOT/usr/lib/pgsql/test/regress/ strip *.so popd%endif# Upgrade scripts.pushd $RPM_BUILD_ROOTtar xzf %{SOURCE7}popd# logrotate script removed until future release#logrotate script source (which needs WORK)#mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d#cp %{SOURCE8} $RPM_BUILD_ROOT/etc/logrotate.d/postgres#chmod 0644 $RPM_BUILD_ROOT/etc/logrotate.d/postgres# Fix some more documentation# no need for the OS2 clientrm -rf contrib/os2clientgzip doc/internals.pscp %{SOURCE6} README.rpm-distmv $RPM_BUILD_ROOT%{_docdir}/postgresql/html doc# Build contrib stuff....pushd contribmake cleanmake allpopd # move the contrib tree to the right place after building....cp -r contrib $RPM_BUILD_ROOT/usr/lib/pgsql# We'll do more prep work in a later release.....#more massagingpushd $RPM_BUILD_ROOT/usr/lib/pgsql/contrib# Get rid of useless makefilesrm -f Makefile */Makefile# earthdistancepushd earthdistanceperl -pi -e "s|/usr/share/pgsql/contrib|/usr/lib/pgsql/contrib/earthdistance|" *popd# arraypushd arrayperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/array|" *popd# cubepushd cubeperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/cube|" cube.sqlpopd# fulltextpushd fulltextindexperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/fulltextindex|" *.sqlpopd# intarraypushd intarrayperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/intarray|" *.sqlpopd# isbn_issnpushd isbn_issnperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/isbn_issn|" *.sqlpopd# lopushd loperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/lo|" *.sqlpopd# miscutilpushd miscutilperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/miscutil|" *.sqlpopd# nouppushd noupdateperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/noupdate|" *.sqlpopd# pgcryptopushd pgcryptoperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/pgcrypto|" *.sqlpopd# rservpushd rservperl -pi -e "s|/usr/share/|/usr/lib/|" *perl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/rserv|" *perl -pi -e "s|/usr/bin|/usr/lib/pgsql/contrib/rserv|" *perl -pi -e "s|/usr/lib/pgsql/contrib\"|/usr/lib/pgsql/contrib/rserv\"|" *perl -pi -e "s|/usr/lib/pgsql/contrib$|/usr/lib/pgsql/contrib/rserv|" *popd# seg pushd segperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/seg|" *.sqlpopd# soundexpushd soundexperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/soundex|" *.sqlpopd# spipushd spiperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/spi|" *.sqlpopd# stringpushd stringperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/string|" *.sqlpopd# userlockpushd userlockperl -pi -e "s|/usr/lib/contrib|/usr/lib/pgsql/contrib/userlock|" *.sqlpopdpopd# Fix a dangling symlinkmkdir -p $RPM_BUILD_ROOT/usr/include/pgsql/portcp src/include/port/linux.h $RPM_BUILD_ROOT/usr/include/pgsql/port/ln -sf port/linux.h $RPM_BUILD_ROOT/usr/include/pgsql/os.h#more broken symlinksrm -f $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_resetxlog/pg_crc.c $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_controldata/pg_crc.ccp src/backend/utils/hash/pg_crc.c $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_resetxlog/pg_crc.cln $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_resetxlog/pg_crc.c $RPM_BUILD_ROOT/usr/lib/pgsql/contrib/pg_controldata/pg_crc.c# Symlink libpq.so.2.0 to libpq.so.2.1 for backwards compatibility, until # -soname patches are the norm.pushd $RPM_BUILD_ROOT/usr/libln -s libpq.so.2.1 libpq.so.2.0popd%pre# Need to make backups of some executables if an upgrade# They will be needed to do a dump of the old version's database.# All output redirected to /dev/null.if [ $1 -gt 1 ]then mkdir -p /usr/lib/pgsql/backup > /dev/null pushd /usr/bin > /dev/null cp -fp postmaster postgres pg_dump pg_dumpall psql /usr/share/pgsql/backup > /dev/null 2>&1 || : popd > /dev/null pushd /usr/lib > /dev/null cp -fp libpq.* /usr/share/pgsql/backup > /dev/null 2>&1 || : popd > /dev/nullfi%post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %pre servergroupadd -g 26 -o -r postgres >/dev/null 2>&1 || :useradd -M -n -g postgres -o -r -d /var/lib/pgsql -s /bin/bash \ -c "PostgreSQL Server" -u 26 postgres >/dev/null 2>&1 || :touch /var/log/pgsqlchown postgres.postgres /var/log/pgsqlchmod 0700 /var/log/pgsql%post serverchkconfig --add postgresql/sbin/ldconfig%preun serverif [ $1 = 0 ] ; then chkconfig --del postgresqlfi%postun server/sbin/ldconfig if [ $1 -ge 1 ]; then /sbin/service postgresql condrestart >/dev/null 2>&1fiif [ $1 = 0 ] ; then userdel postgres >/dev/null 2>&1 || : groupdel postgres >/dev/null 2>&1 || : fi%if %odbc%post -p /sbin/ldconfig odbc%postun -p /sbin/ldconfig odbc%endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -