Commit Graph

367 Commits

Author SHA1 Message Date
Will Woods e7a89f6eeb __init__ cleanup: remove unneeded imports (subprocess, glob, math) 2011-05-12 17:28:53 -04:00
Will Woods 79f2a8e663 __init__ treebuilder fixup: yes, we need to backup installtree 2011-05-12 17:28:53 -04:00
Will Woods b436479f97 Add linktree(src, dst) to sysutils 2011-05-12 17:28:53 -04:00
Will Woods 5e242925ec treebuilder fixup: update comments, import re 2011-05-12 17:28:53 -04:00
Will Woods 0a2df6bda9 fixup: instantiate TreeBuilder correctly 2011-05-12 17:28:53 -04:00
Will Woods 4cc05f995b fixup: import Treebuilder in __init__.py 2011-05-12 17:28:53 -04:00
Will Woods cd684d2b3d fixup: add remove to sysutils.__all__ 2011-05-12 17:28:53 -04:00
Will Woods 1fe66c1d06 WIP: add TODO 2011-05-09 15:33:55 -04:00
Will Woods bd1fd1e139 Create runtime using imgutils and merge it with initramfs 2011-05-09 15:33:55 -04:00
Will Woods 3d5a3edb67 Replace images with treebuilder 2011-05-09 15:33:55 -04:00
Will Woods a5b7ac5e6e installtree: remove workdir and kernels
Since we want all the modules in the runtime image, there's no need
to deal with the individual kernels. And workdir was only being used
to mess with the modules, so we don't need that either.
2011-05-09 15:33:55 -04:00
Will Woods 756b44948e Remove workdir/path from BuildStamp, DiscInfo, TreeInfo
This allows us to create these objects without needing workdir,
which means we can use them outside of __init__.py.

We can also write them directly to their final destination
instead of writing them to the workdir and then copying them in.
2011-05-09 15:33:55 -04:00
Will Woods 9b9f021caf Move arch-specific logic out of installtree
Any decisions about arch-specific stuff should happen in the Lorax class
or the arch-specific templates/code. Move that logic up to Lorax.run()
and remove installtree.basearch.
2011-05-09 15:33:55 -04:00
Will Woods 051af505ae refactor: move big code chunks from Lorax.run to installtree
Move package removal code to installtree.remove_package and
the module install loop to installtree.install_kernel_modules.
2011-05-09 15:33:55 -04:00
Will Woods a82da40015 Add "getdata" method to LoraxTemplate
getdata(cmd) will return a generator that yields every token on every
line that starts with the token "cmd". getdata(cmd, mode="lines") will
yield a list for each line rather than every individual token.

this simplifies some things in __init__.py.
2011-05-09 15:33:55 -04:00
Will Woods b186317213 Make Lorax.arch and Lorax.product into objects
arch has three attributes: .buildarch, .basearch, and .libdir
product has six: .name, .version, .release, .variant, .bugurl, and
is_beta

This makes it easier to pass this data into functions/templates.
2011-05-09 15:33:54 -04:00
Will Woods 17c9c8bfaf Remove dead/commented code from __init__ and outputroot
Remove commented-out code, EFI-building code, some redundant comments,
and outputroot.
2011-05-09 15:33:54 -04:00
Will Woods 1350cd028f treebuilder.py: uses templates to create trees/images
TreeBuilder uses templates full of commands (like ramdisk.ltmpl) to
create the output tree and boot images. There are 4 arch-specific
templates, plus a bonus EFI template which can handle EFI image creation
for any arch that implements EFI.
2011-05-09 15:33:54 -04:00
Will Woods 6a5851d53b mkefiboot: make efi boot images using imgutils
This adds the new "mkefiboot" cmd, which creates an efiboot img in the
magical way that EFI requires. There doesn't seem to be a good tool for
this (unlike the existing tools for all the other weirdo boot image
types) so it was necessary to create one.
2011-05-09 15:33:54 -04:00
Will Woods b2b1c36167 imgutils.py: utilities for creating disk images
This contains simple functions for creating disk images:
  mkcpio, mksquashfs, mkdosimg, mkext4img, mkbtrfsimg

And the helper functions they use:
  truncate, loop_{attach,detach}, dm_{attach,detach},
  mount/umount, estimate_size, roundup, cpio_copytree
