IPS == FAIL
Look, I really, really wanted to avoid entering the packaging debate. I mean, its an emotional decision, right?
Well, its supposed to be.
Except that I've spent nearly an entire day trying to figure out how to onu the latest illumos gate (which includes Rich Lowe's b147 merged in). I have gate changes that I desperately need to test in the context of a full install. (Well, I could say "screw it", and just test the bits in place -- which I've already done, but that's hardly a complete test.) I can't test them. Because I can't figure out how to use the packaging system to install them. And neither can our resident IPS expert, Rich Lowe.
This is no longer an emotional decision for me. Yeah, there are a lot of "emotional" things not to like about IPS. (It forces a dependency upon Python; its still immature; it seems to fail if you are disconnected from the network; it doesn't seem possible to build and install "just" a single package; apparently there are a lot of magic incantations that nobody outside of the IPS developers really understands; etc.) I was willing to set aside all those "emotional" responses and use IPS, if it worked. If for no other reason than the fact that it did away with BFU I have been willing to give it my best effort. But the latest situation has left me dead in the water, and apparently NO ONE can help me.
Look, I'm not a complete moron. (Well, maybe you disagree with me, but this is my blog.)
I should be able to make this work. If I cannot, then what kind of barrier is this going to create for participation from other people? Is Rich Lowe going to hold the hands of everyone else to get past these issues?
What happens the next time the pkg folks introduce another flag day?
This is unacceptable.
I'd like to hear other solutions. At the moment, I'm very very seriously considering gutting the IPS build requirements and having illumos go back to building SVR4 packages natively, using a tool to convert IPS meta data. (So meta data would be IPS, but binary deliverable would be auto-generated SVR4 packages.)
The current situation reminds me of Linus' comments about CVS. I feel the same way about IPS right now. I'm very angry ... the tools that are supposed to facilitate development have caused it to cease for me. If the only way for me to move forward is to reinvent SVR4 build systems, then that's what I'll do.
IPS is a failed science experiment. I don't see how it is going to get widespread adoption from anyone (ISVs or otherwise) with it as it stands today.
Flames to /dev/null. Let me know if you have a solution though.
Update: Rich was finally able to get me to the point of working. Although I can't ever downgrade. After what I just went through, I never want to. I'm really terrified that nobody really understands the steps it took to get me to a working state, and I am unwilling to force others to go through the same nightmare. So I'm still made at IPS, and I still think we need to unhitch the illumos cart from it.
Comments
That being said, I agree with you that that IPS has had its chance, and failed over and over again. It is frustrating, at-times cryptic and seems to require far more effort than managing the files myself would.
I appreciate that Illumos wishes to be package-neutral, but think that it might be time to (at the very least) mothball IPS and focus on the project's goals rather than fighting with a tool whose potential was far greater than its implementation.
+1 for progress over pedantics.
And i'ld actually vote for dpkg. Its proven, well developed and the tooling around it is at least not bad.
And just like with Linux I actually do not see the value of a gazillion of packaging systems. Decide on one and go with it.
Be it SVRr4, dpkg, rpm or bsd ports.
I appreciate the concern, but expressing in terms of a bug report would be wonderful.
I don't imagine all the kinks are ironed out of either the ON build system or the way IPS interacts with it, but that said, the rest of the world doesn't build ON regularly: focusing on real-world usage of IPS obviously took priority I suspect.
Seriously: bug reports welcome.
I know that I had issues with onu, and Rich probably understands the problems better than I do.
A packaging system has to cater to both the people who install software, and to the people who *build* and package it.
There's value in going back to SVR4 as well, since that's what most people using Linux have in production, and its what ISVs already are dealing with.
Your statement about not being able to downgrade confuses me; IPS doesn't do downgrades. Instead, you should boot and older boot environment.
Good thing about IPS manifest is that it is very simple format and it is easy to convert it to something else. Few actions can be converted to shell scripts and the rest is mostly about deliverables.
Until there is a good replacement for Jumpstart I stick with SVR4.
It's unfortunate you encountered an issue, but unless you ask for help and tell us what specifically was wrong we can't help you.
At this stage in the project, most problems are a result of package issues, and not package system issues. The pkg(5) system isn't complete yet, so there are some rough areas. But I personally believe it has most of the core functionality one would expect.
You can always email pkg-discuss for assistance, or try on #pkg5 on freenode. And, as you already know, Rich Lowe is an expert in this area.
He may have a better idea on the nature of the root cause of the problems, but I'm not really sure.
Fundamentally, I can't risk illumos' future on a packaging system that has flag days that mean we can't package or install our own bits without hand-holding from a developer.
Most community OS distributions that are based on an upstream project keep the native upstream's packaging system for a lot of good reasons.
I might also add that choosing a different packaging system than the one that will be used by Solaris will put IllumOS users at a serious disadvantage.
However, your target audience may be willing to put up with all of the shortcomings of SVR4 or the inability to confidently use native IPS packages meant for Solaris.
But I want to be able to build and the foundation code without dealing with breakage in pkg-gate.
I want users to be able to contribute without having to deal with the nightmarish scenarios I encountered.
The current idea is that nightly will be able to build packages in at least IPS, Debian, and SVR4. But only SVR4 will be enabled by default, and building the other two will require other components on the build system whereas the SVR4 bits will build using just the stuff in-tree. (And yeah, we can add targets for RPM, and random packaging format X too.)
So pick a version of pkg(5) that works for your project and stick with it. It seems silly to argue against using IPS simply because it's in-development nature might inconvenience you.
So I'll assume that IllumOS is going to re-invent install, update, and zones mechanisms since all of those are now reliant on pkg(5).
Have fun!
R1:https://www.illumos.org/projects/cpamtww
@Theo, I'd definitely appreciate hearing of the specific problems that you've had with IPS.