Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Building on Ubuntu Precise fails on LOGIMPORT.3.gz #8

Closed
gwillem opened this Issue Apr 9, 2015 · 16 comments

Comments

Projects
None yet
4 participants

gwillem commented Apr 9, 2015

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.

Contributor

natoscott commented Apr 9, 2015

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.

Contributor

kmcdonell commented Dec 20, 2015

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.

Contributor

natoscott commented Jan 8, 2016

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

@natoscott natoscott closed this Jan 8, 2016

spiermar commented Apr 27, 2016 edited

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

Contributor

natoscott commented Apr 28, 2016

@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?

natoscott added a commit that referenced this issue Apr 28, 2016

build: add deb build dependency on manpages (configure.ac assumes it)
The ./configure checks for man page format (gz/bz2/xz/etc) sniff on
the local filesystem to determine which form is in use.  When .debs
are built in a chroot, its possible that becomes indeterminate.  So,
force the issue by ensuring base manpages package is there in chroot
builds too.  This is a possible root cause for this build failure:
#8

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.

spiermar commented Apr 28, 2016 edited

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.

Contributor

natoscott commented Apr 28, 2016

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
Contributor

natoscott commented Apr 28, 2016

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".

Contributor

natoscott commented Apr 28, 2016

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.

natoscott added a commit that referenced this issue May 10, 2016

build: correct logic bug in builddefs INSTALL_MAN macro
The case-insensitive filesystem handling (for MacOSX) was
being triggered for every build due to a logic error on a
conditional statement.

Correcting this means we now install both case flavours of
man pages once again.  I think this is also the underlying
issue in #8
... but there is some other issue at play there too, where
sort order of the mixed case vs lower case variants doesn't
always behave as expected (possibly environmental).  That's
proving very difficult to reliably reproduce, however, so I
cannot confirm its fixed yet.
Contributor

natoscott commented May 10, 2016

@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.

Contributor

natoscott commented May 11, 2016

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment