На GitHub появился странный репозиторий, похожий на исходники движка Opera Presto [закрыто правообладателями]

  • Новость


Современный браузер должен поддерживать обилие стандартов и технологий, которые превращают веб-документы в интерактивные приложения, медиаплееры со стримингом или даже игры. В связи с этим сегодня браузерных движков не так уж и много. Ушло время, когда достаточно было кое-как вывести текст и картинки. Сегодня нужна мощность виртуальной машины для JavaScript, поддержка аппаратного ускорения декодирования видео и постоянная отзывчивость интерфейса.

Исходные коды некоторых браузеров открыты и распространяются с условиями использования различной степени свободы. Поэтому мы увидели появление множества клонов Chromium, часть из которых, впрочем, быстро стала добавлять собственные улучшения относительно Chrome. А кто-то вообще отказался от собственного движка в пользу разработки Google. Так произошло с Opera в 2013 году. Позднее Opera последовала за форком WebKit и перешла на Blink.

Opera — браузер, который мало где доминировал, но не отставал от конкурентов технически. Для рендеринга страниц браузер использовал собственный движок Presto. Он обладал уникальностью: почтовый клиент, мощный менеджер загрузок, встроенный BitTorrent-клиент, жесты мышью и блокировка контента. В связи со сменой движка часть любимых многими функций Opera после 12-й версии исчезла. Градус недовольства должен сбить браузер Vivaldi, который тоже базируется на Blink.

А Presto мёртв. Хотя на днях на GitHub появился странный репозиторий, который напоминает исходники этого движка.

README.md гласит: «Веб-движок рендеринга Presto: Opera 12.15. Этот репозиторий содержит движок рендеринга Presto, используемый в Opera по 12 версию. Покеда». Аккаунт пользователя prestocore, выложившего файлы, анонимен и не содержит идентифицирующей информации. Большая часть кода в репозитории — 66,5 % — написана на C++, языке, на котором был создан Presto.

По адресу github.com/prestocore/browser пока что размещены почти полгигабайта файлов.

Обновление 2017-01-14 3:30 МСК: доступ к репозиторию закрыт согласно процедуре американского закона об авторском праве в цифровую эпоху (DMCA). В комментариях этого поста идут обсуждения зеркал и компилируемости исходников.
Поделиться публикацией
Похожие публикации
Никаких подозрительных скриптов, только релевантные баннеры. Не релевантные? Пиши на: adv@tmtm.ru с темой «Полундра»

