Назад | Перейти на главную страницу

Как лучше всего создать порт версии, которая доступна только в более новой версии FreeBSD?

В настоящее время я поддерживаю устройства, на которых работает FreeBSD 9.2, а также 10. И мне нужно каким-то образом установить более новую версию архиваторов / libarchive, чем та, которая доступна для этих версий FreeBSD (похоже, 3.2.1 впервые стала доступна в 11.0. ). Я также не могу ничего изменить в / usr / ports (то есть мне нужно оставить новый порт libarchive в совершенно другом каталоге). Кроме того, сценарий сборки, собирающий среду устройства, может использовать только make для компиляции портов, насколько я знаю.

Моя собственная идея создания libarchive 3.2.1:

  1. проверьте дерево портов из ports / tags / RELEASE_11_0_0 / из SVN, затем оставьте только libarchive и его зависимости, а также содержимое каталога ports / Mk.

  2. cd path / to / new / ports / arhivers / libarchive и запустите make, возможно, указав альтернативный путь поиска для .included .mk-файлов через -I. Возможно также изменить значение PORTSDIR переменная?

Я что-то упускаю (верен ли мой подход ...?)? Есть ли лучший способ добиться этого?

1) Канонический способ без обновления базовой системы. zfs snapshot старые порты, проверьте новый из глава. Попробуйте построить это. К сожалению, вероятность сбоя составляет 80%, потому что дерево портов FreeBSD сильно изменилось с 9.x на 10.x. Откатить дерево портов в случае сбоя.

2) Путь Соляриса. Сборка из исходников в кастомную PREFIX. Получите архив с исходным кодом, распакуйте его в ~ / SRC / libarchive, установить devel / gmake, lang / gcc48, devel / autoconf269 если уместно, tar xvzf или что-то еще, затем cwd на извлеченный путь, ./configure --prefix /usr/local/libarchive && gmake all install (коротко говорит). Затем таким же образом используйте двоичные файлы или свяжите их с локально установленными библиотеками.

4) Создайте собственную версию порта для дерева портов 9.2. Скопируйте порт в ~ / порты / libarchive, замените версию tarball на 3.2.1, отредактируйте версию порта в Makefile (и, возможно, CONFIGURE_ARGS) и pkg-plist соответственно. Это займет некоторое время и, скорее всего, не удастся с первой или второй попытки, но кажется выполнимым (я бегло посмотрел на порт).

5) Самый удобный способ. Обновите свою устаревшую версию 9.2 до версии 10.3, потому что единственная причина иметь эту музейную древность - это наличие набора специально созданных двоичных файлов с закрытым кодом, которые, как доказано, дают сбой при новом ABI, даже с misc/compat9x порт установлен. И я такого не видел.