Commit Graph

358 Commits

Author SHA1 Message Date
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
Martin Gracik
86d7b2f804 Added package methods to yum helper class 2010-07-29 14:34:30 +02:00
Martin Gracik
aaef55c007 Fix file trees copying
Create the directories in advance to copying files,
not later, becase this caused some destination path
problems, like not appending the filename to the
destination directory, because it didn't exist.
2010-07-14 15:57:19 +02:00
Martin Gracik
01a1f80b79 Add the pedantic option
By default copy file errors are ignored,
when pedantic is set to True, they result in an exception.
2010-05-21 09:40:30 +02:00
Martin Gracik
4db8d27a22 Fixed some incorrect file paths 2010-04-22 13:04:17 +02:00
Martin Gracik
20b1ddd4b2 Changed some pathes to work with new anaconda
In recent anaconda version, some paths were changed
from usr/lib/anaconda-runtime to usr/share/anaconda
so we had to change this paths also in lorax
2010-04-09 13:54:02 +02:00
Martin Gracik
93d3b4e386 Fixed a typo 2010-04-07 09:40:37 +02:00
Martin Gracik
1ab4a60bc7 Added some packages and config files
Also fixed the modules symlink
2010-04-02 14:20:05 +02:00
Martin Gracik
36104bc143 Fix the modules and firmware symlinks
On architectures which have libdir other than lib,
we have to create the lib directory in the initrd
prior to copying modules and firmware
2010-03-31 17:28:29 +02:00
Martin Gracik
dfbedd6f0e Changed the path where we copy modules and firmware 2010-03-31 14:34:57 +02:00