On Sat, Jul 12, 2008 at 2:57 PM, Jonas Karlsson <[EMAIL PROTECTED]> wrote: > On Sat, 12 Jul 2008 19:28:10 +0200, Lucas C. Villa Real <[EMAIL PROTECTED]> > wrote: > >> On Sat, Jul 12, 2008 at 2:13 PM, Jonas Karlsson <[EMAIL PROTECTED]> wrote: >>> On Sat, 12 Jul 2008 19:07:47 +0200, Lucas C. Villa Real <[EMAIL PROTECTED]> >>> wrote: >>> >>>> On Sat, Jul 12, 2008 at 11:34 AM, Jonas Karlsson >>>> <[EMAIL PROTECTED]> wrote: >>>>> On Sat, 12 Jul 2008 01:43:32 +0200, Hisham <[EMAIL PROTECTED]> wrote: >>>>> >>>>>> On Fri, Jul 11, 2008 at 3:56 PM, Jonas Karlsson <[EMAIL PROTECTED]> >>>>>> wrote: >>>>>>> On Fri, 11 Jul 2008 20:27:15 +0200, Hisham <[EMAIL PROTECTED]> wrote: >>>>>>> >>>>>>>> On Fri, Jul 11, 2008 at 1:01 PM, Jonas Karlsson <[EMAIL PROTECTED]> >>>>>>>> wrote: >>>>>>>>> On Fri, 11 Jul 2008 16:37:51 +0200, Hisham <[EMAIL PROTECTED]> wrote: >>>>>>>>> >>>>>>>>>> On Fri, Jul 11, 2008 at 3:43 AM, Jonas Karlsson <[EMAIL PROTECTED]> >>>>>>>>>> wrote: >>>>>>>>>>> There has been a proof of concept where a group of people has >>>>>>>>>>> injected >>>>>>>>>>> bad packages into a distribution by asking to be a mirror and >>>>>>>>>>> providing >>>>>>>>>>> erroneous updates (1). >>>>>>>>>>> The issue is not that they provided spoofed, hacked or broken >>>>>>>>>>> packages, >>>>>>>>>>> which would fail with bad signature (or the user had to add the key >>>>>>>>>>> to >>>>>>>>>>> their keyring), but they used old packages which they updated >>>>>>>>>>> version >>>>>>>>>>> information for. An example for GoboLinux would be to repack an old >>>>>>>>>>> version, Foo--1.2--i686.tar.bz2 as Foo--2.3--i686.tar.bz2 and our >>>>>>>>>>> tools >>>>>>>>>>> would be fooled to thing that the latter was an update/later version >>>>>>>>>>> (you would also change the name of the version directory in the >>>>>>>>>>> tarball). >>>>>>>>>>> This meant that users that used that "mirror" would get "updates" >>>>>>>>>>> that >>>>>>>>>>> wasn't always up to date and even might have security issues. >>>>>>>>>>> We need to add version information to our packages, any idea on a >>>>>>>>>>> good >>>>>>>>>>> scheme for that? >>>>>>>>>> >>>>>>>>>> Yes, we just need to add the full path to the FileHash file entries. >>>>>>>>>> If they are tampered with, FileHash.sig will alert. Fix committed to >>>>>>>>>> svn. >>>>>>>>> >>>>>>>>> I don't think we should use *full* paths, only <program >>>>>>>>> name>/<version>. >>>>>>>>> People might not have $goboPrograms at /Programs. >>>>>>>> >>>>>>>> These people better not use the binary packages, for tricky troubles >>>>>>>> await them if they do. >>>>>>>> >>>>>>> That depends on how they are built. Lucas has made successful builds >>>>>>> against >>>>>>> /System/Index, meaning that the binaries doesn't reference /Programs at >>>>>>> all. >>>>>>> That also means that packages can be placed anywhere, as long as they >>>>>>> have >>>>>>> symlinks in /S/I. One can, already today, install binary packages at any >>>>>>> prefix and just symlinking them, with none or very little breakage >>>>>>> (depends >>>>>>> on application). I think we should cover these cases, especially as we >>>>>>> will >>>>>>> have them in the future. >>>>>> >>>>>> People who are willing to go through this "very little breakage" >>>>>> should know what they're doing, in which case they can bypass the >>>>>> check. I never wanted programs to be installed outside of /Programs >>>>>> (hell, that's why GoboLinux was created in the first place! to end the >>>>>> proliferation of locations where apps were installed!). If you want to >>>>>> encourage this behavior, go ahead and revert. >>>>>> >>>>> I don't think you're on the wrong track, just that <app>/<version> would >>>>> suffice and that would also support relocation better. There might be >>>>> people >>>>> that has applications on a NFS mount, which would not be supported with >>>>> the >>>>> current FileHash implementation. All we need is a record of app name and >>>>> version, that are signed, somewhere and check them against what we think >>>>> it >>>>> is, which we get from parsing the tarball name. >>>> >>>> Unless the applications mounted from the NFS share are relocatable, >>>> union-mounting that share over /Programs would be the most portable >>>> solution. >>>> >>> What am I missing here? If an application is built against /S/I its files >>> can >>> be placed anywhere, as long as it's symlinked to /S/I, right? >> >> Yes and no. Viewfs still needs to know about $goboPrograms to create >> the virtual dependencies tree on demand. $goboIndex is coming to save >> us from headaches of having different programs hardcoding different >> prefixes. The ability to move applications to outside $goboPrograms >> was never intended to be the reason of that change. >> > No, but it is an effect and I don't think we should work against that by > implementing a filehash that doesn't support it. > >>> And for those applications that are built with current patch can be >>> relocated >>> as long as they don't reference its own prefix (which most of the times >>> isn't >>> the case afaik). >> >> At least we hope so. We'll always have to post-process the installed >> files to check that (grep'ing for $goboPrograms on them should be >> enough). >> > Yes, we do this post processing and thanks to this most applications *are* > relocatable, since they will use /S/L (or /S/I), so I still don't see why > we shouldn't work with it instead of against it.
As I told above, ViewFS needs to know about $goboPrograms, so applications linked in /S/I that are stored outside that dir *will just not work* -- especially if they contain libraries that other applications depend on. -- Lucas powered by /dev/dsp _______________________________________________ gobolinux-devel mailing list gobolinux-devel@lists.gobolinux.org http://lists.gobolinux.org/mailman/listinfo/gobolinux-devel