오픈 소스 패키지를 이식할 때 엄지 손가락의 일반적인 규칙은 시스템에서 빌드하고 실행하기 위해 변경 사항을 추적하고 변경 사항이 커뮤니티에 유용할 것이라고 생각되면 패키지의 메인테이너에 제출하는 것입니다. 일반적으로 동일한 패키지의 향후 포트에 대한 노력을 줄이는 이점도 있습니다.
VOS와 OpenVOS에 많은 소프트웨어 패키지를 이식했으며 일반적으로 변경 내용을 메인테이너에 보내려고 합니다. 그러나 항상 는 아닙니다. 그 이유는 다음과 같습니다.
1. 일부 변경 사항은 OpenVOS 환경에 만지릅니다. OpenVOS에만 적용되는 제한을 해결하기 위해 변경하면 이 변경 변경 변경 을 업스트림으로 보내는 것은 거의 의미가 없습니다. 메인테이너는 일반적으로 이러한 패치를 거부합니다. 예를 들어 OpenVOS 의 17.0 이전 버전이 파일 이름 길이에 넣은 제한일 수 있습니다.
2. 일부 변경 사항은 오픈 소스 패키지의 이후 릴리스에서 이미 채택되었을 수 있습니다. 변경 사항을 보내기 전에 누군가가 당신을 변경에 이겼는지 확인하고 확인하는 것이 좋습니다. 원본 소스 코드를 다운로드한 이후 로 인해 잠시 동안 이뤄진 경우 특히 그렇습니다. 부실한 변화로 모든 사람의 시간을 낭비하는 것은 아무 소용이 없습니다.
3. 변경 사항은 실제로 다른 제품에 있습니다. 예를 들어 최근에 MySQL 5.1.48에서 OpenVOS 릴리스 17.1로 이식을 완료했습니다. 빌드 스크립트를 다양하게 변경하여 OpenVOS 17.1의 새로운 동적 연결 기능을 사용할 수 있었습니다. 그러나 변경 사항이 실제로 다른 팀에서 유지 관리하는 자동 회의 패키지에 있기 때문에 MySQL 팀에 이러한 변경 사항을 보내는 것은 아무 소용이 없습니다. MySQL 패키지는 자동 회의 사용자일 뿐입니다. 그들은 주어진 플랫폼에 대해 무엇을 하는지 에 대한 통제권이 없습니다.
4. 패키지 사본을 잡았을 때와 오늘 사이에 너무 많은 시간이 지났습니다. 여기서 문제는 오픈 소스 패키지가 움직이는 대상이라는 것입니다. 일부 패키지는 매우 안정적이고 자주 업데이트되지 않지만 다른 패키지는 지속적인 변화를 겪고 있습니다. 나는 9 개월 동안 MySQL 5.1.48을 이식했는데, 이는 파트 타임 노력이었기 때문에, 심지어 일단 이식된 후에도 내부 테스트 및 릴리스 프로세스와 동기화해야했기 때문입니다. 그래서 MySQL 팀에 몇 가지 패치를 다시 보낼 준비가 되었을 때, 그들은 버전으로 이동 했다 5.5 (일반적으로 사용 가능한 주기에서) 및 버전 5.6 (개발 주기에서). 더 이상 깨끗하게 적용하지 않는 많은 변경 사항; 경우에 따라 원본 파일의 이름이 변경되거나 새 디렉터리로 이동되었습니다. 패치를 현재 버전으로 완전히 업데이트하는 작업을 수행할 수 있지만, 적어도 내 관점에서 는 필요한 노력의 가치가 없습니다. 저에게 교훈은 내 버전에서 안정적이자마자 변경 사항을 상류로 보내야한다는 것입니다. 그것은 분명히 판단 전화의 무언가입니다.
경우에 따라 모든 올바른 단계를 수행하여 잘 쓰여진 특정 패치를 보낼 수 있으며, 메인테이너는 여전히 이를 무시하거나 거부할 수 있습니다. 그것은 좌절 될 수 있지만, 그것을 통해 일을하지 않습니다. 많은 오픈 소스 패키지는 자원 봉사자에 의해 유지되므로 드문 플랫폼에 대한 패치를 처리하는 데 시간이 제한되어 있습니다.
MySQL 5.1.48의 OpenVOS 포트의 경우, 내 연구가 보여주는 MySQL 패키지에서 잘 정의된 독립적인 문제에 대한 5개의 특정 버그 보고서를 열기로 했습니다. 또한 버그 보고서를 열어 모든 변경 사항을 다시 기여할 수 있었습니다. GNU 공공 라이센스의 약관과 일치하는 단계입니다. 이러한 각 경우 버그 보고서를 닫는 것이 적절하다고 생각되는 변경 사항을 보여 주는 소스 코드 패치를 기여했습니다. MySQL 팀이 요청한 5가지 특정 변경 사항을 통합할 수 있기를 바랍니다. OpenVOS뿐만 아니라 다른 플랫폼에 영향을 줄 수 있는 문제를 나타냅니다. MySQL에 보낸 패치를 보고 궁금하다면 http://bugs.mysql.com방문하여 고급 검색을 클릭하고 버그 44300, 44832, 60907, 60908, 60910, 60911, 60912 및 60913을 조회하십시오.
MySQL 5.1.48의 OpenVOS 포트는 Stratus에 의해 "OpenVOS에 대한 MySQL, 릴리스 2.0"이라고 불리며 OpenVOS 릴리스 17.1의 가용성과 동시에 일반적으로 곧 사용할 수 있습니다.