이번에 Apple M1탑재된 MacBook Air를 구입하였습니다.



Apple M1 구입후, 초기 설정을 열심히 하였습니다.


초기 설정후, Xcode와 Homebrew를 설치하여, 소프트웨어 빌드 설정을 하였습니더.

Brew 링크
https://brew.sh/

Homebrew

The Missing Package Manager for macOS (or Linux).

brew.sh

개발 환경 설정을 한후에, 예전에 Intel기반의 Macbook Pro 2013 Late에서 설정했던 LODE를 이용하여 빌드 환경을 설정하였습니다.
https://wiki.documentfoundation.org/Development/lode
빌드 환경 설정이 완료되어서 core (LibreOffice의 빌드 소스) 디렉토리로 이동하여, 다음의 명령어로 빌드를 실행하였습니다.

./autogen.sh --with-locales="ko en-US zh ja" --with-vendor="DaeHyunSung" --disable-werror --with-lang="ko en-US ja zh-TW zh-CN" --enable-dbgutil

그런데, 빌드 설정이 실패하였습니다.

configure: error: in `/Users/sungdaehyun/dev/lode/dev/core':
configure: error: online update or breakpad/crashreporting are enabled, but no --with-privacy-policy-url=... was provided

해당 이슈에 대해서 왜 나오는지 이유를 알 수 없어, 내용을 IRC로 문의를 하니 다음과 같은 답변을 받았습니다.

10:25 PM <dhsung> Hello 
10:25 PM <dhsung> Today, I bought new Apple M1 MacbookAir. So, I prepare autogen option for build. But, I found the message "online update or breakpad/crashreporting are enabled, but no --with-privacy-policy-url=... was provided" What is mean? 
10:26 PM <mst___> either disable those features or use an arbitrary value for the url, it's just shown in a dialog somewhere

답변을 듣고, 구글링을 하고는 빌드 옵션 --disable-breakpad --disable-online-update를 추가하였습니다.

./autogen.sh --with-locales="ko en-US zh ja" --with-vendor="DaeHyunSung" --disable-werror --with-lang="ko en-US ja zh-TW zh-CN" --enable-dbgutil --disable-breakpad --disable-online-update

옵션 추가 후, 빌드 설정이 완료됨을 나왔습니다.


To build, run:
/Users/****/dev/lode/opt/bin/make

To view some help, run:
/Users/****/dev/lode/opt/bin/make help

After the build has finished successfully, you can immediately run what you built using the command:
open instdir/LibreOfficeDev.app

If you want to run the smoketest, run:
/Users/****/dev/lode/opt/bin/make check

HOST config (config.warn)
*************************************
* WARNING : Cannot find Clang headers to build compiler plugins, plugins disabled.

이후에 make로 빌드를 실행하였습니다.

Apple M1에서 빌드가 완료되고, 다음과 같이 빌드 완료된 프로그램 실행을 해보았습니다.

open instdir/LibreOfficeDev.app

실행이 아주 잘됩니다!

여기까지, Apple M1에서 LibreOffice(리브레오피스) 빌드 및 실행해보기 기록이였습니다.

Buy me a coffeeBuy me a coffee

올해 10월 동안 열리는 핵토버페스트(Hacktoberfest)행사가 시작되었습니다.

핵토버페스트(Hacktoberfest) 2020 - https://hacktoberfest.digitalocean.com/

핵토버페스트(Hacktoberfest)는 매년 10월 한달동안 열리는 행사이며, 온 세상의 어느 누구든 참여할 수 있는 행사입니다. 

이 행사는 개발자, 학생, 행사 주최자, 여러 규모의 크고 작은 회사 등등 모두가 자유오픈소스 프로젝트의 성장을 돕고, 공동체에 긍정적인 공헌(貢獻)/기여(寄與)/컨트리뷰션(Contribution)을 하도록 촉진하는 행사입니다.

다양한 배경과 기술 숙련도를 가진 모든 이들이 도전 가능하며,  이 글을 작성하는 오늘인 10월 1일부터 10월 31일까지 Github에 호스팅된 공개 저장소/프로젝트에 보내는 풀리퀘스트(Pull Request)에 대해서 인정됩니다.

이 글을 작성하는 저는 올해 열리는 핵토버페스트(Hacktoberfest) 행사에 리브레오피스 우리말 모듬(LibreOffice Korean Team)의 저장소에 자동 교정 내용을 담은 저장소를 추가하였습니다.

github.com/libreoffice-kr/autocorr_kr

 

libreoffice-kr/autocorr_kr

리브레오피스(LibreOffice) 자동 교정(Autocorrect)기능에 대한 말모이 저장소 - libreoffice-kr/autocorr_kr

github.com

올해 열리는 핵토버페스트(Hacktoberfest)에 리브레오피스(LibreOffice)에서 사용하는 우리말 자동 교정 내용 추가하면서 행사 참여를 해보아요!

이번에 리브레오피스 우리말모듬에서는 핵토버페스트(Hacktoberfest)의 행사에 참여하는 분을 위하여, 우리말 자동 교정 저장소를 만들고, 행사 참여할 수 있게 풀리퀘스트(Pull Request)를 전달하면 행사 참여 인정을 할 수 있게 이벤트를 만들었습니다.

 

열심히 자동 교정 내용을 추가하여, 리브레오피스(LibreOffice)의 우리말 사용성 향상에 공헌(貢獻)/기여(寄與)/컨트리뷰션(Contribution)을 해보아요!

Buy me a coffeeBuy me a coffee

올해 처음으로, 대한민국 과학기술정보통신부에서 주최하고 NIPA(정보통신산업진흥원)에서 주관하는 오픈소스 프로젝트 지원 사업인 "오픈소스 컨트리뷰톤 2020"에 "LibreeOffice 한국어 사용성 향상 및 공헌자 양성 프로젝트" 멘토(Mentor)로 참여를 하였습니다.

이 행사에 처음 참여하였고, 참가 후기를 정리하여 공개합니다.

컨트리뷰톤(Contributon)은 공헌(貢獻), 기여(寄與), 컨트리뷰트(Contribute)와 마라톤(Marathon)의 합성어로 6주간 자유 오픈소스 소프트웨어 프로젝트에 참여, 공유, 오픈, 협업하여 다양한 방식의 기여(Contribute)를 직접 경험하는 프로그램이라고 소개를 하더군요. 이 행사는 2016년부터 시작된 행사라고 합니다.

올해의 "오픈소스 컨트리뷰톤 2020"이 2016, 2017, 2018, 2019년에 이어 5번째로 열리는 행사라고 하더군요.

더보기

첨언. 저는 국가에서 Open Source Software를 "공개 소프트웨어"로 번역하여 사용하는 것에 대하여 좋게 보지 않습니다.

그 이유는, 번역어 "공개 소프트웨어"에서 "Source"가 빠져있기 때문에 실행파일만 공개하면 되는 것이 아닌가란 오해를 사기 쉽기 때문입니다.

그래서, "Source"에 대한 번역 낱말이 빠져있기 때문에, 저는 OSS(Open Source Software)에 대해서 "공개 소프트웨어" 또는 "공개 SW" 대신 오픈소스 소프트웨어 혹은 "공개 원천 소프트웨어"(북한은 Open Source Software에 대하여 "공개 원천 쏘프트웨어"로 번역함)으로 부르겠습니다.

참고 2. "Open Source Software"를 "공개 소프트웨어"로 번역하면 "Open Source"에 대한 번역을 "공개(Open)"로만 번역을 해야 하는 문제가 있음. 

English(영어, 英語): Open Source

Korean(한국어): 오픈소스/공개 원천

Japanese(일본어, 日本語): オープンソース

Traditional Chinese(중국어 번체, 繁體中文): 開源 / 開放原始碼

Simplified Chinese(중국어 간체, 简体中文): 开源 / 开放原始码

ps. 개인적인 의견입니다.

 

해당 행사의 주최는 과학기술정보통신부(科學技術情報通信部, Ministry of Science and ICT), 주관은 정부통신산업진흥원(情報通信産業進興院, National IT Industry Promotion Agency, NIPA), 후원(Sponsor)으로는 Microsoft(MS Korea), LINE, 카카오(Kakao), 가비아(gabia), 네이버(NAVER), SK텔레콤(SK Telecom), 래블업(LABLUP), 넥스클리퍼(NexClipper)등의 회사가 참여하였습니다. 

 

준비단계

스프린트서울(SprintSeoul) 행사 참여를 하다 보니, 어느 분께서 스프린트 서울 프로젝트 참여하시는 분께서 "2020 오픈소스 컨트리뷰톤" 행사에 멘토로 참여하는 것에 대해서 어떻나는 글을 보았습니다.

2020년 04월 09일  22:12 : 올해도 컨트리뷰톤 2020을 한다고 합니다. 작년에 멘토로 참가하였을 때는 꽤 괜찮은 느낌을 받은 대회였습니다. (개최 측 멘토 배려측면에서) 
www.oss.kr/notice/show/89192428-ebf7-4de9-93a7-35caf76a1f4b
 

[2020 오픈소스 컨트리뷰톤] 프로젝트(멘토) 모집 안내 - 공개SW 포털

 

www.oss.kr

혹시 프로젝트 리드하시는 분들 중에서 관심있는 분이 있으실 것 같아 여기에 공유를 합니다. :)

 

참고: 스프린트 서울(Sprint Seoul): www.sprintseoul.org/

 

SprintSeoul - Go further together

오픈소스 프로젝트의 작성자 또는 기여자와 함께 짧은 시간 동안 함께 문제를 찾고 해결하며, 해당 오픈소스 프로젝트에 대해 보다 깊게 알아가는 행사입니다.

www.sprintseoul.org

 

위의 내용을 보고, "2020 오픈소스 컨트리뷰톤"행사 내용을 보니 행사 취지가 좋게 느껴지더군요. 다른 정부과제와 다르게 멘토를 배려한다는 측면이 있다는 글을 보고 참여를 결정하게 되었습니다.

2020 오픈소스 컨트리뷰톤 행사 프로젝트(멘토) 모집

 

멘토 신청 및 제안서 작성 

멘토 신청을 진행하려고 했습니다. 그런데 신청 양식이 hwp와 docx 및 pptx(MS사의 OOXML규격)입니다. 

다행히, 리브레오피스(LibreOffice)는 OOXML규격의 docx 파일 및 pptx을 지원을 하여 신청서를 작성하는 데는 큰 문제가 없었다는 아니고, Windows의 docx파일에 hwp포맷에서 주로 사용하는 글꼴을 적용이 되었습니다.

Windows와 다르게 MacOS 및 Linux를 사용하는 사람으로서 리브레오피스(LibreOffice)에서 한글 글꼴이 깨지는 현상은 감안하고 문서 작성을 하였습니다.

참가신청서 양식이 MS사에서 밀고 있는 OOXML규격의 docx, HWP으로 참가신청서를 작성해야함

 

작년과 올해에 컨트리뷰톤 행사에 참여한 mocha 프로젝트의 리더의 경우도 hwp, doc 등으로 보고서를 받는 것에 대해 문제제기를 하였습니다.

twitter.com/Outsideris/status/1261301179641819137

 

Outsider on Twitter

“오픈소스 지원 프로그램에서 보고서를 PDF로는 받지 않고 .hwp나 .doc으로만 받겠다는 것도 참….”

twitter.com

https://twitter.com/Outsideris/status/1261301179641819137

위의 내용을 보고, 리브레오피스(LibreOffice)가 선정되면 정부기관인 NIPA가 ODF 포맷으로 문서를 공개할까란 생각을 했습니다만 꿈같은 소리...

NIPA에서 HWP, DOC 기준으로 문서를 작성하다 보니 ODF로 문서를 만들 생각은 안 하는 듯합니다.

 

어튼 doc파일로 신청서를 리브레오피스(LibreOffice)에서 작성하였습니다.

프로젝트 이름을 무엇으로 지을까 고민을 했습니다만, 정직하게 "LibreeOffice 한국어 사용성 향상 및 공헌자 양성 프로젝트"라고 이름을 지었습니다.

다행히, 리브레오피스(LibreOffice)의 OOXML형식의 호환성 지원은 상당한 수준이라 편집하고, 주최 측에 전달을  일단 해보았습니다.

그리고, 혼자서 고민도 안 하고 회사일 하느라 바쁜데 준비과정 없이 신청하였고, 리브레오피스(LibreOffice)로 작성을 하였다 보니 호환성이 안 맞아 내용이 깨져서 주최 측에서 서류 탈락으로 처리하여 떨어질 수 있을 거란 생각을 했습니다.

그러나, 프로젝트 선정(무려 26개 프로젝트)이 되었습니다.

제가 참여한 프로젝트가 아닌 다른 프로젝트(25개 팀)를 보니 쟁쟁한 프로젝트들이 있어서 엄청 걱정했습니다.

이후, 참가자 선정 관련으로 주최 측에서 프로젝트 소개 등을 요구하였습니다.

그런데, pptx 포맷으로 전달받아서 pptx로 작성하였습니다.

전달받은 양식이 MS사에서 밀고 있는 OOXML규격의 pptx

MacOS에서 네이버의 Nanum Square 글꼴 설치 전의 리브레오피스(LibreOffice)의 프로젝트 소개 슬라이드 보기 

MacOS에서 네이버의 Nanum Square 글꼴 설치 후의 리브레오피스(LibreOffice)의 프로젝트 소개 슬라이드 보기 

컨트리뷰톤 시작 전부터 글꼴 fallback 버그를 발견하니 이거 컨트리뷰톤 진행하면 대박 터질 것 같은 느낌이 들었습니다.

실행할 때부터 버그를 발견하고, 리브레오피스(LibreOffice)의 버그질라(Bugzilla)에 보고하면 엄청난 큰 수확이 되지 않을까란 생각을 했습니다. (이미 리브레오피스를 직접 사용해본 사용자라면 한국어 사용할 때 버그는 확실히 보입니다.)

거기에, 몇 년 동안 소프트웨어의 번역도 누락된 것도 꽤 크고, 위키의 한글 문서화도 제대로 되지 않았다 보니, 여기서 참여하면 리브레오피스(LibreOffice)라는 프로젝트가 전 세계에서 유명한데, 한국에서도 이름이 알려질 수 있고, 이 행사에서 아무리 못해도 "장려상"을 받을 수 있지 않을까란 꿈같은 생각을 해보았습니다.

(그러나, 꿈은 꿈일 뿐 진행해보면서 회사일 하면서 시간 쪼개면서 하다 보니 전달력이 부족하다는 것을 느꼈음. 내가 생각한걸 다른 사람에게 전달하려면 정말 부단히 시간 투자를 해야 하는 것을 느꼈음.)

"LibreeOffice 한국어 사용성 향상 및 공헌자 양성 프로젝트"이란 제목에서 저의 의도는 리브레오피스(LibreOffice)의 한국어 사용성 향상을 위해서 버그 발견으로 멘티들이 버그를 많이 발견하고  보고를 하는 것을 생각하였습니다. (그 이유는 제가 리브레오피스 사용하다 보니 한국어 사용 관련으로 꽤나 많은 버그를 확인하였으나, 회사 다니면서 바쁘게 살다 보니 제대로 보고를 안 한 버그가 꽤 상당함)

그러나, 저의 의도와 다르게 버그 발견 및 보고에 대해선 생각보다 활동이 많이 저조했던 것에 대해서 아쉬웠습니다.  그러나, 코로나19(COVID-19)로 약 3주가량만 오프라인 미팅을 하였고, 나머지 3주를 온라인 미팅으로 진행하다 보니, 면대면(face to face)가 아닌 온라인으로 컨트리뷰션을 알리는 것이 쉽지 않은 과정임을 알게 되었습니다.

멘티 선정

프로젝트 멘토 선정 이후에, 주최 측에서 멘티 모집 공고를 냈습니다

멘티 모집 공고 관련으로 트위터와 페이스북에 홍보를 하였습니다.

멘티 선정은 신청받은 사람 대부분 수락하였습니다. 처음 진행을 하는 것이라 보니, 멘티 선정을 어떻게 해야 하는지에 대한 걸 알 수가 없었고, 일단 뽑고 대학생의 수준이 어디까지인지 확인해야 알 수 있기 때문에 거의 대부분 묻지마 선정을 하였습니다

참가지원서에서 간단한 자기소개, 지원동기, 프로젝트 개발 경험을 공개했는데 개발 경험이 학교 과제로 간단하게 한 수준이기 때문이기 때문에 자유 오픈소스 프로젝트(FLOSS)에 관심 있으면 무조건 선정했습니다.

자기소개에 앱 개발하면서 돈을 벌기 위해서나 돈과 창업을 목적으로 한다 등 상업적으로 나가는 자기소개서를 작성한 경우가 아닌 이상, 대학생과 회사원 모두 선정하였습니다. 

이 부분에서 후회되는 건, 선정된 분들의 수준을 전혀 모르고 뽑다 보니 진행이 조금 난감한 경우가 있었습니다. (뭐 이런 프로젝트가 처음이라 어찌 되든 잘 되겠지 생각을 하였습니다.)

멘티 선정 고민의 결과로 상업(돈, 창업)을 목적으로 한 사람들 제외하고 대부분 선정하였습니다.

이번 경험을 토대로 내년에 열릴 정부의 오프소스 소프트웨어 지원사업인 컨트리뷰톤에 멘티 선정 때 고려를 많이 해야 할 것 같습니다.

멘티 선정 이후, 주최 측에서 ZOOM으로 26개 프로젝트의 멘토들을 모아서 컨트리뷰톤에 대한 내용에 대하여 설명하였습니다.

이때 왜 ZOOM으로 컨퍼런스를 여는 것에 대하여 좀 이해가 되지 않았습니다. (오픈소스 프로젝트 및 기여자(寄與者)/공헌자(貢獻者)/컨트리뷰터(Contributor)를 후원하는 정부기관에서 보안 이슈가 있는 Zoom을 사용하는 것이 좀 꺼림칙했었음)

발대식

주최 측에서 코로나19(COVID-19)여파로 발대식은 4번에 나눠서 진행하였습니다. 저는 욕심이 엄청 과하여 8월 1일 시작 전에 발대식을 진행을 해보았습니다.

발대식에서 선정한 멘티분들을 만나게 되었습니다. 저와 같이 오픈소스 프로젝트 기여(寄與)/공헌(貢獻)/컨트리뷰션(Contribution)을 할 분들을 만나 뵈어서 반가웠습니다.

그러나, 회사일이 바빠서 발대식 하기 전에 참가자(멘티)와 원활한 커뮤니케이션을 못한 것이 아쉬웠습니다.

진행

이 컨트리뷰톤 행사는 8월 1일부터 9월 14일까지 6주간 진행되었습니다. 진행하는 동안 앞서 3주 동안은 주말에 면대면(face to face), 오프라인 모임 및 온라인 모임을 지속적으로 진행하였습니다.

주최 측에서는 줌(ZOOM)을 이용하는 것을 추천하였습니다. 그러나, 저는 여기서  jitsi라는 웹 기반 자유 오픈소스 프로젝트로 된 비디오 컨퍼런스, 인스턴스 메시징 플랫폼으로 온라인 컨퍼런스를 진행하였습니다.

그리고, 문의사항 및 토론으로 gitter를 사용하였습니다.

첫 3주 동안은 뭔가 잘될 것 같았습니다.

그러나 8월 15일 기점으로 갑작스러운 코로나19(COVID-19)확산으로 면대면(face to face), 오프라인 모임이 할 수 없었기 때문에 온라인으로 진행하였습니다.

면대면(face to face), 오프라인으로 모임을 하는 것도 어려웠지만, 온라인(online)으로 진행하는 것은 생각보다 매우 어려웠습니다.

그리고, 다른 사람을 가르치려면 정말 준비를 많이 해야 하는데, 회사일도 바쁘고, 다른 프로젝트와 다르게 혼자 멘토로 참여하다 보니 시간이 지날수록 몸이 피곤해짐을 느꼈습니다.

그리고 회사일이 바빠진 데다, 대학생 참가자분들이 9월 1일 기점으로 개학을 하다 보니 연락이 힘들었습니다

적극적인 직장인 분과 학생 몇 분 제외하고는 거의 피드백(feedback)을 받지 못하여 전달이 되는 건지 진행을 하는 건지 확인할 길이 없었습니다.

저도 회사일이 바빠서 8월 후반부터 컨트리뷰톤관련 기여에 대하여 일일이 챙기지 못한 것을 아쉬워합니다.

 

그리고 8월 후반부터 온라인으로 진행하다 보니, 제가 사용하는 2013년도형 맥북프로(Mac book pro 2013 Late)의 성능이 부족한 데다, 2013년도에 생산된 HP랩탑이 구형에다 GPU 성능이 좋지 않아서, jitsi를 이용한 화면 공유가 원활히 되지 않은 이슈를 확인하였습니다. 그래서 결국, CUDA 연산이 되는 GPU 달린 새로운 게이밍 랩탑을 구매하여 진행하였습니다.

새로운 랩탑 구매 후에 저 나름대로, 기존보다  빌드가 빨라져서 컨트리뷰션 관련 소스코드 리뷰를 빨리 할 수 있어 편리하더군요. 그리고 jitsi 화면 공유가 원활히 되는 것을 보며, 온라인으로 뭘 하려면 기기 투자가 중요하다는 걸 느꼈습니다.

중간평가

중간평가 시에는 몇 분이 도중에 포기한다고 하였습니다. 멘티들이 제가 생각한 대로 따라가기 어렵다고 느꼈고요.

9월 16일 부로 공식적으로 멘티들의 컨트 리뷰톤 행사 진행이 끝났습니다. 그래서 메일로 결과 서류 관련으로 작성 및 공유를 하였습니다만 몇몇 분들 빼고는 피드백이 없어서 답답하였습니다. (그 이유는 온라인으로 진행하다 보니 관심도가 떨어졌고, 9월 1일 기점으로 대학생들의 2학기 개강으로 참여도가 많이 떨어짐)

 

컨트리뷰톤 결과

리브레오피스 QA/쉬운 해킹(LibreOffice Easy Hacks)에 한국어에 대한 자동교정(Auto correct) 확장 추가

wiki.documentfoundation.org/QA/Easy_Hacks

버그질라

[ko] Extend Autocorrect list for Korean language

bugs.documentfoundation.org/show_bug.cgi?id=135727

 

135727 – [ko] Extend Autocorrect list for Korean language

Reported: 2020-08-13 17:40 UTC by DaeHyun Sung Modified: 2020-09-21 18:49 UTC (History) CC List: 1 user (show) mentoring See Also: Crash report or crash signature:

bugs.documentfoundation.org

소스코드 기여 관련

자동 교정 내용 추가 및 리브레오피스의 단위 테스트(Unit test)의 파이썬 관련 소스코드 수정 등이 있었습니다.

현재, 소스코드 기여 관련으로 huspell-ko의 한국어 맞춤법 기능 적용 관련으로 커미터에게 적용 요청을 하고 있습니다.

꾸준히 위키 번역을 해주신 분이 계셨습니다. 다음에 매 5월 및 11월에 리브레오피스 스티커를 받는 행사를 소개하고 번역에 대해 열중하도록 독려를 해드려야 할 것 같습니다.

소프트웨어 번역 관련으론 꾸준히 하시는 분들이 적어서 불만이긴 합니다. 이 부분은 제가 독려를 하고 계속 푸시를 했어야 하는 점이 있는데, 회사 일이 바빠서 번역 관련으로 못 챙긴 것이 아쉽습니다.

 

1차 서류 평가

8월 16일 이후 온라인으로 진행하다 보니, 대부분의 많은 기여(寄與)/공헌(貢獻)/컨트리뷰션(Contribution)이 8월 1일부터 3주간 동안만 진행되었습니다. 후의 3주간은 다들 강의를 들어도 시간 투자를 많이 못해서인지 참여도가 확실히 떨어지는 문제가 있었습니다.

서류 평가는 생각보다 후하게 받은 것 같습니다. 26개 팀에서 상위 18개 팀 선정이 된 것에 놀라웠습니다.

 

2차 발표평가

발표 평가 관련으로 발표자료 정리하여 메일을 전달하였으나, 발표자로 진행하려는 사람이 없었습니다. 대부분 메일 답변하는 사람이 없었습니다. 다행히, 가까스로 발표평가 관련으로 멘티 선정을 하였습니다

발표 평가는 온라인(ZOOM)과 26개 팀에서 선정된 상위 18개 팀의 멘토가 참여하여 평가를 진행하였습니다.

참, 이 행사에서 주최 측이 ZOOM을 엄청 좋아하더군요.

줌(ZOOM)의 보안 이슈가 있는데도 행사 시작부터 끝까지 ZOOM으로 진행하는 것이 뭐랄까 뭔 똥고집인가란 생각을 하였습니다. 

참고로 Zoom은 보안 이슈가 있다 보니, 대만(臺灣, Taiwan)에서는 Zoom을 사용 금지를 하였습니다.

대만(臺灣, Taiwan)의 디지털 장관인 오드리 탕(唐鳳)씨는 대만 교육부에서는 상용 프로그램인 CyberLink U Meeting, Microsoft Teams, Cisco WebEx, Adobe Connect, Google Hangouts Meet과 자유 오픈소스 프로젝트인 Jitsi meet 등을 사용한다고 소개하였습니다.

twitter.com/audreyt/status/1247451325622702081

 

Audrey Tang 唐鳳 on Twitter

“@ral_liou 教育部建議,學校可採用CyberLink U Meeting、Microsoft Teams、Cisco WebEx、Adobe Connect、Google Hangouts Meet 及開源的 Jitsi Meet 等軟體。 教育部將陸續製作相關使用說明手冊及教學影片,放在教育雲�

twitter.com

정부 기관이 보안 이슈가 있는 Zoom을 사용하는 것에 대하여 고민이 없는 것 같고, 후원사인 MS사에서 Teams를 왜 밀지 못하는가란 생각이 들었습니다. (제가 이 행사 담당자라면 Zoom을 제외하고 MS Teams, Google Hangouts meet을 사용할 것 같습니다. 최소한이라도 오픈소스 프로젝트에 관심 있는 기관이었으면 jitsi등의 컨퍼런스 관련 오픈소스 프로젝트를 사용하는 것에 대하여 최소한 고민을 한 흔적이라도 있어야 하는데 아쉽습니다)

 

어튼, 아래 사진은 발표 평가 장소에서 찍었으며, 저는 심사위원으로 참여하였습니다.

다음에는 발표자를 미리 선정후, 직접 발표 교육을 시켜야 할 것 같았습니다.

 

결과

어튼, 특별상은 받았습니다. 

특별상을 받은 기념으로, 참여한 멘티에게 기프티콘을 전달 및 수상 관련 메일을 전달하였습니다. 그러나 대다수의 멘티가 이제 리브레오피스 컨트리뷰션에 대한 관심이 사라졌는지 제가 메일 전달한 것에 대한 답변은 정말 별로 없네요...

이 행사를 통해서 한국의 오픈소스 커뮤니티에 리브레오피스(LibreOffice)가 있다고 이름 정도는 알린 것에 대하여 의의를 두었습니다.

욕심대로라면 컨트리뷰션을 하는 사람을 많이 만들려고 했습니다. 그러나 제가 리브레오피스를 왜 사용해야 하는지 이유등 의도를 제대로 전달을 못하였다는 문제를 확인하였습니다. 그래도 리브레오피스(LibreOffice)에 관심 많은 사람 몇 명을 찾은 것은 다행이라고 봅니다. 다음에는저의 의사전달 능력을 키워야 할것 같습니다.

 

후기 정리

1. 이번 컨트리뷰톤(Contributon)을 진행하면서, 회사일 하면서 다른 사람을 가르치는 일이 엄청 벅찼음. 작년에는 회사일로 거의 오전 9시부터 오후 9시까지 일하다 보니 커뮤니티 쪽으로 한 번도 챙기지 못하여 올해는 그나마 커뮤니티를 챙기려고 노력을 하였음. 어떻게 하면 커뮤니티 활성을 할까 고민하다 컨트리뷰톤행사 멘토로 진행을 해보았습니다. 일단 의도대로 리브레오피스(LibreOffice)라는 프로젝트가 있다고 이름을 알렸음.

2. 코로나19(COVID-19)이후로, 면대면(face to face)가 아닌 온라인 중심으로 진행하다 보니 일방적으로 진행한 것 같음. 멘티들이 많이 못 따라가는 걸 확인하였고 앞으로 어떻게 정보 전달을 해야 할지 고민을 해야겠음. 이 프로젝트에 포기한 사람도 몇 사람 생기고 , 따라가지 못하고 아예 잠수한 사람도 몇 명 있었음.

"LibreeOffice 한국어 사용성 향상 및 공헌자 양성 프로젝트"이란 제목에서 저의 의도는 리브레오피스(LibreOffice)의 한국어 사용성 향상을 위해서 버그 발견으로 멘티들이 버그를 많이 발견하고  보고를 하는 것을 생각하였습니다. (그 이유는 제가 리브레오피스 사용하다 보니 한국어 사용 관련으로 꽤나 많은 버그를 확인하였으나, 회사 다니면서 바쁘게 살다 보니 제대로 보고를 안 한 버그가 꽤 상당함) 그러나 저의 의도대로 버그 발견 관련으로 버그 보고가 많이 활성화되지 않은 것에 대하여 아쉬웠습니다.

그러나, 코로나19(COVID-19)로 약 3주가량만 오프라인 미팅을 하였고, 나머지 3주를 온라인 미팅으로 진행하다 보니, 면대면(face to face)가 아닌 온라인으로 컨트리뷰션을 알리는 것이 쉽지 않은 과정임을 알게 되었습니다.

오랜만에 사람들을 가르치니 정보 전달 및 강의 방식에 문제가 있다는 걸 느꼈습니다. 

참여한 멘티 대부분(거의 대학생)들이 질문도 없고 피드백에 대한 내용도 없으니 내가 전달한 내용이 제대로 이해했나는 생각이 들었음. 그러나 코로나19(COVID-19)로 인하여 제대로 의사소통을 하는 것이 어려웠기 때문에 어떻게 하면 온라인으로 의사소통을 무리 없이 할 수 있을까란 숙제가 주어짐.

3. 주최기관에서 신청서나, ODF양식이 아닌 한글과컴퓨터의 HWP 또는 MS사가 밀고 있는 OOXML의 docx, pptx를 사용. 대한민국 정부와 정보통신산업진흥원은 과연 ODF를 지속적으로 사용하려는 의지가 전혀 없어 보임. 대한민국 정부 표준으로 ODF를 선정하였으나 사용한다는 증거가 없음.

KS X ISOIEC 26300 "정보기술-오픈도큐먼트양식"이 대한민국 ODF 규격 표준입니다.

이 행사를 계기로 정부기관에 리브레오피스(LibreOfice) 소프트웨어가 있다는 걸 알림. 그러나, 정부기관 특성상 보여주기 행사나 행정을 하고 왜 ODF를 사용해야 하는지에 대한 고민이 없을 거라 다음 컨트리뷰톤에서도 ODF포맷으로 된 신청서나 결과 보고서 파일을 공유할 것이라는 보장이 없다고 봄.

4. NIPA등 여러 한국의 정부기관이 컨퍼런스 도구로 Zoom을 엄청 좋아하는 것에 대하여 우려를 하고 있습니다.

Zoom은 보안 이슈가 있다 보니, 대만(臺灣, Taiwan)에서는 Zoom을 사용 금지를 하였습니다.
대만(臺灣, Taiwan)의 디지털 장관인 오드리 탕(唐鳳)씨는 대만 교육부에서는 상용 프로그램인 CyberLink U Meeting, Microsoft Teams, Cisco WebEx, Adobe Connect, Google Hangouts Meet과 자유오픈소스 프로젝트인 Jitsi meet 등을 사용한다고 소개하였습니다

twitter.com/audreyt/status/1247451325622702081

 

Audrey Tang 唐鳳 on Twitter

“@ral_liou 教育部建議,學校可採用CyberLink U Meeting、Microsoft Teams、Cisco WebEx、Adobe Connect、Google Hangouts Meet 及開源的 Jitsi Meet 等軟體。 教育部將陸續製作相關使用說明手冊及教學影片,放在教育雲�

twitter.com

전 세계에서 Zoom의 보안 이슈 관련으로 금지를 하려는 추세인데, 오픈소스 기여자/공헌자/컨트리뷰터(Contributor)를 양성 관련으로 관심 있는 정부기관이 Zoom을 쓴다는 것에 대해서는 이상하게 보입니다. 차라리 오픈소스 jitsi 같은 플랫폼을 발굴해서 서버 구축하는 것이 좋지 않을까란 생각을 하기도 하고,  Zoom보다는 후원사로 오픈소스 프로젝트를 활성화하는 MS사의 Teams를 사용하는 것이 낫지 않을까란 생각을 할 정도였습니다.

5. 처음 참가한 행사 치고는 성과가 생각보다 많이 나서 놀랍긴 하였음. 다음에 컨트리뷰톤(Contributon)행사가 추진되면 아마 같이 보조로 활동할 분을 선정하여 진행을 해야 할 것 같습니다. 혼자는 너무 힘들었음. 다음 행사 참여를 한다면 올해보다 더 활발하게 진행할 수 있게 고민을 해야겠습니다.  그리고, 많은 사람들에게 리브레오피스의 공헌(貢獻)/기여(寄與)/컨트리뷰션(Contribution)에 대하여 지속적인 관심을 가지는 방법에 대해서도 고민을 해야겠습니다. 이런 행사만 챙기면 컨트리뷰션은 반짝하고 끝날 것이 뻔하게 보이더군요.

6. 이 행사 내용을 토대로, 10월 15일~17일 3일간 열리는 openSUSE +LibreOffice 가상 컨퍼런스에서 발표자로 참여하는데, 해당 오픈소스 컨트리뷰톤 참여 내용을 전 세계에 공유할 예정.

홈페이지: events.opensuse.org/conferences/oSLO 

 

openSUSE + LibreOffice Virtual Conference

The openSUSE and LibreOffice Projects are combining their annual conferences together for one year in 2020 to have a joint openSUSE + LibreOffice Conference. This joint conference, which is combined this one year to celebrate 10 years of the LibreOffice Pr

events.opensuse.org

10월 16일 일정: events.opensuse.org/conferences/oSLO/schedule#2020-10-16 

저는 10월 16일 UTC+0 10:30~11:00(한국시각 19:30~20:00, KST) 30분 동안 발표 예정입니다.

Buy me a coffeeBuy me a coffee

리브레오피스(LibreOffice)에 ARM기반 새로운 애플 실리콘(Apple Silicon)의 MacOS빌드 지원 커밋을 확인하였습니다.

앞으로, 애플(Apple)에서 ARM기반 macOS를 탑재한 기기가 나올 경우에 대비하여, 리브레오피스(LibreOffice)가 Arm기반 macOS에 동작할 수 있게 빌드 지원 선작업을 하였군요.

아마도, Intel기반의 MacOS뿐만아니라  Arm기반의 macOS에서도 리브레오피스(LibreOffice)가 지원 될겁니다!

아래는 ARM기반 애플 실리콘(Apple Silicon) CPU상에 동작하는 macOS[arm64-apple-macos]에 대응하는 코드가 추가된 초기 커밋입니다.

https://git.libreoffice.org/core/+/baab4f890c8ac99d1b8dab5790fbb7ab949100ab%5E%21

 

Diff - baab4f890c8ac99d1b8dab5790fbb7ab949100ab^! - core - Gitiles

commitbaab4f890c8ac99d1b8dab5790fbb7ab949100ab[log]

git.libreoffice.org

 

Buy me a coffeeBuy me a coffee

리브레오피스(LibreOffice)에 소스코드 제출을 위한 gerrit설정 및 제출 정리

리브레오피스(LibreOffice) Gerrit 소스코드 리뷰 시스템 설정

리브레오피스(LibreOffice)의 Gerrit은 문서재단의 인증을 위한 싱글 사인온(Single Sign-On)서비스를 사용하고 있습니다.

우선, Gerrit사용을 위한 계정을 생성 Create an account

참고: LibreOffice Wiki - Setting yourself up for gerrit

개인 컴퓨터에 SSH 키를 생성합니다.

SSH생성은 Github의 글을 참조하면 됩니다.
Generating a new SSH key and adding it to the ssh-agent

키생성은 아래와 같습니다

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

이후, gerrit시스템에 등록된 userid를 확인후, gerrit시스템에 SSH Key 설정 등록을합니다.

다음의 명령어로 키 조회후 gerrit시스템에 SSH Key 설정 등록하면 됩니다.

$ cat ~/.ssh/id_rsa.pub

gerrit에 SSH키 등록을 하였으면 ${HOME}/.ssh/config 파일 생성하거나 아님 기존 파일이 있으면 기존 파일에 에 아래와 같이 내용을 추가합니다

 Host logerrit gerrit.libreoffice.org
       IdentityFile /path/to/your/private-key
       User YOUR_USERNAME_HERE
       Port 29418
       HostName gerrit.libreoffice.org

IdentityFile 속성에는 생성한 ${HOME}/.ssh/id_rsa를넣으면 됩니다. User 속성에는 gerrit에 등록된 id를 넣습니다.

이후, logerrit 실행을 해봅니다

$ ./logerrit test
There seems to be trouble. Please have the output of:
ssh -vvvv logerrit
at hand when looking for help.

일단 실행해보니, 우선 ssh -vvvv logerrit을 실행하라는군요

아래와 같이 실행해봅니다.

$ ssh -vvvv logerrit

테스트가 성공하면, SSH키에 대한 비밀번호 입력하라고 나오고, 입력이 완료되면 아래와 같은 메세지를 확인할 수 있습니다

  ****    Welcome to Gerrit Code Review    ****

  Hi {Your Name}, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://{your user id}@gerrit.libreoffice.org:29418/REPOSITORY_NAME.git

debug2: channel 0: written 292 to efd 6
debug3: send packet: type 1
debug1: channel 0: free: client-session, nchannels 1
debug3: channel 0: status: The following connections are open:
  #0 client-session (t4 r0 i0/0 o0/0 e[write]/0 fd 4/5/6 sock -1 cc -1)

debug3: fd 1 is not O_NONBLOCK
Connection to gerrit.libreoffice.org closed by remote host.
Connection to gerrit.libreoffice.org closed.
Transferred: sent 3928, received 2040 bytes, in 9.5 seconds
Bytes per second: sent 415.1, received 215.6
debug1: Exit status -1

이제, logerrit이 제대로 실행되는지 확인해봅니다

$ ./logerrit test
Enter passphrase for key '/home/${HOME}/.ssh/id_rsa':
Your gerrit setup was successful!

gerrit시스템 설정이 제대로 되었으면 위와 같이 나옵니다.

소스 커밋하기

저장소에 수정한 내용을 git commit으로 커밋합니다.

커밋한 소스코드를 리브레오피스 gerrit 소스코드 리뷰시스템에 전달하기

커밋된 내용을 저장소에 적용을 하기 위해서, gerrit소스코드 리뷰 시스템에 이제 전달해야겠죠?

이제, logerrit을 이용하여 gerrit 코드 리뷰시스템에 커밋한 소스코드를 제출합니다.

$ ./logerrit submit master
Enter passphrase for key '/home/${HOME}/.ssh/id_rsa':
오브젝트 나열하는 중: 96, 완료.
오브젝트 개수 세는 중: 100% (96/96), 완료.
Delta compression using up to 4 threads
오브젝트 압축하는 중: 100% (50/50), 완료.
오브젝트 쓰는 중: 100% (57/57), 8.84 KiB | 55.00 KiB/s, 완료.
Total 57 (delta 45), reused 16 (delta 5), pack-reused 0
remote: Resolving deltas: 100% (45/45)
remote: Counting objects: 119475, done
remote: Processing changes: refs: 1, new: 1, done
remote: commit 6821939: warning: subject >50 characters; use shorter first paragraph
remote:
remote: SUCCESS
remote:
remote:   https://gerrit.libreoffice.org/c/core/+/97344 Hardcode script for "Noto" CJK fonts & add USCRIPT_JAMO [NEW]
remote:
To ssh://logerrit/core
 * [new branch]                HEAD -> refs/for/master

이제, LibreOffice의 gerrit 코드 리뷰 시스템 설정 및 소스코드 제출 방법을 확인해보았습니다.

Buy me a coffeeBuy me a coffee

2020년 오픈수세+리브레오피스 연합 컨퍼런스는 온라인으로 진행될 예정입니다.

이번 2020년도에 독일🇩🇪 뉘렌베르크에 열릴 예정이였던 오픈수세+리브레오피스 연합 컨퍼런스(openSUSE + LibreOffice Conference 2020)은 온라인으로 10월 15일부터 17일까지 열릴 예정입니다.

상세 영문 원문은 아래 내용을 참조하시기 바랍니다.

openSUSE + LibreOffice Conference 2020 Will Take Place Online

openSUSE + LibreOffice Conference 2020 Will Take Place Online - The Document Foundation Blog

 

openSUSE + LibreOffice Conference 2020 Will Take Place Online - The Document Foundation Blog

Organizers of the openSUSE + LibreOffice Conference, along with the project’s boards, have made the decision to change the conference to an online conference. The uncertainty surrounding the COVID-19 pandemic and its effect on travel, conference planning

blog.documentfoundation.org

openSUSE + LibreOffice Conference Update

openSUSE + LibreOffice Conference Update - The Document Foundation Blog

 

openSUSE + LibreOffice Conference Update - The Document Foundation Blog

The organisers of the openSUSE + LibreOffice Conference have slightly adjusted the conference dates, from the original of October 13 – 16 to the new dates of October 15 – 17. The new dates are Thursday through to Saturday. Participants can submit talks

blog.documentfoundation.org

2020년 오픈수세+리브레오피스 연합 컨퍼런스는 온라인으로 진행될 예정입니다.

 

 

오픈수세(openSUSE)와 리브레오피스(LibreOffice) 각각 프로젝트의 위원회 임원을 포함한 오픈수세 + 리브레오피스 컨퍼런스(openSUSE + LibreOffice Conference)의 조직위원회는 이번에 열릴 컨퍼런스를 온라인 컨퍼런스로 열기로 결정하였습니다.

코로나-19(COVID-19) 전염병 대유행에 둘러싼 불확실성과 이 대유행으로 여행, 컨퍼런스 계획, 물류 및 참석자들이 행사에 올 가능성에 대한 영향으로 실제 오프라인 컨퍼런스 행사를 온라인 행사로 변경을 하게 되었습니다.

이 컨퍼런스를 온라인으로 변경하는 것은 좋은 소식이며, 행사주최를 하는 사람들은 행사 기간 동안 사교 활동을 원하는 사람들을 위한 통찰력 있는 발표, 기술적인 프레젠테이션 및 회의로 가득찬 훌륭한 컨퍼런스를 제공하려고 생각하고 있습니다. 비디오 컨퍼런스 도구를 이용하여, 참석자들은 오픈수세(openSUSE)와 리브레오피스(LbreOffice)의 신 기술을 배우고 개발자와 채팅으로 질문할 기회를 갖게 됩니다. 마케팅(Marketing), 디자인(Design), QA 및 기타 주제과 관련된 커뮤니티는 온라인으로 만나 아이디어를 포착하고 교환할 수 있습니다.

발표제안(Call for Papers; CfP)는 7월 21일까지 발표를 계속 제출할수 있습니다. 발표제안(CfP)의 제출은 https://events.opensuse.org 의오픈소스 이벤트 관리자(OSEM; Open Source Event Manager) 인스턴스에서 계속 진행됩니다. 제출물 모음은 OSEM도구로 구성하지만, 온라인 행사는 최근에 openSUSE Virtual Summit —  https://opensuse.reqmagic.com 에서 사용된 것과 같은 다른 웹사이트에서 진행됩니다. 이 플랫폼은 파이어폭스(Firefox), 크로미움(Chromium) 및 여러 오픈소스 브라우저에서 동작합니다. 이 소프트웨어는 다양한 API(유투브[YouTube], 돌비[Dolby]등등)을 사용하여 플러그인이 필요 없는 전적으로 HTML5기반의 웹 기반 서비스를 지원합니다. 

컨퍼런스의 일정과 시간 할당에 대한 더 많은 정보는 곧 전달할 예정입니다.

 

트랙(Tracks)

다음은 오픈수세(openSUSE)에 관련한 발표를 제출할때 선택할 수 있는 트랙 목록입니다.

a) 오픈수세(openSUSE)
b) 오픈소스(Open Source)
c) 클라우드와 컨테이너 기술(Cloud and Containers)
d) 임베디드(Embedded)

다음은 리브레오피스(LibreOffice)에 관련한 발표를 제출할때 선택할 수 있는 트랙 목록입니다: 

a) 개발(Development), APIs, Extensions, Future Technology
b) 품질보증(Quality Assurance)
c) 현지화(Localization), 문서화(Documentation), 모국어 프로젝트(Native Language Projects)
d) LibreOffice에 마음을 끌게 하는 것: 사용 편의성, 디자인, 접근성 등
e) 개방 문서 형식(오픈 도큐먼트 포맷, Open Document Format) , 문서 해방(Document Liberation), 호환성 및 상호운용성(Interoperability)
f) LibreOffice의 옹호, 촉진, 홍보, 마케팅

발표는 15분의 짧은 발표(short talk), 30분의 일반 발표(normal talk) 및 60분의 워킹그룹(workgroup session) 세션을 선택할수 있습니다. 조직위원회는 온라인 컨퍼런스 중에 참석자의 참여를 유지하기 위해서 발표를 단축시켜야 한다고 생각했습니다. 이 변경사항은 휴식 시간, 소셜 비디오 세션 및 각각 발표가 끝난 후 질의 응답에 대한 추가 시간에 대한 조정을 하는데 도움이 됩니다.

사용할 라이브 플랫폼을 사용하면 제한된 대역폭으로 접속하는 발표자가, 라이브 발표를 원하지 않는다면, 녹화한 발표를 실행시키는 것을 허용합니다. 발표자는 동영상을 시스템에 내장된 중지, 되감기, 빨리 감기 등으로 제어하는 것이 가능합니다.

 

소규모 회의(Mini-summits)

오픈수세 + 리브레오피스(openSUSE + LibreOffice) 조직위원회는 지역 언어로 회의와 함께 진행할 소규모 온라인 회의를 조직하는 거에 관심이 있는 커뮤니티 회원의 의견을 즉시 듣고 싶습니다. 이 아이디어는 소규모 온라인 회의가 리브레오피스 스페인어 커뮤니티에서 조직하는 정기 월례 행사가 열리는 것 처럼, 커뮤니티의 행사를 조직하는데 기꺼이 도움을 줄 수 있는 커뮤니티를 위해 많은 청중들에게 다가갈수 있을 것입니다. 오픈수세 + 리브레오피스(openSUSE + LibreOffice) 컨퍼런스는 영어로 진행되지만, 소규모 온라인 회의는 지역 언어로 진행할 것입니다.여러 나라의 활발한 커뮤니티에서 사용하는 언어(예를들어, 프랑스어, 독일어, 스페인어)를 사용하는 것에 대한 노력은 모든 자원봉사자들을 참여하기 위해서 조정을 해야합니다. 관심 있는 분은 제목으로 “openSUSE + LibreOffice Conference Mini-Summit”을 작성후, 다음의 이메일 주소 ddemaio@opensuse.org 로 메일 전달해주시기 바랍니다.

 

제안 제출 방법(How to submit a proposal)

다음의 웹사이트로 제안을 제출해주시기 바랍니다: https://events.opensuse.org/conferences/oSLO

제안서 작성 가이드(Guide to writing your proposal)

하나 이상의 주제와 관련되도록 발표제안을 작성하십시요. 예를들어, 발표가 보안 또는 데스크탑인 경우, openSUSE에서 응응프로그램 설치법이나 데모 시연등을 포함하는 것이 좋습니다. 발표에서 참석하는 사람이 무엇을 배울지 분명하게 작성하십시요. 예를들어, 발표에서 주요 기술 및 소프트웨어의 소개 및 발표의 주요 주제 등입니다.

컨퍼런스에서 여러분을 온라인으로 “만나길" 고대합니다!

Buy me a coffeeBuy me a coffee

윈도우10(Windows 10)에서 WSL2설정 후 우분투(Ubuntu) 20.04를 설치하였습니다. 윈도우10에서 우분투를 설치했으니 어디에 활용을 해볼까 고민하던 찰나, 아래의 2개의 글을 보게 됩니다.

이 글을 보고, WSL2에서 GPU도 지원되는데, 설마 리브레오피스(LibreOffice) 실행도 당연히 지원 하겠지? 란 생각으로
WSL2환경에 설치한 우분투(Ubuntu) 20.04에 리브레오피스 빌드 및 실행을 해보았습니다. (결국 실행은 되더군요)

WSL2의 우분투(Ubuntu) 20.04에 리브레오피스(LibreOffice)를 빌드 하는 내용은 아래의 내용을 참조하였습니다.
Building LibreOffice on Linux and *BSD systems: Tips and Tricks

일단 리브레오피스(libreoffice)에 의존성을 가진 패키지 모두 설치를 아래의 명령어로 해보았습니다.

$ sudo apt build-dep libreoffice

의존성 있는 패키지 모두 설치후, 리브레오피스(LibreOffice)저장소를 복제합니다.

$ git clone https://gerrit.libreoffice.org/core libreoffice

libreoffice 디렉토리에 복제를 하였으면. libreoffice디렉토리로 이동합니다.

$ cd libreoffice

libreoffice디렉토리로 이동하였으면 아래와 같이 빌드환경 설정을 해주는 스크립트를 아래와 같은 명령어로 실행하였습니다.

./autogen.sh --with-locales="ko" --with-vendor="me" --disable-werror --with-build-version="Built by me" --with-lang="ko" --enable-dbgutil

빌드 실행시 아래와 같이 오류가 나오면 libkrb5-dev 패키지를 설치햅니다

checking for library containing krb5_sendauth... no
configure: error: could not find function 'krb5_sendauth' required for Kerberos 5
Error running configure at ./autogen.sh line 299.

libkrb5-dev 패키지는 아래와 같은 명령어로 설치합니다.

$ sudo apt install libkrb5-dev

설치후, 다시 빌드 환경 스크립트 autogen.sh를 실행해줍니다.

****************************************************************************

To build, run:
/usr/bin/make

To view some help, run:
/usr/bin/make help

After the build has finished successfully, you can immediately run what you built using the command:
instdir/program/soffice

If you want to run the smoketest, run:
/usr/bin/make check

*************************************
* WARNING : no suitable nasm (Netwide Assembler) found for internal libjpeg-turbo

빌드 환경이 구성되었으면 make로 빌드를 해줍니다.

빌드는 2013년도에 생산된 i5 듀얼코어 4세대 하스웰+램16GB이면 아마 반나절 정도 오랫동안 걸릴겁니다. 자기전에 빌드하고 컴퓨터를 켜보면 빌드가 되었을겁니다.

빌드가 완료되면 아래와 같은 화면이 뜹니다.

[CMP] sw/util/sw
[DEP] LNK:Library/libswuilo.so
[LNK] Library/libswuilo.so
[DEP] LNK:Library/libvbaswobjlo.so
[LNK] Library/libvbaswobjlo.so
[CMP] sw/util/vbaswobj
[DEP] LNK:Library/libmswordlo.so
[LNK] Library/libmswordlo.so
[DEP] LNK:Library/libsclo.so
[LNK] Library/libsclo.so
[CMP] sw/util/msword
[BIN] sw
[MOD] sw
[CMP] sc/util/sc
[DEP] LNK:Library/libvbaobjlo.so
[LNK] Library/libvbaobjlo.so
[DEP] LNK:Library/libscuilo.so
[LNK] Library/libscuilo.so
[DEP] LNK:Library/libscfiltlo.so
[LNK] Library/libscfiltlo.so
[CMP] sc/util/vbaobj
[CMP] sc/util/scfilt
[RDB] services
[BIN] sc
[MOD] sc
[BIN] postprocess
[GAL] backgrounds
[GAL] sounds
[MOD] postprocess
[ULF] /home/dhsung/libreoffice/workdir/Gallery/sounds/sounds.ulf
[STR] sounds/sounds
[PKG] Gallery/sounds
[ULF] /home/dhsung/libreoffice/workdir/Gallery/backgrounds/backgrounds.ulf
[STR] backgrounds/backgrounds
[PKG] Gallery/backgrounds
[BIN] extras
[MOD] extras
[MOD] libreoffice
[BIN] top level modules: libreoffice
[ALL] top level modules: build-non-l10n-only build-l10n-only

진짜 빌드가 끝났습니다. 그럼 실행을 해볼까요?

빌드한 리브레오피스(LibreOffice(를 실행하려면 아래와 같이 실행해줍니다.

$ ./instdir/program/soffice

WSL2의 Ubuntu+Xming으로 리브레오피스 화면을 띄어보니 진짜 리브레오피스가 빌드 및 실행됨을 확인하였습니다!!!

그러나, 옵션에서 한국어 설정한 후 다시 실행해보니 아직 한글이 뜨지 않고 깨져나옵니다. 그건 한글 글꼴이 나오도록 설정을 하지 않았기 때문이죠. (확인해보니 WSL2에 Ubuntu 20.04설치하면 기본 로케일 설정이 'C.UTF-8'입니다.)

아래는 WSL2에 설치한 Ubuntu 20.04 배포판의 기본 로케일 설정확인 명령입니다.

$ locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

(음.. C.UTF-8이라니... @.@)

윈도우의 WSL2에 설치한 리눅스 배포판에서 리브레오피스(Linux)를 실행하여 한글 정상적으로 나오게 하는 부분은 추후에 추가하여 공유를 하겠습니다.

실행 후, 빌드에 대한 옵션이 제대로 들어갔는지 확인해봅니다.

역시, 위에 벤더이름(me)가 잘 들어갔습니다.

상세하게 Build version 설정을 확인해보니 "Built by me"옵션도 제대로 들어갔구요. 그러나 로케일은 우분투(Ubuntu)기본 설치할때 들어가는 C.UTF-8이 들어가는 것이 아쉽더군요.

간단하게 실 사용을 해보겠습니다.

MS사의 워드격인 리브레오피스 라이터(Writer)에서 영어낱말은 잘 작성되는데, WSL2의 내부 Xwindow글꼴 설정에 한국어 설정한 것이 없으니 한글이 깨져나옵니다. WSL2의 기능에서 배포판에서 사용자 언어에 맞게 설정이 안되고, Xwindow설정에서도 당연히 사용자 언어에 맞게 설정되지 않은 문제라보니 이건 아쉽군요.

WSL2의 우분투(Ubuntu)에서 실제로 리브레오피스(LibreOffice)를 빌드 및 실행을 해보았습니다. 실행후 가볍게 사용해보니 불안정한 문제는 없고 리눅스위에 실행한 것과 동일한 경험을 제공하였습니다. 다만 "한글"이 나오지 않은건 "한국어" 글꼴 렌더링 설정이 안되어서 입니다. 뭐 기본 로케일이 C.UTF-8이니 Xwindow설정에 한글 글꼴 관련 렌더링이 없어 한글 당연히 깨집니다.

MS사의 리눅스(Linux)지원 행보를 보면, 예전과 다르게 오픈소스 친화적으로 변하면서 여러 리눅스에서 돌아가는 응용프로그램을 윈도우에서 실 사용할수 있게 지원함을 알수 있습니다.

여기서 좀 더 확장해가면 MS사가 윈도우 자체 기술은 가지되, 실제 커널 부분을 리눅스(Linux)로 옮겨서 리눅스용 응용프로그램을 품지 않을까란 생각이 들긴 하더군요. (이건 저의 뇌내 망상이라 흘려 들으시기 바랍니다)

앞으로 WSL2가 발전되어 윈도우 언어에 맞게 리눅스 설정이 자동으로 되면 리눅스 개발도 윈도우에서 하는 재미있는 상황이 생기지 않을까란 생각을 해봅니다.

WSL2에 GPU지원한다길래, WSL2에서 리브레오피스(LibreOffice)를 실행할수 있을까에 대한 궁금증으로 시작한 주말의 삽질기는 여기까지입니다.

실제 사용이 가능한지는, 제가 직장인이라 윈도우를 집에서 항상 쓸일이 없어서, 다음 주말에 실행해봐야겠군요. (당연 Xwindow에 한글 글꼴 설정 및 입력 관련으로 삽질을 해봐야 할것 같구요.) ㅎㅎ

제가 2011년 이후부터 주로 Mac OSX와 openSUSE 랩탑 2개로 집에서 작업하다보니, 집에서 윈도우를 네이티브(Native)로 실사용을 거의 오랜만(9~10년)에 해보았습니다. :)

button.like.co/studioego

 

Like DaeHyun Sung's work

Reward Creativity, powered by LikeCoin

button.like.co

www.buymeacoffee.com/dhsung

 

DaeHyun Sung is Free/Libre Open source contributor such as LibreOffice, KDE, GNOME,etc

Hey 👋 I just created a page here. You can now buy me a coffee!I’m Korean Open Source Contributor & Developer, such as LibreOffice, KDE, GNOME, etc.My hobby is Learning...

www.buymeacoffee.com

 

Buy me a coffeeBuy me a coffee

English: Submit & commit Translation on WhatCanIDoForLibreOffice repository using LibreOffice Gerrit code review system.

Korean: 리브레오피스(LibreOffice) 소스코드 리뷰 시스템 Gerrit에서 관리하는 WhatCanIDoForLibreOffice 저장소에 번역 내용 커밋 및 적용하기 기록

Korean follows English. (私の日本語の実力が本当に足りなくて英語と韓国語だけ書きました。)

June 17th Wednesday, 2020.

Japanese TDF Member, Jun Nogata wrote the post on LibreOffice Korean Facebook.

Below is the post he wrote on LibreOffice Korean Facebook.

(He is Japanese speaker. But, He study Korean and wrote the post on LibreOffice Korean Facebook.)

Below is the his post

안녕하새요. 질문이 있어요.

어떻게 이 repository로 commit할 수 있어요?
https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

logerrit없어요. 모르겠어요~😭
이본어 번역을 commit하고 싶어요...😢
Translated into English
Hello, I have a question.

How to commit the files on the repository, WhatCanIDoForLibreOffice
https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

I have no logerrit file. I don't know~😭
I want to commit the Japanese translation.
------
I corrected his Korean writing.

안녕하세요. 질문이 있습니다.

어떻게 이 repository로 commit할 수 있어요?
https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

저는 logerrit이 없어요. 모르겠어요~😭
일본어 번역을 commit하고 싶어요...😢

He want to add Japanese translation on "What Can I Do For LibreOffice" repository, controlled by TDF Gerrit code review system.

Here is "What Can I Do For LibreOffice" repository.
https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

 

https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

 

gerrit.libreoffice.org

Here is "What Can I Do For LibreOffice" Homepage.
https://whatcanidoforlibreoffice.org/

 

What can I do for LibreOffice

LibreOffice Language: English ‪čeština | ‪Czech ‪Cymraeg | ‪Welsh Español | Spanish ‪Français | ‪French ‪Italiano | ‪Italian ‪한국어 | ‪Korean ‪Português do Brasil | ‪Brazilian Portuguese ‪Slovenščina | ‪Slovenian ‪S

whatcanidoforlibreoffice.org

I added Korean translation on the "What Can I Do For LibreOffice" Homepage.

I summarize the log to add add my translation(Korean) on "What Can I Do For LibreOffice" repository. (It can also apply to translation for CJK languages such as Japanese, Chinese[Traditional, Simplified], etc.)

For the first time, You need to set yourself up LibreOffice gerrit code review system.

Below is Detail contents about Setup yourself up for gerrit.

https://wiki.documentfoundation.org/Development/gerrit/setup#Setting_yourself_up_for_gerrit_-_the_easy_way

 

Development/gerrit/setup - The Document Foundation Wiki

Setting yourself up for gerrit Before you start: Troubleshooting help The instructions below should be easy and quick to follow. However, if you get stuck somewhere, here is how you get help: Register in Gerrit for first time Gerrit uses The Document Found

wiki.documentfoundation.org

Next time, Get the "What Can I Do For LibreOffice" source code from "WhatCanIDoForLibreOffice" repository.

git clone "https://git.libreoffice.org/WhatCanIDoForLibreOffice"

And then, add /locales/[your-language code].inifile and modify index.html and locales.ini files.

I'm Korean and My mother tongue is Korean, so My Language's ISO Language code is ko-KR.
So, I added ko-kr.inifile.

(For example, If you are Japanese, You can add Japanese code ja and add ja.inifile. Also you are Simplified Chinese speaker, You can add zh-cn.ini file for ISO's Simplified Chinese Language code zh-CN, you are Traditional Chinese speaker, You can add zh-tw.ini file for ISO's Simplified Chinese Language code zh-TW.)

below is my committed some code link Add Korean [ko-kr] translation

 

Diff - f82b424ce060af3a0b10bf6456cbbb96b39cba96^! - WhatCanIDoForLibreOffice - Gitiles

commitf82b424ce060af3a0b10bf6456cbbb96b39cba96[log]

git.libreoffice.org

and commit your modified and added files.

git commit -a

you have to write commit logs.

After wrote the commit log, You can see logs

[master f82b424] Add Korean [ko-kr] translation.
3 files changed, 58 insertions(+)

and then, I have to submit at TDF Gerrit system using logerrit file.

% curl -LJO https://gist.githubusercontent.com/studioego/943695359245924f03268e3bd5fd62ca/raw/logerrit -o logerrit

Next time, You change the logerrit file's execute permission.

% chmod +x logerrit

(You have to regist ssh key on LibreOffice gerrit review system.)

and then submit the commit using logerrit on LibreOffice gerrit review system.

% ./logerrit submit master
Enter passphrase for key '/****/.ssh/id_rsa':
오브젝트 나열하는 중: 7, 완료.
오브젝트 개수 세는 중: 100% (7/7), 완료.
Delta compression using up to 4 threads
오브젝트 압축하는 중: 100% (4/4), 완료.
오브젝트 쓰는 중: 100% (4/4), 424 bytes | 424.00 KiB/s, 완료.
Total 4 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (3/3)
remote: Processing changes: refs: 1, done
remote: ERROR: commit f82b424: missing Change-Id in message footer
remote:
remote: Hint: to automatically insert a Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 ****@gerrit.libreoffice.org:hooks/commit-msg ${gitdir}/hooks/
remote: and then amend the commit:
remote: git commit --amend --no-edit
remote: Finally, push your changes again
remote:
To ssh://logerrit/WhatCanIDoForLibreOffice
! [remote rejected] HEAD -> refs/for/master (commit 4a07bf2: missing Change-Id in message footer)
error: 레퍼런스를 'ssh://logerrit/WhatCanIDoForLibreOffice'에 푸시하는데 실패했습니다

Ooops, Because of missing Change-ID in message footer, You don't submit the commit.

So, install the hook

% gitdir=$(git rev-parse --git-dir); scp -p -P 29418 ****@gerrit.libreoffice.org:hooks/commit-msg ${gitdir}/hooks/
Enter passphrase for key '/****/.ssh/id_rsa':
commit-msg 100% 1791 5.3KB/s 00:00

and then amend the commit (add Change-ID)

git commit --amend --no-edit
[master f82b424] Add Korean [ko-kr] translation.
Date: Fri Jun 14 01:26:26 2019 +0900

after amand the commit, added Change-Id in message footer.
Finally, push your changes again

% ./logerrit submit master
Enter passphrase for key '/********/.ssh/id_rsa':
오브젝트 나열하는 중: 7, 완료.
오브젝트 개수 세는 중: 100% (7/7), 완료.
Delta compression using up to 4 threads
오브젝트 압축하는 중: 100% (4/4), 완료.
오브젝트 쓰는 중: 100% (4/4), 468 bytes | 468.00 KiB/s, 완료.
Total 4 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (3/3)
remote: Processing changes: refs: 1, new: 1, done
remote:
remote: SUCCESS
remote:
remote: https://gerrit.libreoffice.org/.../WhatCanIDoForL.../+/73976 Add Korean [ko-kr] translation.
 [NEW]
remote:
To ssh://logerrit/WhatCanIDoForLibreOffice
* [new branch] HEAD -> refs/for/master

and submit the gerrit review system and If the Libreoffice's "WhatCanIDoForLibreOffice" repository soruce code reviewer allow the commit, He/She accept your source code.
https://gerrit.libreoffice.org/c/WhatCanIDoForLibreOffice/+/73976

 

https://gerrit.libreoffice.org/c/WhatCanIDoForLibreOffice/+/73976

 

gerrit.libreoffice.org

Finally, After The Repository committer checked the your commit, He’ve approve the your submitted source code.

Change has been successfully cherry-picked as f82b424ce060af3a0b10bf6456cbbb96b39cba96 by ***

Here is my commit log Add Korean [ko-kr] translation and review link https://gerrit.libreoffice.org/c/WhatCanIDoForLibreOffice/+/73976 for submit the translation source code on WhatCanIDoForLibreOffice repository.

With this opportunity, I would like East Asian developers to collaborate on various developments and uses on LibreOffice.

Collaboration

  • Korean: 협업(協業)
  • Japanese: 協力, コラボレーション
  • Simplified Chinese: 合作/协作
  • Traditional Chinese: 協作/合作

우리말로 쓴 글

2020년 6월 17일 수요일.

일본의 문서재단(The Document Foundation)회원인 노가타 준(Jun Nogata, 野方純)님께서 페이스북의 "리브레오피스 (한국어)"채널에 글을 올리셨습니다.

안녕하새요. 질문이 있어요.

어떻게 이 repository로 commit할 수 있어요?
https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

logerrit없어요. 모르겠어요~😭
이본어 번역을 commit하고 싶어요...😢
(여기서는 일본분의 글을 아래와 같이 어법에 맞게 고쳐보았습니다.)

안녕하세요. 질문이 있습니다.

어떻게 이 repository로 commit할 수 있어요?
https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

저는 logerrit이 없어요. 모르겠어요~😭
일본어 번역을 commit하고 싶어요...😢

다음 링크는 노가타 준님이 올린 리브레오피스 한국어 채널의 글 입니다.

노가타 준님은 문서재단(TDF; The Document Foundation)의 Gerrit 소스코드 검토 시스템에서 관리하는 "What Can I Do For LibreOffice" 저장소에 일본어 번역을 추가하고 싶어하였습니다.

다음은 "What Can I Do For LibreOffice"저장소 링크입니다.
https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

 

https://gerrit.libreoffice.org/admin/repos/WhatCanIDoForLibreOffice

 

gerrit.libreoffice.org

다음은 "What Can I Do For LibreOffice" 홈페이지 링크입니다.
https://whatcanidoforlibreoffice.org/

 

What can I do for LibreOffice

LibreOffice Language: English ‪čeština | ‪Czech ‪Cymraeg | ‪Welsh Español | Spanish ‪Français | ‪French ‪Italiano | ‪Italian ‪한국어 | ‪Korean ‪Português do Brasil | ‪Brazilian Portuguese ‪Slovenščina | ‪Slovenian ‪S

whatcanidoforlibreoffice.org

저는 "What Can I Do For LibreOffice" 홈페이지에 한국어 번역을 하였습니다.

저는 "What Can I Do For LibreOffice"의 저장소에 한국어 번역을 추가한 기록을 다음과 같이 정리하였습니다.
(이 글을 참조로 하여 일본어[日本語], 중국어[번체繁體, 간체简体] 등등 동아시아 언어 사용사는 사람이 "What Can I Do For LibreOffice"의 저장소에 번역을 올릴 수 있습니다.)

맨 처음으로, LibreOffice의 gerrit 리뷰 시스템을 설정을 해야합니다.
상세한 내용은 다음의 링크 Setting yourself up for gerrit - the easy way에서 확인하시기 바랍니다.

그 다음, "WhatCanIDoForLibreOffice" 저장소에서 "What Can I Do For LibreOffice" 소스코드를 아래의 명령어로 받습니다.

git clone "https://git.libreoffice.org/WhatCanIDoForLibreOffice"

그리고, /locales/[your-language code].ini 파일을 추가 및 index.htmllocales.ini 파일을 수정합니다.

저는 한국인이며, 모국어가 한국어입니다. 그래서 한국어의 ISO언어 코드는 ko-KR입니다.
그래서 저는 ko-kr.ini파일을 추가했습니다.

(예를들어, 일본어를 사용하는 일본사람이라면, 일본어 언어 코드가 ja 이니 ja.ini파일을 추가하여 번역을 적용할 수 있습니다. 또한, 간체 중국어를 사용하는 사람이라면 간체 중국어에 해당하는 언어 코드가 zh-CN 이니 zh-cn.ini을 추가하여 번역을 적용할 수 있습니다. 그리고 번체 중국어 사용하는 사람이라면 번체 중국어에 해당하는 언어코드가 zh-TW 이니 zh-tw.ini파일 추가하여 번역을 적용할 수 있습니다.)

다음은 제가 커밋한 소스코드의 링크 Add Korean [ko-kr] translation 입니다.

 

Diff - f82b424ce060af3a0b10bf6456cbbb96b39cba96^! - WhatCanIDoForLibreOffice - Gitiles

commitf82b424ce060af3a0b10bf6456cbbb96b39cba96[log]

git.libreoffice.org

이후에 추가 및 수정한 소스코드 파일을 커밋합니다.

git commit -a

커밋 로그에 커밋에 해당하는 제목과 내용을 써야합니다. 커밋 로그를 쓴 후엔, 다음의 로그를 볼 수 있습니다.

[master f82b424] Add Korean [ko-kr] translation.
3 files changed, 58 insertions(+)

이제 커밋을 하였으면, logerrit 파일을 이용하여 문서재단(TDF)가 관리하는 Gerrit 코드 리뷰 시스템에 소스코드를 제출해봅시다.

다음은, 제가 "WhatCanIDoForLibreOffice" 저장소에 맞게 수정한 logerrit 파일을 gist저장소에서 다운로드 받는 명령어입니다.

% curl -LJO https://gist.githubusercontent.com/studioego/943695359245924f03268e3bd5fd62ca/raw/logerrit -o logerrit

그 다음, logerrit파일에 실행 권한을 추가합니다.

% chmod +x logerrit

(알림: 필수로 리브레오피스 Gerrit 리뷰시스템에서 SSH 키를 등록해야합니다.)

logerrit파일을 이용하여, 커밋한 소스코드를 제출합니다.

% ./logerrit submit master
Enter passphrase for key '/****/.ssh/id_rsa':
오브젝트 나열하는 중: 7, 완료.
오브젝트 개수 세는 중: 100% (7/7), 완료.
Delta compression using up to 4 threads
오브젝트 압축하는 중: 100% (4/4), 완료.
오브젝트 쓰는 중: 100% (4/4), 424 bytes | 424.00 KiB/s, 완료.
Total 4 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (3/3)
remote: Processing changes: refs: 1, done
remote: ERROR: commit f82b424: missing Change-Id in message footer
remote:
remote: Hint: to automatically insert a Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 ****@gerrit.libreoffice.org:hooks/commit-msg ${gitdir}/hooks/
remote: and then amend the commit:
remote: git commit --amend --no-edit
remote: Finally, push your changes again
remote:
To ssh://logerrit/WhatCanIDoForLibreOffice
! [remote rejected] HEAD -> refs/for/master (commit 4a07bf2: missing Change-Id in message footer)
error: 레퍼런스를 'ssh://logerrit/WhatCanIDoForLibreOffice'에 푸시하는데 실패했습니다

아, Gerrit에서 사용하는 Change-ID를 커밋 메시지 하단에 없기때문에, 소스코드 커밋을 제출할 수 없습니다.

그래서 위의 메세지에서 안내되는 내용처럼 훅(hook)을 다음과 같이 설치합니다.

% gitdir=$(git rev-parse --git-dir); scp -p -P 29418 ****@gerrit.libreoffice.org:hooks/commit-msg ${gitdir}/hooks/
Enter passphrase for key '/****/.ssh/id_rsa':
commit-msg 100% 1791 5.3KB/s 00:00

그리고, 커밋로그에 Change-ID를 추가하도록 진행합니다.

git commit --amend --no-edit
[master f82b424] Add Korean [ko-kr] translation.
Date: Fri Jun 14 01:26:26 2019 +0900

커밋로그에 Change-ID를 추가된것을 알 수 있습니다.

마지막으로, 다시 logerrit으로 소스코드를 제출합니다.

% ./logerrit submit master
Enter passphrase for key '/********/.ssh/id_rsa':
오브젝트 나열하는 중: 7, 완료.
오브젝트 개수 세는 중: 100% (7/7), 완료.
Delta compression using up to 4 threads
오브젝트 압축하는 중: 100% (4/4), 완료.
오브젝트 쓰는 중: 100% (4/4), 468 bytes | 468.00 KiB/s, 완료.
Total 4 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (3/3)
remote: Processing changes: refs: 1, new: 1, done
remote:
remote: SUCCESS
remote:
remote: https://gerrit.libreoffice.org/.../WhatCanIDoForL.../+/73976 Add Korean [ko-kr] translation.
 [NEW]
remote:
To ssh://logerrit/WhatCanIDoForLibreOffice
* [new branch] HEAD -> refs/for/master

이제, Gerrit 리뷰 시스템에 제출하였습니다.

https://gerrit.libreoffice.org/c/WhatCanIDoForLibreOffice/+/73976
만약, 리브레오피스의 WhatCanIDoForLibreOffice 소스코드 리뷰어가 커밋를 허용하면, 소스코드가 적용됩니다.

마침내, WhatCanIDoForLibreOffice 저장소 커미터가 커밋을 확인한 후에, 커미터는 제출한 소스코드를 승인하였습니다.

Change has been successfully cherry-picked as f82b424ce060af3a0b10bf6456cbbb96b39cba96 by ***

이제 저장소에 제출한 번역 소스코드가 적용되었습니다.

다음은 제가 WhatCanIDoForLibreOffice 저장소에 제출한 번역 소스코드 리뷰 링크 https://gerrit.libreoffice.org/c/WhatCanIDoForLibreOffice/+/73976 와 커밋링크 Add Korean [ko-kr] translation 입니다.

이 글을 계기로, 여러가지 개발 및 사용관련으로 CJK 지역의 협업(協業), (Japanese: 協力, Simplified Chinese: 合作/协作, Traditional Chinese: 協作/合作, English: Collaboration)을 이루었으면 합니다. :)

Buy me a coffeeBuy me a coffee

우분투(Ubuntu)에서 리브레오피스(LibreOffice)의 소스코드를 빌드할 수 있게 의존성 있는 패키지를 가져오도록 하는 선택하는 옵션으로 의존성있는 패키지 설치를 진행해보았습니다.

$ sudo apt build-dep libreoffice
[sudo] password for ***:
Reading package lists... Done
E: You must put some 'deb-src' URIs in your sources.list

아... deb-src URI가 sources.list에 없다고 sources.listdeb-src를 채워놓으라고 하군요.

그럼, sources.listdeb-src URI를 채워넣어야죠.

sources.list 파일을 수정해봅니다.

$ sudo vi /etc/apt/sources.list

이미 deb-src는 있으나 #으로 주석처리되어 있습니다. 그럼, 저장소 목록에 있는 deb-src 앞의 # 주석을 해제합니다.

그리고, 저장소 목록을 다시 업데이트 합니다.

$ sudo apt update

그리고 다시 아래의 명령어로 libreoffice에 대해 빌드할수 있게 의존성있는 패키지를 설치해봅니다.

$ sudo apt-get build-dep libreoffice
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  acl ant ant-optional autoconf automake autopoint autotools-dev binutils binutils-common binutils-x86-64-linux-gnu
  bison build-essential ca-certificates-java comerr-dev cpp cpp-9 dctrl-tools debhelper default-jdk
  default-jdk-headless default-jre default-jre-headless default-libmysqlclient-dev devscripts dh-apparmor
  dh-autoreconf dh-python dh-strip-nondeterminism doxygen dpkg-dev dwz evolution-data-server-common fakeroot
  firebird-dev firebird3.0-common firebird3.0-common-doc firebird3.0-server-core flex fontforge-common fontforge-nox
  fonts-crosextra-carlito fonts-dejavu fonts-dejavu-extra fonts-liberation2 fonts-urw-base35 g++ g++-9 gcc gcc-9
  gcc-9-base gdb gettext ghostscript gir1.2-atk-1.0 gir1.2-atspi-2.0 gir1.2-camel-1.2 gir1.2-ebackend-1.2
  gir1.2-ebook-1.2 gir1.2-ebookcontacts-1.2 gir1.2-edatabook-1.2 gir1.2-edataserver-1.2 gir1.2-freedesktop
  gir1.2-gdkpixbuf-2.0 gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gir1.2-gtk-3.0 gir1.2-harfbuzz-0.0
  gir1.2-langtag-0.6 gir1.2-pango-1.0 gir1.2-secret-1 gir1.2-soup-2.4 gobject-introspection gperf graphviz
  hyphen-en-us icu-devtools imagemagick imagemagick-6-common imagemagick-6.q16 intltool-debian java-common javahelper
  junit4 krb5-multidev libabw-0.1-1 libabw-dev libamd2 libann0 libapache-pom-java libarchive-zip-perl libasan5
  libassuan-dev libatk-bridge2.0-dev libatk1.0-dev libatomic1 libatspi2.0-dev libavahi-client-dev libavahi-common-dev
  libb-hooks-op-check-perl libbabeltrace1 libbinutils libblas-dev libblas3 libblkid-dev libbluetooth-dev libbluetooth3
  libboost-atomic1.71-dev libboost-atomic1.71.0 libboost-chrono1.71-dev libboost-chrono1.71.0 libboost-date-time-dev
  libboost-date-time1.71-dev libboost-date-time1.71.0 libboost-dev libboost-filesystem-dev libboost-filesystem1.71-dev
  libboost-filesystem1.71.0 libboost-iostreams-dev libboost-iostreams1.71-dev libboost-iostreams1.71.0
  libboost-locale-dev libboost-locale1.71-dev libboost-locale1.71.0 libboost-regex1.71-dev libboost-regex1.71.0
  libboost-serialization1.71-dev libboost-serialization1.71.0 libboost-system1.71-dev libboost-system1.71.0
  libboost-thread1.71-dev libboost-thread1.71.0 libboost1.71-dev libbrotli-dev libbsh-java libbtf1 libc-dev-bin
  libc6-dev libcairo-script-interpreter2 libcairo2-dev libcamd2 libcamel-1.2-62 libcamel1.2-dev libcc1-0 libccolamd2
  libcdr-0.1-1 libcdr-dev libcdt5 libcgraph6 libcholmod3 libclang1-10 libclass-method-modifiers-perl
  libclucene-contribs1v5 libclucene-core1v5 libclucene-dev libcmis-0.5-5v5 libcmis-dev libcolamd2
  libcommons-logging-java libcommons-parent-java libcppunit-1.15-0 libcppunit-dev libcroco3 libcrypt-dev libctf-nobfd0
  libctf0 libcups2-dev libcupsimage2 libcupsimage2-dev libcurl4-gnutls-dev libcxsparse3 libdatrie-dev libdbus-1-dev
  libdconf-dev libdebhelper-perl libdevel-callchecker-perl libdpkg-perl libdw1 libdynaloader-functions-perl
  libe-book-0.1-1 libe-book-dev libebackend-1.2-10 libebackend1.2-dev libebook-1.2-20 libebook-contacts-1.2-3
  libebook-contacts1.2-dev libebook1.2-dev libedata-book-1.2-26 libedata-book1.2-dev libedataserver-1.2-24
  libedataserver1.2-dev libegl-dev libegl1-mesa-dev libel-api-java libemf1 libencode-locale-perl libeot-dev libeot0
  libepoxy-dev libepubgen-0.1-1 libepubgen-dev libetonyek-0.1-1 libetonyek-dev libexif12 libexpat1-dev
  libexttextcat-2.0-0 libexttextcat-data libexttextcat-dev libfakeroot libfbclient2 libffi-dev libfftw3-double3
  libfile-homedir-perl libfile-listing-perl libfile-stripnondeterminism-perl libfile-which-perl libfontconfig1-dev
  libfontforge3 libfreehand-0.1-1 libfreehand-dev libfreetype-dev libfreetype6-dev libfribidi-dev libgcc-9-dev
  libgck-1-0 libgcr-base-3-1 libgcrypt20-dev libgd3 libgdata-common libgdata22 libgdk-pixbuf2.0-dev libgdraw6
  libgfortran5 libgif7 libgirepository1.0-dev libgl-dev libgl1-mesa-dev libgles-dev libgles1 libgles2
  libgles2-mesa-dev libglib2.0-dev libglib2.0-dev-bin libglm-dev libglu1-mesa libglu1-mesa-dev libglvnd-dev libglx-dev
  libgmp-dev libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx28 libgoa-1.0-0b
  libgoa-1.0-common libgomp1 libgpg-error-dev libgpgme-dev libgpgmepp-dev libgphoto2-6 libgphoto2-port12 libgraphblas3
  libgraphite2-dev libgs9 libgs9-common libgssrpc4 libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0
  libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgtk-3-dev libgts-0.7-5 libgvc6 libgvpr2 libhamcrest-java
  libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 libhsqldb1.8.0-java libhtml-parser-perl libhtml-tagset-perl
  libhtml-tree-perl libhttp-cookies-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libhunspell-dev
  libhyphen-dev libhyphen0 libib-util libice-dev libicu-dev libidn11 libidn2-dev libieee1284-3 libijs-0.35
  libimport-into-perl libio-html-perl libio-pty-perl libio-socket-ssl-perl libipc-run-perl libisl22 libitm1
  libixion-0.15-0 libjbig-dev libjbig2dec0 libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libjsp-api-java
  libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-9 libkf5attica-dev libkf5auth-dev libkf5auth-dev-bin libkf5auth5
  libkf5bookmarks-dev libkf5codecs-dev libkf5completion-dev libkf5config-dev libkf5config-dev-bin
  libkf5configwidgets-dev libkf5coreaddons-dev libkf5coreaddons-dev-bin libkf5dbusaddons-dev libkf5globalaccel-dev
  libkf5guiaddons-dev libkf5i18n-dev libkf5iconthemes-dev libkf5itemviews-dev libkf5jobwidgets-dev libkf5kio-dev
  libkf5kiofilewidgets5 libkf5service-dev libkf5solid-dev libkf5sonnet-dev libkf5sonnet-dev-bin libkf5textwidgets-dev
  libkf5widgetsaddons-dev libkf5windowsystem-dev libkf5xmlgui-dev libklu1 liblab-gamut1 liblangtag-common
  liblangtag-dev liblangtag-gobject0 liblangtag1 liblapack-dev liblapack3 liblcms2-dev libldap2-dev libldl2 libllvm10
  liblpsolve55-dev liblqr-1-0 liblsan0 libltdl-dev liblwp-mediatypes-perl liblwp-protocol-https-perl liblzma-dev
  libmagick++-6.q16-8 libmagickcore-6.q16-6 libmagickwand-6.q16-6 libmdds-dev libmetis5 libmhash2
  libmodule-runtime-perl libmongoose2 libmoo-perl libmount-dev libmpc3 libmspub-0.1-1 libmspub-dev libmwaw-0.3-3
  libmwaw-dev libmysqlclient-dev libmysqlclient21 libmythes-1.2-0 libmythes-dev libneon27-gnutls libneon27-gnutls-dev
  libnet-http-perl libnet-ssleay-perl libnspr4 libnspr4-dev libnss3 libnss3-dev libodbc1 libodfgen-0.1-1 libodfgen-dev
  libopengl-dev libopengl0 libopenjp2-7 liborc-0.4-0 liborc-0.4-dev liborc-0.4-dev-bin liborcus-0.15-0 liborcus-dev
  liborcus-spreadsheet-model-0.15-0 libp11-kit-dev libpagemaker-0.0-0 libpagemaker-dev libpango1.0-dev
  libpangoxft-1.0-0 libpaper1 libparams-classify-perl libpathplan4 libpcre16-3 libpcre2-32-0 libpcre2-dev
  libpcre2-posix2 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpcsclite1 libphonenumber7 libpixman-1-dev libplot2c2
  libpng-dev libpoppler-cpp-dev libpoppler-cpp0v5 libpoppler-dev libpoppler-private-dev libpoppler97 libpq-dev libpq5
  libprotobuf17 libpsl-dev libpstoedit0c2a libpthread-stubs0-dev libpython3-dev libpython3.8-dev libqgpgme7
  libqt5concurrent5 libqt5script5 libqt5scripttools5 libqt5sql5 libqt5x11extras5-dev libquadmath0 libraptor2-0
  libraptor2-dev librasqal3 librasqal3-dev librbio2 librdf0 librdf0-dev librevenge-0.0-0 librevenge-dev
  librole-tiny-perl libsane libsane-common libsane-dev libsecret-1-0 libsecret-1-dev libsecret-common libselinux1-dev
  libsepol1-dev libservlet-api-java libservlet3.1-java libsm-dev libsnmp-base libsnmp35 libsoup2.4-dev libspiro1
  libspqr2 libsqlite3-dev libssl-dev libstdc++-9-dev libstrictures-perl libsub-override-perl libsub-quote-perl
  libsuitesparse-dev libsuitesparseconfig5 libtasn1-6-dev libthai-dev libtiff-dev libtiffxx5 libtimedate-perl
  libtommath1 libtool libtry-tiny-perl libtsan0 libubsan1 libumfpack5 libunbound8 libuninameslist1 liburi-perl
  libvisio-0.1-1 libvisio-dev libvulkan-dev libwayland-bin libwayland-dev libwebpmux3 libwebsocket-api-java
  libwpd-0.10-10 libwpd-dev libwpg-0.3-3 libwpg-dev libwps-0.4-4 libwps-dev libwww-perl libwww-robotrules-perl
  libx11-dev libx11-xcb-dev libxapian30 libxau-dev libxaw7-dev libxcb-icccm4-dev libxcb-render0-dev libxcb-shm0-dev
  libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev
  libxi-dev libxinerama-dev libxkbcommon-dev libxkbfile-dev libxml2-dev libxml2-utils libxmlsec1-dev libxmlsec1-gcrypt
  libxmlsec1-gnutls libxmlsec1-nss libxmu-dev libxmu-headers libxpm-dev libxrandr-dev libxrender-dev libxslt1-dev
  libxt-dev libxtst-dev libyajl-dev libyajl2 libzip5 linux-libc-dev lp-solve m4 make maven-repo-helper mysql-common
  nettle-dev odbcinst odbcinst1debian2 openjdk-11-jdk openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless
  pango1.0-tools patchutils perl-openssl-defaults pkg-config po-debconf poppler-data pstoedit python3-dev python3-lxml
  python3-mako python3-markdown python3-packaging python3-pyparsing python3.8-dev qt5-qmake qt5-qmake-bin qtbase5-dev
  qtbase5-dev-tools qtchooser qtscript5-dev rdfind symlinks ucpp unixodbc-dev unzip uuid-dev wayland-protocols wdiff
  x11proto-core-dev x11proto-dev x11proto-input-dev x11proto-randr-dev x11proto-record-dev x11proto-xext-dev
  x11proto-xinerama-dev xorg-sgml-doctools xsltproc xtrans-dev zip zlib1g-dev
0 upgraded, 593 newly installed, 0 to remove and 0 not upgraded.
Need to get 499 MB of archives.
After this operation, 1707 MB of additional disk space will be used.
Do you want to continue? [Y/n]

이제, 리브레오피스(LibreOffice)를 빌드(Build)할 준비가 되었습니다.

Buy me a coffeeBuy me a coffee

IBM에서 내놓은 Plex 글꼴에 한국어도 드디어 지원합니다!

홈페이지: https://www.ibm.com/plex/

 

IBM Plex

IBM Plex® is our new typeface. It’s global, it’s versatile, and it’s distinctly IBM.

www.ibm.com

IBM Plex v5.0.0
출처: https://github.com/IBM/plex/releases/tag/v5.0.0

IBM Plex Sans  
IBM Plex Serif  
IBM Plex Sans Condensed  
IBM Plex Mono  
This includes some changes to the vertical metrics of the font files as well as a few changes to the available glyphs.

Breaking  
Changed IBM Plex Sans Condensed to IBM Plex Sans Cond, this won't impact web applications, but could for other third party applications  
New  
IBM Plex Sans KR (Korean)  ```

