뭘 이런걸..

Posted
Filed under Tech/안녕리눅스
* 참고: 이글의 코멘트로 진행 사항이 계속 업데이트 되고 있습니다.

안녕리눅스 3 소식이라고 10개월 전에 올려놓고 금방 나올것 처럼 포스팅을 했습니다만, 역시나 공수표가 되고 말았습니다.

2015년 한해가 제게는 완전히 고난의 해 이군요. 2015년의 키워드는 '배신'이며, 제 인생에서 지워버리고 싶을 정도로 엄청난 일들을 겪었고, 또 현재 진행형 입니다. 그러다 보니 안녕리눅스 개발 역시 뒷전이 되고 말았습니다.

현재 안녕 리눅스 3의 개발 단계는 기본 패키징은 완료된 상태이며, kickstart 설치 테스트를 하고 있습니다. RHEL의 설치 프로그램인 anaconda 역시 systemd의 도입으로 많이 변경된 관계로 테스트가 꽤 많이 필요하네요.

앞으로의 남은 작업은 다음과 같습니다.

  1. kickstart 설치 정리
  2. systemd 관련 daemon package 정리
  3. KLDP system에 적용 및 테스트
  4. Release
단계상으로는 얼마 안남은 듯 싶은데, 현재 진행형인 제 개인사가 어떻게 방해를 하지 몰라서 일정은 감히 언제 된다고 하기는 힘들 것 같습니다. 하지만 8월 말 부터 계속 꾸준하게 저녁 시간을 할애해서 작업이 진행되고 있으며, 아마도 올해 안에는 공개가 가능하지 않을까 싶습니다.

공개는 일차적으로 RHEL의 패키지를 수정한 base repository를 공개할 수도 있을 듯 싶습니다.
2015/10/07 00:56 2015/10/07 00:56
김정균

https://open.kldp.org 가 안녕 리눅스 3으로 migration 되었습니다. migration을 하면서 apache의 http 2 protocol 지원 문제를 해결 하였고, JAVA 환경에 대한 fix가 있었습니다.

그리고, 안녕 리눅스 패키지 일람이 완성 되었습니다.

https://joungkyun.gitbooks.io/annyung-3-user-guide/content/AnNyung3-Package-Catalog.html

이제 안녕 리눅스 운영에 대한 문서만 완성하면, 안녕 리눅스 3 GA 선언이 가능할 것 같습니다.

김정균

여전히 삽질 중입니다. :-)

apache 2.4.17 부터 mod_http2를 지원하여, apache는 2.4.18로 올려 놓았는데, 어제부터 테스트를 해 본 결과 mod_http2가 동작을 하지 않더군요.

결국에는 문제가 mod_http2가 openssl 1.0.2에서 지원하는 ALPN 을 이용하여 서비스를 하고, CentOS7의 openssl은 이를 지원하지 않는 다는 것이 문제점 입니다.

그리고, Major browser들이 NPN을 이용한 h2 protocol을 depcreated 시킨 것도 문제고요. 인터넷상에서 보면 chrome의 경우에는 다시 NPN을 지원한다고 하였으나, 여전히 48에서는 지원을 하지 않고 있습니다.

그래서 혹시 누군가가 openssl 1.0.1에 ALPN을 backport 하지 않았을까 하여 열심히 검색해 본바 찾을 수가 없더군요. --;

고민에 고민을 하다가 (수정했다가 관리해야 할 패키지가 늘어나는 관계로.. --;) 결국 openssl 1.0.1에 ALPN을 backporting 하여 패키지룰 추가하고, 이 openssl로 httpd를 rebuild하여 mod_http2가 동작을 하게 해 놓았습니다.

엉뚱한데서 계속 시간을 잡아먹네요 --;

openssl-1.0.1e-51.an3.2.x86_64
httpd-2.4.18-2.an3.x86_64

버전이 설치 되어 있어야 mod_http2가 동작 합니다.

P.S.
아 깜빡.. 설치 가이드가 완성 되었습니다.

https://www.gitbook.com/book/joungkyun/annyung3-installation-guide/details

김정균

마지막으로 문제가 되었던 php7 libevent extension 문제 해결(https://github.com/php/pecl-event-libevent/pull/2)과 GeoIP kernel module이 제대로 동작하지 않는 bug를 해결하고 드디어 package freeze 상태로, 설치 테스트를 하고 있습니다. package freeze 상태란, package-version-release.an3.x86_64.rpm 이라는 패키지가 파일 이름 그대로 rebuild가 되는 일이 없을 거라는 의미입니다. 변경 사항이 있으면 무조건 version 업데이트가 된다는 의미입니다. (금일 까지는 동일한 파일이름으로 pcakage가 rebuild 된 경우가 있었습니다.)

일단, 설치 테스트를 하면서 설치 문서를 만들고 있으며, 이 작업이 완료가 되면, Beta 선언을 할 예정이고, open.kldp.org에서 동작하는 서비스들을 AnNyung3으로 migration하여 실테스트 에 들어간 이후 문제가 없으면 GA 선언을 할 예정입니다. 이 작업은 대략 2월 말 정도까지 걸릴 것으로 예상이 됩니다.

김정균

* 2016.01.15 작업 완료

- php 7.0.2 update + official bug fix
- php56 5.6.17
- httpd event mpm 동작 안하는 문제 fix. 기본 MPM을 event 로 변경. php 환경은 mod_php 보다 php-fpm을 사용하는 것을 권장. php56은 mod_php 지원하지 않고 php-cli/php-fpm 만 지원
- php subpackage 중 이름이 php-xxx 에서 php-pecl-xxx 로 변경된 것 다수

* 다음 진행할 작업

- 서비스 환경에 투입하여 동작 확인
- 설치 문서 및 기타 문서 작업
- GE 선언

김정균

2015-12-22 마지막 커멘트 후 소식이 뜸했습니다. :-)

