From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 17 09:18:46 2019 Received: (at submit) by debbugs.gnu.org; 17 Dec 2019 14:18:46 +0000 Received: from localhost ([127.0.0.1]:40875 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ihDgU-0003nA-GQ for submit@debbugs.gnu.org; Tue, 17 Dec 2019 09:18:46 -0500 Received: from lists.gnu.org ([209.51.188.17]:46184) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ihDgT-0003n3-56 for submit@debbugs.gnu.org; Tue, 17 Dec 2019 09:18:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53851) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ihDgR-0008L2-4W for guix-patches@gnu.org; Tue, 17 Dec 2019 09:18:44 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_MED, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ihDgP-00080h-7B for guix-patches@gnu.org; Tue, 17 Dec 2019 09:18:42 -0500 Received: from mailrelay.tugraz.at ([129.27.2.202]:37029) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ihDgO-0007hW-HQ for guix-patches@gnu.org; Tue, 17 Dec 2019 09:18:41 -0500 Received: from nijino.local (213-240-64-42.hdsl.highway.telekom.at [213.240.64.42]) by mailrelay.tugraz.at (Postfix) with ESMTPSA id 47cgGz5fPWz3wYB for ; Tue, 17 Dec 2019 15:18:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tugraz.at; s=mailrelay; t=1576592315; bh=/rn7p/S+N8X15E0RfwSAPCkzZjwUMtV5cWFUk5UwMU0=; h=Subject:From:To:Date; b=lBlXXp/+k+TBodNm/xg9QERqepvyERRebB5E6NAN5lnOBSGsYmEXud1KJa6N0Gf1e O/D8vhpsU0JceSdAD0wH69izKc5CaGZxc2A9PJ5zxHCA96Ou9e3O0itsweieEdRzzT AwGznt3JXq6pAYoDvo/EVQhj4V625QG5O7AoOri4= Message-ID: Subject: [PATCH] Parallelize `guix package` From: Leo Prikler To: guix-patches@gnu.org Date: Tue, 17 Dec 2019 15:18:44 +0100 Content-Type: multipart/mixed; boundary="=-MKoVmQLaz2hzdn/NcZsK" User-Agent: Evolution 3.32.4 MIME-Version: 1.0 X-TUG-Backscatter-control: bt4lQm5Tva3SBgCuw0EnZw X-Scanned-By: MIMEDefang 2.74 on 129.27.10.117 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 129.27.2.202 X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --=-MKoVmQLaz2hzdn/NcZsK Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Hi Guix! Yesterday I had an interesting conversation on IRC about the behaviour of multiple `guix package` processes running in parallel. Specifically, when two transactions target the same profile (usually /var/guix/profiles/per-user/$USER/guix-profile) at the same time, one of them will fail to claim the lock and abort. 0001 makes it so that the process waits for the lock. 0002 makes it so that packages specified via -i can be built in parallel. Regards, Leo --=-MKoVmQLaz2hzdn/NcZsK Content-Disposition: attachment; filename="0001-guix-Wait-for-file-lock.patch" Content-Type: text/x-patch; name="0001-guix-Wait-for-file-lock.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmOTkwZmVlMjVlNGQ2MmZmZmY0ZDZlZTg5YmUwNWIyNTYzODY1MzI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gUHJpa2xlciA8bGVvLnByaWtsZXJAc3R1ZGVudC50dWdy YXouYXQ+CkRhdGU6IFR1ZSwgMTcgRGVjIDIwMTkgMTI6NTM6MjEgKzAxMDAKU3ViamVjdDogW1BB VENIIDEvMl0gZ3VpeDogV2FpdCBmb3IgZmlsZSBsb2NrLgoKKiBndWl4L3VpLnNjbTogQWRqdXN0 IGltcG9ydHMuCih3aXRoLXByb2ZpbGUtbG9jayk6IFVzZSBgd2l0aC1maWxlLWxvY2snIGluc3Rl YWQgb2YgYHdpdGgtZmlsZS1sb2NrL25vLXdhaXQnLgoqIGd1aXgvc2NyaXB0cy9wYWNrYWdlLnNj bTogRHJvcCB1bnVzZWQgaW1wb3J0LgoocHJvY2Vzcy1hY3Rpb25zKTogUHJpbnQgbWVzc2FnZSB3 aGlsZSB3YWl0aW5nIG9uIGxvY2suCi0tLQogZ3VpeC9zY3JpcHRzL3BhY2thZ2Uuc2NtIHwgMyAr LS0KIGd1aXgvdWkuc2NtICAgICAgICAgICAgICB8IDQgKystLQogMiBmaWxlcyBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ3VpeC9zY3JpcHRz L3BhY2thZ2Uuc2NtIGIvZ3VpeC9zY3JpcHRzL3BhY2thZ2Uuc2NtCmluZGV4IDkyYzZlMzQxOTQu LjIwMmE2ZDY0NzAgMTAwNjQ0Ci0tLSBhL2d1aXgvc2NyaXB0cy9wYWNrYWdlLnNjbQorKysgYi9n dWl4L3NjcmlwdHMvcGFja2FnZS5zY20KQEAgLTQyLDggKzQyLDYgQEAKICAgIzphdXRvbG9hZCAg IChndWl4IHN0b3JlIHJvb3RzKSAoZ2Mtcm9vdHMpCiAgICM6dXNlLW1vZHVsZSAoKGd1aXggYnVp bGQgdXRpbHMpCiAgICAgICAgICAgICAgICAgIzpzZWxlY3QgKGRpcmVjdG9yeS1leGlzdHM/IG1r ZGlyLXApKQotICAjOnVzZS1tb2R1bGUgKChndWl4IGJ1aWxkIHN5c2NhbGxzKQotICAgICAgICAg ICAgICAgICM6c2VsZWN0ICh3aXRoLWZpbGUtbG9jay9uby13YWl0KSkKICAgIzp1c2UtbW9kdWxl IChpY2UtOSBmb3JtYXQpCiAgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCiAgICM6dXNlLW1v ZHVsZSAoaWNlLTkgcmVnZXgpCkBAIC04NjYsNiArODY0LDcgQEAgcHJvY2Vzc2VkLCAjZiBvdGhl cndpc2UuIgogCiAgIDs7IEZpcnN0LCBhY3F1aXJlIGEgbG9jayBvbiB0aGUgcHJvZmlsZSwgdG8g ZW5zdXJlIG9ubHkgb25lIGd1aXggcHJvY2VzcwogICA7OyBpcyBtb2RpZnlpbmcgaXQgYXQgYSB0 aW1lLgorICAoZm9ybWF0ICN0ICJXYWl0aW5nIGZvciBsb2NrIG9uIH5hLi4ufiUiIHByb2ZpbGUp CiAgICh3aXRoLXByb2ZpbGUtbG9jayBwcm9maWxlCiAgICAgOzsgVGhlbiwgcHJvY2VzcyByb2xs LWJhY2tzLCBnZW5lcmF0aW9uIHJlbW92YWxzLCBldGMuCiAgICAgKGZvci1lYWNoIChtYXRjaC1s YW1iZGEKZGlmZiAtLWdpdCBhL2d1aXgvdWkuc2NtIGIvZ3VpeC91aS5zY20KaW5kZXggNTQwNjcx ZjNkZC4uMDYwYzRlNzNmMSAxMDA2NDQKLS0tIGEvZ3VpeC91aS5zY20KKysrIGIvZ3VpeC91aS5z Y20KQEAgLTQ4LDcgKzQ4LDcgQEAKICAgICAgICAgICAgICAgICAjOnNlbGVjdCAobGljZW5zZT8g bGljZW5zZS1uYW1lIGxpY2Vuc2UtdXJpKSkKICAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBz eXNjYWxscykKICAgICAgICAgICAgICAgICAjOnNlbGVjdCAoZnJlZS1kaXNrLXNwYWNlIHRlcm1p bmFsLWNvbHVtbnMgdGVybWluYWwtcm93cwotICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRo LWZpbGUtbG9jay9uby13YWl0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aC1maWxl LWxvY2spKQogICAjOnVzZS1tb2R1bGUgKChndWl4IGJ1aWxkIHV0aWxzKQogICAgICAgICAgICAg ICAgIDs7IFhYWDogQWxsIHdlIG5lZWQgYXJlIHRoZSBiaW5kaW5ncyByZWxhdGVkIHRvCiAgICAg ICAgICAgICAgICAgOzsgJyZpbnZva2UtZXJyb3InLiAgSG93ZXZlciwgdG8gd29yayBhcm91bmQg dGhlIGJ1ZyBkZXNjcmliZWQKQEAgLTE2ODAsNyArMTY4MCw3IEBAIERVUkFUSU9OLVJFTEFUSU9O IHdpdGggdGhlIGN1cnJlbnQgdGltZS4iCiAoZGVmaW5lLXN5bnRheC1ydWxlICh3aXRoLXByb2Zp bGUtbG9jayBwcm9maWxlIGV4cCAuLi4pCiAgICJHcmFiIFBST0ZJTEUncyBsb2NrIGFuZCBldmFs dWF0ZSBFWFAuLi4gIENhbGwgJ2xlYXZlJyBpZiB0aGUgbG9jayBpcwogYWxyZWFkeSB0YWtlbi4i Ci0gICh3aXRoLWZpbGUtbG9jay9uby13YWl0IChwcm9maWxlLWxvY2stZmlsZSBwcm9maWxlKQor ICAod2l0aC1maWxlLWxvY2sgKHByb2ZpbGUtbG9jay1maWxlIHByb2ZpbGUpCiAgICAgKGN1dCBw cm9maWxlLWxvY2staGFuZGxlciBwcm9maWxlIDwuLi4+KQogICAgIGV4cCAuLi4pKQogCi0tIAoy LjI0LjEKCg== --=-MKoVmQLaz2hzdn/NcZsK Content-Disposition: attachment; filename="0002-guix-Build-to-be-installed-packages-in-parallel.patch" Content-Type: text/x-patch; name="0002-guix-Build-to-be-installed-packages-in-parallel.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzMzY2OTJkZjE1ZTc3ZjlkOTA2MTlkMGZlNjBlODY0YzRkMmZiMzdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gUHJpa2xlciA8bGVvLnByaWtsZXJAc3R1ZGVudC50dWdy YXouYXQ+CkRhdGU6IFR1ZSwgMTcgRGVjIDIwMTkgMTQ6MDQ6MTIgKzAxMDAKU3ViamVjdDogW1BB VENIIDIvMl0gZ3VpeDogQnVpbGQgdG8gYmUgaW5zdGFsbGVkIHBhY2thZ2VzIGluIHBhcmFsbGVs LgoKKiBndWl4L3NjcmlwdHMvcGFja2FnZS5zY20gKG9wdGlvbnMtPmJ1aWxkYWJsZSk6IE5ldyBw cm9jZWR1cmUuCihwcm9jZXNzLWFjdGlvbnMpOiBCdWlsZCBwYWNrYWdlcyBiZWZvcmUgYWNxdWly aW5nIHByb2ZpbGUgbG9jay4KLS0tCiBndWl4L3NjcmlwdHMvcGFja2FnZS5zY20gfCAyMiArKysr KysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2d1aXgvc2NyaXB0cy9wYWNrYWdlLnNjbSBiL2d1aXgv c2NyaXB0cy9wYWNrYWdlLnNjbQppbmRleCAyMDJhNmQ2NDcwLi4xMjc4ZDFhNjVmIDEwMDY0NAot LS0gYS9ndWl4L3NjcmlwdHMvcGFja2FnZS5zY20KKysrIGIvZ3VpeC9zY3JpcHRzL3BhY2thZ2Uu c2NtCkBAIC01ODcsNiArNTg3LDE5IEBAIHRoZSByZXN1bHRpbmcgbWFuaWZlc3QgZW50cnkuIgog ICAocGFja2FnZS0+bWFuaWZlc3QtZW50cnkgcGFja2FnZSBvdXRwdXQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICM6cHJvcGVydGllcyAocHJvdmVuYW5jZS1wcm9wZXJ0aWVzIHBhY2thZ2Up KSkKIAorKGRlZmluZSAob3B0aW9ucy0+YnVpbGRhYmxlIG9wdHMpCisgIChmaWx0ZXItbWFwICht YXRjaC1sYW1iZGEKKyAgICAgICAgICAgICAgICAoKCdpbnN0YWxsIC4gKD8gcGFja2FnZT8gcCkp CisgICAgICAgICAgICAgICAgIHApCisgICAgICAgICAgICAgICAgKCgnaW5zdGFsbCAuICg/IHN0 cmluZz8gc3BlYykpCisgICAgICAgICAgICAgICAgIChpZiAoc3RvcmUtcGF0aD8gc3BlYykKKyAg ICAgICAgICAgICAgICAgICAgICNmIDs7IGFzc3VtZSBhbHJlYWR5IGludGVybmVkCisgICAgICAg ICAgICAgICAgICAgICAoc3BlY2lmaWNhdGlvbi0+cGFja2FnZSBzcGVjKSkpCisgICAgICAgICAg ICAgICAgKCgnaW5zdGFsbCAuIG9iaikKKyAgICAgICAgICAgICAgICAgKGxlYXZlIChHXyAiY2Fu bm90IGJ1aWxkIG5vbi1wYWNrYWdlIG9iamVjdDogfnN+JSIpCisgICAgICAgICAgICAgICAgICAg ICAgICBvYmopKQorICAgICAgICAgICAgICAgIChfICNmKSkKKyAgICAgICAgICAgICAgb3B0cykp CiAKIChkZWZpbmUgKG9wdGlvbnMtPmluc3RhbGxhYmxlIG9wdHMgbWFuaWZlc3QgdHJhbnNhY3Rp b24pCiAgICJHaXZlbiBNQU5JRkVTVCwgdGhlIGN1cnJlbnQgbWFuaWZlc3QsIGFuZCBPUFRTLCB0 aGUgcmVzdWx0IG9mICdhcmdzLWZvbGQnLApAQCAtODYxLDggKzg3NCwxNSBAQCBwcm9jZXNzZWQs ICNmIG90aGVyd2lzZS4iCiAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS12ZXJzaW9uIGl0 ZW0pCiAgICAgICAgICAgICAgICAgICAgICAobWFuaWZlc3QtZW50cnktdmVyc2lvbiBlbnRyeSkp KSkpKQogCisgIDs7IEZpcnN0LCBwcm9jZXNzIGluc3RhbGxhdGlvbnMsIGFzIHRoZXNlIGNhbiBi ZSBoYW5kbGVkIGluIHBhcmFsbGVsLgorICAodW5sZXNzIGRyeS1ydW4/CisgICAgKGxldCogKChk cnYgKG1hcCAoY29tcG9zZSAobGFtYmRhIChkcnYpIChkcnYgc3RvcmUpKSBwYWNrYWdlLT5kZXJp dmF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgKG9wdGlvbnMtPmJ1aWxkYWJsZSBvcHRzKSkp KQorICAgICAgKHNob3ctd2hhdC10by1idWlsZCBzdG9yZSBkcnYKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIzp1c2Utc3Vic3RpdHV0ZXM/IHN1YnN0aXR1dGVzPykKKyAgICAgIChidWlsZC1k ZXJpdmF0aW9ucyBzdG9yZSBkcnYpKSkKIAotICA7OyBGaXJzdCwgYWNxdWlyZSBhIGxvY2sgb24g dGhlIHByb2ZpbGUsIHRvIGVuc3VyZSBvbmx5IG9uZSBndWl4IHByb2Nlc3MKKyAgOzsgTm93LCBh Y3F1aXJlIGEgbG9jayBvbiB0aGUgcHJvZmlsZSwgdG8gZW5zdXJlIG9ubHkgb25lIGd1aXggcHJv Y2VzcwogICA7OyBpcyBtb2RpZnlpbmcgaXQgYXQgYSB0aW1lLgogICAoZm9ybWF0ICN0ICJXYWl0 aW5nIGZvciBsb2NrIG9uIH5hLi4ufiUiIHByb2ZpbGUpCiAgICh3aXRoLXByb2ZpbGUtbG9jayBw cm9maWxlCi0tIAoyLjI0LjEKCg== --=-MKoVmQLaz2hzdn/NcZsK--