링크에서 글꼴을 다운로드 받아 Mac에 설치하였습니다.

이후, Mac의 LibreOffice에 Plex글꼴을 사용해보았습니다.

IBM Plex 글꼴설정하고 한글을 입력해보니 한글이  제대로 표현되는 것 같습니다.

그러나 한자(漢字, Chinese Character, Hanja; Korean name for the Chinese characters)의 경우 한국어에서 사용하는 KSC5601에 등록된 한자 4888개의 글자 범위 이외 일본어, 중국어[번체,간체] 한자입력시 글꼴이 □로 찍혀 나옴을 확인함.

예를 들어 "Translation"에 대한 한자를 테스트 해보았습니다.

Korean: 飜譯 번역 "beon yeok"

Traditional Chinese: 翻譯 "fānyì" ㄈㄢㄧˋ

Simplified Chinese: 翻译 "fānyì"

Japanese: ほんやく"honyaku"

아래는 한자(漢字)에 대한 각 나라별 코드 포인트(code point)를 정리하였습니다.

Korean: 飜(U+98DC)譯(U+8B6F)

Traditional Chinese: 翻(U+7FFB)譯(U+8B6F)

Simplified Chinese: 翻(U+7FFB)译(U+8BD1)

Japanese 翻(U+7FFB)訳(U+8A33)

 

