con / opfvta-reexecution

Container-based Replication of https://doi.org/10.1038/s41398-022-01812-5
Apache License 2.0
1 stars 1 forks source link

Need `diff-pdf` in LaTeX image #30

Closed TheChymera closed 1 year ago

TheChymera commented 1 year ago

Currently our builds are failing, on the immediate level due to a Python data processing error, but in fact because the container environment does not have access to diff-pdf to generate the data to being with:

root@40c1399916c3:~# make data/paperdiff.log -B
cd prepare; ./paperdiff.sh
./paperdiff.sh: line 15: diff-pdf: command not found

I checked and debian lacks diff-pdf and only seems to have diffpdf, a similarly named but different and graphical package (I believe we discussed this potential confusion last time we met), which is less well suited to our needs. @yarikoptic am I correct?

We might have to download and build the sources in the image manually, or maybe see if someone just distributes prebuild amd64 executables that work for it. I could try to just copy-paste mine... it's only the one file:

[deco]~ ❱ equery f diff-pdf
 * Searching for diff-pdf ...
 * Contents of app-text/diff-pdf-0.5.1:
/usr
/usr/bin
/usr/bin/diff-pdf
/usr/share
/usr/share/doc
/usr/share/doc/diff-pdf-0.5.1
/usr/share/doc/diff-pdf-0.5.1/AUTHORS
/usr/share/doc/diff-pdf-0.5.1/README.md.bz2

Or maybe @yarikoptic wants to make a debian package for it? Alternatively we can just gentoo everything again, it has the package (and everything else we need for the LaTeX part). what do you think @asmacdo ?

asmacdo commented 1 year ago

i think we should create a diff-pdf container image and use that to avoid dependencies across OSs

yarikoptic commented 1 year ago

let's not breed containers. Please just install it within container where needed and be done with that.

TheChymera commented 1 year ago

Installation fails with:

root@29f327c9372d:/workdir/diff-pdf-0.5.1# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking whether make supports the include directive... yes (GNU style)
checking dependency style of g++... gcc3
./configure: line 3802: syntax error near unexpected token `POPPLER,'
./configure: line 3802: `PKG_CHECK_MODULES(POPPLER, glib-2.0 >= 2.36 poppler-glib >= 0.10 cairo-pdf)'

It could be that some poppler dependency is missing, but it would be a strange error to return for that. I also tried building libpoppler-dev, libpoppler-glib-dev, but I keep getting the same error. Upstream doesn't have an issue tracker, but I also don't think it's their build system being broken. The same source archive builds fine on gentoo... @yarikoptic any debian-wisdom that might help?

Barring that and in the interest of expediency, I'll try to just record my binary in the repo and COPY it into the containerfile.

yarikoptic commented 1 year ago

I googled myself into needing to apt install pkgconf

TheChymera commented 1 year ago

solved in 2462c048e361f8793a567eff50e8b79efb601d03