디지털오션(Digital Ocean)에서 주최한 2019년 핵토버페스트(Hacktoberfest, 10월동안 Github에서 4개 이상의 PR를 올리면 티셔츠와 스티커를 증정하는 행사)에 참여해보았습니다.
여태동안, 이 행사가 존재함은 알고 있었으나 바쁘다는 핑계로 참여를 안했습니다. 그러나, 2019년, 리브레오피스 회원자격(LibreOffice Membership)이 있고, 리브레오피스 우리말 모듬(LibreOffice Korean Team)에 활동하게 되니, 자유 공개 원천 소프트웨어(자유 오픈소스 소프트웨어, FLOSS)활동을 열심히 해야겠다는 의지로 2019년도 핵토버페스트(Hacktoberfest)에 참여하였습니다.
참여가 끝난후, 행사 주최하는 곳에서 Github에 올라온 PR(풀-리퀘스트, Pull-Request)를 심사하였습니다. 심사 완료후, 티셔츠를 받을 주소를 달라고 해서 집 주소를 입력하였습니다.
2019년 연말에 그동안 바빠서 정신이 없어서 티셔츠 생각을 미쳐 못하다, 2020년 1월 6일에 드디어 티셔츠가 담긴 소포를 받았습니다.
저는 2019년 핵토버페스트(Hacktoberfest) 참여하여, 해가 지난 1월초에 드디어 티셔츠와 스티커를 받았습니다.
올해인 2020년 핵토버페스트(Hacktoberfest)에서는 저뿐만 아니라 커뮤니티에 관심많은 꿈나무들에게 오픈소스 활동 어떻게 할 지 알려주고 싶네요.
In file included from /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/Headers/Python.h:139:
/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/Headers/pythonrun.h:142:5: error: 'TAPI' is not defined, evaluates to 0 [-Werror,-Wundef]
#if TAPI
^
[AIN] ooo_images
1 error generated.
/Users/****/dev/lode/dev/core/solenv/gbuild/LinkTarget.mk:239: recipe for target '/Users/****/dev/lode/dev/core/workdir/CObject/pyuno/source/module/pyuno_dlopenwrapper.o' failed
make[1]: *** [/Users/****/dev/lode/dev/core/workdir/CObject/pyuno/source/module/pyuno_dlopenwrapper.o] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:282: recipe for target 'build' failed
make: *** [build] Error 2
해당 내용에서는 C언어 매크로 TAPI가 정의 안되어서 빌드 에러가 난다는 이야기가 나왔습니다.
해당 내용에 대하여 IRC의 #libreoffice-dev채널에 문의를 하였습니다.
9:28 PM I have a question about build on MacOSX (Catalina 10.15.2)
9:28 PM I get a LibreOffice source from git repository. and try to build, then failed.
9:29 PM message is In file included from ***/dev/core/pyuno/source/module/pyuno_dlopenwrapper.c:22:
9:29 PM In file included from /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/Headers/Python.h:139:
9:29 PM /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.7/Headers/pythonrun.h:142:5: error: 'TAPI' is not defined, evaluates to 0 [-Werror,-Wundef]
9:30 PM What is "#if TAPI" ?
9:41 PM <mikekaganski> dhsung_: a coincidence: https://ask.libreoffice.org/en/question/223751
9:44 PM <ycao> https://ask.libreoffice.org/en/question/223751/error-tapi-is-not-defined-evaluates-to-0-werror-wundef-while-building-on-macos/
9:44 PM Any tips?
9:44 PM <_rene_> yes, the obvious one
9:44 PM (don't build with -Werror)
9:45 PM and this undefined macro is inside python itself which is clear from the error message... (just that LO bundles python if you let it..)
9:45 PM <mikekaganski> _rene_: the problem is that this looks like our default in LODE
9:46 PM <ycao> How can I build without `-Werror`
9:46 PM Using `lode`
9:46 PM <_rene_> mikekaganski: yes, it's a problem. anywhere :)
9:46 PM $ ./configure --help | grep -i werror --enable-werror Turn warnings to errors. (Has no effect in modules
9:47 PM so --disable-werror, of course ;)
9:48 PM <ycao> So run `./configure --disable-werror` is ok?
9:48 PM <mikekaganski> ycao: essentially, add --disable-werror which _rene_ mentioned to autogen.input in your core directory
빌드 '에러 error'를 에러 대신 '경고 warning'로 바꾸어서 빌드하라고 하더군요.
이유는 TAPI라는 정의되지 않은 매크로는 파이썬 자체에 있고, 이 매크로를 무시해도 빌드 후에 실행은 되니 '에러 error'로 빌드 안되는 것에 대하여 '에러 error'레벨을 '경고 warning'으로 바꾸어서 빌드 하면 된다고 하군요.
그래서, 저는 아래의 명령어로 빌드 진행을 하였습니다.
이후, 빌드 후 확인
****@**** core % ./autogen.sh --with-locales="ko" --with-vendor="DaeHyun Sung, TDF Member" --disable-werror
********************************************************************
*
* Using commandline arguments and ignoring autogen.input!
*
********************************************************************
Running ./configure with '--with-locales=ko --with-vendor=DaeHyun Sung, TDF Member --disable-werror --srcdir=/Users/sungdaehyun/dev/lode/dev/core --enable-option-checking=fatal'
********************************************************************
*
* Running LibreOffice build configuration.
*
********************************************************************
To build, run:
/Users/****/lode/opt/bin/make
To view some help, run:
/Users/****/lode/opt/bin/make help
After the build of LibreOffice has finished successfully, you can immediately run LibreOffice using the command:
open instdir/LibreOfficeDev.app
If you want to run the smoketest, run:
/Users/****/lode/opt/bin/make check
****@**** core % make build-nocheck
make -j 4 -rs -f /Users/****/lode/dev/core/Makefile.gbuild build
[PAT] boost
[DEP] LNK:Library/libuno_salhelpergcc3.dylib.3
[LNK] Library/libuno_salhelpergcc3.dylib.3
[UPK] libgpg-error-1.27.tar.bz2
[PAT] icu
[PAT] nss
[PAT] liblangtag
[DEP] LNK:Executable/bestreversemap
[LNK] Executable/bestreversemap
[PAT] libjpeg-turbo
[PAT] lcms2
(생략)
[BIN] extras
[MOD] extras
[MOD] libreoffice
[BIN] top level modules: libreoffice
[ALL] top level modules: build-non-l10n-only build-l10n-only