Как мы можем восстановить ppc / ppc64, а также полную поддержку 10.4 / 10.5 SDK для Xcode 4?


93

Поскольку Apple поставляет SDK 10.6 только с Xcode4, разработка приложений PPC с Xcode4 стала невозможной. Хотя можно разрабатывать приложения с Xcode4, которые также могут работать в системах 10.5 и, возможно, даже в 10.4 (выбрав SDK 10.6, но цель развертывания 10.5 или 10.4), они будут работать только на Intel Mac, потому что вам нужен как минимум SDK 10.5 для создание приложений PPC.

Кроме того, есть несколько редких случаев, когда вам действительно нужно использовать SDK до 10.6 для полной поддержки платформы, например, если некоторые устаревшие функции полностью исчезли из SDK 10.6, но вам придется использовать их, а динамическое связывание не всегда лучший вариант в таких случаях. Кроме того, связывание с более ранним SDK иногда упрощает разработку, поскольку функциональность, которую вы не должны использовать, так как это вызовет несовместимость с более ранними версиями ОС, будет недоступна, и любая попытка ее использования в любом случае немедленно приводит к ошибкам компилятора или компоновщика.

И последнее, но не менее важное: Apple также удалила поддержку GCC 4.0 из Xcode4, которая может быть необходима для правильной сборки определенного программного обеспечения, и Apple никогда не позволяла компилировать программное обеспечение с GCC 4.2 при использовании SDK 10.4, хотя я вряд ли верю, что это действительно может вызвать любые проблемы, после того, как все программное обеспечение, созданное с помощью GCC 4.2 и SDK 10.6, также может работать в Mac OS 10.4 без каких-либо проблем, если цель развертывания была установлена ​​правильно и не использовались функции, недоступные в MacOS 10.4.

Конечно, вы всегда можете установить Xcode3 параллельно с Xcode4, но это означает, что вы должны отказаться от всех (замечательных?) Новых функций Xcode4 и продолжать работать с устаревшей IDE Xcode3. Было бы намного лучше, если бы вы также могли управлять всеми своими старыми проектами в той же среде IDE, что и новые, и извлекать выгоду из любых новых доступных функций. Не все проекты могут быть сделаны 10.6 или Intel только в обозримом будущем. Кроме того, я категорически против отмены поддержки старых платформ раньше, чем это будет действительно необходимо.

Можем ли мы восстановить эту функциональность в Xcode4?

Ответы:


111

Быстрый ответ: да, можем!

Прежде чем я перейду к части « как это делается », вот несколько заметок о моем патче / хаке / исправлении. С самого начала основными целями были:

  1. Сведите все модификации к абсолютному минимуму.
    Мы хотим сохранить настройки Xcode как можно более оригинальными.

  2. Во что бы то ни стало, старайтесь избегать исправления или изменения каких-либо файлов.
    Мы хотим, чтобы все файлы оставались нетронутыми и сохраняли исходное содержание.

  3. Старайтесь не перемещать и не копировать файлы без крайней необходимости.

Я смог сохранить все эти цели. Почти все делается путем создания символических ссылок. Необходимо было заменить только одну существующую символическую ссылку, и мы сделаем резервную копию перед заменой, на всякий случай.

Если вы не являетесь экспертом в терминальных операциях, я настоятельно рекомендую вам скопировать / вставить все команды терминала из моего ответа в ваш терминал, чтобы избежать опечаток. Имейте в виду, что даже интервалы, цитирование и особенно использование заглавных букв могут быть важны. Скопируйте / вставьте их построчно, никогда не более одной строки за раз, и нажимайте return после каждой вставленной строки, чтобы выполнить команду. Если какая-либо операция когда-либо запрашивает пароль, это будет пароль пользователя-администратора, который в данный момент вошел в систему (нажатия клавиш не отображаются при вводе, это нормально, не волнуйтесь, просто продолжайте вводить пароль и нажмите return; повторно) -попробуйте, если у вас была опечатка, и снова получите запрос).

Предпосылка

Прежде чем мы сможем начать, убедитесь, что выполняются следующие условия:

  • Вы вошли в систему как администратор.
  • Вы запустили Terminal.app (Приложения / Утилиты), и окно терминала открыто.
  • У вас есть копия Xcode3 (например, 3.2.5) и образа диска Xcode4 (DMG) или доступный установщик.
  • Если у вас уже установлена ​​какая-либо версия Xcode, сначала рассмотрите возможность ее удаления , чтобы вы могли начать с новой / чистой установки. Удаление Xcode не приведет к удалению ваших предпочтений, цветовой схемы или настроек привязки клавиш. В идеале вы должны начать с системы, в которой в настоящее время не установлена ​​версия Xcode (ни 3, ни 4).

