The real ChangeLog is the git log. This is just a summary of the user-visible changes between releases. New in 0.9.3: ============= sbopkglint: - Don't complain if ELF binaries in /lib/firmware or /usr/share/alsa/firmware are -x and/or unstripped. - If any of /bin, /usr/bin, /sbin, /usr/sbin exist but are empty, upgrade the 'empty directory' note to a warning. These are generally the result of a SlackBuild that's missing "set -e" or "|| exit" error checks. sbolint: - Only apply github URL checking to URLs with github subdomains (e.g. https://gists.github.com will not be checked). - Complain about chown commands that use a dot as a separator. This is deprecated in coreutils, and causes a warning when the script is run. New in 0.9.2: ============= sbopkglint: - Detect packages that contain nothing but "install/" and/or "/usr/doc". These are generally the result of a badly-written SlackBuild that does no error checking. sbolint: - github download URLs in .info files are checked. The intent is to use a URL that gives the same downloaded filename regardless of whether Content-disposition is in use or not. See: https://slackbuilds.org/GITHUB_URLs.txt - New -N/--notes-as-warnings option. - Scripts that do no error-checking (don't use either bash's -e option or "|| exit 1" anywhere in the script) trigger an error. New in 0.9.1: ============= sbopkglint: - The $TMP directory is created, if it doesn't exist. Derp. - Files/dirs owned by UID or GID >= 1000 are errors. - ELF objects aren't checked for ARCH, if they're in /usr/share/qemu. - perllocal.pod, .packlist, *.bs are detected. - Invalid characters in the package name are detected. - /usr/share/terminfo structure and contents are now checked. - Don't suggest noarch, if the package contains static libraries. - Support aarch64 static lib checking. - Images in /usr/share/pixmaps are only checked if they're directly in the directory; contents of /usr/share/pixmaps/*/ aren't checked. - If doinst.sh contains hardcoded $PKG, mention doinst.sh in the message. Previously, it just said /var/lib/pkgtools/scripts/$PRGNAM, which is where doinst.sh gets moved to after package install. sbolint: - *.rej files are detected and draw a warning. - Script permission check allows 0644 or 0755 now. - URLs in .info files with % characters are now handled correctly. - Files named *.diff and *.patch are checked; if they have DOS-style CRLF line endings, that's an error, and the message suggests gzipping the file. This is needed because SBo's git repo will "helpfully" strip the carriage returns (so your submission tarball is correct, but after it's approved *everyone else* get a bad patch file). sbodl: - Don't refer to itself as sbopkglint in --help and man page. - Add -n (--no-content-disposition) option, and make option processing nicer (long options and bundling). New in 0.9.0: ============= sbopkglint: - Spaces in filenames are now handled correctly. - Permissions and ownership of icons are now checked. - Shared libraries are now checked for +x permission. - Option bundling is now supported (e.g. -ki is the same as -k -i). - Long names for all options (see --help or man page). - New static library test (permissions, ownership, validity, plus a note if there's also a shared version of the same lib). - Files that aren't supposed to exist in perl builds are now checked for (perllocal.pod, .packlist, *.bs). sbolint: - Warning: -n option has changed meaning! It used to mean "no warnings", use "-e" for that, now. New -n is "no notes". - Option bundling is now supported (e.g. -qr is the same as -q -r). - Long names for all options (see --help or man page). - New -n (--no-notes) option to disable notes. - You can use - for a build name, to read a list of builds from standard input. This is actually not new, but was undocumented before. - If doinst.sh exists, it's checked for correct usage of config(), preserve_perms(), and gtk-update-icon-cache. - If the slack-desc still has "(short description of app)", that's an error. - The -a option now redirects stdout to a log file, if stdout is a terminal. sbodl: - Color is now used only if stdout is a TTY. - Exit status is now useful: success if all files exist and their md5sums match, or failure otherwise. New in 0.8.2: ============= sbolint: - When checking for doinst.sh, don't complain if it's doinst.sh.gz. - Add progress bar (on stderr) for -a. Also, make the user redirect stdout (instead of spewing to the terminal). - Add summary for -a (total builds, totals + percentages OK and failed). - Check for douninst.sh (must exist if the script mentions it; must not exist if the the script doesn't mention it). - If LIBDIRSUFFIX and/or SLKCFLAGS are set, and then never used, you'll get a non-fatal NOTE message. Yes, you can ignore this. sbopkglint: - Forbid nonstandard directories directly under /usr (e.g. /usr/$PRGNAM). - Check for install/slack-desc. - Check for $TMP/package-* baked into any files in the package. This requires TMP to be set the same as it was when the package was built (normally, /tmp/SBo). New in 0.8.1: ============= This is a bugfix release. sbolint: - When linting tarballs, files with extra dots in the filename (e.g. foo.bar.tar.gz) were failing to validate. Fixed. - Also handle tarballs created by file-roller, which list the directory last rather than first. And tarballs created by 'tar cvfz foo.tar.gz foo/*', which don't list the directory at all. New in 0.8.0: ============= Added this NEWS file :) Added a new tool: sbodl, which downloads sources and checks md5sums. sbolint: - Suggestions only (not an error/warning) to split python builds into separate python2- and python3- builds, and to use the python2 command rather than plain python (because someday, /usr/bin/python will become a symlink to python3, not python2). - Add a bit of color in the output (red errors, green OK, etc). - Check TMP= PKG= OUTPUT= assignments. - Check for outdated (i386, i486) ARCH and flags. - Check for hidden and empty files/directories. - Fix off-by-one error in slack-desc line length check. - Add check for trailing whitespace on slack-desc non-blank lines. sbopkglint: - Add tests for /usr/info. - /etc/ld.so.conf.d is not allowed. - *-mimetypes.list is now allowed in /usr/share/applications. - Broken python modules (named UNKNOWN-*) are now detected. Thanks to bedlam, fourtysixandtwo, Fonix, lockywolf, timsoft, and probably others for the ideas that led to the new features in 0.8.0.