My thoughts on Slackware, life and everything

Chromium for Slackware, with salt & pepper

chromium_icon I have been using Chrome alongside Firefox for some time now, because I was not very happy with the way Firefox is growing fat and sluggish.

Chrome is nice and fast, and it allows me to save my preferences and bookmarks so I can keep them synchronized across computers – just like Firefox for which I setup my own private Sync server, However, Chrome is a closed-source app and I prefer to run open source self-built stuff where possible. Enter Chromium.

Chromium is the Open Source variant of the Chrome Browser. Both are part of the Chromium project which also has the Chrome OS as a product. Chromium and Chrome share the same codebase, and the closed-source Chrome browser is enhanced with some proprietary features like Adobe’s Pepper Flash plugin.

The slackbuilds.org site has a chromium SlackBuild script – it’s been there since Slackware 13.1 and Chromium 9. Building the package takes several hours which in my opinion is too long to simply ask people to compile it themselves. Just like with other big packages like LibreOffice, I decided to build my own package for Chromium and add that to my repository. What better time than right after the release of Chrome/Chromium 31.0.1650.57, last week!

I did some research, to see what I needed to put into my SlackBuild. The one on slackbuilds.org for instance, does not build the Native Client. It also does not define a Google API key or OAuth tokens. Without these API keys, some features of Chromium that use Google APIs will not be available in the browser. Think of Chrome sync, push messaging, remote desktop sharing, safe browsing, search suggestions and more.

Therefore I decided to request my own set of API keys from Google for my Chromium package build. I got those (it is an automatic process, and it is cost-free). The license restricts you in the use of these API keys: you are not allowed to make them public, they are for your personal use only. However there is an exception for distribition packagers and so I also applied with Google to allow me to share these API keys with the Slackware community. I got that approval in writing today and I will share my keys in future builds of the package.

For now, I chose to not to add them to the SlackBuild, because I want to have feedback from you Slackware users first, about the stability and the functionality of my Chromium build. Google can block a browser based on the API key with which it was configured and I want to make sure that everything is OK before uploading them into public view. I have uploaded my API keys so that you can recompile the package yourself and get a fully functional browser. It is explicitly not allowed to re-distribute my API keys when you create a modified version of my package!!

If you run my SlackBuild script without having API keys of your own, it will build you a perfectly working package – you just will not be able to sign into Chromium. If you want to recompile Chromium using my SlackBuild script and with Google API key, you can always generate your own API/OAuth keys by following the procedure outline on http://www.chromium.org/developers/how-tos/api-keys of course. Add the key definitions to a file called “chromium_apikeys” in the same directory as the chromium.SlackBuild, it will look somewhat like this:

_google_api_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
_google_default_client_id=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com
_google_default_client_secret=XXXXXXXXXXXXXXXXXXXXXXXX

Note that you are then not allowed to distribute these keys. Good luck! It compiles for 5 hours in my virtual machine and it needs many GB of swap file for the final link stage.

And then about Native Client. The Native Client is a sandbox technology that allows developers to write applications in native code (code targeting the machine hardware) and running that code inside the Chromium browser. The advantage is that these applications are able to run at near-native speed. Google has made several of these NaCL applications available in the Chrome Web Store. A nice gallery of NaCL applications is hosted at https://developers.google.com/native-client/community/application-gallery It features free-to-play games like Don’t Starve and Lara Croft, and even has a SSH secure shell ( I use that one on my own Chromebook).

I had no idea how to build the Native Client so I looked at how Suse, Arch, Debian and Ubuntu build their Chromium packages. Turns out, not everybody adds the Native Client. In the end I adopted the way Arch Linux builds it by downloading Google’s NaCl SDK and using  that to build my own binaries.

