Libimobiledevice: Windows์šฉ์œผ๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์—†์Œ

์— ๋งŒ๋“  2019๋…„ 10์›” 30์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: libimobiledevice/libimobiledevice

๋‚˜๋Š” cygwin๊ณผ MinGW๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์—ฌ libimobiledevice์™€ ๊ทธ ์ข…์†์„ฑ์„ ์ปดํŒŒ์ผํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ํ›„ Windows ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ํ™˜๊ฒฝ(Cygwin ๋ฐ MinGW) ๋ชจ๋‘์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

./idevice_id -l
socket_connect: getaddrinfo: Unknown error
ERROR: Unable to retrieve device list!

https://github.com/libimobiledevice/libimobiledevice/issues/783 ์—์„œ๋„ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋”ฐ๋ฅผ ์ˆ˜ ์žˆ๋Š” Windows์—์„œ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ก์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋ž˜๋Š” ๋‚ด๊ฐ€ ๋”ฐ๋ž๋˜ ๋‹ค์–‘ํ•œ ๋‹จ๊ณ„์˜ ํŽธ์ง‘์ž…๋‹ˆ๋‹ค.

MSys2 ์„ค์น˜
https://stackoverflow.com/questions/26453293/what-is-the-best-way-to-install-pkg-config-on-mingw-in-2014
https://www.msys2.org/

MinGW ์„ค์น˜
http://www.mingw.org/wiki/MSYS
Windows์—์„œ bin ํด๋”๋ฅผ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์„ค์ •

libplist ๋นŒ๋“œ
./autogen.sh
๋งŒ๋“ค๋‹ค
์„ค์น˜ํ•˜๋‹ค
(ํŒŒ์ด์ฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋ฏ€๋กœ --without-cython์„ ์„ค์น˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค)

usbmuxd ๋นŒ๋“œ
./autogen.sh
๋งŒ๋“ค๋‹ค
์„ค์น˜ํ•˜๋‹ค

openssl dev libs๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ GNUTLS๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
https://github.com/libimobiledevice/libimobiledevice/issues/617
ํŒฉ๋งจ -S mingw-w64-x86_64-gnutls
ํŒฉ๋งจ -S ๋„ˆํ‹€
ํŒฉ๋งจ -S libgnutls
ํŒฉ๋งจ -S openssl
ํŒฉ๋งจ -S libopenssl
ํŒฉ๋งจ -S openssl-devel

libcrypt ์„ค์น˜
ํŒฉ๋งจ -S libgcrypt-devel

์ง“๋‹ค
./autogen.sh --without-cython --disable-openssl
๋งŒ๋“ค๋‹ค
์„ค์น˜ํ•˜๋‹ค

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด๊ฒƒ์€ ํŒŒ์ด์ฌ ๋ฌธ์ œ ์—†์ด ์œ„์˜ ๋ชจ๋“  ๊ฒƒ์„ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์„ค์น˜ํ•ด์•ผ ํ–ˆ๋˜ ๊ฒƒ๋“ค์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค:

ํŒฉ๋งจ -S ์ž์‹
ํŒฉ๋งจ -S libedit
ํŒฉ๋งจ -S mingw-w64-i686-toolchain
pacman -S --ํ•„์š”ํ•œ base-devel msys2-devel
ํŒฉ๋งจ -S mingw-w64-x86_64-python
ํŒฉ๋งจ -S msys/libcrypt-devel
ํŒฉ๋งจ -S openssl
ํŒฉ๋งจ -S libopenssl
ํŒฉ๋งจ -S openssl-devel

https://github.com/libimobiledevice/ideviceinstaller ๋„ ๋นŒ๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒฉ๋งจ -S mingw-w64-x86_64-libzip
cp /mingw64/lib/pkgconfig/libzip.pc /usr/lib/pkgconfig/
// ๋ณต์‚ฌ๋œ libzip.pc์—์„œ ์ž˜๋ชป๋œ D:/msys64 ๊ฒฝ๋กœ๊ฐ€ ํฌํ•จ๋œ ํ–‰ ์‚ญ์ œ
sed -i '/-LD:\/msys64/d' /usr/lib/pkgconfig/libzip.pc
์ž์‹ ๋ณต์ œ https://github.com/libimobiledevice/ideviceinstaller.git
CD ์•„์ด๋””๋ฐ”์ด์Šค ์ธ์Šคํ†จ๋Ÿฌ
// ์ผ๋ถ€ ๊ฒฝ๊ณ ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์œ„ํ˜‘ ๊ฒฝ๊ณ ๋กœ์˜ ์Šค์œ„์น˜๋ฅผ ์˜ค๋ฅ˜๋กœ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
sed -i 's/ -Werror//g' configure.ac
./autogen.sh
๋งŒ๋“ค๋‹ค
makeinstall

๋ชจ๋“  5 ๋Œ“๊ธ€

msys2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  cygwin ๋˜๋Š” mingw๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ์—ฐ๊ฒฐ๋œ ๋ฌธ์ œ์—์„œ ๊ทธ๊ฒƒ์„ ์–ธ๊ธ‰ํ–ˆ๋‹ค.

