Re: just a friendly request

"Lucas C. Villa Real" <[email protected]>
Newsgroups gmane.linux.distributions.gobo.general
Message-ID <CAAvzgta_xAWsdP2cdL1se9-20VkbdVTAKiTLGivnCP_5GxBd4w@mail.gmail.com>
On Wed, Feb 17, 2016 at 6:48 AM, Sergio Tortosa Benedito <[email protected]
> wrote:

> Excuse me, but I'm amazed, really! This awesome. Yet, let me ask how this
> differentiates from Limba, and why not take something already made and
> something which gobo can share?
>
Hi, Sergio!

Thank you. In fact, it was your post from a while ago that made me look
into Limba -- I appreciate that.

Having said that, there are many differences in the way Limba manages
packages and the way GoboLinux does. For instance, while Limba uses
AppStream metadata to get information about a certain package (which is
described in an XML document), GoboLinux uses its own package structure
along with its Resources directory to achieve that. Also, we have several
scripts that were already implemented on Gobo (such as the Dependencies
file parser and the GuessLatest utility). Besides, I personally didn't like
much the fact that Limba's original code depended on GLib, which prompted
me to create a minimal implementation based on some of Limba core routines
that fitted Gobo well.

Regards,
Lucas



> El 17/2/2016 2:25, "Lucas C. Villa Real" <[email protected]> escribió:
>
>> On Tue, Feb 16, 2016 at 4:44 PM, kenneth marken <[email protected]>
>> wrote:
>>
>>> On 16. feb. 2016 12:10, Lucas C. Villa Real wrote:
>>>
>>>> Greetings,
>>>>
>>>> I have been wanting for a while to make an announcement that directly
>>>> relates to your question, but didn't do it yet because first I wanted to
>>>> release a new version of the kernel recipe so that users could test this
>>>> new feature. Anyhow, let me explain to you how it works.
>>>>
>>>> In GoboLinux, each program's dependencies are listed under
>>>> /Programs/AppName/AppVersion/Resources/Dependencies. That file has a
>>>> syntax
>>>> that looks like this:
>>>>
>>>>    DepName1
>>>>    DepName2 Version
>>>>    DepName3 >= Version
>>>>    DepName4 >= Version1, <= Version2
>>>>
>>>> In the first line, we're simply stating that DepName1 must be present in
>>>> the system. In the second, we know for sure that the program will work
>>>> if
>>>> the system has that particular Version of DepName2 installed. The third
>>>> and
>>>> fourth lines state that as long as a particular range of dependencies
>>>> are
>>>> installed, the program will do all right. We have a parser for the
>>>> Dependencies file that identifies which version of installed
>>>> libraries/programs match the requirements.
>>>>
>>>> Having this background in mind, there's a new GoboLinux tool called
>>>> Runner.
>>>> Runner uses that Dependencies parser to figure out which packages are
>>>> needed for a specific program. It then creates a private namespace for
>>>> that
>>>> program (cloning the current namespace) and creates an overlay mount on
>>>> top
>>>> of that namespace containing links to all returned dependencies'
>>>> entries at
>>>> /Programs. Using the same example as above, when you invoke 'Runner
>>>> program_name', you will end up with a virtual /System/Index/lib that
>>>> looks
>>>> like this:
>>>>
>>>> /System/Index/lib (usual contents)
>>>> + /Programs/DepName/Current/lib
>>>> + /Programs/DepName2/Version/lib
>>>> + /Programs/DepName3/Version
>>>> + /Programs/DepName4/Some_version_between_1_and_2
>>>>
>>>> Of course, /lib, /usr/lib, and /usr/local/lib are all symlinks to
>>>> /System/Index/lib, so the private namespace will be reflected on these
>>>> paths too.
>>>>
>>>> The way I see it, the approach used by Runner is more elegant than
>>>> modulefiles and LD_LIBRARY_PATH tweaks, as the shell environment of the
>>>> caller does not need to be changed. It is also possible to run programs
>>>> whose dependencies are completely detached (or disabled) from
>>>> /System/Index/lib.
>>>>
>>>> Runner needs at least Linux 4.0.0 to run, as it depends on the overlay
>>>> filesystem. I should release a new recipe for that kernel in the coming
>>>> days so that users can try it out and report their findings. The source
>>>> code for the tool is on github at https://github.com/gobolinux/Scripts.
>>>>
>>>> Lucas
>>>>
>>>>
>>> Inspired by Nix i take it?
>>>
>>>
>> I actually got inspiration from the Limba project and from Hisham's
>> ViewFS.
>>
>> Lucas
>>
>> _______________________________________________
>> gobolinux-users mailing list
>> [email protected]
>> http://lists.gobolinux.org/mailman/listinfo/gobolinux-users
>>
>>
> _______________________________________________
> gobolinux-users mailing list
> [email protected]
> http://lists.gobolinux.org/mailman/listinfo/gobolinux-users
>
>


-- 
Lucas
"If you're looking for a reason I've a reason to give: pleasure, little
treasure"

_______________________________________________
gobolinux-users mailing list
[email protected]
http://lists.gobolinux.org/mailman/listinfo/gobolinux-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.