9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Enrico Weigelt <weigelt@metux.de>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>
Subject: Re: [9fans] plan9port lacks exportfs server
Date: Mon,  3 Nov 2008 01:15:44 +0100	[thread overview]
Message-ID: <20081103001543.GC27416@nibiru.local> (raw)
In-Reply-To: <2529BB27-520B-432E-9A70-3FB5EE5E938B@sun.com>

* Roman Shaposhnik <rvs@sun.com> wrote:

Hi,

> >Besides the fact that I'm not making binary packages at all,
> >splitted / small sources make packaging a lot easier.
>
> So let me  get this straight: you're trying to solve a problem
> that you don't have, right?

No, I got a problem to be solved, but it's not to produce
general-purpose binary packages. Instead the problem is to
produce buildfiles for Gentoo on the one and my own embedded
systems builder "Briegel" on the other side. Both have in
common that they always work ontop the source (hopefully the
upstream's source, but unfortunately often requiring additional
patches), while Briegel has some harder constraints, eg. always
doing crosscompiling, basing on sysroot (a kind of chroot for
from the compiler's perspective), etc. Of course I'm building
binary packages, too, but they're always specialized for some
particular target system, not general purpose, not comparable
to what common binary distros do.

Embedded systems tend to have a lot harder constraints than
common ws's or servers - what I'm doing is applying embedded
constraints to them, too, since I have to face these constraints
anyways. It's also a matter of a strict QA, which starts at
the source.

> IOW, don't ever assume that you can simply take a source
> code repository (however well it might be designed) and
> produce a product by simply doing ./configure ; make ;
> make install ; make pkg.

Neither do I, instead I first fix the packages so I can do this.
Actually, my Briegel buildsystem works exactly this way:

#1: make a fresh sysroot image (eg. install prev. built deps)
#2: fetch the source (via the CSDB - source database)
#3: uncompress and apply the normalized patch from OSS-QM rep.
#4: configure stage (eg. ./configure)
#5: build stage (eg. make)
#6: install stage (eg. make install)
#7: create the binary package (eg. tgz, rpm, whatever ...)

Any package that doesn't run cleanly through this process is
declared broken and has to be fixed first. Briegel has no
room for workarounds, intentionally.

> The role of a packager is to address the end-users and thus
> add value.

The role of a packager (for a specific package) shouldn't be
necessary at all. With a properly designed source package,
that job can be completely done automatically. Leaving only
the role of the distro/system maintainer, who decides things
like which packages to get in, where to put certain types of
files, some default configs, etc.

> The kind of value that project members are simply not interested in.

I know, and that tends to be the point where I fork.

> >What does prevent you from having lots of separate packages
> >in the same SCM ?
>
> Internal dependencies that are troublesome to externalize
> if you break a single source code repository into multiple ones.

Which ones exactly (specifically on p9p) ?

> Updates of a non-trivial software projects are transactional in nature.

The key question for me is: why is the sw so complex at all ?
More to the point: what's so complex on p9p ? From what I see,
it's structure is quite simple (especially compared with monsters
like mozilla), since simplicity is actually one of Plan9's major
design goals.

> Breaking these transactions apart either by non grouping them
> into a changeset, or applying them to different repositories
> leads to all sorts of complications, such as inability to use
> binary search efficiently for tracking down regressions and
> the need for use of broken dynamic linking interfaces to
> describe the connections between a single transaction
> that spans different repos.

Wououow ... binary interfaces ... we're still at the source
level, aren't we ?

*If* you want to nail down a fixed binary interface, you should
to this exactly at that point which defines the interface: the
package (eg. library) defining it. In other words: add appropriate
regress tests to the library package, not abusing others that just
happen to depend on it as regress test.

Keyword: design by contract ;-P


cu
--
----------------------------------------------------------------------
 Enrico Weigelt, metux IT service -- http://www.metux.de/

 cellphone: +49 174 7066481   email: info@metux.de   skype: nekrad666
----------------------------------------------------------------------
 Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme
----------------------------------------------------------------------



  reply	other threads:[~2008-11-03  0:15 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-04 22:15 Roman Shaposhnik
2008-10-06 16:24 ` Russ Cox
2008-10-07  0:36   ` sqweek
2008-10-07  3:43   ` Roman V. Shaposhnik
2008-10-18 17:20     ` Russ Cox
2008-10-23  5:26       ` Roman V. Shaposhnik
2008-10-23 17:39         ` Russ Cox
2008-10-30 18:07           ` Enrico Weigelt
2008-10-30 21:15             ` Roman V. Shaposhnik
2008-11-01 19:05               ` Enrico Weigelt
2008-11-01 20:40                 ` Roman Shaposhnik
2008-11-03  0:15                   ` Enrico Weigelt [this message]
2008-11-04  1:23                     ` Roman V. Shaposhnik
2008-11-04  1:23                     ` Roman V. Shaposhnik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081103001543.GC27416@nibiru.local \
    --to=weigelt@metux.de \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).