calthax / codeslayer

Automatically exported from code.google.com/p/codeslayer
GNU General Public License v3.0
0 stars 0 forks source link

No set prefixlib correctly in fedora 64-bit, and does not detect the library, and so, can not install plugins #35

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Install Codeslayer.
./configure --prefix=/usr
make && sudo make install

When install see this:
"test -z "/usr/lib/pkgconfig" || /bin/mkdir -p "/usr/lib/pkgconfig"
 /usr/bin/install -c -m 644 codeslayer.pc '/usr/lib/pkgconfig'"

..and effectively codeslayer.pc is instaled in '/usr/lib/pkgconfig' and 
codeslayer.so in /usr/lib

When try to install any codeslayer plugin, ./configure return "No package 
'codeslayer' found"

What is the expected output? What do you see instead?

Expect that install this files in /usr/lib64/pkgconfig/ and /usr/lib64, and in 
this way are correctly detected.

What version of the product are you using? On what operating system?
All Codeslayer versions.
Fedora 14 and 15- 64bits

Please provide any additional information below.
This is because fedora separate libraries from /usr/lib and /usr/lib64. Not so 
all distributions.

Regards.
And Thanks to all.
Matias

Original issue reported on code.google.com by mati8...@gmail.com on 20 Sep 2011 at 11:01

GoogleCodeExporter commented 9 years ago
Do you put a prefix when you install the plugin?

./configure --prefix=/usr

Original comment by jeff.johnston.mn@gmail.com on 20 Sep 2011 at 11:46

GoogleCodeExporter commented 9 years ago
Yes..
Also use ./configure --prefix=/usr to complile the plugin.

But --prefix set where install the binary, not the libraries.

This happens with several libraries. But particularly in Fedora. No in other 
distributions like debian, because /usr/lib64 is a link to /usr/lib (These are 
the same!). But in fedora are two different folders.

Also see this... 
http://www.mail-archive.com/boost-cmake@lists.boost.org/msg00587.html . It's 
another example..

Regards.

Original comment by mati8...@gmail.com on 21 Sep 2011 at 12:03

GoogleCodeExporter commented 9 years ago
Soo sorry..

Searching a little more on the Internet found this:

Compiling codeslayer with this: ./configure --prefix=/usr --libdir=/usr/lib64

.. when compile the plugin is detected correctly.

So, my bug is invalid!.

Thanks to all.
I really appreciate your work, because use it to programming pragha.

Regards.
Matias.

p.s. Maybe you should add this to the wiki

Original comment by mati8...@gmail.com on 21 Sep 2011 at 12:14

GoogleCodeExporter commented 9 years ago
mmm..
Sorry..
Now detect the library, compile the plugins, but when try to install it return 
the atached..
And codeslayer never found the instaled plugin. :S

Original comment by mati8...@gmail.com on 21 Sep 2011 at 12:34

Attachments:

GoogleCodeExporter commented 9 years ago
Your timing is really great!  For the first time I am moving from Ubuntu to 
Arch Linux. I have the same problem I see! I am still getting my desktop 
configured and did not install the plugins yet. When I saw your post I tried it 
out and got the same thing.

To find the pkgconfig I just put in an export variable (yours would look 
different). 

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

For the next problem I see the problem, but not the solution yet. In Ubuntu the 
sudo command was keeping the home variable the same as the user that ran sudo. 
Apparently in Fedora and Arch that is not the case.

See, in your top level Makefile.am file you have this line:

install-data-hook:
    cp ctags.codeslayer-plugin $(HOME)/$(CODESLAYER_HOME)/plugins

I can tell from both of our outputs that home is being set to the root home, 
which is not what we want. The quick and dirty way is to swap out the $(HOME) 
to the real path. I am seeing what it takes to change it with sudo.

Original comment by jeff.johnston.mn@gmail.com on 21 Sep 2011 at 1:12

GoogleCodeExporter commented 9 years ago
OK. I figured it out. I updated my sudo command to keep the HOME environmental 
variable of the user that kicked off the command.

From these docs:

https://wiki.archlinux.org/index.php/Sudo#sudoers_default_file_permissions

Using visudo I added the following line:

Defaults env_keep += "HOME"

Original comment by jeff.johnston.mn@gmail.com on 21 Sep 2011 at 2:40

GoogleCodeExporter commented 9 years ago
I updated the docs...thank you for posting the error!

http://code.google.com/p/codeslayer/wiki/HowToInstallPlugin

Original comment by jeff.johnston.mn@gmail.com on 21 Sep 2011 at 2:56

GoogleCodeExporter commented 9 years ago
Wow..
Thanks..

For me is more elegant configure codeslayer in this way: ./configure 
--prefix=/usr --libdir=/usr/lib64 , At least in Fedora 64bit that "formally" 
only using this directory.

No test export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig, but by logic it should 
work and is a more generic solution.

Well.. Thanks and Regards.
Matias.

Close the issue..

Original comment by mati8...@gmail.com on 21 Sep 2011 at 1:23

GoogleCodeExporter commented 9 years ago
No problem! Glad that you are finding CodeSlayer useful :).

Original comment by jeff.johnston.mn@gmail.com on 21 Sep 2011 at 2:47