Subject: pkg/29727: sysutils/mc - can't build without pkgconfig package (broken depends?) - pkgsrc2004Q4
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <chwalek@poczta.onet.pl>
List: pkgsrc-bugs
Date: 03/17/2005 22:24:00
>Number:         29727
>Category:       pkg
>Synopsis:       sysutils/mc - can't build without pkgconfig package (broken depends?) - pkgsrc2004Q4
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 17 22:24:00 +0000 2005
>Originator:     Pawel Chwalowski
>Release:        2.0
>Organization:
>Environment:
NetBSD wodogrzmot. 2.0 NetBSD 2.0 (GENERIC) #0: Wed Dec  1 10:58:25 UTC 2004  builds@build:/big/builds/ab/netbsd-2-0-RELEASE/i386/200411300000Z-obj/big/builds/ab/netbsd-2-0-RELEASE/src/sys/arch/i386/compile/GENERIC i386

>Description:
I can not build Midnight Commander in pkgsrc-2004Q4:

checking for pkg-config... no
*** The pkg-config script could not be found. Make sure it is
*** in your path, or set the PKG_CONFIG environment variable
*** to the full path to pkg-config.
*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config.
checking for glib-config... /usr/pkg/bin/glib-config
checking for glib-config... (cached) /usr/pkg/bin/glib-config
checking for GLIB - version >= 1.2.6... no
*** Could not run GLIB test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means GLIB was incorrectly installed
*** or that you have moved GLIB since it was installed. In the latter case, you
*** may want to edit the glib-config script: /usr/pkg/bin/glib-config
configure: error: Test for glib failed.
GNU Midnight Commander requires glib 1.2.6 or above.
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc-2004Q4/sysutils/mc
*** Error code 1

Stop.
make: stopped in /usr/pkgsrc/sysutils/mc
wodogrzmot: {11} pkg_info|grep pkgconfig
wodogrzmot: {12} pkg_info|grep glib
glib-1.2.10nb8      Some useful routines for C programming (glib1)
glib2-2.4.8         Some useful routines for C programming (glib2)
wodogrzmot: {13} 


configure.log:
configure:3812: checking for pkg-config
configure:3843: result: no
configure:3911: checking for glib-config
configure:3929: found /usr/pkg/bin/glib-config
configure:3941: result: /usr/pkg/bin/glib-config
configure:4004: checking for glib-config
configure:4035: result: /usr/pkg/bin/glib-config
configure:4043: checking for GLIB - version >= 1.2.6
configure:4147: cc -o conftest -O2 -mcpu=pentium2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/glib/glib-1.2 -I/usr/pkg/lib/glib/include -I/usr/pkg/include -I/usr/include -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib conftest.c -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lglib  -lintl >&5
conftest.c:22:18: glib.h: No such file or directory
conftest.c: In function `main':
conftest.c:35: warning: assignment makes pointer from integer without a cast
conftest.c:41: error: `glib_major_version' undeclared (first use in this function)
conftest.c:41: error: (Each undeclared identifier is reported only once
conftest.c:41: error: for each function it appears in.)
conftest.c:42: error: `glib_minor_version' undeclared (first use in this function)
conftest.c:43: error: `glib_micro_version' undeclared (first use in this function)
conftest.c:57: error: `GLIB_MAJOR_VERSION' undeclared (first use in this function)
conftest.c:58: error: `GLIB_MINOR_VERSION' undeclared (first use in this function)
conftest.c:59: error: `GLIB_MICRO_VERSION' undeclared (first use in this function)
configure:4150: $? = 1
configure: program exited with status 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "mc"
| #define VERSION "4.6.1-pre2b"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
|
| #include <glib.h>
| #include <stdio.h>
| #include <stdlib.h>
| 
| int
| main ()
| {
|   int major, minor, micro;
|   char *tmp_version;
| 
|   system ("touch conf.glibtest");
| 
|   /* HP/UX 9 (%@#!) writes to sscanf strings */
|   tmp_version = g_strdup("1.2.6");
|   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
|      printf("%s, bad version string\n", "1.2.6");
|      exit(1);
|    }
| 
|   if ((glib_major_version != 1) ||
|       (glib_minor_version != 2) ||
|       (glib_micro_version != 10))
|     {
|       printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
|              1, 2, 10,
|              glib_major_version, glib_minor_version, glib_micro_version);
|       printf ("*** was found! If glib-config was correct, then it is best\n");
|       printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
|       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
|       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
|       printf("*** required on your system.\n");
|       printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
|       printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
|       printf("*** before re-running configure\n");
|     }
|   else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
| 	   (glib_minor_version != GLIB_MINOR_VERSION) ||
|            (glib_micro_version != GLIB_MICRO_VERSION))
|     {
|       printf("*** GLIB header files (version %d.%d.%d) do not match\n",
| 	     GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
|       printf("*** library (version %d.%d.%d)\n",
| 	     glib_major_version, glib_minor_version, glib_micro_version);
|     }
|   else
|     {
|       if ((glib_major_version > major) ||
|         ((glib_major_version == major) && (glib_minor_version > minor)) ||
|         ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
|       {
|         return 0;
|        }
|      else
|       {
|         printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
|                glib_major_version, glib_minor_version, glib_micro_version);
|         printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
| 	       major, minor, micro);
|         printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
|         printf("***\n");
|         printf("*** If you have already installed a sufficiently new version, this error\n");
|         printf("*** probably means that the wrong copy of the glib-config shell script is\n");
|         printf("*** being found. The easiest way to fix this is to remove the old version\n");
|         printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
|         printf("*** correct copy of glib-config. (In this case, you will have to\n");
|         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
|         printf("*** so that the correct libraries are found at run-time))\n");
|       }
|     }
|   return 1;
| }
| 
configure:4177: result: no
configure:4210: cc -o conftest -O2 -mcpu=pentium2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/glib/glib-1.2 -I/usr/pkg/lib/glib/include -I/usr/pkg/include -I/usr/include -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib conftest.c  -lintl -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lglib >&5
conftest.c:22:18: glib.h: No such file or directory
conftest.c: In function `main':
conftest.c:28: error: `glib_major_version' undeclared (first use in this function)
conftest.c:28: error: (Each undeclared identifier is reported only once
conftest.c:28: error: for each function it appears in.)
conftest.c:28: error: `glib_minor_version' undeclared (first use in this function)
conftest.c:28: error: `glib_micro_version' undeclared (first use in this function)
configure:4216: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "mc"
| #define VERSION "4.6.1-pre2b"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| 
| #include <glib.h>
| #include <stdio.h>
| 
| int
| main ()
| {
|  return ((glib_major_version) || (glib_minor_version) || (glib_micro_version));
|   ;
|   return 0;
| }
configure:4262: error: Test for glib failed.
GNU Midnight Commander requires glib 1.2.6 or above.

>How-To-Repeat:
Try to make sysutils/mc without devel/pkgconfig installed.
>Fix:
diff -ru pkgsrc/sysutils/mc.ori/Makefile pkgsrc/sysutils/mc/Makefile
--- pkgsrc/sysutils/mc.ori/Makefile	2005-03-17 22:48:29.000000000 +0100
+++ pkgsrc/sysutils/mc/Makefile	2005-03-17 22:52:48.000000000 +0100
@@ -96,6 +96,7 @@
 CONFIGURE_ARGS+=	--with-screen=mcslang
 .endif
 
+.include "../../devel/pkgconfig/buildlink3.mk"
 .include "../../devel/glib2/buildlink3.mk"
 .include "../../devel/gettext-lib/buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"