Haiku, Inc. accepts contract relating to package management

News posted on Mon, 2010-12-27 23:50

As seen with the poll for the must-have features for R1, the lack of proper package management is clearly one of the items that are delaying the release of R1. More importantly though, as package management is an actual lacking feature (as opposed to a bug in an existing implementation), even the beta cycle is being blocked as a result. In order to progress, Haiku needs package management.

Despite some brain storming, an initial implementation of a PackageFSand the specification of its package format, little else has been done and much remains.

To help remedy this, Oliver Tappe has submitted a contract for 160 hours for a total of $2,622 USD. His efforts will center around doing the groundwork of getting package management actually started.

Specifically, this involves,

  • evaluating various existing package management components, to determine if any make sense as part of Haiku's package management system
  • evaluating the strengths and weaknesses of existing meta packages (e.g., apt, pacman, smart, ...,)
  • evaluating if (and how) PackageFS can be used in conjunction with any of those meta packagers

These tasks could be seen primarily as a research based contract. While this is not a direct coding task, it is part of the development process. More importantly, is it work that is needed for R1 and this contract will allow it to receive some much needed attention.

The year 2010 has been a milestone in the project. The level of financial support reaching the project, (primarily as donations to Haiku, Inc., as well as to Haikuware Bounties, and the Haiku Support Association) has simply been overwhelmingly positive and encouraging.  All of these contributions allow Haiku to be put on the fast track to R1. Thanks to all of you for showing your support!

If you appreciate this contract and would like to see more, please consider a donation to Haiku, Inc., as this will help to support the next contract.  As always, Haiku, Inc. is eager to consider contracts for developing Haiku, even for non-C/C++ tasks that help pave the way towards R1.

Comments

Re: Haiku, Inc. accepts contract relating to package management

Very nice.

I think the dependency management part of maven can be used for some inspiration.
http://maven.apache.org/
http://maven.apache.org/guides/introduction/introduction-to-dependency-m...

Re: Haiku, Inc. accepts contract relating to package management

Nice to see this project, and mention of regular financial contributors.

Regarding package management, it may be a good time to also think about how Haiku will update itself. i.e perhaps any possible updates to the final release could be installed by the package manager as well? So, maybe the package manager has to be able to restart Haiku after installations and so on.

Re: Haiku, Inc. accepts contract relating to package management

Nice to see this coming along! Looking forward to package management (and self updating, of course.)

Re: Haiku, Inc. accepts contract relating to package management

Personally I would like to see the following in a package manager...

* A small generic .pkg style installer
* XML based installation specifications internally
* tar xz compression (as it's so good and is already supported in Haiku)

And some nice-to-haves:
* Internet update support? (eg XML can specify an update URL for easy updating)

And the please no's:
* Dependency tracking.
- If the software will not be in a central repo, dependency hell is *easy* to get into "Gutenprint vs Guten Print", etc ... just look at what rpm's did to RedHat before yum/rhn.

Re: Haiku, Inc. accepts contract relating to package management

Before yum? I've used many Fedora releases and they have all used yum. Last time I checked it was still way annoying, with double entries, dependency hell and all that. That's one reason I still don't use rpm-based distributions, when I feel like using Linux that is.

Re: Haiku, Inc. accepts contract relating to package management

Thanks for helping my point :)

I'd rather just install the package and get a "libSDL missing" shared library error, most pieces of software use only one to two special case external dependencies anyway.

Re: Haiku, Inc. accepts contract relating to package management

Why are people so stubborn?

The only reason Yum has sucked (not so much in the past two years) is because of some pretty serious performance issues. I really hope we can have something that is much quicker :D

Try a relatively recent (~2 years) version Fedora or CentOS and you will find that everything you will try to install will just work! No dependency hell. Get with the times.

Dependency hell that was part of Red Hat based distros was not due to the package format, RPM tools or Yum as damn near every "zomg Linux/RPM/Yum/RedHat sucks!" fool loves to imply. RPM dependency hell was caused by LACK OF ORGANISATION of package repositories or people trying to install packages not meant for the target distro or release. A package manager is no magical bridge between distros/releases either.

Truth be told RPM could actually be a drop-in solution for Haiku because it is an agnostic format; especially when compared to the Deb format which means you *must* always stay Debian distribution compliant. RPM does not mean that Linux packages will work in Haiku and it doesn't even necessarily mean that packages will work between Haiku distros. RPM doesn't even imply the .rpm extension and it definitely doesn't mean that we have to use Yum (Smart seemed quite good last I used it).

If you are trying to install a package not intended for your distribution or release you get what you deserve! And if you run into dependency hell while installing from your distribution's repos then no package format or management tools will save you anyway. Go chase after packagers and repo managers with pitchforks and stakes to get the issue resolved.

As far as the "lets not do dependency management" argument goes - I've seen how painful it is to install dependencies for programming projects and for the majority of Open Source applications under OSX. While I appreciate aspects of this approach lets not forget that we must make Haiku very Open Source and Developer friendly.

I have been playing with Pacman lately and I quite enjoy it. It lacks package signing which is a pretty serious security issue. Last I heard they had come up with some fixes for the issue... you can read the bug report yourself. https://bugs.archlinux.org/task/5331

Re: Haiku, Inc. accepts contract relating to package management

To be honest, I don't know the exact technical details as to why it won't work as it should. I have heard several times that "Now it should work because we have yum!" or "Now it should work because we have PackageKit!" or "Now it should work because we have better organization!" and so on, but it never does. I don't know what is wrong with these distros in relation to package management, but it's definitely something. I've tried a lot of Fedora releases up until like a year ago. I've tried PCLinuxOS and Mandriva as well. Every time it didn't take long before I ran into these issues.

I always avoid packages for other distributions, I wouldn't complain about that.

Re: Haiku, Inc. accepts contract relating to package management

I'm not sure Haiku needs Linux-style 'package management'. Haiku definitely needs a user-friendly way of distributing, installing, updating and uninstalling software, though, and it needs to be carefully thought through.

