I'm not sure if this exactly answers the question, but here's what I got so far (on ubuntu lucid, checkinstall 1.6.1):
I tried to build an open-source project, which built just fine. Then I tried packaging it for debian:
checkinstall -D --install=no --pkgname=$PKGNAME --pkgversion=0.0.1 --pkgrelease="svn-001" --maintainer=test@test.com --strip=no --stripso=no --addso=yes
This basically failed at the same Building file list... FAILED!
; and a similar grep: /var/tmp/tmp.NaoiwTHT6F/newfile: No such file or directory
was reported.
I also tried with adding make
at end of checkinstall
command above - that didn't do much either.
Finally, I tried this:
make clean
checkinstall -D --install=no --pkgname=$PKGNAME --pkgversion=0.0.1 --pkgrelease="svn-001" --maintainer=test@test.com --strip=no --stripso=no --addso=yes -d2 make
The switch -d2
is to enable debug; and ... make
will rerun make one more time.
The -d2
will print out the temporary directory:
debug: The temporary directory is: [ /var/tmp/tmp.NaoiwTHT6F ]
, so it can be checked by listing... And indeed, I can confirm that a
newfile
is not generated there in my case (however, there is
newfiles
,
newfiles.installwatch
,
newfiles-tar
, and
newfiles.tmp
). In fact, turns out
checkinstall
is a
bash
script, and so one can confirm that
newfile
only appears once in it:
$ grep 'newfile ' `which checkinstall`
grep '^/home' ${TMP_DIR}/newfile > /${TMP_DIR}/unwanted
Also, the debug will point out these files/directories:
debug: INSTW_EXCLUDE=/dev,/path/to/myproject-build,/proc,/tmp,/var/tmp,
debug: INSTW_ROOTPATH=/var/tmp/tmp.NaoiwTHT6F
debug: INSTW_LOGFILE=/var/tmp/tmp.NaoiwTHT6F/newfiles.tmp
debug: INSTW_DBGFILE=/var/tmp/tmp.NaoiwTHT6F/dbgfile
Note that by default, the path to my build folder, /path/to/myproject-build
is excluded - and that is where this project also stores the built executables!
Apparently, when make
within checkinstall
goes on building for the first time, it can capture newly generated executable files - they will be listed in ${TMP_DIR}/newfiles
; however, in my case, the problem is that the executables end up under the same directory where checkinstall
is called; thus, at this dialog:
Some of the files created by the installation are inside the build
directory: /path/to/myproject-build
You probably don't want them to be included in the package,
especially if they are inside your home directory.
Do you want me to list them? [n]: y
Should I exclude them from the package? (Saying yes is a good idea) [y]: n
... I must, in fact, answer n
- otherwise I'd get nothing included! I can then check the contents with:
dpkg --contents mytest.deb | less
However, then the problem is that checkinstall
:
- also includes
.o
files, as well as .svn
directories
- counts the absolute path as relative (will not automatically "send" executables to say,
/usr/bin
, and .so
s to /usr/lib
In brief - some of the approaches above may get one to have a .deb
which is not completely empty; but that doesn't mean one has only the needed files there, or that they would be routed to usual install destinations...
Well, hope this helps at least a bit,
Cheers!