discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GNUstep repository (was LinuxSTEP + Integration of apps)


From: Stefan Urbanek
Subject: Re: GNUstep repository (was LinuxSTEP + Integration of apps)
Date: Sun, 05 Jan 2003 18:31:35 +0100

On 2003-01-05 14:23:31 +0100 Dennis Leeuw <dleeuw@made-it.com> wrote:
<snip>

I agree! Code may be scattered across the Internet, aslong as there is a
single source that holds the links... On the other hand a mirror might
be handy for code that is suddenly orphaned or if the server gets pulled
of the net.


While speaking about GNUstep packages, i have few ideas in mind...

What about having something like distributed package lists? For example there 
should be one http://packages.gnustep.org/Packages.plist
{
   Packages =
   (
       /* List of packages, their URLs, versions and dependencies */
   );
      /* Links to other repositories with some assigned trust value */
   Repositories =    (
       {
           Name = "GNUstep Web Packages"
           URL = "packages.gnustep.web";
           Trust = High; /* Should be Low, Medium, High, Unknown */
       }
   );
}

This property list can be easily read by SomePackager.app using NSDictionary 
dictionaryWithContentsOfURL:. Moreover this list can be generated by a server 
script from some database of packages... there are many posibilities.
Packager.app can have list of those repositories, like apt's sources.list. The 
Trust variable can be used for example for searching for unknown packages when 
resolving dependencies, like 'satisfy dependencies only from trusted 
repositories'.
Repositories can be distributed and you can get references to other 
repositories very easil, because they are linked. Packages can be stored on 
different host from the package list. It is just a list. Or list can specify 
somthing like 'RootURL' for all packages URLs.

Each package or package control file or property list can have:
- Binary/arch URL (gnustep have to start using binary distributions, at least 
for testing)
- Source URL
- dependencies
- list of possible installation domains (!)
- all other relevant keys from the AppNameInfo.plist

The last one - list of possible installation domains - will specify where the 
package should be installed. It should be some variable like:
   AllowedDomains = All /* For any domain */
   AllowedDomains = (Local, User) /* For Local domain or User domain  only */
   AllowedDomains = (Developer) /* For developer domain only */

Possible values are System, Local, User, Developer and Other, where other has 
to be explicitly specified, like '/' for root.

User will be allowed to install packages into his own user domain (AFAIK this 
is not possible with deb, but i am not sure). All paths in the package should 
be relative to the installation domain root directory.

In addition to the package description should be relevant entries from 
application's Info.plist. I would not mind to include NSTypes entry, for 
example. Imagine you want to open some file, but you do not have the 
application. With this, it will be really easy to find application that can 
open that file, or evet, this can be automated! - you try to open a file in 
Workspace, and then you are given a possibility do download relevant 
application. Or include list of app services... There are many open 
posibilities. GNUstep has that great advanttage of application cooperatorn 
which can be used here.

I have no time to implement this, but if there is anyone who is interested, 
just write me. Or I should put something on the gnustep wiki pages.

What do you think about those distributed linked repositories?

Stefan






reply via email to

[Prev in Thread] Current Thread [Next in Thread]