Browse Source

git init

master
crims0n 4 years ago
commit
63e8d82d21
  1. 1
      .build_dir
  2. 73
      autoinstall
  3. 6
      docker/01-runme.sh
  4. 5
      docker/02-build.sh
  5. 68
      docker/Dockerfile.py
  6. 73
      install
  7. 341
      linux-live/DOC/GNU_GPL
  8. 13
      linux-live/DOC/LICENSE
  9. 5
      linux-live/DOC/boot_parameters.txt
  10. 31
      linux-live/DOC/bundle.txt
  11. 2
      linux-live/DOC/sources.txt
  12. 14
      linux-live/DOC/supported_fs.txt
  13. 18
      linux-live/DOC/terminology.txt
  14. 59
      linux-live/README
  15. 54
      linux-live/aptsources/bionic.list
  16. 5
      linux-live/aptsources/buster.list
  17. 54
      linux-live/aptsources/focal.list
  18. 54
      linux-live/aptsources/groovy.list
  19. 54
      linux-live/aptsources/sources.list
  20. 54
      linux-live/aptsources/trusty.list
  21. 54
      linux-live/aptsources/xenial.list
  22. 16
      linux-live/basesystem/01-casper/install
  23. 17
      linux-live/basesystem/01-casper/package.list
  24. 14
      linux-live/basesystem/01-casper/rootcopy/etc/casper.conf
  25. 2
      linux-live/basesystem/01-casper/rootcopy/etc/issue
  26. 1
      linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/helpers.rc
  27. 15
      linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/panel/launcher-19/16093657651.desktop
  28. 16
      linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/panel/launcher-23/16093659533.desktop
  29. 14
      linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/panel/launcher-24/16093659584.desktop
  30. 68
      linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/panel/whiskermenu-1.rc
  31. 123
      linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
  32. 1
      linux-live/basesystem/01-casper/rootcopy/etc/timezone
  33. 140
      linux-live/basesystem/01-casper/rootcopy/root/.bashrc
  34. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/backgrounds/MiniOS.png
  35. 149
      linux-live/basesystem/01-casper/rootcopy/usr/share/pixmaps/MiniOS-white.svg
  36. 1
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/default.plymouth
  37. 4
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/details/details.plymouth
  38. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/fsck-fade.png
  39. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/fsck-fade_16bit.png
  40. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/logo.png
  41. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/logo_16bit.png
  42. 8
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/minios-logo.plymouth
  43. 512
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/minios-logo.script
  44. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/passw-dialog.png
  45. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/progress-fade.png
  46. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/progress-fade_16bit.png
  47. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/progress-meter.png
  48. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/progress-meter_16bit.png
  49. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/spinner.png
  50. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/test.png
  51. BIN
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/wallpaper.png
  52. 11
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-text/minios-text.plymouth
  53. 1
      linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/text.plymouth
  54. 16
      linux-live/basesystem/01-core/install
  55. 41
      linux-live/basesystem/01-core/package.list
  56. 103
      linux-live/basesystem/01-core/postinstall
  57. 3
      linux-live/basesystem/01-core/rootcopy/etc/adjtime
  58. 3
      linux-live/basesystem/01-core/rootcopy/etc/apt/apt.conf.d/000Slax
  59. 5
      linux-live/basesystem/01-core/rootcopy/etc/apt/sources.list
  60. 1
      linux-live/basesystem/01-core/rootcopy/etc/hostname
  61. 7
      linux-live/basesystem/01-core/rootcopy/etc/hosts
  62. 31
      linux-live/basesystem/01-core/rootcopy/etc/issue
  63. 1
      linux-live/basesystem/01-core/rootcopy/etc/localtime
  64. 1
      linux-live/basesystem/01-core/rootcopy/etc/motd
  65. 34
      linux-live/basesystem/01-core/rootcopy/etc/profile
  66. 2
      linux-live/basesystem/01-core/rootcopy/etc/ssh/sshd_config.d/90-minios.conf
  67. 1
      linux-live/basesystem/01-core/rootcopy/etc/systemd/system/multi-user.target.wants/dhclient.service
  68. 1
      linux-live/basesystem/01-core/rootcopy/etc/timezone
  69. 140
      linux-live/basesystem/01-core/rootcopy/root/.bashrc
  70. 58
      linux-live/basesystem/01-core/rootcopy/usr/bin/dir2sb
  71. 80
      linux-live/basesystem/01-core/rootcopy/usr/bin/genminiosiso
  72. 86
      linux-live/basesystem/01-core/rootcopy/usr/bin/pxe
  73. 17
      linux-live/basesystem/01-core/rootcopy/usr/bin/rmsbdir
  74. 46
      linux-live/basesystem/01-core/rootcopy/usr/bin/savechanges
  75. 29
      linux-live/basesystem/01-core/rootcopy/usr/bin/sb
  76. 33
      linux-live/basesystem/01-core/rootcopy/usr/bin/sb2dir
  77. 178
      linux-live/basesystem/01-core/rootcopy/usr/bin/slax
  78. 11
      linux-live/basesystem/01-core/rootcopy/usr/bin/sudo
  79. 38
      linux-live/basesystem/01-core/rootcopy/usr/lib/systemd/system/apparmor.service
  80. 16
      linux-live/basesystem/01-core/rootcopy/usr/lib/systemd/system/dhclient.service
  81. 54
      linux-live/basesystem/01-core/rootcopy/usr/lib/systemd/system/getty@.service
  82. 18
      linux-live/basesystem/01-core/rootcopy/usr/lib/systemd/system/ssh.service
  83. 2
      linux-live/basesystem/01-core/rootcopy/usr/lib/udev/rules.d/90-slax-automount.rules
  84. 23
      linux-live/basesystem/01-core/rootcopy/usr/sbin/gtk-bookmarks-update
  85. 67
      linux-live/basesystem/01-core/rootcopy/usr/sbin/slax-automount
  86. BIN
      linux-live/bootfiles/boot/EFI/Boot/bootx64.efi
  87. BIN
      linux-live/bootfiles/boot/EFI/Boot/ldlinux.e64
  88. BIN
      linux-live/bootfiles/boot/EFI/Boot/libcom32.c32
  89. BIN
      linux-live/bootfiles/boot/EFI/Boot/libutil.c32
  90. BIN
      linux-live/bootfiles/boot/EFI/Boot/menu.c32
  91. 42
      linux-live/bootfiles/boot/EFI/Boot/syslinux.cfg
  92. BIN
      linux-live/bootfiles/boot/EFI/Boot/syslinux.efi
  93. BIN
      linux-live/bootfiles/boot/EFI/Boot/vesamenu.c32
  94. 106
      linux-live/bootfiles/boot/bootinst.bat
  95. 158
      linux-live/bootfiles/boot/bootinst.sh
  96. BIN
      linux-live/bootfiles/boot/bootlogo-hd.png
  97. BIN
      linux-live/bootfiles/boot/bootlogo.png
  98. BIN
      linux-live/bootfiles/boot/extlinux.x32
  99. BIN
      linux-live/bootfiles/boot/extlinux.x64
  100. 19
      linux-live/bootfiles/boot/help.txt

1
.build_dir

@ -0,0 +1 @@
/build/focal

73
autoinstall

