What Should The Pandora File Archive Look Like?


I think it should have an integrated "one-click" feature where, if you want to download and install a package listed on the repository (this is assuming you're browsing it using your Pandora), you just click on the link and it will know (based on the URL?) to download the file and install it in the correct location.
 
I think a CVS/SVN repository system would be neat for both open source and binary only projects. This could have a web interface similar to sourceforge: a default project page with as little or as much information as the developer or project manager wants. The following is some of the features that I think would be nice to have for the repository:

Project Management:

Hopefully, lead developer(s) will choose to have their projects hosted on this site and will actively manage it themselves. This ensures that the developers wishes with regards to licensing and availability are adhered to. Thus, the developer can have source code and binary versions of the software available and/or archived as he wishes. For instance, the source code of a game can be hosted on the server, but the developer does not choose to make it public and decides that only the latest binary (or any binary version) will be available from the repository. The developer can also note that, if he looses interest in the project, the site admin can turn over administration of the project to an interested party or release all of the files to the public.

For projects like PocketSNES, multiple people can administer the project and have a central location for beta releases or branches with different features. The main branch can contain all of the stable updates, and separate branches can contain experimental features like the version that has SA-1 support.

If someone comes across a program on a forum or a personal site, they could upload it to the repository and continue to update it as the program's license permits it, of course. If the original author of a program decides they would like to take over administration of their own program's project, they could petition the site admin.

Also, if a project has seemed to have died, an interested person could petition the site admin to take the project over. In which case, the site admin would try to contact the original developer/admin or would be able to make a decision based on the original developer's/admin's wishes. This will keep dead projects from becoming obscure and ensure that the public knows what is the most up to date version. It is possible that, if the original developer/admin chooses to not let anyone take over the project if he becomes MIA, the project will die.

Public Access:

The public would be able to access the repository from the web. When a binary package is put on the SD card and into the Pandora, the Pandora can check dependencies, etc.. Or, a PC program can have information on your Pandora and check dependencies without the need for the Pandora connected at all; then, all you would need to do is put your SD in the Pandora and play.

Also, it sounds like the most popular idea is to have the Pandora access the internet and connect to the repository through something like Synaptic. That is also possible.

Either way, access should allow the public to easily get the software they want in the version that they want.

Multilingual Support:

Since it would be nice to have a single repository for the Pandora, this site should be multilingual and have the support of the spanish/french/english/etc. communities. One of my impressions of the global GP2X community is that there tend to be a lot of programs get released on, for instance, the GP32 Spain forums, and it takes a couple of weeks for it to get to the english news. If this repository and site come about, it would be great if all of the language communities decided that it would be their main archive site as well. That way, people that only speak one language (i.e. me) can get up to date releases of many more games.

---------------------------

The GP2X file archive is great, and I appreciate ED hosting it, but it has many shortcomings. It is a rather "dumb" archive. The source code for a program may be in another part of the archive not readily noticeable, and projects with basis in programs like SquidgeSNES that get updated and called PocketSNES have almost no organizational structure that tells you that you should get the new version that is called something else. Part of the reason (in this case) might be because no one wanted to overwrite the previous version and risk losing that work. That is why I think a better CVS system is needed for the Pandora archive.

I remember a sourceforge-esque archive site being attempted for the GP2X called GP2XForge (http://gp2xforge.rix0r.nl/), but that doesn't seem to have taken off. GP2XForge was developed with a focus on open source projects. I think the Pandora repository should be as accommodating to closed source projects to make it more appealing to every developer. I remember Reesy being adamant about keeping the source of DrMDX private until he was finished with development. I think the Pandora repository should accommodate this wish and also allow him to archive the source on the site privately until he is ready to release it.

I don't care much about how the archive site/repository looks. I am most concerned about it being the universal distribution method and keeping it up to date and absent of dead/redundant projects. I know this would be a considerable investment in both development, hardware, and administration, but I have faith in this community and its leaders that they could accomplish this :D .
 
I think the most important parts of a new website need to be listed and agreed to by the people. Of course we need to get approval from ED and then it can all go ahead. If it is possible it would be great if it were up before the Pandora came out.
 
donny... w-w-w-what?

I think we're talking abouit public downloads and so forth here. Developers are squirrely, and no way we'll all be corralled into one place. 98% of projects are built by one guy on his hard drive, then when finished they're archived somewhere if youre' lucky; spending effort organizing _another_ sorceforge isn't practical imho .. (though it is entirely different matter for the OS and so forth.)

Anyway, I'd say kep it easy..

Official file repository, click click download; ideally workable from the pandora browser as well.. but much like existing gp32x file repo, but cldeaner.

An official wiki.

An official forum for questions, support etc.

And _maybe_ a deb repo for fetching packages; remember, 99% of people won't know how to use this, and want a simple web interface instead. (A deb browser/package manager on the pandora could help, but again.. 99% of peopel download using their desktop and won't be downloading direct to pandora; even if they do, they want backup copies and such on their desktop, they don't suck direct to pandora most of the time.)

jeff
 
re one click installs:

Easy package installation could be done by using the gdebi package installer. It only takes 2 or 3 clicks. Also gives the opportunity to review the package before installing, AND it will get and install any needed common/official dependencies(libraries) from a debian APT repository.

ie. User clicks a link to a .deb package file in their browser. The save as dialog pops up, with "open with gdebi package manager" selected by default.
User clicks ok, the package downloads and opens in the package installer giving the user a chance to verify what they're installing, before the hit install.

That's 3 clicks, and frankly I don't think we want anything less than that. or you'll click the wrong item and send your Pandora installing god knows what. And of course no need to re-invent the wheel in the slightest.
 
Again, most people are not going to download using their pandora; ie: many will have wireless sometimes (home say), buteveryone always has web access (or no pandora at all.)

Maybe Im off, but I don't think a deb-browser-on-device should be a priority.. just an option.

jeff
 
skeezix said:
Again, most people are not going to download using their pandora
Maybe they would if there was a package system which downloaded and installed the packages for them? And if there was this feature why would people NOT do it? It would make no sense.
 
Last edited by a moderator:
A pandora based installer is a must for me. Preferably something optimized for both the screen and controls. I want it to be as PC-independent as possible.
 
Folks will want copies on their desktop, so they can reinstall later.. also, the desktop copy would have docs and such; on the handheld, they would only want the barebones executable likely, for sapce considerations. ie: Would you want a giant fat zip lieng on your SD card, as well as the unpackged stuff? OR the zip on your desktop/lappy, and the executable on your handheld?

The web is always available, the 802.11/ethernet .. less so.

Consider .. 99.9% of homebrew for the PSP is downloaded to a PC, then copied over to the PSP via memstick. Always works, nice and easy. The homebrew package managers are almost not used at all (Though they're "not official", so thats a contributing factor.)

Perhaps we need a poll, but look at it this way..

You _need_ a web file archive.. people expect it, and will obviously use it.

Do you also _need_ a fully duplciated system?

(It would be ideal if both were driven from a common source, so that you get both at one cost, but this is usually harder to implement.)

None of us can speak for craig et al, but I think we can assume he wants the widest possible adoption (duh), and thus it has to work for total newbs, people disconnected and using the device on the train or subway etc, and so on; in practice, most deb systems are nasty to use and run into issues after awhile. This doesn't have to be the way but remember.. Pandora has pretty much no official dev team, its all peopel throwing their help in. So limited resources too.

As a dev whose been there, it seems a huge task for a ragtag team to try and support multiple simultaneous efforts; seems to me to support the absolute must have first (web presence), and then work on the deb as a side for those in the know.. the hackers, the power users, etc. The average idiot won't care. (Or make it for release-2 of the OS, after its al stabalized.. but the web presence is a must, day zero.)

jeff

Shiny said:
A pandora based installer is a must for me. Preferably something optimized for both the screen and controls. I want it to be as PC-independent as possible.
Ask yourself this..

Sure, the pandora based install is a 'must' for 'you'.

Would you have it, and NOT have a standard web based file repository?

Or do you want both?

And what priority do you want?

Seems like we need a poll, but a poll woudl not likely be representative of 'average idiot' user.

"What method woudl you like to most often get files for your pandora?
1) Via the web only
2) Via the pandora only (using 802.11 in your own home, hotspot etc)
3) Via the web usually, but sometimes via pandora only if you could
4) Via the pandora usually, but sometimesx via the web"