Reading up on PackageFS, it sounds great and is really well thought-out. I think compressed packages are extremely desirable, but would require some thinking through. Compressed packages could be decompressed and cached on the fly in a way that's completely transparent to the end user (i.e. 5gb cache space, packages and/or resources within them are extracted on the fly, when cache space runs out it removes old and infrequently used packages, and when there's insufficient hard-disk space the compressed package can be ran in memory with a slow-down warning). In the long-term, an application-exposed caching API may also be useful, so resources can be pre-emptively cached before use (think: games loading resources for the next level). Manual compresson/decompression could be included as well. To make all this work and be quick, the package would probably need to contain integrity checks for both the compressed and uncompressed versions, and possibly individual files too. Package signing, which would be a very nice security feature, would probably need to do that as well. Updates, which would presumably use something like bsdiff to be efficient, may also be messy.

My only slight concern is how software that is typically packaged together will work with a single entry-point. This applies to both GUI applications and command-line software - vi/vim and Office packages are probably the most simple examples.

I'm not convinced a Linux-style package manager with a centralised repository and automatic dependency resolution is necessarily a good idea.

Native software should largely be reliant on Haiku-provided libraries which have a stable API. By making dependency resolution simple and fast, I can see it becoming a crutch that software developers take for granted, with the end result being the ridiculous cross-dependency problems that Linux software has and the bloat that comes along with it.

I also think it's important that any solution does not put off commercial software developers by favouring open source too much. One of the reasons I like Haiku is that its developers are friendly to all software, open source or not.

Re: Haiku, Inc. accepts contract relating to package management

I think we should make it simple; let the package manager extract a self-contained application into /boot/apps/APPNAME, with libraries in /boot/apps/APPNAME/lib. Libraries will then not pollute the system, and the apps will be portable and work right away. The focus on native-ness and not relying on too many external libs will be natural, as the app will get larger the less native it is. Anything else gives me the Linux chills.

I also strongly believe we need to keep the core system separate from external applications. Even if you remove every single application from the package manager, the system should still be working.

Re: Haiku, Inc. accepts contract relating to package management

I don't understand why you prefer directories to packages/bundles. Applications being standalone packages/bundles seem hugely beneficial, even with the problem of multiple entry-points and the complication of compression (although, having thought about it, simply distributing .hpkg.gz and forcing people to decompress may be the best compromise in that regard).

I agree with you about the Linux comparisons and how dependencies should be handled, though.

Re: Haiku, Inc. accepts contract relating to package management

I don't know if I understood you correctly now, but are you thinking that we should have something like an APPNAME.app file inside /boot/apps (by default of course; since it's portable you can move it if you want), which functions like a renamed archive in which everything belonging to that app resides, instead of giving it its own directory? I can definitely see some elegance in that, if it's not overly complex and if it means that you just double-click it to automatically open the default executable, and you can somehow browse and edit the contents by right-clicking -> Explore or something to that extent.

Re: Haiku, Inc. accepts contract relating to package management

"but are you thinking that we should have something like an APPNAME.app file inside /boot/apps (by default of course; since it's portable you can move it if you want), which functions like a renamed archive in which everything belonging to that app resides, instead of giving it its own directory?"

Yes, as per OS X - this really is the most elegant solution. Decompress an application, double click it, and it works. This is exactly what they do. Could make universal binaries containing GCC2/4 binaries & libraries. There really isn't a need for a package manager. OS X proved that.

Re: Haiku, Inc. accepts contract relating to package management

Sounds good. But OS X has its Unix legacy with a Unix directory structure, which AFAIK they try to work around through a lot of trickery making the user see a directory structure that doesn't exist instead of what's really there. I would like to leave that part of the OS X experience out. Otherwise it's a good idea.

Universal binaries? I don't think we even need that. We could just have two binaries in the "archive" (APPNAME.app); a GCC2 one (APPNAME.gcc2.hexe (hexe for Haiku Executable :P) and a GCC4 one (APPNAME.gcc4.hexe), inside, and let the OS automatically run a default binary when you double-click the "archive" (APPNAME.app).

Re: Haiku, Inc. accepts contract relating to package management

Lots of comments here about APT, YUM, Ports etc. What we should really be looking at is iTunes, specifically the Application store.

a) it allows users to rate / comment applications
b) it allows customers to purchase software

Re: Haiku, Inc. accepts contract relating to package management

Never used iTunes, but letting users rate/comment applications and purchase them sounds like good features. How does it work, apart from that?

Re: Haiku, Inc. accepts contract relating to package management

The important thing, IMHO, is to leave the possibility to download the "bundle" from a site and the clicking on it if it needs some dependency let "Package manager" solve it... in this way we solve a great Linux problem if it isn't on the repo... we HAVE to compile it!
Maybe not all the haiku application will be on the Haiku repo, so we have to download it from the developer site...

Another important thing is to avoid the multitude of repo: this app in the Universe repo, this is in the Multiverse, this has a repo only for it (!)... should be one only centralized repo, mirrored as you want but must be the ONE!

I rest on the opinion that the APPLE way was better we NEED a universal means of installation, right, but all the burden of dependency hell?
Well I hope we do in the right way :-)

Re: Haiku, Inc. accepts contract relating to package management

All this talk about dependency this and dependency that, is getting really tiring. Why do we have to make it so complicated? Just make a subdirectory called "lib" for every application and include every library that is needed, inside that "lib" subdirectory before distributing the app, and be done with it. No black magic needed, the user can just run it after extraction with no fuss. No polluting the system. A package manager shouldn't have to do anything other than installing and uninstalling applications IMO.

Re: Haiku, Inc. accepts contract relating to package management

I've been on OS X for about 4-5 years, and download and install a lot of apps. I like going to websites and downloading exactly what I need. With a package manager, I feel like I'm losing control of what's being installed/uninstalled on my system to resolve dependencies. Honestly, I've never had an application fail to start (crash maybe, but rarely), or say it's missing x,y library on OS X, and applications that are 4-5 years old still work because of the way they're packaged. You'll be lucky if an application from BeOS or even an app compiled under Haiku Alpha 2 still works on current revisions.

