From patchwork Sun Aug 28 12:14:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: bauen1 X-Patchwork-Id: 12957230 X-Patchwork-Delegate: plautrba@redhat.com Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0479EC0502A for ; Sun, 28 Aug 2022 12:14:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229500AbiH1MOP (ORCPT ); Sun, 28 Aug 2022 08:14:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52590 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229476AbiH1MOO (ORCPT ); Sun, 28 Aug 2022 08:14:14 -0400 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2ACD31C116 for ; Sun, 28 Aug 2022 05:14:11 -0700 (PDT) Received: by mail-wr1-x42d.google.com with SMTP id bq11so6973747wrb.12 for ; Sun, 28 Aug 2022 05:14:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20210112; h=content-transfer-encoding:content-language:cc:to:subject:user-agent :mime-version:date:message-id:from:from:to:cc; bh=rWhaO3ylTxUS6kzVQnM+E5FOc4XZHBdjwlTD85IcsvM=; b=CCzoO1JoYcsTT77gttyWGADIc//nwqguRbARGTr6oS67ac1uklje7B1FoYrYu5zsfo ORAjpMyK4ULK+iA/qM/TgNHjdayKjDsIheKjSvm1L8f/JWL308hDbyoUp6oEaY+s1Epd 8nvzqXolhQNr3JPVtU4WSIPwZ7xnPvrLDYLpsuVYaPkFb4rXwv/JK66C67NJlOiPJLXa BUYIdv9js+8UxH5DIzXpeTb6hlf5DX1nCSu+gb9U4JkPgd674G/eiex1jiGg3EdA4aZH l7/pkjbT9QAxmDyHg8204yWc76ytbdkls2N/RgL1M0QQyqrYR0Heaa+2TBL3DMYs2ANZ 9XlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:cc:to:subject:user-agent :mime-version:date:message-id:from:x-gm-message-state:from:to:cc; bh=rWhaO3ylTxUS6kzVQnM+E5FOc4XZHBdjwlTD85IcsvM=; b=iKkSkLNLOr392jstAi+zm+uuwK/FEkyEI5iXV2b8rFSTcpBQ03RPUtwFvZLnkQRPAF uCkH+oJFKPc/fac2GuFYiyCC5d/2lhD/uPlfQ+Tu9ksz2pJIlF8aer8y8r3s4MuPT6tm 83AbcyW6mw9JpBn3bu4EM5nbUw67rNKw06YP0wcvLDmgMb0L2mdAUWFJkNBuwUcbUgcq ovt8ONDJYp6VlPC14/p8dPnb0j8NGq9NkjvPyNyRkOygkgqq7KvbZSml4pCd7Pi5/Bpr 6w4IjFdTUr74w0PbnNBowqpGYNTCC+RewjDhZQOx3THgu+v2sUpfl0Kqs1B739UvOgxG JI9g== X-Gm-Message-State: ACgBeo31qi43vQ/jFJrGOqiylFsHR+C96W6iE61hkJFkXIl1Mq0o98i9 hjV2fPQgQafd6PTFPqAfNjMgn4EDKtc= X-Google-Smtp-Source: AA6agR5DDyR4etTeg099Orwya3i/ywBDN/jRCUPj7GUc8W8aCVCx8QvXBCYJZdcqhvlfl131W4V1+w== X-Received: by 2002:a05:6000:1561:b0:225:337b:454b with SMTP id 1-20020a056000156100b00225337b454bmr3877975wrz.660.1661688849774; Sun, 28 Aug 2022 05:14:09 -0700 (PDT) Received: from ?IPV6:2001:a61:3450:ee01:9da9:8337:59d2:c8c4? ([2001:a61:3450:ee01:9da9:8337:59d2:c8c4]) by smtp.gmail.com with ESMTPSA id p13-20020a05600c358d00b003a8418ee646sm2549674wmq.12.2022.08.28.05.14.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 28 Aug 2022 05:14:09 -0700 (PDT) From: bauen1 X-Google-Original-From: bauen1 Message-ID: <4ad30dd7-ec19-e88a-848e-98de8af7a16b@gmail.com> Date: Sun, 28 Aug 2022 14:14:03 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.1.1 Subject: [PATCH 1/3] secilc/docs: selinuxuser actually takes a string not identifier To: selinux@vger.kernel.org Cc: bauen1 Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: selinux@vger.kernel.org Update parameter table and add note to example. This can very easily lead to confusion, because secilc does not reject e.g. (selinuxuser "admin_1" admin low_low). Signed-off-by: Jonathan Hettwer (bauen1) --- secilc/docs/cil_user_statements.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/secilc/docs/cil_user_statements.md b/secilc/docs/cil_user_statements.md index d5674f12..45a52140 100644 --- a/secilc/docs/cil_user_statements.md +++ b/secilc/docs/cil_user_statements.md @@ -429,7 +429,7 @@ Associates a GNU/Linux user to a previously declared [`user`](cil_user_statement

