Compare commits

...

97 Commits

Author SHA1 Message Date
Michael Shigorin
a5ec5f2577 0.9.0-alt1
- initial uefi, luks, armh support
- enhanced arm, gnome3/systemd, vm support
2012-11-19 23:32:45 +02:00
Michael Shigorin
5e9ba6fb1a tar2vm: reworked to use sfdisk
The issue (#28002) resulting in vm image build error reading

  Syntax error at or above line 5 in file '/etc/lilo-loop.conf'

was caused by fdisk-2.22 changing its "-l" option output format
to drop the very mention of the long irrelevant crap named "CHS".

The problem is, however, that we still need that crap to piggyback
a loop device's fake geometry to lilo while installing it there.

Reported by icesik@.
2012-11-19 23:26:51 +02:00
Michael Shigorin
e179176b28 initial armh support
Somewhat kludgy unfortunately and might need even more tweaking,
I have only armv7l board handy at the moment to verify that
the transformation is going to work.

QEMU is bailing out here and now ("Exec format error").

Example sources.list.sisyphus.armh of the season:

  rpm http://ftp.altlinux.ru/pub/people/asdus/sisyphus armh classic
  rpm http://ftp.altlinux.ru/pub/people/asdus/sisyphus noarch classic
2012-11-19 23:26:51 +02:00
Andrey Liakhovets
edd959e182 Enable ubifs packing of result.
An example for sam9x25-ek:

make \
 PACK_UBI_MIN_IO_SIZE=2KiB \
 PACK_UBIFS_OPTS="-e 124KiB -c 1984" \
 PACK_UBI_OPTS="-p 128KiB -s 2048" \
 PACK_UBI_VOL_TYPE=dynamic \
 PACK_UBI_VOL_NAME=rootfs \
 PACK_UBI_VOL_FLAGS=autoresize \
 HSH_EXCLUDE_DOCS=1 ARCH=arm APTCONF=apt.conf.sisyphus.arm ve/generic.ubifs

https://bugzilla.altlinux.org/show_bug.cgi?id=27994#c0
2012-11-19 23:26:51 +02:00
Michael Shigorin
09cb29cb36 test.mk: initial desktop-luks
It's beta too but holding off the feature seems counterproductive.
2012-11-19 23:26:51 +02:00
Michael Shigorin
99a25867b2 initial luks feature
Based on timonbl4@'s advice; might need some bleeding edge
packages right now, feel free to ask (everything should be
in place by p7/branch though).
2012-11-19 23:26:51 +02:00
Timur Aitov
6ba5e45fbe don't cleanup crypto libraries (for LUKS) 2012-11-19 23:26:51 +02:00
Michael Shigorin
bd427df77a stage2: updated 80-make-initfs
propagator-20121109-alt1 obsoleted initfs (and dropped
mkinitfs script altogether); that was taken into account
in both make-initrd-propagator and mkimage-profiles-desktop
but not in mkimage proper, see also discussion in #27976.
2012-11-19 23:26:51 +02:00
Michael Shigorin
06b9785816 install2: drop empty tagged/image-scripts.d/
Tagged scripts got heavily postponed
for the lack of practicability
so far.
2012-11-19 23:26:51 +02:00
Michael Shigorin
595dfc2d02 test.mk: initial live-efi, icewm-efi
Both do require postprocessing (see http://www.altlinux.org/UEFI)
until mkimage receives xorriso support and efiboot.img is passed
down there somehow, but it's beta than nothin' so far.
2012-11-19 23:26:51 +02:00
Michael Shigorin
653b8e1df8 initial EFI support
EFI/UEFI is mostly about partitioning and bootloader setup,
at least from a distribution's point of view; so the
appropriate tools should be handy and firmware interface
module should not be exterminated from installer images
but get autoloaded instead.

Please note that while there exists 32-bit x86 EFI
we don't bother with it at the time being: it's relevant
to some irrelevant Xeon systems as well as for the older
Intel Macs (<2008) that are long out of fashion anyways.
That is, initially we deal with x86_64 EFI only.
2012-11-19 23:26:51 +02:00
Michael Shigorin
12340b3165 initial live-gnome
Thanks ildar@ for both the request and clarifications
regarding the build of the minimalistic GNOME3 LiveCD.

NB: current GNOME3 is hooked on systemd.
2012-11-19 23:26:50 +02:00
Michael Shigorin
165059b1bd live.mk: use/live/ru related refactoring
Introduced distro/.live-desktop-ru as a shortcut for
distro/.live-desktop use/live/ru which occurs several times
already (and the counter will increase right now).
2012-11-19 23:26:50 +02:00
Michael Shigorin
0efba3e42c live: support systemctl to enable *dm
systemd is a tricky beast: getting it to actually launch gdm
required considerable effort on the part of stupid myself.

The relevant links:
* https://wiki.archlinux.org/index.php/Systemd#Running_DEs_under_systemd
* http://unix.stackexchange.com/a/35626/15296

Still looks pretty dirty, and there's some duplication
with a hook in features.in/slinux as well.
2012-11-19 23:26:50 +02:00
Michael Shigorin
6a6a0e1c01 live: enable dm service if present
This was requested by aris@ for live-gnome.iso but is so far
reasonable enough to do by default: the case of a LiveCD
including X and a display manager but willing to get on
with startx by default is rather nonexistant by now.
2012-11-19 23:26:50 +02:00
Michael Shigorin
6aa5402d8b gear-store-tags 2012-11-12 00:10:45 +04:00
Michael Shigorin
a1119b74fe 0.8.7-alt1
- regressions--
2012-11-12 00:01:43 +04:00
Michael Shigorin
e6c59ac3f3 moved distro/syslinux from test.mk back to live.mk
Thanks go to ildar@ for spotting this: my ~/.mkimage/profiles.mk
routinely contains DEBUG = 1 line which effectively masked this
regression in commit 307fb51f15.

Wouldn't be a big deal but syslinux.iso is recommended in
tutorial docs being slim and fast-building, and it's also
what's buildable locally in live-builder.iso environment.
2012-11-12 00:01:43 +04:00
Michael Shigorin
6711fd92db lib/profile.mk: slightly improved arch test
ildar@ noted that the test involving whitespace is too
quirky for some quirky enough cases like

  rpm-dir file:/var/cache/apt/archives . x86_64

-- let's introduce word boundaries there.
2012-11-12 00:01:32 +04:00
Michael Shigorin
c30490e2e8 80-make-initfs: fix the silliest mistake ever
*Of course* the "weird" [ ... ] || ... construct meant to avoid
the non-zero exit status of the whole thing wasn't employed
where it actually does make the difference!

Thanks ildar@ for hitting and reporting this, as in

  + verbose '/usr/lib64/propagator exists'
  + '[' -n '' ']'
  mki-scripts: .../stage1/scripts.d/80-make-initfs: unable to run script.
  make[3]: *** [run-scripts] Error 1
2012-11-10 17:59:30 +04:00
Michael Shigorin
45cddfd25a stage1: added nfsv*.ko to modules
The newer kernels have versioned NFS support code moved
into a few separate modules with nice self-explanatory
messages reading "Protocol not supported" if one has
managed to overlook this; thanks boyarsh@ for heads-up
(based on f545923271f9d1938d1887632ab4697c4c009039 m-p-d).
2012-11-09 16:14:38 +04:00
Michael Shigorin
5300949cc5 gear-store-tags 2012-11-05 17:53:00 +04:00
Michael Shigorin
cebabf992f 0.8.6-alt1
- docs subpackage (HTML/PDF book)
2012-11-05 17:52:47 +04:00
Michael Shigorin
6694882715 doc/Makefile: refactoring
The initial sketch did work but was somewhat redundant
while lacking the knob conveniently change output directory
as well as means to get it cleaned up.
2012-11-05 17:20:12 +04:00
Michael Shigorin
12de346ddd asciidoc: use dejavu fonts
Thanks torabora@ for the tip along with reference to his
http://altlinux.org/asciidoc page.
2012-11-05 17:20:12 +04:00
Michael Shigorin
4e0cd6bdf6 asciidoc: moved support files into doc/
Docs should live happily together, after all,
and toplevel should be more or less uncluttered :)

Adjusted/rewrote as appropriate as well.
2012-11-05 17:20:12 +04:00
Michael Shigorin
ccf3b2220a asciidoc: avoid images/icons/note.png
It was actually an experiment leftover and spoils
toplevel completion so let's drop that one, just
as mentioned by torabora@.
2012-11-05 12:26:26 +02:00
Mike Radyuk
85217cd11d added asciidoc support 2012-10-31 21:22:06 +02:00
Michael Shigorin
301a13a015 use/live/desktop: added pciutils
It's not fun to boot into a livecd just to find that
there's no lspci around!
2012-10-30 21:59:17 +02:00
Michael Shigorin
103981a2bb gear-store-tags 2012-10-29 22:08:23 +02:00
Michael Shigorin
91a4cc986f 0.8.5-alt1
- diffable logs
- AMD APU support
2012-10-29 22:07:50 +02:00
Michael Shigorin
32719b3145 desktop+tde -= gtk2-themes-qtcurve
There's no gtk2-themes-qtcurve package in Sisyphus at the moment;
let's fix image build until it's back again (if it ever is).
2012-10-27 22:28:17 +03:00
Michael Shigorin
02791834f9 distro/installer, use/live/x11 += use/firmware
This is thanks to the fact that alterator-based install2 needs
alterator-browser-qt which needs X11 which needs working device drivers
-- and at least AMD C60 APU would only yield a nice dotted white screen
without that firmware.

Roughly the same for X11 bearing LiveCD images.
2012-10-27 22:27:22 +03:00
Michael Shigorin
63b515c922 live-webkiosk-mini, tde: use led-ws kernel flavour
The rationale for the former is that the image gets slightly
more compact (although the current sisyphus build is way larger
than the t6/branch build of the optimization time, need to look
into that...); and for the latter it's to provide yet another
installer with a different enough kernel so that there's one more
chance in a weird situation.
2012-10-27 22:21:00 +03:00
Michael Shigorin
d445f5e374 xorg: added xorg-drv-modesetting
Thanks boyarsh@ for a hint that VM-emulated cirrus VGA
actually requires xorg-drv-modesetting when used
with recent kernels.
2012-10-27 22:20:44 +03:00
Michael Shigorin
0e39602368 initial desktop+network+live
Actually just a split of livecd-webkiosk into the kiosk related
part and generic livecd firefox setup (turning off queries that
are pretty useless in that environment).
2012-10-27 22:19:15 +03:00
Michael Shigorin
f4d4544832 razorqt-0.5 support
Yet another rename, sigh.  The release is worth the trouble though.
2012-10-27 22:18:36 +03:00
Michael Shigorin
aa8699c4a4 reports.mk: diffable logs
This is a mild generalization of what has been done by hand
to figure out a problem with make-initrd-propagator-0.10-alt1:
stripping anything intrinsically volatile off the build.log.

The filter set isn't perfect, and the proper logging will
involve mkimage tweaks as well (e.g., one generally isn't
interested in instrumental chroots' population that much,
so it should only be verbose at the higher debug levels).
2012-10-27 22:13:58 +03:00
Michael Shigorin
8d96a102ae gear-store-tags 2012-10-16 12:20:21 +03:00
Michael Shigorin
939455e7a3 0.8.4-alt1
- worked around enhancements in current make-initrd-propagator
  (thus fixed live image boot, finally)
2012-10-16 12:17:28 +03:00
Michael Shigorin
aaddfb740c stage2: cope with current make-initrd-propagator
The issue that appeared pretty hard to diagnose occured
to be the enhancement made in make-initrd-propagator=0.8.1-alt1.2
(that didn't hit Sisyphus until merged into 0.10-alt1) which
drops propagator dependency.

And that was optimized out in m-p, of course.
2012-10-16 12:16:39 +03:00
Michael Shigorin
b8d711a005 gear-store-tags 2012-10-15 23:35:17 +03:00
Michael Shigorin
7a50acb5c4 0.8.3-alt1
- make-3.82 support
- fixed live image boot to some extent (see #27640, #27852)
2012-10-15 23:34:36 +03:00
Michael Shigorin
90b8fd49f4 80-make-initfs: fixed silly thinko
The added pdir check was a hillarious(tm) overlooked bug indeed:
I tried to put .../initfs/initfs instead of .../initfs as the result.

Duly spotted by torabora@, thanks a lot.

Still the kmod+propagator+kernel-image combo needed some tweaking too,
see #27640
2012-10-15 17:04:18 +03:00
Michael Shigorin
944e0341c5 stage2: brevity fix
A tiny bit less cut-n-paste. :)
2012-10-15 16:03:58 +03:00
Michael Shigorin
6f5be91827 make-3.82 adaptation
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.
2012-10-10 16:18:35 +03:00
Michael Shigorin
718a50b9d0 relname: tweak the fix/diagnostics
The culprit would be that $RELNAME isn't really set there
($GLOBAL_RELNAME is), and sh -u will treat that as error.
2012-10-10 12:06:55 +03:00
Mike Radyuk
78684bfef3 fix RELNAME script and README 2012-10-10 12:00:17 +03:00
Mike Radyuk
cc623bc56b fix typo in RELNAME variable 2012-10-09 00:13:02 +03:00
Michael Shigorin
64536f62d1 bootloader README: a note on overriding
It's pretty ugly but dropping the current way
means losing the dependency tracking which is
critical to get the required alterator module
into install2.
2012-10-01 23:28:24 +03:00
Michael Shigorin
91053b9daf gear-store-tags 2012-09-24 21:52:10 +04:00
Michael Shigorin
b44705d25b 0.8.2-alt1
- fixed build with recent make-initrd-propagator
2012-09-24 21:21:49 +04:00
Michael Shigorin
12a2fc983c 80-make-initfs: fix for current make-initrd*
Thanks mithraen@ for spotting, boyarsh@ for explaining,
and legion@ for hearty support :)

The problem would manifest itself like this:

  /.host/script.sh: line 20: /usr/lib64/propagator/initfs: \
  No such file or directory
  mki-scripts: .../stage1/scripts.d/80-make-initfs: unable to run script.
2012-09-24 21:20:49 +04:00
Michael Shigorin
30d0340d56 install2: added convenient filesystems support
Thanks Serg Markov for bringing my attention to this:
http://www.opennet.ru/openforum/vsluhforumID3/86552.html#61

While the official distros might skip some filesystems for
support reasons there's no reason for community distros to
do so either.

Let's try that with icewm.iso...

NB: installer has a misfeature of dropping jfs/reiserfs
    support in runtime unless "expertmode" magic word
    is on the kernel bootargs string (#27763, #17368).
2012-09-24 11:07:49 +04:00
Michael Shigorin
2f357e44d6 clean.mk: skip if REPORT requested either
The problem would manifest itself like this:

..:..:.. cleaning up after build
sed: can't read .../build.log: No such file or directory
2012-09-24 11:07:45 +04:00
Michael Shigorin
a2b89e6647 ovz-server: add vzquota
Asked for by torabora@; indeed.
2012-09-23 11:46:52 +04:00
Michael Shigorin
56b3147eac README: minor readability fixes
Should be a tiny bit better this way.
2012-09-22 17:37:14 +04:00
Michael Shigorin
d5cf1ff3eb renamed menuitem-grub feature to relname
Its immediate purpose was influencing the GRUB boot menu
*but* the implemented mechanism is actually a part of the
long planned text branding and might be further merged
into branding when hierarchical features finally chime in.

So let's get the naming straight before it breeds.
2012-09-12 20:12:41 +03:00
Michael Shigorin
f44908ca78 proofreading of the merged commits
File contents should be correct.
2012-09-12 19:39:42 +03:00
Mike Radyuk
8233aa8424 added menuitem-grub feature 2012-09-12 19:23:55 +03:00
Mike Radyuk
a35b5fbc21 added MENUITEM variable 2012-09-12 19:19:37 +03:00
Michael Shigorin
c3a1b4a934 gear-store-tags 2012-09-03 20:22:54 +03:00
Michael Shigorin
061f299fa1 0.8.1-alt1
- misc fixes
2012-09-03 20:22:16 +03:00
Michael Shigorin
e52e21781f actually useful vm/icewm
See http://www.opennet.ru/openforum/vsluhforumID3/86239.html#1
for a query that has led to this one; in particular,
- xdm dropped (won't log in root and there are no users yet);
- network is brought up and configured via DHCP by default;
- apt-get works out-of-box;
- default image size is twice the chroot size.
2012-09-03 19:16:50 +03:00
Michael Shigorin
0e8871e7b4 use un-def kernel by default
3.5.2-std-def-alt2 brings boot problems which were absent
with 3.4.x-std-def and are absent with 3.5.x-un-def;
seems like it's better to stay with known good variant
at the moment instead of having to fall back to it.
2012-09-03 19:16:50 +03:00
Michael Shigorin
e064954e93 rescue += ipmitool
It was missing indeed; suggested by ildar@.
2012-09-03 19:16:50 +03:00
Michael Shigorin
83fa2544bc fix root directory permissions
hsh-initroot leaves the chroot's root directory permissions
as 1775 while these should really be 755 at most; let's fix it
(important for both VE and VM images, useful for rescue/livecd
ones as well -- especially those with an installer onboard).
2012-09-03 19:16:50 +03:00
Michael Shigorin
d0cb988897 desktop+live += su
Thanks aen@ for finally mentioning it
as I just used to cope without su. :)
2012-09-03 19:16:50 +03:00
Michael Shigorin
84591991cb no more *silent* aliases
The missing "; @:" at the end of the otherwise recipeless rule
resulted in target graph being broken; I should have checked this
when introducing these aliases (the intent was to reduce noise).
2012-09-03 19:16:50 +03:00
Michael Shigorin
d2581522d9 systemd += chkconfig
It appears that chkconfig wasn't getting pulled in
by now if not told so explicitly.  Still in need.
2012-09-03 19:16:50 +03:00
Michael Shigorin
705a20938a conf.d/test.mk: live-mate-systemd
Not even alpha quality yet but at least debuggable:
- X session doesn't autostart but service dm start works;
- keyboard layout indicator is missing until started by hand.
2012-09-03 19:16:50 +03:00
Michael Shigorin
f54a5660d1 MATE: current crop of packages
There's a bunch of additions to the MATE package list:
thanks viy@ for pulling extras into autoimports,
several more tweaks done due to hints by dek@,
and openssh packages added for debugging convenience.

The kernel's been changed for the latest one (un-def).
2012-09-03 19:16:50 +03:00
Michael Shigorin
e0a849e974 initial live-gns3
Someone over the internets suggested that such a LiveCD exist:
http://www.opennet.ru/openforum/vsluhforumID3/85817.html#24
...but then disappeared in the thin air, sigh.
2012-09-03 19:15:42 +03:00
Michael Shigorin
b5e5d4f223 gear-store-tags 2012-08-13 22:04:57 +03:00
Michael Shigorin
d1bbbbc10b 0.8.0-alt1
- stage2@live
2012-08-13 22:03:32 +03:00
Michael Shigorin
3a3893b664 rescue += firmware (server, wireless)
There's no use of a rescue image when it has no firmware
for the controller in the system being worked on...
so added some.
2012-08-13 15:51:53 +04:00
Michael Shigorin
23175f0020 merged experimental support for opensuse
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).
2012-08-11 23:24:23 +03:00
Michael Shigorin
eb3df648a2 minor documentation facelift
A few more items were asking for some attention.

In particular, build examples should start with
the most basic, error-proof and quick targets.
2012-08-11 22:56:41 +03:00
Michael Shigorin
d646e71906 doc/qemu.txt: mostly automated
This part of docs was pleading to put it into a small shell
script; it was done to facilitate kas@' debugging efforts
so that qemu-system-ppc might eventually get fixed, thus
livecd-qemu-arch package now "obsoletes" this file.
2012-08-11 22:56:24 +03:00
Michael Shigorin
c08e86afc5 features: hopefully better README
Thanks both drool@ for his mild frustration with the current
documentation as well as Greg Kroah-Hartman, Heikki Orsila
and Neil Brown for http://lwn.net/Articles/504814/ -- the docs
should really emphasize *why* something is done, not *how*,
as the "how" part is better documented with the code itself
(that doesn't mean that "the big picture" isn't needed).
2012-08-11 21:45:26 +03:00
Michael Shigorin
b21353a00c complex subprofile delimiter changed ("/" -> "@")
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.
2012-08-11 20:11:17 +03:00
Michael Shigorin
912dbcfd10 features: drop dirtags
Finishes what 3dd020338b
has essentially done... the path seems to be elsewhere.
2012-08-11 20:06:00 +03:00
Michael Shigorin
e6f13defcd razorqt += qps
Don't remember who exactly recommended this nice and elegant
system monitor but it fits just fine.
2012-08-10 19:48:04 +04:00
Michael Shigorin
c4311108ea git usage refactoring
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.
2012-08-10 00:12:46 +03:00
Michael Shigorin
a3779231cb rescue += zerofree, wipefreespace
This kind of tools can be badly missing at times.
2012-08-09 23:40:25 +03:00
Michael Shigorin
9c16a9e6ff rescue += boot off sda/sdb
There's no (convenient) "eject" at times, so it's better to provide
extra ways of booting right away.
2012-08-08 20:39:26 +04:00
Michael Shigorin
70793436c7 rescue += openssh
Found myself pretty silly while sittin' at the rescue console
and bein' unable to leave the cool server room for a way
more comfortable armchair and a laptop's keyboard...

(yes, it was that disk array needing GPT tools)
2012-08-08 20:27:59 +04:00
Michael Shigorin
1cf14cda95 lists/tagged/rescue*: minor update
Several GPT-related packages added along with
a few more rescue related ones.
2012-08-08 16:38:12 +04:00
Michael Shigorin
05b3c65cd0 gear-store-tags 2012-08-07 00:04:47 +04:00
Michael Shigorin
55fda1a044 0.7.6-alt1
- minor improvements
2012-08-07 00:03:41 +04:00
Michael Shigorin
0d859e70fc image.in/Makefile: support image STATUS
Another feature suggested by Michael Radyuk (torabora):
some images are known alpha/beta quality, it's more handy
to just state this at the build time than to rename by hand.
2012-08-06 23:58:26 +04:00
Michael Shigorin
cbfc3db882 syslinux: honour META_VOL_SET for boot menu
This trots along the TODO item on text branding
and hopefully helps Michael Radyuk (torabora)
with his feature request to tweak the installer's
"Install ALT Linux" label; as an example, Simply
will now offer to "Install Simply Linux".
2012-08-06 23:58:26 +04:00
Michael Shigorin
43d62dd9bb live-builder.iso += livecd-qemu-arch
The package actually passed the test and just got uploaded
to Sisyphus proper; its aim is to help set up the cross-arch
QEMU build environment.

NB: there are known issues with PPC32-on-x86_64 (which were
the cause for this package and commit to be created in the
first place).
2012-08-06 23:56:32 +04:00
Michael Shigorin
307fb51f15 conf.d/test.mk: experimental stuff went here
Some images were unbuildable (at least without special setup,
like ve/centos), unusable or just not useful in any meaningful way
(like distro/live-isomd5sum); as these tend to get any attention
during experiments, I decided to put them together in a separate
configuration file that would be effectively skipped if DEBUG
is not requested.
2012-07-31 21:28:44 +04:00
Michael Shigorin
46e3c94707 syslinux: no ui, no escape
This one was suggested by enp@ for industrial use where
some extra protection for the boot process might be quite
desirable.

If no syslinux ui was specified (the stock configuration paths
ensure there is one) or if it was set to "none" explicitly,
then there's no boot: prompt (let alone any menu).

If there's a need to ensure that the boot process is not
interruptable by Ctrl/Shift/Caps Lock/Scroll Lock.
2012-07-31 13:51:34 +04:00
Michael Shigorin
78a660aed6 live-builder: added qemu-user-binfmt_misc
This provides the means to cross-build at least ARM chroots,
there are known problems with PowerPC for me so far:
http://lists.altlinux.org/pipermail/devel/2012-July/194855.html

See also http://www.altlinux.org/Ports/arm/chroot for /proc magic.
2012-07-30 23:15:36 +04:00
Michael Shigorin
d8f64c0c89 gear-store-tags 2012-07-30 20:15:24 +04:00
109 changed files with 1042 additions and 468 deletions

View File

@@ -1,5 +1,5 @@
Name: mkimage-profiles Name: mkimage-profiles
Version: 0.7.5 Version: 0.9.0
Release: alt1 Release: alt1
Summary: ALT Linux based distribution metaprofile Summary: ALT Linux based distribution metaprofile
@@ -11,15 +11,24 @@ Source: %name-%version.tar
Packager: Michael Shigorin <mike@altlinux.org> Packager: Michael Shigorin <mike@altlinux.org>
BuildArch: noarch BuildArch: noarch
BuildRequires: rsync asciidoc-a2x xmlgraphics-fop fonts-ttf-dejavu
BuildRequires: /proc
Requires: rsync git-core Requires: rsync git-core
Requires: time schedutils Requires: time schedutils sfdisk
Requires: mkimage >= 0.2.0 Requires: mkimage >= 0.2.0
# Recommends: graphviz # Recommends: graphviz qemu-img
%define mpdir %_datadir/%name %define mpdir %_datadir/%name
%add_findreq_skiplist %mpdir/*.in/* %add_findreq_skiplist %mpdir/*.in/*
%define docs $HOME/docs
%package doc
Summary: %name documentation
Group: Development/Documentation
%description %description
mkimage-profiles is a collection of bits and pieces useful for mkimage-profiles is a collection of bits and pieces useful for
distributions construction: it contains package lists, features, distributions construction: it contains package lists, features,
@@ -46,10 +55,15 @@ and modest metaprogramming (some code generation and introspection),
welcome to the metaprofile itself; read the docs and get the git: welcome to the metaprofile itself; read the docs and get the git:
%url %url
%description doc
This package holds developer docs for %name
as a book in HTML and PDF formats.
%prep %prep
%setup %setup
%build %build
make BUILDDIR=%docs docs
%install %install
mkdir -p %buildroot%mpdir mkdir -p %buildroot%mpdir
@@ -57,10 +71,47 @@ cp -a * %buildroot%mpdir
%files %files
%mpdir/ %mpdir/
%doc doc/
%doc README QUICKSTART %files doc
%doc README
%doc QUICKSTART
%doc %docs/*
%changelog %changelog
* Mon Nov 19 2012 Michael Shigorin <mike@altlinux.org> 0.9.0-alt1
- initial uefi, luks, armh support
- enhanced arm, gnome3/systemd, vm support
* Sun Nov 11 2012 Michael Shigorin <mike@altlinux.org> 0.8.7-alt1
- regressions--
* Mon Nov 05 2012 Michael Shigorin <mike@altlinux.org> 0.8.6-alt1
- docs subpackage (HTML/PDF book)
* Mon Oct 29 2012 Michael Shigorin <mike@altlinux.org> 0.8.5-alt1
- diffable logs
- AMD APU support
* Tue Oct 16 2012 Michael Shigorin <mike@altlinux.org> 0.8.4-alt1
- worked around enhancements in current make-initrd-propagator
(thus fixed live image boot, finally)
* Mon Oct 15 2012 Michael Shigorin <mike@altlinux.org> 0.8.3-alt1
- make-3.82 support
- fixed live image boot to some extent (see #27640, #27852)
* Mon Sep 24 2012 Michael Shigorin <mike@altlinux.org> 0.8.2-alt1
- fixed build with recent make-initrd-propagator
* Mon Sep 03 2012 Michael Shigorin <mike@altlinux.org> 0.8.1-alt1
- misc fixes
* Mon Aug 13 2012 Michael Shigorin <mike@altlinux.org> 0.8.0-alt1
- stage2@live
* Mon Aug 06 2012 Michael Shigorin <mike@altlinux.org> 0.7.6-alt1
- minor improvements
* Mon Jul 30 2012 Michael Shigorin <mike@altlinux.org> 0.7.5-alt1 * Mon Jul 30 2012 Michael Shigorin <mike@altlinux.org> 0.7.5-alt1
- a bunch of fixups and cleanups - a bunch of fixups and cleanups

View File

@@ -0,0 +1,6 @@
object a1119b74fe81a2e1bca8901930471c98b3dc6564
type commit
tag v0.8.7
tagger Michael Shigorin <mike@altlinux.org> 1352664612 +0400
regressions--

View File

@@ -1,6 +0,0 @@
object 0a3aaf15c2a8d8860e6e05729ad8ad3a706675a9
type commit
tag v0.7.4
tagger Michael Shigorin <mike@altlinux.org> 1342463836 +0300
ppc builds

View File

@@ -1 +1 @@
86f3e957f38ad46ca4305e7ce190e36b0d9d71ff v0.7.4 716e6c41900fff1738ded5752ee5bb98f325e4b5 v0.8.7

View File

@@ -10,7 +10,8 @@ ifndef ARCHES
ifdef ARCH ifdef ARCH
ARCHES := $(ARCH) ARCHES := $(ARCH)
else else
ARCHES := $(shell arch | sed 's/i686/i586/; s/armv.*/arm/; s/ppc.*/ppc/') ARCHES := $(shell arch \
| sed 's/i686/i586/; s/armv7.*/armh/; s/armv.*/arm/; s/ppc.*/ppc/')
endif endif
endif endif
export ARCHES export ARCHES
@@ -61,3 +62,6 @@ SHELL = /bin/bash
fi; \ fi; \
done; \ done; \
if [ "$$n" -lt "$(NUM_TARGETS)" ]; then say; fi if [ "$$n" -lt "$(NUM_TARGETS)" ]; then say; fi
docs:
@$(MAKE) -C doc

View File

@@ -1,5 +1,5 @@
English quickstart: make server-mini.iso; see also English quickstart: make syslinux.iso (after setting up
http://en.altlinux.org/Hasher (a large tmpfs is nice). http://en.altlinux.org/Hasher; large tmpfs helps a lot).
требуется требуется
~~~~~~~~~ ~~~~~~~~~
@@ -27,11 +27,11 @@ $ git config --global user.name "My Name"
$ mkdir ~/out $ mkdir ~/out
- тестовая сборка (см. тж. lib/distro.mk, doc/params.txt): - тестовая сборка (см. тж. lib/distro.mk, doc/params.txt):
$ make icewm.iso $ make syslinux.iso
ссылки ссылки
~~~~~~ ~~~~~~
- http://www.altlinux.org/tmpfs - http://www.altlinux.org/tmpfs
- http://www.altlinux.org/hasher - http://www.altlinux.org/hasher
- http://www.altlinux.org/mkimage - http://www.altlinux.org/mkimage
- http://www.altlinux.org/Mkimage/Profiles/m-p - http://www.altlinux.org/m-p

100
README
View File

@@ -1,62 +1,76 @@
Welcome to mkimage-profiles! [float]
=== Welcome to mkimage-profiles! ===
Configurables: ~/.mkimage/profiles.mk; Configurables: ~/.mkimage/profiles.mk;
see doc/params.txt and conf.d/README see doc/params.txt and conf.d/README
License: GPLv2+, see COPYING License: GPLv2+, see COPYING
Most docs are in Russian, welcome to learn it or ask for English. Most docs are in Russian, welcome to learn it or ask for English.
См. тж. http://www.altlinux.org/Mkimage/Profiles/m-p и doc/*.txt:
- params.txt: переменные, указываемые при запуске сборки
- features.txt: обзор подключаемых особенностей
- pkglists.txt: формирование состава образа
Задача: Задача:
- конфигурирование и создание образов на базе ALT Linux
* конфигурирование и создание образов на базе ALT Linux
Концепция: Концепция:
- конфигурация, как и образ -- объект постадийной сборки
- метапрофиль служит репозиторием для построения индивидуального * конфигурация, как и образ -- объект постадийной сборки
* метапрофиль служит репозиторием для построения индивидуального
профиля, по которому создаётся итоговый образ профиля, по которому создаётся итоговый образ
Особенности: Особенности:
- метапрофиль может быть полностью read-only при сборке
- для сборки подыскивается предпочтительно tmpfs * метапрофиль может быть полностью read-only при сборке
- в профиль копируются только нужные объекты; * для сборки подыскивается предпочтительно tmpfs
* в профиль копируются только нужные объекты;
он автономен относительно метапрофиля он автономен относительно метапрофиля
Стадии работы: Стадии работы:
- инициализация сборочного профиля
- сборка конфигурации образа * инициализация сборочного профиля
- наполнение сборочного профиля * сборка конфигурации образа
- сборка образа * наполнение сборочного профиля
* сборка образа
Объекты: Объекты:
- дистрибутивы и виртуальные среды/машины:
+ описываются в conf.d/*.mk или соответственно lib/{distro,ve,vm}.mk * дистрибутивы и виртуальные среды/машины:
+ могут основываться на предшественниках, расширяя их ** описываются в conf.d/*.mk или соответственно lib/{distro,ve,vm}.mk
+ дистрибутивы также: ** могут основываться на предшественниках, расширяя их
- включают один или более субпрофилей по надобности ** дистрибутивы также:
+ желательно избегать множественного наследования, см. тж. фичи *** включают один или более субпрофилей по надобности
- субпрофили: ** желательно избегать множественного наследования, см. тж. фичи
+ список собирается в $(SUBPROFILES) * субпрофили:
+ базовые комплекты помещены в подкаталогах под sub.in/; ** список собирается в $(SUBPROFILES)
** базовые комплекты помещены в подкаталогах под sub.in/;
их наборы скриптов могут расширяться фичами их наборы скриптов могут расширяться фичами
- фичи: * фичи:
+ накопительный список собирается в $(FEATURES) ** законченные блоки функциональности (или наборы таковых)
+ законченные блоки функциональности (или наборы таковых) ** описываются в индивидуальных features.in/*/config.mk
+ описываются в индивидуальных features.in/*/config.mk ** могут требовать другие фичи, а также субпрофили
+ могут требовать другие фичи, а также субпрофили ** накопительный список собирается в $(FEATURES)
+ при сборке $(BUILDDIR) содержимое фич добавляется в профиль ** при сборке $(BUILDDIR) содержимое фич добавляется в профиль
- списки пакетов (*_LISTS): * списки пакетов (*_LISTS):
+ просьба по возможности избегать дублирования ** просьба по возможности избегать дублирования (см. bin/pkgdups)
- индивидуальные пакеты (*_PACKAGES): см. тж. conf.d/README * индивидуальные пакеты (*_PACKAGES): см. тж. conf.d/README
Результат: Результат:
- при успешном завершении сборки образ называется по имени цели
* при успешном завершении сборки образ называется по имени цели
и укладывается в $(IMAGEDIR): и укладывается в $(IMAGEDIR):
+ указанный явно, ** указанный явно,
+ либо ~/out/ (если возможно), ** либо ~/out/ (если возможно),
+ или $(BUILDDIR)/out/ иначе ** или $(BUILDDIR)/out/ иначе
- формируются отчёты, если запрошены (REPORT) * формируются отчёты, если запрошены (REPORT)
См. тж.:
* http://altlinux.org/m-p
* doc/:
** params.txt: переменные, указываемые при запуске сборки
** pkglists.txt: формирование состава образа
** features.txt: обзор подключаемых особенностей
Удачи; что не так -- пишите.
Michael Shigorin <mike@altlinux.org>

21
bin/mp-commit Executable file
View File

@@ -0,0 +1,21 @@
#!/bin/sh
# commit the directory ($1) with a message ($2) to git
. shell-error
[ -d "$1" ] || fatal "$1 is not an existing directory"
if type -t git >&/dev/null && pushd "$1" >/dev/null; then
if [ -z "$(git config --global user.name)" ]; then
exit 0
fi
if [ ! -d .git ]; then
git init -q || fatal "git init failed"
fi
if [ -n "$(git status -s)" ]; then
git add . \
&& git commit -qam "$2" \
|| fatal "git add/commit failed"
fi
popd >/dev/null
fi

11
bin/mp-showref Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
# report on git repo in the current directory
if type -t git >&/dev/null; then
if pushd "$1" >/dev/null && [ -d .git ]; then
git show-ref --head -ds -- HEAD
git status -s
echo
popd >/dev/null
fi
fi

View File

@@ -1,4 +1,6 @@
#!/bin/bash -e #!/bin/bash -e
# usage:
# tar2vm chroot.tar image.raw [size_in_bytes]
. shell-error . shell-error
@@ -27,7 +29,7 @@ IMG="$2"
# image size in bytes (256M is a fallback) # image size in bytes (256M is a fallback)
TARSIZE="$(stat -Lc %s "$TAR")" TARSIZE="$(stat -Lc %s "$TAR")"
DEFSIZE="$((3 * $TARSIZE / 2))" DEFSIZE="$((2 * $TARSIZE))"
DISKSIZE="${3:-${DEFSIZE:-268435456}}" DISKSIZE="${3:-${DEFSIZE:-268435456}}"
# ...and in megabytes # ...and in megabytes
DISKSIZEM="$(($DISKSIZE / 1048576))" DISKSIZEM="$(($DISKSIZE / 1048576))"
@@ -40,7 +42,7 @@ ROOTFSTYPE="${4:-ext4}"
ROOTDEV="/dev/sda1" ROOTDEV="/dev/sda1"
# last preparations... # last preparations...
for i in losetup parted kpartx mkfs."$ROOTFSTYPE"; do for i in losetup sfdisk parted kpartx mkfs."$ROOTFSTYPE"; do
if ! type -t "$i" >&/dev/null; then if ! type -t "$i" >&/dev/null; then
fatal "$i required but not found" fatal "$i required but not found"
fi fi
@@ -96,8 +98,8 @@ chroot "$ROOTFS" make-initrd -k "$KERNEL"
sed -i "s,$LOOPDEV1,$ROOTDEV," "$ROOTFS/etc/fstab" sed -i "s,$LOOPDEV1,$ROOTDEV," "$ROOTFS/etc/fstab"
# configure and install bootloader # configure and install bootloader
REGEXP='^([0-9]+) heads, ([0-9]+) sectors/track, ([0-9]+) cylinders.*$' REGEXP='^Disk .*: ([0-9]+) cylinders, ([0-9]+) heads, ([0-9]+) sectors/track*$'
set -- $(fdisk -l "$LOOPDEV" | grep -E "$REGEXP" | sed -r "s@$REGEXP@\1 \2 \3@") set -- $(sfdisk -l "$LOOPDEV" | grep -E "$REGEXP" | sed -r "s@$REGEXP@\1 \2 \3@")
LILO_COMMON="lba32 LILO_COMMON="lba32
delay=1 delay=1
@@ -111,9 +113,9 @@ cat > "$ROOTFS"/etc/lilo-loop.conf << EOF
boot=$LOOPDEV boot=$LOOPDEV
disk=$LOOPDEV disk=$LOOPDEV
bios=0x80 bios=0x80
heads=$1 cylinders=$1
sectors=$2 heads=$2
cylinders=$3 sectors=$3
partition=$LOOPDEV1 partition=$LOOPDEV1
start=63 start=63
$LILO_COMMON $LILO_COMMON

View File

@@ -1,3 +1,4 @@
== conf.d ==
Этот каталог содержит включаемые фрагменты конфигурации образов с тем, Этот каталог содержит включаемые фрагменты конфигурации образов с тем,
чтобы было удобнее параллельно разрабатывать специфические дистрибутивы чтобы было удобнее параллельно разрабатывать специфические дистрибутивы
и VE без излишних merge conflict'ов. и VE без излишних merge conflict'ов.

View File

@@ -1,6 +0,0 @@
ve/.centos-base: ve/.bare
@$(call set,IMAGE_INIT_LIST,hasher-pkg-init)
ve/centos: ve/.centos-base
@$(call add,BASE_PACKAGES,openssh-server)

View File

@@ -11,11 +11,11 @@ distro/.desktop-network: distro/.desktop-mini +vmguest
@$(call add,BASE_LISTS, \ @$(call add,BASE_LISTS, \
$(call tags,(base || desktop) && (l10n || network))) $(call tags,(base || desktop) && (l10n || network)))
distro/icewm: distro/.desktop-network use/lowmem +icewm; @: distro/tde: distro/.desktop-mini +tde
distro/tde: distro/.desktop-mini +tde; @: @$(call set,KFLAVOURS,led-ws)
distro/icewm: distro/.desktop-network use/lowmem use/install2/fs +icewm; @:
distro/ltsp-tde: distro/tde +ltsp; @: distro/ltsp-tde: distro/tde +ltsp; @:
distro/ltsp-icewm: distro/icewm +ltsp; @: distro/ltsp-icewm: distro/icewm +ltsp; @:
distro/desktop-systemd: distro/icewm use/systemd; @:
distro/desktop-plymouth: distro/icewm +plymouth; @:
endif endif

View File

@@ -1,29 +1,27 @@
# live images # live images
ifeq (distro,$(IMAGE_CLASS)) ifeq (distro,$(IMAGE_CLASS))
distro/dos: distro/.init use/dos use/syslinux/ui/menu; @:
distro/rescue: distro/.base use/rescue use/syslinux/ui/menu; @:
distro/syslinux: distro/.init \ distro/syslinux: distro/.init \
use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @: use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @:
distro/dos: distro/.init use/dos use/syslinux/ui/menu; @:
distro/rescue: distro/.base use/rescue use/syslinux/ui/menu; @:
distro/live-systemd: distro/.base use/live/base use/systemd; @:
distro/.live-base: distro/.base use/live/base use/power/acpi/button; @: distro/.live-base: distro/.base use/live/base use/power/acpi/button; @:
distro/.live-desktop: distro/.base +live use/plymouth/live; @: distro/.live-desktop: distro/.base +live use/plymouth/live; @:
distro/.live-desktop-ru: distro/.live-desktop use/live/ru; @:
distro/.live-kiosk: distro/.base use/live/base use/live/autologin \ distro/.live-kiosk: distro/.base use/live/base use/live/autologin \
use/syslinux/timeout/1 use/cleanup +power use/syslinux/timeout/1 use/cleanup +power
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu) @$(call add,LIVE_PACKAGES,fonts-ttf-dejavu)
@$(call add,CLEANUP_PACKAGES,'alterator*' 'guile*' 'vim-common') @$(call add,CLEANUP_PACKAGES,'alterator*' 'guile*' 'vim-common')
distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
@$(call add,LIVE_PACKAGES,livecd-isomd5sum)
distro/live-builder: pkgs := livecd-tmpfs livecd-online-repo mkimage-profiles distro/live-builder: pkgs := livecd-tmpfs livecd-online-repo mkimage-profiles
distro/live-builder: distro/.live-base use/dev/mkimage use/dev/repo \ distro/live-builder: distro/.live-base use/dev/mkimage use/dev/repo \
use/syslinux/timeout/30 use/syslinux/timeout/30
@$(call set,KFLAVOURS,$(BIGRAM)) @$(call set,KFLAVOURS,$(BIGRAM))
@$(call add,LIVE_LISTS,$(call tags,base && (server || builder))) @$(call add,LIVE_LISTS,$(call tags,base && (server || builder)))
@$(call add,LIVE_PACKAGES,livecd-qemu-arch strace)
@$(call add,LIVE_PACKAGES,qemu-user-binfmt_misc)
@$(call add,LIVE_PACKAGES,zsh sudo) @$(call add,LIVE_PACKAGES,zsh sudo)
@$(call add,LIVE_PACKAGES,$(pkgs)) @$(call add,LIVE_PACKAGES,$(pkgs))
@$(call add,MAIN_PACKAGES,$(pkgs)) @$(call add,MAIN_PACKAGES,$(pkgs))
@@ -34,8 +32,7 @@ distro/.livecd-install: distro/.live-base use/live/install; @:
distro/live-icewm: distro/.live-desktop use/live/autologin +icewm; @: distro/live-icewm: distro/.live-desktop use/live/autologin +icewm; @:
distro/live-razorqt: distro/.live-desktop use/live/autologin +razorqt; @: distro/live-razorqt: distro/.live-desktop use/live/autologin +razorqt; @:
distro/live-tde: distro/.live-desktop use/live/ru use/live/install +tde; @: distro/live-tde: distro/.live-desktop-ru use/live/install +tde; @:
distro/live-plymouth: distro/.live-base use/plymouth/live; @:
distro/live-rescue: distro/live-icewm distro/live-rescue: distro/live-icewm
@$(call add,LIVE_LISTS,$(call tags,rescue && (fs || live || x11))) @$(call add,LIVE_LISTS,$(call tags,rescue && (fs || live || x11)))
@@ -46,6 +43,7 @@ distro/live-webkiosk-mini: distro/.live-kiosk use/live/hooks use/live/ru
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network))) @$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
@$(call add,LIVE_PACKAGES,livecd-webkiosk) @$(call add,LIVE_PACKAGES,livecd-webkiosk)
@$(call add,CLEANUP_PACKAGES,'libqt4*' 'qt4*') @$(call add,CLEANUP_PACKAGES,'libqt4*' 'qt4*')
@$(call set,KFLAVOURS,led-ws)
# NB: flash/java plugins are predictable security holes # NB: flash/java plugins are predictable security holes
distro/live-webkiosk-flash: distro/live-webkiosk-mini use/plymouth/live +vmguest distro/live-webkiosk-flash: distro/live-webkiosk-mini use/plymouth/live +vmguest
@@ -59,14 +57,17 @@ distro/live-flightgear: distro/live-icewm use/live/sound use/x11/3d-proprietary
@$(call add,LIVE_PACKAGES,FlightGear fgo input-utils) @$(call add,LIVE_PACKAGES,FlightGear fgo input-utils)
@$(call try,HOMEPAGE,http://www.4p8.com/eric.brasseur/flight_simulator_tutorial.html) @$(call try,HOMEPAGE,http://www.4p8.com/eric.brasseur/flight_simulator_tutorial.html)
distro/live-cinnamon: distro/.live-desktop use/live/autologin use/live/ru \ distro/live-gnome: distro/.live-desktop-ru use/systemd use/live/nodm use/x11/3d-proprietary
@$(call add,LIVE_PACKAGES,gnome3-default)
distro/live-cinnamon: distro/.live-desktop-ru use/live/autologin \
use/x11/cinnamon use/x11/3d-proprietary; @: use/x11/cinnamon use/x11/3d-proprietary; @:
distro/live-mate: distro/.live-desktop use/live/nodm use/live/ru use/x11/3d-free distro/live-mate: distro/.live-desktop-ru use/live/nodm use/x11/3d-free
@$(call add,LIVE_LISTS,$(call tags,(desktop || mobile) && mate)) @$(call add,LIVE_LISTS,openssh $(call tags,(desktop || mobile) && mate))
@$(call set,KFLAVOURS,un-def) # the newest one
distro/live-enlightenment: distro/.live-desktop use/live/autologin \ distro/live-enlightenment: distro/.live-desktop-ru use/live/autologin use/x11/3d-free
use/live/ru use/x11/3d-free
@$(call add,LIVE_PACKAGES,enlightenment) @$(call add,LIVE_PACKAGES,enlightenment)
distro/live-gimp: distro/live-icewm use/x11/3d-free use/live/ru distro/live-gimp: distro/live-icewm use/x11/3d-free use/live/ru
@@ -76,7 +77,4 @@ distro/live-gimp: distro/live-icewm use/x11/3d-free use/live/ru
@$(call add,LIVE_PACKAGES,qtfm openssh-clients rsync) @$(call add,LIVE_PACKAGES,qtfm openssh-clients rsync)
@$(call add,LIVE_PACKAGES,design-graphics-sisyphus2) @$(call add,LIVE_PACKAGES,design-graphics-sisyphus2)
distro/live-testserver: distro/live-install use/server/mini
@$(call set,KFLAVOURS,std-def el-smp)
endif endif

View File

@@ -12,9 +12,6 @@ distro/server-nano: distro/.server-base \
distro/server-mini: distro/.server-base use/server/mini use/cleanup/x11-alterator distro/server-mini: distro/.server-base use/server/mini use/cleanup/x11-alterator
@$(call set,KFLAVOURS,el-smp) @$(call set,KFLAVOURS,el-smp)
distro/server-systemd: distro/server-mini use/systemd
@$(call set,KFLAVOURS,std-def)
distro/server-ovz: distro/server-mini use/install2/net use/hdt use/rescue \ distro/server-ovz: distro/server-mini use/install2/net use/hdt use/rescue \
use/firmware/server use/firmware/wireless use/power/acpi/button use/firmware/server use/firmware/wireless use/power/acpi/button
@$(call set,STAGE1_KFLAVOUR,std-def) @$(call set,STAGE1_KFLAVOUR,std-def)
@@ -27,9 +24,4 @@ distro/server-ovz: distro/server-mini use/install2/net use/hdt use/rescue \
@$(call add,MAIN_GROUPS,ipmi mysql-server dhcp-server mail-server) @$(call add,MAIN_GROUPS,ipmi mysql-server dhcp-server mail-server)
@$(call add,MAIN_GROUPS,monitoring diag-tools) @$(call add,MAIN_GROUPS,monitoring diag-tools)
# tiny network-only server-ovz installer (stage2 comes over net too)
distro/server-ovz-netinst: distro/.base sub/stage1 use/stage2 \
use/syslinux/ui/menu use/syslinux/localboot.cfg use/memtest
@$(call add,SYSLINUX_CFG,netinstall2)
endif endif

76
conf.d/test.mk Normal file
View File

@@ -0,0 +1,76 @@
# debug/test/experimental images
ifneq (,$(DEBUG))
ifeq (distro,$(IMAGE_CLASS))
distro/syslinux-auto: distro/.init use/hdt use/syslinux/timeout/1; @:
distro/syslinux-noescape: distro/syslinux-auto use/syslinux/noescape.cfg; @:
distro/live-systemd: distro/.base use/live/base use/systemd; @:
distro/live-plymouth: distro/.live-base use/plymouth/live; @:
distro/live-isomd5sum: distro/.base use/live/base use/isomd5sum
@$(call add,LIVE_PACKAGES,livecd-isomd5sum)
distro/live-testserver: distro/live-install use/server/mini
@$(call set,KFLAVOURS,std-def el-smp)
distro/live-gns3: distro/live-icewm
@$(call add,LIVE_LISTS,gns3)
@$(call add,LIVE_KMODULES,kvm virtualbox)
distro/live-efi: distro/live-install use/efi
@$(call set,KFLAVOURS,un-def) ### CONFIG_FB_EFI
distro/icewm-efi: distro/icewm use/efi/debug use/firmware
@$(call add,INSTALL2_PACKAGES,strace)
distro/server-systemd: distro/server-mini use/systemd
@$(call set,KFLAVOURS,std-def)
distro/server-test: distro/server-mini use/relname
@$(call set,RELNAME,Test-Server)
# tiny network-only server-ovz installer (stage2 comes over net too)
distro/server-ovz-netinst: distro/.base sub/stage1 use/stage2 \
use/syslinux/ui/menu use/syslinux/localboot.cfg use/memtest
@$(call add,SYSLINUX_CFG,netinstall2)
distro/desktop-luks: distro/icewm use/luks; @:
distro/desktop-systemd: distro/icewm use/systemd; @:
distro/desktop-plymouth: distro/icewm +plymouth; @:
distro/live-mate-systemd: distro/live-mate use/systemd use/live/install; @:
endif # IMAGE_CLASS: distro
ifeq (ve,$(IMAGE_CLASS))
ifeq (centos,$(REPO))
ve/.centos-base: ve/.bare
@$(call set,IMAGE_INIT_LIST,hasher-pkg-init)
ve/centos: ve/.centos-base
@$(call add,BASE_PACKAGES,openssh-server)
endif # REPO: centos
ifeq (opensuse,$(REPO))
ve/.opensuse-base: ve/.bare
@$(call set,IMAGE_INIT_LIST,hasher-pkg-init)
@$(call add,BASE_PACKAGES,aaa_base)
endif # REPO: opensuse
endif # IMAGE_CLASS: ve
ifeq (vm,$(IMAGE_CLASS))
vm/net-static: vm/bare use/vm-net/static use/vm-ssh
@$(call set,VM_NET_IPV4ADDR,10.0.2.16/24)
@$(call set,VM_NET_IPV4GW,10.0.2.2)
endif # IMAGE_CLASS: vm
endif

View File

@@ -1,13 +1,9 @@
# virtual machines # virtual machines
ifeq (vm,$(IMAGE_CLASS)) ifeq (vm,$(IMAGE_CLASS))
# NB: use/x11 employs some installer-feature packages
vm/icewm: vm/bare use/cleanup/installer use/x11/xdm +icewm; @:
vm/net: vm/bare use/vm-net/dhcp use/vm-ssh; @: vm/net: vm/bare use/vm-net/dhcp use/vm-ssh; @:
vm/net-static: vm/bare use/vm-net/static use/vm-ssh # NB: use/x11 employs some installer-feature packages
@$(call set,VM_NET_IPV4ADDR,10.0.2.16/24) vm/icewm: vm/net use/cleanup/installer use/repo +icewm; @:
@$(call set,VM_NET_IPV4GW,10.0.2.2)
endif endif

54
doc/.fop.xconf Normal file
View File

@@ -0,0 +1,54 @@
<?xml version="1.0"?>
<!-- $Id: fop.xconf 901793 2010-01-21 17:37:07Z jeremias $ -->
<!-- NOTE: This is the version of the configuration -->
<fop version="1.0">
<base>.</base>
<source-resolution>72</source-resolution>
<target-resolution>72</target-resolution>
<default-page-settings height="11in" width="8.26in"/>
<renderers>
<renderer mime="application/pdf">
<filterList>
<value>flate</value>
</filterList>
<fonts>
<auto-detect/>
</fonts>
</renderer>
<renderer mime="application/x-afp">
<images mode="b+w" bits-per-pixel="8"/>
<renderer-resolution>240</renderer-resolution>
<resource-group-file>resources.afp</resource-group-file>
</renderer>
<renderer mime="application/postscript">
</renderer>
<renderer mime="application/vnd.hp-PCL">
</renderer>
<renderer mime="image/svg+xml">
<format type="paginated"/>
<link value="true"/>
<strokeText value="false"/>
</renderer>
<renderer mime="application/awt">
</renderer>
<renderer mime="image/png">
</renderer>
<renderer mime="image/tiff">
</renderer>
<renderer mime="text/xml">
</renderer>
</renderers>
</fop>

50
doc/Makefile Normal file
View File

@@ -0,0 +1,50 @@
# build asciidoc books
ifdef BUILDDIR
DEST = -D "$(BUILDDIR)"
endif
ifdef DEBUG
VERBOSE = --verbose
endif
PROJECT = mkimage-profiles
TOPLEVEL_DOC = $(PROJECT).asciidoc
RESOURCE_FILES = /etc/asciidoc
A2X = a2x
FXC = .fop.xconf
L = ru
DEPTH = 3
# common args (and the source file to process) come last
XSLT_ARGS = --stringparam toc.max.depth $(DEPTH)
COMMON_ARGS = -d book -a lang="$L" $(DEST) $(VERBOSE) $(TOPLEVEL_DOC)
HTML_ARGS = -a data-uri --icons -r $(RESOURCE_FILES) -r . \
--xsltproc-opts='$(XSLT_ARGS)' $(COMMON_ARGS)
.PHONY: all prep chunked xhtml pdf clean
all: chunked xhtml pdf
prep:
@if [ -n "$(BUILDDIR)" ]; then mkdir -p "$(BUILDDIR)"; fi
chunked xhtml: prep
@echo "** building $@ book"
@$(A2X) -f $@ $(HTML_ARGS)
pdf: prep
@echo "** building $@ book"
@$(A2X) --xsltproc-opts='$(XSLT_ARGS) \
--stringparam title.font.family "DejaVu Sans" \
--stringparam body.font.family "DejaVu Serif" \
--stringparam monospace.font.family "DejaVu Sans Mono"' \
--fop --fop-opts='-c $(FXC)' -f pdf $(COMMON_ARGS)
clean:
@echo "** cleaning up"
@if [ -d "$(BUILDDIR)" ]; then cd "$(BUILDDIR)"; fi; \
rm -f $(PROJECT).pdf $(PROJECT).html docbook-xsl.css; \
rm -rf $(PROJECT).chunked/

View File

@@ -1,44 +1,45 @@
предположения фрагментов кода об окружении == Предположения фрагментов кода об окружении ==
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NB: пути приводятся от верхнего уровня; проект в целом предполагает NB: пути приводятся от верхнего уровня; проект в целом предполагает
ALT Linux 6.0+ и GNU make 3.81 (на которых и разрабатывается), ALT Linux 6.0+ и GNU make 3.81 (на которых и разрабатывается),
но может быть портирован вместе с mkimage. но может быть портирован вместе с mkimage.
- lib/report.mk * lib/report.mk
+ ожидает, что каждая подлежащая трассированию цель каждого ** ожидает, что каждая подлежащая трассированию цель каждого
makefile при сборке конфигурации образа содержит непустой makefile при сборке конфигурации образа содержит непустой
recipe -- хотя бы "; @:" -- т.к. зависит от запуска $(SHELL) recipe -- хотя бы "; @:" -- т.к. зависит от запуска $(SHELL)
+ характерный признак пропуска -- разрыв графа (report-targets.png) ** характерный признак пропуска -- разрыв графа (report-targets.png)
- pkg.in/lists/Makefile * pkg.in/lists/Makefile
+ ожидает, что названия пакаджлистов указываются в переменных ** ожидает, что названия пакаджлистов указываются в переменных
вида *_LISTS, и копирует в генерируемый профиль только их вида *_LISTS, и копирует в генерируемый профиль только их
+ если задать имя файла пакаджлиста непосредственно в Makefile ** если задать имя файла пакаджлиста непосредственно в Makefile
субпрофиля, он не будет скопирован субпрофиля, он не будет скопирован
+ характерное сообщение об ошибке: ** характерное сообщение об ошибке:
E: Couldn't find package E: Couldn't find package
- features.in/stage2/stage1/scripts.d/02-kdefault * features.in/stage2/stage1/scripts.d/02-kdefault
- features.in/stage2/stage1/scripts.d/03-test-kernel * features.in/stage2/stage1/scripts.d/03-test-kernel
- sub.in/stage1/Makefile * sub.in/stage1/Makefile
+ ожидают, что в stage1 попадёт строго одно ядро сообразно ** ожидают, что в stage1 попадёт строго одно ядро сообразно
явному указанию в STAGE1_KFLAVOUR (либо последнее указанное явному указанию в STAGE1_KFLAVOUR (либо последнее указанное
в KFLAVOURS) в KFLAVOURS)
+ если добавить какой-либо kernel-image в STAGE1_PACKAGES*, ** если добавить какой-либо kernel-image в STAGE1_PACKAGES*,
результат может быть неожиданным результат может быть неожиданным
+ вероятная ошибка: незагрузка полученного squashfs ** вероятная ошибка: незагрузка полученного squashfs
- features.in/install2/install2/stage2cfg.mk * features.in/install2/install2/stage2cfg.mk
- features.in/live/live/stage2cfg.mk * features.in/live/live/stage2cfg.mk
- features.in/rescue/rescue/stage2cfg.mk * features.in/rescue/rescue/stage2cfg.mk
- features.in/syslinux/cfg.in/15live.cfg * features.in/syslinux/cfg.in/15live.cfg
- features.in/syslinux/cfg.in/20install2.cfg * features.in/syslinux/cfg.in/20install2.cfg
- features.in/syslinux/cfg.in/80rescue.cfg * features.in/syslinux/cfg.in/80rescue.cfg
- features.in/syslinux/scripts.d/20-propagator-ramdisk * features.in/syslinux/scripts.d/20-propagator-ramdisk
+ ожидают, что названия squashfs-образов второй стадии инсталятора, ** ожидают, что названия squashfs-образов второй стадии инсталятора,
livecd и спасательной системы соответственно altinst, live и rescue livecd и спасательной системы соответственно altinst, live и rescue
- image.in/Makefile * image.in/Makefile
+ ожидает, что конфигурация будет в distcfg.mk (см. тж. lib/profile.mk), ** ожидает, что конфигурация будет в distcfg.mk (см. тж. lib/profile.mk),
а лог сборки -- в build.log (см. тж. lib/log.mk); альтернативой было а лог сборки -- в build.log (см. тж. lib/log.mk); альтернативой было
бы пробрасывание переменных с полным путём ради единственного места бы пробрасывание переменных с полным путём ради единственного места

View File

@@ -1,20 +1,20 @@
ловля плюх == Ловля плюх ==
~~~~~~~~~~
При отладке сборки конфигурации или самого дистрибутива При отладке сборки конфигурации или самого дистрибутива
могут оказаться полезными следующие средства: могут оказаться полезными следующие средства:
- build/distcfg.mk * build/distcfg.mk
+ формируется автоматически в процессе построения конфигурации; ** формируется автоматически в процессе построения конфигурации;
+ содержит трассировочную информацию (откуда что взялось); ** содержит трассировочную информацию (откуда что взялось);
+ этот файл применяется как авторитетный конфигурационный ** этот файл применяется как авторитетный конфигурационный
- build/build.log * build/build.log
+ подробность зависит от значения переменной DEBUG, ** подробность зависит от значения переменной DEBUG,
которую можно передать при запуске make (см. params.txt); которую можно передать при запуске make (см. params.txt);
+ содержит коммит, из которого происходит сборка, и признак ** содержит коммит, из которого происходит сборка, и признак
"грязности" рабочего каталога при наличии модификаций после "грязности" рабочего каталога при наличии модификаций после
этого коммита; этого коммита;
+ содержит список конфигурационных переменных и их конечных значений, ** содержит список конфигурационных переменных и их конечных значений,
созданный на основании distcfg.mk (см. тж. build/vars.mk) созданный на основании distcfg.mk (см. тж. build/vars.mk)
Общая информация по отладке сборки профилей mkimage: Общая информация по отладке сборки профилей mkimage:

View File

@@ -1,5 +1,5 @@
фичи == Фичи ==
~~~~
Особенности дистрибутива, не учитываемые в пакетной базе Особенности дистрибутива, не учитываемые в пакетной базе
или зависящие от переменных времени сборки/установки образа; или зависящие от переменных времени сборки/установки образа;
по необходимости влияют на конфигурацию, приносят с собой по необходимости влияют на конфигурацию, приносят с собой

16
doc/gen-asciidoc.txt Normal file
View File

@@ -0,0 +1,16 @@
== Генерация документации ==
При желании сгенерировать PDF устанавливаем необходимые пакеты:
# apt-get install asciidoc-a2x xmlgraphics-fop fonts-ttf-dejavu
// Внимание! FOP со всем нужным весьма увесист (несколько сот мегабайт).
Для генерации текущей документации посредством ASCIIDOC выполнить по вкусу:
$ make pdf
$ make xhtml
Сгенерируются соответственно mkimage-profiles.pdf или mkimage-profiles.html
(в текущем каталоге либо BUILDDIR, если задан).
Для очистки:
$ make clean

View File

@@ -0,0 +1,73 @@
= mkimage-profiles =
Michael Shigorin <mike@altlinux.org>
:DocVersion: v0.2.0
:DocDate: Oct 2012
= Введение =
mkimage-profiles, или m-p — результат осмысления и обобщения опыта создания
семейств дистрибутивов свободного программного обеспечения на базе ALT Linux.
*Цели*
* пригодность к применению как очень крутыми хакерами, так и новичками
* относительно низкая трудоёмкость использования
* поощрение совместной работы
*Средства*
Двухуровневость:
метапрофиль более объёмен и сложен, но выгоден для долгосрочной разработки
сгенерированный дистрибутивный профиль более легко обозрим и модифицируем как одноразовый форк
наследственность на уровне индивидуальных особенностей и образов в целом
прозрачность и диагностируемость формирования конфигурации
документированность
*Примеры использования*
Выполняем начальные инструкции по документации
git clone git://git.altlinux.org/people/mike/packages/mkimage-profiles.git
cd mkimage-profiles
make distro/icewm.iso
include::../README[]
= Основы =
include::assumptions.txt[]
include::debug.txt[]
include::features.txt[]
include::params.txt[]
include::pkglists.txt[]
include::qemu.txt[]
include::style.txt[]
include::vm.txt[]
= Каталоги =
include::../conf.d/README[]
include::../features.in/README[]
include::../image.in/README[]
include::../lib/README[]
include::../pkg.in/README[]
include::../sub.in/README[]
include::../sub.in/main/README[]
include::../sub.in/stage1/README[]
include::../sub.in/stage2/README[]

View File

@@ -1,105 +1,117 @@
переменные make == Переменные make ==
~~~~~~~~~~~~~~~
При запуске на сборку принимается ряд переменных При запуске на сборку принимается ряд переменных
(см. тж. profiles.mk.sample): (см. тж. profiles.mk.sample):
- APTCONF * APTCONF
+ задаёт путь к требуемому apt.conf ** задаёт путь к требуемому apt.conf
+ значение: пусто (по умолчанию системный) либо строка ** значение: пусто (по умолчанию системный) либо строка
+ см. ../image.in/Makefile, apt.conf.sample ** см. ../image.in/Makefile, apt.conf.sample
- ARCH * ARCH
+ задаёт целевую архитектуру образов ** задаёт целевую архитектуру образов
+ значение: пусто (по умолчанию авто), i586, x86_64, arm, ppc ** значение: пусто (по умолчанию авто), i586, x86_64, arm, ppc
+ см. ../lib/build.mk ** см. ../lib/build.mk
- ARCHES * ARCHES
+ задаёт набор целевых архитектур при параметрическом задании APTCONF ** задаёт набор целевых архитектур при параметрическом задании APTCONF
+ значение: пусто (по умолчанию авто) либо список через пробел ** значение: пусто (по умолчанию авто) либо список через пробел
+ см. ../Makefile, profiles.mk.sample ** см. ../Makefile, profiles.mk.sample
- BELL * BELL
+ подаёт сигнал после завершения сборки ** подаёт сигнал после завершения сборки
+ значение: пусто (по умолчанию нет) либо любая строка ** значение: пусто (по умолчанию нет) либо любая строка
+ см. ../lib/build.mk ** см. ../lib/build.mk
- BUILDDIR * BUILDDIR
+ задаёт каталог генерируемого профиля и сборки ** задаёт каталог генерируемого профиля и сборки
+ значение: пусто (по умолчанию авто) либо строка ** значение: пусто (по умолчанию авто) либо строка
+ см. ../lib/profile.mk ** см. ../lib/profile.mk
- BUILDDIR_PREFIX * BUILDDIR_PREFIX
+ задаёт префикс каталога генерируемого профиля и сборки ** задаёт префикс каталога генерируемого профиля и сборки
+ значение: строка; по умолчанию выбирается алгоритмически ** значение: строка; по умолчанию выбирается алгоритмически
+ см. ../main.mk ** см. ../main.mk
- BUILDLOG * BUILDLOG
+ задаёт путь к файлу журнала сборки/очистки ** задаёт путь к файлу журнала сборки/очистки
+ значение: по умолчанию $(BUILDDIR)/build.log либо строка ** значение: по умолчанию $(BUILDDIR)/build.log либо строка
+ см. ../lib/log.mk ** см. ../lib/log.mk
- CHECK * CHECK
+ включает режим проверки сборки конфигурации (без сборки образа) ** включает режим проверки сборки конфигурации (без сборки образа)
+ значение: пусто (по умолчанию) либо любая строка ** значение: пусто (по умолчанию) либо любая строка
+ см. ../lib/build.mk, ../lib/clean.mk ** см. ../lib/build.mk, ../lib/clean.mk
- CLEAN * CLEAN
+ экономия RAM+swap при сборке в tmpfs, иначе места на диске ** экономия RAM+swap при сборке в tmpfs, иначе места на диске
+ очистка рабочего каталога после успешной сборки очередной стадии ** очистка рабочего каталога после успешной сборки очередной стадии
+ может помешать использовать некоторые варианты отладки ** может помешать использовать некоторые варианты отладки
+ значение: любая строка; по умолчанию пусто при DEBUG, иначе 1 ** значение: любая строка; по умолчанию пусто при DEBUG, иначе 1
+ см. ../lib/clean.mk ** см. ../lib/clean.mk
- DEBUG * DEBUG
+ включает средства отладки, может отключить зачистку после сборки ** включает средства отладки, может отключить зачистку после сборки
+ значение: пусто (по умолчанию), 1 или 2 ** значение: пусто (по умолчанию), 1 или 2
+ см. ../lib/log.mk, ../lib/clean.mk ** см. ../lib/log.mk, ../lib/clean.mk
- HOMEPAGE, HOMENAME, HOMEWAIT * HOMEPAGE, HOMENAME, HOMEWAIT
+ указывают адрес, название и таймаут перехода для домашней страницы ** указывают адрес, название и таймаут перехода для домашней страницы
+ значение: корректный URL, строка, целое неотрицательное число ** значение: корректный URL, строка, целое неотрицательное число
+ см. ../features.in/live/generate.mk (тж. по умолчаниям) ** см. ../features.in/live/generate.mk (тж. по умолчаниям)
- ISOHYBRID * ISOHYBRID
+ включает постобработку ISO-образа isohybrid ** включает постобработку ISO-образа isohybrid
+ значение: пусто (по умолчанию) либо любая строка ** значение: пусто (по умолчанию) либо любая строка
+ см. ../features.in/pack/config.mk ** см. ../features.in/pack/config.mk
- NICE * NICE
+ понижает нагрузку системы сборочной задачей ** понижает нагрузку системы сборочной задачей
+ значение: пусто (по умолчанию) либо любая строка ** значение: пусто (по умолчанию) либо любая строка
+ см. ../lib/build.mk ** см. ../lib/build.mk
- REPORT * REPORT
+ запрашивает создание отчётов о собранном образе ** запрашивает создание отчётов о собранном образе
+ значение: пусто (по умолчанию) либо любая строка ** значение: пусто (по умолчанию) либо любая строка
+ NB: в силу специфики обработки передаётся только явно ** NB: в силу специфики обработки передаётся только явно
+ см. ../Makefile, ../report.mk, ../lib/report.mk ** см. ../Makefile, ../report.mk, ../lib/report.mk
- ROOTPW * ROOTPW
+ устанавливает пароль root по умолчанию для образов виртуальных машин ** устанавливает пароль root по умолчанию для образов виртуальных машин
+ значение: пусто (по умолчанию root) либо строка ** значение: пусто (по умолчанию root) либо строка
+ см. ../features.in/build-vm/image-scripts.d/00root ** см. ../features.in/build-vm/image-scripts.d/00root
- SAVE_PROFILE * SAVE_PROFILE
+ сохраняет архив сгенерированного профиля в .disk/ ** сохраняет архив сгенерированного профиля в .disk/
+ значение: пусто (по умолчанию) либо любая строка ** значение: пусто (по умолчанию) либо любая строка
+ см. ../image.in/Makefile ** см. ../image.in/Makefile
- SQUASHFS * SORTDIR
+ определяет характер сжатия squashfs для stage2 ** дополнительно структурирует каталог собранных образов
+ значение: ** значение: пусто (по умолчанию) либо строка
- пусто (по умолчанию) либо normal: xz *** например, '$(IMAGE_NAME)/$(DATE)'
- tight: xz с -Xbcj по платформе (лучше, но дольше -- подбор в два прохода) ** см. ../image.in/Makefile
- fast: gzip/lzo (быстрее запаковывается и распаковывается, меньше степень)
+ см. ../features.in/stage2/stage1/scripts.d/03-test-kernel
- SORTDIR * SQUASHFS
+ дополнительно структурирует каталог собранных образов ** определяет характер сжатия squashfs для stage2
+ значение: пусто (по умолчанию) либо строка ** значение:
- например, '$(IMAGE_NAME)/$(DATE)' *** пусто (по умолчанию) либо normal: xz
+ см. ../image.in/Makefile *** tight: xz с -Xbcj по платформе (лучше, но дольше -- подбор в два прохода)
*** fast: gzip/lzo (быстрее запаковывается и распаковывается, меньше степень)
** см. ../features.in/stage2/stage1/scripts.d/03-test-kernel
пример * STATUS
~~~~~~ ** добавляет в имя образа указанный префикс
make DEBUG=1 CLEAN=1 distro/syslinux.iso ** значение:
*** пусто (по умолчанию) либо строка (например, "alpha", "beta")
** см. ../image.in/Makefile
* VM_SIZE
** задаёт размер несжатого образа виртуальной машины в байтах
** значение: пусто (по умолчанию двойной размер чрута) или целое
** см. ../features.in/build-vm/lib/90-build-vm.mk, ../bin/tar2vm
[float]
=== пример ===
make DEBUG=1 CLEAN=1 distro/syslinux.iso

View File

@@ -1,50 +1,50 @@
списки пакетов == Списки пакетов ==
~~~~~~~~~~~~~~
Состав пакетной базы субпрофилей определяется значенями Состав пакетной базы субпрофилей определяется значенями
следующих переменных профиля (см. тж. ../conf.d/README): следующих переменных профиля (см. тж. ../conf.d/README):
- main: пакетная база для установки * main: пакетная база для установки
+ sub.in/main/Makefile, features.in/*/main/lib/*.mk ** sub.in/main/Makefile, features.in/*/main/lib/*.mk
+ THE_LISTS, BASE_LISTS, MAIN_LISTS ** THE_LISTS, BASE_LISTS, MAIN_LISTS
+ THE_GROUPS, MAIN_GROUPS ** THE_GROUPS, MAIN_GROUPS
+ THE_PACKAGES, BASE_PACKAGES, MAIN_PACKAGES, ** THE_PACKAGES, BASE_PACKAGES, MAIN_PACKAGES,
SYSTEM_PACKAGES, COMMON_PACKAGES SYSTEM_PACKAGES, COMMON_PACKAGES
+ THE_PACKAGES_REGEXP, BASE_PACKAGES_REGEXP, MAIN_PACKAGES_REGEXP ** THE_PACKAGES_REGEXP, BASE_PACKAGES_REGEXP, MAIN_PACKAGES_REGEXP
+ THE_KMODULES, BASE_KMODULES, MAIN_KMODULES, BASE_KMODULES_REGEXP ** THE_KMODULES, BASE_KMODULES, MAIN_KMODULES, BASE_KMODULES_REGEXP
- KFLAVOURS *** KFLAVOURS
- stage2: общая часть installer, live, rescue * stage2: общая часть installer, live, rescue
+ sub.in/stage2/Makefile, features.in/*/stage2/lib/*.mk ** sub.in/stage2/Makefile, features.in/*/stage2/lib/*.mk
+ SYSTEM_PACKAGES, STAGE2_PACKAGES ** SYSTEM_PACKAGES, STAGE2_PACKAGES
+ STAGE1_KMODULES, STAGE1_KMODULES_REGEXP, ** STAGE1_KMODULES, STAGE1_KMODULES_REGEXP,
STAGE2_KMODULES, STAGE2_KMODULES_REGEXP STAGE2_KMODULES, STAGE2_KMODULES_REGEXP
- STAGE1_KFLAVOUR или последний из KFLAVOURS *** STAGE1_KFLAVOUR или последний из KFLAVOURS
- installer: компактная "живая" система, содержащая только инсталятор * installer: компактная "живая" система, содержащая только инсталятор
+ см. stage2 ** см. stage2
+ features.in/install2/install2/stage2cfg.mk, *** features.in/install2/install2/stage2cfg.mk,
features.in/*/install2/lib/*.mk features.in/*/install2/lib/*.mk
+ INSTALL2_PACKAGES *** INSTALL2_PACKAGES
- live: пользовательский LiveCD (может содержать также инсталятор) * live: пользовательский LiveCD (может содержать также инсталятор)
+ см. stage2 ** см. stage2
+ features.in/live/live/stage2cfg.mk, ** features.in/live/live/stage2cfg.mk,
features.in/*/live/lib/*.mk features.in/*/live/lib/*.mk
+ THE_LISTS, LIVE_LISTS ** THE_LISTS, LIVE_LISTS
+ THE_GROUPS, LIVE_GROUPS ** THE_GROUPS, LIVE_GROUPS
+ THE_PACKAGES, LIVE_PACKAGES, COMMON_PACKAGES ** THE_PACKAGES, LIVE_PACKAGES, COMMON_PACKAGES
+ THE_PACKAGES_REGEXP, LIVE_PACKAGES_REGEXP ** THE_PACKAGES_REGEXP, LIVE_PACKAGES_REGEXP
+ THE_KMODULES, LIVE_KMODULES ** THE_KMODULES, LIVE_KMODULES
- rescue: спасательный LiveCD * rescue: спасательный LiveCD
+ см. stage2 ** см. stage2
+ features.in/rescue/rescue/stage2cfg.mk ** features.in/rescue/rescue/stage2cfg.mk
+ RESCUE_PACKAGES, COMMON_PACKAGES ** RESCUE_PACKAGES, COMMON_PACKAGES
+ RESCUE_LISTS ** RESCUE_LISTS
- stage1: ядро и загрузчик второй стадии * stage1: ядро и загрузчик второй стадии
+ sub.in/stage1/Makefile, features.in/*/stage1/lib/*.mk ** sub.in/stage1/Makefile, features.in/*/stage1/lib/*.mk
+ STAGE1_PACKAGES, SYSTEM_PACKAGES ** STAGE1_PACKAGES, SYSTEM_PACKAGES
+ STAGE1_PACKAGES_REGEXP ** STAGE1_PACKAGES_REGEXP
+ STAGE1_KMODULES_REGEXP ** STAGE1_KMODULES_REGEXP
- STAGE1_KFLAVOUR или последний из KFLAVOURS *** STAGE1_KFLAVOUR или последний из KFLAVOURS

View File

@@ -1,26 +1,11 @@
Для сборки с применением трансляции посредством QEMU == QEMU ==
выполните от имени root следующие команды:
apt-get install qemu-user-binfmt_misc Для сборки на "неродной" архитектуре с применением трансляции
modprobe binfmt_misc посредством QEMU установите пакет livecd-qemu-arch и выполните
echo 32768 > /proc/sys/vm/mmap_min_addr команду register-qemu-arm от имени root (также предоставляется
register-qemu-ppc, но как минимум при сборке под ppc32 на x86_64
известны проблемы эмуляции).
и сконфигурируйте его применение для требуемых платформ: Пример запуска:
echo ":arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/.host/qemu-arm:" > /proc/sys/fs/binfmt_misc/register make ARCH=arm APTCONF=/etc/apt/apt.conf.sisyphus.arm ve/bare.tar
echo ':ppc:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14:\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/.host/qemu-ppc:' > /proc/sys/fs/binfmt_misc/register
Если файл /proc/sys/fs/binfmt_misc/register не существует,
потребуется установить и загрузить иное ядро (например, std-def).
Также нужен sources.list с указанием соответствующего репозитория
и ссылающийся на него apt.conf (см. apt.conf.sample); например:
--- sources.list.sisyphus.arm
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus arm classic
---
--- sources.list.4.1.ppc
rpm http://ftp.altlinux.org/pub/people/wart/repos/lioka/powerpc ppc classic
rpm http://ftp.altlinux.org/pub/people/wart/repos/lioka/powerpc noarch classic
---

View File

@@ -1,8 +1,8 @@
требования по оформлению кода == Требования по оформлению кода ==
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* постарайтесь не вносить без обсуждения разнобой стилей, * постарайтесь не вносить без обсуждения разнобой стилей,
если есть предметные пожелания по коррекции текущего -- если есть предметные пожелания по коррекции текущего --
пишите в devel-distro@, обсудим; пишите в devel-distro@ или мне (mike@), обсудим;
* перед тем, как делать существенные переработки уже имеющегося * перед тем, как делать существенные переработки уже имеющегося
кода -- опять же опишите проблему, идею и предполагаемый результат, кода -- опять же опишите проблему, идею и предполагаемый результат,
@@ -11,8 +11,9 @@
* документируйте на русском (README) или английском (README.en) языке * документируйте на русском (README) или английском (README.en) языке
то, что написали или изменили. то, что написали или изменили.
рекомендации [float]
~~~~~~~~~~~~ === рекомендации ===
* трезво относитесь ко входным данным и не пренебрегайте кавычками: * трезво относитесь ко входным данным и не пренебрегайте кавычками:
название дистрибутива с пробелом или получение текста ошибки вместо название дистрибутива с пробелом или получение текста ошибки вместо
ожидаемого вывода команды могут привести к сложнодиагностируемым ожидаемого вывода команды могут привести к сложнодиагностируемым
@@ -30,7 +31,9 @@
* постарайтесь не вылазить за 80 колонок. * постарайтесь не вылазить за 80 колонок.
ссылки [float]
~~~~~~
=== ссылки ===
* https://lists.altlinux.org/mailman/listinfo/devel-distro * https://lists.altlinux.org/mailman/listinfo/devel-distro
(подписка по приглашению) (подписка по приглашению)

View File

@@ -1,17 +1,20 @@
сборка образов виртуальных машин == Сборка образов виртуальных машин ==
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ВНИМАНИЕ: заключительная операция создания образа жёсткого диска *ВНИМАНИЕ:* заключительная операция создания образа жёсткого диска
из архива с содержимым корневой файловой системы требует доступа из архива с содержимым корневой файловой системы требует доступа
к sudo и разрешения на выполнение скрипта bin/tar2vm в корневом к sudo и разрешения на выполнение скрипта bin/tar2vm в корневом
каталоге метапрофиля при установке mkimage-profiles из пакета. каталоге метапрофиля при установке mkimage-profiles из пакета
(это в планах исправить, но подход к libguestfs пока успехом
не увенчался).
Соответствующий фрагмент конфигурации sudo(8) может выглядеть как: Соответствующий фрагмент конфигурации sudo(8) может выглядеть как:
mike ALL=NOPASSWD: /usr/share/mkimage-profiles/bin/tar2vm mike ALL=NOPASSWD: /usr/share/mkimage-profiles/bin/tar2vm
При работе с git следует иметь в виду, что предоставлять недоверенному При работе с локальной копией mkimage-profiles.git следует иметь
пользователю право выполнять с повышенными привилегиями доступный ему в виду, что предоставлять недоверенному пользователю право выполнять
по записи скрипт равнозначно предоставлению полных привилегий root. от имени root доступный ему по записи скрипт равнозначно предоставлению
полных привилегий root.
Для работы с более специфичными форматами, чем raw ("буквальный" Для работы с более специфичными форматами, чем raw ("буквальный"
образ диска), потребуется утилита qemu-img из одноименного пакета; образ диска), потребуется утилита qemu-img из одноименного пакета;
@@ -21,4 +24,4 @@ mike ALL=NOPASSWD: /usr/share/mkimage-profiles/bin/tar2vm
Пример сборки и запуска VM: Пример сборки и запуска VM:
$ make ROOTPW=reallysecret1 vm/bare.img && kvm -hda ~/out/bare.img $ make ROOTPW=reallysecret1 vm/bare.img && kvm -hda ~/out/bare.img

View File

@@ -65,21 +65,18 @@ $(FEATURES):
fi; \ fi; \
pushd "$$feat" >/dev/null && \ pushd "$$feat" >/dev/null && \
for sub in / $(SUBPROFILES); do \ for sub in / $(SUBPROFILES); do \
dirtags=; \
if [ "$$sub" = / ]; then \ if [ "$$sub" = / ]; then \
srcdirs="."; \ srcdirs="."; \
dst="."; \ dst="."; \
else \ else \
src="$${sub%/*}"; \ src="$${sub%@*}"; \
dst="$${sub#*/}"; \ dst="$${sub#*@}"; \
srcdirs=; \ srcdirs=; \
if [ -d "$$src" ]; then \ if [ -d "$$src" ]; then \
srcdirs="$$src"; \ srcdirs="$$src"; \
dirtags="&& $$src"; \
fi; \ fi; \
if [ -d "$$dst" -a "$$dst" != "$$src" ]; then \ if [ -d "$$dst" -a "$$dst" != "$$src" ]; then \
srcdirs="$$srcdirs $$dst"; \ srcdirs="$${srcdirs:+$$srcdirs }$$dst"; \
dirtags="&& ($$src || $$dst)"; \
fi; \ fi; \
for srcdir in $$srcdirs; do \ for srcdir in $$srcdirs; do \
rsync -qab --exclude tagged \ rsync -qab --exclude tagged \
@@ -98,39 +95,19 @@ $(FEATURES):
if [ "$$sub" = / -a -d "$$part" ]; then \ if [ "$$sub" = / -a -d "$$part" ]; then \
rsync -qab "$$part/" "$$destdir/"; \ rsync -qab "$$part/" "$$destdir/"; \
fi; \ fi; \
[ -d "tagged/$$part" ] || continue; \
[ "$$srcdir" != "." ] || continue; \
pushd "tagged/$$part" >/dev/null; \
echo "$$feat $$dirtags" \
| tags2lists . \
| xargs -r cp -vpLt "$$destdir" --; \
popd >/dev/null; \
done; \ done; \
popd >&/dev/null; \ popd >&/dev/null; \
done; \ done; \
if type -t git >&/dev/null && \ if [ -n "$$dst" ]; then \
pushd "$(BUILDDIR)/$$dst/" >/dev/null; then \ the="$$sub subprofile"; \
test -n "`git status -s`" && \ else \
git add . && \ the="toplevel"; \
if [ -n "$$dst" ]; then \
the="$$sub subprofile"; \
else \
the="toplevel"; \
fi && \
git commit -qam "$$feat feature: $$the part added"; \
popd >/dev/null; \
fi; \ fi; \
mp-commit "$(BUILDDIR)/$$dst/" "$$feat feature: $$the part added"; \
done; \ done; \
if [ -x "generate.sh" ]; then sh generate.sh; fi; \ if [ -x "generate.sh" ]; then sh generate.sh; fi; \
if [ -s "generate.mk" ]; then $(MAKE) -f generate.mk; fi; \ if [ -s "generate.mk" ]; then $(MAKE) -f generate.mk; fi; \
if type -t git >&/dev/null && \ mp-commit "$(BUILDDIR)" "$$feat feature generation complete"; \
pushd "$(BUILDDIR)/" >/dev/null; then \
if [ -n "`git status -s`" ]; then \
git add . && \
git commit -qam "$$feat feature generation complete"; \
fi; \
popd >/dev/null; \
fi; \
popd >/dev/null popd >/dev/null
finalize: finalize:

View File

@@ -1,28 +1,29 @@
Этот каталог содержит т.н. фичи (features, особенности) -- == features.in ==
каталоги, содержимое каждого из которых реализует одну из Этот каталог содержит т.н. фичи (features, особенности).
подключаемых автономных возможностей образа.
Каждая фича должна содержать задействуемый при построении Фича -- отдельно подключаемая сущность, которая содержит
конфигурации будущего образа файл config.mk, включаемый повторно используемые конфигурацию/код и определяет одну
в ../main.mk; он может описывать одну или более целей из особенностей создаваемого образа. Может зависеть от
вида use/*, дополняющих конфигурацию, и при наличии других фич либо субпрофилей.
дополнительных хуков для копирования или generate.*
обязан добавить имя фичи в $(FEATURES), для чего Каждая фича должна содержать файл config.mk, включаемый
создана функция add_feature без аргументов. в ../main.mk при построении конфигурации будущего профиля;
он может описывать одну или более целей вида use/*,
дополняющих конфигурацию, и обязан добавить имя фичи
в $(FEATURES), для чего создана функция add_feature.
На этапе генерации сборочного профиля фичи рассматриваются На этапе генерации сборочного профиля фичи рассматриваются
после инициализации профиля (см. ../image.in/) и копирования после инициализации профиля (см. ../image.in/) и копирования
субпрофилей (см. ../sub.in/). Для каждой фичи, указанной субпрофилей (см. ../sub.in/). Для каждой фичи, указанной
в $(FEATURES), копируются подкаталоги сообразно субпрофилям, в $(FEATURES), копируются подкаталоги сообразно включенным
а также производится обработка {image-,}scripts.d/; затем субпрофилям, а также lib/ и {image-,}scripts.d/; затем
выполняется скрипт generate.sh и задействуется generate.mk выполняются generate.sh и generate.mk при их наличии.
(при их наличии).
Если фича дополняет хуками семейство целевых субпрофилей, Если фича дополняет хуками семейство целевых субпрофилей,
построенных на одном базовом, можно воспользоваться подкаталогом построенных на одном базовом, можно воспользоваться подкаталогом
с именем исходного базового субпрофиля (см. $src, $dst в Makefile). с именем исходного базового субпрофиля (см. $src, $dst в Makefile).
Наиболее употребительные цели можно снабжать "ярлычками" вроде Наиболее востребованные цели можно снабжать "ярлычками" вроде
"+icewm" с тем, чтобы сделать более краткими и выразительными "+icewm" с тем, чтобы сделать более краткими и выразительными
использующие их правила. Просьба не злоупотреблять количеством. использующие их правила. Просьба не злоупотреблять количеством.

View File

@@ -11,4 +11,7 @@
произведена ещё одна попытка переключения на grub, то в конфигурации произведена ещё одна попытка переключения на grub, то в конфигурации
останется lilo как последняя "новая" цель с точки зрения make. останется lilo как последняя "новая" цель с точки зрения make.
При необходимости всё-таки "пересилить" последнее изменение можно
@$(call set,BASE_BOOTLOADER,grub_или_lilo)
Реализация экспериментальная (нужно модуляризовать installer-steps). Реализация экспериментальная (нужно модуляризовать installer-steps).

View File

@@ -1,8 +1,7 @@
# step 4: build the distribution image # step 4: build the distribution image
# for complex-specified subprofiles like stage2/live, # take the latter part for complex-specified subprofiles like stage2@live
# take the latter part SUBDIRS = $(SUBPROFILE_DIRS)
SUBDIRS = $(notdir $(SUBPROFILES))
# proxy over the ISO metadata collected; see also genisoimagerc(5) # proxy over the ISO metadata collected; see also genisoimagerc(5)
BOOT_SYSI := $(META_SYSTEM_ID) BOOT_SYSI := $(META_SYSTEM_ID)
@@ -24,6 +23,7 @@ all: $(GLOBAL_DEBUG) prep copy-subdirs copy-tree run-scripts pack-image \
prep: $(GLOBAL_DEBUG) dot-disk $(WHATEVER) prep: $(GLOBAL_DEBUG) dot-disk $(WHATEVER)
# can't use mp-showref which belongs to the metaprofile
dot-disk: dot-disk:
@mkdir -p files/.disk @mkdir -p files/.disk
@echo "ALT Linux based" >files/.disk/info @echo "ALT Linux based" >files/.disk/info

6
features.in/efi/README Normal file
View File

@@ -0,0 +1,6 @@
Фича добавляет в образы необходимое для поддержки EFI/UEFI.
См. тж.:
* http://www.altlinux.org/UEFI
* http://www.rodsbooks.com/efi-bootloaders/
* https://bugzilla.altlinux.org/showdependencytree.cgi?id=27804

View File

@@ -0,0 +1,7 @@
use/efi:
@$(call add,THE_LISTS,$(call tags,base efi))
@$(call add,INSTALL2_PACKAGES,dosfstools)
use/efi/debug: use/efi
@$(call add,STAGE2_PACKAGES,efibootmgr gdisk)
@$(call set,KFLAVOURS,led-ws) ### CONFIG_FB_EFI

View File

@@ -0,0 +1,4 @@
#!/bin/sh
# see also https://bugzilla.altlinux.org/27970
echo efivars >> /etc/modules

View File

@@ -1,5 +1,5 @@
# alterator-based installer, second (livecd) stage # alterator-based installer, second (livecd) stage
use/install2: use/stage2 sub/stage2/install2 use/metadata use/cleanup/installer use/install2: use/stage2 sub/stage2@install2 use/metadata use/cleanup/installer
@$(call add_feature) @$(call add_feature)
@$(call set,INSTALL2_PACKAGES,installer-distro-$$(INSTALLER)-stage2) @$(call set,INSTALL2_PACKAGES,installer-distro-$$(INSTALLER)-stage2)
@$(call add,INSTALL2_PACKAGES,branding-$$(BRANDING)-alterator) @$(call add,INSTALL2_PACKAGES,branding-$$(BRANDING)-alterator)
@@ -17,3 +17,15 @@ use/install2/kms: use/stage2/kms
# see also use/vmguest/kvm; qxl included in xorg pkglist # see also use/vmguest/kvm; qxl included in xorg pkglist
use/install2/kvm: use/install2/kvm:
@$(call add,INSTALL2_PACKAGES,spice-vdagent xorg-drv-qxl) @$(call add,INSTALL2_PACKAGES,spice-vdagent xorg-drv-qxl)
# filesystems handling
use/install2/fs: use/install2/xfs use/install2/jfs use/install2/reiserfs; @:
use/install2/xfs:
@$(call add,INSTALL2_PACKAGES,xfsprogs)
use/install2/jfs:
@$(call add,INSTALL2_PACKAGES,jfsutils)
use/install2/reiserfs:
@$(call add,INSTALL2_PACKAGES,reiserfsprogs)

View File

@@ -19,11 +19,14 @@ rm -rf /usr/share/awk/
### TODO: x11vnc, xorg-xvfb: fix installer-common-stage2 ### TODO: x11vnc, xorg-xvfb: fix installer-common-stage2
rpmquery -a cpp\* gcc\* perl-base file ipv6calc \ rpmquery -a cpp\* gcc\* perl-base file ipv6calc \
bind-utils libbind \ bind-utils libbind \
gnupg libgcrypt libgnutls\* libgpg-error libsoup\* \ libsoup\* \
libGL glxinfo xdriinfo \ libGL glxinfo xdriinfo \
make make-initrd x11vnc xorg-xvfb \ make make-initrd x11vnc xorg-xvfb \
| xargs -r rpmi -e --nodeps -- | xargs -r rpmi -e --nodeps --
### TODO: unless LUKS luks feature is requested we can also drop
### gnupg libgcrypt libgnutls\* libgpg-error
rpmquery -a bind-utils libbind \ rpmquery -a bind-utils libbind \
| xargs -r rpmi -e -- | xargs -r rpmi -e --

View File

@@ -17,7 +17,7 @@ rm -rf /lib/modules/*/kernel/drivers/char/{ipmi,hw_random,mwave,tpm}
rm -rf /lib/modules/*/kernel/drivers/char/watchdog rm -rf /lib/modules/*/kernel/drivers/char/watchdog
rm -rf /lib/modules/*/kernel/drivers/cpufreq rm -rf /lib/modules/*/kernel/drivers/cpufreq
rm -rf /lib/modules/*/kernel/drivers/edac rm -rf /lib/modules/*/kernel/drivers/edac
rm -rf /lib/modules/*/kernel/drivers/firmware ### #rm -rf /lib/modules/*/kernel/drivers/firmware ### EFI
rm -rf /lib/modules/*/kernel/drivers/gpio rm -rf /lib/modules/*/kernel/drivers/gpio
rm -rf /lib/modules/*/kernel/drivers/hwmon rm -rf /lib/modules/*/kernel/drivers/hwmon
rm -rf /lib/modules/*/kernel/drivers/infiniband ### rm -rf /lib/modules/*/kernel/drivers/infiniband ###

View File

@@ -1,4 +1,4 @@
### ###
use/kernel: use/kernel:
@$(call add_feature) @$(call add_feature)
@$(call set,KFLAVOURS,std-def) @$(call set,KFLAVOURS,un-def)

View File

@@ -2,7 +2,7 @@
# copy stage2 as live # copy stage2 as live
# NB: starts to preconfigure but doesn't use/cleanup yet # NB: starts to preconfigure but doesn't use/cleanup yet
use/live: use/stage2 sub/stage2/live use/live: use/stage2 sub/stage2@live
@$(call add_feature) @$(call add_feature)
@$(call add,CLEANUP_PACKAGES,'installer*') @$(call add,CLEANUP_PACKAGES,'installer*')
@@ -10,7 +10,7 @@ use/live/base: use/live use/syslinux/ui/menu
@$(call add,LIVE_LISTS,$(call tags,base && (live || network))) @$(call add,LIVE_LISTS,$(call tags,base && (live || network)))
# a very simplistic one # a very simplistic one
use/live/x11: use/live use/x11/xorg use/live/x11: use/live use/firmware use/x11/xorg
@$(call add,LIVE_PACKAGES,xinit) @$(call add,LIVE_PACKAGES,xinit)
# optimized out: use/x11/xorg # optimized out: use/x11/xorg
@@ -18,6 +18,7 @@ use/live/desktop: use/live/base use/x11/wacom use/live/sound +vmguest +power
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network))) @$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
@$(call add,LIVE_LISTS,$(call tags,base l10n)) @$(call add,LIVE_LISTS,$(call tags,base l10n))
@$(call add,LIVE_PACKAGES,fonts-ttf-dejavu fonts-ttf-droid) @$(call add,LIVE_PACKAGES,fonts-ttf-dejavu fonts-ttf-droid)
@$(call add,LIVE_PACKAGES,pciutils)
@$(call add,SYSLINUX_CFG,localboot) @$(call add,SYSLINUX_CFG,localboot)
# alterator-based permanent installation # alterator-based permanent installation

