[wsf-c-dev] [C] Adhering to FHS & use of LD_LIBRARYPATH]

Samisa Abeysinghe samisa at wso2.com
Fri Oct 5 22:31:04 PDT 2007


We seem to need one more change at Axis2/C level, that is to make the 
repo path compile time configurable. It is only runtime configurable at 
the moment.
That is a very simple fix anyway.

Thanks,
Samisa...

Samisa Abeysinghe wrote:
> I was looking into what needs to be done to move the logs to /var/opt 
> and also calling ldconfig form rpm spec file.
> There were some code changes required at Axis2/C level, to configure 
> the log file location at compile time. Earlier it was only 
> configurable at run time.
> I have fixed the code in Axis2/C and now we can configure the code to 
> write the log to where we want.
>
> So we are all set to create an RPM that adheres to FHS. SanjayaR is 
> working on the RPM spec file and we can hopefully have a test RPM 
> early next week.
>
> By the looks of it, I feel that we can easily implement the same for 
> deb packages as well.
>
> Thanks,
> Samisa...
>
> Hi All,
>
> Even though this closely applicable for the C development, I think 
> this still has some applicability to other technologies as well.
>
> Adhering to FHS
> ==========
> http://www.pathname.com/fhs/
>
> This has been designed to be used by Unix distribution developers, 
> package developers, and system implementers. So the software we 
> develop should be FHS friendly if we want it to be run in 
> larger/enterprise deployments.
>
> For example, /usr and /opt are treated as shareable static 
> directories. There for these directories can be mounted read-only and 
> shared across different systems to save storage. Only place you can 
> guarantee to have variable (dynamic) files is /var. Again except for 
> /var/run and /var/lock other directories under /var are shareable. 
> Also if we haven't integrated with a Linux distribution the only place 
> we can install our software is the opt hierarchy (/opt, /etc/opt, 
> /var/opt). There are designated directories to store executable, 
> libraries, configuration files, log files, etc.
>
> Will our software work under these conditions? Samisa is currently 
> evaluating this with Sanjaya R for the C stuff.
>
> LD_LIBRARYPATH
> ==========
> I have seen instances that we are depending on this. This is not 
> recommended except in development time.
> http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
>
> "LD_LIBRARY_PATH is handy for development and testing, but shouldn't 
> be modified by an installation process for normal use by normal users; 
> see ``Why LD_LIBRARY_PATH is Bad'' at 
> http://xahlee.org/UnixResource_dir/_/ldpath.html for an explanation of 
> why. But it's still useful for development or testing, and for working 
> around problems that can't be worked around otherwise"
>
> The recommended approach is to;
>
> At the end of the library installation if a conf file which has the 
> path to the library should be placed in /etc/ld.so.conf.d and the 
> command ldconfig should be executed. According to the man page the 
> path can be passed even in the command line but that will not survive 
> across an OS upgrade or another library installation. Also it is 
> stated that "ldconfig  creates, updates, and removes the necessary 
> links and cache (for use by the run-time linker, ld.so) to the most 
> recent shared libraries found... etc".
>
> I think this is a simple fix for the installation.
>
> Standard Distributions and third party libraries
> =============================
> Every Linux/Unix distribution comes with a very comprehensive set of 
> libraries. We should analyze these and have a very strong reason to 
> use some thing else when we are doing that. This give us a better 
> chance to survive across OS upgrades and reduce the level of coupling 
> we have with other libraries.
>
> Also I think we should think about providing proper RPMs, DEBs, etc 
> (and host them in repositories) so that installation tools can rightly 
> figure out the dependencies and provide a very smooth installation 
> experience. Ideally I should be able to start the server without 
> having to modify any thing soon after installing the software.
>
> One think I don't like is having to ship 100 third party libraries 
> (which takes up about 80% of the distribution) get a reasonable 
> application working. These packaging tools help us to overcome this 
> problem to a great extent.
>
> Thanks
> Sanjaya


-- 
Samisa Abeysinghe : WSO2 WSF/PHP
"http://wso2.org/projects/wsf/php?WSO2 Web Services Framework%2FPHP - Open source PHP extention for providing and consuming Web services in PHP"




More information about the Wsf-c-dev mailing list