Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:95563 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 30630 invoked from network); 2 Sep 2016 13:50:03 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 2 Sep 2016 13:50:03 -0000 Authentication-Results: pb1.pair.com smtp.mail=coladict@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=coladict@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.213.173 as permitted sender) X-PHP-List-Original-Sender: coladict@gmail.com X-Host-Fingerprint: 209.85.213.173 mail-yb0-f173.google.com Received: from [209.85.213.173] ([209.85.213.173:36707] helo=mail-yb0-f173.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 8B/36-19490-98389C75 for ; Fri, 02 Sep 2016 09:50:02 -0400 Received: by mail-yb0-f173.google.com with SMTP id 125so39357658ybe.3 for ; Fri, 02 Sep 2016 06:50:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=l7zka/a6quWOMt8AgSieZWYly8+C7ddt6djwJPttX7s=; b=st14H1sutaOjIwEy2KA/7kOz0b3siFR1egYjiW6RO8Tm5lVjHer0Yb+EPbraNcj/cF xnm4/WpHQlkGQ7R0/pvGINwqbwvXUmRpIHswpO2ZdBLt7JlZsDARBLWzyfqb6QZz2sgZ P7SAduN95Vnd3+QhqUf946cqOsAKygmwo6FADU/6ayA+oTNSJR0G41/HHAx75DD0NFKF GdHXnGeeh/AisZYZxIl+I8J4GU4SzC8nQVyOuBzt2gqJz/3+yJXRB57BA2PL7dU1JpFg wDHk/m8s5d6DV657Pv04Ec67UAgHfiAFtFxI20UXaLrT9mKjq5liNDt0PHaqeoc1DyQM Ml6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=l7zka/a6quWOMt8AgSieZWYly8+C7ddt6djwJPttX7s=; b=cX+rPL3E3Q0aNHTy/Up8NPtnRms3lDk1vVTF/ysWwm0QAw5l5i/e+8gQl5S2WNa1BG +bSTuOUxOK9ztDTLU2P+mC7wJLjs6wlaZdrN8VxZ6NpzGieRdhTe5GhIxC1IwL2iGPhK qVi/rEy/jUC+SrE0qWyvQgQgAjgkT9lQwK2lksQykmZ+eazrYo6XRapdlm5qWP+RnmRJ KJlKYEziwpIOFPwg+lT0DsLf+AGI4uuPORwmYTqU1aFbmNpClbnvPig+SBo992n1qS8M K/OfIBIux/Ci6Gd473BdzPi3vtQrGO4GuVqDKG0HHDHsR+u47TyCZRAwWok/JeC2j0c2 8azw== X-Gm-Message-State: AE9vXwOhljI/OPq1w5ab6z36Vi8QeXajEUIDtVLIOpARM5aMsF0f9hqN53FU88/0/ndBo4sh0KVZoRoNu197cg== X-Received: by 10.37.104.6 with SMTP id d6mr17966070ybc.77.1472824198866; Fri, 02 Sep 2016 06:49:58 -0700 (PDT) MIME-Version: 1.0 Received: by 10.83.20.135 with HTTP; Fri, 2 Sep 2016 06:49:38 -0700 (PDT) In-Reply-To: <3818ee78-9795-ce5e-6a0a-703e45cd904a@heigl.org> References: <3818ee78-9795-ce5e-6a0a-703e45cd904a@heigl.org> Date: Fri, 2 Sep 2016 16:49:38 +0300 Message-ID: To: Andreas Heigl Cc: internals@lists.php.net Content-Type: multipart/alternative; boundary=94eb2c14fe1e30acbe053b869b55 Subject: Re: [PHP-DEV] Non-conflicting PHP 5 and 7 builds From: coladict@gmail.com (Jordan Gigov) --94eb2c14fe1e30acbe053b869b55 Content-Type: text/plain; charset=UTF-8 I'll try to answer as best I can. > Is it possible to extend that system also to minor and patch versions? Extending it to allow minor versions would require some changes in "scripts/phpize.m4" and "scripts/phpize.in" to make that information available to extensions, without having to parse the version string. It would probably be better to make them maintain information about "--program-prefix" and "--program-suffix", which would also need to be added to the "phpincludedir" variable. phpincludedir is maintained in four locations in "scripts/Makefile.frag", "ext/pdo/Makefile.frag", "scripts/php-config.in" and "scripts/phpize.in". That should really be unified to one variable some day. Using "--program-prefix" and "--program-suffix" would then ensure no conflict ever arises if say, you want to change something in the installed headers and you don't feel safe about overwriting them for the major version. > What effect has that on docker or vagrant systems? Especially on maintainability of up-to-date versions that will have to symlink the current version to a new binary with every version? I don't know what docker/vagrant container set-up you have in mind, but generally if the system has "update-alternatives", you will be able to use it to switch all of the symlinks from the default paths to point to the particular build. If it doesn't, so long as you keep that Makefile intact you can use "make install-alternatives" to overwrite all the symlinks. There are no provided symlink alternatives for an Apache module, nor an FPM unix socket, as there isn't a default one defined or recommended. > what effect would that have on non-release versions? The "install-alternatives" target would have to be added last to the defaults to ensure backwards compatibility for unsuspecting builders. Currently it is not, and must be specified when calling "make". 2016-09-02 15:47 GMT+03:00 Andreas Heigl : > Hi Jordan. > > Great Idea. > > There are just a few questions I have: > > * Is it possible to extend that system also to minor and patch versions? > * What effect has that on docker or vagrant systems? Especially on > maintainability of up-to-date versions that will have to symlink the > current version to a new binary with every version? > * what effect would that have on non-release versions? > > For our development it has been intresting to be able to switch between > different minor and patch-versions of PHP so we use vagrant or docker > for different projects depending on the PHP-Version available on the > productive servers. That can then also include extensions and so on. > > Alternatively I've used the prefix to distinguish between the versions > and then created symlinks to the binaries inside a bin-folder. When that > was necessary at all, as f.e. php-fpm can be called right inside the > respective prefiexed folder... > > And then there's also phpenv which took rbenv as a model. > > Cheers > > Andreas > > --94eb2c14fe1e30acbe053b869b55--