@ -0,0 +1,73 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
PARENT_DIR="$(dirname "$SCRIPT_DIR")"
ISO_DIR="$(dirname "$SCRIPT_DIR")"/iso
set +u
if [ -z $OUTPUT ]; then
. $SCRIPT_DIR/linux-live/buildconfig || exit 1
fi
set -u
. $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1
# don't change! use ./install instead
UNATTENDED="1"
CMD=(setup_host build_bootstrap build_chroot build_live build_modules_chroot build_modules_live build_iso)
# ============= main ================
BUILD_DIR=""
common_variables
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then
new_run
fi
console_colours
allow_root_only
create_livekitname_install_symlink
create_completion
create_backup
# check number of args
if [[ $# == 0 || $# > 3 ]]; then help; fi
# loop through args
dash_flag=false
start_index=0
end_index=${#CMD[*]}
for ii in "$@"; do
if [[ $ii == "-" ]]; then
dash_flag=true
continue
fi
find_index $ii
if [[ $dash_flag == false ]]; then
start_index=$index
else
end_index=$(($index + 1))
fi
done
if [[ $dash_flag == false ]]; then
end_index=$(($start_index + 1))
fi
#loop through the commands
for ((ii = $start_index; ii < $end_index; ii++)); do
setup_build_dir
${CMD[ii]}
done
echo -e "${BOLD}${LIGHTYELLOW}$0${ENDCOLOUR} - ${LIGHTGREEN}Command completed successfully!${ENDCOLOUR}"

6
docker/01-runme.sh

@ -0,0 +1,6 @@
#!/bin/bash
# Several packages need to be installed to use Dockerfile.py
# It creates a local container that you can use to build minios-live
apt install python3-pip
pip3 install pydocker
python3 ./Dockerfile.py

5
docker/02-build.sh

@ -0,0 +1,5 @@
#!/bin/bash
#docker run -d --name mlc --privileged -v /build:/build local/mlc /build/slax/autoinstall -
docker run --rm -it --privileged -v /build:/build local/mlc /build/slax/autoinstall build_modules_chroot -
#docker run -it --name mlc --privileged -v /build:/build local/mlc
#docker run -d --name mlc --privileged -v /build:/build local/mlc

68
docker/Dockerfile.py

@ -0,0 +1,68 @@
#!/usr/bin/python3
# Dockerfile.py
import sys
import logging
import pydocker # github.com/jen-soft/pydocker
logging.getLogger('').setLevel(logging.INFO)
logging.root.addHandler(logging.StreamHandler(sys.stdout))
class DockerFile(pydocker.DockerFile):
""" add here your custom features """
#d = DockerFile(base_img='ubuntu:focal', name='crims0n/minios-live-container:latest')
d = DockerFile(base_img='ubuntu:focal', name='local/mlc:latest')
d.RUN_bash_script('/opt/install.sh', r'''
touch /.minios-live-container
apt-get update -y
apt-get install -y wget sudo debootstrap xorriso genisoimage binutils squashfs-tools grub-pc-bin grub-efi-amd64-bin dosfstools mtools xz-utils liblz4-tool zstd
: 'apt-get install -y patch
cd /opt/
wget -c http://ru.archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.123ubuntu2_all.deb
dpkg -i /opt/debootstrap_1.0.123ubuntu2_all.deb
rm -f /opt/debootstrap_1.0.123ubuntu2_all.deb
cat <<'EOF' >/usr/share/debootstrap/functions.diff
--- functions 2020-10-23 20:42:16.000000000 +0300
+++ functions.new 2021-01-16 23:22:25.612064306 +0300
@@ -1176,7 +1176,9 @@
umount_on_exit /dev/shm
umount_on_exit /proc
umount_on_exit /proc/bus/usb
- umount "$TARGET/proc" 2>/dev/null || true
+ if [ ! -h "$TARGET/proc" ]; then
+ umount "$TARGET/proc" 2>/dev/null || true
+ fi
# some container environment are used at second-stage, it already treats /proc and so on
if [ -z "$(ls -A "$TARGET/proc")" ]; then
EOF
cd /usr/share/debootstrap/
patch </usr/share/debootstrap/functions.diff '
apt-get clean
find /var/log/ -type f | xargs rm -f
rm -f /var/backups/*
rm -f /var/cache/ldconfig/*
rm -f /var/cache/debconf/*
rm -f /var/cache/fontconfig/*
rm -f /var/cache/apt/archives/*.deb
rm -f /var/cache/apt/*.bin
rm -f /var/cache/debconf/*-old
rm -f /var/lib/apt/extended_states
rm -f /var/lib/apt/lists/*Packages*
rm -f /var/lib/apt/lists/*Translation*
rm -f /var/lib/apt/lists/*InRelease
rm -f /var/lib/apt/lists/deb.*
rm -f /var/lib/dpkg/*-old
''')
d.VOLUME = '/build'
d.WORKDIR = '/build/minios-live'
# d.ENTRYPOINT = ["/opt/www-data/entrypoint.sh"]
d.CMD = ["/build/minios-live/autoinstall", "-"]
d.build_img()

73
install

@ -0,0 +1,73 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
PARENT_DIR="$(dirname "$SCRIPT_DIR")"
ISO_DIR="$(dirname "$SCRIPT_DIR")"/iso
set +u
if [ -z $OUTPUT ]; then
. $SCRIPT_DIR/linux-live/buildconfig || exit 1
fi
set -u
. $SCRIPT_DIR/linux-live/minioslib || exit 1
. $SCRIPT_DIR/linux-live/config || exit 1
# don't change! use ./autoinstall instead
UNATTENDED="0"
CMD=(setup_host build_bootstrap build_chroot build_live build_modules_chroot build_modules_live build_iso)
# ============= main ================
BUILD_DIR=""
common_variables
if [ -f /.dockerenv ] || [ "$container" = "podman" ]; then
new_run
fi
console_colours
allow_root_only
create_livekitname_install_symlink
create_completion
create_backup
# check number of args
if [[ $# == 0 || $# > 3 ]]; then help; fi
# loop through args
dash_flag=false
start_index=0
end_index=${#CMD[*]}
for ii in "$@"; do
if [[ $ii == "-" ]]; then
dash_flag=true
continue
fi
find_index $ii
if [[ $dash_flag == false ]]; then
start_index=$index
else
end_index=$(($index + 1))
fi
done
if [[ $dash_flag == false ]]; then
end_index=$(($start_index + 1))
fi
#loop through the commands
for ((ii = $start_index; ii < $end_index; ii++)); do
setup_build_dir
${CMD[ii]}
done
echo -e "${BOLD}${LIGHTYELLOW}$0${ENDCOLOUR} - ${LIGHTGREEN}Command completed successfully!${ENDCOLOUR}"

341
linux-live/DOC/GNU_GPL

@ -0,0 +1,341 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

13
linux-live/DOC/LICENSE

@ -0,0 +1,13 @@
License:
This software is released under GNU GENERAL PUBLIC LICENSE.
Warranty:
This software is distributed with NO WARRANTY, use it at your own risk.
Author:
This software is written by
Tomas M. <http://www.linux-live.org>

5
linux-live/DOC/boot_parameters.txt

@ -0,0 +1,5 @@
You can pass the following boot parameters:
debug ... start shell prompt several times during live kit startup
from=... load data from given directory (search all drives for it)

31
linux-live/DOC/bundle.txt

@ -0,0 +1,31 @@
Bundle
------
A bundle is compressed squashfs filesystem, consisting of up-to-the-root
directory structure. Old name for bundle is 'module'. Bundle format
brings some new enhancements over the old modules.
File extension for bundles may vary. Currently Slax uses .sb extension,
where 'sb' means 'slax bundle'.
How to create bundle:
# mksquashfs bundle_rootfs wholefs.sb -comp xz -bs 512k
or
# mksquashfs /usr /usr.sb --keep-as-directory -comp xz -bs 512k
or use function in livekitlib:
# . livekitlib; make_bundle bundle_rootfs wholefs.sb
Special files in bundle filesystem structure:
/run/requires
/run/activate.sh
/run/deactivate.sh
/run/startcmd.sh ?

2
linux-live/DOC/sources.txt

@ -0,0 +1,2 @@
Source code for precompiled binaries (initramfs/static/*) can be found at
http://ftp.slax.org/Slax-7.x-development/sources/Slax-7.0-sources/busybox-and-ntfs3g/

14
linux-live/DOC/supported_fs.txt

@ -0,0 +1,14 @@
Supported filesystems
---------------------
The Live distro created by Linux Live Kit can be installed
on the following filesystems:
* iso9660 (CD) ..... using isolinux
* FAT32 (vfat) ..... using syslinux or extlinux
* ntfs ............. using syslinux or extlinux
* ext2/3/4,btrfs ... using extlinux
* any other fs ..... using lilo
Most users will install on FAT32 for compatibility
with the other operating systems (I mean Windows).

18
linux-live/DOC/terminology.txt

@ -0,0 +1,18 @@
Live Kit
--------
* also known as Linux Live Kit. Formely known as Linux Live CD. Nowadays,
people mostly use USB flash drives, cameras, and other devices to run
such 'Live' linuxes, thus Live CD is no longer ideal name for it.
Meaning of Kit is like a tool, toolkit, or such. Which (I believe) corresponds
with the usage of such Live Linux distribution much better.
Bundles
-------
* compressed squashfs images with some specialities
Read ./bundle.txt for more.

59
linux-live/README

@ -0,0 +1,59 @@
Linux Live Kit
==============
Use this set of scripts to turn your existing preinstalled Linux
distribution into a Live Kit (formely known as Live CD).
Make sure to extract and use it on a posix-compatible filesystem,
since it creates some (sym)links and such.
Note:
* Store Linux Live kit in a directory which is not going to be included
in your live distro, else it would be copied to it. Best practice is to
make a directory such as /a and put these scripts there.
Be warned, if you put it to /tmp, some distros may erase it on reboot.
* Before you start building your Kit, edit the file ./config
Most importantly change the LIVEKITNAME variable.
* Make sure your kernel is in /boot/vmlinuz or change the path in ./config
Your kernel must support squashfs. Your kernel must also support either
aufs or overlayfs or both. AUFS is recommended for more flexibility,
but if your distro does not support it, overlayfs will work too.
* You may also wish to replace boot graphics in ./bootfiles/bootlogo.png
(one options is to modify and run the ./tools/bootlogo.update script)
and reorganize isolinux.cfg to fit your needs (when editing the file,
keep all paths in /boot/, it will be rellocated during LiveKit creation)
* Linux Live Kit comes with precompiled static binaries in ./initramfs
directory. Those may be outdated but will work. You may replace them
by your own statically linked binaries, if you know how to compile them.
* If you plan to boot your Live Kit from CD, you need to recompile
syslinux.bin else it won't be able to boot your Live Kit from directory
LIVEKITNAME. There is a script prepared for you which will handle all
of that. Simply go to directory ./tools/ and run isolinux.bin.update ...
it will update ./bootfiles/isolinux.bin automatically by downloading
isolinux sources, patching them using your actual LIVEKITNAME and
recompiling. This step is not needed if you plan to boot from USB only.
* If you have tmpfs mounted on /tmp, make sure you have enough RAM
since LiveKit will store lots of data there. If you are low on RAM,
make sure /tmp is a regular on-disk directory.
* When done, run the ./build script to create your Live Kit
- it will create ISO and TAR files for you in /tmp
- make sure you have enough free space in /tmp to handle it
* If you want to use the Live Kit on a USB you have to either
- use Windows to execute the bootinst.bat file in the $NAME/boot folder
- or use Linux to execute the shellscript bootinst.sh in the $NAME/boot folder.
* You will need the following packages to be installed:
- squashfs-tools
- genisoimage or mkisofs
- zip
Author: Tomas M. <http://www.linux-live.org>

54
linux-live/aptsources/bionic.list

@ -0,0 +1,54 @@
# deb http://ru.archive.ubuntu.com/ubuntu/ bionic main restricted
# deb http://ru.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb http://security.ubuntu.com/ubuntu bionic-security main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ bionic main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ bionic universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic universe
deb http://ru.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ru.archive.ubuntu.com/ubuntu/ bionic multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse

5
linux-live/aptsources/buster.list

@ -0,0 +1,5 @@
deb http://deb.debian.org/debian/ buster main contrib non-free
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free

54
linux-live/aptsources/focal.list

@ -0,0 +1,54 @@
# deb http://ru.archive.ubuntu.com/ubuntu/ focal main restricted
# deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted
# deb http://security.ubuntu.com/ubuntu focal-security main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ focal main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ focal main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ focal universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ focal universe
deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ru.archive.ubuntu.com/ubuntu/ focal multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ focal-updates multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner
deb http://security.ubuntu.com/ubuntu focal-security main restricted
# deb-src http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://security.ubuntu.com/ubuntu focal-security universe
# deb-src http://security.ubuntu.com/ubuntu focal-security universe
deb http://security.ubuntu.com/ubuntu focal-security multiverse
# deb-src http://security.ubuntu.com/ubuntu focal-security multiverse

54
linux-live/aptsources/groovy.list

@ -0,0 +1,54 @@
# deb http://ru.archive.ubuntu.com/ubuntu/ groovy main restricted
# deb http://ru.archive.ubuntu.com/ubuntu/ groovy-updates main restricted
# deb http://security.ubuntu.com/ubuntu groovy-security main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ groovy main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ groovy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ groovy-updates main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ groovy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ groovy universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ groovy universe
deb http://ru.archive.ubuntu.com/ubuntu/ groovy-updates universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ groovy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ru.archive.ubuntu.com/ubuntu/ groovy multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ groovy multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ groovy-updates multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ groovy-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ groovy-backports main restricted universe multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ groovy-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu groovy partner
# deb-src http://archive.canonical.com/ubuntu groovy partner
deb http://security.ubuntu.com/ubuntu groovy-security main restricted
# deb-src http://security.ubuntu.com/ubuntu groovy-security main restricted
deb http://security.ubuntu.com/ubuntu groovy-security universe
# deb-src http://security.ubuntu.com/ubuntu groovy-security universe
deb http://security.ubuntu.com/ubuntu groovy-security multiverse
# deb-src http://security.ubuntu.com/ubuntu groovy-security multiverse

54
linux-live/aptsources/sources.list

@ -0,0 +1,54 @@
# deb http://ru.archive.ubuntu.com/ubuntu/ distro main restricted
# deb http://ru.archive.ubuntu.com/ubuntu/ distro-updates main restricted
# deb http://security.ubuntu.com/ubuntu distro-security main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ distro main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ distro main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ distro-updates main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ distro-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ distro universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ distro universe
deb http://ru.archive.ubuntu.com/ubuntu/ distro-updates universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ distro-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ru.archive.ubuntu.com/ubuntu/ distro multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ distro multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ distro-updates multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ distro-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ distro-backports main restricted universe multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ distro-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu distro partner
# deb-src http://archive.canonical.com/ubuntu distro partner
deb http://security.ubuntu.com/ubuntu distro-security main restricted
# deb-src http://security.ubuntu.com/ubuntu distro-security main restricted
deb http://security.ubuntu.com/ubuntu distro-security universe
# deb-src http://security.ubuntu.com/ubuntu distro-security universe
deb http://security.ubuntu.com/ubuntu distro-security multiverse
# deb-src http://security.ubuntu.com/ubuntu distro-security multiverse

54
linux-live/aptsources/trusty.list

@ -0,0 +1,54 @@
# deb http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted
# deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
# deb http://security.ubuntu.com/ubuntu trusty-security main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty universe
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu trusty partner
# deb-src http://archive.canonical.com/ubuntu trusty partner
deb http://security.ubuntu.com/ubuntu trusty-security main restricted
# deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
deb http://security.ubuntu.com/ubuntu trusty-security universe
# deb-src http://security.ubuntu.com/ubuntu trusty-security universe
deb http://security.ubuntu.com/ubuntu trusty-security multiverse
# deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse

54
linux-live/aptsources/xenial.list

@ -0,0 +1,54 @@
# deb http://ru.archive.ubuntu.com/ubuntu/ xenial main restricted
# deb http://ru.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
# deb http://security.ubuntu.com/ubuntu xenial-security main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ xenial main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ xenial main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
# deb-src http://ru.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ xenial universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ xenial universe
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-updates universe
# deb-src http://ru.archive.ubuntu.com/ubuntu/ xenial-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ru.archive.ubuntu.com/ubuntu/ xenial multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ xenial multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src http://ru.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu xenial partner
# deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://security.ubuntu.com/ubuntu xenial-security main restricted
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
deb http://security.ubuntu.com/ubuntu xenial-security universe
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe
deb http://security.ubuntu.com/ubuntu xenial-security multiverse
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

16
linux-live/basesystem/01-casper/install

@ -0,0 +1,16 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi

17
linux-live/basesystem/01-casper/package.list

@ -0,0 +1,17 @@
# since we work without modules, we install everything in one file
# main
casper
lupin-casper
discover
laptop-detect
os-prober
network-manager
net-tools
wireless-tools
# gui
xubuntu-core^
ubiquity
ubiquity-casper
ubiquity-frontend-gtk
ubiquity-slideshow-xubuntu
ubiquity-ubuntu-artwork

14
linux-live/basesystem/01-casper/rootcopy/etc/casper.conf

@ -0,0 +1,14 @@
# This file should go in /etc/casper.conf
# Supported variables are:
# USERNAME, USERFULLNAME, HOST, BUILD_SYSTEM, FLAVOUR
export USERNAME="live"
export USERFULLNAME="Live session user"
export HOST="minios"
export BUILD_SYSTEM="Ubuntu"
# USERNAME and HOSTNAME as specified above won't be honoured and will be set to
# flavour string acquired at boot time, unless you set FLAVOUR to any
# non-empty string.
# export FLAVOUR="Ubuntu"

2
linux-live/basesystem/01-casper/rootcopy/etc/issue

@ -0,0 +1,2 @@
Welcome to MiniOS! \n \l

1
linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/helpers.rc

@ -0,0 +1 @@
WebBrowser=google-chrome

15
linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/panel/launcher-19/16093657651.desktop

@ -0,0 +1,15 @@
[Desktop Entry]
Version=1.0
Type=Application
Exec=exo-open --launch FileManager %u
Icon=system-file-manager
StartupNotify=true
Terminal=false
Categories=Utility;X-XFCE;X-Xfce-Toplevel;
OnlyShowIn=XFCE;
X-XFCE-MimeType=inode/directory;x-scheme-handler/trash;
Name=File Manager
Name[ru]=Файловый менеджер
Comment=Browse the file system
Comment[ru]=Просмотреть файловую систему
X-XFCE-Source=file:///usr/share/applications/exo-file-manager.desktop

16
linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/panel/launcher-23/16093659533.desktop

@ -0,0 +1,16 @@
[Desktop Entry]
Version=1.0
Type=Application
Exec=exo-open --launch WebBrowser %u
Icon=web-browser
StartupNotify=true
Terminal=false
Categories=Network;X-XFCE;X-Xfce-Toplevel;
OnlyShowIn=XFCE;
X-XFCE-MimeType=x-scheme-handler/http;x-scheme-handler/https;
Name=Web Browser
Name[ru]=Веб-браузер
Comment=Browse the web
Comment[ru]=Смотреть в Интернете
X-XFCE-Source=file:///usr/share/applications/exo-web-browser.desktop
Path=

14
linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/panel/launcher-24/16093659584.desktop

@ -0,0 +1,14 @@
[Desktop Entry]
Version=1.0
Type=Application
Exec=exo-open --launch TerminalEmulator
Icon=utilities-terminal
StartupNotify=true
Terminal=false
Categories=Utility;X-XFCE;X-Xfce-Toplevel;
OnlyShowIn=XFCE;
Name=Terminal Emulator
Name[ru]=Эмулятор терминала
Comment=Use the command line
Comment[ru]=Использовать командную строку
X-XFCE-Source=file:///usr/share/applications/exo-terminal-emulator.desktop

68
linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/panel/whiskermenu-1.rc

@ -0,0 +1,68 @@
favorites=ubiquity.desktop
recent=
button-title=Applications Menu
button-icon=MiniOS-white
button-single-row=false
show-button-title=false
show-button-icon=true
launcher-show-name=true
launcher-show-description=false
launcher-show-tooltip=true
item-icon-size=2
hover-switch-category=false
category-show-name=true
category-icon-size=1
load-hierarchy=true
recent-items-max=10
favorites-in-recent=true
display-recent-default=false
position-search-alternate=true
position-commands-alternate=false
position-categories-alternate=false
menu-width=400
menu-height=500
menu-opacity=100
command-settings=xfce4-settings-manager
show-command-settings=true
command-lockscreen=xflock4
show-command-lockscreen=true
command-switchuser=dm-tool switch-to-greeter
show-command-switchuser=false
command-logout=xfce4-session-logout
show-command-logout=true
command-menueditor=menulibre
show-command-menueditor=true
command-profile=mugshot
show-command-profile=true
search-actions=5
[action0]
name=Man-страницы
pattern=#
command=exo-open --launch TerminalEmulator man %s
regex=false
[action1]
name=Web-поиск
pattern=?
command=exo-open --launch WebBrowser https://duckduckgo.com/?q=%u
regex=false
[action2]
name=Википедия
pattern=!w
command=exo-open --launch WebBrowser https://en.wikipedia.org/wiki/%u
regex=false
[action3]
name=Выполнить в терминале
pattern=!
command=exo-open --launch TerminalEmulator %s
regex=false
[action4]
name=Открыть URI
pattern=^(file|http|https):\\/\\/(.*)$
command=exo-open \\0
regex=true

123
linux-live/basesystem/01-casper/rootcopy/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-panel" version="1.0">
<property name="panels" type="uint" value="1">
<property name="panel-0" type="empty">
<property name="position" type="string" value="p=8;x=1109;y=1275"/>
<property name="length" type="uint" value="100"/>
<property name="position-locked" type="bool" value="true"/>
<property name="plugin-ids" type="array">
<value type="int" value="1"/>
<value type="int" value="21"/>
<value type="int" value="23"/>
<value type="int" value="19"/>
<value type="int" value="24"/>
<value type="int" value="22"/>
<value type="int" value="2"/>
<value type="int" value="3"/>
<value type="int" value="5"/>
<value type="int" value="4"/>
<value type="int" value="7"/>
<value type="int" value="6"/>
<value type="int" value="9"/>
<value type="int" value="10"/>
<value type="int" value="11"/>
<value type="int" value="12"/>
</property>
<property name="background-style" type="uint" value="0"/>
<property name="background-alpha" type="uint" value="60"/>
<property name="size" type="uint" value="32"/>
<property name="length-adjust" type="bool" value="true"/>
<property name="span-monitors" type="bool" value="false"/>
<property name="enter-opacity" type="uint" value="100"/>
<property name="leave-opacity" type="uint" value="100"/>
<property name="mode" type="uint" value="0"/>
<property name="autohide-behavior" type="uint" value="0"/>
<property name="nrows" type="uint" value="1"/>
</property>
</property>
<property name="plugins" type="empty">
<property name="plugin-1" type="string" value="whiskermenu"/>
<property name="plugin-2" type="string" value="tasklist">
<property name="flat-buttons" type="bool" value="true"/>
<property name="show-handle" type="bool" value="false"/>
<property name="show-labels" type="bool" value="false"/>
</property>
<property name="plugin-3" type="string" value="separator">
<property name="style" type="uint" value="0"/>
<property name="expand" type="bool" value="true"/>
</property>
<property name="plugin-4" type="string" value="systray">
<property name="show-frame" type="bool" value="false"/>
<property name="size-max" type="uint" value="22"/>
<property name="names-visible" type="array">
<value type="string" value="thunar"/>
<value type="string" value="ctsg"/>
</property>
<property name="names-hidden" type="array">
<value type="string" value="network"/>
<value type="string" value="xfce4-power-manager"/>
<value type="string" value="сеть"/>
<value type="string" value="апплет networkmanager"/>
<value type="string" value="networkmanager applet"/>
<value type="string" value="remmina"/>
</property>
</property>
<property name="plugin-9" type="string" value="pulseaudio">
<property name="enable-keyboard-shortcuts" type="bool" value="true"/>
<property name="enable-mpris" type="bool" value="true"/>
<property name="mixer-command" type="string" value="pavucontrol"/>
<property name="mpris-players" type="string" value="parole"/>
<property name="show-notifications" type="bool" value="true"/>
</property>
<property name="plugin-10" type="string" value="separator">
<property name="style" type="uint" value="0"/>
<property name="expand" type="bool" value="false"/>
</property>
<property name="plugin-11" type="string" value="clock">
<property name="digital-format" type="string" value="%d %b, %H:%M"/>
</property>
<property name="plugin-12" type="string" value="showdesktop"/>
<property name="plugin-19" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="16093657651.desktop"/>
</property>
</property>
<property name="plugin-21" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-22" type="string" value="separator">
<property name="style" type="uint" value="0"/>
</property>
<property name="plugin-23" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="16093659533.desktop"/>
</property>
<property name="show-label" type="bool" value="false"/>
<property name="disable-tooltips" type="bool" value="false"/>
</property>
<property name="plugin-24" type="string" value="launcher">
<property name="items" type="array">
<value type="string" value="16093659584.desktop"/>
</property>
</property>
<property name="plugin-5" type="string" value="xkb">
<property name="display-scale" type="uint" value="50"/>
<property name="display-tooltip-icon" type="bool" value="true"/>
<property name="group-policy" type="uint" value="0"/>
<property name="display-type" type="uint" value="2"/>
<property name="display-name" type="uint" value="1"/>
</property>
<property name="plugin-7" type="string" value="statusnotifier">
<property name="known-items" type="array">
<value type="string" value="ctsg"/>
<value type="string" value="remmina-icon"/>
<value type="string" value="nm-applet"/>
</property>
<property name="hidden-items" type="array">
</property>
</property>
<property name="plugin-6" type="string" value="power-manager-plugin"/>
</property>
<property name="configver" type="int" value="2"/>
</channel>

1
linux-live/basesystem/01-casper/rootcopy/etc/timezone

@ -0,0 +1 @@
Europe/Moscow

140
linux-live/basesystem/01-casper/rootcopy/root/.bashrc

@ -0,0 +1,140 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
apt-get()
{
if [ -e /var/cache/apt/pkgcache.bin ]; then
/usr/bin/apt-get "$@"
else
/usr/bin/apt-get update
/usr/bin/apt-get "$@"
fi
}
apt()
{
if [ -e /var/cache/apt/pkgcache.bin ]; then
/usr/bin/apt "$@"
else
/usr/bin/apt update
/usr/bin/apt "$@"
fi
}
export -f apt-get
export -f apt

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/backgrounds/MiniOS.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 KiB

149
linux-live/basesystem/01-casper/rootcopy/usr/share/pixmaps/MiniOS-white.svg

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xml:space="preserve"
width="256"
height="256"
version="1.1"
style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"
viewBox="0 0 256 256"
id="svg345"
sodipodi:docname="MiniOS-wis.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"><metadata
id="metadata349"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1241"
inkscape:window-height="523"
id="namedview347"
showgrid="false"
inkscape:snap-global="false"
inkscape:zoom="0.984375"
inkscape:cx="235.54225"
inkscape:cy="107.04132"
inkscape:window-x="919"
inkscape:window-y="246"
inkscape:window-maximized="0"
inkscape:current-layer="Слой_x0020_1" />
<defs
id="defs292">
<font
id="FontID0"
horiz-adv-x="606"
font-variant="normal"
style="fill-rule:nonzero"
font-weight="700"
horiz-origin-x="0"
horiz-origin-y="0"
vert-origin-x="512"
vert-origin-y="768"
vert-adv-y="1024">
<font-face
font-family="Calibri"
id="font-face273">
<font-face-src>
<font-face-name
name="Calibri Bold" />
</font-face-src>
</font-face>
<missing-glyph
id="missing-glyph277"><path
d="M0 0z"
id="path275" /></missing-glyph>
<glyph
unicode="M"
horiz-adv-x="874"
d="M805.029 17.4996c0,-3.16292 -0.828384,-6.16581 -2.66401,-8.82982 -1.83562,-2.50398 -5.16799,-4.66907 -9.83706,-6.33525 -4.66907,-1.49674 -10.9949,-2.83345 -18.8363,-3.83128 -7.83199,-1.00724 -17.8291,-1.50615 -29.8312,-1.50615 -11.8327,0 -21.6698,0.498913 -29.5018,1.50615 -7.83199,0.997826 -13.9978,2.33454 -18.6669,3.83128 -4.49963,1.66618 -7.83199,3.83128 -9.66762,6.33525 -1.99565,2.66401 -2.99348,5.6669 -2.99348,8.82982l0 514.521 -1.00724 0 -182.508 -514.022c-1.3273,-4.16075 -3.33236,-7.66255 -6.32584,-10.496 -3.00289,-2.83345 -6.83417,-4.99854 -12.0022,-6.66472 -4.99854,-1.50615 -11.5032,-2.67342 -19.1658,-3.17233 -7.84141,-0.498913 -17.3396,-0.668355 -28.3345,-0.668355 -11.1738,0 -20.5025,0.338884 -28.3345,1.16727 -7.84141,0.837797 -14.3367,2.16509 -19.3352,4.00072 -4.99854,1.83562 -8.99926,4.00072 -12.0022,6.5047 -2.83345,2.66401 -4.83852,5.82693 -5.83634,9.32873l-176.173 514.022 -0.997826 0 0 -514.521c0,-3.16292 -0.837797,-6.16581 -2.66401,-8.82982 -1.83562,-2.50398 -5.16799,-4.66907 -10.0065,-6.33525 -4.99854,-1.49674 -11.3338,-2.83345 -18.9963,-3.83128 -7.67196,-1.00724 -17.4996,-1.50615 -29.5018,-1.50615 -11.8327,0 -21.6698,0.498913 -29.5018,1.50615 -7.83199,0.997826 -14.1672,2.33454 -18.8363,3.83128 -4.66907,1.66618 -8.00144,3.83128 -9.82765,6.33525 -1.83562,2.66401 -2.67342,5.6669 -2.67342,8.82982l0 563.188c0,16.6712 4.3396,29.3323 13.1694,38.1716 8.82982,8.82982 20.5025,13.1694 35.3381,13.1694l83.9962 0c15.005,0 28.005,-1.16727 38.6705,-3.67125 10.8349,-2.50398 20.173,-6.5047 28.005,-12.1716 7.66255,-5.6669 14.3273,-13.16 19.4953,-22.4982 5.16799,-9.32873 9.83706,-20.832 13.6683,-34.5003l136.175 -376.51 1.99565 0 141.004 375.682c4.17016,13.6589 8.83923,25.1622 13.8378,34.6603 5.16799,9.33815 11.0043,17.0007 17.6691,22.837 6.66472,5.83634 14.6662,9.99709 23.6654,12.5011 9.1687,2.50398 19.8341,3.67125 31.8363,3.67125l86.6697 0c8.82982,0 16.3323,-1.16727 22.6676,-3.5018 6.33525,-2.16509 11.6633,-5.50687 15.664,-10.0065 4.17016,-4.33019 7.17305,-9.66762 9.33815,-15.9935 2.16509,-6.33525 3.16292,-13.6683 3.16292,-21.8392l0 -563.188z"
id="glyph279" />
<glyph
unicode="O"
horiz-adv-x="676"
d="M637.027 323.343c0,-52.3294 -6.5047,-99.1707 -19.5047,-140.505 -13,-41.3345 -32.3352,-76.5031 -58.1657,-105.167 -25.6705,-28.8334 -57.5068,-50.8326 -95.3395,-66.0071 -38.0021,-15.1651 -81.8406,-22.6676 -131.675,-22.6676 -49.1665,0 -91.9977,6.5047 -128.503,19.3352 -36.6654,12.84 -67.165,32.3352 -91.6682,58.8341 -24.3338,26.3388 -42.6712,59.8413 -54.8334,100.507 -12.1716,40.6661 -18.3374,88.8348 -18.3374,144.506 0,51.0021 6.5047,97.0056 19.5047,137.841 13,40.8356 32.3352,75.4959 58.1657,104.169 25.6705,28.664 57.5068,50.6632 95.3395,65.8377 38.0021,15.3345 82.0006,22.9971 132.174,22.9971 47.8298,0 90.002,-6.33525 126.667,-18.9963 36.5054,-12.6705 67.165,-32.1752 91.6682,-58.6741 24.6727,-26.3294 43.1701,-59.5024 55.6712,-99.6696 12.5011,-40.3366 18.8363,-87.6675 18.8363,-142.341zm-135.008 -6.49528c0,33.1636 -2.66401,63.3337 -7.83199,90.5009 -5.16799,27.1672 -13.9978,50.5032 -26.4989,69.8384 -12.5011,19.3352 -29.1723,34.3309 -50.0043,44.9963 -20.832,10.5054 -46.8413,15.8334 -78.0093,15.8334 -31.4974,0 -57.8268,-5.99637 -78.8283,-17.8291 -21.1709,-11.8327 -38.341,-27.8356 -51.341,-47.6697 -13,-19.8341 -22.1687,-43.0007 -27.4967,-69.4995 -5.33743,-26.6683 -8.00144,-54.6733 -8.00144,-84.3351 0,-34.5097 2.66401,-65.5082 7.83199,-93.0049 5.16799,-27.5061 13.9978,-51.0021 26.3388,-70.6762 12.3316,-19.4953 28.8334,-34.3309 49.6654,-44.6668 20.832,-10.1665 47.0014,-15.3345 78.4988,-15.3345 31.5068,0 57.8363,5.83634 78.8377,17.6691 21.1709,11.6727 38.341,27.6661 51.341,47.8392 13,20.1636 22.1687,43.669 27.4967,70.4974 5.33743,26.8378 8.00144,55.5017 8.00144,85.8413z"
id="glyph281" />
<glyph
unicode="S"
horiz-adv-x="472"
d="M444.014 189.672c0,-33.333 -6.16581,-62.3359 -18.4974,-87.498 -12.5011,-25.0021 -29.1723,-45.8341 -50.3337,-62.6748 -21.3403,-16.6618 -46.0035,-29.3323 -74.338,-37.8327 -28.3345,-8.50035 -58.6646,-12.6705 -90.9999,-12.6705 -21.8392,0 -42.0028,1.83562 -60.8391,5.50687 -18.6669,3.66183 -35.1687,8.00144 -49.5054,13.16 -14.3273,5.00796 -26.3294,10.336 -35.997,16.0029 -9.66762,5.6669 -16.5018,10.6654 -20.832,14.8356 -4.17016,4.33019 -7.17305,10.5054 -8.99926,18.4974 -1.83562,8.00144 -2.67342,19.3352 -2.67342,34.3403 0,10.1665 0.338884,18.4974 1.00724,25.3316 0.658942,6.83417 1.66618,12.3316 3.16292,16.6712 1.49674,4.16075 3.5018,7.16364 5.83634,8.99926 2.49457,1.83562 5.32801,2.66401 8.66038,2.66401 4.49963,0 11.0043,-2.66401 19.3352,-8.17088 8.34032,-5.32801 19.0058,-11.3338 32.0057,-17.8291 13,-6.5047 28.664,-12.5011 46.8319,-17.8385 17.9985,-5.49746 38.9999,-8.16146 62.8348,-8.16146 15.6734,0 29.6712,1.83562 42.0028,5.49746 12.5011,3.83128 22.9971,8.99926 31.6669,15.8334 8.66979,6.83417 15.1651,15.1651 19.8341,25.1716 4.49963,9.99709 6.83417,21.1614 6.83417,33.5025 0,14.3273 -3.83128,26.6683 -11.6633,36.8348 -7.83199,10.3266 -18.0079,19.3352 -30.669,27.3273 -12.5011,8.00144 -26.8378,15.504 -42.8406,22.5076 -15.8334,6.9942 -32.3352,14.3273 -49.3359,22.1687 -17.0007,7.83199 -33.4931,16.6618 -49.3265,26.6589 -16.0029,9.83706 -30.3396,21.6698 -42.8406,35.5075 -12.6611,13.8284 -22.837,30.1701 -30.669,49.1665 -7.83199,18.8363 -11.6633,41.5039 -11.6633,67.8333 0,30.1701 5.6669,56.8384 16.8313,79.8355 11.1644,22.837 26.3388,41.8428 45.3352,57.0079 19.1658,15.1651 41.5039,26.4989 67.3344,34.0014 25.8399,7.50252 53.3366,11.1644 82.3395,11.1644 14.8356,0 29.8312,-1.16727 44.8363,-3.5018 14.9956,-2.16509 29.0028,-5.32801 42.0028,-9.1687 13,-3.9913 24.4938,-8.33091 34.6697,-13.16 9.99709,-4.99854 16.6618,-8.99926 19.9942,-12.341 3.17233,-3.16292 5.33743,-5.99637 6.5047,-8.16146 1.16727,-2.33454 2.16509,-5.33743 2.99348,-9.1687 0.837797,-3.66183 1.33671,-8.33091 1.67559,-14.1672 0.329471,-5.6669 0.498913,-12.6705 0.498913,-21.1709 0,-9.32873 -0.169442,-17.3302 -0.668355,-23.8349 -0.498913,-6.49528 -1.33671,-11.8327 -2.50398,-16.1629 -1.16727,-4.17016 -2.83345,-7.33308 -4.8291,-9.1687 -2.16509,-1.99565 -4.99854,-2.99348 -8.66979,-2.99348 -3.5018,0 -9.1687,2.32512 -17.0007,6.82475 -7.83199,4.49963 -17.4996,9.50759 -28.8334,15.005 -11.5032,5.33743 -24.6727,10.1665 -39.6683,14.4967 -15.005,4.49963 -31.3374,6.67414 -49.3359,6.67414 -13.9978,0 -26.1694,-1.66618 -36.6654,-5.16799 -10.336,-3.33236 -19.0058,-8.17088 -26,-14.1672 -7.00361,-6.00578 -12.341,-13.1694 -15.6734,-21.6698 -3.5018,-8.50035 -5.16799,-17.4996 -5.16799,-26.8378 0,-13.9978 3.84069,-26.16 11.5032,-36.3359 7.67196,-10.3266 17.9985,-19.4953 30.8385,-27.4967 12.8305,-7.83199 27.4967,-15.3345 43.829,-22.3381 16.1723,-6.9942 32.8341,-14.4967 49.8348,-22.1593 17.0007,-7.84141 33.6719,-16.6712 49.8348,-26.6683 16.3418,-10.0065 30.8385,-21.8392 43.669,-35.6676 12.6705,-13.8378 23.0065,-30.0007 30.8385,-48.837 7.83199,-18.6669 11.6633,-40.6661 11.6633,-66.0071z"
id="glyph283" />
<glyph
unicode="i"
horiz-adv-x="245"
d="M185.003 16.5018c0,-3.17233 -0.997826,-6.00578 -2.99348,-8.50035 -1.83562,-2.50398 -5.16799,-4.49963 -10.0065,-6.16581 -4.65966,-1.50615 -10.9949,-2.83345 -18.6669,-3.67125 -7.83199,-0.828384 -17.8291,-1.16727 -29.8312,-1.16727 -12.0022,0 -21.9992,0.338884 -29.8312,1.16727 -7.67196,0.837797 -14.0072,2.16509 -18.6669,3.67125 -4.83852,1.66618 -8.17088,3.66183 -10.0065,6.16581 -1.99565,2.49457 -2.99348,5.32801 -2.99348,8.50035l0 435.015c0,3.17233 0.997826,6.00578 2.99348,8.50035 1.83562,2.50398 5.16799,4.66907 10.0065,6.33525 4.65966,1.83562 10.9949,3.16292 18.6669,4.17016 7.83199,0.997826 17.8291,1.49674 29.8312,1.49674 12.0022,0 21.9992,-0.498913 29.8312,-1.49674 7.67196,-1.00724 14.0072,-2.33454 18.6669,-4.17016 4.83852,-1.66618 8.17088,-3.83128 10.0065,-6.33525 1.99565,-2.49457 2.99348,-5.32801 2.99348,-8.50035l0 -435.015zm10.0065 584.02c0,-24.8327 -4.99854,-41.8334 -15.1651,-51.3316 -10.1665,-9.50759 -28.8428,-14.1672 -56.3395,-14.1672 -27.6661,0 -46.5025,4.49963 -56.0006,13.6683 -9.66762,9.15929 -14.5061,25.6611 -14.5061,49.3359 0,24.8327 5.00796,41.9934 15.005,51.661 9.83706,9.50759 28.664,14.3367 56.4995,14.3367 27.3367,0 46.0035,-4.66907 55.8406,-13.9978 9.82765,-9.1687 14.6662,-25.6705 14.6662,-49.5054z"
id="glyph285" />
<glyph
unicode="n"
horiz-adv-x="536"
d="M478.015 16.5018c0,-3.17233 -0.997826,-6.00578 -2.99348,-8.50035 -1.83562,-2.50398 -5.16799,-4.49963 -9.66762,-6.16581 -4.66907,-1.50615 -11.0043,-2.83345 -19.0058,-3.67125 -8.00144,-0.828384 -17.8291,-1.16727 -29.5018,-1.16727 -12.1622,0 -22.1687,0.338884 -30.1607,1.16727 -8.00144,0.837797 -14.3367,2.16509 -19.0058,3.67125 -4.49963,1.66618 -7.83199,3.66183 -9.66762,6.16581 -1.99565,2.49457 -3.00289,5.32801 -3.00289,8.50035l0 248.506c0,21.1709 -1.49674,37.8421 -4.65966,49.8348 -3.00289,12.1716 -7.50252,22.5076 -13.3389,31.0079 -5.83634,8.66038 -13.4989,15.3345 -22.6676,20.1636 -9.32873,4.66907 -19.9942,7.00361 -32.3352,7.00361 -15.664,0 -31.328,-5.6669 -47.3308,-17.1701 -15.8334,-11.3338 -32.5047,-28.005 -49.6748,-49.6654l0 -289.68c0,-3.17233 -0.997826,-6.00578 -2.99348,-8.50035 -1.83562,-2.50398 -5.16799,-4.49963 -10.0065,-6.16581 -4.65966,-1.50615 -10.9949,-2.83345 -18.6669,-3.67125 -7.83199,-0.828384 -17.8291,-1.16727 -29.8312,-1.16727 -12.0022,0 -21.9992,0.338884 -29.8312,1.16727 -7.67196,0.837797 -14.0072,2.16509 -18.6669,3.67125 -4.83852,1.66618 -8.17088,3.66183 -10.0065,6.16581 -1.99565,2.49457 -2.99348,5.32801 -2.99348,8.50035l0 436.012c0,3.17233 0.828384,6.00578 2.49457,8.50035 1.50615,2.50398 4.49963,4.49963 8.66979,6.16581 4.33019,1.50615 9.66762,2.83345 16.3323,3.67125 6.66472,0.837797 15.1651,1.16727 25.1716,1.16727 10.496,0 18.9963,-0.329471 25.8305,-1.16727 6.83417,-0.837797 12.1716,-2.16509 16.0029,-3.67125 3.66183,-1.66618 6.33525,-3.66183 8.00144,-6.16581 1.66618,-2.49457 2.49457,-5.32801 2.49457,-8.50035l0 -50.3337c24.0043,26 48.5075,45.3352 73.5097,58.3352 24.8327,13 50.8326,19.5047 77.8304,19.5047 29.6712,0 54.6733,-4.83852 75.0064,-14.6662 20.3331,-9.66762 36.6654,-23.0065 49.3359,-39.8377 12.5011,-16.6712 21.5003,-36.3359 26.9978,-58.8341 5.49746,-22.4982 8.33091,-49.5054 8.33091,-81.0028l0 -269.178z"
id="glyph287" />
</font>
<style
type="text/css"
id="style290">
<![CDATA[
@font-face { font-family:"Calibri";font-variant:normal;font-weight:bold;src:url("#FontID0") format(svg)}
.fil7 {fill:#FEFEFE}
.fil5 {fill:#C5C6C6}
.fil3 {fill:#5B5B5B}
.fil1 {fill:#F05A28}
.fil0 {fill:#FF3C00}
.fil8 {fill:#FEFEFE;fill-rule:nonzero}
.fil6 {fill:#D9DADA;fill-rule:nonzero}
.fil4 {fill:#5B5B5B;fill-rule:nonzero}
.fil2 {fill:#231F20;fill-rule:nonzero}
.fnt0 {font-weight:bold;font-size:125.47px;font-family:'Calibri'}
]]>
</style>
</defs>
<g
id="Слой_x0020_1">
<metadata
id="CorelCorpID_0Corel-Layer" />
<g
id="g302"
transform="matrix(2.370917,0,0,2.370917,-47.920959,-93.188184)">
<path
class="fil1"
d="M 71.78,95.93 V 49.5 c 25.64,0 46.43,20.79 46.43,46.43 z"
id="path299"
style="fill:#ff3c00;fill-opacity:1" />
<path
id="1"
class="fil2"
d="M 79.31,49.5 V 95.93 H 64.25 V 49.5 l 7.53,-7.53 z m -15.06,0 c 0,-4.16 3.37,-7.53 7.53,-7.53 4.16,0 7.53,3.37 7.53,7.53 z m 53.96,53.95 V 88.4 l -7.53,7.53 -0.05,-2.01 -0.15,-1.98 -0.25,-1.95 -0.34,-1.91 -0.44,-1.88 -0.52,-1.85 -0.61,-1.8 -0.7,-1.76 -0.77,-1.73 -0.86,-1.67 -0.94,-1.63 -1.01,-1.58 -1.09,-1.52 -1.15,-1.47 -1.23,-1.42 -1.29,-1.35 -1.35,-1.29 -1.41,-1.22 -1.47,-1.16 -1.53,-1.08 -1.58,-1.02 -1.63,-0.93 -1.67,-0.86 -1.72,-0.78 -1.77,-0.7 -1.8,-0.61 -1.84,-0.52 -1.88,-0.43 -1.92,-0.35 -1.94,-0.24 -1.98,-0.15 -2.01,-0.05 V 41.97 l 2.77,0.07 2.73,0.21 2.7,0.34 2.66,0.48 2.61,0.6 2.57,0.73 2.51,0.84 2.45,0.97 2.39,1.08 2.33,1.2 2.26,1.3 2.19,1.4 2.11,1.5 2.04,1.6 1.96,1.7 1.87,1.78 1.79,1.88 1.69,1.95 1.6,2.04 1.51,2.11 1.4,2.19 1.3,2.26 1.19,2.33 1.08,2.39 0.97,2.46 0.85,2.51 0.73,2.56 0.6,2.61 0.47,2.66 0.35,2.7 0.2,2.74 0.07,2.77 z m 7.52,-7.52 c 0,4.15 -3.37,7.52 -7.52,7.52 -4.16,0 -7.53,-3.37 -7.53,-7.52 z M 71.78,88.4 h 46.43 v 15.05 H 71.78 l -7.53,-7.52 z m 0,15.05 c -4.16,0 -7.53,-3.37 -7.53,-7.52 0,-4.16 3.37,-7.53 7.53,-7.53 z"
style="fill:#f9f9f9" />
</g>
<g
id="g306"
transform="matrix(2.370917,0,0,2.370917,-47.920959,-93.188184)">
<path
class="fil2"
d="M 112.56,103.46 H 71.78 V 88.39 h 40.78 l 7.53,7.53 z m 0,-15.07 c 4.16,0 7.53,3.38 7.53,7.53 0,4.16 -3.37,7.54 -7.53,7.54 z m -40.78,55.85 v -15.06 0 l 1.72,-0.04 1.69,-0.13 1.66,-0.21 1.64,-0.29 1.61,-0.37 1.57,-0.45 1.54,-0.52 1.51,-0.6 1.47,-0.66 1.43,-0.74 1.4,-0.8 1.35,-0.86 1.3,-0.93 1.26,-0.99 1.21,-1.05 1.15,-1.1 1.1,-1.15 1.05,-1.21 0.99,-1.26 0.93,-1.3 0.86,-1.35 0.8,-1.4 0.74,-1.43 0.66,-1.47 0.59,-1.51 0.53,-1.54 0.44,-1.58 0.38,-1.6 0.29,-1.64 0.21,-1.66 0.13,-1.7 0.04,-1.72 h 15.06 l -0.06,2.48 -0.19,2.45 -0.31,2.42 -0.42,2.38 -0.54,2.34 -0.65,2.3 -0.76,2.25 -0.87,2.2 -0.97,2.14 -1.07,2.08 -1.16,2.03 -1.26,1.96 -1.34,1.89 -1.44,1.82 -1.51,1.75 -1.6,1.68 -1.68,1.6 -1.75,1.52 -1.82,1.43 -1.9,1.35 -1.96,1.25 -2.02,1.17 -2.08,1.07 -2.15,0.96 -2.19,0.87 -2.25,0.76 -2.29,0.65 -2.35,0.54 -2.37,0.43 -2.42,0.31 -2.45,0.18 z M 23.47,95.92 h 15.06 v 0 l 0.04,1.72 0.13,1.7 0.21,1.66 0.29,1.64 0.38,1.6 0.44,1.58 0.53,1.54 0.59,1.51 0.66,1.47 0.74,1.44 0.8,1.39 0.86,1.35 0.93,1.3 0.99,1.26 1.05,1.21 1.1,1.15 1.15,1.1 1.21,1.05 1.26,0.99 1.3,0.93 1.35,0.86 1.39,0.8 1.44,0.74 1.47,0.66 1.51,0.6 1.54,0.52 1.57,0.45 1.61,0.37 1.64,0.29 1.66,0.21 1.69,0.13 1.72,0.04 v 15.06 l -2.48,-0.06 -2.45,-0.18 -2.42,-0.31 -2.38,-0.43 -2.34,-0.54 -2.29,-0.65 -2.25,-0.76 -2.2,-0.87 -2.14,-0.96 -2.08,-1.07 -2.03,-1.17 -1.95,-1.25 -1.9,-1.35 -1.82,-1.43 -1.75,-1.52 -1.68,-1.6 -1.6,-1.68 -1.51,-1.75 -1.44,-1.82 -1.34,-1.89 -1.26,-1.96 -1.16,-2.03 -1.07,-2.08 -0.97,-2.14 -0.87,-2.2 -0.76,-2.25 -0.65,-2.3 -0.54,-2.34 -0.42,-2.38 -0.31,-2.42 -0.19,-2.45 z M 79.31,55.14 H 64.25 l 7.53,7.53 -1.72,0.04 -1.69,0.13 -1.66,0.21 -1.64,0.29 -1.61,0.37 -1.57,0.45 -1.54,0.52 -1.51,0.6 -1.47,0.66 -1.44,0.74 -1.39,0.8 -1.35,0.86 -1.3,0.93 -1.26,0.99 -1.21,1.05 -1.15,1.1 -1.1,1.15 -1.05,1.21 -0.99,1.26 -0.93,1.31 -0.86,1.35 -0.8,1.39 -0.73,1.43 -0.67,1.47 -0.59,1.51 -0.53,1.54 -0.44,1.58 -0.38,1.6 -0.29,1.64 -0.21,1.66 -0.13,1.7 -0.04,1.71 H 23.47 l 0.06,-2.47 0.19,-2.46 0.31,-2.41 0.42,-2.38 0.54,-2.34 0.65,-2.3 0.76,-2.25 0.87,-2.2 0.97,-2.14 1.07,-2.08 1.16,-2.03 1.26,-1.96 1.34,-1.89 1.43,-1.82 1.52,-1.76 1.6,-1.67 1.68,-1.6 1.75,-1.52 1.82,-1.43 1.9,-1.35 1.95,-1.25 2.03,-1.17 2.08,-1.07 2.14,-0.96 2.2,-0.87 2.25,-0.76 2.29,-0.65 2.34,-0.54 2.38,-0.43 2.42,-0.31 2.45,-0.18 2.48,-0.06 z m -7.53,-7.53 c 4.16,0 7.53,3.37 7.53,7.53 0,4.16 -3.37,7.53 -7.53,7.53 z M 64.25,95.92 V 55.14 h 15.06 v 40.78 l -7.53,7.54 z m 15.06,0 c 0,4.16 -3.37,7.54 -7.53,7.54 -4.16,0 -7.53,-3.38 -7.53,-7.54 z"
id="path304"
style="fill:#f9f9f9" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 17 KiB

1
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/default.plymouth

@ -0,0 +1 @@
/usr/share/plymouth/themes/minios-logo/minios-logo.plymouth

4
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/details/details.plymouth

@ -0,0 +1,4 @@
[Plymouth Theme]
Name=Details
Description=Verbose fallback theme
ModuleName=details

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/fsck-fade.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/fsck-fade_16bit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/logo_16bit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

8
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/minios-logo.plymouth

@ -0,0 +1,8 @@
[Plymouth Theme]
Name=MiniOS Logo
Description=A theme that features a background with a logo.
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/minios-logo
ScriptFile=/usr/share/plymouth/themes/minios-logo/minios-logo.script

512
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/minios-logo.script

@ -0,0 +1,512 @@
/**************************************************************************
*
* Copyright (C) 2011 The Xubuntu Community
* Copyright (C) 2009 Canonical Ltd.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Written by: Mad Nick <dr.madnick@gmail.com>
*
**************************************************************************/
/*
* Related to the screen */
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
screen_x = Window.GetX();
screen_y = Window.GetY();
/**/
/*
* Images, check bits per pixel
* and load images accordingly */
background_image = Image("wallpaper.png");
passw_dialog_input_image = Image("passw-dialog.png");
bullet_image = Image("test.png");
bpp = Window.GetBitsPerPixel();
if (bpp == 4) {
logotype_image = Image("logo_16bit.png");
progress_meter_image = Image("progress-meter_16bit.png");
progress_fade_image = Image("progress-fade_16bit.png");
fsck_progress_meter_image = Image("progress-meter_16bit.png");
fsck_progress_fade_image = Image("fsck-fade_16bit.png");
}
else {
logotype_image = Image("logo.png");
progress_meter_image = Image("progress-meter.png");
progress_fade_image = Image("progress-fade.png");
fsck_progress_meter_image = Image("progress-meter.png");
fsck_progress_fade_image = Image("fsck-fade.png");
}
/**/
/*
* Sprites */
ratio = screen_height / screen_width;
background_ratio = background_image.GetHeight() / background_image.GetWidth();
factor = 0;
if (ratio > background_ratio) {
factor = screen_height / background_image.GetHeight();
}
else {
factor = screen_width / background_image.GetWidth();
}
scaled = background_image.Scale(background_image.GetWidth() * factor, background_image.GetHeight() * factor);
background_sprite = Sprite(scaled);
background_sprite.SetX(screen_x + screen_width / 2 - scaled.GetWidth() / 2);
background_sprite.SetY(screen_y + screen_height / 2 - scaled.GetHeight() / 2);
logotype_sprite = Sprite(logotype_image);
fsck_progress_meter_sprite = Sprite(fsck_progress_meter_image);
fsck_progress_fade_sprite = Sprite(fsck_progress_fade_image.Scale(1, fsck_progress_fade_image.GetHeight()));
passw_dialog_input_sprite = Sprite(passw_dialog_input_image);
passw_lbl_sprite = Sprite();
msg_label_sprite = Sprite();
/**/
/*
* Misc */
counter = 0;
fade_pos_x = (screen_width / 2) - (progress_meter_image.GetWidth() / 2);
fade_dir = 0; /* 0 = right, 1 = left */
fsck_running = 0;
fsck_dev_array;
fsck_dev_counter = 0;
fsck_fade_in_counter = 0;
fsck_done_fading = 0;
stars_array;
stars_n = 0;
//full_msg = "";
msgs_line = [NULL,NULL,NULL,NULL,NULL];
/**/
/*
* Debug related */
debug = 0;
debug_sprite = Sprite();
fun debugOutput(str) {
/*
* This will print to the top left corner */
debug_sprite.SetImage(Image.Text(str));
}
/**/
/*
* Setup the graphics properties */
logotype_sprite.SetPosition(screen_x + (screen_width / 2) - (logotype_image.GetWidth() / 2), screen_y + (screen_height / 2) - (logotype_image.GetHeight() / 2));
fsck_progress_meter_sprite.SetPosition(screen_x + (screen_width / 2) - (progress_meter_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 25);
fsck_progress_fade_sprite.SetPosition(screen_x + (screen_width / 2) - (progress_meter_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 25);
fsck_progress_meter_sprite.SetOpacity(0);
fsck_progress_fade_sprite.SetOpacity(0);
passw_dialog_input_sprite.SetPosition(screen_x + (screen_width / 2) - (passw_dialog_input_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 70);
passw_dialog_input_sprite.SetOpacity(0);
passw_lbl_sprite.SetOpacity(0);
spin = 0;
/*
* this function only goes up to 100
* because thats all thats needed for
* the progress meter bar */
fun atoi(str) {
int = -1;
for (i = 0; i <= 100; i++) {
if (i + "" == str) {
int = i;
break;
}
}
return int;
}
/*
* This handler will/can be invoked
* 50 times per second.
*
* According to the previous author of the
* splash script, without this callback
* the screen is not updated correctly */
spinner_sprite;
spinner;
fun refreshHandler() {
if (spin < 3.14 * 2) {
spin = spin + 0.1;
}
else {
spin = 0;
}
/* if fsck is running or the password is prompted, hide the spinner */
if (fsck_running == 1 || passw_dialog_input_sprite.GetOpacity() == 1) {
spinner_sprite.SetOpacity(0);
} else {
spinner = Image("spinner.png");
spinner = spinner.Rotate(spin);
spinner_sprite = Sprite(spinner);
spinner_sprite.SetPosition(screen_x + (screen_width / 2) - (spinner.GetWidth() / 2), screen_y + (screen_height / 2) - (spinner.GetHeight() / 2) + 80);
}
if (fade_dir == 0) {
counter++;
if (counter >= 200) {
fade_dir = 1;
}
}
else {
counter--;
if (counter <= 0) {
fade_dir = 0;
}
}
if ((fsck_running == 1) && (fsck_done_fading == 0)) {
fsck_progress_meter_sprite.SetOpacity(fsck_fade_in_counter);
fsck_progress_fade_sprite.SetOpacity(fsck_fade_in_counter);
if (fsck_fade_in_counter < 1) {
fsck_fade_in_counter+= 0.025;
}
else {
fsck_done_fading = 1;
}
}
}
Plymouth.SetRefreshFunction (refreshHandler);
/**/
/*
* This function will display the password related information
* when being prompt with entering a password */
fun showPasswordHandler(prompt, stars) {
if (passw_dialog_input_sprite.GetOpacity() == 0 && passw_lbl_sprite.GetOpacity() == 0) {
passw_dialog_input_sprite.SetOpacity(1);
passw_lbl_sprite.SetOpacity(1);
}
tmp_prompt_image = Image.Text(prompt, 1, 1, 1);
passw_lbl_sprite.SetImage(tmp_prompt_image);
passw_lbl_sprite.SetPosition(screen_x + (screen_width / 2) - (tmp_prompt_image.GetWidth() / 2), screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 50);
for(i = 0; i < stars_n; i++) {
stars_array[i] = NULL;
}
stars_n = 0;
for(i = 0; (i < stars) && (i < 15); i++) {
stars_array[i] = Sprite(bullet_image);
stars_array[i].SetPosition(screen_x + (((screen_width / 2) - (passw_dialog_input_image.GetWidth() / 2)) + (18 * i)) + 2, screen_y + (screen_height / 2) + (logotype_image.GetHeight() / 2) + 75);
stars_n++;
}
}
Plymouth.SetDisplayPasswordFunction(showPasswordHandler);
/**/
fun displayNormalHandler() {
/*
* Hide the password dialog and the bullets */
if (passw_dialog_input_sprite.GetOpacity() == 1) {
passw_dialog_input_sprite.SetOpacity(0);
}
if (passw_lbl_sprite.GetOpacity() == 1) {
passw_lbl_sprite.SetOpacity(0);
}
for(i = 0; i < stars_n; i++) {
stars_array[i] = NULL;
}
}
Plymouth.SetDisplayNormalFunction(displayNormalHandler);
fun strlen(string) {
i = 0;
while (String(string).CharAt(i)) {
i++;
}
return i;
}
/*
* This function will display the most current message */
fun messageHandler(msg) {
if ((msg == "") || !msg) {
return 0;
}
if (msg.SubString(0, 5) == "keys:") {
msg = msg.SubString(5, strlen(msg));
}
# Get the message without the "fsckd-cancel-msg" prefix as we don't support i18n
if (msg.SubString(0, 17) == "fsckd-cancel-msg:")
msg = msg.SubString(17, strlen(msg));
//full_msg += msg + " ";
for(i = 4; i > 0; i--) {
msgs_line[i] = msgs_line[i - 1];
}
msgs_line[0] = Sprite(Image.Text(msg, 1, 1, 1));
dist = 1;
for(i = 0; i < 5; i++) {
if (msgs_line[i] != NULL) {
msgs_line[i].SetPosition(screen_x + (screen_width / 2) - (msgs_line[i].GetImage().GetWidth() / 2), screen_y + (screen_height - msgs_line[i].GetImage().GetHeight()) - 20*dist);
dist++;
}
}
}
Plymouth.SetMessageFunction(messageHandler);
/**/
/*
* Handles the updates passed to the plymouth daemon
* for example the FSCK data */
fun statusHandler(status) {
tmp_char;
status_array[0] = "";
elem_count = 0;
for (i = 0; String(status).CharAt(i) != ""; i++) {
tmp_char = String(status).CharAt(i);
if (tmp_char != ":") {
status_array[elem_count] += tmp_char;
}
else {
elem_count++;
status_array[elem_count] = "";
}
}
if (status_array[0] == "fsck") {
already_added = 0;
if (fsck_running == 0) {
/*
* use the dedicated message handler for this
* since there is no messages about fsck checks
* currently... */
messageHandler("Routine disk drive check.");
fsck_running = 1;
}
for(i = 0; i < fsck_dev_counter; i++) {
/*
* check if the device already exist and update
* the progress only in that case */
if (fsck_dev_array[i][0] == status_array[1]) {
fsck_dev_array[i][1] = status_array[2]; /* progress */
already_added = 1;
}
}
/*
* if the device is not added, then add it */
if (already_added == 0) {
fsck_dev_array[fsck_dev_counter][0] = status_array[1]; /* device */
fsck_dev_array[fsck_dev_counter][1] = status_array[2]; /* progress */
fsck_dev_counter++;
}
/*
* update the progress */
total = 0;
for(i = 0; i < fsck_dev_counter; i++) {
total += atoi(fsck_dev_array[i][1]);
}
if (fsck_dev_counter > 0) {
/*
* display the total percentage */
fsck_progress_fade_sprite.SetImage(fsck_progress_fade_image.Scale((fsck_progress_meter_image.GetWidth() / 100) * (total / fsck_dev_counter), fsck_progress_fade_image.GetHeight()));
}
/**/
/*
* if the total progress is at maximum,
* make the progress meter go away,
* we might want to fade this out... */
if (total == (100 * fsck_dev_counter)) {
fsck_progress_meter_sprite.SetOpacity(0);
fsck_progress_fade_sprite.SetOpacity(0);
}
}
# systemd-fsckd pass fsckd:<number_devices>:<progress>:<l10n_string>
if (status_array[0] == "fsckd") {
fsck_running = 1;
# remove ",x" as we only care about integers
progress_str = status_array[2];
progress = atoi(progress_str.SubString(0, strlen(progress_str) - 2));
fsck_progress_fade_sprite.SetImage(fsck_progress_fade_image.Scale((fsck_progress_meter_image.GetWidth() / 100) * progress, fsck_progress_fade_image.GetHeight()));
/*
* if the total progress is at maximum,
* make the progress meter go away,
* we might want to fade this out... */
if (progress == 100) {
fsck_progress_meter_sprite.SetOpacity(0);
fsck_progress_fade_sprite.SetOpacity(0);
}
}
}
Plymouth.SetUpdateStatusFunction(statusHandler);
/**/

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/passw-dialog.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/progress-fade.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/progress-fade_16bit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/progress-meter.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/progress-meter_16bit.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/spinner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 981 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/test.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

BIN
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-logo/wallpaper.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

11
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/minios-text/minios-text.plymouth

@ -0,0 +1,11 @@
[Plymouth Theme]
Name=MiniOS Text
Description=Text mode theme based on minios-logo theme
ModuleName=ubuntu-text
[ubuntu-text]
title=MiniOS 2021
black=0x000000
white=0xffffff
brown=0x000000
blue=0xffffff

1
linux-live/basesystem/01-casper/rootcopy/usr/share/plymouth/themes/text.plymouth

@ -0,0 +1 @@
/usr/share/plymouth/themes/minios-text/minios-text.plymouth

16
linux-live/basesystem/01-core/install

@ -0,0 +1,16 @@
#!/bin/bash
set -e # exit on error
set -o pipefail # exit on pipeline error
set -u # treat unset variable as error
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# install packages
if [ -f $SCRIPT_DIR/package.list ]; then
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD update >>$OUTPUT 2>&1 &&
#sudo DEBIAN_FRONTEND=$DEBIAN_FRONTEND_TYPE \
$APT_CMD install $APT_OPTIONS $APT_OPTIONS2 \
$(grep -vE "^\s*#" $SCRIPT_DIR/package.list | tr "\n" " ") >>$OUTPUT 2>&1
fi

41
linux-live/basesystem/01-core/package.list

@ -0,0 +1,41 @@
mc
squashfs-tools
genisoimage
zip
unzip
psmisc
net-tools
alsa-utils
man
less
xz-utils
ca-certificates
openssl
acpid
acpi-support-base
powermgmt-base
bzip2
gpart
hdparm
sdparm
mdadm
smartmontools
dosfstools
lsof
htop
gddrescue
rsync
netcat
ssh
gpm
wireless-tools
ntfs-3g
rfkill
file
dnsmasq
ntpdate
dvd+rw-tools
usb-modeswitch
pm-utils
wget
linux-image-amd64

103
linux-live/basesystem/01-core/postinstall

@ -0,0 +1,103 @@
#!/bin/bash
apt-get remove --yes vim* grub* debconf-i18n installation-report
CWD="$(pwd)"
cd /tmp
apt -y update
apt-get download acpi-support
dpkg -x acpi-support*.deb /tmp/acpisupport
cd /tmp/acpisupport
cp -aR * /
cd "$CWD"
rm -f /etc/fstab
rm -f /etc/mtab
rm -f /etc/apt/sources.list~
rm -Rf /etc/systemd/system/timers.target.wants
rm -f /etc/systemd/system/multi-user.target.wants/ssh.service
rm -f /etc/systemd/system/multi-user.target.wants/dnsmasq.service
rm -f /etc/ssh/ssh_host*
rm -f /var/backups/*
rm -f /var/cache/ldconfig/*
rm -f /var/cache/debconf/*
rm -f /var/cache/fontconfig/*
rm -f /var/lib/apt/extended_states
rm -f /var/lib/systemd/random-seed
rm -f /var/lib/apt/lists/deb.*
rm -Rf /root/.local/share/mc
rm -Rf /root/.cache
rm -f /root/.wget-hsts
rm -f /var/lib/dpkg/*-old
rm -f /var/log/*
rm -f /var/log/*/*
rm -f /var/log/*/*/*
rm -f /var/cache/apt/archives/*.deb
rm -f /var/cache/apt/*.bin
rm -f /var/cache/debconf/*-old
rm -f /var/lib/dhcp/dhclient.leases
rm -f /root/.bash_history
rm -f /root/.wget-hsts
rm -Rf /usr/share/doc/*
rm -Rf /usr/share/info/*
rm -f /usr/share/images/fluxbox/debian-squared.jpg
rm -Rf /usr/share/fluxbox/nls/??*
rm -Rf /usr/share/gnome/help
rm -Rf /usr/share/locale/??
rm -Rf /usr/share/locale/??_*
rm -Rf /usr/share/locale/??@*
rm -Rf /usr/share/locale/???
rm -Rf /usr/share/i18n/locales/*_*
rm -Rf /usr/share/man/??
rm -Rf /usr/share/man/*_*
rm -Rf /usr/share/icons/elementaryXubuntu-dark
rm -Rf /usr/share/icons/gnome/256x256
rm /usr/share/applications/compton.desktop
rm /usr/share/applications/debian-uxterm.desktop
rm /usr/share/applications/debian-xterm.desktop
rm /usr/share/applications/htop.desktop
rm /usr/share/applications/mc.desktop
rm /usr/share/applications/mcedit.desktop
rm /usr/share/applications/pcmanfm-desktop-pref.desktop
rm /usr/share/applications/python2.7.desktop
rm /usr/share/applications/python3.7.desktop
rm /usr/share/applications/vim.desktop
# Unzip gzipped files (man pages), so LZMA can compress 2times better.
# First we fix symlinks, then uncompress files
# $1 = search directory
uncompress_files()
{
local LINK LINE
find "$1" -type l -name "*.gz" | while read LINE; do
LINK="$(readlink "$LINE" | sed -r 's/.gz$//')"
FILE="$(echo "$LINE" | sed -r 's/.gz$//')"
ln -sfn "$LINK" "$FILE"
rm -f "$LINE"
done
find "$1" -type f -name "*.gz" | xargs -r gunzip
}
uncompress_files /etc/alternatives
uncompress_files /usr/share/man
# remove broken links
# $1 = search directory
remove_broken_links()
{
find "$1" -type l -exec test ! -e {} \; -print | xargs rm -vf
}
remove_broken_links /etc/alternatives
remove_broken_links /usr/share/man

3
linux-live/basesystem/01-core/rootcopy/etc/adjtime

@ -0,0 +1,3 @@
0.0 0 0.0
0
LOCAL

3
linux-live/basesystem/01-core/rootcopy/etc/apt/apt.conf.d/000Slax

@ -0,0 +1,3 @@
APT::Install-Recommends "0";
APT::Install-Suggests "0";
Acquire::Languages { "none"; }

5
linux-live/basesystem/01-core/rootcopy/etc/apt/sources.list

@ -0,0 +1,5 @@
deb http://deb.debian.org/debian/ buster main contrib non-free
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free

1
linux-live/basesystem/01-core/rootcopy/etc/hostname

@ -0,0 +1 @@
minios

7
linux-live/basesystem/01-core/rootcopy/etc/hosts

@ -0,0 +1,7 @@
127.0.0.1 localhost
127.0.1.1 minios
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

31
linux-live/basesystem/01-core/rootcopy/etc/issue

@ -0,0 +1,31 @@
\l
Thank you for using MiniOS.
Based on Debian GNU/Linux 10.
:::: :::: ::::::::::: :::: ::: ::::::::::: :::::::: ::::::::
+:+:+: :+:+:+ :+: :+:+: :+: :+: :+: :+: :+: :+:
+:+ +:+:+ +:+ +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+
+#+ +:+ +#+ +#+ +#+ +:+ +#+ +#+ +#+ +:+ +#++:++#++
+#+ +#+ +#+ +#+ +#+#+# +#+ +#+ +#+ +#+
#+# #+# #+# #+# #+#+# #+# #+# #+# #+# #+#
### ### ########### ### #### ########### ######## ########
: :
: Root login name: root :
: Password: toor :
: User login name: live :
: Password: evil :

1
linux-live/basesystem/01-core/rootcopy/etc/localtime

@ -0,0 +1 @@
/usr/share/zoneinfo/Etc/UTC

1
linux-live/basesystem/01-core/rootcopy/etc/motd

@ -0,0 +1 @@

34
linux-live/basesystem/01-core/rootcopy/etc/profile

@ -0,0 +1,34 @@
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi

2
linux-live/basesystem/01-core/rootcopy/etc/ssh/sshd_config.d/90-minios.conf

@ -0,0 +1,2 @@
PermitRootLogin yes
PasswordAuthentication yes

1
linux-live/basesystem/01-core/rootcopy/etc/systemd/system/multi-user.target.wants/dhclient.service

@ -0,0 +1 @@
/lib/systemd/system/dhclient.service

1
linux-live/basesystem/01-core/rootcopy/etc/timezone

@ -0,0 +1 @@
Etc/UTC

140
linux-live/basesystem/01-core/rootcopy/root/.bashrc

@ -0,0 +1,140 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
apt-get()
{
if [ -e /var/cache/apt/pkgcache.bin ]; then
/usr/bin/apt-get "$@"
else
/usr/bin/apt-get update
/usr/bin/apt-get "$@"
fi
}
apt()
{
if [ -e /var/cache/apt/pkgcache.bin ]; then
/usr/bin/apt "$@"
else
/usr/bin/apt update
/usr/bin/apt "$@"
fi
}
export -f apt-get
export -f apt

58
linux-live/basesystem/01-core/rootcopy/usr/bin/dir2sb

@ -0,0 +1,58 @@
#!/bin/bash
# Author: Tomas M. <http://www.slax.org/>
usage()
{
echo ""
echo "Convert directory to .sb compressed module"
echo "Usage: $0 [source_directory.sb] [[target_file.sb]]"
echo " If source_directory does not have .sb suffix and it is not 'squashfs-root',"
echo " then the source_directory itself is included in the module and"
echo " then the target_file.sb parameter is required."
echo " If target_file.sb is not specified, the source_directory is erased"
echo " and replaced by the newly generated module file."
}
P1="$(readlink -f "$1")"
P2="$(readlink -f "$2")"
if [ "$P1" = "$P2" ]; then
P2=""
fi
SB=$(echo "$P1" | grep -o "[.]sb/*\$")
if [ "$(echo "$P1" | grep -o "/squashfs-root/*\$")" != "" ]; then
SB="true"
fi
if [ "$SB" = "" ]; then
KEEP="-keep-as-directory"
if [ "$P2" = "" ]; then
usage
exit 1
fi
else
KEEP=""
fi
if [ ! -d "$P1" ]; then
echo "Not a directory: $P1" >&2
exit 2
fi
if [ "$P2" = "" ]; then
TARGET="$P1".sb
while [ -e "$TARGET" ]; do TARGET="$TARGET"x; done
mksquashfs "$P1" "$TARGET" -comp xz -b 1024K -always-use-fragments $KEEP >/dev/null || exit 3
umount "$P1" 2>/dev/null
rm -Rf "$P1"
mv "$TARGET" "$P1"
else
if [ -e "$P2" ]; then
echo "Target exists: $P2" >&2
exit 4
fi
mksquashfs "$P1" "$P2" -comp xz -b 1024K -always-use-fragments $KEEP >/dev/null
fi

80
linux-live/basesystem/01-core/rootcopy/usr/bin/genminiosiso

@ -0,0 +1,80 @@
#!/bin/bash
# Author: Tomas M. <http://www.linux-live.org>
# Author: crims0n. <http://minios.ru>
CWD=$(pwd)
SOURCE=/run/initramfs/memory
TEMP=/tmp/miniosiso.$$
REGEX='^$'
if [ "$1" = "-e" ]; then
REGEX="$2"
shift
shift
fi
TARGET="$(readlink -f "$1")"
if [ "$TARGET" = "" ]; then
echo ""
echo "Generate MiniOS ISO image, adding specified modules"
echo "Regular expression is used to exclude any existing path or file with -e regex"
echo ""
echo "Usage:"
echo " $0 [[ -e regex ]] target.iso [[module.sb]] [[module.sb]] ..."
echo ""
echo "Examples:"
echo " # to create MiniOS iso without chromium.sb module:"
echo " $0 -e 'chromium' minios_without_chromium.iso"
echo ""
echo " # to create MiniOS text-mode core only:"
echo " $0 -e 'firmware|xorg|desktop|apps|chromium' minios_textmode.iso"
exit 1
fi
if [ -e "$SOURCE/data/minios/boot/isolinux.bin" ]; then
MINIOS=$SOURCE/data/minios
fi
if [ -e "$SOURCE/toram/boot/isolinux.bin" ]; then
MINIOS=$SOURCE/toram
fi
if [ "$MINIOS" = "" ]; then
echo "Cannot find boot/isolinux.bin in MiniOS data" >&2
exit 2
fi
GRAFT=\
$(
cd "$MINIOS"
find . -type f | sed -r "s:^[.]/::" | egrep -v "^boot/isolinux.(bin|boot)$" | egrep -v "^changes/" | egrep -v "$REGEX" | while read LINE; do
echo "minios/$LINE=$MINIOS/$LINE"
done
)
# add all modules
while [ "$2" != "" ]; do
if [ ! -e "$2" ]; then
echo "File does not exist: $2"
exit 3
fi
BAS="$(basename "$2")"
MOD="$(readlink -f "$2")"
GRAFT="$GRAFT minios/modules/$BAS=$MOD"
shift
done
(
mkdir -p $TEMP/minios/{boot,modules,changes}
cp "$MINIOS/boot/isolinux.bin" "$TEMP/minios/boot"
cd "$TEMP"
genisoimage -o - -quiet -v -J -R -D -A minios -V minios \
-no-emul-boot -boot-info-table -boot-load-size 4 -input-charset utf-8 \
-b minios/boot/isolinux.bin -c minios/boot/isolinux.boot \
-graft-points $GRAFT \
. \
) > "$TARGET"
rm -Rf $TEMP

86
linux-live/basesystem/01-core/rootcopy/usr/bin/pxe

@ -0,0 +1,86 @@
#!/bin/bash
# Rebuild initial ramdisk with full network drivers,
# start DHCP and TFTP server in order to provide PXE service
#
# Author: Tomas M <www.slax.org>
LIVE=/run/initramfs
FTPROOT=/var/state/dnsmasq/root
# find out our own IP address. If more interfaces are available, use the first one
IP="$(hostname -I | cut -d " " -f 1)"
GW=$(ip route show | grep default | grep -o "via.*" | head -n 1 | cut -d " " -f 2)
# if no IP is assigned to this computer, setup private address randomly
if [ "$IP" = "" ]; then
killall dhclient 2>/dev/null
IP="10."$(($RANDOM/130+1))"."$(($RANDOM/130+1))".1"
ifconfig $(ls -1 /sys/class/net | egrep -v '^lo$' | sort | head -n 1) $IP netmask 255.255.255.0
fi
# if gateway is not recognized, lets make our IP a gateway and enable forwarding
if [ "$GW" = "" ]; then
GW="$IP"
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
fi
echo Starting PXE server on $IP ...
# calculate C class range
RANGE=$(echo $IP | cut -d "." -f 1-3)
# make sure dnsmasq can be started
killall dnsmasq 2>/dev/null
killall busybox 2>/dev/null
rm -Rf $FTPROOT 2>/dev/null
mkdir -p $FTPROOT/{pxelinux.cfg,tmp}/
# create root filesystem for ftfp
cd $LIVE
( find . -print | grep -v "memory"
cd /
find /lib/modules/$(uname -r)/kernel/drivers/net | grep -v wireless
) | cpio -pvd $FTPROOT/tmp 2>/dev/null
cp /lib/modules/$(uname -r)/modules.* $FTPROOT/tmp/lib/modules/$(uname -r)
depmod -b $FTPROOT/tmp
rm $FTPROOT/tmp/lib/initramfs_escaped
# pack root in initramfs
cd $FTPROOT/tmp
find . -print | cpio -o -H newc 2>/dev/null | gzip -f --fast >../initrfs.img
cd ..
rm -Rf tmp
# link files here since copying is not necessary
ln -s $(find $LIVE/memory/{data,iso,toram} 2>/dev/null | grep vmlinuz | head -n 1) $FTPROOT/vmlinuz
ln -s $(find $LIVE/memory/{data,iso,toram} 2>/dev/null | grep pxelinux.0 | head -n 1) $FTPROOT/pxelinux.0
ln -s $(find $LIVE/memory/{data,iso,toram} 2>/dev/null | grep ldlinux.c32 | head -n 1) $FTPROOT/ldlinux.c32
find $LIVE/memory/{data,iso,toram} 2>/dev/null | egrep "[.]sb\$" | sort -n | while read LINE; do
BAS="$(basename "$LINE")"
ln -s $LINE "$FTPROOT/$BAS"
echo $BAS >> "$FTPROOT/PXEFILELIST"
done
echo "This is <a href=http://www.slax.org/>Slax</a> PXE data server. PXE clients will download <a href=PXEFILELIST>file list</a>" > "$FTPROOT/index.html"
# default pxelinux configuration. Keep xmode selection for clients the same like for the server
echo "
PROMPT 0
DEFAULT slax
LABEL slax
KERNEL /vmlinuz
IPAPPEND 1
APPEND initrd=/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 $(cat /proc/cmdline | egrep -o 'slax.flags=[^ ]+' | sed -r 's:[,=]pxe::' | sed -r 's:[,=]toram::')
" > $FTPROOT/pxelinux.cfg/default
# start the DHCP server and TFTP server
dnsmasq --enable-tftp --tftp-root=/var/state/dnsmasq/root \
--dhcp-boot=pxelinux.0,"$IP",$IP \
--dhcp-option=3,$GW \
--dhcp-range=$RANGE.2,$RANGE.250,infinite --log-dhcp
# start HTTP server at port 7529 (that are the numbers you type on your phone to write 'slax')
busybox httpd -p 7529 -h /var/state/dnsmasq/root

17
linux-live/basesystem/01-core/rootcopy/usr/bin/rmsbdir

@ -0,0 +1,17 @@
#!/bin/bash
# Author: Tomas M. <http://www.slax.org/>
if [ ! -e "$1" ]; then
echo
echo "Erase module directory created by sb2dir"
echo "Usage: $0 [source_directory.sb]"
exit 1
fi
if [ ! -d "$1" ]; then
echo "Directory does not exist: $1" >&2
exit
fi
umount "$1" 2>/dev/null
rm -Rf "$1"

46
linux-live/basesystem/01-core/rootcopy/usr/bin/savechanges

@ -0,0 +1,46 @@
#!/bin/bash
TMP=/tmp/changes$$
EXCLUDE="^\$|/\$|[.]wh[.][.]wh[.]orph/|^[.]wh[.][.]wh[.]plnk/|^[.]wh[.][.]wh[.]aufs|^var/cache/|^var/backups/|^var/tmp/|^var/log/|^var/lib/apt/|^var/lib/dhcp/|^var/lib/systemd/|^sbin/fsck[.]aufs|^etc/resolv[.]conf|^root/[.]Xauthority|^root/[.]xsession-errors|^root/[.]fehbg|^root/[.]fluxbox/lastwallpaper|^root/[.]fluxbox/menu_resolution|^etc/mtab|^etc/fstab|^boot/|^dev/|^mnt/|^proc/|^run/|^sys/|^tmp/"
CHANGES=/run/initramfs/memory/changes
if [ "$1" = "" ]; then
echo ""
echo "savechanges - save all changed files in a compressed filesystem bundle"
echo " - excluding some predefined files such as /etc/mtab,"
echo " temp & log files, empty directories, apt cache, and such"
echo ""
echo "Usage:"
echo " $0 [ target_file.sb ] [ changes_directory ]"
echo ""
echo "If changes_directory is not specified, /run/initramfs/memory/changes is used."
echo ""
exit 1
fi
if [ ! "$2" = "" ]; then
CHANGES="$2"
fi
# exclude the save_file itself of course
EXCLUDE="$EXCLUDE|^""$(readlink -f "$1" | cut -b 2- | sed -r "s/[.]/[.]/")""\$"
CWD=$(pwd)
cd $CHANGES || exit
mkdir -p $TMP
mount -t tmpfs tmpfs $TMP
find \( -type d -printf "%p/\n" , -not -type d -print \) \
| sed -r "s/^[.]\\///" | egrep -v "$EXCLUDE" \
| while read FILE; do
cp --parents -afr "$FILE" "$TMP"
done
cd $CWD
mksquashfs $TMP "$1" -comp xz -b 1024K -always-use-fragments -noappend
umount $TMP
rmdir $TMP

29
linux-live/basesystem/01-core/rootcopy/usr/bin/sb

@ -0,0 +1,29 @@
#!/bin/bash
if [ "$1" = "rm" ]; then
shift
rmsbdir "$@"
exit $?
fi
if [ "$1" = "rmdir" ]; then
shift
rmsbdir "$@"
exit $?
fi
if [ "$1" = "conv" ]; then
shift
fi
if [ ! -r "$1" ]; then
echo File not found "$1"
exit 1
fi
if [ -d "$1" ]; then
dir2sb "$@"
exit $?
fi
sb2dir "$@"

33
linux-live/basesystem/01-core/rootcopy/usr/bin/sb2dir

@ -0,0 +1,33 @@
#!/bin/bash
# Author: Tomas M. <http://www.slax.org/>
if [ ! -e "$1" ]; then
echo
echo "Convert .sb compressed module into directory with the same name"
echo "Usage: $0 [source_file.sb] [[optional output_directory]]"
echo " If the output_directory is specified, it must exist"
echo " If the output_directory is not specified, the name source_file.sb"
echo " is used and the directory is overmounted with tmpfs"
exit 1
fi
if [ ! -r "$1" ]; then
echo "File does not exist: $1" >&2
exit
fi
if [ "$2" = "" ]; then
SOURCE="$1".x
while [ -e "$SOURCE" ]; do SOURCE="$SOURCE"x; done
mv "$1" "$SOURCE" || exit
mkdir "$1"
mount -t tmpfs tmpfs "$1"
unsquashfs -f -dest "$1" "$SOURCE" >/dev/null || exit
rm "$SOURCE"
else
if [ ! -d "$2" ]; then
echo "Directory does not exist: $2" >&2
exit
fi
unsquashfs -f -dest "$2" "$1" >/dev/null
fi

178
linux-live/basesystem/01-core/rootcopy/usr/bin/slax

@ -0,0 +1,178 @@
#!/bin/bash
# Slax management and control script
# Author: Tomas M <http://www.slax.org/>
# activate
# deactivate
# list
LIVE=/run/initramfs/memory
RAMSTORE=$LIVE/modules
# Print error message and exit
# $1 = error message
#
die()
{
echo "$1" >&2
exit 1
}
print_branches()
{
local SI BUNDLE LOOP CWD
SI="/sys/fs/aufs/$(cat /proc/mounts | grep 'aufs / aufs' | egrep -o 'si=([^,) ]+)' | tr = _)"
CWD="$(pwd)"
cd "$SI"
ls -v1 | grep -v xi_path | egrep 'br[0-9]+' | xargs cat | grep memory/bundles | rev | cut -b 4- | rev | while read BUNDLE; do
if mountpoint -q "$BUNDLE"; then
LOOP=$(cat /proc/mounts | fgrep " $BUNDLE squashfs" | cut -d " " -f 1)
echo -n "$BUNDLE"
echo -ne "\t"
losetup $LOOP | sed -r "s:.*[(]|[)].*::g"
fi
done | tac
cd "$CWD"
}
# Activate Slax Bundle
# $1 = file to activate
#
activate()
{
local SB TGT BAS
SB="$(readlink -f "$1")"
BAS="$(basename "$SB")"
# check if file exists
if [ ! -r "$SB" ]; then
usage
die "file not found $SB"
fi
# check if the file is part of aufs union, if yes we need to copy it outside
if df "$SB" | cut -d " " -f 1 | grep -q aufs; then
TGT="$RAMSTORE"
mkdir -p "$TGT"
if [ -r $TGT/$BAS ]; then die "File exists: $TGT/$BAS"; fi
cp -n "$SB" "$TGT/$BAS"
if [ $? -ne 0 ]; then die "Error copying file to $TGT/$BAS. Not enough free RAM or disk space?"; fi
SB="$TGT/$BAS"
fi
# check if this particular file is already activated
if print_branches | cut -f 2 | fgrep -q "$SB"; then
exit
fi
# mount remount,add
TGT="$LIVE/bundles/$BAS"
mkdir -p "$TGT"
mount -n -o loop,ro "$SB" "$TGT"
if [ $? -ne 0 ]; then
die "Error mounting $SB to $TGT, perhaps corrupted download"
fi
# add current branch to aufs union
mount -t aufs -o remount,add:1:"$TGT" aufs /
if [ $? -ne 0 ]; then
umount "$TGT"
rmdir "$TGT"
die "Error attaching bundle filesystem to Slax"
fi
echo "Slax Bundle activated: $BAS"
}
# Deactivate Slax bundle of the given name
# $1 = path to bundle file, or its name
#
deactivate()
{
local BUNDLES SB MATCH LOOP LOOPFILE
BUNDLES=$LIVE/bundles
MODULES=$LIVE/modules
SB="$(basename "$1")"
rmdir "$BUNDLES/$SB" 2>/dev/null # this fails unless the dir is
rmdir "$BUNDLES/$SB.sb" 2>/dev/null # forgotten there empty. It's safe this way
if [ ! -d "$BUNDLES/$SB" ]; then
# we don't have real filename match, lets try to add .sb extension
if [ ! -d "$BUNDLES/$SB.sb" ]; then
# no, still no match. Lets use some guesswork
SB=$(print_branches | cut -f 2 | egrep -o "/[0-9]+-$SB.sb\$" | tail -n 1 | xargs -r basename)
else
SB="$SB.sb"
fi
fi
if [ "$SB" = "" -o ! -d "$BUNDLES/$SB" ]; then
die "can't find active slax bundle $1"
fi
echo "Attempting to deactivate Slax bundle $SB..."
mount -t aufs -o remount,verbose,del:"$BUNDLES/$SB" aufs / 2>/dev/null
if [ $? -ne 0 ]; then
die "Unable to deactivate Slax Bundle - still in use. See dmesg for more."
fi
# remember what loop device was the bundle mounted to, it may be needed later
LOOP="$(cat /proc/mounts | fgrep " $BUNDLES/$SB " | cut -d " " -f 1)"
LOOPFILE="$(losetup "$LOOP" | cut -d " " -f 3 | sed -r 's:^.|.$::g')"
umount "$BUNDLES/$SB" 2>/dev/null
if [ $? -ne 0 ]; then
die "Unable to umount Slax bundle loop-mount $BUNDLES/$SB"
fi
rmdir "$BUNDLES/$SB"
# free the loop device manually since umount fails to do that if the bundle was activated on boot
losetup -d "$LOOP" 2>/dev/null
if echo "$LOOPFILE" | grep -q $RAMSTORE; then
rm -f $LOOPFILE
fi
echo "Slax Bundle deactivated: $SB"
}
usage()
{
echo "Usage: $0 [ activate | deactivate | list ] [ file.sb ]" >&2
if [ "$1" != "" ]; then
echo "$1" >&2
fi
}
if [ "$1" = "" ]; then
usage
die
fi
if [ "$1" = "activate" ]; then
activate "$2"
fi
if [ "$1" = "deactivate" ]; then
deactivate "$2"
fi
if [ "$1" = "list" ]; then
print_branches
fi
if [ "$1" = "savechanges" ]; then
shift
savechanges "$@"
fi

11
linux-live/basesystem/01-core/rootcopy/usr/bin/sudo

@ -0,0 +1,11 @@
#!/bin/bash
if [ "$#" -lt 1 ]; then
echo "Usage: sudo [command] [arguments]"
exit 1
fi
if [ "$UID" = 0 ]; then
exec "$@"
fi
echo "Sudo is not installed. Run the command as root or install sudo."

38
linux-live/basesystem/01-core/rootcopy/usr/lib/systemd/system/apparmor.service

@ -0,0 +1,38 @@
[Unit]
Description=Load AppArmor profiles
DefaultDependencies=no
Before=sysinit.target
After=local-fs.target
After=systemd-journald-audit.socket
RequiresMountsFor=/var/cache/apparmor
AssertPathIsReadWrite=/sys/kernel/security/apparmor/.load
ConditionSecurity=apparmor
Documentation=man:apparmor(7)
Documentation=https://gitlab.com/apparmor/apparmor/wikis/home/
# Don't start this unit on the Ubuntu Live CD
ConditionPathExists=!/rofs/etc/apparmor.d
# Don't start this unit on the Debian Live CD when using overlayfs
ConditionPathExists=!/run/live/overlay/work
# Don't start this unit on Slax Live CD
ConditionPathExists=!/run/initramfs/lib/livekitlib
[Service]
Type=oneshot
ExecStart=/lib/apparmor/apparmor.systemd reload
ExecReload=/lib/apparmor/apparmor.systemd reload
# systemd maps 'restart' to 'stop; start' which means removing AppArmor confinement
# from running processes (and not being able to re-apply it later).
# Upstream systemd developers refused to implement an option that allows overriding
# this behaviour, therefore we have to make ExecStop a no-op to error out on the
# safe side.
#
# If you really want to unload all AppArmor profiles, run aa-teardown
ExecStop=/bin/true
RemainAfterExit=yes
[Install]
WantedBy=sysinit.target

16
linux-live/basesystem/01-core/rootcopy/usr/lib/systemd/system/dhclient.service

@ -0,0 +1,16 @@
[Unit]
Description=DHCP Client
Documentation=man:dhclient(8)
Wants=network.target
After=network-pre.target systemd-sysctl.service systemd-modules-load.service
Before=network.target shutdown.target network-online.target
ConditionPathExists=!/run/initramfs/net.up.flag
[Service]
Type=forking
ExecStart=-/bin/sh -c 'udevadm settle && dhclient -nw'
PIDFile=/run/dhclient.pid
[Install]
WantedBy=multi-user.target
WantedBy=network-online.target

54
linux-live/basesystem/01-core/rootcopy/usr/lib/systemd/system/getty@.service

@ -0,0 +1,54 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
After=systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service
# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes
# IgnoreOnIsolate causes issues with sulogin, if someone isolates
# rescue.target or starts rescue.service from multi-user.target or
# graphical.target.
Conflicts=rescue.service
Before=rescue.service
# On systems without virtual consoles, don't start any getty. Note
# that serial gettys are covered by serial-getty@.service, not this
# unit.
ConditionPathExists=/dev/tty0
[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty --noclear %I $TERM
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
#TM do not clear VT:
TTYVTDisallocate=no
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
# Unset locale for the console getty since the console has problems
# displaying some internationalized messages.
Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
[Install]
WantedBy=getty.target
DefaultInstance=tty1

18
linux-live/basesystem/01-core/rootcopy/usr/lib/systemd/system/ssh.service

@ -0,0 +1,18 @@
[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=-/bin/sh -c 'if ! ls /etc/ssh/ssh_host_* >/dev/null 2>&1; then /usr/sbin/dpkg-reconfigure openssh-server; fi'
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
[Install]
WantedBy=multi-user.target
Alias=sshd.service

2
linux-live/basesystem/01-core/rootcopy/usr/lib/udev/rules.d/90-slax-automount.rules

@ -0,0 +1,2 @@
# we don't care about loop* and ram* devices
KERNEL=="[!lr]*", SUBSYSTEM=="block", RUN+="/usr/sbin/slax-automount %r/%k"

23
linux-live/basesystem/01-core/rootcopy/usr/sbin/gtk-bookmarks-update

@ -0,0 +1,23 @@
#!/bin/bash
LOCK=/run/lock/gtk-bookmark-update-lock
BOOKMARKS=/root/.gtk-bookmarks
# make sure to avoid parallel execution by using mkdir as lock
while true; do
mkdir $LOCK 2>/dev/null
if [ $? = 0 ]; then
break
fi
done
cat $BOOKMARKS | fgrep -v ///media/ | fgrep -v "file:/// /" | egrep -v '^$' > $BOOKMARKS.tmp 2>/dev/null
ls -1 /media | sort | while read LINE; do
echo "file:///media/$LINE $LINE" >> $BOOKMARKS.tmp
done
echo "file:/// /" >> $BOOKMARKS.tmp # add root at the beginning
mv -f $BOOKMARKS.tmp $BOOKMARKS
rmdir $LOCK

67
linux-live/basesystem/01-core/rootcopy/usr/sbin/slax-automount

@ -0,0 +1,67 @@
#!/bin/bash
# Recreate fstab entries in /etc/fstab and make /media directories
# This script is called by udev rules, see /lib/udev/rules.d/
#
# Author: Tomas M <http://slax.linux-live.org/>
# Variables available in udev environment:
# $ACTION (eg: add, remove)
# $DEVNAME (full device node name including path)
# $DEVTYPE (eg: disk)
# $ID_FS_TYPE (eg: ext3)
# $MAJOR and $MINOR numbers
# $SUBSYSTEM (eg: block)
PATH=$PATH:/usr/bin:/usr/sbin:/bin:/sbin
BAS="$(basename "$DEVNAME")"
UNIT="media-$BAS.mount"
MNT="/media/$BAS"
TARGET="/etc/systemd/system/$UNIT"
# exit if noautomount boot parameter is present
if cat /proc/cmdline | grep -q noautomount; then
exit
fi
# exit if 'automount' boot parameter is missing
if ! cat /proc/cmdline | grep -q automount; then
exit
fi
if [ "$ACTION" = "add" -o "$ACTION" = "change" ]; then
if [ ! -r "$TARGET" ]; then # skip if exists
if [ "$ID_FS_TYPE" != "" -a "$(cat /proc/filesystems | grep "$ID_FS_TYPE")" != "" ]; then
mkdir -p "$MNT"
echo "[Unit]" >$TARGET
echo "Description=Disk $BAS" >>$TARGET
echo "" >>$TARGET
echo "[Mount]" >>$TARGET
echo "What=$DEVNAME" >>$TARGET
echo "Where=$MNT" >>$TARGET
echo "Type=$ID_FS_TYPE" >>$TARGET
echo "Options=defaults" >>$TARGET
echo "" >>$TARGET
echo "[Install]" >>$TARGET
echo "WantedBy=multi-user.target" >>$TARGET
systemctl enable $UNIT
systemctl start $UNIT
gtk-bookmarks-update
DISPLAY=:0.0 pcmanfm -n file://$MNT >/dev/null 2>&1
fi
fi
fi
if [ "$ACTION" = "remove" ]; then
systemctl disable $UNIT
rm "$TARGET"
rmdir "$MNT"
gtk-bookmarks-update
fi

BIN
linux-live/bootfiles/boot/EFI/Boot/bootx64.efi

Binary file not shown.

BIN
linux-live/bootfiles/boot/EFI/Boot/ldlinux.e64

Binary file not shown.

BIN
linux-live/bootfiles/boot/EFI/Boot/libcom32.c32

Binary file not shown.

BIN
linux-live/bootfiles/boot/EFI/Boot/libutil.c32

Binary file not shown.

BIN
linux-live/bootfiles/boot/EFI/Boot/menu.c32

Binary file not shown.

42
linux-live/bootfiles/boot/EFI/Boot/syslinux.cfg

@ -0,0 +1,42 @@
UI vesamenu.c32
PROMPT 0
TIMEOUT 40
MENU CLEAR
MENU HIDDEN
MENU HIDDENKEY Enter default
MENU BACKGROUND /minios/boot/bootlogo.png
MENU WIDTH 80
MENU MARGIN 20
MENU ROWS 5
MENU TABMSGROW 9
MENU CMDLINEROW 9
MENU HSHIFT 0
MENU VSHIFT 19
MENU COLOR BORDER 30;40 #00000000 #00000000 none
MENU COLOR SEL 47;30 #FF000000 #FFFFFFFF none
MENU COLOR UNSEL 37;40 #FFFFFFFF #FF000000 none
MENU COLOR TABMSG 32;40 #FF60CA00 #FF000000 none
F1 help.txt /minios/boot/zblack.png
MENU AUTOBOOT Press Esc for options, automatic boot in # second{,s} ...
MENU TABMSG [F1] help [Tab] cmdline >
LABEL default
MENU LABEL Run MiniOS Slax (Persistent changes)
KERNEL /minios/boot/vmlinuz
APPEND vga=normal initrd=/minios/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=perch,automount net.ifnames=0 biosdevname=0
LABEL live
MENU LABEL Run MiniOS Slax (Fresh start)
KERNEL /minios/boot/vmlinuz
APPEND vga=normal initrd=/minios/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=automount net.ifnames=0 biosdevname=0
LABEL toram
MENU LABEL Run MiniOS Slax (Copy to RAM)
KERNEL /minios/boot/vmlinuz
APPEND vga=normal initrd=/minios/boot/initrfs.img load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 slax.flags=toram net.ifnames=0 biosdevname=0

BIN
linux-live/bootfiles/boot/EFI/Boot/syslinux.efi

Binary file not shown.

BIN
linux-live/bootfiles/boot/EFI/Boot/vesamenu.c32

Binary file not shown.

106
linux-live/bootfiles/boot/bootinst.bat

@ -0,0 +1,106 @@
#!/bin/sh
exec /bin/bash "$(dirname "$0")"/bootinst.sh
exec /bin/sh "$(dirname "$0")"/bootinst.sh
@echo off
COLOR 2F
cls
echo ===============================================================================
echo.
echo ________.__
echo / ____/^| ^| _____ ___ ___
echo \____ \ ^| ^| \__ \ \ \/ /
echo / \^| ^|__/ __ \_^> ^<
echo /______ /^|____(____ /__/\_ \
echo \/ \/ \/
echo.
echo ===============================================================================
echo.
set DISK=none
set BOOTFLAG=boot666s.tmp
:checkPrivileges
mkdir "%windir%\AdminCheck" 2>nul
if '%errorlevel%' == '0' rmdir "%windir%\AdminCheck" & goto gotPrivileges else goto getPrivileges
:getPrivileges
ECHO.
ECHO Administrator Rights are required
ECHO Invoking UAC for Privilege Escalation
ECHO.
runadmin.vbs %0
goto end
:gotPrivileges
CD /D "%~dp0"
echo This file is used to determine current drive letter. It should be deleted. >\%BOOTFLAG%
if not exist \%BOOTFLAG% goto readOnly
echo.|set /p=wait please
for %%d in ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do echo.|set /p=. & if exist %%d:\%BOOTFLAG% set DISK=%%d
echo . . . . . . . . . .
del \%BOOTFLAG%
if %DISK% == none goto DiskNotFound
wscript.exe samedisk.vbs %windir% %DISK%
if %ERRORLEVEL% == 99 goto refuseDisk
echo Setting up boot record for %DISK%: ...
if %OS% == Windows_NT goto setupNT
goto setup95
:setupNT
\slax\boot\syslinux.exe -maf -d /slax/boot/ %DISK%:
if %ERRORLEVEL% == 0 goto setupEFI
goto errorFound
:setup95
\slax\boot\syslinux.com -maf -d /slax/boot/ %DISK%:
if %ERRORLEVEL% == 0 goto setupEFI
goto errorFound
:setupEFI
mkdir %DISK%:\EFI\Boot
copy \slax\boot\EFI\Boot\* %DISK%:\EFI\Boot
goto setupDone
:setupDone
echo Installation finished.
goto pauseit
:errorFound
color 4F
echo.
echo Error installing boot loader
goto pauseit
:refuseDisk
color 4F
echo.
echo Directory %DISK%:\slax\boot\ seems to be on the same physical disk as your Windows.
echo Installing bootloader would harm your Windows and thus is disabled.
echo Please use different drive and try again.
goto pauseit
:readOnly
color 4F
echo.
echo You're starting this installer from a read-only media, this will not work.
goto pauseit
:DiskNotFound
color 4F
echo.
echo Error: can't discover current drive letter
:pauseit
if "%1" == "auto" goto end
echo.
echo Press any key...
pause > nul
:end

158
linux-live/bootfiles/boot/bootinst.sh

@ -0,0 +1,158 @@
#!/bin/sh
#
# This script will setup booting from disk (USB or harddrive)
#
# If you see this file in a text editor instead of getting it executed,
# then it is missing executable permissions (chmod). You can try to set
# exec permissions for this file by using: chmod a+x bootinst.sh
# Alternatively, you may try to run bootinst.bat file instead
#
# Scrolling down will reveal the actual code of this script.
#
# if we're running this from X, re-run the script in konsole or xterm
if [ "$DISPLAY" != "" ]; then
if [ "$1" != "--rex" -a "$2" != "--rex" ]; then
konsole --nofork -e /bin/sh $0 --rex 2>/dev/null || xterm -e /bin/sh $0 --rex 2>/dev/null || /bin/sh $0 --rex 2>/dev/null
exit
fi
fi
# make sure I am root
if [ "$UID" != "0" -a "$UID" != "" ]; then
echo ""
echo "You are not root. You must run bootinst script as root."
echo "The bootinst script needs direct access to your boot device."
echo "Use sudo or kdesudo or similar wrapper to execute this."
read junk
exit 1
fi
# change working directory to dir from which we are started
CWD="$(pwd)"
BOOT="$(dirname "$0")"
BOOT="$(realpath "$BOOT" 2>/dev/null || echo $BOOT)"
cd "$BOOT"
# find out device and mountpoint
PART="$(df . | tail -n 1 | tr -s " " | cut -d " " -f 1)"
DEV="$(echo "$PART" | sed -r "s:[0-9]+\$::" | sed -r "s:([0-9])[a-z]+\$:\\1:i")" #"
# check if disk is already bootable. Mostly for Windows discovery
if [ "$(fdisk -l "$DEV" | fgrep "$DEV" | fgrep "*")" != "" ]; then
echo ""
echo "Partition $PART seems to be located on a physical disk,"
echo "which is already bootable. If you continue, your drive $DEV"
echo "will boot only Slax by default."
echo "Press [Enter] to continue, or [Ctrl+C] to abort..."
read junk
fi
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then ARCH=64; else ARCH=32; fi
EXTLINUX=extlinux.x$ARCH
if [ ! -x ./$EXTLINUX ]; then
# extlinux is not executable. There are two possible reasons:
# either the fs is mounted with noexec, or file perms are wrong.
# Try to fix both, no fail on error yet
mount -o remount,exec $DEV
chmod a+x ./$EXTLINUX
fi
if [ ! -x ./$EXTLINUX ]; then
# extlinux is still not executable. As a last try, copy it to .exe
# because the partition may be mounted with showexec option, from which
# we probably can't escape by remount
cp -f ./$EXTLINUX ./extlinux.exe
EXTLINUX=extlinux.exe
fi
# install syslinux bootloader
echo "* attempting to install bootloader to $BOOT..."
./"$EXTLINUX" --install "$BOOT"
if [ $? -ne 0 ]; then
echo "Error installing boot loader."
echo "Read the errors above and press enter to exit..."
read junk
exit 1
fi
if [ "$DEV" != "$PART" ]; then
# Setup MBR on the first block
echo "* setup MBR on $DEV"
dd bs=440 count=1 conv=notrunc if="$BOOT/mbr.bin" of="$DEV" 2>/dev/null
# Toggle bootable flags
echo "* set bootable flag for $PART"
PART="$(echo "$PART" | sed -r "s:.*[^0-9]::")"
(
fdisk -l "$DEV" | fgrep "*" | fgrep "$DEV" | cut -d " " -f 1 \
| sed -r "s:.*[^0-9]::" | xargs -I '{}' echo -ne "a\n{}\n"
echo a
echo $PART
echo w
) | fdisk $DEV >/dev/null 2>&1
fi
# UEFI boot loader
mkdir -p "$BOOT/../../EFI"
mv "EFI/Boot" "$BOOT/../../EFI/"
echo "Boot installation finished."
echo "Press Enter..."
read junk
cd "$CWD"

BIN
linux-live/bootfiles/boot/bootlogo-hd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
linux-live/bootfiles/boot/bootlogo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
linux-live/bootfiles/boot/extlinux.x32

Binary file not shown.

BIN
linux-live/bootfiles/boot/extlinux.x64

Binary file not shown.

19
linux-live/bootfiles/boot/help.txt

@ -0,0 +1,19 @@
Welcome
If you need to edit boot command line (for advanced users), hit [Tab].
When finished, press [Enter].
Keep changes persistent
Save all filesystem modifications to 'changes' directory and restore
those changes next time you boot. Only usable while running from a
writable media such as USB device or hard disk.
Copy to RAM
Copies all data to memory during startup so you can eject the boot device.
Requires enough RAM to store all modules and to run the system.

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

Loading…
Cancel
Save