[oi-dev] Desktop Illumos Still Matters
Andrew Stormont
andyjstormont at gmail.com
Wed Sep 5 17:31:56 UTC 2012
On 5 Sep 2012, at 18:04, Nick Zivkovic <zivkovic.nick at gmail.com> wrote:
> I think that Andrew want to use a unified build system, instead of the
> loose confederation of radically different systems that's currently in
> use.
>
> I agree. A unified build system is necessary. The only question is:
> what should it be?
>
> Makefile-based, like ports/pkgsrc/oi-build?
> specfile-based?
> tcl-base like macports?
> shell-based like Gentoo's and Exherbo's?
> python-based like conary?
Userland already has a perfectly good build system. I don't understand what you're trying to accomplish here.
Andrew S.
>
> I'm fine with any of the above (as well as any that I've not mentioned).
>
> As long as we end up with a standardized build system so that
> contributors can cross-fertilize consolidations instead of confining
> themselves to just one.
>
> What do existing OI-contributors think?
>
> Anyone know what the most technically-superior or technically-advanced
> build system is?
>
> On Wed, Sep 5, 2012 at 11:05 AM, Andrew M. Hettinger
> <AHettinger at prominic.net> wrote:
>>
>> Andrew Hettinger
>> http://Prominic.NET || AHettinger at Prominic.NET
>> Tel: 866.339.3169 (toll free) -or- +1.217.356.2888 x.110 (int'l)
>> Fax: 866.372.3356 (toll free) -or- +1.217.356.3356 (int'l)
>>
>>
>> Alasdair Lumsden <alasdairrr at gmail.com> wrote on 09/04/2012 05:39:58 PM:
>>
>>> On 04/09/2012 22:42, magnus at yonderway.com wrote:
>>>> On Tue, 4 Sep 2012 13:25:39 -0500, "Andrew M. Hettinger"
>>>> <AHettinger at Prominic.NET> wrote:
>>>>
>>>>> One of the biggest issues here isn't that packages are particularly
>>>>> HARD
>>>>> to
>>>>> make with IPS (they aren't). It's that there are about three different
>>>>> approaches to it, and we need to get that standardized. Many of the
>>>>> packages are tied up in the consolidations, which DO seem to have a
>>>>> high
>>>>> barrier to entry.
>>>>
>>>> So what are the cliff's notes to the three different approaches, and is
>>>> one
>>>> of those approaches going to have a lower barrier to entry with still
>>>> high-quality results? I'm thinking along the lines of a third party
>>>> repo.
>>>
>>> I think there's a bit of confusion surrounding the terms involved.
>>>
>>> A consolidation is just a logical grouping of packages, such as "JDS"
>>> (Java Desktop System, renamed to just "desktop" on Solaris 11), "SFW"
>>> (Sun Freeware, replaced with "userland" in Solaris 11), etc.
>>>
>>> The big issue is that all the consolidations use different build
>>> systems. JDS uses RPM style spec-files similar to SFE (Spec files extra,
>>> a collection of 3rd party package recipes). SFW used a horrible Makefile
>>> based system. Userland is an excellent replacement for SFW, and uses
>>> Makefiles but in a way very similar to the FreeBSD ports tree or pkgsrc.
>>>
>>> I was attempting (with some others) to get OI updated in a "giant leap
>>> forward" replacing SFW with userland-gate (renamed to oi-build, and
>>> later illumos-userland after Nexenta started meddling). The idea was
>>> that we would try to focus on one single build system, the userland-gate
>>> style, which is the best of the lot. New software would go in there, and
>>> if we needed to update something in another consolidation, we would
>>> instead re-implement the recipe for it in userland-gate format.
>>>
>>> Unfortunately my approach with /experimental was quite ambitious and
>>> didn't quite work how we wanted.
>>>
>>> Jon Tibble is continuing to release new OpenIndiana builds (such as
>>> prestable 6, released *today* -
>>> http://wiki.openindiana.org/oi/oi_151a_prestable6+Release+Notes) and is
>>> advocating we do move to a single build system based on userland-gate,
>>> but more slowly and in a more controlled fashion.
>>>
>>> oi_151a actually already has a mini userland-gate/oi-build, which you
>>> can see here:
>>>
>>> https://hg.openindiana.org/sustaining/oi_151a/oi-build/
>>>
>>> It's used to deliver some additional software and some bits from other
>>> consolidations have been moved there.
>>>
>>> It is probably where people should focus their efforts moving forward.
>>>
>>> Incorporations are probably what people are bitching about, which are
>>> there to provide "lockstep" upgrades between known working version sets
>>> of software. "entire" is the best known incorporation, which with each
>>> release locks all system software at a particular version.
>>>
>>> Incorporations are needed to prevent your system getting shafted. Lets
>>> say you are on oi_148, and in oi_151a we introduced some new software
>>> called "foo". Foo depends on version 2.0 of "bar". oi_148 delivers "bar"
>>> version 1.0. Without incorporations, if you "pkg install foo" it will
>>> upgrade "bar" no questions asked. Any software linked against bar
>>> probably just stopped working with libbar.so.1 changed to libbar.so.2.
>>>
>>> Incorporations present a challenge when you're developing software,
>>> because they stop you installing new versions of things. The way to get
>>> around this is to have "empty" incorporations on your development
>>> system, that way you are free to shaft your own install if you want to.
>>> It's like taking your seatbelt off.
>>>
>>> Incorporations map to consolidations, so SFW, JDS, etc each have their
>>> own incorporation. This means the incorporations have to be updated when
>>> you move software from one consolidation to another, eg from JDS to
>>> oi-build.
>>>
>>> Hope this makes sense.
>>>
>>> Alasdair
>>>
>>
>> I used terminology sloppily, thank you for clarifying for everyone.
>>
>> Source Juicer used the same RPM style spec file that SFE uses, with a web
>> frontend to automatically handle submitting and building packages. What it
>> lacked as a simple way to promote a package once it had been testing for a
>> while. And the process for getting that done that was always a thorn in all
>> of our sides. As I recall, for someone on the outside, it was "badger the
>> right people in sun until you where annoying enough that they'll do
>> promotions just to get you out of their hair". Even for all it's problems,
>> it was a really good system, which (atleast for those of us who knew about
>> it) strongly encouraged contribution.
>>
>> I feel that as long as there are so many differing build systems, people
>> will tend to confine themselves to one of them, and not be as productive as
>> they can be.
>>
>>
>> _______________________________________________
>> oi-dev mailing list
>> oi-dev at openindiana.org
>> http://openindiana.org/mailman/listinfo/oi-dev
>
> _______________________________________________
> oi-dev mailing list
> oi-dev at openindiana.org
> http://openindiana.org/mailman/listinfo/oi-dev
More information about the oi-dev
mailing list