libguestfs.git
14 years agogenerator.ml: move String/Device decls "down" to definition
Jim Meyering [Tue, 11 Aug 2009 14:17:41 +0000 (16:17 +0200)]
generator.ml: move String/Device decls "down" to definition

14 years agogenerator.ml: use new "Pathname" designation
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.

14 years agogenerator.ml: new type, "Pathname"
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.

14 years agogenerator.ml: emit "const char *" for Device and String params
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.

14 years agofix daemon.h's use of NEED_ROOT-in-#define
Jim Meyering [Mon, 10 Aug 2009 21:15:25 +0000 (23:15 +0200)]
fix daemon.h's use of NEED_ROOT-in-#define

14 years agoupdate all NEED_ROOT uses
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)/'

14 years ago* src/generator.ml: Change all `String "device"' to `Device "device"'.
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.

14 years agoupdate generator to emit each RESOLVE_DEVICE call
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.

14 years agos/NEED_ROOT_OR_IS_DEVICE/REQUIRE_ROOT_OR_RESOLVE_DEVICE/
Jim Meyering [Mon, 10 Aug 2009 17:10:14 +0000 (19:10 +0200)]
s/NEED_ROOT_OR_IS_DEVICE/REQUIRE_ROOT_OR_RESOLVE_DEVICE/

14 years agoguestfsd.c: correct s/IS_DEVICE/RESOLVE_DEVICE/ in another comment
Jim Meyering [Mon, 10 Aug 2009 17:08:11 +0000 (19:08 +0200)]
guestfsd.c: correct s/IS_DEVICE/RESOLVE_DEVICE/ in another comment

14 years agomanually adjust ABS_PATH uses for new semantics
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

14 years agoupdate all uses of ABS_PATH
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)/'

14 years agopropagate semantic changes to NEED_ROOT, NEED_ROOT_OR_IS_DEVICE
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.

14 years agoconvert the last few, manually
Jim Meyering [Mon, 10 Aug 2009 16:54:51 +0000 (18:54 +0200)]
convert the last few, manually

14 years agochange almost all uses: s/IS_DEVICE/RESOLVE_DEVICE/
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)/'

14 years ago* daemon/daemon.h (RESOLVE_DEVICE): Rename from IS_DEVICE.
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.

14 years agogenerator.ml: define new String-like type: "Device"
Jim Meyering [Mon, 10 Aug 2009 16:17:05 +0000 (18:17 +0200)]
generator.ml: define new String-like type: "Device"

14 years agoDon't assume grub is on a separate boot filesystem
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.

14 years agoadd_drive: Don't use cache=off if not supported by underlying filesystem.
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.

14 years agoAdd 'setcon', 'getcon' commands to set and get the SELinux context.
Richard Jones [Wed, 12 Aug 2009 15:56:09 +0000 (16:56 +0100)]
Add 'setcon', 'getcon' commands to set and get the SELinux context.

14 years agoReturn error if allocations fail.
Richard Jones [Wed, 12 Aug 2009 17:23:17 +0000 (18:23 +0100)]
Return error if allocations fail.

14 years agoAdd documentation for SELinux configuration.
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.

14 years agoSpelling fix: labelled -> labeled.
Richard Jones [Wed, 12 Aug 2009 16:40:07 +0000 (17:40 +0100)]
Spelling fix: labelled -> labeled.

14 years agoIf using SELinux, mount /selinux in the appliance.
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.

14 years agoAllow selinux=? kernel flag to be controlled.
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.

14 years agofish: don't read freed memory
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.

14 years agodoc: improve emacs snippets
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.

14 years agoFix regression test rhbz503169c10.sh.
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.

14 years agoAdd contents of /proc/mounts to the debugging information.
Richard Jones [Tue, 11 Aug 2009 18:35:04 +0000 (19:35 +0100)]
Add contents of /proc/mounts to the debugging information.

14 years agodaemon/ls: make do_ll require root, like all the rest
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.

14 years agobuild: avoid first-time configure-from-clone failure
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

14 years agobuild: enable automake's silent rules option
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.

