AFFECTS: 10-CURRENT users with any port depending on converters/libiconv

Guido Falsi madpilot at FreeBSD.org
Fri Sep 6 15:31:58 UTC 2013


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 at 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 at 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 <madpilot at FreeBSD.org>
>>
>
>
> I tried to install iconv and this is what happened:
>   cd /usr/ports/converters/libiconv
> [root at 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 at 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 <madpilot at FreeBSD.org>


More information about the freebsd-ports mailing list