dasom-im / dasom

Dasom is a multilingual input method framework
https://dasom-im.github.io
GNU Lesser General Public License v3.0
12 stars 3 forks source link

libappindicator3 관련 #1

Closed ghost closed 9 years ago

ghost commented 9 years ago

From @sukso96100 on October 7, 2015 15:58

libappindicator3 때문에 아치 리눅스에서 빌드가 좀 어렵습니다... 아치 리눅스의 경우에는 공식 저장소에 libappindicator3 패키지가 없습니다. Unity-for-Arch 저장소 추가해서 설치 할 수야 있습니다만, 추가로 설치해야 하는 gtk3-ubuntu 가 기존 gtk3 패키지랑 충돌하는 문제도 있습니다. libappindicator3 를 다른 것으로 대체해 주시거나, 아니면 indicator 만 별도로 빌드 가능하게 해 주시면 좋을 것 같습니다.

Copied from original issue: cogniti/dasom#1

ghost commented 9 years ago

./autogen.sh --disable-dasom-indicator 요렇게 하시던가.. 아니면... ./autogen.sh ./configure --disable-dasom-indicator 이렇게 하시면 libappindicator3 체크 건너뛰고 dasom-indicator 가 만들어지지 않을 것 같습니다. 한번 해보시고 되는지 안 되는지 말씀해주시면 고맙겠습니다.

ghost commented 9 years ago

libappindicator3을 사용하면 KDE, GNOME, Unity 용 표시기가 한방에 해결이 됩니다. 현재로서는 libappindicator3를 대체할 만한 라이브러리가 없는 것 같습니다.

제가 아치리눅스 pacman 을 잘 모릅니다. 어떤 방식으로 저장소를 추가하고 설치하는지에 대해서 잘 모릅니다. ./configure --disable-dasom-indicator 로는 곤란한지요? 설명 좀 부탁드립니다.

ghost commented 9 years ago

From @sukso96100 on October 11, 2015 2:47

일단은 빌드는 잘 됩니다. 좀 더 알아보니 AUR 에 있는 libappindicator-gtk3 패키지로도 빌드가 되네요.

ghost commented 9 years ago

그러면 아치 리눅스에서의 빌드 이슈는 해결된 건가요?

ghost commented 9 years ago

From @sukso96100 on October 11, 2015 3:52

네, 빌드 문제는 해결 되었네요. 잘 돌아가나 테스트 하면 될것 같습니다. 그리고 빌드에 필요한 의존성 패키지랑, 실행에 필요한 의존성 패키지 알 수 있을까요? 빌드해 보면서 목록 쓰긴 했는데, 불필요한 거나 빠진거 있는 확인 해보려고 합니다.

ghost commented 9 years ago

저도 아치 리눅스에서 yaourt dasom 으로 Yes 로 진행을 하고 있는데... libindicator 컴파일 중에 에러가 납니다. /usr/bin/ld: cannot find -lglib-2.0-lm 여기서 에러가 발생이 되는데... -lglib-2.0 -lm 요렇게 띄어쓰기가 되어야 될텐데요..

그리고 빌드에 필요한 의존성 패키지는... https://github.com/cogniti/dasom/blob/master/debian/control#L5 에 있습니다.

실행에 필요한 의존성 패키지는

  1. configure.ac 파일이나 각각의 디렉토리에 있는 Makefile.am을 확인하여 알 수 있는 방법이 있고,
  2. https://github.com/cogniti/dasom/releases 에 있는 .deb 파일 다운받아서 file-roller 같은 프로그램으로 압축을 풀면... /DEBIAN/control 파일이 있는데... 거기 내용을 보면.. (Depends 부분은 패키지 생성 프로그램이 자동 생성한 것입니다.)

Depends: libappindicator3-1 (>= 0.2.96), libc6 (>= 2.14), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.37.3), libgtk-3-0 (>= 3.0.0), libgtk2.0-0 (>= 2.18.0), libhangul1 (>= 0.1.0), libpango-1.0-0 (>= 1.14.0), libqt5core5a (>= 5.0.2), libqt5gui5 (>= 5.0.2) | libqt5gui5-gles (>= 5.0.2), libqt5widgets5 (>= 5.0.2), libqtcore4 (>= 4:4.7.0~beta1), libqtgui4 (>= 4:4.5.3), libstdc++6 (>= 4.1.1), libx11-6, qtbase-abi-5-2-1, dconf-gsettings-backend | gsettings-backend, x11-xserver-utils

