Integrated digital distribution platform+"package manager"

ATTENTION ADMINS: Thanks for restoring this thread! (This post was stuck in a spam check for a day or two) However, I think it’s the old version of my post which I accidentally saved before finishing. Can an admin please change the content of the OP to the finished version which I also reported?

One good way to attract commercial developers to Haiku in the future would be to take some effort off their shoulders for distributing their apps in a simple, user friendly marketplace. My idea is to have an open sourced digital distribution platform, free from middle men. Think of a package manager, mixed with a commercial service like Steam, with optional (to the user) torrent functionality.

The idea is that all Haiku apps (commercial, freeware, closed source, open source) are made available in this app manager. Commercial apps would be paid for directly to the developer, and the developer is responsible for hosting.

The developers (well, anyone really, if the license allows anyone to redistribute) would serve as the dedicated host (forgot the word for this in torrent terminology, trackers right?) of the files, with users being able to speed up the process with P2P networking (it should be optional, people should be able to use dedicated hosts only and not seed if they so wish). They would need to specify a category for their “package” (Office, Web, Games, Media…), so it can be easily sorted and found by end users.

I’m not confident that it’s possible, but instead of the division that comes with repositories, this imaginary platform could use either:
1: A centralized, Haiku Inc. hosted indexer, much like various torrent sites, or
2: A decentralized one (I mention this because it seems Pirate Bay has switched to this method lately, but I may have misunderstood what it means. I’m thinking of an index that’s P2P driven somehow)
The index should list categories (as mentioned), a description as supplied by the distributor, and user reviews.

So there would be a base index that all Haiku apps would use and conform to, including unsecure, possibly dangerous, or development build apps. The indexer itself doesn’t necessarily have to search the software for viruses or the like, because this is where filter subscriptions would come into the picture. If you’ve used AdBlock Plus with Firefox, the idea of subscription filters is where I got this idea from. Anyone (everyday users, companies, organizations) will be able to provide filter subscriptions for different purposes (no malware, Company X’s apps, trusted apps only, etc). The best filters would gain the largest amount of users, ensuring that only safe software reaches the common user unless he ignores the filters.

The trust model for this type of thing is too hard to manage. I like your ideas but I think a Linux style of adding repositories that you trust is the way to go. All the repositories are represented under a unified interface which acts as far as the user isconcerned - as an App Store - ala Ubuntu software center.

This does not mean “ZOMG Linux is hard!”.

A user starts out with the official Haiku repository which holds software that the Haiku project trusts and then adding new repositories can be as simple as clicking an URL on a web page (SuSE Linux has this) which prompts a user on whether they want to add the repository or not and warn them of the dangers of untrusted software. Third party repositories can be operated by communities and projects or by companies (Adobe’s Flash and Reader repo). When a new repo is added that contains software that another repo has (such as the main Haiku repo) the new repo will become the preferred source for that software.

This approach is known to work well and puts the liability in the right place and makes the middle man completely optional.

This sounds a hell of a lot like how it is done in Linux - and that is because it is. The problem with how it is done in Linux is that each distribution does it slightly differently and so it is fragmented.
In Haiku we are aiming for ONE package format and most likely “self contained” programs to avoid dependency problems. This in combination with a release based approach to Haiku versions to keep fragmentation of the install base minimal and at least organised instead of a dozen different kernels all being basically the “current version which you should have compatibility for”. Haikus releases will be like FreeBSD in that a release is “the full package - software, documentation and support” and not “yet another kernel version” as it is in Linux.

[quote=DanielDevine]The trust model for this type of thing is too hard to manage. I like your ideas but I think a Linux style of adding repositories that you trust is the way to go. All the repositories are represented under a unified interface which acts as far as the user isconcerned - as an App Store - ala Ubuntu software center.

This does not mean “ZOMG Linux is hard!”.

A user starts out with the official Haiku repository which holds software that the Haiku project trusts and then adding new repositories can be as simple as clicking an URL on a web page (SuSE Linux has this) which prompts a user on whether they want to add the repository or not and warn them of the dangers of untrusted software. Third party repositories can be operated by communities and projects or by companies (Adobe’s Flash and Reader repo). When a new repo is added that contains software that another repo has (such as the main Haiku repo) the new repo will become the preferred source for that software.[/quote]

