# Why is portmaster trying to install libiconv



## nanotek (Feb 1, 2014)

New install of 10.0-RELEASE (i.e. _not_ an upgrade):

```
# uname -a
FreeBSD srv 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Fri Jan 17 01:46:25 UTC 2014     root@snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC  i386
```

Installed packages (read: _no_ libiconv):

```
# pkg info
GeoIP-1.4.8_3                  Find the country that any IP address or hostname originates from
autoconf-2.69                  Automatically configure source code on many Un*x platforms
autoconf-wrapper-20131203      Wrapper script for GNU autoconf
bison-2.7.1,1                  A parser generator from FSF, (mostly) compatible with Yacc
ca_root_nss-3.15.3.1           The root certificate bundle from the Mozilla Project
cmake-2.8.12.1                 Cross-platform Makefile generator
cmake-modules-2.8.12.1_1       Modules and Templates for CMake
curl-7.33.0_2                  Non-interactive tool to get files from FTP, GOPHER, HTTP(S) servers
damageproto-1.2.1              Damage extension headers
dialog4ports-0.1.5_2           Console Interface to configure ports
dri2proto-2.8                  DRI2 prototype headers
expat-2.1.0                    XML 1.0 parser written in C
fixesproto-5.0                 Fixes extension headers
fontconfig-2.11.0_1,1          XML-based font configuration API for X Windows
freeglut-2.8.1                 An alternative to the OpenGL Utility Toolkit (GLUT) library
freetype2-2.5.2                Free and portable TrueType font rendering engine
gettext-0.18.3.1               GNU gettext package
glproto-1.4.17                 GLX extension headers
gmake-3.82_1                   GNU version of 'make' utility
help2man-1.43.3_1              Automatically generating simple manual pages from program output
inputproto-2.3                 Input extension headers
jbigkit-1.6                    Lossless compression for bi-level images such as scanned pages, faxes
jpeg-8_4                       IJG's jpeg compression utilities
kbproto-1.0.6                  KB extension headers
libGL-7.6.1_4                  OpenGL library that renders using GLX or DRI
libGLU-9.0.0                   OpenGL utility library
libICE-1.0.8,1                 Inter Client Exchange library for X11
libSM-1.2.2,1                  Session Management library for X11
libX11-1.6.2,1                 X11 library
libXau-1.0.8                   Authentication Protocol library for X11
libXaw-1.0.12,2                X Athena Widgets library
libXdamage-1.1.4               X Damage extension library
libXdmcp-1.1.1                 X Display Manager Control Protocol library
libXext-1.3.2,1                X11 Extension library
libXfixes-5.0.1                X Fixes extension library
libXi-1.7.2,1                  X Input extension library
libXmu-1.1.2,1                 X Miscellaneous Utilities libraries
libXp-1.0.2,1                  X print library
libXpm-3.5.11                  X Pixmap library
libXrandr-1.4.2                X Resize and Rotate extension library
libXrender-0.9.8               X Render extension library
libXt-1.1.4,1                  X Toolkit library
libXxf86vm-1.1.3               X Vidmode Extension
libdrm-2.4.17_1                Userspace interface to kernel Direct Rendering Module services
libgcrypt-1.5.3                General purpose crypto library based on code used in GnuPG
libgd-2.1.0_1,1                A graphics library for fast creation of images
libgpg-error-1.12              Common error values for all GnuPG components
libltdl-2.4.2_2                System independent dlopen wrapper
libmcrypt-2.5.8                Multi-cipher cryptographic library (used in PHP)
libpciaccess-0.13.2            Generic PCI access library
libpthread-stubs-0.3_4         This library provides weak aliases for pthread functions
libtool-2.4.2_2                Generic shared library support script
libxcb-1.9.3                   The X protocol C-language Binding (XCB) library
libxml2-2.8.0_3                XML parser library for GNOME
libxslt-1.1.28_1               The XSLT C library for GNOME
m4-1.4.17,1                    GNU m4
makedepend-1.0.5,1             Dependency generator for makefiles
mp3info-0.8.5                  Tool to manipulate ID3 tags for MP3 files
mysql56-client-5.6.15          Multithreaded SQL database (client)
mysql56-server-5.6.15          Multithreaded SQL database (server)
nginx-1.4.4_2,1                Robust and small WWW server
oniguruma4-4.7.1               BSDL Regular Expressions library compatible with POSIX/GNU/Perl
openldap-client-2.4.38         Open source LDAP client implementation
owncloud-6.0.0a                Personal cloud which runs on your own server
p5-Locale-gettext-1.05_3       Message handling functions
pciids-20131225                Database of all known IDs used in PCI devices
pcre-8.33                      Perl Compatible Regular Expressions library
pdflib-7.0.5_2                 A C library for dynamically generating PDF
pecl-pdflib-3.0.4              A PECL extension to create PDF on the fly
perl5-5.16.3_6                 Practical Extraction and Report Language
php55-5.5.8                    PHP Scripting Language
php55-bz2-5.5.8                The bz2 shared extension for php
php55-ctype-5.5.8              The ctype shared extension for php
php55-curl-5.5.8               The curl shared extension for php
php55-dom-5.5.8                The dom shared extension for php
php55-exif-5.5.8               The exif shared extension for php
php55-extensions-1.8           A "meta-port" to install PHP extensions
php55-fileinfo-5.5.8           The fileinfo shared extension for php
php55-filter-5.5.8             The filter shared extension for php
php55-ftp-5.5.8                The ftp shared extension for php
php55-gd-5.5.8                 The gd shared extension for php
php55-hash-5.5.8               The hash shared extension for php
php55-iconv-5.5.8              The iconv shared extension for php
php55-json-5.5.8               The json shared extension for php
php55-ldap-5.5.8               The ldap shared extension for php
php55-mbstring-5.5.8           The mbstring shared extension for php
php55-mcrypt-5.5.8             The mcrypt shared extension for php
php55-mysql-5.5.8              The mysql shared extension for php
php55-mysqli-5.5.8             The mysqli shared extension for php
php55-opcache-5.5.8            The opcache shared extension for php
php55-openssl-5.5.8            The openssl shared extension for php
php55-pdo-5.5.8                The pdo shared extension for php
php55-pdo_mysql-5.5.8          The pdo_mysql shared extension for php
php55-pdo_sqlite-5.5.8         The pdo_sqlite shared extension for php
php55-phar-5.5.8               The phar shared extension for php
php55-posix-5.5.8              The posix shared extension for php
php55-session-5.5.8            The session shared extension for php
php55-simplexml-5.5.8          The simplexml shared extension for php
php55-sqlite3-5.5.8            The sqlite3 shared extension for php
php55-tokenizer-5.5.8          The tokenizer shared extension for php
php55-wddx-5.5.8               The wddx shared extension for php
php55-xml-5.5.8                The xml shared extension for php
php55-xmlreader-5.5.8          The xmlreader shared extension for php
php55-xmlwriter-5.5.8          The xmlwriter shared extension for php
php55-xsl-5.5.8                The xsl shared extension for php
php55-zip-5.5.8                The zip shared extension for php
php55-zlib-5.5.8               The zlib shared extension for php
phpMyAdmin-4.1.6               A set of PHP-scripts to manage MySQL over the web
pkg-1.2.5                      New generation package manager
pkgconf-0.9.4                  Utility to help to configure compiler and linker flags
png-1.5.17                     Library for manipulating PNG images
portmaster-3.17.3              Manage your ports without external databases or languages
printproto-1.0.5               Print extension headers
python2-2_2                    The \"meta-port\" for version 2 of the Python interpreter
python27-2.7.6_1               Interpreted object-oriented programming language
randrproto-1.4.0               Randr extension headers
renderproto-0.11.1             RenderProto protocol headers
sqlite3-3.8.2                  SQL database engine in a C library
t1lib-5.1.2_2,1                Type 1 font rasterization library for Unix/X11
tiff-4.0.3                     Tools and library routines for working with TIFF images
wordpress-3.8,1                State-of-the-art semantic personal publishing platform
xextproto-7.2.1                XExt extension headers
xf86vidmodeproto-2.3.1         XFree86-VidModeExtension extension headers
xorg-macros-1.18.0             X.Org development aclocal macros
xproto-7.0.25                  X11 protocol headers
```

