Commit Graph

205 Commits

Author SHA1 Message Date
Michael Shigorin
69d5133a3b image.in/vars.mk: dump distcfg variables nicely
distcfg.mk is nice for tracing the variable values' build-up,
but it's more useful to have a look at the final result sometimes.
So here it is, logged for each build and callable by hand.
2011-11-04 16:15:30 +02:00
Michael Shigorin
7f555ed7a1 ensure that image output directory does exist
It turned out that ~/out masked the broken execution path
when it's absent (which was handled incompletely).  Sigh.
2011-11-04 16:15:30 +02:00
Michael Shigorin
b56df31624 cosmetic fixup (s/GROUPS/MAIN_GROUPS/g)
MAIN_GROUPS should align better along with MAIN_PACKAGES
and MAIN_LISTS (even if MAIN_ prefix might be suboptimal
given that these packages are essentially extras within
the particular image).
2011-11-04 16:15:30 +02:00
Michael Shigorin
4dfd689810 minicd.iso -> server-mini.iso (and more tags)
minicd target was a hasty hack indeed, let's put it in line;
an attempt at practical use discovered the lack of important
packages like dhcpcd, these were added on per package basis
and quickly remade to use tags -- which seem to fit better.
2011-11-04 16:15:30 +02:00
Michael Shigorin
cf81cc6785 live, rescue, and use tags
It's still very immature -- base lists should be really base,
and functionality should be sorted out in more consistent way.
So far moved to tagged lists (which need some more experimentation
anyways to get both lists and their use more elegant).

- fixed live.iso (now actually useful):
  + extra cleanup was being done (coming from install2 case)
  + root user was password blocked
  + there was no unprivileged user (added "altlinux" w/o password)
  + added xdm setup hook for future X-based livecd flavours
  + several picks for a less slim "base" list
  + xdm login
- tweaked rescue.iso (added ext3grep)
2011-11-04 16:15:30 +02:00
Michael Shigorin
3d10c59d2b test-based ramdisk size for live squashfs images
Implementation based on m-p-d::profiles/scripts.d/03-syslinux
(but heavily modified for m-p of course)
2011-11-04 16:15:30 +02:00
Michael Shigorin
3a5b47e712 improved logging during profile creation
- better *_LISTS printout
- somewhat cleaner .base comments
- more comprehensible git log messages
  + special handling for complex subprofiles
  + no need to commit build.log ;-)
2011-11-04 16:15:30 +02:00
Michael Shigorin
2b90dffa6f don't override targets for no reason 2011-11-04 16:15:30 +02:00
Michael Shigorin
5c54341044 features.in/Makefile: subtle but important typo fix
dst a shell variable in a makefile recipe,
its dereference must be escaped properly;
the net result was false positive for the test
with no harm being done but extra stuff tossed
into the generated profile
2011-11-04 16:15:30 +02:00
Michael Shigorin
9475d199a0 fixed grub installer distros
These were broken since 5ff375aa10bee7937db457d3df3115f938bb6c77
due to no bootloader being tossed anymore by the very
installer-distro-altlinux-generic (which is the default)
2011-11-04 16:15:30 +02:00
Michael Shigorin
2b47da9852 fixed stage1 for syslinux.iso
squashcfk.mk is not to be attempted to copy unconditionally,
if we've got no kernel for stage2 there's no data (and hook)
to create it there
2011-11-04 16:15:30 +02:00
Michael Shigorin
f5a8b89381 stage2 based live subprofiles, updated docs
- introduced generic stage2 subprofile (non-standalone)
- ported installer and rescue over to stage2/{install2,rescue}
- initial stage2/live (needs more work for sure)
- use make-initrd-propagator
- updated and somewhat extended doc/

NB: mind #26133, #26134
2011-11-04 16:15:30 +02:00
Michael Shigorin
0e57149de9 initial rescue image
NB: this implementation is awfully cut-n-paste one,
there are lots of common code with install2
which are subject to careful surgery
2011-11-04 16:15:30 +02:00
Michael Shigorin
5569b4fce1 prepare for multiple live images
s,INSTALLER_KFLAVOUR,STAGE1_KFLAVOUR,g
s,INSTALLER_KMODULES,STAGE1_KMODULES,g

install2 isn't the only livecd around;
so far all of these share the same kernel
in m-p-d, and we'd rather need two+ kernels
with dual-arch media or so; let's not complicate
things too much at this point
2011-11-04 16:15:30 +02:00
Michael Shigorin
878abab5ce clean.mk and friends: introduced CLEAN control variable
make CLEAN=1 will prune workdirs after packing their results,
so disk (or preferably tmpfs) usage will be lower
2011-11-04 16:15:30 +02:00
Michael Shigorin
20844de700 rough bootloader selection draft (grub/lilo)
NB: needs installer-distro-altlinux-generic = 6.0-alt2
    as it doesn't require alterator-grub indefinitely
