데비안 메인테이너가 되었습니다.

데비안 메인테이너가 되었습니다.

Submitted by jmkim on 2019.06.27.(Thu) - 06:00

안녕하세요!

 

저는 어제 데비안 메인테이너(DM)가 된 김종민이라고 합니다. 저를 모르는분들께 저를 소개하고자 이 글을 쓰게 되었습니다.

 

약 2년 전 10월즈음에 이곳에서 활동하시는 서현관님께 홈페이지 번역을 하고싶다는 메일을 보낸적이 있었는데 기억하시련지 모르겠습니다. ㅎㅎ

이후 DDTP라는 프로젝트 사이트에서 문구 번역을 약간 해보다가 그만두었습니다... 번역 중에 스스로 발번역임을 직감한 게 가장 큰 이유였습니다... ㅠㅠ

i18n과 l10n 작업하시는 분들, 정말 존경합니다.

 

저는 작년 DebCamp부터 지금까지 약 1년간 데비안 패키징을 해왔습니다. 주로 Debian Go Packaging Team과 Debian Ruby Extras Maintainers 팀에서 활동하였고, 인도사람들과 함께 작업을 하고 있습니다.

데비안의 코어라고 볼 수 있는 GNOME 관련 작업을 하고 계신 류창우 DD님과 다르게, 저는 주로 사용자가 쓰는 애플리케이션의 패키징을 하고 있습니다.

 

패키징 입문

작년 대만에서 열렸던 DebConf18에 참여하였습니다. 아시아에서 열리는 첫 DebConf이기도 하고, 바로 코앞의 가까운 대만에서 열리는 DebConf라 다시없을 기회라 생각하여 참가하였습니다.

역시 리눅스에 관심있는 제 친구를 끌여들여, 둘이서 대만에 놀러가듯, DebCamp (데비안 개발자들이 모여서 개발할 수 있도록 한 캠프) 기간부터 참가하였습니다.

한국에서는 류창우 DD님과 "우분투 한국 사용자 모임"의 리더 한영빈님께서 오셔서 함께하였습니다.

그런데, 그분들과 다르게, 저는 정작 할 게 없어서요... 거기서 돌아다니면서 일거리를 구하였습니다.

그렇게 인도 친구 Raju Devidas를 사귀었습니다.

그 친구는 인도의 데비안 파생 배포판인 "Hamara Linux"의 개발자면서, 인도에서 규모가 큰 리눅스 유저그룹인 ILUGD에서 오프라인 미팅과 컨퍼런스를 수없이 많이 개최한 친구입니다.

micro라는 Go 언어로 된 텍스트 에디터를 패키징하고 있었는데, 의존 패키지가 너무 많더라구요. 하지만 그에게 시간은 없고.. 해서 마침 도와줄 사람들 찾고 있었습니다.

그 친구에게 패키징을 배우고, 그의 패키징을 도와주면서 패키징에 처음으로 입문하게 되었습니다.

 

팀 패키징

제가 참여한 패키지들은 대부분 팀으로 이루어져 관리되는 패키지들입니다. 패키지의 Maintainer: 에 사람 이름이 아니라 팀 이름(Debian Go Packaging Team 등)이 적혀있어요!

저는 위에 말한 친구의 Go 패키지들을 도와주면서 Debian Go Packaging Team으로서 작업을 하였습니다.

DebCamp때부터 3개월정도는 저와 친구 둘이서 패키징을 하였습니다. 그 친구가 이제는 인도에서 사람들을 끌어오기 시작합니다.

기존의 데비안 개발자(DD)부터, 저처럼 패키징에 새로 입문한 newcomer까지 다양하게 끌어오기 시작합니다.

끌어온 사람만 8명정도가 되는데, 외국인은 저밖에 없고, 모두 인도인들이였어요! :O

