Switch commoncpp2 to ucommon to solve dependency conflicts.
libccrtp was depending on commoncpp2, and have been replaced by a version
depending on ucommon as well.
diff --git a/jni/libucommon/sources/utils/pdetach.cpp b/jni/libucommon/sources/utils/pdetach.cpp
new file mode 100644
index 0000000..eb414ad
--- /dev/null
+++ b/jni/libucommon/sources/utils/pdetach.cpp
@@ -0,0 +1,78 @@
+// Copyright (C) 2010 David Sugar, Tycho Softworks.
+//
+// This file is part of GNU uCommon C++.
+//
+// GNU uCommon C++ is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// GNU uCommon C++ is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with GNU uCommon C++. If not, see <http://www.gnu.org/licenses/>.
+
+#include <ucommon/ucommon.h>
+
+using namespace UCOMMON_NAMESPACE;
+
+static shell::flagopt helpflag('h',"--help", _TEXT("display this list"));
+static shell::flagopt althelp('?', NULL, NULL);
+static shell::stringopt error('e', "--error", _TEXT("stderr path to use"), "filename");
+static shell::stringopt input('i', "--input", _TEXT("stdin path to use"), "filename");
+static shell::stringopt output('o', "--output", _TEXT("stdout path to use"), "filename");
+
+PROGRAM_MAIN(argc, argv)
+{
+ fd_t stdio[3] = {INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE, INVALID_HANDLE_VALUE};
+ const char *argv0;
+
+ shell::bind("pdetach");
+ shell args(argc, argv);
+
+ if(is(helpflag) || is(althelp)) {
+ printf("%s\n", _TEXT("Usage: pdetach [stdio options] command [arguments...]"));
+ printf("%s\n\n", _TEXT("Create detached process"));
+ printf("%s\n", _TEXT("Options:"));
+ shell::help();
+ printf("\n%s\n", _TEXT("Report bugs to dyfet@gnu.org"));
+ PROGRAM_EXIT(0);
+ }
+
+ if(!args())
+ shell::errexit(10, "*** pdetach %s", _TEXT("no command specified"));
+
+ argv = args.argv();
+ argv0 = *argv;
+
+ if(is(input)) {
+ stdio[0] = fsys::input(*input);
+ if(stdio[0] == INVALID_HANDLE_VALUE)
+ shell::errexit(1, "*** pdetach: %s: %s",
+ _TEXT("cannot access"), *input);
+ }
+
+ if(is(output)) {
+ stdio[1] = fsys::output(*output);
+ if(stdio[1] == INVALID_HANDLE_VALUE)
+ shell::errexit(2, "*** pdetach: %s: %s",
+ _TEXT("cannot access"), *output);
+ }
+
+ if(is(error)) {
+ stdio[2] = fsys::output(*error);
+ if(stdio[2] == INVALID_HANDLE_VALUE)
+ shell::errexit(3, "*** pdetach: %s: %s",
+ _TEXT("cannot access"), *error);
+ }
+
+ if(shell::detach(argv0, argv, NULL, stdio))
+ shell::errexit(-1, "*** pdetach: %s: %s",
+ argv0, _TEXT("failed to execute"));
+
+ PROGRAM_EXIT(0);
+}
+