user_id

-

A previously declared SELinux user identifier.

+

A string referencing a previously declared SELinux user identifier.

userrange_id

@@ -445,7 +445,8 @@ This example will associate `unconfined.admin` user with a GNU / Linux user "`ad ```secil (block unconfined (user admin) - (selinuxuser admin_1 admin low_low) + ; XXX: Because the user_id is a string, the fully qualified identifier needs to be used here: + (selinuxuser "admin_1" "unconfined.admin" low_low) ) ``` From patchwork Sun Aug 28 12:14:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: bauen1 X-Patchwork-Id: 12957231 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 616F7C0502A for ; Sun, 28 Aug 2022 12:14:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229527AbiH1MO0 (ORCPT ); Sun, 28 Aug 2022 08:14:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52602 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229476AbiH1MOZ (ORCPT ); Sun, 28 Aug 2022 08:14:25 -0400 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 100B11C928 for ; Sun, 28 Aug 2022 05:14:24 -0700 (PDT) Received: by mail-wm1-x32b.google.com with SMTP id d12-20020a05600c34cc00b003a83d20812fso1484331wmq.1 for ; Sun, 28 Aug 2022 05:14:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20210112; h=content-transfer-encoding:content-language:cc:to:subject:user-agent :mime-version:date:message-id:from:from:to:cc; bh=FWOPtWEPXB8HV7+NiaCnk4VGrD2RIAQvaijhjOW/o1w=; b=Uq5QWJ2GjZwViFErddPU562eW8P4d7jRyRE4FOAGnW/XXYd+sCPOXzBXjeSM9ijyO1 rcAlDIRtg5d9LJ/ZSYK+1DgQMRB/PDN6j6pokIrP6Uq5og5KTnZUiizGCAnz6y/t0FGK mI5urN/LRtHL0ib5irdGipAXCoI8CyeWTTZ/W7dLK9ptV3F3LqwldkE4FIZKL4A4cyxs 0cJMUdi+oRrhy0kPbS6FtfCq89hmSl6ddTpcq+EUVYQmc9a9MIHYVQ9wrhd0aBQKSqkX N4wrBH4HxDq5DKJSO7hC6dDWm4H6i2QlI3jXmhXV5Wfrqk+T90w8aeW+ALp9N6Nx4A4r uhnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:cc:to:subject:user-agent :mime-version:date:message-id:from:x-gm-message-state:from:to:cc; bh=FWOPtWEPXB8HV7+NiaCnk4VGrD2RIAQvaijhjOW/o1w=; b=P7b0yPPZ5sAGUE6q1zj83dzh+hOkAx0T0HEp2S1pHwCIijn64wsjV+ONLpS4RHBt1l FfHGXA1nCc2v9J9Wrb3COWUYdZW6Gg1t09oCDtz0u2aDpupIfR1vCBgd8/MRW+H61DM+ o8m2HEEwadKfCzReiWAqbNsxjRZUGp3d1y8MIfKlDECDV6b830MD5DdnX76eRBDLVYDy elbP4pzdPHVy+D8mniXs2086DtHMOgYSuIJzNWJYm1hKxSHQ3q5tndWLVYKWrCS7YAsY y/ez4KQWbHiG4AkdYNRvAT1ucUmhrRkm368Q1BR8e8Xl3G6bkPlz7sUOhQJJwrqz7s6F xoiQ== X-Gm-Message-State: ACgBeo3IjqLACyy1qi+C/ggEvCqNdDHr+SuYHWLfwDyFAllDkoCBqKe8 dV6XyagADiUF/35dZiMONjsZC7WrtHs= X-Google-Smtp-Source: AA6agR4wKoJ+N9u3VJGBy8J63lDgssuFxiwsH1jx0hmgSjDbBEGhupAfCHWlIY5TBBNX637ALVTQfw== X-Received: by 2002:a7b:c5d3:0:b0:3a8:3d5f:4562 with SMTP id n19-20020a7bc5d3000000b003a83d5f4562mr3357406wmk.78.1661688862603; Sun, 28 Aug 2022 05:14:22 -0700 (PDT) Received: from ?IPV6:2001:a61:3450:ee01:9da9:8337:59d2:c8c4? ([2001:a61:3450:ee01:9da9:8337:59d2:c8c4]) by smtp.gmail.com with ESMTPSA id bq28-20020a5d5a1c000000b002253604bbefsm4498577wrb.75.2022.08.28.05.14.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 28 Aug 2022 05:14:22 -0700 (PDT) From: bauen1 X-Google-Original-From: bauen1 Message-ID: <50b132b2-3adb-042b-647d-962baf228701@gmail.com> Date: Sun, 28 Aug 2022 14:14:21 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.1.1 Subject: [PATCH 2/3] secilc/docs: fix syntax highlighting To: selinux@vger.kernel.org Cc: bauen1 Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: selinux@vger.kernel.org It appears that a recent version of pandoc (or the library it uses) changed where the lists are found in the XML or became more strict. Move the lists to the right location in the document. Signed-off-by: Jonathan Hettwer (bauen1) Acked-by: James Carter --- secilc/docs/secil.xml | 344 +++++++++++++++++++++--------------------- 1 file changed, 172 insertions(+), 172 deletions(-) diff --git a/secilc/docs/secil.xml b/secilc/docs/secil.xml index b015490d..38d7b030 100644 --- a/secilc/docs/secil.xml +++ b/secilc/docs/secil.xml @@ -2,182 +2,182 @@ - - - allow - allowx - auditallow - auditallowx - block - blockabstract - boolean - booleanif - category - categoryalias - categoryaliasactual - categoryorder - categoryset - class - classcommon - classmap - classmapping - classorder - classpermission - classpermissionset - common - constrain - context - defaultrange - defaultrole - defaulttype - defaultuser - devicetreecon - dontaudit - dontauditx - expandtypeattribute - false - filecon - fsuse - genfscon - handleunknown - ibendportcon - ibpkeycon - ioctl - iomemcon - ioportcon - ipaddr - level - levelrange - mls - mlsconstrain - mlsvalidatetrans - netifcon - neverallow - neverallowx - nodecon - optional - pcidevicecon - perm - permissionx - pirqcon - policycap - portcon - rangetransition - role - roleallow - roleattribute - roleattributeset - rolebounds - roletransition - roletype - selinuxuser - selinuxuserdefault - sensitivity - sensitivityalias - sensitivityaliasactual - sensitivitycategory - sensitivityorder - sid - sidcontext - sidorder - true - tunable - tunableif - type - typealias - typealiasactual - typeattribute - typeattributeset - typebounds - typechange - typemember - typepermissive - typetransition - unordered - user - userattribute - userattributeset - userbounds - userlevel - userprefix - userrange - userrole - validatetrans - + + + + allow + allowx + auditallow + auditallowx + block + blockabstract + boolean + booleanif + category + categoryalias + categoryaliasactual + categoryorder + categoryset + class + classcommon + classmap + classmapping + classorder + classpermission + classpermissionset + common + constrain + context + defaultrange + defaultrole + defaulttype + defaultuser + devicetreecon + dontaudit + dontauditx + expandtypeattribute + false + filecon + fsuse + genfscon + handleunknown + ibendportcon + ibpkeycon + ioctl + iomemcon + ioportcon + ipaddr + level + levelrange + mls + mlsconstrain + mlsvalidatetrans + netifcon + neverallow + neverallowx + nodecon + optional + pcidevicecon + perm + permissionx + pirqcon + policycap + portcon + rangetransition + role + roleallow + roleattribute + roleattributeset + rolebounds + roletransition + roletype + selinuxuser + selinuxuserdefault + sensitivity + sensitivityalias + sensitivityaliasactual + sensitivitycategory + sensitivityorder + sid + sidcontext + sidorder + true + tunable + tunableif + type + typealias + typealiasactual + typeattribute + typeattributeset + typebounds + typechange + typemember + typepermissive + typetransition + unordered + user + userattribute + userattributeset + userbounds + userlevel + userprefix + userrange + userrole + validatetrans + - - blockinherit - call - in - macro - + + blockinherit + call + in + macro + - - and - dom - domby - eq - incomp - neq - not - or - range - xor - + + and + dom + domby + eq + incomp + neq + not + or + range + xor + - - - * - all - dccp - false - h1 - h2 - l1 - l2 - object_r - r1 - r2 - r3 - sctp - self - t1 - t2 - t3 - tcp - true - u1 - u2 - u3 - udp + + + * + all + dccp + false + h1 + h2 + l1 + l2 + object_r + r1 + r2 + r3 + sctp + self + t1 + t2 + t3 + tcp + true + u1 + u2 + u3 + udp - - - + + From patchwork Sun Aug 28 12:14:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: bauen1 X-Patchwork-Id: 12957232 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9BA63C0502A for ; Sun, 28 Aug 2022 12:14:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229541AbiH1MOo (ORCPT ); Sun, 28 Aug 2022 08:14:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52614 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229476AbiH1MOn (ORCPT ); Sun, 28 Aug 2022 08:14:43 -0400 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0296F1C116 for ; Sun, 28 Aug 2022 05:14:43 -0700 (PDT) Received: by mail-wr1-x436.google.com with SMTP id m16so6976142wru.9 for ; Sun, 28 Aug 2022 05:14:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20210112; h=content-transfer-encoding:content-language:cc:to:subject:user-agent :mime-version:date:message-id:from:from:to:cc; bh=CDut0I6OXLlOBT/yr8iARdU82NAI+F+HYWCpXHrGMkw=; b=NEt6Tnuls9grCXv4P/f/fXtSATojeNFYBP0hPSO/OnVEzpN13KtPsl8U4liOFLY5il NHEdQMfRcaoQAvorPVgjFMzCb1Ez7R5ftRqupKPeIytPz2G835tdInRMd6/lY6zb6ZK7 IcDrCPT0Xc86dQXt5AaHinbo5E+0FGTXHlNiOJqGUPA2THFXAcpEkJv8J0CBEuhFWQio DUyxlj2L5v5kITiEIGK4pBRmZg7rtQcOKaUTEItZ/4ghCYbq/1L24Q7SORluumDEMNJF 9rnkv4/kboROnx2fwbiIZNNz8lyMm267vNFmuKvAWXJ8/DloLpP4G3ooCn3D62XTCoiu lFEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:cc:to:subject:user-agent :mime-version:date:message-id:from:x-gm-message-state:from:to:cc; bh=CDut0I6OXLlOBT/yr8iARdU82NAI+F+HYWCpXHrGMkw=; b=48ezW2D5W5/AITKthb4jTvPLaFxohJqV5K8ZEpJ9ZkOW2s2n8lR863giZOXw5PtUd+ nISetzq+PJWGgw+GHqL+aMjfVU+bVNXsQwdPdCMVGp8ScOL5bgANluOSABIAIlJ0dbvL zYVMGvJeaxCMCOwNyQssulN2Vq36nAb0IbsQVzEmafZ/6JJsujoyEVGoFDs7DIBO66uf OAe0tLPYhMwNVhOv7SdFOni0C67oN4nDnXbzB4v2InuC/9b4BqNWCsQbtsuMxPsvzBEK worbt8vSfYG18UiFIz5A4uL7HOMIqhWysBWwvaYl5Ej+25elozJEjQfxuPxOijbPnozK xUfQ== X-Gm-Message-State: ACgBeo06yAFcIkkoG7seK1dhKA5D8QfczCxv73+tC3wgJ8en7Pu8DkD4 NI+29hprMEVcVNRyCMgNTxZ+SP9q9LY= X-Google-Smtp-Source: AA6agR4qPbrxx57l7baVplJcsDmU8kamM3TWfrIsXORY0r7hjOvaj7mjmIGcLqlg3RjfAr4gP79j4g== X-Received: by 2002:a05:6000:186f:b0:225:5b8d:fc89 with SMTP id d15-20020a056000186f00b002255b8dfc89mr4297389wri.577.1661688881618; Sun, 28 Aug 2022 05:14:41 -0700 (PDT) Received: from ?IPV6:2001:a61:3450:ee01:9da9:8337:59d2:c8c4? ([2001:a61:3450:ee01:9da9:8337:59d2:c8c4]) by smtp.gmail.com with ESMTPSA id i12-20020a1c540c000000b003a2f2bb72d5sm6318631wmb.45.2022.08.28.05.14.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 28 Aug 2022 05:14:41 -0700 (PDT) From: bauen1 X-Google-Original-From: bauen1 Message-ID: <89653753-717f-3ef9-9538-c90ad2aa62b1@gmail.com> Date: Sun, 28 Aug 2022 14:14:40 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.1.1 Subject: [PATCH 3/3] secilc/docs: disable pandoc default css for html docs To: selinux@vger.kernel.org Cc: bauen1 Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: selinux@vger.kernel.org Some time ago pandoc started shipping a default css file for html, while that is nice, it limits the max-width of the body element to 36em. We have a lot of tables, code examples, etc... in the manual that are too big for that, requiring constant scrolling. See https://github.com/jgm/pandoc/blob/master/data/templates/styles.html for the default used. While some styling, perhaps even dark/light mode support in the CSS would be nice, I didn't manage to find a simple way to achieve this, so for now just disable the CSS. Expand the arguments for pandoc in the Makefile for better readability. Signed-off-by: Jonathan Hettwer (bauen1) Acked-by: James Carter --- secilc/docs/Makefile | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) -- 2.36.1 diff --git a/secilc/docs/Makefile b/secilc/docs/Makefile index a03ebeed..7e2ba40e 100644 --- a/secilc/docs/Makefile +++ b/secilc/docs/Makefile @@ -58,11 +58,25 @@ $(TMPDIR)/policy.cil: $(TESTDIR)/policy.cil html: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil secil.xml mkdir -p $(HTMLDIR) - $(PANDOC) --highlight-style=$(PANDOC_HIGHLIGHT_STYLE) --syntax-definition=secil.xml --standalone --metadata title="CIL Reference Guide" -t html $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil -o $(HTMLDIR)/$(HTML_OUT) + $(PANDOC) \ + --highlight-style=$(PANDOC_HIGHLIGHT_STYLE) \ + --syntax-definition=secil.xml \ + --standalone \ + --metadata title="CIL Reference Guide" \ + --metadata document-css=false \ + -t html \ + $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil \ + -o $(HTMLDIR)/$(HTML_OUT) pdf: $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil secil.xml mkdir -p $(PDFDIR) - $(PANDOC) --highlight-style=$(PANDOC_HIGHLIGHT_STYLE) --syntax-definition=secil.xml --standalone --toc $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil -o $(PDFDIR)/$(PDF_OUT) + $(PANDOC) \ + --highlight-style=$(PANDOC_HIGHLIGHT_STYLE) \ + --syntax-definition=secil.xml \ + --standalone \ + --toc \ + $(PANDOC_FILE_LIST) $(TMPDIR)/policy.cil \ + -o $(PDFDIR)/$(PDF_OUT) clean: rm -rf $(HTMLDIR)