2011-11-04 16:15:30 +02:00
Michael Shigorin
e78c62b4e7 initial x11 desktop distro support
This one is pre-alpha quality and very basic but complete enough
to crank out an icewm.iso successfully installing and booting
into xdm ;-)

(actually a week's on-and-off work including a pile of
underlying infrastructure stuff which was planned already
just not there yet)
2011-11-04 16:15:30 +02:00
Michael Shigorin
386be9a5e8 actually released as free software
I hereby release this work under the terms of GNU General Public License,
either version 2 or a later version at your option.

The code is either taken from mkimage-profiles-desktop.git (available
under GPLv2+) or written by me with some exceptions in the form of:
- snippets from GNU make documentation;
- stackoverflow.com and cmcrossroads.com articles;
- random advice on the 'net
to be strict; given the nature of such snippets being explicitly
proposed as an example or for immediate reuse, I consider it feasible
to redistribute those worked into this code.  If there's any concern
regarding copyright, please contact me by e-mail to sort it out.
2011-11-04 16:15:30 +02:00
Michael Shigorin
5f88152223 .base rehashed, DISK_LISTS renamed, etc
In particular:
- .base is now generated from pieces (see image.in/Makefile)
- s/DISTROS/IMAGES/g; s/CONFIGS/DISTROS/g (for clarity)
- s/DISK_LISTS/MAIN_LISTS/g ("disk" was early m-p-d legacy)
- introduced BASE_PACKAGES to complement BASE_LISTS
- minor tweaks to Makefile (ARCH and DATE moved elsewhere)
- libdistro.mk: dropped overlooked IMAGE_INIT_LIST copy
- clean.mk: silly cleanup
2011-11-04 16:15:30 +02:00
Michael Shigorin
a9e4934bf3 distro.mk: altlinux-generic installer by default
installer-distro-server-light (using installer-feature-vm-server-light)
is specifically tuned for Server Light needs, and in general we have
different ones (regarding installer steps, autopartitioning profile,
configured services, etc).  So here's the replacement.
2011-11-04 16:15:30 +02:00
Michael Shigorin
b69a8a63b7 README update
reword 'em, structurize 'em, facelift 'em too
2011-11-04 16:15:30 +02:00
Michael Shigorin
24ce6f541d features.in/lowmem: initial release
This feature should absorb ha^Wmeasures for keeping install2
memory footprint to minimum, and so far it drops things not
critical for ru/uk/be users on the floor.

Should be ported to a l10n support framework when there's one.
2011-11-04 16:15:30 +02:00
Michael Shigorin
0b0ad61b34 install2: split 85cleanup-legacy off 85cleanup-cjk
We have several categories of overhead data:
- legacy 8-bit fonts, locales and gconv modules;
- illegible fonts (e.g. 5x7 or 6x10);
- obsolete vendor specific stuff;
- CJK (which would require proper support anyways).

Notes:
- JIS and things like VISCII are 8-bit either
  and thus might be reconsidered as "legacy";
- proper CJK support would probably include
  scalable fonts and an input method helper;
- main target audience is rather ru/uk/be by now.

(dropped wireless from install2 either)
2011-11-04 16:15:29 +02:00
Michael Shigorin
50e0779f9d sub.in/install2/Makefile: enforce a kernel
A bit earlier the situation where there was a stage1 fallback
for INSTALLER_KFLAVOUR as the last of KFLAVOURS, so we'd have
an installer kernel or build would break; now the situration
got somewhat twisted: there could be a vmlinuz in stage1 but
no corresponding modules in install2 -- which can lead to
different surprises but at least alterator-vm would complain
about "Operation not permitted" on partition layout commit.

The fallback is a copypaste from sub.in/stage1/Makefile though
and should be redone properly somewhere.  The question so far
is, where exactly?
2011-11-04 16:15:29 +02:00
Michael Shigorin
c4e0a2490d README updates
...including hasher note, thx m-p-d.
2011-11-04 16:15:29 +02:00
Michael Shigorin
1a8d74e834 moved stage1 scripts into feature.in/installer
All the three scripts depend on installer kernel presence in fact.
When live/rescue are in place, these should be adjusted correspondingly,
probably by moving them to some commonly used intermediate place.

