# Can't compile some ports after upgrade x86->amd64



## doorsfan (Aug 26, 2016)

Hello, All!
Usually, I try to use google. But this time google didn't help me. About year ago i upgrade system (10.1) x86->amd64. While rebuilding all ports I found out that some ports didn't compile. Due lack of time I used 
`pkg upgrade problem_port`.
It was not a good idea (I never set X11 option while compiling, etc...).
During last year problem was not resolved, so I ask Community to help me.

Typical error of all these ports (configure.ac:37: error: required file './ltmain.sh' not found,autoreconf-2.69: automake failed with exit status: 1):

```
===>  Configuring for libuv-1.9.1
echo "m4_define([UV_EXTRA_AUTOMAKE_FLAGS], [ serial-tests])"  > /usr/ports/devel/libuv/work/libuv-v1.9.1/m4/libuv-extra-automake-flags.m4
configure.ac:35: installing './ar-lib'
configure.ac:25: installing './compile'
configure.ac:22: installing './config.guess'
configure.ac:22: installing './config.sub'
configure.ac:21: installing './install-sh'
configure.ac:37: error: required file './ltmain.sh' not found
configure.ac:21: installing './missing'
Makefile.am: installing './depcomp'
autoreconf-2.69: automake failed with exit status: 1
*** Error code 1

# cat /etc/make.conf
#DOC_LANG=ru_RU.KOI8-R en_US.ISO8859-1
#FORMATS=html
KERNCONF=MYKERNEL
DEFAULT_VERSIONS+=    php=5.6
MAKE_JOBS_UNSAFE=yes
DEFAULT_VERSIONS+=ssl=openssl
WITH_OPENSSL_PORT= yes
----------
```
rc.conf:
line "ldconfig32_path=..." was removed from rc.conf for ages ago.
Any ideas?
With best wishes, Yura AKA doorsfan


----------



## SirDice (Aug 26, 2016)

doorsfan said:


> About year ago i upgrade system (10.1) x86->amd64


How did you do this? Did you re-install from scratch? Doing this "in-place" is completely unsupported and is likely the cause of your problems.


----------



## morbit (Aug 26, 2016)

If you are dedicated to fixing that, supported or not (YYMV etc), at the very least, I would recompile all of the autotools, libtool, m4 etc. All of what is used for configuring a port. Some of it is probably misconfigured for your current architecture.


----------



## doorsfan (Aug 26, 2016)

SirDice said:


> How did you do this?


Using popular article with 1-time boot from /swap partition



morbit said:


> ... I would recompile all of the autotools, libtool, m4 etc.



Thank you for answer. I have done: `make deinstall config install clean`:

```
autoconf-2.69_1                Automatically configure source code on many Un*x platforms
autoconf-wrapper-20131203      Wrapper script for GNU autoconf
automake-1.15_1                GNU Standards-compliant Makefile generator
automake-wrapper-20131203      Wrapper script for GNU automake
libtool-2.4.6
m4-1.4.17_1,1
```

So `cd /usr/ports/devel/libuv ;   make clean && make` with the same error.


----------



## doorsfan (Aug 26, 2016)

And another error:

```
===>  Building for jbig2dec-0.13
/usr/bin/make  all-am
/bin/sh ./libtool  --tag=CC    --mode=compile cc -DHAVE_CONFIG_H  -I.      -O2 -pipe  -fstack-protector -fno-strict-aliasing -Wall -I/usr/local/include  -MT jbig2.lo -MD -MP -MF .deps/jbig2.Tpo -c -o jbig2.lo jbig2.c
libtool: Version mismatch error.  This is libtool 2.4.2 Debian-2.4.2-1.11, but the
libtool: definition of this LT_INIT comes from libtool 2.4.6.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1.11
libtool: and run autoconf again.
*** Error code 63
Stop.
make[3]: stopped in /usr/ports/graphics/jbig2dec/work/jbig2dec-0.13
```


----------



## morbit (Aug 26, 2016)

As you can see from above, something is still not really on the same page currently, you need to dig deeper into what is (was) used to configure ports (e.g. pkgconf).


----------



## kpa (Aug 26, 2016)

I would just do `# pkg delete -a` and start over from scratch. Doing that will leave your configuration files intact so all you have to do is to get the proper amd64 versions of the currently installed ports back in place.


----------



## wblock@ (Aug 27, 2016)

The procedure for rebuilding all ports is shown at the end of the ports-mgmt/portmaster man page.  Which is, unfortunately, not online, just in the current version of that port.

