Hi, this series update libguestfs to a recent gnulib version, so that we can use its new getprogname module, and solve altogether one of the porting issues (the need for 'program_name' by the error module of gnulib), and have a single way to get the name of the current program. A number of changes in tools mostly, although mechanical. Thanks, Pino Toscano (3): Update gnulib to latest Use the getprogname gnulib module daemon: drop program_name definition .gnulib | 2 +- align/scan.c | 8 ++++-- bootstrap | 1 + builder/index-validate.c | 7 +++-- cat/cat.c | 10 ++++--- cat/filesystems.c | 13 +++++---- cat/log.c | 22 +++++++------- cat/ls.c | 9 +++--- cat/visit.c | 6 ++-- daemon/guestfsd.c | 3 -- df/main.c | 8 ++++-- df/parallel.c | 3 +- diff/diff.c | 15 +++++----- edit/edit.c | 9 +++--- fish/config.c | 6 ++-- fish/fish.c | 41 ++++++++++++++------------- fish/inspect.c | 7 +++-- fish/options.c | 10 ++++--- fish/options.h | 6 ++-- fish/uri.c | 9 +++--- format/format.c | 12 ++++---- fuse/guestmount.c | 13 +++++---- fuse/guestunmount.c | 13 +++++---- fuse/test-guestmount-fd.c | 9 +++--- generator/fish.ml | 5 ++-- inspector/inspector.c | 12 ++++---- m4/.gitignore | 1 + m4/guestfs_libraries.m4 | 4 --- make-fs/make-fs.c | 29 ++++++++++--------- mllib/getopt-c.c | 11 +++---- p2v/conversion.c | 3 +- p2v/gui.c | 11 +++---- p2v/kernel-cmdline.c | 4 ++- p2v/kernel.c | 12 ++++---- p2v/main.c | 11 +++---- p2v/ssh.c | 9 +++--- rescue/rescue.c | 13 +++++---- src/guestfs-internal-frontend.h | 11 ------- src/handle.c | 11 +++---- tests/charsets/test-charset-fidelity.c | 4 ++- tests/mount-local/test-parallel-mount-local.c | 5 ++-- tests/parallel/test-parallel.c | 5 ++-- tests/regressions/Makefile.am | 8 ++++-- tests/regressions/rhbz790721.c | 4 ++- tests/regressions/rhbz914931.c | 4 ++- utils/boot-analysis/boot-analysis.c | 6 ++-- utils/boot-benchmark/boot-benchmark.c | 8 ++++-- utils/qemu-boot/qemu-boot.c | 10 ++++--- utils/qemu-speed-test/qemu-speed-test.c | 20 +++++++------ 49 files changed, 253 insertions(+), 210 deletions(-) -- 2.7.4
--- .gnulib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gnulib b/.gnulib index 348402f..4c32543 160000 --- a/.gnulib +++ b/.gnulib @@ -1 +1 @@ -Subproject commit 348402f2aac342bc925b7aaea9ee3cc353f427a9 +Subproject commit 4c32543a4f05706ca3a8c8d583a5fb35d0e58828 -- 2.7.4
Pino Toscano
2016-Sep-08 08:10 UTC
[Libguestfs] [PATCH 2/3] Use the getprogname gnulib module
Make use of the recently added 'getprogname' module in gnulib: replace our guestfs_int_program_name with the getprogname() provided by the module, since it does the same thing, and in a portable way. As consequence of the above, use gnulib in a couple of tests that use getprogname(). Since guestfs_int_program_name is gone, drop the configure checks associated with it. --- align/scan.c | 8 ++++-- bootstrap | 1 + builder/index-validate.c | 7 +++-- cat/cat.c | 10 ++++--- cat/filesystems.c | 13 +++++---- cat/log.c | 22 +++++++------- cat/ls.c | 9 +++--- cat/visit.c | 6 ++-- df/main.c | 8 ++++-- df/parallel.c | 3 +- diff/diff.c | 15 +++++----- edit/edit.c | 9 +++--- fish/config.c | 6 ++-- fish/fish.c | 41 ++++++++++++++------------- fish/inspect.c | 7 +++-- fish/options.c | 10 ++++--- fish/options.h | 6 ++-- fish/uri.c | 9 +++--- format/format.c | 12 ++++---- fuse/guestmount.c | 13 +++++---- fuse/guestunmount.c | 13 +++++---- fuse/test-guestmount-fd.c | 9 +++--- generator/fish.ml | 5 ++-- inspector/inspector.c | 12 ++++---- m4/.gitignore | 1 + m4/guestfs_libraries.m4 | 4 --- make-fs/make-fs.c | 29 ++++++++++--------- mllib/getopt-c.c | 11 +++---- p2v/conversion.c | 3 +- p2v/gui.c | 11 +++---- p2v/kernel-cmdline.c | 4 ++- p2v/kernel.c | 12 ++++---- p2v/main.c | 11 +++---- p2v/ssh.c | 9 +++--- rescue/rescue.c | 13 +++++---- src/guestfs-internal-frontend.h | 11 ------- src/handle.c | 11 +++---- tests/charsets/test-charset-fidelity.c | 4 ++- tests/mount-local/test-parallel-mount-local.c | 5 ++-- tests/parallel/test-parallel.c | 5 ++-- tests/regressions/Makefile.am | 8 ++++-- tests/regressions/rhbz790721.c | 4 ++- tests/regressions/rhbz914931.c | 4 ++- utils/boot-analysis/boot-analysis.c | 6 ++-- utils/boot-benchmark/boot-benchmark.c | 8 ++++-- utils/qemu-boot/qemu-boot.c | 10 ++++--- utils/qemu-speed-test/qemu-speed-test.c | 20 +++++++------ 47 files changed, 252 insertions(+), 206 deletions(-) diff --git a/align/scan.c b/align/scan.c index 4171f8c..953ee91 100644 --- a/align/scan.c +++ b/align/scan.c @@ -38,6 +38,8 @@ #include <libvirt/virterror.h> #endif +#include "getprogname.h" + #include "guestfs.h" #include "options.h" #include "display-options.h" @@ -73,7 +75,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: check alignment of virtual machine partitions\n" "Copyright (C) 2011 Red Hat Inc.\n" @@ -93,8 +95,8 @@ usage (int status) " -V|--version Display version and exit\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } diff --git a/bootstrap b/bootstrap index 5df6f0f..071682c 100755 --- a/bootstrap +++ b/bootstrap @@ -56,6 +56,7 @@ full-write futimens getaddrinfo getline +getprogname gitlog-to-changelog glob gnu-make diff --git a/builder/index-validate.c b/builder/index-validate.c index 967c2d3..d3912f3 100644 --- a/builder/index-validate.c +++ b/builder/index-validate.c @@ -30,6 +30,7 @@ #include <guestfs.h> +#include "getprogname.h" #include "guestfs-internal-frontend.h" #include "index-struct.h" @@ -40,7 +41,7 @@ extern int do_parse (struct parse_context *context, FILE *in); static void usage (int exit_status) { - printf ("%s index\n", guestfs_int_program_name); + printf ("%s index\n", getprogname ()); exit (exit_status); } @@ -90,7 +91,7 @@ main (int argc, char *argv[]) case 'V': printf ("%s %s%s\n", - guestfs_int_program_name, + getprogname (), PACKAGE_VERSION, PACKAGE_VERSION_EXTRA); exit (EXIT_SUCCESS); @@ -115,7 +116,7 @@ main (int argc, char *argv[]) if (fclose (in) == EOF) { fprintf (stderr, _("%s: %s: error closing input file: %m (ignored)\n"), - guestfs_int_program_name, input); + getprogname (), input); } if (ret != 0) { diff --git a/cat/cat.c b/cat/cat.c index 9c8d1a9..1ac32d7 100644 --- a/cat/cat.c +++ b/cat/cat.c @@ -30,6 +30,8 @@ #include <assert.h> #include <libintl.h> +#include "getprogname.h" + #include "guestfs.h" #include "options.h" #include "display-options.h" @@ -53,7 +55,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: display files in a virtual machine\n" "Copyright (C) 2010 Red Hat Inc.\n" @@ -74,8 +76,8 @@ usage (int status) " -V|--version Display version and exit\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } @@ -227,7 +229,7 @@ main (int argc, char *argv[]) /* User must have specified some drives. */ if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } diff --git a/cat/filesystems.c b/cat/filesystems.c index 6c8ce01..73967d7 100644 --- a/cat/filesystems.c +++ b/cat/filesystems.c @@ -33,6 +33,7 @@ #include "c-ctype.h" #include "human.h" +#include "getprogname.h" #include "guestfs.h" #include "options.h" @@ -87,7 +88,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: list filesystems, partitions, block devices, LVM in a VM\n" "Copyright (C) 2010 Red Hat Inc.\n" @@ -123,8 +124,8 @@ usage (int status) " Display LVM volume groups\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } @@ -296,7 +297,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: error: extra argument '%s' on command line.\n" "Make sure to specify the argument for --format " "like '--format=%s'.\n"), - guestfs_int_program_name, argv[optind], argv[optind]); + getprogname (), argv[optind], argv[optind]); usage (EXIT_FAILURE); } @@ -337,7 +338,7 @@ main (int argc, char *argv[]) /* User must have specified some drives. */ if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } @@ -486,7 +487,7 @@ do_output_filesystems (void) if (subvolume == NULL && guestfs_last_errno (g) != EINVAL) { fprintf (stderr, _("%s: cannot determine the subvolume for %s: %s: %s\n"), - guestfs_int_program_name, fses[i], + getprogname (), fses[i], guestfs_last_error (g), strerror (guestfs_last_errno (g))); exit (EXIT_FAILURE); diff --git a/cat/log.c b/cat/log.c index 0968ef5..f8f5a4b 100644 --- a/cat/log.c +++ b/cat/log.c @@ -35,6 +35,8 @@ #include <sys/types.h> #include <sys/wait.h> +#include "getprogname.h" + #include "guestfs.h" #include "options.h" #include "display-options.h" @@ -62,7 +64,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: display log files in a virtual machine\n" "Copyright (C) 2010-2016 Red Hat Inc.\n" @@ -81,8 +83,8 @@ usage (int status) " -V|--version Display version and exit\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } @@ -189,7 +191,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: error: extra argument '%s' on command line.\n" "Make sure to specify the argument for --format " "like '--format=%s'.\n"), - guestfs_int_program_name, argv[optind], argv[optind]); + getprogname (), argv[optind], argv[optind]); usage (EXIT_FAILURE); } @@ -198,7 +200,7 @@ main (int argc, char *argv[]) /* User must have specified some drives. */ if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } @@ -250,7 +252,7 @@ do_log (void) fprintf (stderr, _("%s: Windows Event Log for pre-Vista guests is not supported.\n"), - guestfs_int_program_name); + getprogname ()); return -1; } @@ -358,7 +360,7 @@ do_log_journal (void) if (strftime (buf, sizeof buf, "%b %d %H:%M:%S", localtime_r (&t, &tm)) <= 0) { fprintf (stderr, _("%s: could not format journal entry timestamp\n"), - guestfs_int_program_name); + getprogname ()); errors++; continue; } @@ -427,7 +429,7 @@ do_log_windows_evtx (void) "in order to parse Windows Event Logs. If you cannot install this, then\n" "use virt-copy-out(1) to copy the contents of /Windows/System32/winevt/Logs\n" "from this guest, and examine in a binary file viewer.\n"), - guestfs_int_program_name); + getprogname ()); return -1; } @@ -443,7 +445,7 @@ do_log_windows_evtx (void) GUESTFS_IS_FILE_OPTS_FOLLOWSYMLINKS, 1, -1) <= 0) { fprintf (stderr, _("%s: Windows Event Log file (%s) not found\n"), - guestfs_int_program_name, filename); + getprogname (), filename); return -1; } @@ -475,7 +477,7 @@ do_log_windows_evtx (void) if (status) { char buf[256]; fprintf (stderr, "%s: %s\n", - guestfs_int_program_name, + getprogname (), guestfs_int_exit_status_to_string (status, "evtxdump.py", buf, sizeof buf)); return -1; diff --git a/cat/ls.c b/cat/ls.c index 53bc6fc..2e327d9 100644 --- a/cat/ls.c +++ b/cat/ls.c @@ -34,6 +34,7 @@ #include <sys/sysmacros.h> #include "human.h" +#include "getprogname.h" #include "guestfs.h" @@ -84,7 +85,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: list files in a virtual machine\n" "Copyright (C) 2010-2012 Red Hat Inc.\n" @@ -116,8 +117,8 @@ usage (int status) " -V|--version Display version and exit\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } @@ -344,7 +345,7 @@ main (int argc, char *argv[]) /* User must have specified some drives. */ if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } diff --git a/cat/visit.c b/cat/visit.c index 6a6cb1e..f29235c 100644 --- a/cat/visit.c +++ b/cat/visit.c @@ -33,6 +33,8 @@ #include <assert.h> #include <libintl.h> +#include "getprogname.h" + #include "guestfs.h" #include "guestfs-internal-frontend.h" @@ -128,7 +130,7 @@ _visit (guestfs_h *g, int depth, const char *dir, if (xattrs->val[xattrp].attrval_len == 0) { fprintf (stderr, _("%s: error getting extended attrs for %s %s\n"), - guestfs_int_program_name, dir, names[i]); + getprogname (), dir, names[i]); return -1; } /* attrval is not \0-terminated. */ @@ -142,7 +144,7 @@ _visit (guestfs_h *g, int depth, const char *dir, attrval[xattrs->val[xattrp].attrval_len] = '\0'; if (sscanf (attrval, "%zu", &nr_xattrs) != 1) { fprintf (stderr, _("%s: error: cannot parse xattr count for %s %s\n"), - guestfs_int_program_name, dir, names[i]); + getprogname (), dir, names[i]); return -1; } diff --git a/df/main.c b/df/main.c index 3f9296f..b4fe0e0 100644 --- a/df/main.c +++ b/df/main.c @@ -36,6 +36,8 @@ #include <libvirt/virterror.h> #endif +#include "getprogname.h" + #include "guestfs.h" #include "options.h" #include "display-options.h" @@ -66,7 +68,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: display free space on virtual filesystems\n" "Copyright (C) 2010 Red Hat Inc.\n" @@ -89,8 +91,8 @@ usage (int status) " -V|--version Display version and exit\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } diff --git a/df/parallel.c b/df/parallel.c index d8aa375..97b9a3a 100644 --- a/df/parallel.c +++ b/df/parallel.c @@ -44,6 +44,7 @@ #endif #include "ignore-value.h" +#include "getprogname.h" #include "guestfs.h" #include "guestfs-internal-frontend.h" @@ -298,7 +299,7 @@ static void thread_failure (const char *fn, int err) { fprintf (stderr, "%s: %s: %s\n", - guestfs_int_program_name, fn, strerror (err)); + getprogname (), fn, strerror (err)); } #endif /* HAVE_LIBVIRT */ diff --git a/diff/diff.c b/diff/diff.c index 9ec515d..2087857 100644 --- a/diff/diff.c +++ b/diff/diff.c @@ -36,6 +36,7 @@ #include "c-ctype.h" #include "human.h" +#include "getprogname.h" #include "guestfs.h" @@ -93,7 +94,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: list differences between virtual machines\n" "Copyright (C) 2010-2016 Red Hat Inc.\n" @@ -128,8 +129,8 @@ usage (int status) " -x Trace libguestfs API calls\n" " --xattrs Display extended attributes\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } @@ -316,12 +317,12 @@ main (int argc, char *argv[]) if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } if (drvs2 == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -A or -D option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } @@ -335,7 +336,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: error: extra argument '%s' on command line.\n" "Make sure to specify the argument for --checksum or --format " "like '--format=%s'.\n"), - guestfs_int_program_name, argv[optind], argv[optind]); + getprogname (), argv[optind], argv[optind]); usage (EXIT_FAILURE); } @@ -734,7 +735,7 @@ diff (struct file *file1, guestfs_h *g1, struct file *file2, guestfs_h *g2) fprintf (stderr, "%s\n", cmd); r = system (cmd); if (!WIFEXITED (r) || WEXITSTATUS (r) != 0) { - fprintf (stderr, _("%s: external diff command failed\n"), guestfs_int_program_name); + fprintf (stderr, _("%s: external diff command failed\n"), getprogname ()); goto out; } diff --git a/edit/edit.c b/edit/edit.c index 6f3e388..06f7f28 100644 --- a/edit/edit.c +++ b/edit/edit.c @@ -34,6 +34,7 @@ #include <utime.h> #include "xvasprintf.h" +#include "getprogname.h" #include "guestfs.h" #include "options.h" @@ -63,7 +64,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: Edit a file in a virtual machine\n" "Copyright (C) 2009-2016 Red Hat Inc.\n" @@ -86,8 +87,8 @@ usage (int status) " -V|--version Display version and exit\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } @@ -256,7 +257,7 @@ main (int argc, char *argv[]) /* User must have specified some drives. */ if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } diff --git a/fish/config.c b/fish/config.c index 8f10ad4..dd9f6ec 100644 --- a/fish/config.c +++ b/fish/config.c @@ -38,6 +38,8 @@ #include <libconfig.h> #endif +#include "getprogname.h" + #include "guestfs.h" #include "options.h" @@ -62,7 +64,7 @@ read_config_from_file (const char *filename) /* if (verbose) fprintf (stderr, "%s: reading configuration from %s\n", - guestfs_int_program_name, filename); + getprogname (), filename); */ if (config_read (&conf, fp) == CONFIG_FALSE) @@ -155,7 +157,7 @@ parse_config (void) if (verbose) fprintf (stderr, _("%s: compiled without libconfig, guestfish configuration file ignored\n"), - guestfs_int_program_name); + getprogname ()); */ } diff --git a/fish/fish.c b/fish/fish.c index f20fbc0..1f6f043 100644 --- a/fish/fish.c +++ b/fish/fish.c @@ -54,6 +54,7 @@ #include "c-ctype.h" #include "closeout.h" #include "ignore-value.h" +#include "getprogname.h" /* Return from parse_command_line. See description below. */ struct parsed_command { @@ -110,7 +111,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: guest filesystem shell\n" "%s lets you edit virtual machine filesystems\n" @@ -159,10 +160,10 @@ usage (int status) "run again without -i and use 'run' + 'list-filesystems' + 'mount' cmds.\n" "\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname (), + getprogname (), getprogname (), + getprogname ()); } exit (status); } @@ -311,7 +312,7 @@ main (int argc, char *argv[]) case 'D': fprintf (stderr, _("%s: warning: -D option is deprecated, use --no-dest-paths instead\n"), - guestfs_int_program_name); + getprogname ()); complete_dest_paths = 0; break; @@ -854,7 +855,7 @@ parse_command_line (char *buf, int *exit_on_error_rtn) if (p[len+1] && (p[len+1] != ' ' && p[len+1] != '\t')) { fprintf (stderr, _("%s: command arguments not separated by whitespace\n"), - guestfs_int_program_name); + getprogname ()); pcmd.status = -1; return pcmd; } @@ -863,14 +864,14 @@ parse_command_line (char *buf, int *exit_on_error_rtn) p++; len = strcspn (p, "'"); if (p[len] == '\0') { - fprintf (stderr, _("%s: unterminated single quote\n"), guestfs_int_program_name); + fprintf (stderr, _("%s: unterminated single quote\n"), getprogname ()); pcmd.status = -1; return pcmd; } if (p[len+1] && (p[len+1] != ' ' && p[len+1] != '\t')) { fprintf (stderr, _("%s: command arguments not separated by whitespace\n"), - guestfs_int_program_name); + getprogname ()); pcmd.status = -1; return pcmd; } @@ -894,7 +895,7 @@ parse_command_line (char *buf, int *exit_on_error_rtn) pend = &p[len]; } else { fprintf (stderr, _("%s: internal error parsing string at '%s'\n"), - guestfs_int_program_name, p); + getprogname (), p); abort (); } @@ -910,7 +911,7 @@ parse_command_line (char *buf, int *exit_on_error_rtn) } if (i == argv_len) { - fprintf (stderr, _("%s: too many arguments\n"), guestfs_int_program_name); + fprintf (stderr, _("%s: too many arguments\n"), getprogname ()); pcmd.status = -1; return pcmd; } @@ -987,7 +988,7 @@ parse_quoted_string (char *p) default: error: fprintf (stderr, _("%s: invalid escape sequence in string (starting at offset %d)\n"), - guestfs_int_program_name, (int) (p - start)); + getprogname (), (int) (p - start)); return -1; } memmove (p+1, p+1+m, strlen (p+1+m) + 1); @@ -995,7 +996,7 @@ parse_quoted_string (char *p) } if (!*p) { - fprintf (stderr, _("%s: unterminated double quote\n"), guestfs_int_program_name); + fprintf (stderr, _("%s: unterminated double quote\n"), getprogname ()); return -1; } @@ -1190,7 +1191,7 @@ issue_command (const char *cmd, char *argv[], const char *pipecmd, } if (ferror (stdout)) { if (!pipecmd || pipe_error) { - fprintf (stderr, "%s: write error%s\n", guestfs_int_program_name, + fprintf (stderr, "%s: write error%s\n", getprogname (), pipecmd ? " on pipe" : ""); r = -1; } @@ -1736,13 +1737,13 @@ win_prefix_drive_letter (char drive_letter, const char *path) return NULL; if (roots[0] == NULL) { fprintf (stderr, _("%s: to use Windows drive letters, you must inspect the guest (\"-i\" option or run \"inspect-os\" command)\n"), - guestfs_int_program_name); + getprogname ()); return NULL; } drives = guestfs_inspect_get_drive_mappings (g, roots[0]); if (drives == NULL || drives[0] == NULL) { fprintf (stderr, _("%s: to use Windows drive letters, this must be a Windows guest\n"), - guestfs_int_program_name); + getprogname ()); return NULL; } @@ -1756,7 +1757,7 @@ win_prefix_drive_letter (char drive_letter, const char *path) if (device == NULL) { fprintf (stderr, _("%s: drive '%c:' not found. To list available drives do:\n inspect-get-drive-mappings %s\n"), - guestfs_int_program_name, drive_letter, roots[0]); + getprogname (), drive_letter, roots[0]); return NULL; } @@ -1775,7 +1776,7 @@ win_prefix_drive_letter (char drive_letter, const char *path) if (mountpoint == NULL) { fprintf (stderr, _("%s: to access '%c:', mount %s first. One way to do this is:\n umount-all\n mount %s /\n"), - guestfs_int_program_name, drive_letter, device, device); + getprogname (), drive_letter, device, device); return NULL; } @@ -1814,7 +1815,7 @@ file_in (const char *arg) const char *endmarker = &arg[3]; if (*endmarker == '\0') { fprintf (stderr, "%s: missing end marker in -<< expression\n", - guestfs_int_program_name); + getprogname ()); return NULL; } ret = file_in_heredoc (endmarker); @@ -1885,7 +1886,7 @@ file_in_heredoc (const char *endmarker) * is likely to be an error. */ fprintf (stderr, "%s: end of input reached without finding '%s'\n", - guestfs_int_program_name, endmarker); + getprogname (), endmarker); goto error2; found_end: diff --git a/fish/inspect.c b/fish/inspect.c index c20d891..952d4f7 100644 --- a/fish/inspect.c +++ b/fish/inspect.c @@ -33,6 +33,7 @@ #include <libintl.h> #include "c-ctype.h" +#include "getprogname.h" #include "guestfs.h" @@ -93,7 +94,7 @@ inspect_mount_handle (guestfs_h *g) "If using other virt tools, this disk image won't work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n"), - guestfs_int_program_name); + getprogname ()); guestfs_int_free_string_list (roots); exit (EXIT_FAILURE); } @@ -114,7 +115,7 @@ inspect_mount_handle (guestfs_h *g) "If using other virt tools, multi-boot operating systems won't work\n" "with these tools. Use the guestfish equivalent commands\n" "(see the virt tool manual page).\n"), - guestfs_int_program_name); + getprogname ()); guestfs_int_free_string_list (roots); exit (EXIT_FAILURE); } @@ -163,7 +164,7 @@ inspect_mount_root (guestfs_h *g, const char *root) if (mount_errors) fprintf (stderr, _("%s: some filesystems could not be mounted (ignored)\n"), - guestfs_int_program_name); + getprogname ()); } /** diff --git a/fish/options.c b/fish/options.c index 96db212..b88c194 100644 --- a/fish/options.c +++ b/fish/options.c @@ -39,6 +39,8 @@ #include <error.h> #include <libintl.h> +#include "getprogname.h" + #include "guestfs.h" #include "options.h" #include "uri.h" @@ -276,15 +278,15 @@ display_mountpoints_on_failure (const char *mp_device, return; fprintf (stderr, _("%s: '%s' could not be mounted.\n"), - guestfs_int_program_name, mp_device); + getprogname (), mp_device); if (user_supplied_options) fprintf (stderr, _("%s: Check mount(8) man page to ensure options '%s'\n" "%s: are supported by the filesystem that is being mounted.\n"), - guestfs_int_program_name, user_supplied_options, guestfs_int_program_name); + getprogname (), user_supplied_options, getprogname ()); fprintf (stderr, _("%s: Did you mean to mount one of these filesystems?\n"), - guestfs_int_program_name); + getprogname ()); for (i = 0; fses[i] != NULL; i += 2) { CLEANUP_FREE char *p = NULL; @@ -309,7 +311,7 @@ display_mountpoints_on_failure (const char *mp_device, p = guestfs_canonical_device_name (g, fses[i]); } - fprintf (stderr, "%s: \t%s (%s)\n", guestfs_int_program_name, + fprintf (stderr, "%s: \t%s (%s)\n", getprogname (), p ? p : fses[i], fses[i+1]); } } diff --git a/fish/options.h b/fish/options.h index 89afe9e..061b41f 100644 --- a/fish/options.h +++ b/fish/options.h @@ -215,7 +215,7 @@ extern void free_mps (struct mp *mp); #define OPTION_V \ { \ printf ("%s %s\n", \ - guestfs_int_program_name, \ + getprogname (), \ PACKAGE_VERSION_FULL); \ exit (EXIT_SUCCESS); \ } @@ -223,7 +223,7 @@ extern void free_mps (struct mp *mp); #define OPTION_w \ if (read_only) { \ fprintf (stderr, _("%s: cannot mix --ro and --rw options\n"), \ - guestfs_int_program_name); \ + getprogname ()); \ exit (EXIT_FAILURE); \ } @@ -235,7 +235,7 @@ extern void free_mps (struct mp *mp); if (!format_consumed) { \ fprintf (stderr, \ _("%s: --format parameter must appear before -a parameter\n"), \ - guestfs_int_program_name); \ + getprogname ()); \ exit (EXIT_FAILURE); \ } \ } while (0) diff --git a/fish/uri.c b/fish/uri.c index fc955a5..ae30bce 100644 --- a/fish/uri.c +++ b/fish/uri.c @@ -34,6 +34,7 @@ #include <libxml/uri.h> #include "c-ctype.h" +#include "getprogname.h" #include "guestfs.h" #include "guestfs-internal-frontend.h" @@ -116,7 +117,7 @@ parse (const char *arg, char **path_ret, char **protocol_ret, uri = xmlParseURI (arg); if (!uri) { fprintf (stderr, _("%s: --add: could not parse URI '%s'\n"), - guestfs_int_program_name, arg); + getprogname (), arg); return -1; } @@ -127,7 +128,7 @@ parse (const char *arg, char **path_ret, char **protocol_ret, if (uri->scheme == NULL || STREQ (uri->scheme, "")) { /* Probably can never happen. */ fprintf (stderr, _("%s: %s: scheme of URI is NULL or empty\n"), - guestfs_int_program_name, arg); + getprogname (), arg); return -1; } @@ -135,14 +136,14 @@ parse (const char *arg, char **path_ret, char **protocol_ret, if (uri->server && STRNEQ (uri->server, "") && socket) { fprintf (stderr, _("%s: %s: cannot both a server name and a socket query parameter\n"), - guestfs_int_program_name, arg); + getprogname (), arg); return -1; } /* Is this needed? XXX if (socket && socket[0] != '/') { fprintf (stderr, _("%s: --add %s: socket query parameter must be an absolute path\n"), - guestfs_int_program_name, arg); + getprogname (), arg); return -1; } */ diff --git a/format/format.c b/format/format.c index 0ce4ac4..e70f32d 100644 --- a/format/format.c +++ b/format/format.c @@ -31,6 +31,8 @@ #include <assert.h> #include <libintl.h> +#include "getprogname.h" + #include "guestfs.h" #include "options.h" #include "display-options.h" @@ -65,7 +67,7 @@ usage (int status) if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n%s\n"), - guestfs_int_program_name, warning); + getprogname (), warning); else { printf (_("%s: erase and make a blank disk\n" "Copyright (C) 2012 Red Hat Inc.\n" @@ -89,8 +91,8 @@ usage (int status) "For more information, see the manpage %s(1).\n" "\n" "%s\n\n"), - guestfs_int_program_name, warning, - guestfs_int_program_name, guestfs_int_program_name, + getprogname (), warning, + getprogname (), getprogname (), warning); } exit (status); @@ -224,7 +226,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: error: extra argument '%s' on command line.\n" "Make sure to specify the argument for --format, --lvm " "or --partition like '--format=%s'.\n"), - guestfs_int_program_name, argv[optind], argv[optind]); + getprogname (), argv[optind], argv[optind]); usage (EXIT_FAILURE); } @@ -233,7 +235,7 @@ main (int argc, char *argv[]) /* The user didn't specify any drives to format. */ if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } diff --git a/fuse/guestmount.c b/fuse/guestmount.c index 9da96d2..c5ca3b6 100644 --- a/fuse/guestmount.c +++ b/fuse/guestmount.c @@ -39,6 +39,7 @@ #include "guestfs.h" #include "ignore-value.h" +#include "getprogname.h" #include "options.h" #include "display-options.h" @@ -88,7 +89,7 @@ static void __attribute__((noreturn)) fuse_help (void) { static struct fuse_operations null_operations; - const char *tmp_argv[] = { guestfs_int_program_name, "--help", NULL }; + const char *tmp_argv[] = { getprogname (), "--help", NULL }; fuse_main (2, (char **) tmp_argv, &null_operations, NULL); exit (EXIT_SUCCESS); } @@ -98,7 +99,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: FUSE module for libguestfs\n" "%s lets you mount a virtual machine filesystem\n" @@ -130,8 +131,8 @@ usage (int status) " -w|--rw Mount read-write\n" " -x|--trace Trace guestfs API calls\n" ), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name); + getprogname (), getprogname (), + getprogname ()); } exit (status); } @@ -313,12 +314,12 @@ main (int argc, char *argv[]) if (!live) { if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } if (!(mps || inspector)) { fprintf (stderr, _("%s: error: you must specify either -i at least one -m option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } } else { diff --git a/fuse/guestunmount.c b/fuse/guestunmount.c index fe86706..dde691a 100644 --- a/fuse/guestunmount.c +++ b/fuse/guestunmount.c @@ -38,6 +38,7 @@ #include "guestfs-internal-frontend.h" #include "ignore-value.h" +#include "getprogname.h" #include "display-options.h" @@ -53,7 +54,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: clean up a mounted filesystem\n" "Copyright (C) 2013 Red Hat Inc.\n" @@ -68,7 +69,7 @@ usage (int status) " -v|--verbose Verbose messages\n" " -V|--version Display version and exit\n" ), - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname ()); } exit (status); } @@ -204,7 +205,7 @@ main (int argc, char *argv[]) /* fusermount failed after N retries */ if (!quiet) { fprintf (stderr, _("%s: failed to unmount %s: %s\n"), - guestfs_int_program_name, mountpoint, error_str); + getprogname (), mountpoint, error_str); do_fuser (mountpoint); } free (error_str); @@ -215,7 +216,7 @@ main (int argc, char *argv[]) not_mounted: if (!quiet) fprintf (stderr, _("%s: %s is not mounted: %s\n"), - guestfs_int_program_name, mountpoint, error_str); + getprogname (), mountpoint, error_str); free (error_str); @@ -240,7 +241,7 @@ do_fusermount (const char *mountpoint, char **error_rtn) if (verbose) fprintf (stderr, "%s: running: fusermount -u %s\n", - guestfs_int_program_name, mountpoint); + getprogname (), mountpoint); pid = fork (); if (pid == -1) @@ -315,7 +316,7 @@ do_fusermount (const char *mountpoint, char **error_rtn) if (verbose) fprintf (stderr, "%s: fusermount successful\n", - guestfs_int_program_name); + getprogname ()); free (buf); return 0; /* fusermount successful */ diff --git a/fuse/test-guestmount-fd.c b/fuse/test-guestmount-fd.c index 9f302b4..abef7b2 100644 --- a/fuse/test-guestmount-fd.c +++ b/fuse/test-guestmount-fd.c @@ -30,6 +30,7 @@ #include <sys/wait.h> #include "ignore-value.h" +#include "getprogname.h" #include "guestfs.h" #include "guestfs-internal-frontend.h" @@ -109,7 +110,7 @@ main (int argc, char *argv[]) } if (r == 0) { fprintf (stderr, "%s: unexpected end of file on pipe fd.\n", - guestfs_int_program_name); + getprogname ()); ignore_value (rmdir (MOUNTPOINT)); exit (EXIT_FAILURE); } @@ -117,7 +118,7 @@ main (int argc, char *argv[]) /* Check that the test image was mounted. */ if (access (TEST_FILE, R_OK) == -1) { fprintf (stderr, "%s: test failed because test image is not mounted and ready.", - guestfs_int_program_name); + getprogname ()); ignore_value (rmdir (MOUNTPOINT)); exit (EXIT_FAILURE); } @@ -127,7 +128,7 @@ main (int argc, char *argv[]) if (r != 0) { char status_string[80]; - fprintf (stderr, "%s: test failed: %s\n", guestfs_int_program_name, + fprintf (stderr, "%s: test failed: %s\n", getprogname (), guestfs_int_exit_status_to_string (r, GUESTUNMOUNT_BINARY, status_string, sizeof status_string)); @@ -148,7 +149,7 @@ main (int argc, char *argv[]) char status_string[80]; fprintf (stderr, "%s: test failed: %s\n", - guestfs_int_program_name, + getprogname (), guestfs_int_exit_status_to_string (status, GUESTMOUNT_BINARY, status_string, sizeof status_string)); diff --git a/generator/fish.ml b/generator/fish.ml index b16326b..62752e8 100644 --- a/generator/fish.ml +++ b/generator/fish.ml @@ -94,6 +94,7 @@ let generate_fish_run_cmds actions () pr "\n"; pr "#include \"full-write.h\"\n"; pr "#include \"xstrtol.h\"\n"; + pr "#include \"getprogname.h\"\n"; pr "\n"; pr "#include \"guestfs.h\"\n"; pr "#include \"guestfs-internal-frontend.h\"\n"; @@ -287,7 +288,7 @@ let generate_fish_run_cmds actions () pr " case -1:\n"; pr " fprintf (stderr,\n"; pr " _(\"%%s: '%%s': invalid boolean value, use 'true' or 'false'\\n\"),\n"; - pr " guestfs_int_program_name, argv[i-1]);\n"; + pr " getprogname (), argv[i-1]);\n"; pr " goto out_%s;\n" name; pr " case 0: %s = 0; break;\n" name; pr " default: %s = 1;\n" name; @@ -330,7 +331,7 @@ let generate_fish_run_cmds actions () pr " case -1:\n"; pr " fprintf (stderr,\n"; pr " _(\"%%s: '%%s': invalid boolean value, use 'true' or 'false'\\n\"),\n"; - pr " guestfs_int_program_name, &argv[i][%d]);\n" (len+1); + pr " getprogname (), &argv[i][%d]);\n" (len+1); pr " goto out;\n"; pr " case 0: optargs_s.%s = 0; break;\n" n; pr " default: optargs_s.%s = 1;\n" n; diff --git a/inspector/inspector.c b/inspector/inspector.c index 9a8fa4d..8f9d04d 100644 --- a/inspector/inspector.c +++ b/inspector/inspector.c @@ -37,6 +37,8 @@ #include <libxml/tree.h> #include <libxml/xmlsave.h> +#include "getprogname.h" + #include "guestfs.h" #include "options.h" #include "display-options.h" @@ -69,7 +71,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: display information about a virtual machine\n" "Copyright (C) 2010 Red Hat Inc.\n" @@ -91,8 +93,8 @@ usage (int status) " -x Trace libguestfs API calls\n" " --xpath query Perform an XPath query\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } @@ -238,7 +240,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: error: extra argument '%s' on command line.\n" "Make sure to specify the argument for --format " "like '--format=%s'.\n"), - guestfs_int_program_name, argv[optind], argv[optind]); + getprogname (), argv[optind], argv[optind]); usage (EXIT_FAILURE); } @@ -260,7 +262,7 @@ main (int argc, char *argv[]) /* User must have specified some drives. */ if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } diff --git a/m4/.gitignore b/m4/.gitignore index b447284..42cb69f 100644 --- a/m4/.gitignore +++ b/m4/.gitignore @@ -77,6 +77,7 @@ /getlogin_r.m4 /getopt.m4 /getpagesize.m4 +/getprogname.m4 /gettime.m4 /gettimeofday.m4 /getugroups.m4 diff --git a/m4/guestfs_libraries.m4 b/m4/guestfs_libraries.m4 index 582cbbf..90123de 100644 --- a/m4/guestfs_libraries.m4 +++ b/m4/guestfs_libraries.m4 @@ -34,9 +34,6 @@ AC_CHECK_MEMBER([struct stat.st_ctim.tv_nsec],[ dnl Define a C symbol for the host CPU architecture. AC_DEFINE_UNQUOTED([host_cpu],["$host_cpu"],[Host architecture.]) -dnl Check if libc has program_invocation_short_name. -AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include <errno.h>]) - dnl Headers. AC_CHECK_HEADERS([\ attr/xattr.h \ @@ -63,7 +60,6 @@ AC_CHECK_FUNCS([\ be32toh \ fsync \ futimens \ - getprogname \ getxattr \ htonl \ htons \ diff --git a/make-fs/make-fs.c b/make-fs/make-fs.c index ade2e60..7d01173 100644 --- a/make-fs/make-fs.c +++ b/make-fs/make-fs.c @@ -38,6 +38,7 @@ #include "guestfs-internal-frontend.h" #include "xstrtol.h" +#include "getprogname.h" #include "options.h" #include "display-options.h" @@ -74,7 +75,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: make a filesystem from a tar archive or files\n" "Copyright (C) 2010-2016 Red Hat Inc.\n" @@ -94,9 +95,9 @@ usage (int status) " -V|--version Display version and exit\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname (), + getprogname ()); } exit (status); } @@ -183,7 +184,7 @@ main (int argc, char *argv[]) if (optind + 2 != argc) { fprintf (stderr, _("%s: missing input and output arguments on the command line\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } @@ -202,7 +203,7 @@ check_ntfs_available (void) guestfs_feature_available (g, (char **) ntfs_features) == 0) { fprintf (stderr, _("%s: NTFS support was disabled when libguestfs was compiled\n"), - guestfs_int_program_name); + getprogname ()); return -1; } @@ -252,7 +253,7 @@ exec_command (char **argv, const char *file) } if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { fprintf (stderr, _("%s: %s command failed\n"), - guestfs_int_program_name, argv[0]); + getprogname (), argv[0]); return -1; } return 0; @@ -316,7 +317,7 @@ exec_command_count_output (char **argv, uint64_t *bytes_rtn) } if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { fprintf (stderr, _("%s: %s command failed\n"), - guestfs_int_program_name, argv[0]); + getprogname (), argv[0]); return -1; } return 0; @@ -441,7 +442,7 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char **ifmt_rtn) if (sscanf (line, "%" SCNu64, estimate_rtn) != 1) { fprintf (stderr, _("%s: cannot parse the output of 'du' command: %s\n"), - guestfs_int_program_name, line); + getprogname (), line); return -1; } } @@ -476,7 +477,7 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char **ifmt_rtn) if (strstr (line, "tar archive") == NULL) { fprintf (stderr, _("%s: %s: input is not a directory, tar archive or compressed tar archive\n"), - guestfs_int_program_name, input); + getprogname (), input); return -1; } @@ -507,7 +508,7 @@ estimate_input (const char *input, uint64_t *estimate_rtn, char **ifmt_rtn) } else { fprintf (stderr, _("%s: %s: unknown compressed input format (%s)\n"), - guestfs_int_program_name, input, line); + getprogname (), input, line); return -1; } @@ -630,7 +631,7 @@ parse_size (const char *str, uint64_t estimate, uint64_t *size_rtn) if (xerr != LONGINT_OK) { fprintf (stderr, _("%s: %s: invalid size parameter '%s' (%s returned %u)\n"), - guestfs_int_program_name, "parse_size", str, "xstrtoull", xerr); + getprogname (), "parse_size", str, "xstrtoull", xerr); return -1; } @@ -778,7 +779,7 @@ do_make_fs (const char *input, const char *output_str) if (r == -1) { /* Provide more guidance in the error message (RHBZ#823883). */ fprintf (stderr, "%s: 'mkfs' (create filesystem) operation failed: %s\n", - guestfs_int_program_name, guestfs_last_error (g)); + getprogname (), guestfs_last_error (g)); if (STREQ (type, "fat")) fprintf (stderr, "Instead of 'fat', try 'vfat' (long filenames) or 'msdos' (short filenames).\n"); else @@ -835,7 +836,7 @@ do_make_fs (const char *input, const char *output_str) return -1; } if (!WIFEXITED (status) || WEXITSTATUS (status) != 0) { - fprintf (stderr, _("%s: subprocess failed\n"), guestfs_int_program_name); + fprintf (stderr, _("%s: subprocess failed\n"), getprogname ()); return -1; } } diff --git a/mllib/getopt-c.c b/mllib/getopt-c.c index 29845f6..955dc18 100644 --- a/mllib/getopt-c.c +++ b/mllib/getopt-c.c @@ -31,6 +31,7 @@ #include <assert.h> #include "xstrtol.h" +#include "getprogname.h" #include <caml/alloc.h> #include <caml/fail.h> @@ -70,7 +71,7 @@ static void __attribute__((noreturn)) show_error (int status) { fprintf (stderr, _("Try `%s --help' or consult %s(1) for more information.\n"), - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname ()); exit (status); } @@ -189,13 +190,13 @@ strtoint (const char *arg) if (xstrtol (arg, NULL, 0, &num, "") != LONGINT_OK) { fprintf (stderr, _("%s: '%s' is not a numeric value.\n"), - guestfs_int_program_name, arg); + getprogname (), arg); show_error (EXIT_FAILURE); } if (num < -(1<<30) || num > (1<<30)-1) { fprintf (stderr, _("%s: %s: integer out of range\n"), - guestfs_int_program_name, arg); + getprogname (), arg); show_error (EXIT_FAILURE); } @@ -375,10 +376,10 @@ guestfs_int_mllib_getopt_parse (value argsv, value specsv, value anon_funv, valu if (!list_mem (v, optarg)) { if (c != 0) { fprintf (stderr, _("%s: '%s' is not allowed for -%c; allowed values are:\n"), - guestfs_int_program_name, optarg, c); + getprogname (), optarg, c); } else { fprintf (stderr, _("%s: '%s' is not allowed for %s%s; allowed values are:\n"), - guestfs_int_program_name, optarg, + getprogname (), optarg, vector_has_dashdash_opt (specv, longopts[option_index].name) ? "--" : "-", longopts[option_index].name); } diff --git a/p2v/conversion.c b/p2v/conversion.c index e8f5741..3be9a45 100644 --- a/p2v/conversion.c +++ b/p2v/conversion.c @@ -54,6 +54,7 @@ #include <libxml/xmlwriter.h> #include "ignore-value.h" +#include "getprogname.h" #include "miniexpect.h" #include "p2v.h" @@ -268,7 +269,7 @@ start_conversion (struct config *config, #if DEBUG_STDERR fprintf (stderr, "%s: data connection for %s: SSH remote port %d, local port %d\n", - guestfs_int_program_name, device, + getprogname (), device, data_conns[i].nbd_remote_port, data_conns[i].nbd_local_port); #endif diff --git a/p2v/gui.c b/p2v/gui.c index 3ef1e77..36bb655 100644 --- a/p2v/gui.c +++ b/p2v/gui.c @@ -76,6 +76,7 @@ #pragma GCC diagnostic pop #include "ignore-value.h" +#include "getprogname.h" #include "p2v.h" @@ -275,7 +276,7 @@ create_connection_dialog (struct config *config) char port_str[64]; conn_dlg = gtk_dialog_new (); - gtk_window_set_title (GTK_WINDOW (conn_dlg), guestfs_int_program_name); + gtk_window_set_title (GTK_WINDOW (conn_dlg), getprogname ()); gtk_window_set_resizable (GTK_WINDOW (conn_dlg), FALSE); /* The main dialog area. */ @@ -683,7 +684,7 @@ static void about_button_clicked (GtkWidget *w, gpointer data) { gtk_show_about_dialog (GTK_WINDOW (conn_dlg), - "program-name", guestfs_int_program_name, + "program-name", getprogname (), "version", PACKAGE_VERSION_FULL " (" host_cpu ")", "copyright", "\u00A9 2009-2016 Red Hat Inc.", "comments", @@ -766,7 +767,7 @@ create_conversion_dialog (struct config *config) char memory_str[64]; conv_dlg = gtk_dialog_new (); - gtk_window_set_title (GTK_WINDOW (conv_dlg), guestfs_int_program_name); + gtk_window_set_title (GTK_WINDOW (conv_dlg), getprogname ()); gtk_window_set_resizable (GTK_WINDOW (conv_dlg), FALSE); /* XXX It would be nice not to have to set this explicitly, but * if we don't then Gtk chooses a very small window. @@ -1639,7 +1640,7 @@ create_running_dialog (void) GtkTextBuffer *buf; run_dlg = gtk_dialog_new (); - gtk_window_set_title (GTK_WINDOW (run_dlg), guestfs_int_program_name); + gtk_window_set_title (GTK_WINDOW (run_dlg), getprogname ()); gtk_window_set_resizable (GTK_WINDOW (run_dlg), FALSE); /* The main dialog area. */ @@ -2157,7 +2158,7 @@ notify_ui_callback (int type, const char *data) default: fprintf (stderr, "%s: unknown message during conversion: type=%d data=%s\n", - guestfs_int_program_name, type, data); + getprogname (), type, data); free (copy); } } diff --git a/p2v/kernel-cmdline.c b/p2v/kernel-cmdline.c index c10c045..c53b978 100644 --- a/p2v/kernel-cmdline.c +++ b/p2v/kernel-cmdline.c @@ -29,6 +29,8 @@ #include <errno.h> #include <error.h> +#include "getprogname.h" + #include "p2v.h" static void @@ -141,7 +143,7 @@ parse_cmdline_string (const char *cmdline) break; case VALUE_QUOTED: /* unterminated key="value" */ fprintf (stderr, "%s: warning: unterminated quoted string on kernel command line\n", - guestfs_int_program_name); + getprogname ()); add_string (&ret, &len, value, p-value); } diff --git a/p2v/kernel.c b/p2v/kernel.c index 793e2f6..e225103 100644 --- a/p2v/kernel.c +++ b/p2v/kernel.c @@ -35,6 +35,8 @@ #include <sys/types.h> #include <sys/wait.h> +#include "getprogname.h" + #include "p2v.h" static void notify_ui_callback (int type, const char *data); @@ -163,7 +165,7 @@ update_config_from_kernel_cmdline (struct config *config, char **cmdline) config->output_allocation = OUTPUT_ALLOCATION_PREALLOCATED; else fprintf (stderr, "%s: warning: don't know what p2v.oa=%s means\n", - guestfs_int_program_name, p); + getprogname (), p); } p = get_cmdline_key (cmdline, "p2v.oc"); @@ -230,7 +232,7 @@ kernel_conversion (struct config *config, char **cmdline, int cmdline_source) const char *err = get_conversion_error (); fprintf (stderr, "%s: error during conversion: %s\n", - guestfs_int_program_name, err); + getprogname (), err); p = get_cmdline_key (cmdline, "p2v.fail"); if (p) @@ -259,7 +261,7 @@ notify_ui_callback (int type, const char *data) switch (type) { case NOTIFY_LOG_DIR: ansi_magenta (stdout); - printf ("%s: remote log directory location: ", guestfs_int_program_name); + printf ("%s: remote log directory location: ", getprogname ()); ansi_red (stdout); fputs (data, stdout); ansi_restore (stdout); @@ -272,7 +274,7 @@ notify_ui_callback (int type, const char *data) case NOTIFY_STATUS: ansi_magenta (stdout); - printf ("%s: %s", guestfs_int_program_name, data); + printf ("%s: %s", getprogname (), data); ansi_restore (stdout); putchar ('\n'); break; @@ -280,7 +282,7 @@ notify_ui_callback (int type, const char *data) default: ansi_red (stdout); printf ("%s: unknown message during conversion: type=%d data=%s", - guestfs_int_program_name, type, data); + getprogname (), type, data); ansi_restore (stdout); putchar ('\n'); } diff --git a/p2v/main.c b/p2v/main.c index a375280..f601456 100644 --- a/p2v/main.c +++ b/p2v/main.c @@ -44,6 +44,7 @@ #pragma GCC diagnostic pop #include "ignore-value.h" +#include "getprogname.h" #include "p2v.h" char **all_disks; @@ -84,7 +85,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: Convert a physical machine to use KVM\n" "Copyright (C) 2009-2016 Red Hat Inc.\n" @@ -99,8 +100,8 @@ usage (int status) " -v|--verbose Verbose messages\n" " -V|--version Display version and exit\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name); + getprogname (), getprogname (), + getprogname ()); } exit (status); } @@ -198,7 +199,7 @@ main (int argc, char *argv[]) break; case 'V': - printf ("%s %s\n", guestfs_int_program_name, PACKAGE_VERSION_FULL); + printf ("%s %s\n", getprogname (), PACKAGE_VERSION_FULL); exit (EXIT_SUCCESS); case HELP_OPTION: @@ -211,7 +212,7 @@ main (int argc, char *argv[]) if (optind != argc) { fprintf (stderr, _("%s: unused arguments on the command line\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } diff --git a/p2v/ssh.c b/p2v/ssh.c index d10a121..5c657ed 100644 --- a/p2v/ssh.c +++ b/p2v/ssh.c @@ -54,6 +54,7 @@ #include <sys/wait.h> #include "ignore-value.h" +#include "getprogname.h" #include "miniexpect.h" #include "p2v.h" @@ -140,7 +141,7 @@ compile_regexps (void) pcre_fullinfo ((re), NULL, PCRE_INFO_OKPARTIAL, &p); \ if (p != 1) { \ fprintf (stderr, "%s: %s:%d: internal error: pattern '%s' cannot be used for partial matching\n", \ - guestfs_int_program_name, \ + getprogname (), \ __FILE__, __LINE__, (pattern)); \ abort (); \ } \ @@ -778,7 +779,7 @@ test_connection (struct config *config) v2v_version = strndup (&h->buffer[ovector[2]], ovector[3]-ovector[2]); #if DEBUG_STDERR fprintf (stderr, "%s: remote virt-v2v version: %s\n", - guestfs_int_program_name, v2v_version); + getprogname (), v2v_version); #endif break; @@ -860,7 +861,7 @@ test_connection (struct config *config) case 101: /* virt-v2v supports --colours option */ #if DEBUG_STDERR fprintf (stderr, "%s: remote virt-v2v supports --colours option\n", - guestfs_int_program_name); + getprogname ()); #endif feature_colours_option = 1; break; @@ -974,7 +975,7 @@ add_option (const char *type, char ***drivers, const char *name, size_t len) #if DEBUG_STDERR fprintf (stderr, "%s: remote virt-v2v supports %s driver %s\n", - guestfs_int_program_name, type, (*drivers)[n-1]); + getprogname (), type, (*drivers)[n-1]); #endif } diff --git a/rescue/rescue.c b/rescue/rescue.c index 0f83f04..0c04396 100644 --- a/rescue/rescue.c +++ b/rescue/rescue.c @@ -32,6 +32,7 @@ #include "ignore-value.h" #include "xvasprintf.h" +#include "getprogname.h" #include "guestfs.h" #include "options.h" @@ -56,7 +57,7 @@ usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), - guestfs_int_program_name); + getprogname ()); else { printf (_("%s: Run a rescue shell on a virtual machine\n" "Copyright (C) 2009-2016 Red Hat Inc.\n" @@ -82,8 +83,8 @@ usage (int status) " -w|--rw Mount read-write\n" " -x Trace libguestfs API calls\n" "For more information, see the manpage %s(1).\n"), - guestfs_int_program_name, guestfs_int_program_name, - guestfs_int_program_name, guestfs_int_program_name); + getprogname (), getprogname (), + getprogname (), getprogname ()); } exit (status); } @@ -279,7 +280,7 @@ main (int argc, char *argv[]) fprintf (stderr, _("%s: error: extra argument '%s' on command line.\n" "Make sure to specify the argument for --format or --scratch " "like '--format=%s'.\n"), - guestfs_int_program_name, argv[optind], argv[optind]); + getprogname (), argv[optind], argv[optind]); usage (EXIT_FAILURE); } @@ -288,7 +289,7 @@ main (int argc, char *argv[]) /* User must have specified some drives. */ if (drvs == NULL) { fprintf (stderr, _("%s: error: you must specify at least one -a or -d option.\n"), - guestfs_int_program_name); + getprogname ()); usage (EXIT_FAILURE); } @@ -306,7 +307,7 @@ main (int argc, char *argv[]) STRPREFIX (backend, "libvirt:")) { fprintf (stderr, _("%s: warning: virt-rescue doesn't work with the libvirt backend\n" "at the moment. As a workaround, forcing backend = 'direct'.\n"), - guestfs_int_program_name); + getprogname ()); if (guestfs_set_backend (g, "direct") == -1) exit (EXIT_FAILURE); } diff --git a/src/guestfs-internal-frontend.h b/src/guestfs-internal-frontend.h index 5676934..da7709a 100644 --- a/src/guestfs-internal-frontend.h +++ b/src/guestfs-internal-frontend.h @@ -129,17 +129,6 @@ extern void guestfs_int_cleanup_pclose (void *ptr); */ #include "guestfs-internal-frontend-cleanups.h" -/* Current program name. Note <errno.h> must be included in all files - * that want to use 'guestfs_int_program_name'. - */ -#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME == 1 -# define guestfs_int_program_name program_invocation_short_name -#elif HAVE_GETPROGNAME -# define guestfs_int_program_name getprogname() -#else -# define guestfs_int_program_name "libguestfs" -#endif - /* Close all file descriptors matching the condition. */ #define close_file_descriptors(cond) do { \ int max_fd = sysconf (_SC_OPEN_MAX); \ diff --git a/src/handle.c b/src/handle.c index 81a3cb1..b28a1e0 100644 --- a/src/handle.c +++ b/src/handle.c @@ -34,6 +34,7 @@ #include "glthread/lock.h" #include "ignore-value.h" #include "c-ctype.h" +#include "getprogname.h" #include "guestfs.h" #include "guestfs-internal.h" @@ -120,15 +121,11 @@ guestfs_create_flags (unsigned flags, ...) if (!g->hv) goto error; /* Get program name. */ -#if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME == 1 - if (STRPREFIX (program_invocation_short_name, "lt-")) + if (STRPREFIX (getprogname (), "lt-")) /* Remove libtool (lt-*) prefix from short name. */ - g->program = strdup (program_invocation_short_name + 3); + g->program = strdup (getprogname () + 3); else - g->program = strdup (program_invocation_short_name); -#else - g->program = strdup (""); -#endif + g->program = strdup (getprogname ()); if (!g->program) goto error; g->identifier = strdup (""); diff --git a/tests/charsets/test-charset-fidelity.c b/tests/charsets/test-charset-fidelity.c index 9a477ce..952256e 100644 --- a/tests/charsets/test-charset-fidelity.c +++ b/tests/charsets/test-charset-fidelity.c @@ -33,6 +33,8 @@ #include "guestfs.h" #include "guestfs-internal-frontend.h" +#include "getprogname.h" + static const char ourenvvar[] = "SKIP_TEST_CHARSET_FIDELITY"; struct filesystem { @@ -83,7 +85,7 @@ main (int argc, char *argv[]) str = getenv (ourenvvar); if (str && guestfs_int_is_true (str) > 0) { printf ("%s: test skipped because environment variable is set.\n", - guestfs_int_program_name); + getprogname ()); exit (77); } diff --git a/tests/mount-local/test-parallel-mount-local.c b/tests/mount-local/test-parallel-mount-local.c index 37b2b3d..3e5d95c 100644 --- a/tests/mount-local/test-parallel-mount-local.c +++ b/tests/mount-local/test-parallel-mount-local.c @@ -42,6 +42,7 @@ #include "estimate-max-threads.h" #include "ignore-value.h" +#include "getprogname.h" #define TOTAL_TIME 60 /* Seconds, excluding launch. */ #define DEBUG 1 /* Print overview debugging messages. */ @@ -96,13 +97,13 @@ main (int argc, char *argv[]) skip = getenv ("SKIP_TEST_PARALLEL_MOUNT_LOCAL"); if (skip && guestfs_int_is_true (skip) > 0) { fprintf (stderr, "%s: test skipped because environment variable set.\n", - guestfs_int_program_name); + getprogname ()); exit (77); } if (access ("/dev/fuse", W_OK) == -1) { fprintf (stderr, "%s: test skipped because /dev/fuse is not writable.\n", - guestfs_int_program_name); + getprogname ()); exit (77); } diff --git a/tests/parallel/test-parallel.c b/tests/parallel/test-parallel.c index e0d1385..20100d1 100644 --- a/tests/parallel/test-parallel.c +++ b/tests/parallel/test-parallel.c @@ -38,6 +38,7 @@ #include "guestfs-internal-frontend.h" #include "ignore-value.h" +#include "getprogname.h" #define TOTAL_TIME 600 /* Seconds, excluding launch. */ #define NR_THREADS 5 @@ -79,7 +80,7 @@ main (int argc, char *argv[]) slow = getenv ("SLOW"); if (!slow || guestfs_int_is_true (slow) <= 0) { fprintf (stderr, "%s: use 'make check-slow' to run this test.\n", - guestfs_int_program_name); + getprogname ()); exit (77); } @@ -87,7 +88,7 @@ main (int argc, char *argv[]) skip = getenv ("SKIP_TEST_PARALLEL"); if (skip && guestfs_int_is_true (skip) > 0) { fprintf (stderr, "%s: test skipped because environment variable set.\n", - guestfs_int_program_name); + getprogname ()); exit (77); } diff --git a/tests/regressions/Makefile.am b/tests/regressions/Makefile.am index 32bbc83..dc91c60 100644 --- a/tests/regressions/Makefile.am +++ b/tests/regressions/Makefile.am @@ -112,15 +112,18 @@ rhbz501893_LDADD = \ rhbz790721_SOURCES = rhbz790721.c rhbz790721_CPPFLAGS = \ + -I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \ -I$(top_srcdir)/src -I$(top_builddir)/src rhbz790721_CFLAGS = \ -pthread \ $(WARN_CFLAGS) $(WERROR_CFLAGS) rhbz790721_LDADD = \ - $(top_builddir)/src/libguestfs.la + $(top_builddir)/src/libguestfs.la \ + $(top_builddir)/gnulib/lib/libgnu.la rhbz914931_SOURCES = rhbz914931.c rhbz914931_CPPFLAGS = \ + -I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \ -I$(top_srcdir)/src -I$(top_builddir)/src \ -DGUESTFS_PRIVATE=1 rhbz914931_CFLAGS = \ @@ -129,7 +132,8 @@ rhbz914931_CFLAGS = \ rhbz914931_LDADD = \ $(top_builddir)/src/libutils.la \ $(LTLIBINTL) \ - $(top_builddir)/src/libguestfs.la + $(top_builddir)/src/libguestfs.la \ + $(top_builddir)/gnulib/lib/libgnu.la rhbz1055452_SOURCES = rhbz1055452.c rhbz1055452_CPPFLAGS = \ diff --git a/tests/regressions/rhbz790721.c b/tests/regressions/rhbz790721.c index e2178e5..2dfcd27 100644 --- a/tests/regressions/rhbz790721.c +++ b/tests/regressions/rhbz790721.c @@ -45,6 +45,8 @@ #include "guestfs.h" #include "guestfs-internal-frontend.h" +#include "getprogname.h" + /* Number of worker threads running the test. */ #define NR_THREADS 20 @@ -71,7 +73,7 @@ main (int argc, char *argv[]) } if (STRNEQ (backend, "direct")) { fprintf (stderr, "%s: test skipped because backend isn't 'direct'.\n", - guestfs_int_program_name); + getprogname ()); free (backend); guestfs_close (g); exit (77); diff --git a/tests/regressions/rhbz914931.c b/tests/regressions/rhbz914931.c index 61b81ba..93878db 100644 --- a/tests/regressions/rhbz914931.c +++ b/tests/regressions/rhbz914931.c @@ -33,6 +33,8 @@ #include "guestfs.h" #include "guestfs-internal-frontend.h" +#include "getprogname.h" + int main (int argc, char *argv[]) { @@ -44,7 +46,7 @@ main (int argc, char *argv[]) str = getenv ("SKIP_TEST_RHBZ914931"); if (str && guestfs_int_is_true (str) > 0) { printf ("%s: test skipped because environment variable is set.\n", - guestfs_int_program_name); + getprogname ()); exit (77); } diff --git a/utils/boot-analysis/boot-analysis.c b/utils/boot-analysis/boot-analysis.c index 2b042d9..04b3bdd 100644 --- a/utils/boot-analysis/boot-analysis.c +++ b/utils/boot-analysis/boot-analysis.c @@ -45,6 +45,8 @@ #include "boot-analysis.h" #include "boot-analysis-utils.h" +#include "getprogname.h" + /* Activities taking longer than this % of the total time, except * those flagged as LONG_ACTIVITY, are highlighted in red. */ @@ -167,13 +169,13 @@ main (int argc, char *argv[]) break; } fprintf (stderr, "%s: unknown long option: %s (%d)\n", - guestfs_int_program_name, long_options[option_index].name, option_index); + getprogname (), long_options[option_index].name, option_index); exit (EXIT_FAILURE); case 'm': if (sscanf (optarg, "%d", &memsize) != 1) { fprintf (stderr, "%s: could not parse memsize parameter: %s\n", - guestfs_int_program_name, optarg); + getprogname (), optarg); exit (EXIT_FAILURE); } break; diff --git a/utils/boot-benchmark/boot-benchmark.c b/utils/boot-benchmark/boot-benchmark.c index fb946de..73da722 100644 --- a/utils/boot-benchmark/boot-benchmark.c +++ b/utils/boot-benchmark/boot-benchmark.c @@ -38,6 +38,8 @@ #include "boot-analysis-utils.h" +#include "getprogname.h" + #define NR_WARMUP_PASSES 3 #define NR_TEST_PASSES 10 @@ -102,19 +104,19 @@ main (int argc, char *argv[]) else if (STREQ (long_options[option_index].name, "smp")) { if (sscanf (optarg, "%d", &smp) != 1) { fprintf (stderr, "%s: could not parse smp parameter: %s\n", - guestfs_int_program_name, optarg); + getprogname (), optarg); exit (EXIT_FAILURE); } break; } fprintf (stderr, "%s: unknown long option: %s (%d)\n", - guestfs_int_program_name, long_options[option_index].name, option_index); + getprogname (), long_options[option_index].name, option_index); exit (EXIT_FAILURE); case 'm': if (sscanf (optarg, "%d", &memsize) != 1) { fprintf (stderr, "%s: could not parse memsize parameter: %s\n", - guestfs_int_program_name, optarg); + getprogname (), optarg); exit (EXIT_FAILURE); } break; diff --git a/utils/qemu-boot/qemu-boot.c b/utils/qemu-boot/qemu-boot.c index 2703014..d99fa3c 100644 --- a/utils/qemu-boot/qemu-boot.c +++ b/utils/qemu-boot/qemu-boot.c @@ -39,6 +39,8 @@ #include "guestfs-internal-frontend.h" #include "estimate-max-threads.h" +#include "getprogname.h" + #define MIN(a,b) ((a)<(b)?(a):(b)) /* Maximum number of threads we would ever run. Note this should not @@ -204,7 +206,7 @@ run_test (size_t P) err = pthread_join (threads[i], &status); if (err != 0) { fprintf (stderr, "%s: pthread_join[%zu]: %s\n", - guestfs_int_program_name, i, strerror (err)); + getprogname (), i, strerror (err)); errors++; } if (*(int *)status == -1) @@ -235,7 +237,7 @@ start_thread (void *thread_data_vp) err = pthread_mutex_lock (&mutex); if (err != 0) { fprintf (stderr, "%s: pthread_mutex_lock: %s", - guestfs_int_program_name, strerror (err)); + getprogname (), strerror (err)); goto error; } @@ -252,7 +254,7 @@ start_thread (void *thread_data_vp) err = pthread_mutex_unlock (&mutex); if (err != 0) { fprintf (stderr, "%s: pthread_mutex_unlock: %s", - guestfs_int_program_name, strerror (err)); + getprogname (), strerror (err)); goto error; } @@ -320,7 +322,7 @@ start_thread (void *thread_data_vp) if (errors > 0) { fprintf (stderr, "%s: thread %d: %u errors were ignored\n", - guestfs_int_program_name, thread_data->thread_num, errors); + getprogname (), thread_data->thread_num, errors); goto error; } diff --git a/utils/qemu-speed-test/qemu-speed-test.c b/utils/qemu-speed-test/qemu-speed-test.c index 0919594..54875fa 100644 --- a/utils/qemu-speed-test/qemu-speed-test.c +++ b/utils/qemu-speed-test/qemu-speed-test.c @@ -41,6 +41,8 @@ #include "guestfs.h" #include "guestfs-internal-frontend.h" +#include "getprogname.h" + static void test_virtio_serial (void); static void test_block_device (void); @@ -133,7 +135,7 @@ main (int argc, char *argv[]) } else { fprintf (stderr, "%s: unknown long option: %s (%d)\n", - guestfs_int_program_name, long_options[option_index].name, option_index); + getprogname (), long_options[option_index].name, option_index); exit (EXIT_FAILURE); } break; @@ -142,7 +144,7 @@ main (int argc, char *argv[]) if (sscanf (optarg, "%d", &max_time_override) != 1 || max_time_override < 0) { fprintf (stderr, "%s: -t: argument is not a positive integer\n", - guestfs_int_program_name); + getprogname ()); exit (EXIT_FAILURE); } break; @@ -157,7 +159,7 @@ main (int argc, char *argv[]) if (optind != argc) { fprintf (stderr, "%s: extra arguments found on the command line\n", - guestfs_int_program_name); + getprogname ()); exit (EXIT_FAILURE); } @@ -312,14 +314,14 @@ test_virtio_serial (void) if (r == -1 && guestfs_last_errno (g) != EINTR) { fprintf (stderr, "%s: expecting upload command to return EINTR\n%s\n", - guestfs_int_program_name, guestfs_last_error (g)); + getprogname (), guestfs_last_error (g)); exit (EXIT_FAILURE); } if (rate == -1) { rate_error: fprintf (stderr, "%s: internal error: progress callback was not called! (r=%d, errno=%d)\n", - guestfs_int_program_name, + getprogname (), r, guestfs_last_errno (g)); exit (EXIT_FAILURE); } @@ -348,7 +350,7 @@ test_virtio_serial (void) if (r == -1 && guestfs_last_errno (g) != EINTR) { fprintf (stderr, "%s: expecting download command to return EINTR\n%s\n", - guestfs_int_program_name, guestfs_last_error (g)); + getprogname (), guestfs_last_error (g)); exit (EXIT_FAILURE); } @@ -417,7 +419,7 @@ test_block_device (void) exit (EXIT_FAILURE); if (devices[0] == NULL) { fprintf (stderr, "%s: expected guestfs_list_devices to return at least 1 device\n", - guestfs_int_program_name); + getprogname ()); exit (EXIT_FAILURE); } @@ -433,7 +435,7 @@ test_block_device (void) if (sscanf (r, "%" SCNi64, &bytes_written) != 1) { fprintf (stderr, "%s: could not parse device_speed output\n", - guestfs_int_program_name); + getprogname ()); exit (EXIT_FAILURE); } @@ -452,7 +454,7 @@ test_block_device (void) if (sscanf (r, "%" SCNi64, &bytes_read) != 1) { fprintf (stderr, "%s: could not parse device_speed output\n", - guestfs_int_program_name); + getprogname ()); exit (EXIT_FAILURE); } -- 2.7.4
Pino Toscano
2016-Sep-08 08:10 UTC
[Libguestfs] [PATCH 3/3] daemon: drop program_name definition
It was previously needed by the 'error' module of gnulib; recent versions are able to get the name of the current program on their own. --- daemon/guestfsd.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c index b129ad0..85ce5d2 100644 --- a/daemon/guestfsd.c +++ b/daemon/guestfsd.c @@ -125,9 +125,6 @@ int autosync_umount = 1; /* If set, we are testing the daemon as part of the libguestfs tests. */ int test_mode = 0; -/* Not used explicitly, but required by the gnulib 'error' module. */ -const char *program_name = "guestfsd"; - /* Name of the virtio-serial channel. */ #define VIRTIO_SERIAL_CHANNEL "/dev/virtio-ports/org.libguestfs.channel.0" -- 2.7.4
Richard W.M. Jones
2016-Sep-08 08:13 UTC
Re: [Libguestfs] [PATCH 3/3] daemon: drop program_name definition
On Thu, Sep 08, 2016 at 10:10:45AM +0200, Pino Toscano wrote:> It was previously needed by the 'error' module of gnulib; recent > versions are able to get the name of the current program on their own. > --- > daemon/guestfsd.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c > index b129ad0..85ce5d2 100644 > --- a/daemon/guestfsd.c > +++ b/daemon/guestfsd.c > @@ -125,9 +125,6 @@ int autosync_umount = 1; > /* If set, we are testing the daemon as part of the libguestfs tests. */ > int test_mode = 0; > > -/* Not used explicitly, but required by the gnulib 'error' module. */ > -const char *program_name = "guestfsd"; > - > /* Name of the virtio-serial channel. */ > #define VIRTIO_SERIAL_CHANNEL "/dev/virtio-ports/org.libguestfs.channel.0" >ACK series. Thanks for fixing gnulib too. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v
Apparently Analagous Threads
- Re: [PATCH] gnulib: Define argv[0] as program_name for error.c on Darwin
- Re: [PATCH] gnulib: Define argv[0] as program_name for error.c on Darwin
- Re: [PATCH] gnulib: Define argv[0] as program_name for error.c on Darwin
- [PATCH] Warn instead of dying if grub refers to non-existent kernel
- Re: [PATCH] gnulib: Define argv[0] as program_name for error.c on Darwin