diff --git a/recipes/glium/recipe.sh b/recipes/glium/recipe.sh
new file mode 100644
index 0000000000000000000000000000000000000000..1ba951965735e2ffcb6bb05f8118a7419b43ad21
--- /dev/null
+++ b/recipes/glium/recipe.sh
@@ -0,0 +1,24 @@
+GIT=https://gitlab.redox-os.org/redox-os/glium.git
+GIT_UPSTREAM=https://github.com/glium/glium.git
+BUILD_DEPENDS=(llvm mesa zlib)
+BRANCH=redox
+CARGOFLAGS="--example teapot"
+
+function recipe_build {
+    sysroot="$(realpath ../sysroot)"
+    cp -p "$ROOT/Xargo.toml" "Xargo.toml"
+    set -x
+    xargo rustc --target "$TARGET" --release ${CARGOFLAGS} \
+        -- \
+        -L "${sysroot}/lib" \
+        -C link-args="$("${PKG_CONFIG}" --libs osmesa) -lglapi -lz -lstdc++ -lc -lgcc"
+    set +x
+    skip=1
+}
+
+function recipe_stage {
+    dest="$(realpath $1)"
+    mkdir -pv "$dest/bin"
+    cp -v "target/${TARGET}/release/examples/teapot" "$dest/bin/glium"
+    skip=1
+}
diff --git a/recipes/glutin/recipe.sh b/recipes/glutin/recipe.sh
index fe95257fbbdb954471e72d55c463b57ea93b0fde..bd2beb51dbb0d9fb54b9ce21d1d0aea3ea1ea183 100644
--- a/recipes/glutin/recipe.sh
+++ b/recipes/glutin/recipe.sh
@@ -1,20 +1,18 @@
 GIT=https://gitlab.redox-os.org/redox-os/glutin.git
 GIT_UPSTREAM=https://github.com/tomaka/glutin.git
-BUILD_DEPENDS=(mesa zlib)
+BUILD_DEPENDS=(llvm mesa zlib)
 BRANCH=redox
 CARGOFLAGS="--example window"
 
 function recipe_build {
     sysroot="$(realpath ../sysroot)"
     cp -p "$ROOT/Xargo.toml" "Xargo.toml"
+    set -x
     xargo rustc --target "$TARGET" --release ${CARGOFLAGS} \
         -- \
         -L "${sysroot}/lib" \
-        -l OSMesa \
-        -l glapi \
-        -l z \
-        -l stdc++ \
-        -C link-args="-Wl,--whole-archive -lpthread -Wl,--no-whole-archive"
+        -C link-args="$("${PKG_CONFIG}" --libs osmesa) -lglapi -lz -lstdc++ -lc -lgcc"
+    set +x
     skip=1
 }
 
diff --git a/recipes/hematite/recipe.sh b/recipes/hematite/recipe.sh
index 7dfcbbd6a37fab44591b205a6a1a051d9c7acd2c..14014f56f5fd035edd8ae4f8a6864cc75b74dc35 100644
--- a/recipes/hematite/recipe.sh
+++ b/recipes/hematite/recipe.sh
@@ -1,6 +1,6 @@
 GIT=https://gitlab.redox-os.org/redox-os/hematite.git
 GIT_UPSTREAM=https://github.com/PistonDevelopers/hematite.git
-BUILD_DEPENDS=(mesa llvm zlib)
+BUILD_DEPENDS=(llvm mesa zlib)
 BRANCH=redox
 
 function recipe_build {
diff --git a/recipes/nasm/recipe.sh b/recipes/nasm/recipe.sh
index 46150a3452321c3594416f0d894b081de46c9d9e..de7fa3749be6eb4a8ae1d624b1e2f27d47922817 100644
--- a/recipes/nasm/recipe.sh
+++ b/recipes/nasm/recipe.sh
@@ -1,4 +1,4 @@
-VERSION=2.13.01
+VERSION=2.14.02
 TAR=http://www.nasm.us/pub/nasm/releasebuilds/$VERSION/nasm-$VERSION.tar.gz
 
 function recipe_version {
@@ -29,8 +29,7 @@ function recipe_clean {
 
 function recipe_stage {
     dest="$(realpath $1)"
-    make INSTALLROOT="$dest" install
-    rm -rf "$dest"/share
+    make install DESTDIR="$dest"
     find "$dest"/bin -exec ${HOST}-strip {} ';' 2> /dev/null
     skip=1
 }
diff --git a/recipes/osdemo/recipe.sh b/recipes/osdemo/recipe.sh
index f14b722a1f2407472f1e6f4e04e9d682f0840a57..37599034f40f641fc01aeb21bd174da25dab2241 100644
--- a/recipes/osdemo/recipe.sh
+++ b/recipes/osdemo/recipe.sh
@@ -1,4 +1,4 @@
-BUILD_DEPENDS=(liborbital mesa mesa_glu zlib)
+BUILD_DEPENDS=(liborbital llvm mesa mesa_glu zlib)
 
 function recipe_version {
     printf "1.0.0"
@@ -19,7 +19,7 @@ function recipe_prepare {
 function recipe_build {
     sysroot="$(realpath ../sysroot)"
     set -x
-    "${CXX}" -I "$sysroot/include" -L "$sysroot/lib" osdemo.c -o osdemo -lorbital -lOSMesa -lGLU -lglapi -lz -Wl,--whole-archive -lpthread -Wl,--no-whole-archive -lm
+    "${CXX}" -O2 -I "$sysroot/include" -L "$sysroot/lib" osdemo.c -o osdemo -lorbital $("${PKG_CONFIG}" --libs glu) -lglapi -lz
     set +x
     skip=1
 }
diff --git a/recipes/pixman/recipe.sh b/recipes/pixman/recipe.sh
index 88274193b2b29b05e37e57e360fcc400873c9206..617827dc792c9927223e9516e3ca0ec21a3f0cbb 100755
--- a/recipes/pixman/recipe.sh
+++ b/recipes/pixman/recipe.sh
@@ -13,7 +13,11 @@ function recipe_update {
 
 function recipe_build {
 	sysroot="$(realpath ../sysroot)"
-	./configure --host=${HOST} --prefix=/
+	./configure \
+		--host=${HOST} \
+		--prefix=/ \
+		--disable-shared \
+		--enable-static
 	make -j"$(nproc)"
 	skip=1
 }