Date: Tue, 12 Mar 2002 17:19:44 -0500 (EST) From: Joe Marcus Clarke <marcus@marcuscom.com> To: FreeBSD-gnats-submit@freebsd.org Subject: ports/35831: [PATCH] Fix problem getting pthread libs and cflags from pkgconfig Message-ID: <200203122219.g2CMJiO00919@shumai.marcuscom.com>
next in thread | raw e-mail | index | archive | help
>Number: 35831 >Category: ports >Synopsis: [PATCH] Fix problem getting pthread libs and cflags from pkgconfig >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Mar 12 14:20:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: Joe Marcus Clarke >Release: FreeBSD 4.5-STABLE i386 >Organization: MarcusCom, Inc. >Environment: System: FreeBSD shumai.marcuscom.com 4.5-STABLE FreeBSD 4.5-STABLE #0: Mon Mar 4 23:37:10 EST 2002 marcus@shumai.marcuscom.com:/usr/obj/usr/src/sys/SHUMAI i386 >Description: On -stable anyway, there is a problem getting "other" libs and cflags from dependency packages (for example, from gthread-2.0). This prevents ports like ORbit2 from compiling. It seems to be a pretty serious oversight on the pkgconfig folks, so I'm going to submit this patch to them. Basically, this patch adds recursive scanning capabilities to the other_cflags and other_libs functions. I included a new copy of files/patch-pkg.c since there have been some issues submitting patches of patches. >How-To-Repeat: >Fix: --- patch-pkg.c begins here --- --- pkg.c.orig Thu Feb 7 14:32:13 2002 +++ pkg.c Tue Mar 12 16:54:50 2002 @@ -93,7 +93,7 @@ * locations, ignoring duplicates */ static void -scan_dir (const char *dirname) +scan_dir (const char *dirname, void *quiet) { DIR *dir; struct dirent *dent; @@ -113,7 +113,8 @@ free (dirname_copy); if (!dir) { - debug_spew ("Cannot open directory '%s' in package search path: %s\n", + if (!quiet) + debug_spew ("Cannot open directory '%s' in package search path: %s\n", dirname, g_strerror (errno)); return; } @@ -177,7 +178,9 @@ path_positions = g_hash_table_new (g_str_hash, g_str_equal); g_slist_foreach (search_dirs, (GFunc)scan_dir, NULL); - scan_dir (PKGLIBDIR); + scan_dir (PKGLIBDIR, (void *)0); + scan_dir (XPKGLIBDIR, (void *)1); + scan_dir (LPKGLIBDIR, (void *)1); } } @@ -901,6 +904,13 @@ while (tmp != NULL) { Package *pkg = tmp->data; + GSList *reqs = pkg->requires; + + if (reqs) + { + g_string_append (str, packages_get_other_libs(reqs)); + g_string_append (str, " "); + } if (pkg->other_libs) { @@ -924,10 +934,13 @@ char *L_libs; char *other_libs; GString *str; + GSList *tmp; char *retval; str = g_string_new (""); + tmp = pkgs; + other_libs = packages_get_other_libs (pkgs); L_libs = packages_get_L_libs (pkgs); l_libs = packages_get_l_libs (pkgs); @@ -986,6 +999,13 @@ while (tmp != NULL) { Package *pkg = tmp->data; + GSList *reqs = pkg->requires; + + if (reqs) + { + g_string_append (str, packages_get_other_cflags(reqs)); + g_string_append (str, " "); + } if (pkg->other_cflags) { --- patch-pkg.c ends here --- >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200203122219.g2CMJiO00919>