Bug 140521 - multimedia/vlc 1.0.3,3 fails to compile due to autoconf failure
Summary: multimedia/vlc 1.0.3,3 fails to compile due to autoconf failure
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Thierry Thomas
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-13 07:00 UTC by marka
Modified: 2009-11-17 22:40 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description marka 2009-11-13 07:00:02 UTC
	configure fails to successfully detect sys/mount.h as the
	detection requires sys/param.h to be included resulting
	in the following compile error as sys/mount.h is not included.

file.c: In function `IsRemote':
file.c:130: error: storage size of 'stf' isn't known
file.c:132: error: implicit declaration of function `fstatfs'
file.c:130: warning: unused variable `stf'

	autoconf does not appear to be aware of this relationship
	and should also be fixed to prevent.

configure:23398: checking sys/mount.h usability
configure:23398: cc -std=gnu99 -c -O2 -fno-strict-aliasing -pipe -pthread -I/usr
/ports/multimedia/vlc/work/fake//usr/local/include -I/usr/ports/multimedia/vlc/w
ork/vlc-1.0.3/include -I/usr/local/include/speex -I/usr/local/include -I/usr/loc
al/ffmpeg  -I/usr/local/include -DSYS_FREEBSD6_4 conftest.c >&5
In file included from /usr/include/sys/mount.h:36,
                 from conftest.c:136:
/usr/include/sys/ucred.h:71: error: `NGROUPS' undeclared here (not in a function
)
configure:23398: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "vlc"
| #define PACKAGE_TARNAME "vlc"
| #define PACKAGE_VERSION "1.0.3"
| #define PACKAGE_STRING "vlc 1.0.3"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define PACKAGE "vlc"
| #define VERSION "1.0.3"
| #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
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define _FORTIFY_SOURCE 2
| #define restrict __restrict
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_ICONV 1
| #define ENABLE_NLS 1
| #define HAVE_GETTEXT 1
| #define HAVE_DCGETTEXT 1
| #define HAVE_ICONV 1
| #define ICONV_CONST const
| #define LIBEXT ".so"
| #define HAVE_GETTIMEOFDAY 1
| #define HAVE_ISATTY 1
| #define HAVE_GETPWUID_R 1
| #define HAVE_IF_NAMETOINDEX 1
| #define HAVE_GETENV 1
| #define HAVE_PUTENV 1
| #define HAVE_SETENV 1
| #define HAVE_CTIME_R 1
| #define HAVE_DAEMON 1
| #define HAVE_FORK 1
| #define HAVE_LSTAT 1
| #define HAVE_POSIX_MADVISE 1
| #define HAVE_ALLOCA 1
| #define HAVE_FCNTL 1
| #define HAVE_ASPRINTF 1
| #define HAVE_ATOF 1
| #define HAVE_ATOLL 1
| #define HAVE_GETCWD 1
| #define HAVE_GMTIME_R 1
| #define HAVE_LLDIV 1
| #define HAVE_LOCALTIME_R 1
| #define HAVE_REWIND 1
| #define HAVE_STRCASECMP 1
| #define HAVE_STRCASESTR 1
| #define HAVE_STRDUP 1
| #define HAVE_STRLCPY 1
| #define HAVE_STRNCASECMP 1
| #define HAVE_STRSEP 1
| #define HAVE_STRTOF 1
| #define HAVE_STRTOLL 1
| #define HAVE_VASPRINTF 1
| #define HAVE_SWAB 1
| #define fdatasync fsync
| #define HAVE_FSTATFS 1
| #define HAVE_MMAP 1
| #define HAVE_SETLOCALE 1
| #define HAVE_LANGINFO_H 1
| #define HAVE_NL_LANGINFO 1
| #define HAVE_LANGINFO_CODESET 1
| #define HAVE_CONNECT 1
| #define HAVE_SEND 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETNAMEINFO 1
| #define HAVE_GAI_STRERROR 1
| #define HAVE_STRUCT_ADDRINFO 1
| #define HAVE_ADDRINFO 1
| #define HAVE_VA_COPY 1
| #define HAVE_INET_ATON 1
| #define HAVE_GETOPT_LONG 1
| #define HAVE_GETOPT_LONG 1
| #define RETSIGTYPE void
| #define HAVE_LRINTF 1
| #define HAVE_DLFCN_H 1
| #define HAVE_DL_DLOPEN 1
| #define HAVE_NANOSLEEP 1
| #define HAVE_NANOSLEEP 1
| #define STRNCASECMP_IN_STRINGS_H 1
| #define HAVE_GETOPT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_LOCALE_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_SYS_TIMES_H 1
| #define HAVE_SYS_IOCTL_H 1
| #define HAVE_SYS_STAT_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <sys/mount.h>
configure:23398: result: no
configure:23398: checking sys/mount.h presence
configure:23398: cc -std=gnu99 -E -I/usr/ports/multimedia/vlc/work/fake//usr/loc
al/include -I/usr/ports/multimedia/vlc/work/vlc-1.0.3/include -I/usr/local/inclu
de/speex -I/usr/local/include -I/usr/local/ffmpeg  -I/usr/local/include -DSYS_FR
EEBSD6_4 conftest.c
configure:23398: $? = 0
configure:23398: result: yes
configure:23398: WARNING: sys/mount.h: present but cannot be compiled
configure:23398: WARNING: sys/mount.h:     check for missing prerequisite header
s?
configure:23398: WARNING: sys/mount.h: see the Autoconf documentation
configure:23398: WARNING: sys/mount.h:     section "Present But Cannot Be Compil
ed"
configure:23398: WARNING: sys/mount.h: proceeding with the compiler's result
configure:23398: checking for sys/mount.h
configure:23398: result: no

