forked from pool/libguestfs
remove obsolete libguestfs-1.13.14-without-hivex.patch
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libguestfs?expand=0&rev=72
This commit is contained in:
parent
3a4645092e
commit
975655b152
@ -1,231 +0,0 @@
|
|||||||
Index: src/guestfs-internal.h
|
|
||||||
===================================================================
|
|
||||||
--- src/guestfs-internal.h.orig
|
|
||||||
+++ src/guestfs-internal.h
|
|
||||||
@@ -359,11 +359,11 @@ extern void guestfs___call_callbacks_mes
|
|
||||||
extern void guestfs___call_callbacks_array (guestfs_h *g, uint64_t event, const uint64_t *array, size_t array_len);
|
|
||||||
extern int guestfs___is_file_nocase (guestfs_h *g, const char *);
|
|
||||||
extern int guestfs___is_dir_nocase (guestfs_h *g, const char *);
|
|
||||||
-#if defined(HAVE_HIVEX)
|
|
||||||
-extern int guestfs___check_for_filesystem_on (guestfs_h *g, const char *device, int is_block, int is_partnum);
|
|
||||||
extern char *guestfs___download_to_tmp (guestfs_h *g, struct inspect_fs *fs, const char *filename, const char *basename, int64_t max_size);
|
|
||||||
extern char *guestfs___case_sensitive_path_silently (guestfs_h *g, const char *);
|
|
||||||
extern struct inspect_fs *guestfs___search_for_root (guestfs_h *g, const char *root);
|
|
||||||
+#if defined(HAVE_HIVEX)
|
|
||||||
+extern int guestfs___check_for_filesystem_on (guestfs_h *g, const char *device, int is_block, int is_partnum);
|
|
||||||
extern int guestfs___parse_unsigned_int (guestfs_h *g, const char *str);
|
|
||||||
extern int guestfs___parse_unsigned_int_ignore_trailing (guestfs_h *g, const char *str);
|
|
||||||
extern int guestfs___parse_major_minor (guestfs_h *g, struct inspect_fs *fs);
|
|
||||||
Index: src/inspect.c
|
|
||||||
===================================================================
|
|
||||||
--- src/inspect.c.orig
|
|
||||||
+++ src/inspect.c
|
|
||||||
@@ -498,98 +498,6 @@ guestfs__inspect_get_hostname (guestfs_h
|
|
||||||
return safe_strdup (g, fs->hostname ? : "unknown");
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* Download a guest file to a local temporary file. The file is
|
|
||||||
- * cached in the temporary directory, and is not downloaded again.
|
|
||||||
- *
|
|
||||||
- * The name of the temporary (downloaded) file is returned. The
|
|
||||||
- * caller must free the pointer, but does *not* need to delete the
|
|
||||||
- * temporary file. It will be deleted when the handle is closed.
|
|
||||||
- *
|
|
||||||
- * Refuse to download the guest file if it is larger than max_size.
|
|
||||||
- * On this and other errors, NULL is returned.
|
|
||||||
- *
|
|
||||||
- * There is actually one cache per 'struct inspect_fs *' in order
|
|
||||||
- * to handle the case of multiple roots.
|
|
||||||
- */
|
|
||||||
-char *
|
|
||||||
-guestfs___download_to_tmp (guestfs_h *g, struct inspect_fs *fs,
|
|
||||||
- const char *filename,
|
|
||||||
- const char *basename, int64_t max_size)
|
|
||||||
-{
|
|
||||||
- char *r;
|
|
||||||
- int fd;
|
|
||||||
- char devfd[32];
|
|
||||||
- int64_t size;
|
|
||||||
-
|
|
||||||
- /* Make the basename unique by prefixing it with the fs number. */
|
|
||||||
- if (asprintf (&r, "%s/%ld-%s", g->tmpdir, fs - g->fses, basename) == -1) {
|
|
||||||
- perrorf (g, "asprintf");
|
|
||||||
- return NULL;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* If the file has already been downloaded, return. */
|
|
||||||
- if (access (r, R_OK) == 0)
|
|
||||||
- return r;
|
|
||||||
-
|
|
||||||
- /* Check size of remote file. */
|
|
||||||
- size = guestfs_filesize (g, filename);
|
|
||||||
- if (size == -1)
|
|
||||||
- /* guestfs_filesize failed and has already set error in handle */
|
|
||||||
- goto error;
|
|
||||||
- if (size > max_size) {
|
|
||||||
- error (g, _("size of %s is unreasonably large (%" PRIi64 " bytes)"),
|
|
||||||
- filename, size);
|
|
||||||
- goto error;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- fd = open (r, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY, 0600);
|
|
||||||
- if (fd == -1) {
|
|
||||||
- perrorf (g, "open: %s", r);
|
|
||||||
- goto error;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- snprintf (devfd, sizeof devfd, "/dev/fd/%d", fd);
|
|
||||||
-
|
|
||||||
- if (guestfs_download (g, filename, devfd) == -1) {
|
|
||||||
- unlink (r);
|
|
||||||
- close (fd);
|
|
||||||
- goto error;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- if (close (fd) == -1) {
|
|
||||||
- perrorf (g, "close: %s", r);
|
|
||||||
- unlink (r);
|
|
||||||
- goto error;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return r;
|
|
||||||
-
|
|
||||||
- error:
|
|
||||||
- free (r);
|
|
||||||
- return NULL;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-struct inspect_fs *
|
|
||||||
-guestfs___search_for_root (guestfs_h *g, const char *root)
|
|
||||||
-{
|
|
||||||
- if (g->nr_fses == 0) {
|
|
||||||
- error (g, _("no inspection data: call guestfs_inspect_os first"));
|
|
||||||
- return NULL;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- size_t i;
|
|
||||||
- struct inspect_fs *fs;
|
|
||||||
- for (i = 0; i < g->nr_fses; ++i) {
|
|
||||||
- fs = &g->fses[i];
|
|
||||||
- if (fs->is_root && STREQ (root, fs->device))
|
|
||||||
- return fs;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- error (g, _("%s: root device not found: only call this function with a root device previously returned by guestfs_inspect_os"),
|
|
||||||
- root);
|
|
||||||
- return NULL;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
#else /* no hivex at compile time */
|
|
||||||
|
|
||||||
/* XXX These functions should be in an optgroup. */
|
|
||||||
@@ -725,6 +633,12 @@ guestfs__inspect_is_multipart (guestfs_h
|
|
||||||
NOT_IMPL(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
+char *
|
|
||||||
+guestfs___case_sensitive_path_silently (guestfs_h *g, const char *path)
|
|
||||||
+{
|
|
||||||
+ NOT_IMPL(NULL);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#endif /* no hivex at compile time */
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -770,3 +684,96 @@ guestfs___feature_available (guestfs_h *
|
|
||||||
|
|
||||||
return r == 0 ? 1 : 0;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+/* Download a guest file to a local temporary file. The file is
|
|
||||||
+ * cached in the temporary directory, and is not downloaded again.
|
|
||||||
+ *
|
|
||||||
+ * The name of the temporary (downloaded) file is returned. The
|
|
||||||
+ * caller must free the pointer, but does *not* need to delete the
|
|
||||||
+ * temporary file. It will be deleted when the handle is closed.
|
|
||||||
+ *
|
|
||||||
+ * Refuse to download the guest file if it is larger than max_size.
|
|
||||||
+ * On this and other errors, NULL is returned.
|
|
||||||
+ *
|
|
||||||
+ * There is actually one cache per 'struct inspect_fs *' in order
|
|
||||||
+ * to handle the case of multiple roots.
|
|
||||||
+ */
|
|
||||||
+char *
|
|
||||||
+guestfs___download_to_tmp (guestfs_h *g, struct inspect_fs *fs,
|
|
||||||
+ const char *filename,
|
|
||||||
+ const char *basename, int64_t max_size)
|
|
||||||
+{
|
|
||||||
+ char *r;
|
|
||||||
+ int fd;
|
|
||||||
+ char devfd[32];
|
|
||||||
+ int64_t size;
|
|
||||||
+
|
|
||||||
+ /* Make the basename unique by prefixing it with the fs number. */
|
|
||||||
+ if (asprintf (&r, "%s/%ld-%s", g->tmpdir, fs - g->fses, basename) == -1) {
|
|
||||||
+ perrorf (g, "asprintf");
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* If the file has already been downloaded, return. */
|
|
||||||
+ if (access (r, R_OK) == 0)
|
|
||||||
+ return r;
|
|
||||||
+
|
|
||||||
+ /* Check size of remote file. */
|
|
||||||
+ size = guestfs_filesize (g, filename);
|
|
||||||
+ if (size == -1)
|
|
||||||
+ /* guestfs_filesize failed and has already set error in handle */
|
|
||||||
+ goto error;
|
|
||||||
+ if (size > max_size) {
|
|
||||||
+ error (g, _("size of %s is unreasonably large (%" PRIi64 " bytes)"),
|
|
||||||
+ filename, size);
|
|
||||||
+ goto error;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ fd = open (r, O_WRONLY|O_CREAT|O_TRUNC|O_NOCTTY, 0600);
|
|
||||||
+ if (fd == -1) {
|
|
||||||
+ perrorf (g, "open: %s", r);
|
|
||||||
+ goto error;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ snprintf (devfd, sizeof devfd, "/dev/fd/%d", fd);
|
|
||||||
+
|
|
||||||
+ if (guestfs_download (g, filename, devfd) == -1) {
|
|
||||||
+ unlink (r);
|
|
||||||
+ close (fd);
|
|
||||||
+ goto error;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (close (fd) == -1) {
|
|
||||||
+ perrorf (g, "close: %s", r);
|
|
||||||
+ unlink (r);
|
|
||||||
+ goto error;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return r;
|
|
||||||
+
|
|
||||||
+ error:
|
|
||||||
+ free (r);
|
|
||||||
+ return NULL;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+struct inspect_fs *
|
|
||||||
+guestfs___search_for_root (guestfs_h *g, const char *root)
|
|
||||||
+{
|
|
||||||
+ if (g->nr_fses == 0) {
|
|
||||||
+ error (g, _("no inspection data: call guestfs_inspect_os first"));
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ size_t i;
|
|
||||||
+ struct inspect_fs *fs;
|
|
||||||
+ for (i = 0; i < g->nr_fses; ++i) {
|
|
||||||
+ fs = &g->fses[i];
|
|
||||||
+ if (fs->is_root && STREQ (root, fs->device))
|
|
||||||
+ return fs;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ error (g, _("%s: root device not found: only call this function with a root device previously returned by guestfs_inspect_os"),
|
|
||||||
+ root);
|
|
||||||
+ return NULL;
|
|
||||||
+}
|
|
||||||
+
|
|
Loading…
Reference in New Issue
Block a user