From: <u-l...@ae...> - 2012-08-09 14:01:22
|
Hello Andrej, On Thu, Aug 09, 2012 at 02:21:15PM +0300, Andrej N. Gritsenko wrote: > So I would like to make it such way that pkgconfig/autotools aren't > mandatory to use libfm anymore but preserve versioning at the same time. > And make it not by Gnome way but the way all other products do it (for > example: Linux kernel; Tcl; Libpng; Python; etc.) - i.e. install path > have the version but actual path is symlink to versioned path and user > I want opinions from all of you. What do you think? Do you have any > objections on that? You quite possibly did not mean to hear my opinion (it is too far from the traditional way of thinking/acting) but for the completeness sake: I feel that the person building a piece of software should have a straightforwad way of choosing the set of [not only] versions [but also instances] of each resource (dependency) which is needed for building. There are many ways of "implicitely" choose the desired set of versions (ususally not instanses though). Most of them are host-centric like the approach you describe (symlinks under /usr/something). I appreciate pkgconfig because at the very least it allows to have one's private PKG_CONFIG_PATH and explicitely supply the corresponding config files. While this is far from elegant, this is at least general and straightforward (as long as it is used consequently, not mixed with other, "guesswork" approaches like "what is present in /usr/local/*, then /usr/*" or similar...). My opinion: host-centric ways of choosing the versions [don't forget instances also] are inherently incomplete, error-prone and broken. Sorry, I see all approaches which use host-bound symlinks or alikes (say, the Debian "alternatives" system) as mere hacks. Each user should be able to choose her own alternatives set independently of the actual computer (i.e. the choice should follow the user from host to host, exactly like all the software the user is interested in). I know that the traditional packaging systems are not designed for this but this does not mean they do the right thing. pkgconfig is not the best possible tool and it is overdesigned and can be misused, but it is - sufficiently flexible to be general - _can_ be used consequently and securely That is my opinion. It is a general point of view, not any practical advice. [free]desktop[.org] specifications and the corresponding implementations often assume implicitely that all the interacting modules/daemons would be compiled with the same options/paths, specific for a certain host setup. As an example of this - client side OpenGL rendering in X11, the client libraries must be compiled in the same environment as the X11 server, which is not dictated by the concept but by the implementation approach. Thus I guess while compiling a piece of a desktop software you are bound by the choices made by someone else - which headers (and sometimes even compilers) are to be used to be interoperable. Then there is no solution beyond either all of the parties following exactly the same conventions, or yourself explicitely specifying all the resources and consciously checking that your choice does not break interoperability. In my eyes you try to do "something in between" and hope for the best. With all my sympathy, I do not believe your approach will do "better" than the zillions other approaches which different people argued for at different times. Good luck though. If you want to know what I do treat as a "better" approach to compilation and version management: it is software which is not bound to a single host, but available on every host, as shown on www.aetey.se. This implies a certain (and consequent) way of doing the compilation and preparation for running. Note that there is no public SDK there (yet) while I feel there should be one. I think also it would be nice to put LXDE on a free instance of 0lse/dapty. It is the SDK which is "the answer to how this should be done". It is there - it is just not public and it is quite a lot of work to make it public. If anybody feels interested or wants to be involved, just let me know. Oh btw 0lse/dapty is perfectly suited to be used by "cherrypicking" any part(s) of it, like LXDE is meant to be. Cheers, Rune |