Strictly from a trust model POV I don’t think my idea is very problematic. The idea is that the manager is delivered with an official Haiku filter subscription - the effect would be the same as with an official repository, except:

  1. The user has access to “all” Haiku applications, if he wishes to disable the official filter, and
  2. Apps/packs would be individually hosted by the authors, as opposed to a badly maintained third party repository. Updates not being available on your repo of choice would be a problem no more. The downside is that if an author stops hosting, the packages would disappear. However, if the author allows it, non-authors would be able to seed after the dedicated mirror is down, as well as put up their own dedicated mirrors.
  3. Authors can upload malicous content in updates. This can be remedied by notifying filter maintainers when apps are updated. Maintainers can choose to automatically accept updates, or block the app until it’s been tested. Here I run into a brick wall ATM: If the author updates an app and removes the old version, a filter maintainer must block the whole app instead of just the new version. I haven’t thought of a solution to that yet.

The big problem with repositories is the fragmentation between users (one user has a repo while another doesn’t, one knows how to add repos while another just wants to get his work done and can’t be bothered), the centralization (because a repo can’t contain packages from different hosts, right?), and the inconvenience those two bring. And I don’t think links are sufficient to fix this, because that would require the user to browse the web for links to repositories, another inconvenience I would want to avoid.

Optional… If the author doesn’t want to be visible to the regular user without the user going to his/her webpage and adding the repository by hand. This is another thing I want to circumvent. And if you have to go to a web page and enable a repository by yourself, you might as well just download the installer, like in Windows. The manager becomes a bit pointless if you have to browse the web to access unauthorized applications.

Obviously I took inspiration from Linux package managers, as well as “Software Managers” (I’ve used the one in Linux Mint myself)
There were some technical hiccups when I posted this thread, so some parts of my post is lost. I suggested more obviously in the updated post the feature to be able to pay for commercial apps directly in the manager (think Steam, except it goes directly to the author’s bank account). Also, user reviews/ratings (this is available in Mint Software Manager). The idea is to have a single, integrated app for this, as opposed to something like Mint where there’s a separate package manager and software manager, where only Mint team approved packages get their own profiles with ratings etc. Packages should have their app names specified somewhere, and the app name is what should be visible by default as opposed to the package name.

[quote=DanielDevine]The problem with how it is done in Linux is that each distribution does it slightly differently and so it is fragmented.
In Haiku we are aiming for ONE package format and most likely “self contained” programs to avoid dependency problems. This in combination with a release based approach to Haiku versions to keep fragmentation of the install base minimal and at least organised instead of a dozen different kernels all being basically the “current version which you should have compatibility for”. Haikus releases will be like FreeBSD in that a release is “the full package - software, documentation and support” and not “yet another kernel version” as it is in Linux.[/quote]
I know this :stuck_out_tongue: Regarding self contained apps and dependencies, it would be interesting if hard symbolic links could be used for duplicate libraries etc. Would save disk space, and if the file is deleted in one place, it would remain in the other place. This could help solve the problem with self contained apps, but hard links aren’t possible in Haiku (because they weren’t in BeOS), the file system doesn’t support it yet!

EDIT: …what an essay

I see no point in Haiku having server-client package management system for anything other than OS updates.

I’m not just talking about a package manager, though. It would serve as a fully featured app/media library/store, where you can download freeware, buy and download encrypted commercial software (decryption should be permanent), perhaps even download music, videos, documents etc. It would show the actual names, information, screenshots, reviews etc of the apps/media you download, as opposed to package names (optionally viewable), and there won’t be a dependency mess because of self contained apps. And with all software available immediately as opposed to repositories, I think such an app has amazing potential to bring commercial and freeware/open source developers on board. It would further set apart Haiku from all the other OS’s and their ancient install methods.

There’s no point in mixing software, video and music. There is no specific, BeOS/Haiku-only music or video. This approach is propagated by corporations that want to make a profit (like Apple and its iTunes store) and this is at the moment viewed as the most convenient way to get a share from every transaction. There is no point for open source project to mimic this behavior.
An online repository of software could be a website, like Bebits.com. I see no point in having a fat client for accessing a website, a browser would do just fine. There could be OS’ “official” central software repository website and probably would be additional 3rd party sites, by enthusiasts or for profit (ad revenue etc).

Software packages should be self contained, like almost all BeOS apps were. If a developer wants to use a framework that does not ship with OS by default (eg is not Haiku native application framework) then he would specify for the user where to get the framework. Framework would install the same as any other software package. If users think this is too tedious and time consuming then they won’t use that software and some other software would take its place, assumability a one that uses OS native framework.