Recommends: im-config, dconf-editor, gnome-tweak-tool

Suggests: fonts-noto-cjk, fonts-nanum, gnome-shell

이런 내용이 있습니다.

ghost commented 9 years ago

From @sukso96100 on October 11, 2015 4:26

libindicator 는 아래 PKGBUILD 처럼. https://gist.github.com/sukso96100/c1db0335e1127cacfdaf

기존 libindicator 의 PKGBUILD 에서 build() 에 있는 cd 랑 ./configure 사이에

sed -i 's/LIBINDICATOR_LIBS+="$LIBM"/LIBINDICATOR_LIBS+=" $LIBM"/g' ./configure

넣어주면 빌드가 정상적으로 되더군요.

의존성 패키지는 말씀해주신 사항 참고해서 수정하겠습니다.

https://aur.archlinux.org/packages/dasom-git

ghost commented 9 years ago

From @sukso96100 on October 11, 2015 8:31

의존성 패키지 까지 모두 정리 했습니다. 도와주셔서 감사합니다. 별도 그놈 확장 기능 없이 dasom-indicator 만으로 아치리눅스 Gnome 3.18 환경에서 잘 작동하네요. 혹시 사용 중이신 아치리눅스 환경에서도 잘 되나 테스트 해 보시면 좋을 것 같습니다. AUR 에 dasom-git 패키지 올려 두었습니다. 저의 경우는 아래 과정 거치면 잘 됩니다. https://aur.archlinux.org/packages/dasom-git

.xprofile 를 다음과 같이 수정

export GTK_IM_MODULE=dasom
export QT_IM_MODULE=dasom
export XMODIFIERS="@im=dasom"
dasom-daemon &
dasom-indicator &

yaourt 로 AUR 에서 dasom-git 설치

yaourt -S dasom-git

그놈 쓰는 경우 아래 명령어 추가로 실행

gsettings set org.gnome.settings-daemon.plugins.keyboard active false
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/IMModule':<'dasom'>}"

마지막으로 로그아웃 후 다시 로그인. 끝

ghost commented 9 years ago

2015.9.19 커밋 https://github.com/cogniti/dasom/commit/b0593fce7cb6378b466c48b6ef051c12b820ad61 이후로 dasom-daemon, dasom-indicator 가 데몬으로 작동하기 때문에... 이제 명령 뒤에 & 안 붙여도 됩니다.

dasom-daemon
dasom-indicator

기본값으로 데몬으로 작동합니다. 참고로,

$ dasom-daemon --help
Usage:
  dasom-daemon [OPTION...] - Dasom Input Method Daemon

Help Options:
  -h, --help       Show help options

Application Options:
  --no-daemon      Do not daemonize
  --debug          Log debugging message

이런 옵션을 제공합니다. 감사합니다.

ghost commented 9 years ago

appindicator 의 라이선스가 어떤 곳에서는 GPL로 나와있고 어떤 곳에서는 LGPL로 나와 있습니다. 확인이 필요하여 이슈를 다시 엽니다.

ghost commented 9 years ago

https://launchpad.net/libappindicator 에서는 GNU LGPL v2.1, GNU LGPL v3 로 나와 있고, http://metadata.ftp-master.debian.org/changelogs//main/liba/libappindicator/libappindicator_0.4.92-3.1_copyright 에는 GPL, LGPL 로 나와 있어서 https://launchpad.net/libappindicator 에서 파일을 다운받아 파일 헤더를 확인해보니 몇몇 파일이 GPL 이고 app-indicator.c 는 LGPL 인데 GPL 함수를 하나 호출하기 때문에 아마 GPL 라이선스가 되어야 할 것 같은데...

  1. libappindicator 프로젝트 소유자 및 저자인 Ted Gould 가 프로젝트 페이지에 LGPL 로 밝히고 있고
  2. 우분투 위키 페이지 https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators#Porting_Guide_for_Applications 보면 동 라이브러리를 사용한 python 예제가 나오는데 LGPL 로 되어 있습니다.
  3. ChangeLog 에 2010-12-02 Ted Gould ted@gould.cx Promoting the LGPLv3 이렇게 나와 있습니다.

따라서 libappindicator 의 라이선스를 LGPL 로 간주하여 작업하여도 무방하다고 판단하여 dasom-indicator 를 별도의 프로젝트로 분리하지 않겠습니다.