Richard W.M. Jones
2017-Aug-01 15:54 UTC
[Libguestfs] [PATCH v2 0/3] common: Add a lightweight OCaml binding for PCRE.
v2: - Change the OCaml code in the daemon to use PCRE instead of Str. - Call pcre_compile2 so we can capture the error code on failure. - Extend the test suite. - Some other cleanups, but very minor. Rich.
Richard W.M. Jones
2017-Aug-01 15:54 UTC
[Libguestfs] [PATCH v2 1/3] common: Add a lightweight OCaml binding for PCRE.
This uses the gnulib TLS macros. --- .gitignore | 2 + Makefile.am | 1 + bootstrap | 1 + common/mlpcre/Makefile.am | 142 +++++++++++++++++++++++++++++ common/mlpcre/PCRE.ml | 32 +++++++ common/mlpcre/PCRE.mli | 76 ++++++++++++++++ common/mlpcre/dummy.c | 2 + common/mlpcre/pcre-c.c | 216 ++++++++++++++++++++++++++++++++++++++++++++ common/mlpcre/pcre_tests.ml | 86 ++++++++++++++++++ configure.ac | 1 + m4/.gitignore | 1 + 11 files changed, 560 insertions(+) diff --git a/.gitignore b/.gitignore index 4699933d3..0e7a649f8 100644 --- a/.gitignore +++ b/.gitignore @@ -123,6 +123,8 @@ Makefile.in /common/errnostring/errnostring-gperf.gperf /common/errnostring/errnostring.h /common/miniexpect/miniexpect.3 +/common/mlpcre/.depend +/common/mlpcre/pcre_tests /common/mlprogress/.depend /common/mlstdutils/.depend /common/mlstdutils/bytes.ml diff --git a/Makefile.am b/Makefile.am index 84b00393d..fb4c99db5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -156,6 +156,7 @@ SUBDIRS += csharp # OCaml tools. Note 'common/ml*', 'mllib' and 'customize' contain # shared code used by other OCaml tools, so these must come first. if HAVE_OCAML +SUBDIRS += common/mlpcre SUBDIRS += common/mlprogress SUBDIRS += common/mlvisit SUBDIRS += common/mlxml diff --git a/bootstrap b/bootstrap index 77a95a25b..4e3d4bc51 100755 --- a/bootstrap +++ b/bootstrap @@ -95,6 +95,7 @@ symlinkat sys_select sys_types sys_wait +tls vasprintf vc-list-files warnings diff --git a/common/mlpcre/Makefile.am b/common/mlpcre/Makefile.am new file mode 100644 index 000000000..aa638cd94 --- /dev/null +++ b/common/mlpcre/Makefile.am @@ -0,0 +1,142 @@ +# Bindings for Perl-compatible Regular Expressions. +# Copyright (C) 2017 Red Hat Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +include $(top_srcdir)/subdir-rules.mk + +EXTRA_DIST = \ + $(SOURCES_MLI) \ + $(SOURCES_ML) \ + $(SOURCES_C) \ + pcre_tests.ml + +SOURCES_MLI = \ + PCRE.mli + +SOURCES_ML = \ + PCRE.ml + +SOURCES_C = \ + pcre-c.c + +if HAVE_OCAML + +# We pretend that we're building a C library. automake handles the +# compilation of the C sources for us. At the end we take the C +# objects and OCaml objects and link them into the OCaml library. +# This C library is never used. + +noinst_LIBRARIES = libmlpcre.a + +if !HAVE_OCAMLOPT +MLPCRE_CMA = mlpcre.cma +else +MLPCRE_CMA = mlpcre.cmxa +endif + +noinst_DATA = $(MLPCRE_CMA) + +libmlpcre_a_SOURCES = $(SOURCES_C) +libmlpcre_a_CPPFLAGS = \ + -I. \ + -I$(top_builddir) \ + -I$(top_srcdir)/gnulib/lib -I$(top_builddir)/gnulib/lib \ + -I$(top_srcdir)/common/utils -I$(top_builddir)/common/utils \ + -I$(shell $(OCAMLC) -where) +libmlpcre_a_CFLAGS = \ + $(WARN_CFLAGS) $(WERROR_CFLAGS) \ + -fPIC + +BOBJECTS = $(SOURCES_ML:.ml=.cmo) +XOBJECTS = $(BOBJECTS:.cmo=.cmx) + +# -I $(top_builddir)/lib/.libs is a hack which forces corresponding -L +# option to be passed to gcc, so we don't try linking against an +# installed copy of libguestfs. +OCAMLPACKAGES = \ + -I $(top_builddir)/gnulib/lib/.libs \ + -I $(top_builddir)/common/utils/.libs \ + -I $(builddir) +OCAMLPACKAGES_TESTS = $(MLPCRE_CMA) + +OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) + +if !HAVE_OCAMLOPT +OBJECTS = $(BOBJECTS) +else +OBJECTS = $(XOBJECTS) +endif + +libmlpcre_a_DEPENDENCIES = $(OBJECTS) + +$(MLPCRE_CMA): $(OBJECTS) libmlpcre.a + $(OCAMLFIND) mklib $(OCAMLPACKAGES) \ + $(OBJECTS) $(libmlpcre_a_OBJECTS) -cclib -lpcre -o mlpcre + +# Tests. + +pcre_tests_SOURCES = dummy.c +pcre_tests_BOBJECTS = pcre_tests.cmo +pcre_tests_XOBJECTS = $(pcre_tests_BOBJECTS:.cmo=.cmx) + +# Can't call the following as <test>_OBJECTS because automake gets confused. +if !HAVE_OCAMLOPT +pcre_tests_THEOBJECTS = $(pcre_tests_BOBJECTS) +pcre_tests.cmo: OCAMLPACKAGES += $(OCAMLPACKAGES_TESTS) +else +pcre_tests_THEOBJECTS = $(pcre_tests_XOBJECTS) +pcre_tests.cmx: OCAMLPACKAGES += $(OCAMLPACKAGES_TESTS) +endif + +OCAMLLINKFLAGS = $(LINK_CUSTOM_OCAMLC_ONLY) + +pcre_tests_DEPENDENCIES = \ + $(pcre_tests_THEOBJECTS) \ + $(MLPCRE_CMA) \ + $(top_srcdir)/ocaml-link.sh +pcre_tests_LINK = \ + $(top_srcdir)/ocaml-link.sh \ + -cclib '-lutils -lpcre -lgnu' -- \ + $(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLLINKFLAGS) \ + $(OCAMLPACKAGES) $(OCAMLPACKAGES_TESTS) \ + $(pcre_tests_THEOBJECTS) -o $@ + +TESTS_ENVIRONMENT = $(top_builddir)/run --test +LOG_COMPILER = $(VG) + +check_PROGRAMS = pcre_tests +TESTS = pcre_tests + +check-valgrind: + $(MAKE) VG="@VG@" check + +# Dependencies. +depend: .depend + +.depend: $(wildcard $(abs_srcdir)/*.mli) $(wildcard $(abs_srcdir)/*.ml) + rm -f $@ $@-t + $(OCAMLFIND) ocamldep -I ../../ocaml -I $(abs_srcdir) $^ | \ + $(SED) 's/ *$$//' | \ + $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \ + $(SED) -e 's,$(abs_srcdir)/,$(builddir)/,g' | \ + sort > $@-t + mv $@-t $@ + +-include .depend + +endif + +.PHONY: depend docs diff --git a/common/mlpcre/PCRE.ml b/common/mlpcre/PCRE.ml new file mode 100644 index 000000000..94eea4b34 --- /dev/null +++ b/common/mlpcre/PCRE.ml @@ -0,0 +1,32 @@ +(* Bindings for Perl-compatible Regular Expressions. + * Copyright (C) 2017 Red Hat Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + *) + +(* Lightweight bindings for the PCRE library. *) + +exception Error of string * int + +type regexp + +external compile : string -> regexp = "guestfs_int_pcre_compile" + +external matches : regexp -> string -> bool = "guestfs_int_pcre_matches" + +external sub : int -> string = "guestfs_int_pcre_sub" + +let () + Callback.register_exception "PCRE.Error" (Error ("", 0)) diff --git a/common/mlpcre/PCRE.mli b/common/mlpcre/PCRE.mli new file mode 100644 index 000000000..33d131238 --- /dev/null +++ b/common/mlpcre/PCRE.mli @@ -0,0 +1,76 @@ +(* Bindings for Perl-compatible Regular Expressions. + * Copyright (C) 2017 Red Hat Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + *) + +(** Lightweight bindings for the PCRE library. + + Note this is {i not} Markus Mottl's ocaml-pcre, and doesn't + work like that library. + + To match a regular expression: + +{v +let re = PCRE.compile "(a+)b" +... + +if PCRE.matches re "ccaaaabb" then ( + let whole = PCRE.sub 0 in (* returns "aaaab" *) + let first = PCRE.sub 1 in (* returns "aaaa" *) + ... +) +v} + + Note that there is implicit global state stored between the + call to {!matches} and {!sub}. This is stored in thread + local storage so it is safe provided there are no other calls + to {!matches} in the same thread. +*) + +exception Error of string * int +(** PCRE error raised by various functions. + + The string is the printable error message. The integer is one + of the negative [PCRE_*] error codes (see pcreapi(3)), but may + be 0 if there was no error code information. *) + +type regexp +(** The type of a compiled regular expression. *) + +val compile : string -> regexp +(** Compile a regular expression. This can raise {!Error}. *) + +val matches : regexp -> string -> bool +(** Test whether the regular expression matches the string. This + returns true if the regexp matches or false otherwise. + + This also saves any matched substrings in thread-local storage + until either the next call to {!matches} in the current thread + or the thread/program exits. You can call {!sub} to return + these substrings. + + This can raise {!Error} if PCRE returns an error. *) + +val sub : int -> string +(** Return the nth substring (capture) matched by the previous call + to {!matches} in the current thread. + + If [n == 0] it returns the whole matching part of the string. + + If [n >= 1] it returns the nth substring. + + If there was no nth substring then this raises [Not_found]. + This can also raise {!Error} for other PCRE-related errors. *) diff --git a/common/mlpcre/dummy.c b/common/mlpcre/dummy.c new file mode 100644 index 000000000..ebab6198c --- /dev/null +++ b/common/mlpcre/dummy.c @@ -0,0 +1,2 @@ +/* Dummy source, to be used for OCaml-based tools with no C sources. */ +enum { foo = 1 }; diff --git a/common/mlpcre/pcre-c.c b/common/mlpcre/pcre-c.c new file mode 100644 index 000000000..efad25d44 --- /dev/null +++ b/common/mlpcre/pcre-c.c @@ -0,0 +1,216 @@ +/* Bindings for Perl-compatible Regular Expressions. + * Copyright (C) 2017 Red Hat Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include <config.h> + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include <assert.h> + +#include <pcre.h> + +#include <caml/alloc.h> +#include <caml/callback.h> +#include <caml/custom.h> +#include <caml/fail.h> +#include <caml/memory.h> +#include <caml/mlvalues.h> + +#include "cleanups.h" + +#include "glthread/tls.h" + +#pragma GCC diagnostic ignored "-Wmissing-prototypes" + +/* Data on the most recent match is stored in this thread-local + * variable. It is freed either by the next call to PCRE.matches or + * by (clean) thread exit. + */ +static gl_tls_key_t last_match; + +struct last_match { + char *subject; /* subject string */ + int *vec; + int r; /* value returned by pcre_exec */ +}; + +static void +free_last_match (struct last_match *data) +{ + if (data) { + free (data->subject); + free (data->vec); + free (data); + } +} + +static void init (void) __attribute__((constructor)); + +static void +init (void) +{ + gl_tls_key_init (last_match, (void (*) (void *))free_last_match); +} + +static void +raise_error (const char *msg, int errcode) +{ + value *exn = caml_named_value ("PCRE.Error"); + value args[2]; + + args[0] = caml_copy_string (msg); + args[1] = Val_int (errcode); + caml_raise_with_args (*exn, 2, args); +} + +/* Wrap and unwrap pcre regular expression handles, with a finalizer. */ +#define Regexp_val(rv) (*(pcre **)Data_custom_val(rv)) + +static void +regexp_finalize (value rev) +{ + pcre *re = Regexp_val (rev); + if (re) pcre_free (re); +} + +static struct custom_operations custom_operations = { + (char *) "pcre_custom_operations", + regexp_finalize, + custom_compare_default, + custom_hash_default, + custom_serialize_default, + custom_deserialize_default +}; + +static value +Val_regexp (pcre *re) +{ + CAMLparam0 (); + CAMLlocal1 (rv); + + rv = caml_alloc_custom (&custom_operations, sizeof (pcre *), 0, 1); + Regexp_val (rv) = re; + + CAMLreturn (rv); +} + +value +guestfs_int_pcre_compile (value pattv) +{ + CAMLparam1 (pattv); + pcre *re; + int errcode = 0; + const char *err; + int offset; + + re = pcre_compile2 (String_val (pattv), 0, &errcode, &err, &offset, NULL); + if (re == NULL) + raise_error (err, errcode); + + CAMLreturn (Val_regexp (re)); +} + +value +guestfs_int_pcre_matches (value rev, value strv) +{ + CAMLparam2 (rev, strv); + pcre *re = Regexp_val (rev); + struct last_match *m, *oldm; + size_t len = caml_string_length (strv); + int capcount, r; + int veclen; + + /* Calculate maximum number of substrings, and hence the vector + * length required. + */ + r = pcre_fullinfo (re, NULL, PCRE_INFO_CAPTURECOUNT, (int *) &capcount); + /* I believe that errors should never occur because of OCaml + * type safety, so we should abort here. If this ever happens + * we will need to look at it again. + */ + assert (r == 0); + veclen = 3 * (1 + capcount); + + m = calloc (1, sizeof *m); + if (m == NULL) + caml_raise_out_of_memory (); + + /* We will need the original subject string when fetching + * substrings, so take a copy. + */ + m->subject = malloc (len+1); + if (m->subject == NULL) { + free_last_match (m); + caml_raise_out_of_memory (); + } + memcpy (m->subject, String_val (strv), len+1); + + m->vec = malloc (veclen * sizeof (int)); + if (m->vec == NULL) { + free_last_match (m); + caml_raise_out_of_memory (); + } + + m->r = pcre_exec (re, NULL, m->subject, len, 0, 0, m->vec, veclen); + if (m->r < 0 && m->r != PCRE_ERROR_NOMATCH) { + free_last_match (m); + /* The C code in lib/match.c ignores errors. */ + raise_error ("pcre_exec", m->r); + } + + /* This error would indicate that pcre_exec ran out of space in the + * vector. However if we are calculating the size of the vector + * correctly above, then this should never happen. + */ + assert (m->r != 0); + + /* Replace the old TLS match data. */ + oldm = gl_tls_get (last_match); + free_last_match (oldm); + gl_tls_set (last_match, m); + + CAMLreturn (m->r == PCRE_ERROR_NOMATCH ? Val_false : Val_true); +} + +value +guestfs_int_pcre_sub (value nv) +{ + CAMLparam1 (nv); + CAMLlocal1 (strv); + int len; + CLEANUP_FREE char *str = NULL; + struct last_match *m = gl_tls_get (last_match); + + if (m == NULL) + raise_error ("PCRE.sub called without calling PCRE.matches", 0); + + len = pcre_get_substring (m->subject, m->vec, m->r, Int_val (nv), + (const char **) &str); + + if (len == PCRE_ERROR_NOSUBSTRING) + caml_raise_not_found (); + + if (len < 0) + raise_error ("pcre_get_substring", len); + + strv = caml_alloc_string (len); + memcpy (String_val (strv), str, len); + CAMLreturn (strv); +} diff --git a/common/mlpcre/pcre_tests.ml b/common/mlpcre/pcre_tests.ml new file mode 100644 index 000000000..e5214eab8 --- /dev/null +++ b/common/mlpcre/pcre_tests.ml @@ -0,0 +1,86 @@ +(* Test bindings for Perl-compatible Regular Expressions. + * Copyright (C) 2017 Red Hat Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + *) + +open Printf + +let compile patt + eprintf "PCRE.compile %s\n%!" patt; + PCRE.compile patt + +let matches re str + eprintf "PCRE.matches %s ->%!" str; + let r = PCRE.matches re str in + eprintf " %b\n%!" r; + r + +let sub i + eprintf "PCRE.sub %d ->%!" i; + let r = PCRE.sub i in + eprintf " %s\n%!" r; + r + +let () + try + let re0 = compile "a+b" in + let re1 = compile "(a+)b" in + let re2 = compile "(a+)(b*)" in + + assert (matches re0 "ccaaabbbb" = true); + assert (sub 0 = "aaab"); + + assert (matches re0 "aaa" = false); + + assert (matches re0 "xyz" = false); + + assert (matches re0 "aaabc" = true); + assert (sub 0 = "aaab"); + + assert (matches re1 "ccaaabb" = true); + assert (sub 1 = "aaa"); + assert (sub 0 = "aaab"); + + assert (matches re2 "ccabbc" = true); + assert (sub 1 = "a"); + assert (sub 2 = "bb"); + assert (sub 0 = "abb"); + + assert (matches re2 "ccac" = true); + assert (sub 1 = "a"); + assert (sub 2 = ""); + assert (sub 0 = "a") + with + | Not_found -> + failwith "one of the PCRE.sub functions unexpectedly raised Not_found" + | PCRE.Error (msg, code) -> + failwith (sprintf "PCRE error: %s (PCRE error code %d)" msg code) + +(* Compile some bad regexps and check that an exception is thrown. + * It would be nice to check the error message is right but + * that involves dealing with language and future changes of + * PCRE error codes. + *) +let () + List.iter ( + fun patt -> + let msg, code + try ignore (PCRE.compile patt); assert false + with PCRE.Error (m, c) -> m, c in + eprintf "patt: %s -> exception: %s (%d)\n%!" patt msg code + ) [ "("; ")"; "+"; "*"; "(abc" ] + +let () = Gc.compact () diff --git a/configure.ac b/configure.ac index 3cf9d0a28..651b48b3b 100644 --- a/configure.ac +++ b/configure.ac @@ -196,6 +196,7 @@ AC_CONFIG_FILES([Makefile common/errnostring/Makefile common/edit/Makefile common/miniexpect/Makefile + common/mlpcre/Makefile common/mlprogress/Makefile common/mlstdutils/Makefile common/mlstdutils/guestfs_config.ml diff --git a/m4/.gitignore b/m4/.gitignore index 07960ed7b..a84b22e5c 100644 --- a/m4/.gitignore +++ b/m4/.gitignore @@ -248,6 +248,7 @@ /thread.m4 /time_h.m4 /timespec.m4 +/tls.m4 /ttyname_r.m4 /ulonglong.m4 /ungetc.m4 -- 2.13.2
Richard W.M. Jones
2017-Aug-01 15:54 UTC
[Libguestfs] [PATCH v2 2/3] builder: Replace small usage of Str with new PCRE module.
--- builder/Makefile.am | 6 +++++- builder/languages.ml | 13 ++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/builder/Makefile.am b/builder/Makefile.am index e64c8991f..1b51376be 100644 --- a/builder/Makefile.am +++ b/builder/Makefile.am @@ -126,6 +126,7 @@ OCAMLPACKAGES = \ -I $(top_builddir)/ocaml \ -I $(top_builddir)/common/mlstdutils \ -I $(top_builddir)/common/mlutils \ + -I $(top_builddir)/common/mlpcre \ -I $(top_builddir)/mllib \ -I $(top_builddir)/customize OCAMLPACKAGES_TESTS @@ -156,6 +157,7 @@ OBJECTS = $(XOBJECTS) endif OCAMLLINKFLAGS = \ + mlpcre.$(MLARCHIVE) \ mlstdutils.$(MLARCHIVE) \ mlguestfs.$(MLARCHIVE) \ mlcutils.$(MLARCHIVE) \ @@ -165,6 +167,7 @@ OCAMLLINKFLAGS = \ virt_builder_DEPENDENCIES = \ $(OBJECTS) \ + ../common/mlpcre/mlpcre.$(MLARCHIVE) \ ../common/mlstdutils/mlstdutils.$(MLARCHIVE) \ ../common/mlutils/mlcutils.$(MLARCHIVE) \ ../mllib/mllib.$(MLARCHIVE) \ @@ -238,6 +241,7 @@ endif yajl_tests_DEPENDENCIES = \ $(yajl_tests_THEOBJECTS) \ + ../common/mlpcre/mlpcre.$(MLARCHIVE) \ ../common/mlstdutils/mlstdutils.$(MLARCHIVE) \ ../common/mlutils/mlcutils.$(MLARCHIVE) \ ../mllib/mllib.$(MLARCHIVE) \ @@ -311,7 +315,7 @@ depend: .depend .depend: $(wildcard $(abs_srcdir)/*.mli) $(wildcard $(abs_srcdir)/*.ml) rm -f $@ $@-t - $(OCAMLFIND) ocamldep -I ../ocaml -I $(abs_srcdir) -I $(abs_top_builddir)/common/mlstdutils -I $(abs_top_builddir)/common/mlutils -I $(abs_top_builddir)/mllib -I $(abs_top_builddir)/customize $^ | \ + $(OCAMLFIND) ocamldep -I ../ocaml -I $(abs_srcdir) -I $(abs_top_builddir)/common/mlstdutils -I $(abs_top_builddir)/common/mlutils -I $(abs_top_builddir)/common/mlpcre -I $(abs_top_builddir)/mllib -I $(abs_top_builddir)/customize $^ | \ $(SED) 's/ *$$//' | \ $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \ $(SED) -e 's,$(abs_srcdir)/,$(builddir)/,g' | \ diff --git a/builder/languages.ml b/builder/languages.ml index d94f97c5c..89d173999 100644 --- a/builder/languages.ml +++ b/builder/languages.ml @@ -19,15 +19,14 @@ open Std_utils open Common_utils +let re_locale + PCRE.compile "^([A-Za-z]+)(_([A-Za-z]+))?(\\.([A-Za-z0-9-]+))?(@([A-Za-z]+))?$" + let split_locale loc - let regex = Str.regexp "^\\([A-Za-z]+\\)\\(_\\([A-Za-z]+\\)\\)?\\(\\.\\([A-Za-z0-9-]+\\)\\)?\\(@\\([A-Za-z]+\\)\\)?$" in let l = ref [] in - if Str.string_match regex loc 0 then ( - let match_or_empty n - try Str.matched_group n loc with - | Not_found -> "" - in - let lang = Str.matched_group 1 loc in + if PCRE.matches re_locale loc then ( + let match_or_empty n = try PCRE.sub n with Not_found -> "" in + let lang = PCRE.sub 1 in let territory = match_or_empty 3 in (match territory with | "" -> () -- 2.13.2
Richard W.M. Jones
2017-Aug-01 15:54 UTC
[Libguestfs] [PATCH v2 3/3] daemon: Restore PCRE regular expressions in OCaml code.
When parts of the daemon were previously converted to OCaml, the previous PCRE regexps were converted to Str regexps. Restore the original PCRE regexps. There was also one case where an original call to glob(3) was replaced by a Str regexp, and this is replaced by a PCRE regexp (although it is in fact identical in this instance). This updates commit b48da89dd6edce325f4c1f2956435c4d383ebe77 and commit eeda6edca19ea02ffea7f433501dd063e04cd819 and commit 2ca0fa778de5e748f4545eddf9798e7a723fe07e. --- daemon/Makefile.am | 14 ++++++++++---- daemon/btrfs.ml | 14 +++++++------- daemon/daemon-c.c | 6 ++++++ daemon/filearch.ml | 14 +++++++------- daemon/md.ml | 4 ++-- 5 files changed, 32 insertions(+), 20 deletions(-) diff --git a/daemon/Makefile.am b/daemon/Makefile.am index 1f7cb2277..fc1389f67 100644 --- a/daemon/Makefile.am +++ b/daemon/Makefile.am @@ -187,7 +187,8 @@ guestfsd_LDFLAGS = \ -L$(shell $(OCAMLC) -where) \ -L$(shell $(OCAMLC) -where)/hivex \ -L../common/mlutils \ - -L../common/mlstdutils + -L../common/mlstdutils \ + -L../common/mlpcre guestfsd_LDADD = \ ../common/errnostring/liberrnostring.la \ ../common/protocol/libprotocol.la \ @@ -293,7 +294,9 @@ OCAMLPACKAGES = \ -package str,unix,hivex \ -I $(top_srcdir)/common/mlstdutils \ -I $(top_srcdir)/common/mlutils \ - -I $(top_builddir)/common/utils/.libs + -I $(top_builddir)/common/utils/.libs \ + -I $(top_srcdir)/common/mlpcre \ + -I $(top_builddir)/common/mlpcre/.libs OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_FLAGS) @@ -305,6 +308,7 @@ OBJECTS = $(XOBJECTS) CAMLRUN = asmrun endif OCAML_LIBS = \ + -lmlpcre \ -lmlcutils \ -lmlstdutils \ -lmlhivex \ @@ -317,7 +321,8 @@ CLEANFILES += camldaemon.o camldaemon.o: $(OBJECTS) $(OCAMLFIND) $(BEST) -output-obj -o $@ \ $(OCAMLFLAGS) $(OCAMLPACKAGES) \ - -linkpkg mlcutils.$(MLARCHIVE) mlstdutils.$(MLARCHIVE) \ + -linkpkg \ + mlpcre.$(MLARCHIVE) mlcutils.$(MLARCHIVE) mlstdutils.$(MLARCHIVE) \ $(OBJECTS) # OCaml dependencies. @@ -325,7 +330,7 @@ depend: .depend .depend: $(wildcard $(abs_srcdir)/*.mli) $(wildcard $(abs_srcdir)/*.ml) rm -f $@ $@-t - $(OCAMLFIND) ocamldep -I $(abs_srcdir) -I $(abs_top_builddir)/common/mlstdutils -I $(abs_top_builddir)/common/mlutils $^ | \ + $(OCAMLFIND) ocamldep -I $(abs_srcdir) -I $(abs_top_builddir)/common/mlstdutils -I $(abs_top_builddir)/common/mlutils -I $(abs_top_builddir)/common/mlpcre $^ | \ $(SED) 's/ *$$//' | \ $(SED) -e :a -e '/ *\\$$/N; s/ *\\\n */ /; ta' | \ $(SED) -e 's,$(abs_srcdir)/,$(builddir)/,g' | \ @@ -362,6 +367,7 @@ daemon_utils_tests_THEOBJECTS = $(daemon_utils_tests_XOBJECTS) endif OCAMLLINKFLAGS = \ + mlpcre.$(MLARCHIVE) \ mlcutils.$(MLARCHIVE) \ mlstdutils.$(MLARCHIVE) \ $(LINK_CUSTOM_OCAMLC_ONLY) diff --git a/daemon/btrfs.ml b/daemon/btrfs.ml index fc02abefa..c51689744 100644 --- a/daemon/btrfs.ml +++ b/daemon/btrfs.ml @@ -71,9 +71,9 @@ let rec with_mounted mountable f _with_mounted cmd f let re_btrfs_subvolume_list - Str.regexp ("ID[ \t]+\\([0-9]+\\).*[ \t]" ^ - "top level[ \t]+\\([0-9]+\\).*[ \t]" ^ - "path[ \t]+\\(.*\\)") + PCRE.compile ("ID\\s+(\\d+).*\\s" ^ + "top level\\s+(\\d+).*\\s" ^ + "path\\s(.*)") let btrfs_subvolume_list mountable (* Execute 'btrfs subvolume list <fs>', and split the output into lines *) @@ -103,10 +103,10 @@ let btrfs_subvolume_list mountable *) List.map ( fun line -> - if Str.string_match re_btrfs_subvolume_list line 0 then ( - let id = Int64.of_string (Str.matched_group 1 line) - and top_level_id = Int64.of_string (Str.matched_group 2 line) - and path = Str.matched_group 3 line in + if PCRE.matches re_btrfs_subvolume_list line then ( + let id = Int64.of_string (PCRE.sub 1) + and top_level_id = Int64.of_string (PCRE.sub 2) + and path = PCRE.sub 3 in { btrfssubvolume_id = id; diff --git a/daemon/daemon-c.c b/daemon/daemon-c.c index cbb3d8918..3ecaed4ca 100644 --- a/daemon/daemon-c.c +++ b/daemon/daemon-c.c @@ -65,6 +65,12 @@ guestfs_int_daemon_exn_to_reply_with_error (const char *func, value exn) reply_with_error ("%s", String_val (Field (exn, 1))); else if (STREQ (exn_name, "Invalid_argument")) reply_with_error ("invalid argument: %s", String_val (Field (exn, 1))); + else if (STREQ (exn_name, "PCRE.Error")) { + value pair = Field (exn, 1); + reply_with_error ("PCRE error: %s (PCRE error code: %d)", + String_val (Field (pair, 0)), + Int_val (Field (pair, 1))); + } else reply_with_error ("internal error: %s: unhandled exception thrown: %s", func, exn_name); diff --git a/daemon/filearch.ml b/daemon/filearch.ml index 505d8c78e..15ac4eeaa 100644 --- a/daemon/filearch.ml +++ b/daemon/filearch.ml @@ -25,9 +25,9 @@ open Unix_utils open Utils let re_file_elf - Str.regexp ".*ELF \\([0-9]+\\)-bit \\(MSB\\|LSB\\).*\\(executable\\|shared object\\|relocatable\\), \\([^,]+\\)," + PCRE.compile "ELF (\\d+)-bit (MSB|LSB).*(?:executable|shared object|relocatable), (.+?)," -let re_file_elf_ppc64 = Str.regexp ".*64.*PowerPC" +let re_file_elf_ppc64 = PCRE.compile ".*64.*PowerPC" let initrd_binaries = [ "bin/ls"; @@ -48,10 +48,10 @@ let rec file_architecture orig_path file_architecture_of_magic magic orig_path orig_path and file_architecture_of_magic magic orig_path path - if Str.string_match re_file_elf magic 0 then ( - let bits = Str.matched_group 1 magic in - let endianness = Str.matched_group 2 magic in - let elf_arch = Str.matched_group 4 magic in + if PCRE.matches re_file_elf magic then ( + let bits = PCRE.sub 1 in + let endianness = PCRE.sub 2 in + let elf_arch = PCRE.sub 3 in canonical_elf_arch bits endianness elf_arch ) else if String.find magic "PE32 executable" >= 0 then @@ -78,7 +78,7 @@ and canonical_elf_arch bits endianness elf_arch "sparc64" else if substr "IA-64" then "ia64" - else if Str.string_match re_file_elf_ppc64 elf_arch 0 then ( + else if PCRE.matches re_file_elf_ppc64 elf_arch then ( match endianness with | "MSB" -> "ppc64" | "LSB" -> "ppc64le" diff --git a/daemon/md.ml b/daemon/md.ml index 1fd00ebb8..5a40a2d83 100644 --- a/daemon/md.ml +++ b/daemon/md.ml @@ -25,7 +25,7 @@ open Utils external is_raid_device : string -> bool "guestfs_int_daemon_is_raid_device" "noalloc" -let re_md = Str.regexp "^md[0-9]+$" +let re_md = PCRE.compile "^md[0-9]+$" let list_md_devices () (* Look for directories under /sys/block matching md[0-9]+ @@ -33,7 +33,7 @@ let list_md_devices () *) let devs = Sys.readdir "/sys/block" in let devs = Array.to_list devs in - let devs = List.filter (fun d -> Str.string_match re_md d 0) devs in + let devs = List.filter (fun d -> PCRE.matches re_md d) devs in let devs = List.filter ( fun d -> is_directory (sprintf "/sys/block/%s/md" d) ) devs in -- 2.13.2
Richard Jones
2017-Aug-01 16:32 UTC
[Libguestfs] check-syntax FAILED (was: Re: [PATCH v2 3/3] daemon: Restore PCRE regular expressions in OCaml code.)
. en_GB/virt-v2v-test-harness.pod is 11.7% translated (11 of 94 strings). en_GB/virt-v2v-copy-to-local.pod is 40% translated (22 of 55 strings). en_GB/virt-v2v.pod is 10.06% translated (72 of 715 strings). es/virt-alignment-scan.pod is 6.15% translated (8 of 130 strings). es/libguestfs-make-fixed-appliance.pod is 16.66% translated (9 of 54 strings). es/virt-builder.pod is 3.98% translated (25 of 628 strings). es/virt-index-validate.pod is 22.85% translated (8 of 35 strings). es/virt-cat.pod is 8.25% translated (9 of 109 strings). es/virt-filesystems.pod is 4.05% translated (6 of 148 strings). es/virt-log.pod is 6.66% translated (4 of 60 strings). es/virt-ls.pod is 2.04% translated (4 of 196 strings). es/virt-tail.pod is 12.9% translated (12 of 93 strings). es/miniexpect.pod is 9.21% translated (13 of 141 strings). es/customize-options.pod is 1.36% translated (2 of 147 strings). es/customize-synopsis.pod is 100% translated (0 strings). es/virt-customize.pod is 8.03% translated (9 of 112 strings). es/guestfsd.pod is 7.27% translated (4 of 55 strings). es/virt-df.pod is 3.96% translated (4 of 101 strings). es/virt-dib.pod is 1.71% translated (4 of 233 strings). es/virt-diff.pod is 3.84% translated (4 of 104 strings). es/guestfs-building.pod is 2.63% translated (9 of 342 strings). es/guestfs-faq.pod is 5% translated (22 of 440 strings). es/guestfs-hacking.pod is 8% translated (35 of 437 strings). es/guestfs-internals.pod is 3.88% translated (4 of 103 strings). es/guestfs-performance.pod is 13.09% translated (22 of 168 strings). es/guestfs-recipes.pod is 7.11% translated (17 of 239 strings). es/guestfs-release-notes.pod is 1.35% translated (31 of 2291 strings). es/guestfs-security.pod is 11.5% translated (13 of 113 strings). es/guestfs-testing.pod is 5.84% translated (10 of 171 strings). es/internal-documentation.pod is 2.27% translated (38 of 1674 strings). es/virt-edit.pod is 6.16% translated (9 of 146 strings). es/guestfs-erlang.pod is 24.39% translated (10 of 41 strings). es/guestfs-examples.pod is 20% translated (6 of 30 strings). es/guestfish-actions.pod is 2.35% translated (86 of 3654 strings). es/guestfish-commands.pod is 1.8% translated (2 of 111 strings). es/guestfish-prepopts.pod is 0% translated (0 of 46 strings). es/guestfish.pod is 2.34% translated (14 of 596 strings). es/libguestfs-tools.conf.pod is 28.94% translated (11 of 38 strings). es/virt-copy-in.pod is 17.39% translated (4 of 23 strings). es/virt-copy-out.pod is 19.04% translated (4 of 21 strings). es/virt-tar-in.pod is 18.18% translated (4 of 22 strings). es/virt-tar-out.pod is 18.18% translated (4 of 22 strings). es/virt-format.pod is 5.06% translated (4 of 79 strings). es/guestmount.pod is 2.53% translated (4 of 158 strings). es/guestunmount.pod is 6.66% translated (4 of 60 strings). es/virt-get-kernel.pod is 5.19% translated (4 of 77 strings). es/guestfs-gobject.pod is 20% translated (4 of 20 strings). es/guestfs-golang.pod is 20.68% translated (6 of 29 strings). es/virt-inspector.pod is 4.1% translated (6 of 146 strings). es/guestfs-java.pod is 7.69% translated (4 of 52 strings). es/guestfs-actions.pod is 2.4% translated (130 of 5415 strings). es/guestfs-availability.pod is 0% translated (0 of 77 strings). es/guestfs-structs.pod is 4.73% translated (8 of 169 strings). es/guestfs.pod is 13.38% translated (132 of 986 strings). es/guestfs-lua.pod is 7.14% translated (4 of 56 strings). es/virt-make-fs.pod is 6.09% translated (5 of 82 strings). es/guestfs-ocaml.pod is 11.42% translated (4 of 35 strings). es/virt-p2v-make-disk.pod is 5.26% translated (4 of 76 strings). es/virt-p2v-make-kickstart.pod is 11.96% translated (14 of 117 strings). es/virt-p2v-make-kiwi.pod is 5.79% translated (4 of 69 strings). es/virt-p2v.pod is 2.67% translated (7 of 262 strings). es/guestfs-perl.pod is 21.05% translated (4 of 19 strings). es/guestfs-python.pod is 13.33% translated (4 of 30 strings). es/virt-rescue.pod is 3.8% translated (7 of 184 strings). es/virt-resize.pod is 9.81% translated (27 of 275 strings). es/guestfs-ruby.pod is 22.22% translated (4 of 18 strings). es/virt-sparsify.pod is 18.82% translated (32 of 170 strings). es/virt-sysprep.pod is 9.56% translated (20 of 209 strings). es/libguestfs-test-tool.pod is 12.5% translated (9 of 72 strings). es/virt-list-filesystems.pod is 11.42% translated (4 of 35 strings). es/virt-list-partitions.pod is 10.52% translated (4 of 38 strings). es/virt-tar.pod is 7.27% translated (4 of 55 strings). es/virt-win-reg.pod is 9.52% translated (12 of 126 strings). es/boot-analysis.pod is 10.25% translated (4 of 39 strings). es/boot-benchmark.pod is 13.79% translated (4 of 29 strings). es/virt-v2v-test-harness.pod is 7.44% translated (7 of 94 strings). es/virt-v2v-copy-to-local.pod is 10.9% translated (6 of 55 strings). es/virt-v2v.pod is 5.03% translated (36 of 715 strings). eu/virt-alignment-scan.pod is 6.15% translated (8 of 130 strings). eu/libguestfs-make-fixed-appliance.pod is 18.51% translated (10 of 54 strings). eu/virt-builder.pod is 4.29% translated (27 of 628 strings). eu/virt-index-validate.pod is 20% translated (7 of 35 strings). eu/virt-cat.pod is 8.25% translated (9 of 109 strings). eu/virt-filesystems.pod is 2.7% translated (4 of 148 strings). eu/virt-log.pod is 6.66% translated (4 of 60 strings). eu/virt-ls.pod is 2.04% translated (4 of 196 strings). eu/virt-tail.pod is 12.9% translated (12 of 93 strings). eu/miniexpect.pod is 12.05% translated (17 of 141 strings). eu/customize-options.pod is 1.36% translated (2 of 147 strings). eu/customize-synopsis.pod is 100% translated (0 strings). eu/virt-customize.pod is 7.14% translated (8 of 112 strings). eu/guestfsd.pod is 5.45% translated (3 of 55 strings). eu/virt-df.pod is 3.96% translated (4 of 101 strings). eu/virt-dib.pod is 1.28% translated (3 of 233 strings). eu/virt-diff.pod is 3.84% translated (4 of 104 strings). eu/guestfs-building.pod is 3.8% translated (13 of 342 strings). eu/guestfs-faq.pod is 6.13% translated (27 of 440 strings). eu/guestfs-hacking.pod is 9.15% translated (40 of 437 strings). eu/guestfs-internals.pod is 6.79% translated (7 of 103 strings). eu/guestfs-performance.pod is 11.3% translated (19 of 168 strings). eu/guestfs-recipes.pod is 7.94% translated (19 of 239 strings). eu/guestfs-release-notes.pod is 1.35% translated (31 of 2291 strings). eu/guestfs-security.pod is 14.15% translated (16 of 113 strings). eu/guestfs-testing.pod is 9.94% translated (17 of 171 strings). eu/internal-documentation.pod is 2.21% translated (37 of 1674 strings). eu/virt-edit.pod is 6.16% translated (9 of 146 strings). eu/guestfs-erlang.pod is 12.19% translated (5 of 41 strings). eu/guestfs-examples.pod is 16.66% translated (5 of 30 strings). eu/guestfish-actions.pod is 2.32% translated (85 of 3654 strings). eu/guestfish-commands.pod is 0% translated (0 of 111 strings). eu/guestfish-prepopts.pod is 0% translated (0 of 46 strings). eu/guestfish.pod is 2.51% translated (15 of 596 strings). eu/libguestfs-tools.conf.pod is 31.57% translated (12 of 38 strings). eu/virt-copy-in.pod is 21.73% translated (5 of 23 strings). eu/virt-copy-out.pod is 23.8% translated (5 of 21 strings). eu/virt-tar-in.pod is 22.72% translated (5 of 22 strings). eu/virt-tar-out.pod is 22.72% translated (5 of 22 strings). eu/virt-format.pod is 5.06% translated (4 of 79 strings). eu/guestmount.pod is 3.16% translated (5 of 158 strings). eu/guestunmount.pod is 8.33% translated (5 of 60 strings). eu/virt-get-kernel.pod is 3.89% translated (3 of 77 strings). eu/guestfs-gobject.pod is 25% translated (5 of 20 strings). eu/guestfs-golang.pod is 24.13% translated (7 of 29 strings). eu/virt-inspector.pod is 4.79% translated (7 of 146 strings). eu/guestfs-java.pod is 9.61% translated (5 of 52 strings). eu/guestfs-actions.pod is 1.56% translated (85 of 5415 strings). eu/guestfs-availability.pod is 0% translated (0 of 77 strings). eu/guestfs-structs.pod is 0% translated (0 of 169 strings). eu/guestfs.pod is 6.99% translated (69 of 986 strings). eu/guestfs-lua.pod is 10.71% translated (6 of 56 strings). eu/virt-make-fs.pod is 3.65% translated (3 of 82 strings). eu/guestfs-ocaml.pod is 14.28% translated (5 of 35 strings). eu/virt-p2v-make-disk.pod is 5.26% translated (4 of 76 strings). eu/virt-p2v-make-kickstart.pod is 11.96% translated (14 of 117 strings). eu/virt-p2v-make-kiwi.pod is 5.79% translated (4 of 69 strings). eu/virt-p2v.pod is 2.29% translated (6 of 262 strings). eu/guestfs-perl.pod is 26.31% translated (5 of 19 strings). eu/guestfs-python.pod is 16.66% translated (5 of 30 strings). eu/virt-rescue.pod is 3.26% translated (6 of 184 strings). eu/virt-resize.pod is 5.45% translated (15 of 275 strings). eu/guestfs-ruby.pod is 27.77% translated (5 of 18 strings). eu/virt-sparsify.pod is 10.58% translated (18 of 170 strings). eu/virt-sysprep.pod is 10.52% translated (22 of 209 strings). eu/libguestfs-test-tool.pod is 6.94% translated (5 of 72 strings). eu/virt-list-filesystems.pod is 8.57% translated (3 of 35 strings). eu/virt-list-partitions.pod is 7.89% translated (3 of 38 strings). eu/virt-tar.pod is 5.45% translated (3 of 55 strings). eu/virt-win-reg.pod is 7.93% translated (10 of 126 strings). eu/boot-analysis.pod is 7.69% translated (3 of 39 strings). eu/boot-benchmark.pod is 10.34% translated (3 of 29 strings). eu/virt-v2v-test-harness.pod is 7.44% translated (7 of 94 strings). eu/virt-v2v-copy-to-local.pod is 10.9% translated (6 of 55 strings). eu/virt-v2v.pod is 4.47% translated (32 of 715 strings). fr/virt-alignment-scan.pod is 12.3% translated (16 of 130 strings). fr/libguestfs-make-fixed-appliance.pod is 18.51% translated (10 of 54 strings). fr/virt-builder.pod is 8.59% translated (54 of 628 strings). fr/virt-index-validate.pod is 8.57% translated (3 of 35 strings). fr/virt-cat.pod is 16.51% translated (18 of 109 strings). fr/virt-filesystems.pod is 10.13% translated (15 of 148 strings). fr/virt-log.pod is 5% translated (3 of 60 strings). fr/virt-ls.pod is 13.77% translated (27 of 196 strings). fr/virt-tail.pod is 4.3% translated (4 of 93 strings). fr/miniexpect.pod is 3.54% translated (5 of 141 strings). fr/customize-options.pod is 0% translated (0 of 147 strings). fr/customize-synopsis.pod is 100% translated (0 strings). fr/virt-customize.pod is 7.14% translated (8 of 112 strings). fr/guestfsd.pod is 7.27% translated (4 of 55 strings). fr/virt-df.pod is 16.83% translated (17 of 101 strings). fr/virt-dib.pod is 1.28% translated (3 of 233 strings). fr/virt-diff.pod is 4.8% translated (5 of 104 strings). fr/guestfs-building.pod is 1.46% translated (5 of 342 strings). fr/guestfs-faq.pod is 10.9% translated (48 of 440 strings). fr/guestfs-hacking.pod is 7.32% translated (32 of 437 strings). fr/guestfs-internals.pod is 11.65% translated (12 of 103 strings). fr/guestfs-performance.pod is 19.04% translated (32 of 168 strings). fr/guestfs-recipes.pod is 19.24% translated (46 of 239 strings). fr/guestfs-release-notes.pod is 15.23% translated (349 of 2291 strings). fr/guestfs-security.pod is 4.42% translated (5 of 113 strings). fr/guestfs-testing.pod is 26.31% translated (45 of 171 strings). fr/internal-documentation.pod is 0.83% translated (14 of 1674 strings). fr/virt-edit.pod is 19.86% translated (29 of 146 strings). fr/guestfs-erlang.pod is 29.26% translated (12 of 41 strings). fr/guestfs-examples.pod is 20% translated (6 of 30 strings). fr/guestfish-actions.pod is 22.05% translated (806 of 3654 strings). fr/guestfish-commands.pod is 38.73% translated (43 of 111 strings). fr/guestfish-prepopts.pod is 15.21% translated (7 of 46 strings). fr/guestfish.pod is 19.29% translated (115 of 596 strings). fr/libguestfs-tools.conf.pod is 7.89% translated (3 of 38 strings). fr/virt-copy-in.pod is 30.43% translated (7 of 23 strings). fr/virt-copy-out.pod is 28.57% translated (6 of 21 strings). fr/virt-tar-in.pod is 31.81% translated (7 of 22 strings). fr/virt-tar-out.pod is 31.81% translated (7 of 22 strings). fr/virt-format.pod is 10.12% translated (8 of 79 strings). fr/guestmount.pod is 16.45% translated (26 of 158 strings). fr/guestunmount.pod is 21.66% translated (13 of 60 strings). fr/virt-get-kernel.pod is 3.89% translated (3 of 77 strings). fr/guestfs-gobject.pod is 15% translated (3 of 20 strings). fr/guestfs-golang.pod is 17.24% translated (5 of 29 strings). fr/virt-inspector.pod is 17.8% translated (26 of 146 strings). fr/guestfs-java.pod is 13.46% translated (7 of 52 strings). fr/guestfs-actions.pod is 14.33% translated (776 of 5415 strings). fr/guestfs-availability.pod is 0% translated (0 of 77 strings). fr/guestfs-structs.pod is 12.42% translated (21 of 169 strings). fr/guestfs.pod is 16.32% translated (161 of 986 strings). fr/guestfs-lua.pod is 26.78% translated (15 of 56 strings). fr/virt-make-fs.pod is 13.41% translated (11 of 82 strings). fr/guestfs-ocaml.pod is 25.71% translated (9 of 35 strings). fr/virt-p2v-make-disk.pod is 3.94% translated (3 of 76 strings). fr/virt-p2v-make-kickstart.pod is 2.56% translated (3 of 117 strings). fr/virt-p2v-make-kiwi.pod is 4.34% translated (3 of 69 strings). fr/virt-p2v.pod is 2.29% translated (6 of 262 strings). fr/guestfs-perl.pod is 26.31% translated (5 of 19 strings). fr/guestfs-python.pod is 10% translated (3 of 30 strings). fr/virt-rescue.pod is 13.58% translated (25 of 184 strings). fr/virt-resize.pod is 14.54% translated (40 of 275 strings). fr/guestfs-ruby.pod is 22.22% translated (4 of 18 strings). fr/virt-sparsify.pod is 8.82% translated (15 of 170 strings). fr/virt-sysprep.pod is 9.09% translated (19 of 209 strings). fr/libguestfs-test-tool.pod is 23.61% translated (17 of 72 strings). fr/virt-list-filesystems.pod is 14.28% translated (5 of 35 strings). fr/virt-list-partitions.pod is 13.15% translated (5 of 38 strings). fr/virt-tar.pod is 20% translated (11 of 55 strings). fr/virt-win-reg.pod is 23.01% translated (29 of 126 strings). fr/boot-analysis.pod is 7.69% translated (3 of 39 strings). fr/boot-benchmark.pod is 13.79% translated (4 of 29 strings). fr/virt-v2v-test-harness.pod is 3.19% translated (3 of 94 strings). fr/virt-v2v-copy-to-local.pod is 5.45% translated (3 of 55 strings). fr/virt-v2v.pod is 2.09% translated (15 of 715 strings). ja/virt-alignment-scan.pod is 90.76% translated (118 of 130 strings). ja/libguestfs-make-fixed-appliance.pod is 75.92% translated (41 of 54 strings). ja/virt-builder.pod is 9.55% translated (60 of 628 strings). ja/virt-index-validate.pod is 54.28% translated (19 of 35 strings). ja/virt-cat.pod is 74.31% translated (81 of 109 strings). ja/virt-filesystems.pod is 83.1% translated (123 of 148 strings). ja/virt-log.pod is 66.66% translated (40 of 60 strings). ja/virt-ls.pod is 78.57% translated (154 of 196 strings). ja/virt-tail.pod is 58.06% translated (54 of 93 strings). ja/miniexpect.pod is 14.89% translated (21 of 141 strings). ja/customize-options.pod is 4.76% translated (7 of 147 strings). ja/customize-synopsis.pod is 100% translated (0 strings). ja/virt-customize.pod is 46.42% translated (52 of 112 strings). ja/guestfsd.pod is 52.72% translated (29 of 55 strings). ja/virt-df.pod is 74.25% translated (75 of 101 strings). ja/virt-dib.pod is 13.3% translated (31 of 233 strings). ja/virt-diff.pod is 55.76% translated (58 of 104 strings). ja/guestfs-building.pod is 4.97% translated (17 of 342 strings). ja/guestfs-faq.pod is 26.81% translated (118 of 440 strings). ja/guestfs-hacking.pod is 22.19% translated (97 of 437 strings). ja/guestfs-internals.pod is 30.09% translated (31 of 103 strings). ja/guestfs-performance.pod is 30.95% translated (52 of 168 strings). ja/guestfs-recipes.pod is 63.17% translated (151 of 239 strings). ja/guestfs-release-notes.pod is 10.21% translated (234 of 2291 strings). ja/guestfs-security.pod is 27.43% translated (31 of 113 strings). ja/guestfs-testing.pod is 60.81% translated (104 of 171 strings). ja/internal-documentation.pod is 2.62% translated (44 of 1674 strings). ja/virt-edit.pod is 72.6% translated (106 of 146 strings). ja/guestfs-erlang.pod is 82.92% translated (34 of 41 strings). ja/guestfs-examples.pod is 93.33% translated (28 of 30 strings). ja/guestfish-actions.pod is 50.1% translated (1831 of 3654 strings). ja/guestfish-commands.pod is 62.16% translated (69 of 111 strings). ja/guestfish-prepopts.pod is 19.56% translated (9 of 46 strings). ja/guestfish.pod is 56.54% translated (337 of 596 strings). ja/libguestfs-tools.conf.pod is 42.1% translated (16 of 38 strings). ja/virt-copy-in.pod is 73.91% translated (17 of 23 strings). ja/virt-copy-out.pod is 76.19% translated (16 of 21 strings). ja/virt-tar-in.pod is 77.27% translated (17 of 22 strings). ja/virt-tar-out.pod is 72.72% translated (16 of 22 strings). ja/virt-format.pod is 75.94% translated (60 of 79 strings). ja/guestmount.pod is 50% translated (79 of 158 strings). ja/guestunmount.pod is 30% translated (18 of 60 strings). ja/virt-get-kernel.pod is 57.14% translated (44 of 77 strings). ja/guestfs-gobject.pod is 35% translated (7 of 20 strings). ja/guestfs-golang.pod is 51.72% translated (15 of 29 strings). ja/virt-inspector.pod is 59.58% translated (87 of 146 strings). ja/guestfs-java.pod is 34.61% translated (18 of 52 strings). ja/guestfs-actions.pod is 57.85% translated (3133 of 5415 strings). ja/guestfs-availability.pod is 66.23% translated (51 of 77 strings). ja/guestfs-structs.pod is 24.85% translated (42 of 169 strings). ja/guestfs.pod is 40.16% translated (396 of 986 strings). ja/guestfs-lua.pod is 41.07% translated (23 of 56 strings). ja/virt-make-fs.pod is 53.65% translated (44 of 82 strings). ja/guestfs-ocaml.pod is 74.28% translated (26 of 35 strings). ja/virt-p2v-make-disk.pod is 23.68% translated (18 of 76 strings). ja/virt-p2v-make-kickstart.pod is 23.07% translated (27 of 117 strings). ja/virt-p2v-make-kiwi.pod is 20.28% translated (14 of 69 strings). ja/virt-p2v.pod is 8.39% translated (22 of 262 strings). ja/guestfs-perl.pod is 78.94% translated (15 of 19 strings). ja/guestfs-python.pod is 46.66% translated (14 of 30 strings). ja/virt-rescue.pod is 49.45% translated (91 of 184 strings). ja/virt-resize.pod is 41.81% translated (115 of 275 strings). ja/guestfs-ruby.pod is 83.33% translated (15 of 18 strings). ja/virt-sparsify.pod is 47.05% translated (80 of 170 strings). ja/virt-sysprep.pod is 52.63% translated (110 of 209 strings). ja/libguestfs-test-tool.pod is 37.5% translated (27 of 72 strings). ja/virt-list-filesystems.pod is 74.28% translated (26 of 35 strings). ja/virt-list-partitions.pod is 84.21% translated (32 of 38 strings). ja/virt-tar.pod is 80% translated (44 of 55 strings). ja/virt-win-reg.pod is 63.49% translated (80 of 126 strings). ja/boot-analysis.pod is 33.33% translated (13 of 39 strings). ja/boot-benchmark.pod is 41.37% translated (12 of 29 strings). ja/virt-v2v-test-harness.pod is 11.7% translated (11 of 94 strings). ja/virt-v2v-copy-to-local.pod is 38.18% translated (21 of 55 strings). ja/virt-v2v.pod is 8.95% translated (64 of 715 strings). nl/virt-alignment-scan.pod is 2.3% translated (3 of 130 strings). nl/libguestfs-make-fixed-appliance.pod is 5.55% translated (3 of 54 strings). nl/virt-builder.pod is 0.47% translated (3 of 628 strings). nl/virt-index-validate.pod is 8.57% translated (3 of 35 strings). nl/virt-cat.pod is 2.75% translated (3 of 109 strings). nl/virt-filesystems.pod is 2.02% translated (3 of 148 strings). nl/virt-log.pod is 5% translated (3 of 60 strings). nl/virt-ls.pod is 1.53% translated (3 of 196 strings). nl/virt-tail.pod is 3.22% translated (3 of 93 strings). nl/miniexpect.pod is 2.83% translated (4 of 141 strings). nl/customize-options.pod is 0% translated (0 of 147 strings). nl/customize-synopsis.pod is 100% translated (0 strings). nl/virt-customize.pod is 2.67% translated (3 of 112 strings). nl/guestfsd.pod is 5.45% translated (3 of 55 strings). nl/virt-df.pod is 2.97% translated (3 of 101 strings). nl/virt-dib.pod is 1.28% translated (3 of 233 strings). nl/virt-diff.pod is 2.88% translated (3 of 104 strings). nl/guestfs-building.pod is 0.58% translated (2 of 342 strings). nl/guestfs-faq.pod is 0.22% translated (1 of 440 strings). nl/guestfs-hacking.pod is 0.45% translated (2 of 437 strings). nl/guestfs-internals.pod is 1.94% translated (2 of 103 strings). nl/guestfs-performance.pod is 1.19% translated (2 of 168 strings). nl/guestfs-recipes.pod is 0.83% translated (2 of 239 strings). nl/guestfs-release-notes.pod is 0.04% translated (1 of 2291 strings). nl/guestfs-security.pod is 1.76% translated (2 of 113 strings). nl/guestfs-testing.pod is 1.16% translated (2 of 171 strings). nl/internal-documentation.pod is 0% translated (0 of 1674 strings). nl/virt-edit.pod is 2.05% translated (3 of 146 strings). nl/guestfs-erlang.pod is 7.31% translated (3 of 41 strings). nl/guestfs-examples.pod is 16.66% translated (5 of 30 strings). nl/guestfish-actions.pod is 0% translated (0 of 3654 strings). nl/guestfish-commands.pod is 0% translated (0 of 111 strings). nl/guestfish-prepopts.pod is 0% translated (0 of 46 strings). nl/guestfish.pod is 0.5% translated (3 of 596 strings). nl/libguestfs-tools.conf.pod is 7.89% translated (3 of 38 strings). nl/virt-copy-in.pod is 13.04% translated (3 of 23 strings). nl/virt-copy-out.pod is 14.28% translated (3 of 21 strings). nl/virt-tar-in.pod is 13.63% translated (3 of 22 strings). nl/virt-tar-out.pod is 13.63% translated (3 of 22 strings). nl/virt-format.pod is 3.79% translated (3 of 79 strings). nl/guestmount.pod is 1.89% translated (3 of 158 strings). nl/guestunmount.pod is 5% translated (3 of 60 strings). nl/virt-get-kernel.pod is 3.89% translated (3 of 77 strings). nl/guestfs-gobject.pod is 15% translated (3 of 20 strings). nl/guestfs-golang.pod is 10.34% translated (3 of 29 strings). nl/virt-inspector.pod is 2.05% translated (3 of 146 strings). nl/guestfs-java.pod is 5.76% translated (3 of 52 strings). nl/guestfs-actions.pod is 0% translated (0 of 5415 strings). nl/guestfs-availability.pod is 0% translated (0 of 77 strings). nl/guestfs-structs.pod is 0% translated (0 of 169 strings). nl/guestfs.pod is 0.91% translated (9 of 986 strings). nl/guestfs-lua.pod is 5.35% translated (3 of 56 strings). nl/virt-make-fs.pod is 3.65% translated (3 of 82 strings). nl/guestfs-ocaml.pod is 8.57% translated (3 of 35 strings). nl/virt-p2v-make-disk.pod is 3.94% translated (3 of 76 strings). nl/virt-p2v-make-kickstart.pod is 2.56% translated (3 of 117 strings). nl/virt-p2v-make-kiwi.pod is 4.34% translated (3 of 69 strings). nl/virt-p2v.pod is 1.14% translated (3 of 262 strings). nl/guestfs-perl.pod is 15.78% translated (3 of 19 strings). nl/guestfs-python.pod is 10% translated (3 of 30 strings). nl/virt-rescue.pod is 1.63% translated (3 of 184 strings). nl/virt-resize.pod is 1.09% translated (3 of 275 strings). nl/guestfs-ruby.pod is 16.66% translated (3 of 18 strings). nl/virt-sparsify.pod is 1.76% translated (3 of 170 strings). nl/virt-sysprep.pod is 1.43% translated (3 of 209 strings). nl/libguestfs-test-tool.pod is 4.16% translated (3 of 72 strings). nl/virt-list-filesystems.pod is 8.57% translated (3 of 35 strings). nl/virt-list-partitions.pod is 7.89% translated (3 of 38 strings). nl/virt-tar.pod is 5.45% translated (3 of 55 strings). nl/virt-win-reg.pod is 2.38% translated (3 of 126 strings). nl/boot-analysis.pod is 7.69% translated (3 of 39 strings). nl/boot-benchmark.pod is 10.34% translated (3 of 29 strings). nl/virt-v2v-test-harness.pod is 3.19% translated (3 of 94 strings). nl/virt-v2v-copy-to-local.pod is 5.45% translated (3 of 55 strings). nl/virt-v2v.pod is 0.41% translated (3 of 715 strings). pt_BR/virt-alignment-scan.pod is 4.61% translated (6 of 130 strings). pt_BR/libguestfs-make-fixed-appliance.pod is 5.55% translated (3 of 54 strings). pt_BR/virt-builder.pod is 0.47% translated (3 of 628 strings). pt_BR/virt-index-validate.pod is 8.57% translated (3 of 35 strings). pt_BR/virt-cat.pod is 2.75% translated (3 of 109 strings). pt_BR/virt-filesystems.pod is 2.02% translated (3 of 148 strings). pt_BR/virt-log.pod is 5% translated (3 of 60 strings). pt_BR/virt-ls.pod is 1.53% translated (3 of 196 strings). pt_BR/virt-tail.pod is 3.22% translated (3 of 93 strings). pt_BR/miniexpect.pod is 2.12% translated (3 of 141 strings). pt_BR/customize-options.pod is 0% translated (0 of 147 strings). pt_BR/customize-synopsis.pod is 100% translated (0 strings). pt_BR/virt-customize.pod is 2.67% translated (3 of 112 strings). pt_BR/guestfsd.pod is 5.45% translated (3 of 55 strings). pt_BR/virt-df.pod is 2.97% translated (3 of 101 strings). pt_BR/virt-dib.pod is 1.28% translated (3 of 233 strings). pt_BR/virt-diff.pod is 2.88% translated (3 of 104 strings). pt_BR/guestfs-building.pod is 0.58% translated (2 of 342 strings). pt_BR/guestfs-faq.pod is 0.22% translated (1 of 440 strings). pt_BR/guestfs-hacking.pod is 0.45% translated (2 of 437 strings). pt_BR/guestfs-internals.pod is 1.94% translated (2 of 103 strings). pt_BR/guestfs-performance.pod is 1.19% translated (2 of 168 strings). pt_BR/guestfs-recipes.pod is 0.83% translated (2 of 239 strings). pt_BR/guestfs-release-notes.pod is 0.04% translated (1 of 2291 strings). pt_BR/guestfs-security.pod is 1.76% translated (2 of 113 strings). pt_BR/guestfs-testing.pod is 1.16% translated (2 of 171 strings). pt_BR/internal-documentation.pod is 0% translated (0 of 1674 strings). pt_BR/virt-edit.pod is 2.05% translated (3 of 146 strings). pt_BR/guestfs-erlang.pod is 7.31% translated (3 of 41 strings). pt_BR/guestfs-examples.pod is 10% translated (3 of 30 strings). pt_BR/guestfish-actions.pod is 0% translated (0 of 3654 strings). pt_BR/guestfish-commands.pod is 0% translated (0 of 111 strings). pt_BR/guestfish-prepopts.pod is 0% translated (0 of 46 strings). pt_BR/guestfish.pod is 0.5% translated (3 of 596 strings). pt_BR/libguestfs-tools.conf.pod is 7.89% translated (3 of 38 strings). pt_BR/virt-copy-in.pod is 13.04% translated (3 of 23 strings). pt_BR/virt-copy-out.pod is 14.28% translated (3 of 21 strings). pt_BR/virt-tar-in.pod is 13.63% translated (3 of 22 strings). pt_BR/virt-tar-out.pod is 13.63% translated (3 of 22 strings). pt_BR/virt-format.pod is 3.79% translated (3 of 79 strings). pt_BR/guestmount.pod is 1.89% translated (3 of 158 strings). pt_BR/guestunmount.pod is 5% translated (3 of 60 strings). pt_BR/virt-get-kernel.pod is 3.89% translated (3 of 77 strings). pt_BR/guestfs-gobject.pod is 15% translated (3 of 20 strings). pt_BR/guestfs-golang.pod is 10.34% translated (3 of 29 strings). pt_BR/virt-inspector.pod is 2.05% translated (3 of 146 strings). pt_BR/guestfs-java.pod is 5.76% translated (3 of 52 strings). pt_BR/guestfs-actions.pod is 0% translated (0 of 5415 strings). pt_BR/guestfs-availability.pod is 0% translated (0 of 77 strings). pt_BR/guestfs-structs.pod is 0% translated (0 of 169 strings). pt_BR/guestfs.pod is 0.3% translated (3 of 986 strings). pt_BR/guestfs-lua.pod is 5.35% translated (3 of 56 strings). pt_BR/virt-make-fs.pod is 3.65% translated (3 of 82 strings). pt_BR/guestfs-ocaml.pod is 8.57% translated (3 of 35 strings). pt_BR/virt-p2v-make-disk.pod is 3.94% translated (3 of 76 strings). pt_BR/virt-p2v-make-kickstart.pod is 2.56% translated (3 of 117 strings). pt_BR/virt-p2v-make-kiwi.pod is 4.34% translated (3 of 69 strings). pt_BR/virt-p2v.pod is 1.14% translated (3 of 262 strings). pt_BR/guestfs-perl.pod is 15.78% translated (3 of 19 strings). pt_BR/guestfs-python.pod is 10% translated (3 of 30 strings). pt_BR/virt-rescue.pod is 1.63% translated (3 of 184 strings). pt_BR/virt-resize.pod is 1.09% translated (3 of 275 strings). pt_BR/guestfs-ruby.pod is 16.66% translated (3 of 18 strings). pt_BR/virt-sparsify.pod is 1.76% translated (3 of 170 strings). pt_BR/virt-sysprep.pod is 1.43% translated (3 of 209 strings). pt_BR/libguestfs-test-tool.pod is 4.16% translated (3 of 72 strings). pt_BR/virt-list-filesystems.pod is 8.57% translated (3 of 35 strings). pt_BR/virt-list-partitions.pod is 7.89% translated (3 of 38 strings). pt_BR/virt-tar.pod is 5.45% translated (3 of 55 strings). pt_BR/virt-win-reg.pod is 2.38% translated (3 of 126 strings). pt_BR/boot-analysis.pod is 7.69% translated (3 of 39 strings). pt_BR/boot-benchmark.pod is 10.34% translated (3 of 29 strings). pt_BR/virt-v2v-test-harness.pod is 3.19% translated (3 of 94 strings). pt_BR/virt-v2v-copy-to-local.pod is 5.45% translated (3 of 55 strings). pt_BR/virt-v2v.pod is 0.41% translated (3 of 715 strings). tg/virt-alignment-scan.pod is 11.53% translated (15 of 130 strings). tg/libguestfs-make-fixed-appliance.pod is 16.66% translated (9 of 54 strings). tg/virt-builder.pod is 4.77% translated (30 of 628 strings). tg/virt-index-validate.pod is 22.85% translated (8 of 35 strings). tg/virt-cat.pod is 11.92% translated (13 of 109 strings). tg/virt-filesystems.pod is 4.72% translated (7 of 148 strings). tg/virt-log.pod is 11.66% translated (7 of 60 strings). tg/virt-ls.pod is 7.14% translated (14 of 196 strings). tg/virt-tail.pod is 16.12% translated (15 of 93 strings). tg/miniexpect.pod is 10.63% translated (15 of 141 strings). tg/customize-options.pod is 2.72% translated (4 of 147 strings). tg/customize-synopsis.pod is 100% translated (0 strings). tg/virt-customize.pod is 8.92% translated (10 of 112 strings). tg/guestfsd.pod is 9.09% translated (5 of 55 strings). tg/virt-df.pod is 5.94% translated (6 of 101 strings). tg/virt-dib.pod is 2.57% translated (6 of 233 strings). tg/virt-diff.pod is 5.76% translated (6 of 104 strings). tg/guestfs-building.pod is 3.21% translated (11 of 342 strings). tg/guestfs-faq.pod is 6.59% translated (29 of 440 strings). tg/guestfs-hacking.pod is 8.69% translated (38 of 437 strings). tg/guestfs-internals.pod is 2.91% translated (3 of 103 strings). tg/guestfs-performance.pod is 10.71% translated (18 of 168 strings). tg/guestfs-recipes.pod is 8.36% translated (20 of 239 strings). tg/guestfs-release-notes.pod is 2.31% translated (53 of 2291 strings). tg/guestfs-security.pod is 11.5% translated (13 of 113 strings). tg/guestfs-testing.pod is 9.94% translated (17 of 171 strings). tg/internal-documentation.pod is 2.62% translated (44 of 1674 strings). tg/virt-edit.pod is 8.9% translated (13 of 146 strings). tg/guestfs-erlang.pod is 7.31% translated (3 of 41 strings). tg/guestfs-examples.pod is 10% translated (3 of 30 strings). tg/guestfish-actions.pod is 1.45% translated (53 of 3654 strings). tg/guestfish-commands.pod is 7.2% translated (8 of 111 strings). tg/guestfish-prepopts.pod is 4.34% translated (2 of 46 strings). tg/guestfish.pod is 4.69% translated (28 of 596 strings). tg/libguestfs-tools.conf.pod is 26.31% translated (10 of 38 strings). tg/virt-copy-in.pod is 21.73% translated (5 of 23 strings). tg/virt-copy-out.pod is 23.8% translated (5 of 21 strings). tg/virt-tar-in.pod is 22.72% translated (5 of 22 strings). tg/virt-tar-out.pod is 22.72% translated (5 of 22 strings). tg/virt-format.pod is 7.59% translated (6 of 79 strings). tg/guestmount.pod is 5.06% translated (8 of 158 strings). tg/guestunmount.pod is 6.66% translated (4 of 60 strings). tg/virt-get-kernel.pod is 6.49% translated (5 of 77 strings). tg/guestfs-gobject.pod is 15% translated (3 of 20 strings). tg/guestfs-golang.pod is 20.68% translated (6 of 29 strings). tg/virt-inspector.pod is 6.16% translated (9 of 146 strings). tg/guestfs-java.pod is 7.69% translated (4 of 52 strings). tg/guestfs-actions.pod is 0.75% translated (41 of 5415 strings). tg/guestfs-availability.pod is 2.59% translated (2 of 77 strings). tg/guestfs-structs.pod is 1.18% translated (2 of 169 strings). tg/guestfs.pod is 6.89% translated (68 of 986 strings). tg/guestfs-lua.pod is 8.92% translated (5 of 56 strings). tg/virt-make-fs.pod is 8.53% translated (7 of 82 strings). tg/guestfs-ocaml.pod is 11.42% translated (4 of 35 strings). tg/virt-p2v-make-disk.pod is 7.89% translated (6 of 76 strings). tg/virt-p2v-make-kickstart.pod is 12.82% translated (15 of 117 strings). tg/virt-p2v-make-kiwi.pod is 7.24% translated (5 of 69 strings). tg/virt-p2v.pod is 3.81% translated (10 of 262 strings). tg/guestfs-perl.pod is 21.05% translated (4 of 19 strings). tg/guestfs-python.pod is 16.66% translated (5 of 30 strings). tg/virt-rescue.pod is 7.06% translated (13 of 184 strings). tg/virt-resize.pod is 8.36% translated (23 of 275 strings). tg/guestfs-ruby.pod is 22.22% translated (4 of 18 strings). tg/virt-sparsify.pod is 12.35% translated (21 of 170 strings). tg/virt-sysprep.pod is 11.96% translated (25 of 209 strings). tg/libguestfs-test-tool.pod is 8.33% translated (6 of 72 strings). tg/virt-list-filesystems.pod is 11.42% translated (4 of 35 strings). tg/virt-list-partitions.pod is 13.15% translated (5 of 38 strings). tg/virt-tar.pod is 14.54% translated (8 of 55 strings). tg/virt-win-reg.pod is 11.11% translated (14 of 126 strings). tg/boot-analysis.pod is 10.25% translated (4 of 39 strings). tg/boot-benchmark.pod is 13.79% translated (4 of 29 strings). tg/virt-v2v-test-harness.pod is 7.44% translated (7 of 94 strings). tg/virt-v2v-copy-to-local.pod is 12.72% translated (7 of 55 strings). tg/virt-v2v.pod is 5.45% translated (39 of 715 strings). uk/virt-alignment-scan.pod is 99.23% translated (129 of 130 strings). uk/libguestfs-make-fixed-appliance.pod is 75.92% translated (41 of 54 strings). uk/virt-builder.pod is 55.89% translated (351 of 628 strings). uk/virt-index-validate.pod is 74.28% translated (26 of 35 strings). uk/virt-cat.pod is 76.14% translated (83 of 109 strings). uk/virt-filesystems.pod is 70.27% translated (104 of 148 strings). uk/virt-log.pod is 81.66% translated (49 of 60 strings). uk/virt-ls.pod is 68.87% translated (135 of 196 strings). uk/virt-tail.pod is 62.36% translated (58 of 93 strings). uk/miniexpect.pod is 14.18% translated (20 of 141 strings). uk/customize-options.pod is 44.89% translated (66 of 147 strings). uk/customize-synopsis.pod is 100% translated (0 strings). uk/virt-customize.pod is 69.64% translated (78 of 112 strings). uk/guestfsd.pod is 63.63% translated (35 of 55 strings). uk/virt-df.pod is 78.21% translated (79 of 101 strings). uk/virt-dib.pod is 51.07% translated (119 of 233 strings). uk/virt-diff.pod is 75% translated (78 of 104 strings). uk/guestfs-building.pod is 55.55% translated (190 of 342 strings). uk/guestfs-faq.pod is 42.95% translated (189 of 440 strings). uk/guestfs-hacking.pod is 41.41% translated (181 of 437 strings). uk/guestfs-internals.pod is 20.38% translated (21 of 103 strings). uk/guestfs-performance.pod is 29.76% translated (50 of 168 strings). uk/guestfs-recipes.pod is 36.4% translated (87 of 239 strings). uk/guestfs-release-notes.pod is 36.22% translated (830 of 2291 strings). uk/guestfs-security.pod is 37.16% translated (42 of 113 strings). uk/guestfs-testing.pod is 50.87% translated (87 of 171 strings). uk/internal-documentation.pod is 31.18% translated (522 of 1674 strings). uk/virt-edit.pod is 67.12% translated (98 of 146 strings). uk/guestfs-erlang.pod is 70.73% translated (29 of 41 strings). uk/guestfs-examples.pod is 50% translated (15 of 30 strings). uk/guestfish-actions.pod is 44.14% translated (1613 of 3654 strings). uk/guestfish-commands.pod is 40.54% translated (45 of 111 strings). uk/guestfish-prepopts.pod is 26.08% translated (12 of 46 strings). uk/guestfish.pod is 45.3% translated (270 of 596 strings). uk/libguestfs-tools.conf.pod is 65.78% translated (25 of 38 strings). uk/virt-copy-in.pod is 43.47% translated (10 of 23 strings). uk/virt-copy-out.pod is 47.61% translated (10 of 21 strings). uk/virt-tar-in.pod is 45.45% translated (10 of 22 strings). uk/virt-tar-out.pod is 45.45% translated (10 of 22 strings). uk/virt-format.pod is 62.02% translated (49 of 79 strings). uk/guestmount.pod is 43.67% translated (69 of 158 strings). uk/guestunmount.pod is 55% translated (33 of 60 strings). uk/virt-get-kernel.pod is 67.53% translated (52 of 77 strings). uk/guestfs-gobject.pod is 35% translated (7 of 20 strings). uk/guestfs-golang.pod is 62.06% translated (18 of 29 strings). uk/virt-inspector.pod is 53.42% translated (78 of 146 strings). uk/guestfs-java.pod is 55.76% translated (29 of 52 strings). uk/guestfs-actions.pod is 60.03% translated (3251 of 5415 strings). uk/guestfs-availability.pod is 90.9% translated (70 of 77 strings). uk/guestfs-structs.pod is 94.67% translated (160 of 169 strings). uk/guestfs.pod is 36.61% translated (361 of 986 strings). uk/guestfs-lua.pod is 57.14% translated (32 of 56 strings). uk/virt-make-fs.pod is 58.53% translated (48 of 82 strings). uk/guestfs-ocaml.pod is 62.85% translated (22 of 35 strings). uk/virt-p2v-make-disk.pod is 51.31% translated (39 of 76 strings). uk/virt-p2v-make-kickstart.pod is 45.29% translated (53 of 117 strings). uk/virt-p2v-make-kiwi.pod is 43.47% translated (30 of 69 strings). uk/virt-p2v.pod is 35.11% translated (92 of 262 strings). uk/guestfs-perl.pod is 84.21% translated (16 of 19 strings). uk/guestfs-python.pod is 60% translated (18 of 30 strings). uk/virt-rescue.pod is 49.45% translated (91 of 184 strings). uk/virt-resize.pod is 42.9% translated (118 of 275 strings). uk/guestfs-ruby.pod is 77.77% translated (14 of 18 strings). uk/virt-sparsify.pod is 50.58% translated (86 of 170 strings). uk/virt-sysprep.pod is 50.71% translated (106 of 209 strings). uk/libguestfs-test-tool.pod is 45.83% translated (33 of 72 strings). uk/virt-list-filesystems.pod is 74.28% translated (26 of 35 strings). uk/virt-list-partitions.pod is 71.05% translated (27 of 38 strings). uk/virt-tar.pod is 60% translated (33 of 55 strings). uk/virt-win-reg.pod is 50% translated (63 of 126 strings). uk/boot-analysis.pod is 46.15% translated (18 of 39 strings). uk/boot-benchmark.pod is 48.27% translated (14 of 29 strings). uk/virt-v2v-test-harness.pod is 35.1% translated (33 of 94 strings). uk/virt-v2v-copy-to-local.pod is 54.54% translated (30 of 55 strings). uk/virt-v2v.pod is 35.8% translated (256 of 715 strings). zh_CN/virt-alignment-scan.pod is 1.53% translated (2 of 130 strings). zh_CN/libguestfs-make-fixed-appliance.pod is 3.7% translated (2 of 54 strings). zh_CN/virt-builder.pod is 0.31% translated (2 of 628 strings). zh_CN/virt-index-validate.pod is 5.71% translated (2 of 35 strings). zh_CN/virt-cat.pod is 1.83% translated (2 of 109 strings). zh_CN/virt-filesystems.pod is 1.35% translated (2 of 148 strings). zh_CN/virt-log.pod is 3.33% translated (2 of 60 strings). zh_CN/virt-ls.pod is 1.02% translated (2 of 196 strings). zh_CN/virt-tail.pod is 2.15% translated (2 of 93 strings). zh_CN/miniexpect.pod is 1.41% translated (2 of 141 strings). zh_CN/customize-options.pod is 0% translated (0 of 147 strings). zh_CN/customize-synopsis.pod is 100% translated (0 strings). zh_CN/virt-customize.pod is 1.78% translated (2 of 112 strings). zh_CN/guestfsd.pod is 3.63% translated (2 of 55 strings). zh_CN/virt-df.pod is 1.98% translated (2 of 101 strings). zh_CN/virt-dib.pod is 0.85% translated (2 of 233 strings). zh_CN/virt-diff.pod is 1.92% translated (2 of 104 strings). zh_CN/guestfs-building.pod is 0.58% translated (2 of 342 strings). zh_CN/guestfs-faq.pod is 0.22% translated (1 of 440 strings). zh_CN/guestfs-hacking.pod is 0.45% translated (2 of 437 strings). zh_CN/guestfs-internals.pod is 1.94% translated (2 of 103 strings). zh_CN/guestfs-performance.pod is 1.19% translated (2 of 168 strings). zh_CN/guestfs-recipes.pod is 0.83% translated (2 of 239 strings). zh_CN/guestfs-release-notes.pod is 0.04% translated (1 of 2291 strings). zh_CN/guestfs-security.pod is 1.76% translated (2 of 113 strings). zh_CN/guestfs-testing.pod is 1.16% translated (2 of 171 strings). zh_CN/internal-documentation.pod is 0% translated (0 of 1674 strings). zh_CN/virt-edit.pod is 1.36% translated (2 of 146 strings). zh_CN/guestfs-erlang.pod is 4.87% translated (2 of 41 strings). zh_CN/guestfs-examples.pod is 13.33% translated (4 of 30 strings). zh_CN/guestfish-actions.pod is 0% translated (0 of 3654 strings). zh_CN/guestfish-commands.pod is 0% translated (0 of 111 strings). zh_CN/guestfish-prepopts.pod is 0% translated (0 of 46 strings). zh_CN/guestfish.pod is 0.33% translated (2 of 596 strings). zh_CN/libguestfs-tools.conf.pod is 5.26% translated (2 of 38 strings). zh_CN/virt-copy-in.pod is 8.69% translated (2 of 23 strings). zh_CN/virt-copy-out.pod is 9.52% translated (2 of 21 strings). zh_CN/virt-tar-in.pod is 9.09% translated (2 of 22 strings). zh_CN/virt-tar-out.pod is 9.09% translated (2 of 22 strings). zh_CN/virt-format.pod is 2.53% translated (2 of 79 strings). zh_CN/guestmount.pod is 1.26% translated (2 of 158 strings). zh_CN/guestunmount.pod is 3.33% translated (2 of 60 strings). zh_CN/virt-get-kernel.pod is 2.59% translated (2 of 77 strings). zh_CN/guestfs-gobject.pod is 10% translated (2 of 20 strings). zh_CN/guestfs-golang.pod is 6.89% translated (2 of 29 strings). zh_CN/virt-inspector.pod is 1.36% translated (2 of 146 strings). zh_CN/guestfs-java.pod is 3.84% translated (2 of 52 strings). zh_CN/guestfs-actions.pod is 0% translated (0 of 5415 strings). zh_CN/guestfs-availability.pod is 0% translated (0 of 77 strings). zh_CN/guestfs-structs.pod is 0% translated (0 of 169 strings). zh_CN/guestfs.pod is 2.02% translated (20 of 986 strings). zh_CN/guestfs-lua.pod is 3.57% translated (2 of 56 strings). zh_CN/virt-make-fs.pod is 2.43% translated (2 of 82 strings). zh_CN/guestfs-ocaml.pod is 5.71% translated (2 of 35 strings). zh_CN/virt-p2v-make-disk.pod is 2.63% translated (2 of 76 strings). zh_CN/virt-p2v-make-kickstart.pod is 1.7% translated (2 of 117 strings). zh_CN/virt-p2v-make-kiwi.pod is 2.89% translated (2 of 69 strings). zh_CN/virt-p2v.pod is 0.76% translated (2 of 262 strings). zh_CN/guestfs-perl.pod is 10.52% translated (2 of 19 strings). zh_CN/guestfs-python.pod is 6.66% translated (2 of 30 strings). zh_CN/virt-rescue.pod is 1.08% translated (2 of 184 strings). zh_CN/virt-resize.pod is 0.72% translated (2 of 275 strings). zh_CN/guestfs-ruby.pod is 11.11% translated (2 of 18 strings). zh_CN/virt-sparsify.pod is 1.17% translated (2 of 170 strings). zh_CN/virt-sysprep.pod is 0.95% translated (2 of 209 strings). zh_CN/libguestfs-test-tool.pod is 2.77% translated (2 of 72 strings). zh_CN/virt-list-filesystems.pod is 5.71% translated (2 of 35 strings). zh_CN/virt-list-partitions.pod is 5.26% translated (2 of 38 strings). zh_CN/virt-tar.pod is 3.63% translated (2 of 55 strings). zh_CN/virt-win-reg.pod is 1.58% translated (2 of 126 strings). zh_CN/boot-analysis.pod is 5.12% translated (2 of 39 strings). zh_CN/boot-benchmark.pod is 6.89% translated (2 of 29 strings). zh_CN/virt-v2v-test-harness.pod is 2.12% translated (2 of 94 strings). zh_CN/virt-v2v-copy-to-local.pod is 3.63% translated (2 of 55 strings). zh_CN/virt-v2v.pod is 0.27% translated (2 of 715 strings). for f in `cd .; find ja uk -name '*.pod'`; do \ /usr/bin/sed '0,/^=encoding/d' < $f > $f.new; \ mv $f.new $f; \ done make: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/po-docs' make all-recursive make[1]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs' Making all in common/mlstdutils make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/mlstdutils' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/mlstdutils' Making all in generator make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/generator' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/generator' Making all in tests/qemu make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/tests/qemu' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/tests/qemu' Making all in test-data make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/test-data' Making all in binaries make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/binaries' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/binaries' Making all in blank-disks make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/blank-disks' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/blank-disks' Making all in phony-guests make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/phony-guests' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/phony-guests' Making all in fake-virtio-win make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/fake-virtio-win' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/fake-virtio-win' Making all in fake-virt-tools make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/fake-virt-tools' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/fake-virt-tools' Making all in files make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/files' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/test-data/files' Making all in . make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/test-data' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/test-data' make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/test-data' Making all in gnulib/lib make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/lib' make all-recursive make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/lib' make[4]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/lib' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/lib' make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/lib' make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/lib' Making all in gnulib/tests make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/tests' make all-recursive make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/tests' Making all in . make[4]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/tests' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/tests' make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/tests' make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/gnulib/tests' Making all in common/errnostring make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/errnostring' make all-am make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/errnostring' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/errnostring' make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/errnostring' Making all in common/protocol make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/protocol' make all-am make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/protocol' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/protocol' make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/protocol' Making all in common/qemuopts make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/qemuopts' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/qemuopts' Making all in common/utils make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/utils' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/utils' Making all in common/structs make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/structs' make all-am make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/structs' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/structs' make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/structs' Making all in lib make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/lib' make all-am make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/lib' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/lib' make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/lib' Making all in docs make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/docs' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/docs' Making all in examples make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/examples' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/examples' Making all in po make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/po' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/po' Making all in common/mlutils make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/common/mlutils' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/common/mlutils' Making all in daemon make[2]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/daemon' make all-am make[3]: Entering directory '/var/tmp/tmpftZEFZ/libguestfs/daemon' OCAMLOPT utils.cmx OCAMLOPT sysroot.cmx OCAMLOPT mountable.cmx OCAMLCMI blkid.cmi OCAMLOPT /var/tmp/tmpftZEFZ/libguestfs/common/mlpcre/PCRE.cmx OCAMLCMI ldm.cmi File "/var/tmp/tmpftZEFZ/libguestfs/common/mlpcre/PCRE.ml", line 1: Error: Could not find the .cmi file for interface /var/tmp/tmpftZEFZ/libguestfs/common/mlpcre/PCRE.mli. make[3]: *** [Makefile:4671: /var/tmp/tmpftZEFZ/libguestfs/common/mlpcre/PCRE.cmx] Error 2 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/daemon' make[2]: *** [Makefile:2280: all] Error 2 make[2]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs/daemon' make[1]: *** [Makefile:1976: all-recursive] Error 1 make[1]: Leaving directory '/var/tmp/tmpftZEFZ/libguestfs' make: *** [Makefile:1885: all] Error 2
Richard Jones
2017-Aug-01 16:32 UTC
[Libguestfs] check-release FAILED (was: Re: [PATCH v2 3/3] daemon: Restore PCRE regular expressions in OCaml code.)
nslated (11 of 94 strings). en_GB/virt-v2v-copy-to-local.pod is 40% translated (22 of 55 strings). en_GB/virt-v2v.pod is 10.06% translated (72 of 715 strings). es/virt-alignment-scan.pod is 6.15% translated (8 of 130 strings). es/libguestfs-make-fixed-appliance.pod is 16.66% translated (9 of 54 strings). es/virt-builder.pod is 3.98% translated (25 of 628 strings). es/virt-index-validate.pod is 22.85% translated (8 of 35 strings). es/virt-cat.pod is 8.25% translated (9 of 109 strings). es/virt-filesystems.pod is 4.05% translated (6 of 148 strings). es/virt-log.pod is 6.66% translated (4 of 60 strings). es/virt-ls.pod is 2.04% translated (4 of 196 strings). es/virt-tail.pod is 12.9% translated (12 of 93 strings). es/miniexpect.pod is 9.21% translated (13 of 141 strings). es/customize-options.pod is 1.36% translated (2 of 147 strings). es/customize-synopsis.pod is 100% translated (0 strings). es/virt-customize.pod is 8.03% translated (9 of 112 strings). es/guestfsd.pod is 7.27% translated (4 of 55 strings). es/virt-df.pod is 3.96% translated (4 of 101 strings). es/virt-dib.pod is 1.71% translated (4 of 233 strings). es/virt-diff.pod is 3.84% translated (4 of 104 strings). es/guestfs-building.pod is 2.63% translated (9 of 342 strings). es/guestfs-faq.pod is 5% translated (22 of 440 strings). es/guestfs-hacking.pod is 8% translated (35 of 437 strings). es/guestfs-internals.pod is 3.88% translated (4 of 103 strings). es/guestfs-performance.pod is 13.09% translated (22 of 168 strings). es/guestfs-recipes.pod is 7.11% translated (17 of 239 strings). es/guestfs-release-notes.pod is 1.35% translated (31 of 2291 strings). es/guestfs-security.pod is 11.5% translated (13 of 113 strings). es/guestfs-testing.pod is 5.84% translated (10 of 171 strings). es/internal-documentation.pod is 2.27% translated (38 of 1674 strings). es/virt-edit.pod is 6.16% translated (9 of 146 strings). es/guestfs-erlang.pod is 24.39% translated (10 of 41 strings). es/guestfs-examples.pod is 20% translated (6 of 30 strings). es/guestfish-actions.pod is 2.35% translated (86 of 3654 strings). es/guestfish-commands.pod is 1.8% translated (2 of 111 strings). es/guestfish-prepopts.pod is 0% translated (0 of 46 strings). es/guestfish.pod is 2.34% translated (14 of 596 strings). es/libguestfs-tools.conf.pod is 28.94% translated (11 of 38 strings). es/virt-copy-in.pod is 17.39% translated (4 of 23 strings). es/virt-copy-out.pod is 19.04% translated (4 of 21 strings). es/virt-tar-in.pod is 18.18% translated (4 of 22 strings). es/virt-tar-out.pod is 18.18% translated (4 of 22 strings). es/virt-format.pod is 5.06% translated (4 of 79 strings). es/guestmount.pod is 2.53% translated (4 of 158 strings). es/guestunmount.pod is 6.66% translated (4 of 60 strings). es/virt-get-kernel.pod is 5.19% translated (4 of 77 strings). es/guestfs-gobject.pod is 20% translated (4 of 20 strings). es/guestfs-golang.pod is 20.68% translated (6 of 29 strings). es/virt-inspector.pod is 4.1% translated (6 of 146 strings). es/guestfs-java.pod is 7.69% translated (4 of 52 strings). es/guestfs-actions.pod is 2.4% translated (130 of 5415 strings). es/guestfs-availability.pod is 0% translated (0 of 77 strings). es/guestfs-structs.pod is 4.73% translated (8 of 169 strings). es/guestfs.pod is 13.38% translated (132 of 986 strings). es/guestfs-lua.pod is 7.14% translated (4 of 56 strings). es/virt-make-fs.pod is 6.09% translated (5 of 82 strings). es/guestfs-ocaml.pod is 11.42% translated (4 of 35 strings). es/virt-p2v-make-disk.pod is 5.26% translated (4 of 76 strings). es/virt-p2v-make-kickstart.pod is 11.96% translated (14 of 117 strings). es/virt-p2v-make-kiwi.pod is 5.79% translated (4 of 69 strings). es/virt-p2v.pod is 2.67% translated (7 of 262 strings). es/guestfs-perl.pod is 21.05% translated (4 of 19 strings). es/guestfs-python.pod is 13.33% translated (4 of 30 strings). es/virt-rescue.pod is 3.8% translated (7 of 184 strings). es/virt-resize.pod is 9.81% translated (27 of 275 strings). es/guestfs-ruby.pod is 22.22% translated (4 of 18 strings). es/virt-sparsify.pod is 18.82% translated (32 of 170 strings). es/virt-sysprep.pod is 9.56% translated (20 of 209 strings). es/libguestfs-test-tool.pod is 12.5% translated (9 of 72 strings). es/virt-list-filesystems.pod is 11.42% translated (4 of 35 strings). es/virt-list-partitions.pod is 10.52% translated (4 of 38 strings). es/virt-tar.pod is 7.27% translated (4 of 55 strings). es/virt-win-reg.pod is 9.52% translated (12 of 126 strings). es/boot-analysis.pod is 10.25% translated (4 of 39 strings). es/boot-benchmark.pod is 13.79% translated (4 of 29 strings). es/virt-v2v-test-harness.pod is 7.44% translated (7 of 94 strings). es/virt-v2v-copy-to-local.pod is 10.9% translated (6 of 55 strings). es/virt-v2v.pod is 5.03% translated (36 of 715 strings). eu/virt-alignment-scan.pod is 6.15% translated (8 of 130 strings). eu/libguestfs-make-fixed-appliance.pod is 18.51% translated (10 of 54 strings). eu/virt-builder.pod is 4.29% translated (27 of 628 strings). eu/virt-index-validate.pod is 20% translated (7 of 35 strings). eu/virt-cat.pod is 8.25% translated (9 of 109 strings). eu/virt-filesystems.pod is 2.7% translated (4 of 148 strings). eu/virt-log.pod is 6.66% translated (4 of 60 strings). eu/virt-ls.pod is 2.04% translated (4 of 196 strings). eu/virt-tail.pod is 12.9% translated (12 of 93 strings). eu/miniexpect.pod is 12.05% translated (17 of 141 strings). eu/customize-options.pod is 1.36% translated (2 of 147 strings). eu/customize-synopsis.pod is 100% translated (0 strings). eu/virt-customize.pod is 7.14% translated (8 of 112 strings). eu/guestfsd.pod is 5.45% translated (3 of 55 strings). eu/virt-df.pod is 3.96% translated (4 of 101 strings). eu/virt-dib.pod is 1.28% translated (3 of 233 strings). eu/virt-diff.pod is 3.84% translated (4 of 104 strings). eu/guestfs-building.pod is 3.8% translated (13 of 342 strings). eu/guestfs-faq.pod is 6.13% translated (27 of 440 strings). eu/guestfs-hacking.pod is 9.15% translated (40 of 437 strings). eu/guestfs-internals.pod is 6.79% translated (7 of 103 strings). eu/guestfs-performance.pod is 11.3% translated (19 of 168 strings). eu/guestfs-recipes.pod is 7.94% translated (19 of 239 strings). eu/guestfs-release-notes.pod is 1.35% translated (31 of 2291 strings). eu/guestfs-security.pod is 14.15% translated (16 of 113 strings). eu/guestfs-testing.pod is 9.94% translated (17 of 171 strings). eu/internal-documentation.pod is 2.21% translated (37 of 1674 strings). eu/virt-edit.pod is 6.16% translated (9 of 146 strings). eu/guestfs-erlang.pod is 12.19% translated (5 of 41 strings). eu/guestfs-examples.pod is 16.66% translated (5 of 30 strings). eu/guestfish-actions.pod is 2.32% translated (85 of 3654 strings). eu/guestfish-commands.pod is 0% translated (0 of 111 strings). eu/guestfish-prepopts.pod is 0% translated (0 of 46 strings). eu/guestfish.pod is 2.51% translated (15 of 596 strings). eu/libguestfs-tools.conf.pod is 31.57% translated (12 of 38 strings). eu/virt-copy-in.pod is 21.73% translated (5 of 23 strings). eu/virt-copy-out.pod is 23.8% translated (5 of 21 strings). eu/virt-tar-in.pod is 22.72% translated (5 of 22 strings). eu/virt-tar-out.pod is 22.72% translated (5 of 22 strings). eu/virt-format.pod is 5.06% translated (4 of 79 strings). eu/guestmount.pod is 3.16% translated (5 of 158 strings). eu/guestunmount.pod is 8.33% translated (5 of 60 strings). eu/virt-get-kernel.pod is 3.89% translated (3 of 77 strings). eu/guestfs-gobject.pod is 25% translated (5 of 20 strings). eu/guestfs-golang.pod is 24.13% translated (7 of 29 strings). eu/virt-inspector.pod is 4.79% translated (7 of 146 strings). eu/guestfs-java.pod is 9.61% translated (5 of 52 strings). eu/guestfs-actions.pod is 1.56% translated (85 of 5415 strings). eu/guestfs-availability.pod is 0% translated (0 of 77 strings). eu/guestfs-structs.pod is 0% translated (0 of 169 strings). eu/guestfs.pod is 6.99% translated (69 of 986 strings). eu/guestfs-lua.pod is 10.71% translated (6 of 56 strings). eu/virt-make-fs.pod is 3.65% translated (3 of 82 strings). eu/guestfs-ocaml.pod is 14.28% translated (5 of 35 strings). eu/virt-p2v-make-disk.pod is 5.26% translated (4 of 76 strings). eu/virt-p2v-make-kickstart.pod is 11.96% translated (14 of 117 strings). eu/virt-p2v-make-kiwi.pod is 5.79% translated (4 of 69 strings). eu/virt-p2v.pod is 2.29% translated (6 of 262 strings). eu/guestfs-perl.pod is 26.31% translated (5 of 19 strings). eu/guestfs-python.pod is 16.66% translated (5 of 30 strings). eu/virt-rescue.pod is 3.26% translated (6 of 184 strings). eu/virt-resize.pod is 5.45% translated (15 of 275 strings). eu/guestfs-ruby.pod is 27.77% translated (5 of 18 strings). eu/virt-sparsify.pod is 10.58% translated (18 of 170 strings). eu/virt-sysprep.pod is 10.52% translated (22 of 209 strings). eu/libguestfs-test-tool.pod is 6.94% translated (5 of 72 strings). eu/virt-list-filesystems.pod is 8.57% translated (3 of 35 strings). eu/virt-list-partitions.pod is 7.89% translated (3 of 38 strings). eu/virt-tar.pod is 5.45% translated (3 of 55 strings). eu/virt-win-reg.pod is 7.93% translated (10 of 126 strings). eu/boot-analysis.pod is 7.69% translated (3 of 39 strings). eu/boot-benchmark.pod is 10.34% translated (3 of 29 strings). eu/virt-v2v-test-harness.pod is 7.44% translated (7 of 94 strings). eu/virt-v2v-copy-to-local.pod is 10.9% translated (6 of 55 strings). eu/virt-v2v.pod is 4.47% translated (32 of 715 strings). fr/virt-alignment-scan.pod is 12.3% translated (16 of 130 strings). fr/libguestfs-make-fixed-appliance.pod is 18.51% translated (10 of 54 strings). fr/virt-builder.pod is 8.59% translated (54 of 628 strings). fr/virt-index-validate.pod is 8.57% translated (3 of 35 strings). fr/virt-cat.pod is 16.51% translated (18 of 109 strings). fr/virt-filesystems.pod is 10.13% translated (15 of 148 strings). fr/virt-log.pod is 5% translated (3 of 60 strings). fr/virt-ls.pod is 13.77% translated (27 of 196 strings). fr/virt-tail.pod is 4.3% translated (4 of 93 strings). fr/miniexpect.pod is 3.54% translated (5 of 141 strings). fr/customize-options.pod is 0% translated (0 of 147 strings). fr/customize-synopsis.pod is 100% translated (0 strings). fr/virt-customize.pod is 7.14% translated (8 of 112 strings). fr/guestfsd.pod is 7.27% translated (4 of 55 strings). fr/virt-df.pod is 16.83% translated (17 of 101 strings). fr/virt-dib.pod is 1.28% translated (3 of 233 strings). fr/virt-diff.pod is 4.8% translated (5 of 104 strings). fr/guestfs-building.pod is 1.46% translated (5 of 342 strings). fr/guestfs-faq.pod is 10.9% translated (48 of 440 strings). fr/guestfs-hacking.pod is 7.32% translated (32 of 437 strings). fr/guestfs-internals.pod is 11.65% translated (12 of 103 strings). fr/guestfs-performance.pod is 19.04% translated (32 of 168 strings). fr/guestfs-recipes.pod is 19.24% translated (46 of 239 strings). fr/guestfs-release-notes.pod is 15.23% translated (349 of 2291 strings). fr/guestfs-security.pod is 4.42% translated (5 of 113 strings). fr/guestfs-testing.pod is 26.31% translated (45 of 171 strings). fr/internal-documentation.pod is 0.83% translated (14 of 1674 strings). fr/virt-edit.pod is 19.86% translated (29 of 146 strings). fr/guestfs-erlang.pod is 29.26% translated (12 of 41 strings). fr/guestfs-examples.pod is 20% translated (6 of 30 strings). fr/guestfish-actions.pod is 22.05% translated (806 of 3654 strings). fr/guestfish-commands.pod is 38.73% translated (43 of 111 strings). fr/guestfish-prepopts.pod is 15.21% translated (7 of 46 strings). fr/guestfish.pod is 19.29% translated (115 of 596 strings). fr/libguestfs-tools.conf.pod is 7.89% translated (3 of 38 strings). fr/virt-copy-in.pod is 30.43% translated (7 of 23 strings). fr/virt-copy-out.pod is 28.57% translated (6 of 21 strings). fr/virt-tar-in.pod is 31.81% translated (7 of 22 strings). fr/virt-tar-out.pod is 31.81% translated (7 of 22 strings). fr/virt-format.pod is 10.12% translated (8 of 79 strings). fr/guestmount.pod is 16.45% translated (26 of 158 strings). fr/guestunmount.pod is 21.66% translated (13 of 60 strings). fr/virt-get-kernel.pod is 3.89% translated (3 of 77 strings). fr/guestfs-gobject.pod is 15% translated (3 of 20 strings). fr/guestfs-golang.pod is 17.24% translated (5 of 29 strings). fr/virt-inspector.pod is 17.8% translated (26 of 146 strings). fr/guestfs-java.pod is 13.46% translated (7 of 52 strings). fr/guestfs-actions.pod is 14.33% translated (776 of 5415 strings). fr/guestfs-availability.pod is 0% translated (0 of 77 strings). fr/guestfs-structs.pod is 12.42% translated (21 of 169 strings). fr/guestfs.pod is 16.32% translated (161 of 986 strings). fr/guestfs-lua.pod is 26.78% translated (15 of 56 strings). fr/virt-make-fs.pod is 13.41% translated (11 of 82 strings). fr/guestfs-ocaml.pod is 25.71% translated (9 of 35 strings). fr/virt-p2v-make-disk.pod is 3.94% translated (3 of 76 strings). fr/virt-p2v-make-kickstart.pod is 2.56% translated (3 of 117 strings). fr/virt-p2v-make-kiwi.pod is 4.34% translated (3 of 69 strings). fr/virt-p2v.pod is 2.29% translated (6 of 262 strings). fr/guestfs-perl.pod is 26.31% translated (5 of 19 strings). fr/guestfs-python.pod is 10% translated (3 of 30 strings). fr/virt-rescue.pod is 13.58% translated (25 of 184 strings). fr/virt-resize.pod is 14.54% translated (40 of 275 strings). fr/guestfs-ruby.pod is 22.22% translated (4 of 18 strings). fr/virt-sparsify.pod is 8.82% translated (15 of 170 strings). fr/virt-sysprep.pod is 9.09% translated (19 of 209 strings). fr/libguestfs-test-tool.pod is 23.61% translated (17 of 72 strings). fr/virt-list-filesystems.pod is 14.28% translated (5 of 35 strings). fr/virt-list-partitions.pod is 13.15% translated (5 of 38 strings). fr/virt-tar.pod is 20% translated (11 of 55 strings). fr/virt-win-reg.pod is 23.01% translated (29 of 126 strings). fr/boot-analysis.pod is 7.69% translated (3 of 39 strings). fr/boot-benchmark.pod is 13.79% translated (4 of 29 strings). fr/virt-v2v-test-harness.pod is 3.19% translated (3 of 94 strings). fr/virt-v2v-copy-to-local.pod is 5.45% translated (3 of 55 strings). fr/virt-v2v.pod is 2.09% translated (15 of 715 strings). ja/virt-alignment-scan.pod is 90.76% translated (118 of 130 strings). ja/libguestfs-make-fixed-appliance.pod is 75.92% translated (41 of 54 strings). ja/virt-builder.pod is 9.55% translated (60 of 628 strings). ja/virt-index-validate.pod is 54.28% translated (19 of 35 strings). ja/virt-cat.pod is 74.31% translated (81 of 109 strings). ja/virt-filesystems.pod is 83.1% translated (123 of 148 strings). ja/virt-log.pod is 66.66% translated (40 of 60 strings). ja/virt-ls.pod is 78.57% translated (154 of 196 strings). ja/virt-tail.pod is 58.06% translated (54 of 93 strings). ja/miniexpect.pod is 14.89% translated (21 of 141 strings). ja/customize-options.pod is 4.76% translated (7 of 147 strings). ja/customize-synopsis.pod is 100% translated (0 strings). ja/virt-customize.pod is 46.42% translated (52 of 112 strings). ja/guestfsd.pod is 52.72% translated (29 of 55 strings). ja/virt-df.pod is 74.25% translated (75 of 101 strings). ja/virt-dib.pod is 13.3% translated (31 of 233 strings). ja/virt-diff.pod is 55.76% translated (58 of 104 strings). ja/guestfs-building.pod is 4.97% translated (17 of 342 strings). ja/guestfs-faq.pod is 26.81% translated (118 of 440 strings). ja/guestfs-hacking.pod is 22.19% translated (97 of 437 strings). ja/guestfs-internals.pod is 30.09% translated (31 of 103 strings). ja/guestfs-performance.pod is 30.95% translated (52 of 168 strings). ja/guestfs-recipes.pod is 63.17% translated (151 of 239 strings). ja/guestfs-release-notes.pod is 10.21% translated (234 of 2291 strings). ja/guestfs-security.pod is 27.43% translated (31 of 113 strings). ja/guestfs-testing.pod is 60.81% translated (104 of 171 strings). ja/internal-documentation.pod is 2.62% translated (44 of 1674 strings). ja/virt-edit.pod is 72.6% translated (106 of 146 strings). ja/guestfs-erlang.pod is 82.92% translated (34 of 41 strings). ja/guestfs-examples.pod is 93.33% translated (28 of 30 strings). ja/guestfish-actions.pod is 50.1% translated (1831 of 3654 strings). ja/guestfish-commands.pod is 62.16% translated (69 of 111 strings). ja/guestfish-prepopts.pod is 19.56% translated (9 of 46 strings). ja/guestfish.pod is 56.54% translated (337 of 596 strings). ja/libguestfs-tools.conf.pod is 42.1% translated (16 of 38 strings). ja/virt-copy-in.pod is 73.91% translated (17 of 23 strings). ja/virt-copy-out.pod is 76.19% translated (16 of 21 strings). ja/virt-tar-in.pod is 77.27% translated (17 of 22 strings). ja/virt-tar-out.pod is 72.72% translated (16 of 22 strings). ja/virt-format.pod is 75.94% translated (60 of 79 strings). ja/guestmount.pod is 50% translated (79 of 158 strings). ja/guestunmount.pod is 30% translated (18 of 60 strings). ja/virt-get-kernel.pod is 57.14% translated (44 of 77 strings). ja/guestfs-gobject.pod is 35% translated (7 of 20 strings). ja/guestfs-golang.pod is 51.72% translated (15 of 29 strings). ja/virt-inspector.pod is 59.58% translated (87 of 146 strings). ja/guestfs-java.pod is 34.61% translated (18 of 52 strings). ja/guestfs-actions.pod is 57.85% translated (3133 of 5415 strings). ja/guestfs-availability.pod is 66.23% translated (51 of 77 strings). ja/guestfs-structs.pod is 24.85% translated (42 of 169 strings). ja/guestfs.pod is 40.16% translated (396 of 986 strings). ja/guestfs-lua.pod is 41.07% translated (23 of 56 strings). ja/virt-make-fs.pod is 53.65% translated (44 of 82 strings). ja/guestfs-ocaml.pod is 74.28% translated (26 of 35 strings). ja/virt-p2v-make-disk.pod is 23.68% translated (18 of 76 strings). ja/virt-p2v-make-kickstart.pod is 23.07% translated (27 of 117 strings). ja/virt-p2v-make-kiwi.pod is 20.28% translated (14 of 69 strings). ja/virt-p2v.pod is 8.39% translated (22 of 262 strings). ja/guestfs-perl.pod is 78.94% translated (15 of 19 strings). ja/guestfs-python.pod is 46.66% translated (14 of 30 strings). ja/virt-rescue.pod is 49.45% translated (91 of 184 strings). ja/virt-resize.pod is 41.81% translated (115 of 275 strings). ja/guestfs-ruby.pod is 83.33% translated (15 of 18 strings). ja/virt-sparsify.pod is 47.05% translated (80 of 170 strings). ja/virt-sysprep.pod is 52.63% translated (110 of 209 strings). ja/libguestfs-test-tool.pod is 37.5% translated (27 of 72 strings). ja/virt-list-filesystems.pod is 74.28% translated (26 of 35 strings). ja/virt-list-partitions.pod is 84.21% translated (32 of 38 strings). ja/virt-tar.pod is 80% translated (44 of 55 strings). ja/virt-win-reg.pod is 63.49% translated (80 of 126 strings). ja/boot-analysis.pod is 33.33% translated (13 of 39 strings). ja/boot-benchmark.pod is 41.37% translated (12 of 29 strings). ja/virt-v2v-test-harness.pod is 11.7% translated (11 of 94 strings). ja/virt-v2v-copy-to-local.pod is 38.18% translated (21 of 55 strings). ja/virt-v2v.pod is 8.95% translated (64 of 715 strings). nl/virt-alignment-scan.pod is 2.3% translated (3 of 130 strings). nl/libguestfs-make-fixed-appliance.pod is 5.55% translated (3 of 54 strings). nl/virt-builder.pod is 0.47% translated (3 of 628 strings). nl/virt-index-validate.pod is 8.57% translated (3 of 35 strings). nl/virt-cat.pod is 2.75% translated (3 of 109 strings). nl/virt-filesystems.pod is 2.02% translated (3 of 148 strings). nl/virt-log.pod is 5% translated (3 of 60 strings). nl/virt-ls.pod is 1.53% translated (3 of 196 strings). nl/virt-tail.pod is 3.22% translated (3 of 93 strings). nl/miniexpect.pod is 2.83% translated (4 of 141 strings). nl/customize-options.pod is 0% translated (0 of 147 strings). nl/customize-synopsis.pod is 100% translated (0 strings). nl/virt-customize.pod is 2.67% translated (3 of 112 strings). nl/guestfsd.pod is 5.45% translated (3 of 55 strings). nl/virt-df.pod is 2.97% translated (3 of 101 strings). nl/virt-dib.pod is 1.28% translated (3 of 233 strings). nl/virt-diff.pod is 2.88% translated (3 of 104 strings). nl/guestfs-building.pod is 0.58% translated (2 of 342 strings). nl/guestfs-faq.pod is 0.22% translated (1 of 440 strings). nl/guestfs-hacking.pod is 0.45% translated (2 of 437 strings). nl/guestfs-internals.pod is 1.94% translated (2 of 103 strings). nl/guestfs-performance.pod is 1.19% translated (2 of 168 strings). nl/guestfs-recipes.pod is 0.83% translated (2 of 239 strings). nl/guestfs-release-notes.pod is 0.04% translated (1 of 2291 strings). nl/guestfs-security.pod is 1.76% translated (2 of 113 strings). nl/guestfs-testing.pod is 1.16% translated (2 of 171 strings). nl/internal-documentation.pod is 0% translated (0 of 1674 strings). nl/virt-edit.pod is 2.05% translated (3 of 146 strings). nl/guestfs-erlang.pod is 7.31% translated (3 of 41 strings). nl/guestfs-examples.pod is 16.66% translated (5 of 30 strings). nl/guestfish-actions.pod is 0% translated (0 of 3654 strings). nl/guestfish-commands.pod is 0% translated (0 of 111 strings). nl/guestfish-prepopts.pod is 0% translated (0 of 46 strings). nl/guestfish.pod is 0.5% translated (3 of 596 strings). nl/libguestfs-tools.conf.pod is 7.89% translated (3 of 38 strings). nl/virt-copy-in.pod is 13.04% translated (3 of 23 strings). nl/virt-copy-out.pod is 14.28% translated (3 of 21 strings). nl/virt-tar-in.pod is 13.63% translated (3 of 22 strings). nl/virt-tar-out.pod is 13.63% translated (3 of 22 strings). nl/virt-format.pod is 3.79% translated (3 of 79 strings). nl/guestmount.pod is 1.89% translated (3 of 158 strings). nl/guestunmount.pod is 5% translated (3 of 60 strings). nl/virt-get-kernel.pod is 3.89% translated (3 of 77 strings). nl/guestfs-gobject.pod is 15% translated (3 of 20 strings). nl/guestfs-golang.pod is 10.34% translated (3 of 29 strings). nl/virt-inspector.pod is 2.05% translated (3 of 146 strings). nl/guestfs-java.pod is 5.76% translated (3 of 52 strings). nl/guestfs-actions.pod is 0% translated (0 of 5415 strings). nl/guestfs-availability.pod is 0% translated (0 of 77 strings). nl/guestfs-structs.pod is 0% translated (0 of 169 strings). nl/guestfs.pod is 0.91% translated (9 of 986 strings). nl/guestfs-lua.pod is 5.35% translated (3 of 56 strings). nl/virt-make-fs.pod is 3.65% translated (3 of 82 strings). nl/guestfs-ocaml.pod is 8.57% translated (3 of 35 strings). nl/virt-p2v-make-disk.pod is 3.94% translated (3 of 76 strings). nl/virt-p2v-make-kickstart.pod is 2.56% translated (3 of 117 strings). nl/virt-p2v-make-kiwi.pod is 4.34% translated (3 of 69 strings). nl/virt-p2v.pod is 1.14% translated (3 of 262 strings). nl/guestfs-perl.pod is 15.78% translated (3 of 19 strings). nl/guestfs-python.pod is 10% translated (3 of 30 strings). nl/virt-rescue.pod is 1.63% translated (3 of 184 strings). nl/virt-resize.pod is 1.09% translated (3 of 275 strings). nl/guestfs-ruby.pod is 16.66% translated (3 of 18 strings). nl/virt-sparsify.pod is 1.76% translated (3 of 170 strings). nl/virt-sysprep.pod is 1.43% translated (3 of 209 strings). nl/libguestfs-test-tool.pod is 4.16% translated (3 of 72 strings). nl/virt-list-filesystems.pod is 8.57% translated (3 of 35 strings). nl/virt-list-partitions.pod is 7.89% translated (3 of 38 strings). nl/virt-tar.pod is 5.45% translated (3 of 55 strings). nl/virt-win-reg.pod is 2.38% translated (3 of 126 strings). nl/boot-analysis.pod is 7.69% translated (3 of 39 strings). nl/boot-benchmark.pod is 10.34% translated (3 of 29 strings). nl/virt-v2v-test-harness.pod is 3.19% translated (3 of 94 strings). nl/virt-v2v-copy-to-local.pod is 5.45% translated (3 of 55 strings). nl/virt-v2v.pod is 0.41% translated (3 of 715 strings). pt_BR/virt-alignment-scan.pod is 4.61% translated (6 of 130 strings). pt_BR/libguestfs-make-fixed-appliance.pod is 5.55% translated (3 of 54 strings). pt_BR/virt-builder.pod is 0.47% translated (3 of 628 strings). pt_BR/virt-index-validate.pod is 8.57% translated (3 of 35 strings). pt_BR/virt-cat.pod is 2.75% translated (3 of 109 strings). pt_BR/virt-filesystems.pod is 2.02% translated (3 of 148 strings). pt_BR/virt-log.pod is 5% translated (3 of 60 strings). pt_BR/virt-ls.pod is 1.53% translated (3 of 196 strings). pt_BR/virt-tail.pod is 3.22% translated (3 of 93 strings). pt_BR/miniexpect.pod is 2.12% translated (3 of 141 strings). pt_BR/customize-options.pod is 0% translated (0 of 147 strings). pt_BR/customize-synopsis.pod is 100% translated (0 strings). pt_BR/virt-customize.pod is 2.67% translated (3 of 112 strings). pt_BR/guestfsd.pod is 5.45% translated (3 of 55 strings). pt_BR/virt-df.pod is 2.97% translated (3 of 101 strings). pt_BR/virt-dib.pod is 1.28% translated (3 of 233 strings). pt_BR/virt-diff.pod is 2.88% translated (3 of 104 strings). pt_BR/guestfs-building.pod is 0.58% translated (2 of 342 strings). pt_BR/guestfs-faq.pod is 0.22% translated (1 of 440 strings). pt_BR/guestfs-hacking.pod is 0.45% translated (2 of 437 strings). pt_BR/guestfs-internals.pod is 1.94% translated (2 of 103 strings). pt_BR/guestfs-performance.pod is 1.19% translated (2 of 168 strings). pt_BR/guestfs-recipes.pod is 0.83% translated (2 of 239 strings). pt_BR/guestfs-release-notes.pod is 0.04% translated (1 of 2291 strings). pt_BR/guestfs-security.pod is 1.76% translated (2 of 113 strings). pt_BR/guestfs-testing.pod is 1.16% translated (2 of 171 strings). pt_BR/internal-documentation.pod is 0% translated (0 of 1674 strings). pt_BR/virt-edit.pod is 2.05% translated (3 of 146 strings). pt_BR/guestfs-erlang.pod is 7.31% translated (3 of 41 strings). pt_BR/guestfs-examples.pod is 10% translated (3 of 30 strings). pt_BR/guestfish-actions.pod is 0% translated (0 of 3654 strings). pt_BR/guestfish-commands.pod is 0% translated (0 of 111 strings). pt_BR/guestfish-prepopts.pod is 0% translated (0 of 46 strings). pt_BR/guestfish.pod is 0.5% translated (3 of 596 strings). pt_BR/libguestfs-tools.conf.pod is 7.89% translated (3 of 38 strings). pt_BR/virt-copy-in.pod is 13.04% translated (3 of 23 strings). pt_BR/virt-copy-out.pod is 14.28% translated (3 of 21 strings). pt_BR/virt-tar-in.pod is 13.63% translated (3 of 22 strings). pt_BR/virt-tar-out.pod is 13.63% translated (3 of 22 strings). pt_BR/virt-format.pod is 3.79% translated (3 of 79 strings). pt_BR/guestmount.pod is 1.89% translated (3 of 158 strings). pt_BR/guestunmount.pod is 5% translated (3 of 60 strings). pt_BR/virt-get-kernel.pod is 3.89% translated (3 of 77 strings). pt_BR/guestfs-gobject.pod is 15% translated (3 of 20 strings). pt_BR/guestfs-golang.pod is 10.34% translated (3 of 29 strings). pt_BR/virt-inspector.pod is 2.05% translated (3 of 146 strings). pt_BR/guestfs-java.pod is 5.76% translated (3 of 52 strings). pt_BR/guestfs-actions.pod is 0% translated (0 of 5415 strings). pt_BR/guestfs-availability.pod is 0% translated (0 of 77 strings). pt_BR/guestfs-structs.pod is 0% translated (0 of 169 strings). pt_BR/guestfs.pod is 0.3% translated (3 of 986 strings). pt_BR/guestfs-lua.pod is 5.35% translated (3 of 56 strings). pt_BR/virt-make-fs.pod is 3.65% translated (3 of 82 strings). pt_BR/guestfs-ocaml.pod is 8.57% translated (3 of 35 strings). pt_BR/virt-p2v-make-disk.pod is 3.94% translated (3 of 76 strings). pt_BR/virt-p2v-make-kickstart.pod is 2.56% translated (3 of 117 strings). pt_BR/virt-p2v-make-kiwi.pod is 4.34% translated (3 of 69 strings). pt_BR/virt-p2v.pod is 1.14% translated (3 of 262 strings). pt_BR/guestfs-perl.pod is 15.78% translated (3 of 19 strings). pt_BR/guestfs-python.pod is 10% translated (3 of 30 strings). pt_BR/virt-rescue.pod is 1.63% translated (3 of 184 strings). pt_BR/virt-resize.pod is 1.09% translated (3 of 275 strings). pt_BR/guestfs-ruby.pod is 16.66% translated (3 of 18 strings). pt_BR/virt-sparsify.pod is 1.76% translated (3 of 170 strings). pt_BR/virt-sysprep.pod is 1.43% translated (3 of 209 strings). pt_BR/libguestfs-test-tool.pod is 4.16% translated (3 of 72 strings). pt_BR/virt-list-filesystems.pod is 8.57% translated (3 of 35 strings). pt_BR/virt-list-partitions.pod is 7.89% translated (3 of 38 strings). pt_BR/virt-tar.pod is 5.45% translated (3 of 55 strings). pt_BR/virt-win-reg.pod is 2.38% translated (3 of 126 strings). pt_BR/boot-analysis.pod is 7.69% translated (3 of 39 strings). pt_BR/boot-benchmark.pod is 10.34% translated (3 of 29 strings). pt_BR/virt-v2v-test-harness.pod is 3.19% translated (3 of 94 strings). pt_BR/virt-v2v-copy-to-local.pod is 5.45% translated (3 of 55 strings). pt_BR/virt-v2v.pod is 0.41% translated (3 of 715 strings). tg/virt-alignment-scan.pod is 11.53% translated (15 of 130 strings). tg/libguestfs-make-fixed-appliance.pod is 16.66% translated (9 of 54 strings). tg/virt-builder.pod is 4.77% translated (30 of 628 strings). tg/virt-index-validate.pod is 22.85% translated (8 of 35 strings). tg/virt-cat.pod is 11.92% translated (13 of 109 strings). tg/virt-filesystems.pod is 4.72% translated (7 of 148 strings). tg/virt-log.pod is 11.66% translated (7 of 60 strings). tg/virt-ls.pod is 7.14% translated (14 of 196 strings). tg/virt-tail.pod is 16.12% translated (15 of 93 strings). tg/miniexpect.pod is 10.63% translated (15 of 141 strings). tg/customize-options.pod is 2.72% translated (4 of 147 strings). tg/customize-synopsis.pod is 100% translated (0 strings). tg/virt-customize.pod is 8.92% translated (10 of 112 strings). tg/guestfsd.pod is 9.09% translated (5 of 55 strings). tg/virt-df.pod is 5.94% translated (6 of 101 strings). tg/virt-dib.pod is 2.57% translated (6 of 233 strings). tg/virt-diff.pod is 5.76% translated (6 of 104 strings). tg/guestfs-building.pod is 3.21% translated (11 of 342 strings). tg/guestfs-faq.pod is 6.59% translated (29 of 440 strings). tg/guestfs-hacking.pod is 8.69% translated (38 of 437 strings). tg/guestfs-internals.pod is 2.91% translated (3 of 103 strings). tg/guestfs-performance.pod is 10.71% translated (18 of 168 strings). tg/guestfs-recipes.pod is 8.36% translated (20 of 239 strings). tg/guestfs-release-notes.pod is 2.31% translated (53 of 2291 strings). tg/guestfs-security.pod is 11.5% translated (13 of 113 strings). tg/guestfs-testing.pod is 9.94% translated (17 of 171 strings). tg/internal-documentation.pod is 2.62% translated (44 of 1674 strings). tg/virt-edit.pod is 8.9% translated (13 of 146 strings). tg/guestfs-erlang.pod is 7.31% translated (3 of 41 strings). tg/guestfs-examples.pod is 10% translated (3 of 30 strings). tg/guestfish-actions.pod is 1.45% translated (53 of 3654 strings). tg/guestfish-commands.pod is 7.2% translated (8 of 111 strings). tg/guestfish-prepopts.pod is 4.34% translated (2 of 46 strings). tg/guestfish.pod is 4.69% translated (28 of 596 strings). tg/libguestfs-tools.conf.pod is 26.31% translated (10 of 38 strings). tg/virt-copy-in.pod is 21.73% translated (5 of 23 strings). tg/virt-copy-out.pod is 23.8% translated (5 of 21 strings). tg/virt-tar-in.pod is 22.72% translated (5 of 22 strings). tg/virt-tar-out.pod is 22.72% translated (5 of 22 strings). tg/virt-format.pod is 7.59% translated (6 of 79 strings). tg/guestmount.pod is 5.06% translated (8 of 158 strings). tg/guestunmount.pod is 6.66% translated (4 of 60 strings). tg/virt-get-kernel.pod is 6.49% translated (5 of 77 strings). tg/guestfs-gobject.pod is 15% translated (3 of 20 strings). tg/guestfs-golang.pod is 20.68% translated (6 of 29 strings). tg/virt-inspector.pod is 6.16% translated (9 of 146 strings). tg/guestfs-java.pod is 7.69% translated (4 of 52 strings). tg/guestfs-actions.pod is 0.75% translated (41 of 5415 strings). tg/guestfs-availability.pod is 2.59% translated (2 of 77 strings). tg/guestfs-structs.pod is 1.18% translated (2 of 169 strings). tg/guestfs.pod is 6.89% translated (68 of 986 strings). tg/guestfs-lua.pod is 8.92% translated (5 of 56 strings). tg/virt-make-fs.pod is 8.53% translated (7 of 82 strings). tg/guestfs-ocaml.pod is 11.42% translated (4 of 35 strings). tg/virt-p2v-make-disk.pod is 7.89% translated (6 of 76 strings). tg/virt-p2v-make-kickstart.pod is 12.82% translated (15 of 117 strings). tg/virt-p2v-make-kiwi.pod is 7.24% translated (5 of 69 strings). tg/virt-p2v.pod is 3.81% translated (10 of 262 strings). tg/guestfs-perl.pod is 21.05% translated (4 of 19 strings). tg/guestfs-python.pod is 16.66% translated (5 of 30 strings). tg/virt-rescue.pod is 7.06% translated (13 of 184 strings). tg/virt-resize.pod is 8.36% translated (23 of 275 strings). tg/guestfs-ruby.pod is 22.22% translated (4 of 18 strings). tg/virt-sparsify.pod is 12.35% translated (21 of 170 strings). tg/virt-sysprep.pod is 11.96% translated (25 of 209 strings). tg/libguestfs-test-tool.pod is 8.33% translated (6 of 72 strings). tg/virt-list-filesystems.pod is 11.42% translated (4 of 35 strings). tg/virt-list-partitions.pod is 13.15% translated (5 of 38 strings). tg/virt-tar.pod is 14.54% translated (8 of 55 strings). tg/virt-win-reg.pod is 11.11% translated (14 of 126 strings). tg/boot-analysis.pod is 10.25% translated (4 of 39 strings). tg/boot-benchmark.pod is 13.79% translated (4 of 29 strings). tg/virt-v2v-test-harness.pod is 7.44% translated (7 of 94 strings). tg/virt-v2v-copy-to-local.pod is 12.72% translated (7 of 55 strings). tg/virt-v2v.pod is 5.45% translated (39 of 715 strings). uk/virt-alignment-scan.pod is 99.23% translated (129 of 130 strings). uk/libguestfs-make-fixed-appliance.pod is 75.92% translated (41 of 54 strings). uk/virt-builder.pod is 55.89% translated (351 of 628 strings). uk/virt-index-validate.pod is 74.28% translated (26 of 35 strings). uk/virt-cat.pod is 76.14% translated (83 of 109 strings). uk/virt-filesystems.pod is 70.27% translated (104 of 148 strings). uk/virt-log.pod is 81.66% translated (49 of 60 strings). uk/virt-ls.pod is 68.87% translated (135 of 196 strings). uk/virt-tail.pod is 62.36% translated (58 of 93 strings). uk/miniexpect.pod is 14.18% translated (20 of 141 strings). uk/customize-options.pod is 44.89% translated (66 of 147 strings). uk/customize-synopsis.pod is 100% translated (0 strings). uk/virt-customize.pod is 69.64% translated (78 of 112 strings). uk/guestfsd.pod is 63.63% translated (35 of 55 strings). uk/virt-df.pod is 78.21% translated (79 of 101 strings). uk/virt-dib.pod is 51.07% translated (119 of 233 strings). uk/virt-diff.pod is 75% translated (78 of 104 strings). uk/guestfs-building.pod is 55.55% translated (190 of 342 strings). uk/guestfs-faq.pod is 42.95% translated (189 of 440 strings). uk/guestfs-hacking.pod is 41.41% translated (181 of 437 strings). uk/guestfs-internals.pod is 20.38% translated (21 of 103 strings). uk/guestfs-performance.pod is 29.76% translated (50 of 168 strings). uk/guestfs-recipes.pod is 36.4% translated (87 of 239 strings). uk/guestfs-release-notes.pod is 36.22% translated (830 of 2291 strings). uk/guestfs-security.pod is 37.16% translated (42 of 113 strings). uk/guestfs-testing.pod is 50.87% translated (87 of 171 strings). uk/internal-documentation.pod is 31.18% translated (522 of 1674 strings). uk/virt-edit.pod is 67.12% translated (98 of 146 strings). uk/guestfs-erlang.pod is 70.73% translated (29 of 41 strings). uk/guestfs-examples.pod is 50% translated (15 of 30 strings). uk/guestfish-actions.pod is 44.14% translated (1613 of 3654 strings). uk/guestfish-commands.pod is 40.54% translated (45 of 111 strings). uk/guestfish-prepopts.pod is 26.08% translated (12 of 46 strings). uk/guestfish.pod is 45.3% translated (270 of 596 strings). uk/libguestfs-tools.conf.pod is 65.78% translated (25 of 38 strings). uk/virt-copy-in.pod is 43.47% translated (10 of 23 strings). uk/virt-copy-out.pod is 47.61% translated (10 of 21 strings). uk/virt-tar-in.pod is 45.45% translated (10 of 22 strings). uk/virt-tar-out.pod is 45.45% translated (10 of 22 strings). uk/virt-format.pod is 62.02% translated (49 of 79 strings). uk/guestmount.pod is 43.67% translated (69 of 158 strings). uk/guestunmount.pod is 55% translated (33 of 60 strings). uk/virt-get-kernel.pod is 67.53% translated (52 of 77 strings). uk/guestfs-gobject.pod is 35% translated (7 of 20 strings). uk/guestfs-golang.pod is 62.06% translated (18 of 29 strings). uk/virt-inspector.pod is 53.42% translated (78 of 146 strings). uk/guestfs-java.pod is 55.76% translated (29 of 52 strings). uk/guestfs-actions.pod is 60.03% translated (3251 of 5415 strings). uk/guestfs-availability.pod is 90.9% translated (70 of 77 strings). uk/guestfs-structs.pod is 94.67% translated (160 of 169 strings). uk/guestfs.pod is 36.61% translated (361 of 986 strings). uk/guestfs-lua.pod is 57.14% translated (32 of 56 strings). uk/virt-make-fs.pod is 58.53% translated (48 of 82 strings). uk/guestfs-ocaml.pod is 62.85% translated (22 of 35 strings). uk/virt-p2v-make-disk.pod is 51.31% translated (39 of 76 strings). uk/virt-p2v-make-kickstart.pod is 45.29% translated (53 of 117 strings). uk/virt-p2v-make-kiwi.pod is 43.47% translated (30 of 69 strings). uk/virt-p2v.pod is 35.11% translated (92 of 262 strings). uk/guestfs-perl.pod is 84.21% translated (16 of 19 strings). uk/guestfs-python.pod is 60% translated (18 of 30 strings). uk/virt-rescue.pod is 49.45% translated (91 of 184 strings). uk/virt-resize.pod is 42.9% translated (118 of 275 strings). uk/guestfs-ruby.pod is 77.77% translated (14 of 18 strings). uk/virt-sparsify.pod is 50.58% translated (86 of 170 strings). uk/virt-sysprep.pod is 50.71% translated (106 of 209 strings). uk/libguestfs-test-tool.pod is 45.83% translated (33 of 72 strings). uk/virt-list-filesystems.pod is 74.28% translated (26 of 35 strings). uk/virt-list-partitions.pod is 71.05% translated (27 of 38 strings). uk/virt-tar.pod is 60% translated (33 of 55 strings). uk/virt-win-reg.pod is 50% translated (63 of 126 strings). uk/boot-analysis.pod is 46.15% translated (18 of 39 strings). uk/boot-benchmark.pod is 48.27% translated (14 of 29 strings). uk/virt-v2v-test-harness.pod is 35.1% translated (33 of 94 strings). uk/virt-v2v-copy-to-local.pod is 54.54% translated (30 of 55 strings). uk/virt-v2v.pod is 35.8% translated (256 of 715 strings). zh_CN/virt-alignment-scan.pod is 1.53% translated (2 of 130 strings). zh_CN/libguestfs-make-fixed-appliance.pod is 3.7% translated (2 of 54 strings). zh_CN/virt-builder.pod is 0.31% translated (2 of 628 strings). zh_CN/virt-index-validate.pod is 5.71% translated (2 of 35 strings). zh_CN/virt-cat.pod is 1.83% translated (2 of 109 strings). zh_CN/virt-filesystems.pod is 1.35% translated (2 of 148 strings). zh_CN/virt-log.pod is 3.33% translated (2 of 60 strings). zh_CN/virt-ls.pod is 1.02% translated (2 of 196 strings). zh_CN/virt-tail.pod is 2.15% translated (2 of 93 strings). zh_CN/miniexpect.pod is 1.41% translated (2 of 141 strings). zh_CN/customize-options.pod is 0% translated (0 of 147 strings). zh_CN/customize-synopsis.pod is 100% translated (0 strings). zh_CN/virt-customize.pod is 1.78% translated (2 of 112 strings). zh_CN/guestfsd.pod is 3.63% translated (2 of 55 strings). zh_CN/virt-df.pod is 1.98% translated (2 of 101 strings). zh_CN/virt-dib.pod is 0.85% translated (2 of 233 strings). zh_CN/virt-diff.pod is 1.92% translated (2 of 104 strings). zh_CN/guestfs-building.pod is 0.58% translated (2 of 342 strings). zh_CN/guestfs-faq.pod is 0.22% translated (1 of 440 strings). zh_CN/guestfs-hacking.pod is 0.45% translated (2 of 437 strings). zh_CN/guestfs-internals.pod is 1.94% translated (2 of 103 strings). zh_CN/guestfs-performance.pod is 1.19% translated (2 of 168 strings). zh_CN/guestfs-recipes.pod is 0.83% translated (2 of 239 strings). zh_CN/guestfs-release-notes.pod is 0.04% translated (1 of 2291 strings). zh_CN/guestfs-security.pod is 1.76% translated (2 of 113 strings). zh_CN/guestfs-testing.pod is 1.16% translated (2 of 171 strings). zh_CN/internal-documentation.pod is 0% translated (0 of 1674 strings). zh_CN/virt-edit.pod is 1.36% translated (2 of 146 strings). zh_CN/guestfs-erlang.pod is 4.87% translated (2 of 41 strings). zh_CN/guestfs-examples.pod is 13.33% translated (4 of 30 strings). zh_CN/guestfish-actions.pod is 0% translated (0 of 3654 strings). zh_CN/guestfish-commands.pod is 0% translated (0 of 111 strings). zh_CN/guestfish-prepopts.pod is 0% translated (0 of 46 strings). zh_CN/guestfish.pod is 0.33% translated (2 of 596 strings). zh_CN/libguestfs-tools.conf.pod is 5.26% translated (2 of 38 strings). zh_CN/virt-copy-in.pod is 8.69% translated (2 of 23 strings). zh_CN/virt-copy-out.pod is 9.52% translated (2 of 21 strings). zh_CN/virt-tar-in.pod is 9.09% translated (2 of 22 strings). zh_CN/virt-tar-out.pod is 9.09% translated (2 of 22 strings). zh_CN/virt-format.pod is 2.53% translated (2 of 79 strings). zh_CN/guestmount.pod is 1.26% translated (2 of 158 strings). zh_CN/guestunmount.pod is 3.33% translated (2 of 60 strings). zh_CN/virt-get-kernel.pod is 2.59% translated (2 of 77 strings). zh_CN/guestfs-gobject.pod is 10% translated (2 of 20 strings). zh_CN/guestfs-golang.pod is 6.89% translated (2 of 29 strings). zh_CN/virt-inspector.pod is 1.36% translated (2 of 146 strings). zh_CN/guestfs-java.pod is 3.84% translated (2 of 52 strings). zh_CN/guestfs-actions.pod is 0% translated (0 of 5415 strings). zh_CN/guestfs-availability.pod is 0% translated (0 of 77 strings). zh_CN/guestfs-structs.pod is 0% translated (0 of 169 strings). zh_CN/guestfs.pod is 2.02% translated (20 of 986 strings). zh_CN/guestfs-lua.pod is 3.57% translated (2 of 56 strings). zh_CN/virt-make-fs.pod is 2.43% translated (2 of 82 strings). zh_CN/guestfs-ocaml.pod is 5.71% translated (2 of 35 strings). zh_CN/virt-p2v-make-disk.pod is 2.63% translated (2 of 76 strings). zh_CN/virt-p2v-make-kickstart.pod is 1.7% translated (2 of 117 strings). zh_CN/virt-p2v-make-kiwi.pod is 2.89% translated (2 of 69 strings). zh_CN/virt-p2v.pod is 0.76% translated (2 of 262 strings). zh_CN/guestfs-perl.pod is 10.52% translated (2 of 19 strings). zh_CN/guestfs-python.pod is 6.66% translated (2 of 30 strings). zh_CN/virt-rescue.pod is 1.08% translated (2 of 184 strings). zh_CN/virt-resize.pod is 0.72% translated (2 of 275 strings). zh_CN/guestfs-ruby.pod is 11.11% translated (2 of 18 strings). zh_CN/virt-sparsify.pod is 1.17% translated (2 of 170 strings). zh_CN/virt-sysprep.pod is 0.95% translated (2 of 209 strings). zh_CN/libguestfs-test-tool.pod is 2.77% translated (2 of 72 strings). zh_CN/virt-list-filesystems.pod is 5.71% translated (2 of 35 strings). zh_CN/virt-list-partitions.pod is 5.26% translated (2 of 38 strings). zh_CN/virt-tar.pod is 3.63% translated (2 of 55 strings). zh_CN/virt-win-reg.pod is 1.58% translated (2 of 126 strings). zh_CN/boot-analysis.pod is 5.12% translated (2 of 39 strings). zh_CN/boot-benchmark.pod is 6.89% translated (2 of 29 strings). zh_CN/virt-v2v-test-harness.pod is 2.12% translated (2 of 94 strings). zh_CN/virt-v2v-copy-to-local.pod is 3.63% translated (2 of 55 strings). zh_CN/virt-v2v.pod is 0.27% translated (2 of 715 strings). for f in `cd .; find ja uk -name '*.pod'`; do \ /usr/bin/sed '0,/^=encoding/d' < $f > $f.new; \ mv $f.new $f; \ done make: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/po-docs' make all-recursive make[1]: Entering directory '/var/tmp/tmpaukMIy/libguestfs' Making all in common/mlstdutils make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/mlstdutils' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/mlstdutils' Making all in generator make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/generator' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/generator' Making all in tests/qemu make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/tests/qemu' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/tests/qemu' Making all in test-data make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/test-data' Making all in binaries make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/test-data/binaries' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/test-data/binaries' Making all in blank-disks make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/test-data/blank-disks' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/test-data/blank-disks' Making all in phony-guests make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/test-data/phony-guests' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/test-data/phony-guests' Making all in fake-virtio-win make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/test-data/fake-virtio-win' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/test-data/fake-virtio-win' Making all in fake-virt-tools make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/test-data/fake-virt-tools' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/test-data/fake-virt-tools' Making all in files make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/test-data/files' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/test-data/files' Making all in . make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/test-data' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/test-data' make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/test-data' Making all in gnulib/lib make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/lib' make all-recursive make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/lib' make[4]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/lib' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/lib' make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/lib' make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/lib' Making all in gnulib/tests make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/tests' make all-recursive make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/tests' Making all in . make[4]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/tests' make[4]: Nothing to be done for 'all-am'. make[4]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/tests' make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/tests' make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/gnulib/tests' Making all in common/errnostring make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/errnostring' make all-am make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/errnostring' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/errnostring' make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/errnostring' Making all in common/protocol make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/protocol' make all-am make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/protocol' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/protocol' make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/protocol' Making all in common/qemuopts make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/qemuopts' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/qemuopts' Making all in common/utils make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/utils' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/utils' Making all in common/structs make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/structs' make all-am make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/structs' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/structs' make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/structs' Making all in lib make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/lib' make all-am make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/lib' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/lib' make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/lib' Making all in docs make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/docs' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/docs' Making all in examples make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/examples' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/examples' Making all in po make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/po' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/po' Making all in common/mlutils make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/common/mlutils' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/common/mlutils' Making all in daemon make[2]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/daemon' make all-am make[3]: Entering directory '/var/tmp/tmpaukMIy/libguestfs/daemon' OCAMLOPT utils.cmx OCAMLOPT sysroot.cmx OCAMLOPT mountable.cmx OCAMLCMI blkid.cmi OCAMLOPT /var/tmp/tmpaukMIy/libguestfs/common/mlpcre/PCRE.cmx OCAMLCMI btrfs.cmi File "/var/tmp/tmpaukMIy/libguestfs/common/mlpcre/PCRE.ml", line 1: Error: Could not find the .cmi file for interface /var/tmp/tmpaukMIy/libguestfs/common/mlpcre/PCRE.mli. OCAMLCMI file.cmi make[3]: *** [Makefile:4671: /var/tmp/tmpaukMIy/libguestfs/common/mlpcre/PCRE.cmx] Error 2 make[3]: *** Waiting for unfinished jobs.... OCAMLCMI filearch.cmi make[3]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/daemon' make[2]: *** [Makefile:2280: all] Error 2 make[2]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs/daemon' make[1]: *** [Makefile:1976: all-recursive] Error 1 make[1]: Leaving directory '/var/tmp/tmpaukMIy/libguestfs' make: *** [Makefile:1885: all] Error 2
Richard W.M. Jones
2017-Aug-01 16:52 UTC
Re: [Libguestfs] check-release FAILED (was: Re: [PATCH v2 3/3] daemon: Restore PCRE regular expressions in OCaml code.)
On Tue, Aug 01, 2017 at 12:32:09PM -0400, Richard Jones wrote:> File "/var/tmp/tmpaukMIy/libguestfs/common/mlpcre/PCRE.ml", line 1: > Error: Could not find the .cmi file for interface > /var/tmp/tmpaukMIy/libguestfs/common/mlpcre/PCRE.mli. > OCAMLCMI file.cmiThis is an actual bug. The order of calling the subdirs in Makefile.am is wrong. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top
Apparently Analagous Threads
- [PATCH 12/27] daemon: Reimplement ‘file_architecture’ API in OCaml.
- [PATCH 2/2] builder: Replace small usage of Str with new PCRE module.
- [PATCH v12 02/11] common: Bundle the ocaml-augeas library for use by the daemon.
- [v2v PATCH 2/2] build: switch embedded copy of libvirt-ocaml
- [PATCH v6 10/41] mllib, v2v: Split out OCaml utils bindings ‘common/mlutils’.