Outdated packages:

```
# portmaster -L |grep New
        ===>>> New version available: php55-iconv-5.5.8_1
        ===>>> New version available: nginx-1.4.4_3,1
        ===>>> New version available: owncloud-6.0.1
```

Upgrading:

```
# portmaster -adwv
```

Result [*]:

```
===>>> All >> (4)

===>>> The following actions will be taken if you choose to proceed:
        Upgrade php55-iconv-5.5.8 to php55-iconv-5.5.8_1
        Install converters/libiconv
        Upgrade nginx-1.4.4_2,1 to nginx-1.4.4_3,1
        Upgrade owncloud-6.0.0a to owncloud-6.0.1

===>>> Proceed? y/n [y] n


===>>> If you would like to upgrade or install some, but not
       all of the above try adding '-i' to the command line.
===>>> Killing background jobs
Terminated
===>>> Exiting
```

Why? This is a new install; not an upgrade. converters/libiconv has never been on the system. How can I do:


```
20130904:
  AFFECTS: 10-CURRENT users with any port depending on converters/libiconv
  AUTHOR: madpilot@FreeBSD.org

  10-CURRENT after r254273 (committed on August 13, 2013) has an
  implementation of iconv enabled by default in libc.

  Due to this change some major overhauling of the ports tree has
  been necessary to move the ports to using that implementation.

  People using pkgng binary packages should have little problems,
  "pkg upgrade" will update all software to not depend on libiconv
  anymore, once updated packages are available. Please make sure to
  perform a "pkg autoremove" after that and check that libiconv is
  correctly removed by it.

  If you are using ports the update requires some manual intervention.
  The following procedure should be followed:

  # pkg query %ro libiconv >ports_to_update
  # pkg delete -f libiconv
  # cat ports_to_update | xargs portmaster
```