I think the primary focus should have been on an IDE and guidelines to properly develop applications so that the user doesn't experience non-functioning applications or 'application is missing x,y'. This is probably what lead people to vote for a package manager in the first place. I still find the whole GCC2/GCC4 issue confusing. Which should a developer develop for? What are the advantages/disadvantages of both? Is there an easy way to develop both a GCC2 and 4 binary? Is there a way to package apps so that my binary will run on both systems?

A secondary focus may have been a package manager for OS updates and system files/libraries only. Haiku may be opening a can of worms if they're to accept third party applications into their package manager. Who will administer the publication of apps to the repository, how are apps accepted/rejected, where will the repository be located? etc. I think the intention of this package manager should be clarified as to what content it will provide users.

Re: Haiku, Inc. accepts contract relating to package management

I think binary incompatibility (dependency hell is a different issue) is mostly a thing of the current times. Haiku started out with the focus of being a complete, binary-compatible, continuation of BeOS. The focus on staying compatible with BeOS was dropped before the compatibility had been perfected. Haiku-specific applications aren't supposed to be binary future-proof at this point AFAIK because the ABI is not stabilized yet. I could be wrong, but I think that's where the incompatibility issue lies at this point.

When it comes to the third-party application issue, perhaps we could let every application author have their own repository with only their software. Like let's say Firefox gets ported, then Mozilla will have a Firefox repository run by them. It would never work for Linux because of all the distros, but Haiku is just one OS.

Re: Haiku, Inc. accepts contract relating to package management

Well, this is about personal preference but I don't like the idea of every package bundling libraries, which are then duplicated across tons of other packages and likely the system aswell. If the package is closed source and relies on a particular version of a library then by all means statically link that library with the app.

kvdman:
-"I've been on OS X for about 4-5 years, and download and install a lot of apps. I like going to websites and downloading exactly what I need. With a package manager, I feel like I'm losing control of what's being installed/uninstalled on my system to resolve dependencies."

It's the exact opposite. The package manager logs everything that's installed so that you can actually remove EVERYTHING that was installed. It will also warn you when uninstalling if some other package relies on components of the package you are uninstalling. When you are installing using an included installer (as is often the case on Windows) you really have no control of what is installed, sure the application will show up where you point the installer but you don't know what else/where else it has installed. And as pretty much everyone who has used Windows for a long period of time knows, when uninstalling Windows software, VERY seldom does the uninstaller actually remove everything that was installed, which lead to the classic 'ever-growing Windows' problem.

Then there are programs which comes without installers, apart from using a package manager these are my favourite type of distributions, just unpack to a directory. Simple to remove when you no longer want it. Problem here is external dependancies such as libraries, on Haikuware there are alot of ported apps that needs libraries from those huge library packs, so you install huge library pack A. Sweet, now the application works. Then you install another app which needs a library thats not available in pack A, so you install huge library pack B. Now the application works, but your system is filled with a ton of libraries that you don't need. This is not the light efficient model with which I associate Haiku. A package manager makes sure you only install the libraries you need for the applications you have installed. It also allows you to safely remove uneeded libraries together with applications. I don't buy the whole 'diskspace is cheap' excuse, and again it's far from what I envision a Haiku system to be about.

Now I can understand that Karl (kvdman) isn't to keen on a package manager since it will make Haikuware less needed, but I think Haikuware and a package manager can complement eachother very well since I think an official package manager will focus mainly on larger/stable packages and system/library upgrades.

Finally, there's no right or wrong here, we all have our preferences. I find a package manager to be a great way of keeping a lean updated system with only the files I actually need. Your mileage may wary.

Re: Haiku, Inc. accepts contract relating to package management

"Now I can understand that Karl (kvdman) isn't to keen on a package manager since it will make Haikuware less needed"

That's not the reason. I just don't think a package manager will solve Haiku's problems, and a website can convey much more information. The way software is developed on Haiku needs to be sorted out first. BeOS wasn't released without an IDE, an easy way for developers to program for their operating system and relevant documentation - this to me is more important. Limited package management on BeOS actually came later through a third party commercial entity called Software Valet (where the pkg format came from). Although BeOS had their own software (BeDepot I believe), it was a failure, and they realized it was best developed and handled by a third party.

I think most purists will always turn to websites for their software needs. The majority of the world (i.e Windows & OS X users; and even BeOS users) are, and were used to fetching their software from website repositories (download.com, versiontracker, and bebits) - this is the market and users Haiku will inherit. As you said, it's all a matter of preference. I find this type of software will only be useful to technical Linux minded folks (or for core OS updates), and conversely, the majority of users will use websites for software. I hate to say it, but after thinking a bit about it, I find this a waste of precious resources. That said, I have contemplated pleasing everyone and have looked into package management software for haikuware myself - it's not my preference, priority, or other people's resources though.

A final note, the statistics for the 'final features poll' didn't meet justification for this contract and the priorities voters had. I outline my thoughts here:

http://haikuware.com/20101231558/final-poll-features-analysis

Re: Haiku, Inc. accepts contract relating to package management

I am with KVDman here.

Package management solves a problem that simply should not exist. This problem DOES NOT EXIST, unless the Haiku community and the Haiku devs allow it to exist.

I herby forward a much better solution.

I would this solution

HCT

Haiku Compliance Testing/certification "or something similar" create a logo to. Nothing fancy.

The basic idea here is that Haiku developers institue a way for application builder to create software, and enforce the standard. All APPS that meets those standards get a HCT symbol for thier app.

What does this mean ?

Well it means that third party software must not corrupt or alter in anyway core OS files "which I would recomend finding some way to secure". Multiuser modes is not needed either, just a file password is enough to alert the user.

It means that each application must be tested to ensure it properly utilizes Hiaku API and or add ons " for instance QT should be able to recieve a HCT badge":

What this does.

It takes the work load off of the core devs working on mission critical things like the kernel, system tools, drivers and other item deep in the OS where specific knowledge is required.

It would take all of about 1 day to create and implement this system. Its not something that needs alot of debate or discussion.

