From patchwork Sun Feb 5 11:40:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Iooss X-Patchwork-Id: 9556057 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A7D97604DA for ; Sun, 5 Feb 2017 11:42:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8E02A26E39 for ; Sun, 5 Feb 2017 11:42:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8168B27C0C; Sun, 5 Feb 2017 11:42:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from emsm-gh1-uea10.nsa.gov (emsm-gh1-uea10.nsa.gov [8.44.101.8]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 178A126E39 for ; Sun, 5 Feb 2017 11:42:21 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.33,338,1477958400"; d="scan'208";a="3542203" IronPort-PHdr: =?us-ascii?q?9a23=3ACItpWh0xMNx1wMYesmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?sewVLfvxwZ3uMQTl6Ol3ixeRBMOAuq4C1Led6PiocFdDyK7JiGoFfp1IWk1Nou?= =?us-ascii?q?QttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZr?= =?us-ascii?q?KeTpAI7SiNm82/yv95HJbQhFgDWwbalwIRi2ogncuNUaipZ+J6gszRfEvmFGcP?= =?us-ascii?q?lMy2NyIlKTkRf85sOu85Nm7i9dpfEv+dNeXKvjZ6g3QqBWAzogM2Au+c3krgLD?= =?us-ascii?q?QheV5nsdSWoZjBxFCBXY4R7gX5fxtiz6tvdh2CSfIMb7Q6w4VSik4qx2RhDoki?= =?us-ascii?q?MHPCMn/m/RhMJ7kaZXrAugqhB6xYPffYObO+dkfq7Ffd0UW3dPUMhSWSJGGoOx?= =?us-ascii?q?bZYDAuQOMulEoIfyuUAOoACiBQSuHu7j1iVFimPo0aA8zu8vERvG3AslH98WqH?= =?us-ascii?q?rUrcn6NKAWUe+v16nD0DbNb/RR2Tfm84jDbxcsofeNXb1sdsrRzVMgFxjfglWR?= =?us-ascii?q?rozlOCiV1v8Wvmie4OdhWviji2k9qwF+uzWiwNonhIfOhoIQ0F/E9CN5zZ46Jd?= =?us-ascii?q?25VE57YcOkH4BNtyGBKYR2WN8tQ2ZuuCYm1LIGv4K7cDIWx5Qgwh7Tc+CHc5KS?= =?us-ascii?q?7RL9VeaROi50i25keL6lgBay60egxvXzVsm1zFZKrjdFncLWun8R0BzT786KQe?= =?us-ascii?q?Z+8Ee5wTuDyg/e5+5eLU00iKbXMYAtz7EumpYJrEjPBi37lUfsgKOLeEgp9PKk?= =?us-ascii?q?5/r7brjnvJOROZF4hwfjOao0gMO/G/43Mg0WUmie/uSzyaPs8FXiQLVPkv02iq?= =?us-ascii?q?7ZsI3GJcgDpq62HQtV0oE75hajFTimytUYnWQcLF5fZBKGj5TmO1HJIPziC/ew?= =?us-ascii?q?n0+snytxy/DDP73hBo3BLnnFkLj/YbZw81NQxQU8wNxF559YF6sNLOz8V0Pvrt?= =?us-ascii?q?DUEwc1MwmuzObmDNV92JkeWWWKAqKBK6Pdr1uI5uMpI+mRa44ZoS3yK/845/7o?= =?us-ascii?q?kXA2h0QdcLK13ZoXdH+4HvNmL1+fYXr3mNgNC2gKvg0gTODykl2NTSZTZ2quX6?= =?us-ascii?q?I7/jw7CoWmDYHZSYCxgLyOxiG7E4ZUZmBBDFCMFG3nd56YW/gSciKSOdVtkjse?= =?us-ascii?q?VbiuU4Uhzw2htBfmy7p7KerZ4i8YtZD529dp5O3TjhYy9Tp1D8SDyGyNQWV0nn?= =?us-ascii?q?4HRjAtwaB/p1B9ykqZ3ah/mfxYGsRZ5+lVXQciKZ7c0+t6BsjqWg3fZdiGVlCm?= =?us-ascii?q?QtS6ATE2Vd8xwsEBbFhjFNm4iRDDxSWqCacPl7OXHJw07r7c33/pKslgzHbG0q?= =?us-ascii?q?8hgEQ4TctLNG2rnbRw+BbJB47OiUmZkLyqdasE1i7X6GiD1XaOvF1fUANoTKrF?= =?us-ascii?q?QWoQZlHNoNvl4UPCSqOhBq48Mgtd08KCLLVFasHxh1VcWPjjIMjeY362m2qoBB?= =?us-ascii?q?aIwK+MY5Tue2oD2SXSFlQEkxoT/HudMgg+Hjmuo2TbDDN0FFLvZ1jj8e5xqX+h?= =?us-ascii?q?SU801Q6KZVV717Wp4h4VmeCcS/QL07MEuSYhrDN0EU2439LSEtaApgxhcL9aYd?= =?us-ascii?q?wn+ldH1mPZtxJjMZC6KaBtmEIeeRxtv0zyzxV3FplAkc8yoXw01Ap9M7iY0FJa?= =?us-ascii?q?dz6DxZD/IKfXKmjp/BC3b67ZwE3R38iM9qcI8vQ4pE3pvBu1GUo673Vnz95V3m?= =?us-ascii?q?OS55XLCAoSVIz+Ulws+hh0ub7Vfy4955nO2n10K6m0tT3C1Mw1C+s50BqgeM1f?= =?us-ascii?q?MKycHg/oD8IaH9SuKPAtm1WxYBIEJvpd9KgoMMOnbPuLw6urPP5hnD6/lmRG7p?= =?us-ascii?q?t93liL9ypmRe7Cx4wFzO2A3gubSzf8i0+sssPtloBHYjESA3GyySv+C45SYa1y?= =?us-ascii?q?YJwHCWC0I8243t9+nYLiW2ZE9F6/AFMLwNWmdgeIb1z8wwJQz18arma7liu91T?= =?us-ascii?q?B0lCsprqWH1izU3+vibAYHOnJMRGR6kVjjO4y0gM4BXEi0bwkpkwCo5V3myKha?= =?us-ascii?q?uqt/KXXTQUZScCTsKWFtTLewvKKYY8FT8JMorTlXUOOkbFCaVLH9px8a0yT4Em?= =?us-ascii?q?ta2TA7azaqupDjkBBgj2KdNnlzpmLDec5s3Rff+MDcRflJ0zodSil4kz7XBkOg?= =?us-ascii?q?P9Sy5tWUkZDDs+67V227UJ1fay/rwp2ctCGj/21lHQW/n+yvmt3gCQU73zX019?= =?us-ascii?q?12VSrWthb8eZLm17qkPuJ9ZUZoGVr859B9GoFknYs6nIsQ1mQChpWJ4XoHln/+?= =?us-ascii?q?MclG1q3jbXoCXzoLzsXJ7wji3U1sMmiGx5nlVnmHxMtuecW6aHsM2i0h98BKFL?= =?us-ascii?q?uU7LtckCtzo1q4qQbRbuZmnjoG0/Qh9mQag+YTtAoq1CWdDagYHVNEMiz0ixSI?= =?us-ascii?q?89e+ob1JZGaubbewyE1+ncq7AL6eogFcX3D5epg5EC9078V/NkjD0Gf06o3+f9?= =?us-ascii?q?nQd90TvAWOkxjcl+hVNI4xlv0SiCpjOGL9pmElx/cgjRNw2ZG6vY6HK3hi/a+i?= =?us-ascii?q?GR5YLjz1Z8US+j7xlqZShMCW0J6zHp95ADUEQIPoTe60EDIVrfnnLQGOEDk4qn?= =?us-ascii?q?iFA7rQAQif6Ul9onLUDpCkK2qXKGMezdV4SxmXPFZfjxwMXDUmgp45ERinxNT7?= =?us-ascii?q?f0dk4jAd/ET3pgFXxeJvMxn/TmDfpAGzZzcxVJSfKh1W4R1Y60fTL8Oe8vp5Hz?= =?us-ascii?q?tE8Z25sAyNNmubahxLDW4XXEyEHEvuPrqw6tnG6OiYAPSxL+fUbbWJs+xeWO+C?= =?us-ascii?q?xYiz3Yt+4zaMKsKPM2F6D/Ihx0pDWW52G9zDlDUJVywYiTjNYtWGpBen5CJ3tN?= =?us-ascii?q?u//O7wWALo+IuPEaddPsth+xCxm6eDOPCfiDx/KTlGypMG3WXIx6QH3F4OlyFu?= =?us-ascii?q?cCGgEaoGtSHQV6/QhKlXAAMbay9pMstH8b481BFXOcHHktP1yqJ4jvktBlddT1?= =?us-ascii?q?Phh8WpaNcWLGG8KFPGBF+HNLqcKj3N2c33Zrm8SbJIhuVOqxKwoSqbE1PkPjmb?= =?us-ascii?q?lDnoVxSvPv9XgSGeOxxeto+9fQhxCWj/TNLmbRi7P8FtgT0w37I0mmvANXQAPj?= =?us-ascii?q?hkb0NNsrqQ4DtWgvplHWxB8n1lLeyfliaX8ebXN5EWseFxDSRsjeJa53Y6xKVJ?= =?us-ascii?q?4yFYXvB1nzHSrtF2qVG8juaP0iZnUAZJqjtTmY2Lu19tNL7E+ZlGQ3nI5hUN7X?= =?us-ascii?q?+fCx4SvdtqFsXvu7xMytjIjK/zMipN/M/P8MsTAsjVJ9iLMHw/Phr1ADTUFhcK?= =?us-ascii?q?TSa3NWHDgExQiOuS+mebr5Qgr5jjgp4OSrhbVVEuDPwVFkFlEMYFIJdtUTMuia?= =?us-ascii?q?Sbg9IQ5XqisBnRQ91Xvp7dVv2MHPrvMyyWjb9YZxsP2rP1Np4cOZH+20B4bVl6?= =?us-ascii?q?hovKEVLKXd9Rui1hchM0oEJV/Xh4VG08wVrlahu27X8dFP60hAU2ihdwYeQs8j?= =?us-ascii?q?fj+VE3KUbLpCQqlEk9g9LlgSqecDTpNqe/QZlWCzbot0g2Kp70Xh11YhOokkxr?= =?us-ascii?q?LjfLXaxRgqB7dW9xiw/cpIFPFuRGQa1AfR8Qw+uYZ+8x3VRArSWnxk9G5ezfBZ?= =?us-ascii?q?tkigQqbYamr2hc1AJ7cN41OavQKbJSwVhRiaKOuSmo2/sszwAAPEkN8XmdeCgS?= =?us-ascii?q?tEwPLLkmKDKi/vZw5gyahztDZG8MWuIwrfJl7Ew9JfqPwjnn075bNE+xMemfIL?= =?us-ascii?q?mYu2jEjsGIRVwx2lkPl0lf8rh8yd0jfFaMV0Az0LuREAwENdbFKQFQdcZS7n/T?= =?us-ascii?q?fCeQvuXL2p11JYK9Gf7rTeKVqKkUhUekExozEIQX8sQNBJ+s31/ELc3/Nr4K1Q?= =?us-ascii?q?0t5Bj3JFWCFPlJfgyEny0Do8ykz5932pJdJi0HDmV7KiW35bfXqhUsgPWdQNc8?= =?us-ascii?q?em0aUZccNnIqRM26nDZUv25eAzmszO0W0hKC4CP8pinLFzb8bsBja+qTZRNiEN?= =?us-ascii?q?G24ysw8qishV7R7JreO3nwNc5+td/X9eMau5GHButJQrZnrUfcmpRXR2exXmHV?= =?us-ascii?q?C961PZ/waoc3bdPqFnm6T0a/izMpT8bxJtqtKLaHgR3wT4ZOrIabxCwjNdO6Fj?= =?us-ascii?q?wGHxdwoPsD67x6ZQwCZJo2ehHotwIjN6ClJweYyNquSX63KTRKV/lf0fm6Z7tP?= =?us-ascii?q?wio3cOC6zHogTpcnz+i46kMCWJYKjhTCyvm5fIleTTL/GnpDdAXTvSA5jXRuNv?= =?us-ascii?q?4uwucjxxPFqUQTPCyOdOxubmxEo8wwCEiMIXpoEGo4Rl6djY3F4gK22bAd4Tdd?= =?us-ascii?q?lc5O0eJZqHj+ooPfYDW0Vayos5XUszAvbd46o61xKoHjLcyGtIvCkTDFSpnfrB?= =?us-ascii?q?GFWjagF/VGgthQPD5YQP5QlGE5OMwGvI1B6VYxVsY+PLFAFagsp7CwZjV/FyIS?= =?us-ascii?q?yzEWV5+Y1jwYnui8w6falguXcJk6PxwEqo9Ngt0BUyNtYyMeo6GiV4PKl2+EVG?= =?us-ascii?q?cLIQET7RhS6wIajINweP7q4JbQRp9W1zFWu+50UjfMFpRw7VT7TmCWjkTmR/q5?= =?us-ascii?q?luyo3QRSzPXq0tYBQxNwEkldyPxQlkcxJrF3NrMcvojUvT+UbUn6pn7iyPO6JF?= =?us-ascii?q?lNzs3Zb0b3A5TDtWfnSCIT5GMUSpFVyHHED5sSiQp4ZLwspFVWL4CsYlz+6CA8?= =?us-ascii?q?x4R1A7m4Utimx0wjrXYHWyiqE91BC+V9sFzPQTNrfoqlpYniNZhJXmBQ/5idpE?= =?us-ascii?q?tDn0V2Ly6105xcJN9R4jQURjhAvS2dvMeuSM1EwcJ5E50MLc1jtHrmBKxEP5yR?= =?us-ascii?q?o3k3urPx0H/Z5y4zv0u6xDmpHK+4Ve1Z9XUEGgo1P2SetlUvD+w0/2fI6F/NqF?= =?us-ascii?q?d08PxAC7iTl0V+uih9EY5KBjZI03ClIFBzTHhJs+VaNKTVfdZTQ+M3ZRO1PRwx?= =?us-ascii?q?C+Im1VST/U5ohXf5fzBytgxC9iHTRQU7SSkVgrbomT0fsM6nOiQXS5NWYjo/cS?= =?us-ascii?q?jJMQWbmTpYvBxHcUFlR4gZAspZ+7EcxYZU5s3CSUK2JiEfUh1iMQY40fREmE5G?= =?us-ascii?q?t0WYfjvdAhS0evbVtR13ZtyRrM+vLPT25gtHjZnnsO8g/aUZW3KmgRGtQczZr4?= =?us-ascii?q?LkrNKKrFaOdKHiP+2/enLBTTnMjRGshbg/FZXK+TbcMBZDIZlg1XUkeYThCXLM?= =?us-ascii?q?PRleO6IbIE9bWLtmadlap+BVfNVoeKAX9q9xHhiHXA/gGJSzrPlaKVbeXTTeID?= =?us-ascii?q?+b8uOlpYLc8KfQRvX+acyU33bIXaZ3MYlg6TXhHLfqy4Be8FLs2vhx7kN6VUTG?= =?us-ascii?q?MyeZodTjIQME+tKveVb8sZ0yAzzWGotwn2TwyU1accoYXTGq+owCyJxF8HbwVf?= =?us-ascii?q?540k/rveJJ+blr9ZU77rJ0xcq6PqrdNfNasUp7DReOHQVq6o8hAG5hSGBNeuUR?= =?us-ascii?q?MuvefbwFjcDyrOD6D7YX5wOI9OxZc9THO1rMms24CjGCVxNIghsOqTkHIQSCzf?= =?us-ascii?q?KFnbF7Sdq9r+jjxk0t+0S+LgIBzL11/YeE4baIq/XKYBvN1rUEQa/qRt7prrsw?= =?us-ascii?q?pUyS4+EklKQUdWxxeQGnF/IdVsEFzGf60a8q1T4sE9/EH7/45P5DTWw2kSz9lJ?= =?us-ascii?q?1mAlUWHu8UHaCR8oRAn2c4nOjZOcMKcqxYnWaPDxGkGKcYyXG38yuXPHVlghbW?= =?us-ascii?q?3hH1W2yz6Fv2ojFkQSvQ1djsiFFYVr+pCkdORCqmJVV3sCuRMwbystr4p7g15l?= =?us-ascii?q?ksMmP4rNKNiHehOLRPEs39PtOcOy40pEkTjJIrWNyiwoUbGce5INcN8XFxcvre?= =?us-ascii?q?5Hmtky9auatHgJDe4s6N8PXNAXagl7Gaq6mKxD1AyHg3p1c/6t66NvHJ+tKFXe?= =?us-ascii?q?+l13oLQCd5oAvBWAS5qrrFoFAIIUaLylvEmJQWPtFF2nk1zk7m5PUiQNI38AVR?= =?us-ascii?q?CIPAaugfqj/tIzT0wEyQY9QtWimZyTtXEUr/EUNkF6gkxGLwoMXJmG/W+10sXY?= =?us-ascii?q?RwdkrnhRltA4U5L0It5kIXzTAYEQgRcxCbEa2nBVj4LYseS0cPcxOH3KK1eq0v?= =?us-ascii?q?x0183quv5PPPbex7H6cNM/FdjgiSnFhUBJ0bqqgeQLNmdF9b6qHXugbjC4/9X/?= =?us-ascii?q?jljno8L/u1Td5G8coBrXst/h6/Rwa86ZdE97sbjIuIdqtEbJXXssBz8Vpo5TkV?= =?us-ascii?q?diNXmBh/lRS5UeICq+///tjXqp2o6vyhVKw1XeUY6wA0B3hij5v3mF0jusvY1/?= =?us-ascii?q?lGRY3al4v/6xtAI2WQt4bEyRZ8JvQBK5mxcLZm6XoHOzAUJ2gSMtqOd/k8/yht?= =?us-ascii?q?PS3R51xDB8MBftYYM9TNmA9KkE3pWbdT9sXBFl+eFYhza9gi73DrxzAt7Zs8Tu?= =?us-ascii?q?Hg5Se3JZHe9V5CJe9MgT53lN3cuOga3+bdBDIQ4XmDZBh/2jmCxIWVC/bs4eWM?= =?us-ascii?q?z8nZWEgHHi4tXYZSPjiC+Q27RuqtjprpTweU59Tvj5I5aU2fWGa+nLkfsqZLC+?= =?us-ascii?q?5PkD/33j9EFoD6n/iVqcaj6HNLtl1bF4Z+9QXFF79DPppnORT5mM6rRlJ/Bifm?= =?us-ascii?q?Y8HbaB4uuOuQxucR7ORzLFP+apUHIh0Yy7L7531VThFtSLLsvVaWQ/gRZN14R/?= =?us-ascii?q?PAtHxV7phgK6AXNliHuJPqtitIqEwxAAIxdL8wtCJVdk3Ukw1TRan5o6MPigoT?= =?us-ascii?q?Ud54pU9DA3mwN3gk5zraT6hVireeCOAN+DWJUqMOS1loMj95Qx6t15VhYaGpku?= =?us-ascii?q?5bsmNGhS59pPkq0yB4Sxu8oyLsurkN1Sgm+L6mqDULoWZFQfmGkyfUFVVDy+wH?= =?us-ascii?q?jagCBHbk9Vy8Z34DYIzp4LZ5IcTg9I8h42kwYBg4ey0JQ/6gCiHqgK+SBIyArs?= =?us-ascii?q?5cjgaXuMrSdb+zMTQSNrMlxBLlRnhyzg/enBJy/2sQWDmg7dgkJIKmOcY+3Seo?= =?us-ascii?q?HGfWdVkW7qNOqsvxukYBTPEqZlN53GVjzs+HSzUCRMPTAGY1lREoZ3hLfpxF6B?= =?us-ascii?q?8aEbQogzmTs6lJ+wEbejHUHZq/9onXh8fI1mE3Tc12yWLOuq2FmpQq3WVnm9Nz?= =?us-ascii?q?7i6Ovm4eePDYU89oH3j8y4Zeye34Z/W2seAHSZBryKqgUP8cKMaj/Xa52JRwVk?= =?us-ascii?q?+j2LseA0KzMPUfybfDTyelVWqYVPyKc2iShTk5NFX/5R21LlIqacdKqFQ9PvHF?= =?us-ascii?q?hp5GmA3rSal0STmIpV/H0GwjNvsXdwAot4epdQwKSPUcZuaGKugo3vI+FEEAb3?= =?us-ascii?q?nXEitqE+W2q0KinJBnO3V85kX3eevt8gThMNqcBBYEFYrao4Vq+fy9QGKBOGNv?= =?us-ascii?q?wAd0PEZq6+fVD04xufNEc5aNgdjQgMx20ewFd/ZtKS09vdoTmoN/6YaKy8qKdB?= =?us-ascii?q?DRzoroJd7LuPSYBOffz0sycGFATrUZeR/155k9PtMhR73THL5ZsA8ABag7XJMh?= =?us-ascii?q?NHn+9KVuIAN1bAHReKy+gtP2qeKTeptUu3jW40o1LCfduB0Dyfu0QBd5b5+whH?= =?us-ascii?q?XyJ5YwSSxHr9F3DBtpApdPEdsarwW7G56UhL27i9ip9kxhpeAKt7bwB+vR1NS9?= =?us-ascii?q?2IVxQ4Ra5VKVMznMHqVrhV5ljuuqiPfazpbxEd/iec8DVOVjTG7KdLvGHoSnKj?= =?us-ascii?q?2QIc/9ek9G87uZ0L1nSBWRYD72U7CBtC2+O/Vu+V87xZBgfOrP0Dwt6KnW2dXq?= =?us-ascii?q?Z2FBpyessWCGOYBa7FzLGezeRQxbReCC8GZ/Eq0ddZH0+/sWMdw+3Nic5BF+7D?= =?us-ascii?q?NG0MSbOKWhtkvM1VhgdZLHLUvmxzo5WZMULxuhK0csh3HWqmjFC3RGMsekMdVt?= =?us-ascii?q?gMqSDhH140lxmGctZnNOG2bxQdeROHMb296lZACR9QJEFdADn+mtdU4/rK2yRv?= =?us-ascii?q?FiOo9ZluWyqLUHjdFpJjnURMdEOyHQLbl2PideD+nIq1Yofh4EvKYvWogrfZiB?= =?us-ascii?q?OlgKMESexiPoywvNz0n0eMex1KaGOioW9W9Hz73d2zhWuwa5oeqZgtHkUL3BaZ?= =?us-ascii?q?H5RuLdMCokVjGcQjQ/Clip+Vaiu/UauPqYIGEfok0bYy6IDw4TvK9vp8DKDmDP?= =?us-ascii?q?ge1jYIEKhPeCViDyUiJ4l60yCT1QuECRRfoDCQnWb3j8gGpTuAyiOuVA/XT7YL?= =?us-ascii?q?2E3qBVQfAZApNQcv2FRNvVYetRKCwvmjUdOea8ZMHcr60j3lLTU2QWD7PE9EaA?= =?us-ascii?q?Q06SQ/ycwS/rXIoOsocouiso4M/QnjRtH6XGJbmfuyWu8om+jCqCvu3eTGYtaV?= =?us-ascii?q?QvgO0eGGmB3AVAKGYcBtEaok7iWbSAZ0dS23Itku9uxRsMdx5oUn1vz31ahvC9?= =?us-ascii?q?FdNFSVQMlmOhXOUGbExrDDM35UKK4AjyYdsaucDJRm9e7aABSYwHI/kt9obXOb?= =?us-ascii?q?EcwPEz3DJpuCY6qTmSD0tBjgKZ9KrdBLl8xrNH5WYk/vx7XVqCQy3BfWjdy4qn?= =?us-ascii?q?CsVPxSF0rXDiycXUovhnNKFGqIFhHFcKHSV2K8jf/TBGV2H03BC/vxOlEzuDLj?= =?us-ascii?q?IZ5ywLKjAbeepvye90rgrIJZ797haLuqYgrla7IRqaAbqznppQA4fm0hvrRzNM?= =?us-ascii?q?dGCNFptxrv9W3PcVZrg8Ldy4AlvGKgHlSAOfvDsX3B22svKsF8UckTZWqbklNN?= =?us-ascii?q?y8B9pCNtLexjwthihF?= X-IPAS-Result: =?us-ascii?q?A2FlBgAqD5dY/wHyM5BdhANhgQmOUqgZGyEmDYFtgz+DLFc?= =?us-ascii?q?BAQEBAQEBAQIBAl8ogjMbCQQ9DS4BAQEBAQEBAQEBAQEBAQEBGgIIBAEiQwI3F?= =?us-ascii?q?CAOAwkCFykICAMBLRUfCwUYBIlSBAEJrTMPg0UmAoNohywBJYZMiRURAYYBAQS?= =?us-ascii?q?bZoF9hGuLFIJbiAWGL5MMWHYIHxMqRIREHYFidAGGSA8XBIISAQEB?= Received: from unknown (HELO tarius.tycho.ncsc.mil) ([144.51.242.1]) by emsm-gh1-uea10.nsa.gov with ESMTP; 05 Feb 2017 11:42:17 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus [192.168.25.40]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id v15BfSHQ019348; Sun, 5 Feb 2017 06:41:37 -0500 Received: from tarius.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id v15BfPvm111374 for ; Sun, 5 Feb 2017 06:41:25 -0500 Received: from goalie.tycho.ncsc.mil (goalie [144.51.242.250]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id v15BfOXp019345 for ; Sun, 5 Feb 2017 06:41:25 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1AxAAD6DpdYmCIeaIFdhGSBCY5SpEGER4UsgyxXAQIBAQEBAQITAQEBAQEICwsIHYdpiXMEAQmeYI5SD4NFhBCHUoZMiRURAYYBBZtmgX2Ea4sUgluONJMMgU0IHxMqhEQBQx2BYnQBhkgPFwSCEgEBAQ X-IPAS-Result: A1AxAAD6DpdYmCIeaIFdhGSBCY5SpEGER4UsgyxXAQIBAQEBAQITAQEBAQEICwsIHYdpiXMEAQmeYI5SD4NFhBCHUoZMiRURAYYBBZtmgX2Ea4sUgluONJMMgU0IHxMqhEQBQx2BYnQBhkgPFwSCEgEBAQ X-IronPort-AV: E=Sophos;i="5.33,338,1477972800"; d="scan'208";a="5932696" Received: from emsm-gh1-uea11.corp.nsa.gov (HELO emsm-gh1-uea11.nsa.gov) ([10.208.41.37]) by goalie.tycho.ncsc.mil with ESMTP; 05 Feb 2017 06:41:21 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AoUt6IxYiJYjxpG/Q8QzFRf//LSx+4OfEezUN459i?= =?us-ascii?q?sYplN5qZr8W8bnLW6fgltlLVR4KTs6sC0LuK9f+9EjdYqb+681k6OKRWUBEEjc?= =?us-ascii?q?hE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i764jEdAAjwOhRo?= =?us-ascii?q?LerpBIHSk9631+ev8JHPfglEnjSwbLd9IRmsrwjctsYajIV+Jq0s1hbHv3xEdv?= =?us-ascii?q?hMy2h1P1yThRH85smx/J5n7Stdvu8q+tBDX6vnYak2VKRUAzs6PW874s3rrgTD?= =?us-ascii?q?QhCU5nQASGUWkwFHDBbD4RrnQ5r+qCr6tu562CmHIc37SK0/VDq+46t3ThLjlS?= =?us-ascii?q?EKPCM7/m7KkMx9lKJVrgy8qRJxwIDaZ5qYOOZicq7HYd8XX3ZNUtpXWidcAo28?= =?us-ascii?q?dYwPD+8ZMOhAronyu1wOrR+kCgm3GejhyThIhnjt3a0hzu8sFgfG3A08ENIJtH?= =?us-ascii?q?Tbts71OL0TUeCyy6nI1i7DYuhT2Try54nEaBchoeuDXb9pd8fa1EchFwTAjlqK?= =?us-ascii?q?qIzlOSuY1usMs2iH7+pgSPmgi3M8qw5vuDig2sAsio/Vho0LzFDE6T91z5oyJd?= =?us-ascii?q?29UEJ7fcSkH4FOtyGbLIt6W98tQ2BytCY90L0Gtoa3fCcLyJQ7xx7fdueIf5KU?= =?us-ascii?q?7RLkUeacJypzinF9eL+nmhq+70ytxvfhWsWo31tGtCRInsXWun0D2BHf8sqKR/?= =?us-ascii?q?ln8ku81zuC2Rrf5v9YLU01j6bWJYAtz7gtnZQJq0vDBDX5mEDuga+WaEok/u+o?= =?us-ascii?q?5vziYrTpu5OQLZd0igb6MqUuhsywH/g3MggIX2ia4OS8yaPs8Vf+QLVQgf06iq?= =?us-ascii?q?jZsJbEKsQHvqO1HhFZ34I55xqiEzur384UkHcbIF5fdh+KgJDlO1TUL/D5Cfe/?= =?us-ascii?q?jU6skDBux/3eI7PvHojDImTbnbv6fbhw91JcxRIwwt5C/59UD74MIf3pVk/2rt?= =?us-ascii?q?zYAQc0Mwq1w+n7D9V90pkRWXmVDq+YN6PStkSI5vk0LuaXY48VpTD9JOQ76P71?= =?us-ascii?q?l3M5nFAQfKaz0ZsQcnC4EexqI1+Fbnr0ntcBDWAKsxIlTOP0jF2CUDhTZ2u9Xq?= =?us-ascii?q?8n+jE6CJ6pDYfERoy3hryBxz20EodZZmBBFFDfWUvvIp6JX/YKdTK6Pt5qkjtC?= =?us-ascii?q?U6OoDYAmy0KArgj/npxmJe3Q8zZQlJXkz8M9s+vSnhY2/CcyDsOayHqlSj1k2G?= =?us-ascii?q?QSSGllj+hEvUVhxwLbguBDiPtCGIkL6g=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0HNAACqDpdYmCIeaIFdSBgHg32BCY5Sp?= =?us-ascii?q?EGDWBtUgW2DP4MsVwEBAQEBAQEBAgECEAEBAQEBCAsLCB0vgjMZCwQ9DS4BAQE?= =?us-ascii?q?BAQEBAQEBAQEBAQEBGgIIBAEigwyJcwQBCZ5fjlIPg0WEEIdShkyJFREBhgEFm?= =?us-ascii?q?2aBfYRrixSCW440kwyBTggfEyqERAFDHYFidAGGSA8XBIISAQEB?= X-IPAS-Result: =?us-ascii?q?A0HNAACqDpdYmCIeaIFdSBgHg32BCY5SpEGDWBtUgW2DP4M?= =?us-ascii?q?sVwEBAQEBAQEBAgECEAEBAQEBCAsLCB0vgjMZCwQ9DS4BAQEBAQEBAQEBAQEBA?= =?us-ascii?q?QEBGgIIBAEigwyJcwQBCZ5fjlIPg0WEEIdShkyJFREBhgEFm2aBfYRrixSCW44?= =?us-ascii?q?0kwyBTggfEyqERAFDHYFidAGGSA8XBIISAQEB?= X-IronPort-AV: E=Sophos;i="5.33,338,1477958400"; d="scan'208";a="2898322" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from mx1.polytechnique.org ([129.104.30.34]) by emsm-gh1-uea11.nsa.gov with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Feb 2017 11:41:19 +0000 Received: from localhost.localdomain (32.206.133.77.rev.sfr.net [77.133.206.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 9E812560786 for ; Sun, 5 Feb 2017 12:41:17 +0100 (CET) From: Nicolas Iooss To: selinux@tycho.nsa.gov Subject: [PATCH 1/1] Introduce Travis-CI tests Date: Sun, 5 Feb 2017 12:40:01 +0100 Message-Id: <20170205114001.6480-1-nicolas.iooss@m4x.org> X-Mailer: git-send-email 2.11.0 X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Sun Feb 5 12:41:17 2017 +0100 (CET)) X-Org-Mail: nicolas.iooss.2010@polytechnique.org X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: MIME-Version: 1.0 Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Add a configuration file for https://travis-ci.org/. This continuous integration platform can build the project for several configurations on Linux, using different compilers, linkers, Python versions and Ruby versions. An example of build results is available on https://travis-ci.org/fishilico/selinux/builds/185912863 Even if the SELinux userland libraries and tools project does not enable Travis-CI integration, the .travis.yml file may be helpful for contributors who wish to run tests in several configurations. Current limitations: - It does not run an OS X build. Travis-CI provides free OS X environments but it is quite difficult to configure a single .travis.yml file which defines many Linux environments and some OS X ones. - It only runs Ubuntu 14.04 with an x86-64 CPU. This does not test Android, ARM nor 32-bit x86 configurations. - It only builds with glibc, not musl or other light C library. Signed-off-by: Nicolas Iooss --- .travis.yml | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000000..6dce35165bd3 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,142 @@ +# Define the building environment +language: c + +matrix: + fast_finish: true + +compiler: + - clang + - gcc + +env: + matrix: + # Test the last version of Python and Ruby together, with some linkers + - PYVER=python3.5 RUBYLIBVER=2.3 + - PYVER=python3.5 RUBYLIBVER=2.3 LINKER=gold + - PYVER=python3.5 RUBYLIBVER=2.3 LINKER=bfd + + # Test several Python versions + - PYVER=python2.7 RUBYLIBVER=2.3 + - PYVER=python3.3 RUBYLIBVER=2.3 + - PYVER=python3.4 RUBYLIBVER=2.3 + - PYVER=pypy RUBYLIBVER=2.3 + #- PYVER=pypy3 RUBYLIBVER=2.3 # PyPy3 5.5.0 provides the Python2 form of some structures, which makes it incompatible with SWIG + + # Test several Ruby versions + - PYVER=python3.5 RUBYLIBVER=2.0 + - PYVER=python3.5 RUBYLIBVER=2.1 + - PYVER=python3.5 RUBYLIBVER=2.2 + +# Use Travis-CI Ubuntu 14.04 Trusty infrastructure +sudo: required +dist: trusty + +# Install SELinux userspace utilities dependencies +addons: + apt: + packages: + - bison + - flex + - gawk + - gettext + - libaudit-dev + - libbz2-dev + - libcap-dev + - libcap-ng-dev # This package is not whitelisted for the container infrastructure (https://github.com/travis-ci/apt-package-whitelist/issues/1096) + - libcunit1-dev + - libdbus-glib-1-dev + - libncurses5-dev + - libpcre3-dev + - patch + - python3-dev + - python-dev + - swig + - xmlto + +install: + # Download refpolicy Makefile for sepolgen tests + - sudo mkdir -p /usr/share/selinux/default + - sudo curl -o /usr/share/selinux/default/Makefile 'https://raw.githubusercontent.com/TresysTechnology/refpolicy/RELEASE_2_20170204/support/Makefile.devel' + - sudo sed "s,^PREFIX :=.*,PREFIX := $TRAVIS_BUILD_DIR/installdir/usr," -i /usr/share/selinux/default/Makefile + - sudo mkdir -p /usr/share/selinux/refpolicy/include + - sudo curl -o /usr/share/selinux/refpolicy/include/build.conf 'https://raw.githubusercontent.com/TresysTechnology/refpolicy/RELEASE_2_20170204/build.conf' + - sudo mkdir -p /etc/selinux + - echo 'SELINUXTYPE=refpolicy' | sudo tee /etc/selinux/config + + # Make sepolgen tests work without really installing anything in the real root (doing this would conflict with Ubuntu packages) + - sed -e "s,\"\(/usr/bin/[cs]\),\"$TRAVIS_BUILD_DIR/installdir\1," -i python/sepolgen/src/sepolgen/module.py + +before_script: + # clang on Travis-CI 14.04 environment is too old to support -Wdouble-promotion + - if "$CC" --version |grep -q clang; then sed 's/ -Wdouble-promotion / /' -i libselinux/src/Makefile libselinux/utils/Makefile ; fi + + # Build and install in a temporary directory to run tests + - export DESTDIR="$TRAVIS_BUILD_DIR/installdir" + + # Configure the variables for Python parts + - export VIRTUAL_ENV="$HOME/virtualenv/$PYVER" + - export PYTHON="$VIRTUAL_ENV/bin/python" + - export PYPREFIX="$($PYTHON -c 'import sys;print("python%d" % sys.version_info[0])')" + # PyPy does not provide a config file for pkg-config nor a pypy-c.so + - if echo "$PYVER" | grep -q pypy ; then export PYINC=-I$($PYTHON -c 'import sys;print(sys.prefix)')/include PYLIBS= ; fi + # Python virtualenvs do not support "import site; print(site.getsitepackages()[0]" + # cf. https://github.com/pypa/virtualenv/issues/355#issuecomment-10250452 + - export PYSITEDIR="$DESTDIR/usr/lib/$($PYTHON -c 'import sys;print("python%d.%d" % sys.version_info[:2])')/site-packages" + + # Find the Ruby executable with version $RUBYLIBVER + - export RUBY="$(ls -d -1 "$HOME/.rvm/rubies/ruby-$RUBYLIBVER"*/bin/ruby | head -n 1)" + + # Set the linker in $CC so that it gets used everywhere + - if [ -n "$LINKER" ]; then CC="$CC -fuse-ld=$LINKER" ; fi + + # Show variables and versions (to help debugging) + - echo "$CC" ; $CC --version + - echo "$PYTHON" ; $PYTHON --version + - echo "$RUBY" ; $RUBY --version + +script: + # Start by installing everything into $DESTDIR + - make install -k + - make install-pywrap -k + - make install-rubywrap -k + + # Now that everything is installed, run "make all" to build everything which may have not been built + - make all -k + + # Set up environment variables for the tests + - export CFLAGS="-I$DESTDIR/usr/include" + - export LD_LIBRARY_PATH="$DESTDIR/usr/lib:$DESTDIR/lib" + - export PATH="$DESTDIR/usr/sbin:$DESTDIR/usr/bin:$DESTDIR/sbin:$DESTDIR/bin:$PATH" + - export PYTHONPATH="$PYSITEDIR" + - export RUBYLIB="$DESTDIR/$($RUBY -e 'puts RbConfig::CONFIG["vendorlibdir"]'):$DESTDIR/$($RUBY -e 'puts RbConfig::CONFIG["vendorarchdir"]')" + + # Show variables (to help debugging issues) + - echo "$CFLAGS" + - echo "$LD_LIBRARY_PATH" + - echo "$PATH" + - echo "$PYTHONPATH" + - echo "$RUBYLIB" + + # Run tests + - make test + + # Test Python and Ruby wrappers + - $PYTHON -c 'import selinux;import selinux.audit2why;import semanage;print(selinux.is_selinux_enabled())' + - $RUBY -e 'require "selinux";require "semanage";puts Selinux::is_selinux_enabled()' + + # Remove every installed files + - rm -rf "$DESTDIR" + + # Test that "git status" looks clean, or print a clear error message + - |- + git status --short | sed -n 's/^??/error: missing .gitignore entry for/p' | (! grep '^') + + # Clean up everything and show which file would be added to "make clean" + - make clean distclean + - |- + git ls-files --ignored --others --exclude-standard | sed 's/^/error: "make clean distclean" did not remove /' | (! grep '^') + +# Do not spam by email so long as the build succeeds +notifications: + email: + on_success: never