Шаг 1: установка Xcode3

Важно : не устанавливайте " Системные инструменты " или " Unix Development " пакет Xcode3.
Хотите ли вы установить « Mac OS X 10.4 SDK » и / или « Документацию » - решать вам. Если это Xcode3 с iOS SDK, то устанавливать вы их или нет - тоже зависит от вас.

Вы можете выбрать любую папку для установки. Для этого руководства я выбрал « / Xcode3 », но не стесняйтесь выбирать другой. Просто не забудьте соответствующим образом изменить все команды терминала.

Порядок действий, приведенный здесь, обычно не очень важен, но я настоятельно рекомендую вам не менять местами шаг 1 и шаг 2. Xcode всегда устанавливает пару файлов вне выбранной папки назначения и поверьте мне, в конце концов, вы хотите, чтобы Xcode4 версии этих файлов на вашем диске. Установив Xcode3 до Xcode4, вы можете быть уверены, что Xcode4 при необходимости перезапишет эти файлы. Однажды я поменял местами шаги 1 и 2, и в итоге у меня возникли довольно странные проблемы, которые могли быть связаны с неправильным порядком (я не могу точно сказать, но после переустановки в правильном порядке проблемы исчезли).

Шаг 2: установка Xcode4

Выбирайте любые понравившиеся пакеты. Установка « Системных инструментов » желательна, но не является строго необходимой (хотя большинство людей рано или поздно упускают эту функциональность).

Опять же, не стесняйтесь выбирать любую целевую папку, которая вам нравится. Для этого руководства я выбрал обычную целевую папку « / Developer », если вы выберете другую, измените все команды терминала соответствующим образом.

Шаг 3. Восстановление поддержки SDK 10.4 / 10.5

Перейдите в окно терминала и выполните следующие команды:

cd / Developer / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.

Конечно, запускайте команду для 10.4u, только если вы также установили SDK 10.4 на шаге 1.

Этого достаточно, чтобы вернуть SDK 10.5 (и, возможно, 10.4) в список выбора в Xcode4. Попробуйте, если хотите. Запустите Xcode4, откройте проект, попробуйте изменить выбранный SDK. Это было легко, да? Не забудьте снова закрыть Xcode4 (приложение, а не только окно), прежде чем переходить к следующему шагу.

Шаг 4. Восстановление поддержки GCC 4.0

Если вы не установили MacOS 10.4 SDK или не планируете когда-либо его использовать, вы можете пропустить этот шаг и перейти к шагу 5.

Чтобы использовать SDK 10.4, вам придется использовать GCC 4.0, GCC 4.2 работать не будет. Apple утверждает, что GCC 4.2 несовместима с SDK 10.4, ну, если вы спросите меня, это обман. Я уже несколько раз переписывал эти ограничения, и из-за этого никогда не было ни малейшей проблемы. Было бы легко изменить SDK 10.4 так, чтобы Xcode позволял вам использовать для него GCC 4.2, но моей целью было избежать всех модификаций файлов, поэтому мы просто добавляем поддержку GCC 4.0 обратно в Xcode, что тоже хорошо, потому что некоторые проекты действительно зависят от GCC 4.0 (например, в GCC 4.2 есть некоторые ошибки, которые не позволяют корректно компилировать встроенный ассемблерный код без ошибок, в то время как тот же код компилируется безупречно на GCC 4.0 и GCC 4.4).

Вернуться к терминалу:

компакт-диск / Разработчик / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*.

компакт-диск / Разработчик / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1.

Прямо сейчас мы восстановили полную поддержку GCC 4.0, за исключением того факта, что GCC 4.0 по-прежнему нельзя выбрать в Xcode4. Это потому, что Xcode4 больше не имеет подключаемого модуля компилятора GCC 4.0. К счастью, плагин Xcode3 работает и в Xcode4, только позиция радикально изменилась. Apple теперь скрывает эти плагины глубоко внутри пакета, и, похоже, работают только те плагины, которые там работают, размещение их в старом положении не имеет никакого эффекта.