No compliant apps do not recieve the HCT and a small routine could be built into HAIKU to notify the user of wether a application that is attempting to be run is NOT HCT compliant. It doesn;t have to block the application. Simply notify the users of its status, In fact one of the things the DEV could institue is a simple attribute on the file and make a specific or bunch or specific formats or file compression standard for applications. Ie ZIP,RAR,TAR etc. Add a extra meta tag so that when apps are identified "with some name like zip with a atribute of APP and bury the HCT in there.

Its really pretty easy, approved apps builders who meet the certification requirements for quality and design will be allowed to submit apps and have them reviewed, haiku adds a seedkey pair to its data base and those distributed apps will show as being HCT apps.

If as a community we avert this mess by putting the onus squarley where it belongs, package manager become a part of history. where it belongs.

instead of adding yet more time to a already very long process, lets create a process that ensure quality applications are written.

I am not suggesting that a developers can't bundle a library, but it shouldn't be able to damage a library somewhere else in the core of the OS. a Problem linux can often face.

I might be new around here and my opinion might not matter much, but you guys already have enough work to do, shove this responsability back to the folks who should bear it burden.

To note there could be a simple patch system put into place should a system lib need updates for something.

Basically though, my opinion is that if a developer is to lazy to comply with a fiarly basic app developement guidline "special cases noted where functionality does not exist, defers back to a patch system upgrade issue" they generally are to lazy to develope apps worth having.

especially commercial apps.

Re: Haiku, Inc. accepts contract relating to package management


kvdman
The majority of the world (i.e Windows & OS X users; and even BeOS users) are, and were used to fetching their software from website repositories (download.com, versiontracker, and bebits) - this is the market and users Haiku will inherit.

Maybe in the 'long term' I think. I believe that Haiku will gain most of it's initial usershare (post R1) from those who are already using alternative operating systems. That would mean mainly Linux and BSD users. These users are accustomed to the benefits and usage of a package manager, be it apt, pacman (which I use), portage, ports etc. Heck even OSX has MacPorts which seems very popular. And I doubt the general user will be totally foreign to the idea since it's not really that different from AppStore or Android Market.

Finally it's not as if you have to use it, there's nothing stopping you from downloading applications from websites and manually resolve dependancies. For those who likes to use a package manager it offers a very convenient way of managing software (be them apps/libraries/os upgrades) on their systems.

Re: Haiku, Inc. accepts contract relating to package management

kvdman
-"I think most purists will always turn to websites for their software needs."

Beos purists? I'm not sure I follow this.

kvdman
A final note, the statistics for the 'final features poll' didn't meet justification for this contract and the priorities voters had. I outline my thoughts here:

While I'm certain the devs find the 'community' poll interesting, at the end of the day they will implement things mainly based on their own needs (bounties being an exception, thanks for all your hard work in this area Karl).

Looking at the way the actual devs voted in regards to a package manager, 14 voted it to be a 'must-have', and 15 voted it 'only-if-ready'. Of course since there wasn't a 'do not want' option we don't know how many (if any) of those voting 'only-if-ready' doesn't want a package manager at all. But I'd wager that if we combined those who voted 'must-have' and those who voted 'only-if-ready' and who actually wants a package manager but don't see it as a priority, it would make a decent majority amongst the devs. Given this I think it hasn't really been a question of whether or not there was going to be a package manager for Haiku, but rather when. And it's the latter (when) that I believe the public voting may have affected. Hence this package management contract.

Re: Haiku, Inc. accepts contract relating to package management

in Response to ROX

Well, as alot of the software on haikuware is in a state of flux, I can see that being a problem. But its not like disc space is at a huge premium. I recenetly downloaded ever single haiku apps, library etc onto my machine. Everything I could find from beos r5 through to now. it added up to a whopping 18gb. yes 18gb. Its so big that my "dedicated haiku" 1tb hard drive struggled to contain it all.ROFLMAO.

this isn't 1998 disk space is cheap, hell show me a machine you can buy today for under $500 that doesn;t come with a 500gb or bigger harddrive. In about a year new hitachi drivers are gonna hit the scene with 8x denser platter arrangement. thats right 8tb drivers.

face it, disk space is cheap and I have games "with exspansion packs"on windows that have bigger librarys then everything including the Haiku can muster.

Hell my superior Drummer library is bigger then everything on haiku and thats just one program.

this pedastal about diskspace is old and tired, just like ram. I can fart out 1gb of ram for $20 anywhere on any machine on the planet.

If someone destitue person off in a thirdworld country can't afford a ISP or a modern pc with even modern part like less then 10 years old, they likely have bigger concerns then a fw graphics librarys for games the machine they own that can't even play them from a raw HP perspective.

Its a silly argument, most of the haiku userbase will initially be europe and the USA and other industrialized 1st world countrys.

this is a strange platitude I have seen a few developers get on.There are many places around the globe to this day that don't have electricity let along a 386 pc.

the bulk of potential haiku users own , netbooks, notebooks,laptops, and desktops. Most of them less then 10 years old.

its just not a concern nor should it be. you build a good os, the rest sorts itself out over time. There no such thing as a futureproof anything in computing and everyone here should know this by now.

Re: Haiku, Inc. accepts contract relating to package management

This is very sad where Haiku is going and what voters have in mind. What's wrong with you, people, do you want to turn this into yet another shitty linux distro? Linux package management is not just bad- its evil, and installing third- party apps is nightmarish. Linux proved, OS using package management must overcome obstacles unknown under any other OSes. Maybe its OK for lusers without gfx acceleration in X, but for me- and I bet, not just for me- is not. I want app, I download it from website. Or wherever author put it in. If you don't know what it should look like, look at windows or even OsX. I really don't understand why you want that linux-ish mess so badly. For updating core OS libs? There are better solutions. If you want everything so awesome centralized, then just go back to buggy Linux. Or fly to some socialistic paradise. Now the contract is submitted, and everything is f_cked up. Congrats, team Linux.

Re: Haiku, Inc. accepts contract relating to package management

Oh no! Please no packet manager.
There really is no need what so ever for a packet manager.
It will cause more problems then it solves, if there is a problem to solve at all.

