Thread: make dist does not include man.tar.gz and postgres.tar.gz
Hi, Devrim has been trying to set up RPM files for 8.4devel. However, the tarballs he is generating are not alike those found in our FTP site; official ones include manpages and HTML docs as man.tar.gz and postgres.tar.gz, but a simple "make dist" does not seem to include them. I'm wondering how are these things supposed to be generated. Does Marc create the regular tarballs using "make dist", and then unpack them and include the other tarballs inside? Does he use a different make target? One idea I suggested was running "make man.tar.gz postgres.tar.gz" before "make dist", but that doesn't really work apparently. Here's why: [devrim@laptop pgsql]$ make dist rm -rf postgresql-8.4devel* =install= for x in `cd . && find . -name CVS -prune -o -print`; do \ file=`expr X$x : 'X\./\(.*\)'`; \ if test -d "./$file" ; then\ mkdir "postgresql-8.4devel/$file" && chmod 777 "postgresql-8.4devel/$file"; \ else \ ln "./$file" "postgresql-8.4devel/$file">/dev/null 2>&1 \ || cp "./$file" "postgresql-8.4devel/$file"; \ fi || exit; \done cp: cannot stat `./doc/src/sgml/CREATE': No such file or directory -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.
Alvaro Herrera <alvherre@commandprompt.com> writes: > I'm wondering how are these things supposed to be generated. Does Marc > create the regular tarballs using "make dist", and then unpack them and > include the other tarballs inside? Does he use a different make target? I think you need "make distprep" first. I've never seen Marc's actual build script, however. regards, tom lane
Hi, On Tue, 2008-09-02 at 17:03 -0400, Tom Lane wrote: > I think you need "make distprep" first. Still, we have problems here. I first created man.tar.gz, postgres.tar.gz and ran gmake INSTALL HISTORY under doc/src/sgml and moved them to top level directory. However, I am getting the following error regardless I ran distprep or not: $ make VERSION=8.4devel dist rm -rf postgresql-8.4devel* =install= for x in `cd . && find . -name CVS -prune -o -print`; do \ file=`expr X$x : 'X\./\(.*\)'`; \ if test -d "./$file"; then \ mkdir "postgresql-8.4devel/$file" && chmod 777 "postgresql-8.4devel/$file"; \ else \ ln "./$file" "postgresql-8.4devel/$file" >/dev/null 2>&1 \ || cp "./$file" "postgresql-8.4devel/$file"; \ fi || exit; \ done cp: cannot stat `./doc/src/sgml/CREATE': No such file or directory make: *** [distdir] Error 1 The problem is (as Alvaro stated me on Jabber), the space between CREATE and AGGREGATE (there are a bunch of them actually). Checked GNUMakefile and saw this in distdir target: cp "$(top_srcdir)/$$file" "$(distdir)/$$file"; I thought quotes would help us here, but apparently it does not. However, when I run ./configure and make dist, and then extract the tarball, generate man.tar.gz with postgres.tar.gz, add these to the previous tarball and rewrap it, it works. But I "want to" assume that it is not the way that PostgreSQL tarballs are created. > I've never seen Marc's actual build script, however. I have zero idea why these scripts are not included in CVS... Regards, -- Devrim GÜNDÜZ, RHCE devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr http://www.gunduz.org