- scrub-patch: do not abort and suggest
-s/--no-sanity
when file(1) version 5.46 newly recognizes patches with aFrom
line as an mbox file rather than a patch. - tests: adjust scrub-patch tests for file-5.46
- tests: work around a potential(?) portage bug that lead to tests being confused by dev-python/test newly existing in the Gentoo tree
- general: unset GENTOO_CPYTHON_BUILD to prevent potential failure of portageq invocations when emerging dev-lang/python
- qa-vdb.exclude-bind(config): revert addition of clang/lld/llvm given llvm-r1.eclass now suggests to add the binding operator with the prospect of using subslots properly if ever needed
- qa-vdb.exclude-bind(config): exclude sys-devel/clang, sys-devel/lld, and sys-devel/llvm by default to avoid noise with the upcoming llvm-r1.eclass
- repo-cd: allow usage even when the current directory was deleted
- qa-cmp: prevent permission differences from being displayed with symbolic links, what is reported can vary between filesystems and causes noise
- qa-vdb: default configs now exclude libcxx, libcxxabi, and llvm-libunwind from being a missing dependency candidate (but note that llvm-libunwind may still be needed if used directly by the package)
- repo-cd: support codeberg remote-id
- qa-cmp: replace SLOT in paths alongside versions with
*
to allow ignoring in file lists differences (only relevant when emerging a new SLOT or else same-SLOT is compared when using portage hooks) - qa-cmp: also replace versions for, e.g.
.so.<slot|version>
as these should be compared using the SONAME lists instead (note that this will replace the common.so.0
with SLOT=0 but is not considered an issue)
- scrub-patch: standardize gentoo's bugzilla urls (and few others) in headers
- portage: disable checks for binpkgs (only comes into effect for new binpkgs)
- qa-vdb.exclude-bind(config): exclude gobject-introspection by default, been common practice to keep the binding operator even if it has no subslot (yet) in case the introspection format changes.
- qa-vdb.exclude-extra(config): exclude gobject-introspection by default, very few packages actually link with the library.
- qa-cmp: also omit
/usr/src/debug/*
from output alongside already omitted/usr/lib/debug/*
to avoidFEATURES=installsources/splitdebug
noise.
- qa-cmp: add
--timeout=[seconds]
option to stopabidiff
when taking too long (defaults to 10 seconds, can set to 0 for the old behavior)
- scrub-patch: no longer try to remove mbox signatures, this is fragile and does not always give expected results
- qa-cmp: ignore abidiff errors for stub libraries, prevents aborting the entire process
- scrub-patch: fix -e/--edit to work with stdin, aka can do:
diff -Nur a b | scrub-patch --edit > edited-in-vim.patch
- scrub-patch: -e/--edit option to open patch in $EDITOR after scrubbing, primarily for those that prefer to view/edit the clean patch (e.g. to add links) and have it verified for QA oversights only after
- scrub-patch: -g/--git option to auto-convert e.g.
leading-1.0/file
to git-stylea/file
(not default given would be harmful on a -p0 patch, but is safe to always use with -p1 patches) - scrub-patch: -1/--p0p1 option to add a leading directory to every files, i.e. convert a -p0 patch to -p1
- repo-cd: tentatively support upcoming
kde-invent
remote-id
- repo-cd: for tab completion, do not give mismatching
_
and-
results to the shell as it will not know they are interchangeable and misbehave - qa-sed.bashrc: prevent portage from interpreting e.g.
\r
from sed expressions in the log output
- repo-cd: fix typo in
freedesktop-gitlab
andgnome-gitlab
urls
- repo-cd: support new
freedesktop-gitlab
,gnome-gitlab
,savannah
andsavannah-nongnu
remote-ids - scrub-patch: give a better error when file(1) did not recognize a patch
- qa-sed: do not test
-e
individually if they can't function that way, e.g. when using sed labels (unfortunately means this can't tell if each separate use of labels replaced something) - qa-sed: avoid occasional incorrect modification when expression testing
failed but normal sed command didn't resulting in sed being run multiple
times by the error handler (currently only known affected case is
sys-apps/shadow[pam]
login.defs superfluous comments, this is further fixed given doesn't error out with sed labels anymore)
- repo-cd:
.
can now be passed to--path/-P
to search the repo from current working directory without needing to explicitly add, new default is--path="default:."
.
- qa-cmp: fix wrong error message occasionally being shown on files limit
- repo-cd: similarly to case insensitivity, consider
_
and-
the same when searching (includes tab completion), e.g.SDL2_im<tab> -> sdl2-image
- repo-cd: support new
hackage
andsourcehut
remote-ids
- repo-cd: don't fallback to fuzzy search if match was exact except for letter
case (e.g.
rcd pyqt5
will cd toPyQt5
withoutPyQt5-sip
prompt)
- repo-cd: fallback to fuzzy search if no exact name match (e.g.
rcd sdl2-
gives a list of choices even without tab completion), and add -f/-F options to control the behavior like forcing fuzzy even if an exact match. - qa-vdb: print warning about QML for dev-qt/ and kde-frameworks/ when suggesting removal as it's often incorrect if using qtdeclarative (unfortunately can't detect usage from the VDB information alone)
- qa-cmp: abort on slow large lists, e.g. gentoo-sources unless --no-skip-large
- qa-cmp: fix version replacement by
*
in the common<ver>.dist-info
- scripts: fix with bash-5.2_rc1
- repo-cd: support tilde for command in --run=~/mycmd like --path does
- shellparse.bashlib: functions/arrays disabled by default for speedups, notably with repo-cd if many large ebuilds
- scripts: prevent boolean-type --no-* being passed twice from re-enabling
- qa-vdb: fix -U/--unified showing spurious unbound errors if nothing to report
- repo-cd: fix info not being displayed if using e.g. --path=./overlay
- repo-cd: new tool to jump to the directory of a package's atom then display information such as remote-ids or a custom command's output (can search for a partial atom, and use tab completion with bash/fish/zsh after setting up shell integration)
- qa-openrc: contributed script to do basic /etc/init.d checks
- qa-openrc.bashrc: requires addition of
qa-openrc_post_pkg_preinst
topost_pkg_preinst
if not using the default bashrc
- scripts:
*.conf
files to set default options or configure colors are now installed by default so it's more obvious than running--dumpconfig
(#8) - qa-cmp: replacing versions in lists by
*
is now more restrictive to avoid (some) cases like PV=1 doingpython3.10 -> python3.*0
when mostly wantdoc/name-1 -> doc/name-*
(i.e. not show same docs as new files) - qa-sed: can now detect if only one of
-e s/// -e s///
did no changes - qa-sed: now display any no-op expressions on their own lines with expanded
variables so can see, e.g.
s|lib|$(get_libdir)| -> s|lib|lib|
- qa-sed: no longer compares with bash (should be faster, still no tmp files)
- atomf.bashlib: add
atoma()
for associative, e.g.atom[version]
- atomf.bashlib: add
atomset()
to set e.g.P=name-1.0.0
,PV=1.0
, ...
- atomf.bashlib: recognize
app-emacs/diff-mode--20180427
as a valid atom - atomf.bashlib: fix atomf %S and %U format when slots have non-numbers
- qa-cmp / find-unresolved: fix when filelists contain a
$
sign - qa-cmp: fix occasional showing of version-replaced
-file* +file*
when it should be hidden - qa-vdb: fix bad display on slot change, e.g.
python:3.10 | python:3.11
showing red 0 and green 1 at end when it was rather removingpython:3.10
- qa-vdb: fix using
--no-ldpath
when/etc/ld.so.conf
doesn't exist - qa-vdb: fix off-by-one that could sometime skip a line in non-unified diff,
(note:
1.10.1-r2
had this fix in Gentoo) - qa-vdb: fix
>=0.8.0
regression that could give spurious reports with crossdev packages, e.g. believingcross-*/gcc
provideslibatomic.so.1
(note:1.10.1-r1
had this fix in Gentoo)
- qa-vdb: workaround issue when using qfile on usr-merge systems (#5)
- qa-sed.bashrc: fix redirections to allow use with
ebuild --debug
(#6)
- qa-cmp: will now display file permissions on changes, old behavior with -p/--ignore-perms or can show even if unchanged with -P/--show-perms (qa-cmp -PFx would show a single package's full filelist with permissions)
- atomf.bashlib: workaround strange bash behavior on non-Linux (macOS prefix)
- eoldnew: add support to replace {} by the package atom in _ARGS env vars
- support using an alternate "getopt" binary to help Gentoo Prefix
- scripts: workaround portageq errors during portage python migration
- qa-sed: silence spurious "null byte" messages
- scripts: header of messages now use CMP:, VDB: or SED: rather than QA:
- portage: default to eqawarn (reminder to add qa to PORTAGE_ELOG_CLASSES)
- portage: add IWDT_LOG to globally change portage output command
- qa-cmp: now using literal * instead of <snip> in filelist diff
- find-unresolved: find unresolved soname dependencies in a ROOT
- all tools with options now support configuration files
- color codes can now be swapped, see --dumpconfig on tools supporting them
- atomf(+lib): now accepts category/pn/pf.ebuild tree-style format
- atomf(+lib): add --allow-missing to not abort if missing components
- atomf(+lib): received some usage changes that may break old scripts using it
- fix q tools showing debug if DEBUG is exported, e.g. by openrc-0.43.5.ebuild
- received various internal cleanups and improved error checking
- atomf.bashlib: bash utility library to split portage atoms and versions
- atomf: basic frontend to atomf.bashlib
- qa-cmp: add --ver-keep,--ver-dironly for filelist version-replace behavior
- eoldnew: env vars can now optionally be set in portage's make.conf
- eoldnew: add two new env vars to pass arguments either only to old or new
- now providing a pkg-config file to get paths to bash include files
- qa-vdb: fix handling of deps with wildcard slots
- qa-vdb: fix regression causing to miss some dependencies from RDEPEND
- qa-cmp: add shortcut option (-x/--no-compare) that equals -fsazr
- qa-cmp: fix scanelf sporadic failure when passed wrong files (hopefully)
- qa-vdb: skip some checks if package uses no shared libs, e.g. scripts-only
- bashrc information was moved to --help text and man pages of commands
- qa-vdb: use LDPATH checks to avoid wrong lib providers, e.g. firefox-bin
- qa-vdb: fix occasional crash from new output format
- qa-vdb: new output format, use --unified if prefer old behavior
- qa-vdb: no longer showing unchanged deps by default, use --full to revert
- qa-vdb: add config/qa-vdb.exclude-lib primarily to skip toolchain libraries
- qa-vdb: overbind (lib:= -> lib) warning now works for SLOT=0
- qa-cmp: now ignores failed build images rather than throw spurious errors
- qa-cmp: better slot awareness, e.g. try not to compare python:3.9 with :3.10
- tools should now be more usable on Gentoo Prefix
- basic man pages are now provided (does not say more than --help outputs)
- tests: more test cases which led to several small fixes
- qa-vdb: add config/qa-vdb.ignore to facilitate skipping packages
- qa-cmp: fix incorrect function call for new abi awareness
- qa-cmp: no longer show qlist errors on packages installing no files
- qa-cmp: abi awareness for soname lists, lets abidiff compare the right ones
- qa-cmp: no longer display header for --single-* if no output
- scrub-patch: received several small fixes for more accurate QA
- tests: newly added to check for regressions (WIP for test cases)
- qa-cmp: fix soname difference list so it doesn't miss entries
- eoldnew: helper tool for using qa-cmp that emerges old version then new
- qa-cmp: provide --single-* options to display lists for a single image
- qa-cmp: abidiff is more accurate, includes some non-debug info
- qa-cmp(+rc): new tool for comparing installed files from images / system
- filename-diff.bashrc: removed in favor of qa-cmp.bashrc
- add IWDT_ALL envvar (default =y) to enable/disable all bashrc at once
- qa-sed: fix broken opts parsing leading to misdetection
- Initial release: qa-vdb(+rc), qa-sed(+rc), scrub-patch, filelist-diff.bashrc