please please please reconsider.

Re: Haiku, Inc. accepts contract relating to package management

If you look you'll see that 59% of users voted for package management in R1. 978 votes. I agree that some form of package manager, maybe something simple, is needed in Haiku. I like using a program to install applications and libraries. Makes doing this easier and faster - making things simplier for me.

Installoptionalpackage is a script and functions like a simple form of package manager which was created to fill the gap until a real one was developed. Has anyone used installoptionalpackage? Don't you like how it works? That's basically how a package manager will function.

If package managers weren't good then why does Apple have their store in iOS (App store)? And Google's Android marketplace on tablets & phones? And Linux OSes use them too? Lots of people enjoy using them also. If downloading from website was better than why did Apple & Google offer stores (which are package managers) for people to buy or get free and install programs?

Sorry but package manager is super idea. Almost 60% of voters agree that R1 should have one. Only question is the complexity of Haiku's. The two hardest things, from application standpoint, are dependency tracking and system updates (with memory mapped files).

Re: Haiku, Inc. accepts contract relating to package management

Apple Store and Google MarketPlace was create for CONTROL that YOU can install: first a developer MUST pay to be in those package managers and 2 if an app is not conform is not approved or can be deleted!

The important thing is that package manager is NOT the only way to install an application (as in Linux is): the repository can be bigger as you want but can be always some software or library that isn't on it!
So I should download it, then package manager can take place to (eventually) solve dependencies...

Re: Haiku, Inc. accepts contract relating to package management

This is up to us, we don't need to control, like Steve Jobs does. But we need Ipad or Android - style store. Developers must have means to sell their software, otherwise the result is Linux - almost no commercial apps.

Re: Haiku, Inc. accepts contract relating to package management

"Apple Store and Google MarketPlace was create for CONTROL that YOU can install: first a developer MUST pay to be in those package managers and 2 if an app is not conform is not approved or can be deleted!"

Yet many developers are posting applications to the pay-for package managers. Last I saw there were 300,000 programs for iOS and 200,000 for Android. With some developers bringing in way over $250K in 3 months time.
http://www.wired.com/gadgetlab/2009/02/shoot-is-iphone/

When people get an Android tablet (or phone) the most important thing is that it has Marketplace. I wonder why that is?

Yes, you pay one time fee of $100 and then share the revenue with Google with 80% going to developer. I think with Apple 70% goes to developers.
http://developer.googleapps.com/marketplace/fees
If that is so bad then why do so many still sell their applications on Marketplace or App store? Most applications are approved if the content is appropriate.

No one said package manager is the only way to install applications. It offers another way to get programs rather than downloading from website(s). So you would rather have it so people do not have another choice?

If you don't like package manager then do not use it! No one is forcing you to use a package manager! You can always search for, find and download the program and libraries from websites. For those opposed to package managers. Are you trying to control others? People should have and make this choice themselves! If I like using a package manager then what right does someone else have to tell me not to use one??? Sounds like those opposed are trying to control my choices. If you don't like it then don't use it but many people will!

Package managers are meant to #1 reduce time used (TIME=MONEY!) and #2 eliminate (or at least reduce) complexity. A test, use installoptionalpackage script and install 5 programs or libraries. Now go to Haikuware, find, download and install the same 5 programs. How much time did you use for each way? Which was easier? What if an application requires libintl.so and you do not know where to find it? What then? Do you spend time searching Internet and asking others. A good package manager would automatically install libintl.so for you if an application required it.

Re: Haiku, Inc. accepts contract relating to package management

Dont tell me about this damn 60%. Are that goddamn percent means shit taste good? Majority want sthing bad for themselves and enforce wiser (or dont-care) minority to accept that goddamn thing. Democracy failed once again.
"People enjoy using [package managers]" - I thought main OS purpose is to work, not to be enjoyable for bunch of nerds enjoying compilation for source (achtung! : irony inside!).
It's developers mistake, i think, to let people - lusers unaware of their beloved distros grave mistakes - decide about such vital point of system. What next will we voting for- for more/ less function pointers in code, maybe? Or maybe we will choose scheduling type via forum poll? Oh, sorry- I forgot thats already done, luckily for low-level OS functionality.

Re: Haiku, Inc. accepts contract relating to package management

"If you look you'll see that 59% of users voted for package management in R1."

With a great percentage (39%) saying 'only if ready'...

The other three items that had greater priority according to voters were not contracted in favour of package management...

#27 Boot Failure Issues - 77% must have, 19% only if ready
#28 Driver Issues (gfx, audio) - 74% must have, 22% only if ready
#17 Video Mode Setting Drivers (Intel, ATI, Nvidia) - 73% must have, 24% only if ready

I'm not saying package management is a bad idea, just not a priority right now, and especially because there are work-arounds, and a rudimentary way already in place to achieve the same result.

I don't believe a comparison between package management for handheld devices to the desktop/laptop market is valid because these apps don't exist (well maybe do), and aren't used widely. Google's App Marketplace and Apple's Software store for desktop/laptops are both on websites. Maybe when Haiku finds itself on handhelds this argument can be made.

Re: Haiku, Inc. accepts contract relating to package management

The other three items that had greater priority according to voters were not contracted in favour of package management...
#27 Boot Failure Issues - 77% must have, 19% only if ready
#28 Driver Issues (gfx, audio) - 74% must have, 22% only if ready
#17 Video Mode Setting Drivers (Intel, ATI, Nvidia) - 73% must have, 24% only if ready

#1 Very good point Karl. I agree that those were higher priority and should have been focused on first before package management. Also, developer votes are what really count (they decide). Users only give their opinion but developers make the actually decisions (final say). Example: #17 was voted down by developers - 2 versus 25 for blocker. Meaning very low developer priority & won't block R1.

#2 I think package management is important for an OS. At least to me, 59% of users that agreed and almost half the developers felt strongly about including it in R1. That said, it could be something as simple as using installoptionalpackage script, providing 30-50 popular programs & libraries and creating a GUI (frontend) for the script. ie: keep first version simple. They could always provide more packages as needed like they do now. BUT decision is left to developer - see #3 below.

