1. PHP / Говнокод #23883

    −2

    1. 1
    Продолжение банкета

    Челлендж: НОРМАЛЬНЫЙ человек должен собрать с помощью docker PHP 5.3 с его требованиями к древним и automake, и autoconf, и bison и запустить сие существо вместе с Apache2 и MySQL.

    Сакральный смысл челленджа в том, чтобы в здравом уме начать, в здравом уме окончить.

    Запостил: dm_fomenok, 06 Марта 2018

    Комментарии (18) RSS

    • Короче я хрен знает что у тебя не получилось. Убунты 16.04 под рукой нет, но есть другой свежий (относительно) дистр, тулы правда древние. А у тебя какие?

      $ autoconf --version
      autoconf (GNU Autoconf) 2.69
      Copyright (C) 2012 Free Software Foundation, Inc.
      License GPLv3+/Autoconf: GNU GPL version 3 or later
      <http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.
      
      Written by David J. MacKenzie and Akim Demaille.
      
      
      $ automake --version
      automake (GNU automake) 1.15
      Copyright (C) 2014 Free Software Foundation, Inc.
      License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.
      
      Written by Tom Tromey <tromey@redhat.com>
             and Alexandre Duret-Lutz <adl@gnu.org>.


      Вот что я сделал
      $ wget http://museum.php.net/php5/php-5.3.29.tar.gz
      $ tar xvfz php-5.3.29.tar.gz
      $ cd php-5.3.29
      $ ./configure
      # тонны checking
      
      
      Thank you for using PHP.
      $ make && sudo make install
      # Много копеляции
      
      Installing PDO headers:          /usr/local/include/php/ext/pdo/
      
      $ /usr/local/bin/php --version
      PHP 5.3.29 (cli) (built: Mar  7 2018 03:12:44)
      Copyright (c) 1997-2014 The PHP Group
      Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
      $ uname -a
      Linux hue-moe 4.4.88-hue-moe #10 Fri Sep 29 04:27:25 MSK 2017 x86_64 Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz GenuineIntel GNU/Linux


      Как видишь, у меня 5.3.29 отлично стал, и теперь у меня насрано по всему usr/local
      Ответить
      • $ bison --version
        bison (GNU Bison) 3.0.4
        Written by Robert Corbett and Richard Stallman.

        Copyright (C) 2015 Free Software Foundation, Inc.
        This is free software; see the source for copying conditions. There is NO
        warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
        Ответить
        • > and Richard Stallman
          Хех, сколько софтин он всё-таки успел основать тогда...
          Ответить
        • # autoconf (GNU Autoconf) 2.69
          # automake (GNU automake) 1.15
          # bison (GNU Bison) 3.0.4

          Мне сказало, что autoconf больше 2.59 не подойдёт.
          Мне сказало, что с automake больше 1.4 (вроде) не подойдёт.
          Мне сказало, что bison больше 2.6.4 не подойдёт.

          Все версии, на которые ругалось, как у тебя.

          PS. Попробуй git версию.
          Ответить
      • А я всегда в /opt ставил собранное вручную говно. Чтобы не смешивать.
        Ответить
      • PS. По этой инструкции действительно собралось. Но в прошлый раз был git и ветка была PHP-5.3, а не 5.3.29
        Ответить
      • > у меня насрано по всему usr/local

        кто ж юзает configure без --prefix
        Ответить
      • Зачем показывают свою версию autoconf/automake, если они никогда не используются в том процессе, который ты описал? Вся суть этого говна в том, чтобы сгенерячить файлы, которые можно на любом юниксе запустить, без всяких autotools и смс.

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

        Не понятно, зачем что-то собирать из гита, если ты ничего не собираешься патчить. Если уж ты патчишь, поправь версии тулов в конфигах на те, что у тебя.
        Ответить
        • >>Зачем показывают свою версию autoconf/automake
          Потому что топикстартер сказал что у него что-то там старое, я и показал не включив мозги.
          Теперь включил, и понял что я запускаю готовый configure

          Я брал не из гита, а из музея уже готовые к сборке сырцы.
          Ответить
          • > Я брал ... уже готовые к сборке сырцы

            Именно. Впрочем, как любой вменяемый человек, знакомый с опенсорсом. Autotools нужны только разработчикам софта, а не тем, кто его собирает.
            Ответить
    • Кто там просил сообщение об ошибке?

      buildconf: checking installation...
      buildconf: You need autoconf 2.59 or lower to build this version of PHP.
      You are currently trying to use 2.69
      Most distros have separate autoconf 2.13 or 2.59 packages.
      On Debian/Ubuntu both autoconf2.13 and autoconf2.59 packages exist.
      Install autoconf2.13 and set the PHP_AUTOCONF env var to
      autoconf2.13 and try again.
      Ответить
      • так ты из гита брал, а не из музея?
        Ответить
        • А зачем из музея, если потом придётся пропатчивать?
          Ответить
          • > если потом придётся пропатчивать?
            >> Если уж ты патчишь, поправь версии тулов в конфигах на те, что у тебя.
            Ответить
          • не понял, что пропатчивать?

            Тебе же выше Роман пояснил что если ты берешь из гита то нужны и autotools и bison с lex чтобы сгенерить парсер/лексер, а если ты берешь готовые сырцы то просто делаешь как я --- ./configure && make и всё

            Если тебе нужно просто опции копеляции поменять то просто передай их ./configure

            А если тебе реально нужно сгенерить свой configure то тебе конечно нужны правильные версии autotools, тогда дорога в Docker
            Ответить
            • > нужны правильные версии autotools
              Скорее всего, там просто пишут протестированные версии autotools. Вполне вероятно, что с новыми тоже работает, просто никто не проверял.
              Ответить
            • К слову, руками версии править тоже не нужно. Нужно просто позвать autoreconf -vfi
              https://www.gnu.org/software/automake/manual/html_node/Upgrading.html
              Ответить
      • configure: WARNING: bison versions supported for regeneration of the Zend/PHP parsers: 1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2 2.6.4 (found: 3.0.4).
        Ответить

    Добавить комментарий