Librarian

As we draw closer to an anticipated beta release of the Flash Player, we thought people might be interested in knowing what libraries their host systems will be expected to provide for the Player. We have boiled it down to this list:

  • libdl.so.2
  • libpthread.so.0
  • libX11.so.6
  • libXext.so.6
  • libXt.so.6
  • libfreetype.so.6
  • libfontconfig.so.1
  • libgtk-x11-2.0.so.0
  • libgobject-2.0.so.0
  • libglib-2.0.so.0
  • libm.so.6
  • libc.so.6

If the library loader cannot find any of the above libraries then the plugin will refuse to load and the user will continue to see the dreaded green puzzle piece in place of a bouncing animation.

Nuvola_mimetypes_bc.png

There are 2 more optional libraries: libasound.so (for ALSA audio I/O) and libssl.so (for certain SSL connections). If either library is not present, its representative features will be disabled.

To clarify:

  • Question: What if I do not have ALSA — the standard Linux audio API — on my system?
  • Answer: Sweet, blissful silence. However, the Flash plugin will display visual content just fine.

83 Responses to Librarian

  1. rubso says:

    can’t wait to try it =_= !!! OMG OMG!!!oneone!111

  2. Michael R says:

    :DI’m sure most distros that provide flash in their non-free repos will also provide dependency management for it.It’s good to see the new flash plugin progressing.

  3. Arren Lex says:

    This blog post, translated into English:”Oh snap, all you whiner jerks just got owned.”All hail Mike and his magical beta!

  4. thetictacaddict says:

    It seems I’m good to go. Now all I need is the plugin! So, if a required library is not installed, will it tell you which one is missing, or will it simply refuse to install?

  5. Willie P. says:

    Thank…..f-ing….god.I know that it’s difficult to develop with the limited resources Adobe gives you. And I respect you mightily for your efforts to bring Flash to Linux.But it’s been frustrating waiting.I think as soon as you release the Beta, people will flock to you with bug-reports, recomendations, and the like, so your development will become that much faster. Because you, 1 lone person, will not have to determine every possible scenario that people can come up with. You’ll only have to solve general problems.

  6. =DC= says:

    Excellent! I can just taste the flash 9 goodness already.

  7. Sam Morris says:

    Are you using the old Xt-based mainloop, or the newer XEmbed API? With XEmbed the plugin can run outside of the browser process, so a crash in the Flash plugin would no longer take the browser with it–one of the most frustrating things with version 7 of the Flash plugin.

  8. Sam Morris says:

    libssl.so may be a problem.Unfortunately OpenSSL does not have a sane library versioning policy and so the SONAME of the library changes with each release. However using ‘libssl.so’ may be a problem as it will require the user to install their distro’s equivalent of the libssl-dev package.Since I assume you are using these libraries via dlopen(3), you may wish to search for each of libssl.so.0.9.6, libssl.so.0.9.7, libssl.so.0.9.8, and so on.Either approach may give you compatibility problems… what happens if the browser is linked against libssl.so.0.9.7 and then the Flash plugin pulls in libssl.so.0.9.8 (via its libssl.so) symlink?

  9. ghostdog says:

    I applaud your effort, I hope though one day, that adobe does open source this project but I guess it will be in due time.Can’t wait to test it!Some of us do appreciate the existence of this blog and for you to allow comments (even the really negative ones).Keep up the good work.PS: The beta release should put a stop to the whinny bitches.

  10. Eric says:

    Awesome news!Since you like Ubuntu so much: Any chance the flash beta will make it in time for ubuntu 6.10 edgy eft? The first beta release for ubuntu was released the other day, installing it now 🙂

  11. That Guy says:

    I may be drunk right now, but this latest post has made me quite happy; the list that you have is compatible with what is compiled in my distro; thank you Mike for your continued effort. I will confess that I was one of the “Haters” back when it seemed like a dim hope for a Linux update, but you have thrust lots of hard work towards an up to date player (assuming FP10 for Win/Mac does not release pre 2007). I thank you, this release will keep me from having to boot up my XP install.

  12. oyvinst says:

    Your work on bringing Flashplayer 9 to Linux is much appreciated. When the beta is released, I know quite a few people that are willing to help in testing (that means actually filing usable bug reports when problems arise), both from work and local Linux communities, including myself :).

  13. Martin Andersen says:

    Those waiting for Flash 9 might try the Codeweavers 6.0 Beta. It’s free for 60 days of use. I installed Flash 9 for Windows in Fedora Linux and it works fine, no problem with sound out of sync in Youtube 🙂

  14. Ryan says:

    Well I’m a Linux newb and I’m wondering if it’ll run Ubuntu, Linspire, openSUSE, and Fedora Core 5/6.

  15. valive@seznam.cz says:

    I thought you already got it, but apparently not 🙁 Loading libasound.so or libssl.so is incredibly stupid thing to do: it’s a) not available without devel packages (read: in the typical case!) and b) it doesn’t necessarily point to a library that is binary compatible with what you expect. Loading the version you linked against is the only correct way (so e.g. libssl.so.0.9.7) that guarantees binary compatibility, otherwise you _will_ get crashes sooner or later, period. The safest thing to do is to not use dlopen() to load system libs, but have a small plugin that links normally against them and try to load that (flash) plugin via dlopen().Also, you do *NOT* want to try all the libssl.so.* files as a comment above suggests. That would, again, lead to loading binary incompatible version and a crash, you must use *only* the version you know.Current standard is libssl.so.0.9.7, but 0.9.8 is out and will be in distros soon. Furthermore, 0.9.8 has two binary incompatible ABIs and you can’t know which one the distro will use — and if you expect one and the used one is the other one, it will crash.Here, by far the simplest thing to do is to simply include OpenSSL library in your download — the license is permissive enough for that. As a matter of fact, it’s probably the only safe way as well. To avoid symbol clashes (see comments above), you need to either link the libs in statically in such way that their symbols are not visible outside of the plugin or use XEmbed to run flash in its own process (either by using XEmbed Mozilla interface or doing yourself).Perhaps you should simply hire a competent contractor that knows how to distribute binaries for Linux 😉

  16. Fred says:

    Nice job dodging the libstdc++.so.5/6 bullet.I can hardly wait to get the beta.

  17. Zbigniew L. says:

    Q: What if I do not have ALSA?Answer 2: There is wrapper library for OSS only sound cards to use ALSA applications. You can try it.”New ALSA compatibility library (libsalsa) now available – allows ALSA compatible audio apps to run on OSS and benefit from OSS features like Virtual Mixing and 3D effects.”http://www.opensound.com/

  18. 1c3d0g says:

    Great. Believe me, everyone is waiting for a release now, alpha, beta, anything!

  19. Excellent! Just did a quick check of my FC5 system and it looks like I’m good to go. Not that this is a stock system by any means…Excellent work, Mike! Much appreciated.

  20. Shaman says:

    Looks fine to me, that’s a basic GLIB/GTK+ installation if I read it right.Hope the plugin works fine under Konqueror.

  21. Ben says:

    That’s a pretty reasonable list. Nothing niche, nothing extremely objectible. Even most KDE people that I know have GTK libraries installed.

  22. Simon C. says:

    Nice, it seems like a decent set of required libraries (at least they’re all on my system). If you allow re-distribution, Flash is likely to be packaged in the non-free repositories of the main distributions (just like Acrobat Reader is).I still don’t understand why you avoid libstd++ as a dependancy, as it’s a no brainer to get it working anyway and it’s almost 1 MB (reducing the memory footprint of Flash is a Good Thing(Tm)). And most distributions, even if they don’t provide Flash, will provide an helper to install flash (eg, before the new Java redistribution license, Debian had the java-package package, which took the Java installer and made a deb out of it).On a side note, just like Sam Morris said, I hope you’re using Mozilla’s XEmbed API so that Flash crashing won’t crash the browser.I look forward a beta version of the Flash Player.

  23. Jonathan Hull says:

    A little suggestion: Rather than not loading if a library is missing, would it be possible to load but just show an error message listing which library is missing?I dunno if this is possible, and it is probably late in the game, but I think it would help out for the less technicall folks out there.

  24. Chris says:

    Yay! Bring on Flash 9!(hugs Adobe)

  25. Paul says:

    Your list of 12 libraries boils down to only 8 packages (and three of those come from the split of Xorg):glibc (libdl, libpthread, libm, libc)libX11libXextlibXtfreetypefontconfiggtk2glib2

  26. Anonymous says:

    thanks for all the hard work, keep it up…

  27. James says:

    Are you using the new plugin API as announced in http://www.mozilla.org/press/mozilla-2004-06-30.html ? Both Adobe and Macromedia are mentioned …

  28. Notting says:

    Can’t wait. Just made to switch to linux, and it has been a pain with cnet and others.

  29. Anonymous says:

    The first few post made it OBVIOUS closed source Adobe promoters are all over this. What really sucks is that it is closed source. It will always suck. Flash is the most obnoxious thing used on the internet. AND, it is closed source. WTF? These are either fake posts or real morons.

  30. das newben says:

    Just another thank-you, but seeing this list I wonder how likely ports to other OSes are possible? Just the pthreads and ALSA seem to hold it back from natively supporting something like FreeBSD..

  31. rummik says:

    Ah, nice! Please do keep going on this, as I would love to see a beta release soon. XD

  32. kovacs says:

    Really looking forward to being able to view flash 9 content on my linux box, thanks for all your hard work on this. 🙂

  33. Anonymous says:

    Why doesn’t adobe ship the libraries they are building against with the player?This is how most linux games etc work. Even if the host system has incompatible versions they can use their own libs without problems.

  34. Michael R says:

    :DThat’s the first time I’ve ever been accused of being a plant.You’ll find that some Linux users are morally opposed to the notion of closed source, and can’t comprehend how someone can be perfectly ok with it.Obviously I would prefer it be open, but I understand the issues that keep it from happening.

  35. Arren Lex says:

    Anonymous is right. Everyone who doesn’t hate Adobe is a plant used to spread publicity. It just makes sense! Think about it. No, no… reeeeeally think about it. See? It makes sense!Michael: I, for one, strongly believe in open source, but I also strongly believe in homestar runner. So I’m conflicted. Of course I would much rather use an open source flash client. But … Strong Bad! .__.

  36. Sam Morris says:

    Yes, after I posted my original comments I realised that the simplest (only!) way to avoid problems with OpenSSL’s libssl is to link statically to it. Its license should be liberal enough to let you do so.Also, I didn’t notice that you were also dlopen(3)ing libasound.so as well–this is not going to work for the reasons stated in my post about libssl.so and clarified by other posters. Fortunately, the ALSA developers do have a clue when it comes to shared library versioning and so it should be safe for you to dlopen(3) libasound.so.2 at runtime.

  37. Bloody says:

    Yep, I was also going to suggest statically linking OpenSSL.As for Michael R, if you lived in the real world, you’d realize that some programmers have to make a living from their work. You’d also realize that there may be trade secrets in one’s source code that one may not want to share with the world. Hence, contract clauses like “You may not work on any project not from the company while in the company’s employ” (those exist really).

  38. CyberFoxx says:

    Ya know, ya could’ve somewhat avoided some problems by seperating some stuff to a seperate library. Like, have libflashplayer.so be your binary blob that you guys make. Then have a libflashplayerhelper.so that gets compiled on the end-users/distro-maintainers machine that contains all the backend stuff for ALSA, SSL, etc. Then just have libflashplayer.so link against libflashplayerhelper.so.nVidia does it this way with their Binary Drivers. And it would solve alot of versioning problems.PS: I’m not a programmer, so I’m not sure exactly how this actually works.

  39. Michael R says:

    Bloody: I’m not exactly sure what you’re replying to. Remember, names appear at the bottom of posts…I said I would prefer open (I think anyone that likes to tinker with code would), but understand why closed source exists. I’m not decrying it. 😛

  40. Jon Temple says:

    Just dropping in to thank you for your work.Don’t let the over-enthusiastic open-source people get you down. I appreciate your work, closed-source or open-source. However you can release it. Thanks !

  41. A reminder that distro-packagers will want a version that is not statically linked with glibc; as they will much prefer to manage that dependancy themselves (and will be able to).Statically linking glibc is for orphans who hae no support and still need it to work.

  42. Limulus says:

    To add to the comments by Chris and Ryan, I just did a package search on packages.ubuntu.com and here are the sources for the various libraries in Ubuntu Dapper:Library ………….. Packagelibdl.so.2 ………… libc6libpthread.so.0 ……. libc6libX11.so.6 ……….. libx11-6libXext.so.6 ………. libxext6libXt.so.6 ………… libxt6libfreetype.so.6 …… libfreetype6libfontconfig.so.1 …. libfontconfig1libgtk-x11-2.0.so.0 … libgtk2.0-0libgobject-2.0.so.0 … libglib2.0-0libglib-2.0.so.0 …… libglib2.0-0libm.so.6 …………. libc6libc.so.6 …………. libc6libasound.so ………. libasound2-devlibssl.so …………. libssl-devNote that all except the last two (the optional ones) are installed by default iiRC. However, installed alternatives for that pair are available:libasound.so.2 …….. libasound2libssl.so.0.9.8 ……. libssl0.9.8

  43. Bloody says:

    Cyber: It’s true that it works great for Nvidia drivers. Actually, it’s the only way to make them works. But I’m not sure it could be made to work for *every* library that the flash player wants to use. For instance, one can’t avoid linking to stdc++ unless one isn’t using altogether. Also, there are some ABI incompatibilities between some library versions OpenSSL 0.9.7->OpenSSL 0.9.8. It would certainly work for most other libraries though.

  44. Bloody says:

    Michael: Didn’t read your post thorough sorry. Should have meant “those Linux users who are morally opposed to closed source” whom you were talking about in your 2nd paragraph (a.k.a: FOSS fanboys). I thought you were one of them. Sorry about that.

  45. r says:

    my system has all those libraries .. wiiiiii 🙂

  46. Joe Bloggs says:

    So if all I’ve got is libc.so.5, I’m screwed?

  47. Frapazoid says:

    Thank shibby! You guys are the best.***Not a plant.

  48. For that guy that spoke about FreeBSD: as you might have known, Macromedia suckers fucked up and changed Flash’s license, so it can only run on Windows, Linux and MacOS. No Flash goodies for you, unless you use gnash…

  49. Anonymous says:

    I may be off base here, but couldn’t you let the power of the Free and Open Source Software (FOSS) community do some of the work for you.Isn’t there any way to make all your library calls inside the proprietary binary flash plugin through an open sourced compatibly layer and then just let the FOSS community worry about making it work on every distro…??? You would be able to focus on the development of the plugin and not dependency/compatibility issues between Linux distributions.

  50. Emre Saglam says:

    Thanks for all your effort Mike!That’s very good news!

  51. Fred W says:

    I assume you have some kind of a ticketing system tracking known issues. I also assume that when the known issue count gets to zero, we get a beta. Would it be possible to get some running stats from this ticketing system? # of Open Tickets / # of Closed Tickets

  52. hal9000 says:

    thank you mike for keep us updated…from Italia…hal9000

  53. Rob H. says:

    Great-can’t wait to actually see Linux Flash video in synch like on YouTube on my new Core 2 Duo machine. I’m also hoping the Flash 9 player will render the Toyota website correctly, among other things.Too bad for all the anti-Flash trolls…

  54. Amish says:

    Currently I use artsdsp wrapper around firefox and old version of flash is able to play sound. So just hope that it would work as well.Waiting for beta.Thanks.

  55. fred says:

    can’t wait to test that new Flash plugin! So cool you’re finally using Alsa for sound! I hope there will be a device selection option. ;)Thanks!

  56. Ernst says:

    From the linux kernel 2.6.19 changelog:# A number of Video4Linux drivers have been converted to the V4L2 API.

  57. Abaddon says:

    Gtk2 :/ Please link gtk2 statically.

  58. dave says:

    This news is very exciting. It looks like everything is coming together at last. You rock! and keep up the good work.

  59. Bloody says:

    @Abaddon: Gtk2 can’t be linked statically, it is LGPL. Fortunately, the ABI is quite stable.

  60. toni says:

    Hi, thanks for these updates. It’s a real pain to try moving house with only old Flash Player 7 for linux available – most of large agents websites use flash, and it doesn’t work with player 7 :(Is it possible to subscribe somwhere in order to be notified of earliest possible release of player for linux? I would be happy to provide feeback how it runs on linux distro (with details on versions of above specified libraries)that i use, with reports of sites that might not work with beta.

  61. Bob I says:

    Mike, I had confidence in you&this project from the very 1sttime I started reading this blog. The finish line is in sight! GO MIKE!Oh & despite what some have said here Adobe is OK too!Still though GO MIKE!

  62. BRPXQZME says:

    Statically linking GTK2 would be bulky, unnecessary, and require compliance with the LGPL. The recent versions of GTK2 in combination with the recent versions of X have yielded impressive looks and sufficient efficiency. This is coming from someone who doesn’t even like GTK.Pretty much everything on this list would be found on the average Linux desktop. Good job.

  63. TonyB says:

    I’ve seen projects that have released a libc5 and a libc6 version of their program, and everyone was happy with that.

  64. Anonymous says:

    Quit yanking our strings… This Linux player development has been going on for how long? and we still don’t have a alpha or a beta? This is pathetic. Developers should checkout processing.org before they decide to use flash on their websites. It’s open source and looks like a great alternative.

  65. akshunj says:

    If I were a betting man, I’d say you were timing this to coincide with the release of Firefox 2.0. Very nice.

  66. That Guy says:

    @akshunjOr the release of Flashplayer 10 for Win/Mac ;)This player has been in development for wayyy to long, but at least we have Mike keeping us updated on its progress. The 2007 projected release date seems far off, but maybe we will see some pre-release usefulness in alpha or beta form. Embedding a cross platform flash player in the browser release would be convenient… if only it had been taken care of a while ago. I look forward to the long, long, long, awaited release.

  67. Chris Ribbl says:

    Joe Blogs – “So if all I’ve got is libc.so.5, I’m screwed?”If your machine doesn’t have libc.so.6, you really need to upgrade. Why should a new version of the Flash player have such ridiculous legacy support. If you need to use a legacy system, you can use a legacy Flash player. It’s not like it’s expensive to upgrade; we’re not talking about Windows here.

  68. Anonymous says:

    Any word on where the Flash Player 9 Beta for Linux is in the QE testing? I saw last week that on Emmy Huang’s blog that it’s being tested right now by QE, but haven’t seen any updates on the progress since then. Really looking forward to it. I’m really looking forward to the update, as there are quite a few sites I can’t visit in Linux because of having only Flash Player 7 (scifi.com comes to mind, especially when trying to watch the online Battlestar Galactica videos)

  69. PWM says:

    I just learned that the Linux Flash Player 7 behaves differently whether the path includes “/netscape/” ! (I fixed it by symlinking from other path – Hint: This is the problem with Opera.)I really hope such hacks are not used in the next big release. (Or if absolutely necessary then at least documented properly.)Also the library linking may later open a big can of worms. Therefore I think it would be best for all to combine all platform specific interfacing functionality to one open-source shim-library. Whenever there would be need to update or even change libraries etc. then it would be straightforward for everyone. Furthermore each package builder could tailor it just right for the particular distro. Security updates etc. for various libs wouldn’t be issue at all .. And why not just do it !?

  70. Hi,I would like to mention this flash issue: https://bugzilla.mozilla.org/show_bug.cgi?id=304370Could you look into it and make sure the version 9 doesn’t exhibit the problem? I’ve had to disable flash in my fresh Ubuntu Edgy installation.Thanks.Keep up the good work. I can’t wait for a preview…

  71. mudi says:

    @Jerome, I’ve run into that bug before when I was playing with composite. To fix it, just runexport XLIB_SKIP_ARGB_VISUALS=1before you run Firefox. Hopefully this won’t be required in FP9.

  72. Yg says:

    Another week without updates :(It is really upsetting us…

  73. That Guy says:

    Maybe if Mike didn’t have to keep up a blog this plugin wouldn’t have taken 2 years to make :PWe’d die without the updates though… or worse, actually do something about the problem instead of complaining.It seems that we’re past the point for mindless whining and too the part where we provide actual helpful feedback to the team. If there is something that Mike needs help with he’ll probably post it. I’d take the dry spell of posts as a good sign that work is being done. (That is unless they’ve cut their losses and fired everybody working on the project)

  74. updateless says:

    any updates? I know its VERY difficult to write up a single paragraph in the course of several weeks. but seeing as your sept 30 post said “As we draw closer to an anticipated beta release of the Flash Player,” i would expect updates to INCREASE and not decrease…

  75. jimbojr says:

    This is just sad. All these sites requiring flash 8 now and we’re left out in the cold…. still…. waiting and waiting. You ****ers better release the next **** flash version that everyone will go to at the same time for both systems to make up for this crap. How do you get away with touting cross-platform functionality? I’ll keep coming back here to post negativity every time I bump my head against the “This site requires Flash 8” barrier. Maybe late 2007 this will be released and I can quit.

  76. That Guy says:

    We, the Linux users have no pull with Macrodobe. If you want to bitch and moan at somebody to fix things for you, complain to the companies that have sites that require above Flash 7. If enough people make it known that they can’t see what the company is selling, the company will be more likely to change. Hell, you could probably even start some little “Keep the internet truly Cross-Platform” club or something if you really wanted. Macrodobe is not the entity to complain to. As a large company, they will probably only listen to other companies. If we can get other companies to listen to us, then perhaps Macrodobe will listen to them and keep everything even.

  77. Mark says:

    There have been no updates for two weeks now. This blog really sucks.

  78. Fox says:

    I’ve been reading this blog since the first post and I don’t recall anyone talking about fonts. Fonts are a pain in the ass with flashplayer… how do you deal with that Mike ?

  79. @mudiIf you useexport XLIB_SKIP_ARGB_VISUALS=1do you still have flash working ?Not me. That’s why I uninstalled it.

  80. vrunner says:

    @Fox : Read Tinic’s blog (linked on the right side of Mike’s)

  81. mudi says:

    Yes, it still worked. This was true both with Composite/AIGLX/compiz and Composite/KDE… if I set that environment variable it worked in 16-bit mode, otherwise it crashed my browser.

  82. jimbojr says:

    to “That Guy” The problem is how they tout using Flash as a cross-platform compatible system, which is a lie. I only blame Macromedia/Adobe for this. I can’t blame the users of the product for the lies the product promises.