1. 03 Jun, 2015 1 commit
  2. 09 Apr, 2015 1 commit
    • Michael Shigorin's avatar
      main.mk: bail out if no image type was specified · f1479275
      Michael Shigorin authored
      e.g., `make distro/icewm' instead of `make distro/icewm.iso'
      would be "successful" as there's a corresponding target indeed
      but the "success" would just mean building the configuration
      without running the actual build.
      
      Thanks cas@ for hitting this issue and reporting it.
      
      PS: note that the initial flagless implementation turned out
          to produce false positives for e.g. `make distclean'.
      f1479275
  3. 20 Jun, 2013 1 commit
    • Michael Shigorin's avatar
      main.mk: target refactoring · 768df7e9
      Michael Shigorin authored
      The issue with the original hasty code that stuck around
      was that it bluntly ignored any ifdef/ifeq constructs due to
      an obvious reason of being essentially a grep, not a makefile
      interpreter.
      
      It's now fixed so that e.g. arch-specific targets won't pop up
      for no good reason.
      
      Thanks ldv@ for discussion and a reminder about the dump mode
      (make -p).
      768df7e9
  4. 17 Jun, 2013 1 commit
  5. 04 Feb, 2013 1 commit
    • Michael Shigorin's avatar
      ensure that IMAGEDIR exists (thus globbable) · e46c259a
      Michael Shigorin authored
      It appears that manually specified IMAGEDIR, e.g. by adding
      
        IMAGEDIR = ~/out/$(shell date +%Y%m%d)
      
      to ~/.mkimage/profiles.mk, might be problematic due to
      missing globbing.  Let's make sure the paths are globbed
      and directories are created -- since make's wildcard()
      returns an empty string when there's nothing there [yet].
      e46c259a
  6. 03 Dec, 2012 1 commit
  7. 10 Oct, 2012 1 commit
    • Michael Shigorin's avatar
      make-3.82 adaptation · 6f5be918
      Michael Shigorin authored
      The issue actually hit image.in/Makefile: "metadata" target
      in features.in/metadata/lib/50-metadata.mk wasn't reached
      even if features.in/build-distro/lib/90-build-distro.mk
      would ACK that the "whatever" actions included "metadata";
      thus Metadata/pkg-groups.tar wasn't created and the installer
      silently failed to install the .base system.
      
      Let's armour the rest of the cases where the order of inclusion
      might be important as well.
      6f5be918
  8. 18 Jul, 2012 1 commit
    • Michael Shigorin's avatar
      build-vm: standalone build is a must, too · cb764516
      Michael Shigorin authored
      The problem was spotted by Alexander Bandura:
      bin/tar2vm wasn't present in the generated profile.
      
      I considered extending features.in/Makefile to include
      bin/ alongside lib/ but that would make the helper's location
      unpredictable (unless BUILDDIR is specified explicitly) so
      restricting sudoers would be harder; worse yet, the copied file
      would come with write access for the user building an image.
      
      The implications in restricted case are complex enough anyways
      so the recommended implementation would only include a fixed
      readonly location like /usr/share/mkimage-profiles/bin/tar2vm
      as laid out in doc/vm.txt, and that means it's in the metaprofile
      not a generated profile.
      cb764516
  9. 18 Jun, 2012 1 commit
    • Michael Shigorin's avatar
      initial build-vm feature · 75f7c62b
      Michael Shigorin authored
      Yes, mkimage-profiles is now able to build VM disk images.
      So far the support is pretty basic:
      
      - a single hard drive image with a single partition/FS
      - only stock root password is configurable
      - LILO is hardwired as a bootloader
      
      The resulting images tend to boot under qemu/kvm though.
      
      Please see doc/vm.txt for the warning regarding additional
      privileges and setup required.  This was started back in
      February but I still hoped to avoid sudo/privileged helper
      (and libguestfs is almost as undistributable as can be)...
      
      Thanks:
      
      - http://blog.quinthar.com/2008/07/building-1gb-bootable-qemu-image-using.html
      - Alexey Morarash who reworked that as https://github.com/tuxofil/linsygen
      - led@, legion@, vitty@, aen@ for providing advice and inspiration
      75f7c62b
  10. 07 Apr, 2012 1 commit
  11. 19 Mar, 2012 1 commit
  12. 16 Jan, 2012 1 commit
    • Michael Shigorin's avatar
      fix toplevel arch/distro loops · 9304c12c
      Michael Shigorin authored
      There was a somewhat subtle Makefile->main.mk rename leftover
      lurking in "everything" target: the default Makefile got used,
      not the supposed main.mk -- which resulted in an attempt to
      get way too much job done (the number of builds per target
      became $ARCH squared, not just $ARCH).
      
      Huge thanks to led@ for being an inspiring pedantic!
      9304c12c
  13. 02 Jan, 2012 1 commit
    • Michael Shigorin's avatar
      main.mk introduced, lib/*.mk partially rewritten · 2f307fff
      Michael Shigorin authored
      The former toplevel Makefile is now toplevel main.mk;
      this change allows for multi-target, multi-arch processing
      in the current toplevel Makefile.
      
      As the "build" symlink semantics change quite considerably
      when one is doing bulk builds (several pruned builddirs might
      be useful for comparison), BUILDDIR is now much more likely
      to be recreated: the cases when it will persist are when it's
      either a single-image build or when the prefix hasn't changed.
      
      There are some more or less subtle bugfixes and enhancements
      all over the map as well.
      
      Done within 20111230..20120102 timeframe, actually...
      2f307fff
  14. 02 Dec, 2011 1 commit
    • Michael Shigorin's avatar
      conf/live.mk: minor refactoring · 3d982dab
      Michael Shigorin authored
      distro/live-builder target used to employ a few duplicated
      packages that might make it to a list but as the list would
      have only a single user so far these were moved to a target-
      specific variable (hm, weird but "private" modifier broke).
      3d982dab
  15. 24 Nov, 2011 2 commits
    • Michael Shigorin's avatar
      added support for cpio and xz · 7e78670e
      Michael Shigorin authored
      Actually this is the proper rewrite that was looming ever since
      tgz support was introduced: there are multiple archive formats
      supported by mkimage, and there are multiple compression methods
      available as well.
      
      So the bullet got bitten yet again along with the "goal parser"
      which should be more straightforward by now.
      
      Thanks dkr@ and mithraen@ for the inspiration of this evening.
      7e78670e
    • Michael Shigorin's avatar
      Makefile: get help back up · 041d5754
      Michael Shigorin authored
      Partially reverts "Makefile: presume a distro by default" commit:
      plain `make' should better help the user to decide the target
      rather than rush to build them all upon her.
      041d5754
  16. 21 Nov, 2011 1 commit
    • Michael Shigorin's avatar
      Makefile: presume a distro by default · 10b9e293
      Michael Shigorin authored
      When ve/ support was introduced, a simple "make icewm.iso"
      had to turn into the more elaborate "make distro/icewm.iso".
      This latter one involves several keystrokes more, which is
      not even (environ)mentally friendly.
      
      This was supposed to get fixed somewhere down the road with
      a fallback but the elegance of IMAGE_* setup waterfall barred
      me from tweaking IMAGE_TARGET at once (and the downstream fixup
      would imply re-tweaking the consequent variables as well which
      is blatantly anti-mkimage-profilic being a brute fork).
      
      OTOH testing for a "directory" part of the goal is going to
      either deadlock on IMAGE_CLASS or duplicate its assignment.
      
      So now when I've had enough typing an extra "distro/",
      I'm going to just bite the bullet and tweak IMAGE_TARGET
      with a test duplicating IMAGE_CLASS assignment indeed
      (testing for e.g. "/" results in a different test,
      which would be worse yet).
      
      Please suggest a more elegant solution if you invent one!
      10b9e293
  17. 06 Nov, 2011 2 commits
    • Michael Shigorin's avatar
      tweaked variable logging · cc8982dd
      Michael Shigorin authored
      Preferences might be somewhat interesting too: while the official
      ones shouldn't influence the build result at all, there's no whitelist
      so all kinds of weirdness can be stuffed into local config in principle.
      That should be diagnosable at least.
      cc8982dd
    • 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
  18. 04 Nov, 2011 11 commits
    • 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
      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
      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
      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
      .base rehashed, DISK_LISTS renamed, etc · 5f881522
      Michael Shigorin authored
      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
      5f881522
    • Michael Shigorin's avatar
      README update · b69a8a63
      Michael Shigorin authored
      reword 'em, structurize 'em, facelift 'em too
      b69a8a63
    • Michael Shigorin's avatar
      kernel and BUILDDIR fixes · c2f70e5c
      Michael Shigorin authored
      - 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
      c2f70e5c
    • Michael Shigorin's avatar
      server-ovz; KDEFAULT; syslinux features reworked · 3f012958
      Michael Shigorin authored
      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).
      3f012958
    • Michael Shigorin's avatar
      initial logging subsystem · d93989a3
      Michael Shigorin authored
      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
      d93989a3
    • Michael Shigorin's avatar
      assorted fixups · ace5cb0f
      Michael Shigorin authored
      - 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
      ace5cb0f
    • Michael Shigorin's avatar
      drop autoconf, a few vars in .mk suffice · d77e1d8d
      Michael Shigorin authored
      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
      d77e1d8d
  19. 03 Nov, 2011 7 commits
    • Michael Shigorin's avatar
      gfxboot brought to reasonable shape · a9e161b4
      Michael Shigorin authored
      Also included:
      - reworked syslinux feature inclusion
      - syslinux: s/textprompt/prompt/
      - README++
      a9e161b4
    • Michael Shigorin's avatar
      features' day · c8b578dd
      Michael Shigorin authored
      - get rid of $dest
      - work on features.in/syslinux
      - README++
      c8b578dd
    • Michael Shigorin's avatar
      distro.mk: functionalization · 9a8f8ef7
      Michael Shigorin authored
      - set(), add(), log()
        + special thanks to rider@ for log format feedback
      - simple debug facility
      - builds, installs and runs... again
      9a8f8ef7
    • Michael Shigorin's avatar
      syslinux and features · c91a2a09
      Michael Shigorin authored
      - 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
      c91a2a09
    • Michael Shigorin's avatar
      r/o profile build · 2cc81b7e
      Michael Shigorin authored
      Building m-p-d stuff in-tree was plagued by accidental
      generated file commits, and it wasn't nice at all anyways.
      2cc81b7e
    • Michael Shigorin's avatar
      working installer iso image · d91a3564
      Michael Shigorin authored
      - s/stage2/install2/g
      - added pkg/lists
      - initial README (ru_RU.KOI8-R)
      - mkimage topdir is in image.in/, really (off-tree build)
        + initial bin/mktmpdir
        + BUILDDIR (works)
      - s/cd/iso/
      - drop --with-distro (considered harmful)
      d91a3564
    • Michael Shigorin's avatar
      it forks! · 8dc5159e
      Michael Shigorin authored
      Initial profile lacking any real stuff but presenting the idea;
      autoconf-based like m-p-d.
      8dc5159e
  20. 23 Aug, 2010 1 commit