компакт-диск / Разработчик / Библиотека / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Contents / SharedSupport / Developer / Library / Xcode / Plug-ins
sudo ln -s "/ Xcode3 / Library / Xcode / Plug-ins / GCC 4.0.xcplugin".

Теперь снова запустите Xcode4, откройте проект и попробуйте выбрать компилятор. У вас должен снова появиться GCC 4.0 в списке. Теперь вы уже можете выбрать SDK 10.4 или 10.5, GCC 4.0, и у вас не должно возникнуть проблем с созданием двоичного файла PPC. Просто выберите « Другое ... » для параметра сборки « Архитектура » и вручную введите « ppc », затем измените « Действительные архитектуры », чтобы также включить « ppc ». Мы почти закончили, за исключением того, что попытка создать двоичный файл PPC с использованием GCC 4.2 и SDK 10.5 все равно не удастся.

Шаг 5. Восстановление поддержки PPC для GCC 4.2

Поскольку Apple поддерживает только платформы Intel в Xcode4, не все инструменты GCC 4.2 были созданы с поддержкой PPC. Есть один важный инструмент, который не поддерживает PPC, инструмент называется « as », и это GNU Assembler. Для компиляции двоичных файлов ppc / ppc64 с GCC 4.2 нам нужно использовать версию « as » с поддержкой ppc / ppc64. Это единственный файл (на самом деле это также символическая ссылка), который мы должны сначала отодвинуть (сделать резервную копию), прежде чем мы сможем заменить его символической ссылкой:

cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv как as.bak
sudo ln -s / Xcode3 / usr / bin / as.

Шаг 6: Нет Шага 6

Это все, ребята. Учитывая, насколько это было просто, вы можете представить, что Apple, конечно же, отказалась от поддержки SDK 10.4 / 10.5 или ppc / ppc64 или GCC 4.0, потому что это была необходимость, они отказались от всего этого, потому что хотели отказаться от этого.

Я надеюсь, что эта установка подойдет вам так же хорошо, как и мне. Мне удалось скомпилировать все свои старые проекты в Xcode4 без каких-либо серьезных изменений, за исключением того, что мне приходилось менять путь поиска здесь и там.

PS:
Может показаться странным, что я отвечаю на свой вопрос здесь, но, поскольку я узнал, как решить эту проблему сам, я хотел бы поделиться своими знаниями с сообществом, потому что я считаю, что это действительно ценный вклад в все разработчики MacOS. Этот вопрос задавали столько раз во многих местах, и до сих пор я никогда не видел, чтобы кто-нибудь предлагал подобное исправление. Делитесь богатством, распространяйте знания и так далее, вы понимаете, о чем я.


Если у вас все еще есть проблемы / вопросы:

Если у вас есть дополнительные вопросы по этой теме или у вас все еще есть проблемы с правильной сборкой старых проектов, сделайте то, для чего был разработан Stack Overflow: нажмите «Задать вопрос» в правом верхнем углу этой страницы и создайте новый вопрос. . Таким образом, все сообщество может помочь вам решить эти проблемы, поскольку проблемы могут не иметь прямого (возможно, даже косвенного) отношения к этому взлому.

Я бы порекомендовал вам упомянуть тот факт, что вы применили этот прием в самом начале своего вопроса. Возможно, вы даже захотите дать прямую ссылку на этот вопрос, чтобы люди, которые никогда не слышали об этом взломе, могли легко его найти. В противном случае большинство людей запутаются, когда вы упомянете SDK 10.4 / 10.5, PPC или GCC 4.0 в сочетании с Xcode4, который официально не поддерживает ни один из них. Вы можете получить довольно глупые комментарии вместо достойных ответов, если забудете упомянуть об этом взломе.

Пожалуйста, воздержитесь от размещения здесь ваших вопросов или проблем в качестве ответов или комментариев. Публикация их в качестве ответов не имеет смысла, потому что это не ответы, и люди не могут ответить вам, кроме как с помощью комментариев, а в комментариях может не хватить места для достойного ответа на ваш вопрос или достойного решения вашего проблема. А размещение их в качестве комментариев означает, что вы ограничены очень небольшим пространством, и отслеживать комментарии ответов будет сложно, поскольку комментарии не имеют древовидной иерархии (кроме того, они по-прежнему будут предлагать мало места для достойных ответов / решений). Спасибо.

Конечно, всегда приветствуются другие комментарии, а также лучшие ответы на исходный вопрос ;-)