Зачем оно вам?
Реклама
Комментарии 235
  • +10
    В пост призываются Shpankov (с комментариями от фон Течнера) и pepelsbey
    • 0
      Думаете слив от бывших сотрудников?
      • 0
        Я думаю, что они могли бы хотя бы сказать «оно» или «нет». Хотя вот листаю код, кое-какие доки в coredoc — похоже не фейк.
        • 0
          Будет круче, если это «слив» от тех, к кому по случайности попали старые компы/оргтехника. Как часто бывает с утечками исходников прототипов игр, которые находят прямо на devkit-ах консолей на интернет-барахолках.
          • 0
            Всё, репозиторий больше не «пока что». Поэтому, если кто-то из гиктаймеров успел выкачать всё — ждём перезаливки на облачко. Вроде камрады ниже (@brzsmg, staticlab и кто-то ещё) успели скачать — к ним и просьба перезалить.
            • +3
              Уже разошлось по миру, см. на реддите и в других местах. Ну а что единожды попало в сеть, останется там навсегда. Теперь, после takedown-а репозитория, от этих исходников точно не отстанут. Иначе — могло бы просто побаловаться с ними и забить на «старье». Но не теперь, когда аутентичность (и актуальность кое для кого) подтверждена.

              Единственное из всей этой истории, что мне по-прежнему интересно — это источник утечки. Слабо верится, что это кто-то из бывших разработчиков взял и решил выложить. Версия со списанной оргтехникой и неочищенными носителями информацией мне кажется более актуальной.
              • +1
                Слабо верится, что это кто-то из бывших разработчиков взял и решил выложить.

                А почему, соббсно, нет? Тем более написано, что «Аккаунт пользователя prestocore, выложившего файлы, анонимен и не содержит идентифицирующей информации». То есть понятно, что кому-то зачем-то пришлось шифроваться к тому-же.
                • 0
                  Кто-то не захотел иметь проблемы с полицией / спецслужбами какой-нибудь страны.
                  Боюсь, что Опера выложившего затаскает по судам.
                  • 0
                    Ну вот. Особенно страшно для него же самого будет, если это сам разраб Оперы и окажется.
                • +1
                  >останется там навсегда

                  Не всегда, к сожалению.
                  Я _очень_ хочу найти один проект, выложенный в Сеть автором в 1999 году и удалённый по каким-то причинам отовсюду (включая зеркала на archive.org).

                  Речь идёт о
                  проекте FreeBas9k, реализации BASIC для телефона Nokia 9110. Проект удалили из-за какой-то тёрки с Nokia (автор считал, что она должна ему денег), но сейчас это уже исключительно историческая ценность, на мой взгляд.
                  Сам файлик, если я правильно понял, имеет размер в 56 килобайт или около того, исходников вроде не было в комплекте. Я нашёл чей-то архив программ для него на Archive, но ссылка на сам файл bas9k.zip была потёрта.
                  • +2

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

                  • +1

                    Вот я тоже так думал. Пока не приключилась такя история. Есть такой лингвист Джон Кихада (John Quijada). Изобрел он как-то искусственный язык — ифукиль. А потом поигрался с ним немного, и раз, изобрел другой искусственный язык — илакш. И вот в этом илакше была очень занятная письменность. Все материалы он выкладывал на свой сайт. И там было довольно много всего на эту тему. И вот как-то, когда мне понадобились "красивые и загадочные письмена", я решил сходить к нему на сайт и позаимствавать несколько надписей линейным письмом илакша. И там я прочитал, что автор в илакше разочаровался и вернулся к работе над усовершенствованым ифкуилем. И все материалы по илакшу убрал...


                    Фигня, подумал я!


                    Ну а что единожды попало в сеть, останется там навсегда.

                    подумал я! И подшел искать в сети. И нашел 100500 ссылок на сайт Кихады :-( Похоже никто не озадачился тем, чтобы к себе что-то скопировать. А зачем? Это же W.W.W., а в нем рулят HTTP и гиперссылки.
                    Впрочем, может я просто гуглить не умею? Если кто ткнет меня носом буду премного благодарен.

                    • +1
                      Именно поэтому я установил ScrapBook X и тупо сохраняю себе все интересные страницы (а то и сайты), качаю все интересные репозитории и вообще храню у себя всю информацию, благо жёсткие диски достаточно дешёвые, чтобы ничего не удалять.
                        • НЛО прилетело и опубликовало эту надпись здесь
              • +5
                Не думаю что от этих двоих есть хоть какой-то толк. Как минимум первый точно говорящая голова, он никогда не говорил правду, только повторял официальную позицию, даже если она противоречила здравому смыслу.
                • +5
                  Второй, вы имеете в виду?
                  • +2
                    Нет, я писал именно про первого. Если и второй тоже — значит оба.
                • +4
                  Ни у кого из упомянутых доступа к движку не было, разве что Йон может подтвердить.
                • +1

                  Я волнуюсь, Shpankov "последний раз был на сайте 31 декабря 2016 в 16:26", а последнее сообщение от него вообще месяц назад.

                  • 0
                    Не волнуйтесь, ВКонтакте он бывает регулярно (https://vk.com/id3942209), и даже пишет иногда.
                • +1

                  Кто-нибудь уже попробовал скомпилировать? :)

                  • +2
                    Нужна VisualStudio 2010.

                    Открываем решение
                    \platforms\windows\OperaProjectFile.vcxproj

                    Ругается что не хватает кучи проектов:
                    Заголовок спойлера


                    • +3

                      А почему вы открывали vcxproj, а не sln? Там как минимум для libvpx путь корректно прописан, и нужный проект действительно лежит, где ему надо.

                      • +1

                        По-видимому, недостающие файлы проектов генерируются из *.vcxproj.template при помощи vcxproj_update.py

                        • 0
                          Там в сорсах вообще какая-то своя система сборки живёт, flower называется. Пока детально не ковырял, поэтому не могу сказать, как она соотносится со студийными проектами и солюшенами.
                          • +1

                            Из доков к flower: Flower is a build tool designed to replace GNU make for building Opera products on UNIX-like systems. Так что к Windows и Mac она, по-видимому, никак не относится.

                            • 0
                              А, понятно.
                              А с темплейтами, похоже, может работать ещё и скрипт git_checkout_hook.sh.
                              P.S. Кстати, он же и запускает vcxproj_update.py.
                              • 0

                                Очевидно, при коммите он должен удалять файлы этих проектов, а затем их пересоздавать:


                                if [ $run_update = 1 ] ; then
                                    echo "Generating source files..."
                                    python modules/hardcore/scripts/sourcessetup.py --ignore-missing-sources
                                    echo "Regenerating project file..."
                                    python platforms/windows/vcxproj_update.py
                                fi
                                • 0
                                  Не при коммите. При чекауте. Смотрит, имеются ли отличия в темплейт-файлах между предыдущим коммитом и тем, на который чекаутимся. Если есть — запускается перегенерация проектных файлов из этих шаблонов. Как-то так.
                                  • 0

                                    Да, прошу прощения, оговорился.

                        • +20
                          Скомпилировал под Windows. Пользовался Visual Studio 2010.

                          Необходимо:
                          CMake Tools for VisualStudio
                          Python 2.x (я использовал 2.7)
                          Strawberry Perl
                          Pike
                          vsyasm 1.2

                          А также библиотеки:
                          CURL 7.28
                          OpenSSL 1.0.1c

                          После установки Perl необходимо установить к нему библиотеку XML::Twig, что делается в командной строке:

                          cpan XML::Twig

                          После установки Pike добавить путь к его исполняемому файлу в переменную среды PATH. У меня это — C:\Program Files (x86)\Pike\bin

                          vsyasm (версии 1.2!) устанавливается согласно инструкциям файла readme.

                          Дальше необходимо распаковать CURL и OpenSSL в папку presto\browser\adjunct\autoupdate\autoupdate_checker\platforms\universal_adaptation_layer\network
                          Папки с ними переименовать в «curl» и «openssl» соответственно. Да, кстати, по указанному пути уже будет находится папка openssl, но её нужно заменить, так как некоторые необходимые для компиляции файлы в ней почему-то отсутствуют…

                          После, откройте файл проекта curl\lib\libcurl.vcproj в VisualStudio 2010 и согласитесь с преобразованием. Зайдите в свойства проекта, и в С/С++ > Code Generation > Runtime Library выберите Debug Multithreaded (/MTd) для конфигурации Debug и Multithreaded (/MT) для конфигурации Release. Если этого не сделать, то на стадии линковки появятся ошибки, связанные с конфликтами символов определённых в разных библиотеках. Теперь можно скомпилировать libcurl в конфигурации Release.

                          Потом компилируем OpenSSL, для этого понадобится открыть командную строку Visual Studio (Microsoft Visual Studio 2010 > Visual Studio Tools). Переходим в каталог openssl:

                          cd <путь>\presto\browser\adjunct\autoupdate\autoupdate_checker\platforms\universal_adaptation_layer\network\openssl

                          И компилируем:

                          perl Configure VC-WIN32 no-shared --prefix=../../../../Output/openssl -MT
                          ms\do_ms
                          nmake -f ms\ntdll.mak
                          nmake -f ms\ntdll.mak install


                          Потом копируем библиотеки libcurl.lib из curl\lib\Release, libeay32.lib и ssleay32.lib из presto\browser\adjunct\autoupdate\autoupdate_checker\Output\openssl\lib в autoupdate_checker\Output.

                          Из командной строки запускаем скрипт, отвечающий за генерацию проектов:

                          python <путь>\presto\browser\platforms\windows\vcxproj_update.py

                          Открываем решение presto\browser\platforms\windows\Opera_vc2010.sln, все проекты в решении должны открыться нормально. Заходим в свойства проекта autoupdate_checker, и в разделе Linker > Input > Additional Dependencies добавляем библиотеку wldap32.lib во всех конфигурациях.

                          Теперь осталось только скомпилировать старую-добрую Оперу :)

                          По окончании компиляции, исполняемые файлы окажутся в каталоге presto\browser\Release (или Debug, в зависимости от выбранной конфигурации). Но осталось ещё пара мелких штрихов: необходимо скопировать дефолтный скин в папку skin, для этого нужно заархивировать содержимое presto\browser\adjunct\resources\skin\standard_skin в архив standard_skin.zip и скопировать его в указанную папку. Также Opera может злобно ругаться на отсутствие файла encoding.bin, однако, не найдя его в исходниках, я не придумал ничего лучше как просто скопировать его из уже установленной у меня Оперы 12.17…

                          Также удивило то, что Debug-версия Opera при первом запуске выдаёт несколько Assertion Failed (prev_url==url_size), но это возможно как-то связано с созданием нового профиля. Release-версия работает абсолютно нормально.

                          Таким образом, исходники старой Оперы теперь доступны. Но что с ними делать дальше — вот в чём вопрос…

                          • +4
                            Небольшое дополнение: что-бы standard_skin.zip автоматически собрался, нужно скачать 7zip архиватор и скопировать исполняемый файл «7z.exe» в папку, которая есть в PATH. Я создал папку C\bin, скопировал 7z.exe в эту папку, и добавил её в в PATH. Странно, но у меня encoding.bin создался сам при сборке. У меня windows 10 x64 и visual studio 2010.
                            • 0
                              Спасибо за дополнение! Действительно, с указанным в PATH путём к 7zip, дефолтный скин собирается автоматически. А что касается encoding.bin, то присмотревшись к логу сборки, я обнаружил там сообщение «Failed creating encoding.bin». Нужно разобраться…
                              • 0
                                У меня encoding.bin создался сам.То ли тут 7z помог, то-ли еще что.
                            • +2
                              Эта версия OpenSSL уязвима Heartbleed. Сборка с 1.0.1u проходит успешно, но и ее не рекомендуют к использованию
                              • +3
                                Сборка с OpenSSL-1.1.0c прошла успешно, только нужно установить NASM, добавить папку с ним в path, командную строку Visual Studio открывать с привилегиями админа, вместо libeay32.lib и ssleay32.lib копировать уже libcrypto.lib и libssl.lib и в autoupdate_checker в разделе Linker > Input > Additional Dependencies указать их имена.
                        • +7
                          Если правда слив, то, боюсь, толку от этого немного, так как сомнительна возможность использования этих исходников с юридической точки зрения

                          (Здесь нужен AppChecker PVS-Studio :)
                          • 0
                            Будет как с Wine/ReactOS. Некоторые разработчики поглядывают на слитые исходники Win2K, но переписывают.
                            • +6

                              У нас никто не поглядывает.

                              • +4
                                А что плохого в подглядывании? Прямой копипаст — да, нельзя по законам юридическим и моральным, а посмотреть, как что-то сделано, не зазорно.
                                • +10

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


                                  Мы запрещаем разработчикам даже подглядывать в утекшие коды. Если достоверно известно, что разработчик смотрел в исходники, опубликованные нелегально, такой разработчик никогда не получит права коммитить код в транк проекта, а его патчи в саму ОС вряд ли будут приняты (но он все еще сможет написать наборы тестов).

                                  • +2
                                    А для Wine это гарантируется? Ведь наработки из него используются, например, в Arwinss.
                                    • +2
                                      А если такого разработчика сразу не заметят? Ну не прямые же фрагменты кода же он будет коммитить, и не большими кусками сразу. И кто будет заниматься проверками «не-майкрософтности» кода, если сам в подобные источники никогда не заглядывал?
                                      • 0

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


                                        Кроме того, разработчики проходят у нас проверку не менее года, прежде чем получить значительную степень доверия.


                                        И третье, любой код проходит ревью, во время которого так или иначе претерпевает изменения, так как у нас свои Бест Практикс, которые точно различаются с принятым в майкрософт.

                                        • 0
                                          Но это же лишь подтверждает обратное! Получается, что при осознанном понимании заимствованного кода разработчиком, при адаптации его под требуемый фирменный стиль и последующих изменениях на ревью другими разрабами (что вообще, по сути, частично снимает ответственность с первоначального комиттера), определить заимствование из решений MS в той же области почти невозможно.

                                          Любопытно, что похожая ситуация была в проекте Mono, где велик был соблазн залезть в утекшие исходники .NET Framework (позже, вроде, даже перевыложенные самими MS, что однако не сняло ограничения по официальному лицензированию, а этим Mono тоже были всегда озабочены).
                                          • 0

                                            Это ничего не подтверждает. Все попытки использовать утекшие коды у нас тщательно пресекаются. Мы с огнем не играем.


                                            Третий пункт нужен для того, чтобы избежать случайного сходства с проприетарными исходниками. Бывают изредка в программировании подобные парадоксальные ситуации.

                                            • 0
                                              Т.е. с майкрософтскими исходниками все же сравнивают код определенные люди в команде?
                                              • 0
                                                Насколько я понимаю, DMCA позволяет следующий протокол: один человек смотрит утекшие исходники (или, скажем, логи дизассемблера) и подробно документирует это дело, другой — по этим докам реимплементирует (или же проверяет свой код на похожесть). Это законно.
                                              • 0
                                                Придумали бы лучше процедуру невосстановимой переделки. А то наверняка бывают ситуации, когда написанный код такой же как оригинальный, потому что по другому нелогично
                                                • –1
                                                  Поздравляю, вы только что переизобрели полиморфные вирусы!
                                                  • 0
                                                    Полиморфные вирусы научились работать с исходниками на высокоуровневых языках?
                                      • +2
                                        > А что плохого в подглядывании? Прямой копипаст — да, нельзя по законам юридическим и моральным, а посмотреть, как что-то сделано, не зазорно.

                                        Я бы еще добавил: по законам юридическим какой юрисдикции. Ну глупо, скажем, в Иране сказать «по законам [Ирана] нельзя посмотреть утекший код и взять реализацию себе». И список стран, где такое явно неуместно, будет больше, где уместно.

                                        Другое дело, что крупные площадки (вроде Github) ассоциируют себя напрямую с США и ЕС, а иногда и полностью находятся находятся в юрисдикции этих стран, где миром «рулит» DMCA 1998 года.

                                        Выход: нужны другие площадки, иная кооперация и т.п.
                                        И не исключаю что все это существует уже, при чем далеко не обязательно лишь в даркнете.
                                • 0
                                  Ни git ни presto в 1995 не существовали, хотя тут вопрос оформления.

                                  Буду рад, если это настоящие исходники и думаю пока не слишком поздно сделать из них что-то интересное.
                                  • +1
                                    Ну, комментарии в коде пока говорят об аутентичности. Дома надо будет пошерстить

                                    Да и вещи типа https://github.com/prestocore/browser/blob/master/data/translations/ru/search_eng.ini похожи на правду
                                    • +1
                                      Согласен, при беглом просмотре очень похоже на правду.
                                    • +6
                                      Дату коммита в гите поменять — дело нескольких секунд. Не думаете же вы, что весь оригинальный репозиторий Оперы так и состоял из двух коммитов, первых из которых пустой, а второй — целиком вся Опера 12.15, написанная с нуля одним махом. :-)
                                      • –1
                                        Не думаю. Как и сказано выше — дело оформления, но имитация коммита от 95 года немного настораживает. По остальным признакам скорее похоже на настоящие исходники. По крайней мере случайные файлы оказались реально кодом, а не мусором на сотни мегабайт.
                                        • +6
                                          имитация коммита от 95 года немного настораживает
                                          Думаю, это просто один из шагов по заметанию следов.
                                          • 0
                                            А вот, кстати, интересно, случайно ли был выбран именно год первого релиза Оперы. :-)
                                            • 0

                                              И "22 июня, ровно в 4 часа". Хотя "днём рождения Opera" считается 30 августа.

                                              • +1
                                                А дата и время вас больше ни на какие мысли не натолкнули?
                                                • 0

                                                  Нет, ну я понимаю, что 4:00 GMT+4 — это 0:00 UTC, просто подметил совпадение.

                                                  • +1
                                                    Если эту дату и время выбрали неслучайно, то круг подозреваемых в сливе сужается до жителей эксСССР :)
                                                    • 0
                                                      Мне кажется, ВОВ сюда приплетать уж точно чересчур, если вы про неё.
                                                      • 0
                                                        Я просто развил мысль Ezhyg.
                                                        • 0
                                                          извините, не разобрался, подумал, что именно такая формулировка есть в текстах :(
                                                  • +1
                                                    30 августа — это дата основания компании. Первая версия браузера была представлена 10–14 апреля 1995 на конференции WWW. А первая публичная версия (2.0) вышла только в 1996 году. Так что откуда взялось 22 июня, я пока не понял. Разве что самый длинный день года, но при чём он тут… Но всё равно 1995 год явно знаковый.
                                          • +2
                                            В 95-ом существовал CVS, ClearCase (правда, лучше бы не существовал), и куча других систем контроля версий. Обычно люди и компании стремятся сохранить историю версий и импортируют в новую систему всю историю изменений, а не просто самую последнюю версию исходников, и для этого есть масса инструментов.

                                            История вообще могла пройти несколько этапов, например, CVS -> Subversion -> Mercurial -> Git.

                                            Если я правильно понял причину недоумения.
                                            • +1
                                              P.S. Извините, посмотрел на репозиторий, там нет никакой истории, только фейковые даты у каждого файла.
                                          • –2
                                            У меня одного антивирус ругается? Вот что Касперский Тотал Секьюрити говорит:
                                            Программа: WinRAR archiver;
                                            Файл: D:\browser-master\modules\minpng\tests\x_too-large.png;
                                            Время: 01/13/2017 15:41:35;
                                            Название объекта: Exploit.Win32.CVE-2013-2977.a
                                            • +15
                                              Он и должен ругаться, это некорректная png, которой самое место в тестах.
                                              • +6
                                                PNG integer overflow (CVE-2013-2977)
                                                Логично блин :)
                                                • 0
                                                  Symantec Endpoint тоже ругается, но на всю папку с репозиторием.
                                                • +2
                                                  Примечательно то что сам аккаунт и репозиторий были созданы почти год назад, еще 11 февраля 2016.
                                                  в исходниках, встречаются копирайты и 2003 и 2011 года, с именами разработчиков.
                                                  • +2
                                                    feldgendler: https://github.com/prestocore/browser/blob/8c5977d18f4ed8aea10547829127d52bc612a725/adjunct/quick/documentation/quick.tjp#L12
                                                    • +1
                                                      https://github.com/prestocore/browser/blob/8c5977d18f4ed8aea10547829127d52bc612a725/modules/logdoc/module.tweaks

                                                      Ы=ххъ ;D
                                                    • +2
                                                      Хм.
                                                      Вопрос к знатокам: если это все же оригинальные исходники, то сможет ли Opera в суд на опенсорс проект основанный на этом двиге? Я просто туп в таких вопросах…

                                                      Если действительно Presto, то это очень здорово. Может кто то сделает новый годный браузер)
                                                      • +5
                                                        DMCA и всё последующее.
                                                        • 0
                                                          Учитывая географию владельцев этих исходников, скорее EUCD.
                                                            • 0
                                                              На кого они будут подавать в суд, если разработчики анонимны, например? На гитхаб?
                                                              • 0
                                                                На тех кто размещает исходники/продукт. Разрабатывать сколько угодно можно.
                                                            • 0
                                                              Подать в суд можно по воле левой пятки, практически. Вопрос скорее в том, каковы шансы этот суд выиграть.
                                                              • +2
                                                                > сможет ли Opera в суд на опенсорс проект
                                                                Конечно, сможет.
                                                                • +4
                                                                  Если разработчики будут полностью анонимны, а репозиторий где нибудь в Даркнете (торе или i2p) то пускай усудятся:)
                                                                  Я кстати давно жду такого явления как «темный open-source», которое объединяло бы открытую разработку и полное презрение к любому копирайту… А может такое уже где нибудь есть?
                                                                  • +2
                                                                    Есть, как не быть: git.repo.i2p(.xyz)
                                                                    Оно, как и прочие темные интернеты, не слишком живое. Но вполне рабочее.
                                                                    • –1
                                                                      Только это не надо будет никому. (К сожалению многих, наверное)
                                                                      • 0
                                                                        У меня нет i2p, но их зеркало в .onion (git.psii2p655trtnvru.onion) — лежит.
                                                                        Ещё на просторах интернета встречается упоминание gitweb2zl5eh7tp3.onion, но он тоже лежит.
                                                                        ehww2ercchnq7633.onion? Лежит.

                                                                        А есть ещё варианты? Разумеется, из чисто академического интереса спрашиваю.
                                                                        • 0
                                                                          upd: http://git.repo.i2p.xyz/ работает :)
                                                                          • +1
                                                                            вот бы на GitLab еще перешли)
                                                                            • 0
                                                                              Мне тоже кажется, что основная проблема там — отсутствие issue tracker'а.
                                                                          • 0
                                                                            Через .i2p.xyz не все бывает доступно (например zzz.i2p.xyz или stats.i2p.xyz). Причина в том что весь трафик идет фактически через один узел, а также разнообразные куцхакеры.
                                                                            Потому, по возможности, рекомендуется ходить изнутри I2P, особенно на ресурсы с большим трафиком то git.
                                                                  • +3
                                                                    Кстати, интересный нюанс. Били ли при продаже компании китайцам в явном виде переданы права на Presto. Формально на тот момент он уже был похоронен. Или Presto вообще остался в Норвегии, как используемый в каких-то телевизорах (продали же десктопное подразделение, да?).
                                                                    • +24
                                                                      Там не только движок, там вся опера и м2. Под линуксом с помощью пары патчей и такой-то матери собирается. Версия 12.15
                                                                      Работает, даже видео на ютубе играет.
                                                                      • 0
                                                                        В т.ч. исходники интерфейсной части? А то в старом блоге Оперы рассказывали о том, что для тестов движка у них используется минимальная морда.
                                                                        Если выложено всё полностью, то это очень хорошо, для изучения в академических целях, конечно.
                                                                        • +1
                                                                          Судя по набору файлов, там даже инсталлятор есть.

                                                                          PS. Привет! :)
                                                                          • 0
                                                                            Привет =)
                                                                            Я на работе бегло посмотрел файлы, но C++ — не моя специализация. И, блин, вот сегодня первый раз, когда я об этом жалею.
                                                                          • +5
                                                                            Да. Весь интерфейс. Все системные скрипты, шейдеры для libvega и т.п.
                                                                            Все это дело жутко модульное. Каждый диалог, каждая фича — модулем.
                                                                            В целом от исходников довольно приятные впечатления и собирается все минут за 5 не выжирая оперативку, в отличии от другого известного движка.
                                                                            • +4
                                                                              Ну, не считая того, что местами пришлось патчить return FALSE на return nullptr в функциях, возвращающих указатели.
                                                                              • +1
                                                                                Собирали через flower или ещё как-то? Может инструкцию накидаете?
                                                                                • +7
                                                                                  да, flower
                                                                                  http://paste.fedoraproject.org/526781/32598714/ — патч на return'ы и на системный tinyxml
                                                                                  ./flower -v --without-kde4
                                                                                  (у меня пятые кеды и оно в итоге собирается наполовину с пятыми, наполовину с 4ми и падает)
                                                                                  У меня на 64 битах не собирается автоматом 32битный плагин-враппер, потому что инклюдит 64-битный gdk. Приходилось брать команду из выхлопа, заменять путь к инклюдам и собирать вручную. Там три файла, для которых так надо сделать.
                                                                                  flover можно запускать с -j 1 дабы было виднее, на чем он падает.
                                                                                  • +1
                                                                                    Мерси!
                                                                                    • +6
                                                                                      ах, да, там еще надо или отключить сборку апдейт-чекера или положить ему туда исходники curl
                                                                                      • 0
                                                                                        Можно ссылку сделать в /usr/include/curl
                                                                                        • +1
                                                                                          есть подозрение что поможет вот этот параметр --without-autoupdatechecker.

                                                                                          p.s. вот бы кто-то еще написал список зависимостей, а то приходится методом проб и ошибок ставить все по очереди.
                                                                                        • +2
                                                                                          Подтверждаю, собирается на генте с ~amd64 профилем. Версия браузера 12.15, версия престо 2.12.388.
                                                                                          У меня кстати собралось с системной so-шкой tinyxml без всякиз патчей. А инклюды gtk получаются через pkg-config, который и отдаёт lib64 вместо lib32, оно в platforms/quix/module.build/plugins.conf.py.
                                                                                          Ну и там по мелочам в некоторых perl-скриптах старый формат регекспов и переменных, но на сборку это не влияет.
                                                                                          • +2
                                                                                            Ну и раз уж товарищ iSage начал фиксить варнинги, то и я немного отмечусь.
                                                                                            Микропатчик, фиксит похожую на FALSE->NULL проблему во встроенном hunspell — http://pastebin.com/2EUFEBYp
                                                                                            • 0
                                                                                              Ещё один микропатч — http://pastebin.com/UuaZSWZg
                                                                                              Фиксит релизную (--release) сборку на линуксе. Современные (gcc5+) компилеры выдают кривой код после оптимизации, что приводит к крашам на очень многих страницах с JS.
                                                                                              • 0
                                                                                                ну это неправильный фикс. правильный фикс — поправить места падения.
                                                                                                • +1
                                                                                                  Там ровно одно место, в котором используется ихний delete-враппер. Он вообще много где используется, но падает только там.
                                                                                                  • +1
                                                                                                    И падает именно на -O2-3, на -O0, который в дебажной конфигурации, такого добра нет.
                                                                                                    Что опять же наводит на мысли о оптимизаторе. Поэтому и добавлен флаг, чтобы он ещё где подобного не учудил.
                                                                                                    Собственно, была аналогичная проблема в gcc6 и хроме, он там тоже в -O3 собирается, и без этого же самого флага были очень похожие краши на некоторых JS.
                                                                                                    • 0
                                                                                                      То есть на -O2 тоже падает?

                                                                                                      А есть возможность с ASAN'ом собрать?

                                                                                                      https://github.com/google/sanitizers/tree/master/address-sanitizer
                                                                                  • –1
                                                                                    Вот, раз такой молодец, давай репозиторий с патчами и build.sh
                                                                                    • +2
                                                                                      Патч есть выше. Все, что нужно для сборки — голова и ./flower --help
                                                                                      Распространять код я не собираюсь, его и так уже все, кому не лень отзеркалили.
                                                                                      • 0
                                                                                        > репозиторий с патчами

                                                                                        Как я понимаю, речь идёт не о том, чтобы распространять утекший код, а о том, чтобы коллективно создавать и распространять его улучшения. Вот интересно, кстати, насколько легален подобный процесс?
                                                                                        • +1
                                                                                          Нет, судя по манере изложения там именно требование всего готовенького. Энивей, патч пока всего один.
                                                                                          Процесс нелегален, поскольку патчи содержат куски исходного кода.
                                                                                          • 0
                                                                                            Все зависит от страны. Главное, чтобы такой программист не нарушал открыто законы (а чаще всего просто практику их исполнения) той, гражданство которой имеет и в которой проживает. Никто не мешает ему представиться человеком с Кокосовых островов.
                                                                                            • 0
                                                                                              Смотря в каком виде.

                                                                                              Если в виде диффов/патчей, то могут придраться к тому, что в них фигурирует код оригинала.

                                                                                              Если в виде «в файл такой-то после строки номер X нужно добавить вот этот написанный мной с нуля код» — то придраться практически невозможно.
                                                                                              • 0
                                                                                                Только такие патчи привязаны к оригинальному коду намертво, и применить два таких на один файл очень затруднительно, придётся каждый раз сверятся с оригинальными исходниками.
                                                                                                Интересно, а к именам файлов не придерутся?
                                                                                                • +1
                                                                                                  Можно сделать таблицу с однозначным соответствием «оригинальный_файл = сгенерированный_хеш_код» ))
                                                                                                  • +2
                                                                                                    Тогда уж и строки хешировать, чтобы включить их в контекст diff вместо оригинальных, ну и сам софт для diff модифицировать соответствующим образом. Тогда удобство работы с такими патчами будет не сильно ниже, чем с обычными.
                                                                                                    • +1

                                                                                                      Интересное концептуальное решение получается: система контроля версий, в которой вместо нулевой итерации будет magnet-хэш или torrent-файл, а в диффах вместо предыдущей версии строки указан её хэш. Правда в дифф-файлах следовало бы также предусмотреть возможность и других исправлений, таких как перемещение блока кода или замена части строки, чтобы максимально не засвечивать в коммитах оригинальный код.

                                                                                      • +4

                                                                                        Просто мечтаю чтобы кто нибудь собрал легаси оперу для маленьких АРМ девайсов на линуксе!

                                                                                        • 0
                                                                                          [del]
                                                                                          • –6
                                                                                            Ну не знаю. Как-то сразу после анонса, плюс на Гитхаб, смахивает на слив ради пиара. Да к тому же, судя по информации выше — не первый такой раз, а разве IT-гигант не научился бы на своих ошибках? И код неполный, как так сливать можно?
                                                                                            Мой вердикт — пиар акция, да и только.
                                                                                            • +7
                                                                                              Код вполне себе полный. См. комментарии выше — вроде бы даже собрать уже удалось.
                                                                                            • +5
                                                                                              Repository unavailable due to DMCA takedown.
                                                                                              • +5

                                                                                                Теперь ждем на торентах

                                                                                                • +3
                                                                                                  Ну вот, а я был на работе и не успел скачать. Может кто-нибудь поделиться в личку?
                                                                                                  • 0
                                                                                                    Быстро отреагировали.
                                                                                                    • +3
                                                                                                      Зато теперь в аутентичности утекших исходников можно не сомневаться.
                                                                                                      • 0
                                                                                                        Лично я бы посомневался в том, что анонимус не добавил какой-нибудь бэкдор, троян или что-то типа того забавы ради
                                                                                                        • +1
                                                                                                          Мне больше интересно кто и зачем слил — да еще на гитхаб где такие вещи банятся на раз два.
                                                                                                          • +2

                                                                                                            Перед тем, как они банятся, их успевает увидеть куча народу и сохранить себе. Так что смысл именно в GitHub'е есть.

                                                                                                      • 0
                                                                                                        у кого копия осталась? не успел :(
                                                                                                        • +4
                                                                                                          «То, что попало в интернет, останется там навсегда.»
                                                                                                          • +1
                                                                                                            Ага, в торрент и magnet-ссылку — в блокчейн BTC, комментарием к транзакции.
                                                                                                            (картинка-с-троллейбусом-из-буханки-хлеба)
                                                                                                            • +5
                                                                                                              Ах, если бы… Это только с тем, что всем интересно. А вот мало кому нужный контент (в моём случае — музыка) запросто может пропасть навсегда :-(
                                                                                                            • 0
                                                                                                              Вчера клонировал репозиторий:
                                                                                                              https://mega.nz/#!Lo0l1aZA!hFtA8QDtkgwYFm15slZbZWkGprhwI6R8xkl3G9ulzDI
                                                                                                              Вариант без папки .git (на 100 МБ меньше):
                                                                                                              https://mega.nz/#!GhVTVaRC!fhaeAwWmOfpMbMznjziDmAouuQnPFdifK_xEllImBKk
                                                                                                            • +1
                                                                                                              Господа успевшие скачать, ждем раздачу на торрентах:) Или может уже где-то есть?
                                                                                                            • –4
                                                                                                              Гитхаб лег под хабраэффктом?
                                                                                                              При попытке склонировать — выдает 504. При попытке скачать zip — 500.
                                                                                                              • +6
                                                                                                                Комментарий долго ожидал модерации, в момент опубликования уже устарел и, в итоге, набрал минусов.
                                                                                                                Эта система комментариев для незахабренных пользователей немного кривовата…