Opened 11 years ago

Closed 11 years ago

Last modified 12 months ago

#3939 closed defect (invalid)

checkinstall needs root even with --install=no

Reported by: SF/scurtescu Owned by: fingolfin
Priority: normal Component: Port: Linux
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 fingolfin, 11 years ago

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 :)

comment:2 by fingolfin, 11 years ago

Owner: set to fingolfin
Status: newpending

comment:3 by SF/scurtescu, 11 years ago

Owner: fingolfin removed
Status: pendingnew

comment:4 by SF/scurtescu, 11 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 SF/scurtescu, 11 years ago

fingolfin,

My last comment could have inadvertently override some of your changes, not sure. Received some contradictory email notifications.

comment:6 by fingolfin, 11 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 fingolfin, 11 years ago

Owner: set to fingolfin

comment:8 by SF/scurtescu, 11 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 fingolfin, 11 years ago

Resolution: invalid
Status: newclosed

comment:10 by fingolfin, 11 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 digitall, 12 months ago

Component: Port: Linux
Note: See TracTickets for help on using tickets.