summaryrefslogtreecommitdiffstats
path: root/appliance
Commit message (Collapse)AuthorAgeFilesLines
* rescue: Pass $TERM from library into the virt-rescue appliance.Richard Jones2010-03-261-1/+1
| | | | | We set it on the kernel command line, then get it out from there when the rescue appliance boots.
* rescue: Sync disk on exit, and improve messaging.Richard Jones2010-03-261-1/+10
|
* appliance: Set $PATH instead of hard-coding paths to binaries everywhere.Richard Jones2010-03-261-1/+2
| | | | | | Change the appliance so PATH includes common directories. Thus we don't need to hard-code paths to binaries (eg. "/sbin/fdisk") everywhere.
* Add support for minix filesystem (RHBZ#576689).Richard Jones2010-03-241-0/+2
|
* appliance: Run depmod to create modules.dep for the kernel.Richard Jones2010-03-221-0/+5
| | | | | | Since we disabled running new-kernel-pkg in febootstrap, this has meant that the normal appliance has not had a modules.dep file. (Supermin was unaffected by this).
* Add minimal vim to the appliance for virt-rescue.Richard Jones2010-03-161-0/+2
| | | | | virt-rescue lacks an editor. Add vim-minimal (Fedora) or vim-tiny (Debian) to make up for this omission.
* Tab to space (whitespace fixes only).Richard Jones2010-03-121-2/+2
|
* Rewrite libguestfs-supermin-helper in C.Richard Jones2010-03-123-125/+927
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libguestfs-supermin-helper was previously a shell script. Although we had steadily optimized it, there were a number of intractable hot spots: (1) cpio still reads input files in 512 byte chunks; this is *very* pessimal behaviour, particularly when SELinux is enabled. (2) the hostfiles globbing was done very inefficiently by the shell, with the shell rereading the same directory over and over again. This is a rewrite of this shell script in C. It is approximately 3 times faster without SELinux, and has an even greater speed difference with SELinux. The main features are: (a) It never frees memory, making it simpler. The program is designed to run and exit in sub-second times, so this is acceptable. (b) It caches directory reads, making the globbing of host files much faster (measured this as ~ 4 x speed up). (c) It doesn't use external cpio, but instead contains code to write newc format cpio files, which is all that the kernel can read. Unlike cpio, this code uses large buffers for reads and writes. (d) Ignores missing or unreadable hostfiles, whereas cpio gave a warning. (e) Checks all return values from system calls. (f) With --verbose flag, it will print messages timing itself. This passes all tests. Updated with feedback from Jim Meyering.
* Special case hostfiles handling for libntfs-3g.soRichard Jones2010-03-121-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ntfs-3g project keeps bumping their soname, and this causes dependency problems for the Fedora package. The root of the problem is we depend on /lib/libntfs-3g.so.<N>, but if <N> keeps bumping, the dependency keeps breaking. This commit changes the hostfiles (and hence dependency) to be on /lib/libntfs-3g.so.* instead. The downside to this is we could end up pulling more files into the appliance than are strictly required, but it will fix the Fedora packaging problems being felt by the Fedora maintainer of ntfs-3g. After applying this commit, the change to hostfiles looks like this: @@ -1489,7 +1489,7 @@ ./lib/libpam_misc.so.0 ./lib/libdmraid.so ./lib/libidn.so.11 -./lib/libntfs-3g.so.74 +./lib/libntfs-3g.so.* ./lib/libext2fs.so.2.* ./lib/libpam.so.0 ./lib/libsepol.so.1 @@ -1520,7 +1520,6 @@ ./lib/libnss_files-*.so ./lib/libgio-2.0.so.0 ./lib/libpam_misc.so.0.* -./lib/libntfs-3g.so.74.* ./lib/libanl.so.1 ./lib/libdevmapper-event-lvm2.so.2.* ./lib/libpthread.so.0
* Remove plymouth libraries from the appliance.Richard Jones2010-03-081-1/+3
|
* More complete fix for bash regexp quoting bug.Richard Jones2010-03-021-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | Commit 457fccae1b665347 was not a complete fix, in that it didn't work properly on RHEL 5 era bash (3.2.x). For example: file=libntfs-3g.so.74 [[ "$file" =~ ^lib(.*)\.so\.([0-9]+)\. ]] && \ echo "lib${BASH_REMATCH[1]}.so.${BASH_REMATCH[2]}.*" would on those old shells print: libntfs-3g.so.7.* It seems the final \. was being treated as a plain period (ie. match anything). The only way to work around this incompatibility is to assign the patterns to variables and match on those, ie: p='^lib(.*)\.so\.([0-9]+)\.' [[ "$file" =~ $p ]] && ... This works in both old and new shells.
* build: Fix for bash quoting in supermin-split.sh.in (RHBZ#566511 RHBZ#566512)Richard Jones2010-03-011-8/+19
| | | | | | | | | | Bash changed how the =~ operator worked, see bash FAQ question E14 http://tiswww.case.edu/php/chet/bash/FAQ and http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487387#25 (RHBZ#566511). This also stops stray "builddir" (yum database) files being incorporated into supermin hostfiles in Koji (RHBZ#566512).
* Use 'service' if installedGuido Günther2010-02-241-1/+10
| | | | | | | | | | | | | | | | | | | | | Hi, attached patch should make: http://git.debian.org/?p=pkg-libvirt/libguestfs.git;a=blob;f=debian/patches/0003-appliance-Use-service-udev-start-instead-of-running-.patch;h=c9e6b8489807d4fb1247cb6a8b6f9799bad2a09e;hb=d3a21b5b6850fc3c6e7903d0f5cafa3eb4197d49 http://git.debian.org/?p=pkg-libvirt/libguestfs.git;a=blob;f=debian/patches/0004-Ubuntu-Prefer-starting-udev-by-hand-instead-of-using.patch;h=64b65a971b186e6ab1c9351e94b46d6f5aa242e0;hb=d3a21b5b6850fc3c6e7903d0f5cafa3eb4197d49 superflous. If there's an init script it uses 'service' or falls back to calling the init script directly if it isn't there, otherwise it starts udev directly. Tested on Debian only so far. The patch is based on Rich's above two patches. Cheers, -- Guido From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> Date: Tue, 23 Feb 2010 18:49:34 +0100 Subject: [PATCH] Check for service and use it if it's there Based on Richard's two patches for the Ubuntu build.
* enable scrub on DebianGuido Günther2010-02-221-1/+1
|
* Another unreadable file: /var/log/yum.logRichard Jones2010-01-291-0/+1
|
* supermin: Add special case for libgcc_s-*.so.NRichard Jones2010-01-281-0/+4
| | | | | | Because this file contains the GCC version and a date, it frequently changes on the host. Create a special case so that this file is matched using a wildcard for the version/date part of the name.
* supermin: Prevent multilib corruption (RHBZ#558593).Richard Jones2010-01-271-8/+36
| | | | | | | | | | | | | | | | | | | On some combination of installing, upgrading and removing the base libguestfs package on x86_64, multilib can corrupt libguestfs by leaving a copy of /usr/bin/libguestfs-supermin-helper around which references the wrong architecture (usually, contains links to the i386-based appliance, when the x86_64 appliance should be constructed). This commit changes libguestfs-supermin-helper so that the script is the same on all architectures. Instead, the library passes the differences to the script (eg. $host_cpu). Because the i386 and x86_64 libraries should be at different locations (/usr/lib vs /usr/lib64) this should prevent multilib from screwing things up. Related links: https://bugzilla.redhat.com/show_bug.cgi?id=558593 http://rwmj.wordpress.com/2009/11/16/please-someone-shoot-multilib/#content https://bugzilla.redhat.com/show_bug.cgi?id=235752
* supermin: Ignore more unreadable files found on RHEL 6.Richard Jones2010-01-251-0/+17
|
* Missing crc kernel module on RHEL 6 / Linux 2.6.32 (fixes RHBZ#557195)Richard Jones2010-01-211-2/+3
|
* appliance: Special case handling for libbfd in the supermin appliance.Richard Jones2009-12-161-0/+4
| | | | | | | | | | | The libbfd library has a constantly changing, non-standard and very long name, eg: /usr/lib64/libbfd-2.20.51.0.2-7.fc13.so Just add a special case to deal with this. This fixes the guestfs_strings command, which relies on the external strings binary which uses this library.
* appliance: Ignore unreadable dbus helper programs.Richard Jones2009-12-161-0/+2
|
* appliance: Fix code which gets list of kernels.Matthew Booth2009-12-071-1/+4
| | | | | The first 'ls' command was failing, so the second 'ls' command would never run at all.
* supermin: Die with an error if no kernels found (RHBZ#539746).Richard Jones2009-11-251-1/+7
| | | | | Updated with a suggestion from Jim Meyering to use the '-d' option to ls to avoid a future case of directories matching.
* build: Ensure building appliance depends on guestfsdMatthew Booth2009-11-211-1/+1
| | | | | | | Previously, only the update.sh rule checked the daemon had been built. update.sh is called directly from within make.sh, so in that path the dependency was never checked. This adds the daemon dependency explicitly to the rebuild-from-scratch path.
* build: Fix inter-directory dependenciesMatthew Booth2009-11-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds an explicit dependency on generator.ml for every file it generates, except java files. Java is left for another time because it's considerably trickier. It also adds a build rule for src/libguestfs.la so it can be rebuilt as required from other directories. It does this by creating a top level make file, subdir-rules.mk, which can be included from sub-directories. sub-directories need to define 'generator_built' to include local files which are built by generator.ml, and they will be updated automatically. This fixes parallel make, and will automatically re-create generated files when make is run from any directory. It also fixes the problem which efad4f53 was targetting. Specifically, src/guestfs_protocol.(c|h) had an erroneous dependency on stamp-generator, and therefore generator.ml, despite not being directly created by it. This caused them to be recreated every time generator.ml ran rather than only when src/guestfs_protocol.x was updated, which cascaded into a daemon and therefore appliance update. This patch also changes the contents of the distribution tarball by including files created by rpcgen.
* appliance: Print uptime.Richard Jones2009-11-181-2/+4
| | | | | Print the uptime just before the init script runs the daemon, so we have a good idea of how long the kernel boot + init script takes to run.
* Set cpio blocksize to 64K.Richard Jones2009-11-111-1/+1
| | | | | See: https://www.redhat.com/archives/fedora-devel-list/2009-November/thread.html#00523
* Debian: don't depend on gfs-tools since these have depsolving problems.Richard Jones2009-11-101-0/+2
|
* Add ata_piix to kernel module whitelist (RHBZ#533886).Richard Jones2009-11-101-0/+1
|
* appliance: Enhance mkfs to support many more filesystem types.Richard Jones2009-11-091-0/+19
| | | | | | | | | | | | | | | | This fixes support for NTFS, and adds support for: - reiserfs - btrfs - GFS and GFS2 - JFS - HFS and HFS+ - NILFS - OCFS2 (disabled) We don't enable OCFS2 by default, because it pulls in about 140 extra packages into the appliance. GFS & GFS2 default to single node (no lock manager etc).
* appliance: Add xfsprogs to list of packagesRichard Jones2009-11-051-0/+1
|
* Debian: Include ISOFS driver in the kernel.Richard Jones2009-11-041-0/+3
|
* Add make.sh.in to EXTRA_DIST.Richard Jones2009-11-031-1/+2
|
* appliance: Don't rebuild the appliance every time configure runs.Richard Jones2009-11-021-0/+9
| | | | | | | | | | config.status touches make.sh each time it runs, even if the resulting script would not change. This causes the appliance to get rebuilt much more frequently than is necessary. There's no way to stop configure running, but we can move the config.status command into a Makefile rule to stop this undesirable behaviour.
* Include HFS (Mac OS X) driver.Richard Jones2009-10-251-1/+2
|
* init: Check that start_udev succeededMatthew Booth2009-10-211-2/+2
| | | | | | | If start_udev fails for any reason, notice and fall through to manual /dev creation. Patch from Charles Duffy <charles@dyfis.net>
* Add 'virt-rescue' command.Richard Jones2009-09-231-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This command runs a "rescue appliance" against a virtual machine or disk image. This is useful for making ad-hoc interactive changes to virtual machines. $ virt-rescue --ro /dev/vg_trick/F11x64 Welcome to virt-rescue, the libguestfs rescue shell. Note: The contents of / are the rescue appliance. You have to mount the guest's partitions under /sysroot before you will be able to examine them. bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell ><rescue> mount /dev/vg_f11x64/lv_root /sysroot EXT4-fs (dm-0): barriers enabled kjournald2 starting: pid 269, dev dm-0:8, commit interval 5 seconds EXT4-fs (dm-0): internal journal on dm-0:8 EXT4-fs (dm-0): delayed allocation enabled EXT4-fs: file extents enabled EXT4-fs: mballoc enabled EXT4-fs (dm-0): mounted filesystem with ordered data mode ><rescue> ls /sysroot/ bin dev home lib64 media opt root selinux sys usr boot etc lib lost+found mnt proc sbin srv tmp var ><rescue> exit
* Tidy up appliance rescue code.Richard Jones2009-09-231-3/+7
| | | | | The appliance shouldn't run the daemon after we leave the rescue shell. It should just exit instead.
* Add diffutils package.Richard Jones2009-09-141-0/+1
| | | | | On Fedora 12, /usr/bin/cmp is not pulled in unless we explicitly add the diffutils package.
* mke2fs: Use e4fsprogs programs if available.Richard W.M. Jones2009-08-191-0/+2
| | | | | | | On RHEL 5, mke2fs is ancient, and there is a non-standard "mke4fs" binary which acts like the more recent mke2fs on Fedora. Since there are several annoyances and actual bugs in the ancient RHEL 5 mke2fs, use mke4fs instead if it's available.
* appliance: Remove /usr/sbin/tcpd - it's unreadable on RHEL 5.4.Richard Jones2009-08-131-0/+1
|
* Add 'setcon', 'getcon' commands to set and get the SELinux context.Richard Jones2009-08-131-0/+1
|
* If using SELinux, mount /selinux in the appliance.Richard Jones2009-08-122-0/+7
| | | | | | 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.
* Add contents of /proc/mounts to the debugging information.Richard Jones2009-08-111-0/+1
|
* Add ne2k-pci driver to the appliance.Richard Jones2009-08-061-0/+4
| | | | | This allows people to use the ne2k-pci network driver, for those situations where the virtio_net driver is broken (cough 516022 cough).
* appliance: More debug added to /init.Richard Jones2009-08-061-0/+2
|
* appliance: Include more debug output in the /init script.Richard Jones2009-08-061-5/+12
| | | | | Output more debugging information from this script, to enhance the usefulness of LIBGUESTFS_DEBUG output.
* build: remove trailing blank lines; enable the syntax-check ruleJim Meyering2009-08-045-5/+0
| | | | | | | | | | | | | | * 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.
* Convert all TABs-as-indentation to spaces.Jim Meyering2009-08-032-14/+14
| | | | | | | | | | | 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 : $_'
* Ignore failure of 'mv' commands in appliance Makefile.Richard W.M. Jones2009-07-311-2/+2
| | | | | A lot of people report these as 'errors' when they are not. Hide the error messages.