Re: Alvaro Herrera 2014-12-12 <20141212203700.GB1768@alvh.no-ip.org>
> > Pardon me for not knowing much about Debian packages, but how would
> > that work exactly? Is it possible to do make install-client, then
> > package the installed files, then rm -rf the install tree, then
> > repeat for install-server and install-contrib? In the RPM world
> > this would never work because the build/install step happens in
> > toto before the packaging step.
>
> Uh, couldn't you just run "make install-client DESTDIR=.../client" for
> client-only files, and so on? You would end up with separate
> directories containing files for each subpackage.
Exactly. You don't need to use DESTDIR=debian/tmp, you can "make
install-client DESTDIR=$(CURDIR)/debian/postgresql-client-9.4" and
skip the intermediate location for some of the files.
> > Even without that, it seems like it'd be hard to make it entirely
> > automatic since some files would be installed in multiple cases (and
> > directories even more so).
>
> Yeah, you would need to fix that somehow.
Directories shipped in multiple packages are not a problem for dpkg
(/usr/bin!). Files must not be installed twice, but if that happened,
I'd deem that a bug in the Makefile.
The src/contrib/doc (and config) directories already have separate
install targets. These do exactly what we need for server/contrib/doc
installation, so I'll likely move to using these to remove some
complexity from debian/*.install.
On top of that, a separate "install-client" or "make -C client
install" target would be very nice, as currently not only the client
binaries have to be picked from the server tree, but also the manpages
and locale files.
The same would be nice for end-users who just want a client install
when building from source. At the moment they need to install the full
server.
Christoph
--
cb@df7cb.de | http://www.df7cb.de/