1. 06 Nov, 2011 7 commits
    • Michael Shigorin's avatar
      introduced NICE variable · cd3e47c5
      Michael Shigorin authored
      This one regulates the build wrapper: if the value is non-empty
      then nice(1) and ionice(1) will be attempted so that the build
      behaves better in regard to other tasks running on the system.
      
      A few doc/variables.txt updates along the way.
      cd3e47c5
    • Michael Shigorin's avatar
      syslinux *.cfg: replace banner · 102aa385
      Michael Shigorin authored
      Back then I didn't come up with anything smarter than
      "mkimage-profiles 2.0" (with my tongue in a cheek),
      but as m-p has grown up to 0.4 it's time to fix this.
      
      When done properly, all of the string should be brandable
      (with some sane default value inheriting from image name),
      but let's do it at least bit by bit.
      102aa385
    • Michael Shigorin's avatar
      toplevel build report now timestamped · 30b1aa9b
      Michael Shigorin authored
      Thanks torabora@ for yet again seemingly obvious feature request
      which strangely managed to evade implementation before.
      
      On an afterthought, mass builds would suggest too much coffee
      instead of a progress indicator -- so implemented the latter.
      
      NB: the actual downstream-make-calling rule would expand the "naive"
      $(shell date) too early: the rule is evaluated before starting its
      execution, and as it's the time consuming one the shell evaluation
      was in need, not make's.  The result is less generally available
      (needs to be double quoted and won't work inside e.g. awk programs)
      but way more precise.
      30b1aa9b
    • Michael Shigorin's avatar
      dump sources.list to build.log · 813571cb
      Michael Shigorin authored
      The seemingly obvious feature was proposed by torabora@.
      APTCONF complicates things a bit of course...
      (and was slightly kludgy btw; fixed)
      813571cb
    • Michael Shigorin's avatar
      .gear/mkimage-profiles.spec: initial package · 67a7f68e
      Michael Shigorin authored
      Also added to the live-builder ISO which is now self-hosted
      (sans full repo): one can build an image capable of rebuilding
      itself (which is not that useful) and of building other goodies
      on some temporarily unused RAM-filled hardware (which is the goal).
      67a7f68e
    • Michael Shigorin's avatar
      live-builder distro: your self-hosted livecd · 83392012
      Michael Shigorin authored
      If you make distro/live-builder.iso, the result is an image
      containing almost everything (short of actual full enough
      repository) to rebuild itself.  It will attempt to configure
      eth0 with DHCP and reach http://ftp.altlinux.org for packages.
      
      RAM requirements start with 2Gb, self-build is accomplished
      on a 4Gb host with "make CLEAN=1 distro/live-builder.iso".
      
      Packages required for "make distro/syslinux.iso" get included.
      
      (some due fixups all over the place too)
      83392012
    • Michael Shigorin's avatar
      bin/mktmpdir: lower the space bar · b6438b9c
      Michael Shigorin authored
      With not-that-recent mkimage-profiles development,
      it's no longer apparent that at least a gigabyte
      of free space is required to build something useful
      (at least for the tests, like syslinux.iso).
      
      In short, the guesser cutoff margin is now 256M.
      b6438b9c
  2. 04 Nov, 2011 33 commits
    • Michael Shigorin's avatar
      added doc/apt.conf.sample · 08de7149
      Michael Shigorin authored
      Unfortunately apt configuration is not straightforward at all
      regarding being overridden: one can't just provide sources.list
      but needs a corresponding apt.conf along with it, and that apt.conf
      must disable the SysV-style snippet directories to avoid interesting
      side effects of all the things getting overlaid.
      
      So it's not surprising that torabora has asked for an example...
      (thanks go to boyarsh@ since I asked him for an example long ago)
      08de7149
    • Michael Shigorin's avatar
      BELL support · 895fae7d
      Michael Shigorin authored
      Implemented opportunistic alarm support as proposed by torabora;
      the actual result depends on readline and/or terminal settings
      (read up on "visual bell" vs "audible bell" in case it's wrong).
      
      TODO: this ought to be shifted downstream when proper logging
      framework is there.
      895fae7d
    • Michael Shigorin's avatar
      introduced conf.d/ for distro, ve config snippets · e8306860
      Michael Shigorin authored
      This was asked for by Leo-sp50 and torabora, and seems quite reasonable:
      let's provide means to keep at least some distribution configurations
      a bit apart, so that these can be considered more standalone in terms
      of hard warranted functionality but at the same time enjoying the common
      infrastructure.
      
      Considering lib/distro.mk: it's now experimentally pulled apart so that
      parallel development of different distro families can go on without
      major merge hassles.  *Please* don't abuse with massive copy-paste.
      
      And before you ask: this might get extended to allow for "private"
      out-of-tree configurations being included since apparently there
      are goals with no meaning outside of some very particular context...
      but otherwise I'd like to encourage getting reusable bits in-tree.
      e8306860
    • Michael Shigorin's avatar
      stage2-based debug fixup · 6a280d75
      Michael Shigorin authored
      Employed double colon targets to eliminate
        warning: ignoring old commands for target `debug'
      6a280d75
    • Michael Shigorin's avatar
      features.in/syslinux: tweak 00gfxboot.cfg · 912d86c4
      Michael Shigorin authored
      The same change as in m-p-d f1c5dd0 (discussed in #22486).
      Seems it wasn't the culprit regarding the "BIOS won't boot
      off this DVD" but is also recommended in README.gfxboot.
      912d86c4
    • Michael Shigorin's avatar
      features.in/syslinux: new 10removable.cfg · 812883fa
      Michael Shigorin authored
      Borrowed from wmsmall iso by kostyalamer@.
      812883fa
    • Michael Shigorin's avatar
      features.in/Makefile: fixups · ace2ee1f
      Michael Shigorin authored
      src/dst tags might have been empty confusing tags2lists;
      the current implementation is more robust (along with
      slightly better debug within bin/tags2lists itself).
      
      pushd/popd spam tamed too (replaced by nice log messages).
      ace2ee1f
    • Michael Shigorin's avatar
      logging tweaks for better readability · 0a8490ad
      Michael Shigorin authored
      ...and create a symlink to a just-built image from builddir too.
      0a8490ad
    • Michael Shigorin's avatar
      image.in/functions.mk: added ARCH dup · 77115ff5
      Michael Shigorin authored
      If the build is (re-)run withing generated profile directory,
      the makefiles no longer have ARCH passed by upstream -- the
      upstream might be unreachable at that point indeed.
      
      This is unfortunate but we should cope with that.
      
      NB: might be revisited when architecture-specific packagelists emerge
      since currently there's no difference in package lists so we can just
      re-run the build for a different architecture but this might change...
      77115ff5
    • 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