Skip to content

new check: using reserved names#378

Merged
arthurzam merged 1 commit intopkgcore:masterfrom
arthurzam:check-reserved-names
May 20, 2022
Merged

new check: using reserved names#378
arthurzam merged 1 commit intopkgcore:masterfrom
arthurzam:check-reserved-names

Conversation

@arthurzam
Copy link
Copy Markdown
Member

@arthurzam arthurzam commented May 17, 2022

Based on updated PMS rules around reserved for package manager
function and variable names. Add the check for eclasses and ebuilds.

@thesamesam @ulm
Please also look at the regex I used for 'ebuild' case that I understood correctly the rule.

Results for the run over gentoo tree
app-text/qpdfview
  EbuildReservedName: version 0.4.18: line 50: function name "prepare_locale" is disallowed because "prep" is a reserved prefix
  EbuildReservedName: version 0.4.18_p1: line 49: function name "prepare_locale" is disallowed because "prep" is a reserved prefix
  EbuildReservedName: version 0.4.18_p20211227: line 49: function name "prepare_locale" is disallowed because "prep" is a reserved prefix

dev-db/sqlitestudio
  EbuildReservedName: version 3.2.1-r1: line 80: function name "prepare_locale" is disallowed because "prep" is a reserved prefix

dev-go/act
  EbuildReservedName: version 1.6.0: line 22: variable name "portage_arch" is disallowed because "portage" is a reserved substring

dev-lang/go
  EbuildReservedName: version 1.17.10: line 66: variable name "portage_arch" is disallowed because "portage" is a reserved substring
  EbuildReservedName: version 1.18.2: line 66: variable name "portage_arch" is disallowed because "portage" is a reserved substring
  EbuildReservedName: version 9999: line 66: variable name "portage_arch" is disallowed because "portage" is a reserved substring

dev-libs/libdynd
  EbuildReservedName: version 0.7.2-r1: line 8: variable name "DYND_GIT_SHA1" is disallowed because "dyn" is a reserved prefix

games-strategy/knights-demo
  EbuildReservedName: version 1.32-r3: line 21: variable name "DYNAMIC_DEPS" is disallowed because "dyn" is a reserved prefix

media-gfx/ditaa
  EbuildReservedName: version 0.11.0-r1: line 93: function name "__set_vendor_uri" is disallowed because "__" is a reserved prefix

media-gfx/gimp
  EbuildReservedName: version 2.10.28-r1: line 164: variable name "prepend" is disallowed because "prep" is a reserved prefix
  EbuildReservedName: version 2.10.30: line 164: variable name "prepend" is disallowed because "prep" is a reserved prefix
  EbuildReservedName: version 2.99.10-r1: line 208: variable name "prepend" is disallowed because "prep" is a reserved prefix
  EbuildReservedName: version 9999: line 210: variable name "prepend" is disallowed because "prep" is a reserved prefix

net-dns/pdns
  EbuildReservedName: version 4.6.1: line 67: variable name "dynmodules" is disallowed because "dyn" is a reserved prefix
  EbuildReservedName: version 4.6.2: line 67: variable name "dynmodules" is disallowed because "dyn" is a reserved prefix
  EbuildReservedName: version 4.6.2-r1: line 69: variable name "dynmodules" is disallowed because "dyn" is a reserved prefix

net-im/pidgin
  EbuildReservedName: version 2.14.8: line 176: variable name "DYNAMIC_PRPLS" is disallowed because "dyn" is a reserved prefix
  EbuildReservedName: version 2.14.9: line 178: variable name "DYNAMIC_PRPLS" is disallowed because "dyn" is a reserved prefix

net-libs/xdp-tools
  EbuildReservedName: version 1.2.3: line 29: variable name "DYNAMIC_LIBXDP" is disallowed because "dyn" is a reserved prefix

sci-chemistry/openbabel
  EbuildReservedName: version 3.1.1_p20210225: line 90: function name "prepare_python_bindings" is disallowed because "prep" is a reserved prefix
  EbuildReservedName: version 9999: line 90: function name "prepare_python_bindings" is disallowed because "prep" is a reserved prefix

sci-libs/openblas
  EbuildReservedName: version 0.3.18: line 85: variable name "DYNAMIC_ARCH" is disallowed because "dyn" is a reserved prefix
  EbuildReservedName: version 0.3.19: line 85: variable name "DYNAMIC_ARCH" is disallowed because "dyn" is a reserved prefix
  EbuildReservedName: version 0.3.20: line 87: variable name "DYNAMIC_ARCH" is disallowed because "dyn" is a reserved prefix

sys-devel/binutils-apple
  EbuildReservedName: version 3.2.6: line 36: function name "prepare_ld64" is disallowed because "prep" is a reserved prefix

