#3939 closed defect (invalid)
checkinstall needs root even with --install=no
Reported by: | SF/scurtescu | Owned by: | fingolfin |
---|---|---|---|
Priority: | normal | Component: | Port: Linux |
Version: | Keywords: | ||
Cc: | Game: |
Description
Built ScummVM 0.12 from source on a AMD64 Ubuntu Hardy system.
After ./configure and make I run: $ checkinstall --install=no
I would expect this command to just build a .deb, but it complained that it cannot access /usr/local/bin/scummvm. Here is the complete error message:
-------------------------------------------------------- Installing with make install...
========================= Installation results =========================== install -d "/usr/local/bin" install -c -s -m 755 "./scummvm" "/usr/local/bin/scummvm" strip: could not create temporary file to hold stripped copy of '/usr/local/bin/scummvm' install: strip process terminated abnormally make: *** [install] Error 1
**** Installation failed. Aborting package creation.
Cleaning up...OK
Bye. --------------------------------------------------------
I run the same command with sudo: $ sudo checkinstall --install=no
And this time the .deb was created as expected.
It looks to me that the problem is in the make file. Not sure what happens when you use "checkinstall --install=no", but it clearly should work for a non-privileged user.
Ticket imported from: #2091524. Ticket imported from: bugs/3939.
Change History (11)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
Owner: | set to |
---|---|
Status: | new → pending |
comment:3 by , 16 years ago
Owner: | removed |
---|---|
Status: | pending → new |
comment:4 by , 16 years ago
checkinstall is a wrapper around 'make install', it creates native packages: http://freshmeat.net/projects/checkinstall/ http://checkinstall.izto.org/
I still think the issue is with the makefile. Used 'checkinstall --install=no' on many source packages and never had to run it as root, that's the whole point of '--install=no'.
It may not be a bug, but a feature request. I don't know how checkinstall does its magic, it somehow watches where 'make install' would install files (maybe does that by changing the prefix to a tmp folder?) and based on that creates a native package and then, depending on the --install option, installs that package. Basically, except for the very last step - the actual package installation, the whole process should work for a regular user.
Is it possible that the make file has hard coded references to /usr/local/bin/scummvm ? Just guessing.
comment:5 by , 16 years ago
fingolfin,
My last comment could have inadvertently override some of your changes, not sure. Received some contradictory email notifications.
comment:6 by , 16 years ago
No, we don't hard code /usr in the Makefile -- if you try a different --prefix, you'll be able to install e.g. into your home dir.
Are you sure checkinstall is supposed for non-root users? Nothing in the checkinstall docs seems to suggest that.
But whatever it is, it's not a bug on our side -- either you are using the tool incorrectly, or it relies on some non-standard Makefile behavior (like expecting the Makefile to support DESTDIR, which is true for automake based Makefiles, but not in general).
comment:7 by , 16 years ago
Owner: | set to |
---|
comment:8 by , 16 years ago
Yes, I am pretty sure checkinstall works for non-root users, did that numerous times.
Quite possible that it relies on some extra makefile behaviour, but since I never had a problem like this I would assume it is a pretty common feature.
comment:9 by , 16 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:10 by , 16 years ago
Still, it's not a bug in ScummVM :).
If you find out what magic the checkinstall guys expect from a build system / configure script to do their magic, feel free to file a feature request, and we'll be happy to consider adding it.
In the meantime, though, I'l close this bug report, as I can see nothing we do wrong, and from the provided information it's impossible for me to do more than guess what checkinstall does.
comment:11 by , 6 years ago
Component: | → Port: Linux |
---|
I have no idea what "checkinstall" is, and what it is doing, to be frank.
But our "install" target by default tries to install things into the --prefix you provided to configure, which in turn defaults to "/usr/local". If you are not root, you can't install there. Pass a different prefix to configure, e.g. /home/YOURNAME/local, and it should work.
So, it is not clear to me what our "bug" here, is -- from my point of view, it might be a book in this "checkinstall" thing you are using :)