Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 09 Aug 2009 21:19:08 -0400
From:      "Eric W. Bates" <eric@educompmv.com>
To:        freebsd-gnome@FreeBSD.org
Subject:   gnome 2 build problem
Message-ID:  <4A7F758C.6000908@educompmv.com>

next in thread | raw e-mail | index | archive | help
Sorry. I'm sure you have better things to work on, but thanks for your
time...

Spandy new installation of FreeBSD 7.2-RELEASE amd64 GENERIC kernel.

Spandy new ports tree. All new builds. No old kruft.

Most of the build is successful (tracker fails; but I just removed that
from build options and moved on).  Currently stops while trying to build
totem in the py-gstreamer. Actual error is:

gst.c: In function 'pygst_register_classes':
gst.c:27115: error: 'GST_TYPE_BUFFER_LIST' undeclared (first use in this
function)
gst.c:27115: error: (Each undeclared identifier is reported only once
gst.c:27115: error: for each function it appears in.)

Googling GST_TYPE_BUFFER_LIST turns up no hits.

python build is python26-2.6.2_1 (current default).

Full build track is:

Script started on Sun Aug  9 21:05:06 2009
[root@ophelia /usr/ports/x11/gnome2]# lu
Loading hosttype +-+-freebsd+ hooks...
 ** root@ophelia ** /usr/ports/x11/gnome2 ** Sun Aug 09 21:05:09

