Введение
Компьютеры PowerPC Mac производились в огромных количествах, и большая часть этого оборудования до сих пор пригодна для использования с профессиональным программным обеспечением, таким как Photoshop CS2 и Propellerheads Reason. Это по-прежнему хорошие рабочие станции с большим количеством программного обеспечения для повышения производительности и отсутствием постоянного отслеживания или отвлекающих факторов. Первоначально я получил свой для работы с NetBSD, но обнаружил, что притяжение коммерческого программного обеспечения 20-летней давности слишком заманчиво, чтобы ему сопротивляться.
В любом случае, насколько Mac OS X 10.4 удобна для профессионалов Unix, разработчиков программного обеспечения и любителей командной строки? Удивительное количество бесплатного программного обеспечения все еще может работать, часто с некоторыми простыми настройками. pkgsrc
Framework предлагает независимый от платформы репозиторий с мощными платформами, которые позволяют широко портировать программное обеспечение.
Доступны готовые двоичные файлы PowerPC для популярного программного обеспечения, включая PostgreSQL, ImageMagick, Python 3, Wget, cURL, FFmpeg, OpenSSH, OpenSSL, веб-сервер Apache, nginx, yt-dlp, SDL, Midnight Commander и многие другие.
Примечание. Я не даю никаких гарантий относительно безопасности или актуальности этих пакетов, хотя обещаю, что они лучше, чем те, которые Tiger включает по умолчанию. Никакой гарантии. Ваш холодильник может взорваться. Вы можете внезапно обнаружить, что можете подключаться к серверам, использующим современное шифрование, со всеми вытекающими отсюда рисками.
Как установить программное обеспечение
Начальная загрузка
Загрузите загрузочный комплект
Извлеките комплект начальной загрузки версии 10.4, установите PATH:
$ sudo tar -C / -xzpvf bootstrap-tiger.tar.gz
$ export PATH=/usr/pkg/sbin:/usr/pkg/bin:$PATH
$ export PKG_PATH=https://ftp.NetBSD.org/pub/pkgsrc/misc/nia/tigersrc/packages/All/
Добавьте последние две строки в ~/.bash_profile.
Установка пакетов
$ sudo pkg_add ffmpeg2
Проблемы создания современного программного обеспечения в версии 10.4
Частью этого проекта является просто для удовольствия. Поскольку я разработчик, специализирующийся на системах сборки, мне доставляет удовольствие продвигать pkgsrc как можно дальше. Поэтому другим тоже следует поучиться на этом.
Обратитесь к mk.conf используемый для этого репозитория, содержащий некоторые обходные пути, не связанные с исходным кодом, и
разрешенный список пакетов.
- Компилятор: GCC 4.0 XCode не поддерживает C++11 или C11. Некоторые программы ожидают, что компилятор по умолчанию будет использовать C99, и не указывают явно
-std=c99вCFLAGS. Эта старая версия GCC поддерживает C99, но не использует его по умолчанию. Эту проблему следует обойти, установивFORCE_C_STD
в pkgsrc. Многие части современного программного обеспечения любят указывать множество неподдерживаемых аргументов -W и -Wno для настройки предупреждений. Их можно удалить с помощью pkgsrc.
BUILDLINK_TRANSFORM. - Линкер: Строгий компоновщик Mach-O, включенный в Tiger, сильно отличается от того, что ожидает современное программное обеспечение (например, он не поддерживает
-shared), пока не это программное обеспечение использует libtool для создания переносимых общих библиотек. pkgsrc уже давно придерживается политики «libtoolization», исправляя программное обеспечение, которое собирается с помощью простых Makefiles, для использования libtool.
BUILDLINK_TRANSFORMтакже может преобразовать многие аргументы компоновщика в стиле GNU ELF, чтобы они были совместимы с компоновщиком Дарвина. Я также нашел-mПолезная опция (для превращения многократно определенных символов в предупреждение, а не в ошибку). - Библиотека: Сейчас повсеместно используемые функции отсутствуют, в том числе
clock_gettimeиstrnlen. Их можно легко заменить любымlibnbcompatили
macports-legacy-support. - Атомика: В 32-битном PowerPC отсутствуют некоторые широкие атомарные инструкции. Это не проблема PowerPC или Darwin, поскольку она затрагивает другие 32-битные наборы инструкций, такие как i486.
- Ржавчина: Даже если бы это работало на этой платформе, время сборки было бы совершенно неприемлемым. Мы используем версии программного обеспечения до Rust, такие как py-cryptography, поскольку pkgsrc упрощает эту задачу. Сократите выбросы CO2, продолжайте писать C.
- Регионы: Некоторые имена файлов UTF-8 не могут быть извлечены с помощью
бсдтар, при этом последовательности UTF-8 определяются как недействительные. Я еще не особо исследовал этот вопрос, но он затрагивает очень немногие пакеты, такие как исландский словарь aspell. Вероятно, это не проблема bsdtar, поскольку он работает в NetBSD с той же версией tar. - Ошибки инструментальной цепочки: Существует проблема с
signal.hэто приводит к сбою компиляции некоторого программного обеспечения. Это можно легко обойти, отключив соответствующие определения типов, предварительно определив макросы вCFLAGS. - Ошибки ядра: Грустно,
kqueueне работает должным образом на Тигре. Поддержка kqueue почти всегда необязательна в программном обеспечении, но иногда для этой версии ОС необходимо отключить обнаружение. GNU configure упрощает эту задачу, другие системы сборки могут отличаться. - Другие любопытства: Виджеты информационной панели и заставка по умолчанию в версии 10.4 потребляют удивительно много процессорного времени, которое лучше было бы потратить на GCC. Хотя их легко отключить.
Большинство из этих проблем очень общийпоэтому можно получить много преимуществ от автоматического внесения этих корректировок для всего.
Большой проблемой для этого проекта является более широкая экосистема (ну, в основном библиотеки, связанные с GNOME), отход от системы сборки GNU, которая много лет назад в основном решила проблему создания общих библиотек на разных платформах, а также хорошо справлялась с обнаружением функций. Необходимо проделать дополнительную работу, прежде чем CMake и Meson смогут хорошо работать на этой платформе, но также будет очень полезен способ сказать им «да, в этой ОС есть эта функция, но, пожалуйста, игнорируйте ее» (также для тестирования!).
С проблемой 64-битной атомики связан и тот факт, что мир уходит от 32-битных платформ. Если вы незнакомы со встроенным миром, это происходит медленнее, чем вы думаете. В то время как Mac OS X страдает от проблемы 2038 года, NetBSD решила ее много лет назад. 64-битные атомарные инструкции недоступны во многих портах NetBSD, а libatomic в лучшем случае является хакерским обходным решением.
Самое главное, если вы поддерживаете проект программного обеспечения C/C++ и не указываете
-std=(gnu|c)XX в вашей системе сборки уже есть, пожалуйста, сделай. Имейте в виду, что -Werror упадет в тот момент, когда вы попытаетесь собрать версию компилятора, которую вы не тестировали лично, и сопровождающие дистрибутива захотят отключить ее. Что касается pkgsrc на современных платформах, мы одновременно собираем около 4 различных основных версий GCC плюс Clang, поэтому мы бы отключили его, даже если бы мы не поддерживали устаревшие версии.
Смотрите также
nia из домена pkgsrc.org
Лучше всего смотреть в разделе «Ссылки».
Последнее обновление: март 2024 г.
2024-04-09 20:30:56
1712696873
#пакеты #pkgsrc #для #Mac #PowerPC