Changed stage1 banner too.
2011-11-04 16:15:29 +02:00
Michael Shigorin
1941e52780 syslinux: add vesamenu ui support
...and switch syslinux.iso over to it: syslinux-3.86-alt4's
(actually opensuse's) gfxboot hackery doesn't properly init
video mode so memdisk-started freedos has console troubles
(and yesterday's hdt.c32 hassles could be avoided as well
it seems).  And that's being implemented.

Mid-term plan: try switching to syslinux4.

PS: CLI fallback was actually a bug in hdt from syslinux <= 3.86-alt3
2011-11-04 16:15:29 +02:00
Michael Shigorin
006c30a9cd 01-genbasedir: dropped dup cleanup
This was pulled from mkimage-profiles-desktop as is,
and so far is useless (addons, ltsp are out of scope yet).

When reintroduced, it'd better be done as a separate script.
2011-11-04 16:15:29 +02:00
Michael Shigorin
5c571b9af4 pass squashfs options from stage1 test to install2
This looks a bit weird (two subprofiles become a bit more
tightly coupled) but in fact install2 does depend on stage1,
and if stage1 doesn't create squashcfg.mk then install2 is
just fine with defaults (provided they fit the installer kernel
used).  A proper mkimage test infrastructure might be handy though.

Also there:
- 01-initfs: partial cleanup (bootsplash is obsolete anyways)
- regarding 03-test-kernel's errorlevel test:
  if 0, 1 and 2 need to be distinguished, "!" MUST NOT be used
  as it negates so that 0 becomes 1 and the rest becomes 0
2011-11-04 16:15:29 +02:00
Michael Shigorin
71c59a458a stage1/Makefile: serialize prereqs
The problem rarely manifested itself on 8-way server
in the form of attempt to copy ./syslinux while it
wasn't there yet.  The proper fix should include
interdependencies but this kluge works either;
didn't observe this with other subprofiles.
2011-11-04 16:15:29 +02:00
Michael Shigorin
5d2ca2ff63 image.in/Makefile: workaround for alterator-pkg
It would handle regular expressions but choke with
multiple words per line, ouch!
2011-11-04 16:15:29 +02:00
Michael Shigorin
e53b6acb56 installer firmware support
Thanks go to lakostis@ (see #18047) for all the aic94xx reminders
and the final testing of the proposed image.
2011-11-04 16:15:29 +02:00
Michael Shigorin
faafaf12e5 README updates
...and some more cosmetic fixes
2011-11-04 16:15:29 +02:00
Michael Shigorin
c2f70e5c10 kernel and BUILDDIR fixes
- image.in/functions.mk: rework kpackage()
  + it takes two arguments explicitly now: this adds some noise
    for "generic" invocations but is rather less messy with recently
    introduced STAGE1_KFLAVOUR (which in its turn is rather cleaner
    than messing with KFLAVOURS, especially since soemthing changed
    in presumably apt and we can't rely on kernel packages being
    installed in the order formed).
- BUILDDIR/DEBUG related fixes
  + Makefile: BUILDDIR initialization moved to distro.mk
- build.log += git info
2011-11-04 16:15:29 +02:00
Michael Shigorin
3f012958dc server-ovz; KDEFAULT; syslinux features reworked
Renamed server-light.iso into server-ovz.iso to avoid brand dilution
and confusion (rider@'s server-light rather favours kvm, anyways).

Introduced KDEFAULT: a reliable default kernel chooser knob
since apt's regex ordering proved pretty unreliable.
Spelling things explicitly is better anyways.

SYSLINUX related features undergone pretty major rewrite
(that includes syslinux, hdt and memtest).

The problem to tackle was features.in/syslinux/generate.mk
assuming syslinux and pciids available in build *host* system;
this well might not be the case (or worse yet, those can be
just different).  So now we're a bit less elegant and a bit
more enterprise, stuffing things into chroot and working there.

Bunch of other fixes along the road, including ; to name a few:
- fixed memtest entry (overlooked while renaming SYSLINUX_ITEMS)
- new and shiny doc/CodingStyle
- gfxboot, stage1 target chain, hdt tweaks
- distro.mk rehashed
- README++
- TODO: dropped (integer overflow anyways)
  + actually moved off-tree to reduce commit spam
- s,\.config\.mk,distcfg.mk,g
- doc/profiles.mk.sample: sample ~/.mkimage/profiles.mk
- ...and assorted fixups/additions

Sorry for convoluted commit, this would have been pretty hard to
rework into some really readable shape (and you might be interested
in the original repo's history horrors then, anyways).
2011-11-04 16:15:29 +02:00
Michael Shigorin
d93989a3ff initial logging subsystem
Now we don't dump all the gory details onto thee
but rather log them handsomely and present only
the most important details by default; use DEBUG=1
and/or BUILDLOG=/path/to/file to tweak.

Also introduced IMAGEDIR and IMAGENAME.

The rest:
- ovz-smp is no more
- base-l10n pkglist (suggested by Alexander Kuprin)
- clean.mk:
  + fixed an oversight: the test result erroneously applied
    only to the first command of several ones that should be
    run iff build/ is a symlink
  + drop implicit rules (it's no C code)
- Makefile: more reasonable iso names
- image.in/Makefile: .disk/date too
2011-11-04 16:15:29 +02:00
Michael Shigorin
e96e2e7821 README updates
- README: concept++
- pkg.in/README: converted to utf8
2011-11-04 16:15:29 +02:00
Michael Shigorin
ace5cb0ff6 assorted fixups
- more thorough build stages inline doc
- quieter BUILDDIR instantiation
- branding-altlinux-sisyphus by default
- prettify installer selection somewhat
- mkimage #24669 fixed upstream
- sub.in/stage1/modules: +drm (as in m-p-d, for KMS)
- tags2lists: generalize a bit
2011-11-04 16:15:29 +02:00
Michael Shigorin
16e763e9ea kernel day
- drop hardwired kernel flavour from pkglists
- today's std-ng lacks aufs, let's switch to un-def
- second assault at KERNEL_PACKAGES_REGEXP
- re-introduced kpackages (builds ok)

PS: base lists: switch to grub, add udev, cleanup
2011-11-04 16:15:29 +02:00
Michael Shigorin
62f7ad5bcc tagged lists updates
tags2lists was tweaked to work on the more natural word boundaries
than explicit "_", and the lists were renamed accordingly.

Dropped the borrowed pkglists by the way.
2011-11-04 16:15:29 +02:00
Michael Shigorin
d77e1d8dc8 drop autoconf, a few vars in .mk suffice
A major change in approach largely thanks to discussions
with Alexey Cheusov but also well aligned with my own findings:
autoconf doesn't let the variables to form an inheritance.

And data flow described at http://www.altlinux.org/WhiteLabel
(which in its turn was born thanks to Gavin Henrick of Diva Telecom
and to Alexander Bokovoy of SaM-Solutions) is really dependent on
the existence of such an inheritance.

Also:
- distro.mk += try()
- "hide" special targets
- fixed wrt distro/.{base,init,metaconf}, thx gns@
- README updates
  + added metaconf.mk
  + clarifications
- updated pci.ids location for hdt
2011-11-04 16:15:29 +02:00
Michael Shigorin
9c883d39b6 docs day
ToC:
- introduced doc/
- features.in/00example/
- READMEs and TODO for more
- code comments clarified

Some unrelated minor fixes bundled either.
2011-11-04 16:15:29 +02:00
Michael Shigorin
a9e161b40d gfxboot brought to reasonable shape
Also included:
- reworked syslinux feature inclusion
- syslinux: s/textprompt/prompt/
- README++
2011-11-03 20:41:49 +02:00
Michael Shigorin
30bb813793 initial groups support/selection
...along with obituary fixes.
2011-11-03 20:39:01 +02:00
Michael Shigorin
c8b578dd9a features' day
- get rid of $dest
- work on features.in/syslinux
- README++
2011-11-03 20:39:01 +02:00
Michael Shigorin
4cb23d7ccd drop the dummy configure
It wasn't serving any good by now...
README++ and cleanups all over the place
2011-11-03 20:39:00 +02:00
Michael Shigorin
9a8f8ef7cd distro.mk: functionalization
- set(), add(), log()
  + special thanks to rider@ for log format feedback
- simple debug facility
- builds, installs and runs... again
2011-11-03 20:39:00 +02:00
Michael Shigorin
c91a2a0994 syslinux and features
- syslinux: menu.c32 works
- features: initial draft
  + memtest
- mv pkg/ pkg.in/
  + server-base: include openssh-blacklist by default
- mv isodata/ copy/
- README: changed to utf8, added an URL
2011-11-03 20:38:35 +02:00
Michael Shigorin
c36b4df23e tagged lists again
These feel quite interesting but not that obvious yet...
2011-11-03 20:38:35 +02:00
Michael Shigorin
2cc81b7e75 r/o profile build
Building m-p-d stuff in-tree was plagued by accidental
generated file commits, and it wasn't nice at all anyways.
2011-11-03 20:38:35 +02:00