when libiconv is not on the system.

How do I proceed? If I allow `portmaster` to do this, something will undoubtedly break.

[*] https://cloud.bsdbox.co/public.php?serv ... a958458718


----------



## ShelLuser (Feb 1, 2014)

How exactly did you install those packages? Did you build those ports yourself or are these binary packages which you grabbed from the Internet?

Because if those are binary packages then I don't think portmaster is the right tool to upgrade the whole lot. Instead you'd be looking at `# pkg upgrade` instead.

Otherwise I'd simply follow the instructions as mentioned in UPDATING. It might be interesting to compare the list you'd get when issuing the command `# pkg query %ro libiconv > ports_to_update` in comparison to `# portmaster -L` (where only the packages with an update matter).


----------



## nanotek (Feb 1, 2014)

ShelLuser said:
			
		

> How exactly did you install those packages? Did you build those ports yourself or are these binary packages which you grabbed from the Internet?



Every single package was built from ports.



			
				ShelLuser said:
			
		

> Because if those are binary packages then I don't think portmaster is the right tool to upgrade the whole lot. Instead you'd be looking at `# pkg upgrade` instead.
> 
> Otherwise I'd simply follow the instructions as mentioned in UPDATING. It might be interesting to compare the list you'd get when issuing the command `# pkg query %ro libiconv > ports_to_update` in comparison to `# portmaster -L` (where only the packages with an update matter).



There'll be nothing to compare, because libiconv isn't and never has been installed.


```
root@srv:~ # pkg query %ro libiconv > ports_to_update
root@srv:~ # cat ports_to_update
root@srv:~ #
```

Ironically, UPDATING isn't up-to-date  :e 

They've changed the ports tree to allow building libiconv as a dependency for some ports that _need_ it. Problem is, this may break the system because programs might not be able to deal with having dual iconv installations. So I'm caught in a difficult situation: sit idly by and allow outdated and potentially vulnerable programs to remain on my system, or try and update and deal with the mess if it all breaks; like these poor fellows:

viewtopic.php?f=5&t=44659
viewtopic.php?f=5&t=44644


----------



## ShelLuser (Feb 2, 2014)

Now I see what you're aiming at. And indeed; not something I can easily help with considering that the initial cause of these problems lies with the new hierarchy of FreeBSD 10 itself. I can't provide much help there since I haven't taken the time yet to take a good look at the new version.

My suggestion, but I'm pretty sure you have thought of this yourself already, would be to upgrade the new ports on an individual basis. That should give you a little more control over what's happening and might help you to get at least some ports more up to date without the converters/libiconv problem.


----------



## nanotek (Feb 2, 2014)

I did think of that but given how new the updated versions are, I'm going to wait a few days and see if the libiconv / iconv situation gets fixed. I'm going to install Poudriere and build my own repository to mitigate these problems in future. At least I can deal with build issues in a clean environment without affecting live deployments.


----------



## Vovas (Feb 6, 2014)

Hi all!
@nanotek, did you find any solution? I have similar problem with libiconv. I've deleted converters/libiconv with UPDATING manual  :stud  After that, I tryed to update ports tree with svn:

```
Shared object "libiconv.so.3" not found
```
Tryed to reinstall devel/subversion:

```
libiconv.la' is not a valid libtool archive
```
Build was failed. I think this situation like a vicious circle. I can't do anythnig with my system  
May be we should use some options in make.conf?
I've deleted databases/db42, because this port have been deprecated. And install databases/db6 with Makefile option 