How-To-Repeat: 
	Attempt to compile
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2009-11-15 20:37:48 UTC
Maintainer of multimedia/vlc,

Please note that PR ports/140521 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/140521

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2009-11-15 20:37:49 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 3 Joseph S. Atkinson 2009-11-15 20:50:55 UTC
thierry@ whipped up a fix for this and commited it just a few minutes after you 
sent your PR. Checkout the latest ports and let us know if it worked for you.
Comment 4 Thierry Thomas freebsd_committer freebsd_triage 2009-11-15 21:29:37 UTC
Responsible Changed
From-To: freebsd-ports-bugs->thierry


Take it.
Comment 5 marka 2009-11-16 02:41:08 UTC
In message <4B0069AF.50902@gmail.com>, "Joseph S. Atkinson" writes:
> thierry@ whipped up a fix for this and commited it just a few minutes after y
> ou 
> sent your PR. Checkout the latest ports and let us know if it worked for you.

That addressed the specific issue w/ multimedia/vlc.

There is still the underlying issue with autoconf thinking that it
can probe for <sys/mount.h> by just including it w/o also including
<sys/param.h>.

Mark
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org
Comment 6 Thierry Thomas freebsd_committer freebsd_triage 2009-11-16 20:43:15 UTC
On Mon 16 nov 09 at 3:50:01 +0100, Mark Andrews <marka@isc.org>
 wrote:
 
>  That addressed the specific issue w/ multimedia/vlc.
>  
>  There is still the underlying issue with autoconf thinking that it
>  can probe for <sys/mount.h> by just including it w/o also including
>  <sys/param.h>.

Hello Mark,

Unfortunately, neither me nor Joseph has a FreeBSD-6 available to test
it.

Could you please check the hereunder patch, and report config.log and
config.status?

--- patch-configure begins here ---
--- configure.orig	2009-10-29 20:05:51.000000000 +0100
+++ configure	2009-11-16 21:31:14.000000000 +0100
@@ -23392,7 +23392,7 @@
 
 done
 
-for ac_header in fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h sys/mount.h
+for ac_header in fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -23406,6 +23406,20 @@
 
 done
 
+# Test sys/mount.h for FreeBSD < 7
+for ac_header in sys/mount.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "
+#include <sys/param.h>
+"
+if test "x$ac_cv_header_sys_mount_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+fi
+done
+
+
 for ac_header in arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