Note that (3) and (4) complicate things -- sometimes deb, and sometimes web, means your deb repository might be fouled up, unless web downloads just get them deb files to isntall (not likely, since people might not know what to do with them.)

That is an option though.. both web and direct repo just give out deb files, and then you install on the handheld _anyway_.

Then both systems come from one source, and lif is easier (until your deb repo blows up, which inevitably happens on the handheld)

The problem there then becomes you have multipel debsper project.. the executable side, the doc/extras side,l and the source side of course.

jeff
 
Last edited by a moderator:
Maybe I'm missing the point, but I'm surprised no one has pointed to Maemo as an example of how things could be done.

It works fine on 800 x 480, and the one click install usually seems to work quite well. I've just reinstalled everything from there after reflashing my N800, and whilst I don't use that many programs, the process was pretty painless.

I've had some problems with different repositories and dependancys, but I would have thought that could be avoided if everything on the official site was kept in one centralised place.
 
+5 for Alex.'s organization and interface. Klik'n'run, zero-install, maemo all very good examples, packaging should be an integral part of the platform designed in from the bottom. Knowing exactly what the hardware is should a really big help in keeping it simple and functional. Maybe the single file executable ala cramfs or ext2's time has come. If you insist on it and give plenty of examples. You'd only need to enforce it on the main repository. You could still scribble outside the lines all you want but to put it in the main repo you'd have to package for the mainstream delivery system.

