Commit Graph

396 Commits

Author SHA1 Message Date
Will Woods f8da53ac51 remove get_missing from LoraxRequiredCommands 2011-06-27 12:57:50 -04:00
Will Woods 2100445ad1 Expand braces (e.g. /usr/share/{doc,man,info}) in globs
The braces will be expanded as in the shell, before globbing. Note that
the output may include duplicates.
2011-06-24 18:12:59 -04:00
Will Woods 0fc63effd6 Remove TODO - doesn't need to be in git 2011-06-24 18:12:11 -04:00
Will Woods ef8e0b4538 add DataHolder.copy()
Returns a DataHolder rather than a dict, so copy() works as expected.
2011-06-24 17:42:53 -04:00
Will Woods 8122690ab9 runtime is images/install.img, or LiveOS/squashfs.img on boot.iso
rename the runtime image in the tree and on the ISO.
2011-06-24 17:26:01 -04:00
Will Woods 30ac2e9aa5 Fix product.name.lower() in RuntimeBuilder changing TreeBuilder
Let RuntimeBuilder use a copy of the 'product' object instead.
2011-06-24 13:11:15 -04:00
Will Woods 99a612fb0a TreeBuilder: fix removelocales 2011-06-23 17:30:42 -04:00
Will Woods 5ebaccef4d fix create_runtime workdir path thinko
I used basename when I meant dirname. Duh.
2011-06-23 12:12:37 -04:00
Will Woods b73132af75 rename "runtime" template arg to "runtime_img"
Mako uses "runtime" internally for things, and if you clobber it stuff
will just break in weird ways. So don't do that.
2011-06-23 10:46:28 -04:00
Will Woods eda011a49c rename runtime "anaconda-squashfs.img", pass path to Treebuilder
dracut's dmsquash-live-root won't recognize the image as a squashfs live
image unless its name matches "*squashfs.img", so choose the filename
accordingly. Then pass the name to the TreeBuilder so it can move it
into place.
2011-06-22 20:07:08 -04:00
Will Woods d322180dce instantiate RuntimeBuilder/TreeBuilder with keyword args 2011-06-22 19:22:33 -04:00
Will Woods 7ed705bf09 pass configdir to postinstall() 2011-06-22 17:20:00 -04:00
Will Woods 996208f1c8 make create_runtime() just build the image; remove initrd_append
create_runtime should just create the runtime image. We'll worry about
making the big combined boot image in the arch-specific templates.
2011-06-22 17:12:56 -04:00
Will Woods f2814d5c90 treebuilder: add _filelist(*pkgs), use it in removepkg/removefrom 2011-06-22 17:12:56 -04:00
Will Woods f724051499 whitespace cleanup 2011-06-22 17:12:56 -04:00
Will Woods 2096ebc551 remove unused LoraxTemplate.getdata() 2011-06-08 17:32:38 -04:00
Will Woods f6b8893fd6 Fix passing kernels to template in TreeBuilder 2011-05-31 14:36:59 -04:00
Will Woods 303db540f1 bugfix for replace() globbing in _in 2011-05-31 12:24:17 -04:00
Will Woods 44583cd581 tb: make remove() and chmod() use globs (also fixes errors with missing files) 2011-05-31 12:24:17 -04:00
Will Woods bdb35b7822 fix remove() on symlink-to-dir 2011-05-31 12:24:17 -04:00
Will Woods dde2b9ae62 Remove comments (lines starting with '#') from templates 2011-05-31 12:24:17 -04:00
Will Woods 07695dff71 fix missing self.root in create_runtime() 2011-05-31 12:24:17 -04:00
Will Woods bfc8dcdd7a add missing imports to treebuilder (imgutils, fnmatch) 2011-05-31 12:24:17 -04:00
Will Woods f1963a2102 make treebuilder._glob return relative paths when using root= 2011-05-31 12:24:17 -04:00
Will Woods 0598b13ad1 tb: join->joinpaths. I learned my lesson. 2011-05-27 18:38:25 -04:00
Will Woods 76ecff7bf9 Revert "add --noscripts to run_pkg_transaction, use it in cleanup"
Doesn't help. Less code is better.