옛날 KSC5601에 등록된 한국어의 한자 목록에 있는 한자 이외, 중국어 및 일본어에서 사용하는 한자는 □로 찍혀 나옴을 그림에서 확인하였습니다.


그러나, 오픈오피스(openOffice)최신버전에서는 IBM Plex글꼴에 포함이 안된 글자(code point)등에는 fallback 처리를 하여 렌더링시 글씨가 보이도록 처리하는 것 같더군요.

아마, openOffice에서 LibreOffice로 전환을 하면서 CJK관련 이슈를 제대로 모르고 개발된 느낌이듭니다.

이 부분은 Fallback font이슈 관련으로 조사 후에 issue등록을 해야할 것 같습니다.


아마 IBM Plex 의 중국어(Chinese) 및 일본어(Japanese)는 올해 말이나 내년쯤에 나올 것 같습니다.

 

아래는, 이 글을 사용하는 시점에서 지원하는 언어 목록입니다.

https://www.ibm.com/plex/languages/

 

IBM Plex

IBM Plex® is our new typeface. It’s global, it’s versatile, and it’s distinctly IBM.

www.ibm.com

  • Arabic (아라비아 문자)
  • Cyrillic (키릴 문자)
  • Devanagari (데바나가리 문자)
  • Greek (그리스 문자)
  • Hebrew (히브리 문자)
  • Korean (한글)
  • Thai (타이 문자)

IBM Plex글꼴에서 추후에 지원할 언어/문자 목록

  • 수학 기호 (Math)
  • 일본어 (Japanese)
  • 중국어 (Chinese)
  • 칸나다 문자 (Kannada)
  • 타밀 문자 (Tamil)

IBM Plex font: https://www.ibm.com/plex/

IBM Plex v5.0.0

New

IBM Plex Sans KR (Korean)

https://github.com/IBM/plex/releases/tag/v5.0.0

 

IBM/plex

The package of IBM’s typeface, IBM Plex. Contribute to IBM/plex development by creating an account on GitHub.

github.com

참고한 트윗글

https://twitter.com/leedotype/status/1271790768118620161

 

Leedotype on Twitter

“드디어 IBM Plex Sans 의 한글 버전이 출시되었습니다! 👏👏👏 https://t.co/KYUZ1YqYdm 에서 오픈소스 라이센스로 다운받으실 수 있습니다.”

twitter.com

 

Buy me a coffeeBuy me a coffee

+ Recent posts