doorsfan, if you _any_ have pieces of i386 ports still installed, they can poison the building of new ports.
# `make -C /usr/ports/ports-mgmt/portmaster patch`
# `man /usr/ports/ports-mgmt/portmaster/work/portmaster-3.17.9/files/portmaster.8 | less '+/complete reinstallation'`


----------



## marino (Aug 27, 2016)

we shouldn't be _recommending_ ports-mgmt/portmaster to people that didn't specify it.  At best, it should be listed after ports-mgmt/poudriere and ports-mgmt/synth for completeness.  You're not going to find ports committers that recommend to new users to build dirty.


----------



## wblock@ (Aug 27, 2016)

It's a clean build, begun by deleting all installed ports.  Posting the equivalent procedure for other ports management tools would be helpful.


----------



## marino (Aug 27, 2016)

wblock: this is not what "clean" means.
Clean refers to the build of each and every port being built, not the state of the system before building starts.
By definition, portmaster is not clean.  It can't ever be clean, it can never be the equivalent of poudriere.


----------



## wblock@ (Aug 28, 2016)

marino@ said:


> wblock: this is not what "clean" means.
> Clean refers to the build of each and every port being built, not the state of the system before building starts.


Each port that the user had installed is rebuilt from scratch, in dependency order.  But this becomes increasingly less relevant to this thread.  Please start a new thread with the equivalent "rebuild-everything" procedures for other port management programs.


----------



## marino (Aug 28, 2016)

The relevancy is the recommendation to use portmaster and not even mention the correct tools.

I think of this topic like smoking.  Smokers aren't going to change even when faced with good information that they shouldn't be smoking.  They're going to keep doing it until something really bad happens.  Smokers are basically a lost cause, but that doesn't mean we should get new people hooked on smoking.  They should be encouraged to have better, healthier habits.   portmaster is analogous to cigarettes here.  Maybe it's too late for wblock, but I firmly believe recommending portmaster to new people is not helping them.  (Not to mention the method about will also dump all the unnecessary fetch, extract, patch and build dependencies on the system too.)


----------



## doorsfan (Aug 28, 2016)

*Thanks to all. *Rebuild in place do not works,

```
/usr/local/lib/libintl.so.8: unsupported file layout
/usr/local/lib/libintl.so.8: unsupported file layout
config.status: error: could not create config.h
gmake[3]: *** [Makefile:46: bind1] Error 1
gmake[3]: Leaving directory '/usr/ports/net/isc-dhcp43-server/work/dhcp-4.3.4/bind'
gmake[2]: *** [Makefile:437: all-recursive] Error 1
gmake[2]: Leaving directory '/usr/ports/net/isc-dhcp43-server/work/dhcp-4.3.4'
*** Error code 1
```
so problem shelved till long holidays (server has many roles, can't stop for a full day) 
Will follow *wblock@* advice (cleaning /usr/local, /var/db/packages)
You are great community, I am very much obliged to all!!


----------



## morbit (Aug 28, 2016)

@marino ports-mgmt/portmaster is still maintained as a port and is still recommended along the ports-mgmt/portupgrade in Handbook. It grew around as a natural extension of native port system. The fact that you can have more modern approach (system binary upgrades by `freebsd-update` speaking of base, or package builders instead of in place source port upgrade), does not invalidate the traditional approach. When it does, it will be a sad day for many. e.g. I'm still unsure if ports-mgmt/synth can replace ports-mgmt/portmaster here, nor if I really want it to try it.


----------



## marino (Aug 28, 2016)

ports-mgmt/portmaster is no longer recommended.  The wording was changed to "small utility" as a compromise to removing the entry completely.   I don't believe ports-mgmt/portupgrade is recommended either but that would need to be verified.

You will not find the port manager team member recommending these ports.  If anything, you will find them recommending *against* them.   They have a technical basis for this, not a sentimental one.
I'm not pushing synth.   I'm pushing either poudriere OR synth.   portmaster is inferior, both of those ports do well more than "replace" it.   Do what you want (obviously a "smoker").  I am just emphatically requesting not to recommend that to new people, at least not without mentioning the other options first.


----------



## zirias@ (Aug 28, 2016)

What's going on here .... I sometimes enjoy a smoke, and I found poudriere the best tool for my personal needs -- so what?
It's nice to have tools around that allow for isolated, reproducible package builds, but not everyone needs this. Your point was to give the hint -- well, you did. I just guess the OP, obviously having a strange i386/amd64 mix on his system, might have more pressing issues than clean build environments for every single package


----------



## wblock@ (Aug 28, 2016)

Actual instructions for rebuilding and reinstalling all ports without portmaster would be appropriate in this thread.  Ideological arguments belong in a separate thread, as was requested earlier.


----------