View File

@@ -1,9 +1,28 @@
#!/bin/sh #!/bin/sh
# see also m-p-d::profiles/live/image-scripts.d/init3-services # see also m-p-d::profiles/live/image-scripts.d/init3-services
[ -x /sbin/chkconfig ] || exit 0 [ -x /sbin/chkconfig -o -x /bin/systemctl ] || exit 0
switch() {
case "$2" in
on)
cc=on; sc=enable;;
off)
cc=off; sc=disable;;
esac
{
[ ! -x /bin/systemctl ] || /bin/systemctl $sc $1.service
[ ! -x /sbin/chkconfig ] || /sbin/chkconfig $1 $cc
} 2>/dev/null
}
ENABLE=" ENABLE="
dm
gdm
kdm
wdm
prefdm
alteratord alteratord
livecd-evms livecd-evms
livecd-fstab livecd-fstab
@@ -37,6 +56,6 @@ update_wms
xinetd xinetd
" "
for i in $ENABLE; do chkconfig $i on 2>/dev/null; done for i in $ENABLE; do switch $i on; done
for i in $DISABLE; do chkconfig $i off 2>/dev/null; done for i in $DISABLE; do switch $i off; done
: :

2
features.in/luks/README Normal file
View File

@@ -0,0 +1,2 @@
Эта секретная фича добавляет в инсталяторы поддержку
шифрования файловых систем с помощью LUKS при их создании.

