IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
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.
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)
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.
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.
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.
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).
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...
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).
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)
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
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.
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.
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...
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).
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.
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.
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!
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/
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.
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.
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).
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.
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).
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.
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)
- better *_LISTS printout
- somewhat cleaner .base comments
- more comprehensible git log messages
+ special handling for complex subprofiles
+ no need to commit build.log ;-)
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
These were broken since 5ff375aa10bee7937db457d3df3115f938bb6c77
due to no bootloader being tossed anymore by the very
installer-distro-altlinux-generic (which is the default)
- 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
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
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)
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.