Missing 64 bits installation script

Asked by The Techie on 2009-12-18

I tried to install gnomenu, but, after the make install, there was no "add to panel - gnomenu" in my menu.
So, I checked the makefile, and I noticed that the installation dir there is no "alternative" option for 64 bits systems, since those uses lib64 instead of lib for bonobo server and such.

Tried to install very manually gnomenu but no luck.

So my question is, how to install gnomenu on 64 bits gnome?

PS: Running mandriva 64 bits 2010 (the mandriva packages are not accessible ¬.¬)

Question information

English Edit question
GnoMenu Edit question
No assignee Edit question
Solved by:
The Techie
Last query:
Last reply:
Helder Fraga (whise) said : #1

i have very litle knowledge of 64 bit apps , however i think that renaming lib to lib64 on all files should do it

The Techie (the-techie) said : #2

Well, in a matter of fact I tried that but no luck at all...

The Techie (the-techie) said : #3

Ok, tried to run gnomenu in window mode to see what happens.
Well, in a matter of fact it says there is an error loading configuration server or something of the sort...
What can be missing?
I've tried to meet all dependencies the best I could (since most of them don't have that name in mandriva).

PS: If you have access to mandriva packages, could you post here what are the packages needed in mandriva in order to meet dependencies?

The Techie (the-techie) said : #4

Well, this is very weird...
Now I've executed the python gnomenu-py run-in-window and worked!
Guess a little restart did the job...
Still, I cannot find gnomenu on gnome applets.
I will check how files are installed and then I'll report back

The Techie (the-techie) said : #5

K, finished fetching installed files and tests.

I ran Gnome.py from the /usr/bin folder with the run-in-window command and everything is ok, not a single dependency not met or any missing files (unless it is not supposed to report back).

I've checked every folder that is supposed to contain the Gnomenu files (/etc/gnomenu, /usr/share/gnomenu, /usr/lib64/bonobo/servers, /usr/bin and /usr/lib64/gnomenu) and seems everything is in place!

Still, I've checked a little of the source code and seems that are lines like this:
#Run ="/usr/lib/gnomenu/Gnome_run_dialog.py"

Maybe this is also part of the cause?

Helder Fraga (whise) said : #6

thats strange indead, it looks like the .server file is not behind found

#Run ="/usr/lib/gnomenu/Gnome_run_dialog.py" doesnt matter because its commented.

maybe in 64 the panel looks for .server files in another directory

please post the content of the file in your /usr/lib64/bonobo/servers folder

The Techie (the-techie) said : #7

there you go:

Bonobo_CosNaming_NamingContext.server GNOME_DictionaryApplet.server GNOME_MixerApplet.server
Bonobo_Moniker_std.server GNOME_DockBarXApplet.server* GNOME_Moniker_std.server
Bonobo_Sample_Controls.server GNOME_DriveMountApplet.server GNOME_MultiLoadApplet_Factory.server
Bonobo_Sample_Echo.server GNOME_Evolution_DataServer_1.2.server GNOME_NotificationAreaApplet.server
CanvDemo.server GNOME_FishApplet_Factory.server GNOME_NullApplet_Factory.server
Deskbar_Applet.server GNOME_GeyesApplet.server GNOME_Panel_TrashApplet.server
DwellClick_Factory.server GNOME_GnoMenu.server* GNOME_Panel_WirelessApplet.server
GNOME_AccessxStatusApplet.server GNOME_Gok.server GNOME_Speech_SynthesisDriver_Espeak.server
GNOME_BattstatApplet.server GNOME_GtikApplet.server GNOME_StickyNotesApplet.server
GNOME_BrightnessApplet.server GNOME_GWeatherApplet_Factory.server GNOME_Wncklet_Factory.server
GNOME_CDPlayerApplet.server GNOME_InhibitApplet.server Invest_Applet.server
GNOME_CharpickerApplet.server GNOME_KeyboardApplet.server PointerCapture_Factory.server
GNOME_ClockApplet_Factory.server GNOME_MailcheckApplet_Factory.server

As you can see, the bonobo server is there.
BTW tried to execute the sh file that starts gnomenu in the /usr/lib64/gnomenu folder, and, it works!
As you stated, it is the bonobo server itself that has an issue.
I'll check inside of the b server to see if I can find the issue.

PS: Don't mind the * in the end of the name of the b server, since dockbarx has the very same * in the end of the name, but works flawlessly (I had this similiar issue with dockbarx).

The Techie (the-techie) said : #8

K just digged inside the b server and edited some lines (with /usr/lib to /usr/lib64) but no joy....

The Techie (the-techie) said : #9

I quit what I said.

It is in the list of the b servers now!

But now I have a few more issues, like, menu appears sometimes in the middle of the screen, sometimes don't want to vanish and sometimes it locks down so hard that it does not pop up no matter what.

The Techie (the-techie) said : #10

K I've been tweaking a little bit around.

It seems that gnomenu itself does not gain access to prefs unless it is located in the /usr/lib folder.
And another thing, when the menu don't want to vanish with the super_l key, sometimes a little gnomenu.py window appears...

The Techie (the-techie) said : #11

After some package cleaning and a restart, seems that everything is normal. Thanks for your help!

PS: Although the problem itself is solved, it would be good that 64 bits versions are built in the future.
Keep in mind that:
- You have to edit the bonobo server;
- You have to edit the makefile in order to install to lib64 folder instead of lib;
-Inside your source code, ask to gnome which version is running at the moment, to make the more appropriated actions based on the architecture of the system (except Ubuntu, since the lib64 is nothing else than a link for the lib folder).

Helder Fraga (whise) said : #12

thank you for your persistence, im shure it will help others with the same issue, unfortunatly i dont make packages myself or know how to, also i dont know what the policy is for 64 bit packages , im i suposed to create a 64 port of my code or are package creators supposed to?

Helder Fraga (whise) said : #13

whise suggests this article as an answer to your question:
FAQ #863: “64 bits installation”.

The Techie (the-techie) said : #14

Well, the person who creates the program (the author or community) are the one(s) that should port the code (I think).
Still, since you have done something like gnomenu, this is nothing transcendent like that!
I mean, you have 2 options:
-Create a 64 bits specific version where you search for any /usr/lib path and replace it with /usr/lib64 (bonobo server, makefile and somewhere else inside your code are the places to look for);
-Create a "decision" inside the installation script that sees if the system is 32 or 64 bits and install the respective packages in the proper path (somehow a fancy way to distribute a multi-bit-platform package in a single one).

I'm not sure how to do that in the "fancy" way, but there must be articles somewhere that explains that (maybe you have to switch from the simple makefile to a bash or sh file).