```
USE=iconv
```
successfully.
P.S. My English is bad, sorry!


----------



## nanotek (Feb 6, 2014)

Vovas said:
			
		

> Hi all!
> @nanotek, did you find any solution? I have similar problem with libiconv. I've deleted converters/libiconv with UPDATING manual  :stud  After that, I tryed to update ports tree with svn:
> 
> ```
> ...



Hi, @Vovas. Sadly, I have not found a solution. Maybe use `portsnap` to update your ports tree, and if you have an up-to-date /usr/src try rebuilding and installing a new world and kernel. That's what I'm going to do.

I agree, this upgrade to 10.0-RELEASE has not been pleasant and in some ways is like a vicious circle.

Your English is fine, by the way


----------



## Vovas (Feb 7, 2014)

[user:13g13tmm]nanotek[/user] said:
			
		

> Hi, @Vovas. Sadly, I have not found a solution. Maybe use `portsnap` to update your ports tree, and if you have an up-to-date /usr/src try rebuilding and installing a new world and kernel. That's what I'm going to do.
> 
> I agree, this upgrade to 10.0-RELEASE has not been pleasant and in some ways is like a vicious circle.
> 
> Your English is fine, by the way


Hi, @nanotek!
Solved! I updated ports tree with `portsnap`, run `portmaster -Raf`. 2 hours and all my 142 packages were reinstalled yesterday without any problems. 
Now, my box run without errors :beer 
Thanks for help!


----------



## cbrace (Feb 7, 2014)

Hi, when I run that portmaster command, the thing chokes on a dependency of www/apache22, databases/db42


```
===>>> All >> ap22-mod_xml2enc-1.0.3 >> www/apache22 (79/79)

===>>> Port directory: /usr/ports/www/apache22

===>>> Launching 'make checksum' for www/apache22 in background
===>>> Gathering dependency list for www/apache22 from ports
===>>> Forcing update for /usr/ports/devel/apr1
===>>> Launching child to reinstall apr-1.4.8.1.5.3

===>>> All >> ap22-mod_xml2enc-1.0.3 >> www/apache22 >> apr-1.4.8.1.5.3 (80/80)

===>>> Currently installed version: apr-1.4.8.1.5.3
===>>> Port directory: /usr/ports/devel/apr1

===>>> Launching 'make checksum' for devel/apr1 in background
===>>> Gathering dependency list for devel/apr1 from ports
===>>> Launching child to install databases/db42

===>>> All >> ap22-mod_xml2enc-1.0.3 >> www/apache22 >> apr-1.4.8.1.5.3 >> databases/db42 (81/81)

===>>> Port directory: /usr/ports/databases/db42

	===>>> This port is marked DEPRECATED
	===>>> Please use databases/db5 or db6 for new installs.


	===>>> If you are sure you can build it, remove the
	       DEPRECATED line in the Makefile and try again.

===>>> Update for databases/db42 failed
===>>> Aborting update

===>>> Update for apr-1.4.8.1.5.3 failed
===>>> Aborting update

===>>> Update for www/apache22 failed
===>>> Aborting update

===>>> Update for ap22-mod_xml2enc-1.0.3 failed
===>>> Aborting update

===>>> Killing background jobs
Terminated
Terminated
Terminated
===>>> Exiting
```
I tried deinstalling and reinstalling apache separately but it keeps choking on this db42 dependency. Anyone have any ideas for me?


----------



## Vovas (Feb 8, 2014)

Hi, @cbrace!
You should uninstall databases/db42 and install databases/db5 or databases/db6.
Portmaster shows to you message:


> ===>>> This port is marked DEPRECATED
> ===>>> Please use *databases/db5* or *db6* for new installs.


----------



## cbrace (Feb 8, 2014)

Thanks @Vovas, I noticed that earlier and tried installing a newer version of db. Alas I am also getting an error message with databases/db5:

```
/usr/bin/strip /usr/ports/databases/db5/work/stage/usr/local/lib/db5/libdb-5.3.so.0
/usr/bin/strip: '/usr/ports/databases/db5/work/stage/usr/local/lib/db5/libdb-5.3.so.0': No such file
*** [post-install] Error code 1

Stop in /usr/ports/databases/db5.
*** [install] Error code 1

Stop in /usr/ports/databases/db5.
```
???


----------



## Vovas (Feb 8, 2014)

Check out here Thread 43875. And don't forget update ports tree before ports installation.


----------

