# php5 upgrading and autoconf troubles on 6.4



## mecano (Feb 4, 2009)

Trying to upgrade php5 on FreeBSD 6.4 RELEASE 3

> pkg_version -s php5

```
php5                                <[code]

> pkg_version -v
...
[code]php5-5.2.6_2                        <   needs updating (port has 5.2.8)
```
...

> portupgrade php5


```
===>  Checking if devel/autoconf262 already installed
===>   autoconf-2.61_2 is already installed
      You may wish to ``make deinstall'' and install this port again
      by ``make reinstall'' to upgrade it properly.
      If you really wish to overwrite the old port of devel/autoconf262
      without deleting it first, set the variable "FORCE_PKG_REGISTER"
      in your environment or the "make install" command line.
*** Error code 1

Stop in /usr/ports/devel/autoconf262.
*** Error code 1

Stop in /usr/ports/lang/php5.
*** Error code 1

Stop in /usr/ports/lang/php5.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade.56115.0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=php5-5.2.6_2 UPGRADE_PORT_VER=5.2.6_2 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! lang/php5 (php5-5.2.6_2)      (unknown build error)
```


----------



## hydra (Feb 4, 2009)

# cd /usr/ports/devel/autoconf262 && make deinstall
# portupgrade php5

Try if it helps.


----------



## mecano (Feb 4, 2009)

Thanks hydra, I did try it and here what I got :


```
===>   Compressing manual pages for autoconf-2.61_2
===>   Registering installation for autoconf-2.61_2
===>   Returning to build of php5-5.2.8
===>   php5-5.2.8 depends on executable: pkg-config - found
===>   php5-5.2.8 depends on shared library: xml2.5 - found
===>  Configuring for php5-5.2.8
env: /usr/local/bin/autoconf-2.62: No such file or directory
*** Error code 127

Stop in /usr/ports/lang/php5.
*** Error code 1

Stop in /usr/ports/lang/php5.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade.28716.0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=php5-5.2.6_2 UPGRADE_PORT_VER=5.2.6_2 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! lang/php5 (php5-5.2.6_2)      (unknown build error)
```

I also tried 

```
make deinstall
make clean
make reinstall
```
with same output as in first post.


----------



## mecano (Feb 4, 2009)

I don't get why the /usr/ports/devel/autoconf262 is always installing autoconf-2.61_2


----------



## hydra (Feb 4, 2009)

Try to deinstall all autoconf ports and update php5.


----------



## mecano (Feb 5, 2009)

Thanks again hydra, are you talking about installed autoconf versions on my system? If so I already done that (and only had autoconf-2.61._2 and the autoconf alias in /usr/local/bin).
If you are talking about deinstalling ports files like dist and so on I did a portsclean -DD then (based on this post http://forums.freebsd.org/showpost.php?p=11660&postcount=11) I did a pkgdb -fu and a portmaster -aud but now it's apache that shock on autoconf! I did find a pkgdb.fixme thing in my /var/db/ folder, guess I'll investigate this ^^


----------



## mecano (Feb 5, 2009)

oh I forgot to say that I have no /var/db/pkgdb !

[OT]
is it possible to edit posts on this board? Can't find any option to do it
[/OT]


----------



## r-c-e (Feb 5, 2009)

CVSup to latest ports and try again.


----------



## mecano (Feb 5, 2009)

that was the first thing I did but with portsnap, I did

```
portsnap fetch
portsnap update
```
and doing it right after cleaning things


----------



## hydra (Feb 5, 2009)

You cannot edit your posts yet...

Portmaster doesn't use any databases, so you don't need to pkgdb anything and you don't even need /var/db/pkg/pkgdb.db, this database is for portupgrade. Maybe give a try to delete all autoconfig ports, not the distfiles, but the ports you have on your system. Also show the output of:
pkg_info | grep -i autoconf
if you don't mind...

Portsnap can chain the actions (accept several parameters), so a simple `portsnap fetch update` will suffice (it's not a mistake to use it your way or this one).


----------



## mecano (Feb 6, 2009)

I suspect there is a chance I'll see the lightâ€¦


```
pkg_info | grep -i autoconf
```
outputs

```
autoconf-2.61_2     Automatically configure source code on many Un*x platforms
```

I deleted all autoconf folders in /usr/ports/devel and I'm currently using portsnap to extract a new ports treeâ€¦ 
I also did a pkg_delete on autoconf-2.61_2 and to my amazement it worked (I did tried this previously but I should have mistyped) so I did a pkg_add -r autoconf262 and it seems it leaded somewhere :

```
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.4-release/Latest/autoconf262.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.4-release/All/autoconf-wrapper-20071109.tbz... Done.
pkg_add: warning: package 'autoconf-2.62' requires 'perl-5.8.8_1', but 'perl-5.8.9' is installed
```

damn a warningâ€¦

As portsnap extract is pretty time consuming, I'll be back later and tell if it worked or not.

Thanks again hydra


----------



## hydra (Feb 6, 2009)

Seems we are mixing terms. There is no use to delete the skelet files in /usr/ports/*/* (like /usr/ports/devel/autoconf262), these are the procedures of where the source codes are fetched, how they are patched, compiled and installed. When I mentioned to deinstall the autoconf ports I meant to deinstall the installed packages, not these skelet files. As mentioned in http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ports-using.html it's done with pkg_delete.

Another thing. If you removed some skelet files it's no use to simply do a portsnap fetch update, it will NOT work. You must delete the whole /usr/ports directory (be sure to backup /usr/ports/distfiles or /usr/ports/packages !!!). Next do a portsnap extract, which will create a new /usr/ports directory, copy the distfiles and packages (if any) there and you can update your ports tree normally like before, e.g. portsnap fetch update. 

Yet another thing, the pkg_add command will simply fetch a binary precompiled version of a program, it will not utilize the port tree. It's not a good practice to mix up ports and packages, it means that if you mostly install your programs the standard way like:
cd /usr/ports/multimedia/xmms && make install (this uses the ports tree, the skelet files)
do not mix it with binary packages like pkg_add autoconf262.

Either choose one or another. I would recommend to compile the programs, since they are always fresh and you can select the compilation options.

The portupgrade method you mentioned in the first post will normally update your programs from source, by default it doesn't use binary packages.


----------



## mecano (Feb 6, 2009)

Thanks for all these valuable informations hydra.
In my ignorance I was lucky pkg add did not install anything but just fetched tared binaries.
I hope removing only autoconf* folders from /usr/ports/devel/ then doing a portsnap extract will not cause further troubles in the future (will see) but for now this has resolved my problems, I was able to perform upgrades.
I do agree with you that ports are better than packages (and thought that pkg add was a way to update the ports tree and other things as I thought pkg_delete was cleaning both binaries, dist files and ports tree), you can even learn from ports by looking at the patches files which proved to be very helpfull for installing non ported tools (or outdated ports needed by other tools, I'm thinking of ACE-wrappers for example). And, of course compilation options are a must (even if sometimes I'm sure some options really are =) ).
Anyway thanks a lot, as I said, for now, all is looking fine !


----------

