Bug 32512

Summary: Problems in Makefile.am of some KDE 2.2.2 packages
Product: Ports & Packages Reporter: Nils Holland <nils>
Component: Individual Port(s)Assignee: freebsd-kde (group) <kde>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Nils Holland 2001-12-04 22:40:00 UTC
	I wanted to update some of our desktop machines here to KDE 2.2.2
	using the newly updated ports today, but there seems to be a
	problem. While kdelibs2 and kdebase2 work, at least kdegames2 and
	koffice fail with the following error message (which is taken
	from kdegames2, but looks similar with koffice):

*** Creating acinclude.m4
!!! If you get recursion errors from autoconf, it is advisable to set the
    environment variable M4 to something including "--nesting-limit=500"
*** Creating list of subdirectories
*** Creating configure.in
*** Creating aclocal.m4
*** Creating configure
*** Creating config.h template
*** Creating Makefile templates
lskat/lskatproc/Makefile.am:1: bin_PROGRAMS multiply defined in condition TRUE

# claim, which subdirectories you want to install
# you can add here more. This one gets installed
  bin_PROGRAMS (User, where = 1) =
  {
    TRUE => lskatproc
  }
gmake[1]: *** [cvs] Error 1
gmake: *** [all] Error 2
*** Error code 2

Fix: 

I don't have a diff handy, but bin_PROGRAMS is indeed defined
	twice in lskat/lskatproc/Makefile.am. Manually deleting the double
	definition fixed the problem. I'm currently trying to see if this
	works with koffice and probably other kde 2.2.2 packages that
	won't build as well, but I guess it will.

	I don't know if my attempt at fixing this was the corret way
	of doing things, but it works here. As other users start noting
	this problem (I just know one other user beside me at this time),
	I guess FreeBSD's KDE folks should have a look at this.
How-To-Repeat: 	Try compiling kdegames2 / koffice yourself!
Comment 1 Mario Sergio Fujikawa Ferreira freebsd_committer freebsd_triage 2001-12-04 22:50:40 UTC
Responsible Changed
From-To: freebsd-ports->kde

Over to maintainers
Comment 2 Alan Eldridge 2001-12-05 00:48:27 UTC
On Tue, Dec 04, 2001 at 11:30:51PM +0100, Nils Holland wrote:
>
>>Number:         32512
>>Category:       ports
>>Synopsis:       Problems in Makefile.am of some KDE 2.2.2 packages
>
>>Description:
>	I wanted to update some of our desktop machines here to KDE 2.2.2
>	using the newly updated ports today, but there seems to be a
>	problem. While kdelibs2 and kdebase2 work, at least kdegames2 and
>	koffice fail with the following error message (which is taken
>	from kdegames2, but looks similar with koffice):
>
>*** Creating acinclude.m4
>!!! If you get recursion errors from autoconf, it is advisable to set the
>    environment variable M4 to something including "--nesting-limit=500"
>*** Creating list of subdirectories
>*** Creating configure.in
>*** Creating aclocal.m4
>*** Creating configure
>*** Creating config.h template
>*** Creating Makefile templates
>lskat/lskatproc/Makefile.am:1: bin_PROGRAMS multiply defined in condition TRUE
>

I know there were issues with KDE2 and automake-1.5 during alpha and beta
testing; I don't know the status of those issues now. If you have only
automake-1.5 installed, you should install the automake14-1.4.5 package, and
try again. 


-- 
Alan Eldridge
#include <cstdlib>
free(sklyarov);
Comment 3 Nils Holland 2001-12-05 09:31:00 UTC
On Tue, 4 Dec 2001, Alan Eldridge wrote:

> >*** Creating config.h template
> >*** Creating Makefile templates
> >lskat/lskatproc/Makefile.am:1: bin_PROGRAMS multiply defined in condition TRUE
> >
>
> I know there were issues with KDE2 and automake-1.5 during alpha and beta
> testing; I don't know the status of those issues now. If you have only
> automake-1.5 installed, you should install the automake14-1.4.5 package, and
> try again.

I already thought about something like that, but it didn't seem to help
much. I had automake 14 (and autoconf213) installed along with the current
automake/autoconf versions when that problem occured. In order to solve
it, I tried uninstalling the current versions of automake/conf and
actually symlinked automake to automake14 in /usr/local/bin, but that
didn't help either :-(

Greetings
Nils


Nils Holland
Ti Systems - FreeBSD in Tiddische, Germany
http://www.tisys.org * nils@tisys.org
Comment 4 Nils Holland 2001-12-05 11:00:22 UTC
Status report:

It seems that the above problem really has to do with an automake conflict. It seems
to me that normally, a link to /usr/local/bin/automake14 is
generated in work/<packagename>/auto-bin, and that this
directory is exported into the PATH. However, it still seems
as if /usr/local/bin/automake gets used instead of the link
to automake14 in auto-bin. Doing a
setenv PATH /usr/ports/<path_to_package_workdir/<packagename>/auto-bin:$PATH
seems to work, though...
Comment 5 martin 2001-12-05 11:12:39 UTC
I hade the same problem when compiling yesterday. I ran pkg_delete auto* in 
/var/db/pkg and then returned to build kde2 wich then worked OK.

The strange thing was that all my ports were at their latest versions when I
ran pkg_info -v 

