summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorjanus <janus@xn--kn-1ia.guru>2015-11-28 15:06:15 +0000
committerjanus <janus@xn--kn-1ia.guru>2016-01-01 17:01:13 +0000
commit55aa9163cca34107b3e3ce7ce8d7bb76fa5717a0 (patch)
tree3e35217e4909c42136534ea37d887b04baa7a402 /pkgs
parenta472d836f674fe388018aaee75983e3400a77db4 (diff)
downloadnixpkgs-55aa9163cca34107b3e3ce7ce8d7bb76fa5717a0.tar
nixpkgs-55aa9163cca34107b3e3ce7ce8d7bb76fa5717a0.tar.gz
nixpkgs-55aa9163cca34107b3e3ce7ce8d7bb76fa5717a0.tar.bz2
nixpkgs-55aa9163cca34107b3e3ce7ce8d7bb76fa5717a0.tar.lz
nixpkgs-55aa9163cca34107b3e3ce7ce8d7bb76fa5717a0.tar.xz
nixpkgs-55aa9163cca34107b3e3ce7ce8d7bb76fa5717a0.tar.zst
nixpkgs-55aa9163cca34107b3e3ce7ce8d7bb76fa5717a0.zip
FreeBSD: minor fixes, add notes and make stdenv more robust
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/boost/generic.nix2
-rw-r--r--pkgs/development/libraries/expat/default.nix1
-rw-r--r--pkgs/development/libraries/icu/default.nix2
-rw-r--r--pkgs/development/libraries/kerberos/heimdal.nix2
-rw-r--r--pkgs/development/libraries/libelf-freebsd/default.nix1
-rw-r--r--pkgs/development/libraries/libossp-uuid/default.nix2
-rw-r--r--pkgs/development/libraries/libtiff/default.nix2
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix11
-rw-r--r--pkgs/development/libraries/zlib/default.nix3
-rw-r--r--pkgs/stdenv/freebsd/default.nix122
-rw-r--r--pkgs/stdenv/freebsd/trivial-bootstrap.sh364
-rw-r--r--pkgs/top-level/all-packages.nix14
12 files changed, 235 insertions, 291 deletions
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
index 5b497aa76b8..90e60d59da0 100644
--- a/pkgs/development/libraries/boost/generic.nix
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -1,5 +1,5 @@
 { stdenv, icu, expat, zlib, bzip2, python, fixDarwinDylibNames
-, toolset ? if stdenv.isDarwin || stdenv.isFreeBSD then "clang" else null
+, toolset ? if stdenv.cc.isClang then "clang" else null
 , enableRelease ? true
 , enableDebug ? false
 , enableSingleThreaded ? false
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index 78e2da3ffdb..766ef6c11c5 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -11,7 +11,6 @@ stdenv.mkDerivation rec {
   patches = [ ./CVE-2015-1283.patch ];
 
   configureFlags = stdenv.lib.optionalString stdenv.isFreeBSD "--with-pic";
-  # NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isFreeBSD) "-fPIC";
 
   meta = with stdenv.lib; {
     homepage = http://www.libexpat.org/;
diff --git a/pkgs/development/libraries/icu/default.nix b/pkgs/development/libraries/icu/default.nix
index a2196d26524..148e4f02a94 100644
--- a/pkgs/development/libraries/icu/default.nix
+++ b/pkgs/development/libraries/icu/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation {
   '';
 
   configureFlags = "--disable-debug" +
-    stdenv.lib.optionalString stdenv.isDarwin " --enable-rpath";
+    stdenv.lib.optionalString (stdenv.isFreeBSD || stdenv.isDarwin) " --enable-rpath";
 
   # remove dependency on bootstrap-tools in early stdenv build
   postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix
index 3f8ed7c9de4..402087b2ded 100644
--- a/pkgs/development/libraries/kerberos/heimdal.nix
+++ b/pkgs/development/libraries/kerberos/heimdal.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   ] ++ optionals (!libOnly) [
     "--with-openldap=${openldap}"
   ] ++ optionals (!stdenv.isFreeBSD) [
-    "--with-berkeley-db=${db}"
+    "--with-berkeley-db=${db}" # XXX: this should of course work, but does not, as of nov 2015 (db==db58)
     "--with-capng"
   ];
 
diff --git a/pkgs/development/libraries/libelf-freebsd/default.nix b/pkgs/development/libraries/libelf-freebsd/default.nix
index 3e09d4c6cd4..26fe2d90963 100644
--- a/pkgs/development/libraries/libelf-freebsd/default.nix
+++ b/pkgs/development/libraries/libelf-freebsd/default.nix
@@ -7,6 +7,7 @@ stdenv.mkDerivation (rec {
   src = fetchsvn {
     url = svn://svn.code.sf.net/p/elftoolchain/code/trunk;
     rev = (stdenv.lib.strings.toInt version);
+    name = "elftoolchain-${version}";
   };
 
   buildInputs = [ gnum4 tet ];
diff --git a/pkgs/development/libraries/libossp-uuid/default.nix b/pkgs/development/libraries/libossp-uuid/default.nix
index ddfc2a5132c..72fa1a29992 100644
--- a/pkgs/development/libraries/libossp-uuid/default.nix
+++ b/pkgs/development/libraries/libossp-uuid/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
     sha256= "11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0";
   };
 
-  configureFlags = stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
+  configureFlags = stdenv.lib.optionalString stdenv.isFreeBSD "--with-pic";
 
   meta = with stdenv.lib; {
     homepage = http://www.ossp.org/pkg/lib/uuid/;
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index 7e9c11d700a..2c559d221ab 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  doCheck = !stdenv.isFreeBSD;
+  doCheck = true;
 
   meta = with stdenv.lib; {
     description = "Library and utilities for working with the TIFF image file format";
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 25b547bf1cf..17e0485b29f 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
       -datadir $out/share/${name}
       -translationdir $out/share/${name}/translations
     "
-  '' + optionalString stdenv.isDarwin ''
+  '' + optionalString stdenv.cc.isClang ''
     sed -i 's/QMAKE_CC = gcc/QMAKE_CC = clang/' mkspecs/common/g++-base.conf
     sed -i 's/QMAKE_CXX = g++/QMAKE_CXX = clang++/' mkspecs/common/g++-base.conf
   '';
@@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
     ''
       -v -no-separate-debug-info -release -no-fast -confirm-license -opensource
 
-      -opengl -xrender -xrandr -xinerama -xcursor -xinput -xfixes -fontconfig
+      -${if stdenv.isFreeBSD then "no-" else ""}opengl -xrender -xrandr -xinerama -xcursor -xinput -xfixes -fontconfig
       -qdbus -${if cups == null then "no-" else ""}cups -glib -dbus-linked -openssl-linked
 
       ${if mysql != null then "-plugin" else "-no"}-sql-mysql -system-sqlite
@@ -122,17 +122,18 @@ stdenv.mkDerivation rec {
   # The following libraries are only used in plugins
   buildInputs =
     [ cups # Qt dlopen's libcups instead of linking to it
-      mysql.lib postgresql sqlite libjpeg libmng libtiff icu ]
+      postgresql sqlite libjpeg libmng libtiff icu ]
+    ++ optionals (mysql != null) [ mysql.lib ]
     ++ optionals gtkStyle [ gtk gdk_pixbuf ];
 
   nativeBuildInputs = [ perl pkgconfig which ];
 
   enableParallelBuilding = false;
 
-  NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin
+  NIX_CFLAGS_COMPILE = optionalString (stdenv.isFreeBSD || stdenv.isDarwin)
     "-I${glib}/include/glib-2.0 -I${glib}/lib/glib-2.0/include";
 
-  NIX_LDFLAGS = optionalString stdenv.isDarwin
+  NIX_LDFLAGS = optionalString (stdenv.isFreeBSD || stdenv.isDarwin)
     "-lglib-2.0";
 
   preBuild = optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 99be5162010..7a6f480215c 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -31,7 +31,8 @@ stdenv.mkDerivation (rec {
 
   # As zlib takes part in the stdenv building, we don't want references
   # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
-  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-static-libgcc " + stdenv.lib.optionalString (stdenv.isFreeBSD) "-fPIC";
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (!stdenv.isDarwin) "-static-libgcc "
+                     + stdenv.lib.optionalString (stdenv.isFreeBSD) "-fPIC";
 
   crossAttrs = {
     dontStrip = static;
diff --git a/pkgs/stdenv/freebsd/default.nix b/pkgs/stdenv/freebsd/default.nix
index fcc3a14d487..5455c3d8fb9 100644
--- a/pkgs/stdenv/freebsd/default.nix
+++ b/pkgs/stdenv/freebsd/default.nix
@@ -18,114 +18,48 @@ rec {
     ln      = "/bin/ln";
   };
 
-  stage0 = rec {
-    fetchurl = import ../../build-support/fetchurl {
-      inherit stdenv;
-      curl = bootstrapTools;
-    };
-
-    stdenv = import ../generic {
-      inherit system config;
-      name         = "stdenv-freebsd-boot-0";
-      shell        = "/usr/local/bin/bash";
-      initialPath  = [ bootstrapTools ];
-      fetchurlBoot = fetchurl;
-      cc           = null;
-    };
-  };
-
-  buildTools = { #import ../../os-specific/freebsd/command-line-tools
-    inherit (stage0) stdenv fetchurl;
-    xar  = bootstrapTools;
-    gzip = bootstrapTools;
-    cpio = bootstrapTools;
-  };
-
-  preHook = ''
-    export NIX_IGNORE_LD_THROUGH_GCC=1
-    # export NIX_DONT_SET_RPATH=1
-    export NIX_NO_SELF_RPATH=1
-    dontFixLibtool=1
-    stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
-    xargsFlags=" "
-  '';
-
-  stage1 = rec {
-    nativePrefix = "/usr";
-
+  fetchurl = import ../../build-support/fetchurl {
     stdenv = import ../generic {
       name = "stdenv-freebsd-boot-1";
-
-      inherit system config;
-      inherit (stage0.stdenv) shell fetchurlBoot;
-
-      initialPath = stage0.stdenv.initialPath ++ [ nativePrefix ];
-
-      preHook = preHook + "\n" + ''
-        export NIX_LDFLAGS_AFTER+=" -L/usr/lib"
-        export NIX_ENFORCE_PURITY=
-        export NIX_CFLAGS_COMPILE+=" -isystem ${nativePrefix}/include/c++/v1"
-        export NIX_CFLAGS_LINK+=" -Wl,-rpath,${nativePrefix}/lib"
-      '';
-
-      cc = import ../../build-support/cc-wrapper {
-        nativeTools  = true;
-        nativePrefix = nativePrefix;
-        nativeLibc   = true;
-        stdenv       = stage0.stdenv;
-        shell        = "/usr/local/bin/bash";
-        cc           = {
-          name    = "clang-9.9.9";
-          cc      = "/usr";
-          outPath = nativePrefix;
-        };
-        isClang      = true;
-      };
-    };
-    pkgs = allPackages {
-      inherit system platform;
-      bootStdenv = stdenv;
-    };
-  };
-
-  stage2 = rec {
-    stdenv = import ../generic {
-      name = "stdenv-freebsd-boot-2";
-
       inherit system config;
-      inherit (stage1.stdenv) shell fetchurlBoot preHook cc;
 
-      initialPath = [ "/usr/local/bin" ] ++ stage1.stdenv.initialPath;
-    };
-    pkgs = allPackages {
-      inherit system platform;
-      bootStdenv = stdenv;
+      initialPath  = null;
+      shell        = "foo";
+      fetchurlBoot = null;
+      cc = null;
     };
+    curl = bootstrapTools;
   };
 
-  stage3 = with stage2; import ../generic {
+  stdenvFreeBSD = import ../generic {
     name = "stdenv-freebsd-boot-3";
 
     inherit system config;
-    inherit (stdenv) fetchurlBoot;
-
-    initialPath = [ bootstrapTools ];
 
-    preHook = preHook + "\n" + ''
-      export NIX_ENFORCE_PURITY=1
-    '';
+    initialPath  = [ bootstrapTools ];
+    shell        = "${bootstrapTools}/bin/bash";
+    fetchurlBoot = fetchurl;
 
     cc = import ../../build-support/cc-wrapper {
-      inherit stdenv;
-      nativeTools   = true;
-      nativePrefix  = "/usr/local";
-      nativeLibc    = true;
-      cc            = stage2.stdenv.cc; #pkgs.llvmPackages.clang-unwrapped; 
-      isClang       = true;
+      nativeTools  = true;
+      nativePrefix = "/usr";
+      nativeLibc   = true;
+      stdenv = import ../generic {
+        inherit system config;
+        name         = "stdenv-freebsd-boot-0";
+        initialPath  = [ bootstrapTools ];
+        shell = stdenvFreeBSD.shell;
+        fetchurlBoot = fetchurl;
+        cc           = null;
+      };
+      cc           = {
+        name    = "clang-9.9.9";
+        cc      = "/usr";
+        outPath = "/usr";
+      };
+      isClang      = true;
     };
 
-    shell = "/usr/local/bin/bash";
+    preHook = ''export NIX_NO_SELF_RPATH=1'';
   };
-
-  stdenvFreeBSD = stage3;
 }
diff --git a/pkgs/stdenv/freebsd/trivial-bootstrap.sh b/pkgs/stdenv/freebsd/trivial-bootstrap.sh
index 1d7478e158a..1dc59ea7dbc 100644
--- a/pkgs/stdenv/freebsd/trivial-bootstrap.sh
+++ b/pkgs/stdenv/freebsd/trivial-bootstrap.sh
@@ -1,189 +1,193 @@
-
-# Building bootstrap tools
 echo Building the trivial bootstrap environment...
-
-# needed FreeBSD packages:
-# findutils gcpio gawk gnugrep coreutils bash gsed gtar gmake xar binutils gpatch lbzip2 diffutils
+echo
+echo Needed FreeBSD packages:
+echo findutils gcpio gawk gnugrep coreutils bash gsed gtar gmake xar binutils gpatch lbzip2 diffutils
 
 $mkdir -p $out/bin
 
-$ln -s $ln $out/bin/ln
-
-PATH=$out/bin/
-
-cd $out/bin
-
-ln -s $mkdir
-
-ln -s /usr/local/bin/bash
-ln -s /bin/sh
-
-ln -s /usr/local/bin/gmake make
-
-ln -s /usr/local/bin/lbzip2
-
-ln -s /usr/local/bin/gdiff diff
-
-ln -s /usr/bin/locale
-
-ln -s /usr/bin/more
-
-ln -s /usr/bin/bzip2
-ln -s /usr/bin/bunzip2
-ln -s /usr/bin/bzcat
-ln -s /usr/bin/bzip2recover
-
-ln -s /usr/bin/xz
-ln -s /usr/bin/unxz
-ln -s /usr/bin/xzcat
-ln -s /usr/bin/lzma
-ln -s /usr/bin/unlzma
-ln -s /usr/bin/lzcat
-
-ln -s /usr/local/bin/gcp cp
-ln -s /usr/local/bin/gdd dd
-ln -s /usr/local/bin/gmv mv
-ln -s /usr/local/bin/grm rm
-ln -s /usr/local/bin/gls ls
-ln -s /bin/ps ps
-ln -s /usr/local/bin/gcat cat
-ln -s /usr/local/bin/gecho echo
-ln -s /usr/local/bin/gexpr expr
-ln -s /usr/local/bin/gtest test
-ln -s /usr/local/bin/gdate date
-ln -s /usr/local/bin/gchmod chmod
-ln -s /usr/local/bin/grmdir rmdir
-ln -s /usr/local/bin/gsleep sleep
-ln -s /bin/hostname hostname
-
-ln -s /usr/local/bin/gid id
-ln -s /usr/local/bin/god od
-ln -s /usr/local/bin/gtr tr
-ln -s /usr/local/bin/gwc wc
-ln -s /usr/local/bin/gcut cut
-ln -s /usr/bin/cmp cmp
-ln -s /usr/local/bin/gsed sed
-ln -s /usr/local/bin/gtar tar
-ln -s /usr/local/bin/xar xar
-ln -s /usr/local/bin/gawk awk
-ln -s /usr/local/bin/genv env
-ln -s /usr/local/bin/gtee tee
-ln -s /usr/local/bin/gcomm comm
-ln -s /usr/local/bin/gcpio cpio
-ln -s /usr/local/bin/curl curl
-ln -s /usr/local/bin/gfind find
-ln -s /usr/local/bin/grep grep #other grep is in /usr/bin
-ln -s /usr/bin/gzip
-ln -s /usr/bin/gunzip
-ln -s /usr/bin/zcat
-ln -s /usr/local/bin/ghead head
-ln -s /usr/bin/tail tail
-ln -s /usr/local/bin/guniq uniq
-ln -s /usr/bin/less less
-ln -s /usr/local/bin/gtrue true
-ln -s /usr/bin/diff diff
-ln -s /usr/local/bin/egrep egrep
-ln -s /usr/local/bin/fgrep fgrep
-ln -s /usr/local/bin/gpatch patch
-ln -s /usr/local/bin/guname uname
-ln -s /usr/local/bin/gtouch touch
-ln -s /usr/local/bin/gsplit split
-ln -s /usr/local/bin/gxargs xargs
-ln -s /usr/bin/which which
-ln -s /usr/local/bin/ginstall install
-ln -s /usr/local/bin/gbasename basename
-ln -s /usr/local/bin/gdirname dirname
-ln -s /usr/local/bin/greadlink readlink
-
-ln -fs /usr/local/bin/gln ln
-ln -s /usr/local/bin/gyes yes
-ln -s /usr/local/bin/gwhoami whoami
-ln -s /usr/local/bin/gvdir vdir
-ln -s /usr/local/bin/gusers users
-ln -s /usr/local/bin/guptime uptime
-ln -s /usr/local/bin/gunlink unlink
-ln -s /usr/local/bin/gtty tty
-ln -s /usr/local/bin/gunexpand unexpand
-ln -s /usr/local/bin/gtsort tsort
-ln -s /usr/local/bin/gtruncate truncate
-ln -s /usr/local/bin/gtimeout timeout
-ln -s /usr/local/bin/gtac tac
-ln -s /usr/local/bin/gsync sync
-ln -s /usr/local/bin/gsum sum
-ln -s /usr/local/bin/gstty stty
-ln -s /usr/local/bin/gstdbuf stdbuf
-ln -s /usr/local/bin/gsort sort
-ln -s /usr/local/bin/gruncon runcon
-ln -s /usr/local/bin/gseq seq
-ln -s /usr/local/bin/gsha1sum sha1sum
-ln -s /usr/local/bin/gsha224sum sha224sum
-ln -s /usr/local/bin/gsha256sum sha256sum
-ln -s /usr/local/bin/gsha384sum sha384sum
-ln -s /usr/local/bin/gsha512sum sha512sum
-ln -s /usr/local/bin/gshred shred
-ln -s /usr/local/bin/gshuf shuf
-ln -s /usr/local/bin/grealpath realpath
-ln -s "/usr/local/bin/g[" "["
-ln -s /usr/local/bin/gbase64 base64
-ln -s /usr/local/bin/gchcon chcon
-ln -s /usr/local/bin/gchgrp chgrp
-ln -s /usr/local/bin/gchown chown
-ln -s /usr/local/bin/gchroot chroot
-ln -s /usr/local/bin/gcksum cksum
-ln -s /usr/local/bin/gcsplit csplit
-ln -s /usr/local/bin/gdf df
-ln -s /usr/local/bin/gdircolors dircolors
-ln -s /usr/local/bin/gdu du
-ln -s /usr/local/bin/gexpand expand
-ln -s /usr/local/bin/gfactor factor
-ln -s /usr/local/bin/gfalse false
-ln -s /usr/local/bin/gfmt fmt
-ln -s /usr/local/bin/gfold fold
-ln -s /usr/local/bin/ggroups groups
-ln -s /usr/local/bin/ghostid hostid
-ln -s /usr/local/bin/gjoin join
-ln -s /usr/local/bin/gkill kill
-ln -s /usr/local/bin/glink link
-ln -s /usr/local/bin/glogname logname
-ln -s /usr/local/bin/gmd5sum md5sum
-ln -s /usr/local/bin/gmkdir mkdir
-ln -s /usr/local/bin/gmkfifo mkfifo
-ln -s /usr/local/bin/gmknod mknod
-ln -s /usr/local/bin/gmktemp mktemp
-ln -s /usr/local/bin/gnice nice
-ln -s /usr/local/bin/gnl nl
-ln -s /usr/local/bin/gnohup nohup
-ln -s /usr/local/bin/gnproc nproc
-ln -s /usr/local/bin/gnumfmt numfmt
-ln -s /usr/local/bin/gnustat nustat
-ln -s /usr/local/bin/gpaste paste
-ln -s /usr/local/bin/gpathchk pathchk
-ln -s /usr/local/bin/gpinky pinky
-ln -s /usr/local/bin/gpr pr
-ln -s /usr/local/bin/gprintenv printenv
-ln -s /usr/local/bin/gprintf printf
-ln -s /usr/local/bin/gptx ptx
-ln -s /usr/local/bin/gpwd pwd
+ln () {
+  if test "x$2" != x -a -f "$out/bin/$2"; then
+    echo "$2 exists"
+    exit 1;
+  fi;
+  if test ! -f "$1"; then
+    echo Target "$2" does not exist
+    exit 1;
+  fi
+  $ln -s "$1" "$out/bin/$2"
+}
+
+ln /usr/local/bin/bash
+ln /bin/sh
+
+ln /usr/local/bin/gmake make
+
+ln /usr/local/bin/lbzip2
+
+ln /usr/local/bin/gdiff diff
+
+ln /usr/bin/locale
+
+ln /usr/bin/more
+
+ln /usr/bin/hexdump # for bitcoin
+
+ln /usr/bin/bzip2
+ln /usr/bin/bunzip2
+ln /usr/bin/bzcat
+ln /usr/bin/bzip2recover
+
+ln /usr/bin/xz
+ln /usr/bin/unxz
+ln /usr/bin/xzcat
+ln /usr/bin/lzma
+ln /usr/bin/unlzma
+ln /usr/bin/lzcat
+
+ln /usr/local/bin/gcp cp
+ln /usr/local/bin/gdd dd
+ln /usr/local/bin/gmv mv
+ln /usr/local/bin/grm rm
+ln /usr/local/bin/gls ls
+ln /bin/ps ps
+ln /usr/local/bin/gcat cat
+ln /usr/local/bin/gecho echo
+ln /usr/local/bin/gexpr expr
+ln /usr/local/bin/gtest test
+ln /usr/local/bin/gdate date
+ln /usr/local/bin/gchmod chmod
+ln /usr/local/bin/grmdir rmdir
+ln /usr/local/bin/gsleep sleep
+ln /bin/hostname hostname
+
+ln /usr/local/bin/gid id
+ln /usr/local/bin/god od
+ln /usr/local/bin/gtr tr
+ln /usr/local/bin/gwc wc
+ln /usr/local/bin/gcut cut
+ln /usr/bin/cmp cmp
+ln /usr/local/bin/gsed sed
+ln /usr/local/bin/gtar tar
+ln /usr/local/bin/xar xar
+ln /usr/local/bin/gawk awk
+ln /usr/local/bin/genv env
+ln /usr/local/bin/gtee tee
+ln /usr/local/bin/gcomm comm
+ln /usr/local/bin/gcpio cpio
+ln /usr/local/bin/curl curl
+ln /usr/local/bin/gfind find
+ln /usr/local/bin/grep grep #other grep is in /usr/bin
+ln /usr/bin/gzip
+ln /usr/bin/gunzip
+ln /usr/bin/zcat
+ln /usr/local/bin/ghead head
+ln /usr/bin/tail tail
+ln /usr/local/bin/guniq uniq
+ln /usr/bin/less less
+ln /usr/local/bin/gtrue true
+# ln /usr/bin/diff diff
+ln /usr/local/bin/egrep egrep
+ln /usr/local/bin/fgrep fgrep
+ln /usr/local/bin/gpatch patch
+ln /usr/local/bin/guname uname
+ln /usr/local/bin/gtouch touch
+ln /usr/local/bin/gsplit split
+ln /usr/local/bin/gxargs xargs
+ln /usr/bin/which which
+ln /usr/local/bin/ginstall install
+ln /usr/local/bin/gbasename basename
+ln /usr/local/bin/gdirname dirname
+ln /usr/local/bin/greadlink readlink
+
+ln /usr/local/bin/gln ln
+ln /usr/local/bin/gyes yes
+ln /usr/local/bin/gwhoami whoami
+ln /usr/local/bin/gvdir vdir
+ln /usr/local/bin/gusers users
+ln /usr/local/bin/guptime uptime
+ln /usr/local/bin/gunlink unlink
+ln /usr/local/bin/gtty tty
+ln /usr/local/bin/gunexpand unexpand
+ln /usr/local/bin/gtsort tsort
+ln /usr/local/bin/gtruncate truncate
+ln /usr/local/bin/gtimeout timeout
+ln /usr/local/bin/gtac tac
+ln /usr/local/bin/gsync sync
+ln /usr/local/bin/gsum sum
+ln /usr/local/bin/gstty stty
+ln /usr/local/bin/gstdbuf stdbuf
+ln /usr/local/bin/gsort sort
+ln /usr/local/bin/gruncon runcon
+ln /usr/local/bin/gseq seq
+ln /usr/local/bin/gsha1sum sha1sum
+ln /usr/local/bin/gsha224sum sha224sum
+ln /usr/local/bin/gsha256sum sha256sum
+ln /usr/local/bin/gsha384sum sha384sum
+ln /usr/local/bin/gsha512sum sha512sum
+ln /usr/local/bin/gshred shred
+ln /usr/local/bin/gshuf shuf
+ln /usr/local/bin/grealpath realpath
+ln "/usr/local/bin/g[" "["
+ln /usr/local/bin/gbase64 base64
+ln /usr/local/bin/gchcon chcon
+ln /usr/local/bin/gchgrp chgrp
+ln /usr/local/bin/gchown chown
+ln /usr/local/bin/gchroot chroot
+ln /usr/local/bin/gcksum cksum
+ln /usr/local/bin/gcsplit csplit
+ln /usr/local/bin/gdf df
+ln /usr/local/bin/gdircolors dircolors
+ln /usr/local/bin/gdu du
+ln /usr/local/bin/gexpand expand
+ln /usr/local/bin/gfactor factor
+ln /usr/local/bin/gfalse false
+ln /usr/local/bin/gfmt fmt
+ln /usr/local/bin/gfold fold
+ln /usr/local/bin/ggroups groups
+ln /usr/local/bin/ghostid hostid
+ln /usr/local/bin/gjoin join
+ln /usr/local/bin/gkill kill
+ln /usr/local/bin/glink link
+ln /usr/local/bin/glogname logname
+ln /usr/local/bin/gmd5sum md5sum
+ln /usr/local/bin/gmkdir mkdir
+ln /usr/local/bin/gmkfifo mkfifo
+ln /usr/local/bin/gmknod mknod
+ln /usr/local/bin/gmktemp mktemp
+ln /usr/local/bin/gnice nice
+ln /usr/local/bin/gnl nl
+ln /usr/local/bin/gnohup nohup
+ln /usr/local/bin/gnproc nproc
+ln /usr/local/bin/gnumfmt numfmt
+ln /usr/local/bin/gnustat nustat
+ln /usr/local/bin/gpaste paste
+ln /usr/local/bin/gpathchk pathchk
+ln /usr/local/bin/gpinky pinky
+ln /usr/local/bin/gpr pr
+ln /usr/local/bin/gprintenv printenv
+ln /usr/local/bin/gprintf printf
+ln /usr/local/bin/gptx ptx
+ln /usr/local/bin/gpwd pwd
 
 # binutils
 # pkg info -l binutils | grep usr/local/bin
-ln -s /usr/local/bin/addr2line
-ln -s /usr/local/bin/ar
-ln -s /usr/local/bin/as
-ln -s /usr/local/bin/c++filt
-ln -s /usr/local/bin/dwp
-ln -s /usr/local/bin/elfedit
-ln -s /usr/local/bin/gprof
-ln -s /usr/local/bin/ld
-ln -s /usr/local/bin/ld.bfd
-ln -s /usr/local/bin/ld.gold
-ln -s /usr/local/bin/nm
-ln -s /usr/local/bin/objcopy
-ln -s /usr/local/bin/objdump
-ln -s /usr/local/bin/ranlib
-ln -s /usr/local/bin/readelf
-ln -s /usr/local/bin/size
-ln -s /usr/local/bin/strings
-ln -s /usr/local/bin/strip
+ln /usr/local/bin/addr2line
+ln /usr/local/bin/ar
+ln /usr/local/bin/as
+ln /usr/local/bin/c++filt
+ln /usr/local/bin/dwp
+ln /usr/local/bin/elfedit
+ln /usr/local/bin/gprof
+ln /usr/local/bin/ld
+ln /usr/local/bin/ld.bfd
+ln /usr/local/bin/ld.gold
+ln /usr/local/bin/nm
+ln /usr/local/bin/objcopy
+ln /usr/local/bin/objdump
+ln /usr/local/bin/ranlib
+ln /usr/local/bin/readelf
+ln /usr/local/bin/size
+ln /usr/local/bin/strings
+ln /usr/local/bin/strip
 
 #pkg info -l llvm37 | grep usr/local/bin
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e1b48ea8569..0e8e030a18a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6099,8 +6099,8 @@ let
 
   aprutil = callPackage ../development/libraries/apr-util {
     bdbSupport = true;
-    db = if stdenv.isFreeBSD then db44 else db;
-    # XXX: only the db_158 interface was available through
+    db = if stdenv.isFreeBSD then db47 else db;
+    # XXX: only the db_185 interface was available through
     #      apr with db58 on freebsd (nov 2015), for unknown reasons
   };
 
@@ -8163,6 +8163,9 @@ let
     mesa = mesa_noglu;
     inherit (pkgs.gnome) libgnomeui GConf gnome_vfs;
     cups = if stdenv.isLinux then cups else null;
+
+    # XXX: mariadb doesn't built on fbsd as of nov 2015
+    mysql = if (!stdenv.isFreeBSD) then mysql else null;
   };
 
   qt48Full = appendToName "full" (qt48.override {
@@ -9559,9 +9562,10 @@ let
     ruby = ruby_2_1;
   };
 
-  shishi = if stdenv.isFreeBSD
-  then callPackage ../servers/shishi { pam = null; }
-  else callPackage ../servers/shishi { };
+  shishi = callPackage ../servers/shishi {
+      pam = if stdenv.isLinux then pam else null;
+      # see also openssl, which has/had this same trick
+  };
 
   sipcmd = callPackage ../applications/networking/sipcmd { };