I followed the build-instructions to install darling in my zorinos (ubuntu based) notebook
the first error was at ~48% because libdbus-1.so was not installed, I installed it from apt install libdbus-1-dev (it is not there in the docs ...)
this is the second time
I'm a newbie and can't read C code, please help ... I just want to see the macos shell on my linux notebook XD
LOG
[ 61%] Built target CoreAudio
Scanning dependencies of target py27__scproxy
Scanning dependencies of target py26__scproxy
[ 61%] Built target python
[ 61%] Built target xcselect
[ 61%] Built target py26__locale
[ 61%] Built target arch
[ 61%] Built target sw_vers
[ 61%] Building C object src/frameworks/ApplicationServices/QD/CMakeFiles/QD.dir/src/QD.c.o
Scanning dependencies of target PlistBuddy
Scanning dependencies of target perl
[ 61%] Built target ATS
[ 61%] Built target IOKit
[ 61%] Building C object src/external/python/2.7/Python-2.7.10/CMakeFiles/py27__scproxy.dir/Mac/Modules/_scproxy.o
[ 61%] Building C object src/external/python/2.6/Python-2.6.9/CMakeFiles/py26__scproxy.dir/Mac/Modules/_scproxy.o
Scanning dependencies of target DiskArbitration
Scanning dependencies of target AppleSystemInfo
[ 61%] Built target installer
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
In file included from /home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:3:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:3:22: error: expected identifier or '('
typedef enum CGError : int32_t {
^
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
} CGError;
^
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:17:9: error: must use 'enum' tag to refer to type 'CGError'
typedef CGError CGDisplayErr;
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
[ 61%] Building C object src/PlistBuddy/CMakeFiles/PlistBuddy.dir/PlistBuddy.c.o
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:23:21: error: must use 'enum' tag to refer to type 'CGError'
COREGRAPHICS_EXPORT CGError CGCaptureAllDisplays(void);
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:24:21: error: must use 'enum' tag to refer to type 'CGError'
COREGRAPHICS_EXPORT CGError CGReleaseAllDisplays(void);
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:29:21: error: must use 'enum' tag to refer to type 'CGError'
COREGRAPHICS_EXPORT CGError CGGetOnlineDisplayList(uint32_t maxDisplays, CGDirectDisplayID *onlineDisplays, uint32_t *displayCount);
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:31:21: error: must use 'enum' tag to refer to type 'CGError'
COREGRAPHICS_EXPORT CGError CGGetActiveDisplayList(uint32_t maxDisplays, CGDirectDisplayID *activeDisplays, uint32_t *displayCount);
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:33:21: error: must use 'enum' tag to refer to type 'CGError'
COREGRAPHICS_EXPORT CGError CGGetDisplaysWithOpenGLDisplayMask(CGOpenGLDisplayMask mask, uint32_t maxDisplays, CGDirectDisplayID *displays, uint32_t *matchingDisplayCount);
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:37:21: error: must use 'enum' tag to refer to type 'CGError'
COREGRAPHICS_EXPORT CGError CGGetDisplaysWithPoint(CGPoint point, uint32_t maxDisplays, CGDirectDisplayID *displays, uint32_t *matchingDisplayCount);
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:39:21: error: must use 'enum' tag to refer to type 'CGError'
COREGRAPHICS_EXPORT CGError CGGetDisplaysWithRect(CGRect rect, uint32_t maxDisplays, CGDirectDisplayID *displays, uint32_t *matchingDisplayCount);
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
In file included from /home/tushar/Documents/darling_sources/src/frameworks/ApplicationServices/QD/src/QD.c:25:
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGDirectDisplay.h:55:21: error: must use 'enum' tag to refer to type 'CGError'
COREGRAPHICS_EXPORT CGError CGDisplaySwitchToMode(CGDirectDisplayID display, CFDictionaryRef mode);
^
enum
/home/tushar/Documents/darling_sources/src/external/cocotron/CoreGraphics/include/CoreGraphics/CGError.h:15:3: note: enum 'CGError' is hidden by a non-type declaration of 'CGError' here
} CGError;
^
1 warning and 10 errors generated.
src/frameworks/ApplicationServices/QD/CMakeFiles/QD.dir/build.make:62: recipe for target 'src/frameworks/ApplicationServices/QD/CMakeFiles/QD.dir/src/QD.c.o' failed
make[2]: *** [src/frameworks/ApplicationServices/QD/CMakeFiles/QD.dir/src/QD.c.o] Error 1
CMakeFiles/Makefile2:50720: recipe for target 'src/frameworks/ApplicationServices/QD/CMakeFiles/QD.dir/all' failed
make[1]: *** [src/frameworks/ApplicationServices/QD/CMakeFiles/QD.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 61%] Building C object src/external/perl/CMakeFiles/perl.dir/versioner/versioner.c.o
[ 61%] Building C object src/frameworks/DiskArbitration/CMakeFiles/DiskArbitration.dir/DADisk.c.o
[ 61%] Linking C executable perl
[ 61%] Building C object src/frameworks/DiskArbitration/CMakeFiles/DiskArbitration.dir/DADissenter.c.o
Scanning dependencies of target DebugSymbols
[ 61%] Linking C shared library _scproxy.so
[ 61%] Linking C executable PlistBuddy
[ 61%] Linking C shared library _scproxy.so
[ 61%] Building C object src/private-frameworks/AppleSystemInfo/CMakeFiles/AppleSystemInfo.dir/src/AppleSystemInfo.c.o
[ 61%] Built target perl
/home/tushar/Documents/darling_sources/src/frameworks/DiskArbitration/DADisk.c:163:9: warning: incompatible pointer types returning 'CFStringRef' (aka 'const struct __CFString *') from a function with result type 'const char * _Nullable'
[-Wincompatible-pointer-types]
return disk->path;
^~~~~~~~~~
1 warning generated.
[ 61%] Building C object src/frameworks/DiskArbitration/CMakeFiles/DiskArbitration.dir/DASession.c.o
[ 61%] Building C object src/private-frameworks/DebugSymbols/CMakeFiles/DebugSymbols.dir/functions.c.o
[ 61%] Built target PlistBuddy
[ 61%] Building C object src/private-frameworks/DebugSymbols/CMakeFiles/DebugSymbols.dir/DebugSymbols.c.o
[ 61%] Built target py27__scproxy
/home/tushar/Documents/darling_sources/src/frameworks/DiskArbitration/DADisk.c:163:9: warning: incompatible pointer types returning 'CFStringRef' (aka 'const struct __CFString *') from a function with result type 'const char * _Nullable'
[-Wincompatible-pointer-types]
return disk->path;
^~~~~~~~~~
1 warning generated.
[ 61%] Building C object src/private-frameworks/AppleSystemInfo/CMakeFiles/AppleSystemInfo.dir/src/functions.c.o
[ 61%] Built target py26__scproxy
[ 61%] Linking C shared library AppleSystemInfo
ld: warning: OS dylibs should not add rpaths (linker option: -rpath) (Xcode build setting: LD_RUNPATH_SEARCH_PATHS)
ld: warning: static initializer found in 'CMakeFiles/AppleSystemInfo.dir/src/functions.c.o'. Use -no_inits to make this an error. Use -no_warn_inits to suppress warning
ld: warning: OS dylibs should not add rpaths (linker option: -rpath) (Xcode build setting: LD_RUNPATH_SEARCH_PATHS)
ld: warning: static initializer found in 'CMakeFiles/AppleSystemInfo.dir/src/functions.c.o'. Use -no_inits to make this an error. Use -no_warn_inits to suppress warning
[ 61%] Built target AppleSystemInfo
[ 61%] Linking C shared library DiskArbitration
[ 61%] Linking C shared library DebugSymbols
clang: warning: argument unused during compilation: '-nostdinc' [-Wunused-command-line-argument]
ld: warning: OS dylibs should not add rpaths (linker option: -rpath) (Xcode build setting: LD_RUNPATH_SEARCH_PATHS)
ld: warning: static initializer found in 'CMakeFiles/DiskArbitration.dir/DADisk.c.o'. Use -no_inits to make this an error. Use -no_warn_inits to suppress warning
ld: warning: static initializer found in 'CMakeFiles/DiskArbitration.dir/DADissenter.c.o'. Use -no_inits to make this an error. Use -no_warn_inits to suppress warning
ld: warning: static initializer found in 'CMakeFiles/DiskArbitration.dir/DASession.c.o'. Use -no_inits to make this an error. Use -no_warn_inits to suppress warning
ld: warning: OS dylibs should not add rpaths (linker option: -rpath) (Xcode build setting: LD_RUNPATH_SEARCH_PATHS)
ld: warning: static initializer found in 'CMakeFiles/DiskArbitration.dir/DADisk.c.o'. Use -no_inits to make this an error. Use -no_warn_inits to suppress warning
ld: warning: static initializer found in 'CMakeFiles/DiskArbitration.dir/DADissenter.c.o'. Use -no_inits to make this an error. Use -no_warn_inits to suppress warning
ld: warning: static initializer found in 'CMakeFiles/DiskArbitration.dir/DASession.c.o'. Use -no_inits to make this an error. Use -no_warn_inits to suppress warning
ld: warning: OS dylibs should not add rpaths (linker option: -rpath) (Xcode build setting: LD_RUNPATH_SEARCH_PATHS)
ld: warning: OS dylibs should not add rpaths (linker option: -rpath) (Xcode build setting: LD_RUNPATH_SEARCH_PATHS)
[ 61%] Built target DiskArbitration
[ 61%] Built target DebugSymbols
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
What version of clang are you using? (clang --version)
tushar@Notebook:~/Documents/darling_sources/build$ clang --version
clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
should I change to clang 9 or something ?
Yeah, Clang 6 is too old for Darling. We really should add a note in the docs about that.
oh thanks! will try now ...
update
I installed clang-9 and modified the darling_sources/CMakeLists.txt file
# This allows setting the compiler with -DCMAKE_C_COMPILER when configuring.
if (NOT DEFINED CMAKE_C_COMPILER)
find_program(CMAKE_C_COMPILER NAMES
# "clang"
# "clang-4.0"
# "clang-6.0"
# "clang-7"
"clang-9"
# "clang-10"
)
endif(NOT DEFINED CMAKE_C_COMPILER)
if (NOT DEFINED CMAKE_CXX_COMPILER)
find_program(CMAKE_CXX_COMPILER NAMES
# "clang++"
# "clang++-4.0"
# "clang++-6.0"
# "clang++-7"
"clang++-9"
# "clang++-10"
)
endif(NOT DEFINED CMAKE_CXX_COMPILER)
than I tried building darling multiple times and found more missing dependencies, so I installed all those
I tried to build it again
LOG
```bash
tushar@Notebook:~$ cd Documents/darling_sources/b
basic-headers/ build/
tushar@Notebook:~$ cd Documents/darling_sources/build/
tushar@Notebook:~/Documents/darling_sources/build$ make -j8
[ 10%] Built target bsdln
(...)
[ 10%] Built target system_asl-dSYM
Scanning dependencies of target WTF
[ 10%] Built target commonCrypto-dSYM
[ 10%] Built target system_blocks-dSYM
[ 10%] Built target compiler_rt-dSYM
[ 10%] Built target xpc-dSYM
[ 10%] Built target libdispatch_shared-dSYM
[ 10%] Built target platform
[ 10%] Built target system_pthread
[ 10%] Built target system_trace
[ 10%] Built target system_kernel
[ 10%] Built target system_c_firstpass-dSYM
[ 10%] Built target system_c-dSYM
[ 10%] Built target gcc_s-dSYM
[ 10%] Built target system_pthread-dSYM
[ 10%] Built target platform-dSYM
[ 10%] Built target system_dyld
[ 10%] Built target system_kernel-dSYM
[ 10%] Built target system_trace-dSYM
[ 10%] Built target system_copyfile
[ 10%] Built target system_dnssd
[ 10%] Built target system_quarantine
[ 10%] Built target system_coreservices
[ 10%] Built target system_networkextension
[ 10%] Built target system_dnssd-dSYM
[ 10%] Built target removefile
[ 10%] Building CXX object src/external/WTF/CMakeFiles/WTF.dir/wtf/Assertions.cpp.o
[ 10%] Built target system_copyfile-dSYM
[ 10%] Built target system_quarantine-dSYM
[ 10%] Building CXX object src/external/WTF/CMakeFiles/WTF.dir/wtf/text/AtomicString.cpp.o
[ 10%] Built target system_networkextension-dSYM
[ 10%] Building CXX object src/external/WTF/CMakeFiles/WTF.dir/wtf/text/AtomicStringImpl.cpp.o
[ 10%] Built target sandbox
[ 10%] Building CXX object src/external/WTF/CMakeFiles/WTF.dir/wtf/AutodrainedPoolMac.mm.o
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/wtf/text/AtomicString.cpp:24:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/wtf/text/AtomicString.h:28:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/include/wtf/text/WTFString.h:29:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/include/wtf/text/ASCIIFastPath.h:31:
/usr/lib/llvm-9/lib/clang/9.0.0/include/emmintrin.h:2308:19: error: use of undeclared identifier '__builtin_ia32_pavgb128'
return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b);
^
/usr/lib/llvm-9/lib/clang/9.0.0/include/emmintrin.h:2328:19: error: use of undeclared identifier '__builtin_ia32_pavgw128'
return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b);
^
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/wtf/Assertions.cpp:43:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/include/wtf/LoggingAccumulator.h:28:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/include/wtf/text/WTFString.h:29:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/include/wtf/text/ASCIIFastPath.h:31:
/usr/lib/llvm-9/lib/clang/9.0.0/include/emmintrin.h:2308:19: error: use of undeclared identifier '__builtin_ia32_pavgb128'
return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b);
^
/usr/lib/llvm-9/lib/clang/9.0.0/include/emmintrin.h:2328:19: error: use of undeclared identifier '__builtin_ia32_pavgw128'
return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b);
^
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/wtf/text/AtomicStringImpl.cpp:32:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/wtf/text/StringHash.h:25:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/include/wtf/text/AtomicString.h:28:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/include/wtf/text/WTFString.h:29:
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/include/wtf/text/ASCIIFastPath.h:31:
/usr/lib/llvm-9/lib/clang/9.0.0/include/emmintrin.h:2308:19: error: use of undeclared identifier '__builtin_ia32_pavgb128'
return (__m128i)__builtin_ia32_pavgb128((__v16qi)__a, (__v16qi)__b);
^
/usr/lib/llvm-9/lib/clang/9.0.0/include/emmintrin.h:2328:19: error: use of undeclared identifier '__builtin_ia32_pavgw128'
return (__m128i)__builtin_ia32_pavgw128((__v8hi)__a, (__v8hi)__b);
^
2 errors generated.
2 errors generated.
2 errors generated.
src/external/WTF/CMakeFiles/WTF.dir/build.make:102: recipe for target 'src/external/WTF/CMakeFiles/WTF.dir/wtf/text/AtomicString.cpp.o' failed
make[2]: *** [src/external/WTF/CMakeFiles/WTF.dir/wtf/text/AtomicString.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
src/external/WTF/CMakeFiles/WTF.dir/build.make:78: recipe for target 'src/external/WTF/CMakeFiles/WTF.dir/wtf/Assertions.cpp.o' failed
make[2]: *** [src/external/WTF/CMakeFiles/WTF.dir/wtf/Assertions.cpp.o] Error 1
src/external/WTF/CMakeFiles/WTF.dir/build.make:126: recipe for target 'src/external/WTF/CMakeFiles/WTF.dir/wtf/text/AtomicStringImpl.cpp.o' failed
make[2]: *** [src/external/WTF/CMakeFiles/WTF.dir/wtf/text/AtomicStringImpl.cpp.o] Error 1
[ 10%] Built target removefile-dSYM
[ 10%] Built target system_coreservices-dSYM
[ 10%] Built target system_dyld-dSYM
[ 10%] Built target sandbox-dSYM
In file included from /home/tushar/Documents/darling_sources/src/external/WTF/wtf/AutodrainedPoolMac.mm:32:
In file included from /home/tushar/Documents/darling_sources/src/external/foundation/include/Foundation/Foundation.h:118:
/home/tushar/Documents/darling_sources/src/external/foundation/include/Foundation/NSConnection.h:62:5: error: unknown type name
'atomic_bool'; did you mean 'std::atomic_bool'?
atomic_bool _isValid;
^~~~~~~~~~~
std::atomic_bool
/home/tushar/Documents/darling_sources/src/external/libcxx/include/atomic:2387:36: note: 'std::atomic_bool' declared here
typedef atomic
@tshrpl : What other unsatisfied dependencies did you resolve after libdbus-1.so? I am building on Ubuntu 19.10 with clang 9.0 and ran into the libdbus-1.so error. After installing libdbus-1-dev I wiped the build directory and started again with configure. The build died on
darling/build $ make |& tee build.log
[...]
[ 81%] Built target QuickLook
[ 81%] Linking C shared library Quartz
ld: file not found: /home/awilbur/src/darling/build/src/QuickLook/QuickLook
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: * [src/frameworks/Quartz/CMakeFiles/Quartz.dir/build.make:118: src/fr
ameworks/Quartz/Quartz] Error 1
make[1]: [CMakeFiles/Makefile2:53803: src/frameworks/Quartz/CMakeFiles/Quart
z.dir/all] Error 2
make: ** [Makefile:130: all] Error 2
Attaching the complete build.log
build.log
I'm not sure what is wrong without a lot of makefile sleuthing (this being an unexplored build system and codebase for me). Would save me a lot of time if someone who knows what's going on here could point me in the right direction.
@r-wilbur I added a fix for that yesterday. Once you update it, this issue should be fixed.
@CuriousTommy: Thanks for letting me know. I’ll update and rebuild a few hours from now when I can work on darling some more. Did that fix get merged in conjunction with resolving an issue on github? I’m asking because it would be instructive for me to be able to see the change.
Did that fix get merged in conjunction with resolving an issue on github?
No, I found the fix myself. While I was moving some files around, I was using a dirty build, so I didn't see the issue at first. But when I did a clean build, I saw the issue and fixed it.
So I updated the source code, wiped out the old build, and started to rebuild:
cd darling
git pull
git submodule init
git submodule update
rm -rf build
mkdir build && cd build
cmake .. |& tee cmake.log
[...]
-- Checking for module 'fontconfig'
-- Found fontconfig, version 2.13.1
CMake Error at src/external/cocotron/AppKit/CMakeLists.txt:31 (message):
xkbfile not found
-- Configuring incomplete, errors occurred!
See also "/home/awilbur/src/darling/build/CMakeFiles/CMakeOutput.log".
I have attached the logs.
cmake.log
CMakeError.log
CMakeOutput.log
Last time I configured without any errors. I don't think these errors bode well for a successful build.
From what I see in the cmake output it looks like something associated with "cocotron" was hoping to find "xkbfile". The problem outlined in CMakeError.log seems to be that the ASM compiler isn't GNU.
Anybody who has some words of suggestion--what to do next--would be appreciated. This seems like a regression.
xkbfile not found
You're missing a library. Go to the darling docs and follows the instructions for installing the required dependencies.
Would someone please add 'libdbus-1-dev' to the Ubuntu build instructions as a required dependency? I see it is in the Debian install dependency lists but not Ubuntu and I had to install it because the build failed as detailed above in this bug/issue.
I re-ran the Ubuntu install dependency list command from the build instructions and the only thing it installed was libxkbfile-dev. Subsequent clean build fails with identical errors. Is there something else I should run to create xkbfile? I read all the 'info xkb*' pages for the xkb utilities but didn't see anything that I could tell would create xkbfile: xkbbell xkbcomp xkbevd xkbprint xkbvleds xkbwatch
I found and fixed the problem in my build tree, committed the change in git but don't know how to contribute the fix.
It concerns src/external/cocotron/AppKit/CMakeLists.txt
I added the change and committed it in the "src/external/cocotron" git "submodule?".
What next?
Here's the relevant part of output of:
cd src/external/cocotron/AppKit
git log -p CMakeLists.txt
xkb_diff.txt
And the new, error free, output from cmake.
cmake.log
Likewise, I cloned the darling-docs project and fixed the Ubuntu install dependencies command in src/build-instructions.md, committed the change in git but don't know how to contribute the fix.
cd darling-docs/src
git log -1 -p build-instructions.md >../docs_diff.txt
docs_diff.txt
@r-lind You need to fork the repositories in question, push your changes into a branch and then you'll see GitHub show a button for creating a Pull Request from your commits.
@LubosD: Thanks for elucidating the git/github workflow for darling. I’ll do that very thing in a few hours when I get another chance to work on darling.
@r-wilbur I think the missing dependency was one off on my end, probably same with you ..... but it would really help if you fork the docs and add this package .... also please add a note somewhere to use updated clang version
I'm still having build problems :cry:
LOG
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:142:29: error: use of undeclared identifier 'FAN_REPORT_FID'
g_fanotify = fanotify_init(FAN_REPORT_FID, 0);
^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:149:52: error: use of undeclared identifier 'FAN_MARK_FILESYSTEM'
int rv = fanotify_mark(g_fanotify, FAN_MARK_ADD | FAN_MARK_FILESYSTEM,
^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:150:3: error: use of undeclared identifier 'FAN_CREATE'
FAN_CREATE | FAN_DELETE | FAN_MOVED_FROM | FAN_MOVED_TO | FAN_MODIFY | FAN_ONDIR, AT_FDCWD, "/");
^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:150:16: error: use of undeclared identifier 'FAN_DELETE'
FAN_CREATE | FAN_DELETE | FAN_MOVED_FROM | FAN_MOVED_TO | FAN_MODIFY | FAN_ONDIR, AT_FDCWD, "/");
^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:150:29: error: use of undeclared identifier 'FAN_MOVED_FROM'
FAN_CREATE | FAN_DELETE | FAN_MOVED_FROM | FAN_MOVED_TO | FAN_MODIFY | FAN_ONDIR, AT_FDCWD, "/");
^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:150:46: error: use of undeclared identifier 'FAN_MOVED_TO'
FAN_CREATE | FAN_DELETE | FAN_MOVED_FROM | FAN_MOVED_TO | FAN_MODIFY | FAN_ONDIR, AT_FDCWD, "/");
^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:168:33: warning: format specifies type 'unsigned int' but the argument has type '__u64' (aka 'unsigned long long') [-Wformat]
printf("Event mask: 0x%x\n", metadata->mask);
~~ ^~~~~~~~~~~~~~
%llx
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:170:11: error: incomplete definition of type 'struct fanotify_event_info_fid'
if (fid->hdr.info_type == FAN_EVENT_INFO_TYPE_FID)
~~~^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:169:11: note: forward declaration of 'struct fanotify_event_info_fid'
struct fanotify_event_info_fid* fid = (struct fanotify_event_info_fid *) (metadata + 1);
^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:170:30: error: use of undeclared identifier 'FAN_EVENT_INFO_TYPE_FID'
if (fid->hdr.info_type == FAN_EVENT_INFO_TYPE_FID)
^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:172:56: error: incomplete definition of type 'struct fanotify_event_info_fid'
struct file_handle* fh = (struct file_handle *) fid->handle;
~~~^
/home/tushar/Documents/darling_sources/src/frameworks/CoreServices/src/FSEvents/fseventsd.m:169:11: note: forward declaration of 'struct fanotify_event_info_fid'
struct fanotify_event_info_fid* fid = (struct fanotify_event_info_fid *) (metadata + 1);
^
1 warning and 9 errors generated.
src/frameworks/CoreServices/src/FSEvents/CMakeFiles/fseventsd.dir/build.make:62: recipe for target 'src/frameworks/CoreServices/src/FSEvents/CMakeFiles/fseventsd.dir/fseventsd.m.o' failed
make[2]: *** [src/frameworks/CoreServices/src/FSEvents/CMakeFiles/fseventsd.dir/fseventsd.m.o] Error 1
CMakeFiles/Makefile2:51870: recipe for target 'src/frameworks/CoreServices/src/FSEvents/CMakeFiles/fseventsd.dir/all' failed
make[1]: *** [src/frameworks/CoreServices/src/FSEvents/CMakeFiles/fseventsd.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
can somene help ?
@LubosD @CuriousTommy I successfully forked darling-docs on github, created a branch on github, cloned to my machine, reproduced the changes I had previously made, committed, pushed to github, and created a pull request. Thank you for merging it! I have since synchronized my fork on both my machine and github with upstream for both branches.
That was the good news.
When I tried forking darling on github, github.com didn't complain. I created a branch 'fix-config' in my fork on github--also without complaint. Then I tried cloning to my local machine with the same syntax given in the build instructions:
git clone --recursive https://github.com/r-wilbur/darling.git
At this git complained vociferously when it got to the submodules in src/external. I'm not sure what to do as I see nothing on github about submodules. They mention subtrees but nothing about any special treatment when forking. Is the problem with the fork, the syntax of the clone request, or something else?
Darling has git submodules configured in a way such that git will try to clone submodules relative to the upstream of the master repo. In your case it tries to clone them from your github account. This should be fixed by replacing the .. inside .gitmodules with https://github.com/darlinghq/darling and then running git submodule update --init --recursive inside your local clone.
I was poking around in darling/src/.gitmodules and noticed that url = ../darling-glut was missing the extension '.git' so I added the extension.
I set the remote in my clone using:
~/src/darling$ git remote add upstream https://github.com/darlinghq/darling.git
~/src/darling$ git remote -v
origin https://github.com/r-wilbur/darling.git (fetch)
origin https://github.com/r-wilbur/darling.git (push)
upstream https://github.com/darlinghq/darling.git (fetch)
upstream https://github.com/darlinghq/darling.git (push)
Then I did a
git fetch upstream
git checkout master
git add .gitmodules
git commit -m "Fix glut submodule url."
git merge upstream/master
git push origin master
Then I saw @bjorn3 's post and tried the exact replacement of s'..'https://github.com/darlinghq/darling' throughout .gitmodules which turned, for example:
url = ../darling-libdispatch.git
into
url = https://github.com/darlinghq/darling/darling-libdispatch.git
I ran
~/src/darling$ git submodule update --init --recursive
Cloning into '/home/awilbur/src/darling/src/external/DSTools'...
remote: Repository not found.
fatal: repository 'https://github.com/r-wilbur/darling-DSTools.git/' not found
fatal: clone of 'https://github.com/r-wilbur/darling-DSTools.git' into submodule path '/home/awilbur/src/darling/src/external/DSTools' failed
Failed to clone 'src/external/DSTools'. Retry scheduled
[... same for each submodule]
I noticed that the repository darlinghq/darling-libdispatch gives its URL as:
https://github.com/darlinghq/darling-libdispatch.git
and assumed that was probably what you had meant so I modified the URL's in .gitmodules to that form and retried with the same results.
~/src/darling$ git submodule update --init --recursive
I'm reading git/github documentation looking for a clue. Grateful for the advice you've given and happy to try additional suggestions.
I poked around my ~/src/darling/.git/ and found that 'config' had inherited the initial misconception about the submodules all living under https://github.com/r-wilbur/
I changed those s/r-wilbur/darlinghq/ and ran
~/src/darling/$ git submodule update --init --recursive
with the desired effect! git checked out all the listed modules--and their submodules!
So, I decided to see whether I could avoid changing the .gitmodules and still have success. I did an initial clone from my github fork
~/src$ git clone --recursive https://github.com/r-wilbur/darling.git
[which failed only on the submodules and gave me github.com username prompts in quadruplicate]
I ended this with Ctrl-C in the submodules as I couldn't satisfy the github.com login prompts that were falling all over each other.
I edited the ~/src/darling/.git/config file and changed the submodule specifications from r-wilbur to darlinghq. Then I added an upstream remote of https://github.com/darlinghq/darling.git
~/src/darling$ git remote add upstream https://github.com/darlinghq/darling.git
~/src/darling$ git submodule update --init --recursive
[It checked out everything!]
Now if I'm editing darling/src/external/cocotron/AppKit/CMakeLists.txt to fix a bug in the configuration problem, do submit changes from a darling repository branch?
I was poking around in darling/src/.gitmodules and noticed that url = ../darling-glut was missing the extension '.git' so I added the extension.
Oops... I forgot to add in the .git. Thanks for catching that.
Now if I'm editing darling/src/external/cocotron/AppKit/CMakeLists.txt to fix a bug in the configuration problem, do submit changes from a darling repository branch?
No, you need to apply the changes to the fork you created and submit a pull request. Just like what you did with the other PR you submitted.
@CuriousTommy Yes, I made a change in my fork of darling. Then I realized I could fork darling-cocotron, set my fork as 'origin' and darling-cocotron as 'upstream', and push my changes in a new branch to the origin repository and then create a pull request from that. Looks like it worked as planned. Is that what you were advocating?
~/src/darling/src/external/cocotron/AppKit$ git remote add upstream https://github.com/darlinghq/darling-cocotron.git
~/src/darling/src/external/cocotron/AppKit$ git remote -v
origin https://github.com/darlinghq/darling-cocotron.git (fetch)
origin https://github.com/darlinghq/darling-cocotron.git (push)
upstream https://github.com/darlinghq/darling-cocotron.git (fetch)
upstream https://github.com/darlinghq/darling-cocotron.git (push)
~/src/darling/src/external/cocotron/AppKit$ git remote set-url origin http://github.com/r-wilbur/darling-cocotron.git
~/src/darling/src/external/cocotron/AppKit$ git remote -v
origin http://github.com/r-wilbur/darling-cocotron.git (fetch)
origin http://github.com/r-wilbur/darling-cocotron.git (push)
upstream https://github.com/darlinghq/darling-cocotron.git (fetch)
upstream https://github.com/darlinghq/darling-cocotron.git (push)
~/src/darling/src/external/cocotron/AppKit$ git status
HEAD detached from ad52bfd5
nothing to commit, working tree clean
~/src/darling/src/external/cocotron/AppKit$ git checkout -b fix-config
Switched to a new branch 'fix-config'
~/src/darling/src/external/cocotron/AppKit$ git push origin fix-config
Looks like it worked as planned. Is that what you were advocating?
I had something different in mind, but that also works.
I haven't been reading too closely - and some of it I consider just general git skill, so shouldn't really be discussed here - but, one quick tip:
Also terminating ".git" in repository name is optional - git automatically add/remove it as needed.
hi every one
how to resolve this problem?
-- Found dsymutil: /usr/bin/llvm-dsymutil-6.0
-- Compiler include path detected as /usr/lib/llvm-6.0/lib/clang/6.0.0/include/
-- Found FFMPEG or Libav: /usr/lib/x86_64-linux-gnu/libavcodec.so;/usr/lib/x86_64-linux-gnu/libavformat.so;/usr/lib/x86_64-linux-gnu/libavutil.so, /usr/include/x86_64-linux-gnu
CMake Error at src/external/cocotron/AppKit/CMakeLists.txt:31 (message):
xkbfile not found
<
@facekapow @tshrpl et al: The "Build Instructions" documentation page under the heading "Dependencies" makes the following recommendation: "It is recommended that you use at least Clang 3.8."
Later, in "Known Issues" -> "BackBox" the following (seemingly related) advice is given: "If your distribution is Backbox and you run into build issues try the following commands:
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-4.0 400
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-4.0 400"
In a comment above, @facekapow recommends "Clang 6 is too old for Darling. We really should add a note in the docs about that."
Should we update the documentation in these two places to suggest Clang 9 as the minimum? If so, does the BlackBox advice become the following?
sudo update-alternatives --remove-all clang
sudo update-alternatives --remove-all clang++
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-9 10
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-9 10
@kbrontox Looks like you are missing the Xkbfile library development package. On what linux distribution are you building? Did you install the dependencies as detailed on the "Build Instructions" page[*] for your linux distribution?
Reference:
[*] https://docs.darlinghq.org/build-instructions.html
@kbrontox Looks like you are missing the Xkbfile library development package. On what linux distribution are you building? Did you install the dependencies as detailed on the "Build Instructions" page[*] for your linux distribution?
Reference:
[*] https://docs.darlinghq.org/build-instructions.html
im runnin zorin core like ubuntu 18.04
i follow exactly as decribe the build instructions but i got it some error i resolve one by one and making updates each time to finally get on this error of Xkfile
ok i run all and make a git codes
$ git pull
$ git submodule init
$ git submodule update
and this happend yuppyyy
-- Found dsymutil: /usr/bin/llvm-dsymutil-6.0
-- Found Setcap: /sbin/setcap
-- Compiler include path detected as /usr/lib/llvm-9/lib/clang/9.0.1/include/
-- Found FFMPEG or Libav: /usr/lib/x86_64-linux-gnu/libavcodec.so;/usr/lib/x86_64-linux-gnu/libavformat.so;/usr/lib/x86_64-linux-gnu/libavutil.so, /usr/include/x86_64-linux-gnu
-- Found FFmpeg: /usr/lib/x86_64-linux-gnu/libavcodec.so;/usr/lib/x86_64-linux-gnu/libavformat.so;/usr/lib/x86_64-linux-gnu/libavutil.so
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- Checking for module 'dbus-1'
-- Found dbus-1, version 1.12.2
-- Configuring done
-- Generating done
-- Build files have been written to: /home/joe/darling/build
hi guys is me again ,nowon the step of the darling-mach when i run the "make lkm" i got alot of errors but alot whats happening?
error: unknown type name ‘lck_mtx_t’
did you mean ‘kprintf’? [-Werror=implicit-function-declaration]
error: redefinition of ‘struct klist’
error: implicit declaration of function ‘panic’ [-Werror=implicit-function-declaration]
panic("PHYSMAP_PTOV bounds exceeded, 0x%qx, 0x%qx, 0x%qx",
That looks like old kernel - what does uname -r say?
I'm building under Ubuntu 19.10 (64-bit) and seeing the same errors as @kbrontox
Able to finally run the first two make statements without any apparent errors (solved above):
~/src/darling/build$ make
~/src/darling/build$ sudo make install
But when I start building the Linux kernel module:
~/src/darling/build$ make lkm |& tee lkm.log
When I look at the build-instructions.html, it suggests[*] that I need:
"Linux 4.19 or higher is required."
~/src/darling/build$ uname -r
5.3.0-51-generic
~/src/darling/build$ grep -i error lkm.log >lkm_errors.log
~/src/darling/build$ grep -i error lkm.log | wc -l
108
@HinTak Do we need to change the dependency? Does it require a newer kernel than 5.3.0?
Reference:
[*] https://docs.darlinghq.org/build-instructions.html#dependencies
lkm.log
lkm_errors.log
That looks like old kernel - what does
uname -rsay?
5.3.0-51-generic
I don't know - I was building against 5.6.x myself a few days ago and it worked; and I had rather current clang too - whatever was shipped with fedora 31. Just upgraded to fedora 32 yesterday.
The incomplete type is actually from xnu (apple's darwin kernel) code rather than linux's. So it looks more like either your submodule is a bit old or clang is.
Traditionally the linux kernel uses gcc specific features quite extensively, though clang is getting better at imitating gcc; and xnu is built with apple's gcc variant which is closer to clang. So either way you need quite current clang.
What does git submodule status says, the lkm line?
i found this post []https://github.com/darlinghq/darling-newlkm(url) i need to install this one to make it work darling on my zorin 15?
That's the submodule - git submodule status should show a string of hex numbers (the sha1sum) the same as the top of newlkm's.
this all the errors when i run make lkm
cc1: some warnings being treated as errors
scripts/Makefile.build:288: recipe for target '/home/joe/darling/src/external/lkm/../../../build/src/external/lkm/osfmk/mach/mach_exc_server.o' failed
make[6]: * [/home/joe/darling/src/external/lkm/../../../build/src/external/lkm/osfmk/mach/mach_exc_server.o] Error 1
Makefile:1656: recipe for target '_module_/home/joe/darling/src/external/lkm' failed
make[5]: [_module_/home/joe/darling/src/external/lkm] Error 2
make[5]: Leaving directory '/usr/src/linux-headers-5.3.0-51-generic'
Makefile:345: recipe for target 'default' failed
make[4]: [default] Error 2
make[4]: Leaving directory '/home/joe/darling/src/external/lkm'
src/external/lkm/CMakeFiles/lkm.dir/build.make:77: recipe for target 'src/external/lkm/CMakeFiles/lkm' failed
make[3]: [src/external/lkm/CMakeFiles/lkm] Error 2
CMakeFiles/Makefile2:46097: recipe for target 'src/external/lkm/CMakeFiles/lkm.dir/all' failed
make[2]: [src/external/lkm/CMakeFiles/lkm.dir/all] Error 2
CMakeFiles/Makefile2:46104: recipe for target 'src/external/lkm/CMakeFiles/lkm.dir/rule' failed
make[1]: [src/external/lkm/CMakeFiles/lkm.dir/rule] Error 2
Makefile:15647: recipe for target 'lkm' failed
make: ** [lkm] Error 2
Here's the git version on my 'lkm' submodule source:
~/src/darling$ git submodule status | grep lkm
cd9430c6bd246b78a1a8201294335fcd858a4a9a src/external/lkm (xnu-3789.41.3-303-gcd9430c)
I recently invoked apt-get dist-upgrade and moved from building under Ubuntu 19.10 to Ubuntu 20.04 giving me new versions of several things:
~/src/darling$ uname -r
5.4.0-29-generic
~/src/darling$ clang --version
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
So, now I'm going to update the source code and retry the build from the beginning and see what happens.
Here's the git version on my 'lkm' submodule source:
~/src/darling$ git submodule status | grep lkm
cd9430c6bd246b78a1a8201294335fcd858a4a9a src/external/lkm (xnu-3789.41.3-303-gcd9430c)I recently invoked apt-get dist-upgrade and moved from building under Ubuntu 19.10 to Ubuntu 20.04 giving me new versions of several things:
~/src/darling$ uname -r
5.4.0-29-generic
~/src/darling$ clang --version
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/binSo, now I'm going to update the source code and retry the build from the beginning and see what happens.
nice i cant upgrade my distro but i really wanna run darlyn on my OS but nothing to resolve im stuk on the kernel issues.
also how i can make the pulseaudio to autostart when i turn on the computer i have to run this each time i turn on the computer pulseaudio --start
The current lkm submodule is -306-g8153f6 - 3 commits more recent than your -303-gxxx. The most recent commit says "fix build on
Evidently I'm missing something important because I tried:
~/src/darling$ git pull
Already up to date.
~/src/darling$ git submodule update --recursive
Submodule path 'src/external/cocotron': checked out 'ad52bfd520474fa237ccd1dadfc7d088c4dc351d'
And I still get this:
~/src/darling$ git submodule status | grep lkm
cd9430c6bd246b78a1a8201294335fcd858a4a9a src/external/lkm (xnu-3789.41.3-303-gcd9430c)
Even though I haven't made any changes in this submodule, I get:
~/src/darling$ cd src/external/lkm/
~/src/darling/src/external/lkm$ git status
HEAD detached at cd9430c
nothing to commit, working tree clean
@r-wilbur - that's because your checkout is tracking your own fork, which is still stuck at the older state. You need to do git pull https://github.com/darlinghq/darling.git as the first step, instead of plain git pull
I didn't have unequivocal success with that. I didn't get the desired commit on the lkm submodule till I performed the following:
cd src/darling/src/external/lkm; git pull https://github.com/darlinghq/darling-newlkm.git
I decided since I had to do that specifically on this submodule and there are 139 other submodules, that chances of me being able to trust that the other submodules were up-to-date without manual intervention were not good. I wasn't interested in doing it manually for 139 submodules so I tried:
cd ~/src/darling; git pull https://github.com/darlinghq/darling.git; git merge origin/master
but then I was back to the wrong commit on the lkm submodule.
So, since I didn't have any unmerged personal work in my clone, I decided to wipe and re-clone from darlinghq/darling.git so that there wouldn't be any question.
It worked! The configure, darling lib build and install, darling lkm build and install all completed successfully! (Of course, I'm now building in Linux 5.4 with clang 10 so that doesn't minimize @kbrontox 's issue.)
With that many submodules, yes, it is quite messy working on one's own github fork( which is frozen at the point of clone). I have my github forks, but they are additional remote - with "git remote add.." - which I use to put stuff out for merging upstream. My local area tracks upstream directly . I periodically switch to a different branch which tracks my own fork, and I "git cherry-pick " from the work branch - which tracks upstream - to a patch-to-send branch to push onto my github fork to be merged.
This requires you to learn about using "git remote", "git branch", "git cherry-pick" and some non-default usage of "git push". This is slightly simpler than having your own local work area tracking your own fork, because the submodules are all relative, and you'll need to fork all of them to your own github account to work well.
So to summarize:
track upstream, set your fork as additional remote, you need to learn a non-default push, to switch branch to push your own stuff to your fork (to send to the darling people)
tracking your own fork, you need to learn a non-default pull to incorporate updates from upstream, as well as adjust all the submodules to point upstream instead of relative.
Family finally i running Darling i follow all the steps git -pull - modules and re make all , now is working :)
are there a usage manual hehehe im trying to run a app but i dont get it how to use it
i mount the DMG but i dont know where i can se the files to see the name of the running app
Will pass /home/joe/.darling/Volumes/EpicInstaller-10.15.2-fortnite
Skipping partition of type Primary GPT Header
Skipping partition of type Primary GPT Table
Skipping partition of type Apple_Free
Using partition #3 of type Apple_HFS
Everything looks OK, disk mounted
now what?
Yes, there is a usage manual - in a nutshell, if it is an installer, you need to run pkg on it. Head over to https://www.darlinghq.org/
I think you want to read https://github.com/darlinghq/darling-docs/blob/master/src/installing-software.md
should I keep this issue open ?
should I keep this issue open ?
yes it helps alot !!!!
some has to make a recomendation on the Build section to refresh the steps of Git /git pull to fix the problems.