OSGOS_D1/build.sh

153 lines
11 KiB
Bash
Raw Permalink Normal View History

2024-01-30 07:10:17 +00:00
#!/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