IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
- Add support 'fuid' automatic mode option for method cdrom
- Fix potential memory overflow in welcome string
- Set PREFIX to "/" for nfs and cifs methods due its mounted to image root
stage1.c:354:41: warning: '%s' directive output may be truncated writing up to 127 bytes into a region of size 117 [-Wformat-truncation=]
snprintf(buf, sizeof(buf), "Welcome to %s", version);
^~ ~~~~~~~
In file included from /usr/include/stdio.h:862,
from stage1.c:30:
/usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 12 and 139 bytes into a destination of size 128
return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
__bos (__s), __fmt, __va_arg_pack ());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The installed system can have several devices with the same structure.
The automatic 'fuid' option can be used to detach one from the other to find the
partition where our stage2 image is stored, launched from stage1 (in this case
propagator). This option works automatically with the cdrom method:
- automatic=method:cdrom,fuid:PATH_TO_UNIQ_UID_FILENAME
- mkmodpack: warn about incorrect patterns
Kernel modules may be needed to access rootfs.
Such modules must be present in the initramfs.
The mkmodpack script finds modules by given patterns.
If the pattern is specified incorrectly, the module
will not be found and booting will become impossible.
Need to warn about module patterns that do not match with anything.
Kernel modules may be needed to access rootfs.
Such modules must be present in the initramfs.
The mkmodpack script finds modules by given patterns.
If the pattern is specified incorrectly, the module
will not be found and booting will become impossible.
Need to warn about module patterns
that do not match with anything.
The pattern can match the name of a module built into
the kernel as given by modprobe.
However, modprobe can fix some incorrect patterns.
These patterns should also be reported.
- fix hangs until http socket not closed on server side (closes: #37150)
- tools.c: break reading cycle if we actually loaded program into memory
- url.c, network.c: disable keep-alive and close http socket after downloading
- dhcp.c: Remove temporary default route properly (altbug:#34347).
- dhcp.c: Provide DHCP vendor class identifier in requests (altbug:#34320).
This behaviour can be reverted with a kernel command line parameter.
DHCP is implemented in propagator in a rather lazy way:
to dynamically configure a network interface, say `eno1',
instead of slinging raw Ethernet frames around like everyone else,
it sets up a (temporary) default null route through that interface
and throws UDP messages with actual bootp payload.
`ip' utility describes such a route as `default dev eno1 scope link'
The idea behind this presumably was to avoid generating IP and UDP
headers manually while the null route is sufficient to send a couple of
link-wide (maybe broadcast) messages and generic enough to work anywhere.
To this date propagator didn't bother to remove that route,
so *in some networks* it had persisted even after the initramfs
(and propagator itself) was long gone, and in other networks did not,
having been luckily replaced by the default route to DHCP gateway.
In the cases where it did the real problem showed itself
after the real userspace (for example, in a live distro)
eventually tried to reconfigure the network (because why not?).
The pesky null route was most often left untouched by the DHCP client
(ALT live distros mostly use dhcpcd), managing to squeeze its way
up the routing table and effectively preventing the host
from network access beyond a router.
If the NFS root is behind a couple routers, any attempt to access
the file system gets stuck — the system keeps tirelessly looking for
the NFS host via ARP.
Some obsolete DHCP implementations in specialized network hardware
(Cisco, we're looking at you) discard DHCP messages from a client
attempting to reconfigure itself and providing a different vendor class
identifier the second time — much like a network-booting system.
To cope with that, propagator will not send a vendor class identifier
if `dhcp-send-vendor-id:off' is specified as part of its "automatic"
parameters on the kernel command line.
Feel free to use any boolean value: yes/no, true/false, on/off.
The default behaviour is "yes".
- New udev control logic imported from make-initrd scripts.
- Udev-trigger replaced to udev-settle() in hardware wait loops.
- All udev control code moved from init.c to new udev.c module.
- Lazy initialization mode support added for work in cooperate
with make-initrd: this is experimental future, turned off by
default, and also required patched make-initrd-propagator.
- disk.c, cdrom.c: 15 attempts with udev-settle() calls.
- network.c: bridge up algorithm reviewed, fixed memory leaks.
- network.c: 15 attempts to select and wait network interface;
- probing.c, probing.h, dhcp.c: small fixes, now black list used.
- modules_descr.h, stage1.c: deprecated header, unused code removed.
- dhcp.c: fix potentially destructive typo (closes: #34322),
thanks to Arseny Maslennikov <arseny@altlinux.org>.
- Workaround race conditions during disks detection (closes: #30315).
- Workaround race conditions during bridging up network interfaces,
see: https://bugzilla.altlinux.org/show_bug.cgi?id=34347 and
https://lists.altlinux.org/pipermail/sysadmins/2018-April/date.html
(about "No network Devices found" error message).
- Multiple small code improvements, fixes for avoid memory leaks
and suppress compiler warnings.
This change also suppress a compiler warning:
network.c:307:18: warning: '%d' directive writing between
1 and 11 bytes into a region of size 3 [-Wformat-overflow=]
- New udev control logic imported from make-initrd scripts;
- Udev-trigger replaced to udev-settle() in hardware wait loops;
- All udev control code moved from init.c to new udev.c module;
- Lazy initialization mode support added for work in cooperate
with make-initrd: this is experimental future, turned off by
default, and also required patched make-initrd-propagator;
- Small fixes for suppress compiler warnings;
+ network.c/interface_select():
- "No network device found." message moved to intf_select_and_up();
- This function now is only one attempt with udev-settle() call;
- Fixed memory leaks;
+ network.c/intf_select_and_up():
- "No network device found." error messege now here;
- 15 attempts to select and wait network interface;
- Recursion replaced to loop;
+ probing.h/free_net_devices():
- New function declared;
+ probing.c/free_net_devices():
- Reverse for get_net_devices() to avoid memory leaks;
+ probing.c/net_dev_black_list:
- Wireless interfaces "wlan*" added to black list;
+ dhcp.c/perform_dhcp():
- No more restrict by interface name;
- probing.c: added support for MMC devices when boot in LiveCD-mode
(by Leonid Krivoshein).
- cdrom.c: fixed implicit declaration of function opendir warning
(by Leonid Krivoshein).
- disk.c: Workaround race conditions during disks detection
(closes: #30315).
- cdrom.c, network.c, tools.c: Fix memory leaks.
- tools.c: Don't do useless comparisons during cmdline processing.
- Use ramdisk_size from kernel cmdline.
- Check that RAM size is enough for ramdisk.