--- patch-configure ends here ---

Best regards,
-- 
Th. Thomas.
Comment 7 marka 2009-11-16 23:57:10 UTC
B.T.W. I was thinking about fixing autoconf itself.  Something like what
is done for resolv.h in share/autoconf-2.62/autoconf/headers.m4.  This
would naturally have to be pushed back upstream.

# AC_HEADER_RESOLV
# ----------------
# According to http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?resolver+3
# (or http://www.chemie.fu-berlin.de/cgi-bin/man/sgi_irix?resolver+3),
# sys/types.h, netinet/in.h and arpa/nameser.h are required on IRIX.
# netinet/in.h is needed on Cygwin, too.
# With Solaris 9, netdb.h is required, to get symbols like HOST_NOT_FOUND.
#                   
AN_HEADER(resolv.h,     [AC_HEADER_RESOLV])
AC_DEFUN([AC_HEADER_RESOLV],
[AC_CHECK_HEADERS(sys/types.h netinet/in.h arpa/nameser.h netdb.h resolv.h,
                  [], [],
[[#ifdef HAVE_SYS_TYPES_H
#  include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
#  include <netinet/in.h>   /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
#  include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
#  include <netdb.h>
#endif]])
])# AC_HEADER_RESOLV

-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org
Comment 8 Joseph S. Atkinson 2009-11-16 23:58:26 UTC
Mark Andrews wrote:
> B.T.W. I was thinking about fixing autoconf itself.  Something like what
> is done for resolv.h in share/autoconf-2.62/autoconf/headers.m4.  This
> would naturally have to be pushed back upstream.
> 
> # AC_HEADER_RESOLV
> # ----------------
> # According to http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?resolver+3
> # (or http://www.chemie.fu-berlin.de/cgi-bin/man/sgi_irix?resolver+3),
> # sys/types.h, netinet/in.h and arpa/nameser.h are required on IRIX.
> # netinet/in.h is needed on Cygwin, too.
> # With Solaris 9, netdb.h is required, to get symbols like HOST_NOT_FOUND.
> #                   
> AN_HEADER(resolv.h,     [AC_HEADER_RESOLV])
> AC_DEFUN([AC_HEADER_RESOLV],
> [AC_CHECK_HEADERS(sys/types.h netinet/in.h arpa/nameser.h netdb.h resolv.h,
>                   [], [],
> [[#ifdef HAVE_SYS_TYPES_H
> #  include <sys/types.h>
> #endif
> #ifdef HAVE_NETINET_IN_H
> #  include <netinet/in.h>   /* inet_ functions / structs */
> #endif
> #ifdef HAVE_ARPA_NAMESER_H
> #  include <arpa/nameser.h> /* DNS HEADER struct */
> #endif
> #ifdef HAVE_NETDB_H
> #  include <netdb.h>
> #endif]])
> ])# AC_HEADER_RESOLV
> 

Try defining HAS_SYS_MOUNT_H
Comment 9 marka 2009-11-17 00:09:09 UTC
In message <4B01E722.10009@gmail.com>, "Joseph S. Atkinson" writes:
> Mark Andrews wrote:
> > B.T.W. I was thinking about fixing autoconf itself.  Something like what
> > is done for resolv.h in share/autoconf-2.62/autoconf/headers.m4.  This
> > would naturally have to be pushed back upstream.
> > 
> > # AC_HEADER_RESOLV
> > # ----------------
> > # According to http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?resolver+3
> > # (or http://www.chemie.fu-berlin.de/cgi-bin/man/sgi_irix?resolver+3),
> > # sys/types.h, netinet/in.h and arpa/nameser.h are required on IRIX.
> > # netinet/in.h is needed on Cygwin, too.
> > # With Solaris 9, netdb.h is required, to get symbols like HOST_NOT_FOUND.
> > #                   
> > AN_HEADER(resolv.h,     [AC_HEADER_RESOLV])
> > AC_DEFUN([AC_HEADER_RESOLV],
> > [AC_CHECK_HEADERS(sys/types.h netinet/in.h arpa/nameser.h netdb.h resolv.h,
> >                   [], [],
> > [[#ifdef HAVE_SYS_TYPES_H
> > #  include <sys/types.h>
> > #endif
> > #ifdef HAVE_NETINET_IN_H
> > #  include <netinet/in.h>   /* inet_ functions / structs */
> > #endif
> > #ifdef HAVE_ARPA_NAMESER_H
> > #  include <arpa/nameser.h> /* DNS HEADER struct */
> > #endif
> > #ifdef HAVE_NETDB_H
> > #  include <netdb.h>
> > #endif]])
> > ])# AC_HEADER_RESOLV
> > 
> 
> Try defining HAS_SYS_MOUNT_H

vlc is compiled.

I'm trying to get the underlying problem addressed which is a defect
in autoconf.  Every project  shouldn't have to do something like
the following to detect OS header files.  I can understand doing
that for headers that arn't part of the OS.  I might have got the
autoconf systax slightly wrong but I'm sure you get the drift.

Mark

AC_CHECK_HEADERS(sys/param.h sys/mount.h, [
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
])

Mark
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org
Comment 10 Thierry Thomas freebsd_committer freebsd_triage 2009-11-17 07:38:35 UTC
On Tue 17 nov 09 at 1:09:09 +0100, Mark Andrews <marka@isc.org>
 wrote:

> vlc is compiled.
> 
> I'm trying to get the underlying problem addressed which is a defect
> in autoconf.  Every project  shouldn't have to do something like
> the following to detect OS header files.  I can understand doing
> that for headers that arn't part of the OS.  I might have got the
> autoconf systax slightly wrong but I'm sure you get the drift.
> 
> Mark
> 
> AC_CHECK_HEADERS(sys/param.h sys/mount.h, [
> #ifdef HAVE_SYS_PARAM_H
> #include <sys/param.h>
> #endif
> ])

BTW, if the problem is solved in configure, I guess that my previous
patch could be removed?

Regards,
-- 
Th. Thomas.
Comment 11 marka 2009-11-17 21:55:40 UTC
In message <20091117073835.GB45614@graf.pompo.net>, Thierry Thomas writes:
> On Tue 17 nov 09 at 1:09:09 +0100, Mark Andrews <marka@isc.org>
>  wrote:
> 
> > vlc is compiled.
> > 
> > I'm trying to get the underlying problem addressed which is a defect
> > in autoconf.  Every project  shouldn't have to do something like
> > the following to detect OS header files.  I can understand doing
> > that for headers that arn't part of the OS.  I might have got the
> > autoconf systax slightly wrong but I'm sure you get the drift.
> > 
> > Mark
> > 
> > AC_CHECK_HEADERS(sys/param.h sys/mount.h, [
> > #ifdef HAVE_SYS_PARAM_H
> > #include <sys/param.h>
> > #endif
> > ])
> 
> BTW, if the problem is solved in configure, I guess that my previous
> patch could be removed?

I suspect your first patch will be easier to maintain.
 
> Regards,
> -- 
> Th. Thomas.
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org
Comment 12 dfilter service freebsd_committer freebsd_triage 2009-11-17 22:31:22 UTC
thierry     2009-11-17 22:31:13 UTC

  FreeBSD ports repository

  Modified files:
    multimedia/vlc       Makefile 
  Removed files:
    multimedia/vlc/files patch-modules_access_file.c 
  Log:
  Force the detection of <sys/mount.h> by configure for FreeBSD-6.
  
  PR:             ports/140521
  Submitted by:   Mark Andrews <marka (at) isc.org>
  Approved by:    Joseph S. Atkinson <jsa.bsd (at) gmail.com> (maintainer)
  
  Revision  Changes    Path
  1.200     +1 -1      ports/multimedia/vlc/Makefile
  1.2       +0 -11     ports/multimedia/vlc/files/patch-modules_access_file.c (dead)
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 13 Thierry Thomas freebsd_committer freebsd_triage 2009-11-17 22:31:37 UTC
State Changed
From-To: feedback->closed


I've just committed the patch sent by Joseph. 

Thanks for your collaboration!