14 years agobuild: daemon/do_debug: parameters aren't always unused
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)

14 years agobuild: avoid warnings in daemon/inotify.c
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.

14 years agobuild: avoid warnings in daemon/guestfsd.c
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.

14 years agobuild: avoid warnings in daemon/debug.c
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.

14 years agodefine ATTRIBUTE_UNUSED
Jim Meyering [Thu, 6 Aug 2009 13:25:03 +0000 (15:25 +0200)]
define ATTRIBUTE_UNUSED

* daemon/daemon.h (__attribute__, ATTRIBUTE_UNUSED): Define.

14 years agodaemon/file.c: remove duplicate absolute-path check
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.

14 years agoTidy up generation of java/Makefile.inc.
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).

14 years agoDebug: Improve the way the qemu command line is printed.
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.

14 years agoAllow network interface to be configured.
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

14 years agoTests: swapon_device test mkswap /dev/sda1 instead of /dev/sdb.
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.

14 years agoAlways pass mkswap -f parameter.
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.

14 years agoTests: Don't test block size in statvfs test.
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

14 years agoVersion 1.0.66 1.0.66
Richard Jones [Thu, 6 Aug 2009 16:02:25 +0000 (17:02 +0100)]
Version 1.0.66

14 years agoRHEL 5: inotify_init1 call did not exist on RHEL 5.
Richard Jones [Thu, 6 Aug 2009 14:44:20 +0000 (15:44 +0100)]
RHEL 5: inotify_init1 call did not exist on RHEL 5.

14 years agoFix: segfault in tab completion (RHBZ#516024).
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.

14 years agoFix errno check in readdir in devsparts.c
Matthew Booth [Thu, 6 Aug 2009 13:14:18 +0000 (14:14 +0100)]
Fix errno check in readdir in devsparts.c

14 years agoAdd ne2k-pci driver to the appliance.
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).

14 years agoMake user network numbering explicit.
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.

14 years agoappliance: More debug added to /init.
Richard Jones [Thu, 6 Aug 2009 11:10:52 +0000 (12:10 +0100)]
appliance: More debug added to /init.

14 years agoExclude daemon/lib and daemon/tests from being added to po/POTFILES.in
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

14 years agobuild: remove bootstrap's --gnulib-srcdir option
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/.

14 years agobuild: fix build failure
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.

14 years agodaemon: use gnulib
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.

14 years agoappliance: Include more debug output in the /init script.
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.

14 years agoRecognise cd-rom devices in devsparts.c
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.