This reverts commit c9e23b8941.
2011-05-27 15:24:07 -04:00
Will Woods acff5093b0 tb: Remove packages by removing their contents 2011-05-27 15:23:48 -04:00
Will Woods c9e23b8941 add --noscripts to run_pkg_transaction, use it in cleanup 2011-05-27 12:57:31 -04:00
Will Woods 9f47eae26b another pkglists fixup 2011-05-26 18:53:51 -04:00
Will Woods e1677432a3 tb: joinpaths->join 2011-05-26 18:28:08 -04:00
Will Woods 2121b03a0a treebuilder: use mvfile(), fix postinstall, product.name.lower() 2011-05-26 18:15:07 -04:00
Will Woods 7be79ceba2 Add mvfile() to sysutils
This adds mvfile(), which works basically like cpfile().
2011-05-26 18:14:10 -04:00
Will Woods c4337815db treebuilder: use os.rename() for move(), make symlink clobber files 2011-05-26 16:49:39 -04:00
Will Woods c1b3ed3c1f fix two typos in __init__ 2011-05-26 16:49:11 -04:00
Will Woods 87546a1f12 treebuilder typo fixup: Fatal->fatal 2011-05-26 14:11:03 -04:00
Will Woods 1d0155f3d2 __init__: fix get_buildarch to not pop() empty list 2011-05-26 14:09:46 -04:00
Will Woods f13a5153e0 __init__: fix pkglists with --force 2011-05-26 14:09:23 -04:00
Will Woods 954af31c76 fixup rb.postinstall linktree for use with --force 2011-05-26 14:09:00 -04:00
Will Woods 17e5f9e19a Better tracebacks for LoraxTemplate 2011-05-26 14:08:01 -04:00
Will Woods bf9ca1ddc7 treebuilder fixups: fix rb.postinstall(), inroot/root confusion 2011-05-26 13:35:28 -04:00
Will Woods 7feb3d4572 treebuilder fixups: correct args for parse() and RuntimeBuilder, add rb.yum 2011-05-26 13:07:30 -04:00
Will Woods bbf3d23513 run() fix: inroot could exist if we're running with --force 2011-05-26 13:06:45 -04:00
Will Woods eec6073ef0 move create_runtime into RuntimeBuilder 2011-05-18 13:53:54 -04:00
Will Woods 456492e0ee fixup: invoke RuntimeBuilder properly 2011-05-17 18:57:03 -04:00
Will Woods 398b3b0922 Remove module command from treebuilder and templates
Module whitelisting is silly. Let's blacklist the stuff we don't need.
2011-05-17 18:16:06 -04:00
Will Woods e59e291725 LoraxYumHelper/installtree removal fixup: create self.inroot 2011-05-17 18:14:05 -04:00
Will Woods d26c014279 RuntimeBuilder fixup 2011-05-17 15:29:23 -04:00
Will Woods 729511f06a Dracut hack for F15 image building in __init__
add lib/dracut/hooks/pre-pivot/99anaconda-umount.sh to unmount things
before starting anaconda (because loader explodes if /{dev,sys,proc}
are mounted when it starts)
2011-05-17 13:30:36 -04:00
Will Woods 905e05159d crazytime: replace installtree with runtimebuilder 2011-05-14 03:28:41 -04:00
Will Woods 46e18c3781 more treebuilder WIP 2011-05-14 03:27:25 -04:00
Will Woods 2293a7d569 treebuilder WIP: add commands for installtree 2011-05-13 23:58:46 -04:00
Will Woods 9be6dd2864 Revert "Add systemd and agetty to the installation environment."
Add setup_init() and setup_s390_init() to installtree.py to handle
init setup, and stop using systemd so we can make F15 images.