그렇게 팀 내에 소규모 팀이 이루어져서, 6개월에 걸친 작업 끝에 그 친구가 원하는 모든 패키지들이 데비안에 올라가게 되었습니다!

패키지 이름은 micro입니다. nano와 비슷한 Go 기반의 텍스트 에디터입니다.

아쉽게도 Buster freeze 기간에 일주일정도 늦어서 Buster에는 포함되지 못했지만, Buster가 릴리즈 된 이후에 testing이나 unstable 배포판에서 받아 써보실 수 있습니다!

 

올해 2월, 모든게 올라가니, 이제 할 게 다시 사라졌습니다! 다른 팀들을 기웃거리기 시작했습니다.

그러다 위의 팀 멤버들이 옛날부터 모여서, Ruby 기반의 대규모 패키지들을 업데이트하고 관리하던 팀이 있었다는걸 알게 되었습니다.

Debian Ruby Extras Maintainers 팀으로, 20명 정도 되는 사람들이 활동중입니다. 이 팀에서 관리하는 패키지 중에 한국에서 유명한 패키지는 GitLab이 있습니다.

활동중인 대부분의 팀 멤버가 인도사람들입니다. 데비안 전체로 보면 인도사람들의 기여나 참여가 거의 없는 편인 듯한데, 유독 Ruby 팀에서 모여서 일을 하고 있더군요...

팀 인원 구조가, 이미 많은 경험을 한 인도의 DD는 3명정도고, 거의 전체가 저와 같은 입문하는 인도의 newcomer였습니다.

지금 생각해보면 일종의 인도 사람들의 데비안 패키징 참여를 유도하기 위한 교육용 팀의 느낌입니다.

저는 위의 micro를 패키징하면서 친해진 사람들이 대부분이라 자연스럽게 녹아들었는데요, 지금 생각해보니, 모르는 사람들이었으면 인도인이 대부분이라 진입 장벽이 컸을 것 같습니다...

 

GSoC

매년마다 구글에서 진행하는, 15년 된, 구글에서 진행하는 오픈소스 커뮤니티 인턴십 프로그램 Google Summer of Code (GSoC)가 열립니다. 거의 매년마다 데비안에서도 GSoC에 참여합니다.

저는 Ruby의 GSoC 프로젝트에 학생 인턴으로 참여하여, 현재 진행중에 있습니다.

올해 데비안의 GSoC에는, 제 패키징 입문을 도와준 Raju가 멘토로 참여하는, Ruby 패키징 프로젝트가 있습니다. 이외에도 여러 데비안 프로젝트들이 현재 진행중입니다.

저는 데비안의 프로젝트에서 GSoC를 하고 싶었지만, 아쉽게도 모두 경쟁이 너무 치열해보였습니다.

그러자 Raju가 Ruby의 GSoC에서 데비안 패키징 관련 프로젝트가 있다고 알려주더군요. 그 프로젝트에 제안서를 내게 되었습니다.

여기도 경쟁률이 만만치 않아서, 붙을거라 생각치 않아, 이후 다른 일을 하고 있었는데, 붙게 되었습니다.

지금까지 2개월정도 Ruby에서 GSoC를 진행하고 있습니다.

 

제 프로젝트는 데비안에 Rails 6를 패키징하는 프로젝트입니다.

Ruby on Rails 데비안의 현재 버전은 5.2.2.1인데요, Rails 6.0.0의 출시 예정일이 4월 30일로 잡혀있었습니다. 저는 잘 모르는 이유로 아직 rc1밖에 출시되지 않았지만요.

제 프로젝트는 크게 다음의 3 phases로 분리할 수 있습니다:

  1. Rails 6.0.0이 기반하는 모든 의존성 패키지들을 업데이트합니다.
  2. Rails 6.0.0을 데비안에 패키징합니다.
  3. 기존의 Rails 5.2.2.1에 기반한 앱들을 모두 Rails 6.0.0에 맞도록 패치합니다.

 

