OpenBSD Journal

Ports and WANTLIB

Contributed by phessler on from the ports-and-source-in-sync dept.

3.7 is full of some very cool features, especially in the ports tree. One of the new cool features is WANTLIB. Each package now has a list of each library that it wants, and the specific major/minor number. The major numbers must match, while the minor number can be the same or newer. WANTLIB will make sure you have all of the required libraries when you install a package. In the past, missing libraries have been a problem for people using packages, this change will make sure it doesn't happen any more. The addition of WANTLIB has also found a number of hidden dependancies, which results in a more robust ports tree.

(Comments are closed)


Comments
  1. By Anonymous Coward (69.197.92.181) on

    It would be nice if someone who fully understood this WANTLIB stuff updated the porting checklist so people making ports know what to do.

  2. By Chris Laverdure (69.156.176.231) on

    I just wish ports wouldn't get in a hissy fit when some file it wants to install already exists on my system. There isn't, as far as I've seen, a way to override this behaviour, and if, for example, you are installing a big port and run out of diskspace (so the a lot of the files are there and the install isn't registered) you will find yourself manually deleting a lot of crap.

    Comments
    1. By phessler (64.173.147.27) on

      I believe that has been fixed for the 3.7 ports tree.

    2. By Marc Espie (62.212.102.210) on

      Since quite a few months ago, pkg_add has been checking the disk space before installing a package. 3.7 fixes the algorithm used to work transparently even under chroot() conditions. The only case where it will fail midway through is if you're busy doing something else in the same file systems. It can't be a second pkg_add, since pkg_add now locks /var/db/pkg when it runs. So it's pretty hard to trigger. Even in such a case, you will end up with a partial-foo package, that you will probably decide to delete, but hey, let's not kill files, shall we. Now, what was your complaint again ?

  3. By Anonymous Coward (68.32.167.187) on

    Hey, I just wish people would update the ports they maintain. Yes, I could compile on my own, but that is why ports is there in the first place - so I don't have to....

    Comments
    1. By Garton Lics (68.121.18.177) garton.lics@gmail.com on

      I just wish people would update the ports they maintain. Yes, I could compile on my own, but that is why ports is there in the first place

      Why not stop whining and send an updated port to the maintainer/s in question?

      Comments
      1. By Anonymous Coward (69.197.92.181) on

        What is the point of ports if you have to update a port for every thing you want to use? This is a real problem, and ports maintainers need to start doing their jobs or the ports tree isn't useful.

        Comments
        1. By phessler (208.201.244.164) on

          please be more specific. Also, ports are *NOT* backported to -stable, just to -current.

          Comments
          1. By Anonymous Coward (69.197.92.181) on

            Ruby, postgresql, mysql, glade, gtk2, wxwidgets are all ones I've run into just off the top of my head. I realize certain ports can be alot of work to maintain, but isn't putting yourself in the MAINTAINER field volunteering to do that work?

            Comments
            1. By Damien (213.41.138.23) on

              Sure, updating a port with a large amount of dependent ports like mysql, postgres or even ruby is more than easy when other volunteer than yourself have to do it.
              You're just one another lazy guy that prefers whining instead of helping.

              Oh and BTW you said the right word in your post. Porters are volunteers which take on their spare time to work on the project. Are you ready to pay them to work full time on ports ?

              Comments
              1. By Anonymous Coward (69.197.92.181) on

                No, I am not a lazy guy whining instead of helping. I maintain two ports, and they are both up to date. I know porters are volunteers, I am one of them. But I do what I say I am going to do, and don't put myself as a maintainer of something, and then not maintain it. Is it really that crazy to expect that porters do the job they voluntarily claimed as their own? People put their own names in the MAINTAINER field, nobody is forcing it on them, so they should start talking their commitment seriously.

                Comments
                1. By Damien (213.41.138.23) on

                  You know it begins with some ports and then it grows up. Suddendly you've reached at least ten ports but your spare time is starting to lower (wife, children, more work, ...). And then you realise that all the sutff you're maintaining is not so up to date due to lack of time.

                  If you think you can do better then ask the maintainership of outdated ports and show us how things must be done.

                  Comments
                  1. By Anonymous Coward (69.197.92.181) on

                    Quit being so sensitive and read what I am saying. I don't think I can do a better job, that's why I DON'T PROMISE TO DO THE JOB. I realize that people have other things that take up their time. This does not change the fact that there are not enough porters, and the ones that are there are not doing their jobs. I am saying this is a problem, and you just seem to want to be personally insulted by this. Sorry if it hurts your feelings, but the ports tree being constantly out of date is a problem, and no amount of excuses will change that.

                    Comments
                    1. By Damien (213.41.138.23) on

                      What i try to explain you is that when you start to take the maintainership you have the appropriate amount of time to do the job. But with the time this situation can change. In my personal experience, i've been revoking maintainership for some ports because my spare time was reduced and that those ports weren't useful for me at the end. I agree with you that we lack of porters but i don't see the point blaming the few that try to do something. You're whining about ruby not being up to date but latest is 1.8.2 and the version in ports is 1.8.2. I've not verified postgres and mysql but i think they are not so outdated too. OpenBSD has never been bleeding edge and i doubt it will be ever. Oh and BTW i'm not feeling insulted by your posts. As i said above i've abandonned ports that i couldn't maintain any longer. The lack of porters is no new, i'm myself helping people interested in doing ports in the hope to gain more porters. I think that the failure is in the long run, people are coming with best wishes but so few stay longer enough to make the number growing.

                      Comments
                      1. By Anonymous Coward (69.197.92.181) on

                        http://www.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/lang/ruby/Makefile?rev=1.30&content-type=text/plain

                        Looks like ruby is at 1.8.1 still in ports. Postgresql is still at 7.4.3, and it should be at 8.0.2. Mysql is at 4.0.24 and should be at 4.1.11.

                        I am not blaming the porters we do have for the problem. I am simply saying that it is a problem. I think leaving the maintainer field blank when you're not intending to maintain a port is a good idea, since I think someone else is more likely to take maintainership that way. But I also think that an attitude of "quit slacking you lazy bums" will help too. If everything being out of date is normal, and nobody says anything about it, then there's not much motivation for porters to keep things updated. If there was a little bit of friendly poking and prodding it might help encourage people to either keep their commitments, or not make them so other people can step in instead.

                        Comments
                        1. By Anonymous Coward (69.197.92.181) on

                          Of course, Marc Balmer just made the postgresql update, so that's one off the list.

                        2. By Marc Espie (62.212.102.210) on

                          Oooh! so the new version is out, and it's not yet in the ports tree. Big question: why should that matter so much ? did the old version suddenly stop working ? Or do you just want to have more eye-candy around ? OpenBSD is about stability and usability, not the newest bells and whistles. Personally, I'm much more interested in having a *reliable* version of something around than the very latest, half-broken thingy. If it takes a few weeks/a few months to update the ports, SO WHAT ? It's not that big a deal.

                          Comments
                          1. By Anonymous Coward (69.197.92.181) on

                            Very often new versions of software add new functionality, or fix bugs, or even both. Why aren't you running netbsd 1.0? Because improvements have been made since then, and this happens with other software too. Nobody is asking for unstable software to be added, just that people keep their ports up to date with the latest stable release.

                            Comments
                            1. By Marc Espie (62.212.102.210) on

                              And we don't always have the same definition of `stable' as people putting stuff out.

                              Which explains quite well why we're often being very cautious in updating things.


                              Take postgres, for instance. The update was actually available, as a port, before we finished 3.7.

                              But it only went in a few days ago, because we had to take that time to make sure it works reasonably well on most architectures, and that other components of the ports tree are not too disturbed by it...

                  2. By Marc Espie (62.212.102.210) on

                    At some point, I've just stopped putting my name in the MAINTAINER field. The issue is, the MAINTAINER field is a strong indication you're going to look after the port. In some cases, I've just ported this over to play with it, and then I will probably not use it actively. This is a valid use of maintainership IMO, people can still find me if they look at the log, AND this won't prevent someone more motivated to step forward and take over maintainership. If you will, run some statistics over the maintainer names in the ports tree. This is worrying. There are a lot of ports maintained by just a handful of people who `manage' over 50 ports...

                    Comments
                    1. By Damien (213.41.138.23) on

                      I've never seen MAINTAINER as a barrier to take over the maintainership. For me it's just an indication of who to ask for when you got a problem with a port.
                      If this field is making so much people afraid why not removing it ?

    2. By RC (4.8.16.53) on

      > Hey, I just wish people would update the ports they maintain.

      That's funny, I wish the exact opposite. I wish older versions of ports would exist along-side newer ports of the same app, mainly when dependencies have changed.

      For instance, the port for GAIM 0.95.x was the last GTK1 version, but it's been removed, and only the GTK2 version is available in ports. The old port still works if you copy it to a new machine, but it's been removed instead.

      Openbox2.x was a pretty nice WM, based on Blackbox, but much improved. Openbox3 has the same namesake, but it's a completely different WM, no longer lightweight, based on all sorts of libs.

      FreeBSD does this in their own ports tree.

      Funny thing is that the opposite happens too... If a new version of the software goes by a different name, the old port will still hang around for a long time. Wasn't the old "mozilla-firebird" still included in 3.6 ports along-side the much newer "mozilla-firefox" port? I guess the lesson is, if you're going to make significant changes to your program, change it's name slightly, so each will have it's own OpenBSD port, for people to chose between.

      Comments
      1. By Anonymous Coward (69.197.92.181) on

        If you want to run obsolete software do it on your own. It makes no sense to have a ports tree full of old crap that isn't maintained.

        Comments
        1. By RC (4.8.16.53) on

          > It makes no sense to have a ports tree full of old crap that isn't maintained.

          Yeah, right. Because people will be harmed because there's a GTK1 version of Aumix in the ports tree... So many exploits that need to be fixed, right? Give me a break. As I said, FreeBSD already does this, so it's not even remotely a radical suggestion.

          Comments
          1. By Anonymous Coward (69.197.92.181) on

            FreeBSD also lets you run -current ports on a -stable system. This is not FreeBSD. Your suggestion is to add extra work, when there is already not enough people spending time on the ports tree as it is. That makes it a bad suggestion.

    3. By Lars Hansson (203.65.245.7) lars@unet.net.ph on

      I just wish people would stop whining about what other should do and contribute instead.

  4. By Anonymous Coward (67.71.16.78) on

    So if I do.... cvs get -rOPENBSD_3_7 -P src

    I should have a 3.7 source tree. My question is... is the 3.7 source the same that will be released on May 19th? Meaning is it completely frozen and stable now or still changing like -current? I would prefer to get a head start because my CD usually arrives a little late =(

    Comments
    1. By Kevin R (68.144.68.84) on

      The CVS HEAD source should be pretty stable right now, as only bugfixes should be commited this close to a release. But snapshots will be a lot easier to install, test. http://www.openbsd.org/ftp.html

      Although you may have a reason to actually get the absolute newest source from CVS.

      -Kevin

      Comments
      1. By Kevin R (68.144.68.84) on

        Sorry, after re-reading your original question, I think I missed the point.

        I don't believe the code has been frozen yet, although you should be able to get the latest code (CVS, snaphots) and upgrade to the newest using CVS when the code is frozen so that you have a 'final' release. Nothing 'showstopper' should be present in the 3.7 code, and as an added plus, you'll be helping the OpenBSD community with testing efforts by running an up to date install of 3.7 current.

        Hope that helps.

        Kevin

      2. By phessler (64.173.147.27) on

        HEAD is well past 3.7, a flag day or two even. the above is wrong.

        Comments
        1. By Kevin R (68.144.68.84) on

          Oh, crap.
          Sorry guys, I was way off, feel free to mod down my comments above.
          Thanks, Kevin

      3. By Anonymous Coward (139.78.112.166) on

        I thought the code freeze for 3.7 was quite some time ago and that -current was unfrozen for new things as 3.7 is already tagged and probably headed out for CD production. That's why bioctrl, hostapd, and several other big things have been going in.

    2. By tedu (64.173.147.27) on

      release tags have in the past changed up to the official release date so that secret features could be included but not announced until the right time.

  5. By Peter Dembinski (217.96.175.71) pdembinski@konin.lm.pl on http://www.peter.dembinski.prv.pl

    Just port some modern package management software (or make BSD-licensed alternative if it is GPLed and you don't like GPL) and you'll probably have everything you ever wanted for ports tree :)

    Comments
    1. By djm@ (203.217.30.86) on

      Marc is making a BSD-licensed modern package system. What more do you want from a package system?

      Comments
      1. By Anonymous Coward (81.248.103.24) on

        He wants portage obviously...

        Comments
        1. By Matthias Kilian (84.134.5.219) on

          .. and suddenly, something doesn't work any longer for no good reason.

          Sorry, but IMHO portage attempts to be too flexible and tends to break with non-mainstream configurations. Too much magic. In contrast, the OpenBSD ports and pkg_* tools just do their job -- nearly all problems I had with them resolved to a pebkac.

          Comments
          1. By Anthony Roberts (68.145.103.21) on

            Portage doesn't break because it's a bad tool. It breaks because the Gentoo crowd does zero testing before they release new builds.

            Comments
            1. By Janne Johansson (82.182.176.20) on

              How could they, a new release of OO.o or KDE takes days to complete. =)

    2. By phessler (208.201.244.164) on

      ports is modern package management software. every time I use a different system, I wish for the ease and elegance of ports.

      Comments
      1. By Frank Denis (212.129.63.1) j@pureftpd.org on

        Well, everything I use ports, I wish something like emerge --deep -u world exists.

      2. By Peter Dembinski (217.96.175.71) pdembinski@konin.lm.pl on http://www.peter.dembinski.prv.pl

        I don't know all features of ports system, but debs seem to be more advanced, with their 'suggested' field for example.

        Comments
        1. By Marc Espie (62.212.102.210) on

          The idea with re-doing the pkg_tools from scratch was to try and end up with a better system than stuff that came before. The main focus here is robustness and stability. I've looked at the debian code, and other package systems as well. My main issue with debian is that there is a lot of things that can go wrong. It mainly works because there are a lot of people spending a lot of time writing specialized scripts. And it builds a lot of caching/databases. So, yes, there will be a next step in pkg_tools. There will probably be something similar to suggest, and updating the world from binary packages will get simpler. In 3.7, the pkg_tools are way faster, and way more foolproof than they're ever been. That, and the possibility to directly upgrade binary packages, was the focus for 3.7

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]