OSGOS_D1/build.sh

153 lines
11 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# (GNU/General Public License version 3.0)
# Пошаговый процесс постройки Live-Build
# Система уже должна иметь live-build squashfs-tools syslinux-common syslinux-utils xorriso isolinux
# Рабочая директория
WKDIR="$(pwd)"
# Удаляем кеш иконок и топаем в папку output
[[ -f /usr/share/live/build/hooks/normal/0130-remove-gnome-icon-cache.hook.chroot ]] && rm /usr/share/live/build/hooks/normal/0130-remove-gnome-icon-cache.hook.chroot
mkdir output 2>/dev/null
cd output
# Первоначальная конфигурация
lb config \
--binary-images iso-hybrid \
--mode debian \
--architectures amd64 \
--linux-flavours amd64 \
--distribution bullseye \
--archive-areas "main contrib" \
--updates false \
--security false \
--cache true \
--apt-recommends true \
--mirror-binary https://updates.osgos.ru/ \
--mirror-binary-security https://security.osgos.ru/ \
--mirror-chroot https://updates.osgos.ru/packages/ \
--mirror-chroot-security https://security.osgos.ru/ \
--debian-installer live \
--debian-installer-gui true \
--bootappend-live "boot=live components quiet splash live-config.hostname=osgos live-config.user-fullname=Пользователь" \
--win32-loader false \
--iso-application osgos \
--iso-preparer osgos-https://osgos.ru/ \
--iso-publisher osgos-https://osgos.ru/ \
--iso-volume osgos
# Устанавливаем оконный менеджер и пакеты
echo "accountsservice alsa-utils cups cups-filters curl dbus-user-session dbus-x11 dconf-cli foomatic-db foomatic-db-engine fuse3 ghostscript gnome-keyring gvfs-backends gvfs-bin gvfs-fuse iw libnss-mdns libsmbclient light-locker lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings lsb-release mousepad netcat-openbsd network-manager-gnome network-manager-openconnect-gnome network-manager-openvpn-gnome pavucontrol perl plymouth plymouth-label policykit-1 printer-driver-gutenprint pulseaudio samba-common-bin sudo synaptic system-config-printer udisks2 upower xdg-utils xfce4 xfce4-goodies xfce4-power-manager xfce4-terminal xfce4-screenshooter xfce4-whiskermenu-plugin xfce4-xkb-plugin xorg xserver-xorg-input-all xserver-xorg-video-all xterm mugshot" > $WKDIR/output/config/package-lists/mydesktop.list.chroot
echo "aisleriot apt-transport-https arc-theme audacious audacious-plugins autoconf automake breeze-gtk-theme breeze-icon-theme btrfs-progs build-essential cdtool cdrdao cdrskin cifs-utils debconf debhelper dh-autoreconf dialog dirmngr dkms dos2unix dosbox dosfstools dvdauthor exfatprogs faad fakeroot ffmpeg flac frei0r-plugins galculator gdebi gir1.2-ibus-1.0 gnome-disk-utility gnome-nettool gnome-system-tools greybird-gtk-theme grsync gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-plugins-good gthumb guvcview hardinfo haveged htop hunspell-en-us hyphen-en-us ibus ibus-data ibus-gtk ibus-gtk3 iftop im-config inxi isolinux jfsutils lame less libegl1-mesa libibus-1.0-5 libgl1-mesa-glx libqt5opengl5 libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer libreoffice-gtk3 libreoffice-l10n-ru libreoffice-help-ru libxcb-xtest0 libxvidcore4 linux-headers-amd64 live-build lshw libu2f-udev fonts-liberation mencoder menu mjpegtools mpg321 mpv mtools mythes-en-us neofetch ntfs-3g numix-gtk-theme openconnect openvpn openvpn-systemd-resolved p7zip-full papirus-icon-theme pciutils python3-ibus-1.0 simple-scan smplayer smplayer-l10n smplayer-themes soundconverter sox squashfs-tools streamripper syslinux syslinux-common tango-icon-theme testdisk twolame unzip wget x265 x264 xfsprogs xorriso xscreensaver zip thunderbird thunderbird-l10n-ru ristretto krb5-user libpam-krb5 libpam-script samba smbclient winbind" > $WKDIR/output/config/package-lists/mypackages.list.chroot
echo "efibootmgr grub-common grub2-common grub-efi-amd64 grub-efi-amd64-bin grub-efi-amd64-signed grub-efi-ia32-bin grub-pc-bin libefiboot1 libefivar1 mokutil shim-helpers-amd64-signed shim-signed-common shim-unsigned" > $WKDIR/output/config/package-lists/grubuefi.list.binary
# Убери комментарий с 5 строк ниже чтобы включить Calamares Installer:
# echo "calamares calamares-settings-debian" > $WKDIR/output/config/package-lists/calamares.list.chroot
# mkdir -p $WKDIR/output/config/includes.chroot/etc/calamares/branding
# cp $WKDIR/calamares/settings.conf $WKDIR/output/config/includes.chroot/etc/calamares/settings.conf
# cp $WKDIR/calamares/usr/share/applications/install-debian.desktop $WKDIR/output/config/includes.chroot/usr/share/applications/install-debian.desktop
# cp -r $WKDIR/calamares/branding/osgos $WKDIR/output/config/includes.chroot/etc/calamares/branding/osgos
# Предварительно создаем папки в chroot
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/osgos
mkdir -p $WKDIR/output/config/includes.chroot/etc/skel/.config
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/backgrounds
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/icons/default
mkdir -p $WKDIR/output/config/includes.chroot/usr/local/bin
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/applications
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/doc/osgos
mkdir -p $WKDIR/output/config/includes.chroot/etc/skel/Desktop
mkdir -p $WKDIR/output/config/includes.chroot/etc/apt
mkdir -p $WKDIR/output/config/includes.chroot/usr/lib
mkdir -p $WKDIR/output/config/includes.chroot/etc/plymouth
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/desktop-base/homeworld-theme
mkdir -p $WKDIR/output/config/includes.chroot/etc/default
mkdir -p $WKDIR/output/config/includes.chroot/etc/lightdm
mkdir -p $WKDIR/output/config/includes.chroot/etc/xdg/xfce4
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/icons
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/themes
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/libpam-script
mkdir -p $WKDIR/output/config/includes.chroot/etc/pam.d
mkdir -p $WKDIR/output/config/includes.chroot/usr/share/locale/ru/LC_MESSAGES
mkdir -p $WKDIR/output/config/includes.chroot/sbin
mkdir -p $WKDIR/output/config/includes.chroot/etc/systemd/system
# Копируем измененные файлы в chroot
cp -r $WKDIR/bootloaders $WKDIR/output/config/
cp -r $WKDIR/xfce4 $WKDIR/output/config/includes.chroot/etc/skel/.config/
cp $WKDIR/configs/helpers.rc $WKDIR/output/config/includes.chroot/etc/xdg/xfce4/helpers.rc
cp $WKDIR/configs/user-dirs.defaults $WKDIR/output/config/includes.chroot/etc/xdg/user-dirs.defaults
cp $WKDIR/sources/apt.conf $WKDIR/output/config/includes.chroot/etc/apt/apt.conf
cp $WKDIR/configs/os-release $WKDIR/output/config/includes.chroot/etc/os-release
cp $WKDIR/configs/os-release $WKDIR/output/config/includes.chroot/usr/lib/os-release
cp $WKDIR/configs/plymouthd.conf $WKDIR/output/config/includes.chroot/etc/plymouth/plymouthd.conf
cp -r $WKDIR/themes/plymouth/* $WKDIR/output/config/includes.chroot/usr/share/desktop-base/homeworld-theme/
cp -r $WKDIR/themes/colors/* $WKDIR/output/config/includes.chroot/usr/share/themes/
cp $WKDIR/configs/keyboard $WKDIR/output/config/includes.chroot/etc/default/keyboard
cp $WKDIR/configs/preseed.cfg $WKDIR/output/config/includes.installer/
cp $WKDIR/configs/issue $WKDIR/output/config/includes.chroot/etc/issue
cp $WKDIR/configs/issue.net $WKDIR/output/config/includes.chroot/etc/issue.net
cp $WKDIR/configs/motd $WKDIR/output/config/includes.chroot/etc/motd
cp $WKDIR/configs/sysctl.conf $WKDIR/output/config/includes.chroot/etc/sysctl.conf
cp $WKDIR/configs/lightdm-gtk-greeter.conf $WKDIR/output/config/includes.chroot/etc/lightdm/lightdm-gtk-greeter.conf
tar zxvf $WKDIR/themes/icons/Wings-Light-Icons.tgz -C $WKDIR/output/config/includes.chroot/usr/share/icons/
cp $WKDIR/configs/pam_script_acct $WKDIR/output/config/includes.chroot/usr/share/libpam-script/
cp -r $WKDIR/configs/pam.d/* $WKDIR/output/config/includes.chroot/etc/pam.d/
cp $WKDIR/configs/krb5.conf $WKDIR/output/config/includes.chroot/etc/
cp -r $WKDIR/locale/* $WKDIR/output/config/includes.chroot/usr/share/locale/ru/LC_MESSAGES/
cp $WKDIR/backgrounds/* $WKDIR/output/config/includes.chroot/usr/share/backgrounds/
# Дополительные скрипты для пользователя и системы
cp $WKDIR/scripts/* $WKDIR/output/config/includes.chroot/usr/local/bin/
# Иконки и дополнительные ярлыки
cp $WKDIR/icons/* $WKDIR/output/config/includes.chroot/usr/share/icons/default/
cp $WKDIR/launchers/* $WKDIR/output/config/includes.chroot/usr/share/applications/
# Хелпер для справки, регистрации, магазина
cp $WKDIR/custom/helper/build/helper $WKDIR/output/config/includes.chroot/usr/local/bin/
cp -r $WKDIR/doc/* $WKDIR/output/config/includes.chroot/usr/share/doc/osgos/
# Диспетчер приложений(магазин)
cp $WKDIR/custom/shop-client/build/shop-client $WKDIR/output/config/includes.chroot/usr/local/bin/shop
cp -r $WKDIR/custom/shop-client/build/web $WKDIR/output/config/includes.chroot/usr/share/doc/osgos/shop
cp $WKDIR/configs/shop.service $WKDIR/output/config/includes.chroot/etc/systemd/system
# Сервис регистрации
cp $WKDIR/custom/reg-client/build/reg-client $WKDIR/output/config/includes.chroot/sbin/starter
cp -r $WKDIR/custom/reg-client/build/web $WKDIR/output/config/includes.chroot/usr/share/doc/osgos/reg
cp $WKDIR/configs/reg.service $WKDIR/output/config/includes.chroot/etc/systemd/system
# Вносим изменения в систему установщика
mkdir -p $WKDIR/output/config/includes.installer/usr/share/graphics/
cp $WKDIR/installer/graphics/* $WKDIR/output/config/includes.installer/usr/share/graphics/
mkdir -p $WKDIR/output/config/includes.installer/var/lib/dpkg/info/
cp $WKDIR/installer/main-menu.templates $WKDIR/output/config/includes.installer/var/lib/dpkg/info/
# Дополнительные пакеты для установки
if [ ! -f $WKDIR/misc64/chromium-*.deb ]; then
wget https://github.com/deemru/Chromium-Gost/releases/download/111.0.5563.64/chromium-gost-111.0.5563.64-linux-amd64.deb -O $WKDIR/misc64/chromium-gost-111.0.5563.64-linux-amd64.deb
fi
if [ ! -f $WKDIR/misc64/linux-image-*.deb ]; then
echo "скомпилируй ядро и положи в misc64"
exit 1
fi
dpkg-name $WKDIR/misc64/*.deb
cp $WKDIR/misc64/*.deb $WKDIR/output/config/packages.chroot/
cp $WKDIR/misc64/*.deb $WKDIR/output/config/packages.binary/
cp $WKDIR/misc64/*.udeb $WKDIR/output/config/packages.binary/
# Финальные правки
cp $WKDIR/sources/sources.list $WKDIR/output/config/archives/debian-updates-security-backports.list.binary
cp $WKDIR/sources/sources.list $WKDIR/output/config/archives/debian-updates-security-backports.list.chroot
cp $WKDIR/hooks/0999-remove-unwanted-packages.hook.chroot $WKDIR/output/config/hooks/normal/
cp $WKDIR/hooks/0998-startup-fix.hook.chroot $WKDIR/output/config/hooks/live/
# Начинаем процесс постройки
time lb build