#3 Very important. Understand that developers decide what to code themselves & how some application should function. So, if a developer really, really, really wants package manager - guess what. They'll code it. They decide how to use their time and unless you pay them (bounty) you can't control what area they focus coding on. ie: what they enjoy working on and where to spend their time

#4 That poll was only to see what items would block R1 release. It didn't mean that developers were not allowed to work on any of those items and some areas are specialized or harder and not every developer can work on.

Re: Haiku, Inc. accepts contract relating to package management

ArchLinux has simple and powerful package system (pacman), probably also reasonable easy to port.
Especially making new package spec. is very friendly for most people, because it strongly based on well known bash and bash/system tools (this is very good idea!). So it is very easy to learn how to make new package. Much easier than for example in debian or RPM based system.

They have also grate WWW community system (http://aur.archlinux.org/), where everyone can upload package spec., and great tool which can easy download, compile and install packages from this system.

For more info, see:
https://wiki.archlinux.org/index.php/Creating_Packages
https://wiki.archlinux.org/index.php/PKGBUILD
http://www.archlinux.org/pacman/pacman.8.html

Re: Haiku, Inc. accepts contract relating to package management

I think, implementing just plain old package manager is not what Haiku needs.
We've seen success of Iphone, Ipad.
So, let's do a bit more future-looking packagins system:
1. Why limiting it software only? Let's expand, be innovate and make Haiku store, where amongst software also are e-books, music, movies, manuals, etc.
This would be extremely useful for bringing more interest and users to Haiku. Apple already does this, Microsoft is about to do this.
The biggest point of this is, that developer can actually sell his software without setting up all that infrastructure (servers, paying system etc.). Again, that brings more developers to Haiku.
2. More intellingent way of incorporating different repositories:
P2P is the future of web technologies. Can we incorporate something similar of BeShare (using MUSCLE) for delivering packages? There could be server software if you want to host your own repository. This approach of course needs some kind of security mechanism.
Of course, end user usually doesn't care on which server package is being downloaded, as long it's fast and safe.
3. Let's use Haiku specific functions, for example, live queries.
For example, every file extracted from package can have distinct signature, which package it belongs. That information can be later used for upgrading and uninstalling.
4. I really like Linux, how it categorizes software. Like same categories on package manager and software menu. It brings some kind of logic to experience - if I install new software, I know, where to look once it's installed.

I really like the look of Ipad appstore:
http://wpcdn.padgadget.com/wp-content/uploads/2010/05/ipad-apps-count-Ap...
http://images.appleinsider.com/ipadapps-100401-1.png

Vootele Aer
Estonia
Happy remaining of the old year :D

Re: Haiku, Inc. accepts contract relating to package management

I guess package management, is pretty useful for uninstalling software without having to dig through the hard drive, it makes the experience more user friendly. What I want to see right now is more external interface support, as in all of the interfaces found on an in-modified laptop or desktop motherboard to be supported, so this means USB, PCMCIA, Express Card, FireWire, RJ-11, LAN, RS232, LPT, IR and SCSI. Otherwise, many a Haiku machine will have redundant ports unless it runs another operating system. Many of these interfaces may open up the doors to a lot of extra features; LPT would allow thousands of legacy printers to be supported by Haiku, FireWire would hugely benefit anyone working with audio and video. PC Card and ExpressCard support is sorely needed as for many laptops there is no other way of expanding the capabilities of them.

Re: Haiku, Inc. accepts contract relating to package management

The app store is the way to go. The iPhone and iPad are not successful "just" because they come from Apple. Actually it is the opposite. I know quite a few people that ended up buying iPhones and iPads !!!! because it is easy to find apps, download, install them, and KNOW that they will work and not cause problems !!!

The Number One reason that Linux has not become a desktop powerhouse is because there isn't one place for John and Jane to go to for getting apps.

For those of you who THINK that isn't true you are in complete denial. Again, what is the market share of Linux? If that is the model you are going to emulate than you are fools and doomed to have an extremely small user base.

I know you are not expecing to take on Apple or Microsoft. I can almost guarantee that you will be bigger than Linux five years from now if you use the App Store model where the Haiku team approves apps, puts them in a centralized app store that people can go to and buy apps.

Android is not the way to go either. There are lots of different Android phones because they are basically giving them away. BUT, what is the income coming in for Android apps vs iPhone/Touch/iPad apps. It is a LOT smaller. Why? Because there isn't one place for people to go to buy apps. And when you give the cow away for free, who is going to pay for milk? Yes, you do understand what I'm saying.

Think about it. What is the most successful way of getting apps in the last 2 years. What is turning people on where they go and explore and download and buy apps that they don't even need because it is so easy to do? The App Store. It's so successful that Apple is coming out with an app store for desktop OS X (as compared to mobile OS X a.k.a. iOS).

Thank about that.

Make is ugly and people will not come. Geeks will only check it out and then leave because it won't be any less hassle than Linux is. People, even geeks, most geeks, don't have time to mess around. They have things they want and they want a place to get them. And they want to know they don't have to worry about whether the app is going to work or not.

Re: Haiku, Inc. accepts contract relating to package management


Sabon
The Number One reason that Linux has not become a desktop powerhouse is because there isn't one place for John and Jane to go to for getting apps.

Ehh, what do you think these package managers we've been discussing are? And no, I think the reason Linux isn't a desktop powerhouse is that A) it's not specifically suited or the desktop B) even if it was specifically suited for the desktop, competition from Windows and OSX would still prevent it from being a desktop powerhouse.