View File

@@ -0,0 +1,2 @@
use/luks:
@$(call add,BASE_PACKAGES,make-initrd-luks cryptsetup)

View File

@@ -0,0 +1,4 @@
#!/bin/sh
# FIXME: move into luks feature
echo 'FEATURES += luks' >> /etc/initrd.mk

View File

@@ -16,7 +16,7 @@ else
endif endif
# virtual environments # virtual environments
VE_ARCHIVES := tar cpio VE_ARCHIVES := tar cpio ubifs
VE_COMPRESSORS := gz xz# there's no sense in bzip2 by now VE_COMPRESSORS := gz xz# there's no sense in bzip2 by now
VE_ZIPS := $(call addsuffices, \ VE_ZIPS := $(call addsuffices, \
$(addprefix .,$(VE_COMPRESSORS)), \ $(addprefix .,$(VE_COMPRESSORS)), \

View File

@@ -1,8 +1,8 @@
+plymouth: use/plymouth/full; @: +plymouth: use/plymouth/full; @:
# and a few silent aliases # and a few aliases
use/plymouth/live: use/plymouth/stage2 use/plymouth/live: use/plymouth/stage2; @:
use/plymouth/install2: use/plymouth/stage2 use/plymouth/install2: use/plymouth/stage2; @:
use/plymouth: use/plymouth:
@$(call add_feature) @$(call add_feature)

View File

@@ -0,0 +1,4 @@
Эта фича меняет содержимое файла /etc/altlinux-release в соответствии
с установленной переменной RELNAME, что изменяет пункты загрузки GRUB.
Применяется при необходимости перекрыть внесенный брендингом текст.

View File

@@ -0,0 +1,3 @@
use/relname:
@$(call add_feature)
@$(call xport,RELNAME)

View File

@@ -0,0 +1,20 @@
#!/bin/sh -ef
# create a postinstall script to perform the change afterwards
if [ -z "$GLOBAL_RELNAME" ]; then
echo "** warning: relname feature enabled but RELNAME not set" >&2
exit 0
fi
if [ -n "$GLOBAL_VERBOSE" ]; then
echo "** Change /etc/altlinux-release contents to the release name" >&2
fi
SCRIPT="/usr/share/install2/postinstall.d/91-relname"
cat > "$SCRIPT" << EOF
#!/bin/sh
a= . install2-init-functions
exec_chroot sh -c 'echo "$GLOBAL_RELNAME" > /etc/altlinux-release'
exec_chroot sh -c 'grub-mkconfig -o /boot/grub/grub.cfg >&/dev/null ||:'
EOF
chmod +x "$SCRIPT"

View File

@@ -0,0 +1,20 @@
#!/bin/sh
# enable online repos if possible, just quit if anything's wrong
repo_source='/etc/apt/sources.list.d/alt.list'
host='http://ftp.altlinux.org'
[ -s "$repo_source" ] || exit 0
# regexps from alterator-pkg (via installer-feature-online-repo)
prefix_re="[[:space:]]*rpm[[:space:]]\+\([^[:space:]]\+[[:space:]]\+\)\?"
updates_re="${prefix_re}http:\/\/\([^[:space:]]\+\)[[:space:]]*"
# architectures
host_arch="$(rpm --eval '%_host_cpu')"
[ "$host_arch" = "x86_64" ] && compat="x86_64-i586" || compat=
# turn on unconditionally
for arch in "$host_arch" noarch "$compat"; do
sed -i "s/^#\($updates_re$arch\)/\1/" "$repo_source"
done

View File

@@ -1,4 +1,5 @@
use/rescue: use/stage2 sub/stage2/rescue use/rescue: use/stage2 sub/stage2@rescue use/syslinux/sdab.cfg \
use/firmware/server use/firmware/wireless
@$(call add_feature) @$(call add_feature)
@$(call add,RESCUE_LISTS, \ @$(call add,RESCUE_LISTS, openssh \
$(call tags,(base || extra) && (rescue || network))) $(call tags,(base || extra) && (rescue || network)))

View File

@@ -13,6 +13,7 @@ use/slinux: use/x11/xfce use/x11/gdm2.20
@$(call add,THE_LISTS,slinux/network) @$(call add,THE_LISTS,slinux/network)
@$(call add,THE_LISTS,slinux/xfce) @$(call add,THE_LISTS,slinux/xfce)
@$(call add,THE_LISTS,$(call tags,base l10n)) @$(call add,THE_LISTS,$(call tags,base l10n))
@$(call set,META_VOL_SET,Simply Linux)
use/slinux/full: use/isohybrid use/slinux use/systemd \ use/slinux/full: use/isohybrid use/slinux use/systemd \
use/firmware/wireless use/branding/complete \ use/firmware/wireless use/branding/complete \

View File

@@ -1,7 +1,7 @@
# "1" is not a typo # "1" is not a typo
use/stage2: sub/stage1 use/stage2: sub/stage1
@$(call add_feature) @$(call add_feature)
@$(call add,STAGE1_PACKAGES,file make-initrd make-initrd-propagator) @$(call add,STAGE1_PACKAGES,file make-initrd make-initrd-propagator propagator)
use/stage2/kms: use/stage2/kms:
@$(call add,STAGE1_KMODULES_REGEXP,drm.*) @$(call add,STAGE1_KMODULES_REGEXP,drm.*)

View File

@@ -2,5 +2,5 @@
# prepare base make-initrd configuration for stage1 # prepare base make-initrd configuration for stage1
# see also http://www.altlinux.org/Make-initrd-propagator # see also http://www.altlinux.org/Make-initrd-propagator
sed -i 's/AUTODETECT/#AUTODETECT/' /etc/initrd.mk sed -i 's/AUTODETECT/#&/' /etc/initrd.mk
echo 'FEATURES += propagator' >> /etc/initrd.mk echo 'FEATURES += propagator' >> /etc/initrd.mk

View File

@@ -1,6 +1,8 @@
#!/bin/sh -efu #!/bin/sh -efux
# NB: /etc/initrd.mk carefully prepared by earlier scripts # NB: /etc/initrd.mk carefully prepared by earlier scripts
verbose() { [ -z "$GLOBAL_VERBOSE" ] || echo "** 80-make-initfs: $@" >&2; }
kver="$(rpm -qa 'kernel-image*' \ kver="$(rpm -qa 'kernel-image*' \
--qf '%{installtime} %{version}-%{name}-%{release}\n' \ --qf '%{installtime} %{version}-%{name}-%{release}\n' \
| sort -n \ | sort -n \
@@ -12,15 +14,22 @@ MAKE_INITRD_OPTS="--no-checks -k $kver"
MAKE_INITRD_VER="`make-initrd -V \ MAKE_INITRD_VER="`make-initrd -V \
| sed -rn 's/^make-initrd version ([0-9.]+)/\1/p'`" | sed -rn 's/^make-initrd version ([0-9.]+)/\1/p'`"
# make-initrd >= 0.7.8
if [ "`rpmvercmp "$MAKE_INITRD_VER" "0.7.8"`" != "-1" ]; then if [ "`rpmvercmp "$MAKE_INITRD_VER" "0.7.8"`" != "-1" ]; then
MAKE_INITRD_OPTS="$MAKE_INITRD_OPTS --no-depmod" MAKE_INITRD_OPTS="$MAKE_INITRD_OPTS --no-depmod"
fi fi
[ -z "$GLOBAL_VERBOSE" ] || MAKE_INITRD_OPTS="$MAKE_INITRD_OPTS -v"
if make-initrd $MAKE_INITRD_OPTS; then if make-initrd $MAKE_INITRD_OPTS; then
gzip < /boot/initrd-$kver.img > $(getconf LIBDIR)/propagator/initfs pdir="$(getconf LIBDIR)/propagator"
mkdir -p "$pdir"
gzip < /boot/initrd-$kver.img > "$pdir"/initfs
else else
verbose "make-initrd failed"
exit 1 exit 1
fi fi
[ -h /boot/vmlinuz ] || ln -s vmlinuz-$kver /boot/vmlinuz [ -h /boot/vmlinuz ] || ln -s vmlinuz-$kver /boot/vmlinuz
[ -h /boot/initrd.img ] || ln -s initrd-$kver.img /boot/initrd.img [ -h /boot/initrd.img ] || ln -s initrd-$kver.img /boot/initrd.img
:

View File

@@ -1,6 +1,10 @@
Добавление поддержки syslinux; требуется для инсталяторов, live/rescue; Добавление поддержки syslinux; требуется для инсталяторов, live/rescue;
реализуется в рамках stage1. реализуется в рамках stage1.
Самостоятельное творческое использование на данный момент подразумевает
знакомство с /usr/share/doc/syslinux-*/syslinux.txt и изучение кусочков
конфигурации, которые уже существуют.
Цели config.mk: Цели config.mk:
* use/syslinux/ui/% -- конфигурирование интерфейса (см. cfg.in/00*.cfg); * use/syslinux/ui/% -- конфигурирование интерфейса (см. cfg.in/00*.cfg);
при использовании автоматически добавляют syslinux в FEATURES; при использовании автоматически добавляют syslinux в FEATURES;
@@ -17,8 +21,3 @@
Здесь производится первичная обработка конфигурационных данных, Здесь производится первичная обработка конфигурационных данных,
окончательно проверяемых и используемых уже в инструментальном чруте. окончательно проверяемых и используемых уже в инструментальном чруте.
TODO: может потребоваться обобщение механизма генерации с учётом
многоуровневых меню и включаемых файлов (которыми лучше не злоупотреблять
из соображений скорости инициализации загрузчика); требуется обеспечить
брендирование заголовков.

View File

@@ -1,3 +1,3 @@
ui gfxboot bootlogo message ui gfxboot bootlogo message
menu title ALT Linux (@mkimage-profiles@) menu title @relname@
prompt 0 prompt 0

View File

@@ -1,3 +1,3 @@
ui menu.c32 ui menu.c32
menu title ALT Linux (@mkimage-profiles@) menu title @relname@
prompt 0 prompt 0

View File

@@ -0,0 +1 @@
prompt 0

View File

@@ -1,2 +1,2 @@
say ALT Linux (@mkimage-profiles@) say @relname@
prompt 1 prompt 1

View File

@@ -1,3 +1,3 @@
ui vesamenu ui vesamenu
menu title ALT Linux (@mkimage-profiles@) menu title @relname@
prompt 0 prompt 0

View File

@@ -0,0 +1,2 @@
noescape 1

View File

@@ -1,5 +1,5 @@
label linux label linux
menu label ^Install ALT Linux menu label ^Install @relname@
kernel alt0/vmlinuz kernel alt0/vmlinuz
append initrd=alt0/full.cz changedisk fastboot showopts automatic=method:cdrom ramdisk_size=@altinst_size@ vga=0x314 @bootargs@ append initrd=alt0/full.cz changedisk fastboot showopts automatic=method:cdrom ramdisk_size=@altinst_size@ vga=0x314 @bootargs@

View File

@@ -1,5 +1,5 @@
label netinst label netinst
menu label Install server-ovz via inter^net menu label Install @relname@ via inter^net
kernel alt0/vmlinuz kernel alt0/vmlinuz
append initrd=alt0/full.cz fastboot showopts automatic=method:http,network:dhcp,server:ftp.linux.kiev.ua,directory:/pub/Linux/ALT/people/mike/iso/mkimage-profiles/netinst/server-ovz/x86_64 quiet=1 ramdisk_size=131072 vga=0x314 append initrd=alt0/full.cz fastboot showopts automatic=method:http,network:dhcp,server:ftp.linux.kiev.ua,directory:/pub/Linux/ALT/people/mike/iso/mkimage-profiles/netinst/server-ovz/x86_64 quiet=1 ramdisk_size=131072 vga=0x314
### hardwired parameters and strings should become dynamic someday ### hardwired parameters and strings should become dynamic someday

View File

@@ -0,0 +1,8 @@
label sda
menu label Boot from ^1st hard/flash drive
localboot 0x80
label sdb
menu label Boot from ^2nd hard/flash drive
localboot 0x81

View File

@@ -3,6 +3,7 @@ use/syslinux: sub/stage1
@$(call add_feature) @$(call add_feature)
@$(call add,STAGE1_PACKAGES,syslinux) @$(call add,STAGE1_PACKAGES,syslinux)
@$(call try,META_SYSTEM_ID,SYSLINUX) @$(call try,META_SYSTEM_ID,SYSLINUX)
@$(call set,RELNAME,ALT Linux ($(IMAGE_NAME)))
# UI is overwritten # UI is overwritten
use/syslinux/ui/%: use/syslinux use/syslinux/ui/%: use/syslinux

View File

@@ -17,14 +17,14 @@ endif
ifdef SYSLINUX_UI ifdef SYSLINUX_UI
SYSLINUX_MODULES := $(SYSLINUX_MODULES) $(SYSLINUX_UI) SYSLINUX_MODULES := $(SYSLINUX_MODULES) $(SYSLINUX_UI)
else else
$(warning no syslinux ui configured, default is plain text prompt) $(warning no syslinux ui configured, default is now none)
SYSLINUX_UI := prompt SYSLINUX_UI := none
endif endif
# SUBPROFILES are considered SYSLINUX_CFG too # SUBPROFILES are considered SYSLINUX_CFG too
# (note these can appear like stage2/live); # (note these can appear like stage2@live);
# 01defaults.cfg is included indefinitely # 01defaults.cfg is included indefinitely
SYSLINUX_CFG := $(SYSLINUX_CFG) $(notdir $(SUBPROFILES)) defaults SYSLINUX_CFG := $(SYSLINUX_CFG) $(SUBPROFILE_DIRS) defaults
DSTDIR := $(BUILDDIR)/stage1/files/syslinux/.in DSTDIR := $(BUILDDIR)/stage1/files/syslinux/.in
@@ -49,12 +49,15 @@ cfg = $(wildcard cfg.in/??$(1).cfg)
all: debug timeout all: debug timeout
@### proper text branding should be implemented @### proper text branding should be implemented
@sed -i 's,@mkimage-profiles@,$(IMAGE_NAME),' $(DSTDIR)/*.cfg
@echo $(SYSLINUX_MODULES) > $(DSTDIR)/modules.list @echo $(SYSLINUX_MODULES) > $(DSTDIR)/modules.list
@echo $(SYSLINUX_FILES) > $(DSTDIR)/syslinux.list @echo $(SYSLINUX_FILES) > $(DSTDIR)/syslinux.list
@sed -i \
-e 's,@mkimage-profiles@,$(IMAGE_NAME),' \
-e 's,@relname@,$(RELNAME),' \
$(DSTDIR)/*.cfg
# integerity check # integerity check
timeout: bootargs timeout: distro
@if [ "$(SYSLINUX_TIMEOUT)" -ge 0 ] 2>/dev/null; then \ @if [ "$(SYSLINUX_TIMEOUT)" -ge 0 ] 2>/dev/null; then \
TIMEOUT="$(SYSLINUX_TIMEOUT)"; \ TIMEOUT="$(SYSLINUX_TIMEOUT)"; \
else \ else \
@@ -62,6 +65,14 @@ timeout: bootargs
fi; \ fi; \
sed -i "s,@timeout@,$$TIMEOUT," $(DSTDIR)/*.cfg sed -i "s,@timeout@,$$TIMEOUT," $(DSTDIR)/*.cfg
distro: bootargs
@if [ -n "$(META_VOL_SET)" ]; then \
DISTRO="$(META_VOL_SET)"; \
else \
DISTRO="ALT Linux"; \
fi; \
sed -i "s,@distro@,$$DISTRO," $(DSTDIR)/*.cfg
# pass over additional parameters, if any # pass over additional parameters, if any
bootargs: clean bootargs: clean
@if [ -n "$(STAGE2_BOOTARGS)" ]; then \ @if [ -n "$(STAGE2_BOOTARGS)" ]; then \

View File

@@ -3,6 +3,7 @@
# copy modules; see also ../../generate.mk # copy modules; see also ../../generate.mk
MODDIR="/usr/lib/syslinux" MODDIR="/usr/lib/syslinux"
CFG="$GLOBAL_BOOTLOADER.cfg"
mkdir -p "$WORKDIR/syslinux" mkdir -p "$WORKDIR/syslinux"
cd "$WORKDIR/syslinux" cd "$WORKDIR/syslinux"
@@ -30,7 +31,18 @@ if [ -n "$SYSLINUX_MODULES" ]; then
fi fi
# number ordering sponsored by shell's pathname expansion # number ordering sponsored by shell's pathname expansion
grep -hv '^#' .in/[0-9][0-9]*.cfg > "$GLOBAL_BOOTLOADER.cfg" grep -hv '^#' .in/[0-9][0-9]*.cfg > "$CFG"
# there should be either DEFAULT or UI directive there
if ! egrep -i '^(default|ui)' "$CFG"; then
DEFAULT="$(grep -i '^label ' "$CFG" | head -1 | cut -f2 -d' ')"
if [ -n "$DEFAULT" ]; then
echo "default $DEFAULT" >> "$CFG"
else
echo "error: no DEFAULT or UI directive and cannot guess" >&2
exit 1
fi
fi
# snippets are not going into the actual image # snippets are not going into the actual image
if [ "$DEBUG" != 2 ]; then rm -r .in/; fi if [ "$DEBUG" != 2 ]; then rm -r .in/; fi

View File

@@ -1,4 +1,4 @@
use/systemd: use/systemd:
@$(call add_feature) @$(call add_feature)
@$(call add,COMMON_PACKAGES,systemd systemd-units systemd-sysvinit) @$(call add,COMMON_PACKAGES,systemd systemd-units systemd-sysvinit)
@$(call add,COMMON_PACKAGES,installer-feature-systemd-stage3) @$(call add,COMMON_PACKAGES,installer-feature-systemd-stage3 chkconfig)

View File

@@ -32,7 +32,7 @@ IMAGE_SORTDIR := $(SORTDIR)
# reconstruct instead of passing yet another variable # reconstruct instead of passing yet another variable
IMAGE_OUTDIR := $(IMAGEDIR)$(IMAGE_SORTDIR:%=/%) IMAGE_OUTDIR := $(IMAGEDIR)$(IMAGE_SORTDIR:%=/%)
IMAGE_OUTFILE := $(IMAGE_NAME)-$(DATE)-$(ARCH).$(IMAGE_TYPE) IMAGE_OUTFILE := $(IMAGE_NAME)-$(STATUS)$(DATE)-$(ARCH).$(IMAGE_TYPE)
IMAGE_OUTPATH := $(IMAGE_OUTDIR)/$(IMAGE_OUTFILE) IMAGE_OUTPATH := $(IMAGE_OUTDIR)/$(IMAGE_OUTFILE)
IMAGE_RELPATH := $(IMAGE_SORTDIR:%=%/)$(IMAGE_OUTFILE) IMAGE_RELPATH := $(IMAGE_SORTDIR:%=%/)$(IMAGE_OUTFILE)
IMAGE_RELDIR := $(IMAGE_OUTDIR:$(GLOBAL_BUILDDIR)/%=%) IMAGE_RELDIR := $(IMAGE_OUTDIR:$(GLOBAL_BUILDDIR)/%=%)
@@ -52,7 +52,7 @@ GLOBAL_TARGET := $(ARCH)
GLOBAL_HSH_APT_CONFIG := $(wildcard $(APTCONF)) GLOBAL_HSH_APT_CONFIG := $(wildcard $(APTCONF))
# the lib/build-*.mk comes from features.in/build-*/lib # the lib/build-*.mk comes from features.in/build-*/lib
include lib/*.mk include $(sort $(wildcard lib/*.mk))
include $(MKIMAGE_PREFIX)/targets.mk include $(MKIMAGE_PREFIX)/targets.mk
# specified only for the final image (target-specific) # specified only for the final image (target-specific)

View File

@@ -1,3 +1,4 @@
== image.in ==
Этот каталог копируется из метапрофиля в профиль "как есть" Этот каталог копируется из метапрофиля в профиль "как есть"
и формирует "заготовку" финальной стадии, собирающей собственно и формирует "заготовку" финальной стадии, собирающей собственно
образ из результатов работы индивидуальных субпрофилей образ из результатов работы индивидуальных субпрофилей

View File

@@ -0,0 +1,6 @@
#!/bin/sh
# fixup chroot's toplevel directory permissions (use to become 1775)
chmod 755 /
rm -f /.gitignore

View File

@@ -1,3 +1,4 @@
== lib ==
Этот каталог содержит вспомогательные makefiles, Этот каталог содержит вспомогательные makefiles,
обеспечивающие основную функциональность создания обеспечивающие основную функциональность создания
конфигурации образа и генерации соответствующего конфигурации образа и генерации соответствующего

View File

@@ -21,10 +21,12 @@ LOWSPACE = 1024
START += time -f "%E %PCPU %Mk" START += time -f "%E %PCPU %Mk"
# /usr/bin/{i586,x86_64} are setarch(8) symlinks but arm is not; # /usr/bin/{i586,x86_64} are setarch(8) symlinks but arm is not;
# armh (armv7l) doesn't have any but should cope with qemu-arm.static;
# also check whether non-x86 build is running native # also check whether non-x86 build is running native
EARCH := $(subst armh,arm,$(ARCH))
ifeq (,$(wildcard $(subst :,/$(ARCH) ,$(PATH):))) ifeq (,$(wildcard $(subst :,/$(ARCH) ,$(PATH):)))
ifeq (,$(findstring $(ARCH),$(shell uname -m))) ifeq (,$(findstring $(EARCH),$(shell uname -m)))
export GLOBAL_HSH_USE_QEMU=$(ARCH) export GLOBAL_HSH_USE_QEMU=$(EARCH)
endif endif
else else
START += $(ARCH) START += $(ARCH)

View File

@@ -51,11 +51,9 @@ distclean: clean
# builddir existing outside read-only metaprofile is less ephemeral # builddir existing outside read-only metaprofile is less ephemeral
# than BUILDDIR variable is -- usually it's unneeded afterwards # than BUILDDIR variable is -- usually it's unneeded afterwards
# so just zap it unless DEBUG has been requested (moreso for multi
# image builds, UI based ones, and readonly metaprofile; or CHECK)
postclean: build-image postclean: build-image
@{ \ @{ \
if [ "0$(DEBUG)" -lt 2 -a -z "$(CHECK)" ] && \ if [ "0$(DEBUG)" -lt 2 -a -z "$(CHECK)$(REPORT)" ] && \
[ "$(NUM_TARGETS)" -gt 1 \ [ "$(NUM_TARGETS)" -gt 1 \
-o -n "$(__frontend)" \ -o -n "$(__frontend)" \
-o ! -L "$(SYMLINK)" ]; then \ -o ! -L "$(SYMLINK)" ]; then \

View File

@@ -31,7 +31,7 @@ distro/.base: distro/.init use/kernel
# something marginally useful (as a network-only installer) # something marginally useful (as a network-only installer)
# NB: doesn't carry stage3 thus cannot use/bootloader # NB: doesn't carry stage3 thus cannot use/bootloader
distro/installer: distro/.base use/syslinux/localboot.cfg \ distro/installer: distro/.base use/syslinux/localboot.cfg \
use/install2 use/install2/kms use/install2/kvm use/install2 use/install2/kms use/firmware use/install2/kvm
@$(call set,INSTALLER,altlinux-generic) @$(call set,INSTALLER,altlinux-generic)
distro/.installer: distro/installer use/bootloader/grub use/repo/main; @: distro/.installer: distro/installer use/bootloader/grub use/repo/main; @:

View File

@@ -44,13 +44,7 @@ profile/init: distclean
@$(call put,ifndef DISTCFG_MK) @$(call put,ifndef DISTCFG_MK)
@$(call put,DISTCFG_MK = 1) @$(call put,DISTCFG_MK = 1)
@{ \ @{ \
if type -t git >&/dev/null; then \ mp-showref $(LOG); \
if [ -d .git ]; then \
git show-ref --head -d -s -- HEAD && \
git status -s && \
echo; \
fi $(LOG); \
fi; \
{ \ { \
APTCONF="$(wildcard $(APTCONF))"; \ APTCONF="$(wildcard $(APTCONF))"; \
echo "** using $${APTCONF:-system apt configuration}:"; \ echo "** using $${APTCONF:-system apt configuration}:"; \
@@ -62,7 +56,7 @@ profile/init: distclean
| tee $(BUILDDIR)/sources.list; \ | tee $(BUILDDIR)/sources.list; \
echo; \ echo; \
} $(LOG); \ } $(LOG); \
if ! grep -q "[ ]$(ARCH)[ ]" $(BUILDDIR)/sources.list; then \ if ! grep -q "\<$(ARCH)\>" $(BUILDDIR)/sources.list; then \
echo -n "requested arch '$$ARCH' unavailable" >&2; \ echo -n "requested arch '$$ARCH' unavailable" >&2; \
if [ -z "$(APTCONF)" ]; then \ if [ -z "$(APTCONF)" ]; then \
echo " (no APTCONF)"; \ echo " (no APTCONF)"; \
@@ -71,14 +65,7 @@ profile/init: distclean
fi >&2; \ fi >&2; \
exit 1; \ exit 1; \
fi; \ fi; \
if type -t git >&/dev/null; then \ mp-commit "$(BUILDDIR)" "derivative profile initialized"; \
if cd $(BUILDDIR); then \
git init -q && \
git add . && \
git commit -qam 'derivative profile initialized'; \
cd ->&/dev/null; \
fi; \
fi; \
if [ -w . ]; then \ if [ -w . ]; then \
rm -f "$(SYMLINK)" && \ rm -f "$(SYMLINK)" && \
ln -s "$(BUILDDIR)" "$(SYMLINK)" && \ ln -s "$(BUILDDIR)" "$(SYMLINK)" && \
@@ -98,21 +85,17 @@ profile/bare: profile/init
@$(call try,IMAGEDIR,$(IMAGEDIR)) @$(call try,IMAGEDIR,$(IMAGEDIR))
@$(call try,LOGDIR,$(LOGDIR)) @$(call try,LOGDIR,$(LOGDIR))
@$(call try,BRANDING,altlinux-sisyphus) @$(call try,BRANDING,altlinux-sisyphus)
ifeq (,$(REPO:altlinux%=))
@$(call set,IMAGE_INIT_LIST,+branding-$$(BRANDING)-release) @$(call set,IMAGE_INIT_LIST,+branding-$$(BRANDING)-release)
@if type -t git >&/dev/null && cd $(BUILDDIR); then \ endif
git init -q && \ @mp-commit "$(BUILDDIR)" "image configuration defaults set"
git add . && \
git commit -qam 'image configuration defaults set'; \
fi
# put the derived SUBPROFILE_DIRS here to get it logged in clear text by the way
profile/finalize: profile/finalize:
@$(call put,SUBPROFILE_DIRS = $$(notdir $$(subst @,/,$$(SUBPROFILES))))
@if [ -s $(RC) ]; then $(call put,-include $(RC)); fi @if [ -s $(RC) ]; then $(call put,-include $(RC)); fi
@$(call put,endif) @$(call put,endif)
@if type -t git >&/dev/null && cd $(BUILDDIR); then \ @mp-commit "$(BUILDDIR)" "image configuration finalized"
git init -q && \
git add . && \
git commit -qam 'image configuration finalized'; \
fi
# requires already formed distcfg.mk for useful output # requires already formed distcfg.mk for useful output
profile/dump-vars: profile/dump-vars:

View File

@@ -8,7 +8,7 @@ ifeq (vm,$(IMAGE_CLASS))
vm/.bare: profile/bare vm/.bare: profile/bare
@$(call add,BASE_PACKAGES,interactivesystem lilo shadow-utils e2fsprogs) @$(call add,BASE_PACKAGES,interactivesystem lilo shadow-utils e2fsprogs)
@$(call set,KFLAVOURS,std-def) @$(call set,KFLAVOURS,un-def)
vm/bare: vm/.bare vm/bare: vm/.bare
@$(call add,BASE_PACKAGES,apt) @$(call add,BASE_PACKAGES,apt)

View File

@@ -30,7 +30,7 @@ export MKIMAGE_PROFILES := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
-include $(HOME)/.mkimage/profiles.mk -include $(HOME)/.mkimage/profiles.mk
# most of the actual work done elsewhere # most of the actual work done elsewhere
include lib/*.mk include $(sort $(wildcard lib/*.mk))
include conf.d/*.mk include conf.d/*.mk
include features.in/*/config.mk include features.in/*/config.mk

View File

@@ -1,3 +1,4 @@
== pkg.in ==
Этот каталог содержит все возможные списки пакетов и описания групп, Этот каталог содержит все возможные списки пакетов и описания групп,
которые по мере необходимости копируются из метапрофиля в формируемый которые по мере необходимости копируются из метапрофиля в формируемый
профиль. профиль.

View File

@@ -14,13 +14,7 @@ all: $(GLOBAL_DEBUG)
mkdir -p $(TARGET) && \ mkdir -p $(TARGET) && \
cp -at $(TARGET) -- \ cp -at $(TARGET) -- \
$(addsuffix .directory,$(THE_GROUPS) $(MAIN_GROUPS)); \ $(addsuffix .directory,$(THE_GROUPS) $(MAIN_GROUPS)); \
if type -t git >&/dev/null && cd $(TARGET); then \ mp-commit "$(TARGET)" "requested $(SUFFIX) copied over"; \
if [ -n "`git status -s`" ]; then \
git add . && \
git commit -qam "requested $(SUFFIX) copied over"; \
fi; \
cd - >&/dev/null; \
fi; \
fi fi
debug: debug:

View File

@@ -1,3 +1,5 @@
[float]
=== pkg.in/groups ===
Этот каталог содержит описания групп, копируемые из метапрофиля Этот каталог содержит описания групп, копируемые из метапрофиля
в создаваемый профиль по необходимости (только фигурирующие в в создаваемый профиль по необходимости (только фигурирующие в
списке, которым является значение переменной MAIN_GROUPS). списке, которым является значение переменной MAIN_GROUPS).

View File

@@ -19,13 +19,7 @@ SUFFIX := pkg/lists
TARGET := $(BUILDDIR)/$(SUFFIX) TARGET := $(BUILDDIR)/$(SUFFIX)
all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE) copy-lists copy-groups all: $(TARGET) $(GLOBAL_DEBUG) $(DOTBASE) copy-lists copy-groups
@if type -t git >&/dev/null && cd $(TARGET); then \ @mp-commit "$(TARGET)" "requested $(SUFFIX) copied over"
if [ -n "`git status -s`" ]; then \
git add . && \
git commit -qam "requested $(SUFFIX) copied over"; \
fi; \
cd - >&/dev/null; \
fi
copy-lists: copy-lists:
@# env | sort -u | grep _LISTS | xargs cp @# env | sort -u | grep _LISTS | xargs cp

15
pkg.in/lists/gns3 Normal file
View File

@@ -0,0 +1,15 @@
gns3
dynamips
dynagen
qemu
qemu-kvm
virtualbox
wireshark
su
livecd-virtualbox
livecd-online-repo

View File

@@ -2,6 +2,7 @@ vzctl
vzdump vzdump
#vzautolimit #vzautolimit
#vzfree #vzfree
vzquota
#vzvalidate #vzvalidate
htop htop
yabeda yabeda

View File

@@ -1,3 +1,4 @@
=== pkg.in/lists/tagged ===
Этот каталог содержит тегированные списки; на данный момент Этот каталог содержит тегированные списки; на данный момент
реализация (../../../bin/tags2lists) требует, чтобы каждый реализация (../../../bin/tags2lists) требует, чтобы каждый
из тегов был отдельным словом, состоящим из символов из набора из тегов был отдельным словом, состоящим из символов из набора

View File

@@ -0,0 +1,7 @@
gdisk
parted
dosfstools
grub2-efi
elilo
efibootmgr
installer-feature-efi-stage3

View File

@@ -3,3 +3,4 @@ xinit
xinitrc xinitrc
livecd-setlocale livecd-setlocale
installer-feature-runlevel5-stage3 installer-feature-runlevel5-stage3
su

View File

@@ -15,6 +15,36 @@ mate-session
#mate-session-manager #mate-session-manager
mate-settings-daemon mate-settings-daemon
mate-themes mate-themes
mate-vfs mate-vfs gvfs-backends
mate-vfs-smb mate-vfs-smb
mate-window-manager mate-window-manager
mate-applets
mate-bluetooth
mate-calc
mate-charmap
mate-document-viewer
mate-document-viewer-caja
mate-document-viewer-djvu
mate-file-archiver
mate-image-viewer
mate-media
mate-media-apps
mate-netspeed
mate-power-manager
mate-screensaver
mate-terminal
mate-utils
mate-utils-mate-system-log
mate-file-manager-extensions
mate-file-manager-image-converter
mate-file-manager-open-terminal
mate-file-manager-sendto
parcellite
### should be dropped at some stage; see bugreports within this thread:
# http://lists.altlinux.org/pipermail/sisyphus/2012-August/358079.html
libmatekbd-capplet
iso-codes
tzdata

View File

@@ -0,0 +1 @@
livecd-firefox

View File

@@ -1,4 +1,4 @@
razor-qt razorqt
arora arora
qtfm qtfm
qterminal qterminal

View File

@@ -16,6 +16,7 @@ qt4-settings
qtparted qtparted
tubularix tubularix
smplayer smplayer
qps
# upstream recommended # upstream recommended
#ptbatterysystemtray #ptbatterysystemtray

View File

@@ -7,7 +7,7 @@ kdegraphics-ksnapshot
kdegraphics-kview kdegraphics-kview
kdeutils-laptop kdeutils-laptop
kdepim-akregator kdepim-akregator
gtk2-themes-qtcurve #gtk2-themes-qtcurve
#kde-styles-qtcurve #kde-styles-qtcurve
kdeutils-ark kdeutils-ark
#kdebluetooth #kdebluetooth

View File

@@ -0,0 +1,2 @@
cryptmount
cryptsetup

View File

@@ -24,9 +24,11 @@ parted
sdparm sdparm
sfdisk sfdisk
smartmontools smartmontools
testdisk
mtools mtools
partimage partimage
gdisk
cgdisk
fixparts
# Applications # Applications
binutils binutils
@@ -60,12 +62,20 @@ reiserfsprogs
xfsprogs xfsprogs
btrfs-progs btrfs-progs
ext3grep ext3grep
dmsdos
extundelete
scalpel
testdisk
testdisk-doc
zerofree
wipefreespace
# Applications/Networking # Applications/Networking
arpwatch arpwatch
elinks elinks
hostinfo hostinfo
iftop iftop
ipmitool
iproute2 iproute2
iptables iptables
iputils iputils

View File

@@ -6,6 +6,7 @@ xorg-drv-fbdev
xorg-drv-intel xorg-drv-intel
xorg-drv-joystick xorg-drv-joystick
xorg-drv-mga xorg-drv-mga
xorg-drv-modesetting
xorg-drv-multimedia xorg-drv-multimedia
xorg-drv-nouveau xorg-drv-nouveau
xorg-drv-nv xorg-drv-nv

View File

@@ -17,7 +17,7 @@ ifneq (1,$(NUM_TARGETS))
SHORTEN := >/dev/null SHORTEN := >/dev/null
endif endif
all: reports/targets reports/scripts all: reports/targets reports/scripts reports/cleanlog
@if [ -n "$(IMAGE_OUTPATH)" ]; then \ @if [ -n "$(IMAGE_OUTPATH)" ]; then \
cp -a "$(REPORTDIR)" "$(LOGDIR)/$(IMAGE_OUTFILE).reports"; \ cp -a "$(REPORTDIR)" "$(LOGDIR)/$(IMAGE_OUTFILE).reports"; \
fi fi
@@ -25,6 +25,31 @@ all: reports/targets reports/scripts
reports/prep: reports/prep:
@mkdir -p "$(REPORTDIR)" @mkdir -p "$(REPORTDIR)"
# try to drop common noise rendering diff(1) mostly useless
reports/cleanlog: reports/prep
@OUT="$(REPORTDIR)/$(@F).log"; \
sed -r \
-e 's,$(BUILDDIR),,g' \
-e '/\/var\/lib\/apt\/lists/d' \
-e 's/... .. ..:..:..//g' \
-e 's/\[[0-9]+\]//g' \
-e '/^(Reading Package Lists|Building Dependency Tree)/d' \
-e '/^(Fetched|Need to get|After unpacking) /d' \
-e '/^(Preparing packages for installation|Done\.)/d' \
-e '/^hsh(|-(initroot|install|fakedev|(mk|rm)chroot|run)): /d' \
-e '/^(hasher-priv|mkaptbox|(mk|rm)dir): /d' \
-e '/^mki-((invalidate-|)cache|check-obsolete|prepare): /d' \
-e '/^(mode of|changed (group|ownership)|removed) /d' \
-e '/^chroot\/.in\//d' \
-e '/ has started executing\.$$/d' \
-e '/\/var\/log\/apt\.log$$/d' \
-e '/\/usr\/share\/apt\/scripts\/log\.lua/d' \
-e '/\.rpm$$/d' \
-e "/' -> '/d" \
< $(BUILDLOG) \
> "$(REPORTDIR)/$(@F).log" \
&& echo "** diffable log: $$OUT" $(SHORTEN)
reports/scripts: reports/prep reports/scripts: reports/prep
@OUT="$(REPORTDIR)/$(@F).log"; \ @OUT="$(REPORTDIR)/$(@F).log"; \
grep "^mki.*scripts: Run: " $(BUILDLOG) \ grep "^mki.*scripts: Run: " $(BUILDLOG) \

View File

@@ -10,22 +10,17 @@ include $(BUILDDIR)/distcfg.mk
# take src/ and put it as dst/ (for stage2 variants) # take src/ and put it as dst/ (for stage2 variants)
all: all:
@for sub in $(SUBPROFILES); do \ @for sub in $(SUBPROFILES); do \
src="$${sub%/*}" && \ src="$${sub%@*}" && \
dst="$${sub#*/}" && \ dst="$${sub#*@}" && \
neq="$${src#$$dst}" && \ neq="$${src#$$dst}" && \
rsync -qa "$$src/" "$(BUILDDIR)/$$dst/" && \ rsync -qa "$$src/" "$(BUILDDIR)/$$dst/" && \
if type -t git >&/dev/null && cd "$(BUILDDIR)/$$dst/"; then \ mp-commit "$(BUILDDIR)/$$dst/" \
if [ -n "`git status -s`" ]; then \ "$$dst subprofile initialized$${neq:+ (using $$src)}"; \
git add . && \
git commit -qam "$$dst subprofile initialized$${neq:+ (using $$src)}"; \
fi; \
cd - >&/dev/null; \
fi; \
done done
clean: clean:
@for sub in $(SUBPROFILES); do \ @for sub in $(SUBPROFILES); do \
dst="${sub#*/}" && \ dst="${sub#*@}" && \
if [ -n "$$dst" -a -n "$(BUILDDIR)" ]; then \ if [ -n "$$dst" -a -n "$(BUILDDIR)" ]; then \
rm -r "$(BUILDDIR)/$$dst" && \ rm -r "$(BUILDDIR)/$$dst" && \
mkdir -p "$(BUILDDIR)/$$dst"; \ mkdir -p "$(BUILDDIR)/$$dst"; \

Some files were not shown because too many files have changed in this diff Show More