summary refs log tree commit diff
path: root/pkgs/applications/networking
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2008-07-28 15:55:11 +0000
committerLudovic Courtès <ludo@gnu.org>2008-07-28 15:55:11 +0000
commita898666dc497df6152c0c3b067b6fc0d88d85b01 (patch)
tree266d61592c1716d9ff5ce258024df4a9f6ac1f53 /pkgs/applications/networking
parentb0fb32ef3ca3c464a2ff21957e9e2a7c37d1d8df (diff)
Add GNU IceCat 3, GNU's free variant of Mozilla Firefox 3.
Currently, MPlayerPlugin can't be built with IceCat 3.

svn path=/nixpkgs/trunk/; revision=12437
Diffstat (limited to 'pkgs/applications/networking')
-rw-r--r--pkgs/applications/networking/browsers/icecat-3/binary.nix55
-rw-r--r--pkgs/applications/networking/browsers/icecat-3/default.nix87
2 files changed, 142 insertions, 0 deletions
diff --git a/pkgs/applications/networking/browsers/icecat-3/binary.nix b/pkgs/applications/networking/browsers/icecat-3/binary.nix
new file mode 100644
index 0000000000000..73e002435b889
--- /dev/null
+++ b/pkgs/applications/networking/browsers/icecat-3/binary.nix
@@ -0,0 +1,55 @@
+args: with args;
+
+assert stdenv.system == "i686-linux";
+
+stdenv.mkDerivation {
+  name = "firefox-3b1";
+
+  src = 
+	fetchurl {
+		url = ftp://ftp.mozilla.org/pub/firefox/releases/3.0b1/linux-i686/en-US/firefox-3.0b1.tar.bz2;
+		sha256 = "1cpcc5b07zdqyd5kiwhb4dqhy2mzbf97plsglcp6bc9054cmsylk";
+	};
+  buildInputs = [
+    pkgconfig gtk perl zip libIDL libXi libjpeg libpng zlib cairo
+    python curl coreutils atk pango glib libX11 libXrender 
+    freetype fontconfig libXft libXt
+  ];
+
+  buildPhase = "
+    additionalRpath='';
+    for i in \$buildInputs ${stdenv.glibc} ${stdenv.gcc.gcc}; do 
+      additionalRpath=\$additionalRpath:\$i/lib;  
+    done
+    for i in firefox-bin ; do
+      oldrpath=$(patchelf --print-rpath \$i)
+      patchelf --set-rpath \$oldrpath\$additionalRpath \$i
+      patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux.so.2 \$i
+    done
+  ";
+
+  installPhase = "
+    export dontPatchELF=1;
+    mkdir -p \$out
+    cp -r . \$out/firefox
+    mkdir -p \$out/bin
+    ln -s \$out/firefox/firefox \$out/bin/firefox
+
+    sed -e 's@moz_libdir=.*@moz_libdir='\$out'/firefox/@' -i \$out/bin/firefox 
+    sed -e 's@moz_libdir=.*@&\\nexport PATH=\$PATH:${coreutils}/bin@' -i \$out/bin/firefox 
+    sed -e 's@`/bin/pwd@`${coreutils}/bin/pwd@' -i \$out/bin/firefox 
+    sed -e 's@`/bin/ls@`${coreutils}/bin/ls@' -i \$out/bin/firefox 
+
+    strip -S \$out/firefox/*.so || true
+
+    echo \"running firefox -register...\"
+    \$out/firefox/firefox-bin -register || false
+  ";
+
+  meta = {
+    description = "Mozilla Firefox - the browser, reloaded";
+  };
+
+  passthru = {inherit gtk;};
+}
+
diff --git a/pkgs/applications/networking/browsers/icecat-3/default.nix b/pkgs/applications/networking/browsers/icecat-3/default.nix
new file mode 100644
index 0000000000000..b377e41ef94ad
--- /dev/null
+++ b/pkgs/applications/networking/browsers/icecat-3/default.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, lzma, pkgconfig, gtk, pango, perl, python, zip, libIDL
+, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs
+, freetype, fontconfig }:
+
+let version = "3.0.1-g1"; in
+stdenv.mkDerivation {
+  name = "icecat-${version}";
+
+  src = fetchurl {
+    url = "mirror://gnu/gnuzilla/${version}/icecat-${version}.tar.lzma";
+    sha256 = "042znp8zi5m6ihvm8lz4f07x27yjjqbs20sgzb114wrh0xa2mwd0";
+  };
+
+  buildInputs = [
+    lzma
+    pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2
+    python dbus dbus_glib pango freetype fontconfig
+    xlibs.libXi xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt
+  ];
+
+  unpackCmd = "lzma -d < $src | tar xv";
+
+  configureFlags = [
+    "--enable-application=browser"
+    "--enable-optimize"
+    "--disable-debug"
+    "--enable-strip"
+    "--with-system-jpeg"
+    "--with-system-zlib"
+    "--with-system-bz2"
+    # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support"
+    "--enable-system-cairo" # <-- disabled for now because IceCat needs a alpha version of Cairo
+    #"--enable-system-sqlite" # <-- this seems to be discouraged
+    "--disable-crashreporter"
+  ];
+
+  postInstall = ''
+    export dontPatchELF=1;
+
+    # Strip some more stuff
+    strip -S $out/lib/*/* || true
+
+    # Fix some references to /bin paths in the IceCat shell script.
+    substituteInPlace $out/bin/icecat \
+        --replace /bin/pwd "$(type -tP pwd)" \
+        --replace /bin/ls "$(type -tP ls)"
+    
+    # This fixes starting IceCat when there already is a running
+    # instance.  The `icecat' wrapper script actually expects to be
+    # in the same directory as `run-mozilla.sh', apparently.
+    libDir=$(cd $out/lib && ls -d icecat-[0-9]*)
+    test -n "$libDir"
+    cd $out/bin
+    mv icecat ../lib/$libDir/
+    ln -s ../lib/$libDir/icecat .
+
+    # Register extensions etc.
+    echo "running icecat -register..."
+    (cd $out/lib/$libDir && LD_LIBRARY_PATH=. ./icecat-bin -register) || false
+
+    # Put the GNU IceCat icon in the right place.
+    ensureDir $out/lib/$libDir/chrome/icons/default
+    ln -s ../../../icons/default.xpm  $out/lib/$libDir/chrome/icons/default/
+  ''; # */
+
+  meta = {
+    description = "GNU IceCat, a free web browser based on Mozilla Firefox";
+
+    longDescription = ''
+      Gnuzilla is the GNU version of the Mozilla suite, and GNU IceCat
+      is the GNU version of the Firefox browser.  Its main advantage
+      is an ethical one: it is entirely free software.  While the
+      source code from the Mozilla project is free software, the
+      binaries that they release include additional non-free software.
+      Also, they distribute and recommend non-free software as
+      plug-ins.  In addition, GNU IceCat includes some privacy
+      protection features.
+    '';
+
+    homepage = http://www.gnu.org/software/gnuzilla/;
+    licenses = [ "GPLv2+" "LGPLv2+" "MPLv1+" ];
+  };
+
+  passthru = {inherit gtk;};
+}
+
+