Installation de Darling sous Ubuntu afin de lancer des logiciels MacOS

Quelques informations sur mon système :

$ uname -r
5.3.0-40-generic
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 

La première étape de l’installation :

$ sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libudev-dev pkg-config libc6-dev:i386 linux-headers-generic gcc-multilib libcap2-bin libcairo2-dev libgl1-mesa-dev libtiff5-dev libfreetype6-dev libfreetype6-dev:i386 git libelf-dev libxml2-dev libegl1-mesa-dev libfontconfig1-dev libbsd-dev

Ensuite on charge les sources :

$ git clone --recursive https://github.com/darlinghq/darling.git

Après on fait le build :

$ cd darling
$ mkdir build && cd build
$ cmake ..
...
CMake Error at cmake/FindFFmpeg.cmake:86 (message):
  Could not find libavcodec or libavformat or libavutil
...

J’ai donc fait ceci :

sudo sudo apt-get install -y \
    libavformat-dev libavcodec-dev libavdevice-dev \
    libavutil-dev libswscale-dev libavresample-dev

J’ai relancé un cmake :

$ cmake ..
...
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find PulseAudio! (missing: PULSEAUDIO_LIBRARIES
  PULSEAUDIO_INCLUDE_DIRS)
...

J’ai donc essayé ceci :

$ sudo apt-get install pulseaudio libpulse0 
...

Mais j’avais déjà les librairies. J’ai donc fait le plan B :

$ sudo apt-get install libpulse-dev pulseaudio apulse

Je relancé un cmake pour la troisème fois :

$ cmake ..
...
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find GIF (missing: GIF_LIBRARY GIF_INCLUDE_DIR)
...

J’ai donc essayé ceci :

$ sudo apt-get install libgif-dev

La quatrième cmake est donc le bon :

$ cmake ..
...
$ make
...
ld: file not found: /System/Library/PrivateFrameworks/FMDB.framework/Versions/A/FMDB for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:24779: recipe for target 'src/external/JavaScriptCore/JavaScriptCore' failed
make[2]: *** [src/external/JavaScriptCore/JavaScriptCore] Error 1
CMakeFiles/Makefile2:62019: recipe for target 'src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/all' failed
make[1]: *** [src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

A noter que le reste de l’installation fonctionne :

$ make lkm
...
$ sudo make lkm_install
...

Je vais refaire un test avec la commande :

$ git clone --recurse-submodules https://github.com/darlinghq/darling.git

Puis j’ai relancer le build :

$ time sudo make
...
[100%] Linking CXX shared library JavaScriptCore
ld: warning: OS dylibs should not add rpaths (linker option: -rpath) (Xcode build setting: LD_RUNPATH_SEARCH_PATHS)
ld: file not found: /System/Library/PrivateFrameworks/FMDB.framework/Versions/A/FMDB for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:24779: recipe for target 'src/external/JavaScriptCore/JavaScriptCore' failed
make[2]: *** [src/external/JavaScriptCore/JavaScriptCore] Error 1
CMakeFiles/Makefile2:62019: recipe for target 'src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/all' failed
make[1]: *** [src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

real	208m3,434s
user	188m7,313s
sys	18m55,609s

Le but était de tester : https://www.rubitrack.com/ .

Sniff.

UPDATE :

J’ai finalement réussi (merci Luc) :

$ darling shell
Loaded the kernel module

$ uname -a
Darwin CYBERNEURONES 16.0.0 Darwin Kernel Version 16.0.0 x86_64

$ hdiutil attach ../../../Téléchargements/rubiTrack-5.3.1.dmg 
/Volumes/rubiTrack-5.3.1

$ cp -r /Volumes/rubiTrack-5.3.1/rubiTrack\ 5\ Pro.app /Applications/

$ /Applications/rubiTrack\ 5\ Pro.app/Contents/MacOS/rubiTrack\ 5\ Pro 
dyld: Symbol not found: _WebActionNavigationTypeKey
  Referenced from: /Applications/rubiTrack 5 Pro.app/Contents/MacOS/rubiTrack 5 Pro (which was built for Mac OS X 10.11)
  Expected in: /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
 in /Applications/rubiTrack 5 Pro.app/Contents/MacOS/rubiTrack 5 Pro
abort_with_payload: reason: Symbol not found: _WebActionNavigationTypeKey
  Referenced from: /Applications/rubiTrack 5 Pro.app/Contents/MacOS/rubiTrack 5 Pro (which was built for Mac OS X 10.11)
  Expected in: /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
 in /Applications/rubiTrack 5 Pro.app/Contents/MacOS/rubiTrack 5 Pro; code: 4
Abort trap: 6

4 réflexions sur « Installation de Darling sous Ubuntu afin de lancer des logiciels MacOS »

  1. T’as essayé avec ça :

    You will notice that it takes a long time to build Darling. Darling contains the software layer equivalent to an entire operating system, which means a large amount of code. You can optionally disable some large and less vital parts of the build in order to get faster builds.

    To do this, use the -DFULL_BUILD=OFF option when configuring Darling through CMake.

    You may encounter some things to be missing, such as JavaScriptCore. Before creating an issue about a certain library or framework missing from Darling, verify that you are doing a full build by not using this option or setting it to  »ON ».

    • J’avais pas vu, je teste donc :
      $ cmake .. -DFULL_BUILD=ON
      — 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
      — Configuring done
      — Generating done
      — Build files have been written to: /home/…./OpenSource/darling/build
      ….

      • J’ai la même erreur :
        ld: file not found: /System/Library/PrivateFrameworks/FMDB.framework/Versions/A/FMDB for architecture x86_64
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:24779: recipe for target ‘src/external/JavaScriptCore/JavaScriptCore’ failed
        make[2]: *** [src/external/JavaScriptCore/JavaScriptCore] Error 1
        CMakeFiles/Makefile2:62019: recipe for target ‘src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/all’ failed
        make[1]: *** [src/external/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/all] Error 2
        Makefile:129: recipe for target ‘all’ failed
        make: *** [all] Error 2

        real 3m35,402s
        user 2m58,164s
        sys 0m42,784s

        Je vais faire un make clean.

  2. J’ai testé $ cmake .. -DFULL_BUILD=OFF et cela fonctionne. J’avais lu trop vite … Misère.

    $ darling shell
    Loaded the kernel module
    Setting up a new Darling prefix at /home/…./.darling
    Bootstrapping the container with launchd…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload CAPTCHA.