1. 04 Nov, 2011 40 commits
    • Michael Shigorin's avatar
      avoid "nothing to commit" in build.log · 7919df82
      Michael Shigorin authored
      Typical (to-be-refactored when having settled down)
      "cd/git .../cd -" sequences are tweaked to safeguard
      against changing back without having actually changed to,
      just in case.
      
      features.in/Makefile left with pushd/popd due to its
      three-level diving course (which somewhat asks to be
      refactores in functions either but is intrinsically
      somewhat complex OTOH).
      7919df82
    • Michael Shigorin's avatar
      official {distro,ve}/* support · d5a5941f
      Michael Shigorin authored
      This is quite a large-scale change since mkimage-profiles got used to
      baking distributions over the last year, and virtual environments are
      quite different, so e.g. image.in/Makefile had to be split in two with
      the main part of it moved into features.in/iso/lib/.
      
      Short overview:
      
      - features.in/Makefile: lib/ support
        (supporting VE images requires dynamic modifications
        to image.in/Makefile before starting the build;
        the most natural way to achieve that seems to use
        features mechanism along with makefile include dir)
      
      - packaging format related part moved into features.in/pack
        (should be better prepared for diversity either)
      - features.in/iso renamed to features.in/build-distro
      - features.in/ve  renamed to features.in/build-ve
        + NB: these could not be merged as e.g. features.in/build
          due to completely different script hooks
      
      - lib/image.mk renamed to lib/build.mk
      - image, config, log postprocessing moved downstream
      - added a sort of a topping in the form of lib/sugar.mk
      - assorted style fixups (like ifeq usage)
      
      - clean.mk: reliability fix (the problem was observed by Oleg Ivanov
        and me too but finally it did get the attention quantum)
      
      - reviewed, updated and extended docs
        + QUICKSTART: should be[come] a step-by-step guide
          (thanks Leo-sp50 for prodiving feedback)
      d5a5941f
    • Michael Shigorin's avatar
      wash, rinse, repeat · 720a5796
      Michael Shigorin authored
      install2 cleanups:
      
      - functionally indifferent ones: particularly, install2/*/98system's
        "mkdir -p /image" was superfluous as it was done by that time already
        by sub.in/stage2/image-scripts.d/00stage1
      
      - taken apart, prepared for tags: so far it's a mostly moot change
        since the installer cleanup scripts themselves are mostly the same as
        preceding 90cleanup was (with some additions corresponding to recent
        kernel development); it's still unclear what the mechanism for
        configuring the cleanups in effect will be, either directory/package
        regex lists or tagged scripts excluded from execution by yet another tag
      
      fixes:
      
      - image.in/Makefile: fix metadata related test; the actual test was
        assuming that stage1 kernel means installer, which is not the case
        since generic stage2 introduction; oh well
      
      - 85cleanup-lowmem: a "_" too much was the culprit in destroying the
        needed translations along with those deemed superfluous; thanks go to
        Oleg Ivanov and Lenar Shakirov for finding the bug and proposing the
        fix altogether
      
      additions:
      
      - features.in/Makefile: reworked help target; it was rather inaccessible
        due to BUILDDIR normally undefined at the time of direct make
        invocation, and BUILDDIR is normally defined during normal builds
        anyways so let's try it this way.
      
      - README++
      
      daydreams:
      
      - 01-genbasedir: we should drop bzip2 compressed pkglists some day
        but see genbasedir and apt-cdrom first, 90-pkg.sh (alterator-pkg)
        will fail miserably otherwise
      720a5796
    • Michael Shigorin's avatar
      iso.mk: low space hint on build failure · b474bff4
      Michael Shigorin authored
      Just in case the build.log will be inobvious, and it's easy to diagnose
      automatically.  Thanks Andrey Stroganov for this use case.
      
      Thanks for improving the initial implementation go to raorn@ for kind
      commit lynch and to Yuri Bushmelev for actually suggesting something
      more concise.
      
      BTW the "1024" magic number was taken out of thin air:
      the "no free space" errors are most likely to happen while
      forming/populating a chroot (apt/rpm errors out) and chroots are
      roughly two orders of magnitude heftier than a megabyte.
      b474bff4
    • Michael Shigorin's avatar
      syslinux: trivial cleanup · 368cfd26
      Michael Shigorin authored
      "echo ... | xargs cp -t" is a bit more complicated
      compared to plain "copy ..."
      368cfd26
    • Michael Shigorin's avatar
      features.in/cleanup: auto-add feature tag · f5178dee
      Michael Shigorin authored
      The extra tag to filter on was omitted while
      moving the code from features.in/cleanup/generate.mk
      into the more generic features.in/Makefile; fixed.
      
      Auto-added tags will definitely see an overhaul
      when it's more clear what can be done with them.
      f5178dee
    • Michael Shigorin's avatar
      server-ovz.iso: employ proper cleanup · 08b93554
      Michael Shigorin authored
      The reason not to add server cleanup right into
      distro/server-base is the possibility to build
      combined installers (read centaurus).
      Gotta sort it out some day...
      08b93554
    • Michael Shigorin's avatar
      avoid setting GLOBAL_* altogether · 5d37a0c5
      Michael Shigorin authored
      Applying set() and only set() to a GLOBAL_* is safe
      but still a potentially confusing example; so let's
      just do it right (and warn unsuspecting folks too).
      5d37a0c5
    • Michael Shigorin's avatar
      ensure that distcfg.mk gets included once at most · 75fd7952
      Michael Shigorin authored
      This was done while debugging GLOBAL_CLEANUP_PACKAGES
      getting doubled... as it got no hard initial value but
      rather was always added to, it appeared that at least
      stage2/Makefile would obtain a once-initialized value
      from upstream and double it while including distcfg.mk
      itself.
      
      It's way less hassle to just proxy the value once.
      75fd7952
    • Michael Shigorin's avatar
      initial features.in/cleanup · c5bf0529
      Michael Shigorin authored
      This is a sort of anti-feature which removes and not builds;
      still with mkimage-profiles' approach we can at least build
      up the removal procedures as well.
      
      It's what triggered the tagged scripts, BTW.
      c5bf0529
    • Michael Shigorin's avatar
      features.in: tagged scripts support · f32b8d4f
      Michael Shigorin authored
      From now on a feature can contain this tree:
      
      .
      +- scripts.d/
      +- image-scripts.d/
      `- tagged/
         +- scripts.d/
         `- image-scripts.d/
      
      ...per subprofile part or in its root -- the latter one
      gets merged into toplevel directory responsible for the
      final image build.
      
      NB: autoselected tags include only subprofile names
          (or both parts, for complex subprofiles) --
          this is highly prone to change yet!
      f32b8d4f
    • Michael Shigorin's avatar
      profile.mk: export PATH including bin/ · 4801579c
      Michael Shigorin authored
      Mostly needed for tags2lists at the moment;
      note that PATH is exported for make recipes
      but has no effect on make functions.
      4801579c
    • Michael Shigorin's avatar
      Makefile: make everything · 3373a7bc
      Michael Shigorin authored
      $(IMAGES) in prerequisites definitely won't work,
      so let's do it straightforward.
      3373a7bc
    • Michael Shigorin's avatar
      install2: use HSH_EXCLUDE_DOCS too · 0c987333
      Michael Shigorin authored
      The docs would be purged anyways, let's not install them either.
      0c987333
    • Michael Shigorin's avatar
      doc/: minor update · ef0d5e15
      Michael Shigorin authored
      Somewhat more uniform style and a few additional bits.
      ef0d5e15
    • Michael Shigorin's avatar
      features.in/Makefile: src/dst tweaks · 5dbf407c
      Michael Shigorin authored
      Introduced support for hooks to be added to every
      derivative substage of a "base" stage (think stage2/*).
      
      Specific hooks for e.g. stage2/live would live in
      features.in/*/live/*scripts.d/ while generic for stage2/* in
      features.in/*/stage2/*scripts.d/
      5dbf407c
    • Michael Shigorin's avatar
      added some missing READMEs to a few features · 74e81984
      Michael Shigorin authored
      (these *really* should be added atomically with the changes!)
      74e81984
    • Michael Shigorin's avatar
      initial features.in/dos · a3c0d2bb
      Michael Shigorin authored
      This was tackled before but it took raorn@'s hint regarding
      sys-freedos-linux (ms-sys has no bootsectors compatible with
      freedos currently) and gns@' quick rush at make-freedos-floppy
      script to wrap things up.
      
      Should be further developed to become actually useful though.
      a3c0d2bb
    • Michael Shigorin's avatar
      pkg.in/lists/xorg -= wm-select · eeccd5df
      Michael Shigorin authored
      wm-select should only be needed when multiple window managers
      are available.
      eeccd5df
    • Michael Shigorin's avatar
      initial features.in/powerbutton · f32ae716
      Michael Shigorin authored
      Should support ACPI and APM schemes;
      only the former tested so far.
      f32ae716
    • Michael Shigorin's avatar
      COMMON_PACKAGES and SYSTEM_PACKAGES · 774169c6
      Michael Shigorin authored
      It was clear that "common" isn't very apt for packages that
      will get *everywhere*, and became apparent when the need for
      a "base+live packages" variable arrived with powerbutton feature.
      
      So:
      - the former COMMON_PACKAGES are now SYSTEM_PACKAGES;
      - COMMON_PACKAGES act as "BASE+LIVE_PACKAGES".
      
      Note that SYSTEM_PACKAGES also got factored out from stage2 based
      features into stage2 subprofile itself; cleanups were due as well.
      774169c6
    • Michael Shigorin's avatar
      docs update · fba30e06
      Michael Shigorin authored
      Rather minor fixups for things changed in the meanwhile and not
      yet (re)documented properly; and a change for memtest feature
      to require syslinux feature (the code's been changed to fit
      the updated description, actually, and the change is purely
      formal as no syslinux alternative is being used/planned so far).
      fba30e06
    • Michael Shigorin's avatar
      image.in/vars.mk: dump distcfg variables nicely · 69d5133a
      Michael Shigorin authored
      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.
      69d5133a
    • Michael Shigorin's avatar
      ensure that image output directory does exist · 7f555ed7
      Michael Shigorin authored
      It turned out that ~/out masked the broken execution path
      when it's absent (which was handled incompletely).  Sigh.
      7f555ed7
    • Michael Shigorin's avatar
      cosmetic fixup (s/GROUPS/MAIN_GROUPS/g) · b56df316
      Michael Shigorin authored
      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).
      b56df316
    • Michael Shigorin's avatar
      minicd.iso -> server-mini.iso (and more tags) · 4dfd6898
      Michael Shigorin authored
      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.
      4dfd6898
    • Michael Shigorin's avatar
      live, rescue, and use tags · cf81cc67
      Michael Shigorin authored
      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)
      cf81cc67
    • Michael Shigorin's avatar
      test-based ramdisk size for live squashfs images · 3d10c59d
      Michael Shigorin authored
      Implementation based on m-p-d::profiles/scripts.d/03-syslinux
      (but heavily modified for m-p of course)
      3d10c59d
    • Michael Shigorin's avatar
      improved logging during profile creation · 3a5b47e7
      Michael Shigorin authored
      - better *_LISTS printout
      - somewhat cleaner .base comments
      - more comprehensible git log messages
        + special handling for complex subprofiles
        + no need to commit build.log ;-)
      3a5b47e7
    • Michael Shigorin's avatar
      don't override targets for no reason · 2b90dffa
      Michael Shigorin authored
      2b90dffa
    • Michael Shigorin's avatar
      features.in/Makefile: subtle but important typo fix · 5c543410
      Michael Shigorin authored
      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
      5c543410
    • Michael Shigorin's avatar
      fixed grub installer distros · 9475d199
      Michael Shigorin authored
      These were broken since 5ff375aa10bee7937db457d3df3115f938bb6c77
      due to no bootloader being tossed anymore by the very
      installer-distro-altlinux-generic (which is the default)
      9475d199
    • Michael Shigorin's avatar
      fixed stage1 for syslinux.iso · 2b47da98
      Michael Shigorin authored
      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
      2b47da98
    • Michael Shigorin's avatar
      stage2 based live subprofiles, updated docs · f5a8b893
      Michael Shigorin authored
      - 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
      f5a8b893
    • Michael Shigorin's avatar
      initial rescue image · 0e57149d
      Michael Shigorin authored
      NB: this implementation is awfully cut-n-paste one,
      there are lots of common code with install2
      which are subject to careful surgery
      0e57149d
    • Michael Shigorin's avatar
      prepare for multiple live images · 5569b4fc
      Michael Shigorin authored
      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
      5569b4fc
    • Michael Shigorin's avatar
      clean.mk and friends: introduced CLEAN control variable · 878abab5
      Michael Shigorin authored
      make CLEAN=1 will prune workdirs after packing their results,
      so disk (or preferably tmpfs) usage will be lower
      878abab5
    • Michael Shigorin's avatar
      rough bootloader selection draft (grub/lilo) · 20844de7
      Michael Shigorin authored
      NB: needs installer-distro-altlinux-generic = 6.0-alt2
          as it doesn't require alterator-grub indefinitely
      20844de7
    • Michael Shigorin's avatar
      initial x11 desktop distro support · e78c62b4
      Michael Shigorin authored
      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)
      e78c62b4
    • Michael Shigorin's avatar
      actually released as free software · 386be9a5
      Michael Shigorin authored
      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.
      386be9a5