There are two caveats at the moment, when building all of this. Both these points apply only to compiling Chromium… they do not apply to running the browser.

  1. On 32-bit Slackware 14.1 you’ll have to rebuild the “libelf” package with this patch:
    --- libelf.SlackBuild.orig 2011-03-27 06:24:58.000000000 +0200
    +++ libelf.SlackBuild 2013-11-22 17:24:17.740039844 +0100
    @@ -38,7 +38,7 @@
     NUMJOBS=${NUMJOBS:-" -j7 "}
    
     if [ "$ARCH" = "i486" ]; then
    -  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
    +  SLKCFLAGS="-O2 -march=i486 -mtune=i686 -D_FILE_OFFSET_BITS=64"
       LIBDIRSUFFIX=""
     elif [ "$ARCH" = "s390" ]; then
       SLKCFLAGS="-O2"
  2. On 64-bit Slackware 14.1 you’ll have to go multilib if you want to compile the Native Client. If you do not want to add multilib you can set the internal SlackBuild variable “USE_NACL” to “0” and the Native Client will not be built. You get all the other features still, of course.

Get my Chromium packages in one of the usual locations:

You can subscribe to the repository’s RSS feed if you want to be the first to know when new packages are uploaded.

Lovers of word games, you’ll have noticed that Native Client is shortened to NaCl which is another notation for salt. Guess what, apart from the salt, Google also added pepper to their browser. The Pepper Plug-in API (PPAPI) is a cross-platform API for plugins for web browsers, meant to replace the Netscape Plugin API (NPAPI) which (according to Google at least) is flawed and belongs to the past. The best known Pepper based plugin is Adobe’s Flash Player. Adobe abandoned their NPAPI based plugin (but they still apply security fixes) and focus on their PPAPI plugin for Chrome. Good news: Chromium works withe PPAPI plugins and therefore it is possible to extract the Flash plugin from Chrome and use it with Chromium. Check out this package (first install chromium, then chromium-pepperflash-plugin because the second package updates the chromium configuration defaults). Because this is a proprietary plugin, by installing it you agree to the Chrome End User License Agreement.

Note: Chrome/Chromium are going to block most NPAPI plugins at the beginning of 2014 and support for The Netscape API will supposedly be dropped altogether at the end of that same year. Another note: Mozilla’s Firefox will start enforcing “Click to Play” even before the end of 2013, which means that plugins will no longer be loaded automatically, but only after the user (you) clicks on a “Play” button. All plugins, meaning for instance the popular Java and SilverLight, but excepting the most recent Flash.

Tell me your experiences with Chromium for Slackware!

Eric

Note (20131124):

  • I have uploaded my API keys so that you can recompile the package yourself and get a fully functional browser. It is explicitly not allowed to re-distribute my API keys when you create a modified version of my package!!
  • Also, I have added Google Chrome’s proprietary PDF viewer as a separate package for Chromium:  http://www.slackware.com/~alien/slackbuilds/chromium-pdf-plugin/ so that PDF files can be viewed inside the browser.