데비안에 있는 Ruby on Rails는 사실 Rails 그 자체의 배포를 위해서가 아니라, Rails 앱의 백엔드 의존성을 위해 존재합니다. 라이브러리인거예요.

대표적인 Rails 앱들은 GitLab과 Diaspora (Facebook 같은 SNS인데, 자체 서버 구축이 가능하며, 이를 위한 패키지입니다), Loomio (인도에서 많이 쓰이는 Decision making 시스템이며, 역시 자체 서버 구축을 위한 패키지입니다) 등입니다. 데비안의 대부분의 Ruby 패키지들이 Rails 앱들이라 생각하시면 될것 같습니다.

한국에서는 생소하겠습니다. 저도 거의 써본 적 없는 것들인지라...

이 프로젝트를 진행하면서, Debian Ruby Extras Maintainers 팀에서 많은 활동을 하게 되었습니다.

 

패키지 스폰서쉽

데비안 패키지 아카이브에는 누구나 패키지를 올리지 못합니다.

Debian Developer (DD)는 모든 패키지를 아카이브에 올릴 수 있습니다. 한국에는 류창우님이 대표적입니다.

Debian Maintainer (DM)는 허가받은 패키지만 아카이브에 올릴 수 있습니다.

이외의 사람들과, 허가받지 않은 패키지를 올리려는 DM은 패키지를 대신 올려줄 수 있는 DD 스폰서를 구해야합니다.

이 스폰서 구하는 일을 Request For Sponsorship, 줄여서 RFS라고 합니다.

주로 debian-mentors 메일링 리스트를 통해 스폰서를 구하게 되는데요, 저와 같이 팀으로 작업하는 사람들의 경우 각 팀의 메일링 리스트나 팀 IRC를 통해서, 혹은 개인적으로 스폰서를 구할 수 있습니다. (각 패키징 팀의 정책에 따라 다릅니다.)

저는 Debian Go Packaging Team과 Debian Ruby Extras Maintainers에서 주로 팀으로 작업을 하였구요, 대부분 팀 메일링 리스트에서 스폰서를 구하였습니다.

제 패키지를 가장 많이, 자주 스폰서링해준 DD가 있습니다. 역시 인도의 DD인 Praveen Arimbrathodiyil입니다. 제가 지금까지 올린 30여개의 패키지의 절반정도를 스폰서링 해준, 제게는 멘토같은 분입니다.

Praveen에 의해 DM으로 지원하라는 요청을 받았고, New Member Process를 진행하게 되었으며, 어제 완료되어, 데비안 메인테이너가 되었습니다.

 

한국인의 데비안 기여

이곳(debianusers.or.kr)에서, 세벌님과 서현관님께서 i18n l10n 작업을 열심히 하고계시는 걸로 알고 있습니다.

이곳을 벗어나면 류창우님께서 데비안과 GNOME에서 많은 일을 하고계십니다.

이외에도, 전체 프로젝트가 작지 않다보니, 적지않은 한국인 개발자가 데비안에서 일을 하고있을거라 생각합니다.

저는 지금까지 인도의 데비안 개발자들과만 작업을 하였습니다. 그래서 아마 오늘 저를 처음 알게되실지도 모르겠습니다.

 

제가 아는 데비안 관련 커뮤니티가 여기밖에 없어, 이곳에 글을 써보았습니다.

앞으로 블로그를 만들어서, 제 1년간의 경험을 공유하려는 계획을 가지고 있습니다.

이곳은 앞으로도 자주 방문할 예정이예요!

 

고맙습니다!

westporch

작성: 2019.07.01.(Mon) - 02:16

수정: 2019.07.01.(Mon) - 02:16

제가 테스팅(testing)으로 버스터를 사용한 지 어느새 일 년이 넘었네요. 그런데도 버스터의 정식 릴리스가 기대됩니다.

westporch@nt900x4c-a58:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux buster/sid
Release: testing
Codename: buster