Просмотр исходного кода

Avoid full stop and double newline at the end of errors and warnings

Error messages like "couldn't parse control information from foo.deb"
are not full sentences, so don't punctuate them like one. The main
purpose of this patch is stylistic consistency, but perhaps it can
also make copy-and-paste from messages like

	dpkg-query: no path found matching pattern /usr/bin/agrep.

a little easier.

Most actual full sentences should remain untouched. A few full sentences
are error messages at heart, so this patch converts those to lower-case
sentence fragment form, too.

[guillem@debian.org:
 - Add missed strings.
 - Minor tweaks to strings. ]

Closes: #624000

Requested-by: Jari Aalto <jari.aalto@cante.net>
Signed-off-by: Guillem Jover <guillem@debian.org>
Jonathan Nieder лет назад: 14
Родитель
Сommit
9308127a8f

+ 2 - 0
debian/changelog

@@ -37,6 +37,8 @@ dpkg (1.16.5) UNRELEASED; urgency=low
   * Print master and slave alternarive link names in update-alternatives
     --query and always print alternative link in --config. Closes: #679010
   * Cleanup and clarify buffer I/O error reporting. Closes: #621763
+  * Avoid full stop and double newline at the end of errors and warnings.
+    Thanks to Jonathan Nieder <jnieder@gmail.com>. Closes: #624000
 
   [ Updated dpkg translations ]
   * Swedish (Peter Krefting).

+ 1 - 1
dpkg-deb/build.c

@@ -430,7 +430,7 @@ do_build(const char *const *argv)
   if (nocheckflag) {
     if (subdir)
       ohshit(_("target is directory - cannot skip control file check"));
-    warning(_("not checking contents of control area."));
+    warning(_("not checking contents of control area"));
     printf(_("dpkg-deb: building an unknown package in '%s'.\n"), debar);
   } else {
     struct pkginfo *pkg;

+ 4 - 4
dpkg-split/split.c

@@ -196,10 +196,10 @@ mksplit(const char *file_src, const char *prefix, off_t maxpartsize,
 			cur_partsize = partsize;
 
 		if (cur_partsize > maxpartsize) {
-			ohshit(_("Header is too long, making part too long. "
-			       "Your package name or version\n"
-			       "numbers must be extraordinarily long, "
-			       "or something. Giving up.\n"));
+			ohshit(_("header is too long, making part too long; "
+			         "the package name or version\n"
+			         "numbers must be extraordinarily long, "
+			         "or something; giving up"));
 		}
 
 		/* Split the data. */

+ 1 - 1
dselect/bindings.cc

@@ -159,7 +159,7 @@ const keybindings::description keybindings::descriptions[]= {
   { "morespecific",    N_("Make highlight more specific")                        },
   { "lessspecific",    N_("Make highlight less specific")                        },
   { "search",          N_("Search for a package whose name contains a string")   },
-  { "searchagain",     N_("Repeat last search.")                                 },
+  { "searchagain",     N_("Repeat last search")                                 },
   { "swaporder",       N_("Swap sort order priority/section")                    },
   { "quitcheck",       N_("Quit, confirming, and checking dependencies")         },
   { "quitnocheck",     N_("Quit, confirming without check")                      },

+ 2 - 2
dselect/main.cc

@@ -248,7 +248,7 @@ extern "C" {
       if (strcasecmp(item, table[i].name) == 0)
         return table[i].num;
 
-    ohshit(_("Invalid %s `%s'\n"), tablename, item);
+    ohshit(_("invalid %s '%s'"), tablename, item);
   }
 
   /*
@@ -271,7 +271,7 @@ extern "C" {
 
     if ((colours == NULL || ! strlen(colours)) &&
         (attributes == NULL || ! strlen(attributes))) {
-       ohshit(_("Null colour specification\n"));
+       ohshit(_("null colour specification"));
     }
 
     if (colours != NULL && strlen(colours)) {

+ 1 - 1
dselect/pkglist.cc

@@ -418,7 +418,7 @@ packagelist::packagelist(keybindings *kb) : baselist(kb) {
   pkg_db_iter_free(iter);
 
   if (!nitems)
-    ohshit(_("There are no packages."));
+    ohshit(_("there are no packages"));
   recursive= 0;
   sortorder= so_priority;
   statsortorder= sso_avail;

+ 1 - 1
scripts/Dpkg/BuildFlags.pm

@@ -318,7 +318,7 @@ sub update_from_conffile {
                 $self->prepend($flag, $value, $src);
             }
         } else {
-            warning(_g("line %d of %s is invalid, it has been ignored."), $., $file);
+            warning(_g("line %d of %s is invalid, it has been ignored"), $., $file);
         }
     }
     close(CNF);

+ 3 - 3
scripts/Dpkg/Shlibs/SymbolFile.pm

@@ -215,7 +215,7 @@ sub parse {
 
 	if (/^(?:\s+|#(?:DEPRECATED|MISSING): ([^#]+)#\s*)(.*)/) {
 	    if (not defined ($$obj_ref)) {
-		error(_g("Symbol information must be preceded by a header (file %s, line %s)."), $file, $.);
+		error(_g("symbol information must be preceded by a header (file %s, line %s)"), $file, $.);
 	    }
 	    # Symbol specification
 	    my $deprecated = ($1) ? $1 : 0;
@@ -268,7 +268,7 @@ sub merge_object_from_symfile {
     if (not $self->has_object($objid)) {
         $self->{objects}{$objid} = $src->get_object($objid);
     } else {
-        warning(_g("Tried to merge the same object (%s) twice in a symfile."), $objid);
+        warning(_g("tried to merge the same object (%s) twice in a symfile"), $objid);
     }
 }
 
@@ -385,7 +385,7 @@ sub find_matching_pattern {
 # machinery
 sub merge_symbols {
     my ($self, $object, $minver) = @_;
-    my $soname = $object->{SONAME} || error(_g("Can't merge symbols from objects without SONAME."));
+    my $soname = $object->{SONAME} || error(_g("cannot merge symbols from objects without SONAME"));
     my %dynsyms;
     foreach my $sym ($object->get_exported_dynamic_symbols()) {
         my $name = $sym->{name} . '@' .

+ 2 - 1
scripts/Dpkg/Source/Package/V3/bzr.pm

@@ -49,7 +49,8 @@ sub import {
             return 1;
         }
     }
-    error(_g("This source package can only be manipulated using bzr, which is not in the PATH."));
+    error(_g("cannot unpack bzr-format source package because " .
+             "bzr is not in the PATH"));
 }
 
 sub sanity_check {

+ 3 - 3
scripts/Dpkg/Source/Package/V3/git.pm

@@ -52,8 +52,8 @@ sub import {
             return 1;
         }
     }
-    error(_g("This source package can only be manipulated using git, " .
-             "which is not in the PATH."));
+    error(_g("cannot unpack git-format source package because " .
+             "git is not in the PATH"));
 }
 
 sub sanity_check {
@@ -65,7 +65,7 @@ sub sanity_check {
                  "specified"), $srcdir);
     }
     if (-s "$srcdir/.gitmodules") {
-        error(_g("git repository %s uses submodules. This is not yet supported."),
+        error(_g("git repository %s uses submodules; this is not yet supported"),
               $srcdir);
     }
 

+ 2 - 2
scripts/Dpkg/Source/Quilt.pm

@@ -262,8 +262,8 @@ sub read_patch_list {
             $_ = $1;
             if ($2 ne '-p1') {
                 warning(_g("the series file (%s) contains unsupported " .
-                           "options ('%s', line %s), dpkg-source might " .
-                           "fail when applying patches."),
+                           "options ('%s', line %s); dpkg-source might " .
+                           "fail when applying patches"),
                         $file, $2, $.) if $opts{"warn_options"};
             }
         }

+ 1 - 1
scripts/dpkg-architecture.pl

@@ -213,7 +213,7 @@ if ($req_host_gnu_type ne '' && $req_host_arch ne '') {
     error(_g("unknown default GNU system type for Debian architecture %s"),
           $req_host_arch)
 	unless defined $dfl_host_gnu_type;
-    warning(_g("Default GNU system type %s for Debian arch %s does not " .
+    warning(_g("default GNU system type %s for Debian arch %s does not " .
                "match specified GNU system type %s"), $dfl_host_gnu_type,
             $req_host_arch, $req_host_gnu_type)
         if $dfl_host_gnu_type ne $req_host_gnu_type;

+ 6 - 7
scripts/dpkg-buildpackage.pl

@@ -335,7 +335,7 @@ my $pv = "${pkg}_$sversion";
 my $pva = "${pkg}_${sversion}_$arch";
 
 if (not -x "debian/rules") {
-    warning(_g("debian/rules is not executable: fixing that."));
+    warning(_g("debian/rules is not executable; fixing that"));
     chmod(0755, "debian/rules"); # No checks of failures, non fatal
 }
 
@@ -354,12 +354,12 @@ if ($checkbuilddep) {
     if (not WIFEXITED($?)) {
         subprocerr('dpkg-checkbuilddeps');
     } elsif (WEXITSTATUS($?)) {
-	warning(_g("Build dependencies/conflicts unsatisfied; aborting."));
+	warning(_g("build dependencies/conflicts unsatisfied; aborting"));
 	warning(_g("(Use -d flag to override.)"));
 
 	if (build_sourceonly) {
-	    warning(_g("This is currently a non-fatal warning with -S, but"));
-	    warning(_g("will probably become fatal in the future."));
+	    warning(_g("this is currently a non-fatal warning with -S, but " .
+	               "will probably become fatal in the future"));
 	} else {
 	    exit 3;
 	}
@@ -381,9 +381,8 @@ unless ($noclean) {
     withecho(@rootcommand, @debian_rules, 'clean');
 }
 unless (build_binaryonly) {
-    warning(_g("it is a bad idea to generate a source package " .
-               "without cleaning up first, it might contain undesired " .
-               "files.")) if $noclean;
+    warning(_g("building a source package without cleaning up as you asked; " .
+               "it might contain undesired files")) if $noclean;
     chdir('..') or syserr('chdir ..');
     withecho('dpkg-source', @source_opts, '-b', $dir);
     chdir($dir) or syserr("chdir $dir");

+ 1 - 1
scripts/dpkg-scanpackages.pl

@@ -184,7 +184,7 @@ FILE:
 			'to_pipe' => \$output);
 	my $fields = Dpkg::Control->new(type => CTRL_INDEX_PKG);
 	$fields->parse($output, $fn)
-	    or error(_g("couldn't parse control information from %s."), $fn);
+	    or error(_g("couldn't parse control information from %s"), $fn);
 	wait_child($pid, no_check => 1);
 	if ($?) {
 	    warning(_g("\`dpkg-deb -I %s control' exited with %d, skipping package"),

+ 12 - 12
scripts/dpkg-shlibdeps.pl

@@ -178,7 +178,7 @@ foreach my $file (keys %exec) {
 	    $soname_notfound{$soname} = 1;
 	    $global_soname_notfound{$soname} = 1;
 	    my $msg = _g("couldn't find library %s needed by %s (ELF " .
-			 "format: '%s'; RPATH: '%s').");
+			 "format: '%s'; RPATH: '%s')");
 	    if (scalar(split_soname($soname))) {
 		errormsg($msg, $soname, $file, $obj->{format}, join(":", @{$obj->{RPATH}}));
 		$error_count++;
@@ -286,7 +286,7 @@ foreach my $file (keys %exec) {
 		    # 3/ when we have been asked to do so
 		    $ignore++ if $ignore_missing_info;
 		    error(_g("no dependency information found for %s " .
-		             "(used by %s)."), $lib, $file)
+		             "(used by %s)"), $lib, $file)
 		        unless $ignore;
 		}
 	    }
@@ -317,7 +317,7 @@ foreach my $file (keys %exec) {
         $in_public_dir = (grep { $parent_dir eq $_ } @librarypaths) ? 1 : 0;
     } else {
         warning(_g("binaries to analyze should already be " .
-                   "installed in their package's directory."));
+                   "installed in their package's directory"));
     }
     print "Analyzing all undefined symbols\n" if $debug > 1;
     foreach my $sym ($obj->get_undefined_dynamic_symbols()) {
@@ -360,10 +360,10 @@ foreach my $file (keys %exec) {
                         {
                             if ($in_public_dir) {
 			        warning(_g("symbol %s used by %s found in none of the " .
-				           "libraries."), $print_name, $file);
+				           "libraries"), $print_name, $file);
                             } else {
 			        warning(_g("%s contains an unresolvable reference to " .
-                                           "symbol %s: it's probably a plugin."),
+                                           "symbol %s: it's probably a plugin"),
                                         $file, $print_name);
                             }
 			    $nb_warnings++;
@@ -384,9 +384,9 @@ foreach my $file (keys %exec) {
 	    }
 	}
     }
-    warning(P_("%d similar warning has been skipped (use -v to see it).",
+    warning(P_("%d similar warning has been skipped (use -v to see it)",
                "%d other similar warnings have been skipped (use -v to see " .
-               "them all).", $nb_skipped_warnings), $nb_skipped_warnings)
+               "them all)", $nb_skipped_warnings), $nb_skipped_warnings)
         if $nb_skipped_warnings;
     foreach my $soname (@sonames) {
 	# Adjust minimal version of dependencies with information
@@ -412,7 +412,7 @@ foreach my $file (keys %exec) {
 		     scalar grep(/^libstdc\+\+\.so\.\d+/, @sonames));
             next unless ($warnings & WARN_NOT_NEEDED);
 	    warning(_g("%s should not be linked against %s (it uses none of " .
-	               "the library's symbols)."), $file, $soname);
+	               "the library's symbols)"), $file, $soname);
 	}
     }
 }
@@ -425,9 +425,9 @@ foreach my $soname (keys %global_soname_needed) {
                  grep(/^libstdc\+\+\.so\.\d+/, keys %global_soname_needed)));
         next unless ($warnings & WARN_DEP_AVOIDABLE);
         warning(P_("package could avoid a useless dependency if %s was not " .
-                   "linked against %s (it uses none of the library's symbols).",
+                   "linked against %s (it uses none of the library's symbols)",
                    "package could avoid a useless dependency if %s were not " .
-                   "linked against %s (they use none of the library's symbols).",
+                   "linked against %s (they use none of the library's symbols)",
                    scalar @{$global_soname_needed{$soname}}),
                 join(" ", @{$global_soname_needed{$soname}}), $soname);
     }
@@ -438,8 +438,8 @@ if ($error_count >= 1) {
     my $note = _g("Note: libraries are not searched in other binary packages " .
 	"that do not have any shlibs or symbols file.\nTo help dpkg-shlibdeps " .
 	"find private libraries, you might need to set LD_LIBRARY_PATH.");
-    error(P_("Cannot continue due to the error above.",
-             "Cannot continue due to the errors listed above.",
+    error(P_("cannot continue due to the error above",
+             "cannot continue due to the errors listed above",
              $error_count) . "\n" . $note);
 }
 

+ 2 - 2
src/archives.c

@@ -1254,7 +1254,7 @@ try_deconfigure_can(bool (*force_p)(struct deppossi *), struct pkginfo *pkg,
     if (pkg->installed.essential) {
       if (fc_removeessential) {
         warning(_("considering deconfiguration of essential\n"
-                  " package %s, to enable %s."),
+                  " package %s, to enable %s"),
                 pkg_name(pkg, pnaw_nonambig), action);
       } else {
         notice(_("no, %s is essential, will not deconfigure\n"
@@ -1649,7 +1649,7 @@ wanttoinstall(struct pkginfo *pkg)
     }
   } else {
     if (fc_downgrade) {
-      warning(_("downgrading %.250s from %.250s to %.250s."),
+      warning(_("downgrading %.250s from %.250s to %.250s"),
               pkg_name(pkg, pnaw_nonambig),
               versiondescribe(&pkg->installed.version, vdew_nonambig),
               versiondescribe(&pkg->available.version, vdew_nonambig));

+ 1 - 1
src/enquiry.c

@@ -546,7 +546,7 @@ printarch(const char *const *argv)
 int
 printinstarch(const char *const *argv)
 {
-  warning(_("obsolete option '--%s', please use '--%s' instead."),
+  warning(_("obsolete option '--%s'; please use '--%s' instead"),
           "print-installation-architecture", "print-architecture");
   return printarch(argv);
 }

+ 2 - 2
src/filesdb.c

@@ -272,8 +272,8 @@ ensure_packagefiles_available(struct pkginfo *pkg)
     onerr_abort--;
     if (pkg->status != stat_configfiles &&
         dpkg_version_is_informative(&pkg->configversion)) {
-      warning(_("files list file for package `%.250s' missing, assuming "
-                "package has no files currently installed."),
+      warning(_("files list file for package '%.250s' missing; assuming "
+                "package has no files currently installed"),
               pkg_name(pkg, pnaw_nonambig));
     }
     pkg->clientdata->files = NULL;

+ 5 - 5
src/help.c

@@ -103,7 +103,7 @@ void checkpath(void) {
 
   path_list = getenv("PATH");
   if (!path_list)
-    ohshit(_("PATH is not set."));
+    ohshit(_("PATH is not set"));
 
   for (prog = prog_list; *prog; prog++) {
     struct stat stab;
@@ -125,7 +125,7 @@ void checkpath(void) {
         break;
     }
     if (!path) {
-      warning(_("'%s' not found in PATH or not executable."), *prog);
+      warning(_("'%s' not found in PATH or not executable"), *prog);
       warned++;
     }
   }
@@ -134,11 +134,11 @@ void checkpath(void) {
 
   if (warned)
     forcibleerr(fc_badpath,
-                P_("%d expected program not found in PATH or not executable.\n%s",
-                   "%d expected programs not found in PATH or not executable.\n%s",
+                P_("%d expected program not found in PATH or not executable\n%s",
+                   "%d expected programs not found in PATH or not executable\n%s",
                    warned),
                 warned, _("Note: root's PATH should usually contain "
-                          "/usr/local/sbin, /usr/sbin and /sbin."));
+                          "/usr/local/sbin, /usr/sbin and /sbin"));
 }
 
 bool

+ 1 - 1
src/processarc.c

@@ -147,7 +147,7 @@ deb_verify(const char *filename)
     status = subproc_wait(pid, "debsig-verify");
     if (!(WIFEXITED(status) && WEXITSTATUS(status) == 0)) {
       if (!fc_badverify)
-        ohshit(_("Verification on package %s failed!"), filename);
+        ohshit(_("verification on package %s failed!"), filename);
       else
         notice(_("verification on package %s failed; "
                  "but installing anyway as you requested"), filename);

+ 1 - 1
src/querycmd.c

@@ -655,7 +655,7 @@ control_path(const char *const *argv)
              cipaction->olong, pkgname, err.str);
 
   if (pkg->status == stat_notinstalled)
-    ohshit(_("Package `%s' is not installed.\n"),
+    ohshit(_("package '%s' is not installed"),
            pkg_name(pkg, pnaw_nonambig));
 
   if (control_file)

+ 3 - 3
src/remove.c

@@ -91,7 +91,7 @@ void deferred_remove(struct pkginfo *pkg) {
         pkg_name(pkg, pnaw_always));
 
   if (pkg->status == stat_notinstalled) {
-    warning(_("ignoring request to remove %.250s which isn't installed."),
+    warning(_("ignoring request to remove %.250s which isn't installed"),
             pkg_name(pkg, pnaw_nonambig));
     pkg->clientdata->istobe= itb_normal;
     return;
@@ -99,7 +99,7 @@ void deferred_remove(struct pkginfo *pkg) {
              pkg->status == stat_configfiles &&
              cipaction->arg_int != act_purge) {
     warning(_("ignoring request to remove %.250s, only the config\n"
-              " files of which are on the system. Use --purge to remove them too."),
+              " files of which are on the system; use --purge to remove them too"),
             pkg_name(pkg, pnaw_nonambig));
     pkg->clientdata->istobe= itb_normal;
     return;
@@ -409,7 +409,7 @@ static void removal_bulk_remove_leftover_dirs(struct pkginfo *pkg) {
     debug(dbg_eachfiledetail, "removal_bulk removing '%s'", fnvb.buf);
     if (!rmdir(fnvb.buf) || errno == ENOENT || errno == ELOOP) continue;
     if (errno == ENOTEMPTY || errno == EEXIST) {
-      warning(_("while removing %.250s, directory '%.250s' not empty so not removed."),
+      warning(_("while removing %.250s, directory '%.250s' not empty so not removed"),
               pkg_name(pkg, pnaw_nonambig), namenode->name);
       push_leftover(&leftover,namenode);
       continue;

+ 5 - 5
src/statcmd.c

@@ -234,12 +234,12 @@ statoverride_add(const char *const *argv)
 	filestat = statdb_node_find(filename);
 	if (*filestat != NULL) {
 		if (opt_force)
-			warning(_("An override for '%s' already exists, "
-			          "but --force specified so will be ignored."),
+			warning(_("an override for '%s' already exists, "
+			          "but --force specified so will be ignored"),
 			        filename);
 		else
-			ohshit(_("An override for '%s' already exists, "
-			         "aborting."), filename);
+			ohshit(_("an override for '%s' already exists; "
+			         "aborting"), filename);
 	}
 
 	*filestat = statdb_node_new(user, group, mode);
@@ -274,7 +274,7 @@ statoverride_remove(const char *const *argv)
 
 	if (!statdb_node_remove(filename)) {
 		if (opt_verbose)
-			warning(_("No override present."));
+			warning(_("no override present"));
 		if (opt_force)
 			return 0;
 		else

+ 1 - 1
src/update.c

@@ -109,7 +109,7 @@ forgetold(const char *const *argv)
   if (*argv)
     badusage(_("--%s takes no arguments"), cipaction->olong);
 
-  warning(_("obsolete '--%s' option, unavailable packages are automatically cleaned up."),
+  warning(_("obsolete '--%s' option; unavailable packages are automatically cleaned up"),
           cipaction->olong);
 
   return 0;

+ 31 - 31
utils/update-alternatives.c

@@ -1213,8 +1213,8 @@ alternative_parse_fileset(struct alternative *a, struct altdb_context *ctx)
 		/* File not found - remove. */
 		if (ctx->flags & altdb_warn_parser)
 			warning(_("alternative %s (part of link group %s) "
-			          "doesn't exist. Removing from list of "
-			          "alternatives."), master_file, a->master_name);
+			          "doesn't exist; removing from list of "
+			          "alternatives"), master_file, a->master_name);
 		junk = altdb_get_line(ctx, _("priority"));
 		free(junk);
 		for (sl = a->slaves; sl; sl = sl->next) {
@@ -1340,7 +1340,7 @@ alternative_save(struct alternative *a)
 		if (!has_slave) {
 			struct slave_link *sl_rm;
 
-			verbose(_("discarding obsolete slave link %s (%s)."),
+			verbose(_("discarding obsolete slave link %s (%s)"),
 			        sl->name, sl->link);
 			if (sl_prev)
 				sl_prev->next = sl->next;
@@ -1722,7 +1722,7 @@ alternative_path_needs_update(const char *linkname, const char *filename)
 
 		return update;
 	case ALT_PATH_OTHER:
-		warning(_("not replacing %s with a link."), linkname);
+		warning(_("not replacing %s with a link"), linkname);
 		return false;
 	case ALT_PATH_MISSING:
 	default:
@@ -1782,7 +1782,7 @@ alternative_prepare_install(struct alternative *a, const char *choice)
 		/* Slave can't be installed */
 		if (fileset_has_slave(fs, sl->name))
 			warning(_("skip creation of %s because associated "
-			          "file %s (of link group %s) doesn't exist."),
+			          "file %s (of link group %s) doesn't exist"),
 			        sl->link, fileset_get_slave(fs, sl->name),
 			        a->master_name);
 
@@ -1791,7 +1791,7 @@ alternative_prepare_install(struct alternative *a, const char *choice)
 		if (alternative_path_can_remove(sl->link))
 			alternative_add_commit_op(a, opcode_rm, sl->link, NULL);
 		else
-			warning(_("not removing %s since it's not a symlink."),
+			warning(_("not removing %s since it's not a symlink"),
 			        sl->link);
 		alternative_add_commit_op(a, opcode_rm, fn, NULL);
 		free(fn);
@@ -2168,19 +2168,19 @@ alternative_select_mode(struct alternative *a, const char *current_choice)
 				syserr(_("cannot stat file '%s'"), current_choice);
 
 			if (errno == ENOENT) {
-				warning(_("%s/%s is dangling, it will be updated "
-				          "with best choice."), altdir, a->master_name);
+				warning(_("%s/%s is dangling; it will be updated "
+				          "with best choice"), altdir, a->master_name);
 				alternative_set_status(a, ALT_ST_AUTO);
 			} else if (a->status != ALT_ST_MANUAL) {
 				warning(_("%s/%s has been changed (manually or by "
-				          "a script). Switching to manual "
-				          "updates only."), altdir, a->master_name);
+				          "a script); switching to manual "
+				          "updates only"), altdir, a->master_name);
 				alternative_set_status(a, ALT_ST_MANUAL);
 			}
 		}
 	} else {
 		/* Lack of alternative link => automatic mode. */
-		verbose(_("setting up automatic selection of %s."),
+		verbose(_("setting up automatic selection of %s"),
 		        a->master_name);
 		alternative_set_status(a, ALT_ST_AUTO);
 	}
@@ -2196,7 +2196,7 @@ alternative_evolve(struct alternative *a, struct alternative *b,
 
 	is_link = alternative_path_classify(a->master_link) == ALT_PATH_SYMLINK;
 	if (is_link && strcmp(a->master_link, b->master_link) != 0) {
-		info(_("renaming %s link from %s to %s."), b->master_name,
+		info(_("renaming %s link from %s to %s"), b->master_name,
 		     a->master_link, b->master_link);
 		checked_mv(a->master_link, b->master_link);
 	}
@@ -2237,7 +2237,7 @@ alternative_evolve(struct alternative *a, struct alternative *b,
 			}
 
 			if (rename_link) {
-				info(_("renaming %s slave link from %s to %s."),
+				info(_("renaming %s slave link from %s to %s"),
 				     sl->name, old, new);
 				checked_mv(old, new);
 			} else {
@@ -2265,7 +2265,7 @@ alternative_update(struct alternative *a,
 	    (!current_choice || strcmp(new_choice, current_choice) != 0)) {
 		log_msg("link group %s updated to point to %s", a->master_name,
 		        new_choice);
-		info(_("using %s to provide %s (%s) in %s."), new_choice,
+		info(_("using %s to provide %s (%s) in %s"), new_choice,
 		     a->master_link, a->master_name,
 		     (a->status == ALT_ST_AUTO) ? _("auto mode") :
 		                                  _("manual mode"));
@@ -2274,14 +2274,14 @@ alternative_update(struct alternative *a,
 	} else if (alternative_is_broken(a)) {
 		log_msg("auto-repair link group %s", a->master_name);
 		warning(_("forcing reinstallation of alternative %s because "
-		          "link group %s is broken."), current_choice,
+		          "link group %s is broken"), current_choice,
 		        a->master_name);
 
 		if (current_choice && !alternative_has_choice(a, current_choice)) {
 			struct fileset *best = alternative_get_best(a);
 
 			warning(_("current alternative %s is unknown, "
-			          "switching to %s for link group %s."),
+			          "switching to %s for link group %s"),
 			        current_choice, best->master_file,
 			        a->master_name);
 			current_choice = best->master_file;
@@ -2307,7 +2307,7 @@ alternative_check_name(const char *name)
 {
 	if (strpbrk(name, "/ \t"))
 		error(_("alternative name (%s) must not contain '/' "
-		        "and spaces."), name);
+		        "and spaces"), name);
 }
 
 static void
@@ -2361,13 +2361,13 @@ alternative_check_install_args(struct alternative *inst_alt,
 	if (found && strcmp(found->master_name, inst_alt->master_name) != 0) {
 		found = alternative_map_find(alt_map_parent,
 		                             found->master_name);
-		error(_("alternative link %s is already managed by %s."),
+		error(_("alternative link %s is already managed by %s"),
 		      inst_alt->master_link, found->master_name);
 	}
 
 	if (stat(fileset->master_file, &st) == -1) {
 		if (errno == ENOENT)
-			error(_("alternative path %s doesn't exist."),
+			error(_("alternative path %s doesn't exist"),
 			      fileset->master_file);
 		else
 			syserr(_("cannot stat file '%s'"), fileset->master_file);
@@ -2385,7 +2385,7 @@ alternative_check_install_args(struct alternative *inst_alt,
 		    strcmp(found->master_name, inst_alt->master_name) != 0) {
 			if (strcmp(found->master_name, sl->name) == 0)
 				error(_("alternative %s can't be slave of %s: "
-				        "it is a master alternative."),
+				        "it is a master alternative"),
 				      sl->name, inst_alt->master_name);
 			else
 				error(_("alternative %s can't be slave of %s: "
@@ -2398,7 +2398,7 @@ alternative_check_install_args(struct alternative *inst_alt,
 		if (found &&
 		    strcmp(found->master_name, inst_alt->master_name) != 0) {
 			error(_("alternative link %s is already "
-			        "managed by %s."), sl->link,
+			        "managed by %s"), sl->link,
 			      found->master_name);
 		}
 		if (found) {
@@ -2409,7 +2409,7 @@ alternative_check_install_args(struct alternative *inst_alt,
 					break;
 			if (sl2 && strcmp(sl2->name, sl->name) != 0)
 				error(_("alternative link %s is already "
-				        "managed by %s (slave of %s)."),
+				        "managed by %s (slave of %s)"),
 				      sl->link, sl2->name,
 				      found->master_name);
 		}
@@ -2614,13 +2614,13 @@ main(int argc, char **argv)
 	    strcmp(action, "remove-all") == 0) {
 		/* Load the alternative info, stop on failure. */
 		if (!alternative_load(a, altdb_warn_parser))
-			error(_("no alternatives for %s."), a->master_name);
+			error(_("no alternatives for %s"), a->master_name);
 	} else if (strcmp(action, "remove") == 0) {
 		/* FIXME: Be consistent for now with the case when we
 		 * try to remove a non-existing path from an existing
 		 * link group file. */
 		if (!alternative_load(a, altdb_warn_parser)) {
-			verbose(_("no alternatives for %s."), a->master_name);
+			verbose(_("no alternatives for %s"), a->master_name);
 			exit(0);
 		}
 	} else if (strcmp(action, "install") == 0) {
@@ -2659,8 +2659,8 @@ main(int argc, char **argv)
 		if (alternative_has_choice(a, path))
 			new_choice = path;
 		else
-			error(_("alternative %s for %s not registered, "
-			        "not setting."), path, a->master_name);
+			error(_("alternative %s for %s not registered; "
+			        "not setting"), path, a->master_name);
 		alternative_set_status(a, ALT_ST_MANUAL);
 	} else if (strcmp(action, "auto") == 0) {
 		alternative_set_status(a, ALT_ST_AUTO);
@@ -2689,8 +2689,8 @@ main(int argc, char **argv)
 		if (alternative_has_choice(a, path))
 			alternative_remove_choice(a, path);
 		else
-			verbose(_("alternative %s for %s not registered, not "
-			          "removing."), path, a->master_name);
+			verbose(_("alternative %s for %s not registered; not "
+			          "removing"), path, a->master_name);
 		if (current_choice && strcmp(current_choice, path) == 0) {
 			struct fileset *best;
 
@@ -2722,10 +2722,10 @@ main(int argc, char **argv)
 		if (a->status == ALT_ST_AUTO) {
 			new_choice = alternative_get_best(a)->master_file;
 		} else {
-			verbose(_("automatic updates of %s/%s are disabled, "
-			          "leaving it alone."), altdir, a->master_name);
+			verbose(_("automatic updates of %s/%s are disabled; "
+			          "leaving it alone"), altdir, a->master_name);
 			verbose(_("to return to automatic updates use "
-			          "'%s --auto %s'."), PROGNAME, a->master_name);
+			          "'%s --auto %s'"), PROGNAME, a->master_name);
 		}
 	}