Anyone else ever get the opportunity to see or play with Midori linux? The build system was an awe inspiring little gem with a point and click web interface to the mlz packaging.
 
skeezix said:
Sure, the pandora based install is a 'must' for 'you'.
Would you have it, and NOT have a standard web based file repository?
Or do you want both?
And what priority do you want?
I'm sure that I am not the only person who feels that a handheld should not tether you to a PC, and I am not completely against Web based.

It would be acceptable to just use a web based repository on the pandora itself, but things like text size, images, etc. would have to be adjusted for the screen size.

Controls wouldn't be much of an issue, either, but still not as great as a dedicated application (it has a touch screen after all, or perhaps an analog controlled cursor could do the trick).

The only drawback is responsiveness and a little more effort, but we all need to learn to be a little less impatient anyways. Besides, the drawbacks of maintaining a seperate dedicated application far outweight waiting a few seconds.
 
Last edited by a moderator:
Repositories are not web-based (although you can manually download packages from them if for some reason you want to). They are connected to with package managers.
 
The whole Auto-updating idea leads me to ask if devs would be willing to maybe utilize a unified version tagging system so such a thing would be easy for the program to check for? Or would it just be able to check for a "date modified" before sending a "there is an update available" dialog to the system. I guess the latter would make more sense, the updated info one would add about changes would be more like RSS.

And that notion leads me to think there needs to be a painless way devs could upload patches, updates, along with info, added screenshots, and such. Maybe even create an algorithm that automatically creates the news stories that such an update is now available, and send it to all tagged websites.
 
