How I built a patched Wine for Netflix
Posted: Sat 04 May 2013, 23:42
EDIT 20130505-1601 (PDT):
01micko has created a PET and an SFS of the patched Wine build for Slacko 5.4 and later down here.
I suggest reading through the complete thread for additional information.
-----------------------
HOWTO (or: Proof-of-Concept at the very least): Build a patched Wine for Netflix - successful in Slacko 5.5 PAE
Hello Puppy people,
Browsing your forums revealed that several folks have been looking for a Puppy version of Erich Hoover's "netflix-desktop" for Ubuntu, and after becoming curious, then obsessed, and suffering through several failed attempts, I've actually managed to get Netflix working in Slacko 5.5. However, I don't have an SFS or PET to distribute, and I'm not certain that it would be functional for everyone if I did. I consider myself a Linux novice (knowing just enough to be a danger to myself ), and I'm a total newbie to Puppy, so I figured a HowTo would be better than stumbling my way through an SFS or PET build I might not be able to troubleshoot when questions came up. Perhaps someone with more experience can take a look at what I've done and do a more solid job of it, or at least point out any mis-steps I may have taken.
Some important base info:
I built and am running the patched version of Wine on a Toshiba Portege M400 (2 GHz Core 2 Duo T7200 / 2 GB RAM / Intel 945GM integrated gfx), running a clean, full install of Slacko 5.5 PAE.
The full install may be the most important thing to note, because Silverlight requires XATTR (extended file attributes) to be enabled on any volumes where it saves or caches information (i.e., the .wine directory which will be created in your home folder, and possibly in /usr/bin/wine although I'm not sure about that). A full install -- in my case, to a single ext4 volume -- allowed me to add "user_xattr" to fstab to ensure it was enabled.
Without XATTR, Netflix throws "N8156-6022" errors when attempting to play video. I don't know enough about Puppy's file systems to tell you if setting this flag in fstab would work for a frugal install, or if you can set XATTR to be included in a targeted SFS build. Can anyone fill in these particular blanks?
As for the patches themselves, I downloaded them from here -- http://www.compholio.com/wine-compholio/#patches -- and it should be noted that the versions I pulled during the week of April 28th worked with the Wine dev 1.5.27 & 1.5.28 builds, but not 1.5.29. If Dr. Hoover's updated them for .29, there's no indication on his site, so I suggest grabbing the 1.5.28 source from http://prdownloads.sourceforge.net/wine ... 28.tar.bz2 and using it instead of pulling from Wine's git repo.
On additional build prep, I installed devx_slacko_5.5.sfs using the "cp -a --remove-destination" method for a full Puppy install, and mpg123-1.14.4 by way of the Puppy Package Manager.
-----------------------
EDIT - 20130505-1517 (PDT):
I originally used a number of PETs gleaned from green_dome's Wine build thread, but was informed by 01micko that they could break Slacko 5.5 (see further down the thread). I've thus trimmed that info out of this post, but still want to thank green_dome for going the extra mile and including all of the info he does in his build announcements. I wouldn't have gotten as far as I did without them.
-----------------------
Build instructions:
Assuming you've...
1. Added "user_xattr" to /etc/fstab and rebooted your machine (for safety's sake - got nervous about running "mount / -o remount" with Puppy's unique filesystem, so I didn't),
2. Installed your devx.sfs and mpg123, and
3. Created a working folder such as "experiments" (used in the examples below) in your home folder, and have downloaded all 5 compholio patches plus wine-1.5.28.tar.bz2 to it
...do the following in your terminal:
At this stage, I'd like to point out that the ./configure step returned the following at the end of its run:
...And this is where my newbie-ness really shows. While the missing or "too old" dev files, or the "prelink not found" warning don't appear to hamper completing the build or stop Wine from running, I wonder if I should have put more effort into filling in these gaps before continuing. Unfortunately, I've had problems finding the appropriate libs and tend to give up in frustration when when my Google-fu fails me. Any advice here would be greatly appreciated.
Regardless, you can continue on with your build.
If all went well, each process will complete without errors and you can install your freshly-built Wine.
Once done, check your install using:
It should return wine-1.5.28.
To get Netflix working:
You need to install the following:
1. The Windows version of Firefox 18.0.2
2. Microsoft's core fonts
3. Silverlight version 4.x
To kick things off, start with the Firefox download and installation. The install portion of the following should also trigger Wine's download/install of Mono & Gecko, which you should allow.
If you choose to launch Firefox at the end of the installation, you can kill a couple of important birds with sequential stones here.
The first -- which is very important for running Netflix successfully -- is to go into your Windows Firefox options and disable automatic updating. If you don't, FF will update itself in the background and eventually install version 20, which will force a "required" installation of Silverlight 5.x through Netflix' service, and SL 5.x will not work in Wine at all. So, go to Tools-> Options-> Advanced, click the "update" tab, select the "Never check for udpates" option, and uncheck "Use a background service to install updates."
Once that's done, you can get the Microsoft core fonts installed right here and now by going to http://www.microsoft.com/en-us/download ... x?id=16083 and downloading their "European Union Expansion Font Update." If you go ahead and run the EXE from within Wine Firefox, working fonts will be installed for your next run of Wine. Hit "Save File" (may as well keep a copy handy if you need it again) and then "Open" in the Firefox download window to run the installer, hit "No" when it asks you to restart Windows, then close your Firefox to terminate your Wine session.
If you don't go with the EU font update, you can install Winetricks and get the MS core fonts that way. However, before grabbing Winetricks, you should search for and install cabextract through the Puppy Package Manager (if you don't have it installed already). Once done, do the following:
Finally, install Silverlight:
Once done, there's a couple of additional steps I recommend before going to Netflix. I suggest you re-launch Firefox at a Silverlight test site to configure the plugin:
When the test starts, it should ask you to if you want to allow DRM-restricted playback, which you should agree to. Once "Elephant's Dream" starts playing, you can right-click on the video, select Silverlight, and set other options, including "Never check for updates" (to keep the dreaded 5.x version further at bay).
Now you can go to Netflix.com, log in, and trying playing the vid of your choice. The very first time you attempt playback, you may be faced with a black screen. Hitting F11 a couple of times to snap Firefox into kiosk mode and back, or resizing your Firefox window should get you picture. If you go into your Netflix settings and drop the video quality down, it should help to avoid this in future runs.
For troubleshooting reference, here's a couple of Netflix errors I ran into and what they mean:
Error Code: 1001 = You don't have MS core fonts installed
Error Code: N8156-6022 = XATTR isn't active on the volume Silverlight's trying to touch. I also got this when trying to build Wine from the 1.5.29 source after applying the Compholio patches.
NOW FOR A BIG OL' CAVEAT:
If you take a look at the picture I attached, you should notice that my cli window is flooded with these messages...
...and that my system load is ridiculously high during Netflix playback, so much so that I wasn't able to get usable screen grabs with PrntScn. I believe that both of these symptoms are the result of X11R7 omissions from my Wine build, but I haven't been able to figure out exactly what X11 libs I'm missing, or should otherwise be doing differently. Again, any help here would be greatly appreciated. It'd be awesome if this patched version of Wine could be used for more than just Netflix (and not murder my CPU cycles in the process), but as I mentioned previously, total newbie here.
01micko has created a PET and an SFS of the patched Wine build for Slacko 5.4 and later down here.
I suggest reading through the complete thread for additional information.
-----------------------
HOWTO (or: Proof-of-Concept at the very least): Build a patched Wine for Netflix - successful in Slacko 5.5 PAE
Hello Puppy people,
Browsing your forums revealed that several folks have been looking for a Puppy version of Erich Hoover's "netflix-desktop" for Ubuntu, and after becoming curious, then obsessed, and suffering through several failed attempts, I've actually managed to get Netflix working in Slacko 5.5. However, I don't have an SFS or PET to distribute, and I'm not certain that it would be functional for everyone if I did. I consider myself a Linux novice (knowing just enough to be a danger to myself ), and I'm a total newbie to Puppy, so I figured a HowTo would be better than stumbling my way through an SFS or PET build I might not be able to troubleshoot when questions came up. Perhaps someone with more experience can take a look at what I've done and do a more solid job of it, or at least point out any mis-steps I may have taken.
Some important base info:
I built and am running the patched version of Wine on a Toshiba Portege M400 (2 GHz Core 2 Duo T7200 / 2 GB RAM / Intel 945GM integrated gfx), running a clean, full install of Slacko 5.5 PAE.
The full install may be the most important thing to note, because Silverlight requires XATTR (extended file attributes) to be enabled on any volumes where it saves or caches information (i.e., the .wine directory which will be created in your home folder, and possibly in /usr/bin/wine although I'm not sure about that). A full install -- in my case, to a single ext4 volume -- allowed me to add "user_xattr" to fstab to ensure it was enabled.
Code: Select all
cat /etc/fstab
/dev/sda1 / ext4 defaults,user_xattr 0 1
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
none /dev/pts devpts gid=2,mode=620 0 0
/dev/fd0 /mnt/floppy auto noauto,rw 0 0
As for the patches themselves, I downloaded them from here -- http://www.compholio.com/wine-compholio/#patches -- and it should be noted that the versions I pulled during the week of April 28th worked with the Wine dev 1.5.27 & 1.5.28 builds, but not 1.5.29. If Dr. Hoover's updated them for .29, there's no indication on his site, so I suggest grabbing the 1.5.28 source from http://prdownloads.sourceforge.net/wine ... 28.tar.bz2 and using it instead of pulling from Wine's git repo.
On additional build prep, I installed devx_slacko_5.5.sfs using the "cp -a --remove-destination" method for a full Puppy install, and mpg123-1.14.4 by way of the Puppy Package Manager.
-----------------------
EDIT - 20130505-1517 (PDT):
I originally used a number of PETs gleaned from green_dome's Wine build thread, but was informed by 01micko that they could break Slacko 5.5 (see further down the thread). I've thus trimmed that info out of this post, but still want to thank green_dome for going the extra mile and including all of the info he does in his build announcements. I wouldn't have gotten as far as I did without them.
-----------------------
Build instructions:
Assuming you've...
1. Added "user_xattr" to /etc/fstab and rebooted your machine (for safety's sake - got nervous about running "mount / -o remount" with Puppy's unique filesystem, so I didn't),
2. Installed your devx.sfs and mpg123, and
3. Created a working folder such as "experiments" (used in the examples below) in your home folder, and have downloaded all 5 compholio patches plus wine-1.5.28.tar.bz2 to it
...do the following in your terminal:
Code: Select all
cd ~/experiments/
tar -xvjf wine-1.5.28.tar.bz2
cd wine-1.5.28
patch -p1 < ../0001-user32-SetTimer-should-respect-the-minimum-and-maxim.patch
patch -p1 < ../0002-ws2_32-Implement-SIO_ADDRESS_LIST_CHANGE-with-Notify.patch
patch -p1 < ../0003-server-Create-directories-with-the-specified-securit.patch
patch -p1 < ../0004-server-Store-and-return-security-attributes-with-ext.patch
patch -p1 < ../0005-ntdll-Inherit-security-attributes-from-parent-direct.patch
autoreconf
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --build=i486-pc-linux-gnu
Code: Select all
configure: libOSMesa development files not found (or too old), OpenGL rendering in bitmaps won't be supported.
configure: OpenCL development files not found, OpenCL won't be supported.
configure: libhal development files not found, no legacy dynamic device support.
configure: libv4l development files not found.
configure: gstreamer-0.10 base plugins development files not found, gstreamer support disabled
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: libcapi20 development files not found, ISDN won't be supported.
configure: libgsm development files not found, gsm 06.10 codec won't be supported.
configure: libopenal development files not found (or too old), OpenAL won't be supported.
configure: WARNING: prelink not found, base address of core dlls won't be set correctly.
Regardless, you can continue on with your build.
Code: Select all
make depend && make
Code: Select all
make install
Code: Select all
wine --version
To get Netflix working:
You need to install the following:
1. The Windows version of Firefox 18.0.2
2. Microsoft's core fonts
3. Silverlight version 4.x
To kick things off, start with the Firefox download and installation. The install portion of the following should also trigger Wine's download/install of Mono & Gecko, which you should allow.
Code: Select all
cd .. # to get you back into your working folder (i.e.,"experiments") instead of downloading to the "wine-1.5.28" folder
wget -O Firefox-18.0.2.exe http://download.mozilla.org/?product=firefox-18.0.2\&os=win\&lang=en-US; wine Firefox-18.0.2.exe /S
The first -- which is very important for running Netflix successfully -- is to go into your Windows Firefox options and disable automatic updating. If you don't, FF will update itself in the background and eventually install version 20, which will force a "required" installation of Silverlight 5.x through Netflix' service, and SL 5.x will not work in Wine at all. So, go to Tools-> Options-> Advanced, click the "update" tab, select the "Never check for udpates" option, and uncheck "Use a background service to install updates."
Once that's done, you can get the Microsoft core fonts installed right here and now by going to http://www.microsoft.com/en-us/download ... x?id=16083 and downloading their "European Union Expansion Font Update." If you go ahead and run the EXE from within Wine Firefox, working fonts will be installed for your next run of Wine. Hit "Save File" (may as well keep a copy handy if you need it again) and then "Open" in the Firefox download window to run the installer, hit "No" when it asks you to restart Windows, then close your Firefox to terminate your Wine session.
If you don't go with the EU font update, you can install Winetricks and get the MS core fonts that way. However, before grabbing Winetricks, you should search for and install cabextract through the Puppy Package Manager (if you don't have it installed already). Once done, do the following:
Code: Select all
wget http://winetricks.org/winetricks
cp winetricks /usr/bin
chmod +x /usr/bin/winetricks
winetricks corefonts
Code: Select all
wget -O Silverlight-4.exe http://silverlight.dlservice.microsoft.com/download/6/A/1/6A13C54D-3F35-4082-977A-27F30ECE0F34/10329.00/runtime/Silverlight.exe; wine Silverlight-4.exe /q
Code: Select all
wine "C:\\Program Files\\Mozilla Firefox\\firefox.exe" http://web.sldrm.video.msn.com
Now you can go to Netflix.com, log in, and trying playing the vid of your choice. The very first time you attempt playback, you may be faced with a black screen. Hitting F11 a couple of times to snap Firefox into kiosk mode and back, or resizing your Firefox window should get you picture. If you go into your Netflix settings and drop the video quality down, it should help to avoid this in future runs.
For troubleshooting reference, here's a couple of Netflix errors I ran into and what they mean:
Error Code: 1001 = You don't have MS core fonts installed
Error Code: N8156-6022 = XATTR isn't active on the volume Silverlight's trying to touch. I also got this when trying to build Wine from the 1.5.29 source after applying the Compholio patches.
NOW FOR A BIG OL' CAVEAT:
If you take a look at the picture I attached, you should notice that my cli window is flooded with these messages...
Code: Select all
fixme:d3d:wine_d3d_swapchain_present Ignoring flags 0x80000000.