์‚ฌ์‹ค์€. mingw/cygwin์ด ๊ตฌ์‹์ธ์ง€ ์•„๋‹ˆ๋ฉด ์Šคํƒ์ด Windows 10 1809/1903์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ msys2๋Š” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@mexmer ์‹ค์ œ๋กœ MSys2 ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. mingw๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  Msys2 ํ„ฐ๋ฏธ๋„์—์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋นŒ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

OpenSSL์„ ์‚ฌ์šฉํ•˜์—ฌ MSys2๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MSys2 ์„ค์น˜
https://stackoverflow.com/questions/26453293/what-is-the-best-way-to-install-pkg-config-on-mingw-in-2014
https://www.msys2.org/

libplist ๋นŒ๋“œ
์ž์‹ ๋ณต์ œ https://github.com/libimobiledevice/libplist.git
(ํŒŒ์ด์ฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๋ฏ€๋กœ --without-cython์„ ์„ค์น˜ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค)
./autogen.sh --without-cython
๋งŒ๋“ค๋‹ค
์„ค์น˜ํ•˜๋‹ค

libusb ๋นŒ๋“œ
์ž์‹ ํด๋ก  https://github.com/libusb/libusb.git
./autogen
๋งŒ๋“ค๋‹ค
์„ค์น˜ํ•˜๋‹ค

libusbmuxd ๋นŒ๋“œ
์ž์‹ ๋ณต์ œ https://github.com/libimobiledevice/libusbmuxd.git
./autogen.sh
๋งŒ๋“ค๋‹ค
์„ค์น˜ํ•˜๋‹ค

libcrypt ์„ค์น˜
ํŒฉ๋งจ -S libgcrypt-devel

๊ธฐ๋ณธ์ ์œผ๋กœ OpenSSL์„ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ:
ํŒฉ๋งจ -S openssl
ํŒฉ๋งจ -S libopenssl
ํŒฉ๋งจ -S openssl-devel

openssl dev libs๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ GNUTLS ์„ค์น˜
https://github.com/libimobiledevice/libimobiledevice/issues/617
ํŒฉ๋งจ -S mingw-w64-x86_64-gnutls
ํŒฉ๋งจ -S ๋„ˆํ‹€
ํŒฉ๋งจ -S libgnutls
ํŒฉ๋งจ -S libgnutls-devel

libimobiledevice ๋นŒ๋“œ
์ž์‹ ๋ณต์ œ https://github.com/libimobiledevice/libimobiledevice.git
__// OpenSSL ์‚ฌ์šฉ_
./autogen.sh --without-cython
__// GNU TLS ์‚ฌ์šฉ_
./autogen.sh --without-cython --disable-openssl
๋งŒ๋“ค๋‹ค
์„ค์น˜ํ•˜๋‹ค

์ด๊ฒƒ์€ ํŒŒ์ด์ฌ ๋ฌธ์ œ ์—†์ด ์œ„์˜ ๋ชจ๋“  ๊ฒƒ์„ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์„ค์น˜ํ•ด์•ผ ํ–ˆ๋˜ ๊ฒƒ๋“ค์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค:

ํŒฉ๋งจ -S ์ž์‹
ํŒฉ๋งจ -S libedit
ํŒฉ๋งจ -S mingw-w64-i686-toolchain
pacman -S --ํ•„์š”ํ•œ base-devel msys2-devel
ํŒฉ๋งจ -S mingw-w64-x86_64-python
ํŒฉ๋งจ -S msys/libcrypt-devel
ํŒฉ๋งจ -S openssl
ํŒฉ๋งจ -S libopenssl
ํŒฉ๋งจ -S openssl-devel

https://github.com/libimobiledevice/ideviceinstaller ๋„ ๋นŒ๋“œํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํŒฉ๋งจ -S mingw-w64-x86_64-libzip
cp /mingw64/lib/pkgconfig/libzip.pc /usr/lib/pkgconfig/
// ๋ณต์‚ฌ๋œ libzip.pc์—์„œ ์ž˜๋ชป๋œ D:/msys64 ๊ฒฝ๋กœ๊ฐ€ ํฌํ•จ๋œ ํ–‰ ์‚ญ์ œ
sed -i '/-LD:\/msys64/d' /usr/lib/pkgconfig/libzip.pc
์ž์‹ ๋ณต์ œ https://github.com/libimobiledevice/ideviceinstaller.git
CD ์•„์ด๋””๋ฐ”์ด์Šค ์ธ์Šคํ†จ๋Ÿฌ
// ์ผ๋ถ€ ๊ฒฝ๊ณ ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์œ„ํ˜‘ ๊ฒฝ๊ณ ๋กœ์˜ ์Šค์œ„์น˜๋ฅผ ์˜ค๋ฅ˜๋กœ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
sed -i 's/ -Werror//g' configure.ac
./autogen.sh
๋งŒ๋“ค๋‹ค
makeinstall

@anshumanchatterji , ์ผ๋‹จ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋ฉด ์ž์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