Index: head/comms/fldigi/Makefile =================================================================== --- head/comms/fldigi/Makefile (revision 504606) +++ head/comms/fldigi/Makefile (revision 504607) @@ -1,68 +1,68 @@ # $FreeBSD$ PORTNAME= fldigi -PORTVERSION= 4.1.03 +PORTVERSION= 4.1.04 CATEGORIES= comms hamradio MASTER_SITES= SF/${PORTNAME}/${PORTNAME} MAINTAINER= hamradio@FreeBSD.org COMMENT= Digital decoder for psk, cw, psk31, olivia LICENSE= GPLv3 BUILD_DEPENDS= asciidoc:textproc/asciidoc\ docbook-xsl>=1.0:textproc/docbook-xsl\ xsltproc:textproc/libxslt LIB_DEPENDS= libboost_system.so:devel/boost-libs\ libpng.so:graphics/png \ libfltk.so:x11-toolkits/fltk \ libfontconfig.so:x11-fonts/fontconfig \ libportaudio.so:audio/portaudio \ libsndfile.so:audio/libsndfile \ libsamplerate.so:audio/libsamplerate USES= autoreconf compiler:c++11-lib jpeg gmake perl5 pkgconfig shebangfix USE_CXXSTD= gnu++0x GNU_CONFIGURE= yes USE_XORG= x11 xft xext xfixes xcursor xinerama xrender CONFIGURE_ENV= FLTK_CONFIG="${LOCALBASE}/bin/fltk-config" \ EXTRA_LIBS="-lexecinfo" OPTIONS_DEFINE= NATIVE_OPT FLARQ OSS PULSEAUDIO HAMLIB NLS DOCS NATIVE_OPT_DESC= Enable Native Optimizations FLARQ_DESC= Compile flarq OSS_DESC= Support OSS PULSEAUDIO_DESC= PulseAudio support HAMLIB_DESC= Support rig control via hamlib OPTIONS_DEFAULT= FLARQ OSS HAMLIB OPTIONS_SUB= yes NATIVE_OPT_CONFIGURE_ON= --enable-optimizations=native NATIVE_OPT_CONFIGURE_OFF= --enable-optimizations=none FLARQ_CONFIGURE_ENABLE= flarq OSS_CONFIGURE_ENABLE= oss PULSEAUDIO_CONFIGURE_WITH= pulseaudio PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio HAMLIB_CONFIGURE_WITH= hamlib HAMLIB_LIB_DEPENDS= libhamlib.so:comms/hamlib NLS_CONFIGURE_ENABLE= nls NLS_USES= gettext # Always need asciidoc for man pages CONFIGURE_ARGS+=--with-asciidoc # Always need soundfile CONFIGURE_ARGS+=--with-sndfile post-configure: # force rebuild of man pages ${RM} ${WRKSRC}/doc/*.1 post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/doc/guide.html ${STAGEDIR}${DOCSDIR} .include Index: head/comms/fldigi/distinfo =================================================================== --- head/comms/fldigi/distinfo (revision 504606) +++ head/comms/fldigi/distinfo (revision 504607) @@ -1,3 +1,3 @@ -TIMESTAMP = 1555867447 -SHA256 (fldigi-4.1.03.tar.gz) = 37d9404cd02ad0497fb369ab73ade4f6330e1f82bfce908c4fe89f21642775b4 -SIZE (fldigi-4.1.03.tar.gz) = 4682813 +TIMESTAMP = 1560983163 +SHA256 (fldigi-4.1.04.tar.gz) = 89c19c349eaf04cd3bab94df89cdaa9d4ad8b1bc50871d3f8be1175ab237bb45 +SIZE (fldigi-4.1.04.tar.gz) = 4689833 Index: head/comms/fldigi/files/patch-src_soundcard_sound.cxx =================================================================== --- head/comms/fldigi/files/patch-src_soundcard_sound.cxx (revision 504606) +++ head/comms/fldigi/files/patch-src_soundcard_sound.cxx (revision 504607) @@ -1,44 +1,43 @@ ---- src/soundcard/sound.cxx.orig 2018-12-06 14:41:46 UTC +--- src/soundcard/sound.cxx.orig 2019-05-25 01:35:59 UTC +++ src/soundcard/sound.cxx -@@ -651,7 +651,27 @@ int SoundOSS::Open(int md, int freq) +@@ -651,7 +651,26 @@ int SoundOSS::Open(int md, int freq) oflags = oflags | O_CLOEXEC; # endif +#ifdef __FreeBSD__ +/* + * In FreeBSD sound devices e.g. /dev/dsp0.0 can only be open once + * whereas /dev/dsp0 can be open multiple times. fldigi tries + * to open /dev/dsp0.0 multiple times which fails. Also see man 4 sound. + * "For specific sound card access, please instead use /dev/dsp or /dev/dsp%d" + * This is a hack. XXX - db VA3DB + */ + char *fixed_name; + char *p; + /* Look for a '.' if found, blow it away */ + fixed_name = strdup(device.c_str()); -+ p = fixed_name; -+ while (*p++) -+ if(*p == '.') -+ *p = '\0'; ++ p = strchr(fixed_name, '.'); ++ if(p != NULL) ++ *p = '\0'; + device_fd = fl_open(fixed_name, oflags, 0); + free(fixed_name); +#else device_fd = fl_open(device.c_str(), oflags, 0); +#endif if (device_fd == -1) throw SndException(errno); -@@ -677,12 +697,11 @@ void SoundOSS::Close(unsigned dir) +@@ -677,12 +696,11 @@ void SoundOSS::Close(unsigned dir) void SoundOSS::getVersion() { version = 0; -#ifndef __FreeBSD__ + if (ioctl(device_fd, OSS_GETVERSION, &version) == -1) { version = -1; throw SndException("OSS Version"); } -#endif } void SoundOSS::getCapabilities()