There is no point for an open source project to make money?

As an Android app developer, I think a “Haiku Market” would be a fantastic idea. It’s an easy and effective way for developers to distribute their apps and it’s convenient for users. And if Haiku Inc. took a small fee, they might even be able to hire full-time developers at some point. That’s exactly what Google does with Android. I don’t see why it wouldn’t work for a desktop OS. Also, Google does not allow the Market on unofficial Android “distros”. Haiku Inc. could do the same, which would help prevent fragmentation.

[quote=brewin]There is no point for an open source project to make money?

As an Android app developer, I think a “Haiku Market” would be a fantastic idea. It’s an easy and effective way for developers to distribute their apps and it’s convenient for users. And if Haiku Inc. took a small fee, they might even be able to hire full-time developers at some point. That’s exactly what Google does with Android. I don’t see why it wouldn’t work for a desktop OS. Also, Google does not allow the Market on unofficial Android “distros”. Haiku Inc. could do the same, which would help prevent fragmentation.[/quote]

Didn’t BeOS’ SoftwareValet software package manager provide this sort of feature?

A Haiku market would be a good way to create a commercial ecosystem around Haiku. I don’t think it would be a good idea to make this exclusive to official Haiku releases, as that would actually be counterproductive.

Instead, I would use the marketplat as an incentive to induce distro makers into meeting certain compatibility goals: iow, distros that meet the compatibility standards would have access to the markeptplace. This would maximise potential profits for both developers and Haiku Inc., and benefit users regardless of the Haiku distro they may choose to use.

(I wrote this post while tired)

Why not? It’s downloadable software just like any application, and for artists being able to sell music or videos without middle men taking shares would be a great incentive to support Haiku. Software categories will make it easy to filter away music or other media if you only want to see apps.

I’m not sure what you’re talking about here.

Of course there is: User friendliness. That’s one of the points about Haiku, isn’t it?

I’m not talking about a “fat” client here, that’s what I want to avoid with this hypothetical software manager: Tons of bloated, slow, custom-themed apps like Steam and iTunes taking over the Haiku market space. We want a non-profit, middle man free, native software manager, which can give the user the best possible library of Haiku apps/media, and give developers the most profitable platform to sell their Haiku software on.

Of course they should.

Wouldn’t it be better if these apps came with the framework bundled? :S Maybe that would get bloated though with all the duplicates.

[quote=brewin]There is no point for an open source project to make money?

As an Android app developer, I think a “Haiku Market” would be a fantastic idea. It’s an easy and effective way for developers to distribute their apps and it’s convenient for users. And if Haiku Inc. took a small fee, they might even be able to hire full-time developers at some point. That’s exactly what Google does with Android. I don’t see why it wouldn’t work for a desktop OS. Also, Google does not allow the Market on unofficial Android “distros”. Haiku Inc. could do the same, which would help prevent fragmentation.[/quote]
I agree that Haiku could use an “official” market. I’m not concerned with fragmentation. This software manager/market should be completely “open”, permissively licensed etc. otherwise there’s no point. I don’t want Haiku Inc or anyone else taking shares from sales or charging fees, payments should go directly to the author’s bank account. Also again, the manager wouldn’t be limited to commercial software and there should be no quality control for what gets into the “global list”, just what gets into the official Haiku list/filter.

[quote=citi324]Didn’t BeOS’ SoftwareValet software package manager provide this sort of feature?

A Haiku market would be a good way to create a commercial ecosystem around Haiku. I don’t think it would be a good idea to make this exclusive to official Haiku releases, as that would actually be counterproductive.

Instead, I would use the marketplat as an incentive to induce distro makers into meeting certain compatibility goals: iow, distros that meet the compatibility standards would have access to the markeptplace. This would maximise potential profits for both developers and Haiku Inc., and benefit users regardless of the Haiku distro they may choose to use.[/quote]
Completely agree with the bolded :smiley: But my suggestion isn’t about a closed down, Haiku Inc. managed service. The only control Haiku Inc should have is over their own filter. The manager should be open source and free to distribute, and the global list of software shouldn’t be managed by anyone, it should just “pick up” anything that’s relevant, then filter makers build their own “approved” lists of software based on the global lists, with all the irrelevant stuff filtered out. Basically, filters would replace repositories, and packages should be hosted by the authors and P2P as opposed to being centrally hosted by Haiku Inc or whoever.