No sound using sdl2_mixer from Homebrew - homebrew

My friend has asked me to test a program for them which uses sdl2_mixer for sound. I am using OS X 10.11.
I installed sdl2_mixer from Homebrew, but when I run the program, there is no sound.
We have tried .mp3, and .ogg files, but to no avail.
This warning is displayed, but I don't know if it is connected to the issue:
This application, or a library it uses, is using the deprecated Carbon
Component Manager for hosting Audio Units. Support for this will be
removed in a future release. Also, this makes the host incompatible with
version 3 audio units. Please transition to the API's in AudioComponent.h.

Edit:
Apparently this doesn't work anymore. See Mike's comment below.
After much searching, I tried reinstalling sdl2_mixer with optional compile options enabled in Homebrew.
First, I removed the original install of sdl2_mixer with
brew remove sdl2_mixer
Then I ran
brew --info sdl2_mixer
to find out what compile options I could enable.
Finally, I reinstalled sdl2_mixer with
brew install sdl2_mixer --with-flac --with-fluid-synth --with-libmikmod \
--with-libmodplug --with-libvorbis --with-smpeg2
Not all of these compile options will be necessary in every case. You could experiment by enabling just one at a time until you find the one that works in your case.
(I'm pretty sure the depreciation warning mentioned in the question is not relevant to the successful or unsuccessful playback of sound, because the warning still displays even when sound playback is working.)

Related

Installing Wine on Mac OS Catalina. Error: No available formula with the name "wine"

I'm trying to install Wine on my Mac via Brew. I'm using Catalina and just updated brew, installed XQuartz and have Xcode installed. When I type the command "Brew install wine" it returns the following:
Error: No available formula with the name "wine"
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
git -C "$(brew --repo homebrew/core)" fetch --unshallow
wine was deleted from homebrew/core in commit 82bd38bc:
wine: delete
To show the formula before removal run:
git -C "$(brew --repo homebrew/core)" show 82bd38bc^:Formula/wine.rb
If you still use this formula consider creating your own tap:
https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap
I'm following this tutorial: https://www.davidbaumgold.com/tutorials/wine-mac/
When I run Brew doctor I get the following:
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!
Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and which additional flags to use when
compiling and linking.
Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew-provided
script of the same name. We found the following "config" scripts:
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7-config
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7m-config
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3-config
Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected dylibs:
/usr/local/lib/libtcl8.6.dylib
/usr/local/lib/libtk8.6.dylib
Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected header files:
/usr/local/include/fakemysql.h
/usr/local/include/fakepq.h
/usr/local/include/fakesql.h
/usr/local/include/itcl.h
/usr/local/include/itcl2TclOO.h
/usr/local/include/itclDecls.h
/usr/local/include/itclInt.h
/usr/local/include/itclIntDecls.h
/usr/local/include/itclMigrate2TclCore.h
/usr/local/include/itclTclIntStubsFcn.h
/usr/local/include/mysqlStubs.h
/usr/local/include/odbcStubs.h
/usr/local/include/pqStubs.h
/usr/local/include/tcl.h
/usr/local/include/tclDecls.h
/usr/local/include/tclOO.h
/usr/local/include/tclOODecls.h
/usr/local/include/tclPlatDecls.h
/usr/local/include/tclThread.h
/usr/local/include/tclTomMath.h
/usr/local/include/tclTomMathDecls.h
/usr/local/include/tdbc.h
/usr/local/include/tdbcDecls.h
/usr/local/include/tdbcInt.h
/usr/local/include/tk.h
/usr/local/include/tkDecls.h
/usr/local/include/tkPlatDecls.h
Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected .pc files:
/usr/local/lib/pkgconfig/tcl.pc
/usr/local/lib/pkgconfig/tk.pc
Warning: Unbrewed static libraries were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.
Unexpected static libraries:
/usr/local/lib/libtclstub8.6.a
/usr/local/lib/libtkstub8.6.a
I'm not sure these warnings has something to do with it.
Thanks in advance!
I was able to build Wine 64 bit from source on macOS Catalina and successfully run Notepad++ 64 bit on it.
My steps were more or less something like that:
Download Wine 4.20 from https://dl.winehq.org/wine/source/4.x/wine-4.20.tar.xz
Extract it
In terminal go to extracted directory
Run: ./configure --enable-win64
It showed that it cannot find some library (I do not remember what exactly) so I installed it with macports (sudo port install name_of_missing_package reported by ./configure)
After I was able to run ./configure --enable-win64 succesfully without errors in terminal run: make
It compiled after more than 30 minutes.
I run it with: ./wine start
It opened windows console and here I was able to cd to Notepad++ 64 bit directory (downloaded from https://notepad-plus-plus.org/repository/7.x/7.0/npp.7.bin.x64.zip note that newest version did not work and throwed some errors about some dll's)
I typed notepad++ to run exe file
It showed some errors about freetype fonts so I installed them with macports and I had to copy them from /opt/X11/lib to /usr/local/lib before wine detected them
After fixing freetype fonts problem I was able to run notepad++
Also you might want to run: sudo spctl --master-disable to disable gatekeeper if you will see some system alerts about loading app from unknown developer.
Also note that instead of ./wine start you can run ./wine explorer for graphical file manager instead of console
Those steps might not be exactly precise, as I'm not sure if I did not miss something but hope it will help someone.
Also note that obviously wine on macOS Catalina will be able to run only some 64 bit windows apps and all 32 bit windows app will not work. I also tested it with IrfanView 64 bit (https://www.fosshub.com/IrfanView.html?dwl=iview453_x64_setup.exe) and it also works fine.
In case you wanted to get wine working for purpose of running 32 bit games then unfortunately it will not work with wine but you can try with virtualbox. You can check https://www.youtube.com/watch?v=3AO8dF0vviQ for some performance improvements tips.
Wine hast been removed from homebrew due to the incompatibility to Macos Catalina
https://discourse.brew.sh/t/issue-with-wine/6188/3
Try using wine64 to run your .exe files after installing wine. The manuals and references don't seem to mention this explicitly.
More Info
I followed the guidance in the wine manual to install using home-brew. After install, I got an error when trying to test the installation like it says in the quickstart.
Install wine-stable using homebrew
brew tap homebrew/cask-versions
brew install --cask --no-quarantine wine-stable
After install, test by opening notepad
wine notepad
zsh: bad CPU type in executable: wine
While uninstalling wine, I noticed one of the linked libraries was called wine64. I immediately reinstalled and tried again using wine64 as the call, as I am using wine on an M1 Mac. This was successful!
You can also use winehelp to get access to more commands that will work with 64bit processor.
Based on https://github.com/Homebrew/homebrew-core/pull/46556#issuecomment-559938873 you can do brew cask install wine-stable on newer version of OS X. And works with recent versions of homebrew since the source version was moved :(
How to install wine on Mac OS Catalina with brew
install homebrew with
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
install xquartz to install wine using brew
brew cask install xquartz
install wine using brew
brew install homebrew/cask-versions/wine-devel
run wine and check the version
wine64 --version
As of Wine 5.0 there is no 32bit support on mac in the official version, but you are able to achieve it via the
Unofficial Wineskin Winery
You can download it from github releases here. And then create a Wineskin with WS11WineCX[64/32]bit19.0.[0/1]. All WS11 versions support Catalina. To use it you also need to turn off the no32exec boot argument. You theoretically can do it by typing:
sudo nvram boot-args="no32exec=0"
into the Terminal while you're logged in but it didn't work out for me, so if you'll have the same problem, reboot into the Recovery mode, in the menubar pick Utilities -> Terminal and type just:
nvram boot-args="no32exec=0"
(without sudo).
Example
To be more exact, to install eg. Steam 32bit, you would:
Install the Unofficiall Wineskin Winery from the provided link
Turn on the 32bit execution boot argument by going into Recovery Mode and entering nvram boot-args="no32exec=0" into the terminal
Open Wineskin, click the '+' sign and scroll down to find the WS11WineCX64bit19.0.1 (the newest version with 64 and 32 bit support, at the time of writing)
Click update/install under the Wrapper Version.
Click Create New Blank Wrapper, name it and click through installation of mono and gecko.
Launch the Wrapper App from Finder. Click Install Software, choose setup executable, and proceed through installation. Then pick the executable from a menu. (In case of steam, Steam.exe)
Note: If you get the "No windows app to open the file"(Like I did) error, click advanced -> configuration and set the Windows EXE to the path to the installer. Then find the place that it has installed in and set that as Windows EXE. Then you can run by clicking Test Run.
Enjoy your windows app, as an .app file!
Hope I helped!

ghostview no longer works after homebrew upgrade of ghostscript

I recently did an update/upgrade with homebrew, and now gv no longer opens any of my .ps files. The Ghostscript error window that comes up says "Unknown device: x11 Error: PostScript interpreter failed in main window".
If I try gs --help, it doesn't list x11 under available devices, and the Default output device is "bbox". I tried uninstalling and reinstalling through homebrew. I tried to reinstall adding "--with-x11" but that throws the error "invalid option: --with-x11" - apparently that's no longer allowed. I've upgraded my command line code through the app store, and tried all of this again - nothing changed. I'm on High Sierra 10.13.3, using Homebrew 2.0.6, ghostscript 9.26_1, and gv 3.7.4.
I'm not a Mac developer so I'm not completely familiar with Homebrew, but it does sound like the package has been built wiithout X11 support. The fact that --help doesn't list the device is pretty clear.
I do notice from the website that in the last 30 days there have been 2 downloads of --with-x11. So possibly they've removed X11 support recently.
The only other thing I can suggest (assuming you are comfortable with compiling yourself) is to get the sources from www.ghostscript.com, untar the source tarball, then in a terminal window, from the 'ghostpdl' directory, execute ./autogen.sh, then when that is complete, execute 'make'.
Assuming you have autotools, gcc and the X11 development package, that should build a version of Ghostscript which includes X support. Looking at the Homebrew forumla, and assuming this has worked for you in the past, I think you should be able to build Ghostscript that way.
You might want to add --disable-cups --disable-compile-inits --disable-gtk --disablefontconfig --without-libidn to the ./autogen.sh command line to mimic the Homebrew formula. I'm not sure why they disable CUPS, but whatever.
Other than that, this isn't really a Ghostscript question as such, you would need to contact whoever handles the Homebrew Ghostscript distribution, which isn't any of the Ghostscript development team.
For those searching for a solution, I've put together a custom Homebrew tap that allows you to easily install GV (commonly called Ghostview, but really a derivative of it):
brew install johnhcc/gs-x11/gv
This will automatically install a version of Ghostscript with X11 enabled in the process (it is a dependency). You can optionally install the dependency by itself, it you want:
brew install johnhcc/gs-x11/ghostscript-x11
The main page is here:
https://github.com/johnhcc/homebrew-gs-x11

Where does Homebrew install fontconfig's fonts.conf?

I'm getting an error (when I run Python) that there are some obsolete entries in my Homebrew-installed fontconfig's fonts.conf, but don't know where to look for it. (I've checked the expected locations, but can't find it there.)
Where does Homebrew install fontconfig's fonts.conf?
According to this post (about a fonts.conf warning from Octave):
https://superuser.com/questions/1120758/fontconfig-warning-on-osx-when-running-octave
Homebrew places fonts.conf here: /usr/local/etc/fonts/fonts.conf
I use Homebrew, and indeed there is a fonts.conf there, but it dates from 2014 (3 years ago), despite me having just updated/upgraded brew's fontconfig (which regenerates the font cache). A search of /usr/local indicates the related files that brew does update when you do brew upgrade fontconfig are:
/usr/local/etc/fonts/fonts.conf.default
/usr/local/etc/fonts/conf.d/10-scale-bitmap-fonts.conf.default
I did a search of my System drive, and I also found a recent fonts.conf here: /opt/X11/lib/X11/fontconfig. That might be from XQuartz; I'm not sure.
Like you, when running Python (using matplotlib in an IPython session), I got a Fontconfig warning. The specific warning I got was: "blank doesn't take any effect anymore. please remove it from your fonts.conf." Having seen that brew didn't touch that old fonts.conf, I simply renamed it to hide it. The warning went away, and so far there have been no adverse effects. I'm guessing matplotlib is now getting its font info from one of the other files.

cant compile pjsip for iOS because of fatal error

I try to improve an App using an old version of pjsip. Since in this version the loudspeaker won't work anymore, I wanted to update pjsip.
Since I found no tutorial how to simply update the pjsip you are using I tried to download and compile the newest version.
But the compiling allways stopps with this exception:
pjmedia-audiodev/errno.c23:13: fatal error: 'portaudio.h' file not found
What could cause this problem?
I was following this guide:
https://trac.pjsip.org/repos/wiki/Getting-Started/iPhone
What made me also a bit curious is that in the file "config_site.h" already were alot of defines. Do I still need them while the guid says it should have thoose two lines:
#define PJ_CONFIG_IPHONE 1
#include <pj/config_site_sample.h>
When I am ready with compiling, would I be able to simply overwrite the files the app I'm working on useses with the files I just compiled?
Thank you for any help.
Seems that the Portaudio is not installed on your system.
You can get it from Macports or Homebrew with the following commands:
sudo port install portaudio
or
sudo brew install portaudio
About your second question for the defines in the "config_site.h" file, it's depend of the application it self, usually the mentioned settings are enough but is also possible that for your case additional parameters are needed, like enabling video or additional codecs etc.

Updating a dylib to reference correct versions of other dylibs (Homebrew)

I'm trying to build a program that uses QT and OpenCV. It compiles correctly, but when I run the application I get:
Starting /Users/Me/MyApp/Contents/MacOS/Foo...
dyld: Library not loaded: /usr/local/lib/libavformat.54.29.104.dylib
Referenced from: /usr/local/lib/libopencv_highgui.2.4.3.dylib
Reason: image not found
The program has unexpectedly finished.
/Users/Me/MyApp/Contents/MacOS/Foo exited with code 0
I've had a look in my /usr/local/lib, the files are properly linked there, the issue is that libav is now at a higher version and opencv doesn't reflect this (e.g. looking at the opencv dylib in a hex editor I see that it wants what it says above, but what's actually in my lib folder is e.g. version 54.59.106. I've tried runnning brew update/upgrade and relinking everything, but no luck.
I can make a quick fix by copying the offending dylibs and renaming them to older versions. This does cause the program to open correctly, but it's a bit of a hack.
Obviously I could probably fix this with a reinstall of the relevant libraries, but that takes precious time.. from this thread it seems like the only option, but I don't know if that's been fixed yet: https://github.com/mxcl/homebrew/issues/11832
Seems like the only way to fix this was to run:
brew rm ffmpeg && brew install ffmpeg
brew rm opencv && brew install opencv
Probably didn't need to repour ffmpeg, but I didn't see any harm in it. Turns out this happens sometimes when a package updates to a major new version and the other package hasn't also been updated yet.

Resources