Bug 1835852 - Review Request: mingw-portaudio - Free, cross platform, open-source, audio I/O library
Summary: Review Request: mingw-portaudio - Free, cross platform, open-source, audio I/...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Sandro Mani
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-05-14 15:43 UTC by Richard Shaw
Modified: 2020-06-14 18:17 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2020-06-14 18:17:36 UTC
Type: ---
Embargoed:
manisandro: fedora-review+


Attachments (Terms of Use)

Description Richard Shaw 2020-05-14 15:43:18 UTC
Spec URL: https://hobbes1069.fedorapeople.org//mingw-portaudio.spec
SRPM URL: https://hobbes1069.fedorapeople.org//mingw-portaudio-19-3.20161030.fc32.src.rpm

Description:
PortAudio is a portable audio I/O library designed for cross-platform support of
audio. It uses a callback mechanism to request audio processing. Audio can be
generated in various formats, including 32 bit floating point, and will be
converted to the native format internally.

Comment 1 Richard Shaw 2020-05-14 15:43:19 UTC
This package built on koji:  https://koji.fedoraproject.org/koji/taskinfo?taskID=44491937

Comment 2 Yaakov Selkowitz 2020-05-14 22:03:41 UTC
Richard,

The problems with your build were the result of a bug in configure.in where AC_PROG_CXX was declared only conditionally, and your build happened not to trigger those conditions, thereby confusing libtool macros and making configure think you were building with MSVC instead of GCC.  The following contain a modified spec file and patchset which fixes the build, enables more backends, and exports the symbols and headers required by Audacity:

https://fedorapeople.org/cgit/yselkowitz/public_git/mingw-portaudio.git
https://yselkowitz.fedorapeople.org/SRPMS/mingw-portaudio-19-3.20161030.fc32.src.rpm

Scratch builds were successful and the binaries have exported symbols:

https://koji.fedoraproject.org/koji/taskinfo?taskID=44499988 (rawhide)
https://koji.fedoraproject.org/koji/taskinfo?taskID=44499998 (F32)

HTH!

Comment 3 Richard Shaw 2020-05-14 23:54:53 UTC
Thanks for the assist!

Comment 4 Richard Shaw 2020-05-17 13:17:16 UTC
Ok, so fldigi will actually load now with this portaudio but it crashes immediately on 64bit and shows an error on 32bit related to port audio. I REALLY didn't have this much trouble a few years ago when I built portaudio (same version) for FreeDV MinGw so something must have changed on the MinGW side.

How in the heck do I debug this? On Wine?

Comment 5 Sandro Mani 2020-05-22 15:26:06 UTC
Do you have a virtualized windows environment available (i.e. the Internet Explorer/Edge test VMs)? Then you can just deploy gdb.exe from mingw-gdb along with your portaudio application and the portaudio debug symbols, and that should hopefully give you a clue.

Comment 6 Richard Shaw 2020-06-06 17:13:53 UTC
I have windows 10 in VirtualBox but it doesn't like coexisting with Boxes. 

Got Windows 10 up but gdb says it's not a valid format or something like that.

Comment 7 Sandro Mani 2020-06-08 08:02:55 UTC
That shouldn't happen. Can you post somewhere the bundle you are testing?

Comment 8 Richard Shaw 2020-06-08 12:51:47 UTC
I just built this from upstream's latest git master. I did not strip fldigi.exe. This is the 32bit version, the 64bit version is having some cast errors.

https://hobbes1069.fedorapeople.org/fldigi-4.1.13_setup.exe

Comment 9 Richard Shaw 2020-06-08 13:09:41 UTC
This one worked... I'm guessing it's the stripping of the binary that's causing the issue?

I need to get a 64bit build and test it, but I think we can move forward with the review now at least.

Comment 10 Sandro Mani 2020-06-08 13:18:20 UTC
> #{?mingw_debug_package}

Should probably uncommented? Or otherwise given a reason for the comment.


> %mingw_make -j12

%{?_smp_mflags}, or just %mingw_make_build


> %mingw_make_install DESTDIR=%{buildroot}

You don't need to specify DESTDIR, %mingw_make_install does it already

> %{mingw32_bindir}/libportaudio.lib
> %{mingw64_bindir}/libportaudio.lib

What are these? Shouldn't they be dll.a files, and placed in %{mingwXX_libdir}?

Rest looks good.

Comment 11 Richard Shaw 2020-06-08 13:43:45 UTC
Spec URL: https://hobbes1069.fedorapeople.org//mingw-portaudio.spec
SRPM URL: https://hobbes1069.fedorapeople.org//mingw-portaudio-19-3.20161030.fc32.src.rpm

Whoops! I fixed those some time ago but neglected to upload new packages, should be fixed now.

Comment 12 Richard Shaw 2020-06-08 13:44:52 UTC
FYI, I was able to run gdb on the 64bit version of fldigi but it produced no output. I ended up mapping my "/" into the VM and going into my install if MinGW.

Comment 13 Sandro Mani 2020-06-08 13:46:15 UTC
Still see 

> %mingw_make

and

> %mingw_make_install DESTDIR=%{buildroot}

Comment 14 Richard Shaw 2020-06-08 13:51:31 UTC
Maybe I need another cup of coffee...

Spec URL: https://hobbes1069.fedorapeople.org//mingw-portaudio.spec
SRPM URL: https://hobbes1069.fedorapeople.org//mingw-portaudio-19-4.20161030.fc32.src.rpm

* Mon Jun 08 2020 Richard Shaw <hobbes1069> - 19-4.20161030
- Update per reviewer comments.

Comment 15 Sandro Mani 2020-06-08 13:59:16 UTC
:)

Looks good now - you might want to add a comment to briefly explain the patches in the spec.

Approved

Comment 16 Gwyn Ciesla 2020-06-11 14:22:38 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/mingw-portaudio


Note You need to log in before you can comment on or make changes to this bug.