performancecopilot/pcp

Building on Ubuntu Precise fails on LOGIMPORT.3.gz

gwillem opened this issue · 16 comments

Vanilla Ubuntu Precise install with required deps installed.

dh_install --sourcedir=debian/pcp
cp: cannot stat `debian/pcp/usr/share/man/man3/LOGIMPORT.3.gz': No such file or directory
dh_install: cp -a debian/pcp/usr/share/man/man3/LOGIMPORT.3.gz debian/libpcp3-dev//usr/share/man/man3/ returned exit code 1
make: *** [binary-arch] Error 2

I have not figured out why it isn't built yet.

Is it possible this Ubuntu version is not using gzipped man pages? (maybe uses xz, bz2 or some other compression, perhaps). The PCP build infrastructure assumes, via debian/libpcp3-dev.install contents, that gzipped is being used since thats what all Debian distros have traditionally done.

That's a guess though - could be some other reason that .gz file is not being generated. Might be worth looking into the configure.ac file and determining which style of compressed man page is being built on your system.

I cannot reproduce this. On my QA machine
kenj@vm00:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="12.04.5 LTS, Precise Pangolin"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu precise (12.04.5 LTS)"
VERSION_ID="12.04"

where the build runs to completion (and has been doing so twice a week, forever), and after I install the packages ...

kenj@vm00:~$ dpkg -S /usr/share/man/man3/LOGIMPORT.3.gz
libpcp3-dev: /usr/share/man/man3/LOGIMPORT.3.gz

So, unless gwillem can provide us with some more information (the Logs/pcp file would be a helpful start), I'm inclined to close this.

Not reproduced on any of the several Ubuntu variants I have here either, so closing as per Kens comment.

@gwillem have you managed to solve this? having the same issue on Trusty

@spiermar re your earlier mention of "(chroot)" - that might be the key - if you append ", manpages" to the Build-Depends line in debian/control does that fix it?

Tried installing manually and building from current master again, same problem. This is Jenkins slave and there's probably something different about it. Just not sure what yet.

Is "build/deb/pcp-3.11.2/debian/pcp/usr/share/man/man3/LOGIMPORT.3.gz" the expected path? The file is there, just not UPPERCASE.

On the build slave, it'd be worth checking build/deb/pcp-3.x.y/src/include/builddefs file - it must end up with HAVE_GZIPPED_MANPAGES=true.

HAVE_GZIPPED_MANPAGES = true
HAVE_BZIP2ED_MANPAGES = false
HAVE_LZMAED_MANPAGES = false

Yes, that's expected - the INSTALL_MAN macro in builddefs ensures the appropriate case happens based on the contents/headers within each file.

But the cp command is trying "LOGIMPORT.3.gz", and that doesn't exist. Just the lowercase version, "logimport.3.gz".

Yeah, IIRC that INSTALL_MAN macro picks out the correct name to use (can be multiple, can be a mix of upper/lower case) from the ".sh NAME" section in the man page, and uses that. For logimport.3 it's:

.SH NAME
\f3LOGIMPORT\f1 - introduction to the library for importing data and creating a PCP archive

... that's where the upper casing comes from. Somehow though we are ending up with the destination file missing from below build/deb/pcp-3.x.y/debian/libpcp3-dev/ though.

@spiermar Martin, I've still not reproduced this, but working on someone's machine who had, I think git pcp master may offer some relief on this issue. Please let me know, either way? Thanks!

I can try again. I managed to reproduce it consistently, but only on Jenkins. Directly on host, it builds just fine. I'll try it later today and let you know.

@natoscott apparently it helped. I managed to build PCP on our Jenkins nodes just fine now.

@spiermar great, thanks Martin. I have another person also reporting a now-working build, so looks like this one is finally resolved.