On 09/06/13 17:26, AN wrote:


On Fri, 6 Sep 2013, Guido Falsi wrote:

On 09/06/13 05:16, AN wrote:
Hi:

I am posting to both lists because this problem affects users of current
and ports, and I didn't know which would be more appropriate so please
forgive me.

# uname -a
FreeBSD FBSD10 10.0-CURRENT FreeBSD 10.0-CURRENT #80 r255129: Sun Sep  1
16:01:36 CDT 2013     root@FBSD10:/usr/obj/usr/src/sys/MYKERNEL  amd64

I am trying to update my ports following the entry in updating, but it
does not seem to be working correctly.  I followed the directions
exactly, and after 30 mins this is what has happened:

# cat ports_to_update | xargs portupgrade -vf
--->  Session started at: Thu, 05 Sep 2013 21:12:10 -0500
[Reading data from pkg(8) ... - 890 packages found - done]
Shared object "libiconv.so.3" not found, required by "httpd"
make: "/usr/ports/Mk/bsd.apache.mk" line 278: warning: Couldn't read
shell's output for "/usr/local/sbin/httpd -V | /usr/bin/sed -ne
's/^Server version: Apache\/\([0-9]\)\.\([0-9]*\).*/\1\2/p'"
Shared object "libiconv.so.3" not found, required by "httpd"

This is bsd.apache.mk trying to get the apache version. but the
apache's "httpd" binary cannot run because it can't find libiconv.so.3.

apxs:Error: Sorry, no shared object support for Apache.
apxs:Error: available under your platform. Make sure.
apxs:Error: the Apache module mod_so is compiled into.
apxs:Error: your server binary `/usr/local/sbin/httpd'..
make: "/usr/ports/Mk/bsd.apache.mk" line 284: warning:
"/usr/local/sbin/apxs -q MPM_NAME" returned non-zero status
** Port marked as IGNORE: www/mod_dnssd:
     is marked as broken: : Error from bsd.apache.mk. apache is
installed (or APACHE_PORT is defined) and port requires apache22 at
least


Here is what I have done:
# pkg query %ro libiconv >ports_to_update
[root@FBSD10 ~]# cat ports_to_update

...lots of output

# pkg delete -f libiconv
pkg: You are trying to delete package(s) which has dependencies that are
still required:
... delete these packages anyway in forced mode
Deinstallation has been requested for the following 1 packages:

     libiconv-1.14_1

The deinstallation will free 2 MB

Proceed with deinstalling packages [y/N]: y
[1/1] Deleting libiconv-1.14_1...
deleting anyway

  done

Now the update process is stuck here:

** Port marked as IGNORE: www/mod_dnssd:
     is marked as broken: : Error from bsd.apache.mk. apache is
installed (or APACHE_PORT is defined) and port requires apache22 at
least

there are 2 ruby processes running for a long time, but nothing is
happening to the update.

43998 root        52    0 64912K 33368K piperd  5   2:21   5.96%
ruby19{ruby19}
43998 root        52    0 64912K 33368K select  1   0:00   5.96%
ruby19{ruby19}

So, it seems my system is broken now.  Did I do something wrong?  How
can the upgrade work if so many ports depend on iconv?  What should I do
now? Should I reinstall libiconv?


Good news is the update process did not really update anything,
judging from the output you sent. If you just reinstall libiconv
everything should go back to how it was, at least you get a working
system.

I admit I did not foresee this condition arising when I wrote the
instructions, here is a modified procedure you can follow and report
back about, so I can modify the UPDATING entry:

# pkg query %ro libiconv >ports_to_update
# cp /usr/local/lib/libiconv.so.3 /usr/local/lib/compat/pkg/
# ldconfig -R                            (1)
# pkg delete -f libiconv
# cat ports_to_update | xargs portupgrade -f

(1) not sure if ldconfig -R is really needed, but It will not do any
   harm

I added the step to preserve libiconv.so.3 in
/usr/local/lib/compat/pkg which is in the default library search path.
In this way libiconv and it's include file shouldn't be found by
configure scripts and the like and they should link to the system one,
while existing binaries should keep working linking to the preserved
one in lib/compat.

Any help is appreciated.

I hope this helps you, just ask for any clarifications and further
help as needed on this matter.

--
Guido Falsi <madpi...@freebsd.org>



I tried to install iconv and this is what happened:
  cd /usr/ports/converters/libiconv
[root@FBSD10 /usr/ports/converters/libiconv]# make install clean
===>  libiconv-1.14_1 converters/libiconv should not be used with
OSVERSION > 1000050.  Please fix the port which tries to use it.
*** Error code 1

Stop.
make: stopped in /usr/ports/converters/libiconv
[root@FBSD10 /usr/ports/converters/libiconv]#

So, now I can not install libiconv.  What should I do now, can I force
it to install?  System is badly broken from this procedure now.

Sorry, I forgot to mention, to install that port now you need to remove the "IGNORE" line from it's Makefile.

--
Guido Falsi <madpi...@freebsd.org>
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to