diff options
Diffstat (limited to 'sbolint')
| -rwxr-xr-x | sbolint | 55 | 
1 files changed, 25 insertions, 30 deletions
| @@ -5,6 +5,8 @@ $VERSION="0.5.1";  # ChangeLog: +# 20220513 bkw: starting with 0.5, moved to sbo-maintainer-tools repo. +  # 0.4 20220314 bkw: add -a option to check all builds in the git repo.  # 0.3 20200420 bkw: @@ -54,7 +56,7 @@ sbolint - check SlackBuild directories or tarballs for common errors.  =head1 SYNOPSIS -B<sbolint> [-a] [-g] [-q] [-u] [-n] [build [build ...]] +B<sbolint> [-a] [-q] [-u] [-n] [build [build ...]]  =head1 DESCRIPTION @@ -139,6 +141,24 @@ inside this directory.  Archive must contain I<dirname/Idirname.SlackBuild>. +=item - + +Any files other than the .SlackBuild, .info, slack-desc, and README are +checked for permissions (should be 0644) and excessive size. + +=item - + +The source archive(s) must not exist. Also sbolint attempts to detect +extracted source trees (but isn't all that good at it). + +=item - + +"Junk" files such as editor backups, core dumps, +=item - + +Files named 'build.log*' or 'strace.out*' must not exist. The B<sbrun> +tool creates these. +  =back  For all builds: @@ -152,7 +172,7 @@ DOS \r\n), and the last line of each must have a \n.  =item - -The SlackBuild script must exist, with mode 0755 (or 0644, if in a git repo), +The SlackBuild script must exist, with mode 0644 or 0755 (or 0644 only, if in a git repo),  and be a I<#!/bin/bash> script.  =item - @@ -225,32 +245,6 @@ request (see the B<-u> option).  =back -The following tests are only done when sbolint's starting directory -was NOT in a git repo: - -=over 4 - -=item - - -Any files other than the .SlackBuild, .info, slack-desc, and README are -checked for permissions (should be 0644) and excessive size. - -=item - - -The source archive(s) must not exist. Also sbolint attempts to detect -extracted source trees (but isn't all that good at it). - -=item - - -Files named 'build.log' or 'strace.out*' must not exist. The B<sbrun> -tool creates these. - -=back - -The rationale for skipping the above tests when in a git repo is that -maintainers will be using git to track files and push changes, so we -don't need to check them here. -  =head1 EXIT STATUS  Exit status from sbolint will normally be 0 (success) if there were no @@ -581,6 +575,7 @@ sub extract_tarball {  # otherwise cd to its argument if it's a dir, otherwise error.  sub run_checks {  	$build = shift; +	my $checking_tarball = 0;  	my $oldcwd = getcwd();  	$errcount = $warncount = 0; @@ -590,6 +585,7 @@ sub run_checks {  		$buildname =~ s,.*/,,;  		if(check_tarball($build)) {  			chdir_or_die(extract_tarball($build)); +			$checking_tarball++;  		} else {  			return 0;  		} @@ -614,7 +610,7 @@ sub run_checks {  	# if we're in a git repo, it's assumed we're going to track extra  	# files with git, and use git to update the build, not tar it up  	# and use the web form. -	push @checks, \&check_junkfiles unless $in_git_repo; +	push @checks, \&check_junkfiles if $checking_tarball;  	for(@checks) {  		$_->($build);  	} @@ -1089,7 +1085,6 @@ sub curl_head_request {  sub check_script {  	my $file = $buildname . ".SlackBuild"; -	my $wantmode = $in_git_repo ? 0644 : 0755;  	if(-e $file) {  		my $gotmode = 07777 & ((stat($file))[2]); | 
