Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:101327 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 78752 invoked from network); 11 Dec 2017 21:12:05 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 11 Dec 2017 21:12:05 -0000 Authentication-Results: pb1.pair.com header.from=jelle@vdwaa.nl; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=jelle@vdwaa.nl; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain vdwaa.nl from 74.125.82.43 cause and error) X-PHP-List-Original-Sender: jelle@vdwaa.nl X-Host-Fingerprint: 74.125.82.43 mail-wm0-f43.google.com Received: from [74.125.82.43] ([74.125.82.43:34272] helo=mail-wm0-f43.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 36/5F-53433-3A4FE2A5 for ; Mon, 11 Dec 2017 16:12:04 -0500 Received: by mail-wm0-f43.google.com with SMTP id y82so14794614wmg.1 for ; Mon, 11 Dec 2017 13:12:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vdwaa-nl.20150623.gappssmtp.com; s=20150623; h=date:from:to:subject:message-id:mime-version:content-disposition :user-agent; bh=q7rYWTgwg3blgLi2P9hWCluD0RH+r/e72MIZqslvADY=; b=m3tac8F6N5XYXilWzMblf5uuop/mORlnV30dQE/Nww+QavNkj3Y50qJPYkpD00IG85 4baT1TCO8lPKv4hqzfaEk3fBc6XSFr5obNTscUMO5nt+qPgCtxtBglHOIB0MiQ/2XIYO ktMR4MpCLDYiiP0jfrSUSYln3veyyvtK+dUPXoHsrL4iXCj9DHBSQLTz9gsxg+VSzE83 YCXRy1RS1pL6NShIRKRp32xXUGAmRJagNSi4IkwVyxSnbVaaBlP0t5qhZSkr82VYwxvf pVj/RLw16NUxnfGHSnA8SwUBiUWwN9/7jKaFVzwA5e+Mu/Ac/PhEbJIkiPGJatV/TehW jO/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:mime-version :content-disposition:user-agent; bh=q7rYWTgwg3blgLi2P9hWCluD0RH+r/e72MIZqslvADY=; b=L2Pk3lbbaPfIh411WEaCtU6FiT8cZpnNe7AK7uwuDkF517HbLeLsWo8xylmVGdZnJt fn7sVAewt3+nGkVe29g3IZEpoxttozBThaJSSw5guL0d2LX46ZF/Lv0hXU/XyU6ylPB2 izRdLheIPEJOQq0fdZtPbm23vqWCetQypxJnUQSwBoCTS5/6lYq09sSTC0mqKhoRO8O1 h63sLFMO8RIi+kCzORxUmHVv4yJdE4REagc+JNWC7nwT/zEwr/lEFrts+03RXDvCjBM9 QSwTx6DI1p/FRkKPUaC+/KYPqB3UR6fS1+GVOwAVvDTJD4GKpRpEu+0leaqEngZnnG83 fOQg== X-Gm-Message-State: AKGB3mI++1M82m7KQ5CumSPj+mcRfvFthONzvRgV2EncrGLOIt/2VTTh M5vtE5nWOG1yFtn0x4ikQEhMBN7pQ3M= X-Google-Smtp-Source: ACJfBosiZrHacKDZmS0BkpwPfYM68oR/VwYFMCB2lDIuBk0AmoO6SkjNqSA1iC0HUAfoZFNoh31zxw== X-Received: by 10.80.144.48 with SMTP id b45mr2661921eda.127.1513026720689; Mon, 11 Dec 2017 13:12:00 -0800 (PST) Received: from gmail.com (535537FC.cm-6-6a.dynamic.ziggo.nl. [83.85.55.252]) by smtp.gmail.com with ESMTPSA id e46sm7400590edb.93.2017.12.11.13.11.59 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 11 Dec 2017 13:11:59 -0800 (PST) Date: Mon, 11 Dec 2017 22:11:59 +0100 To: PHP Internals Message-ID: <20171211211157.d7lj5vibpaaka4ji@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: NeoMutt/20171013 Subject: [RFC] Reproducible Builds Support From: jelle@vdwaa.nl (Jelle van der Waa) Hi all, Debian, Arch Linux and other distro's are trying to get full reproducible builds. There are some issues in PHP's codebase which makes builds unreproducible. Reprodicuble builds are currently reproduced in Arch Linux by building PHP twice, and in two different env's, varying hostname, system time, etc. [1] Once issue is the PHP_BUILD_DATE, which makes the build non-reproducible. I've made a PR which uses SOURCE_DATE_EPOCH which is set in the reprodiculbe build env. This should keep the current functionality intact, while adding support for reproducible builds. [2] [3] Another issue is the php_uname functions which contains the hostname, since the hostname is varied per build this makes it non-reproducible. This is caused by the following line: configure.ac:PHP_UNAME=`uname -a | xargs` required in: ext/standard/info.c: php_uname = PHP_UNAME; Which is there as fallback as the php.net documentation describes: "On some older UNIX platforms, it may not be able to determine the current OS information in which case it will revert to displaying the OS PHP was built on. This will only happen if your uname() library call either doesn't exist or doesn't work.". I would argue that this is strange unexpected behaviour, and maybe it should throw an exception instead? Or can it show only "Linux" as fallback? basically PHP_OS. Ideas? The last issue is phar.phar being non-reproducible of which I am not sure what the issue would be. I'm not sure how the binary data in the phar.phar is generated. [1] https://tests.reproducible-builds.org/archlinux/extra/php/php-7.2.0-2-x86_64.pkg.tar.xz.html [2] https://github.com/php/php-src/pull/2965 [3] https://reproducible-builds.org/specs/source-date-epoch/ Thanks, -- Jelle van der Waa Arch Linux Developer