-- 
Martin Nilsson, Civilingenjör M.Sc. CS&E 
Svenska Butiker AB,
S:t Larsväg 44, 222 70 Lund
martin@svenskabutiker.se  
Tel: 046-304130      
www.svenskabutiker.se
Comment 6 Nils Holland 2001-12-05 11:39:07 UTC
Maybe I replied a little often to my own pr, but anyway, the following
shows exactly what's wrong (incl. comments by me ;-)

--> The following line is supposed to make sure that automake14 gets used:

cd /usr/ports/deskutils/kdepim/work/kdepim-2.2.2 && env PATH=$PATH:/usr/ports/deskutils/kdepim/work/kdepim-2.2.2/auto-bin  gmake -f Makefile.cvs
This Makefile is only for the CVS repository
This will be deleted before making the distribution

*** Creating Makefile templates
empath/lib/Makefile.am:8: variable `LIBQPTHREAD' not defined
empath/parts/libEmpathMessageViewWidget/Makefile.am:7: variable `KDE_MODULE' not defined
kab2/Makefile.am:27: kab2includedir multiply defined in condition TRUE

  kab2includedir (User, where = 27) =
  {
    TRUE => $(includedir)/kab2
  }
kab2/Makefile.am:36: kab2include_HEADERS multiply defined in condition TRUE

--> BUT it doesn't succeed (I don't know why, though)...

Stop in /usr/ports/deskutils/kdepim.
*** Error code 1

--> ...as can be seen here.

Stop in /usr/ports/deskutils/kdepim.
*** Error code 1

Stop in /usr/ports/deskutils/kdepim.

--> I help the process a little by doing the following by hand:

root@poison> setenv PATH /usr/ports/deskutils/kdepim/work/kdepim-2.2.2/auto-bin:$PATH

--> Then I try again and ...

root@poison> make install

===>  Configuring for kdepim-2.2.2
*** Creating Makefile templates
*** Postprocessing Makefile templates
*** preparing libical
*** Creating date/time stamp
*** Finished
    Don't forget to run ./configure
    If you haven't done so in a while, run ./configure --help
find /usr/ports/deskutils/kdepim/work/kdepim-2.2.2/kpilot \( -name Makefile.in -o -name Makefile.am \) |  xargs /usr/bin/perl -pi -e  "s@LDFLAGS =@LDFLAGS=-L/usr/local/pilot/lib@g"
find /usr/ports/deskutils/kdepim/work/kdepim-2.2.2/libical -name Makefile.in | xargs /usr/bin/perl -pi -e  "s|INSTALL = \@INSTALL\@|INSTALL=install -c -o root -g wheel|g"
creating cache ./config.cache
checking host system type... i386--freebsd4.4
checking target system type... i386--freebsd4.4
checking build system type... i386--freebsd4.4
checking for a BSD compatible install... /usr/bin/install -c -o root -g wheel
checking whether build environment is sane... yes
checking whether gmake sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found

--> ...It works!

[...]

Of course, people who only have automake 1.4 installed (as
/usr/local/bin/automake) will not have any problems. But those that have
automake 1.5 installed as automake and automake 1.4 installed as automake
1.4 probably will...

Greetings
Nils

Nils Holland
Ti Systems - FreeBSD in Tiddische, Germany
http://www.tisys.org * nils@tisys.org
Comment 7 Will Andrews 2001-12-05 11:47:17 UTC
On Wed, Dec 05, 2001 at 03:40:07AM -0800, Nils Holland wrote:
>  --> The following line is supposed to make sure that automake14 gets used:
>  
>  cd /usr/ports/deskutils/kdepim/work/kdepim-2.2.2 && env PATH=$PATH:/usr/ports/deskutils/kdepim/work/kdepim-2.2.2/auto-bin  gmake -f Makefile.cvs
[1] ^^^^^^^^^^^


>  --> BUT it doesn't succeed (I don't know why, though)...

I do.  It's because I made a mistake with my ports.  The PATH
overriding is not done correctly; as per [1] ...auto-bin should
have gone before the rest of $PATH.  Otherwise newer auto* take
priority during make etc.  The reason I never noticed this
problem is because I always built these in a portbuild (i.e.
completely clean) environment (cf. http://bento.freebsd.org/).
So you're right, it was supposed to make sure automake14 gets
used, but it does not.  :-)

Alan and Pete, you can probably fix this yourselves.  :-)
You have my permission to fix all the ports.  I should note that
as soon as ac 2.5x or newer is in ports, we can probably remove
this ugly hack, as the problem that arose before I added it is
only caused because am 1.5 is incompatible with ac 2.5x.

Regards,
-- 
wca
Comment 8 Pete Fritchman freebsd_committer freebsd_triage 2001-12-07 15:43:58 UTC
State Changed
From-To: open->analyzed

OK, a fix has been committed for kdeaddons, kdeadmin, kdeartwork, 
kdebase2, kdegames2, kdelibs2, kdemultimedia2, kdetoys2, kdeutils2, 
and kio_fish.  The other ports that are affected by this still await 
some testing -- this should be done by this weekend.
Comment 9 Pete Fritchman freebsd_committer freebsd_triage 2001-12-08 14:10:03 UTC
State Changed
From-To: analyzed->closed

OK, fixes for everything committed.  Thanks!