이 블로그는 더 이상 업데이트되지 않습니다.

최신 내용을 확인하시려면 여기를 클릭해주세요.

OSX (2)


Yosemite에서 Synergy 직접 빌드하여 사용하기

멀티플랫폼간 마우스 및 키보드를 공유해주는 유명한 프로그램인 Synergy(http://synergy-project.org)가 어느새 유료화되었다. 다운로드 페이지로 가보면, 1인당 5달러를 결재하면 평생 사용할 수 있다… 라고는 한다.

하지만 원래 Synergy는 오픈소스 프로젝트다. 그것도 GNU 라이센스가 적용되어 있는 프로젝트이다. 이는 Synergy의 Github 페이지(https://github.com/synergy/synergy)로 가보면 확인할 수 있다. 따라서 그냥 Github에 공개된 코드를 직접 빌드하여 사용하기로 했다. 작업한 환경은 OS X 10.10 Yosemite이다.

http://synergy-project.org/wiki/Compiling 에 가보면 환경별 컴파일 방법이 간단하게 설명되어 있다. 따라서 나는 해당 내용을 따라서 Synergy를 컴파일해서 사용해 보기로 했다.

일단 필요한 의존성 모듈을 설치해야 한다. 나는 brew를 이용해서 cmake, qt를 설치했다.

$ brew install cmake
$ brew install qt

 

의존성 모듈을 설치한 후에, 공식 문서에 나와있는 것과 같이 수행한다.

$ ./hm.sh conf -g1
Mapping command: conf -> configure
Running setup…
Setup complete.
Error: Arg missing: –mac-sdk <version>

 

그럼 위와 같은 오류가 발생한다. mac sdk 옵션이 없어서 발생하는 오류인 듯 싶어 옵션을 주어 실행해봤다.

$ ./hm.sh conf -g1 –mac-sdk 10.10
Mapping command: conf -> configure
Error: Arg missing: –mac-identity <name>

 

이번에는 mac identity 옵션이 없다고 한다. 그럼 준다. 일단 test라고 주었다.

$ ./hm.sh conf -g1 –mac-sdk 10.10 –mac-identity test
Mapping command: conf -> configure
cmake version 3.0.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).
Creating dir: build/release
Entering dir: build/release
CMake command: cmake -G “Unix Makefiles” -DCMAKE_BUILD_TYPE=Release ../..
— The C compiler identification is AppleClang 6.0.0.6000054
— The CXX compiler identification is AppleClang 6.0.0.6000054
(중간 생략)
— Looking for pthread_create in pthread
— Looking for pthread_create in pthread – found
— Found CURL: /usr/lib/libcurl.dylib (found version “7.37.1”)
— OSX_TARGET_MAJOR=
— OSX_TARGET_MINOR=
CMake Error at CMakeLists.txt:168 (message):
Mac OS X target must be 10.x
— Configuring incomplete, errors occurred!
See also “/Users/nesswit/Downloads/synergy-master/build/release/CMakeFiles/CMakeOutput.log”.
Going back to: /Users/nesswit/Downloads/synergy-master
Error: CMake encountered error: 256

 

색다른 오류가 나를 반겼다. 보아하니 OSX_TARGET_MAJOR와 OSX_TARGET_MINOR 옵션이 적용이 되지 않은듯 했다.

이를 해결하기 위한 간단한 patch 파일을 작성했다. 자세한 내용은 아래와 같다.

 

해당 패치를 적용하고 실행한 결과는 아래와 같다.

$ ./hm.sh conf -g1 –mac-sdk 10.10 –mac-identity test
Mapping command: conf -> configure
cmake version 3.0.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).
Entering dir: build/release
CMake command: cmake -G “Unix Makefiles” -DCMAKE_BUILD_TYPE=Release -DOSX_TARGET_MAJOR=10 -DOSX_TARGET_MINOR=10 ../..
— OSX_TARGET_MAJOR=10
— OSX_TARGET_MINOR=10
— Configuring done
— Generating done
— Build files have been written to: /Users/nesswit/Downloads/synergy-master/build/release
Going back to: /Users/nesswit/Downloads/synergy-master
QMake command: qmake gui.pro -r -spec macx-g++ “MACX_LIBS=-framework ApplicationServices -framework Security -framework cocoa -framework ServiceManagement” QMAKE_MACOSX_DEPLOYMENT_TARGET=10.10 QMAKE_MAC_SDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk
Entering dir: src/gui
Going back to: /Users/nesswit/Downloads/synergy-master

 

생각대로 잘 동작한다. 이대로 빌드를 진행하자.

$ ./hm.sh build
Entering dir: build/release
Scanning dependencies of target arch
[ 0%] Building CXX object src/lib/arch/CMakeFiles/arch.dir/Arch.cpp.o
(중간 생략)
Log: Deploying plugins from “/usr/local/plugins”
Log: Created configuration file: “Synergy.app/Contents/Resources/qt.conf”
Log: This file sets the plugin search path to “Synergy.app/Contents/PlugIns”
Going back to: /Users/nesswit/Downloads/synergy-master
Error: [Errno 2] No such file or directory: ‘/Library/Frameworks/QtCore.framework/Contents/Info.plist’

 

내가 설치한 qt는 brew로 설치했기 때문에 /Library/Frameworks/ 아래에 있지 않다. 따라서 해당 경로를 수정해야 한다.

이는 아까 패치파일을 적용한 ext/toolchain/commands1.py 파일의 826번째 줄 쯤에 있다. 해당 코드를 아래와 같이 수정한다.

 

이후, clean한 후 root 권한으로 다시 빌드했다.

$ ./hm.sh clean
(생략)
$ sudo ./hm.sh build
Entering dir: build/release
[ 0%] Building CXX object src/lib/arch/CMakeFiles/arch.dir/Arch.cpp.o
(중간 생략)
WARNING: Plugins = PlugIns
Going back to: /Users/nesswit/Downloads/synergy-master

 

경고.. 가 뜨지만 더 이상은 그냥 무시하기로 했다.

그럼, 정상적으로 생성된 Synergy.app 파일을 bin 폴더에서 확인할 수 있다.




Google에서 응용 프로그램 지정 암호를 얻어야 합니다.

  • 2014/02/14
  • OSX

OSX 10.9.1의 Mail client를 구글 계정을 이용하여 IMAP으로 동기화하려고 하니, 뜬금없이 “Google에서 응용 프로그램 지정 암호를 얻어야 합니다.”라면서 계정 연동이 되지 않았다.

한국어로 바로 검색해 보았으나 해결방법이 보이지 않아 영어로 검색하니 바로 해결되었다. 아래 링크를 참조.

https://support.google.com/mail/answer/1173270?hl=en

(혹 위 링크가 정상적으로 동작하지 않는다면, Authorizing applications & sites page 페이지로 이동하여 새로운 비밀번호를 생성한 후, 구글 계정 비밀번호 대신 생성된 비밀번호를 입력하여 계정 연동을 시도하면 된다.)