Are we really going to have to deal with dependencies? :(

I really liked how everything was self-contained when you used the GP2X. I couldn't stand dealing with Kubuntu's package manager.
 
Yrx said:
Are we really going to have to deal with dependencies? :(

I really liked how everything was self-contained when you used the GP2X. I couldn't stand dealing with Kubuntu's package manager.
No, the package manager will deal with them.

I hate Kubuntu's package manager too. That's why I use aptitude. Seriously, try it! Open a Konsole window and type "sudo aptitude".
 
Last edited by a moderator:
There shouldn't be a need for any dependencies - programs use the built in libraries and statically link to libraries not built in. The last thing we want is library hell. Sure, a package manager can install the relevent libs for you, but where is it going to put them? If it installed them to the built in storage, you could end up with a full nand simply because of the amount of libraries (which would stay even when the applications are removed as you wouldn't know what installed them). If you put them on sd card, it makes it confusing to end users unless they are in the same directories as the executables needing them; at which point you may as well statically link.

The only advantage I see is the option that you can upgrade the library version without recompiling the application. However, if the library works with a piece of software, why change it? There's a bigger chance that it'll break something in the app rather than making something better.

Plus, not having the libs makes it easier for developers to release test versions of there apps, they don't have to carefully package them up with everything required - they can just zip up the binary and post it.

I'm sure I'm not the only person who would enjoy a "Just unpack to destination" rather than "I need to copy the archive to the Pandora and then figure out how to use package manager X to install it. Ah, I don't have library X and I don't have Wifi, guess I'll have to find it manually and copy that package across also. Oh, and that package depends on this package also. Sod it."
 
Squidge said:
Sure, a package manager can install the relevent libs for you, but where is it going to put them? If it installed them to the built in storage, you could end up with a full nand simply because of the amount of libraries (which would stay even when the applications are removed as you wouldn't know what installed them). If you put them on sd card, it makes it confusing to end users unless they are in the same directories as the executables needing them; at which point you may as well statically link.
Excellent point - I was all ready to argue with the "library hell" bit (after all the whole point of a (good) package manager is to avoid that) until you pointed out the conundrum with where to put the libraries. Self contained apps with static links seems to be a good standard to follow for this reason alone.
 
Last edited by a moderator:
Squidge said:
There shouldn't be a need for any dependencies - programs use the built in libraries and statically link to libraries not built in. The last thing we want is library hell. Sure, a package manager can install the relevent libs for you, but where is it going to put them? If it installed them to the built in storage, you could end up with a full nand simply because of the amount of libraries (which would stay even when the applications are removed as you wouldn't know what installed them). If you put them on sd card, it makes it confusing to end users unless they are in the same directories as the executables needing them; at which point you may as well statically link.

The only advantage I see is the option that you can upgrade the library version without recompiling the application. However, if the library works with a piece of software, why change it? There's a bigger chance that it'll break something in the app rather than making something better.

Plus, not having the libs makes it easier for developers to release test versions of there apps, they don't have to carefully package them up with everything required - they can just zip up the binary and post it.

I'm sure I'm not the only person who would enjoy a "Just unpack to destination" rather than "I need to copy the archive to the Pandora and then figure out how to use package manager X to install it. Ah, I don't have library X and I don't have Wifi, guess I'll have to find it manually and copy that package across also. Oh, and that package depends on this package also. Sod it."
I had always thought of repositories/dependencies/package managers as enablers of stable and compatible software. To be in the repository, you must be linked against the correct "core" libraries or you must run with a certain fenix release. Otherwise, you simply have to trust the developer to have not linked against a different lib version or be using some outdated fenix release. I guess at the very worst this might just cause their software not to work, but it seems cases like that could be easily avoided simply by using a repository system. Maybe since our software targets such a specific platform, that it's really not too big of deal. IDK...

As for manual install, I think the "archive" would definitely have to calculate dependencies also and at least offer them to you also. Obviously core libraries known to be included wouldn't need to be downloaded, but if a game requires fenix, it should off fenix to you also...if you already have it, then don't download it.

I do see you're point about where to put stuff...I don't really have an "answer" to that, except to somehow let the user decide...

Anyway, I don't know how it would work with Pandora, but I simply can't imagine running a modern linux distribution with good package management...
 
Last edited by a moderator:
I'd like to suggest putting every program in an Application Directory like on RiscOS, OS X, and ROX filer (a file manager for Linux and friends).

An Application Directory, or AppDir, is a directory that contains a program. If the directory is clicked, the application is run instead of showing the contents of the directory. ROX filer, for example, looks for a file called AppRun in the directory and runs that if it exists.

What's good about AppDirs is that everything you need is contained in a single directory. What's bad about AppDirs is that, if a library is not on the system by default, every AppDir needs to provide its own copy, which wastes some storage space.
 
Back
Top