As for an AppStore equivalent controlled by the Haiku team, I think it has merits, particularly since they would be able to charge a small percentage when people buy software through it. However, it's no point implementing something like that at this stage, as it's usefullness relies on marketshare (and no, unlike you I don't think an appstore will CREATE marketshare, particularly not a nearly empty one) and creating an app store comes with it's own set of problems. First off there's a higher level of maintenance since money now enters the picture, secondly how will DRM be handled? Should each vendor selling his product submit their own DRM scheme? Should Haiku somehow supply this? Will we end up with an official binary DRM blob in the Haiku distribution? There are likely a number of other factors aswell.

For Iphone, IPad, Apple made it THE ONLY WAY to install software, so saying 'look how successful AppStore is!' on those platforms is pointless. Windows has no App Store, and they're doing 'pretty' fine on the desktop, OSX has no App Store (yet), and they're also doing pretty fine on the desktop. So the conclusion that Haiku's success somehow hinges on an Appstore is something I really have to disagree with.


Sabon
Make is ugly and people will not come. Geeks will only check it out and then leave because it won't be any less hassle than Linux is.

Again you seem confused as to what a package manager is. It supplies binaries, so you do not have to compile (make) what you download before you run it. Building from source is what you are forced to if the package is NOT in the package manager repositories, and not available as binaries from somewhere else.

Re: Haiku, Inc. accepts contract relating to package management

The reason linux isn't more widely adopted is

A. its a complete pain in the ass for most people to use. A proper commercial end user desktop OS should not have to ship with a terminal like BASH.

b. Its a mess of distrobutions and incompatable software. Tennants I touch on with the HCT/HCC idea.

C. it doesn't offer any perceptual performance benefit over MS offering s85% of the time and with the hardware issues thats a tough sell.

Haiku will be taking on max OSX and MS WIN anything wether it likes it or not. Becuase linux is a non starter. if any of the best estimates are to be belived based on web stats, install base etc. linux has maybe at best a 2% market share on the desktop..

That what we call a failure.

the APP store is absolutely the way to go, it will also help monotize the project allowing for some heavy developer man power. if hiaku takes a nickel of every dollar, it'll make plenty of money. But for that nickel for the developers get a exslcusive HCT/HCC logo on apps and a place to sell them.

APP store is a better idea, removing a program should be as simple as deleting the folder.

Re: Haiku, Inc. accepts contract relating to package management

The reason linux isn't more widely adopted is

First of all, Linux IS widely adopted.
Maybe you don't know that many servers on the internet run linux.
Many smartphones run Linux.
Many embedded devices (TomTom, LCD TV, etc.) run Linux.
Many people run Linux in a way or another.

A. its a complete pain in the ass for most people to use. A proper commercial end user desktop OS should not have to ship with a terminal like BASH.

And that's why Microsoft put so much effort into writing a better command line shell (PowerShell) ?

b. Its a mess of distrobutions and incompatable software. Tennants I touch on with the HCT/HCC idea.

That's so true, unfortunately. But the user doesn't have to care about that. He just installs applications from the package manager, from a single point, instead of going around the web hunting for the correct binary for its platform. With the risk of getting a virus or a malware.

C. it doesn't offer any perceptual performance benefit over MS offering s85% of the time and with the hardware issues thats a tough sell.

And this is the usual comment from one who never tried it, and just talks based on rumors.
Windows 7 (or Vista) work on less systems than any distribution of linux.

APP store is a better idea, removing a program should be as simple as deleting the folder.

And is clicking on a big red "Remove" button so much harder than searching for the right folder and delete it ?

Re: Haiku, Inc. accepts contract relating to package management

First of all, Linux IS widely adopted.
Maybe you don't know that many servers on the internet run linux.
Many smartphones run Linux.
Many embedded devices (TomTom, LCD TV, etc.) run Linux.
Many people run Linux in a way or another.

Linux is hardly widely adopted on the desktop or anywhere there is a high degree of human computer interaction. Linux is obfuscated by everything. Most embeeded devices do not run linux. Most people don't ever touch linux unless its on a server hosting data.

And that's why Microsoft put so much effort into writing a better command line shell (PowerShell) ?

its intended for IT departments and system admins, not the average user.

This page brings together resources for system administrators who are interested in learning about the Windows PowerShell command line and scripting environment. Please let us know how we could make the site more useful for you.

http://technet.microsoft.com/en-us/scriptcenter/dd742419

That's so true, unfortunately. But the user doesn't have to care about that. He just installs applications from the package manager, from a single point, instead of going around the web hunting for the correct binary for its platform. With the risk of getting a virus or a malware.

He/She should be getting applications from the APP store, they should be self extracting. Easy to remove is goto APP folder and delete. APP store provides security. Ensures apps work and Haiku gets "on commcercial apps" a cut of the sale. Therby funding Haiku.

And this is the usual comment from one who never tried it, and just talks based on rumors.
Windows 7 (or Vista) work on less systems than any distribution of linux.


I can't get Linux of any flavor to run on half of my machines, I am also completely unwilling to spend countless hours tweaking the kernel to fix it, on the contrary Hiaku runs on 80% of my machines and windows install flawlessly. Vista and Win7 support a mountain of hardware "with quality drivers" that linux fanbios have wet dream over. Linux doesn't just work for most users.

I also build machines and I install and configure Os's frequently. I have list of hardware that work for Opensource OS's and I stick with those pieces of hardware. Its not THAT GOOD. thats lie and a myth, linux supports alot of old outdated unbuyable hardware, sure. So what. I wouldn't want a p2 who would ?

And is clicking on a big red "Remove" button so much harder than searching for the right folder and delete it ?

No its not, but lets ask this, is it really truely needed right now with so many other overarching problems to be resolved. First we have to have a OS people can use. Getting the applications on and off can be resolved currently with some basic guidelines for package management.

as to the other comments about bloat, haiku "including the source tree" and pretty much every application I can find takes up less then 20gb or disk space including all the librarys.

Its not a platitude to get on, if you need a 40gb IDE hardrive, put up your adress and I will mail you one. This argument is insane.

Re: Haiku, Inc. accepts contract relating to package management

BeOS already had a simple package format. It worked great, and I always looked for installs in .pkg format. Whatever gets decided, just keep it simple. BeOS was simple to use. Don't go overcomplicating what was a fun OS to use with all this management overhead. BeOS didn't need it! Haiku shouldn't either...

Re: Haiku, Inc. accepts contract relating to package management

To anyone who is worried that having a package manager for Haiku will cause it to have the same problems that many Linux package managers have:

Please don't assume Haiku will have a Linux-style or iOS-style package manager. The contract is for a "package manager", not a "Linux-style package manager". Please read the package manager ideas from the Haiku developers. The package manager that is "probably the most interesting" is 0install, which has these features:

  • Any user can run any program they want, without it needing to be installed first.
  • Users refer to programs by globally unique names (URLs). So, a user asks to run "http://gimp.org/gimp", rather than the rather vague "The Gimp".
  • Users can run whatever version of a program they want.
  • Users don't need the root password.
  • Users don't need to trust each other.
  • The system administrator doesn't have to trust the users.
  • Any developer can make software available through the system (without needing the blessing of some distribution first).
  • You can install packages from an official repository, an unofficial repository, or a stand-alone binary file, from the internet or a local disk.
  • There is no duplication of libraries, even between users.

For more information, see: http://0install.net/injector-design.html

Or, see this excellent article from the creator of 0install: http://www.osnews.com/story/16956/Decentralised_Installation_Systems

Once again, please don't assume Haiku will have a Linux-style or iOS-style package manager.

Re: Haiku, Inc. accepts contract relating to package management

Some of these comments pissed me off so much I felt obliged to reply, though I'll try and tone down the bile.

To summarise what I think, I am in favour of a package manager, and think Haiku has a chance to improve on the way they work.

Let me pick an easy to understand example of why a package manager is useful. Let's say I want to install 10 apps, and 5 of those apps use the Qt library runtime. Let's say they all use the same version of the Qt library, for arguments sake (of course package managers can handle multiple versions of an library as well).

Now if I install without a package manager, I have to download the Qt runtime 5 times compared to downloading it once with a package manager. How is that better? Simply put, it's f**king not! I detest bloat, I don't care how cheap hard drive space is, one of the reasons I am keen on Haiku is that it values system efficiency, I don't want to use a system that forces me to waste download time and hard drive space.

However, as I said before, I do believe Haiku has a chance of doing things better than most standard Linux distributions. To sum up the main change I would implement, it would be 'make the file system the package manager database'.

What I want to see is that people aren't punished for how they choose to install an application. If people don't want to use a package manager, the system should respect that and still be aware of what applications are installed (which makes updating easier, for example).

Gobolinux is a useful touchstone in understanding this approach:
http://www.gobolinux.org/

It's an elegant solution, it's easy to understand and it means that if you wanted, deleting an app would be as easy as finding it's directory and removing it.

However, Haiku has the chance to improve on what Gobolinux has done. Gobolinux relies on a workaround where the standard Linux filesystem is still used in the background, but the user sees a more friendly layout. However, this is partly because of the variations within Linux file systems. To avoid having to hide the 'real' file system, draw up guidelines on where apps are installed as standard, making them easy for everyone to follow.

Also, another way Haiku can go beyond Gobolinux is by embracing the power of OpenBFS, using it's database-like structure. For example, when installing an app, you can store data about the dependencies within file system attributes. This has multiple benefits, for example if you try to uninstall an app by deleting the folder, the file manager can look up the dependencies and ask if you want to remove the associated libraries as well. The libraries also have attributes that say which apps rely on them, if the app you are uninstalling is the only one that uses the library, it can just remove it, but if another app you use also uses the library it can give you a warning, asking how you wish to proceed.

By embracing the file system as the package manager database, you aren't punished for installing apps without the package manager, for example let's say someone has installed a bunch of apps from source. As long as those guidelines I mentioned about how apps should be installed are defined, the makefiles should put the apps in the correct directories and set the correct attributes. Now let's say you wanted to update the apps in your system, including the ones you installed from source, using your package manager. Now, you can, all you'd need to do is get your package manager to scan your folders and the new apps would show, ready to be updated.

Hope others can appreciate where I'm coming from on this. Comments welcome.

Re: Haiku, Inc. accepts contract relating to package management

Well, glad your pissed off, imagine hearing that a OS in developement for 9 years that has no beta on the horizon is stalled by a uneeded service app. Imagine hearing that a LINUX solution is needed, hardly on both counts.

Imagine after signing up for computer programming class's to learn c and c++ and buying the api books and spending countless hours researching the subject manner, to hear "opps we have to hold up the beta" becuase we need to do something like linux.

Linux shows us package managers are uneeded, the uneqauivicable proof of this is that windows simply has a install program, you download the program and hit install. and it does. There is no central repository,for all the fancy ways linux makes computing more complex, microsoft shows us all the ideas about end users and operating system held by linux supporters are flat out wrong to the tune of 1% market share.

Don't start on the bloat crap either. Show me where it really even effects anyone. winxp is the wolrds most singularly popular operating system, its like 10gb installed with all its built in features.

haiku currently is like 500mb.

Re: Haiku, Inc. accepts contract relating to package management

@thatguy
I don't know how old you are, but I suspect you're fairly young as the wasteful attitude you're demonstrating shows you do not value efficiency, which you would have learnt to value if you'd grown up using more limited systems.

You seem to want OSX, why don't you just run OSX?

I want Haiku to be efficient. It doesn't matter if I lose 5mb or 5gb, the fact is I have no need for duplicating code.

"the uneqauivicable proof of this is that windows simply has a install program, you download the program and hit install. and it does. There is no central repository,for all the fancy ways linux makes computing more complex, microsoft shows us all the ideas about end users and operating system held by linux supporters are flat out wrong to the tune of 1% market share."

This is hilarious. Do you know what an install program is? It does exactly the same job as a package manager does when it comes to installing programs, except:
1. Unless you use .msi, each app needs its own installer.
2. Once you've used the installer, the installer file is pretty much useless, whereas a package manager can help keep your app up to date.

The reason Linux isn't more popular is because it doesn't natively run Windows apps (Wine is cool though), and because most people are comfortable with Windows (it comes with their computer, it works, they know how to use it, why wouldn't they be?). The Linux market share has nothing do to with being inferior, why do so many server and embedded systems use it if it didn't work for them? Most users are happy with Windows. I take it you're not though, otherwise why would you be here?