14 years agoFix test failures in upload and download (RHBZ#515764)
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.

14 years agoAdd copyright and license notice to regressions/test-noexec-stack.pl
Richard Jones [Thu, 6 Aug 2009 07:56:39 +0000 (08:56 +0100)]
Add copyright and license notice to regressions/test-noexec-stack.pl

14 years agoAdd some newly-untracked files to .gitignore
Matthew Booth [Wed, 5 Aug 2009 16:32:02 +0000 (17:32 +0100)]
Add some newly-untracked files to .gitignore

14 years agoFix swapon_label test
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.

14 years agoAdd resultant change to po/POTFILES.in
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

14 years agoAdd a test for an executable stack in resultant binaries
Matthew Booth [Wed, 5 Aug 2009 13:55:54 +0000 (14:55 +0100)]
Add a test for an executable stack in resultant binaries

14 years agobuild: generate some just-removed files in po/
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.

14 years agobuild: remove trailing blank lines; enable the syntax-check rule
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.

14 years agobuild: exempt symlinks from trailing-blank-line prohibition
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.

14 years agobuild: enable syntax-check: TAB-only indentation in Makefiles
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.

14 years agobuild: tweak HACKING so we pass "make syntax-check"
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.

14 years agobuild: remove trailing blanks, enable syntax-check
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.

14 years agomaint: use COPYING.LIB version 2.1
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.

14 years agobuild: don't emit trailing blanks, remove generated file
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.

14 years agobuild: remove more files added by ./autogen.sh
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.

14 years agobuild: tell aclocal to search gnulib/m4, too
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".

14 years agoDocument and enforce the new spaces-only indentation policy.
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.

14 years agoConvert all TABs-as-indentation to spaces.
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 : $_'

14 years agoRemove files imported via autogen.sh.
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.

14 years agoallow use of #if HAVE_CONFIG_H, for example code
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.

14 years agoguestfs: fix typo in my recent change
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.

14 years agoGuard #inclusion of config.h in examples.
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.

14 years agobuild: reenable "syntax-check" rule: sc_const_long_option
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.

14 years agobuild: temporarily disable failing "syntax-check" rules
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.

14 years agomaint: use a git submodule for gnulib
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.

14 years agoalways include <config.h>
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.

14 years agobuild: add -I option to get config.h.
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.

14 years agoguestfs: don't fault upon failed vasprintf
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.

14 years agoCleanup whitespace warnings in Lib.pm
Matthew Booth [Mon, 3 Aug 2009 10:43:38 +0000 (11:43 +0100)]
Cleanup whitespace warnings in Lib.pm

14 years agoUse grub entries to find Linux kernels
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.

14 years agoguestfish: Display RStructList results more pleasantly.
Richard W.M. Jones [Fri, 31 Jul 2009 22:24:11 +0000 (23:24 +0100)]
guestfish: Display RStructList results more pleasantly.

14 years agoAdd interface to Linux 'inotify' API.
Richard W.M. Jones [Fri, 31 Jul 2009 21:31:05 +0000 (22:31 +0100)]
Add interface to Linux 'inotify' API.

14 years agolib: Add selinux=0 to default kernel command line.
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.

14 years agoUpdate incorrect comment in Lib.pm
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.

14 years agoImprove warnings about missing tests.
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.

14 years agoNew commands: swapon-*, swapoff-*, mkswap-file.
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

14 years agoNew command: 'fallocate' to (pre-)allocate sized files.
Richard W.M. Jones [Fri, 31 Jul 2009 07:57:10 +0000 (08:57 +0100)]
New command: 'fallocate' to (pre-)allocate sized files.

14 years agoNew commands: 'ln', 'ln-f', 'ln-s', 'ln-sf' and 'readlink'.
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.

14 years agoAdd 'realpath' command.
Richard W.M. Jones [Fri, 31 Jul 2009 06:39:30 +0000 (07:39 +0100)]
Add 'realpath' command.

14 years agoIgnore failure of 'mv' commands in appliance Makefile.
Richard W.M. Jones [Fri, 31 Jul 2009 06:40:57 +0000 (07:40 +0100)]
Ignore failure of 'mv' commands in appliance Makefile.

A lot of people report these as 'errors' when they are not.
Hide the error messages.

14 years agoconfigure.ac: more quoting
Jim Meyering [Thu, 30 Jul 2009 12:03:48 +0000 (14:03 +0200)]
configure.ac: more quoting

Also, prohibit an invalid value of $JAVA_HOME,
since it must be used unquoted below.

14 years agobuild: If guestfwd test fails, need to print AC_MSG_RESULT 'no'
Richard Jones [Thu, 30 Jul 2009 11:10:52 +0000 (12:10 +0100)]
build: If guestfwd test fails, need to print AC_MSG_RESULT 'no'

14 years agobuild: fix test for --nocompress option
Jim Meyering [Thu, 30 Jul 2009 08:50:49 +0000 (10:50 +0200)]
build: fix test for --nocompress option

Richard W.M. Jones wrote:
> On Wed, Jul 29, 2009 at 10:50:44PM +0200, Jim Meyering wrote:
>> The test for febootstrap-to-initramfs' --nocompress option
>> was always failing for me on F11.  Here's why:
> [...]
>
> Ouch that's obscure.  I've applied this patch and the previous
> one you sent too.  Thanks!

Our messages crossed.
Rebasing my fixed patch and adjusting the log:

>From 9e7846da50ceeee57187f703835bd3975e789719 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering@redhat.com>
Date: Wed, 29 Jul 2009 16:33:02 -0400
Subject: [PATCH] build: quote the other option test similarly

* configure.ac: Quote properly.