# make clean install clean
===>  Cleaning for totem-2.26.3_1
===>  Cleaning for py26-gstreamer-0.10.16
===>  Cleaning for gnome2-2.26.3
===>  Vulnerability check disabled, database not found
===>  Found saved configuration for gnome2-2.26.3
===>  Extracting for gnome2-2.26.3
===>  Patching for gnome2-2.26.3
===>   gnome2-2.26.3 depends on file: /usr/local/bin/python2.6 - found
===>  Configuring for gnome2-2.26.3
===>  Installing for gnome2-2.26.3
===>   gnome2-2.26.3 depends on file:
/usr/local/libexec/gweather-applet-2 - found
===>   gnome2-2.26.3 depends on executable:
gnome-audio-profiles-properties - found
===>   gnome2-2.26.3 depends on executable: gnome-dictionary - found
===>   gnome2-2.26.3 depends on executable: eog - found
===>   gnome2-2.26.3 depends on executable: gconf-editor - found
===>   gnome2-2.26.3 depends on executable: gnect - found
===>   gnome2-2.26.3 depends on executable: gedit - found
===>   gnome2-2.26.3 depends on executable: gnome-terminal - found
===>   gnome2-2.26.3 depends on executable: gnome-session - found
===>   gnome2-2.26.3 depends on executable: bug-buddy - found
===>   gnome2-2.26.3 depends on executable: gnome-system-monitor - found
===>   gnome2-2.26.3 depends on executable: nautilus - found
===>   gnome2-2.26.3 depends on file: /usr/local/sbin/gdm - found
===>   gnome2-2.26.3 depends on file:
/usr/local/share/gnome/help/user-guide/C/user-guide.xml - found
===>   gnome2-2.26.3 depends on file:
/usr/local/share/sounds/question.wav - found
===>   gnome2-2.26.3 depends on file:
/usr/local/libdata/pkgconfig/libgail-gnome.pc - found
===>   gnome2-2.26.3 depends on executable: file-roller - found
===>   gnome2-2.26.3 depends on file:
/usr/local/share/themes/HighContrast/gtk-2.0/gtkrc - found
===>   gnome2-2.26.3 depends on executable: gok - found
===>   gnome2-2.26.3 depends on executable: gcalctool - found
===>   gnome2-2.26.3 depends on file:
/usr/local/lib/X11/fonts/bitstream-vera/Vera.ttf - found
===>   gnome2-2.26.3 depends on file:
/usr/local/libexec/gnome-netstatus-applet - found
===>   gnome2-2.26.3 depends on executable: dasher - found
===>   gnome2-2.26.3 depends on executable: evolution - found
===>   gnome2-2.26.3 depends on file:
/usr/local/libexec/evolution-webcal - found
===>   gnome2-2.26.3 depends on executable: network-admin - found
===>   gnome2-2.26.3 depends on executable: vino-passwd - found
===>   gnome2-2.26.3 depends on executable:
exchange-connector-setup-2.26 - found
===>   gnome2-2.26.3 depends on file:
/usr/local/lib/gstreamer-0.10/.gstreamer-plugins-core.keep - found
===>   gnome2-2.26.3 depends on file:
/usr/local/lib/gstreamer-0.10/libgstgconfelements.so - found
===>   gnome2-2.26.3 depends on executable: totem - not found
===>    Verifying install for totem in /usr/ports/multimedia/totem
===> The default DVD device is /dev/acd0
===> Define WITH_DVD_DEVICE if you want to change the default
===> For example, 'make WITH_DVD_DEVICE="/dev/somedevice"'
===>  Vulnerability check disabled, database not found
===>  Found saved configuration for totem-2.26.3_1
===>  Extracting for totem-2.26.3_1
=> MD5 Checksum OK for gnome2/totem-2.26.3.tar.bz2.
=> SHA256 Checksum OK for gnome2/totem-2.26.3.tar.bz2.
===>  Patching for totem-2.26.3_1
===>   totem-2.26.3_1 depends on file: /usr/local/bin/libtool - found
===>  Applying FreeBSD patches for totem-2.26.3_1
===>   totem-2.26.3_1 depends on file:
/usr/local/libdata/pkgconfig/iso-codes.pc - found
===>   totem-2.26.3_1 depends on file: /usr/local/bin/python2.6 - found
===>   totem-2.26.3_1 depends on executable: gmake - found
===>   totem-2.26.3_1 depends on package: gstreamer-plugins-core>=0.10.0
- found
===>   totem-2.26.3_1 depends on package:
gstreamer-plugins-gconf>=0.10.0 - found
===>   totem-2.26.3_1 depends on package: gstreamer-plugins-hal>=0.10.0
- found
===>   totem-2.26.3_1 depends on package: gstreamer-plugins-good>=0.10.0
- found
===>   totem-2.26.3_1 depends on package:
gstreamer-plugins-mpeg2dec>=0.10.0 - found
===>   totem-2.26.3_1 depends on package: gstreamer-plugins-soup>=0.10.0
- found
===>   totem-2.26.3_1 depends on package: gstreamer-plugins-ugly>=0.10.0
- found
===>   totem-2.26.3_1 depends on package: py26-gstreamer>=0.10.4 - not found
===>    Verifying install for py26-gstreamer>=0.10.4 in
/usr/ports/multimedia/py-gstreamer
===>  Vulnerability check disabled, database not found
===>  Extracting for py26-gstreamer-0.10.16
=> MD5 Checksum OK for gst-python-0.10.16.tar.bz2.
=> SHA256 Checksum OK for gst-python-0.10.16.tar.bz2.
===>  Patching for py26-gstreamer-0.10.16
===>   py26-gstreamer-0.10.16 depends on file:
/usr/local/lib/python2.6/site-packages/libxml2mod.so - found
===>   py26-gstreamer-0.10.16 depends on file: /usr/local/bin/python2.6
- found
===>   py26-gstreamer-0.10.16 depends on executable: gmake - found
===>   py26-gstreamer-0.10.16 depends on package:
gstreamer-plugins>=0.10.0 - found
===>   py26-gstreamer-0.10.16 depends on file:
/usr/local/bin/intltool-extract - found
===>   py26-gstreamer-0.10.16 depends on executable: pkg-config - found
===>   py26-gstreamer-0.10.16 depends on file:
/usr/local/libdata/pkgconfig/pygtk-2.0.pc - found
===>   py26-gstreamer-0.10.16 depends on shared library: atk-1.0.0 - found
===>   py26-gstreamer-0.10.16 depends on shared library: glib-2.0.0 - found
===>   py26-gstreamer-0.10.16 depends on shared library: gtk-x11-2.0.0 -
found
===>   py26-gstreamer-0.10.16 depends on shared library: glade-2.0.0 - found
===>   py26-gstreamer-0.10.16 depends on shared library: xml2.5 - found
===>   py26-gstreamer-0.10.16 depends on shared library: pango-1.0.0 - found
===>  Configuring for py26-gstreamer-0.10.16
checking for a BSD-compatible install... /usr/bin/install -c -o root -g
wheel
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... gawk
checking whether gmake sets $(MAKE)... yes
checking nano version... 0 (release)
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... amd64-portbld-freebsd7.2
checking host system type... amd64-portbld-freebsd7.2
checking for style of include used by gmake... GNU
checking for gcc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking dependency style of cc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... (cached) 262144
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from cc object... ok
checking how to run the C preprocessor... cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if cc supports -fno-rtti -fno-exceptions... no
checking for cc option to produce PIC... -fPIC -DPIC
checking if cc PIC flag -fPIC -DPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking if cc supports -c -o file.o... (cached) yes
checking whether the cc linker (/usr/bin/ld) supports shared
libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... freebsd7.2 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for gcc... (cached) cc
checking whether we are using the GNU C compiler... (cached) yes
checking whether cc accepts -g... (cached) yes
checking for cc option to accept ISO C89... (cached) none needed
checking dependency style of cc... (cached) gcc3
checking whether cc understands -c and -o together... yes
checking for python version... 2.6
checking for python platform... freebsd7
checking for python script directory...
/usr/local/lib/python2.6/site-packages
checking for python extension module directory...
/usr/local/lib/python2.6/site-packages
checking for python >= 2.3... okay
checking for headers required to compile python extensions... found
checking for pkg-config... /usr/local/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GST... yes
Building against GStreamer core 0.10.23 , ignoring API additions if needed
checking for GST_BASE... yes
checking for GST_CONTROLLER... yes
checking for GST_NET... yes
checking for GST_DP... yes
checking for GST_PLUGINS_BASE... yes
checking for PYGOBJECT... yes
yes
checking for PYGOBJECT_2_12... yes
yes
checking for PYGOBJECT_2_16... yes
yes
checking to see if compiler understands -Wall... yes
checking to see if compiler understands -Wdeclaration-after-statement... yes
checking to see if compiler understands -Wvla... no
checking to see if compiler understands -Wpointer-arith... yes
configure: set ERROR_CFLAGS to -Wall -Wdeclaration-after-statement
-Wpointer-arith
checking for valgrind... no
checking for libraries required to embed python... yes
configure: Using /usr/local/lib/gstreamer-0.10 as the plugin install
location
checking for sed... /usr/bin/sed
configure: creating ./config.status
config.status: creating Makefile
config.status: creating codegen/Makefile
config.status: creating common/Makefile
config.status: creating common/m4/Makefile
config.status: creating common/shave
config.status: creating common/shave-libtool
config.status: creating gst/Makefile
config.status: creating gst/gstversion.override
config.status: creating gst/extend/Makefile
config.status: creating examples/Makefile
config.status: creating pkgconfig/Makefile
config.status: creating pkgconfig/gst-python.pc
config.status: WARNING:  'pkgconfig/gst-python.pc.in' seems to ignore
the --datarootdir setting
config.status: creating pkgconfig/gst-python-uninstalled.pc
config.status: creating plugin/Makefile
config.status: creating testsuite/Makefile
config.status: creating win32/common/config.h
config.status: creating gst-python.spec
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
===>  Building for py26-gstreamer-0.10.16
Making all in common
Making all in m4
Making all in codegen
Making all in gst
Making all in extend
  CC    gst-argtypes.o
  CC    gstmodule.o
  CC    pygstiterator.o
  CC    pygstminiobject.o
  CC    pygstvalue.o
  CC    pygstexception.o