현재 안녕 3의 php 5.6을 php 7 로 변경을 했습니다. 기존의 php 5.6은 php5 package(기본 패키지 아님)으로 지원할 예정이며, php7과의 공존을 위하여 php5-cli와 php5-fpm만 지원할 예정입니다.

현재 남은 작업은 다음과 같습니다.

1. php7 용 3rd party 확장 migration (oauth/sqlrealy)
2. php5 package 제작
3. 안녕 3 실환경 migration 테스트 (http://open.kldp.org ..)
4. 문서 작성 및 GE 선언

node-js와 mongodb 관련은 릴리즈가 너무 지연이 되어 GE 선언 이후로 미루기로 결정했습니다.

김정균

현재 PHP 7 반영을 하고 있는데, 여기서 의외의 복병을 만나 시간을 잡아 먹고 있습니다.

기존 char * 형식으로 사용하던 변수들이 php 7로 오면서 zen_string 이라는 구조체를 사용하게 되었고, 이로 인하여, 기존의 patch에서 이를 다 변경해야 하는 이슈가 발생하네요.(패키들을 거의 새로 다시 작성 해야 한다는 --;) 그리고 기존의 third party extension들도 다 php 7 API로 변경을 해야 하는 문제가 발생하네요. 아쉽게도 시간이 조금 더 소요가 될 것 같습니다.

아직도, php 5.6 으로 갈것이냐 php 7로 갈것이냐가 갈등의 요지이네요 --;

김정균

RHEL 7.2 update pakcage의 변경 사항 반영이 완료 되었습니다.

php 7 작업과 문서 작업 후 beta release 예정 입니다. (fix된 날자는 아직.. ^^) beta release는 open.kldp.org 서버를 an3로 업데이트 후에 re-pack된 패키지들에 문제 여부를 확인 후 GA 선언 예정 입니다.

김정균

RHEL 7.2의 package 버전 의존성과 RHEL 7.2와 EPEL package와의 충돌 (안녕 3은 기본으로 EPEL을 포함하고 있습니다.) 때문에 CentOS 7.2 release를 기다리고 있어 릴리즈가 좀 늦어지고 있습니다.

기다리면서, php 7.0 도입을 아주 심각하게 고민하면서 일단 시도를 해 보고 있습니다.

김정균

어흑.. RHEL 7.2 가 나오고 말았네요. ....

rebuild 해야될 패키지들이 꽤 있습니다. 조금 더 딜레이 되겠군요.

release 까지의 남은 job list는 다음과 같습니다.

1. PHP 7 upgrade (할까 말까 고민중입니다만, 작업은 하고 있습니다.)
2. nodejs를 4.x로 할지 5.x로 할지 고민 중
3. RHEL 7.2 변경 사항 rebuild

이 작업이 끝나면 배포본 작업은 완료된 상태로 다음의 job list가 남습니다.

1. 문서 작업
2. 실전 투입(KLDP 서버중 하나..)하여 버그 테스트

이 과정을 마치면 정식 릴리즈가 될 예정입니다. 문서 작업이 완료되는 대로 일단 beta 오픈은 가능할 것 같습니다. RHEL 7.2가 release 변수를 만들어 버리네요 ^^;

김정균

이 글을 포스팅한지 한달 정도가 지났고, 현재 진행 상태를 공유 합니다.

일단, 제가 회사를 퇴사하여 백수가 된 상태라 시간이 많이 나게 되었습니다. 물론 쉬는 동안에 육아를 하고 있으므로, 아주 많이는 아닙니다. :-) 현재 12월 중 release를 목표로 달리고 있습니다만, 테스트 machine이 부족한 것이 흠이네요 ^^;

일단, 설치 테스트는 완료 되었습니다. 문서만 만들면 안녕 3설치는 가능합니다. 다만, RHEL 7부터 systemd 를 도입함으로서 설치 installer 가 많이 변경이 되어, 안녕 2 보다 설치는 타이핑을 좀 많이 해야 한다는 단점이 있습니다. --;

현재 남은 작업은 다음과 같습니다.

1. 몇몇 3rd party packaging
. sendmail - systemd 처리
. redis - memcached 처럼 init script로 process 여러개 관리 할 수 있도록
. proftpd - systemd 처리
. tomcat - systemd 처리
. l4vip - systemd 처리
. nodejs - version 4 upgrade
. httpd nis/ntlm 모듈 재작성 (apache 2.4부터 인증 모듈 변경)

2. 알려진 bug 수정
. /etc/login.def.exception 반영 안되는 문제 ( shadow-utils)
. jfbterm 에서 한글 입력 안되는 문제 (출력은 문제 없음)

1번 작업은 11월 안에 완료가 될 것 같고, jfbterm과 nodejs 만 빼면 12월 중에 안녕 3 릴리즈는 가능할 것 같습니다.

일단 재취업은 안녕 3릴리즈 후로 생각하고 있으므로, 안녕 3 릴리즈에는 매진을 할 수 있을 것 같습니다.