chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Building Chicken on x86_64 system: all well


From: Kon Lovett
Subject: Re: [Chicken-users] Building Chicken on x86_64 system: all well
Date: Tue, 25 Jul 2006 09:13:15 -0700

On Jul 25, 2006, at 8:18 AM, Brandon J. Van Every wrote:

John Cowan wrote:
Brandon J. Van Every scripsit: 
<snip>
 

I'm unfamiliar with LD_LIBRARY_PATH issues, being a Windows guy.  The CMake 2.4.2 documentation doesn't even mention it.  It does talk about RPATH, and there have been lotsa posts on the CMake list lately about RPATH.  Someone else will have to chase this one down, as unless Cygwin imitates this stuff, I have no way of testing it and I don't really want to learn it anyways.  The CMake mailing list archives may be useful.  It has no inherent archive search, but you can do a Google search on site:http://public.kitware.com/pipermail/cmake/



Is the install location of a linked library different from the build location of that library? (Probably yes.) If the -L location of a library linked to a chicken executable at build time changes at install time then LD_LIBRARY_PATH will be necessary to find the library at the installed location.

Possibly use '-rpath' which will set the eventual install location of the library or add the pathname to the runtime library search path of an executable.

(FYI: -rpath is a libtool arg for specifying the runtime path for a library at link time. It sets the search path for a library or executable. Looks like the CMake *_RPATH stuff is their mechanism for passing this information on to the linker, and not a real environment variable like LD_LIBRARY_PATH. '-R' is similar to -rpath but adds the pathname to the library's dependecies, it doesn't say where the library will actually be installed, as -rpath does.)

Sorry, I haven't been following the CMake discussion too closely so forgive me if the above is well known by now.

2) chicken-setup needs to be run by root.    
I don't think you want to give -setup special permissions. Certainly I don't think setting the owner/group to root, for example, is good idea.

The need to run -setup as root probably stems from its desire to write into a directory for which it doesn't  have permission. Ex: Trying to write into '/usr/local/lib' which is most likely owned by 'root' and w/o world write permission. Unless the programming attempting the write is run as if the user is 'root' then the write attempt will fail.

I know you want direction on what to set in the CMake build. But on a properly setup unix system an attempt by a user mode (non-privileged) program to modify a public directory will (and should) fail. Installation of executables in public areas is a sysadmin task.

Perhaps '/usr/local/lib/chicken' can be made w/ wider permissions. This would still rqr to run the 'mkdir' & 'chmod' as root but -setup could then run as a normal user.

Or just not install chicken into a shared area. Create a new one where the user has permissions, like, say, $HOME. (Probably not what most people want, but it is safe.)

(What I did was modify the permissions of /usr/local/* to indicate myself as owner, so installation of 3rd-party stuff is easy. I do not suggest this, very bad security protocol.)
 

What permissions should it have?  The CMake documentation does talk about permissions for the INSTALL function.  "PERMISSIONS arguments specify permissions for installed files. Valid permissions are OWNER_READ, OWNER_WRITE, OWNER_EXECUTE, GROUP_READ, GROUP_WRITE, GROUP_EXECUTE, WORLD_READ, WORLD_WRITE, WORLD_EXECUTE, SETUID, and SETGID. Permissions that do not make sense on certain platforms are ignored on those platforms."

Does anything other than chicken-setup need particular permissions?


Cheers,
Brandon Van Every


_______________________________________________
Chicken-users mailing list

Attachment: PGP.sig
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]