get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/810572/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 810572,
    "url": "http://patchwork.ozlabs.org/api/patches/810572/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170906124900.17354-1-famz@redhat.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api",
        "name": "QEMU Development",
        "link_name": "qemu-devel",
        "list_id": "qemu-devel.nongnu.org",
        "list_email": "qemu-devel@nongnu.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170906124900.17354-1-famz@redhat.com>",
    "list_archive_url": null,
    "date": "2017-09-06T12:49:00",
    "name": "[v4] buildsys: Move crypto cflags/libs to per object variables",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "7f98f08c8b8bc34aeaad98993e9ce546ce257382",
    "submitter": {
        "id": 24872,
        "url": "http://patchwork.ozlabs.org/api/people/24872/?format=api",
        "name": "Fam Zheng",
        "email": "famz@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170906124900.17354-1-famz@redhat.com/mbox/",
    "series": [
        {
            "id": 1794,
            "url": "http://patchwork.ozlabs.org/api/series/1794/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=1794",
            "date": "2017-09-06T12:49:00",
            "name": "[v4] buildsys: Move crypto cflags/libs to per object variables",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/1794/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/810572/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/810572/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)",
            "ext-mx06.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com",
            "ext-mx06.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=famz@redhat.com"
        ],
        "Received": [
            "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xnNhg2njrz9ryk\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  6 Sep 2017 22:49:54 +1000 (AEST)",
            "from localhost ([::1]:36043 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dpZm9-0002Yt-UD\n\tfor incoming@patchwork.ozlabs.org; Wed, 06 Sep 2017 08:49:49 -0400",
            "from eggs.gnu.org ([2001:4830:134:3::10]:55675)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dpZlV-0002YL-38\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 08:49:13 -0400",
            "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <famz@redhat.com>) id 1dpZlQ-0004IZ-QT\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 08:49:09 -0400",
            "from mx1.redhat.com ([209.132.183.28]:48922)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <famz@redhat.com>) id 1dpZlQ-0004IH-HK\n\tfor qemu-devel@nongnu.org; Wed, 06 Sep 2017 08:49:04 -0400",
            "from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 5A758356D4\n\tfor <qemu-devel@nongnu.org>; Wed,  6 Sep 2017 12:49:03 +0000 (UTC)",
            "from lemon.redhat.com (ovpn-12-90.pek2.redhat.com [10.72.12.90])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 0AD266B577;\n\tWed,  6 Sep 2017 12:49:01 +0000 (UTC)"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com 5A758356D4",
        "From": "Fam Zheng <famz@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Date": "Wed,  6 Sep 2017 20:49:00 +0800",
        "Message-Id": "<20170906124900.17354-1-famz@redhat.com>",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.15",
        "X-Greylist": "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.30]);\n\tWed, 06 Sep 2017 12:49:03 +0000 (UTC)",
        "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]",
        "X-Received-From": "209.132.183.28",
        "Subject": "[Qemu-devel] [PATCH v4] buildsys: Move crypto cflags/libs to per\n\tobject variables",
        "X-BeenThere": "qemu-devel@nongnu.org",
        "X-Mailman-Version": "2.1.21",
        "Precedence": "list",
        "List-Id": "<qemu-devel.nongnu.org>",
        "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>",
        "List-Post": "<mailto:qemu-devel@nongnu.org>",
        "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>",
        "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>",
        "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org",
        "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"
    },
    "content": "This patch groups the crypto objects into a few .mo objects based on\nfunctional submodules, and moves inclusion conditions to *-objs\nvariables, then moves the global cflags/libs to the *-cflags and *-libs\nvariables.\n\nFor init.o and cipher.o, which may or may not need the library flags\ndepending on config, adding flags and libs unconditionally doesn't hurt,\nbecause if the library is not available, the variables are empty.  This\nmakes less code.\n\nSigned-off-by: Fam Zheng <famz@redhat.com>\n\n---\n\nv4: Merge into one patch which is supposedly easier to manage and\nreview, and use .mo appraoch to avoid $(foreach) and $(eval) magics.\nFixes the gcrypt patch typo in v3 while doing this.\n---\n configure              | 15 +++++-------\n crypto/Makefile.objs   | 66 ++++++++++++++++++++++++++++++++++++--------------\n tests/Makefile.include | 10 ++++----\n 3 files changed, 59 insertions(+), 32 deletions(-)",
    "diff": "diff --git a/configure b/configure\nindex fb7e34a901..b37cd54bda 100755\n--- a/configure\n+++ b/configure\n@@ -2472,9 +2472,6 @@ if test \"$gnutls\" != \"no\"; then\n     if gnutls_works; then\n         gnutls_cflags=$($pkg_config --cflags gnutls)\n         gnutls_libs=$($pkg_config --libs gnutls)\n-        libs_softmmu=\"$gnutls_libs $libs_softmmu\"\n-        libs_tools=\"$gnutls_libs $libs_tools\"\n-\tQEMU_CFLAGS=\"$QEMU_CFLAGS $gnutls_cflags\"\n         gnutls=\"yes\"\n \n \t# gnutls_rnd requires >= 2.11.0\n@@ -2568,9 +2565,6 @@ if test \"$gcrypt\" != \"no\"; then\n         then\n             gcrypt_libs=\"$gcrypt_libs -lgpg-error\"\n         fi\n-        libs_softmmu=\"$gcrypt_libs $libs_softmmu\"\n-        libs_tools=\"$gcrypt_libs $libs_tools\"\n-        QEMU_CFLAGS=\"$QEMU_CFLAGS $gcrypt_cflags\"\n         gcrypt=\"yes\"\n         if test -z \"$nettle\"; then\n            nettle=\"no\"\n@@ -2616,9 +2610,6 @@ if test \"$nettle\" != \"no\"; then\n         nettle_cflags=$($pkg_config --cflags nettle)\n         nettle_libs=$($pkg_config --libs nettle)\n         nettle_version=$($pkg_config --modversion nettle)\n-        libs_softmmu=\"$nettle_libs $libs_softmmu\"\n-        libs_tools=\"$nettle_libs $libs_tools\"\n-        QEMU_CFLAGS=\"$QEMU_CFLAGS $nettle_cflags\"\n         nettle=\"yes\"\n \n         cat > $TMPC << EOF\n@@ -5713,12 +5704,16 @@ fi\n echo \"CONFIG_TLS_PRIORITY=\\\"$tls_priority\\\"\" >> $config_host_mak\n if test \"$gnutls\" = \"yes\" ; then\n   echo \"CONFIG_GNUTLS=y\" >> $config_host_mak\n+  echo \"GNUTLS_CFLAGS=$gnutls_cflags\" >> $config_host_mak\n+  echo \"GNUTLS_LIBS=$gnutls_libs\" >> $config_host_mak\n fi\n if test \"$gnutls_rnd\" = \"yes\" ; then\n   echo \"CONFIG_GNUTLS_RND=y\" >> $config_host_mak\n fi\n if test \"$gcrypt\" = \"yes\" ; then\n   echo \"CONFIG_GCRYPT=y\" >> $config_host_mak\n+  echo \"GCRYPT_CFLAGS=$gcrypt_cflags\" >> $config_host_mak\n+  echo \"GCRYPT_LIBS=$gcrypt_libs\" >> $config_host_mak\n   if test \"$gcrypt_hmac\" = \"yes\" ; then\n     echo \"CONFIG_GCRYPT_HMAC=y\" >> $config_host_mak\n   fi\n@@ -5732,6 +5727,8 @@ if test \"$nettle\" = \"yes\" ; then\n   if test \"$nettle_kdf\" = \"yes\" ; then\n     echo \"CONFIG_NETTLE_KDF=y\" >> $config_host_mak\n   fi\n+  echo \"NETTLE_CFLAGS=$nettle_cflags\" >> $config_host_mak\n+  echo \"NETTLE_LIBS=$nettle_libs\" >> $config_host_mak\n fi\n if test \"$tasn1\" = \"yes\" ; then\n   echo \"CONFIG_TASN1=y\" >> $config_host_mak\ndiff --git a/crypto/Makefile.objs b/crypto/Makefile.objs\nindex 2b99e08062..a3ff1417c7 100644\n--- a/crypto/Makefile.objs\n+++ b/crypto/Makefile.objs\n@@ -1,29 +1,53 @@\n crypto-obj-y = init.o\n-crypto-obj-y += hash.o\n-crypto-obj-$(CONFIG_NETTLE) += hash-nettle.o\n-crypto-obj-$(if $(CONFIG_NETTLE),n,$(CONFIG_GCRYPT)) += hash-gcrypt.o\n-crypto-obj-$(if $(CONFIG_NETTLE),n,$(if $(CONFIG_GCRYPT),n,y)) += hash-glib.o\n-crypto-obj-y += hmac.o\n-crypto-obj-$(CONFIG_NETTLE) += hmac-nettle.o\n-crypto-obj-$(CONFIG_GCRYPT_HMAC) += hmac-gcrypt.o\n-crypto-obj-$(if $(CONFIG_NETTLE),n,$(if $(CONFIG_GCRYPT_HMAC),n,y)) += hmac-glib.o\n+crypto-obj-y += hash.mo\n+\n+hash.mo-objs := hash.o \\\n+\t$(if $(CONFIG_NETTLE), \\\n+\t\thash-nettle.o, \\\n+\t\t$(if $(CONFIG_GCRYPT), hash-gcrypt.o, hash-glib.o))\n+hash.mo-cflags := $(NETTLE_CFLAGS) $(GCRYPT_CFLAGS)\n+hash.mo-libs := $(NETTLE_LIBS) $(GCRYPT_LIBS)\n+\n+crypto-obj-y += hmac.mo\n+hmac.mo-objs := hmac.o \\\n+\t$(if $(CONFIG_NETTLE), \\\n+\t\thmac-nettle.o, \\\n+\t\t$(if $(CONFIG_GCRYPT_HMAC), hmac-gcrypt.o, hmac-glib.o))\n+hmac.mo-cflags := $(NETTLE_CFLAGS) $(GCRYPT_CFLAGS)\n+hmac.mo-libs := $(NETTLE_LIBS) $(GCRYPT_LIBS)\n+\n crypto-obj-y += aes.o\n crypto-obj-y += desrfb.o\n crypto-obj-y += cipher.o\n crypto-obj-$(CONFIG_AF_ALG) += afalg.o\n crypto-obj-$(CONFIG_AF_ALG) += cipher-afalg.o\n crypto-obj-$(CONFIG_AF_ALG) += hash-afalg.o\n-crypto-obj-y += tlscreds.o\n-crypto-obj-y += tlscredsanon.o\n-crypto-obj-y += tlscredsx509.o\n-crypto-obj-y += tlssession.o\n+\n+crypto-obj-y += tls.mo\n+tls.mo-objs := \\\n+\ttlscreds.o \\\n+\ttlscredsanon.o \\\n+\ttlscredsx509.o \\\n+\ttlssession.o\n+tls.mo-cflags := $(GNUTLS_CFLAGS)\n+tls.mo-libs := $(GNUTLS_LIBS)\n+\n crypto-obj-y += secret.o\n-crypto-obj-$(CONFIG_GCRYPT) += random-gcrypt.o\n-crypto-obj-$(if $(CONFIG_GCRYPT),n,$(CONFIG_GNUTLS_RND)) += random-gnutls.o\n-crypto-obj-$(if $(CONFIG_GCRYPT),n,$(if $(CONFIG_GNUTLS_RND),n,y)) += random-platform.o\n-crypto-obj-y += pbkdf.o\n-crypto-obj-$(CONFIG_NETTLE_KDF) += pbkdf-nettle.o\n-crypto-obj-$(if $(CONFIG_NETTLE_KDF),n,$(CONFIG_GCRYPT_KDF)) += pbkdf-gcrypt.o\n+\n+crypto-obj-y += random.mo\n+random.mo-objs := \\\n+\t$(if $(CONFIG_GCRYPT), random-gcrypt.o, \\\n+\t\t$(if $(CONFIG_GNUTLS_RND), random-gnutls.o, random-platform.o))\n+random.mo-cflags := $(GNUTLS_CFLAGS) $(GCRYPT_CFLAGS)\n+random.mo-libs := $(GNUTLS_LIBS) $(GCRYPT_LIBS)\n+\n+crypto-obj-y += pbkdf.mo\n+pbkdf.mo-objs := pbkdf.o \\\n+\t$(if $(CONFIG_NETTLE_KDF), pbkdf-nettle.o, \\\n+\t\t$(if $(CONFIG_GCRYPT_KDF), pbkdf-gcrypt.o))\n+pbkdf.mo-cflags := $(NETTLE_CFLAGS) $(GCRYPT_CFLAGS)\n+pbkdf.mo-libs := $(NETTLE_LIBS) $(GCRYPT_LIBS)\n+\n crypto-obj-y += ivgen.o\n crypto-obj-y += ivgen-essiv.o\n crypto-obj-y += ivgen-plain.o\n@@ -34,6 +58,12 @@ crypto-obj-y += block.o\n crypto-obj-y += block-qcow.o\n crypto-obj-y += block-luks.o\n \n+init.o-cflags := $(GNUTLS_CFLAGS) $(GCRYPT_CFLAGS)\n+init.o-libs := $(GNUTLS_LIBS) $(GCRYPT_LIBS)\n+\n+cipher.o-cflags := $(NETTLE_CFLAGS) $(GCRYPT_CFLAGS)\n+cipher.o-libs := $(NETTLE_LIBS) $(GCRYPT_LIBS)\n+\n # Let the userspace emulators avoid linking gnutls/etc\n crypto-aes-obj-y = aes.o\n \ndiff --git a/tests/Makefile.include b/tests/Makefile.include\nindex fae5715e9c..d46c22d1ec 100644\n--- a/tests/Makefile.include\n+++ b/tests/Makefile.include\n@@ -677,15 +677,15 @@ tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-c\n tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y)\n tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y)\n \n-tests/crypto-tls-x509-helpers.o-cflags := $(TASN1_CFLAGS)\n-tests/crypto-tls-x509-helpers.o-libs := $(TASN1_LIBS)\n-tests/pkix_asn1_tab.o-cflags := $(TASN1_CFLAGS)\n+tests/crypto-tls-x509-helpers.o-cflags := $(TASN1_CFLAGS) $(GNUTLS_CFLAGS)\n+tests/crypto-tls-x509-helpers.o-libs := $(TASN1_LIBS) $(GNUTLS_LIBS)\n+tests/pkix_asn1_tab.o-cflags := $(TASN1_CFLAGS) $(GNUTLS_LIBS)\n \n-tests/test-crypto-tlscredsx509.o-cflags := $(TASN1_CFLAGS)\n+tests/test-crypto-tlscredsx509.o-cflags := $(TASN1_CFLAGS) $(GNUTLS_CFLAGS)\n tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \\\n \ttests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)\n \n-tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS)\n+tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS) $(GNUTLS_CFLAGS)\n tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \\\n \ttests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y)\n tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)\n",
    "prefixes": [
        "v4"
    ]
}