st1905

Running Brave Browser on FreeBSD 12.1 using Linuxulator Centos 7 (Netflix Works)

Oct 4th, 2020 (edited)
733
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 9.85 KB | None | 0 0
  1. How to Run Brave Browser in FreeBSD 12.1 with Linuxulator C7
  2.  
  3. I assume you have a working setup with sound etc... for the linuxulator and mounted devfs on /compat/linux/dev along with a link from /tmp to /compat/linux/dev/shm
  4.  
  5. link /tmp /compat/linux/dev/shm  in devfs.conf
  6.  
  7. The next step would be installing yum package manager which you can do so by extracting first the yum rpm itself and then all dependencies manually until its satisfied.
  8.  
  9. For Yum
  10.  
  11.  python.x86_64 2.7.5-88.el7
  12.  cpio.x86_64 2.11-27.el7
  13.  diffutils.x86_64 3.3-5.el7
  14.  pygpgme.x86_64 0.3-9.el7
  15.  pyliblzma.x86_64 0.5.3-11.el7
  16.  python.x86_64 2.7.5-88.el7
  17.  python-iniparse.noarch 0.4-9.el7
  18.  python-urlgrabber.noarch 3.10-10.el7
  19.  pyxattr.x86_64 0.5.1-5.el7
  20.  rpm.x86_64 4.11.3-43.el7
  21.  rpm-python.x86_64 4.11.3-43.el7
  22.  yum-metadata-parser.x86_64 1.1.4-10.el7
  23.  yum-plugin-fastestmirror.noarch 1.1.31-54.el7_8
  24.  
  25. For Rpm
  26.  
  27.  libdb-utils.x86_64 5.3.21-25.el7
  28.  coreutils.x86_64 8.22-24.el7
  29.  curl.x86_64 7.29.0-57.el7_8.1
  30.  libacl.x86_64 2.2.51-15.el7
  31.  audit-libs.x86_64 2.8.5-4.el7
  32.  bzip2-libs.x86_64 1.0.6-13.el7
  33.  libcap.x86_64 2.22-11.el7
  34.  libdb.x86_64 5.3.21-25.el7
  35.  elfutils-libelf.x86_64 0.176-4.el7
  36.  lua.x86_64 5.1.4-15.el7
  37.  xz-libs.x86_64 5.2.2-1.el7
  38.  nss.x86_64 3.44.0-7.el7_7
  39.  popt.x86_64 1.13-16.el7
  40.  rpm-libs.x86_64 4.11.3-43.el7
  41.  libselinux.x86_64 2.5-15.el7
  42.  zlib.x86_64 1.2.7-18.el7
  43.  
  44. Download and extract them to /compat/linux
  45.  
  46. After that yum only needs /dev/urandom since you have mounted devfs on /compat/linux/dev you don`t need to do anything, yum should run now.
  47.  
  48. Now you can download the brave browser rpm from https://github.com/brave/brave-browser/releases/  (Nightly releases do work too)
  49.  
  50. Install the rpm package using yum install local rpm
  51.  
  52. It will complain about glibc but list the dependencies, install all required dependencies using yum.
  53.  
  54. After dependencies are finished installing, install the rpm with nodeps flag
  55.  
  56. rpm -ivh brave-browser-nightly-1.17.9-1.x86_64.rpm --nodeps  (Like this)
  57.  
  58. It will not run of course because of glibc
  59.  
  60. Download glibc http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
  61.  
  62. configure it with the prefix --prefix=/opt/glibc-2.18   and install
  63.  
  64. patch the brave binary for the new interpreter
  65.  
  66. Yum install patchelf
  67.  
  68. patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 --set-rpath /opt/glibc-2.18/lib:/usr/lib64 /opt/brave.com/brave-nightly/brave
  69.  
  70. run the browser now
  71.  
  72. #!/compat/linux/bin/sh
  73.  
  74. SCRIPT=$(readlink -f "$0")
  75. USR_DIRECTORY=$(readlink -f $(dirname $SCRIPT)/..)
  76.  
  77. BRAVE_PATH="/opt/brave.com/brave-nightly/brave"
  78.  
  79.  
  80. export LD_LIBRARY_PATH=/usr/local/steam-utils/lib64/fakeudev:/usr/local/steam-utils/lib64/fakepulse:/lib64/nss
  81. export LD_PRELOAD=/usr/local/steam-utils/lib64/webfix/webfix.so
  82.  
  83. "$BRAVE_PATH"  --no-sandbox  --no-zygote --in-process-gpu --v=0 "$@"
  84.  
  85. You can save above us /bin/brave
  86.  
  87. You need steam-utils from https://github.com/shkhln/linuxulator-steam-utils/
  88.  
  89. If brave complains for missing libraries at startup copy them from /usr/lib64/  to /opt/glibc-2.18/lib/
  90.  
  91. That`s basically it.
  92.  
  93. When you first visit netflix it will ask to download it then ask again to enable, netflix works after that.
  94.  
  95. Sometimes when you exit the browser, there is a segfault, that`s the only issue i had so far.
  96.  
  97. Here is the ldd output which lists dynamic dependencies of Brave Browser after everything
  98.  
  99. linux_vdso.so.1 =>  (0x00007ffffffff000)
  100.     libdl.so.2 => /opt/glibc-2.18/lib/libdl.so.2 (0x000000080c600000)
  101.     libpthread.so.0 => /opt/glibc-2.18/lib/libpthread.so.0 (0x000000080ca00000)
  102.     librt.so.1 => /opt/glibc-2.18/lib/librt.so.1 (0x000000080ce00000)
  103.     libgobject-2.0.so.0 => /opt/glibc-2.18/lib/libgobject-2.0.so.0 (0x000000080d200000)
  104.     libglib-2.0.so.0 => /opt/glibc-2.18/lib/libglib-2.0.so.0 (0x000000080d600000)
  105.     libnss3.so => /usr/lib64/libnss3.so (0x000000080da00000)
  106.     libnssutil3.so => /usr/lib64/libnssutil3.so (0x000000080de00000)
  107.     libsmime3.so => /usr/lib64/libsmime3.so (0x000000080e200000)
  108.     libnspr4.so => /usr/lib64/libnspr4.so (0x000000080e600000)
  109.     libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x000000080ea00000)
  110.     libatk-bridge-2.0.so.0 => /usr/lib64/libatk-bridge-2.0.so.0 (0x000000080ee00000)
  111.     libX11.so.6 => /opt/glibc-2.18/lib/libX11.so.6 (0x000000080f200000)
  112.     libX11-xcb.so.1 => /opt/glibc-2.18/lib/libX11-xcb.so.1 (0x000000080f600000)
  113.     libxcb.so.1 => /opt/glibc-2.18/lib/libxcb.so.1 (0x000000080fa00000)
  114.     libxcb-dri3.so.0 => /opt/glibc-2.18/lib/libxcb-dri3.so.0 (0x000000080fe00000)
  115.     libXcomposite.so.1 => /opt/glibc-2.18/lib/libXcomposite.so.1 (0x0000000810200000)
  116.     libXdamage.so.1 => /opt/glibc-2.18/lib/libXdamage.so.1 (0x0000000810600000)
  117.     libXext.so.6 => /opt/glibc-2.18/lib/libXext.so.6 (0x0000000810a00000)
  118.     libXfixes.so.3 => /opt/glibc-2.18/lib/libXfixes.so.3 (0x0000000810e00000)
  119.     libcups.so.2 => /usr/lib64/libcups.so.2 (0x0000000811200000)
  120.     libdbus-1.so.3 => /opt/glibc-2.18/lib/libdbus-1.so.3 (0x0000000811600000)
  121.     libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x0000000811a00000)
  122.     libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x0000000811e00000)
  123.     libgio-2.0.so.0 => /opt/glibc-2.18/lib/libgio-2.0.so.0 (0x0000000812200000)
  124.     libm.so.6 => /opt/glibc-2.18/lib/libm.so.6 (0x0000000812600000)
  125.     libXrandr.so.2 => /opt/glibc-2.18/lib/libXrandr.so.2 (0x0000000812a00000)
  126.     libgbm.so.1 => /usr/lib64/libgbm.so.1 (0x0000000812e00000)
  127.     libasound.so.2 => /usr/lib64/libasound.so.2 (0x0000000813200000)
  128.     libpangocairo-1.0.so.0 => /opt/glibc-2.18/lib/libpangocairo-1.0.so.0 (0x0000000813600000)
  129.     libpango-1.0.so.0 => /opt/glibc-2.18/lib/libpango-1.0.so.0 (0x0000000813a00000)
  130.     libcairo.so.2 => /opt/glibc-2.18/lib/libcairo.so.2 (0x0000000813e00000)
  131.     libatspi.so.0 => /usr/lib64/libatspi.so.0 (0x0000000814200000)
  132.     libgtk-3.so.0 => /usr/lib64/libgtk-3.so.0 (0x0000000814600000)
  133.     libgdk-3.so.0 => /usr/lib64/libgdk-3.so.0 (0x0000000815000000)
  134.     libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x0000000815400000)
  135.     libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x0000000815800000)
  136.     libc.so.6 => /opt/glibc-2.18/lib/libc.so.6 (0x0000000815c00000)
  137.     /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x0000000001021000)
  138.     libpcre.so.1 => /lib64/libpcre.so.1 (0x0000000816000000)
  139.     libffi.so.6 => /lib64/libffi.so.6 (0x0000000816400000)
  140.     libplc4.so => /lib64/libplc4.so (0x0000000816800000)
  141.     libplds4.so => /lib64/libplds4.so (0x0000000816c00000)
  142.     libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x0000000817000000)
  143.     libXau.so.6 => /lib64/libXau.so.6 (0x0000000817400000)
  144.     libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x0000000817800000)
  145.     libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000000817c00000)
  146.     libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000000818000000)
  147.     libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000000818400000)
  148.     libssl.so.10 => /lib64/libssl.so.10 (0x0000000818800000)
  149.     libcrypto.so.10 => /lib64/libcrypto.so.10 (0x0000000818c00000)
  150.     libavahi-common.so.3 => /lib64/libavahi-common.so.3 (0x0000000819200000)
  151.     libavahi-client.so.3 => /lib64/libavahi-client.so.3 (0x0000000819600000)
  152.     libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000000819a00000)
  153.     libz.so.1 => /lib64/libz.so.1 (0x0000000819e00000)
  154.     libsystemd.so.0 => /lib64/libsystemd.so.0 (0x000000081a200000)
  155.     libselinux.so.1 => /lib64/libselinux.so.1 (0x000000081a600000)
  156.     libresolv.so.2 => /lib64/libresolv.so.2 (0x000000081aa00000)
  157.     libmount.so.1 => /lib64/libmount.so.1 (0x000000081ae00000)
  158.     libXrender.so.1 => /lib64/libXrender.so.1 (0x000000081b200000)
  159.     libwayland-server.so.0 => /lib64/libwayland-server.so.0 (0x000000081b600000)
  160.     libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x000000081ba00000)
  161.     libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x000000081be00000)
  162.     libfreetype.so.6 => /lib64/libfreetype.so.6 (0x000000081c200000)
  163.     libthai.so.0 => /lib64/libthai.so.0 (0x000000081c600000)
  164.     libfribidi.so.0 => /lib64/libfribidi.so.0 (0x000000081ca00000)
  165.     libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x000000081ce00000)
  166.     libEGL.so.1 => /lib64/libEGL.so.1 (0x000000081d200000)
  167.     libpng15.so.15 => /lib64/libpng15.so.15 (0x000000081d600000)
  168.     libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x000000081da00000)
  169.     libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x000000081de00000)
  170.     libGL.so.1 => /lib64/libGL.so.1 (0x000000081e200000)
  171.     libXi.so.6 => /lib64/libXi.so.6 (0x000000081e600000)
  172.     libcairo-gobject.so.2 => /lib64/libcairo-gobject.so.2 (0x000000081ea00000)
  173.     libwayland-client.so.0 => /lib64/libwayland-client.so.0 (0x000000081ee00000)
  174.     libepoxy.so.0 => /lib64/libepoxy.so.0 (0x000000081f200000)
  175.     libXinerama.so.1 => /lib64/libXinerama.so.1 (0x000000081f600000)
  176.     libXcursor.so.1 => /lib64/libXcursor.so.1 (0x000000081fa00000)
  177.     libxkbcommon.so.0 => /lib64/libxkbcommon.so.0 (0x000000081fe00000)
  178.     libwayland-cursor.so.0 => /lib64/libwayland-cursor.so.0 (0x0000000820200000)
  179.     libwayland-egl.so.1 => /lib64/libwayland-egl.so.1 (0x0000000820600000)
  180.     libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x0000000820a00000)
  181.     libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000000820e00000)
  182.     libfreebl3.so => /lib64/libfreebl3.so (0x0000000821200000)
  183.     libcap.so.2 => /lib64/libcap.so.2 (0x0000000821600000)
  184.     liblzma.so.5 => /lib64/liblzma.so.5 (0x0000000821a00000)
  185.     liblz4.so.1 => /lib64/liblz4.so.1 (0x0000000821e00000)
  186.     libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x0000000822200000)
  187.     libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x0000000822600000)
  188.     libdw.so.1 => /lib64/libdw.so.1 (0x0000000822a00000)
  189.     libblkid.so.1 => /lib64/libblkid.so.1 (0x0000000822e00000)
  190.     libuuid.so.1 => /lib64/libuuid.so.1 (0x0000000823200000)
  191.     libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x0000000823600000)
  192.     libbz2.so.1 => /lib64/libbz2.so.1 (0x0000000823a00000)
  193.     libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x0000000823e00000)
  194.     libGLX.so.0 => /lib64/libGLX.so.0 (0x0000000824200000)
  195.     libattr.so.1 => /lib64/libattr.so.1 (0x0000000824600000)
  196.     libelf.so.1 => /lib64/libelf.so.1 (0x0000000824a00000)
  197.     libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x0000000824e00000)
  198.  
  199.  
  200.  
  201.  
Add Comment
Please, Sign In to add comment