Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Feb 2014 18:40:15 -0800
From:      Kevin Oberman <rkoberman@gmail.com>
To:        LuKreme <kremels@kreme.com>
Cc:        FreeBSD Ports ML <freebsd-ports@freebsd.org>
Subject:   Re: Issues with postmaster after freebsd-update
Message-ID:  <CAN6yY1uZUTd9_dzgDucV2g7r5mLYhivndMyNRNNw=3YC5SEZQg@mail.gmail.com>
In-Reply-To: <263F7C1F-7A99-4D8D-9F4E-FB2D48E8A46A@kreme.com>
References:  <49D3D50F-9FBF-4247-81D6-5425B8FEBA2D@kreme.com> <52FD5D54.1090000@unfs.us> <DF5C26EB-C4F9-48AA-BCCE-A056C911A015@kreme.com> <CAN6yY1vS4mwfDyGCUF%2BOsMPqGL12wOPQNP4rZA_AgYA89gbLYg@mail.gmail.com> <263F7C1F-7A99-4D8D-9F4E-FB2D48E8A46A@kreme.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Feb 22, 2014 at 5:38 PM, LuKreme <kremels@kreme.com> wrote:

> On 13 Feb 2014, at 22:46 , Kevin Oberman <rkoberman@gmail.com> wrote:
> > An easier way is to install sysutils/bsddfminscripts and use pkg_libchk
> to
> > find what needs to be reinstalled. I use the command:
> > pkg_libchk -o | grep icu | cut -d: -f1 | sort | uniq > ~/reinstall-ports
> > portmaster -D `cat ~/reinstall-ports`
>
> I finally got pkg installed, so, moving on to this and I have a question,
> what is the purpose of the `grep icu` pipe?
>

pkg_libchk (part of sysutils/bsdafminscripts) tests all libraries and
executables installed by all ports  for non-existant linked sharables. In
this case, the purpose is to get a list of ports that still link to the old
version of libicu. So pkg_libchk lists ALL files from ports that have links
to the old libicu and then trims it to just the port name, sorts it, and
removes dupes.

>
> I ran the command just to see the output and got just:
>
> devel/libnotify
>
> in the file. ran postmaster and now the command returns no results (yay!)
> but I did't get to see it in action, so what is the 'icu' that it's cueing
> off?
>

Now that any leftovers from he recent devel/icu update are taken care of,
you can run it (pkg_libchk -o) again to make sure that there are no other
ports installed files that are missing links. Hopefully there are none. Or
just run the command without the grep to get a complete list, but some
ports do generate false positives because they don't use the system to load
shared libs.Java and openoffice have been noted as examples, but I think
that openjdk no longer does this. I don't use openoffice any more, so I
don't know if that has been changed.

You can also "fix" these issues using the -r option to portmaster, but that
often rebuilds ports that, while dependent, don't actually link to the
library in question. This is frequently a list two or three times as long
as the list that actually needs to be rebuilt. Use of pkg_libchk will let
you only rebuild the ports that actually need it.
-- 
R. Kevin Oberman, Network Engineer, Retired
E-mail: rkoberman@gmail.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAN6yY1uZUTd9_dzgDucV2g7r5mLYhivndMyNRNNw=3YC5SEZQg>