2011-05-09 10:49:09 -04:00
Will Woods 1e550f8227 Add remove() to sysutils
This adds the remove() function, which works a lot like rm -rf - if you
remove() a file, it uses os.unlink, and if you remove() a directory it
uses shutils.rmtree().
2011-05-09 10:29:00 -04:00
Martin Gracik 421e4c3a00 Allow compression type be specified in lorax.conf 2011-04-22 10:57:51 +02:00
Martin Gracik 79b6e5bfa1 Use xz and gzip commands instead of libraries
We're already using find and cpio subprocesses, so using
one more subprocess is not a problem. With this approach
we can pipe cpio to the xz/gzip command, which should
help with the memory issues.
2011-04-22 10:57:51 +02:00
Martin Gracik 19f60aebc8 use reqs not regs for files to backup (dgilmore) 2011-04-15 15:46:06 +02:00
Martin Gracik 713d6f94e7 getkeymaps resides in /usr/libexec/anaconda 2011-04-15 09:47:53 +02:00
Martin Gracik 4c25044020 workdir is a local variable, not a class attribute 2011-04-15 09:42:44 +02:00
Martin Gracik 06ac5762af Add sparcv9 to arch map 2011-04-13 16:14:32 +02:00
Martin Gracik 031e6bab10 Change the location of *.b files on sparc 2011-04-13 16:14:21 +02:00
Chris Lumens 706ac6a55c Add a /bin/login shim for use only in the installation environment. 2011-04-12 10:36:16 -04:00
Chris Lumens b58190d660 Add systemd and agetty to the installation environment.
Also, set up anaconda.target to be the default systemd unit.
2011-04-12 10:36:04 -04:00
Chris Lumens 51addbb7b4 Specify "cpio -H newc" instead of "cpio -c".
The latter does not always work with every version of cpio, so it's too
unreliable to use.
2011-04-12 10:35:02 -04:00
Martin Gracik 1009ef9df0 Provide shutdown on s390x (#694518) 2011-04-12 12:31:32 +02:00
Martin Gracik 872d0d6ffa Generate ssh keys on s390 2011-03-28 13:14:37 +02:00
Martin Gracik c47c9d5520 Do not check if we have all commands 2011-03-23 14:15:15 +01:00
Martin Gracik c8a52d628a Change location of addrsize and mk-s390-cdboot 2011-03-23 14:07:58 +01:00
Martin Gracik b50f1cb802 Shutdown is in another location 2011-03-23 14:07:26 +01:00
Martin Gracik 2a0dcf846f Do not skip broken packages 2011-03-23 14:06:33 +01:00
Martin Gracik 05fd600885 Wait for subprocess to finish 2011-03-23 09:22:39 +01:00
Martin Gracik 1de4bb132c Have to call os.makedirs 2011-03-22 17:36:46 +01:00
Martin Gracik 84f00068e3 images dir already exists, we just need to set it 2011-03-21 09:23:01 +01:00
Martin Gracik 69214fd47a The biarch is a function not an attribute 2011-03-17 13:26:24 +01:00
Martin Gracik 4486889792 Create images directory in outputtree 2011-03-17 13:04:11 +01:00
Martin Gracik dc7b2e28dc Use gzip on ppc initrd 2011-03-17 11:03:22 +01:00
Martin Gracik 8ed6ac4d7b Create efibootdir if doing efi images 2011-03-17 11:03:22 +01:00
Ales Kozumplik f851fc4636 Get rid of create_gconf().
We do what create_gconf is trying to achieve in get_config_files(). What's
more, the files in crete_gconf() end up in the root directory where
nothing can possibly use them because the root user's home is now /root.
2011-03-16 09:14:31 +01:00
Ales Kozumplik 8565998511 gconf/metacity: have only one workspace.
Related: rhbz#683548
2011-03-16 09:06:21 +01:00
Martin Gracik 70cfd01f00 Replace variables in yaboot.conf 2011-03-15 16:38:08 +01:00
Martin Gracik 4af2c865c9 Skip keymap creation on s390 2011-03-15 14:29:29 +01:00
Martin Gracik a21be14937 Copy shutdown and linuxrc.s390 on s390 2011-03-15 14:27:31 +01:00
Martin Gracik 4d1795a091 Add support for sparc 2011-03-15 14:14:51 +01:00
Martin Gracik 5878db3e81 Use factory to get the image classes 2011-03-15 13:51:43 +01:00
Martin Gracik c922ae64a9 treeinfo has to be addressed as self.treeinfo 2011-03-15 10:54:25 +01:00
Martin Gracik 3c8ccf997a Add support for s390 2011-03-15 10:53:52 +01:00
Martin Gracik 566c992653 Add the xen section to treeinfo on x86_64 2011-03-14 14:07:32 +01:00
Martin Gracik 55fd24ea86 Fix magic and mapping paths 2011-03-14 14:01:01 +01:00
Martin Gracik fdbf53227e Fix passing of prepboot and macboot arguments 2011-03-14 14:01:01 +01:00
Martin Gracik ab515eff64 Small ppc fixes 2011-03-14 14:01:01 +01:00
Martin Gracik 201116ac31 Check if the file we want to remove exists
If we have directory symlinks, some files could have already
been removed and we get a traceback. This prevents the traceback.
2011-03-14 14:01:01 +01:00
Martin Gracik b7912a22b3 Change the location of zImage.lds 2011-03-14 14:01:00 +01:00
Martin Gracik 3e965f5a30 memtest and efika.forth are in /boot 2011-03-14 14:01:00 +01:00
Martin Gracik 98d695f9a2 Add support for ppc
The way we create the images had to be changed a little.
Some code had to be moved to other places, so we can create
images for other architectures too.
2011-03-14 14:01:00 +01:00
Martin Gracik 6e14df3478 Add the images-xen section to treeinfo on x86_64 2011-03-14 09:51:19 +01:00
Martin Gracik 213125199d Print a message when no arguments given (#684463) 2011-03-14 09:43:12 +01:00
Martin Gracik 0a7f221bd5 Mako template returns unicode strings (#681003)
New mako template returns unicode strings, which are
a problem for shlex. We need to encode them to ascii.
2011-03-10 10:53:55 +01:00
Martin Gracik 8e9f96c12a The check option in options causes ValueError
The crc32 check we want is the default anyway,
so we don't need to specify it.
2011-02-22 18:20:13 +01:00
Ales Kozumplik 0ce2dc14e4 Disable all ctrl-alt-arrow metacity shortcuts.
No need for desktop switching, just makes the users confused.

Resolves: rhbz#678892
2011-02-21 15:26:30 +01:00
Martin Gracik a9e52a70f4 Use xz when compressing the initrd
This makes the image a lot smaller.
2011-02-18 10:25:53 +01:00
Martin Sivak ee955f3ad1 Keep the source files for locales and get rid of the binary form.
Anaconda prepares locale as needed during runtime. This saves space.
2011-02-14 20:11:43 +01:00
Martin Gracik cdff835357 Add mkdir support to template
Allow mkdir command in initrd template,
so we can specify directories we need
to create in install tree.
2011-01-31 20:57:07 +01:00
Martin Gracik d264eb3ed8 Don't create mtab symlink, already exists
Resolves: #671155
2011-01-21 11:18:47 +01:00
Martin Gracik f5ac972e92 Exit with error if we have no lang-table 2011-01-20 09:00:00 +01:00
Martin Gracik 58d5ecf2a7 Fix file logging 2011-01-19 15:37:44 +01:00
Martin Gracik 47cf65df19 Overwrite the /etc/shadow file 2011-01-19 13:54:50 +01:00
Martin Gracik b00b0a77c9 Use [images-xen] section for PAE and xen kernels 2011-01-17 16:29:46 +01:00
Martin Gracik cd339589cc Add the initd and kernel lines to .treeinfo 2011-01-09 12:50:39 +01:00
Martin Gracik d0f2c1a936 Move lorax executable to sbin 2010-12-17 16:46:44 +01:00
Martin Gracik 5b3fdf6936 Remove mksquashfs command
Not used anywhere
2010-12-17 15:59:26 +01:00
Martin Gracik a7bcc9188d Use losetup from util-linux-ng
losetup-stub was removed from anaconda runtime,
we want to use the one from util-linux-ng
2010-12-13 09:03:15 +01:00
Martin Gracik ea3df8ad20 Do not create efi images for 32 bit archs 2010-12-08 17:21:10 +01:00
Martin Gracik ce25d50495 Add a new line after version in buildstamp 2010-12-08 15:53:41 +01:00
Martin Gracik f85fa1d1ed Copy main kernel to isolinux and only others to pxeboot directory 2010-12-07 14:08:30 +01:00
Martin Gracik bdb9b700f4 Split initrd for multiple kernels 2010-12-06 15:05:47 +01:00
Martin Gracik 826e580cd8 Change the XEN kernel constant value 2010-12-06 13:53:06 +01:00
Martin Gracik 688b4aa5ae Add buildarch variable to template 2010-12-06 10:52:39 +01:00
Martin Gracik c062a954f7 Fixed pylint errors in yumhelper.py 2010-12-02 13:34:29 +01:00
Martin Gracik ea6139f125 Fixed pylint errors in sysutils.py 2010-12-02 13:29:55 +01:00
Martin Gracik 5a3ff79726 Fixed pylint errors in outputtree.py 2010-12-02 13:27:08 +01:00
Martin Gracik 007ed0dc76 Fixed pylint errors in output.py 2010-12-02 13:24:15 +01:00
Martin Gracik b7504823e0 Fixed pylint errors in ltmpl.py 2010-12-02 13:20:41 +01:00
Martin Gracik 98fab0f389 Fix pylint errors in installtree.py 2010-12-02 13:16:11 +01:00
Martin Gracik 070fbdab10 Use constant value from constants.py for fs overhead 2010-12-02 13:00:31 +01:00
Martin Gracik 55f6acb620 Fix pylint errors in __init__.py 2010-12-02 12:59:08 +01:00
Martin Gracik 449df91699 Add FS_OVERHEAD constant to constats.py 2010-12-02 12:57:13 +01:00
Martin Gracik fc72557eb1 Fixed pylint errors in constants.py 2010-12-02 12:44:16 +01:00
Martin Gracik 995e6d7e13 Fixed pylint errors in base.py 2010-12-02 12:41:14 +01:00
Martin Gracik a265f459bf Change isolinux local variable to instance variable 2010-11-29 10:22:52 +01:00
Martin Gracik bde6e5c516 Enable at-spi-corba in gconf 2010-11-24 13:48:59 +01:00
Martin Gracik d995d82ed6 Break get_isolinux() in more separate methods 2010-11-23 16:43:39 +01:00
Martin Gracik 330217e721 Add subprocess module to __init__.py
It got lost somewhere during the imports cleanup
2010-11-23 15:05:23 +01:00
Martin Gracik 413fc84cb3 Use kernel in outputtree when creating efi images 2010-11-23 14:38:06 +01:00
Martin Gracik 3ce70b9e49 Move kernel constants to constants.py 2010-11-23 14:25:39 +01:00
Martin Gracik c8b1f5f5ea Create the outputtree kernels holder after copying the kernels 2010-11-23 14:20:42 +01:00
Martin Gracik 6dcc1b8666 Don't copy kernels to workdir, copy them straight to outputdir 2010-11-23 14:20:42 +01:00
Martin Gracik 9b73b764b8 Don't change the kernels object inside get_kernels() 2010-11-23 13:42:27 +01:00
Martin Gracik 4ff7d533b6 Use DataHolder instead of namedtuple for holding initrd info 2010-11-23 13:29:11 +01:00
Martin Gracik 0224cdf660 Use DataHolder instead of namedtuple for holding kernel info 2010-11-23 13:27:07 +01:00
Martin Gracik e9eea0f3ea Allow DataHolder to have initial values 2010-11-23 13:19:36 +01:00
Martin Gracik 33286629b5 Remove unneeded imports from installtree.py 2010-11-23 13:17:05 +01:00
Martin Gracik bee1743163 Remove unneeded import from __init__.py 2010-11-23 13:12:21 +01:00
Martin Gracik ab6af2dc04 Remove not needed imports from outputtree.py 2010-11-23 13:04:38 +01:00
Martin Gracik 485fad16e5 Add the DataHolder class 2010-11-23 12:49:02 +01:00
Martin Gracik 60740ae505 Minor buildstamp changes 2010-11-23 12:41:30 +01:00
Martin Gracik e12c282820 Remove support for writing disc number in discinfo and treeinfo 2010-11-23 12:37:28 +01:00
Martin Gracik 555dacacc3 Enable at-spi-corba in gconf 2010-11-23 11:15:33 +01:00
Martin Gracik 3413733661 Break up __init__.py into more modules 2010-11-23 11:14:25 +01:00
Martin Gracik 1084413b6b Create and use separate installroot directory
The one provided by pungi may be poluted already,
and we don't want this to be left in the initrd.img.
2010-11-16 13:33:50 +01:00
Martin Gracik d888225dd7 Export chown and chmod functions 2010-11-16 12:25:05 +01:00
Martin Gracik cf8fb74155 Change permissions on shadow file 2010-11-16 09:36:46 +01:00
Martin Gracik 9ec28c1a49 Add chown and chmod functions to sysutils 2010-11-16 09:36:07 +01:00
Martin Gracik 1fd86d4a0c Fix copying of other kernels 2010-11-12 14:24:56 +01:00
Martin Gracik 87ad91c475 Fix cleaning up of modules if we have more kernels 2010-11-12 13:00:05 +01:00
Martin Gracik ac3d16d170 Change the way we make the gconf config 2010-11-11 13:51:04 +01:00
Martin Gracik 9a0dac3277 Add at-spi-corba entry to gconf
Needed for dogtail.
2010-11-11 13:37:36 +01:00
Martin Gracik 98b49cdacd Create a separate pylorax.log file 2010-11-10 18:21:24 +01:00
Martin Gracik e56dbed280 Don't use ConfigParser for .buildstamp
Anaconda is case sensitive when parsing the .buildstamp
and ConfigParser makes all the keys lowercase.
2010-11-09 16:07:44 +01:00
Martin Gracik b1ce740a18 Setup PATH
Add /sbin and /usr/sbin to PATH, because when used with cron,
cron does not include it in PATH.
2010-11-09 09:46:58 +01:00
Martin Gracik e5ef6300c3 Log PATH variable we have 2010-11-09 09:37:49 +01:00
Martin Gracik c7b4ec9df5 Add implantisomd5 execution 2010-11-08 16:50:59 +01:00
Martin Gracik 85c91cf6b2 Skip the src arch
Pungi returns also src packages,
so we can get a src build architecture,
which is not a usable build arch.
2010-11-08 16:09:04 +01:00
Martin Gracik 08a752551a Print out the buildarch right after we get it 2010-11-08 15:59:38 +01:00
Martin Gracik d9f1f30944 Fix the yum download messages 2010-11-08 15:31:18 +01:00
Martin Gracik 6925e4d3b3 Don't use quotes for gconftool arguments 2010-11-08 15:02:58 +01:00
Martin Gracik 27b8b56431 Print a nice yum download output 2010-11-08 15:02:49 +01:00
Martin Gracik a1d0a53aa1 Initrd tree modifications 2010-11-08 13:52:11 +01:00
Martin Gracik d70189dffc Skip broken packages 2010-11-08 13:51:09 +01:00
Martin Gracik 3c7ad7d9ea Write treeinfo and discinfo 2010-11-03 14:11:08 +01:00
Martin Gracik d09c2980ec Save list of installed packages 2010-11-03 13:40:03 +01:00
Martin Gracik be8c2859af Create kernel symlink
Don't copy kernel to isolinx and pxeboot directory.
Create hard link instead.
2010-11-02 14:11:50 +01:00
Martin Gracik 4dcdd835b0 Make initrd hard link
Don't copy initrd to both isolinux anx pxeboot
directory. Create a hard link in isolinux instead.
2010-11-02 14:06:55 +01:00
Martin Gracik 5f6c661d28 Remove also broken symlinks 2010-10-29 14:41:42 +02:00
Martin Gracik 2fc71cc74e Catch template exceptions 2010-10-29 14:41:23 +02:00
Martin Gracik 1a5a636e24 Remove code for creating stage2 image 2010-10-27 11:23:47 +02:00
Martin Gracik d6998bd841 Initrd image updates 2010-10-22 16:02:53 +02:00
Martin Gracik e22457b09a Various initrd updates 2010-10-19 17:35:50 +02:00
Martin Gracik f96f015593 Fix error when removing a symbolic link to a dir 2010-10-12 18:56:08 +02:00
Martin Gracik 45c5ef566c Experimental single initrd image 2010-10-12 18:32:35 +02:00
Martin Gracik 8034dd06bb Minor changes 2010-08-17 14:14:36 +02:00
Martin Gracik 15988fd5b2 Allow specifying a mask when removing package files 2010-08-12 16:27:35 +02:00
Martin Gracik 5036ff6bd8 Add support for removing whole packages
Remove all files from a package if removepkg <pkg>
is specified in install image template.
2010-07-29 19:04:30 +02:00
Martin Gracik f277852f7a Don't run ld_config from within the insttree class 2010-07-29 14:38:38 +02:00