Upgrading through packages: an experience.

Michel Talon talon at lpthe.jussieu.fr
Sat Jul 12 15:27:38 UTC 2008

On Sat, Jul 12, 2008 at 04:35:29PM +0200, Kris Kennaway wrote:
> Michel Talon wrote:
> >Hello,
> >
> >Since KDE recently appeared in the Latest prebuilt packages
> Well, it's always been there, except when it could not be built.

Well it was not here ten days ago, i think, when it was discussed in this
mailing list. I checked, this days and several days afterwards. Then
i saw since perhaps 2 or 3 days.

> >Now the problems. They come from the fact that the Latest packages are
> >not always coherent between themselves or with the libraries in
> >FreeBSD-7.0.
> No, they are.  In fact this is a key design feature, and the same reason 
> why sometimes certain packages do not appear on the FTP site (if they 
> did appear they would be necessarily *out* of sync).  Similarly they are 
> always built against recent versions of -STABLE, by design.

So there has been some changes between 7.0-RELEASE and STABLE since 
i have just got some minutes ago:

niobe% wget http://myfreebsd.homeunix.net/csup.core
/libexec/ld-elf.so.1: /lib/libc.so.7: version FBSD_1.1 required by wget
not found

I did not remember that versioned symbols were in FreeBSD-7. Of course
after a rebuild, wget works. I had another similar problem somewhere,
but all others were related to fcntl() locking (*) problems.

> Glad to hear your experience was generally positive though.

Yes, very positive. In particular a point i forgot to stress, the
coverage of the prebuilt packages is excellent now, as can be testified
by the fact that only 19 ports had to be compiled while 877 packages
were present. This is thanks to you and your work on the cluster.
One aim of my message was to show that, at present, the coverage is so
good that one can envision a Debian-like experience on FreeBSD when
doing binary upgrades, even going through considerable evolutions.

> Kris

(*) This is a ktrace of the problem:

niobe# ktrace -di kdm-bin 


  4214 kdm-bin  CALL  open(0x283052c4,O_RDWR,<unused>0xe)
  4214 kdm-bin  NAMI  "/var/run/kdm.pid"
  4214 kdm-bin  RET   open 3
  4214 kdm-bin  CALL  getdtablesize
  4214 kdm-bin  RET   getdtablesize 11095/0x2b57
  4214 kdm-bin  CALL  fcntl(0x3,F_GETFL,0)
  4214 kdm-bin  RET   fcntl 2
  4214 kdm-bin  CALL  fstat(0x3,0xbfbfddb0)
  4214 kdm-bin  RET   fstat 0
  4214 kdm-bin  CALL  read(0x3,0x28314000,0x1000)
  4214 kdm-bin  GIO   fd 3 read 0 bytes
  4214 kdm-bin  RET   read 0
  4214 kdm-bin  CALL  lseek(0x3,0,SEEK_SET,0)
  4214 kdm-bin  RET   lseek 0
  4214 kdm-bin  CALL  fcntl(0x3,<invalid=12>,0xbfbfe730)
  4214 kdm-bin  RET   fcntl -1 errno 22 Invalid argument

Note the <invalid=12>. This is followed by:

  4214 kdm-bin  CALL  sendto(0x4,0xbfbfd46e,0x4e,0,0,0)
  4214 kdm-bin  GIO   fd 4 wrote 78 bytes
       "<27>Jul 12 17:18:29 kdm-bin[4214]: Can't create/lock pid file

And here the kdm.pid is created, it is the locking which fails.
Clearly things have changed for the fcntl() action type between
FreeBSD-7.0-RELEASE and the machine on which kdm-bin has been compiled.


Michel TALON

More information about the freebsd-ports mailing list