sys-devel/llvm
  EbuildReservedName: version 12.0.1: line 78: function name "check_live_ebuild" is disallowed because "ebuild" is a reserved substring
  EbuildReservedName: version 13.0.1: line 70: function name "check_live_ebuild" is disallowed because "ebuild" is a reserved substring
  EbuildReservedName: version 14.0.1: line 70: function name "check_live_ebuild" is disallowed because "ebuild" is a reserved substring
  EbuildReservedName: version 14.0.3: line 78: function name "check_live_ebuild" is disallowed because "ebuild" is a reserved substring
  EbuildReservedName: version 15.0.0.9999: line 78: function name "check_live_ebuild" is disallowed because "ebuild" is a reserved substring

sys-fs/static-dev
  EbuildReservedName: version 0.1-r2: line 15: function name "abort" is disallowed because "abort" is a reserved prefix

sys-libs/glibc
  EbuildReservedName: version 2.33-r13: line 510: variable name "__ORIG_CC" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.33-r13: line 511: variable name "__ORIG_CXX" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.33-r13: line 566: variable name "__GLIBC_CC" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.33-r13: line 567: variable name "__GLIBC_CXX" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.33-r13: line 569: variable name "__abi_CFLAGS" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.34-r13: line 514: variable name "__ORIG_CC" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.34-r13: line 515: variable name "__ORIG_CXX" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.34-r13: line 572: variable name "__GLIBC_CC" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.34-r13: line 573: variable name "__GLIBC_CXX" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.34-r13: line 575: variable name "__abi_CFLAGS" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.35-r4: line 507: variable name "__ORIG_CC" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.35-r4: line 508: variable name "__ORIG_CXX" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.35-r4: line 565: variable name "__GLIBC_CC" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.35-r4: line 566: variable name "__GLIBC_CXX" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 2.35-r4: line 568: variable name "__abi_CFLAGS" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 9999: line 512: variable name "__ORIG_CC" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 9999: line 513: variable name "__ORIG_CXX" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 9999: line 570: variable name "__GLIBC_CC" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 9999: line 571: variable name "__GLIBC_CXX" is disallowed because "__" is a reserved prefix
  EbuildReservedName: version 9999: line 573: variable name "__abi_CFLAGS" is disallowed because "__" is a reserved prefix

eclass
  EclassReservedName: ghc-package: function name "ghc-extractportageversion" is disallowed because "portage" is a reserved substring
  EclassReservedName: linux-info: function name "set_arch_to_portage" is disallowed because "portage" is a reserved substring
  EclassReservedName: webapp: function name "webapp_hook_script" is disallowed because "hook" is a reserved substring

@codecov
Copy link
Copy Markdown

codecov Bot commented May 17, 2022

Codecov Report

Merging #378 (3b67177) into master (5ca29a7) will increase coverage by 0.07%.
The diff coverage is 100.00%.

❗ Current head 3b67177 differs from pull request most recent head 9e45325. Consider uploading reports for the commit 9e45325 to get more accurate results

@@            Coverage Diff             @@
##           master     #378      +/-   ##
==========================================
+ Coverage   95.57%   95.64%   +0.07%     
==========================================
  Files          54       55       +1     
  Lines        7450     7512      +62     
  Branches     1813     1829      +16     
==========================================
+ Hits         7120     7185      +65     
+ Misses        204      203       -1     
+ Partials      126      124       -2     
Impacted Files Coverage Δ
src/pkgcheck/checks/reserved.py 100.00% <100.00%> (ø)
src/pkgcheck/checks/codingstyle.py 96.97% <0.00%> (+0.20%) ⬆️
src/pkgcheck/results.py 85.93% <0.00%> (+1.04%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5ca29a7...9e45325. Read the comment docs.

Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread src/pkgcheck/checks/reserved.py Outdated
@ulm
Copy link
Copy Markdown
Contributor

ulm commented May 17, 2022

Exceptions that should be added (Portage variables whose use is half-legitimate and harmless if the package manager doesn't support them):

  • EBUILD_DEATH_HOOKS
  • EBUILD_SUCCESS_HOOKS
  • PORTAGE_QUIET

Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread src/pkgcheck/checks/reserved.py Outdated
Comment thread testdata/repos/eclass/eclass/reserved.eclass Outdated
Comment thread testdata/repos/eclass/eclass/reserved.eclass Outdated
Comment thread src/pkgcheck/checks/reserved.py
Based on updated PMS rules [1] around reserved for package manager
function and variable names. Add the check for eclasses and ebuilds.

[1] https://gitweb.gentoo.org/proj/pms.git/commit/?id=260e21bf65f

Bug: https://bugs.gentoo.org/843779
Bug: https://bugs.gentoo.org/843680
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
@arthurzam arthurzam force-pushed the check-reserved-names branch from 3b67177 to 9e45325 Compare May 20, 2022 06:31
@arthurzam arthurzam merged commit 9e45325 into pkgcore:master May 20, 2022
@arthurzam arthurzam deleted the check-reserved-names branch May 20, 2022 08:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants