summaryrefslogtreecommitdiffstats
path: root/src/deb
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/deb/build.c10
-rw-r--r--src/deb/extract.c2
-rw-r--r--src/deb/info.c62
-rw-r--r--src/deb/main.c15
4 files changed, 45 insertions, 44 deletions
diff --git a/src/deb/build.c b/src/deb/build.c
index 1f0c050..a418dd1 100644
--- a/src/deb/build.c
+++ b/src/deb/build.c
@@ -544,7 +544,9 @@ parse_timestamp(const char *value)
errno = 0;
timestamp = strtoimax(value, &end, 10);
- if (value == end || *end || errno != 0)
+ if (value == end || *end)
+ ohshit(_("unable to parse timestamp '%.255s'"), value);
+ else if (errno != 0)
ohshite(_("unable to parse timestamp '%.255s'"), value);
return timestamp;
@@ -597,7 +599,7 @@ do_build(const char *const *argv)
m_output(stdout, _("<standard output>"));
timestamp_str = getenv("SOURCE_DATE_EPOCH");
- if (timestamp_str)
+ if (str_is_set(timestamp_str))
timestamp = parse_timestamp(timestamp_str);
else
timestamp = time(NULL);
@@ -614,7 +616,7 @@ do_build(const char *const *argv)
* unlink our temporary file so others can't mess with it. */
tfbuf = path_make_temp_template("dpkg-deb");
gzfd = mkstemp(tfbuf);
- if (gzfd == -1)
+ if (gzfd < 0)
ohshite(_("failed to make temporary file (%s)"), _("control member"));
/* Make sure it's gone, the fd will remain until we close it. */
if (unlink(tfbuf))
@@ -686,7 +688,7 @@ do_build(const char *const *argv)
* temporary file so others can't mess with it. */
tfbuf = path_make_temp_template("dpkg-deb");
gzfd = mkstemp(tfbuf);
- if (gzfd == -1)
+ if (gzfd < 0)
ohshite(_("failed to make temporary file (%s)"), _("data member"));
/* Make sure it's gone, the fd will remain until we close it. */
if (unlink(tfbuf))
diff --git a/src/deb/extract.c b/src/deb/extract.c
index 8b78a7e..08b2815 100644
--- a/src/deb/extract.c
+++ b/src/deb/extract.c
@@ -364,7 +364,7 @@ extracthalf(const char *debar, const char *dir,
}
subproc_reap(c2, _("<decompress>"), SUBPROC_NOPIPE);
- if (c1 != -1)
+ if (c1 >= 0)
subproc_reap(c1, _("paste"), 0);
if (version.major == 0 && admininfo) {
/* Handle the version as a float to preserve the behavior of old code,
diff --git a/src/deb/info.c b/src/deb/info.c
index 6598663..afe7901 100644
--- a/src/deb/info.c
+++ b/src/deb/info.c
@@ -93,19 +93,18 @@ info_spew(const char *debar, const char *dir, const char *const *argv)
varbuf_reset(&controlfile);
varbuf_printf(&controlfile, "%s/%s", dir, component);
- fd = open(controlfile.buf, O_RDONLY);
+ fd = open(varbuf_str(&controlfile), O_RDONLY);
if (fd >= 0) {
if (fd_fd_copy(fd, 1, -1, &err) < 0)
ohshit(_("cannot extract control file '%s' from '%s': %s"),
- controlfile.buf, debar, err.str);
+ varbuf_str(&controlfile), debar, err.str);
close(fd);
} else if (errno == ENOENT) {
notice(_("'%.255s' contains no control component '%.255s'"),
debar, component);
re++;
} else {
- ohshite(_("open component '%.255s' (in %.255s) failed in an unexpected way"),
- component, dir);
+ ohshite(_("cannot open file '%.255s'"), controlfile.buf);
}
}
varbuf_destroy(&controlfile);
@@ -115,21 +114,25 @@ info_spew(const char *debar, const char *dir, const char *const *argv)
"%d requested control components are missing", re), re);
}
-static char *
-info_interpreter(FILE *cc, int *lines)
-{
+struct script {
char interpreter[INTERPRETER_MAX + 1];
+ int lines;
+};
+
+static void
+info_script(FILE *cc, struct script *script)
+{
int c;
- *lines = 0;
- interpreter[0] = '\0';
+ script->lines = 0;
+ script->interpreter[0] = '\0';
if (getc(cc) == '#' && getc(cc) == '!') {
char *p;
int il;
while ((c = getc(cc)) == ' ')
;
- p = interpreter;
+ p = script->interpreter;
*p++ = '#';
*p++ = '!';
il = 2;
@@ -140,14 +143,12 @@ info_interpreter(FILE *cc, int *lines)
}
*p = '\0';
if (c == '\n')
- (*lines)++;
+ script->lines++;
}
while ((c = getc(cc)) != EOF) {
if (c == '\n')
- (*lines)++;
+ script->lines++;
}
-
- return m_strdup(interpreter);
}
static void
@@ -159,7 +160,7 @@ info_list(const char *debar, const char *dir)
FILE *cc;
cdn = scandir(dir, &cdlist, &ilist_select, alphasort);
- if (cdn == -1)
+ if (cdn < 0)
ohshite(_("cannot scan directory '%.255s'"), dir);
for (n = 0; n < cdn; n++) {
@@ -172,30 +173,28 @@ info_list(const char *debar, const char *dir)
varbuf_printf(&controlfile, "%s/%s", dir, cdep->d_name);
if (stat(controlfile.buf, &stab))
- ohshite(_("cannot stat '%.255s' (in '%.255s')"), cdep->d_name, dir);
+ ohshite(_("cannot get file '%.255s' metadata"), controlfile.buf);
if (S_ISREG(stab.st_mode)) {
int exec_mark = (S_IXUSR & stab.st_mode) ? '*' : ' ';
- char *interpreter;
- int lines;
+ struct script script;
cc = fopen(controlfile.buf, "r");
if (!cc)
- ohshite(_("cannot open '%.255s' (in '%.255s')"), cdep->d_name, dir);
+ ohshite(_("cannot open file '%.255s'"), controlfile.buf);
- interpreter = info_interpreter(cc, &lines);
+ info_script(cc, &script);
if (ferror(cc))
- ohshite(_("failed to read '%.255s' (in '%.255s')"), cdep->d_name, dir);
+ ohshite(_("cannot read file '%.255s'"), controlfile.buf);
fclose(cc);
- if (str_is_set(interpreter))
+
+ if (str_is_set(script.interpreter))
printf(_(" %7jd bytes, %5d lines %c %-20.127s %.127s\n"),
- (intmax_t)stab.st_size, lines, exec_mark, cdep->d_name,
- interpreter);
+ (intmax_t)stab.st_size, script.lines, exec_mark, cdep->d_name,
+ script.interpreter);
else
printf(_(" %7jd bytes, %5d lines %c %.127s\n"),
- (intmax_t)stab.st_size, lines, exec_mark, cdep->d_name);
-
- free(interpreter);
+ (intmax_t)stab.st_size, script.lines, exec_mark, cdep->d_name);
} else {
printf(_(" not a plain file %.255s\n"), cdep->d_name);
}
@@ -208,7 +207,7 @@ info_list(const char *debar, const char *dir)
cc = fopen(controlfile.buf, "r");
if (!cc) {
if (errno != ENOENT)
- ohshite(_("failed to read '%.255s' (in '%.255s')"), CONTROLFILE, dir);
+ ohshite(_("cannot read file '%.255s'"), controlfile.buf);
warning(_("no 'control' file in control archive!"));
} else {
int lines, c;
@@ -224,7 +223,7 @@ info_list(const char *debar, const char *dir)
putc('\n', stdout);
if (ferror(cc))
- ohshite(_("failed to read '%.255s' (in '%.255s')"), CONTROLFILE, dir);
+ ohshite(_("cannot read file '%.255s'"), controlfile.buf);
fclose(cc);
}
@@ -259,12 +258,11 @@ info_field(const char *debar, const char *dir, const char *const *fields,
if (arbfield)
varbuf_add_arbfield(&str, arbfield, fieldflags);
}
- varbuf_end_str(&str);
if (fieldflags & fw_printheader)
- printf("%s", str.buf);
+ printf("%s", varbuf_str(&str));
else
- printf("%s\n", str.buf);
+ printf("%s\n", varbuf_str(&str));
}
m_output(stdout, _("<standard output>"));
diff --git a/src/deb/main.c b/src/deb/main.c
index 2c53811..b7a19b2 100644
--- a/src/deb/main.c
+++ b/src/deb/main.c
@@ -26,7 +26,7 @@
#include <sys/wait.h>
#include <limits.h>
-#if HAVE_LOCALE_H
+#ifdef HAVE_LOCALE_H
#include <locale.h>
#endif
#include <errno.h>
@@ -107,10 +107,11 @@ usage(const char *const *argv)
" --root-owner-group Forces the owner and groups to root.\n"
" --threads-max=<threads> Use at most <threads> with compressor.\n"
" --[no-]uniform-compression Use the compression params on all members.\n"
-" -z# Set the compression level when building.\n"
-" -Z<type> Set the compression type used when building.\n"
+" -Z, --compression=<compressor> Set build compression type.\n"
" Allowed types: gzip, xz, zstd, none.\n"
-" -S<strategy> Set the compression strategy when building.\n"
+" -z, --compression-level=<level> Set build compression level.\n"
+" -S, --compression-strategy=<name>\n"
+" Set build compression strategy.\n"
" Allowed values: none; extreme (xz);\n"
" filtered, huffman, rle, fixed (gzip).\n"
"\n"));
@@ -270,9 +271,9 @@ static const struct cmdinfo cmdinfos[]= {
{ "threads-max", 0, 1, NULL, NULL, set_threads_max },
{ "uniform-compression", 0, 0, &opt_uniform_compression, NULL, NULL, 1 },
{ "no-uniform-compression", 0, 0, &opt_uniform_compression, NULL, NULL, 0 },
- { NULL, 'z', 1, NULL, NULL, set_compress_level },
- { NULL, 'Z', 1, NULL, NULL, set_compress_type },
- { NULL, 'S', 1, NULL, NULL, set_compress_strategy },
+ { "compression", 'Z', 1, NULL, NULL, set_compress_type },
+ { "compression-level", 'z', 1, NULL, NULL, set_compress_level },
+ { "compression-strategy", 'S', 1, NULL, NULL, set_compress_strategy },
{ "showformat", 0, 1, NULL, &opt_showformat, NULL },
{ NULL, 0, 0, NULL, NULL, NULL }
};