Slashdot Mirror


OpenBSD Ports and Packages Explained

jpkunst writes "As reported on undeadly.org: an interesting interview with OpenBSD developer Marc Espie about the internals of and the philosophy behind the OpenBSD ports and packages system."

7 of 28 comments (clear)

  1. Re:The original 'gentoo' ... explained :) by stox · · Score: 2, Interesting

    FreeBSD will be glad to make you a binary package when you build a port, just type "make package".

    --
    "To those who are overly cautious, everything is impossible. "
  2. Re:The original 'gentoo' ... explained :) by Curtman · · Score: 4, Interesting
    BSD has been where everything seems to find a crowd of whackos to implement stuff.

    There's a lot of very intelligent people working BSD. I'm a Linux zealot myself, but I really enjoyed reading this interview with Theo de Raadt, and Christos Zoulas. It's very interesting how much they seem to different in what they believe. One of the more striking ones was:

    When we find that a change must be made to the system (security or otherwise) we can therefore force such a change into the system by changing it all the way from userland through the libraries down to the kernel. We can change interfaces as we want to. We can move quickly. Sometimes changes are even made which break previous executables; but if we need to, we can choose to make such decisions.

    This gives us great flexibility to move forward fast. If something is designed wrong, and the fix depends on changes in more than just the kernel, we can fix it by. We change all the required pieces in the right places. We don't need hacks in the wrong place to fix a problem.

    -- Theo de Raadt
    -vs-

    Linux's code is much newer and it keeps constantly being re-factored. This has the nice side effect of keeping the code simple and readable (at the base system layers such as VM and FS), but stability is suffering.

    -- Christos Zoulas

    It's hard to imagine that they are even talking about the same things.
  3. Another Newb by mugnyte · · Score: 4, Interesting


    Like some ./ readers, I got the OpenBSD image when 3.7 was released just this year. I dropped it onto an older box and have been exploring ever since. I used the packages for several items (like Gnome) but ports for others (Postgresql 8).

    I've been very happy with several concepts:

    - The dependency trees are spot-on and very automated. Correct versions and complete coverage.
    - The ability to undo or rollback a package is smooth (like when I took a 7.x Postgres package and pkg_delete'd it to try the port)
    - The published docs, man pages and organization of the system is superb. I picked up "Absolute OpenBSD" and "BSD Hacks" and have been toured confidently around the system by these and the man pages they point to.
    - The post-install notes are a great help.

    For me, it's a great "warm and fuzzy" to gather the documentation sources into a list and be able to dive down rabbit holes for long periods without feeling like a flea market is on my box. Cheers to the BSD folks, especially the package maintainers.

  4. Why Perl? by marcovje · · Score: 2, Interesting


    I hate having to have install Perl, Ruby and Python (m4?) for all kinds of trivial stuff. (or have it in the base systems as more and more systems do).

    First, these scripting languages are slow. People that don't agree, please compile X, and watch the font making in Perl. It eats more time than actually compiling X

    Second, every stupid package uses another one, so you end up with a bunch of them.

    Third, it requires more languages to learn to access the system. Moreover, the amount of languages that can interface to Perl modules is significantly lower than the amount that can interface to C (virtually all). This can also be seen in the article: the perl backend is unused, everybody works around in shellscript.

    The first two could be solved by e.g. limiting the tools to a perl subset that is compilable to C, and not use too many modules.

    The third is harder to solve. Best would be to code the package system in C, and have a C callable library. Or maybe using 2C kind of stuff.

  5. Re:The original 'gentoo' ... explained :) by Curtman · · Score: 2, Interesting

    "Theo et. al. have complete control of the kernel all the way down to the user-land. In Linux, however, userland tools are GNU"

    I am aware of that. To a point. BSD machines, very often contain a lot of GNU software as well in userland.

    "A refactoring is a change of interface or architecture, and by definition breaks an interface contract"

    And 'stable' is not subject to sudden or extreme change or fluctuation and consistently dependable. When Theo says 'We can change interfaces as we want to. We can move quickly', he's saying it is a good thing that they can do exactly what Christos is accusing Linux of doing.

    Theo is saying that if they change the kernel interface, then they can change libc as well basically. When Linux changes their API, glibc changes as well. The fact that it's one group and not two intermingled groups (RedHat maintains glibc, and is a Linux distributor, and contributor for example), doesn't mean much as far as stability is concerned. The difference is mostly political as far as I'm concerned.

  6. Re:The original 'gentoo' ... explained :) by turbidostato · · Score: 1, Interesting

    "I think you've both missed the boat on this one. Development of a Linux kernel vs. the BSD system is different"

    No, I bet *you* missed my boat. I was not talking about Linux kernel but about *Linux systems*.

    "Theo et. al. have complete control of the kernel all the way down to the user-land"

    Yes, they have.

    "In Linux, however, userland tools are GNU"

    No, they aren't. Not to the point of interest here. They are open source released under the GPL, hence Debian people (to name one *Linux system*) have exactly the same control level about their code than Theo et al. about theirs. No more, no less.

    "The effect is that it is more likely you will see a shipped distro with broken tools due to the constant changes"

    That strongly depends on the distribution itself. Linux distributions are free to put together a half-assed bunch of packages from different sources OR follow whatever process to insure the quality of their "official" releases, including extensive modifications from the "upstream" codebase exactly the same *BSDs are.

    "making it very difficult to maintain a system with both kernels."

    Thus, some decided to support both of them and others only one branch.

    "Theo [...] describes refactoring as doable "when necessary [...] The Linux quote, OTOH, describes constant refactoring as a nuisance and a hindrance to Linux stability."

    So? Theo refactors when he feels it is needed. Any given distribution refactors when feels it is needed.

    Still I can't manage to see any *real* difference (yes I know what BSD folks *feel* to be the diference, cathedral vs bazaar, and all that stuff, but still, except from the preference for BSD-like licenses vs GPL ones, I can't see any procedural difference between any given BSD project and any given Linux one: in both cases we are talking about open source and in both cases the teams involved are in absolute control about what does go in their "official" codebase and what doesn't).

  7. Re:Eased our transition from Debian to NetBSD! by sp0rk173 · · Score: 2, Interesting

    having used apt-get and ports extensively, yes. The various BSD ports are better than apt-get. However, pacman (in arch linux) beats them all to hell. Simple, clean, and elegant.