<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Talk%3AViber</id>
	<title>Talk:Viber - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nixos.org/w/index.php?action=history&amp;feed=atom&amp;title=Talk%3AViber"/>
	<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Talk:Viber&amp;action=history"/>
	<updated>2026-07-27T03:35:47Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.nixos.org/w/index.php?title=Talk:Viber&amp;diff=33597&amp;oldid=prev</id>
		<title>Dusski: /* Viber on NixOS - Fix for Missing Libraries */ new section</title>
		<link rel="alternate" type="text/html" href="https://wiki.nixos.org/w/index.php?title=Talk:Viber&amp;diff=33597&amp;oldid=prev"/>
		<updated>2026-07-15T12:05:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Viber on NixOS - Fix for Missing Libraries: &lt;/span&gt; new section&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Viber on NixOS - Fix for Missing Libraries ==&lt;br /&gt;
&lt;br /&gt;
== Fix for Missing Libraries (v27.3.0.2) ==&lt;br /&gt;
&lt;br /&gt;
Viber fails to launch on NixOS due to two issues: missing runtime libraries and a broken &amp;lt;code&amp;gt;libxml2.so.2&amp;lt;/code&amp;gt; symlink in the package.&lt;br /&gt;
&lt;br /&gt;
=== Root Causes ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Missing system libraries ====&lt;br /&gt;
Viber&amp;#039;s NixOS package doesn&amp;#039;t include several required runtime libraries (&amp;lt;code&amp;gt;libxshmfence&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;libxcb-cursor&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;libxcb-util&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pipewire&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==== 2. Broken libxml2.so.2 symlink ====&lt;br /&gt;
The NixOS viber package creates a broken symlink:&lt;br /&gt;
&amp;lt;pre&amp;gt;opt/viber/lib/libxml2.so.2 -&amp;gt; /nix/store/.../libxml2-2.15.2/lib/libxml2.so&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;libxml2-2.15.2&amp;lt;/code&amp;gt; only ships &amp;lt;code&amp;gt;libxml2.so.16&amp;lt;/code&amp;gt; (new ABI). Viber&amp;#039;s bundled &amp;lt;code&amp;gt;libQt6WebEngineCore.so.6&amp;lt;/code&amp;gt; requires &amp;lt;code&amp;gt;valuePush@@LIBXML2_2.4.30&amp;lt;/code&amp;gt; from the old ABI, so it must be replaced with &amp;lt;code&amp;gt;libxml2_13&amp;lt;/code&amp;gt; (2.13.x).&lt;br /&gt;
&lt;br /&gt;
=== Working Configuration ===&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;pkgs.viber&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;environment.systemPackages&amp;lt;/code&amp;gt; with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nix&amp;quot;&amp;gt;&lt;br /&gt;
(pkgs.buildFHSEnv {&lt;br /&gt;
  name = &amp;quot;viber&amp;quot;;&lt;br /&gt;
  targetPkgs = pkgs: [&lt;br /&gt;
    (pkgs.viber.overrideAttrs (old: {&lt;br /&gt;
      postFixup = (old.postFixup or &amp;quot;&amp;quot;) + &amp;#039;&amp;#039;&lt;br /&gt;
        rm -f $out/opt/viber/lib/libxml2.so.2&lt;br /&gt;
        ln -s ${pkgs.libxml2_13.out}/lib/libxml2.so.2 $out/opt/viber/lib/libxml2.so.2&lt;br /&gt;
      &amp;#039;&amp;#039;;&lt;br /&gt;
    }))&lt;br /&gt;
    pkgs.libxshmfence&lt;br /&gt;
    pkgs.libxcb-cursor&lt;br /&gt;
    pkgs.xcbutil&lt;br /&gt;
    pkgs.pipewire&lt;br /&gt;
  ];&lt;br /&gt;
  runScript = &amp;quot;viber&amp;quot;;&lt;br /&gt;
  extraInstallCommands = &amp;#039;&amp;#039;&lt;br /&gt;
    mkdir -p $out/share/applications&lt;br /&gt;
    cp ${pkgs.viber}/share/applications/viber.desktop $out/share/applications/&lt;br /&gt;
    sed -i &amp;quot;s|Exec=.*|Exec=viber %u|&amp;quot; $out/share/applications/viber.desktop&lt;br /&gt;
    sed -i &amp;quot;s|Path=.*|Path=/opt/viber/|&amp;quot; $out/share/applications/viber.desktop&lt;br /&gt;
  &amp;#039;&amp;#039;;&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Why each package is needed ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Package !! Provides !! Why needed&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgs.libxshmfence&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;libxshmfence.so.1&amp;lt;/code&amp;gt; || Required by Viber&amp;#039;s bundled Qt WebEngine&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgs.libxml2_13.out&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;libxml2.so.2&amp;lt;/code&amp;gt; (old ABI) || Replaces broken symlink; Viber&amp;#039;s Qt needs &amp;lt;code&amp;gt;valuePush@@LIBXML2_2.4.30&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgs.libxcb-cursor&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;libxcb-cursor.so.0&amp;lt;/code&amp;gt; || Required by Qt 6.5+ xcb platform plugin&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgs.xcbutil&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;libxcb-util.so.1&amp;lt;/code&amp;gt; || Required by Qt&amp;#039;s xcb platform plugin (&amp;lt;code&amp;gt;libQt6XcbQpa.so.6&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgs.pipewire&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;libpipewire-0.3.so&amp;lt;/code&amp;gt; || Qt multimedia audio support&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Important Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;libxml2_13.out&amp;lt;/code&amp;gt; vs &amp;lt;code&amp;gt;libxml2_13&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;: The bare attribute resolves to the &amp;lt;code&amp;gt;-bin&amp;lt;/code&amp;gt; output which contains no &amp;lt;code&amp;gt;.so&amp;lt;/code&amp;gt; files. Always use &amp;lt;code&amp;gt;.out&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;xcb-util&amp;lt;/code&amp;gt; vs &amp;lt;code&amp;gt;xcbutil&amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;: Inside a NixOS config, use &amp;lt;code&amp;gt;pkgs.xcbutil&amp;lt;/code&amp;gt; (no hyphen). &amp;lt;code&amp;gt;nix eval nixpkgs#xcb-util&amp;lt;/code&amp;gt; works at the CLI but &amp;lt;code&amp;gt;pkgs.xcb-util&amp;lt;/code&amp;gt; in a config file does not.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Working directory&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;bwrap&amp;lt;/code&amp;gt; (used by &amp;lt;code&amp;gt;buildFHSEnv&amp;lt;/code&amp;gt;) does not map &amp;lt;code&amp;gt;/etc/nixos&amp;lt;/code&amp;gt; inside the sandbox. Launch &amp;lt;code&amp;gt;viber&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;, not from &amp;lt;code&amp;gt;/etc/nixos&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== What Didn&amp;#039;t Work ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Approach !! Why it failed&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;programs.nix-ld.libraries&amp;lt;/code&amp;gt; || Doesn&amp;#039;t intercept library lookups for Viber&amp;#039;s bundled libs&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;steam-run viber&amp;lt;/code&amp;gt; || Steam runtime doesn&amp;#039;t include &amp;lt;code&amp;gt;libxshmfence&amp;lt;/code&amp;gt; either&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;writeShellScriptBin&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;LD_LIBRARY_PATH&amp;lt;/code&amp;gt; || Leaks into Viber&amp;#039;s own bundled libs causing &amp;lt;code&amp;gt;libxml2&amp;lt;/code&amp;gt; version conflicts&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgs.libxml2_13&amp;lt;/code&amp;gt; (bare) || Resolves to &amp;lt;code&amp;gt;-bin&amp;lt;/code&amp;gt; output — symlink points nowhere&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pkgs.xcb-util&amp;lt;/code&amp;gt; || Attribute doesn&amp;#039;t exist in pkgs set; correct name is &amp;lt;code&amp;gt;pkgs.xcbutil&amp;lt;/code&amp;gt;&lt;br /&gt;
|} [[User:Dusski|Dusski]] ([[User talk:Dusski|talk]]) 12:05, 15 July 2026 (UTC)&lt;/div&gt;</summary>
		<author><name>Dusski</name></author>
	</entry>
</feed>