[prev in list] [next in list] [prev in thread] [next in thread] 

List:       klik-devel
Subject:    Re: [klik-devel] klik-devel Digest, Vol 16, Issue 4
From:       "Jason Taylor" <killerkiwi2005 () gmail ! com>
Date:       2007-05-25 8:03:59
Message-ID: 94dd8f6f0705250103n191e77bfgf32e3c84d9772a75 () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi All

Been out of the loop for a while (new baby)... so probably will be for a
while longer :)

In regards to the ROX format i'm for reusing all we can, but striping out
anything that is duplicated in the desktop file (following the
freedesktop.org spec) (ie multilingual description). Add the minimum extra
that we need.

The reason for the multiple icon paths is so we could have different icons
sizes.  There may be a   better way to do this more like what gtk/gnome does
using different paths.

The "real" (as in goals) difference between 0install and klik2 I think is
dependency sharing as the klik philosophy is 1 app = 1 file.

Not much more to add other than has anybody heard from Probono lately I
notice nothing from him on the list, and the wiki is full of span that he
was cleaning up....

Killerkiwi


On 5/24/07, klik-devel-request@kde.org <klik-devel-request@kde.org> wrote:
>
> Send klik-devel mailing list submissions to
>         klik-devel@kde.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://mail.kde.org/mailman/listinfo/klik-devel
> or, via email, send a message with subject or body 'help' to
>         klik-devel-request@kde.org
>
> You can reach the person managing the list at
>         klik-devel-owner@kde.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of klik-devel digest..."
>
>
> Today's Topics:
>
>    1. Re: klik-devel Digest, Vol 15, Issue 8 (Thomas Leonard)
>    2. Re: klik-devel Digest, Vol 15, Issue 1 (Thomas Leonard)
>    3. Re: klik-devel Digest, Vol 15, Issue 8 (lionel.tricon@free.fr)
>    4. Re: klik-devel Digest, Vol 15, Issue 1 (lionel.tricon@free.fr)
>    5. Re: klik-devel Digest, Vol 15, Issue 1 (Thomas Leonard)
>    6. Re: klik-devel Digest, Vol 15, Issue 1 (Lionel Tricon (perso))
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 23 May 2007 19:10:22 +0100
> From: Thomas Leonard <talex5@gmail.com>
> Subject: Re: [klik-devel] klik-devel Digest, Vol 15, Issue 8
> To: klik-devel@kde.org
> Message-ID: <4654838E.7050907@gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Lionel Tricon wrote:
> > > Ok, the following is an attempt to merge the rox file format with all
> needed
> > > information to run the binary from the cmg file (to be honest, with
> some
> > > rework of the original format ...).
>
> Why change it at all? Extra elements can be added easily, and there's no
> point renaming existing elements just for the sake of it. e.g. (starting
> at the top of your example):
>
> - You don't really need the maintainer name because it's in the signature.
> - You don't need the encoding, because it's in the XML declaration.
> - You don't need the version on the name, because it comes later on the
>   <implementation>.
> - I don't see the point in redefining <category>. Putting English text
>   in it just means more translation work.
> - You don't need <license> because it comes later already.
> - <desktop> is OK, but it should be a relative path inside the download
>   (and it should be an attribute of the implementation, because it might
>   move between versions)
> - Why change <icon>'s href from a URL to a local path?
>   - Adding a size attribute is fine, though.
> - Grouping <icon> inside <icons> isn't unreasonable, but it breaks the
>   existing format for no good reason (same for some other places).
> - You don't need <implementations> because there's already <group>
> - You don't need 'required' because there's already a <requires> element
> - You don't need <post>; it already exists as <recipe>
> - <action> may be useful.
> - You don't need <runtime> because it already exists as 'main'
> - You don't need <env> because <environment> already exists.
>   - The 'mode' attribute is useful, though.
>
> >> >> YES. we should use the ROX format... main advantage is the tools
> that
> >> >> already exist that we can borrow from zero-install with 90% of the
> work is
> >> >> already done
>
> Note that Zero Install is not part of ROX, although ROX happens to use it.
>
>
> --
> Dr Thomas Leonard               http://rox.sourceforge.net
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 23 May 2007 19:31:50 +0100
> From: Thomas Leonard <talex5@gmail.com>
> Subject: Re: [klik-devel] klik-devel Digest, Vol 15, Issue 1
> To: klik-devel@kde.org
> Message-ID: <46548896.6000303@gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> lionel.tricon at free.fr wrote:
> > Selon Jason Taylor <killerkiwi2005 at gmail.com>:
> >> More random thoughts... should we approach the guy(s?) who wrote zero
> >> install about merging the 2 techniques... really what we are doing is
> >> creating zero install into a single file and making it executable...
> the
> >> projects seem (to me any way) very similar at this point.
> >
> > I never used zeroinstall but in my understanding the software need to be
> modify
> > to support 0install
>
> Software such as Firefox, Blender, Inkscape etc doesn't need to be
> modified. Programs which uses hard-coded paths do (there's no
> "intellipatch" step like with Klik).
>
> > and it seems that it needs a kernel module (lazyfs) ?
>
> lazyfs hasn't been used since 2005. No kernel patching (or even root
> access) is needed.
>
> > Except the xml file description which seems interresting to reuse, it's
> not
> > obvious for me that that kind of software brings something new to the
> klik
> > model.
>
> There's a list of differences on the site:
>
>   http://0install.net/links.html
>
> > If someone can explain me how it works, it would be great because the
> website is
> > not very clear ...
>
> Well, it works a lot like Klik really ;-) Probably easiest just to try
> it though. If you're on Ubuntu (feisty), type:
>
>   $ sudo apt-get install zeroinstall-injector
>
> (or use 'yum' on Fedora, etc. If your distro doesn't include it yet,
> packages are at http://0install.net/injector.html)
>
> Then run something, e.g.:
>
>   $ 0launch http://rox.sourceforge.net/2005/interfaces/ROX-Filer
>
>
> --
> Dr Thomas Leonard               http://rox.sourceforge.net
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>
>
> ------------------------------
>
> Message: 3
> Date: Wed, 23 May 2007 23:09:11 +0200
> From: lionel.tricon@free.fr
> Subject: Re: [klik-devel] klik-devel Digest, Vol 15, Issue 8
> To: Thomas Leonard <talex5@gmail.com>
> Cc: klik-devel@kde.org
> Message-ID: <1179954551.4654ad77a32cf@imp.free.fr>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hi Thomas,
>
> I read your email with a lot of interrest. Thank you for your detailed
> comments.
> To be honest, i agree with a lot of them :-) Especially for those about
> renaming
> existing elements ...
>
> But keep in mind that in the klik2 model, the application is virtually
> installed
> into the filesystem. Even if my changes were not really useful, it was
> just a
> proposal and it was not in my intention to deeply change the rox file
> format.
>
> In the klik2 model, you need :
> - to know how to run the application : that's the raison of the <runtime>
> area
> - to display an icon when the cmg file is located on the desktop or
> wherever you
> want : that's why i put a local path since it gives the location of the
> icon
> into the cmg file (a way to extract it)
> - to give the path of the .desktop file (we can imagine a situation where
> you
> can installed the cmg file onto the disk). It's not mandatory but it's
> just an
> idea
> - to display meta-data (for example, the summary of the application) in
> different languages
> - to know how to build the cmg file (list of packages, actions to apply
> just
> before building the cmg file) : that's the raison of the <action> tags
>
> If the rox file format can be slightly modified to propose all these
> informations (except if i am totally wrong, some of them were missing), i
> will
> be very happy. My first intention was to brainstorm about the cmg file
> format
> and propose some enhancements.
>
> I am not an fundamentalist and my concern is only to dispose of a rox file
> format that can fit our need in a near future.
>
> Lionel
>
>
> ------------------------------
>
> Message: 4
> Date: Wed, 23 May 2007 23:26:36 +0200
> From: lionel.tricon@free.fr
> Subject: Re: [klik-devel] klik-devel Digest, Vol 15, Issue 1
> To: Thomas Leonard <talex5@gmail.com>
> Cc: klik-devel@kde.org
> Message-ID: <1179955596.4654b18caf00c@imp.free.fr>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Selon Thomas Leonard <talex5@gmail.com>:
> > Software such as Firefox, Blender, Inkscape etc doesn't need to be
> > modified. Programs which uses hard-coded paths do (there's no
> > "intellipatch" step like with Klik).
>
> Klik2 (well, next version of klik) doesn't need to change absolute path.
> For the
> current version of klik, you have to.
>
> > lazyfs hasn't been used since 2005. No kernel patching (or even root
> > access) is needed.
>
> ok
>
> > Well, it works a lot like Klik really ;-)
>
> My impression is that 0install is close to the current klik
> implementation.
>
> Klik2 will add some major improvements :
> - union mounting : virtualize the application into the filesystem (only
> from the
> application point of view)
> - sand boxing feature : allows you to test an application without changing
> the
> local filesystem or put the modifications into a directory or a file
> (loopback
> mounting)
> - no need to modify absolute paths : the application is unmodified
>
> But i agree that 0install propose some interesting features (security,
> dynamic
> linking, ...). And klik2 could be almost plateforme independent if you
> consider
> that fuse is available as well on *bsd, mac, ... it's not perfect, but
> it's
> better than nothing :-)
>
> Lionel
>
>
> ------------------------------
>
> Message: 5
> Date: Wed, 23 May 2007 22:59:08 +0100
> From: "Thomas Leonard" <talex5@gmail.com>
> Subject: Re: [klik-devel] klik-devel Digest, Vol 15, Issue 1
> To: klik-devel@kde.org
> Message-ID:
>         <cd53a0140705231459u63f4411bu380dd28bbe47d778@mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> On 5/23/07, lionel.tricon@free.fr <lionel.tricon@free.fr> wrote:
> > My impression is that 0install is close to the current klik
> implementation.
> >
> > Klik2 will add some major improvements :
> > - union mounting : virtualize the application into the filesystem (only
> from the
> > application point of view)
>
> Sounds good... but can we separate this from the installation system?
>
> e.g.:
>
> - We have a package ('abiword')
> - It depends on another package ('klik-union-fs')
>
> Now, when I do:
>
> $ 0launch http://.../abiword.xml
>
> Abiword runs in a new namespace (provided by klik-union-fs). Just as
> Python programs need a Python interpreter to run, Abiword needs the
> Klik union system (though actually Abiword doesn't need it because
> it's relocatable; it already works through normal Zero Install).
>
> > - sand boxing feature : allows you to test an application without
> changing the
> > local filesystem or put the modifications into a directory or a file
> (loopback
> > mounting)
> > - no need to modify absolute paths : the application is unmodified
>
> Again, that sounds useful, but possibly for other programs too (e.g.
> programs installed using apt-get). Will you be supporting multiple
> 'profiles' per program? e.g.
>
> $ klik-create-profile abifoo http://.../abiword.xml
> $ klik-create-profile abibar http://.../abiword.xml
> $ abifoo
> $ abibar
>
> (where changes made in abifoo don't affect abibar).
>
> > But i agree that 0install propose some interesting features (security,
> dynamic
> > linking, ...). And klik2 could be almost plateforme independent if you
> consider
> > that fuse is available as well on *bsd, mac, ... it's not perfect, but
> it's
> > better than nothing :-)
>
>
> --
> Dr Thomas Leonard               http://rox.sourceforge.net
> GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
>
>
> ------------------------------
>
> Message: 6
> Date: Thu, 24 May 2007 10:02:09 +0200
> From: "Lionel Tricon (perso)" <lionel.tricon@free.fr>
> Subject: Re: [klik-devel] klik-devel Digest, Vol 15, Issue 1
> To: klik-devel@kde.org
> Message-ID: <46554681.7060706@free.fr>
> Content-Type: text/plain; charset=ISO-8859-1
>
> Thomas Leonard a ?crit :
> > Sounds good... but can we separate this from the installation system?
> >
> Not sure i understand what you mean by "separate this from the
> installation system". In fact there are several virtualization solution
> for klik2 available and my solution (fuse based only) is one of them
> (maybe not the best one but the only workable for the moment). In
> details, i patched fuseiso and fusecramfs to merge to real filesystem
> with the filesystem located into an iso or cramfs file. When i mount
> such a filesystem on a directory (for example /tmp/app/1/mnt), i use a
> fake chroot (based on the LD_PRELOAD feature) to put the merged
> filesystem into a jail. The application run into the virtual namespace
> whereas the application files are not really installed on disk.
>
> The example below show you quickly how it works to execute an
> application located into a cmg file :
>
> # mkdir -p /tmp/app/1/mnt
> # ln -s ~path/fichier.cmg /tmp/app/1/image
> # /opt/klikutils/bin/fuse[iso|cram] -n -u /opt/klikutils
> /tmp/app/1/image /tmp/app/1/mnt
> # export KLIK_BASENAME=/opt/klikutils
> # export FAKECHROOT_EXCLUDE_PATHS=/tmp:/proc:/dev:/var/run
> # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${KLIK_BASENAME}/lib/fakechroot
> # export LD_PRELOAD=$LD_PRELOAD:libfakechroot.so
> # ${KLIK_BASENAME}/bin/chroot /tmp/app/1/mnt
> <run the application>
> # exit
> # /opt/klikutils/bin/fusermount -u /tmp/app/1/mnt
> # rm -f /tmp/app/1/image
> # rmdir /tmp/app/1/mnt/
> # rmdir /tmp/app/1
>
> And remember that in the klik model, 1 app == 1 file. A cmg package
> cannot depends of an another cmg package. Each one run in its own
> namespace.
>
> With all of that, you do not need to relocate the application al all.
> > Again, that sounds useful, but possibly for other programs too (e.g.
> > programs installed using apt-get). Will you be supporting multiple
> > 'profiles' per program? e.g.
> >
> When you run fuseiso or fusecram, you can redirect the modification into
> a directory. It works for the application located into the cmg file as
> well for all applications available on disk (there are no difference
> between both, you run what you want, real application or virtualized
> application ; you can fuse mount an empty cmg file and launch a real
> application without any troubles). To be accurate, only the $HOME of the
> user is concerne (it's by design and can be changed easily). I consider
> that a normal user will only modify it's private directory, not other
> part of the root filesystem.
>
> So, you can put modifications into an usb key or into a file mounted in
> loopback (we can use mountlo which is fuse-based for that).
>
> Again, i don't know exactly what you mean by "multiples profiles" but i
> guess that yes since you can redirect each time data in a new location.
> For the moment, the backend is ready but nothing is done to integrate it
> for the end user ; the engine is ready but not the frontend !
>
> Just an example. The following make a union between the root directory
> and the filesystem present into the test.cmg file (the new directory
> will be available into the /tmp/app/1/mnt filesystem). The -b option
> redirect writes from the $HOME user into the /tmp/test directory.
>
> You have just to put the /tmp/app/1/mnt directory into a jail from the
> application point of view and you can run it (since fuse do not support
> by design special files and suid bits, we exclude from the jail some
> directories like /tmp, /proc, /dev and /var/run to allow direct access
> on them).
>
> # /opt/klikutils/bin/fuseiso -n -u /opt/klikutils -b /tmp/test
> /home/lionel/Desktop/test.cmg /tmp/app/1/mnt
>
> That's how it works,
> Lionel
>
>
> ------------------------------
>
> _______________________________________________
> klik-devel mailing list
> klik-devel@kde.org
> https://mail.kde.org/mailman/listinfo/klik-devel
>
>
> End of klik-devel Digest, Vol 16, Issue 4
> *****************************************
>

[Attachment #5 (text/html)]

Hi All<br><br>Been out of the loop for a while (new baby)... so probably will be for \
a while longer :)<br><br>In regards to the ROX format i&#39;m for reusing all we can, \
but striping out anything that is duplicated in the desktop file (following the  <a \
href="http://freedesktop.org">freedesktop.org</a> spec) (ie multilingual \
description). Add the minimum extra that we need.<br><br>The reason for the multiple \
icon paths is so we could have different icons sizes.&nbsp; There may be \
a&nbsp;&nbsp; better way to do this more like what gtk/gnome does using different \
paths. <br><br>The &quot;real&quot; (as in goals) difference between 0install and \
klik2 I think is dependency sharing as the klik philosophy is 1 app = 1 file.&nbsp; \
<br><br>Not much more to add other than has anybody heard from Probono lately I \
notice nothing from him on the list, and the wiki is full of span that he was \
cleaning up.... <br><br>Killerkiwi<br><br><br><div><span class="gmail_quote">On \
5/24/07, <b class="gmail_sendername"><a \
href="mailto:klik-devel-request@kde.org">klik-devel-request@kde.org</a></b> &lt;<a \
href="mailto:klik-devel-request@kde.org"> klik-devel-request@kde.org</a>&gt; \
wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, \
204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Send klik-devel mailing \
list submissions to<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a \
href="mailto:klik-devel@kde.org">klik-devel@kde.org</a><br><br>To subscribe or \
unsubscribe via the World Wide Web, \
visit<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a \
href="https://mail.kde.org/mailman/listinfo/klik-devel">https://mail.kde.org/mailman/listinfo/klik-devel
 </a><br>or, via email, send a message with subject or body &#39;help&#39; \
to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a \
href="mailto:klik-devel-request@kde.org">klik-devel-request@kde.org</a><br><br>You \
can reach the person managing the list \
at<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a \
href="mailto:klik-devel-owner@kde.org">klik-devel-owner@kde.org</a><br><br>When \
replying, please edit your Subject line so it is more specific<br>than &quot;Re: \
Contents of klik-devel digest...&quot;<br><br><br>Today&#39;s Topics: \
<br><br>&nbsp;&nbsp; 1. Re: klik-devel Digest, Vol 15, Issue 8 (Thomas \
Leonard)<br>&nbsp;&nbsp; 2. Re: klik-devel Digest, Vol 15, Issue 1 (Thomas \
Leonard)<br>&nbsp;&nbsp; 3. Re: klik-devel Digest, Vol 15, Issue 8 (<a \
href="mailto:lionel.tricon@free.fr"> lionel.tricon@free.fr</a>)<br>&nbsp;&nbsp; 4. \
Re: klik-devel Digest, Vol 15, Issue 1 (<a \
href="mailto:lionel.tricon@free.fr">lionel.tricon@free.fr</a>)<br>&nbsp;&nbsp; 5. Re: \
klik-devel Digest, Vol 15, Issue 1 (Thomas Leonard)<br>&nbsp;&nbsp; 6. Re: klik-devel \
Digest, Vol 15, Issue 1 (Lionel Tricon (perso)) \
<br><br><br>----------------------------------------------------------------------<br><br>Message: \
1<br>Date: Wed, 23 May 2007 19:10:22 +0100<br>From: Thomas Leonard &lt;<a \
href="mailto:talex5@gmail.com">talex5@gmail.com</a> &gt;<br>Subject: Re: [klik-devel] \
klik-devel Digest, Vol 15, Issue 8<br>To: <a \
href="mailto:klik-devel@kde.org">klik-devel@kde.org</a><br>Message-ID: &lt;<a \
href="mailto:4654838E.7050907@gmail.com">4654838E.7050907@gmail.com \
</a>&gt;<br>Content-Type: text/plain; charset=ISO-8859-1<br><br>Lionel Tricon \
wrote:<br>&gt; &gt; Ok, the following is an attempt to merge the rox file format with \
all needed<br>&gt; &gt; information to run the binary from the cmg file (to be \
honest, with some <br>&gt; &gt; rework of the original format ...).<br><br>Why change \
it at all? Extra elements can be added easily, and there&#39;s no<br>point renaming \
existing elements just for the sake of it. e.g. (starting<br>at the top of your \
example): <br><br>- You don&#39;t really need the maintainer name because it&#39;s in \
the signature.<br>- You don&#39;t need the encoding, because it&#39;s in the XML \
declaration.<br>- You don&#39;t need the version on the name, because it comes later \
on the <br>&nbsp;&nbsp;&lt;implementation&gt;.<br>- I don&#39;t see the point in \
redefining &lt;category&gt;. Putting English text<br>&nbsp;&nbsp;in it just means \
more translation work.<br>- You don&#39;t need &lt;license&gt; because it comes later \
already. <br>- &lt;desktop&gt; is OK, but it should be a relative path inside the \
download<br>&nbsp;&nbsp;(and it should be an attribute of the implementation, because \
it might<br>&nbsp;&nbsp;move between versions)<br>- Why change &lt;icon&gt;&#39;s \
href from a URL to a local path? <br>&nbsp;&nbsp;- Adding a size attribute is fine, \
though.<br>- Grouping &lt;icon&gt; inside &lt;icons&gt; isn&#39;t unreasonable, but \
it breaks the<br>&nbsp;&nbsp;existing format for no good reason (same for some other \
places).<br>- You don&#39;t need &lt;implementations&gt; because there&#39;s already \
&lt;group&gt; <br>- You don&#39;t need &#39;required&#39; because there&#39;s already \
a &lt;requires&gt; element<br>- You don&#39;t need &lt;post&gt;; it already exists as \
&lt;recipe&gt;<br>- &lt;action&gt; may be useful.<br>- You don&#39;t need \
&lt;runtime&gt; because it already exists as &#39;main&#39; <br>- You don&#39;t need \
&lt;env&gt; because &lt;environment&gt; already exists.<br>&nbsp;&nbsp;- The \
&#39;mode&#39; attribute is useful, though.<br><br>&gt;&gt; &gt;&gt; YES. we should \
use the ROX format... main advantage is the tools that <br>&gt;&gt; &gt;&gt; already \
exist that we can borrow from zero-install with 90% of the work is<br>&gt;&gt; \
&gt;&gt; already done<br><br>Note that Zero Install is not part of ROX, although ROX \
                happens to use it.<br><br><br>
--<br>Dr Thomas Leonard&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
<a href="http://rox.sourceforge.net">http://rox.sourceforge.net</a><br>GPG: 9242 9807 \
C985 3C07 44A6&nbsp;&nbsp;8B9A AE07 8280 59A5 \
3CC1<br><br><br>------------------------------<br><br>Message: 2 <br>Date: Wed, 23 \
May 2007 19:31:50 +0100<br>From: Thomas Leonard &lt;<a \
href="mailto:talex5@gmail.com">talex5@gmail.com</a>&gt;<br>Subject: Re: [klik-devel] \
klik-devel Digest, Vol 15, Issue 1<br>To: <a href="mailto:klik-devel@kde.org"> \
klik-devel@kde.org</a><br>Message-ID: &lt;<a \
href="mailto:46548896.6000303@gmail.com">46548896.6000303@gmail.com</a>&gt;<br>Content-Type: \
text/plain; charset=ISO-8859-1<br><br>lionel.tricon at <a \
href="http://free.fr">free.fr </a> wrote:<br>&gt; Selon Jason Taylor \
&lt;killerkiwi2005 at <a href="http://gmail.com">gmail.com</a>&gt;:<br>&gt;&gt; More \
random thoughts... should we approach the guy(s?) who wrote zero<br>&gt;&gt; install \
about merging the 2 techniques... really what we are doing is <br>&gt;&gt; creating \
zero install into a single file and making it executable... the<br>&gt;&gt; projects \
seem (to me any way) very similar at this point.<br>&gt;<br>&gt; I never used \
zeroinstall but in my understanding the software need to be modify <br>&gt; to \
support 0install<br><br>Software such as Firefox, Blender, Inkscape etc doesn&#39;t \
need to be<br>modified. Programs which uses hard-coded paths do (there&#39;s \
no<br>&quot;intellipatch&quot; step like with Klik). <br><br>&gt; and it seems that \
it needs a kernel module (lazyfs) ?<br><br>lazyfs hasn&#39;t been used since 2005. No \
kernel patching (or even root<br>access) is needed.<br><br>&gt; Except the xml file \
description which seems interresting to reuse, it&#39;s not <br>&gt; obvious for me \
that that kind of software brings something new to the klik<br>&gt; \
model.<br><br>There&#39;s a list of differences on the site:<br><br>&nbsp;&nbsp;<a \
href="http://0install.net/links.html">http://0install.net/links.html </a><br><br>&gt; \
If someone can explain me how it works, it would be great because the website \
is<br>&gt; not very clear ...<br><br>Well, it works a lot like Klik really ;-) \
Probably easiest just to try<br>it though. If you&#39;re on Ubuntu (feisty), type: \
<br><br>&nbsp;&nbsp;$ sudo apt-get install zeroinstall-injector<br><br>(or use \
&#39;yum&#39; on Fedora, etc. If your distro doesn&#39;t include it yet,<br>packages \
are at <a href="http://0install.net/injector.html">http://0install.net/injector.html \
</a>)<br><br>Then run something, e.g.:<br><br>&nbsp;&nbsp;$ 0launch <a \
href="http://rox.sourceforge.net/2005/interfaces/ROX-Filer">http://rox.sourceforge.net/2005/interfaces/ROX-Filer</a><br><br><br>--<br>Dr \
Thomas Leonard&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
 <a href="http://rox.sourceforge.net">http://rox.sourceforge.net</a><br>GPG: 9242 \
9807 C985 3C07 44A6&nbsp;&nbsp;8B9A AE07 8280 59A5 \
3CC1<br><br><br>------------------------------<br><br>Message: 3<br>Date: Wed, 23 May \
2007 23:09:11 +0200 <br>From: <a \
href="mailto:lionel.tricon@free.fr">lionel.tricon@free.fr</a><br>Subject: Re: \
[klik-devel] klik-devel Digest, Vol 15, Issue 8<br>To: Thomas Leonard &lt;<a \
href="mailto:talex5@gmail.com">talex5@gmail.com</a>&gt; <br>Cc: <a \
href="mailto:klik-devel@kde.org">klik-devel@kde.org</a><br>Message-ID: &lt;<a \
href="mailto:1179954551.4654ad77a32cf@imp.free.fr">1179954551.4654ad77a32cf@imp.free.fr</a>&gt;<br>Content-Type: \
text/plain; charset=ISO-8859-1 <br><br>Hi Thomas,<br><br>I read your email with a lot \
of interrest. Thank you for your detailed comments.<br>To be honest, i agree with a \
lot of them :-) Especially for those about renaming<br>existing elements ...<br><br> \
But keep in mind that in the klik2 model, the application is virtually \
installed<br>into the filesystem. Even if my changes were not really useful, it was \
just a<br>proposal and it was not in my intention to deeply change the rox file \
format. <br><br>In the klik2 model, you need :<br>- to know how to run the \
application : that&#39;s the raison of the &lt;runtime&gt; area<br>- to display an \
icon when the cmg file is located on the desktop or wherever you<br>want : that&#39;s \
why i put a local path since it gives the location of the icon <br>into the cmg file \
(a way to extract it)<br>- to give the path of the .desktop file (we can imagine a \
situation where you<br>can installed the cmg file onto the disk). It&#39;s not \
mandatory but it&#39;s just an<br>idea <br>- to display meta-data (for example, the \
summary of the application) in<br>different languages<br>- to know how to build the \
cmg file (list of packages, actions to apply just<br>before building the cmg file) : \
that&#39;s the raison of the &lt;action&gt; tags <br><br>If the rox file format can \
be slightly modified to propose all these<br>informations (except if i am totally \
wrong, some of them were missing), i will<br>be very happy. My first intention was to \
brainstorm about the cmg file format <br>and propose some enhancements.<br><br>I am \
not an fundamentalist and my concern is only to dispose of a rox file<br>format that \
can fit our need in a near \
future.<br><br>Lionel<br><br><br>------------------------------ <br><br>Message: \
4<br>Date: Wed, 23 May 2007 23:26:36 +0200<br>From: <a \
href="mailto:lionel.tricon@free.fr">lionel.tricon@free.fr</a><br>Subject: Re: \
[klik-devel] klik-devel Digest, Vol 15, Issue 1<br>To: Thomas Leonard &lt; <a \
href="mailto:talex5@gmail.com">talex5@gmail.com</a>&gt;<br>Cc: <a \
href="mailto:klik-devel@kde.org">klik-devel@kde.org</a><br>Message-ID: &lt;<a \
href="mailto:1179955596.4654b18caf00c@imp.free.fr">1179955596.4654b18caf00c@imp.free.fr
 </a>&gt;<br>Content-Type: text/plain; charset=ISO-8859-1<br><br>Selon Thomas Leonard \