83 Comments

  1. Alan Aversa

    Nice thanks

  2. Alan Aversa

    I pretty much only use Chrome when I need Flash, and Chrome’s integrated Flash is newer than FireFox’s Linux Flash. I also uninstalled Flash from FireFox.

  3. Alan Aversa

    Taper’s been down for awhile… I can’t ping it.

  4. Chess Griffin

    Wow, this is AWESOME, Eric. I can’t wait to try out your packages. Thanks for your hard work and making them available to the community!

  5. alienbob

    Hi Alan

    Taper is up & running – it does not respond to ping because its firewall is blocking that.

    Eric

  6. Weput

    I’m glad I’m not the only one who is feeling firefox crappy latelly…

    Even though I don’t like chrome; I have a chromebook and an android phone… So it’s a matter of time to start using it.

  7. samac

    Working fine here, 14.1 + multi-lib. Nice and fast. Hopefully it will not need as many security updates as firefox.

  8. justin

    Thanks for putting this together it works great. So far no issues.

  9. hughetorrance

    Over development is an ongoing problem but Thunderbird is worse than Firefox,its got a mind of its own so that is why I have changed to Claws… LOL

  10. Ryan P.C. McQuen

    Does Chromium support the talk plugin?

  11. Gabriel Yong

    Why can’t it let me run in root?

    • Ryan P.C. McQuen

      Hey Gabriel,

      If chromium is like chrome, you can jump into /usr/bin/chromium and append:

      –user-data-dir

      at the end of the very last line of code, to allow you to run it as root.

      Hope that helps!

  12. Gabriel Yong

    It’s running fine for me without the KPI key.

  13. JesusM

    Downloaded and installed your package.

    I’ve also tried to compile sources (“your” sources) but I get an error:

    Traceback (most recent call last):
    File “nacl_bootstrap_munge_phdr.py”, line 39, in
    sys.exit(Main(sys.argv))
    File “nacl_bootstrap_munge_phdr.py”, line 33, in Main
    subprocess.check_call([munger, tmpfile, segment_num])
    File “/usr/lib/python2.7/subprocess.py”, line 542, in check_call
    raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command ‘[‘/tmp/build/tmp-chromium/chromium-31.0.1650.57/out/Release/nacl_bootstrap_munge_phdr’, ‘/tmp/build/tmp-chromium/chromium-31.0.1650.57/out/Release/nacl_helper_bootstrap.tmp’, ‘2’]’ returned non-zero exit status 2
    make: *** [out/Release/nacl_helper_bootstrap] Error 1
    install: cannot stat ‘out/Release/chrome’: No such file or directory

  14. Andrea Amerini

    Standing ovation for your awesome work!
    Thanks a lot Eric!

  15. alienbob

    Gabriel,

    You do not need to supply a Google API key if you use my package – because the package has been built with _my_ keys.
    You would only need your own keys if you want to recompile Chromium and want to be able to login to Chromium (for bookmark syc etc..).

    Eric

  16. alienbob

    Hi Ryan

    I installed the google-talkplugin package using the SBo script and it seems to work. At least, it loads. But I have no one to test it with, because Google Hangouts does not let you talk to yourself if you are logged onto two computers with the same account.

    Eric

    • Ryan P.C. McQuen

      Thanks Eric, stellar work! We appreciate all you do!

  17. alienbob

    JesusM

    Did you read my comment about libelf on Slackware 32-bit? You need to rebuild it with the supplied patch, if you want to recompile Chromium.

    Alternatively, just use my package.

    Eric

  18. alienbob

    In my build of chromium, you do not have to edit the package files.
    Instead, you can edit “/etc/default/chromium” and add whatever flags you need to the variable “CHROMIUM_FLAGS”.
    If you type “chrome://version/” in the browser it will show your the commandline with which Chromium was started.

    Eric

  19. Alan Aversa

    I get a checksum error for chromium-pepperflash-plugin. I overrode it with “–no-md5,” but, although Flash works in Chromium, I can’t see any of its content…

  20. Mike Langdon (mlangdn)

    Thanks Eric!

  21. JesusM

    uhmmm … you were right, sotty, I should read it carefully. It works great. Thanks

  22. gegechris99

    Thank you Eric for the packages. I’m still OK with Firefox but I gave Chromium a try. Indeed, somes pages load faster in Chromium vs. Firefox. However I discovered that saved site passwords are not protected (can be easily displayed in plain text) and that developers are fine with this situation. Looks like I’ll need an external password manager.

  23. alienbob

    Alan, the MD5 checksum on my mirror shows OK for the chromium packages, check your local copy against the MD5 checksum as found on the server.
    What I did see is that I forgot to delete the tgz compressed package after I re-compressed it to txz. I will fix that now.

    Eric

  24. alienbob

    Hi gegechris99

    By default, when you start Chromium you will soon see a popup from the Desktop Environment’s encrypted password storage. The whole idea behind integration with the Desktop Enviroment’s encrypted password vaults (Kwallet in KDE and Gnome Keyring in other DE’s) is that Chromium itself does not use any form of encryption when storing your passwords.

    Try running this command when you do not use Kwallet or Gnome Keyring with Chromium:
    sqlite3 ~/.config/chromium/Default/Login\ Data .dump
    If Chromium is storing your passwords encrypted in Kwallet or Gnome Keyring, then that dump shows only the structure of the “logins” database. If you denied the use of an encrypted storage, you will see all your saved login data in cleartext.

    For Google Chrome, that command would be:
    sqlite3 ~/.config/google-chrome/Default/Login\ Data .dump

    In other words, use Kwallet or Gnome Keyring and your passwords will be safe.

    Eric

  25. Helios

    I don’t use often google-chrome, but I did install it (the same version) from the binaries (64 bit .rpm (for Fedora/openSUSE)). It seems to work well. What are the differences with this new Salckare package ?

  26. alienbob

    Hi Helios

    Chromium and Google Chrome are built from the same code base (much like OpenJDK and Oracle Java) but Google Chrome is of course not built on Slackware. Also Chrome includes proprietary software for which Google may have paid royalties or made another kind of financial deal.

    My Chromium package has been compiled from source op Slackware – it is a native package – and does not contain anything which is not open source. Furthermore you have my SlackBuild script so that you can examine exactly how the package was built, and you can rebuild it yourself if you like.

    For a detailed overview of differences between Google Chrome and Chromium, see https://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoogleChrome

    Eric

  27. alienbob

    Note: I added my API keys to the “build” directory so that you can rebuild a fully functional package yourself. DO NOT RE-DISTRIBUTE that file with the API keys if you create a modified version of the package and upload that!!

    Eric

  28. Eduardo

    Hi Eric, thanks for this browser! It works nice and fast here in my Slack64-current/multilib box.

  29. gegechris99

    Thanks again Eric for your help. As I’m using XFCE as my DE, I used gnome-keyring to store the site passwords and it just worked!!!

  30. MDK

    There is no need of recompiling entire Chromium just to use your personal API key; just export these variables and run chromium (I’ve added this to a script on my personal bin path):

    export GOOGLE_API_KEY=xxx
    export GOOGLE_DEFAULT_CLIENT_ID=yyy
    export GOOGLE_DEFAULT_CLIENT_SECRET=zzz
    /usr/bin/chromium

    Additionally, you can set the libpepflashplayer.so through an argument: “–ppapi-flash-path=PATH_TO_THE_LIB”, but you’ll need to pass the ppf version too, and pass using “–ppapi-flash-version=VERSION”, where version can be obtained by this: “VERSION=$(cat PATH_TO_THE_LIB/manifest.json | grep version | cut -d'”‘ -f4)”

    😉

  31. alienbob

    MDK, you are missing the point about why I mentioned my API keys.

    If you want to _recompile_ my Chromium package yourself, you need a set of API keys if you want to unlock the full potential of the browser.
    However if you just want to _use_ my package there is no need for any API key at all.

    Additionally, it seems that you did not check how my “chromium-pepperflash-plugin” package installs itself? It adds “–ppapi-flash-path” and “–ppapi-flash-version” parameters to the invocation of chromium. No need to do this manually. Just install the package (after the chromium package has been installed) and you’re in business.

    Eric

  32. MDK

    Oh I saw, just leaving a general tip I used to use for running a custom version of chromium (it’s a hell for compile as you said).

    Better use your versions for sure 🙂

  33. Gabriel Yong

    Ryan P.C. McQuen
    Thank you for the tip…–user-data-dir
    Got it run it root.

    Eric
    Thank you very much. I got it complied with your API key…everything works just fine.

  34. weput

    It is funny and ironic how I “hacked” my chromebook to install slackware on it and ended installing chrome/chromium…

  35. Gabriel Yong

    Hi Eric,

    I tried to compile in Slackware -current but failed. Is this not for -current?

  36. alienbob

    Gabriel, it was compiled on Slackware 14.1 which is not so different from slackware-current of course.

    Without showing actual error messages and build logs, there is _nothing_ I can do to help you.

    Eric

  37. Gabriel Yong

    Here are the last few lines I copied from the Konsole after compilation failed on my 32bit -current.

    Traceback (most recent call last):
    File “nacl_bootstrap_munge_phdr.py”, line 39, in
    sys.exit(Main(sys.argv))
    File “nacl_bootstrap_munge_phdr.py”, line 33, in Main
    subprocess.check_call([munger, tmpfile, segment_num])
    File “/usr/lib/python2.7/subprocess.py”, line 542, in check_call
    raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command ‘[‘/tmp/build/tmp-chromium/chromium-31.0.1650.57/out/Release/nacl_bootstrap_munge_phdr’, ‘/tmp/build/tmp-chromium/chromium-31.0.1650.57/out/Release/nacl_helper_bootstrap.tmp’, ‘2’]’ returned non-zero exit status 2
    make: *** [out/Release/nacl_helper_bootstrap] Error 1
    install: cannot stat ‘out/Release/chrome’: No such file or directory
    chromium.SlackBuild FAILED at line 316
    bash-4.2#

  38. alienbob

    Gabriel

    Please read my article carefully, and if you do not find the clue, please see my response to JesusM’s identical error.

    Eric

  39. JesusM

    never been so ashamed of being used as example 🙁

  40. Gabriel Yong

    Obviously I don’t know how to “rebuilt” the libelf package.
    What is the meaning of rebuild the “libelf” package with this patch:

    — libelf.SlackBuild.orig 2011-03-27 06:24:58.000000000 +0200
    +++ libelf.SlackBuild 2013-11-22 17:24:17.740039844 +0100
    @@ -38,7 +38,7 @@
    NUMJOBS=${NUMJOBS:-” -j7 “}

    if [ “$ARCH” = “i486″ ]; then
    – SLKCFLAGS=”-O2 -march=i486 -mtune=i686″
    + SLKCFLAGS=”-O2 -march=i486 -mtune=i686 -D_FILE_OFFSET_BITS=64″
    LIBDIRSUFFIX=””
    elif [ “$ARCH” = “s390″ ]; then
    SLKCFLAGS=”-O2″

    Does it means that replace the whole content of the “chromium_libelf_includes.patch” with the above patch?

    I replaced its contents, got the error again:
    g++: internal compiler error: Killed (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See for instructions.
    make: *** [out/Release/obj.target/webcore_dom/third_party/WebKit/Source/core/dom/Document.o] Error 4
    install: cannot stat ‘out/Release/chrome’: No such file or directory
    chromium.SlackBuild FAILED at line 316
    bash-4.2#

  41. JesusM

    Get the LIBELF source package at:

    http://mirrors.slackware.com/slackware/slackware-14.1/source/l/libelf/

    Then modify the libelf.SlackBuild as the patch Eric gave as.

    After that you can rebuild it just executing libelf.SlackBuild

  42. alienbob

    No offense meant, but…
    If you don’t know what to do with my remark that you have to apply my patch and rebuild Slackware’s libelf package… why do you want to recompile Chromium at all?

    The point is, that I make _packages_ available as my primary output. The SlackBuild scripts can be considered as a by-product, required to comply with the GPL and other licenses.

    In that sense, I do the exact opposite from the SlackBuilds.org repository site, which offers SlackBuild scripts as their primary product and lets you compile the packages yourself.
    But I do not see the point of letting you spend hours on compiling a package if you do not know how the SlackBuild script works anyway.
    Just grab my binary package and install it, it’s that easy! If you don’t trust my binaries, think about this: if you are running Slackware64-current, then you still have 70 original Slackware packages installed which have been built by me, on my prehistoric AMD64 desktop computer on the second floor of this house… dating back to the time when Slackware64 was my secret project.

    Eric

  43. Gabriel Yong

    Sorry JesusM, I
    still not able to follow. Can you please show me step by step in details.
    Thank you for your patient on me.

  44. Gabriel Yong

    Thanks for the advise Eric. Yes I am just trying to learn the tricks in compilation. Just like to find out how things works. Not that I don’t trust your binaries.

    Your hard works are much appreciated…I better grab your binary now as you already spent much time and effort on it 🙂

  45. Floreal

    Hi!

    It works very well on Slackware 14.1 ! Thanks a lot !!

  46. Ryan P.C. McQuen

    Hey Eric!

    I’ve been using Chromium all week for work and it is running like a dream. Thank you so much!

  47. JesusM

    Hi Eric,

    If I’d want to avoid Chromium to use the Desktop Enviroment’s encrypted password vaults, could I? Should I give any option at compiling time?

    I don’t like to depend on the Desktop Enviroment to save my password, even if that means to store them in plain text :S

    Thanks!

  48. alienbob

    Hi JesusM

    For KDE, this should disable the use of Kwallet for storing your passwords encrypted (untested by me):

    Open ~/.kde/share/config/kwalletrc in a text editor and add the following two lines to it (there may already be an empty “Auto Deny” section):

    [Auto Deny]
    Default=Chromium

    Then look for the section:
    [Auto Allow]
    Default=

    If Chromium is listed there, remove it.

    Next time you login, Kwallet should no longer popup and Chromium will fallback to saving your passwords as plain text.

    If at a later date you want to re-enable Kwallet then first you undo the above changes, reboot, and then start Chromium once from the commandline as follows:
    $ chromium –password-store=kwallet
    (again: untested by me).

    Eric

  49. JesusM

    Thanks.

    Despite I use xfce, some apps still use the KDE folder to store their configs, but I don’t have any Chromium mention at my kwalletrc.

    Once you told me this is depending on the environment and not on the Chromium compiling, I’ll keep searching.

    Thanks for your help

  50. JesusM

    Hi again, I’ve found that the vault used is gnome-keyring-daemon.

    I’ve kill the process and deleted all files at every ‘startup’ folder I’ve found, but still, when I open chromium, the process “gnome-keyring-daemon” is open again.

    So I think chrmoim should be calling it in any way, but I can’t figure how.

    I don’t want to uninstall the gnome-keyring package because of potential dependencies.

    Any idea?

  51. JesusM

    got it!

    just we have to call Chromium with the flag “–password-store=basic”.

    if don’t, Chromium will call the password storage system depending on yout desktop environment.

  52. alienbob

    Hint:

    Any flags you want to pass to chromium, add them to the file “/etc/default/chromium” in the variable CHROMIUM_FLAGS:

    # Options to pass to chromium
    CHROMIUM_FLAGS=””

    If you installed my chromium-pepperflash-plugin package you can see in “/etc/default/chromium” and example of how CHROMIUM_FLAGS is used.

    Eric

  53. gregory

    Hi Eric,

    I noticed that some of the links to get chromium slackbuild leads to libreoffice instead of chromium.

    please take a look on these two:
    http://alien.slackbook.org/slackbuilds/chromium/ (US)
    http://slackware.org.uk/people/alien/slackbuilds/chromium/ (UK)

    click on “http://alien.slackbook.org/slackbuilds/” first, then on “chromium/”

    The links towards libreoffice and chromium are blended in these two.

  54. alienbob

    Hi gregory, you are right. I fixed the links.

    Eric

  55. Jean Góes

    Thank you!

  56. Joseph

    Eric. Stop. Being. Awesome. I am having trouble with loving what you do so much. Keep rocking current. Keep building next. loves.

  57. kjh

    Is it ‘safe’ to build Chromium on my Slackware 13.37 box ?

    Thanks Eric for all you’ve done !

    — kjh

  58. alienbob

    Hi kjh

    I once tried to compile chromium on my Slackware 13.37 but I had compilation errors and I did not pursue it. If you want chromium on Slackware, you’ll have to find out what needs to be patched or upgraded. I am afraid it will not compile on a standard Slackware 13.37.

    Eric

  59. kjh

    Thanks for the info Eric !

    Another good reason to modernize my Work Laptop

    — kjh

  60. Ray Vine

    Hello Eric,

    I’ve been using your Chromium browser packages successfully [up to 34.0.1847.132]; installed 35.0.1916.114/153 and just got ‘Illegal instruction’.

    It seems that the Chromium developers have decided not to cater for Linux users running Chromium on pre-SSE2 hardware any more. [https://codereview.chromium.org/187423002].

    Applying a reverse-patch and with the help of your ninja package and SlackBuild script, I’ve created my own package [with Native Client and using my own API keys]. I expect something else will break in the near future that I can’t fix – but for the moment I’m up-to-date. Thanks very much for the script – without it I would have got bogged down in the method detailed in Chromium LinuxBuildInstructions, and I would never have known about patching the libelf build.

    And .. it took only 18 hours 25 mins to build on my machine [Athlon XP 2400 with 1.5GB free ram].

  61. alienbob

    Hi Ray

    That’s a really old computer if it does not support SSE2 instructions.

    What did you do to reverse the removal of support for old CPU’s? Merely reverse-apply the patch found at that codereview page?

    Eric

  62. Pai

    Hi,
    Pepper latest plugin version (15) is wrongly reported as 11.2.999.999, so i cause trouble with sites like pogo who ask for the lastest version of flash.

  63. alienbob

    There is nothing wrong with the way the plugin reports its version to web sites. Just check http://www.adobe.com/software/flash/about/
    The problem is in the /etc/default/chromium file where I try to determine the flash version. The string in the binary changed so it’s reporting nothing now, and in chroime://plugins that translates to this weird 11..2.999.999 version.

    Make sure the version determination string in /etc/default/chromium is changed to:

    flashversion=$(strings $flashso|grep “LNX “|sed -e “s/.*LNX //”|sed -e “s/,/./g”)

    It’s really only cosmetics, but I refreshed my package anyway to fix this.

  64. Moseley

    Both Chrome & Chromium crash my desktop sessions and leave me at the login screen once again.

  65. RedRaider

    I am using Slack 14.0. I got the ninja error, so I installed ninja. Then the install of Chromium 41 continued until the following and quit:

    cc1plus: warning: unrecognized command line option “-Wno-literal-suffix” [enabled by default]
    [430/17237] CC obj/third_party/opus/src/celt/opus.celt_decoder.o
    ninja: build stopped: subcommand failed.
    ./chromium.SlackBuild FAILED at line 487

    I don’t see anything about this error on an internet search. Assistance with this error is appreciated.

  66. alienbob

    RedRaider,

    Unfortunately for you, chromium 41 requires gcc 4.8.0 at a miimum.
    Slackware 14.0 has gcc-4.7.1 which is too old.

  67. alienbob

    Moseley, that is not something I can fix for you magically. To me it sounds like a video driver issue. Do you see any error (apart from the standard bogus errors) when you start chrome or chromium from a commandline?

    Try a couple of safemode commandline parameters like “–disable-extensions” and “–disable-gpu”.
    See http://peter.sh/experiments/chromium-command-line-switches/ for a full list.

    Edit: I did not notice that Moseley’s post was more than half a year old…

  68. rodan

    I downloaded and installed your package for ver 43 and it works great. Thanks. However, I tried to upgrade the package to ver 46 and it crashes on startup. Something about the manifest file being unreadable. Slackware 14.1 32-bit. Any ideas?

  69. alienbob

    rodan,

    The chromium 43 package already has its configuration files in /etc/chromium/ so that can not be the problem.
    Missing manifest file usually means an issue with browser plugins. Try researching what plugins you have installed, including too old versions of my chromium plugins (pepperflash, widevine and the obsoleted pdf plugin packages) and try to remove them all.

    If all fails, rename the directory ~/.config/chromium/ and start with a fresh profile. Does chromium still crash then?

  70. rodan

    Thanks for the quick reply. No joy though. upgraded to ver 46 and removed the ~/.config/chromium directory. Still crashes on start, though no manifest message. Tried from the command line and get a stack trace and a “ERROR:browser_gpu_channel_host_factory.cc(132)] Failed to launch GPU process.” message. Tried with various command line switches to disable GPU, no luck. Still crashes on startup. Reverted to ver 43 and all is well.Should mention I am on 3.18.21 kernel using NVIDIA drivers.

  71. rodan

    Update: I am able to get ver 46 to run properly using the command line switch; –disable-seccomp-filter-sandbox. I have seccomp enabled in the kernel. Hmm..

  72. rodan

    Solution: I found my problem. It was an old kernel config parameter that was on; CONFIG_COMPAT_VDSO. Turning it off solved the sandbox problem. More info here; https://code.google.com/p/chromium/issues/detail?id=527209. I still have to use –disable-gpu-sandbox to get hardware acceleration out of the NVIDIA card, but that is also a known issue. Added to /etc/chromium/00-default.conf. Sorry for the inconvenience, hopefully this will help someone else down the line. Thanks again for providing the chromium package.

  73. alienbob

    Hi rodan.
    Interesting. Slackware 14.1 still has CONFIG_COMPAT_VDSO set to “Y” but in Slackware-current’s kernel it is set to “N”.Still, I had no issues running Chromium on Slackware64 14.1.
    Glad you solved it and thanks for documenting it here.

  74. Drakeo

    You have been fantastic Eric. I been building and working with the CEF and that means learning to build chromium.
    I am lucky I have 8 cores over 4ghz .
    I am sure you have done the best you can. And thank you.
    To get devel trunk to build in slackware64 14.1 clang=1 is a must.
    for current no problem.
    yes you need 40 gigs of free space and 23 gigs of repo and a must over 8 gigs of swap.
    if you like more than happy to build it for you.
    thanks for the script I have to rebuild it every time for pulse audio on a couple machines.
    I use chrome to watch comedy central that’s the only thing :).

  75. Paul Wright

    Thanks, Alien Bob, for your gazillion packages that are helping me get started on Slackware. I have installed Chromium 48.0.2564.109 and Pepperflash from your repository, but NaCl does not work for me. I am using an older 32 bit machine. NaCl works with Chrome, but I don’t want to use Chrome since 32 bit support is ending. Do I need to do something else to get it to work with Chromium?

  76. alienbob

    Hi Paul

    Google stopped supporting NaCl in their build system a fairly long time ago: in order to compile NaCl you need a set of pre-compiled binaries which are downloaded on the fly by the chromium.SlackBuild script. These toolchain binaries can theoretically be built from source but it is complicated and no other distro does this.
    Perhaps someone reading this post writes a build script for the missing 32-bit NaCl toolchain binaries so that in future I can create 32-bit chromium packages with NaCl support.

  77. Brachycentrus

    Installed your chromium 46. Slackbuild some months ago, upgraded to 49.0 today.

    /var/log/packages reports 49.0 only chromium pkg installed, but browser itself reports version as 46 (which appears to be correct as upgrade to newer version message istill appearing).

    Suggestions?

  78. alienbob

    Your chromium is running as a background daemon by default. Even after upgrading the package, the binary which is running in memory is the old version until you reboot.
    Or:
    Right mouseclick on the icon in the system tray, un-check the item "Let Chromium run in the background" and then stop/start your browser again.

    • Brachycentrus

      Thanks!

  79. oldpink

    Thanks for making working SlackBuilds for Chromium, but for some reason that I can’t figure out, I can no longer build with it as of the latest version, the one for Chromium version 59.0.3071.
    I tried building first the standard way, with GCC-7.1.0, but that failed.
    Then, I tried the “USE_CLANG=1” option to try building with Clang, which got the build 1/3 done before bombing out.
    Then, I tried by downgrading my GCC from 7.1.0 to 5.4.0, which bombed out again.
    I’m out of ideas on how to get it working.

  80. alienbob

    oldpink, I cheated: I built the Chromium package for Slackware-current on Slackware 14.2… the gcc7 is too painful to use for many things.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2024 Alien Pastures

Theme by Anders NorenUp ↑