1. 20 Apr, 2015 1 commit
    • Michael Shigorin's avatar
      pkg.in/lists: archdep suffices for pkglists · ac5dbb4b
      Michael Shigorin authored
      This is an initial implementation of architecture dependent
      contents handling for package lists more or less in the vein
      of mkimage-profiles-desktop's one *but* using suffix part to
      filter words in or out *not* prefix part to replace it with
      a comment marker (thus filtering out lines).
      
      The syntax should be pretty obvious:
      
        a b@i586 c@x86_64
      
      will get "a b" given ARCH=i586 and "a c" given ARCH=x86_64;
      please see doc/archdep.txt for a more elaborate description
      and a conversion script.
      ac5dbb4b
  2. 02 Apr, 2015 1 commit
    • Michael Shigorin's avatar
      introduce QUIET variable · 3cb4d9ae
      Michael Shigorin authored
      This one reduces the amount of output that's only
      interesting when one is actually watching the console
      during builds (at least the early stage) -- these tend
      to look boilerplate and be useless when inspecting the
      output of a large batch build like [[regular]] one.
      3cb4d9ae
  3. 27 Aug, 2014 1 commit
    • Michael Shigorin's avatar
      profile.mk: defer RC expansion · 851b4413
      Michael Shigorin authored
      Just spotted that .disk/profile.tgz would hold
      distcfg.mk with pre-expanded $(HOME) from build
      host which is both info leak (user account that
      was used to build the particular image) and just
      wrong given that the in-image profile archive was
      conceived as a means to pass that part of build
      environment over instead of tying it to vendor.
      
      Morale: premature optimization is premature.
      851b4413
  4. 19 Feb, 2013 1 commit
  5. 11 Feb, 2013 1 commit
    • Michael Shigorin's avatar
      fixed mp-commit and its use · ad264c70
      Michael Shigorin authored
      Now this is ugly: instead of commoditizing the repetitive code
      the result ended up working differently by creating several
      repositories for the target subdirs instead of the single one
      for the generated subprofile as a whole.
      
      This results in .disk/profile.tgz being basically useless
      in every image since c4311108.
      ad264c70
  6. 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
  7. 11 Nov, 2012 1 commit
  8. 11 Aug, 2012 2 commits
    • Michael Shigorin's avatar
      merged experimental support for opensuse · 23175f00
      Michael Shigorin authored
      This isn't ready for general consumption (just as centos one)
      but the notion of REPO is floating around along with apt-conf
      thoughts, and it might still be useful to someone poking around
      conf.d/test.mk.
      
      Request hasher-pkg-init.spec from mike@ or led@ if interested;
      the experiments were carried out using openSUSE 11.4 repository
      and slightly patched hasher (cpio blacklist for devices).
      23175f00
    • Michael Shigorin's avatar
      complex subprofile delimiter changed ("/" -> "@") · b21353a0
      Michael Shigorin authored
      That sub/stage2/install2 was somewhat clumsy actually as it looked
      like a hierarchical thing while being a substitution thing:
      generic stage2 would get put in place renamed as install2.
      
      This could only get worse with hierarchical features which have
      already been both requested and considered for quite a time,
      and "stage2 at install2" reads much more naturally.
      b21353a0
  9. 09 Aug, 2012 1 commit
    • Michael Shigorin's avatar
      git usage refactoring · c4311108
      Michael Shigorin authored
      There were heaps of "if type -t git" there already;
      it wasn't an unintentional mishap but rather a moderate
      copy-paste to get the use cases, and now these seem to
      have essentially settled.
      
      So time to scrap some dups.
      
      NB: the scripts in the generated profile can't rely on
      the contents of the metaprofile (these need to be able
      to work in standalone case either), so a bit of crap
      still lurks there.
      c4311108
  10. 16 Jul, 2012 1 commit
    • Michael Shigorin's avatar
      non-native ARM support via qemu · d31a2555
      Michael Shigorin authored
      mkimage and hasher can make use of qemu to run
      non-native binaries while working on the chroots;
      thanks kas@, manowar@ and sbolshakov@ for implementing
      this functionality as well as providing nice examples
      through mkimage-profiles-arm and mkimage-profile-armrootfs.
      
      This required the architecture check to be added since baking
      a tarball with "arm" as its specified arch and x86_64 inside
      isn't particularly good thing to let slip through; however
      the implementation is quite fragile, bugreports and patches
      are seriously welcome.
      
      NB: APTCONF evaluation order between lazy make and nimble shell
      turned out to be quite a delicate issue in this particular case.
      d31a2555
  11. 21 Jun, 2012 1 commit
  12. 23 Apr, 2012 1 commit
  13. 07 Apr, 2012 1 commit
  14. 27 Mar, 2012 1 commit
  15. 19 Mar, 2012 1 commit
  16. 10 Jan, 2012 1 commit
    • Michael Shigorin's avatar
      bin/mktmpdir: check for filesystem mount options · 5a1065c3
      Michael Shigorin authored
      As was found out by Vladimir Karpinsky (thanks for patience!),
      the autochosen directory might still have too restrictive mount
      options -- nodev and/or noexec.  Hopefully the diags are a bit
      better and faster by now.
      5a1065c3
  17. 02 Jan, 2012 2 commits
    • 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
    • Michael Shigorin's avatar
      lib/{clean,profile}.mk: robustness improvements · 3d2f69f1
      Michael Shigorin authored
      First, let's not do rsync --delete on an unverified target dir
      again: the lesson was learned during a subway hacking session
      and I must say that SSDs are frightening fast (even if it was
      more than a second to realize what happens and terminate the
      extermination before it got /home, thanks xterm).
      
      Second, let's use a variable for common name and make's own
      realpath function instead of external binary.
      3d2f69f1
  18. 06 Nov, 2011 4 commits
    • Michael Shigorin's avatar
      further toplevel logging tweaks · 07fdc6dd
      Michael Shigorin authored
      Essentially some more polishing:
      - image path extracted from downstream build log;
      - extended error/warning regexp a bit so those with
        color grep options get even prettier output.
      
      Notes:
      - "1024" a magic number (briefly explained when introduced)
        moved to a sort of variable;
      - "100 lines" for tail(1) is a rule-of-thumb taking into account
        typical amount of hasher/mkimage exhaust given GLOBAL_VERBOSE.
      07fdc6dd
    • 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
      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
  19. 04 Nov, 2011 13 commits
    • 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
      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
      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
      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
      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
      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
      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
      README updates · faafaf12
      Michael Shigorin authored
      ...and some more cosmetic fixes
      faafaf12
    • 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
  20. 03 Nov, 2011 4 commits