&lt;<a href="mailto:talex5@gmail.com">talex5@gmail.com</a>&gt;:<br>&gt; Software such \
as Firefox, Blender, Inkscape etc doesn&#39;t need to be <br>&gt; modified. Programs \
which uses hard-coded paths do (there&#39;s no<br>&gt; &quot;intellipatch&quot; step \
like with Klik).<br><br>Klik2 (well, next version of klik) doesn&#39;t need to change \
absolute path. For the <br>current version of klik, you have to.<br><br>&gt; lazyfs \
hasn&#39;t been used since 2005. No kernel patching (or even root<br>&gt; access) is \
needed.<br><br>ok<br><br>&gt; Well, it works a lot like Klik really ;-)<br> <br>My \
impression is that 0install is close to the current klik implementation.<br><br>Klik2 \
will add some major improvements :<br>- union mounting : virtualize the application \
into the filesystem (only from the<br>application point of view) <br>- sand boxing \
feature : allows you to test an application without changing the<br>local filesystem \
or put the modifications into a directory or a file (loopback<br>mounting)<br>- no \
need to modify absolute paths : the application is unmodified <br><br>But i agree \
that 0install propose some interesting features (security, dynamic<br>linking, ...). \
And klik2 could be almost plateforme independent if you consider<br>that fuse is \
available as well on *bsd, mac, ... it&#39;s not perfect, but it&#39;s <br>better \
than nothing :-)<br><br>Lionel<br><br><br>------------------------------<br><br>Message: \
5<br>Date: Wed, 23 May 2007 22:59:08 +0100<br>From: &quot;Thomas Leonard&quot; &lt;<a \
href="mailto:talex5@gmail.com">talex5@gmail.com </a>&gt;<br>Subject: Re: [klik-devel] \
klik-devel Digest, Vol 15, Issue 1<br>To: <a \
href="mailto:klik-devel@kde.org">klik-devel@kde.org</a><br>Message-ID:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<a \
href="mailto:cd53a0140705231459u63f4411bu380dd28bbe47d778@mail.gmail.com"> \
cd53a0140705231459u63f4411bu380dd28bbe47d778@mail.gmail.com</a>&gt;<br>Content-Type: \
text/plain; charset=ISO-8859-1; format=flowed<br><br>On 5/23/07, <a \
href="mailto:lionel.tricon@free.fr">lionel.tricon@free.fr</a> &lt;<a \
href="mailto:lionel.tricon@free.fr"> lionel.tricon@free.fr</a>&gt; wrote:<br>&gt; My \
impression is that 0install is close to the current klik \
implementation.<br>&gt;<br>&gt; Klik2 will add some major improvements :<br>&gt; - \
union mounting : virtualize the application into the filesystem (only from the \
<br>&gt; application point of view)<br><br>Sounds good... but can we separate this \
from the installation system?<br><br>e.g.:<br><br>- We have a package \
(&#39;abiword&#39;)<br>- It depends on another package (&#39;klik-union-fs&#39;) \
<br><br>Now, when I do:<br><br>$ 0launch http://.../abiword.xml<br><br>Abiword runs \
in a new namespace (provided by klik-union-fs). Just as<br>Python programs need a \
Python interpreter to run, Abiword needs the<br>Klik union system (though actually \
Abiword doesn&#39;t need it because <br>it&#39;s relocatable; it already works \
through normal Zero Install).<br><br>&gt; - sand boxing feature : allows you to test \
an application without changing the<br>&gt; local filesystem or put the modifications \
into a directory or a file (loopback <br>&gt; mounting)<br>&gt; - no need to modify \
absolute paths : the application is unmodified<br><br>Again, that sounds useful, but \
possibly for other programs too (e.g.<br>programs installed using apt-get). Will you \
be supporting multiple <br>&#39;profiles&#39; per program? e.g.<br><br>$ \
klik-create-profile abifoo http://.../abiword.xml<br>$ klik-create-profile abibar \
http://.../abiword.xml<br>$ abifoo<br>$ abibar<br><br>(where changes made in abifoo \
don&#39;t affect abibar). <br><br>&gt; But i agree that 0install propose some \
interesting features (security, dynamic<br>&gt; linking, ...). And klik2 could be \
almost plateforme independent if you consider<br>&gt; that fuse is available as well \
on *bsd, mac, ... it&#39;s not perfect, but it&#39;s <br>&gt; better than nothing \
:-)<br><br><br>--<br>Dr Thomas \
Leonard&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
<a href="http://rox.sourceforge.net">http://rox.sourceforge.net</a><br>GPG: 9242 9807 \
C985 3C07 44A6&nbsp;&nbsp;8B9A AE07 8280 59A5 \
3CC1<br><br><br>------------------------------ <br><br>Message: 6<br>Date: Thu, 24 \
May 2007 10:02:09 +0200<br>From: &quot;Lionel Tricon (perso)&quot; &lt;<a \
href="mailto:lionel.tricon@free.fr">lionel.tricon@free.fr</a>&gt;<br>Subject: Re: \
[klik-devel] klik-devel Digest, Vol 15, Issue 1 <br>To: <a \
href="mailto:klik-devel@kde.org">klik-devel@kde.org</a><br>Message-ID: &lt;<a \
href="mailto:46554681.7060706@free.fr">46554681.7060706@free.fr</a>&gt;<br>Content-Type: \
text/plain; charset=ISO-8859-1<br><br>Thomas Leonard a ?crit : <br>&gt; Sounds \
good... but can we separate this from the installation system?<br>&gt;<br>Not sure i \
understand what you mean by &quot;separate this from the<br>installation \
system&quot;. In fact there are several virtualization solution <br>for klik2 \
available and my solution (fuse based only) is one of them<br>(maybe not the best one \
but the only workable for the moment). In<br>details, i patched fuseiso and \
fusecramfs to merge to real filesystem<br>with the filesystem located into an iso or \
cramfs file. When i mount <br>such a filesystem on a directory (for example \
/tmp/app/1/mnt), i use a<br>fake chroot (based on the LD_PRELOAD feature) to put the \
merged<br>filesystem into a jail. The application run into the virtual \
namespace<br>whereas the application files are not really installed on disk. \
<br><br>The example below show you quickly how it works to execute an<br>application \
located into a cmg file :<br><br># mkdir -p /tmp/app/1/mnt<br># ln -s \
~path/fichier.cmg /tmp/app/1/image<br># /opt/klikutils/bin/fuse[iso|cram] -n -u \
/opt/klikutils <br>/tmp/app/1/image /tmp/app/1/mnt<br># export \
KLIK_BASENAME=/opt/klikutils<br># export \
FAKECHROOT_EXCLUDE_PATHS=/tmp:/proc:/dev:/var/run<br># export \
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${KLIK_BASENAME}/lib/fakechroot<br># export \
LD_PRELOAD=$LD_PRELOAD: libfakechroot.so<br># ${KLIK_BASENAME}/bin/chroot \
/tmp/app/1/mnt<br>&lt;run the application&gt;<br># exit<br># \
/opt/klikutils/bin/fusermount -u /tmp/app/1/mnt<br># rm -f /tmp/app/1/image<br># \
rmdir /tmp/app/1/mnt/<br># rmdir /tmp/app/1 <br><br>And remember that in the klik \
model, 1 app == 1 file. A cmg package<br>cannot depends of an another cmg package. \
Each one run in its own namespace.<br><br>With all of that, you do not need to \
relocate the application al all. <br>&gt; Again, that sounds useful, but possibly for \
other programs too (e.g.<br>&gt; programs installed using apt-get). Will you be \
supporting multiple<br>&gt; &#39;profiles&#39; per program? e.g.<br>&gt;<br>When you \
run fuseiso or fusecram, you can redirect the modification into <br>a directory. It \
works for the application located into the cmg file as<br>well for all applications \
available on disk (there are no difference<br>between both, you run what you want, \
real application or virtualized<br> application ; you can fuse mount an empty cmg \
file and launch a real<br>application without any troubles). To be accurate, only the \
$HOME of the<br>user is concerne (it&#39;s by design and can be changed easily). I \
consider <br>that a normal user will only modify it&#39;s private directory, not \
other<br>part of the root filesystem.<br><br>So, you can put modifications into an \
usb key or into a file mounted in<br>loopback (we can use mountlo which is fuse-based \
for that). <br><br>Again, i don&#39;t know exactly what you mean by &quot;multiples \
profiles&quot; but i<br>guess that yes since you can redirect each time data in a new \
location.<br>For the moment, the backend is ready but nothing is done to integrate it \
<br>for the end user ; the engine is ready but not the frontend !<br><br>Just an \
example. The following make a union between the root directory<br>and the filesystem \
present into the test.cmg file (the new directory<br>will be available into the \
/tmp/app/1/mnt filesystem). The -b option <br>redirect writes from the $HOME user \
into the /tmp/test directory.<br><br>You have just to put the /tmp/app/1/mnt \
directory into a jail from the<br>application point of view and you can run it (since \
fuse do not support <br>by design special files and suid bits, we exclude from the \
jail some<br>directories like /tmp, /proc, /dev and /var/run to allow direct \
access<br>on them).<br><br># /opt/klikutils/bin/fuseiso -n -u /opt/klikutils -b \
/tmp/test <br>/home/lionel/Desktop/test.cmg /tmp/app/1/mnt<br><br>That&#39;s how it \
works,<br>Lionel<br><br><br>------------------------------<br><br>_______________________________________________<br>klik-devel \
mailing list<br><a href="mailto:klik-devel@kde.org"> klik-devel@kde.org</a><br><a \
href="https://mail.kde.org/mailman/listinfo/klik-devel">https://mail.kde.org/mailman/listinfo/klik-devel</a><br><br><br>End \
of klik-devel Digest, Vol 16, Issue 4<br>***************************************** \
<br></blockquote></div><br>



_______________________________________________
klik-devel mailing list
klik-devel@kde.org
https://mail.kde.org/mailman/listinfo/klik-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic