From nobody Tue Feb 27 17:50:26 2024 X-Original-To: freebsd-ports@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4TklPx2hCcz5C7RZ for ; Tue, 27 Feb 2024 17:50:29 +0000 (UTC) (envelope-from hubert.tournier@gmail.com) Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4TklPw53YHz4pS8 for ; Tue, 27 Feb 2024 17:50:28 +0000 (UTC) (envelope-from hubert.tournier@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=LNjx2MM4; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of hubert.tournier@gmail.com designates 2a00:1450:4864:20::42d as permitted sender) smtp.mailfrom=hubert.tournier@gmail.com Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-33dcd8dec88so1775088f8f.1 for ; Tue, 27 Feb 2024 09:50:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709056226; x=1709661026; darn=freebsd.org; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=VQ8nWh4vQlC3wb/6Z4PNzh3cvBd4J1iRpe6Oh1JOCKk=; b=LNjx2MM4qbwT4aj36dXlHtQB54A7DhK/Ma/asu1zmqZFxfkpo6NqiX1R7pDpGkUdjl YePZnSEVuyJ5wdG0YUXixZ4aCjo7L5f6Tpk18eKpehwf8JBg4nXIyDuwxAEBu+9MsDbw Cy5eTVaAjyIDM8te/L8dOA/epXF8hIl+0PQy54PAQFyhCfo2kz1LT+cmnL7fdlgmXJDn tNf5VWfCoKejVM3CAvZ891nsmdYrXn46Rw3stcgOazZQ4WdT685dQQkhkeO2sjw+BwZd 9nj1TOvdOIRcxox9TepOI/NVabskLYHyAQvyyhUK5WK7F1XVoNReQabwcIFakjAYubsG jwvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709056226; x=1709661026; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VQ8nWh4vQlC3wb/6Z4PNzh3cvBd4J1iRpe6Oh1JOCKk=; b=I2yOkY6ky5Fx0KtdxlZrOUVHl8ArJFy7UFDPy6sSNISGqhkf1CNJK6ZTLgmxjyRdZn pKadWE6FHFXyBk5DmEuXYj/NvcNoAp06zKI1nl/aAy2Efn201kU5HeovWNDze3Jrcg9D BTyIg1q8DyLO3Bx54IgNJxkYnANJ0YMwgGl2R+PylCqAXQgwZ8MUc8DGIY3UdceGyXTt wqvVfedWdVBpWWV+dsDIqYycPkXXhtvf9cYq9RsbPblIlngmT5MXZhyEvd0efLQCzLZo kMVgnIyzCdQQcvFVqQZkqq31HqFKr2/rtSAcOUAxKPxJNWMQzJwdtx+t+/m0JSRD3kEc v8HA== X-Gm-Message-State: AOJu0YznJAu7ReXxNDGX2R5gMaxaiNeDBDHrcnjHkFYiJlozV+zI6RVX FKVDcEWoUgsfMUNKvEBYedRLiX2XnJx0mBuW0lypi3LvGp/l3xNdo7bz865+cuE= X-Google-Smtp-Source: AGHT+IGvxtCxBQns+PpLLJj6Y7E+40B9ghDpMQSJ3/G3e7ix0FPAPcECLc/oGvkjolPlhYXL3hfRtg== X-Received: by 2002:a5d:61c1:0:b0:33d:82d5:e4bf with SMTP id q1-20020a5d61c1000000b0033d82d5e4bfmr7123288wrv.31.1709056225871; Tue, 27 Feb 2024 09:50:25 -0800 (PST) Received: from ?IPV6:2a01:e0a:80d:9d80:79cf:3763:c572:7f21? ([2a01:e0a:80d:9d80:79cf:3763:c572:7f21]) by smtp.gmail.com with ESMTPSA id c4-20020adfa304000000b0033df4fbe91esm1622300wrb.115.2024.02.27.09.50.25 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 27 Feb 2024 09:50:25 -0800 (PST) Content-Type: multipart/alternative; boundary="------------0SVVDBIHBiX63pNKgUA6mnen" Message-ID: <92ef9ee5-9ab7-4b33-94b2-e567618833cf@gmail.com> Date: Tue, 27 Feb 2024 18:50:26 +0100 List-Id: Porting software to FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-ports List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-ports@freebsd.org X-BeenThere: freebsd-ports@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: fr To: freebsd-ports@FreeBSD.org From: Hubert Tournier Subject: Port tree linter X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.99 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; XM_UA_NO_VERSION(0.01)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FREEMAIL_ENVFROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; ARC_NA(0.00)[]; TAGGED_FROM(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; FROM_HAS_DN(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; PREVIOUSLY_DELIVERED(0.00)[freebsd-ports@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-ports@freebsd.org]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::42d:from] X-Rspamd-Queue-Id: 4TklPw53YHz4pS8 This is a multi-part message in MIME format. --------------0SVVDBIHBiX63pNKgUA6mnen Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello there! I made a small program that perhaps may be of interest to some port maintainers. It's called portlint2 (https://github.com/HubTou/portlint2), and it checks the ports Index file and the port's makefiles, for the whole port tree, or for selected categories / maintainers / ports. On a freshly updated port Index and port tree, it will produce a summary of findings like this: Selected 34434 ports out of 34434 in the FreeBSD port tree, and found: 4 ports with unusual installation-prefix (warning) 339 ports with a comment string exceeding 70 characters (warning) 286 ports with an uncapitalized comment 11 ports comment ending with a dot 108 ports with a comment different between the Index and Makefile 2 ports with non existent description-file 4 ports with a maintainer different between the Index and Makefile 34 ports referring to unofficial categories (warning) 262 ports with categories different between the Index and Makefile 1251 ports with no www-site 300 ports with an unresolvable www-site hostname 658 ports with an unaccessible www-site 2 ports with a www-site different betwwen the Index and makefile There are other checks, but it only prints summary lines for those with 1+ occurrences. Before this summary, it prints a list of affected ports per maintainer, for example like this: yuri@FreeBSD.org: Diverging comments: jamulus-server-3.10.0 RStudio-2022.12.0+353_6 RStudio-server-2022.12.0+353_6 qbittorrent-nox-4.6.3 Too long comments: py39-pytest4-flakes-4.0.1 py39-spectral-0.22.4_1 Uncapitalized comments: shunit2-2.1.8.93 libmicrodns-0.2.0 py39-mmcif-0.84 hq-1.0.1_9 ibus-m17n-1.4.28 jaq-1.3.0_1 Diverging categories: obs-studio-30.0.2_1 HTTP Error 404 (Not found) on www-site: eteroj-lv2-0.10.0_1 geonkick-lv2-2.10.0 lv2lint-0.16.2_2 midi-matrix-lv2-0.28.0_1 moony-lv2-0.36.0_1 orbit-lv2-0.1.661 py39-hsaudiotag3k-1.1.3.p1 sherlock-lv2-0.28.0_2 timely-lv2-g20190412_1 vm-lv2-0.14.0_2 graphlan-1.1.3_1 GroopM-0.3.4_4 thrust-1.9.5_1 py39-ta-lib-0.4.28 cmh-1.1.1_3 FlintQS-1.0 coin-or-flopc++-1.2.5.20200527_1 moab-5.3.1_5 mpfrcx-0.6.3_1 paritwine-0.1_3 vinci-1.0.5 ironscanner-1.1.0.20180828 sdformat-8.0.0_6 clash-1.18.0_2 dftd3-3.2.0.3_1 dftd4-3.5.0_1 octopus-13.0_1 openbabel-3.1.1.178 opsin-3.0.20190223_1 py39-dftd4-3.5.0 py39-openbabel-3.1.1.1 py39-phono3py-1.22.3_2 py39-pyked-0.4.1.16_1 xdrawchem-1.11.0.2_2 ntk-1.3.1001_1 redkite-1.3.1 Unresolvable www-site: libpcl-1.12 geogram-1.7.9 daggy-2.1.3_1 silicon-0.1.124 ztoolkit-0.1.2_2 It also produces more detailed error logs on stderr. I hope it will be useful to others. I needed this because I have another program that mass checks Python ports for unreported vulnerabilities, which needs an up-to-date and correct information in the ports Index to be relevant... Best regards, Hubert --------------0SVVDBIHBiX63pNKgUA6mnen Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit

Hello there!

I made a small program that perhaps may be of interest to some port maintainers.

It's called portlint2 (https://github.com/HubTou/portlint2), and it checks the ports Index file and the port's makefiles, for the whole port tree, or for selected categories / maintainers / ports.

On a freshly updated port Index and port tree, it will produce a summary of findings like this:

Selected 34434 ports out of 34434 in the FreeBSD port tree, and found:
  4 ports with unusual installation-prefix (warning)
  339 ports with a comment string exceeding 70 characters (warning)
  286 ports with an uncapitalized comment
  11 ports comment ending with a dot
  108 ports with a comment different between the Index and Makefile
  2 ports with non existent description-file
  4 ports with a maintainer different between the Index and Makefile
  34 ports referring to unofficial categories (warning)
  262 ports with categories different between the Index and Makefile
  1251 ports with no www-site
  300 ports with an unresolvable www-site hostname
  658 ports with an unaccessible www-site
  2 ports with a www-site different betwwen the Index and makefile

There are other checks, but it only prints summary lines for those with 1+ occurrences.

Before this summary, it prints a list of affected ports per maintainer, for example like this:

  yuri@FreeBSD.org:
    Diverging comments:
      jamulus-server-3.10.0 RStudio-2022.12.0+353_6
      RStudio-server-2022.12.0+353_6 qbittorrent-nox-4.6.3
    Too long comments:
      py39-pytest4-flakes-4.0.1 py39-spectral-0.22.4_1
    Uncapitalized comments:
      shunit2-2.1.8.93 libmicrodns-0.2.0 py39-mmcif-0.84 hq-1.0.1_9
      ibus-m17n-1.4.28 jaq-1.3.0_1
    Diverging categories:
      obs-studio-30.0.2_1
    HTTP Error 404 (Not found) on www-site:
      eteroj-lv2-0.10.0_1 geonkick-lv2-2.10.0 lv2lint-0.16.2_2
      midi-matrix-lv2-0.28.0_1 moony-lv2-0.36.0_1 orbit-lv2-0.1.661
      py39-hsaudiotag3k-1.1.3.p1 sherlock-lv2-0.28.0_2 timely-lv2-g20190412_1
      vm-lv2-0.14.0_2 graphlan-1.1.3_1 GroopM-0.3.4_4 thrust-1.9.5_1
      py39-ta-lib-0.4.28 cmh-1.1.1_3 FlintQS-1.0
      coin-or-flopc++-1.2.5.20200527_1 moab-5.3.1_5 mpfrcx-0.6.3_1
      paritwine-0.1_3 vinci-1.0.5 ironscanner-1.1.0.20180828 sdformat-8.0.0_6
      clash-1.18.0_2 dftd3-3.2.0.3_1 dftd4-3.5.0_1 octopus-13.0_1
      openbabel-3.1.1.178 opsin-3.0.20190223_1 py39-dftd4-3.5.0
      py39-openbabel-3.1.1.1 py39-phono3py-1.22.3_2 py39-pyked-0.4.1.16_1
      xdrawchem-1.11.0.2_2 ntk-1.3.1001_1 redkite-1.3.1
    Unresolvable www-site:
      libpcl-1.12 geogram-1.7.9 daggy-2.1.3_1 silicon-0.1.124 ztoolkit-0.1.2_2

It also produces more detailed error logs on stderr.

I hope it will be useful to others.

I needed this because I have another program that mass checks Python ports for unreported vulnerabilities,
which needs an up-to-date and correct information in the ports Index to be relevant...

Best regards,

Hubert
--------------0SVVDBIHBiX63pNKgUA6mnen--