fix for Netflix errorr N8156-6022

Bug #1156973 reported by Bobby Powers
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Netflix Desktop
Triaged
Wishlist
Unassigned

Bug Description

Hi Erich,

I'm running Fedora and seem to like doing things the hard way, so I've applied your patches (from https://launchpad.net/~ehoover/+archive/compholio/+files/netflix-desktop_0.6.1~raring.tar.gz , which I assume match the ones listed on http://www.compholio.com/netflix-desktop/ but I didn't verify) to a fresh 1.5.26 git wine tree with the pulseaudio patches:

    https://github.com/bpowers/wine/commits/ah

These patches alone weren't enough to get netflix (firefox 19.0.2 + silverlight 4) working. After a bunch of time attempting to refactor things on my own, I gave up and reverted ADVAPI32's GetNamedSecurityInfoW to the exact (patched) version that had been working for me under wine 1.5.18 with an old version of one of your patches, which you can see here:

    https://github.com/bpowers/wine/blob/992583b5047d8dcabb8fc2485cd93c91250430ef/dlls/advapi32/security.c#L5583

This one change seems to directly fix Netflix's Error Code N8156-6022, resulting in awesome, tear-free video for me!

Seriously, thanks for the awesome work!!! Maybe this patch was applied separately to your compholio wine or something, I mostly just wanted to document this for the record. LMK if there is anything I can help with, test, or review to work towards getting this all merged into wine.

yours,
Bobby

Revision history for this message
Erich E. Hoover (ehoover) wrote :

I don't always get the patches updated in the repo immediately, but the latest version of the patches are always available on my website:
http://www.compholio.com/wine-compholio/

I test these patches after each release of upstream Wine, since as soon as I fix one more regression caused by an earlier patch I will be attempting to get the patches in again. I just doubled checked that the wine-compholio 1.5.26 version works properly on my system, so unless you're having a problem with patching somehow then I'm not sure what could be causing your problem. Have you tried not applying the PulseAudio patches? It's worth noting that I've made some changes to advapi32 recently (as part of cleaning up regressions), so it's possible that some of the older patches don't apply against the latest version of Wine

Changed in netflix-desktop:
status: New → Triaged
importance: Undecided → Wishlist
Revision history for this message
james paul betts (jimbob-betts) wrote :

Hello,

thank you for all the hard work. I'd just like to confirm that I've also had to revert ADVAPI32's GetNamedSecurityInfoW to the above implementation to resolve netflix error code N8156-6022. The implementations look quite different.

I've downloaded wine 1.5.27 and applied patches from http://www.compholio.com/wine-compholio/#patches , but I get the netflix error. Reverting GetNamedSecurityInfoW and then manually installing just advapi32.dll.so fixes the problem.

I'm happy to do more testing - using firefox 17.0.5 esr + silverlight 4.1.10329.0 (32 bit)

Thanks

James

Revision history for this message
Erich E. Hoover (ehoover) wrote :

Hi James, did you make sure you ran "autoreconf" followed by "./configure" before compiling? Without those steps it won't include the ACL support.

Revision history for this message
james paul betts (jimbob-betts) wrote :

Thanks for the reply.

I've just re-tested again, building from a clean directory (and running autoreconf then ./configure) and I get the same netflix error as before. However other silverlight based DRM tests do work.

For me this netflix error is easily reproducible / resolved when swapping between the two GetNamedSecurityInfoW implementations (with no other changes).

Thanks.

James

Revision history for this message
Geoff Goas (gitman) wrote :

Hi,

I registered on here to say that I, too, was receiving the N8156-6022 error with wine-1.5.27 on Fedora 14. After reverting the GetNamedSecurityInfoW implementation, it works fine.

FYI I have SRPMs for netflix-desktop and wine with netflix-related patches if anyone wants.

Thanks

Revision history for this message
Erich E. Hoover (ehoover) wrote :

That's really odd James, as that version of GetNamedSecurityInfoW doesn't provide the appropriate permissions that PlayReady requires. Have you tried moving your profile folder ("~/.wine-browser" if you use the package) and starting fresh with a clean profile?

Revision history for this message
james paul betts (jimbob-betts) wrote :

I've just done the following test, using my current wine 1.5.27 (with your netflix patches and reverted GetNamedSecurityInfoW).

* I've created a new profile & set WINEPREFIX appropriately.

* I then install , european fonts, firefox & silverlight (deselecting the update option).

* When I then use firefox to access netflix it works out of box.

The time stamp on $WINEPREFIX/drive_c/users/Public/Application\ Data/Microsoft/PlayReady/mspr.hds is updated each time I start a new movie. If I delete it, restart firefox access netflix it gets regenerated but there is an additional delay at about 98% when netflix is loading the first movie.

I'm fairly certain I've used the original wine 1.5.27 with your netflix patches on a clean profile because I had installed silverlight with the update option selected and then netflix wanted to update to silverlight 5 so I deleted the original profile, started again (I think you suggested this in another thread), and I then got the N8156-6022 error and I then reverted GetNamedSecurityInfoW and it worked on the same profile.

Thanks.

Revision history for this message
Erich E. Hoover (ehoover) wrote :

Hi James, does it work if you use the patched GetNamedSecurityInfoW and a new profile? That you can get it to work with the old unpatched version is extremely surprising to me.

Revision history for this message
james paul betts (jimbob-betts) wrote :

When I apply your 5 patches against wine 1.5.27 and use a new profile I get the netflix error code N8156-6022. (I have re-checked this).

I'm sorry but I'm confused between what is patched and what is not patched, applying your 5 patches against wine 1.5.27 does not seem to patch dlls/advapi32/security.c.

cat ../*.patch | patch -p1

patching file dlls/user32/message.c
patching file dlls/user32/tests/msg.c
patching file include/winuser.h
patching file dlls/ws2_32/socket.c
patching file dlls/kernel32/tests/directory.c
patching file server/fd.c
patching file server/file.c
patching file configure.ac
patching file dlls/advapi32/tests/security.c
patching file dlls/kernel32/tests/directory.c
patching file server/change.c
patching file server/fd.c
patching file server/file.c
patching file server/file.h
patching file dlls/kernel32/tests/directory.c
patching file dlls/ntdll/file.c

Whereas from what Bobby said, I thought the GetNamedSecurityInfoW references in the first post was patched.

Thanks.

James

Revision history for this message
Erich E. Hoover (ehoover) wrote :

Hi James,

If you are running Wine 1.5.27 and replacing advapi32 like you've described (using the old version) then that will result in the patches being useless, as most of the changes in the patches are inaccessible if you use the old GetNamedSecurityInfoW. Do you have extended file system attributes enabled on your system? Having xattr support disabled is pretty much the only way to break the patches on new versions of Wine. I have no clue how you've managed to get things to work without using the new advapi32 dll, but I would like to find that out as it might lead to a simplification of the patches. What filesystem are you using for your home directory?

Revision history for this message
Geoff Goas (gitman) wrote :

Erich - I am in the exact same situation as James. My home directory is ext4, which should indicate xattr is enabled.

Revision history for this message
Erich E. Hoover (ehoover) wrote :

Since you guys are all on Fedora, I'm wondering if you're starting with a Fedora-built Wine and modifying that instead of starting with the Wine from WineHQ. Is that possible? If so, it could be that Fedora modified their Wine in some way that is causing a strange interaction with my patches.

Revision history for this message
Geoff Goas (gitman) wrote :

Erich, what I can say is that building the RPM consists of downloading the source code straight from Sourceforge and then applying patches to it. The patches consist of the Netflix group of patches, Pulseaudio patches, a patch for which in the comments it says "do not check for glAccum", and another patch to tools/wine.inf.in which adds some font replacements (wine-cjk.patch). There's really nothing special or different about it.

Source0: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2
Source10: http://downloads.sourceforge.net/wine/wine-%{version}.tar.bz2.sign

$ grep Patch ~/rpmbuild/SPECS/wine.spec
Patch1: wine-1.5.17-osmesa-check.patch
Patch511: wine-cjk.patch
Patch1001: wine-pulse-1.5.22.patch
Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch
Patch1103: netflix-patches-1.5.27-compholio/0001-user32-SetTimer-should-respect-the-minimum-and-maxim.patch
Patch1104: netflix-patches-1.5.27-compholio/0002-ws2_32-Implement-SIO_ADDRESS_LIST_CHANGE-with-Notify.patch
Patch1105: netflix-patches-1.5.27-compholio/0003-server-Create-directories-with-the-specified-securit.patch
Patch1106: netflix-patches-1.5.27-compholio/0004-server-Store-and-return-security-attributes-with-ext.patch
Patch1107: netflix-patches-1.5.27-compholio/0005-ntdll-Inherit-security-attributes-from-parent-direct.patch
Patch1108: netflix-patches-1.5.27-compholio/0006-advapi32-Revert-GetNamedSecurityInfoW-implementation.patch

Revision history for this message
Geoff Goas (gitman) wrote :

Also, only the OP and I mentioned Fedora - James never did.

Revision history for this message
james paul betts (jimbob-betts) wrote :

Erich - I'm sorry but I made a mistake. Some of my kernels requires an initrd, which mounts my root fs containing my home directory as ext3 (without the required ext3 mount option user_xattr). I had expected it to be mounted as ext4, the original filesystem was created as ext3.

I have build everything directly from source and your 5 patches. When xattr is enabled

btrfs, ext4, ext3 + user_xattr

Revision history for this message
james paul betts (jimbob-betts) wrote :

I have build everything directly from the vanilla wineHQ source and applied your 5 patches. I'm using slackware not fedora. When xattr is enabled and I've copy the profile to the following filesystems;

btrfs, ext4, ext3 + user_xattr - success
tmpfs - failure

zcat /proc/config.gz | grep XATTR

CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT4_FS_XATTR=y
CONFIG_TMPFS_XATTR=y

Unfortunately one of my initial tests was with a tmpfs filesystem which appears to have broken xattr support.

However, using the old GetNamedSecurityInfoW implementation without xattr does not appear to break netflix, with the patched wine 1.5.27.

I've tested this by using an ext4 filesystem (via loopback) on /tmp/mnt and a "mount -o remount,nouser_xattr /tmp/mnt" with the profile copied below /tmp/mnt, WINEPREFIX set appropriately. And yes this does break netflix the with current GetNamedSecurityInfoW implementation.

Thanks for you help.

James

Revision history for this message
Erich E. Hoover (ehoover) wrote :

Hi james, could you try running it with the old GetNamedSecurityInfoW and not using my patches (or just using some of them). Without the new GetNamedSecurityInfoW the last two patches shouldn't really be able to work (for what PlayReady wants at least).

Revision history for this message
Alec Leamas (leamas-alec) wrote :

FWIW, Fedora users might be interested in my repo at http://leamas.fedorapeople.org/wine-compholio. It contains updated F18 wine-compholio rpms. They work for me(tm). Check README for usage.

I have also been running into the Netflix N8156-6022 at release 3. I don't know the exact reason, but the error disappeared when I stepped back in my git history and basically made a fresh attempt. Current release 4 seems to work, at least for me.

I have had problems with recent nvidia drivers (no, I will not use nouveau instead, sorry). The packages are built using --without-xrandr to walk around this. It seems to work anyway.

Revision history for this message
David Vásquez (davidjeremias82) wrote :

I remember the first intent (failure 64bit machine 'Nexi Pixel' :/ ), I made a selft-xtracting about Netflix-Desktop, horrible haha. After time I made a rpm, this month made a new rpm without depend or keep on the estructure about fedora. a new .spec; a new script launcher that avoid download a corrupt file and more.

If some want run o try Netflix-Desktop in Fedora 19, can try install reading my gui from Fedora Forum.

http://fedoraforums.fedoraforum.org/showthread.php?t=286230

Revision history for this message
naguz (naguz-gmx) wrote :

I'm consistently, on every try receiving the N8156-6022-error. The first try this always happens at 99%, subsewuent tries fails earlier.

I'm using the packages from Davids(?) repo at http://sourceforge.net/projects/postinstaller/files/fedora/releases/19/x86_64/updates/, Tried both wine-silverligh-packages, no go. I saw your build instructions on http://www.compholio.com/wine-compholio/ Eric, but does that setup require my to manually install the correct firefox and Silverlight versions in the wine environment afterwards?

Revision history for this message
Erich E. Hoover (ehoover) wrote :

naguz, yes - though if you run "netflix-desktop" it will install everything in ~/.wine-browser and then you can exit and launch the browser with your system-wide installation of wine like so:
cd ~/.wine-browser/drive_c/Program\ Files/Mozilla\ Firefox/
wine firefox.exe

Revision history for this message
Alec Leamas (leamas-alec) wrote :

Hmpof. Tryinng to update my Fedora packages i run into this again. Currently I'm using the fedora wine package as a base, which build from the 1.7.5 sources. In order to isolate the error I have removed all fedora patches and built from pristine sources. Still the same: on Netflix, load a video, error N8156-6022 comes after loading something like 99%.

I have not the slightest idea what's happening. Could WINEDEBUG provide something meaningful given the right value?

Revision history for this message
Sebastian Lackner (slackner) wrote :

Hi Alec,

I don't know whats going wrong in your case (probably compiled without XATTR support? forgot to apply all patches, or the patches didn't apply properly to the used wine version?), but we're providing patched wine packages (for the latest version 1.7.7) in our repository. You can just add it with:

sudo wget http://download.opensuse.org/repositories/home:/DarkPlayer:/Pipelight/Fedora_19/home:DarkPlayer:Pipelight.repo -O /etc/yum.repos.d/pipelight.repo

(there are also packages for Fedora_18)

afterwards just update all packages and you should have the latest version. Since the pipelight project uses exactly the same patches you can be sure that everything should work for Silverlight. This version also includes all Fedora specific patches like for example the PulseAudio patch.

Sebastian

Revision history for this message
Erich E. Hoover (ehoover) wrote :

Hi Alec, would you mind trying running this?:
getfattr -n user.wine.acl ${HOME}/.wine-browser/drive_c/users/Public/Application\ Data/Microsoft/PlayReady/mspr.hds

That should tell us whether or not the extended attributes get set properly.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.