IgnorantGuru / spacefm

SpaceFM File Manager
http://ignorantguru.github.com/spacefm/
GNU General Public License v3.0
489 stars 73 forks source link

broken update build on ubuntu 12.04 #264

Closed konserw closed 11 years ago

konserw commented 11 years ago

Hi! I've been using spacefm for some time now and I like it very much. Unfortunetly last update broken my spacefm and udevil with the same strange error:

Preparing to replace spacefm 0.8.5-1 (using .../spacefm_0.8.6-1_all.deb) ...
spacefm-prerm upgrade
Unpacking replacement spacefm ...
spacefm-postrm upgrade
Processing triggers for man-db ...
Setting up language-selector-common (0.79.1) ...
Setting up spacefm (0.8.6-1) ...
spacefm-postinst configure
spacefm-build: Extracting source...
spacefm-build: Running configure...
./configure: line 477: expr: command not found
./configure.lineno: line 477: expr: command not found
./configure.lineno: line 477: expr: command not found
./configure.lineno: line 477: expr: command not found

last line repeats itself a lot (infinite?) Only killing /bin/bash ./configure --prefix=/usr --with-gtk2 helps ;) My distro is bodhi linux 2.0.1 x86_64, which is based upon ubuntu 12.04.1 LTS. Is there any quick fix for that? Or should I wait for another update? Or it's only my systems fault?

IgnorantGuru commented 11 years ago

Thanks for the report. 0.8.6 added an env CFLAGS variable to configure like this:

 su "$spacefm_nusername" -c 'env CFLAGS=-O2 ./configure --prefix=/usr --with-gtk2'

So assuming you do have expr installed (part of coreutils I believe), it looks either the su or the env is reseting your $PATH variable - perhaps some kind of default on Ubuntu. but su was also used in 0.8.5, so the env is the only new thing.

I'll see if I can reproduce this. In the meantime you can follow the instructions in README for creating a deb package, or you can use the self-extracting installer like this:

bash spacefm-0.8.6-installer.sh --prefix=/usr

which is equivalent to the 0.8.6 package.

IgnorantGuru commented 11 years ago

I just tried Bodhi Linux live 2.20 x64. Only problem I had installing spacefm_0.8.6-1_all.deb with dpkg was an error that it could not determine the non-root user. The reason for this is the 'bodhi' user had uid 999 while the build looks starting from 1000 (I'll adjust this in the next release). Creating another user solved that:

sudo useradd -u 1000 newuser

No sign of the expr error.

Here is what I installed before attempting to install spacefm:

sudo apt-get update
sudo apt-get install autotools-dev bash build-essential dbus desktop-file-utils libc6 libcairo2 libdbus-1-3 libglib2.0-0 libgtk2.0-0 libgtk2.0-bin libpango1.0-0 libstartup-notification0 libx11-6 shared-mime-info intltool pkg-config libgtk2.0-dev libglib2.0-dev fakeroot libstartup-notification0-dev libdbus-1-dev libudev0 libudev-dev

Some questions:

1) Are you still able to install spacefm_0.8.5-1_all.deb successfully?

2) Are you installing the deb file from the PPA, using dpkg, or another method?

3) Please show the output of:

which expr
su USERNAME -c 'env CFLAGS=-O2 env | grep ^PATH'

replacing USERNAME in the above command with a non-root username on your system.

If anyone else see this, please drop a 'me too' here and include your distro and install method - thanks.

konserw commented 11 years ago

Thank's for quick reply :)

1) no, dpkg gives me the same error, but i can stop it by ctrl+c. 2) i was installing it by apt from your ppa, then afeter your post from deb 3)

konserw@konserw:~$ which expr
konserw@konserw:~$ su konserw -c 'env CFLAGS=-O2 env | grep ^PATH'
Password:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
konserw@konserw:~$ id
uid=1000(konserw) gid=1000(konserw) groups=1000(konserw),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),110(sambashare),111(netdev),115(davfs2),117(vboxusers)

I've also tried installing spacefm-gtk3 with the same result. If you were able to install spacefm on the livecd without any problem it is likely i've broken my system and it's only my fault :P I'll try the installer.sh, hope it works because spacefm is the best ;)

EDIT: demn! same error with installer :/

konserw@konserw:~$ bash spacefm-0.8.6-installer.sh --prefix=/usr
Running configure:  ./configure --disable-pixmaps "--prefix=/usr"
./configure: line 477: expr: command not found
./configure.lineno: line 477: expr: command not found
./configure.lineno: line 477: expr: command not found
./configure.lineno: line 477: expr: command not found
./configure.lineno: line 477: expr: command not found
IgnorantGuru commented 11 years ago

Thanks for the info. Your system is missing expr in $PATH, which is highly unusual, so you won't be able to build most anything. You might see if it's installed at all:

locate expr

Normally that's part of the coreutils package. 'which expr' should return a path like '/usr/bin/expr'.

konserw commented 11 years ago

i had no expr on my system, which is wierd since i had coreutils installed. Reinstalation of coreutils helped. Tahnk you very much.