text:
MythTV on Windows
MythTV runs and is officially supported on Windows but an official exe is not distributed, here is how to build a windows binary for yourself.
Using MinGW as the build platform, and MS Direct3D as the display layer.
- 1 Unofficial Windows Pre-Builds
- 2 Background & Caveats
- 3 Win32 Build Script
- 4.1 Conventions
- 4.2 Install MinGW - download the "Automated MinGW Installer"
- 4.3 Download and extract MINGW additional component/s: into your MINGW instalation
- 4.4 Install "MSYS base system" current release "MSYS-1.0.10.exe"
- 4.5 Download and extract MSYS additional component/s: into your MSYS instalation
- 4.6 install tortoiseSVN for GUI access to subversion
- 4.7 Get the latest copy of the mythtv source code
- 4.8 Enter the msys environment
- 4.9 QT and compiler environment variables
- 4.10 Apply patches to MythTV
- 4.11 Libraries and dependencies
- 4.12 Binary Dependencies / Libs
- 4.13 Source Libs
- 4.14 Optional libraries
- 4.16 Compile MythTV
- 4.17 Test Running Mythtv
- 4.17.1 script to assemble it all together
- 4.17.2 first test run
- 4.17.3 mysql.txt
- 4.17.4 good crash (is that possible?)
- 4.17.5 Installing MySQL Server
- 4.17.6 configuring mysql connection settings in mysql server
- 4.17.7 database schema auto-upgrades
- 4.17.8 theme issues/locations
- 4.17.9 mythtv-setup.exe
- 5 Problems others have encountered
- 5.1 During dependencies compile processes
- 5.2 During QT compile process
- 5.2.1 QT compile failed it could not find mysql.h
- 5.2.2 There is no supplied libmysql.a
- 5.2.3 uic.exe cannot be found
- 5.2.4 Linguist/Tutorial Makefile not found
- 5.2.5 qsound_win.moc not found
- 5.2.6 mysql.h: required patch
- 5.2.7 uic.exe unable to find libqt-mt3.dll
- 5.2.8 Undefined references to mysql_errno
- 5.2.9 ld.exe cannot find library -lmysql.lib
- 5.3 During MythTV compile process
- 5.3.1 pr command not found
- 5.3.2 ERROR! You must have FreeType installed to compile MythTV
- 5.3.3 Linker complains about not finding libs=
- 5.3.4 dsound.h not found
- 5.3.5 Mythtv installation errors on cp command
- 5.3.6 Mythtv cannot find libqt-mt
- 5.3.7 Compile warnings on redclared with dllimport attribute
- 5.3.8 Kerneldeint storage size of tv isn't known
- 5.3.9 no such file or directory config/config.pro
- 5.3.10 during compile of libmyth error about WSAEventSelect not found
- 5.3.11 usleep causing compile of 0.21-fixes to fail
- 5.3.12 Installation of plugins failed
- 5.4 At MythTV runtime
- 5.4.1 Crashes on frontend start up last line is "dont disable oss support unless you're not running on windows"
- 5.4.2 Mythtv dies when starting with a NO SQL drivers message
- 5.4.3 QSocketNotifier never generates signals
- 5.4.4 Mythtv crashes with Unable to connect to database!
- 5.4.5 Mythfrontend reports could not blit surface
- 5.4.6 Mythfrontend video is wrong ratio due to portrait screens
- 5.4.7 Compile error in libs/libmythsoundtouch/FIRFilter.cpp
- 5.4.8 Vista 64 compatibility during compile
- 5.4.9 0.21-fixes crashes at startup
- 5.4.10 0.21-fixes and pulseaudio
Unofficial Windows Pre-Builds
A MythTV user has set up a website where you can download pre-built versions of the windows port, some of the information on that site may be incorrect, but the downloads may help some.
Note that these builds do not run on Windows 2000 (which lacks the 'freeaddrinfo' function -- see http://msdn.microsoft.com/en-us/library/ms737931%28VS.85%29.aspx).
The site is located at http://members.iinet.net.au/~davco/ and has versions 0.21 through 0.26 available. The page also has links to many more archived downloads.
Fixes builds are available from another user at http://mythtvwindows.sourceforge.net/. The latest download (0.27 as of last update) can be found at http://sourceforge.net/projects/mythtvwindows/ Experimental 64 bit builds will be uploaded when they succeed.
Background & Caveats
MinGW/GCC doesn't seem to work well under Vista 64 bit (maybe even 32 bit too). Try compiling on an 2000/XP box instead.
What works?
The frontend, backend (without most tuners), and most utilities compile, and most functionality works.
What doesn't work?
There is currently no support for most tuners in mythbackend. However the network connected HD Homerun ATSC, Cable or DVB-T tuner does work, as do a "virtual" tuner using a mpg file in a loop.
Win32 Build Script
The current Windows build script seems to be https://github.com/MythTV/packaging/blob/master/Win32/mythbuild.sh with instructions at the top of the file. The "HOWTO" section below is LONG, painful, and easy to get wrong (and definitely quite a bit out of date! ).
Outdated: The information on this page may no longer be relevant to the current release of MythTV, 33.1. Please consider helping to update it. This page was last modified on 2015-10-24.
For 0.24, you are probably best off going here: http://www.softsystem.co.uk/mythtv where there are full instructions for building 0.24 from the new git repository. The perl script below still works, but only against the subversion repository which is no longer as up to date since mythtv moved over to git.
But for 0.23 and earlier, you're fine with the script below.
Note: If you are building 0.21-fixes instead of trunk, you must choose to install the "Previous" package when prompted by the MinGW Automated Installer. Failure to do so will result in build failure related to usleep(). This applies regardless of the version of build script or MinGW Automated Installer used.
Get activestate perl AND the build script for the version you desire:
- Install Active-perl from here: http://www.activestate.com/store/download.aspx?prdGUID=81fbce82-6bd5-49bc-a915-08d58c2648ca
- Get the build script for TRUNK ( for developers and bleeding-edge types ) : http://svn.mythtv.org/svn/trunk/packaging/Win32/build/win32-packager.pl
- Get the build script for release 0.21 : http://svn.mythtv.org/svn/branches/release-0-21-fixes/mythtv/contrib/Win32/win32-packager.pl
- Get the build script for release 0.22 : http://svn.mythtv.org/svn/branches/release-0-22-fixes/packaging/Win32/build/win32-packager.pl
- Get the build script for release 0.23 : http://svn.mythtv.org/svn/branches/release-0-23-fixes/packaging/Win32/build/win32-packager.pl
- run the Win32-packager.pl from a DOS command line ( be sure to use the correct options ).
- when downloading at the beginning, at least on Windows 7, you will have to follow directions in the script window for installing a few things. It is not completely automated.
- the release-0-23-fixes doesn't work anymore. I had to use the trunk version.
- WAIT FOR HOURS ( overnight)!
- if the build was successful (a number of hours later)....
- try to run the exe's that are located in the c:\mythtv\build\ folder.
- if you used the -k option, check for an INSTALLER in c:\mythtv\setup\ )
Seriously... this script will (should) automatically download ALL the required downloads (into c:\msys\1.0\sources ) that are mentioned below, do all the compilations (hopefully), setup your environment, and save you at least 5 hours of click-download-click-save-click boring stuff. Occassionally the download links in the script don't work because external parties release new versions of their code, and remove the old ones, in this case, it should try to tell you, and you can manually download the newer version, and tweak the script to recognise it. You can usually work around this by pointing the script to a newer package. For example, fftw-3.1.2.tar.gz is no longer available. To fix this, you would edit the win32-packager.pl script, replacing fftw-3.1.2 with fftw-3.2.1, then run "c:/perl/bin/perl.exe -w win32-packager.pl" instead of MythInstaller.bat so that the change would not be overwritten. If for some reason, it is unable to extract the downloaded zip files, just unzip them by hand and re-run the script.
- STOP! DON'T READ ANY FURTHER!. SERIOUSLY. IF YOUR BUILD DIDN'T WORK, PLEASE EMAIL THE PROBLEM TO THE mythtv-dev list, and the win32 devs will try to help!
You need only continue reading below if you are a masochist, or you want to understand all the steps that the above "win32-packager.pl" script will do for you.! Seriously, it will automatically do everything else listed in this HOWTO section for you, and a few usefull things besides.! PLEASE use it, and don't do it manually unless you absolutely must!
Outdated: The information on this page may no longer be relevant to the current release of MythTV, 33.1. Please consider helping to update it. This page was last modified on 2015-10-24.
Because this is a mixed-mode (unix tools on a windows box) installation document, there are times when you will be executing commands in "unix mode" (inside a msys window), and other times in "windows mode" (inside a "DOS Box" aka cmd.exe). This conventions section lays out how we identify when to do what.
- Try to do most actions in a msys(unix) window, unless otherwise specified.
- Commands that start with c:\xxx> are meant to be executed in a DOS Box, and the 'xxx' typically shows the folder you should be in, if important.
- All dependencies/downloads will have at least two links: the first to the "main site/page" will be unlabeled, or labeled 'site:', and the second link will be labeled 'direct download:', to supply an immediate link to the software (or as immediate as possible + click-thru-instructions).
- Sentences starting with TIP: or NOTE: are little pieces of positive information that you may find useful to know at this juncture, normally they are NOT about debugging/compiling issues, as these are covered in the "issues/problems" section at the bottom.
Install MinGW - download the "Automated MinGW Installer"
site: http://www.mingw.org/
More info available here: http://www.mingw.org/download.shtml
Direct download (almost): http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer
*If building MythTV trunk, install the "Current" MinGW package. *If building MythTV 0.21-fixes, install the "Previous" MinGW package. *When installing, be sure to install g++, g77, and MinGW make in addition to MinGW base. *Typical install path is c:\MinGW
Download and extract MINGW additional component/s: into your MINGW instalation
TIP: MINGW is different from MSYS. This difference is important to remember.
Download Mingw32-make (this is required for the QT compilation):
direct download (almost): http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=23918&release_id=531888
Extract to C:\MinGW
Download mingw-utils
direct download (almost): http://downloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz?modtime=1077321600&big_mirror=1
Extract it to c:\MinGW
Install "MSYS base system" current release "MSYS-1.0.10.exe"
more info: http://www.mingw.org/
direct download: http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=24963 During the installation leave destination folder as
When instructed by msys (in a DOS window) enter the path where you installed MinGW in unix-style form:
You might find that you get an error in "sync with child / child state waiting for longjump" or "Couldn't reserve space for cygwin's heap" when in the post-instllation (DOS window). This error definitely occurs with Vista 64 bit edition. The solution that I found to solve the problem, is to go to the MSYS Technology Preview download page and select the MSYS-1.0.11-20071204.tar.bz2 file:
http://downloads.sourceforge.net/mingw/MSYS-1.0.11-20071204.tar.bz2?modtime=1196807934&big_mirror=1 Then, unpack the files on your existing MSYS directory (default C:\MSys\1.0). It should overwrite these files: bin/msys-1.0.dll bin/mount.exe bin/ps.exe
After doing this you can run C:\msys\1.0\postinstall\pi.bat again and this time there should be no errors.
Download and extract MSYS additional component/s: into your MSYS instalation
direct download: http://downloads.sourceforge.net/mingw/bash-3.1-MSYS-1.0.11-1.tar.bz2?modtime=1195140582&big_mirror=1
Extract to C:\MSys\1.0 and overwrite any existing files
direct download: http://downloads.sourceforge.net/mingw/zlib-1.2.3-MSYS-1.0.11.tar.bz2?modtime=1190248364&big_mirror=1
Extract contents, then copy contents of usr subfolder (ie folders of bin, include, lib and share) to C:\MSys\1.0
NOTE: Not sure what is going on, but I found that when running .configure in taglib it could not find zlib unless I copied it into MinGW -- Simon Kenyon
'pr' command
the coreutils package contains the 'pr' command.
direct download: http://downloads.sourceforge.net/mingw/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2?modtime=1188741011&big_mirror=1
Extract the file, then copy the contents of the coreutils-5.97 subfolder to C:\MSys\1.0
optionally update the GCC version
Andrei used GCC 4.2.2 from here (and has had success!):
http://www.tdragon.net/recentgcc/ It's a drop-in replacement for MinGW gcc, and it comes with pthread library. direct downloads: http://downloads.sourceforge.net/tdm-gcc/gcc-4.2.2-tdm-1-core-1.7z http://downloads.sourceforge.net/tdm-gcc/gcc-4.2.2-tdm-1-g++-1.7z (requires 7-zip to extract: see http://www.7-zip.org/download.html)
Note: The notes on the above page indicate that the Technology Preview from the main MinGW page might be better.
Buzz (and the win32-packager.pl script) build mythtv with the default mingw (3.4.5).
It might be necessary the technology preview of 4.2.1 (if the 3.4.5 build is unsuccessful):
So far, 4.2.1 has NOT been been needed, but he's not finished the build process of 3.4.5 yet.
Here's the links to it anyway. ( 4.2.1 preview ):
direct download: http://downloads.sourceforge.net/mingw/gcc-core-4.2.1-sjlj-2.tar.gz?modtime=1187065794&big_mirror=1
After downloading extract to C:\MinGW and overwrite any files there
direct download: http://downloads.sourceforge.net/mingw/gcc-g%2B%2B-4.2.1-sjlj-2.tar.gz?modtime=1187065795&big_mirror=1
After downloading extract to C:\MinGW and overwrite any files there
To make GCC 4.2.1 the default version, do the following commands in C:\MinGW\bin:
c:\>cd c:\MingW\bin c:\>copy gcc-sjlj.exe gcc.exe c:\>copy gccbug-sjlj.exe gccbug.exe c:\>copy mingw32-gcc-sjlj.exe mingw32-gcc.exe c:\>copy g++-sjlj.exe g++.exe c:\>copy mingw32-g++-sjlj.exe mingw-g++.exe
direct download: http://downloads.sourceforge.net/mingw/libgcc_sjlj_1.dll.gz?modtime=1187162717&big_mirror=1
After downloading extract to ???
install tortoiseSVN for GUI access to subversion
site: http://tortoisesvn.tigris.org/
direct download: http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-188.8.131.5237-win32-svn-1.4.6.msi?download
Get the latest copy of the mythtv source code
- Make a folder c:\mythtv\
- Right-click on the mythtv folder you just created and choose "SVN Checkout..."
- Enter the follwing string
- into the tortoiseSVN window, and click OK.
- wait for very large download to finish (roughly 127MB)
After checkout, you should see: Completed At revision 15244 (or higher)
Enter the msys environment
Double click on the MSYS shortcut on your Windows desktop. Alternatively, run c:\msys\1.0\msys.bat
MSys looks like unix, doesn't it!.
TIP: type 'mount' to see how msys lays out its folders.
QT and compiler environment variables
export QTDIR=/--path to qt location--/qt-3.3.x-p8 export QMAKESPEC=$QTDIR/mkspecs/win32-g++ export LD_LIBRARY_PATH=$QTDIR/lib:/usr/lib:/mingw/lib export PATH=$QTDIR/bin:$PATH
TIP: if you extracted qt into the folder c:/msys/1.0/qt-3.3.x-p8/ , then the first line above would be: export QTDIR=/qt-3.3.x-p8 (this works because msys mounts the c:/msys/1.0/ as "/")
Apply patches to MythTV
As of 20080418 there are a few patches that will make MythTV 0.21 work better on Windows:
- win32_fs.patch - from http://svn.mythtv.org/trac/raw-attachment/ticket/4699/win32_fs.patch
- mingw.patch - from http://svn.mythtv.org/trac/raw-attachment/ticket/4702/mingw.patch
- mythsocket_win32_events.patch - from http://svn.mythtv.org/trac/raw-attachment/ticket/4706/mythsocket_win32_events.patch committed in trunk r17068, still needed for 0.21-fixes
- win32_storeconnection.patch - from http://svn.mythtv.org/trac/raw-attachment/ticket/4724/win32_storeconnection.patch
- dvd_playback.patch - from http://svn.mythtv.org/trac/raw-attachment/ticket/4718/dvd_playback.patch
- dvd_playback_plugin.patch - from http://svn.mythtv.org/trac/raw-attachment/ticket/4718/dvd_playback_plugin.patch
This patch moves lib, share, include to relative folders to installation (executable):
- mythcontext.patch5 - from http://svn.mythtv.org/trac/raw-attachment/ticket/4984/mythcontext.patch5
Libraries and dependencies
Download and compile all the libs for all the libraries listed below in both the Binary Dependencies/Libs section and the Source Libs section. This is a lot of work.
Hopefully we'll be able to make all these library dependencies quicker, and just supply pre-built versions to download, for those libraries that are stable.
Binary Dependencies / Libs
Download "Windows Essentials (x86)" from here: http://dev.mysql.com/downloads/mysql/5.0.html#win32
Almost direct download: http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-essential-5.0.45-win32.msi/from/pick#mirrors
- During installation, click the Custom setup type.
- Ensure that C Include Files / Lib Files are installed onto the local drive. (That is done by choosing a "custom" install, and just selecting that component to install as a minimum, if you plan on testing backend functionality too, you sjhould do a "complete" install, to install the mysql server too).
- Copy all files from C:\Program Files\Mysql\Mysql Server 5.0\include to C:\MinGW\include
- Copy libmysql.dll from C:\Program Files\Mysql\Mysql Server 5.0\bin to C:\MinGW\lib
- Copy libmysql.lib from C:\Program Files\Mysql\Mysql Server 5.0\lib\opt to C:\MinGW\lib
The above three steps as a cut-n-paste for msys:
cp /c/Program\ Files/MySQL/MySQL\ Server\ 5.0/include/* /c/MinGW/include/ cp /c/Program\ Files/MySQL/MySQL\ Server\ 5.0/bin/libmySQL.dll /c/MinGW/lib cp /c/Program\ Files/MySQL/MySQL\ Server\ 5.0/lib/opt/libmysql.lib /c/MinGW/lib
Ensure you have installed the mingw-utils dependency Start the Msys environment
cd /mingw/lib reimp -d libmysql.lib dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a
The steps for rebuilding libmysql.a came from: http://wiki.qtcentre.org/index.php?title=Building_the_QMYSQL_plugin_on_Windows_using_mingw
Now we need to patch /mingw/include/mysql.h so that WIN is defined for MINGW32
If you see (if you don't see code looking exactly like this, go to the next patch/change below):
#ifdef __MINGW32__ /* MINGW implements a UNIX API */ #undef WIN #undef _WIN #undef _WIN32 #undef _WIN64 #undef __WIN__ #endif
Change it to:
#ifdef 0 //__MINGW32__ /* MINGW implements a UNIX API */ #undef WIN #undef _WIN #undef _WIN32 #undef _WIN64 #undef __WIN__ #endif
(Note: Not all versions of mysql.h have the above - you may not need to do anything.)
If you see:
#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__)
Change it to this:
#if (defined(_WIN32) || defined(_WIN64) || defined(__MINGW32__)) && !defined(__WIN__)
Lastly, you need to comment out (insert //) in the two lines (one in front and 1 after) "#include <winsock.h> in /mingw/include/mysql.h so it now reads.
//#ifdef __LCC__ #include <winsock.h> /* For windows */ + #ifdef 0 //__MINGW32__ /* MINGW implements a UNIX API */ //#endif
Note: The important thing is that #define STDCALL __stdcall is defined otherwise bad things will happen (it will compile but you'll fine segfaults happen immediately due to the stack getting well stacked.
libpthread (precompiled) Alternative to this step: You can compile libpthread from source
site: http://sourceware.org/pthreads-win32/
direct download: ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/libpthreadGC2.a Save libpthreadGC2.a as libpthread.a into the lib directory (c:\mingw\lib\libpthread.a)
cp libpthreadGC2.a /c/mingw/lib/libpthread.a
direct download: ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/pthreadGC2.dll
Save pthreadGC2.dll into the MinGW bin directory (c:\mingw\bin) Copying this dll ALSO to pthread.dll may be needed. cp pthreadGC2.dll /c/mingw/bin/pthreadGC2.dll cp pthreadGC2.dll /c/mingw/bin/pthread.dll
direct download (almost): ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/include/
Download all header files from include/ to the include directory (c:\mingw\include)
(details came from this link: http://www.gnunet.org/hacking_win32_build.php3 - it has a good summary)
directX header files
You will need a copy of the Microsoft DirectX SDK for ddraw.h dinput.h and dsound.h. To get the needed DirectX header files from the Microsoft DirectX SDK:
- Go to http://msdn.microsoft.com/downloads/
- Select the DirectX SDK (November 2007)
- Click on the Download link on the right
- This is a 427 MB file!
- Run the downloaded program
- Untick "When done unzipping open Setup.exe" - there is no need to install the SDK
- click Unzip to extract it to C:\mssdk\temp
- Click "OK" and "Close" when the program finishes extracting the files
- Copy the following three files from SDK's include directory (C:\mssdk\temp\Include) ddraw.h dinput.h and dsound.h to the to the mingw include directory (C:\MinGW\Include)
Source Libs
For all the libs below, except when noted otherwise, use tar xvzf xxxx.tar.gz, cd xxxxx, ./configure --prefix=/usr && make && make install to build and install them, there's nothing special that needs to be done.
TIP: For those unfamiliar with libraries, using the shortname (eg 'ogg') normally refers to a download/library called 'libogg.xxxxx.tar.gz', or similar.
direct download: http://download.savannah.nongnu.org/releases/freetype/freetype-2.3.5.tar.gz
build it with
./configure --prefix=/mingw;make;make install
because using "--prefix=/usr" seems to not work (Freetype library is not detected by mythtv configure)
download version 3.97 from sourceforge http://lame.sourceforge.net/index.php direct download (almost): http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309&release_id=450142 build it with
./configure --prefix=/mingw;make;make install
NOTE: For some reason, many people get get "ld.exe -lmp3lame not found" (or similar) when compiling mythtv if they install lame into /usr (by configuring with --prefix=/usr), even if the LD_LIBRARY_PATH variable is set correctly. Installing into /mingw seems to workaround this issue.
This step details how you can compile libpthread from source (if needed)
NOTE: If you already have the precompiled version of libpthread as shown above then you can SKIP THIS STEP
NOTE: It is more experimental than the precompiled version above, so if you have pthread issues, try the precompiled version.
site: http://sourceware.org/pthreads-win32/
direct download: ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-2-8-0-release.tar.gz
- extract, and build in msys with the command:
tar -zxvpf pthreads-w32-2-8-0-release.tar.gz cd pthreads-w32-2-8-0-release make clean GC GC-static
- copy libraries/includes (same files as per above precompiled version) to the right location:
cp ./libpthreadGC2.a /mingw/lib/libpthread.a cp ./pthreadGC2.dll /mingw/bin/ cp ./pthread.h /mingw/include cp ./sched.h /mingw/include/ cp ./semaphore.h /mingw/include/
Optional libraries
version 1.4 from freshmeat: http://freshmeat.net/projects/taglib direct download: http://developer.kde.org/~wheeler/files/src/taglib-1.4.tar.gz
./configure --prefix=/usr;make;make install
TIP: Buzz found that 'make install' failed until all the Makefiles were tweaked. After running ./configure, in all the "Makefile" files change any of these:
INSTALL = C:/msys/1.0/bin/install -c -p INSTALL = ../C:/msys/1.0/bin/install -c -p INSTALL = ../../C:/msys/1.0/bin/install -c -p
INSTALL = /bin/install -c -p
Then run make and make install. NOTE: Running ./configure will overwrite any changes you make to the Makefiles, so make sure not to re-run that after changing the files.
ogg and vorbis
ogg version 1.1.3 and vorbis version 1.2.0 from xiph http://xiph.org/downloads/
You must compile and install three components and in the following order:
- libao
- libogg
- libvorbis
direct downloads:
- http://downloads.xiph.org/releases/ao/libao-0.8.8.tar.gz
- http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
- http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.gz
Compile commands:
tar xvzf libao-0.8.8.tar.gz tar xvzf libogg-1.1.3.tar.gz tar xvzf libvorbis-1.2.0.tar.gz cd libao-0.8.8;./configure --prefix=/usr;make;make install;cd .. cd libogg-1.1.3;./configure --prefix=/usr;make;make install;cd ..
For vorbis, use
cd libvorbis-1.2.0;./configure --prefix=/usr --disable-shared;make;make install;cd ..
(or find how to resolve undefined references to libogg, this shouldn't be too hard).
Alternatively, apply the following patch to lib/Makefile.in to allow shared lib building. Only affects libvorbisfile and libvorbisenc. Then do:
cd libvorbis-1.2.0;./configure --prefix=/usr;make;make install;cd .. --- lib/Makefile.in.orig Fri Dec 28 08:21:48 2007 +++ lib/Makefile.in Fri Dec 28 08:22:52 2007 @@ -264,10 +264,10 @@ libvorbis_la_LIBADD = @OGG_LIBS@ @VORBIS_LIBS@ libvorbisfile_la_SOURCES = vorbisfile.c libvorbisfile_la_LDFLAGS = -no-undefined -version-info @VF_LIB_CURRENT@:@VF_LIB_REVISION@:@VF_LIB_AGE@ -libvorbisfile_la_LIBADD = libvorbis.la +libvorbisfile_la_LIBADD = libvorbis.la @OGG_LIBS@ libvorbisenc_la_SOURCES = vorbisenc.c libvorbisenc_la_LDFLAGS = -no-undefined -version-info @VE_LIB_CURRENT@:@VE_LIB_REVISION@:@VE_LIB_AGE@ -libvorbisenc_la_LIBADD = libvorbis.la +libvorbisenc_la_LIBADD = libvorbis.la @OGG_LIBS@ CLEANFILES = $(EXTRA_PROGRAMS) barkmel_SOURCES = barkmel.c tone_SOURCES = tone.c
version 1.2.1 http://flac.sourceforge.net/
direct download (almost): http://sourceforge.net/project/showfiles.php?group_id=13478&package_id=12677&release_id=539981
Compile with:
cd flac-1.2.1;./configure --prefix=/usr;make;make install;cd ..
Optional library (to read extra information taken by Canon digital cameras) for MythGallery http://libexif.sourceforge.net/
Direct download: https://sourceforge.net/project/showfiles.php?group_id=12272&package_id=38136&release_id=515385
Optional library for MythMusic http://sourceforge.net/projects/libvisual/
Direct download http://downloads.sourceforge.net/libvisual/libvisual-0.4.0.tar.gz?modtime=1142891522&big_mirror=0
Optional library for MythMusic http://www.libsdl.org/
Direct download: http://www.libsdl.org/release/SDL-1.2.12.tar.gz
Optional library for MythMusic (for onscreen visualisations): http://www.fftw.org/
Direct download: http://www.fftw.org/fftw-3.1.2.tar.gz
TIP: you might want to configure with
./configure --prefix=/usr --with-gcc-arch=k8
./configure --prefix=/usr --with-our-malloc16 --with-windows-f77-mangling --enable-shared --disable-static --enable-portable-binary --enable-float --enable-sse
TIP: there are also MinGW tips here: http://www.fftw.org/install/windows.html
QT deserves its own section on this page, because it wasn't trivial to make QMake work, and because it had a couple of bugs, one of them critical, leading to deadlocks in MythFrontend.
Start CMD
Open a CMD.exe window (start->run->type 'cmd'->OK) - NOT a msys window! NOTE: building QT is NOT done in the msys environment, it's done in a DOS(cmd.exe) box!
Download QT 3
direct download (almost): http://downloads.sourceforge.net/qtwin/qt-3.3.x-p8.tar.bz2?modtime=1178810003&big_mirror=0
TIP: extract the .tar.bz2 file somewhere handy. Buzz extracted to the folder to
Define DOS environment variables for QT compile
define where you extracted it to! (IMPORTANT - DO NOT SKIP!)
c:\> set QTDIR=C:\msys\1.0\qt-3.3.x-p8 c:\> set MINGW=c:\MinGW c:\> set PATH=%QTDIR%\bin;%MINGW%\bin;c:\msys\1.0\bin;%PATH% c:\> set QMAKESPEC=win32-g++
Apply QT Patch
Apply the qt patch from here: http://svn.mythtv.org/trac/ticket/4270 download it to the qt-3.3.x-p8 sources folder from step 1
direct download: http://svn.mythtv.org/trac/raw-attachment/ticket/4270/qt.patch.gz
(this is easiest to do in a msys window:)
export QTDIR=/c/msys/1.0/qt-3.3.x-p8 cp qt.patch.gz $QTDIR cd $QTDIR gunzip qt.patch.gz patch -p1 < qt.patch
NOTE: The patch fixes one critical bug, fixes one issue preventing it from working properly with bash, implements "install" in makefiles, and reduces number of compiler warnings during MythTV compilation. Unfortunately, this breaks QT build scripts, but it still allows to build the qt-mt3.dll properly.
Apply another qt patch from here: http://tanas.ca/qt2.patch (direct download)
patch -p1 < qt2.patch
NOTE: This patch fixes another critical bug, it's important to apply it.
For convenience, I combined both patches into one file here: http://tanas.ca/qt.patch (AT)
Rename sh.exe OR check path
QT doesn't like sh.exe: To get the QT build to work temporarily rename the sh.exe which MINGW and MSYS use.
c:\>rename \MSYS\1.0\bin\sh.exe sh_.exe c:\>rename %MINGW%\bin\sh.exe sh_.exe # may not exist, but if it does, rename it.
Alternatively, some people have just removed msys or cygwin from their path.
TIP: I get errors about not finding cp or rm when I do NOT have c:\msys\bin in my path. -- zack
Compile and build QT
NOTE: Background information on what is happening here:
The configure.bat first creates link_includes.exe and configure.exe which are needed for bootstrap the build process. link_includes.exe copies all relevant Qt headers into the include-directory. configure.exe is the replacement for the ./configure-script unter Unix/Linux. After that, qmake.exe is built and the compilation gets started.
Next we need to configure and build the source - This should build the whole Qt release:
c:\> cd %QTDIR% c:\msys\1.0\qt-3.3.x-p8> configure.bat -thread -plugin-sql-mysql -opengl -no-sql-sqlite
TIP: configure knows some of the parameters of the x11 release configure script like -fast or -verbose. For a full list see bin\configure.exe -help.
TIP: If the compliation of QT is stopped (Ctrl-C), you can restart compiling with:
C:\msys\1.0\qt-3.3.x-p8> mingw32-make [target]
For a list of all available [target]s see the toplevel Makefile.
After 40-50 minutes you will see an error during the compilation process:
mingw32-make[3]: Entering directory `C:/msys/1.0/qt-3.3.x-p8/tools/assistant' C:\msys\1.0\qt-3.3.x-p8/bin/uic.exe finddialog.ui -o finddialog.h process_begin: CreateProcess(NULL, C:\msys\1.0\qt-3.3.x-p8/bin/uic.exe finddialog.ui -o finddialog.h, ...) failed. make (e=2): The system cannot find the file specified.
This is due to a QT dependency (uic.exe) not being compiled and, later, libqassistantclient not being compiled before it is required, and a missing makefile in tools\linguist\tutorial The workaround is as follows:
echo all: > tools\linguist\tutorial\Makefile cd tools\designer mingw32-make cd ..\assistant\lib mingw32-make cd ..\..\.. echo mingw32-make # this re-starts the compile
NOTE: I've re-done this area of the compile multiple times... would appreciated the above workaround being tested by a third party -- Richard Dale Richard - I was unable to repeat your error, and my QT builds fine so long as I apply the qt.patch.gz file (as per the instructions) immediately after I extract the qt. - Buzz.
I(Buzz) created a batch file for building QT, I called it qtsetup.bat: (this is the contents of the batch file)
set QTDIR=c:\msys\1.0\qt-3.3.x-p8 set MINGW=c:\mingw set PATH=%QTDIR%\bin;%MINGW%\bin;%PATH% set QMAKESPEC=win32-g++ rename c:\msys\1.0\bin\sh.exe sh_.exe cd %QTDIR% configure.bat -thread -plugin-sql-mysql -opengl -no-sql-sqlite mingw32-make rename c:\msys\1.0\bin\sh_.exe sh.exe
create libqt-mt.dll
Copy libqt-mt3.dll to libqt-mt.dll (since this is what Myth is expecting)
c:\> copy %QTDIR%\lib\libqt-mt3.dll %QTDIR%\lib\libqt-mt.dll
Rename sh.exe back to original
c:\>rename c:\msys\1.0\bin\sh_.exe sh.exe c:\>rename %MINGW%\bin\sh_.exe sh.exe # may not exist, but if it does, rename it.
The next major MythTV release, 0.22, will require QT 4.4 as a minimum. Please note this is not necessary with the 0.21 release or 0.21-fixes branch and this is also *untested*.
Download the QT 4 source.
Extract the contents. Jay extracted them to:
Open a CMD.exe window (start->run->type 'cmd'->OK) - NOT a msys window! NOTE: building QT is NOT done in the msys environment, it's done in a DOS(cmd.exe) box!
Configure QT 4 to use MySQL and then build QT 4. Enter these in the command prompt window.
set QTDIR=C:\msys\1.0\qt-win-opensource-src-4.3.4 set MINGW=c:\MinGW set PATH=%QTDIR%\bin;%MINGW%\bin;%PATH% set QMAKESPEC=win32-g++ cd %QTDIR% configure -plugin-sql-mysql -no-sql-sqlite mingw32-make
NOTE: You may get an error "UNICODE_STRING does not name a type" during configure. In that case you'll have to replace your \mingw\include\sspi.h with an updated one from this thread:
Also, if you get an error like "qatomic_windows.h: error: declaration of C function `long int InterlockedCompareExchange(long int*, long int, long int)' conflicts with winbase.h: error: previous declaration `LONG InterlockedCompareExchange(volatile LONG*, LONG, LONG)' here", then you'll have to fix the QT4 file \src\corelib\arch\qatomic_windows.h as per the above thread. Specifically, you have to change this block:
#if !(defined Q_CC_BOR) || (__BORLANDC__ < 0x560) extern "C" { __declspec(dllimport) long __stdcall InterlockedCompareExchange(long *, long, long); __declspec(dllimport) long __stdcall InterlockedIncrement(long *); __declspec(dllimport) long __stdcall InterlockedDecrement(long *); __declspec(dllimport) long __stdcall InterlockedExchange(long *, long); __declspec(dllimport) long __stdcall InterlockedExchangeAdd(long *, long); } #else extern "C" { __declspec(dllimport) long __stdcall InterlockedCompareExchange(long volatile*, long, long); __declspec(dllimport) long __stdcall InterlockedIncrement(long volatile*); __declspec(dllimport) long __stdcall InterlockedDecrement(long volatile*); __declspec(dllimport) long __stdcall InterlockedExchange(long volatile*, long); __declspec(dllimport) long __stdcall InterlockedExchangeAdd(long volatile*, long); } #endif
To this:
#ifndef __INTERLOCKED_DECLARED #if !(defined Q_CC_BOR) || (__BORLANDC__ < 0x560) extern "C" { __declspec(dllimport) long __stdcall InterlockedCompareExchange(long *, long, long); __declspec(dllimport) long __stdcall InterlockedIncrement(long *); __declspec(dllimport) long __stdcall InterlockedDecrement(long *); __declspec(dllimport) long __stdcall InterlockedExchange(long *, long); __declspec(dllimport) long __stdcall InterlockedExchangeAdd(long *, long); } #else extern "C" { __declspec(dllimport) long __stdcall InterlockedCompareExchange(long volatile*, long, long); __declspec(dllimport) long __stdcall InterlockedIncrement(long volatile*); __declspec(dllimport) long __stdcall InterlockedDecrement(long volatile*); __declspec(dllimport) long __stdcall InterlockedExchange(long volatile*, long); __declspec(dllimport) long __stdcall InterlockedExchangeAdd(long volatile*, long); } #endif #endif
Compile MythTV
try to compile mythv and if successful the plugins too!
cd /c/mythtv cd mythtv ./configure --prefix=/usr --disable-dbox2 --disable-hdhomerun \ --disable-dvb --disable-ivtv --disable-iptv --disable-joystick-menu \ --disable-xvmc-vld --disable-x11 --disable-xvmc --enable-directx \ --enable-memalign-hack --cpu=k8 --compile-type=debug make make install cd ..
cd mythplugins ./configure --prefix=/usr --disable-mythgallery --disable-mythmusic \ --disable-mytharchive --disable-mythbrowser --disable-mythflix \ --disable-mythgame --disable-mythnews \ --disable-mythzoneminder --disable-mythweb --enable-aac --enable-libvisual \ --enable-fftw --compile-type=debug --disable-x11 --disable-v4l --disable-audio-oss \ --disable-audio-alsa --disable-ivtv --enable-directx
make install
cd ..
Test Running Mythtv
script to assemble it all together
After successfully running 'make' you might want to try/test running mythtv and/or your 'make install' may not work. I made a quick shell script to copy all the (aparently) needed .exe and .dll files into the same folder, so that mythfrontend will at least start (even if it does still crash before starting any sort of GUI):
#!/bin/bash cd /c/mythtv/mythtv # keep around just one earlier verion in run_old: rm -rf run_old mv run run_old mkdir run # copy exe's and dll's to the run folder: find . -name \*.exe | grep -v run | xargs -n1 -i__ cp __ ./run/ find . -name \*.dll | grep -v run | xargs -n1 -i__ cp __ ./run/ # mythtv expects the dll to NOT have the '3' in it. cp /qt-3.3.x-p8/lib/libqt-mt3.dll /qt-3.3.x-p8/lib/libqt-mt.dll # mythtv needs the qt dll's at runtime: cp /qt-3.3.x-p8/lib/*.dll /c/mythtv/mythtv/run # qt mysql connection dll has to exist in a subfolder called 'sqldrivers': mkdir /c/mythtv/mythtv/run/sqldrivers cp /qt-3.3.x-p8/plugins/sqldrivers/libqsqlmysql.dll /c/mythtv/mythtv/run cp /qt-3.3.x-p8/plugins/sqldrivers/libqsqlmysql.dll /c/mythtv/mythtv/run/sqldrivers
You can now run the mythfrontend.exe from /c/mythtv/mythtv/run/mythfrontend.exe
I note that this copies the dlls from the filters subdirectory into run/ Should they go in a filters/ subdirectory? You also copy the linqsqlmysql.dll into the run/ directory as well as sqldrivers/ This did not work for me. -- Simon
first test run
Run ./run/mythfrontend.exe now (from msys, or DOS, or windows is fine), and it will probably complain "Unable to connect to database!" among other errors/debug.
Create/copy a mysql.txt file that specifies the connection parameters for a mythtv mysql database, and copy it into the ./run/ folder, and try again!
Create these contents of file: C:\mythtv\mythtv\run\mysql.txt
DBHostName=localhost DBUserName=mythtv DBPassword=mythtv DBName=mythconverg
good crash (is that possible?)
now it probably crashes (which is OK at this point) with :
C:\mythtv\mythtv\run>mythfrontend.exe 2007-12-28 15:33:38.968 Using runtime prefix = C:/msys/1.0 2007-12-28 15:33:39.000 QMulticastSocket: setsockopt - IP_ADD_MEMBERSHIP Error 2007-12-28 15:33:39.000 QMulticastSocket: setsockopt - IP_ADD_MEMBERSHIP Error 2007-12-28 15:33:39.015 Empty LocalHostName. 2007-12-28 15:33:39.015 Using localhost value of SILVER QSqlDatabase: QMYSQL3 driver not loaded QSqlDatabase: available drivers: 2007-12-28 15:33:39.015 New DB connection, total: 1 2007-12-28 15:33:39.015 Unable to connect to database! 2007-12-28 15:33:39.015 No error type from QSqlError? Strange... QSqlQuery::exec: database not open QSqlQuery::exec: database not open 2007-12-28 15:33:39.093 DB Error (KickDatabase): Query was: SELECT NULL; No error type from QSqlError? Strange... 2007-12-28 15:33:39.109 QMulticastSocket: setsockopt - IP_ADD_MEMBERSHIP Error
Installing MySQL Server
Next, you need to actually need to have a mysql server running, and configured to accept the username,password, and database that you specified in the mysql.txt!
You can configure your database on a different (eg existing) mysql server/box (like a linux box), but I STRONGLY urge you to NOT to point it to any existing mythty database without taking a backup first, and realising that you will quote probably break any other mythtv install connected to that database (due to the schema differences in different versions )!
MySQL Community Edition Server - optional (but you need a mysql server of some sort!)
site: http://dev.mysql.com/
direct download (almost): http://dev.mysql.com/downloads/mysql/5.0.html#win32 (then click "Windows ZIP/Setup.EXE")
Download the installer Run it. Follow the prompts Configure the instance (if it doesn't start at the end of the install, go to Start->All Programs->MySQL->MySQL Server 5.0->MySQL Server Instance Config Wizard. ) NOTE: The wizard defaults to "Enable Strict Mode." You MUST turn off strict mode for MythTV to work. Be sure to have mysql "Start/Run as a service" Remember the "root password" that you choose.
configuring mysql connection settings in mysql server
Create your new database, username, and password (to match the mysql.txt): (enter a DOS Box)
c:\>cd c:\mysql\bin c:\mysql\bin>mysql -u root -p Enter password: <enter your root mysql password> mysql>create database mythconverg; mysql>GRANT ALL PRIVILEGES ON *.* TO 'mythtv'@'localhost' IDENTIFIED BY 'mythtv' WITH GRANT OPTION; mysql>GRANT ALL PRIVILEGES ON *.* TO 'mythtv'@'%' IDENTIFIED BY 'mythtv' WITH GRANT OPTION; mysql>quit;
database schema auto-upgrades
Next time you run mythfrontend.exe (once it connects to the database correctly) you will get a long list kinda like this (which is great!) :
2007-12-28 22:29:59.343 New DB connection, total: 5 2007-12-28 22:29:59.343 Connected to database 'mythconverg' at host: localhost 2007-12-28 22:29:59.437 Upgrading to schema version 1113 2007-12-28 22:29:59.500 Upgrading to schema version 1114 2007-12-28 22:29:59.609 Upgrading to schema version 1115 2007-12-28 22:30:00.031 Upgrading to schema version 1116 .... etc ...
theme issues/locations
At the end of the database connection/upgrade process you may see the error/message below, which simply means your default mythtv theme's are NOT installed where it expected them to be Problem:
2007-12-28 22:30:34.015 Connected to database 'mythconverg' at host: localhost 2007-12-28 22:30:35.156 Could not find theme: G.A.N.T Couldn't find theme G.A.N.T Error in my_thread_global_end(): 1 threads didn't exit
Solution(workaround really):
Copy the entire themes folder form the source location to the destination location:
mkdir /usr/share/mythtv mkdir /usr/share/mythtv/themes cp -r /c/mythtv/mythtv/themes/* /usr/share/mythtv/themes/
Copy all the XML menus etc to the share folder:
cd /c/mythtv/mythtv find programs/ -name \*.xml | xargs -n1 -i__ cp __ /usr/share/mythtv
Try running mythtv-setup.exe,mythbackend.exe,mythfrontend.exe and see what you can get to go, and what crashes!
Congratulations on getting this far!
TIP: If you don't want Myth to take up your full screen you can specify --gemoetry WxH
Here are some typical 4:3 window sizes:
mythfrontend --geometry 800x600 mythfrontend --geometry 1024x768 mythfrontend --geometry 1200x900 mythfrontend --geometry 1600x1200
Typical 16:9 window sizes:
mythfrontend --geometry 800x450 mythfrontend --geometry 1024x576 mythfrontend --geometry 1200x675 mythfrontend --geometry 1280x720
Problems others have encountered
During dependencies compile processes
SDL - libtool cannot build libtool library libSDL.la
SDL - Buzz is currently unable to build SDL because of this error:
/bin/sh ./libtool --mode=link gcc -o build/libSDL.la build/SDL.lo build/SDL_error.lo build/SDL_fatal.lo build/SDL_audio.lo build/SDL_audiocvt.lo build/SDL_audiodev.lo build/SDL_mixer.lo build/SDL_mixer_MMX.lo build/SDL_mixer_MMX_VC.lo build/SDL_mixer_m68k.lo build/SDL_wave.lo build/SDL_cdrom.lo build/SDL_cpuinfo.lo build/SDL_active.lo build/SDL_events.lo build/SDL_expose.lo build/SDL_keyboard.lo build/SDL_mouse.lo build/SDL_quit.lo build/SDL_resize.lo build/SDL_rwops.lo build/SDL_getenv.lo build/SDL_iconv.lo build/SDL_malloc.lo build/SDL_qsort.lo build/SDL_stdlib.lo build/SDL_string.lo build/SDL_thread.lo build/SDL_timer.lo build/SDL_RLEaccel.lo build/SDL_blit.lo build/SDL_blit_0.lo build/SDL_blit_1.lo build/SDL_blit_A.lo build/SDL_blit_N.lo build/SDL_bmp.lo build/SDL_cursor.lo build/SDL_gamma.lo build/SDL_pixels.lo build/SDL_stretch.lo build/SDL_surface.lo build/SDL_video.lo build/SDL_yuv.lo build/SDL_yuv_mmx.lo build/SDL_yuv_sw.lo build/SDL_joystick.lo build/SDL_nullevents.lo build/SDL_nullmouse.lo build/SDL_nullvideo.lo build/SDL_diskaudio.lo build/SDL_dummyaudio.lo build/SDL_sysevents.lo build/SDL_sysmouse.lo build/SDL_syswm.lo build/SDL_wingl.lo build/SDL_dibevents.lo build/SDL_dibvideo.lo build/SDL_dibaudio.lo build/SDL_mmjoystick.lo build/SDL_syscdrom.lo build/SDL_sysmutex.lo build/SDL_syssem.lo build/SDL_systhread.lo build/SDL_syscond.lo build/SDL_systimer.lo build/SDL_sysloadso.lo build/version.o -lm -luser32 -lgdi32 -lwinmm -no-undefined -rpath /usr/lib -release 1.2 -version-info 11:1:11 libtool: link: cannot build libtool library `build/libSDL.la' from non-libtool objects on this host: build/version.o make: *** [build/libSDL.la] Error 1
Solution: In bash, cd to "/sources/SDL-1.2.13", enter the command:
./libtool --tag=RC --mode=compile windres src/main/win32/version.rc -o build/version.o
then edit Makefile and change "$(objects)/version.o" to "$(objects)/version.lo"
libvisual - too many arguments to function 'sched_setscheduler'
libvisual - Jay is currently unable to build libvisual due to this error:
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../libvisual -I.. -I../libvisual -DPLUG PATH=\"/usr/lib/libvisual-0.4\" -g -O2 -mwindows -MT lv_os.lo -MD -MP -MF .deps/ lv_os.Tpo -c lv_os.c -DDLL_EXPORT -DPIC -o .libs/lv_os.o lv_os.c: In function 'visual_os_scheduler_realtime_start': lv_os.c:62: error: too many arguments to function 'sched_setscheduler' lv_os.c: In function 'visual_os_scheduler_realtime_stop': lv_os.c:80: error: too many arguments to function 'sched_setscheduler' make[2]: *** [lv_os.lo] Error 1 make[2]: Leaving directory `/home/Jay/libvisual-0.4.0/libvisual' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/Jay/libvisual-0.4.0' make: *** [all] Error 2
Solution: The first of what may be several changes before it works:
At line 62 and 80 in libvisual-0.4.0/libvisual/lv_os.c remove the third parameter, ", &attr"
They should read thus:
62: ret = sched_setscheduler (getpid (), SCHED_FIFO);
80: ret = sched_setscheduler (getpid (), SCHED_OTHER);
There are still other problems:
Creating library file: .libs/libvisual-0.4.dll.a .libs/lv_os.o: In function `visual_os_scheduler_realtime_start': C:/msys/1.0/sources/libvisual-0.4.0/libvisual/lv_os.c:63: undefined reference to `_imp__sched_setscheduler' .libs/lv_os.o: In function `visual_os_scheduler_realtime_stop': C:/msys/1.0/sources/libvisual-0.4.0/libvisual/lv_os.c:82: undefined reference to `_imp__sched_setscheduler' .libs/lv_os.o: In function `visual_os_scheduler_yield': C:/msys/1.0/sources/libvisual-0.4.0/libvisual/lv_os.c:96: undefined reference to `_imp__sched_yield' collect2: ld returned 1 exit status make[2]: *** [libvisual-0.4.la] Error 1 make[2]: Leaving directory `/sources/libvisual-0.4.0/libvisual' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/sources/libvisual-0.4.0' make: *** [all] Error 2
Solution: Add "-lpthread" to the LIBS line in "libvisual-0.4.0/libvisual/Makefile"
freetype - syntax error in stdlib.h
Should you get the following error while compiling freetype
In file included from C:/MSys/1.0/sources/freetype-2.3.5/include/freetype/config/ftstdlib.h:123, from ./builds/unix/ftconfig.h:43, from C:/MSys/1.0/sources/freetype-2.3.5/src/base/ftsystem.c:29: c:/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/stdlib.h:317: error: syntax error before "double" make: *** [/sources/freetype-2.3.5/objs/ftsystem.lo] Error 1
make the following changes in line 317 of the file C:\MinGW\include\stdlib.h (change inline to __inline__):
__inline__ double __cdecl __MINGW_NOTHROW strtod (const char* __restrict__ __nptr, char** __restrict__ __endptr)
After the changes just start the MythInstaller.bat script again and compilation should work.
During QT compile process
QT compile failed it could not find mysql.h
Solution: In mysql.h, there are lines that start with something like "MinGW supports unix API" - make sure you comment or remove them or you will be getting segfaults because the functions will be declared as stdcall when they are cdecl (or something close to it) - Andrei
Andrei - I can't find this information - could you please dig out your mysql.h and provide further details -- Richard Dale
There is no supplied libmysql.a
There are some issues with the mysql package in that there is no supplied libmysql.a
Comments/Solution: You don't need libmysql.a, gcc can link directly against libmysql.dll - Simon Kenyon (Actually, I asked the question; Andre provided the answer)
Alternate solution: In the steps above libmysql.a is created.
QT issue: Are you saying that i don't need to do any of this reimp/dlltool nonsense?
Comments/Solution: Yes, that's what I'm saying. I had more problems with the import libraries than without them. One of the changes I made to qmake's mkspec is to stop generating them. - Andrei ( I think Andrei was refering to the QT patch on Ticket #4270 ?? - Buzz)
uic.exe cannot be found
During QT compilation uic.exe cannot be found, with the following error message:
mingw32-make[3]: Entering directory `C:/mythfiles/qt-3.3/tools/assistant' c:\mythfiles\qt-3.3/bin/uic.exe finddialog.ui -o finddialog.h process_begin: CreateProcess(NULL, c:\mythfiles\qt-3.3/bin/uic.exe finddialog.ui -o finddialog.h, ...) failed. make (e=2): The system cannot find the file specified. mingw32-make[3]: *** [finddialog.h] Error 2
Solution: This might have been caused by the original configure.bat being interrupted. Compile the uic.exe with:
cd tools\designer\uic qmake uic.pro mingw32-make
then resume your original compilation of QT:
cd ..\..\.. mingw32-make
Linguist/Tutorial Makefile not found
During QT compilation, the process is halted due to a Makefile not existing with the following error:
mingw32-make[4]: Entering directory `C:/mythfiles/qt-3.3/tools/linguist/tutorial' mingw32-make[4]: Makefile: No such file or directory mingw32-make[4]: *** No rule to make target `Makefile'. Stop.
Solution: Create a dummy Makefile in the folder than doesn't have one with the following commands.
cd tools\linguist\tutorial notepad Makefile.
Inside notepad add a single line that reads:
Save the Makefile
cd ..\..\.. mingw32-make
qsound_win.moc not found
I'm getting the following error
g++ -c -mthreads -w -O2 -fexceptions -frtti -DQT_SHARED -DQT_THREAD_SUPPORT -DQT _ACCESSIBILITY_SUPPORT -DQT_TABLET_SUPPORT -DQT_NO_DEBUG -DUNICODE -DQT_MAKEDLL -DQT_THREAD_SUPPORT -DQT_NO_CUPS -DQT_NO_NIS -DQT_NO_STYLE_MAC -DQT_NO_STYLE_AQU A -DQT_NO_STYLE_WINDOWSXP -DQT_NO_STYLE_POCKETPC -DQT_DLL -DQT_MAKEDLL -I"tmp" - I"3rdparty/libmng" -I"3rdparty/libjpeg" -I"3rdparty/libpng" -I"3rdparty/zlib" -I "C:\msys\1.0\qt/include" -I"tmp/moc/release-shared-mt/" -I"C:/msys/1.0/qt/mkspec s/win32-g++" -o tmp/obj/release-shared-mt/qsound_win.o kernel/qsound_win.cpp kernel/qsound_win.cpp:194:26: error: qsound_win.moc: No such file or directory mingw32-make[2]: *** [tmp/obj/release-shared-mt/qsound_win.o] Error 1 mingw32-make[2]: Leaving directory `C:/msys/1.0/qt/src' mingw32-make[1]: *** [sub-src] Error 2 mingw32-make[1]: Leaving directory `C:/msys/1.0/qt' mingw32-make: *** [init] Error 2 C:\msys\1.0\qt>
Anyone know what to do to fix this? -- Simon Kenyon
Comments/Solution: I'm not sure why this happens as I had one install of msys work fine and then same error as you. In the end I had to cd into /msys/qt-3/src and edit the Makefile and add -I"c:/msys/qt-3/src/tmp/moc/release-shared-mt" on the INCPATH line (I have the qt-3 src at c:/msys).
This isn't working because during compiling process script writes new Makefile over the last one. I managed to get rid of this error by editing file C:\MSys\1.0\qt-3.3.x-p8\qmake\generators\win32\mingw_make.cpp: Replace section:
inc.replace(QRegExp("\\\\$"), "");
inc.replace(QRegExp("\""), "");
t << " -I" << "\"" << inc << "\"";
inc.replace(QRegExp("\\\\$"), "");
inc.replace(QRegExp("\""), "");
inc.replace( QRegExp("/$"), "" );
t << " -I" << "\"" << inc << "\"";
and then trailing slashes of the all include switces are removed and compiling gets forward again. -- Termant
mysql.h: required patch
QT compilation dies when getting to mysql.h / mysql_com.h include files with errors like:
...mysql_com.h:183: error: `SOCKET' does not name a type
and the worst part, if mysql.h is not patched, stdcall functions will be compiled as cdecl, which will lead to stack corruption and almost immediate segfaults.
Solution option 1 (Andrei): Disable the section in /mingw/include/mysql.h which undefs WIN defines under MinGW so it now reads:
#ifdef 0 //__MINGW32__ /* MINGW implements a UNIX API */ #undef WIN #undef _WIN #undef _WIN32 #undef _WIN64 #undef __WIN__ #endif
If you don't have a __MINGW32__ section in your mysql.h file, only a __CYGWIN__ section that looks otherwise similar, then Andrei says:
In your mysql.h file, I think you should change this:
#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__)
To this:
#if (defined(_WIN32) || defined(_WIN64) || defined(__MINGW32__)) && !defined(__WIN__)
The important thing is that
#define STDCALL __stdcall
Should be there, otherwise everything seems to compile properly, but doesn't work (stdcall functions are called as cdecl, stack pointer does not get restored, you get almost immediate segfaults after a couple of mysql function calls, but not immediately in the mysql call itself). I spent hours trying to figure this out. I think this was also a problem of earlier Cygwin build attempts.
We also need to disable the section in /mingw/include/mysql.h that disables winsock.h so it's always included.
ie Comment out (insert //) in the two lines (one in front and 1 after) "#include <winsock.h> in /mingw/include/mysql.h so it now reads:
//#ifdef __LCC__ #include <winsock.h> /* For windows */ + #ifdef 0 //__MINGW32__ /* MINGW implements a UNIX API */ //#endif
uic.exe unable to find libqt-mt3.dll
For whatever reason, during the build of qt I had a problem with uic.exe not being able to find libqt-mt3.dll.
Solution: Nasty hack:
copy %QTDIR%\lib to C:\WINDOWS\system32
My QT build (or I might have done it) seems to copy it into %QTDIR\bin --zack
Undefined references to mysql_errno
I get undefined references when trying to compile QT:
obj/qsql_mysql.o:qsql_mysql.cpp:(.text+0x45): undefined reference to `mysql_errno@4' obj/qsql_mysql.o:qsql_mysql.cpp:(.text+0x58): undefined reference to `mysql_error@4' obj/qsql_mysql.o:qsql_mysql.cpp:(.text+0x33a): undefined reference to `mysql_free_result@4' obj/qsql_mysql.o:qsql_mysql.cpp:(.text+0x3b9): undefined reference to `mysql_data_seek@12'
Solution: This should be fixed by the mysql.h patch above and the proposed solution should not be needed! Looks like it can't find the mysql library (libmysql.a). Follow the steps precisely in the MySQL section above (particularly the reimp section) to create libmysql.a
ld.exe cannot find library -lmysql.lib
Solution: Looks like the qt patch (I used the combined patch) is missing a change to the qt-3.3.x-p8/plugins/src/sqldrivers/mysql/mysql.pro file for removing the .lib from the library links. I just edited the Makefile manually and changed -lmysql.lib to -lmysql --zack
During MythTV compile process
pr command not found
./configure: line 245: pr: command not found
Solution: The 'pr' command is missing from your mingw install, installing "additional components" into your MSYS install will fix this (see earlier steps above for hints). The additional component is "coreutils".
ERROR! You must have FreeType installed to compile MythTV
I have compiled all of the dependencies and such but when I go to run the configure script for myth I get:
"ERROR! You must have FreeType installed to compile MythTV."
Have you installed freetype with "make install"? Do you have libfreetype-6.dll in your mingw bin directory and freetype2/freetype in your include directory?
I installed the libraries directly to the mingw installation: "./configure --prefix=/mingw && make && make install" - zack
Comment: I have confirmed the problem named above occurs when you use "--prefix=/usr", and Zacks solution fixes it. no idea why though, as my LD_LIBRARY_PATH specify both. - Buzz.
Linker complains about not finding libs=
When compiling mythtv the linker complains about not finding libs.
Solution: You either haven't installed the prerequisite libraries or you haven't set the LD_LIBRARY_PATH environment variable
dsound.h not found
In file included from audiooutput.cpp:13: audiooutputdx.h:9:39: dsound.h: No such file or directory audiooutputdx.h:34:2: warning: #warning Several methods in AudioOutputDX need to be implemented... In file included from audiooutput.cpp:13: audiooutputdx.h:60: error: `LPDIRECTSOUND' does not name a type audiooutputdx.h:61: error: `LPDIRECTSOUNDBUFFER' does not name a type audiooutputdx.h:64: error: `LPDIRECTSOUNDNOTIFY' does not name a type audiooutputdx.h:65: error: `DSBPOSITIONNOTIFY' does not name a type make[2]: *** [audiooutput.o] Error 1 make[2]: Leaving directory `/c/mythtv/mythtv/libs/libmyth' make[1]: *** [sub-libmyth] Error 2 make[1]: Leaving directory `/c/mythtv/mythtv/libs' make: *** [sub-libs] Error 2
Solution: You don't have the "directX header files" - please install these as per the above!
Mythtv installation errors on cp command
Problem: Mythtv installation errors on the cp command.
Solution: Alter the Makefiles (at least mythtv/themes/Makefile) at COPY_DIR to:
COPY_DIR = cp -rf
Mythtv cannot find libqt-mt
Mythtv compilation fails with something like can't find libqt-mt.
Solution: you missed the step about copying the dll to a different name above:
cd $QTDIR/lib copy libqt-mt3.dll libqt-mt.dll
Compile warnings on redclared with dllimport attribute
During mythtv make, various warnings about:
c:/qt/3.3.x-p8/include/qpixmap.h:249: warning: 'void bitBlt(QPaintDevice*, int, int, const QPaintDevice*, int, int, int, int, Qt::RasterOp, bool)' redeclared without dllimport attribute after being referenced with dllimport linkage
Anyone know what to do to fix this? -- Arnon
Solution: ??none known??
Comment: I get these also but the build completes okay. --zack
Kerneldeint storage size of tv isn't known
Problem - during compile of filter_kerneldeint.c the following error appears (as of SVN 15244):
filter_kerneldeint.c: In function `KernelDeint': filter_kerneldeint.c:265: error: storage size of 'tv' isn't known
This problem has been resolved in SVN as of 15245. Perform an SVN Update to bring your source code up-to-date.
no such file or directory config/config.pro
build and/or 'make install' cant find config.pro
Create it as an empty file:
touch /c/mythtv/mythtv/config/config.pro
during compile of libmyth error about WSAEventSelect not found
Solution: Added -lWs2_32 to the LIBS variable in the libmyth/Makefile --zack
usleep causing compile of 0.21-fixes to fail
c:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/unistd.h:35: error: syntax error before '(' token
Wrong version of MinGW runtime is installed: 0.21-fixes needs MinGW 3.14, trunk needs 3.15+. Reinstall MinGW, making sure to choose "Previous" package when prompted by the MinGW Automated Installer.
Installation of plugins failed
COMMENTS:------------------------------ COMMENTS:PLUGINS! make install COMMENTS:------------------------------ shell:C:\MSys\1.0\bin\bash.exe -c "( export PATH=/bin:/mingw/bin:$PATH;source /C /mythtv/qt3_env.sh;cd /C/mythtv/mythplugins;make install) 2>&1 " cd mythvideo && \ qmake mythvideo.pro -o Makefile "QMAKE=C:/MSys/1.0/qt-3.3.x-p8/bin/qmake" cd mythweather && \ qmake mythweather.pro -o Makefile "QMAKE=C:/MSys/1.0/qt-3.3.x-p8/bin/qmake" cd mythmovies && \ qmake mythmovies.pro -o Makefile "QMAKE=C:/MSys/1.0/qt-3.3.x-p8/bin/qmake" cd cleanup && \ qmake cleanup.pro -o Makefile "QMAKE=C:/MSys/1.0/qt-3.3.x-p8/bin/qmake" Error processing project file: C:/mythtv/mythplugins/cleanup/cleanup.pro make: *** [qmake_all] Error 2 EFFECT FAILED (newer -> shell): mtime of file (C:/mythtv/build/bin/mythtv/plugin s/libmythmovies.dll) should be greater than file (C:/mythtv/mythplugins/mythmovi es/mythmovies/libmythmovies.dll). [0] [1243764913]
At MythTV runtime
Crashes on frontend start up last line is "dont disable oss support unless you're not running on windows"
I was having a problem where I would get a crash with out much explanation. The line above was the last line I would see in the command window. The problem ended up being that my computer name was the same as another computer on the network (that was running the front end from linux). Changing the computer name fixed the issue.
Mythtv dies when starting with a NO SQL drivers message
cd $QTDIR/lib && cp ../plugins/sqldrivers/libqsqlmysql.dll .
If you don't have a dll called plugins/sqldrivers/libqsqlmysql.dll in the plugins/sqldrivers folder of your qt build, then it's possible that your c:\MingW\include\mysql.h file is incorrect (which sometimes allows qt to build, but prevents this specific dll from appearing as it should).
QSocketNotifier never generates signals
During debugging, I found one more bug in QT: QSocketNotifier never generates "signals" for listening sockets, which effectively prevents anything that listens incoming connections (mythbackend and possibly UPNP code in mythfrontend too) from accepting them. - Andrei (was this you?)
??none known??
Mythtv crashes with Unable to connect to database!
2007-12-29 12:17:35.921 Unable to connect to database! 2007-12-29 12:17:35.921 No error type from QSqlError? Strange... 2007-12-29 12:17:35.984 DB Error (KickDatabase): Query was: SELECT NULL; No error type from QSqlError? Strange...
Hack solution: It can't find one or more dlls... One or more of the following might help:
mkdir /c/mingw/bin/sqldrivers cp /c/mingw/lib/libmySQL.dll /c/mingw/bin cp $QTDIR/plugins/sqldrivers/libqsqlmysql.dll /c/mingw/bin/sqldrivers cp $QTDIR/plugins/sqldrivers/libqsqlmysql.dll /c/mingw/bin
Alternate solution for those running from /c/mythtv/mythtv/run/ folder (as per testing section):
mkdir /c/mythtv/mythtv/run/sqldrivers cp $QTDIR/plugins/sqldrivers/libqsqlmysql.dll /c/mythtv/mythtv/run/sqldrivers
Alternate solution. I encountered a problem that my qt make was not creating the appropriate MYSQL drivers.
To test the the QT MYSQL driver, I used the examples/sql/blob program. Change line 16 in main.cpp to read #define DRIVER "QMYSQL3" Run make and blob.exe (from mingw or DOS window) If you get an error about no Drivers found, QT has not built the plugin correctly.
To build the drivers manually: Make sure you have MySQL installation files with the Libs & Include Files Build the plugin as follows (here it is assumed that MySQL is installed in C:\MYSQL): cd %QTDIR%\plugins\src\sqldrivers\mysql qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro mingw32-make Then copy libqsqlmysql.dll to the run directory
Mythfrontend reports could not blit surface
Starts OK but when you try to display video you see:
2007-12-29 12:29:15.828 could not blit surface (error 80004005)
I see this in vmware/windows 2000 when trying to run mythfrontend in there... perhaps it's the virtual video driver not having enough real video features to display -- Richard Dale
Solution: You need a 'real' (as in not VMWare/Virtual PC) hardware videocard with full DirectX 9 support to use Direct3D video output.
Possible solution: DirectX 9.0c Runtime might not be installed (correctly)... download it from http://www.microsoft.com/downloads/details.aspx?familyid=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=en
Workaround: Use "DirectX" video output - it uses overlays and is much less demanding (though still won't work in a virtual machine), but it's not compatible with Vista Aero.
Mythfrontend video is wrong ratio due to portrait screens
Richard Dale reports that video image being display appears to be the wrong ratio. Richard runs two screens in portrait mode side-by-side (for a combined desktop size of 2400x1920, with each screen being 1200x1920 in portrait mode). Platform details: Windows Vista 64, nvidia 7800GTX, nvidia driver pretty recent (don't have this information to hand)
When mythfrontend displays a video, in a 16:9 ratio window (1200x675) or with no window geometry set, it is scaled in a strange way: http://www.premiumdata.net/temp/mythfrontend-strange-scaling.jpg
It's really is quite wonky (off to the right, and bottom chopped off image).
Relevant output from mythfrontend:
2007-12-29 15:06:38.415 Total desktop dim: 2400x1920, with 2 screen[s]. 2007-12-29 15:06:38.433 Connected to database 'mythconverg' at host: 192.168.12.222 2007-12-29 15:06:38.434 Using screen 0, 1200x1920 at 0,0 Unable to ignore SIGPIPE 2007-12-29 15:06:38.554 Overriding GUI, width=1200, height=675 at 0,0
Help appreciated (and it's clear the Indian cricketers need help too!!)
Compile error in libs/libmythsoundtouch/FIRFilter.cpp
Maybe I did something wrong in rebuilding qt, but now I get the following error:
g++ -c -march=i586 -g -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -Wno-non-virtual-dtor -D__STDC_CONSTANT_MACROS -fPIC -DPIC -mthreads -w -fno-exceptions -fno-rtti -DUSING_MINGW -DUSING_WINAUDIO -DUSING_D3D -DUSING_DIRECTX -DUSING_DIRECTX -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr\" -DLIBDIR=\"/usr/lib\" -DQT_THREAD_SUPPORT -I"/usr/include" -I"../../libs/libavcodec" -I"../.." -I"/qt/include" -I"C:/msys/1.0/qt/mkspecs/win32-g++" -o FIRFilter.o FIRFilter.cpp FIRFilter.cpp: In member function 'virtual void FIRFilter::setCoefficients(const soundtouch::SAMPLETYPE*, uint, uint)': FIRFilter.cpp:173: error: exception handling disabled, use -fexceptions to enable
The line in question is:
if (newLength % 8) throw std::runtime_error("FIR filter length not divisible by 8");
Vista 64 compatibility during compile
There seems to be some serious GCC/MSYS/MinGW Vista 64 bit edition compatibility issues with respect to most of the initial steps failing under Vista 64. Could anyone trying out this environment please post how they were able to workaround each step to achieve compile?
Further info regarding MinGW-64: https://sourceforge.net/project/showfiles.php?group_id=202880
0.21-fixes crashes at startup
If mysql.txt cannot be found, 0.21-fixes frontend may crash due to a bug in UPnP. Create a mysql.txt and place it in your appdata directory. -- On WinXP: "%APPDATA%\.mythtv" -- On Vista: "%LOCALAPPDATA%\.mythtv"
0.21-fixes and pulseaudio
When running the latest 0.21-fixes, I was getting an error along the lines of 'pulseaudio is running but mythtv was not compiled with pulseaudio support. Exiting' when trying to start mythfrontend even though there is no way I was running pulseaudio on my windows machine. To fix this I edited the file "mythtv/libs/libmyth/util.cpp", then found the function:
bool IsPulseAudioRunning(void)
and added a return 0; to the start of the function, so it always thought pulseaudio wasn't running:
bool IsPulseAudioRunning(void) { return 0; #if defined(CONFIG_DARWIN) || (__FreeBSD__) || defined(__OpenBSD__) ...
then I recompiled and mythfrontend started fine.


text:
Get your ad on Google today.
Be seen by customers at the very moment that they're searching on Google for the things you offer. And only pay when they click to visit your website or call.
Call to get set up by our Google Ads Specialists: 1800 988 571*
Why Google Ads?
Attract more customers.
Whether you're looking to bring in new website visitors, grow online sales, get the phones ringing or keep customers coming back for more, Google Ads can help.
Reach the right people at the right time.
Your business gets found by people on Google precisely when they're searching for the things that you offer.
Advertise locally or globally.
Target your ads to customers in certain countries, regions or cities – or within a set distance from your business or shop.
If you need us, we're here.
Google Ads lets you manage your campaign by yourself, or call us for free phone support at 1800 988 571*
You only pay for results.
No visit, no fee.
Signing up for Google Ads is free. You only pay when someone clicks your ad to visit your website, or calls you. In other words, when your advertising is working.
Start with any budget.
You set your own budget, so your costs will depend on what you are trying to accomplish with your advertising. Some businesses spend tens of thousands of dollars a month, and others are comfortable investing several hundred.
Get started
Sign yourself up today.
Just create an account, set your budget, write your first ad and decide where you would like it to appear. You can always fine-tune it later on.
We're here to help – call today for account set-up & support from Google.
Our dedicated team of Google Ads Specialists will work with you to make sure your Google Ads account is set up for success, at no extra cost. They'll even build your campaign.
The first 30 days are important to learn what works for you and what doesn't, we'll guide you through each step.
* For customers committing to $10 per day or more in ad budget. Phone support operating hours are Mon-Fri, 9am-9pm ET 1-855-252-4142

subset: commoncrawl


text:
Avail a Plus 20% OFF on Everything By Using Code "SPRING20"
Product SKU: JK000367-MSS-319ZONE-Charcoal-L
Made in loveable material these are must for any wardrobe this season. Features Polyester material - Brave Soul Zone - Hooded - Long Sleeve - Sherpa Lined Sweatshirt. Treat your customer to this wardrobe essential by restocking today.
*All measurements are approximate.
*All Pictures and colours may vary slightly due to lighting effects in studio. Any jewellery/accessories is not included on the sale.
Please view styleguide chart for details.
• Place your order during the weekday, to ensure next day delivery.
• All orders will be processed the following day, if placed over the weekend or during late afternoons.
• You will be offered an alternative, in case of unavailability of any item.
• For more shipping information, visit Delivery Information Page.


text:
still Thursday already Friday somewhere in the world! Thank God.
I may or may not have been blasting some Rebecca Black as I started a new page for this post.
One of the best parts of having an entire two-room bedroom apartment to yourself is that anything goes the moment your pinky toe crosses that blessed threshold.
Rocking out to One Direction and Carly Rae Jepsen into the weest of the wee hours? Of course.
Staying up all night at Disney movie marathon sleepovers that would make fifth-grade girls emerald with envy? Uh, yeah.
Dunking your entire hand into the bowl of cake batter instead of reaching for a mixing spoon because it's in a drawer that's ten whole feet away from you? Now we're talking, my friend.
Lounging on your couch like a boss on a Thursday night in nothing but what your momma gave you and with a glass of pinot noir in your well-manicured hand?
Okay, I haven't tried that last one. Yet. Apparently maintenance has the key to every apartment in this building, meaning they are allowed to come in without so much as a "hello resident-on-whose-territory-we-are-totally-intruding, you should really put your fig leaves over whatever you don't want exposed to these eyes."
Of course, by the time I'm finished with this kamikaze quarter of teaching, coursework, and having a social life the size of a pea, I may just throw in (or rather, away) the towel, grab my fig leaves, and start lounging to my heart's content. With my pinot noir. For which I will accordingly acquire a refined taste that I currently don't possess.
As with most things that don't involve legal persecution or intense self-reevaluation of my worth as a human being, I grossly exaggerate here. My social life has actually been moving along quite swimmingly as of late, thank you very much.
I can't go into any details about it, though
They might be
watching reading.
By "they," I mean the incredibly attractive young men working as incredibly successful entrepreneurs at an incredibly well-established corporation that still manages to hang onto its good ol' homey American values.
You know, the ones currently residing in…my head.
Or Storybrook, to be more precise.
Yeah, I've started watching Once Upon a Time.
It kind of sucks…
…that my life has been summarily sucked up by it.
You know what else sucks?
Not these cupcakes.
We whipped up a batch of these for one of the guys in our department celebrating his birthday this week. If you like a) the idea of a steaming mug of hot chocolate dipped into your morning wake-up call with a hint of autumnal flair, or b) being awesome, you need to try these cupcakes.
(These filled cupcakes were made for Julie's baking challenge over at Willow Bird Baking–she's a fantastic gal, so this is something else you should definitely check out if you like, again, being awesome.)


text:
Thursday, January 12, 2012
Incubus of Viral Plague
I hope to be back to blogging and answering your comments/e-mails/tweets very soon!
39 comments:
Oh, that is the worst. Hope you are all better soon.ReplyDelete
Totally understand. It's miserable. Feel better soon!ReplyDelete
Oh, I hope you feel better soon. That's no fun at all!ReplyDelete
- AlaskapsychJanuary 12, 2012 at 10:50 PM
Hope you feel better soon. I know and love that line from Prada! When I got my Prada glasses, my daughter (ever supportive) said, it's true, mom! I said what's true? She replied, The Devil really does wear Prada!ReplyDelete
Don't really care for the stomach flu diet.ReplyDelete
I hope you feel better soon!
Get well soon Gertie! I got a bug a few months ago from our canteen lady. (I know I hate the thought of it now!) I felt exactly the same way like I was never going to enjoy a proper meal again. A couple of weeks after getting better I got stomach ache because I was so stressed but I was convinced I was ill again and cried on the phone to my mum wailing "but I don't want to be sick again!". Corr I am daft!ReplyDelete
Hang in there honey. You'll outlive this. ;-)ReplyDelete
- AnonymousJanuary 13, 2012 at 4:56 AM
Really hope you feel better soon. You've had a lot on your plate for a while now, so I guess your body was going to force you to stop at some point. I'm sure Jeff is doing a grand job of looking after you.ReplyDelete
Oh no! Poor lamb. Well I hope you're not surviving on a cube of cheese when you feel faint.ReplyDelete
I've been thinking about that same quote this week, while also feeling like I'll never be normal again thanks to a stomach bug. I'm glad I'm not the only one, but sorry for your misery.ReplyDelete
Oh my word, you and me both, I've been sick since the start of the year, I hate it. I just can't wait to feel better.ReplyDelete
I <3 DWP, and you. Feel better!ReplyDelete
Get well soon! Already looking forward to your new Craftsy course!ReplyDelete
Hope you feel better. I never realized how great water tastes until I went without during my last stomach flu.ReplyDelete
I'm so sorry to hear that, I hate feeling that way. Do get better soon.ReplyDelete
I hope you feel better soon--take it easy!ReplyDelete
(At my Weight Watchers meeting a couple months ago, one woman's weekly "success" was that she'd lost x number of pounds that week due to stomach flu. She then proceeded to offer to shake the hands of anyone who wanted the benefit of the flu in anticipation of next week's weigh-in. Uh, thanks but no thanks.)
That is one of my favorite lines from DWP. Much more entertaining if you don't actually HAVE the stomach flu...Feel better soon!ReplyDelete
Oh honey I really hope you feel better soon! Cuddle down under the duvet and watch some movies! XxxX http://thesecondhandrose.blogspot.com/ReplyDelete
Sad times, I hope you get better and back at your machine very soon.ReplyDelete
So sorry. That's the worst. Take good care of yourself. Look forward to your posts all the time.ReplyDelete
Happy to hear you're on the mend!ReplyDelete
Oh Gertie, I am glad your feeling better!ReplyDelete
Take good care of you & the kitty's are helping you I am sure, bless you.ReplyDelete
:'-( Go easy on the food, even if it seems like you want to eat: bananas, rice, applesauce, toast... Of course, chicken soup, when you can tolerate it! Just rest & recover thoroughly. Being sick takes a lt of energy!ReplyDelete
Feel better soon, Gertie!!! :)ReplyDelete
It's my turn this week :(ReplyDelete
Hope you're feeling better soon!
Get better soonReplyDelete
- AnonymousJanuary 14, 2012 at 7:50 PM
Oh no, hope you feel better soon.ReplyDelete
Oh, Gertie, please let us know when your next Craftsy course is online! I have currently undertaken to do a whole sixties Mad men-inspired suit, but I am stuck on the collar. Really want to know when you course airs!!ReplyDelete
Thank you (and hope you are feeling much better!!)
Poor Gretchen!! Hope you feel better soon.ReplyDelete
Awwww! Feel better! I'm sending you healing energy!!ReplyDelete
hi Gertie!ReplyDelete
I hope you don't mind that I've made reference to your blog in mine.
I hope you feel better very soon.ReplyDelete
Wow, it looks like it's been going on for a while! I hope you are OK.ReplyDelete
- AlaskapsychJanuary 17, 2012 at 2:53 PM
Hope you are better soon. Take care, CReplyDelete
Hoping that you are feeling better, super loving your blog. Have I mentioned that I am obsessing about gussets? I want to sew a project just so that I can make them, lol.ReplyDelete
Hope you are better soon!ReplyDelete
Verry nice blog here! I really enjoyed reading it so much that I bookmarked this on digg! I wish you continued success!ReplyDelete
clothes distributors


text:
Wednesday, November 5, 2008
Retrospective: White Dwarf
White Dwarf and I have a strange relationship. I knew of the existence of the magazine quite early in my gaming career, having seen Gary Gygax's mention of it in the AD&D Dungeon Masters Guide. Likewise, some of the older guys I hung around with the early days, including my friend Mike's metalhead brother, owned copies of various issues and sometimes used variants or adventures from its pages. For the longest time, I in fact associated WD with metal, a feeling I never quite shook even after I actually started to read the thing for myself. I suspect it had something to do with the style of artwork favored in the magazine, as well as the somewhat more "shocking" content it often featured.
The first issue of WD I ever actually owned was issue 32 from August 1982, which I bought while on vacation somewhere in the southern US, possibly North or South Carolina. It was that magazine that I suspect forever cemented my opinion of both WD and the UK game scene generally: weird but often quite cool. What I liked about the magazine was that it included a goodly dose of D&D, Traveller, and Call of Cthulhu each month, the three RPGs I love most in the world. There was also a strangely high amount of RuneQuest material as well, something that baffled me, given how rarely I ever encountered anyone in the US who played the game. It was years before I realized that it was a huge hit across the Pond, rivalling (and perhaps surpassing) D&D in popularity.
I subscribed to White Dwarf for a period of two years from 1983-1985. It was at that point that Games Workshop started making an effort to infiltrate North America and there was a GW distribution center in Maryland. GW offered a variety of subscription deals that made the magazine very attractive in terms of cost, so I figured I should give it a try. Prior to that point, I'd only ever bought an issue here or an issue there or read old copies from the collections of people I knew. I also subscribed to Dragon at the same time and I know that, comparing the two, I always found WD to be much more uneven in quality than Dragon: its low points were very low but its high points were very often superior to those of its American counterpart.
My lasting impression of White Dwarf, based on the issues I read as a younger man, is that it remained a much more vibrant, amateurish periodical far longer than did Dragon -- and that's a good thing. I'm not one of those people who worships at the altar of WD, because the simple reality is that a lot of its content, indeed most of it, was pretty mediocre. At the same time, it's mediocre in a very genuine way, being the product of fans who simply loved certain games and then decided to submit their crazy ideas to share with the wider community. It's hard to fault a magazine for providing an outlet for that, particularly when some of those crazy ideas simply blew my mind and forever influenced the way I play various games to this day. It makes what WD eventually became -- a house organ for a soulless proto-WotC -- all the more tragic.
I think the hobby could use another White Dwarf right about now. Of course, I think it could probably use a Dragon as well, so what do I know?
36 comments:
I think Kobold Quarterly is getting to be the next White Dwarf/Dragon. I really like this magazine.ReplyDelete
As for WD, you know my feelings on it, I have a nearly complete run of the damn thing. Great mag and I liked it better than Dragon.
For some reason, I have always associated D&D/WH with metal. I am pretty sure it was because everyone I knew who was older than me and involved in the hobby was into metal, including the people who worked in games Workshop.ReplyDelete
Some great observations. I've actually been digging through some WDs from the late 80's / early 90's doing some research on WH40K for a little project I'm working on. While by this point the magazine had firmly shifted to a miniatures-centric content base, there are still lots of great RPG-centered articles (I think most to do with WHFRP, but whatever).ReplyDelete
Today, however, there is no RPG content whatsoever - it's purely a showcase for their miniatures, and while it is a very "pretty" magazine, I agree that it's a shame there's nothing else. Kind of reminds me of when Dragon pretty much wrote off talking about any other RPG but D&D.
my opinion of both WD and the UK game scene generally: weird but often quite cool.ReplyDelete
Yes, that's a pretty accurate assessment of both WD and of us Brits as gamers. ;-)
WD ended up becoming GW's in-house organ around issue #100. It was succeeded by the excellent "Games Master" magazine and then by the (IMO) never-surpassed "Arcane", which ran for about 25 issues of unsullied excellence in the early-mid 90s.
- AnonymousNovember 5, 2008 at 11:57 AM
Kobold Quarterly is a seriously awesome magazine and a worthy successor to the Dragon of old. It's published by Wolfgang Baur, former editor of Dragon in the TSR days.ReplyDelete
Kobold Quarterly is a good magazine, but it doesn't quite feel, to me, like Dragon of old. It's a bit too slick and polished, for one thing, but it's also pretty solidly part of "the industry" rather than "the hobby." I realize that's a purely intangible and subjective thing, but KQ is missing that DIY vibe I want out of a gaming magazine these days.ReplyDelete
Kobold Quarterly is a good magazine, but it doesn't quite feel, to me, like Dragon of old. It's a bit too slick and polished, for one thing...ReplyDelete
Some of this might be due to the fact that publishing is so much more accessible and digital press printing is cheaper/easier for smaller run pubs. It's much easier these days to make something look nice and give it a polished feel than it used to be.
I wasn't speaking so much about its look -- though there's definitely some of that in my comment -- but more about its general "feel." KQ isn't rough around the edges, conceptually, at least not to me. Its content is all very nice, neat, and orderly. I wouldn't say it's boring, because it's not and I've liked a lot of what I've read there, but it's missing a certain insubstantial something that I can't quite explain.ReplyDelete
For the longest time, I in fact associated WD with metalReplyDelete
Little wonder, really, since most of the staff looked like they were in metal bands (and probably were!), the miniatures pages were (and still are?) called 'Eavy Metal, and GW even had their own record label for a while.
because the simple reality is that a lot of its content, indeed most of it, was pretty mediocre
I'd agree with your assessment as far as the first half of the 80's goes, but towards the latter end of the decade, I think the magazine ironed out many of its flaws while retaining that enthusiasm and imagination. For me, Dragon always seemed a bit academic and stuffy, while WD was vibrant and irreverent.
I'm incredibly jealous of that DVD.
the (IMO) never-surpassed "Arcane"
I do rate WD #50-90ish to be better, but Arcane was a good late entry, although it did often seem to have an identity crisis; it seemed rather hung up on not alienating fans of a particular game, instead of going for the WD approach of chucking a broad range of stuff in there, and if it didn't fit in with your Skyrealms of Jorune campaign, either ignore it or convert it so it did fit.
"Weird but cool" also sums up my opinion of most of the British fantasy fiction scene from the late 1960s and the 1970s. I attribute this simularity in gaming to apples falling from trees.ReplyDelete
Oh, and for me one of the best things about White Dwarf was that it was very good to Call of Cthulhu, publishing a long line of scenarios running from very good to excellent, as well one of the system's best sourcebooks in Green and Pleasant Land.ReplyDelete
I may be wrong, but I think that the last non-WFRP article published in the magazine was a scenario for CoC, and a very good one at that, in #99.
You might say that it's no surprise, since GW were publishing a licensed edition of CoC themselves at the time, but the support was nonetheless of high quality.
Non-WFRP rpg article, obviously. The magazine didn't become completely devoid of content until about #200. ;)ReplyDelete
White Dwarf was the only gaming 'zine I had a subscription to, for quite a long time - pretty much from WD#30-something through WD#92. I stopped after that, because Games Workshop had decided to turn it into a "house organ" which was fine, but not to my taste or interest.ReplyDelete
The graphics were almost always far superior to the rather uninspired layout of The Dragon, and the adventures were almost always a blast to read as well as to play. Combine that with the great Traveller stuff by Andy Slack, Bob McWilliams and others, and it was a really solid 'zine for a long time.
(Now I just gotta go dig up one of those WD CD-ROMs....)
"I'm not one of those people who worships at the altar of WD, because the simple reality is that a lot of its content, indeed most of it, was pretty mediocre."ReplyDelete
Really? This is one of the places where we part company, James. Maybe I'm reading this old 'zine through rose-colored glasses, but I thought most of the stuff in WD was creative, and if it needed work, a little kitbashing did the trick. Your mileage obviously varies. ;)
Yeah, like the versions of D&D (and other games I guess) the White Dwarf Magazine now bears little resemblance to what it was when it started. That's a real bummer too because it used to have a lot of great, varied material and now it's largely a glorified GW Catalog.ReplyDelete
I liked the gaming material in WD, weird or not. The old Dragon magazine was good too. I haven't found anything to really take their place.
I'd love to see a gaming magazine that is broad, varied, mixed homebrew/ alternate kludgy rules, neat new monster ideas and treasures. I DO like polished looking products, but I also like hobbyist magazines over predominantly industry driven material.
Hey, why don't we create something like that?
While I appreciate and respect the efforts of Kobold Quarterly, it has absolutely nothing for me. It comes from the world that sees all gaming as D&D. There is nothing for any genre other than D&D based high fantasy and there is a lot of emphasis still on 3rd edition in particular.ReplyDelete
I don't consider that a gaming magazine but rather a magazine devoted to a specific product.
Knights of the Dinner Table magazine has a much wider range, though it still tends to skew towards Hackmaster products.
- AnonymousNovember 5, 2008 at 3:08 PM
Currently, Fight On! is my favorite gaming magazine.ReplyDelete
Okay, I've been seriously looking at this since I read this earlier today and I think the option of making a magazine to fill this void is entirely doable.ReplyDelete
Completely non-biased as far as a favorite game system, game company/ publisher. Post articles on D&D 4E, S&W, WoD/ OWoD, CoC, Delta Green, DitV, all articles from the hobbyists interested in those games. Additional monsters, treasure, game tweaks, reviews, GMing advice or things learned. All the kinds of crap that should be in a magazine for gamers...without the publisher bias, or bloat that comes from magazines becoming glorified catalogues.
I think people would dig it, and getting folks to write reviews or articles would be fairly easy as the hobbyist is the focus. Cool bits on upcoming releases for everything. Not just WotC stuff or WW stuff, or Indie stuff...but EVERYTHING RPG related, Old School or not.
Is this an unreasonable idea?
I was never a huge WD fan: I usually liked 1-2 articles per issue, at most (I wasn't playing CoC at the time, and I've still never played Traveller or RQ). I really liked "The Dungeon Architect" and the Griselda fiction, but in general, I only found 1 worthwhile piece per issue, and way too many ads.ReplyDelete
That's my major impression of WD, actually: more ads than content, despite some top-notch articles, fiction, and adventures being published between its covers.
When I bought the WD archive, my impression was solidified, though somewhat softened, since I certainly have use for the CoC and RQ materials now, and perhaps even Traveller one day.
Maybe it's just that during that time of my life I had a lot of time to pour over magazines, reading and re-reading, and re-reading, but Dungeon Architect articles not withstanding, I really prefer White Dwarf issues BEFORE 20.ReplyDelete
Re-reading some of the really early issues is fascinating stuff at the end of the age spectrum I now find myself at:
The MonsterMark system (an attempt to create a CR system)
A review of the new game "Traveller" from a D&D-centric view point
And other gems...
I loved the older incarnations of WD. As a previous poster mentioned, zines like Fight On! still keep that spirit alive. There are also options like Alarums and Excursions, too. Heck, there's even my Iridia zine that seeks to keep that print fanzine spirit alive.ReplyDelete
I teach copyright law in the UK as a senior lecturer. I also have read White Dwarf's 1980s contract for contributors, when I submitted some stuff to them.ReplyDelete
By the contract, contributors retained copyright in their contributions. The contract licensed White Dwarf to reproduce the contribution only twice - once in White Dwarf, and allowing for 1 reprint in eg 'Best of White Dwarf'.
Thus the CD, electronic and involving countless reproductions, is clearly in breach of numerous copyrights. This is equally true in Australia, also a signatory to the Berne copyright convention.
Hey, s'mon---ReplyDelete
I've been trying to get some confirmable info on reprint rights for some WD material for awhile now, and your contract info sounds like a good lead. Canyou please email me at email@example.com?
If you're looking for some of the old writers/contributors to White Dwarf, some of them turn up every year for the UK Battlemasters / Continuum Convention in Leicester. It's nice to put faces to those names!ReplyDelete
Despite the D&D slant, which makes it not of much use to me, I like the spirit of Fight On! a lot. It has some of that enthusiasm of the early WD, but it also has similar layout problems, which isn't nearly as acceptable now that DTP has become so easy and accessible. Fight On! would be a truly great magazine if it was tidied up a bit.ReplyDelete
Hi Kelvin -ReplyDelete
My email is firstname.lastname@example.com. I'd be interested in hearing your thoughts on improving our layout if you have some time. I don't even know what DTP is.
I feel that our layout could be better in some ways; on the other hand, I, and I think I am not alone with this, actively dislike layouts that are too busy, as we saw with some 3e and WoD books. But there's always room for improvement and if you think you could help us out we'd love to hear your thoughts.
Thanks for the props, Philotomy! Issue 3 should be to lulu by this weekend.
- Ignatius
Really. :) Don't get me wrong; I love early WD, but I find that most North American gamers tend to look at it the way they might look at British TV; they only remember the superb 10% of it and then pronounce it superior to poor old homegrown counterpart (which was also 90% forgettable).
But it's a taste thing, I'll grant. For my money, when WD was good, it was really good, but it didn't have the same level of consistent lower-level excellence that Dragon generally had.
There is nothing for any genre other than D&D based high fantasy and there is a lot of emphasis still on 3rd edition in particular.ReplyDelete
And that right there is I think the tragedy of our hobby: it's become much too narrowly focused on one style and/or rules set to the detriment of simple good ideas usable in a variety of games and styles. I won't claim the past was some kind of glorious playground of rules-free creativity, but I do think the older games tended to much looser mechanically and thus made it easier to adapt material written for them to other games and styles of play than is true now.
Currently, Fight On! is my favorite gaming magazine.ReplyDelete
Mine as well. It has its flaws, but its virtues far outweigh them and those of anything extant that might even remotely be considered a competitor.
Firstly, bravo: I think you've summed up WD brilliantly, in every particular. I was a regular reader from about #36 to about #120, when I finally let it go (something I should have done by #100, really); then I went on to Pyramid for a while. Runequest was big in the UK, but I don't think it ever overshadowed D&D. Overall, I think the industry landscape was flatter: people played Bushido and Bunnies and Burrows - the big games had to share a very diverse territory.ReplyDelete
too narrowly focused on one style and/or rules set to the detriment of simple good ideas usable in a variety of games and styles.
What appealed to me about these two zines, which Dragon never delivered, was a sense that the material in them could be applied very broadly. I don't know how to express this, exactly - you should be able to file the stats off any bit of gaming material and repurpose it - but somehow the Dragon stuff (generally) seemed more deeply buried in a set of D&D assumptions, and not so open to mix-n-matching with whatever eccentric WW2/Vikings/Flash Gordon game you might be running.
I imagine that CD contains the multi-part adventure, spread over 3 issues, that used 2 parties: one in a CoC investigative setting, the other in (Hyborea or Hyperborea). I wonder if that's worth dusting off?
Ignatius, I will email you a bit later. Bear in mind that I'm no expert in desktop publishing (DTP, which probably isn't the current term), but I think there are some very basic tweaks that can be made to the layout which will greatly improve the overall look of the magazine.ReplyDelete
Richard, as I recall, that crossover adventure used AD&D for the Hyperborean half, which always struck me as odd, since there was a perfectly usable fantasy version of the ruleset in Runequest. Still, it was this sort of oddity which made White Dwarf the magazine it was.
A lot of the writers for early issues of White Dwarf had honed their craft on the early English APAs such as Underworld Oracle and Trollcrusher, to name the two that immediately spring to mind.ReplyDelete
England seemed to have a much richer APA scene at the time than the US (Lee Gold's Alarums & Excursions being the notable exception), and many of the ideas and articles of early White Dwarf were drawn directly from this pool of resources.
"Things Ancient & Modern" - Wasn't Hyberborea, it was the lost continent of The'em-Hydra (sp?), ca 500 million years ago as I recall! :)ReplyDelete
I agree that using D&D rather than Runequest for a very un-D&D-ish swords and sorcery world was kinda odd. Nice scenario, though. I think it might work well with players playing both the modern CoC PCs and the ancient D&D ones, in alternate sessions.
I stand corrected. My fictional ancient geography isn't what it used to be. ;)ReplyDelete
I'm thinking of doing a short CoC along similar lines; five adventures each set in a different era, with common antagonists pulling the stories together. A twist on the traditional global campaign, with the episodes separated by time rather than distance.
Anyway, one of the scenarios I'm thinking of is one set during the advance of the Hyperborean ice, likely using Runequest. It is perhaps unconsciously inspired by that old White Dwarf scenario.
The old WD's are great. sadly they dont make it like that anymore....ReplyDelete
we could use a WD and a Dragon magazine again...your right.
I loved the old White Dwarf. Of course, I had such enthusiasm for role-playing at the time that I used to read everything in it, including articles on games I didn't own. I can recall attempting to puzzle out game mechanics by reading stat blocks and the like.ReplyDelete
But it's more than just nostalgia. I also loved the irreverant style of writing, the reviews and letters, and the miniatures painting advice columns, too. I also have a lot of fond memories for The Castle of Lost Souls, which was a four-part solo adventure game that kept me busy in between sessions of D&D.
If you're interested, here's my own paean to White Dwarf that I wrote a while back on The Silver Key: http://thesilverkey.blogspot.com/2008/02/white-dwarf-remembering-great-old.html