나는 공식 데비안 배포판과 함께 제공되는 특정 버전의 라이브러리에 의존하는 소프트웨어를 패키징하고 있습니다. 소프트웨어에는 번들 라이브러리 소스도 있습니다.
debian/control
10 이전의 데비안 버전에서는 아무것도 지정할 필요가 없지만 10 이상의 경우 릴리스된 버전을 빌드 요구 사항으로 사용할 수 있도록 파일에서 이를 설명할 수 있는 방법이 있습니까 ?
또한 이전 버전에서는(파일에서 어떻게 감지합니까 ?) 구성 단계에서 추가 옵션을 전달 debian/rules
해야 합니다 .cmake
답변1
이에 대한 규칙은 없습니다. 소스 패키지(포함 debian/control
)는 해당 배포판에서 작동하는 빌드 종속성을 포함한 빌드 지침과 함께 특정 배포판 및 버전에 업로드되어야 합니다.
debian/control
어떤 경우에는 즉시 수정할 수 있지만 debian/rules
빌드가 시작되기 전에 해결되므로 빌드 종속성에는 적용되지 않습니다.
실제로는 두 가지 접근 방식이 적합할 수 있습니다.
공개 소스를 가져와 관심 있는 각 대상에 대한 합계를 생성하려면 일종의 템플릿 도구를 사용하세요
debian/control
.debian/rules
버전 제어 시스템의 분기를 사용하여 개별 대상을 분리하지만 여전히 상당히 간단한 유지 관리가 가능합니다.
후자는 여러 대상에 업로드를 허용해야 할 때 데비안의 대부분 패키지를 유지 관리하는 방법입니다(예를 들어실험적이거나 안정적이거나 백포트되어 불안정함).
또한 이전 버전에서는(파일에서 어떻게 감지합니까 ?) 구성 단계에서 추가 옵션을 전달
debian/rules
해야 합니다 .cmake
이전 버전을 감지하고 동작을 하드코딩하는 대신 구현하려는 동작을 감지하면 됩니다. 예를 들어 시스템에 종속 라이브러리가 있는지 확인한 다음 cmake
호출을 조정하거나 cmake
문제가 있는 경우 설치된 cmake
.