After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 110671 - NetBSD port
NetBSD port
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other All
: Normal normal
: 0.7.x
Assigned To: Thomas Vander Stichele
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2003-04-13 13:34 UTC by matt
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
BSD-style typescript (25.72 KB, text/plain)
2003-04-14 09:03 UTC, matt
Details

Description matt 2003-04-13 13:34:35 UTC
Gstreamer currently doesn't build on NetBSD. The following two patches
make gstreamer compile:

http://www.mafr.de/patches/gstreamer.non-bash.diff
http://www.mafr.de/patches/gstreamer.netbsd2.diff

The part that explicitly defines G_HAVE_ISO_VARARGS is needed, because
NetBSD's system compiler is 2.95.3 and glib2's glibconfig.h explicitly
turns off G_HAVE_ISO_VARARGS for unknown reasons if the compiler is
gcc-2.95.x. 

Mail me if you've got questions.

bye,
   Matthias Friedrich <matt@mafr.de>
Comment 1 David Schleef 2003-04-13 21:21:06 UTC
Uraeus checked in the bashism patch, which broke a lot of stuff that
has hopefully been cleaned up.

I rewrote some of the netbsd patch.

#!/usr/bin/perl is correct, it should not be changed.  Please fix your
perl installation.

From talking to people on #netbsd, I do not understand why the siginfo
change is necessary.  Apparently netbsd has siginfo support.  Anyway,
gst-launch.c now checks, and falls back on sa_handler.

I also don't understand the G_HAVE_ISO_VARARGS problem.  This occurs a
number of times in GStreamer; I don't see why it should be specific to
parse.l.

Same for grammar.y.

Could you provide build logs that show compilation failures for these?
Comment 2 matt 2003-04-14 09:02:10 UTC
First at all, please tell me *what* the bash patch broke. The autogen
scripts worked find here, on a /bin/sh absolutely compatible with
POSIX 1003.2 and 1003.2a. Unless your system's shell that claims to
be /bin/sh is broken, everything should work. I checked out a fresh
source tree from CVS, and it seems at least my changes are still in.

Then to the '/usr/bin/env perl' trick (see 'man perlrun'). My perl
installation is *not* broken. Perl on NetBSD is installed as
/usr/pkg/bin/perl. It is *not* in the base system, as it isn't on
many commercial unices. If you want a real solution, you have to
use AC_PATH_PROG() in configure.in and put that into the interpreter
line. Unix != Linux, in case you thought. You will find tons of
perl interpreters in /usr/opt, /opt, /usr/local and the like.

To the sighandler: I don't know who you asked and *what* you asked,
but on NetBSD-1.6 (the stable branch) and all older systems,
there is no *siginfo* interface *YET*. NetBSD-current may have that,
but it's irrelevant for users what the kernel hackers have. That
might be added for 1.7 in the future, but not now. An excerpt from
the sigaction(2) manpage:

"For POSIX compliance, the sa_handler is declared to be (void *)(int))
and the above handler will need to be casted to that type.  Future 
versions of NetBSD will replace the sigcontext interface with the
siginfo interface."

G_HAVE_ISO_VARARGS is undefined in glib2's glibconfig.h file, if the
compiler is gcc-2.95.x. The code:

#if __GNUC__ == 2 && __GNUC_MINOR__ == 95
#  undef G_HAVE_ISO_VARARGS
#endif

The only thing that fails is the definition of the PRINT() debugging
macro. That macro is only used in parse.l, so it can only fail in
parse.l. I'll try to appended a typescript of a build attempt that 
shows this if that damn BTS lets me.

Allright, so much to the accusations. For further questions,
typescripts and the like mail to <matt@mafr.de>. I *hate* this BTS,
you can't write text properly here.
Comment 3 matt 2003-04-14 09:03:10 UTC
Created attachment 15699 [details]
BSD-style typescript
Comment 4 David Schleef 2003-05-13 06:35:31 UTC
Ok, I see the problem in parse.l.  Fixed.
Comment 5 matt 2003-05-13 11:19:07 UTC
Just tried to compile it, but it fails because select(2) is undefined.
You need to include unistd.h in gst/gstthreaddummy.c.

The other thing is the old problem with examples/manual/extract.pl.
/usr/bin/perl isn't the only place where the perl interpreter can
be installed. Use the /usr/bin/env trick. It works.
Or don't call ./extract.pl, but 'perl extract.pl' instead.

Everything else works fine now. Thanks for your help.
Comment 6 Ronald Bultje 2003-05-17 13:16:26 UTC
I've added unistd.h to gstthreaddummy.c. I'm leaving the other bug for
Thomas, I don't know how this is fixed normally. If nobody objects I
propose to just apply the other patch too...

Matthias, thanks!
Comment 7 David Schleef 2003-05-18 04:06:21 UTC
I added an autoconf check for perl, so we should start using
$(PERL_PATH) in Makefile.am's to call perl scripts.  Eventually, when
someone finds a decent perl m4 file, we should be able to specify a
particular path to perl if the one found in $PATH is wrong.
Comment 8 matt 2003-05-19 07:16:38 UTC
I've been waiting for a few days, but the code leading to this warning 
(which isn't NetBSD related, of course) wasn't fixed in the meantime:

cc1: warnings being treated as errors
gstprops.c: In function `gst_props_entry_from_string_no_name':
gstprops.c:426: warning: value computed is not used

Thanks to everybody who helped so far.
Comment 9 Thomas Vander Stichele 2003-05-19 11:43:58 UTC
Hi,

that last error:
- looks like an easyfix (I checked myself, but I can't be sure my line
numbers match yours and didn't see anything wrong at that line)
- doesn't seem to have anything to do with the original bug report

If the above is a genuine bug, please reopen a new bug so we can keep
track of bugs properly and know what we're fixing and what's been fixed.

Thanks