Could not write method GstStructure.id_set: varargs functions not supported
Could not write method GstStructure.get_uint: No ArgType for 'guint*'
Could not write method GstIndexEntry.assoc_map: No ArgType for 'gint64*'
Could not write getter for GstStaticCaps.caps: write_return not
implemented for GstCaps
Could not write method GstTypeFind.suggest_simple: varargs functions not
supported
Could not write method GstIndex.set_filter: No ArgType for 'GstIndexFilter'
Could not write method GstIndex.set_filter_full: No ArgType for
'GstIndexFilter'
Could not write method GstIndex.set_resolver: No ArgType for
'GstIndexResolver'
Could not write method GstIndex.set_resolver_full: No ArgType for
'GstIndexResolver'
Could not write method GstIndex.get_writer_id: No ArgType for 'gint*'
Could not write method GstIndex.add_associationv: No ArgType for
'const-GstIndexAssociation*'
Could not write method GstIndex.add_association: varargs functions not
supported
Could not write method GstIndex.add_object: No ArgType for 'gpointer'
Could not write method GstIndex.get_assoc_entry_full: No ArgType for
'GCompareDataFunc'
Could not write virtual accessor method GstIndex.get_assoc_entry: No
ArgType for 'GCompareDataFunc'
Could not write virtual proxy GstIndex.get_assoc_entry: No ArgType for
'GCompareDataFunc'
Could not write method GstElement.message_full: No ArgType for 'GQuark'
Could not write virtual accessor method GstElement.get_query_types: No
ArgType for 'const-GstQueryType*'
Could not write virtual accessor method GstElement.get_state: No ArgType
for 'GstState*'
Could not write virtual proxy GstElement.get_query_types: No ArgType for
'const-GstQueryType*'
Could not write virtual proxy GstElement.get_state: No ArgType for
'GstState*'
Could not write virtual accessor method GstClock.wait: No ArgType for
'GstClockEntry*'
Could not write virtual accessor method GstClock.wait_jitter: No ArgType
for 'GstClockEntry*'
Could not write virtual accessor method GstClock.wait_async: No ArgType
for 'GstClockEntry*'
Could not write virtual accessor method GstClock.unschedule: No ArgType
for 'GstClockEntry'
Could not write virtual proxy GstClock.wait: No ArgType for 'GstClockEntry*'
Could not write virtual proxy GstClock.wait_jitter: No ArgType for
'GstClockEntry*'
Could not write virtual proxy GstClock.wait_async: No ArgType for
'GstClockEntry*'
Could not write virtual proxy GstClock.unschedule: No ArgType for
'GstClockEntry'
Could not write method GstBus.add_watch_full: No ArgType for 'GstBusFunc'
Could not write method GstPad.set_bufferalloc_function: No ArgType for
'GstPadBufferAllocFunction'
Could not write method GstPad.set_getrange_function: No ArgType for
'GstPadGetRangeFunction'
Could not write method GstPad.set_checkgetrange_function: No ArgType for
'GstPadCheckGetRangeFunction'
Could not write method GstPad.set_unlink_function: No ArgType for
'GstPadUnlinkFunction'
Could not write method GstPad.set_acceptcaps_function: No ArgType for
'GstPadAcceptCapsFunction'
Could not write method GstPad.set_fixatecaps_function: No ArgType for
'GstPadFixateCapsFunction'
Could not write method GstPad.set_internal_link_function: No ArgType for
'GstPadIntLinkFunction'
Could not write method GstPad.set_iterate_internal_links_function: No
ArgType for 'GstPadIterIntLinkFunction'
Could not write method GstPad.set_query_type_function: No ArgType for
'GstPadQueryTypeFunction'
Could not write method GstPad.dispatcher: No ArgType for
'GstPadDispatcherFunction'
Warning: generating old-style constructor for:gst_ghost_pad_new
Warning: generating old-style constructor for:gst_pad_template_new
Could not write method GstPluginFeature.type_name_filter: No ArgType for
'GstTypeNameData*'
Could not write method GstRegistry.plugin_filter: No ArgType for
'GstPluginFilter'
Could not write method GstRegistry.feature_filter: No ArgType for
'GstPluginFeatureFilter'
Warning: generating old-style constructor for:gst_net_client_clock_new
Warning: generating old-style constructor for:gst_net_time_provider_new
Could not write method GstControlSource.get_value: No ArgType for 'GValue*'
Could not write method GstControlSource.get_value_array: No ArgType for
'GstValueArray*'
Could not write method GstControlSource.bind: No ArgType for 'GParamSpec*'
Could not write method GstController.get_all: No ArgType for 'const-GList*'
Could not write method GstController.get_value_arrays: No ArgType for
'GSList*'
Could not write method GstController.get_value_array: No ArgType for
'GstValueArray*'
Could not write method GstInterpolationControlSource.set: No ArgType for
'GValue*'
Could not write method GstInterpolationControlSource.set_from_list: No
ArgType for 'GSList*'
Could not write method GstInterpolationControlSource.get_all: No ArgType
for 'GList*'
Could not write method GstBaseSink.wait_eos: No ArgType for
'GstClockTimeDiff*'
Could not write virtual accessor method GstBaseSink.buffer_alloc: No
ArgType for 'GstBuffer**'
Could not write virtual proxy GstBaseSink.buffer_alloc: No ArgType for
'GstBuffer**'
Could not write virtual accessor method
GstBaseTransform.prepare_output_buffer: No ArgType for 'GstBuffer**'
Could not write virtual proxy GstBaseTransform.prepare_output_buffer: No
ArgType for 'GstBuffer**'
Could not write method GstCollectPads.set_function: No ArgType for
'GstCollectPadsFunction'
Could not write method GstCollectPads.add_pad: No ArgType for
'GstCollectData*'
Could not write method GstCollectPads.add_pad_full: No ArgType for
'GstCollectDataDestroyNotify'
Could not write method GstCollectPads.peek: No ArgType for 'GstCollectData*'
Could not write method GstCollectPads.pop: No ArgType for 'GstCollectData*'
Could not write method GstCollectPads.read: No ArgType for 'GstCollectData*'
Could not write method GstCollectPads.read_buffer: No ArgType for
'GstCollectData*'
Could not write method GstCollectPads.take_buffer: No ArgType for
'GstCollectData*'
Could not write method GstCollectPads.flush: No ArgType for
'GstCollectData*'
Warning: generating old-style constructor for:gst_data_queue_new
Could not write constructor for GstDataQueue: No ArgType for
'GstDataQueueCheckFullFunction'
Could not write method GstDataQueue.push: No ArgType for 'GstDataQueueItem*'
Could not write method GstDataQueue.pop: No ArgType for 'GstDataQueueItem**'
Could not write method GstDataQueue.get_level: No ArgType for
'GstDataQueueSize*'
Could not write method GstTagSetter.add_tags: varargs functions not
supported
Could not write method GstTagSetter.add_tag_values: varargs functions
not supported
Could not write method GstTagSetter.add_tag_valist_values: No ArgType
for 'va_list'
Could not write method GstPreset.get_meta: No ArgType for 'gchar**'
Could not write function object_control_properties: varargs functions
not supported
Could not write function object_uncontrol_properties: varargs functions
not supported
Could not write function object_get_value_arrays: No ArgType for 'GSList*'
Could not write function object_get_value_array: No ArgType for
'GstValueArray*'
Could not write function gst_controller_init: No ArgType for 'int*'
Could not write function gst_dp_crc: No ArgType for 'const-guint8*'
Could not write function dp_header_from_buffer: No ArgType for
'const-GstBuffer*'
Could not write function dp_packet_from_caps: No ArgType for 'guint*'
Could not write function dp_packet_from_event: No ArgType for
'const-GstEvent*'
Could not write function type_find_helper_get_range: No ArgType for
'GstTypeFindHelperGetRangeFunction'
Could not write function debug_add_log_function: No ArgType for
'GstLogFunction'
Could not write function debug_remove_log_function: No ArgType for
'GstLogFunction'
Could not write function debug_remove_log_function_by_data: No ArgType
for 'gpointer'
Could not write function debug_get_all_categories: No ArgType for 'GSList*'
Could not write function debug_remove_log_function: No ArgType for
'GstLogFunction'
Could not write function debug_remove_log_function_by_data: No ArgType
for 'gpointer'
Could not write function util_array_binary_search: No ArgType for 'gpointer'
Could not write function parse_launch_full: No ArgType for
'GstParseContext*'
Could not write function parse_launchv_full: No ArgType for 'const-gchar**'
Could not write function plugin_register_static: No ArgType for
'const-GstPluginDesc*'
Could not write function poll_new_timer: No ArgType for 'GstPoll*'
Could not write function tag_register: No ArgType for 'GstTagMergeFunc'
Could not write function tag_merge_use_first: No ArgType for 'GValue*'
Could not write function tag_merge_strings_with_comma: No ArgType for
'GValue*'
Could not write function task_create: No ArgType for 'GstTaskFunction'
Warning: Constructor for GstGhostPad needs to be updated to new API
         See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
