Update README.md
[termux-packages] / README.md
index a018daa..ac0a996 100644 (file)
--- a/README.md
+++ b/README.md
@@ -12,20 +12,23 @@ the actual package (so the patches and scripts to build bash are licensed under
 the same license as bash, while the patches and scripts to build python are licensed
 under the same license as python).
 
-Build environment on Ubuntu 16.04
+Build environment on Ubuntu 16.10
 =================================
-Packages are built using Ubuntu 16.04. Perform the following steps to configure a Ubuntu 16.04 installation:
+Packages are built using Ubuntu 16.10. Perform the following steps to configure a Ubuntu 16.10 installation:
 
 - Run `scripts/setup-ubuntu.sh` to install required packages and setup the `/data/` folder.
 
 - Run `scripts/setup-android-sdk.sh` to install the Android SDK and NDK at `$HOME/lib/android-{sdk,ndk}`.
 
+There is also a [Vagrantfile](scripts/Vagrantfile) available for setting up an Ubuntu environment using a virtual machine on other operating systems.
+
 Build environment using Docker
 ==============================
-On other Linux distributions than Ubuntu 16.04 (or on other platforms than Linux) the best course
+On other Linux distributions than Ubuntu 16.10 (or on other platforms than Linux) the best course
 of action is to setup a Docker container for building packages by executing:
 
-    ./scripts/run-docker.sh
+    ./scripts/run-docker.sh     # On Linux and macOS.
+     .\scripts\run-docker.ps1   # On Windows.
 
 This will setup a container (from an image created by [scripts/Dockerfile](scripts/Dockerfile))
 suitable for building packages.
@@ -68,12 +71,10 @@ Additional utilities
 ====================
 * build-all.sh: used for building all packages in the correct order (using buildorder.py).
 
-* clean-rebuild-all.sh: used for doing a clean rebuild of all packages.
+* clean.sh: used for doing a clean rebuild of all packages.
 
 * scripts/check-pie.sh: Used for verifying that all binaries are using PIE, which is required for Android 5+.
 
-* scripts/detect-hardlinks.sh: Used for finding if any packages uses hardlinks, which does not work on Android M.
-
 * scripts/check-versions.sh: used for checking for package updates.
        
 * scripts/list-packages.sh: used for listing all packages with a one-line summary.
@@ -83,7 +84,7 @@ Resources
 =========
 * [Android changes for NDK developers](https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md)
 
-* [Linux From Scratch](http://www.linuxfromscratch.org/blfs/view/svn/index.html)
+* [Linux From Scratch](http://www.linuxfromscratch.org/lfs/view/stable/)
 
 * [Beyond Linux From Scratch](http://www.linuxfromscratch.org/blfs/view/stable/)
 
@@ -120,6 +121,12 @@ Common porting problems
 * mempcpy(3) is a GNU extension. We have added it to <string.h> provided TERMUX_EXPOSE_MEMPCPY is defined,
   so use something like CFLAGS+=" -DTERMUX_EXPOSE_MEMPCPY=1" for packages expecting that function to exist.
 
+* Android uses a customized version of shared memory managemnt known as ashmem. libandroid-shmem wraps SYSV shared
+  memory calls to standard ashmem operations. Use it with `LDFLAGS+=" -landroid-shmem`.
+
+* SYSV semaphores (semget(2), semop(2) and others) aren't available.
+  Use unnamed POSIX semaphores instead (named semaphores are unimplemented).
+
 dlopen() and RTLD_* flags
 =================================
 <dlfcn.h> originally declares