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 .sos 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!