Jim Meyering [Wed, 12 Aug 2009 08:57:03 +0000 (10:57 +0200)]
generator.ml: factor out "pr_args n" function
Jim Meyering [Tue, 11 Aug 2009 16:07:17 +0000 (18:07 +0200)]
generator.ml: finish adding Dev_or_Path support
* src/generator.ml: Update all rules to handle Dev_or_Path.
(the above changes to generator.ml are mostly mechanical)
Emit a use of REQUIRE_ROOT_OR_RESOLVE_DEVICE.
* daemon/upload.c (do_download): Remove use of
REQUIRE_ROOT_OR_RESOLVE_DEVICE, now that it's automatically done
in calling code.
* daemon/file.c (do_file): Likewise.
Jim Meyering [Tue, 11 Aug 2009 15:38:05 +0000 (17:38 +0200)]
generator.ml: add type: Dev_or_Path
* src/generator.ml (file, download): Use it.
Jim Meyering [Tue, 11 Aug 2009 15:17:08 +0000 (17:17 +0200)]
generator.ml: constify do_mkdtemp
* daemon/dir.c (do_mkdtemp): Rewrite for a "const" parameter.
* src/generator.ml (mkdtemp): Declare parameter to be of type Pathname.
Jim Meyering [Tue, 11 Aug 2009 14:17:41 +0000 (16:17 +0200)]
generator.ml: move String/Device decls "down" to definition
Jim Meyering [Tue, 11 Aug 2009 13:59:56 +0000 (15:59 +0200)]
generator.ml: use new "Pathname" designation
Nearly every file-related function in daemons/*.c is affected:
Remove this pair of statements from each affected do_* function:
- NEED_ROOT (return -1);
- ABS_PATH (dir, return -1);
and change the type of the corresponding parameter to "const char *".
* src/generator.ml: Emit NEED_ROOT just once, even when there are two or
more Pathname args.
Jim Meyering [Tue, 11 Aug 2009 10:16:51 +0000 (12:16 +0200)]
generator.ml: new type, "Pathname"
* src/generator.ml: Emit NEED_ROOT and ABS_PATH into generated
stubs.c, rather than requiring they be added manually at the start
of each and every do_* function that operates on a "path" parameter.
Update grammar: Pathname is just a String, with the above exception.
Do not update augeas "path" parameters, since they are not file names,
but rather ":"-separated search paths. Except aug_init, for which
"path" *is* a file name.
Jim Meyering [Tue, 11 Aug 2009 09:56:33 +0000 (11:56 +0200)]
generator.ml: emit "const char *" for Device and String params
* src/generator.ml: Emit "const char *", not "char *" for Device and
String params, now that the non-const code is hoisted into the calling
code in stubs.c.
Jim Meyering [Mon, 10 Aug 2009 21:15:25 +0000 (23:15 +0200)]
fix daemon.h's use of NEED_ROOT-in-#define
Jim Meyering [Mon, 10 Aug 2009 21:11:01 +0000 (23:11 +0200)]
update all NEED_ROOT uses
run this command:
git grep -l -w NEED_ROOT|xargs perl -pi -e \
's/(NEED_ROOT) \((.*?)\)/$1 (return $2)/'
Jim Meyering [Mon, 10 Aug 2009 21:07:21 +0000 (23:07 +0200)]
* src/generator.ml: Change all `String "device"' to `Device "device"'.
Then update each affected function, removing each uses of RESOLVE_DEVICE,
now that it's generated in caller from stub.c.
* daemon/blockdev.c (call_blockdev): Remove use of RESOLVE_DEVICE.
* daemon/devsparts.c (do_mkfs): Likewise.
* daemon/ext2.c (do_e2fsck_f, do_get_e2label, do_get_e2uuid): Likewise.
(do_resize2fs, do_set_e2label, do_set_e2uuid, do_tune2fs_l): Likewise.
* daemon/fsck.c (do_fsck): Likewise.
* daemon/grub.c (do_grub_install): Likewise.
* daemon/lvm.c (do_lvremove, do_pvcreate, do_pvremove): Likewise.
(do_pvresize): Likewise.
* daemon/mount.c (do_mount_vfs): Likewise.
* daemon/ntfs.c (do_ntfs_3g_probe): Likewise.
* daemon/scrub.c (do_scrub_device): Likewise.
* daemon/sfdisk.c (sfdisk, sfdisk_flag): Likewise.
* daemon/swap.c (do_mkswap, do_mkswap_L, do_mkswap_U): Likewise.
(do_swapoff_device, do_swapon_device): Likewise.
* daemon/zero.c (do_zero): Likewise.
* daemon/zerofree.c (do_zerofree): Likewise.
Jim Meyering [Mon, 10 Aug 2009 20:50:00 +0000 (22:50 +0200)]
update generator to emit each RESOLVE_DEVICE call
* src/generator.ml: Emit RESOLVE_DEVICE (device, goto done);
just before each Device-enabled do_$FUNCTION.
Jim Meyering [Mon, 10 Aug 2009 17:10:14 +0000 (19:10 +0200)]
s/NEED_ROOT_OR_IS_DEVICE/REQUIRE_ROOT_OR_RESOLVE_DEVICE/
Jim Meyering [Mon, 10 Aug 2009 17:08:11 +0000 (19:08 +0200)]
guestfsd.c: correct s/IS_DEVICE/RESOLVE_DEVICE/ in another comment
Jim Meyering [Mon, 10 Aug 2009 21:13:31 +0000 (23:13 +0200)]
manually adjust ABS_PATH uses for new semantics
* daemon/file.c (do_cat): fix an ABS_PATH use
Jim Meyering [Mon, 10 Aug 2009 17:03:36 +0000 (19:03 +0200)]
update all uses of ABS_PATH
run this command:
git grep -l -w ABS_PATH|xargs perl -pi -e \
's/(?:ABS_PATH)( \(.*?,) (.*?)\)/ABS_PATH$1 return $2)/'
Jim Meyering [Mon, 10 Aug 2009 17:02:12 +0000 (19:02 +0200)]
propagate semantic changes to NEED_ROOT, NEED_ROOT_OR_IS_DEVICE
changing IS_DEVICE semantics leads to changing semantics of
NEED_ROOT_OR_IS_DEVICE and NEED_ROOT, too.
* daemon/daemon.h: Update definitions.
Jim Meyering [Mon, 10 Aug 2009 16:54:51 +0000 (18:54 +0200)]
convert the last few, manually
Jim Meyering [Mon, 10 Aug 2009 16:51:32 +0000 (18:51 +0200)]
change almost all uses: s/IS_DEVICE/RESOLVE_DEVICE/
Use this command:
git grep -l -w IS_DEVICE|xargs perl -pi -e \
's/\b(?:IS_DEVICE)\b( \(.*?,) (.*?)\)/RESOLVE_DEVICE$1 return $2)/'
Jim Meyering [Mon, 10 Aug 2009 16:49:55 +0000 (18:49 +0200)]
* daemon/daemon.h (RESOLVE_DEVICE): Rename from IS_DEVICE.
Change parameter from "errcode" (which would be returned) to "fail_stmt"
so that a caller can specify e.g., "goto done" upon failure.
Jim Meyering [Mon, 10 Aug 2009 16:17:05 +0000 (18:17 +0200)]
generator.ml: define new String-like type: "Device"
Matthew Booth [Thu, 13 Aug 2009 10:48:27 +0000 (11:48 +0100)]
Don't assume grub is on a separate boot filesystem
Paths in grub.conf are relative to the filesystem containing it. grub parsing
currently assumes that it is on /boot, and will fail if it isn't, for example
because a guest only has a single partition.
This patch makes grub parsing work harder to work out what grub paths are
relative to. Firstly, it looks for a previous detected 'linux-grub' filesystem.
If this isn't found, it tries to work out which filesystem contains
/boot/grub/menu.lst and uses that.
Richard W.M. Jones [Wed, 12 Aug 2009 21:12:20 +0000 (22:12 +0100)]
add_drive: Don't use cache=off if not supported by underlying filesystem.
If you use the guestfs_add_drive function, then currently it
generates a qemu command line element like:
-drive ...,cache=off,...
This causes qemu to try to open the device with O_DIRECT.
Unfortunately some filesystems don't support this flag, notably tmpfs,
which means you can't use libguestfs in conjunction with tmpfs. On
some systems /tmp is a tmpfs filesystem.
This patch fixes this so that if the filesystem doesn't support
O_DIRECT, then we omit the cache=off parameter. This seems reasonable
from a reliability point of view, because if you're using tmpfs then
you probably didn't expect reliability in the case where your system
suddenly powers off.
Richard Jones [Wed, 12 Aug 2009 15:56:09 +0000 (16:56 +0100)]
Add 'setcon', 'getcon' commands to set and get the SELinux context.
Richard Jones [Wed, 12 Aug 2009 17:23:17 +0000 (18:23 +0100)]
Return error if allocations fail.
Richard Jones [Wed, 12 Aug 2009 16:40:22 +0000 (17:40 +0100)]
Add documentation for SELinux configuration.
Also use L</...> to link between sections.
Richard Jones [Wed, 12 Aug 2009 16:40:07 +0000 (17:40 +0100)]
Spelling fix: labelled -> labeled.
Richard Jones [Wed, 12 Aug 2009 15:31:06 +0000 (16:31 +0100)]
If using SELinux, mount /selinux in the appliance.
If selinux=1 on the Linux kernel command line, then we mount
/selinux in the appliance. We will also bind-mount this
directory into guests when we run commands.
Richard Jones [Wed, 12 Aug 2009 15:10:35 +0000 (16:10 +0100)]
Allow selinux=? kernel flag to be controlled.
Adds new API calls to set and get this flags.
Jim Meyering [Wed, 12 Aug 2009 12:44:14 +0000 (14:44 +0200)]
fish: don't read freed memory
* fish/rc.c (rc_remote): Close file handle only *after* xdr_destroy,
because that latter may flush its file handle (implicated via
xdrstdio_create). FYI, this failure is triggered for me only when
MALLOC_PERTURB_ is set to nonzero < 256 in my environment.
Jim Meyering [Tue, 11 Aug 2009 07:53:16 +0000 (09:53 +0200)]
doc: improve emacs snippets
* HACKING: Make (setq indent-tabs-mode nil) apply to nearly all
files, not just C-mode ones.
Richard Jones [Wed, 12 Aug 2009 09:38:54 +0000 (10:38 +0100)]
Fix regression test rhbz503169c10.sh.
'll' command has changed semantics very slightly
(see commit
6727e7c8bdf1cb39264a9de6333d228b51c39956).
We need to fix this test so it doesn't try to run
the ll command without a mounted disk.
Richard Jones [Tue, 11 Aug 2009 18:35:04 +0000 (19:35 +0100)]
Add contents of /proc/mounts to the debugging information.
Jim Meyering [Tue, 11 Aug 2009 11:16:27 +0000 (13:16 +0200)]
daemon/ls: make do_ll require root, like all the rest
* ls.c (do_ll): Do invoke "NEED_ROOT" here, and add a FIXME to
provide a "debug ll" command with the semantics we're removing.
Jim Meyering [Mon, 10 Aug 2009 13:00:48 +0000 (15:00 +0200)]
build: avoid first-time configure-from-clone failure
* bootstrap: Run autopoint before using the file it creates,
po/Makevars.template. Reported by Richard Jones. Details here:
https://www.redhat.com/archives/libguestfs/2009-August/msg00135.html
Jim Meyering [Mon, 10 Aug 2009 10:44:09 +0000 (12:44 +0200)]
build: enable automake's silent rules option
* configure.ac: Use AM_SILENT_RULES([yes]).
Those who want verbose build output may configure with
--disable-silent-rules or use "make V=1".
* daemon/configure.ac: Likewise.
Jim Meyering [Mon, 10 Aug 2009 10:17:00 +0000 (12:17 +0200)]
build: daemon/do_debug: parameters aren't always unused
* daemon/debug.c (MAYBE_UNUSED): Define.
(do_debug): Mark parameters as unused only when they really
are unused. Spotted by Richard Jones.
SCALAR(0xdd8370)
prefer sizeof *VAR sizeof TYPE (no semantic change)
Jim Meyering [Thu, 6 Aug 2009 14:05:44 +0000 (16:05 +0200)]
build: avoid warnings in daemon/inotify.c
Avoid "comparison between signed and unsigned integer expressions"
warnings. If it's at all hard or risky to avoid this type of warning,
then it's not worthwhile. Here, it's easy and safe.
* daemon/inotify.c (inotify_posn): Declare local to be of unsigned type.
(do_inotify_read, do_inotify_files): Likewise.
Jim Meyering [Thu, 6 Aug 2009 13:28:48 +0000 (15:28 +0200)]
build: avoid warnings in daemon/guestfsd.c
* daemon/guestfsd.c (print_arginfo, print_shell_quote): Mark each
"info" parameter as unused.
Jim Meyering [Thu, 6 Aug 2009 13:26:13 +0000 (15:26 +0200)]
build: avoid warnings in daemon/debug.c
* daemon/debug.c (do_debug): Mark parameters as unused.
Jim Meyering [Thu, 6 Aug 2009 13:25:03 +0000 (15:25 +0200)]
define ATTRIBUTE_UNUSED
* daemon/daemon.h (__attribute__, ATTRIBUTE_UNUSED): Define.
Jim Meyering [Fri, 7 Aug 2009 18:07:03 +0000 (20:07 +0200)]
daemon/file.c: remove duplicate absolute-path check
* daemon/file.c (do_file): Remove redundant use of ABS_PATH.
It's redundant because the preceding line invokes NEED_ROOT_OR_IS_DEVICE,
which also invokes ABS_PATH.
Richard Jones [Fri, 7 Aug 2009 16:38:44 +0000 (17:38 +0100)]
Tidy up generation of java/Makefile.inc.
(Just whitespace and comment changes, and small restructuring
of the code).
Richard Jones [Fri, 7 Aug 2009 08:51:04 +0000 (09:51 +0100)]
Debug: Improve the way the qemu command line is printed.
Change the way the qemu command is displayed to look like
this:
/usr/bin/qemu-kvm \
-drive file=/tmp/test.img,cache=off,if=virtio \
-m 500 \
-no-reboot \
-kernel /tmp/libguestfsHBJHRh/kernel \
-initrd /tmp/libguestfsHBJHRh/initrd \
[...]
This allows the command line to be copied and pasted directly
into the shell, and also makes it simpler to read.
Richard Jones [Fri, 7 Aug 2009 08:31:35 +0000 (09:31 +0100)]
Allow network interface to be configured.
Add ./configure --with-net-if=(virtio|ne2k_pci) option.
This lets you workaround the following virtio_net bug:
https://bugzilla.redhat.com/show_bug.cgi?id=516022
Richard Jones [Fri, 7 Aug 2009 07:32:56 +0000 (08:32 +0100)]
Tests: swapon_device test mkswap /dev/sda1 instead of /dev/sdb.
On RHEL 5, mkswap /dev/sdb fails, even with the '-f' option
(contradictory to what the manual page says).
This commit adds a new 'InitPartition' initialization which
just creates /dev/sda1, and then does the swap test on that.
Richard Jones [Thu, 6 Aug 2009 17:46:57 +0000 (18:46 +0100)]
Always pass mkswap -f parameter.
Otherwise mkswap will give a silly error if you ask it to
swap on a whole device.
Richard Jones [Thu, 6 Aug 2009 17:40:59 +0000 (18:40 +0100)]
Tests: Don't test block size in statvfs test.
The block size changes between kernel releases, causing
a false failure in the tests. The error was:
test_statvfs_0: bsize was 65536, expected 131072
Richard Jones [Thu, 6 Aug 2009 16:02:25 +0000 (17:02 +0100)]
Version 1.0.66
Richard Jones [Thu, 6 Aug 2009 14:44:20 +0000 (15:44 +0100)]
RHEL 5: inotify_init1 call did not exist on RHEL 5.
Richard Jones [Thu, 6 Aug 2009 13:35:46 +0000 (14:35 +0100)]
Fix: segfault in tab completion (RHBZ#516024).
Actually this fixes two bugs: 'strs' was not being freed on every
path, and the tab completion segfault described in the bug report.
Matthew Booth [Thu, 6 Aug 2009 13:14:18 +0000 (14:14 +0100)]
Fix errno check in readdir in devsparts.c
Richard Jones [Thu, 6 Aug 2009 12:38:17 +0000 (13:38 +0100)]
Add ne2k-pci driver to the appliance.
This allows people to use the ne2k-pci network driver, for those
situations where the virtio_net driver is broken (cough 516022 cough).
Richard Jones [Thu, 6 Aug 2009 11:52:49 +0000 (12:52 +0100)]
Make user network numbering explicit.
Use:
-net user,vlan=0,net=10.0.2.0/8
just to make the (already implicit) 10.0.2.x network explicit.
Richard Jones [Thu, 6 Aug 2009 11:10:52 +0000 (12:10 +0100)]
appliance: More debug added to /init.
Matthew Booth [Thu, 6 Aug 2009 12:07:51 +0000 (13:07 +0100)]
Exclude daemon/lib and daemon/tests from being added to po/POTFILES.in
Jim Meyering [Thu, 6 Aug 2009 11:50:11 +0000 (07:50 -0400)]
build: remove bootstrap's --gnulib-srcdir option
...because it probably didn't work, and even if it did, we've
discovered that using a separate git repo like that can lead
to subtle mix-ups.
Also, fix invocation of gnulib-tool in daemon/.
Jim Meyering [Thu, 6 Aug 2009 11:47:48 +0000 (13:47 +0200)]
build: fix build failure
* bootstrap (gnulib_tool): Create lib and tests directories
under daemon/ before running gnulib-tool there.
Jim Meyering [Mon, 3 Aug 2009 10:44:51 +0000 (11:44 +0100)]
daemon: use gnulib
* daemon/Makefile.am (SUBDIRS): Define.
(AM_CPPFLAGS): Define, to include from gnulib's lib/
(LDADD): Define, to link with gnulib's libgnu.a.
* daemon/configure.ac: Use AC_CONFIG_AUX_DIR([build-aux]),
gl_EARLY and gl_INIT.
(AC_CONFIG_FILES): Add lib/Makefile and tests/Makefile
* daemon/m4/gnulib-cache.m4: New file, generated by running
../.gnulib/gnulib-tool --import --with-tests hash
* daemon/.gitignore: Ignore all of the imported files.
build: tell bootstrap about daemon/
* bootstrap: Run gnulib-tool --update in daemon/.
Remove bootstrap's --gnulib-srcdir option, because it probably
didn't work, and even if it did, we've discovered that using
a separate git repo like that can lead to subtle mix-ups.
Richard Jones [Thu, 6 Aug 2009 10:01:20 +0000 (11:01 +0100)]
appliance: Include more debug output in the /init script.
Output more debugging information from this script, to enhance the
usefulness of LIBGUESTFS_DEBUG output.
Matthew Booth [Mon, 3 Aug 2009 15:04:50 +0000 (16:04 +0100)]
Recognise cd-rom devices in devsparts.c
Also:
* Un-duplicate device detection code by creating a common mapping function.
* Add some more comments.
Matthew Booth [Wed, 5 Aug 2009 22:33:22 +0000 (23:33 +0100)]
Fix test failures in upload and download (RHBZ#515764)
The tests hardcoded an MD5 of the test file, COPYING.LIB, whose contents had
change. This change causes it to compute the MD5 rather than hardcoding it.
OCaml provided by rjones.
Richard Jones [Thu, 6 Aug 2009 07:56:39 +0000 (08:56 +0100)]
Add copyright and license notice to regressions/test-noexec-stack.pl
Matthew Booth [Wed, 5 Aug 2009 16:32:02 +0000 (17:32 +0100)]
Add some newly-untracked files to .gitignore
Matthew Booth [Mon, 3 Aug 2009 19:29:24 +0000 (20:29 +0100)]
Fix swapon_label test
The swapon label test has a side-effect, in that it creates a new partition.
This causes the later failure of the list_partitions test.
This change causes the swapon_label test to zero /dev/sdb after the test, and
then re-read the partition table.
Matthew Booth [Wed, 5 Aug 2009 15:00:12 +0000 (16:00 +0100)]
Add resultant change to po/POTFILES.in
I missed this when committing
7e9cb884492aec243337ffc8e4432a9ff2690956
Matthew Booth [Wed, 5 Aug 2009 13:55:54 +0000 (14:55 +0100)]
Add a test for an executable stack in resultant binaries
Jim Meyering [Wed, 5 Aug 2009 12:01:38 +0000 (08:01 -0400)]
build: generate some just-removed files in po/
* bootstrap: Generate po/Makevars and po/LINGUAS.
Jim Meyering [Tue, 4 Aug 2009 12:21:32 +0000 (14:21 +0200)]
build: remove trailing blank lines; enable the syntax-check rule
* cfg.mk (disable_temporarily): Remove sc_prohibit_trailing_blank_lines.
* appliance/Makefile.am: Remove trailing blank line(s).
* appliance/debian/modules/y0_install-guestfsd: Likewise.
* appliance/make.sh.in: Likewise.
* appliance/packagelist.in: Likewise.
* appliance/update.sh.in: Likewise.
* haskell/run-bindtests: Likewise.
* ocaml/run-bindtests: Likewise.
* python/run-python-tests: Likewise.
* recipes/squashfs.example: Likewise.
* ruby/run-ruby-tests: Likewise.
Jim Meyering [Tue, 4 Aug 2009 12:19:29 +0000 (14:19 +0200)]
build: exempt symlinks from trailing-blank-line prohibition
* cfg.mk (sc_prohibit_trailing_blank_lines): Exempt symlinks.
Jim Meyering [Tue, 4 Aug 2009 12:03:17 +0000 (14:03 +0200)]
build: enable syntax-check: TAB-only indentation in Makefiles
* cfg.mk (disable_temporarily): Remove sc_makefile_TAB_only_indentation.
Jim Meyering [Tue, 4 Aug 2009 12:01:38 +0000 (14:01 +0200)]
build: tweak HACKING so we pass "make syntax-check"
* HACKING: Convert leading TABs.
Jim Meyering [Tue, 4 Aug 2009 12:00:11 +0000 (14:00 +0200)]
build: remove trailing blanks, enable syntax-check
* regressions/test-cancellation-download-librarycancels.sh:
* src/generator.ml:
* cfg.mk (disable_temporarily): Remove sc_trailing_blank.
* .x-sc_trailing_blank: New file.
Jim Meyering [Tue, 4 Aug 2009 12:46:38 +0000 (14:46 +0200)]
maint: use COPYING.LIB version 2.1
* COPYING.LIB: Update to 2.1.
* .x-sc_TAB_in_indentation: Also exempt COPYING.LIB.
Jim Meyering [Tue, 4 Aug 2009 11:55:51 +0000 (13:55 +0200)]
build: don't emit trailing blanks, remove generated file
* ocaml/Makefile.am (.depend): Don't redirect directly to $@.
Filter out trailing blanks.
* ocaml/.depend: Regenerate.
Jim Meyering [Tue, 4 Aug 2009 11:49:19 +0000 (13:49 +0200)]
build: remove more files added by ./autogen.sh
* po/LINGUAS: Remove file.
* po/Makefile.in.in: Likewise.
* po/Makevars: Likewise.
* po/Rules-quot: Likewise.
* po/boldquot.sed: Likewise.
* po/en@boldquot.header: Likewise.
* po/en@quot.header: Likewise.
* po/insert-header.sin: Likewise.
* po/quot.sed: Likewise.
* po/remove-potcdate.sin: Likewise.
Jim Meyering [Tue, 4 Aug 2009 08:47:17 +0000 (04:47 -0400)]
build: tell aclocal to search gnulib/m4, too
* Makefile.am (ACLOCAL_AMFLAGS): Append "-I gnulib/m4".
Jim Meyering [Mon, 3 Aug 2009 14:55:34 +0000 (10:55 -0400)]
Document and enforce the new spaces-only indentation policy.
* cfg.mk (disable_temporarily): Remove sc_TAB_in_indentation,
to enable the "make syntax-check" that enforces this.
* .x-sc_TAB_in_indentation: New file. Exceptions.
* HACKING: Document the policy, with tips on how to conform.
Jim Meyering [Mon, 3 Aug 2009 15:10:13 +0000 (11:10 -0400)]
Convert all TABs-as-indentation to spaces.
Do it by running this command:
[exempted files are matched via .x-sc_TAB_in_indentation]
git ls-files \
| pcregrep -vf .x-sc_TAB_in_indentation \
| xargs pcregrep -l '^ *\t' \
| xargs perl -MText::Tabs -ni -le \
'$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
Jim Meyering [Mon, 3 Aug 2009 15:00:22 +0000 (11:00 -0400)]
Remove files imported via autogen.sh.
* m4/.gitignore: Ignore these files.
* m4/codeset.m4: Remove file.
* m4/gettext.m4: Likewise.
* m4/glibc2.m4: Likewise.
* m4/glibc21.m4: Likewise.
* m4/iconv.m4: Likewise.
* m4/intdiv0.m4: Likewise.
* m4/intl.m4: Likewise.
* m4/intldir.m4: Likewise.
* m4/intlmacosx.m4: Likewise.
* m4/intltool.m4: Likewise.
* m4/inttypes-pri.m4: Likewise.
* m4/inttypes.m4: Likewise.
* m4/inttypes_h.m4: Likewise.
* m4/isc-posix.m4: Likewise.
* m4/lcmessage.m4: Likewise.
* m4/lib-ld.m4: Likewise.
* m4/lib-link.m4: Likewise.
* m4/lib-prefix.m4: Likewise.
* m4/lock.m4: Likewise.
* m4/longdouble.m4: Likewise.
* m4/longlong.m4: Likewise.
* m4/nls.m4: Likewise.
* m4/po.m4: Likewise.
* m4/printf-posix.m4: Likewise.
* m4/progtest.m4: Likewise.
* m4/signed.m4: Likewise.
* m4/size_max.m4: Likewise.
* m4/stdint_h.m4: Likewise.
* m4/uintmax_t.m4: Likewise.
* m4/ulonglong.m4: Likewise.
* m4/visibility.m4: Likewise.
* m4/wchar_t.m4: Likewise.
* m4/wint_t.m4: Likewise.
* m4/xsize.m4: Likewise.
Jim Meyering [Mon, 3 Aug 2009 15:09:13 +0000 (11:09 -0400)]
allow use of #if HAVE_CONFIG_H, for example code
* .x-sc_prohibit_have_config_h: New file, to exempt examples.
Jim Meyering [Mon, 3 Aug 2009 13:39:09 +0000 (15:39 +0200)]
guestfs: fix typo in my recent change
* src/guestfs.c (guestfs_perrorf): Rename former err to errnum,
to avoid compilation error.
Jim Meyering [Mon, 3 Aug 2009 13:21:44 +0000 (15:21 +0200)]
Guard #inclusion of config.h in examples.
* examples/hello.c [HAVE_CONFIG_H]: Include <config.h> conditionally.
* examples/to-xml.c: Likewise.
Jim Meyering [Mon, 3 Aug 2009 12:32:44 +0000 (08:32 -0400)]
build: reenable "syntax-check" rule: sc_const_long_option
* cfg.mk (disable_temporarily): Remove sc_const_long_option.
* daemon/guestfsd.c (main): Declare long_options to be "const".
* fish/fish.c (main): Likewise.
* test-tool/test-tool.c (main): Likewise.
Jim Meyering [Mon, 3 Aug 2009 09:53:26 +0000 (05:53 -0400)]
build: temporarily disable failing "syntax-check" rules
* cfg.mk (disable_temporarily): Define.
Jim Meyering [Mon, 3 Aug 2009 09:18:10 +0000 (05:18 -0400)]
maint: use a git submodule for gnulib
* .gitmodules: New file, to track gnulib.
* .gnulib: Submodule directory.
* Makefile.am (EXTRA_DIST): Don't list config.rpath or
gitlog-to-changelog.
* autogen.sh: Adapt to use the new submodule.
* cfg.mk: New file.
(SUBDIRS): Add gnulib/lib and gnulib/tests.
(dist-hook): Reflect new location of getlog-to-changelog.
* configure.ac: Set build-aux/ as AUX_DIR.
Invoke gl_EARLY and gl_INIT.
(AC_CONFIG_FILES): Add gnulib/lib/Makefile and gnulib/tests/Makefile.
Jim Meyering [Mon, 3 Aug 2009 09:33:35 +0000 (05:33 -0400)]
always include <config.h>
* ocaml/guestfs_c.c: Include <config.h>.
* examples/to-xml.c: Likewise.
* examples/hello.c: Likewise.
Jim Meyering [Mon, 3 Aug 2009 10:58:16 +0000 (06:58 -0400)]
build: add -I option to get config.h.
* ocaml/Makefile.am (AM_CPPFLAGS): Define.
(guestfs_c.o, guestfs_c_actions.o): Use it.
Jim Meyering [Mon, 3 Aug 2009 12:43:54 +0000 (08:43 -0400)]
guestfs: don't fault upon failed vasprintf
* src/guestfs.c (guestfs_perrorf): Handle failed vasprintf.
Matthew Booth [Mon, 3 Aug 2009 10:43:38 +0000 (11:43 +0100)]
Cleanup whitespace warnings in Lib.pm
Matthew Booth [Fri, 31 Jul 2009 16:31:54 +0000 (17:31 +0100)]
Use grub entries to find Linux kernels
This change adds grub parsing to Lib.pm. It adds the following structure to $os:
{boot}
->{configs}
->[0]
->{title} = "Fedora (2.6.29.6-213.fc11.i686.PAE)"
->{kernel} = \kernel
->{cmdline} = "ro root=/dev/mapper/vg_mbooth-lv_root rhgb"
->{initrd} = \initrd
->{default} = 0
The kernel and initrd entries are just references to their top level entries
under kernels and initrd_modules respectively.
It also changes the way Linux kernels and initrd are discovered. Instead of
searching /lib/modules and /boot for files with matching names, kernels and
initrds are scanned as they are discovered in grub.conf.
Additionally, the following attributes are added to the kernels top level entry:
* path
The path to the kernel's vmlinuz file.
* package
The name of the package which installed the kernel.
The xml output of virt-inspector is updated to reflect all of the above changes.
Richard W.M. Jones [Fri, 31 Jul 2009 22:24:11 +0000 (23:24 +0100)]
guestfish: Display RStructList results more pleasantly.
Richard W.M. Jones [Fri, 31 Jul 2009 21:31:05 +0000 (22:31 +0100)]
Add interface to Linux 'inotify' API.
Richard W.M. Jones [Fri, 31 Jul 2009 14:57:46 +0000 (15:57 +0100)]
lib: Add selinux=0 to default kernel command line.
SELinux exists in a very disturbed state if it is enabled at
boot time, but no policy is loaded. In particular, it messes
up the security.selinux extended attributes on files in a
not-very-useful way.
We can't enable SELinux because we don't know what policy
can or should be loaded. Therefore it's best to disable it
completely.
Matthew Booth [Fri, 31 Jul 2009 13:30:09 +0000 (14:30 +0100)]
Update incorrect comment in Lib.pm
Related: change the name of the function the comment describes to be more
accurate.
Richard W.M. Jones [Fri, 31 Jul 2009 11:12:29 +0000 (12:12 +0100)]
Improve warnings about missing tests.
Don't warn where a command just has no tests.
Instead check other commands' tests so we get a definitive
(and much smaller) list of commands that are not tested anywhere.
Richard W.M. Jones [Fri, 31 Jul 2009 10:55:38 +0000 (11:55 +0100)]
New commands: swapon-*, swapoff-*, mkswap-file.
swapon-device
swapoff-device
swapon-file
swapoff-file
swapon-label
swapoff-label
swapon-uuid
swapoff-uuid
mkswap-file
Richard W.M. Jones [Fri, 31 Jul 2009 07:57:10 +0000 (08:57 +0100)]
New command: 'fallocate' to (pre-)allocate sized files.
Richard W.M. Jones [Fri, 31 Jul 2009 07:39:43 +0000 (08:39 +0100)]
New commands: 'ln', 'ln-f', 'ln-s', 'ln-sf' and 'readlink'.
These commands can be used to make hard and symbolic links. The
readlink command is used to read existing symbolic links.
Richard W.M. Jones [Fri, 31 Jul 2009 06:39:30 +0000 (07:39 +0100)]
Add 'realpath' command.