6
Вот голос за. Я, вероятно, скопирую старые SDK и файлы компилятора вместо того, чтобы просто связывать их с ними, чтобы иметь возможность удалить остальную часть Xcode3. Не потому, что я люблю Xcode4; исключительно потому, что мне нужно место на диске. Благодарность!
Иван Вучица

Я не могу заставить это работать. Пожалуйста, посмотрите мой вопрос SO: stackoverflow.com/questions/5409860/…
paleozogt

В дополнение к этому, чтобы получить сборку gcc 4.0 для целей i686, мне пришлось сделать следующее: sudo ln -s /Xcode3/usr/libexec/gcc/i686-apple-darwin10/4.0.1 / Developer / usr / libexec / gcc / i686-яблоко-darwin10 / sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/ / Developer / usr / lib / gcc / i686- apple-darwin10 / sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/ / usr / lib / gcc / i686-apple-darwin10 /
Отметить Кэри

2
Эту строчку for SRC_FILE in /Xcode3/usr/bin/*4.0*; do sudo ln -s "$SRC_FILE" .; doneможно упростить доsudo ln -s /Xcode3/usr/bin/*4.0* .
Адам Розенфилд

1
@cullub Перейдите на developer.apple.com , войдите в систему со своим идентификатором разработчика, выберите «SDK», прокрутите вниз и выберите «Xcode», выберите «Загрузить», прокрутите вниз и выберите «Дополнительные инструменты», выполните поиск «Xcode 3» в поле поиска.
Mecki

15

Другой простой способ с использованием только Xcode4, Xcode3 больше не нужен.

$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin

РЕДАКТИРОВАТЬ:

Для Xcode 4.1,

sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/powerpc-apple-darwin10 /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc

Вы можете использовать gcc-4.2 только для PowerPC. Также требуется опция «-isysroot /Developer/SDKs/MacOSX10.6.sdk», поскольку 10.7 SDK больше не поддерживает PowerPC.


3
LOL, поэтому Apple поддерживает PPC в компиляторе iOS :-P Однако вы, возможно, должны отметить, что это только восстановит совместимость PPC, но не восстановит SDK или поддержку GCC4.0. Все еще стоит проголосовать.
Mecki

Очень хакерский и простой, чем выше, требуется абсолютный минимум.
Diziet

Включите инструментальную цепочку PowerPC в Xcode 4.1 . Только gcc-4.2. Для этого требуется опция «-isysroot /Developer/SDKs/MacOSX10.6.sdk», потому что 10.7 SDK больше не имеет заголовков для PowerPC.
Кадзуки Сакамото

stackoverflow.com/questions/11989007 актуален для получения SDK 10.6. то есть это в Xcode 4.1
fommil

8

Я собрал всю информацию с этой страницы, Mac OS X Hints, splhack.org и других источников, процитированных здесь, и собрал набор сценариев BASH, которые автоматизируют процесс восстановления поддержки PPC и GCC 4.0 с использованием либо Установка XCode 3 или просто файлы платформы iPhone XCode 4.

Как всегда, используйте с осторожностью! и, пожалуйста, внесите какие-либо исправления или улучшения. Эти сценарии были протестированы только на моей собственной системе на момент публикации.

Вы можете скачать их с GitHub:


Вау, круто :-) Я сам хотел написать такой сценарий, но у меня не было на это времени. Спасибо, что поделились этим с нами.
Mecki

4

Если вы хотите, чтобы gcc также работал из командной строки (как и вышеперечисленное), вам также необходимо:

cd /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv as as.bak
sudo ln -s /Xcode3/usr/bin/as .

3

Это по-прежнему работает с Xcode 4.3.2 из AppStore - версией, в которой все автономно в пакете приложений. Как и в исходной подсказке, сначала установите Xcode 3.2.6 *, а затем загрузите Xcode 4 из AppStore. Затем выполните следующую магию символической ссылки:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
ln -s /Developer/Xcode3.2.6/SDKs/MacOSX10.5.sdk .
cd /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/bin/
ln -s /Developer/Xcode3.2.5/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g* .
mv powerpc-apple-darwin10-llvm-gcc-4.2 powerpc-apple-darwin11-llvm-gcc-4.2
mv powerpc-apple-darwin10-llvm-g++-4.2 powerpc-apple-darwin11-llvm-g++-4.2

Последние две строки переименовывают darwin10 в darwin11 в символической ссылке - я предполагаю, что в будущих версиях OS X потребуется обновить это по мере необходимости.

  • Чтобы установить Xcode 3.2.x на Lion, смонтируйте образ диска Xcode, откройте Терминал, введите команды (используя bash или аналогичные команды, если вы изменили оболочку по умолчанию):

    export COMMAND_LINE_INSTALL = 1 открыть "/ Volumes / Xcode и iOS SDK / Xcode и iOS SDK.mpkg"

Вам также необходимо установить часы на дату до 31 марта 2012 г., иначе сертификаты безопасности не пройдут проверку во время установки. Очевидно, вы можете смело изменить дату обратно после установки!


2

Если кому-то нужно восстановить старые SDK и компилятор PPC в Xcode 4.3 и 4.5, это сценарий, который я придумал. Обратите внимание, что вам необходимо указать путь к набору приложений Xcode и путь к установке Xcode 3.2.6 в начале скрипта.

#!/bin/bash

XCODE="/Applications/Xcode45-DP1.app"
XCODE3="/Xcode3"

# restore SDKs
cd "$XCODE/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
sudo ln -s "$XCODE3/SDKs/MacOSX10.4u.sdk" .
sudo ln -s "$XCODE3/SDKs/MacOSX10.5.sdk" . 
sudo ln -s "$XCODE3/SDKs/MacOSX10.6.sdk" . 

# restore gcc 4.0
cd "$XCODE/Contents/Developer/usr/bin"
sudo ln -s "$XCODE3/usr/bin/"*4.0* .
sudo ln -s "powerpc-apple-darwin10-g++-4.0.1" "powerpc-apple-darwin11-g++-4.0.1"
sudo ln -s "powerpc-apple-darwin10-gcc-4.0.1" "powerpc-apple-darwin11-gcc-4.0.1"

# restore Xcode option
cd "$XCODE/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins"
sudo ln -s "$XCODE3/Library/Xcode/Plug-ins/GCC 4.0.xcplugin" . 

Вам не нужно использовать символическую ссылку 10.6 SDK, если вы используете Xcode 4.3, поскольку он поставляется с одним.

Также скрипт не восстанавливает gcc 4.2, поскольку при этом возникает много конфликтов имен файлов. Моя цель - восстановить компилятор PPC, и 4.0 мне достаточно.


2

У Фредерика Деверне есть проект на GitHub под названием xcodelegacy, который отлично работает для меня в Xcode 5.1.1 и требует очень небольшой работы, чтобы запустить его, просто немного загрузки.

Используя его проект, мне удалось создать универсальные двоичные файлы, содержащие архитектуры ppc и i386, скомпилированные с 10.4 SDK с использованием GCC 4.0, все из Xcode 5.1.1, работающего на Yosemite.

Я сам убедился, что созданные универсальные двоичные файлы нормально работают на 10.5 Leopard и на самом Yosemite.

Домашняя страница здесь: http://devernay.free.fr/hacks/xcodelegacy

Проект Git Hub здесь: https://github.com/devernay/xcodelegacy


1

Было бы полезно иметь пакет, чтобы просто установить эти файлы в реализацию XCode 4. (или тарболл).

К вашему сведению: 3.2.6 Xcode3 не включает архитектуру as с ppc. Но у меня на компьютере была резервная копия Leopard. Так что я скопировал это, похоже, работает. (Используйте / usr / libexec / gcc / darwin / ppc / as).

Учитывая, что и gcc, и as являются открытым исходным кодом, единственное, что нельзя распространять, - это плагин xcode и 10.4 SDK, верно?


Я не специалист по вопросам лицензирования; «as -v» означает «версия Apple Inc cctools-795 ~ 45, ассемблер GNU версии 1.38», однако, даже если Apple изменила исходный код «as», он по-прежнему находится под лицензией GPL (измененный код GPL автоматически Код GPL снова), поэтому, если GPL позволяет вам это сделать, все будет в порядке.
Mecki

Хорошо, я полагаю, что мои рассуждения о том, почему мы должны заменить «как», были ошибочными. «As» Xcode 3.2.6, похоже, тоже работает, хотя это только Intel, но, похоже, он все еще может создавать выходные данные сборки ppc. Я исправлю свой первоначальный ответ. Спасибо за указание на это!
Mecki

Собственно по крайней мере из командной строки этого нет. Он продолжал жаловаться, пока я не схватился, как из моей резервной копии Леопарда.
Джейсон Кенни
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.