Warning: Constructor for GstPadTemplate needs to be updated to new API
         See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
Warning: Constructor for GstNetClientClock needs to be updated to new API
         See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
Warning: Constructor for GstNetTimeProvider needs to be updated to new API
         See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
Warning: Constructor for GstController needs to be updated to new API
         See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
Warning: Constructor for GstDataQueue needs to be updated to new API
         See http://live.gnome.org/PyGTK_2fWhatsNew28#update-constructors
***INFO*** The coverage of global functions is 86.41% (159/184)
***INFO*** The coverage of methods is 90.07% (490/544)
***INFO*** The coverage of virtual proxies is 86.76% (59/68)
***INFO*** The coverage of virtual accessors is 87.67% (64/73)
***INFO*** The coverage of interface proxies is 100.00% (5/5)
  CC    gst.o
gst.c: In function 'pygst_register_classes':
gst.c:27115: error: 'GST_TYPE_BUFFER_LIST' undeclared (first use in this
function)
gst.c:27115: error: (Each undeclared identifier is reported only once
gst.c:27115: error: for each function it appears in.)
gmake[3]: *** [_gst_la-gst.lo] Error 1
gmake[2]: *** [all-recursive] Error 1
gmake[1]: *** [all-recursive] Error 1
gmake: *** [all] Error 2
*** Error code 1

Stop in /usr/ports/multimedia/py-gstreamer.
*** Error code 1

Stop in /usr/ports/multimedia/totem.
*** Error code 1

Stop in /usr/ports/multimedia/totem.
*** Error code 1

Stop in /usr/ports/x11/gnome2.
*** Error code 1

Stop in /usr/ports/x11/gnome2.
[Exit 1 ]
 ** root@ophelia ** /usr/ports/x11/gnome2 ** Sun Aug 09 21:05:37

# exit
exit

Script done on Sun Aug  9 21:05:42 2009



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A7F758C.6000908>