This reverts commit b58190d660.
2011-05-13 13:03:54 -04:00
Will Woods 3d1155f946 TODO updates 2011-05-12 17:32:44 -04:00
Will Woods 3faac26a93 treebuilder fixup: handle treeinfo_data as runner.results 2011-05-12 17:32:43 -04:00
Will Woods 7323749706 treebuilder fixup: pass template vars to runner 2011-05-12 17:32:43 -04:00
Will Woods 9b5ccc764b WIP: RuntimeBuilder 2011-05-12 17:32:43 -04:00
Will Woods c4435b504a __init__ create_runtime fixup (correct paths) 2011-05-12 17:32:43 -04:00
Will Woods 1a9a83c393 img building fixup: show mksquashfs progress 2011-05-12 17:32:03 -04:00
Will Woods 72a3958a38 imgutils estimate_size fixups
count directories in estimate
msdos blocksize is 2048
round_to_blocksize rounds 0 -> blocksize
pass graft to estimate_size so we don't repeat overhead
2011-05-12 17:32:03 -04:00
Will Woods 8f45d48562 remove redundant treeinfo log message in __init__ 2011-05-12 17:32:03 -04:00
Will Woods fa36b808d0 treebuilder fixup: remove unneeded log msg in runcmd 2011-05-12 17:32:03 -04:00
Will Woods a66c877949 imgutils fixup: 512kb default overhead for vfat 2011-05-12 17:32:03 -04:00
Will Woods fab2a091bc treebuilder fixup: fix argument order in replace() 2011-05-12 17:32:03 -04:00
Will Woods f4107c632d treebuilder fixup: outroot, not outputdir 2011-05-12 17:32:03 -04:00
Will Woods e77f142847 fix _glob and template glob() 2011-05-12 17:29:01 -04:00
Will Woods b6a0b2351c fixup: make ArchData subclass of DataHolder 2011-05-12 17:29:01 -04:00
Will Woods 77f1ec738c treebuilder fix implantisomd5() 2011-05-12 17:29:01 -04:00
Will Woods d4813816b7 treebuilder fixups: add _glob, use it in _exists, replace, install 2011-05-12 17:29:01 -04:00
Will Woods d2203b348d fixup for hardlink() 2011-05-12 17:29:01 -04:00
Will Woods 4c91ef5f53 fixup: heh whoops, really fix replace 2011-05-12 17:29:01 -04:00
Will Woods 796659bb29 fixup for creating treeinfo from treebuilder 2011-05-12 17:29:01 -04:00
Will Woods 17c81d12d7 treebuilder fixups: fix replace, glob() for templates, etc.
"from glob import glob" instead of "import glob"
rename args to BaseBuilder.runtemplate
set up 'exists' and 'glob' in runtemplate rather than getdefaults
2011-05-12 17:29:01 -04:00
Will Woods 644e5f4b55 treeinfo fixup: fix treeinfo "instancemethod" error and hardlink() 2011-05-12 17:29:01 -04:00
Will Woods 9aa2e2c671 fixup: set templatedir for TreeBuilder in __init__ 2011-05-12 17:29:01 -04:00
Will Woods 411bea7d4e treebuilder fixup: use directories param for LoraxTemplate 2011-05-12 17:29:01 -04:00
Will Woods a15c5ded9c Add "directories=[]" param to LoraxTemplate 2011-05-12 17:29:01 -04:00
Will Woods 4343b12fc0 mkefiboot fixups (fix imports, mkdosimg, add to setup.py) 2011-05-12 17:28:53 -04:00
Will Woods 10a91e5c85 fix runtemplate invocation of getdefaults() 2011-05-12 17:28:53 -04:00
Will Woods 96ce44708d fixup: correct argument signature for initrd_append 2011-05-12 17:28:53 -04:00
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