From patchwork Wed Feb 14 09:53:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Petr Lautrbach X-Patchwork-Id: 10218763 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 881CB601D7 for ; Wed, 14 Feb 2018 13:09:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6704428FDE for ; Wed, 14 Feb 2018 13:09:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5A65928FDF; Wed, 14 Feb 2018 13:09:57 +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=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from ucol19pa12.eemsg.mail.mil (ucol19pa12.eemsg.mail.mil [214.24.24.85]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 69A4C28FEA for ; Wed, 14 Feb 2018 13:09:49 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.46,512,1511827200"; d="scan'208,217";a="496309352" Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by ucol19pa12.eemsg.mail.mil with ESMTP/TLS/AES256-SHA; 14 Feb 2018 13:09:46 +0000 X-IronPort-AV: E=Sophos;i="5.46,512,1511827200"; d="scan'208,217";a="9324427" IronPort-PHdr: =?us-ascii?q?9a23=3AYbW3JR38Ys4b8XktsmDT+DRfVm0co7zxezQtwd8Z?= =?us-ascii?q?se8QIvrxwZ3uMQTl6Ol3ixeRBMOHs6sC07KempujcFRI2YyGvnEGfc4EfD4+ou?= =?us-ascii?q?JSoTYdBtWYA1bwNv/gYn9yNs1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgpp?= =?us-ascii?q?POT1HZPZg9iq2+yo9JDffxhEiCChbb9uMR67sRjfus4KjIV4N60/0AHJonxGe+?= =?us-ascii?q?RXwWNnO1eelAvi68mz4ZBu7T1et+ou+MBcX6r6eb84TaFDAzQ9L281/szrugLd?= =?us-ascii?q?QgaJ+3ART38ZkhtMAwjC8RH6QpL8uTb0u+ZhxCWXO9D9Qr4uWTSm8qxlVhnmhi?= =?us-ascii?q?kaPDI96W3bl9B8gKddrRm8pRJw3pTUbZmVOvRgcK3TftEVRWROUclNWCJOGJ6y?= =?us-ascii?q?b5MNAuYcM+tXsZL9qkASrRa9HwSgGP/jxiNKi3LwwKY00/4hEQbD3AE4BdwBrm?= =?us-ascii?q?jUrM/oP6kUS++10bXIzS/YYPxMxTj96JXDfxc5ofGIR71wbNbRyVM0GAzflViQ?= =?us-ascii?q?s5LqMC6V1usXr2iX9fZvVeWqi2M+rQx6vzahxsApiobTh4IVzEjJ9T9nz4koJd?= =?us-ascii?q?23UlJ7bcS4H5tXsiGXMZZ9TMA6Q2xwpSo3xbILtYS7cSQX0pgr2RHSZ+Kdf4SV?= =?us-ascii?q?+h7uVeecLS1liH9mer+znQi+/Eaux+HmVMS53lBHpTdfnNbWrHACzRnT59CCSv?= =?us-ascii?q?t640iuxy6C1xvW6uFYOUA0krfbK4I5zr4wiJUTtUPDEzfqmErslq+Wd1gk+vOy?= =?us-ascii?q?5+T7YrTpup+cN4huhgH4LqsugdCwDf49MggPW2iX4eW81Lv98k3lWLhGk/I7n6?= =?us-ascii?q?bDvJ3aOMgXvLC1DgBL3oo59hqzFzKm384ZnXkDIlJFYhWHj43xNlHVPv/4Cfa/?= =?us-ascii?q?g1KxkDZk3vzJJbrhAojLLnffjrjhZq1w61JcyQUvzdBf4IhYCrcaIP3pQEPxu9?= =?us-ascii?q?vYDgEhPwyu3+nnEMl91p8ZWW+XAK+ZN6XSvkWU5uIvOeaMYpQYuDT6K/gj4v7h?= =?us-ascii?q?l2Q5mUMDcqmzxpsbcne4Hu5pI0+Be3rjns8BEXsWvgo5VOHqil+CXiRPaHaxRK?= =?us-ascii?q?I84Tc7CIO4DYrYSICthKGB3SigEZ1LYGBGFk2MHW3vd4WeVPcGcDiSLdN5kjwY?= =?us-ascii?q?SbihTJcs1B+vtA/+zrpoMPDU9zYWtZ39ydd14PfTmgsq9TxuCMSd0X+CQH1onm?= =?us-ascii?q?8SQD82xq9/q1Rnylifyah4n+BYFdtL6vxUTgg6MJncz+pmC9zvQQ/BYMmGSEyn?= =?us-ascii?q?QtSnBjExSMg9w9kQbEZhA9+ilAzM3zK2A78JkLyGHIE78r7G0HjrPMty13HG1K?= =?us-ascii?q?w9gFY8WctPKXeqhqhh+AjPH4TJiVmWl762daQA2y7A7GeCzGuJvEFeSwNwVKHF?= =?us-ascii?q?UWkeZkvQt9j54FnNT6WtCbQmLAtO19SOKq1UZd31lV9GXuvsOMzCY2KtnGe9HQ?= =?us-ascii?q?iHxquWY4rwemUdxz7QCFAenAAJ/HaGLhA+BiO7rG3CEjNiD1XvY1nj8eNmsnO0?= =?us-ascii?q?Ulc0zx2Wb01mz7e19AQViuaaS/wP37IEozwsqzBsHFa8xt7WENSBpxF7cKVbe9?= =?us-ascii?q?M9709N1XjFuAxlIpygM6dii0YdcwttvEPu0Ah3B55Dkccwr3MqyxdyJbif0FNb?= =?us-ascii?q?eDOSxYrwNaHPKmnu4BCvbLbb1UvD39aM+6cA9u44pk75sw61E0ou6XJn08Na03?= =?us-ascii?q?GE/JXFEBISUY7tUkYw7xV6vazVbTQm6oPb0H1tPrO4sjnc1NI1HOEl0Aqvf89D?= =?us-ascii?q?MKOYEw//C9YaB8a0KOwtgFipcgkJPPtU9K4zMcKmcuGJ2KixMOZmgj2mkXxN4J?= =?us-ascii?q?ph3UKU6yp8VunI0o4Lwv6C2guHSynzjE26ss3sh4BLeysSEXGiySjhHoJRYbdy?= =?us-ascii?q?fYkTA2e0P8K33sl+h4LqW3NA8l6jBlcG2Mu3dhqJdFHyxxNf1V4QoXC9niu41T?= =?us-ascii?q?N0mSkzrqWDxCzO3/jidB0fN25VRWltkUvsIY+uj9wAQEeobw8plB2q5Uvhw6hb?= =?us-ascii?q?paJ/IHPJQUdPZST2KHtiUqSovLqYf8FP8I8osTlQUOmkZVCaS6X9owcD3yP4AW?= =?us-ascii?q?RewDE7dze3upT2hBF6k3qdLHd1rHrYZc5w3g3T5NrCSv5NxjAGXjV3iSHLBlig?= =?us-ascii?q?ONmk5c+Ul5DHsuC6SW2hTIFccS7lzI6bryu7+HFlAQalk/C0gN3nHhAw0TXn2N?= =?us-ascii?q?lySSXIsBH8b5Ho16ukN+JnZVJlBFzi5Mp8AYF+lJU/hI0K1XgdnJWV8mINkX3v?= =?us-ascii?q?PtVDxaL+cH0NSCYTw9HP/Qjl3FNsLmqTyIL/SnWS3NFhasKnYmMNxC099dtKBL?= =?us-ascii?q?2P7LxDgCt1uEa3ohzfYfh6hDcdxuUh5GQcg+4XpAon1j+dDawKHUlEISzskAyF?= =?us-ascii?q?7864rKpKf2uvb76w21d+ndy7CrGNvB1cUm7jepg+BS9w8tl/MFXU3X3r8I7kZd?= =?us-ascii?q?3QYMkPuR2VjxfBj/FZKJwrmfoMnyZnPnj9vXI9we4hkRNuxY26vJSAK2h18qK2?= =?us-ascii?q?GBhYNiHyZ8MW4Tztg7hRkduR34C1BJphAi8LXJzqTf22DD0Sqe7rNwGUED0zsn?= =?us-ascii?q?2bA6bQHReD6Ed6qHLCC5WrOGuTJHkd09piWAWdK1ZFjw0PWjU1gII5Fhu2y8P7?= =?us-ascii?q?aEd2+Cod5ljmpRtQ0uhoLQXwUn/DpAe0bTc5UJafLABI4Q5f/EfaK8qe7v50Hy?= =?us-ascii?q?FD5ZCuthCCKmmBawRPF2EJVVSOB0r/Mbm2+dnA7++YC/K4L/vUe7qOsfReWuyG?= =?us-ascii?q?xZKuyItm5CqMNsuOPnlkFfI73FZMXXFjFMTdgTkPTDYXly3VZc6BuBi84jF3rt?= =?us-ascii?q?y48PnzQALg+5CABKVUMdVu5xC2hryON++OiylnNzlUzJQMxWXHyLIHxl4dlzlu?= =?us-ascii?q?dyWxEbQHrSPCV7nflqhTDx4acCNzKNBI47gn3gZTJcHXkMj12aB8jv40DVdFSF?= =?us-ascii?q?Pgl9q1as0KOWG9KUjHCFyFNbucOT3L2Mb3YaWmRb1XluVUuAW6uSyHHE/7IjSD?= =?us-ascii?q?iz7pWgi0PuFNgyGbOxpetZqgfRlzEmfjTcjpahuhPN9wlz02zqU+hmnWOm4ELT?= =?us-ascii?q?h8b0RNo6WK4iNXmPp/BXJO42FiLemchSmZ6ezYJYwXsftvGSt0kO1b7G49y7tP?= =?us-ascii?q?4yFOXOZ1lzfKrt5yv1GmlfGCyiZgUBpLsDpLnoWLvER8NqXf7ZZAQ3HE8wwO7W?= =?us-ascii?q?iLFxsKoN5lBcH1tKBL1tjDjqTzJyle89jM58sTG9DUKN6bMHomKRfpGj7UDQsd?= =?us-ascii?q?TT6sMWHfhlBdn++J+32Qr5g6toLsl4QURr9cTlw1GesQCl55E9waPJd3QjQknK?= =?us-ascii?q?aYjM8I4XqxsgLcRMBdvpDJWPKdH+nvKCqZjblDYhsH36n0LYINOY3nw0ZicEV1?= =?us-ascii?q?nJzWG0rMWtBAuithYREur0VJ63V+TWoz21n5agy35n8TDv20nh8shgt4f+st6C?= =?us-ascii?q?/m400rKVrSuCswjE4xlM3/gT+Paz7+Mr2/XZtKBCr0rEU+KZL7QxxoYg21k0xk?= =?us-ascii?q?LC3ESKxRjrd6c2BklhPcs4NVGfFAVa1EfAMQxfaPavo11lRcrCOnylJZ6uvBCJ?= =?us-ascii?q?tvjxElfoC2r3JHwQ5ja8Q1JaPILqpT0ldQnr6OvjOv1u0p3QARPVgN8GKPdy4T?= =?us-ascii?q?o0EHLKMmJzCv/u1i8gyNhSdMeHUWV/orvvJr9lkxO+KewCL8y7RDMFy+N/SDL6?= =?us-ascii?q?OFvGjNjcqIQlQq1kwWkUlE/L923Nwsc0qSSkAj1ryRFw4GNcDaMwFac9JS9GTP?= =?us-ascii?q?fSaJqejN2ox6P4G8FuDuUO+Pu70ZjV6jHAYsA4sD9N8BHoW23EHeM8jnMKYPyQ?= =?us-ascii?q?8x6wTzOFWFEPNJdQqXkDcGpsG/y4N33YldJzwGHGp9MCW26azMqQMwhvqMQss2?= =?us-ascii?q?aG8AXoQYLnI2RNG6mylBsntaCDm30/4Wxxaa4D/5piXQCj78b9x5a/qPfhxsCc?= =?us-ascii?q?u5+TMm/6i4lF7b6JPeKH/mNd56oN/A9fsap4qbC/NTVbRyqFnTm49DSnOwTmHP?= =?us-ascii?q?D8C6J4Lra4Y2d9z1Cmy2UlulizI6V83xJsqiLrCUgQH0QoZZqIab3C0iNc+5Ej?= =?us-ascii?q?ERBRJwqvoe661ifgIDYoA0YRjyuwQ5Lay/Lx+S0s+yTGa1NTtWU/5fwP2gZ7xR?= =?us-ascii?q?ziojcu+6yHwkTpEh1+e56FMDSosWgx/Z3vuse45eUS3vFXNHYAXPuTA1l25/Oe?= =?us-ascii?q?Yu2u0/2g/HsUEAMzCXc+xkcHZEsMsmBVOVOnp7EXY4R0WGgord/AGs27ES/y1S?= =?us-ascii?q?n9ZQ0O1Fv3j+voPRYD22QqyrrI/Zsyw+Ytg6u6dxK5DsItOatJPCmTzSVJfRvh?= =?us-ascii?q?eZXy66Fvpan9lQLzhbQPRTmGEqJ9IJtpRb5Uo2TMc+KKRFCLMwqbCydTpkESkS?= =?us-ascii?q?wDccV4yaxjwCgfmz26fblheWf5QvKxIFv49EgtQBVy52ZT4eq7K4V4nMkW+LVH?= =?us-ascii?q?QLKh8J7QtQ/AIAipNwfuf97YXSVp9M1jhWr+h3UibQF5lo9lr7Sn2NjlTiTvWu?= =?us-ascii?q?jfCp1xpIzP3wytkbRAJ/CU9FyuZXkEsoNK94K60OsY7PrDCIaVn6vWL2xeuhPF?= =?us-ascii?q?le18vUd1jiA4rEsWrzSSoc+HIOSY9I0nHfGowYkxBlZ6YzuFVMPIemd17i5zwj?= =?us-ascii?q?woRkBKW4Wdyux1k+t3oGQTmlE8ZZAeF8rF3XQCFlY4ysqJj9O5VdWHVQ94eZq1?= =?us-ascii?q?hEi0hiLjC2yYJEK85T5j4DQiJPrS+avNuoR81JwdV2AIMUItdjp3f9H7tJOJqW?= =?us-ascii?q?o3IoobHg12HW+ysiv1eg2DW8BbK3Q/hf/2IABgUjP36epVU3D+sw7mfS9UjAsk?= =?us-ascii?q?xp8OhGB7iAl0FxrS1hEZBJAzZGyWqqL09vTHVcteVVNrjVedRGQ/YufR+vJwA+?= =?us-ascii?q?Ffk+0kOS80F7gWv1bi5vugZU4C3SQw40VSwJjbj3gj0etturOTkERJJUdT8hdT?= =?us-ascii?q?vKKxqHmSBLuxZSc1tqVI4EDdZF4b4bwZBZ/s7FSUayNy4JQgBtNgUl3vVBj0JD?= =?us-ascii?q?tluXeTzFBwqyafnPqgF3fduWrMOxNPT55xtHhZn6v+Ak7KgDXHqmmRC3Qd/CsY?= =?us-ascii?q?D8sMGKtlGUe6f8KeG8ZmXBTDfUhxCqmbgkF4XK/zTUMAdDN5l602Qrbob8BmPQ?= =?us-ascii?q?IBRGI74bJ1BBWqBkaNVGpeRaaNF4eKoT/q9tHB2HTAv1GIOztPlGMkrTRTPGIi?= =?us-ascii?q?WD6OO/u4XT7afZSef6eMyB3HPHQ79zPpdm6Dn0B7bq3pVY+krtwPtt8Vl6SVfe?= =?us-ascii?q?OSCbsNvhPh8L5NWldkb6vJ0mBzXWAJlqkHrq205PadEaQzGw/5Qe05NZ72z8Se?= =?us-ascii?q?Rm3UjvqOdS7aVr6ZEr47B1zse5PaHSKfBBvE9mBBiUAx9m9pQrAGhxXWBeePQR?= =?us-ascii?q?KOvLfaQEkc/ut/33F7YJ5xGP/OxZc9THLVnbmsajEjGcVQBEnAAZpD4cLwuTy/?= =?us-ascii?q?mFm6tuRsa+v+T520Ut41+lLh4d171t4IiJ+6WSqO/QdRvRwqAOWrL2ScPrsrQs?= =?us-ascii?q?p0SS6OU4m7EUfmx6fRanEPQdV84a3Wrg1rwlzSMyHMPFA7Lg+eRMW2g/nj3+h5?= =?us-ascii?q?B3B08WFe8MHbqX4YRemX81m+jCNt0Tcq1PgWiPGgC5Hb8F036k8TOXIHNighHM?= =?us-ascii?q?zR7/XX+z4EXxrS9iTivG183jnVZNVrmrGUdSWDKkOU15sDOKJwfoscT4uKQr40?= =?us-ascii?q?EsM2zkst2NmHGnOLxJA831PMacLjUspFILkJ0xQcSi2YEaGNWnOtge7GpzbuDA?= =?us-ascii?q?5GO3jSBOv71Lh43E4sGa4v/XB2Wvj7WGq7WRwzBV0mM3vVAk6tGuLP7O5dyKQ+?= =?us-ascii?q?iw12kLUid/vxDMUAKyqrPGsV8bI1GL0F3MmIwQJN5Vx3441lvp5OI7WtI86B1e?= =?us-ascii?q?FprcZ/MFvT3zICH7wUqDbNI3WCie1CFXHlHsHVljBqc83GPwvMTUlXbf4FAoXp?= =?us-ascii?q?N/d1D7ihx3AYQ4Llgt6FsNzioADwcNcxabA6+sBUj/KosET0cDYwyd3LemYqc3?= =?us-ascii?q?wVFzwrS36e/cd+N8HbQCNupdjgOVmFhbG44WvrMeQL1mZl9d77Tbpg78BIj7R/?= =?us-ascii?q?Lmj2Y/NeWpQsBG9sAUr3Qi7Ri5Rxq87pdD6LEXiIuWea5AYJjMut187kh86D4L?= =?us-ascii?q?aCNNmhh+gAmjXeAauu/j/sDRsIC05ea2SKYtW+IX+gAoCGR8lZT/nEsurs3Q1+?= =?us-ascii?q?dYTo3ViJrw8BpRI3GUpIna0wNwKe0UK4KkZLxg7WkIJzACJ3ISOtqbc/w84yhr?= =?us-ascii?q?MDXP6FxNHNgBZdYZPMXXnwBblFHpWb9U9srBGV+YEJ1/d8Y24Grr0Do164czUv?= =?us-ascii?q?786D+qIpDS915NMO9YjCV3jd7Muecbz/zTCCgR/HmYZAN4wiyHy5aXDfb/4/+A?= =?us-ascii?q?yNbOV1MJBiQ2SZtSJCKe+Qy7Qeq4jJfpUgSU6s/1mp4xaEKQRnisnKsYs6dMEO?= =?us-ascii?q?hAij743jhfDY31mfOVs8S252tTq1JHEZx/7RvbF6VDJp97Iwj3ltG3RkhgASvy?= =?us-ascii?q?YMDUdgQ0t+qQ3eoM5/h+OFb/ZY8cORII0bX66WBaTgF2Ur75ok6ZXf4NZNthUP?= =?us-ascii?q?7ErG5a6YxuK68LJ1WcqoblrjFWp1AqGgMpbqE/riBCfEnUgAJVQ7r0uKIHigYE?= =?us-ascii?q?Xt55vUhMGGyuN2I64zrKTr9VjK6XCPwU7jqfVKoOXFt0MilmWRO6xI1ue6e1nf?= =?us-ascii?q?BAqm5GgiJ9oP0x3jx6RRuzpS7sqLwJ2T46/rG3qikBs2RfTuqCiyfIFUlDzPMS?= =?us-ascii?q?gKcZCnbi6l+8YH4YYYvw+rZnJsPg9Y8/7HQ5exkjeTMJXfi4ASHqk6yIGpCPsM?= =?us-ascii?q?5bhBOVo8rBc7mzLTQJO7QmzRLjQGR90hTAnBl27WQHWDKg7MUrJI+lI8Yq2jKo?= =?us-ascii?q?GXTHdFYL+q5JqMzxtVoRQ+ssZ1Jhx2Fj0sacSy0IQ8zPHH01gRY4ZmVed5JD8g?= =?us-ascii?q?QaF6gugjaHpKVG+RsUYDjMGIS/5obQhdvI2WU6TdpyyGLZuKmFhpIy0HJ7gN51?= =?us-ascii?q?7y+OuHEXd+PGSc9sBmb82p1YyezkaPWnqvoHR5d+yLS9TP8CNdGu+GWu2JVwW0?= =?us-ascii?q?+q2qoREkG8MO8C2rfbSTmqRXefWeSRfGiGhyw5PVLq5Rm0Ml03b99Hr0g5MuTc?= =?us-ascii?q?nZNcjwnhXqlvRiWMpF/U0HAjMfkEeA0ooounfRIFTPIJbeiGOecu2OE+CEcLb3?= =?us-ascii?q?LRGSt2Cum2sUOinYRiP3Vg4F76Yfj28g39MdudAB8EEYnAop524/y6SXqLOWV8?= =?us-ascii?q?wx1qIEl06+DfGkw0tuBGb5mRndnQh9J80eMeafdtMCs9tcAXmoJi74mUzciLfQ?= =?us-ascii?q?vWzpboKtHfuuKYDOHHz0Q2ZmFaVaIUYQHv6IU5Od42QKbeHaZfvRQABag6R4Eh?= =?us-ascii?q?N2jx9KFoNg9zdBDeZKisiMnwuu2LfodUp2PR7l8oLifcvhoDyuauTQx6dJCnnH?= =?us-ascii?q?PyL4o1Rj1frt1hEBxmHJFAG8kYtQqoH4aUmL2ni9+24056oOEKsa/sBf3L19m0?= =?us-ascii?q?xJtxUIZA5UyKPTfRA69rjl5jjuusnveTmqX2XNjvfdICSfhTXn/OariAGJ62bD?= =?us-ascii?q?2JJJHSYUlDpoaRzKgxdhyMeDrzVqGG/Hm8MPx5/V8xw6RicebTxSBr5Lbejoih?= =?us-ascii?q?L1pHrzuu+CbafKBU60bHUKmHBx8=3D?= X-IPAS-Result: =?us-ascii?q?A2CGAwD+M4Ra/wHyM5BdGwEBAQEDAQEBCQEBAYMlKgNmcCi?= =?us-ascii?q?DZYsYjQ6CfhuNOIkfggANGAMPiAdYFAECAQEBAQEBAgFqKII4JIJIAwMBAhcBC?= =?us-ascii?q?AQLAUkDCQEBJAISAQ8EAgIDAUUBDRkFiFyBRw0Dr0mBbTqFAYN9gh8BJYEPg3J?= =?us-ascii?q?IgU2BV4FogniFJAEBEgEJXgGCToJlAQSKbIdikWEJiCCHboVqDYMGiSWIGpgZg?= =?us-ascii?q?Tw2ImBwTSMVGSSCRgmCRwUcggd3CYsQAgILGASCIgEBAQ?= Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 14 Feb 2018 13:09:43 +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 w1ED9JY6010980; Wed, 14 Feb 2018 08:09:24 -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 w1E9rxZu064265 for ; Wed, 14 Feb 2018 04:53:59 -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 w1E9rqYA011953 for ; Wed, 14 Feb 2018 04:54:02 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A1D0AQB/BoRalywWGNZcHAEBAQQBAQoBA?= =?us-ascii?q?YMlKmlwKINlixiNM4J+G404iR+CAwobD4URAoJwWBQBAgEBAQEBAQITAQEBAQE?= =?us-ascii?q?GGAaFewMDGgEIBFIQJQISARMCAkkBDRmIYYFHDQOwIoFtOoUBg3+CEwEBCAEBA?= =?us-ascii?q?QEBI4EPg3JIgU2BV4FogniFJAEBEgEJXgGCToJlBYpsh2KRYQmIIIduhWoNgwa?= =?us-ascii?q?JJYgamBmBPDaBAnBNIxUZJIJGCYJHBRAMGYFudwmLEAICCxgEgiIBAQE?= X-IPAS-Result: =?us-ascii?q?A1D0AQB/BoRalywWGNZcHAEBAQQBAQoBAYMlKmlwKINlixi?= =?us-ascii?q?NM4J+G404iR+CAwobD4URAoJwWBQBAgEBAQEBAQITAQEBAQEGGAaFewMDGgEIB?= =?us-ascii?q?FIQJQISARMCAkkBDRmIYYFHDQOwIoFtOoUBg3+CEwEBCAEBAQEBI4EPg3JIgU2?= =?us-ascii?q?BV4FogniFJAEBEgEJXgGCToJlBYpsh2KRYQmIIIduhWoNgwaJJYgamBmBPDaBA?= =?us-ascii?q?nBNIxUZJIJGCYJHBRAMGYFudwmLEAICCxgEgiIBAQE?= X-IronPort-AV: E=Sophos; i="5.46,511,1511845200"; d="scan'208,217"; a="199623" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 14 Feb 2018 04:53:57 -0500 IronPort-PHdr: =?us-ascii?q?9a23=3AGaxvthcla2IEH7dK2rpbPT0RlGMj4u6mDksu8pMi?= =?us-ascii?q?zoh2WeGdxcu9ZR7h7PlgxGXEQZ/co6odzbaO6Oa7ASdYvt6oizMrSNR0TRgLiM?= =?us-ascii?q?EbzUQLIfWuLgnFFsPsdDEwB89YVVVorDmROElRH9viNRWJ+iXhpTEdFQ/iOgVr?= =?us-ascii?q?O+/7BpDdj9it1+C15pbffxhEiCCybL9uIhi6twvcutUZjYd+KKs61wfErGZPd+?= =?us-ascii?q?lK321jOEidnwz75se+/Z5j9zpftvc8/MNeUqv0Yro1Q6VAADspL2466svrtQLe?= =?us-ascii?q?TQSU/XsTTn8WkhtTDAfb6hzxQ4r8vTH7tup53ymaINH2QLUpUjms86tnVBnlgz?= =?us-ascii?q?oBOjUk8m/Yl9ZwgbpGrhyhuRJxzY3ab4ObNPVxYqzTcsgXRXZYXstLSyBNHp+w?= =?us-ascii?q?YokJAuEcPehYtY79p14WoBWkGwasGPnvwSJOiHDswK06z/4hHhrc0wM8H9IFrX?= =?us-ascii?q?PZrM3xNKgITOC10LPIwi7ZYP5Nwzfy9pXHchA7rvGQR75/bc3RyUw2Gg7Dk16e?= =?us-ascii?q?p4vlPzaP2eQMtWiW9/BgWvyyhG4nsQ5xviKjydsrionMgI8e11PK9T1hzYorON?= =?us-ascii?q?G1R1R3bcCrHZdKqS2WKZF6T8wtTm1wuSs3y6cKtYO4cSUI0pgr2RDSZvKdf4WK?= =?us-ascii?q?7B/uUvuaLy1ii3J/Yr2/gg6/8Ui+xe34Ucm5yFhFoDdZn9fSuH0AyQbd59SbRv?= =?us-ascii?q?Z85EuuxyiA1wXI6uFLO0w0kLDUK58lwrIqk5oTsEDDEjf3mEXwkqCWal0p9va1?= =?us-ascii?q?5+noeLnquJCRO5Vqhg3gKKgjlcOyDfw9MgcUXmib/eq81Kfk/U38WLhKlvk2nb?= =?us-ascii?q?PEsJDGP8QUvbS2DhRP0ok99hm/Dy2p0MgCkXYbK1JFfQqLj5L1NFHWPPD4EfC/?= =?us-ascii?q?jky3kDh1w/DGP7vhAojCL3XYjLfgfapy605byAYpy9Bf/IhbBqsOIPL0RE+i/O?= =?us-ascii?q?DfWwQ0Nw2y3vbPFMR21oRYX3mGRKCeLvD8q1iNs9oiP/PEQIYIpCz3IvMlr6r2?= =?us-ascii?q?iXYkhUUXdIGz0JcXYWz+FfNjdRbKKUHwi8sMRD9Z9jE1S/bn3QWP?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BQAQD/BYRalywWGNZcGwEBAQEDAQEBC?= =?us-ascii?q?QEBAYMlKmlwKINlixiNM4J+G404iR+CAwobD4URAoJwWBQBAgEBAQEBAQIBEgE?= =?us-ascii?q?BAQEBBhgGV4I4IoJKAwMaAQgEUhAlAhIBEwICSQENGYhhgUcNA7AigW06hQGDf?= =?us-ascii?q?4ITAQEIAQEBAQEBIoEPg3JIgU2BV4FogniFJAEBEgEJXgGCToJlBYpsh2KRYQm?= =?us-ascii?q?IIIduhWoNgwaJJYgamBmBPDaBAnBNIxUZJIJGCYJHBRAMGYFudwmLEAICCxgEg?= =?us-ascii?q?iIBAQE?= X-IPAS-Result: =?us-ascii?q?A0BQAQD/BYRalywWGNZcGwEBAQEDAQEBCQEBAYMlKmlwKIN?= =?us-ascii?q?lixiNM4J+G404iR+CAwobD4URAoJwWBQBAgEBAQEBAQIBEgEBAQEBBhgGV4I4I?= =?us-ascii?q?oJKAwMaAQgEUhAlAhIBEwICSQENGYhhgUcNA7AigW06hQGDf4ITAQEIAQEBAQE?= =?us-ascii?q?BIoEPg3JIgU2BV4FogniFJAEBEgEJXgGCToJlBYpsh2KRYQmIIIduhWoNgwaJJ?= =?us-ascii?q?YgamBmBPDaBAnBNIxUZJIJGCYJHBRAMGYFudwmLEAICCxgEgiIBAQE?= X-IronPort-AV: E=Sophos; i="5.46,511,1511827200"; d="scan'208,217"; a="8667590" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from usat3cpa06.eemsg.mail.mil ([214.24.22.44]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 14 Feb 2018 09:53:54 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;a8cc654d-ace2-4425-8ba1-09eb695a25b0 Authentication-Results: ukel19pa19.eemsg.mail.mil; dkim=none (message not signed) header.i=none X-EEMSG-check-008: 293500194|UKEL19PA19_EEMSG_MP12.csd.disa.mil X-EEMSG-SBRS: 5.2 X-EEMSG-ORIG-IP: 66.187.233.73 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CpAgASBYRamEnpu0K8fIsmBAIBAgITAQEBAQEeBleGbAFgAcYiiA6IBIUkAQETCV4BmAWheLVGgg4khRaOPgICCxw X-IPAS-Result: A0CpAgASBYRamEnpu0K8fIsmBAIBAgITAQEBAQEeBleGbAFgAcYiiA6IBIUkAQETCV4BmAWheLVGgg4khRaOPgICCxw Received: from mx3-rdu2.redhat.com (HELO mx1.redhat.com) ([66.187.233.73]) by ukel19pa19.eemsg.mail.mil with ESMTP; 14 Feb 2018 09:53:49 +0000 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E7C544040856 for ; Wed, 14 Feb 2018 09:53:48 +0000 (UTC) Received: from workstation.brq.redhat.com (unknown [10.43.12.173]) by smtp.corp.redhat.com (Postfix) with ESMTP id 00685100858D; Wed, 14 Feb 2018 09:53:47 +0000 (UTC) X-EEMSG-check-009: 444-444 From: Petr Lautrbach To: selinux@tycho.nsa.gov Date: Wed, 14 Feb 2018 10:53:35 +0100 Message-Id: <20180214095337.1945-3-plautrba@redhat.com> In-Reply-To: <20180214095337.1945-1-plautrba@redhat.com> References: <20180214095337.1945-1-plautrba@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Wed, 14 Feb 2018 09:53:48 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Wed, 14 Feb 2018 09:53:48 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'plautrba@redhat.com' RCPT:'' X-MIME-Autoconverted: from quoted-printable to 8bit by prometheus.infosec.tycho.ncsc.mil id w1E9rxZu064265 X-Mailman-Approved-At: Wed, 14 Feb 2018 08:09:14 -0500 Subject: [PATCH 2/4] gui/polgengui.py: Convert polgen.glade to Builder format polgen.ui X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP - $ gtk-builder-convert polgen.glade polgen.ui - use get_object instead of get_widget - use connect_signals instead of signal_connect Signed-off-by: Petr Lautrbach --- gui/Makefile | 2 +- gui/{polgen.glade => polgen.ui} | 967 +++++++++++++++++++--------------------- gui/polgengui.py | 201 +++++---- 3 files changed, 561 insertions(+), 609 deletions(-) rename gui/{polgen.glade => polgen.ui} (81%) diff --git a/gui/Makefile b/gui/Makefile index cfe47405..ff0fd001 100644 --- a/gui/Makefile +++ b/gui/Makefile @@ -12,7 +12,7 @@ fcontextPage.py \ html_util.py \ loginsPage.py \ modulesPage.py \ -polgen.glade \ +polgen.ui \ portsPage.py \ semanagePage.py \ statusPage.py \ diff --git a/gui/polgen.glade b/gui/polgen.ui similarity index 81% rename from gui/polgen.glade rename to gui/polgen.ui index 37c14723..aa4c70af 100644 --- a/gui/polgen.glade +++ b/gui/polgen.ui @@ -1,8 +1,8 @@ - - + + - + False 5 normal @@ -10,14 +10,14 @@ www.redhat.com GPL Daniel Walsh <dwalsh@redhat.com> - translator-credits + translator-credits - + False - + False - + False True @@ -25,10 +25,10 @@ 0 - + - - + + False 12 Add Booleans Dialog @@ -36,25 +36,24 @@ 400 dialog - + True False 6 - + True False end - + gtk-cancel - -6 True True True False True - + False False @@ -62,22 +61,21 @@ - + gtk-add - -5 True True True False True - + False False 1 - + False True @@ -86,7 +84,7 @@ - + True False 2 @@ -94,24 +92,24 @@ 12 6 - + True False 0 Boolean Name - + GTK_FILL - + True False 0 Description - + 1 2 @@ -120,15 +118,15 @@ - + True True - + False False True True - + 1 2 @@ -136,15 +134,15 @@ - + True True - + False False True True - + 1 2 @@ -153,17 +151,21 @@ - + True True 1 - + - - + + cancelbutton1 + okbutton1 + + + False 5 mouse @@ -171,25 +173,24 @@ True True - + True False 24 - + True False end - + gtk-cancel - -6 True True True False True - + False False @@ -197,23 +198,22 @@ - + gtk-add - -5 True True True True False True - + False False 1 - + False True @@ -221,36 +221,40 @@ 0 - + - - + + button5 + button6 + + + True False SELinux Policy Generation Tool - + True False 18 - + True False left False - + True False - + True False 0 <b>Select the policy type for the application or user role you want to confine:</b> True - + False False @@ -259,31 +263,31 @@ - + True False - + True False - + True False 12 - + True False 6 - + True False 0 <b>Applications</b> True - + False False @@ -291,15 +295,15 @@ - + True False - + True False - + False False @@ -307,20 +311,20 @@ - + True False 6 - + Standard Init Daemon True True False - Standard Init Daemon are daemons started on boot via init scripts. Usually requires a script in /etc/rc.d/init.d + Standard Init Daemon are daemons started on boot via init scripts. Usually requires a script in /etc/rc.d/init.d True True - + False False @@ -328,16 +332,16 @@ - + DBUS System Daemon True True False - Standard Init Daemon are daemons started on boot via init scripts. Usually requires a script in /etc/rc.d/init.d + Standard Init Daemon are daemons started on boot via init scripts. Usually requires a script in /etc/rc.d/init.d True True init_radiobutton - + False False @@ -345,16 +349,16 @@ - + Internet Services Daemon (inetd) True True False - Internet Services Daemon are daemons started by xinetd + Internet Services Daemon are daemons started by xinetd True True init_radiobutton - + False False @@ -362,16 +366,16 @@ - + Web Application/Script (CGI) True True False - Web Applications/Script (CGI) CGI scripts started by the web server (apache) + Web Applications/Script (CGI) CGI scripts started by the web server (apache) True True init_radiobutton - + False False @@ -379,16 +383,16 @@ - + User Application True True False - User Application are any application that you would like to confine that is started by a user + User Application are any application that you would like to confine that is started by a user True True init_radiobutton - + False False @@ -396,37 +400,37 @@ - + Sandbox True True False - User Application are any application that you would like to confine that is started by a user + User Application are any application that you would like to confine that is started by a user True True init_radiobutton - + False False 5 - + False False 1 - + True True 1 - + False True @@ -434,18 +438,18 @@ - + True False 6 - + True False 0 <b>Login Users</b> True - + False False @@ -453,15 +457,15 @@ - + True False - + True False - + False False @@ -469,21 +473,21 @@ - + True False 6 - + Existing User Roles True True False - Modify an existing login user record. + Modify an existing login user record. True True init_radiobutton - + False False @@ -491,16 +495,16 @@ - + Minimal Terminal User Role True True False - This user will login to a machine only via a terminal or remote login. By default this user will have no setuid, no networking, no su, no sudo. + This user will login to a machine only via a terminal or remote login. By default this user will have no setuid, no networking, no su, no sudo. True True init_radiobutton - + False False @@ -508,16 +512,16 @@ - + Minimal X Windows User Role True True False - This user can login to a machine via X or terminal. By default this user will have no setuid, no networking, no sudo, no su + This user can login to a machine via X or terminal. By default this user will have no setuid, no networking, no sudo, no su True True init_radiobutton - + False False @@ -525,16 +529,16 @@ - + User Role True True False - User with full networking, no setuid applications without transition, no sudo, no su. + User with full networking, no setuid applications without transition, no sudo, no su. True True init_radiobutton - + False False @@ -542,37 +546,37 @@ - + Admin User Role True True False - User with full networking, no setuid applications without transition, no su, can sudo to Root Administration Roles + User with full networking, no setuid applications without transition, no su, can sudo to Root Administration Roles True True init_radiobutton - + False False 4 - + True False 1 - + True True 1 - + False True @@ -580,18 +584,18 @@ - + True False 6 - + True False 0 <b>Root Users</b> True - + False False @@ -599,15 +603,15 @@ - + True False - + True False - + False False @@ -615,96 +619,92 @@ - + True False - + Root Admin User Role True True False - Select Root Administrator User Role, if this user will be used to administer the machine while running as root. This user will not be able to login to the system directly. + Select Root Administrator User Role, if this user will be used to administer the machine while running as root. This user will not be able to login to the system directly. True True init_radiobutton - + False False 0 - + False False 1 - + True True 1 - + True True 2 - + True True 0 - + True True 0 - + True True 1 - - - True - + - - + + True False Main Tab - + False - tab - + True False - + True False 0 <b>Enter name of application or user role:</b> True - + False False @@ -713,7 +713,7 @@ - + True False 3 @@ -721,28 +721,28 @@ 12 6 - + True False 0 Name - + GTK_FILL - + True True - Enter complete path for executable to be confined. - + Enter complete path for executable to be confined. + False False True True - + 1 2 @@ -752,14 +752,14 @@ - + ... True True False True - - + + 2 3 @@ -770,16 +770,16 @@ - + True True - Enter unique name for the confined application or user role. - + Enter unique name for the confined application or user role. + False False True True - + 1 3 @@ -787,12 +787,12 @@ - + True False 0 Executable - + 1 2 @@ -801,12 +801,12 @@ - + True False 0 Init script - + 2 3 @@ -815,16 +815,16 @@ - + True True - Enter complete path to init script used to start the confined application. - + Enter complete path to init script used to start the confined application. + False False True True - + 1 2 @@ -834,14 +834,14 @@ - + ... True True False True - - + + 2 3 @@ -851,42 +851,38 @@ - + True True 1 - - - 1 - + - - + + True False Name Tab - + 1 False - tab - + True False - + True False 0 <b>Select existing role to modify:</b> True - + False False @@ -895,56 +891,52 @@ - + True True automatic automatic in - + True True - Select the user roles that will transiton to the %s domain. + Select the user roles that will transiton to the %s domain. False - + - + True True 1 - - - 2 - + - - + + True False role tab - + 2 False - tab - + True False - + True False 0 <b>Select roles that %s will transition to:</b> True - + False False @@ -953,54 +945,50 @@ - + True True - + True True - Select applications domains that %s will transition to. + Select applications domains that %s will transition to. False - + - + True True 1 - - - 3 - + - - + + True False transition role tab - + 3 False - tab - + True False - + True False 0 <b>Select the user_roles that will transition to %s:</b> True - + False False @@ -1009,53 +997,49 @@ role tab - + True True - + True True - Select the user roles that will transiton to this applications domains. + Select the user roles that will transiton to this applications domains. False - + - + True True 1 - - - 4 - + - - + + True False User Tab - + 4 False - tab - + True False - + True False 0 <b>Select domains that %s will administer:</b> True - + False False @@ -1064,53 +1048,49 @@ role tab - + True True - + True True - Select the domains that you would like this user administer. + Select the domains that you would like this user administer. False - + - + True True 1 - - - 5 - + - - + + True False Admin Tab - + 5 False - tab - + True False - + True False 0 <b>Select additional roles for %s:</b> True - + False False @@ -1119,53 +1099,49 @@ role tab - + True True - + True True - Select the domains that you would like this user administer. + Select the domains that you would like this user administer. False - + - + True True 1 - - - 6 - + - - + + True False Roles Tab - + 6 False - tab - + True False - + True False 0 <b>Enter network ports that %s binds on:</b> True - + False False @@ -1174,18 +1150,18 @@ role tab - + True False 6 - + True False 0 <b>TCP Ports</b> True - + False False @@ -1193,15 +1169,15 @@ role tab - + True False - + True False - + False False @@ -1209,25 +1185,25 @@ role tab - + True False 6 - + True False 12 - + All True True False - Allows %s to bind to any udp port + Allows %s to bind to any udp port True True - + False False @@ -1236,15 +1212,15 @@ role tab - + 600-1024 True True False - Allow %s to call bindresvport with 0. Binding to port 600-1024 + Allow %s to call bindresvport with 0. Binding to port 600-1024 True True - + False False @@ -1253,15 +1229,15 @@ role tab - + Unreserved Ports (>1024) True True False - Enter a comma separated list of udp ports or ranges of ports that %s binds to. Example: 612, 650-660 + Enter a comma separated list of udp ports or ranges of ports that %s binds to. Example: 612, 650-660 True True - + False False @@ -1269,7 +1245,7 @@ role tab 2 - + True True @@ -1277,17 +1253,17 @@ role tab - + True False 12 - + True False 0 Select Ports - + False False @@ -1296,44 +1272,44 @@ role tab - + True True - Allows %s to bind to any udp ports > 1024 - + Allows %s to bind to any udp ports > 1024 + False False True True - + True True 1 - + True True 1 - + True True 1 - + True True 1 - + True True @@ -1341,18 +1317,18 @@ role tab - + True False 6 - + True False 0 <b>UDP Ports</b> True - + False False @@ -1360,15 +1336,15 @@ role tab - + True False - + True False - + False False @@ -1376,25 +1352,25 @@ role tab - + True False 6 - + True False 12 - + All True True False - Allows %s to bind to any udp port + Allows %s to bind to any udp port True True - + False False @@ -1403,15 +1379,15 @@ role tab - + 600-1024 True True False - Allow %s to call bindresvport with 0. Binding to port 600-1024 + Allow %s to call bindresvport with 0. Binding to port 600-1024 True True - + False False @@ -1420,15 +1396,15 @@ role tab - + Unreserved Ports (>1024) True True False - Enter a comma separated list of udp ports or ranges of ports that %s binds to. Example: 612, 650-660 + Enter a comma separated list of udp ports or ranges of ports that %s binds to. Example: 612, 650-660 True True - + False False @@ -1436,7 +1412,7 @@ role tab 2 - + True True @@ -1444,17 +1420,17 @@ role tab - + True False 12 - + True False 0 Select Ports - + False False @@ -1463,80 +1439,76 @@ role tab - + True True - Allows %s to bind to any udp ports > 1024 - + Allows %s to bind to any udp ports > 1024 + False False True True - + True True 1 - + True True 1 - + True True 1 - + True True 1 - + True True 2 - - - 7 - + - - + + True False Network Bind tab - + 7 False - tab - + True False - + True False 0 <b>Select network ports that %s connects to:</b> True - + False False @@ -1545,18 +1517,18 @@ Bind tab - + True False 6 - + True False 0 <b>TCP Ports</b> True - + False False @@ -1564,15 +1536,15 @@ Bind tab - + True False - + True False - + False False @@ -1580,20 +1552,20 @@ Bind tab - + True False 12 - + All True True False - Allows %s to connect to any tcp port + Allows %s to connect to any tcp port True True - + False False @@ -1602,12 +1574,12 @@ Bind tab - + True False 0 Select Ports - + False False @@ -1616,37 +1588,37 @@ Bind tab - + True True - Enter a comma separated list of tcp ports or ranges of ports that %s connects to. Example: 612, 650-660 - + Enter a comma separated list of tcp ports or ranges of ports that %s connects to. Example: 612, 650-660 + False False True True - + True True 2 - + True True 1 - + True True 1 - + True True @@ -1654,18 +1626,18 @@ Bind tab - + True False 6 - + True False 0 <b>UDP Ports</b> True - + False False @@ -1673,15 +1645,15 @@ Bind tab - + True False - + True False - + False False @@ -1689,20 +1661,20 @@ Bind tab - + True False 12 - + All True True False - Allows %s to connect to any udp port + Allows %s to connect to any udp port True True - + False False @@ -1711,12 +1683,12 @@ Bind tab - + True False 0 Select Ports - + False False @@ -1725,73 +1697,69 @@ Bind tab - + True True - Enter a comma separated list of udp ports or ranges of ports that %s connects to. Example: 612, 650-660 - + Enter a comma separated list of udp ports or ranges of ports that %s connects to. Example: 612, 650-660 + False False True True - + True True 2 - + True True 1 - + True True 1 - + True True 2 - - - 8 - + - - + + True False Network Connect Tab - + 8 False - tab - + True False - + True False 0 <b>Select common application traits for %s:</b> True - + False False @@ -1800,19 +1768,19 @@ Connect Tab - + True False 6 - + Writes syslog messages True True False True True - + False False @@ -1820,14 +1788,14 @@ Connect Tab - + Create/Manipulate temporary files in /tmp True True False True True - + False False @@ -1835,14 +1803,14 @@ Connect Tab - + Uses Pam for authentication True True False True True - + False False @@ -1850,14 +1818,14 @@ Connect Tab - + Uses nsswitch or getpw* calls True True False True True - + False False @@ -1865,14 +1833,14 @@ Connect Tab - + Uses dbus True True False True True - + False False @@ -1880,14 +1848,14 @@ Connect Tab - + Sends audit messages True True False True True - + False False @@ -1895,14 +1863,14 @@ Connect Tab - + Interacts with the terminal True True False True True - + False False @@ -1910,57 +1878,53 @@ Connect Tab - + Sends email True True False True True - + False False 7 - + True True 1 - - - 9 - + - - + + True False Common Tab - + 9 False - tab - + True False - + True False 0 <b>Add files/directories that %s manages</b> True - + False False @@ -1969,38 +1933,38 @@ Tab - + True False 12 - + True False 6 - + True True False - + - + True False 0 0 - + True False 2 - + True False gtk-add - + False False @@ -2008,23 +1972,23 @@ Tab - + True False Add File True - + False False 1 - + - + - + False False @@ -2032,28 +1996,28 @@ Tab - + True True False - + - + True False 0 0 - + True False 2 - + True False gtk-add - + False False @@ -2061,23 +2025,23 @@ Tab - + True False Add Directory True - + False False 1 - + - + - + False False @@ -2085,22 +2049,22 @@ Tab - + gtk-delete True True False True - + - + False False 2 - + False False @@ -2109,63 +2073,59 @@ Tab - + True True automatic automatic in - + True True - Files/Directories which the %s "manages". Pid Files, Log Files, /var/lib Files ... + Files/Directories which the %s "manages". Pid Files, Log Files, /var/lib Files ... False - + - + True True 1 - + True True 1 - - - 10 - + - - + + True False Add Tab - + 10 False - tab - + True False - + True False 0 <b>Add booleans from the %s policy:</b> True - + False False @@ -2174,38 +2134,38 @@ Tab - + True False 12 - + True False 6 - + True True False - + - + True False 0 0 - + True False 2 - + True False gtk-add - + False False @@ -2213,23 +2173,23 @@ Tab - + True False Add Boolean True - + False False 1 - + - + - + False False @@ -2237,22 +2197,22 @@ Tab - + gtk-delete True True False True - + - + False False 1 - + False True @@ -2261,61 +2221,57 @@ Tab - + True True automatic automatic in - + True True - Add/Remove booleans used by the %s domain - + Add/Remove booleans used by the %s domain + - + True True 1 - + True True 1 - - - 11 - + - - + + True False - + 11 False - tab - + True False - + True False 0 <b>Which directory you will generate the %s policy?</b> True - + False False @@ -2323,16 +2279,16 @@ Tab - + True False 12 - + True False Policy Directory - + False False @@ -2341,15 +2297,15 @@ Tab - + True True - + False False True True - + True True @@ -2357,20 +2313,20 @@ Tab - + ... True True False True - + False False 2 - + False False @@ -2378,23 +2334,19 @@ Tab 1 - - - 12 - + - - + + True False - + 12 False - tab - + True True @@ -2402,20 +2354,19 @@ Tab - + True False end - + gtk-cancel True True True False True - - + False False @@ -2423,15 +2374,14 @@ Tab - + gtk-go-back True True True False True - - + False False @@ -2439,22 +2389,21 @@ Tab - + gtk-go-forward True True True False True - - + False False 2 - + False False @@ -2462,7 +2411,7 @@ Tab 1 - + - - + + diff --git a/gui/polgengui.py b/gui/polgengui.py index 09723278..cd73ea6d 100644 --- a/gui/polgengui.py +++ b/gui/polgengui.py @@ -97,10 +97,10 @@ def foreach(model, path, iter, selected): ## xml = Gtk.Builder() xml.set_translation_domain(PROGNAME) -if os.access("polgen.glade", os.F_OK): - xml.add_from_file("polgen.glade") +if os.access("polgen.ui", os.F_OK): + xml.add_from_file("polgen.ui") else: - xml.add_from_file("/usr/share/system-config-selinux/polgen.glade") + xml.add_from_file("/usr/share/system-config-selinux/polgen.ui") FILE = 1 DIR = 2 @@ -125,82 +125,82 @@ class childWindow: def __init__(self): self.xml = xml - self.notebook = xml.get_widget("notebook") + self.notebook = xml.get_object("notebook") self.label_dict = {} self.tooltip_dict = {} - label = xml.get_widget("select_label") + label = xml.get_object("select_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("select_user_roles_label") + label = xml.get_object("select_user_roles_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("select_dir_label") + label = xml.get_object("select_dir_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("select_domain_admin_label") + label = xml.get_object("select_domain_admin_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("select_in_label") + label = xml.get_object("select_in_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("select_out_label") + label = xml.get_object("select_out_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("select_common_label") + label = xml.get_object("select_common_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("select_manages_label") + label = xml.get_object("select_manages_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("select_booleans_label") + label = xml.get_object("select_booleans_label") self.label_dict[label] = label.get_text() - label = xml.get_widget("existing_user_treeview") + label = xml.get_object("existing_user_treeview") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("transition_treeview") + label = xml.get_object("transition_treeview") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("in_tcp_all_checkbutton") + label = xml.get_object("in_tcp_all_checkbutton") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("in_tcp_reserved_checkbutton") + label = xml.get_object("in_tcp_reserved_checkbutton") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("in_tcp_unreserved_checkbutton") + label = xml.get_object("in_tcp_unreserved_checkbutton") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("in_tcp_entry") + label = xml.get_object("in_tcp_entry") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("in_udp_all_checkbutton") + label = xml.get_object("in_udp_all_checkbutton") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("in_udp_reserved_checkbutton") + label = xml.get_object("in_udp_reserved_checkbutton") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("in_udp_unreserved_checkbutton") + label = xml.get_object("in_udp_unreserved_checkbutton") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("in_udp_entry") + label = xml.get_object("in_udp_entry") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("out_tcp_entry") + label = xml.get_object("out_tcp_entry") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("out_udp_entry") + label = xml.get_object("out_udp_entry") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("out_tcp_all_checkbutton") + label = xml.get_object("out_tcp_all_checkbutton") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("out_udp_all_checkbutton") + label = xml.get_object("out_udp_all_checkbutton") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("boolean_treeview") + label = xml.get_object("boolean_treeview") self.tooltip_dict[label] = label.get_tooltip_text() - label = xml.get_widget("write_treeview") + label = xml.get_object("write_treeview") self.tooltip_dict[label] = label.get_tooltip_text() try: @@ -216,23 +216,26 @@ class childWindow: self.error(str(e)) self.name = "" - xml.signal_connect("on_delete_clicked", self.delete) - xml.signal_connect("on_delete_boolean_clicked", self.delete_boolean) - xml.signal_connect("on_exec_select_clicked", self.exec_select) - xml.signal_connect("on_init_script_select_clicked", self.init_script_select) - xml.signal_connect("on_add_clicked", self.add) - xml.signal_connect("on_add_boolean_clicked", self.add_boolean) - xml.signal_connect("on_add_dir_clicked", self.add_dir) - xml.signal_connect("on_about_clicked", self.on_about_clicked) - xml.get_widget("cancel_button").connect("clicked", self.quit) - self.forward_button = xml.get_widget("forward_button") + handlers = { + "on_delete_clicked": self.delete, + "on_delete_boolean_clicked": self.delete_boolean, + "on_exec_select_clicked": self.exec_select, + "on_init_script_select_clicked": self.init_script_select, + "on_add_clicked": self.add, + "on_add_boolean_clicked": self.add_boolean, + "on_add_dir_clicked": self.add_dir, + "on_about_clicked": self.on_about_clicked + } + xml.connect_signals(handlers) + xml.get_object("cancel_button").connect("clicked", self.quit) + self.forward_button = xml.get_object("forward_button") self.forward_button.connect("clicked", self.forward) - self.back_button = xml.get_widget("back_button") + self.back_button = xml.get_object("back_button") self.back_button.connect("clicked", self.back) - self.boolean_dialog = xml.get_widget("boolean_dialog") - self.boolean_name_entry = xml.get_widget("boolean_name_entry") - self.boolean_description_entry = xml.get_widget("boolean_description_entry") + self.boolean_dialog = xml.get_object("boolean_dialog") + self.boolean_name_entry = xml.get_object("boolean_name_entry") + self.boolean_description_entry = xml.get_object("boolean_description_entry") self.pages = {} for i in sepolicy.generate.USERS: @@ -251,34 +254,34 @@ class childWindow: self.network_buttons = {} - self.in_tcp_all_checkbutton = xml.get_widget("in_tcp_all_checkbutton") - self.in_tcp_reserved_checkbutton = xml.get_widget("in_tcp_reserved_checkbutton") - self.in_tcp_unreserved_checkbutton = xml.get_widget("in_tcp_unreserved_checkbutton") - self.in_tcp_entry = self.xml.get_widget("in_tcp_entry") + self.in_tcp_all_checkbutton = xml.get_object("in_tcp_all_checkbutton") + self.in_tcp_reserved_checkbutton = xml.get_object("in_tcp_reserved_checkbutton") + self.in_tcp_unreserved_checkbutton = xml.get_object("in_tcp_unreserved_checkbutton") + self.in_tcp_entry = self.xml.get_object("in_tcp_entry") self.network_buttons[self.in_tcp_all_checkbutton] = [self.in_tcp_reserved_checkbutton, self.in_tcp_unreserved_checkbutton, self.in_tcp_entry] - self.out_tcp_all_checkbutton = xml.get_widget("out_tcp_all_checkbutton") - self.out_tcp_reserved_checkbutton = xml.get_widget("out_tcp_reserved_checkbutton") - self.out_tcp_unreserved_checkbutton = xml.get_widget("out_tcp_unreserved_checkbutton") - self.out_tcp_entry = self.xml.get_widget("out_tcp_entry") + self.out_tcp_all_checkbutton = xml.get_object("out_tcp_all_checkbutton") + self.out_tcp_reserved_checkbutton = xml.get_object("out_tcp_reserved_checkbutton") + self.out_tcp_unreserved_checkbutton = xml.get_object("out_tcp_unreserved_checkbutton") + self.out_tcp_entry = self.xml.get_object("out_tcp_entry") self.network_buttons[self.out_tcp_all_checkbutton] = [self.out_tcp_entry] - self.in_udp_all_checkbutton = xml.get_widget("in_udp_all_checkbutton") - self.in_udp_reserved_checkbutton = xml.get_widget("in_udp_reserved_checkbutton") - self.in_udp_unreserved_checkbutton = xml.get_widget("in_udp_unreserved_checkbutton") - self.in_udp_entry = self.xml.get_widget("in_udp_entry") + self.in_udp_all_checkbutton = xml.get_object("in_udp_all_checkbutton") + self.in_udp_reserved_checkbutton = xml.get_object("in_udp_reserved_checkbutton") + self.in_udp_unreserved_checkbutton = xml.get_object("in_udp_unreserved_checkbutton") + self.in_udp_entry = self.xml.get_object("in_udp_entry") self.network_buttons[self.in_udp_all_checkbutton] = [self.in_udp_reserved_checkbutton, self.in_udp_unreserved_checkbutton, self.in_udp_entry] - self.out_udp_all_checkbutton = xml.get_widget("out_udp_all_checkbutton") - self.out_udp_entry = self.xml.get_widget("out_udp_entry") + self.out_udp_all_checkbutton = xml.get_object("out_udp_all_checkbutton") + self.out_udp_entry = self.xml.get_object("out_udp_entry") self.network_buttons[self.out_udp_all_checkbutton] = [self.out_udp_entry] for b in self.network_buttons.keys(): b.connect("clicked", self.network_all_clicked) - self.boolean_treeview = self.xml.get_widget("boolean_treeview") + self.boolean_treeview = self.xml.get_object("boolean_treeview") self.boolean_store = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_STRING) self.boolean_treeview.set_model(self.boolean_store) self.boolean_store.set_sort_column_id(0, Gtk.SortType.ASCENDING) @@ -287,7 +290,7 @@ class childWindow: col = Gtk.TreeViewColumn(_("Description"), Gtk.CellRendererText(), text=1) self.boolean_treeview.append_column(col) - self.role_treeview = self.xml.get_widget("role_treeview") + self.role_treeview = self.xml.get_object("role_treeview") self.role_store = Gtk.ListStore(GObject.TYPE_STRING) self.role_treeview.set_model(self.role_store) self.role_treeview.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) @@ -295,7 +298,7 @@ class childWindow: col = Gtk.TreeViewColumn(_("Role"), Gtk.CellRendererText(), text=0) self.role_treeview.append_column(col) - self.existing_user_treeview = self.xml.get_widget("existing_user_treeview") + self.existing_user_treeview = self.xml.get_object("existing_user_treeview") self.existing_user_store = Gtk.ListStore(GObject.TYPE_STRING) self.existing_user_treeview.set_model(self.existing_user_store) self.existing_user_store.set_sort_column_id(0, Gtk.SortType.ASCENDING) @@ -306,9 +309,9 @@ class childWindow: iter = self.role_store.append() self.role_store.set_value(iter, 0, i[:-2]) - self.in_tcp_reserved_checkbutton = xml.get_widget("in_tcp_reserved_checkbutton") + self.in_tcp_reserved_checkbutton = xml.get_object("in_tcp_reserved_checkbutton") - self.transition_treeview = self.xml.get_widget("transition_treeview") + self.transition_treeview = self.xml.get_object("transition_treeview") self.transition_store = Gtk.ListStore(GObject.TYPE_STRING) self.transition_treeview.set_model(self.transition_store) self.transition_treeview.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) @@ -316,7 +319,7 @@ class childWindow: col = Gtk.TreeViewColumn(_("Application"), Gtk.CellRendererText(), text=0) self.transition_treeview.append_column(col) - self.user_transition_treeview = self.xml.get_widget("user_transition_treeview") + self.user_transition_treeview = self.xml.get_object("user_transition_treeview") self.user_transition_store = Gtk.ListStore(GObject.TYPE_STRING) self.user_transition_treeview.set_model(self.user_transition_store) self.user_transition_treeview.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) @@ -330,7 +333,7 @@ class childWindow: iter = self.existing_user_store.append() self.existing_user_store.set_value(iter, 0, i[:-2]) - self.admin_treeview = self.xml.get_widget("admin_treeview") + self.admin_treeview = self.xml.get_object("admin_treeview") self.admin_store = Gtk.ListStore(GObject.TYPE_STRING) self.admin_treeview.set_model(self.admin_store) self.admin_treeview.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) @@ -385,7 +388,7 @@ class childWindow: if self.pages[type][self.current_page] == self.FINISH_PAGE: self.generate_policy() - self.xml.get_widget("cancel_button").set_label(Gtk.STOCK_CLOSE) + self.xml.get_object("cancel_button").set_label(Gtk.STOCK_CLOSE) else: self.current_page = self.current_page + 1 self.notebook.set_current_page(self.pages[type][self.current_page]) @@ -605,7 +608,7 @@ class childWindow: self.__add(DIR) def on_about_clicked(self, args): - dlg = xml.get_widget("about_dialog") + dlg = xml.get_object("about_dialog") dlg.run() dlg.hide() @@ -614,43 +617,43 @@ class childWindow: def setupScreen(self): # Bring in widgets from glade file. - self.mainWindow = self.xml.get_widget("main_window") - self.druid = self.xml.get_widget("druid") + self.mainWindow = self.xml.get_object("main_window") + self.druid = self.xml.get_object("druid") self.type = 0 - self.name_entry = self.xml.get_widget("name_entry") + self.name_entry = self.xml.get_object("name_entry") self.name_entry.connect("insert_text", self.on_name_entry_changed) self.name_entry.connect("focus_out_event", self.on_focus_out_event) - self.exec_entry = self.xml.get_widget("exec_entry") - self.exec_button = self.xml.get_widget("exec_button") - self.init_script_entry = self.xml.get_widget("init_script_entry") - self.init_script_button = self.xml.get_widget("init_script_button") - self.output_entry = self.xml.get_widget("output_entry") + self.exec_entry = self.xml.get_object("exec_entry") + self.exec_button = self.xml.get_object("exec_button") + self.init_script_entry = self.xml.get_object("init_script_entry") + self.init_script_button = self.xml.get_object("init_script_button") + self.output_entry = self.xml.get_object("output_entry") self.output_entry.set_text(os.getcwd()) - self.xml.get_widget("output_button").connect("clicked", self.output_button_clicked) - - self.xwindows_user_radiobutton = self.xml.get_widget("xwindows_user_radiobutton") - self.terminal_user_radiobutton = self.xml.get_widget("terminal_user_radiobutton") - self.root_user_radiobutton = self.xml.get_widget("root_user_radiobutton") - self.login_user_radiobutton = self.xml.get_widget("login_user_radiobutton") - self.admin_user_radiobutton = self.xml.get_widget("admin_user_radiobutton") - self.existing_user_radiobutton = self.xml.get_widget("existing_user_radiobutton") - - self.user_radiobutton = self.xml.get_widget("user_radiobutton") - self.init_radiobutton = self.xml.get_widget("init_radiobutton") - self.inetd_radiobutton = self.xml.get_widget("inetd_radiobutton") - self.dbus_radiobutton = self.xml.get_widget("dbus_radiobutton") - self.cgi_radiobutton = self.xml.get_widget("cgi_radiobutton") - self.sandbox_radiobutton = self.xml.get_widget("sandbox_radiobutton") - self.tmp_checkbutton = self.xml.get_widget("tmp_checkbutton") - self.uid_checkbutton = self.xml.get_widget("uid_checkbutton") - self.pam_checkbutton = self.xml.get_widget("pam_checkbutton") - self.dbus_checkbutton = self.xml.get_widget("dbus_checkbutton") - self.audit_checkbutton = self.xml.get_widget("audit_checkbutton") - self.terminal_checkbutton = self.xml.get_widget("terminal_checkbutton") - self.mail_checkbutton = self.xml.get_widget("mail_checkbutton") - self.syslog_checkbutton = self.xml.get_widget("syslog_checkbutton") - self.view = self.xml.get_widget("write_treeview") - self.file_dialog = self.xml.get_widget("filechooserdialog") + self.xml.get_object("output_button").connect("clicked", self.output_button_clicked) + + self.xwindows_user_radiobutton = self.xml.get_object("xwindows_user_radiobutton") + self.terminal_user_radiobutton = self.xml.get_object("terminal_user_radiobutton") + self.root_user_radiobutton = self.xml.get_object("root_user_radiobutton") + self.login_user_radiobutton = self.xml.get_object("login_user_radiobutton") + self.admin_user_radiobutton = self.xml.get_object("admin_user_radiobutton") + self.existing_user_radiobutton = self.xml.get_object("existing_user_radiobutton") + + self.user_radiobutton = self.xml.get_object("user_radiobutton") + self.init_radiobutton = self.xml.get_object("init_radiobutton") + self.inetd_radiobutton = self.xml.get_object("inetd_radiobutton") + self.dbus_radiobutton = self.xml.get_object("dbus_radiobutton") + self.cgi_radiobutton = self.xml.get_object("cgi_radiobutton") + self.sandbox_radiobutton = self.xml.get_object("sandbox_radiobutton") + self.tmp_checkbutton = self.xml.get_object("tmp_checkbutton") + self.uid_checkbutton = self.xml.get_object("uid_checkbutton") + self.pam_checkbutton = self.xml.get_object("pam_checkbutton") + self.dbus_checkbutton = self.xml.get_object("dbus_checkbutton") + self.audit_checkbutton = self.xml.get_object("audit_checkbutton") + self.terminal_checkbutton = self.xml.get_object("terminal_checkbutton") + self.mail_checkbutton = self.xml.get_object("mail_checkbutton") + self.syslog_checkbutton = self.xml.get_object("syslog_checkbutton") + self.view = self.xml.get_object("write_treeview") + self.file_dialog = self.xml.get_object("filechooserdialog") self.store = Gtk.ListStore(GObject.TYPE_STRING, GObject.TYPE_INT) self.view.set_model(self.store)