1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
The real ChangeLog is the git log. This is just a summary of the
user-visible changes between releases.
New in 0.9.4:
=============
sbopkglint:
- check .pc files for validity, ownerships/perms, correct lib dir (lib
vs. lib64) and make sure any -I or -L dirs from pkg-config actually exist
in the package.
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.
|