Reorganized the builder to as a python project, it allows
for more, scalable processes and logging

Signed-off-by: debianpepper <pdpdebdevuan@protonmail.com>
This commit is contained in:
debianpepper 2025-03-10 13:51:03 +09:00
parent 63796b5401
commit 04c12b8cfd
1502 changed files with 7825 additions and 8524 deletions

View File

@ -1,90 +0,0 @@
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 PeppermintOS Team (peppermintosteam@proton.me)
# This Make file is used to execute the different parts if the bubble system
# by running for example deb64 will chain execute copy_fls, copy_flders and
# inflate to build an ISO . To begin a fresh skeleton, you need to run only
# fresh...after that. As build sare release for publication you can run nightly
# or release to move the files to your web server location the
# run the build you need.
# None of these steps need to run as root all this can be ran ad a normal user
PY_PATH = ~/bubbles/python_modules
## 64 bit ISOs
dev64xfce:
python3 ${PY_PATH}/build_iso.py set e-xfce b-dev64
deb64xfce:
python3 ${PY_PATH}/build_iso.py set e-xfce b-deb64
deb64gfb:
python3 ${PY_PATH}/build_iso.py set e-gnomefb b-deb64
dev64gfb:
python3 ${PY_PATH}/build_iso.py set e-gnomefb b-dev64
deb64opb:
python3 ${PY_PATH}/build_iso.py set e-openbox b-deb64
dev64opb:
python3 ${PY_PATH}/build_iso.py set e-openbox b-dev64
## 32 bit ISOs
deb32xfce:
python3 ${PY_PATH}/build_iso.py set e-xfce b-deb32
dev32xfce:
python3 ${PY_PATH}/build_iso.py set e-xfce b-dev32
deb32gfb:
python3 ${PY_PATH}/build_iso.py set e-gnomefb b-deb32
dev32gfb:
python3 ${PY_PATH}/build_iso.py set e-gnomefb b-dev32
deb32opb:
python3 ${PY_PATH}/build_iso.py set e-openbox b-deb32
dev32opb:
python3 ${PY_PATH}/build_iso.py set e-openbox b-dev32
## arm ISOs
debarmxfce:
python3 ${PY_PATH}/build_iso.py set e-xfce b-debarm
devarmxfce:
python3 ${PY_PATH}/build_iso.py set e-xfce b-devarm
debarmgfb:
python3 ${PY_PATH}/build_iso.py set e-gnomefb b-debarm
devarmgfb:
python3 ${PY_PATH}/build_iso.py set e-gnomefb b-devarm
debarmopb:
python3 ${PY_PATH}/build_iso.py set e-openbox b-debarm
devarmopb:
python3 ${PY_PATH}/build_iso.py set e-openbox b-devarm
## loaded isos
deb64loadxf:
python3 ${PY_PATH}/build_iso.py set e-loadxf b-deb64
dev64loadxf:
python3 ${PY_PATH}/build_iso.py set e-loadxf b-dev64
deb32loadxf:
python3 ${PY_PATH}/build_iso.py set e-loadxf b-deb32
dev32loadxf:
python3 ${PY_PATH}/build_iso.py set e-loadxf b-dev32
## server isos
debserver:
python3 ${PY_PATH}/build_iso.py set e-server b-deb64
devserver:
python3 ${PY_PATH}/build_iso.py set e-server b-dev64
## Mini isos
deb64mini:
python3 ${PY_PATH}/build_iso.py set e-mini b-deb64
dev64mini:
python3 ${PY_PATH}/build_iso.py set e-mini b-dev64
deb32mini:
python3 ${PY_PATH}/build_iso.py set e-mini b-deb32
dev32mini:
python3 ${PY_PATH}/build_iso.py set e-mini b-dev32
release:
python3 ${PY_PATH}/release.py
# run this to start with a blank shell for
# config folders/
fresh:
python3 ${PY_PATH}/fresh_bubble.py

149
README.md
View File

@ -1,29 +1,97 @@
# Bubbles # Bubbles
Bubbles is an ISO builder for debian based operating systems, written in python. Bubbles is an ISO builder for debian based operating systems, written in
python.
Why does bubbles exist?
The Peppermint OS team builds multiple ISOs. for example the folllowing
ISOs are currently able to be build.
Flagship:
These builds are designed for users who prefer a clean, system without
unnecessary bloat. At the same time, they come with just enough
essential packages to provide a functional, ready-to-use setup.
From there, users can customize the system to better suit their
specific needs without the hassle of undoing pre-installed settings or
removing unwanted packages, saving valuable time. It's entirely up to
the user to install the packages that best align with their preferences
and requirements.
- XFCE 64 bit Debian / Devuan
- XFCE 32 bit Debian / Devuan
- XFCE ARM Debian / Devuan
Loaded:
These builds come with a significantly larger selection of pre-installed
software, catering to users who expect a more comprehensive,
out-of-the-box experience. Compared to the flagship build, they include
far more packages, providing a ready-to-use system with enhanced
functionality right from the start.
- XFCE 64 bit Debian / Devuan
- XFCE 32 bit Debian / Devuan
Mini:
A minimum installation, or "mini install," refers to an operating system
installation process where no software is pre-installed on the system.
Instead, the user determines how to configure and customize the system
during the installation process. This method provides flexibility,
allowing users to tailor the setup to their specific needs without
unnecessary preloaded software, ensuring a clean and efficient system
configuration from the start
- 64 bit Debian / Devuan
Server:
Similar to the mini ISO the diffennce this has some addtion sever admin
related tools shipped with it.
- 64 bit Debian / Devuan
Community builds:
These builds are ISOs maintained by dedicated community members who have
taken the initiative to support and develop them. Essentially, someone
in the community has decided to create and maintain a specific desktop
environment, tailoring it to align with the unique "Pepperminty" style.
Theyve carefully identified the configurations and settings that embody
the essence of PeppermintOS, ensuring each ISO delivers a consistent and
cohesive experience.
- Gnome Flashback 64 bit Debian / Devuan
- KDE 64 bit Debian / Devuan
- OpenBox 64 bit Debian / Devuan
- Mate Debian 64 bit / Devuan
This application uses [GNU make](https://www.gnu.org/software/make/manual/make.html)
to bring all the modules together as a semi-automated build system.
It does use the debian live build tools to build and create the ISO. It does use the debian live build tools to build and create the ISO.
for the Debian and Devuanbased ISO
Requirements needed to use Bubbles: Requirements needed to use Bubbles:
- debian live-build tools - debian live-build tools
- python3 - python3
- gnu make
**Usage** - The Peppermint ISO collection consists of: **Usage** - The Peppermint ISO collection consists of:
- 32/64 bit - 32/64 bit
- ARM - ARM
- Systemd/NonSystemd - Systemd/NonSystemd
- That would be
- SysVinit
- Runit
- OpenRC
## Understand the folder structure ## Understand the folder structure
Every piece of the ISO broken down in to a modular structure i.e. the folder The ISO is organized into a modular folder structure, as seen in the
structure you see in the **iso_configs**. Some folders are shared common files iso_configs directory. Some folders contain shared files that are used
that all ISOs will use other folders are broken down by specific architecture. across all ISOs, while others are specific to certain architectures.
This makes it easier to scale and mainatain as things change over time. This modular design makes it easier to manage, update, and scale the
system as changes are introduced over time.
Here is a grouping break-down of the folders Here is a grouping break-down of the folders
@ -31,42 +99,52 @@ Here is a grouping break-down of the folders
- aliases - for use of custom bash aliases - aliases - for use of custom bash aliases
- application - the location for custom application .desktop files - application - the location for custom application .desktop files
- auto start - launches the welcome screen - auto start - launches the welcome screen and other auto start apps
- browser_profiles - Used for different web browser profile settings
- database - a place to puts any custom sqlite database files - database - a place to puts any custom sqlite database files
- desktop_base - used to put custom, custome base themes - build_type - used to help identifiy the kind of build to compile
- desktop_base - used to put custom, custom base themes
- face - set the login thumbnail - face - set the login thumbnail
- font - any fonts that need to be installed - font - any fonts that need to be installed
- hooks - confogurations that are used during the build process. - gnome-flashback - gnomeflashback configurations
- hooks - configurations that are used during the build process.
- id_files - used for build identification - id_files - used for build identification
- icons - put icons here to share them wil all builds. - icons - put icons here to share them wil all builds.
- issue - version files for the syste, change to your build name /version - issue - version files for the syste, change to your build name /version
- kde - kde configurations
- lightdm - used for the light dm login manager - lightdm - used for the light dm login manager
- loaded - loaded configurations
- logs - This will stor ethe logs create dureing bubbles compilations
- menu - default menu settings - menu - default menu settings
- neofetch - neofetch configurations
- PepProPixMaps - the peptools icons - PepProPixMaps - the peptools icons
- PepProTools - the Peppemrint tools executables - PepProTools - the Peppemrint tools executables
- plymouth - update the plymouth boot screens - plymouth - update the plymouth boot screens
- pmostools - these are the peppermint tools
- polkit - manage the policy kits settings - polkit - manage the policy kits settings
- profile - setup the default profile configuration - profile - setup the default profile configuration
- pylibraries - python libraries that are not inluded as standard
- server - server configurations
- theme - this will apply the themes to all your builds - theme - this will apply the themes to all your builds
- user_config - Default live user configuration - user_config - Default live user configuration
- wallpaper - stanard wallpaper location - wallpaper - stanard wallpaper location
- xfce - xfce configurations - xfce - xfce configurations
- gnome-flashback - gnome flashback configurations - gnome-flashback - gnome flashback configurations
- openbox - open box configurations - openbox - open box configurations
- pmosyools - all the peppemrint os tools
- pylibraires - python libraires used for custom pep tools
### Architecture Specific ### Architecture Specific
- info - Mirror and info settings
- multimedia - keys and repo settings
- sources - defaults repo sources list
- splash - Grub bood splash configurations
- os-release - OS version and tesgging settings
- calamares_settings - Calamares installer configurations - calamares_settings - Calamares installer configurations
- grub - Manage the grub settings pers build. - grub - Manage the grub settings pers build.
- info - Mirror and info settings
- installer - configurations for the debain installer
- multimedia - keys and repo settings
- os-release - OS version and tesgging settings
- sources - defaults repo sources list
- splash - Grub bood splash configurations
Each folder in this area has subfolders broken down by: Each folder in this area has subfolders broken down by:
- Debian 32/64/arm - Debian 32/64/arm
- Devuan 32/64/arm - Devuan 32/64/arm
@ -75,11 +153,32 @@ As you have a need to maintain separate configuration files for each build
this is where you place your files. this is where you place your files.
*For example:* *For example:*
If you have Calamares Settings configuration files ONLY for the Devuan 32 bit If you have Calamares Settings configuration files ONLY for the Devuan
ISO, then you put those files in the /calamares_settings/dev_32/ directory. ISO, then you put those files in the /calamares_settings/dev/ directory.
Make any modifications to the fole in the configurations above. Make any modifications to the fole in the configurations above.
When you have done that make sure you are in the bubbles directory. When you have done that make sure you are in the bubbles directory.
Then in temerinal run for example ```make deb64``` to build the 64 bit iso.
if you want to run other builds you would use the make command with one of the ### How to use bubbles
following deb32, dev64, dev32, debarm or devarm.
- Clone the bubbles repo to /Your_Home_folder/
- In terminal ```cd``` into bubbles
To see the options available use
```python3 -m python_modules.build_iso help```
From there you can use those arguments to compile the ISO that best
fits your needs.
Once ths files are ready they will be stored in the follwoing location
```/var/www/html/nightly/```
From there you can see the kind of build you are looking for.

View File

View File

View File

@ -1,3 +0,0 @@
; gedit GtkAccelMap rc-file -*- scheme -*-
; this file is an automated accelerator map dump
;

View File

@ -0,0 +1,864 @@
# See this wiki page for more info:
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
print_info() {
info title
info underline
info "OS" distro
info "Host" model
info "Kernel" kernel
info "Uptime" uptime
info "Packages" packages
info "Shell" shell
info "Resolution" resolution
info "DE" de
info "WM" wm
info "WM Theme" wm_theme
info "Theme" theme
info "Icons" icons
info "Terminal" term
info "Terminal Font" term_font
info "CPU" cpu
info "GPU" gpu
info "Memory" memory
# info "GPU Driver" gpu_driver # Linux/macOS only
# info "CPU Usage" cpu_usage
# info "Disk" disk
# info "Battery" battery
# info "Font" font
# info "Song" song
# [[ "$player" ]] && prin "Music Player" "$player"
# info "Local IP" local_ip
# info "Public IP" public_ip
# info "Users" users
# info "Locale" locale # This only works on glibc systems.
info cols
}
# Title
# Hide/Show Fully qualified domain name.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --title_fqdn
title_fqdn="off"
# Kernel
# Shorten the output of the kernel function.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --kernel_shorthand
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
#
# Example:
# on: '4.8.9-1-ARCH'
# off: 'Linux 4.8.9-1-ARCH'
kernel_shorthand="on"
# Distro
# Shorten the output of the distro function
#
# Default: 'off'
# Values: 'on', 'tiny', 'off'
# Flag: --distro_shorthand
# Supports: Everything except Windows and Haiku
distro_shorthand="off"
# Show/Hide OS Architecture.
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --os_arch
#
# Example:
# on: 'Arch Linux x86_64'
# off: 'Arch Linux'
os_arch="on"
# Uptime
# Shorten the output of the uptime function
#
# Default: 'on'
# Values: 'on', 'tiny', 'off'
# Flag: --uptime_shorthand
#
# Example:
# on: '2 days, 10 hours, 3 mins'
# tiny: '2d 10h 3m'
# off: '2 days, 10 hours, 3 minutes'
uptime_shorthand="on"
# Memory
# Show memory pecentage in output.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --memory_percent
#
# Example:
# on: '1801MiB / 7881MiB (22%)'
# off: '1801MiB / 7881MiB'
memory_percent="off"
# Change memory output unit.
#
# Default: 'mib'
# Values: 'kib', 'mib', 'gib'
# Flag: --memory_unit
#
# Example:
# kib '1020928KiB / 7117824KiB'
# mib '1042MiB / 6951MiB'
# gib: ' 0.98GiB / 6.79GiB'
memory_unit="mib"
# Packages
# Show/Hide Package Manager names.
#
# Default: 'tiny'
# Values: 'on', 'tiny' 'off'
# Flag: --package_managers
#
# Example:
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
# tiny: '908 (pacman, flatpak, snap)'
# off: '908'
package_managers="on"
# Shell
# Show the path to $SHELL
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --shell_path
#
# Example:
# on: '/bin/bash'
# off: 'bash'
shell_path="off"
# Show $SHELL version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --shell_version
#
# Example:
# on: 'bash 4.4.5'
# off: 'bash'
shell_version="on"
# CPU
# CPU speed type
#
# Default: 'bios_limit'
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
# Flag: --speed_type
# Supports: Linux with 'cpufreq'
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
speed_type="bios_limit"
# CPU speed shorthand
#
# Default: 'off'
# Values: 'on', 'off'.
# Flag: --speed_shorthand
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
#
# Example:
# on: 'i7-6500U (4) @ 3.1GHz'
# off: 'i7-6500U (4) @ 3.100GHz'
speed_shorthand="off"
# Enable/Disable CPU brand in output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_brand
#
# Example:
# on: 'Intel i7-6500U'
# off: 'i7-6500U (4)'
cpu_brand="on"
# CPU Speed
# Hide/Show CPU speed.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_speed
#
# Example:
# on: 'Intel i7-6500U (4) @ 3.1GHz'
# off: 'Intel i7-6500U (4)'
cpu_speed="on"
# CPU Cores
# Display CPU cores in output
#
# Default: 'logical'
# Values: 'logical', 'physical', 'off'
# Flag: --cpu_cores
# Support: 'physical' doesn't work on BSD.
#
# Example:
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
# off: 'Intel i7-6500U @ 3.1GHz'
cpu_cores="logical"
# CPU Temperature
# Hide/Show CPU temperature.
# Note the temperature is added to the regular CPU function.
#
# Default: 'off'
# Values: 'C', 'F', 'off'
# Flag: --cpu_temp
# Supports: Linux, BSD
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
# coretemp kernel module. This only supports newer Intel processors.
#
# Example:
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
# off: 'Intel i7-6500U (4) @ 3.1GHz'
cpu_temp="off"
# GPU
# Enable/Disable GPU Brand
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gpu_brand
#
# Example:
# on: 'AMD HD 7950'
# off: 'HD 7950'
gpu_brand="on"
# Which GPU to display
#
# Default: 'all'
# Values: 'all', 'dedicated', 'integrated'
# Flag: --gpu_type
# Supports: Linux
#
# Example:
# all:
# GPU1: AMD HD 7950
# GPU2: Intel Integrated Graphics
#
# dedicated:
# GPU1: AMD HD 7950
#
# integrated:
# GPU1: Intel Integrated Graphics
gpu_type="all"
# Resolution
# Display refresh rate next to each monitor
# Default: 'off'
# Values: 'on', 'off'
# Flag: --refresh_rate
# Supports: Doesn't work on Windows.
#
# Example:
# on: '1920x1080 @ 60Hz'
# off: '1920x1080'
refresh_rate="off"
# Gtk Theme / Icons / Font
# Shorten output of GTK Theme / Icons / Font
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --gtk_shorthand
#
# Example:
# on: 'Numix, Adwaita'
# off: 'Numix [GTK2], Adwaita [GTK3]'
gtk_shorthand="off"
# Enable/Disable gtk2 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk2
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Adwaita [GTK3]'
gtk2="on"
# Enable/Disable gtk3 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk3
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Numix [GTK2]'
gtk3="on"
# IP Address
# Website to ping for the public IP
#
# Default: 'http://ident.me'
# Values: 'url'
# Flag: --ip_host
public_ip_host="http://ident.me"
# Public IP timeout.
#
# Default: '2'
# Values: 'int'
# Flag: --ip_timeout
public_ip_timeout=2
# Desktop Environment
# Show Desktop Environment version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --de_version
de_version="on"
# Disk
# Which disks to display.
# The values can be any /dev/sdXX, mount point or directory.
# NOTE: By default we only show the disk info for '/'.
#
# Default: '/'
# Values: '/', '/dev/sdXX', '/path/to/drive'.
# Flag: --disk_show
#
# Example:
# disk_show=('/' '/dev/sdb1'):
# 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
#
# disk_show=('/'):
# 'Disk (/): 74G / 118G (66%)'
#
disk_show=('/')
# Disk subtitle.
# What to append to the Disk subtitle.
#
# Default: 'mount'
# Values: 'mount', 'name', 'dir', 'none'
# Flag: --disk_subtitle
#
# Example:
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
#
# mount: 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
#
# dir: 'Disk (/): 74G / 118G (66%)'
# 'Disk (Local Disk): 74G / 118G (66%)'
# 'Disk (Videos): 74G / 118G (66%)'
#
# none: 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
disk_subtitle="mount"
# Disk percent.
# Show/Hide disk percent.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --disk_percent
#
# Example:
# on: 'Disk (/): 74G / 118G (66%)'
# off: 'Disk (/): 74G / 118G'
disk_percent="on"
# Song
# Manually specify a music player.
#
# Default: 'auto'
# Values: 'auto', 'player-name'
# Flag: --music_player
#
# Available values for 'player-name':
#
# amarok
# audacious
# banshee
# bluemindo
# clementine
# cmus
# deadbeef
# deepin-music
# dragon
# elisa
# exaile
# gnome-music
# gmusicbrowser
# gogglesmm
# guayadeque
# io.elementary.music
# iTunes
# juk
# lollypop
# mocp
# mopidy
# mpd
# muine
# netease-cloud-music
# olivia
# playerctl
# pogo
# pragha
# qmmp
# quodlibet
# rhythmbox
# sayonara
# smplayer
# spotify
# strawberry
# tauonmb
# tomahawk
# vlc
# xmms2d
# xnoise
# yarock
music_player="auto"
# Format to display song information.
#
# Default: '%artist% - %album% - %title%'
# Values: '%artist%', '%album%', '%title%'
# Flag: --song_format
#
# Example:
# default: 'Song: Jet - Get Born - Sgt Major'
song_format="%artist% - %album% - %title%"
# Print the Artist, Album and Title on separate lines
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --song_shorthand
#
# Example:
# on: 'Artist: The Fratellis'
# 'Album: Costello Music'
# 'Song: Chelsea Dagger'
#
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
song_shorthand="off"
# 'mpc' arguments (specify a host, password etc).
#
# Default: ''
# Example: mpc_args=(-h HOST -P PASSWORD)
mpc_args=()
# Text Colors
# Text Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --colors
#
# Each number represents a different part of the text in
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
#
# Example:
# colors=(distro) - Text is colored based on Distro colors.
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
colors=(distro)
# Text Options
# Toggle bold text
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bold
bold="on"
# Enable/Disable Underline
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --underline
underline_enabled="on"
# Underline character
#
# Default: '-'
# Values: 'string'
# Flag: --underline_char
underline_char="-"
# Info Separator
# Replace the default separator with the specified string.
#
# Default: ':'
# Flag: --separator
#
# Example:
# separator="->": 'Shell-> bash'
# separator=" =": 'WM = dwm'
separator=":"
# Color Blocks
# Color block range
# The range of colors to print.
#
# Default: '0', '15'
# Values: 'num'
# Flag: --block_range
#
# Example:
#
# Display colors 0-7 in the blocks. (8 colors)
# neofetch --block_range 0 7
#
# Display colors 0-15 in the blocks. (16 colors)
# neofetch --block_range 0 15
block_range=(0 15)
# Toggle color blocks
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --color_blocks
color_blocks="off"
# Color block width in spaces
#
# Default: '3'
# Values: 'num'
# Flag: --block_width
block_width=3
# Color block height in lines
#
# Default: '1'
# Values: 'num'
# Flag: --block_height
block_height=1
# Color Alignment
#
# Default: 'auto'
# Values: 'auto', 'num'
# Flag: --col_offset
#
# Number specifies how far from the left side of the terminal (in spaces) to
# begin printing the columns, in case you want to e.g. center them under your
# text.
# Example:
# col_offset="auto" - Default behavior of neofetch
# col_offset=7 - Leave 7 spaces then print the colors
col_offset="auto"
# Progress Bars
# Bar characters
#
# Default: '-', '='
# Values: 'string', 'string'
# Flag: --bar_char
#
# Example:
# neofetch --bar_char 'elapsed' 'total'
# neofetch --bar_char '-' '='
bar_char_elapsed="-"
bar_char_total="="
# Toggle Bar border
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bar_border
bar_border="on"
# Progress bar length in spaces
# Number of chars long to make the progress bars.
#
# Default: '15'
# Values: 'num'
# Flag: --bar_length
bar_length=15
# Progress bar colors
# When set to distro, uses your distro's logo colors.
#
# Default: 'distro', 'distro'
# Values: 'distro', 'num'
# Flag: --bar_colors
#
# Example:
# neofetch --bar_colors 3 4
# neofetch --bar_colors distro 5
bar_color_elapsed="distro"
bar_color_total="distro"
# Info display
# Display a bar with the info.
#
# Default: 'off'
# Values: 'bar', 'infobar', 'barinfo', 'off'
# Flags: --cpu_display
# --memory_display
# --battery_display
# --disk_display
#
# Example:
# bar: '[---=======]'
# infobar: 'info [---=======]'
# barinfo: '[---=======] info'
# off: 'info'
cpu_display="off"
memory_display="off"
battery_display="off"
disk_display="off"
# Backend Settings
# Image backend.
#
# Default: 'ascii'
# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
# Flag: --backend
image_backend="off"
# Image Source
#
# Which image or ascii file to display.
#
# Default: 'auto'
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
# Flag: --source
#
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
# In ascii mode, distro ascii art will be used and in an image mode, your
# wallpaper will be used.
image_source="off"
# Ascii Options
# Ascii distro
# Which distro's ascii art to display.
#
# Default: 'auto'
# Values: 'auto', 'distro_name'
# Flag: --ascii_distro
# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
# and IRIX have ascii logos
# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
# Use '{distro name}_old' to use the old logos.
# NOTE: Ubuntu has flavor variants.
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
# postmarketOS, and Void have a smaller logo variant.
# Use '{distro name}_small' to use the small variants.
ascii_distro="none"
# Ascii Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --ascii_colors
#
# Example:
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
ascii_colors=(distro)
# Bold ascii logo
# Whether or not to bold the ascii logo.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --ascii_bold
ascii_bold="on"
# Image Options
# Image loop
# Setting this to on will make neofetch redraw the image constantly until
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --loop
image_loop="off"
# Thumbnail directory
#
# Default: '~/.cache/thumbnails/neofetch'
# Values: 'dir'
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
# Crop mode
#
# Default: 'normal'
# Values: 'normal', 'fit', 'fill'
# Flag: --crop_mode
#
# See this wiki page to learn about the fit and fill options.
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
crop_mode="normal"
# Crop offset
# Note: Only affects 'normal' crop mode.
#
# Default: 'center'
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
# 'east', 'southwest', 'south', 'southeast'
# Flag: --crop_offset
crop_offset="center"
# Image size
# The image is half the terminal width by default.
#
# Default: 'auto'
# Values: 'auto', '00px', '00%', 'none'
# Flags: --image_size
# --size
image_size="auto"
# Gap between image and text
#
# Default: '3'
# Values: 'num', '-num'
# Flag: --gap
gap=3
# Image offsets
# Only works with the w3m backend.
#
# Default: '0'
# Values: 'px'
# Flags: --xoffset
# --yoffset
yoffset=0
xoffset=0
# Image background color
# Only works with the w3m backend.
#
# Default: ''
# Values: 'color', 'blue'
# Flag: --bg_color
background_color=
# Misc Options
# Stdout mode
# Turn off all colors and disables image backend (ASCII/Image).
# Useful for piping into another command.
# Default: 'off'
# Values: 'on', 'off'
stdout="off"

View File

@ -1,3 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks_live.py

View File

@ -0,0 +1,3 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks_live.py

View File

@ -0,0 +1,3 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py

View File

@ -0,0 +1,9 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
## This script will remove unnecessary files and folders and reduce the size of the iso.
# Remove live folder from binary.
rm -r live

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,62 +0,0 @@
#!/bin/bash
# Script to be used as a hook in Debian Live-Build
# to install Firefox from the official Mozilla repository along with all available language packs
# Function to set up the Mozilla repository and GPG key
setup_repository_and_key() {
echo "Setting up Mozilla repository and GPG key for Firefox..."
# Create directory to store the APT repository keyring if it doesn't exist
install -d -m 0755 /etc/apt/keyrings
# Import the Mozilla APT repository authentication key
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
# Verify the GPG key fingerprint
expected_fingerprint="35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3"
actual_fingerprint=$(gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); print $0}')
if [ "$actual_fingerprint" == "$expected_fingerprint" ]; then
echo "The GPG key fingerprint matches: $actual_fingerprint."
else
echo "Verification failed: the GPG key fingerprint ($actual_fingerprint) does not match the expected one ($expected_fingerprint)."
exit 1
fi
# Add the Mozilla APT repository to the sources list
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" > /etc/apt/sources.list.d/mozilla.list
# Configure APT to prioritize packages from the Mozilla repository
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' > /etc/apt/preferences.d/mozilla
# Update the package list
apt-get update
}
# Function to install Firefox and available language packs
install_firefox() {
echo "Installing Firefox and its language packs..."
# Install Firefox
apt-get install -y firefox
# Install all available Firefox language packs
apt-get install -y $(apt-cache search firefox-l10n | awk '{print $1}')
}
# Main execution of the script
main() {
setup_repository_and_key
install_firefox
echo "Firefox installation completed."
}
# Execute the main function
main

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,62 +0,0 @@
#!/bin/bash
# Script to be used as a hook in Debian Live-Build
# to install Firefox from the official Mozilla repository along with all available language packs
# Function to set up the Mozilla repository and GPG key
setup_repository_and_key() {
echo "Setting up Mozilla repository and GPG key for Firefox..."
# Create directory to store the APT repository keyring if it doesn't exist
install -d -m 0755 /etc/apt/keyrings
# Import the Mozilla APT repository authentication key
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
# Verify the GPG key fingerprint
expected_fingerprint="35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3"
actual_fingerprint=$(gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); print $0}')
if [ "$actual_fingerprint" == "$expected_fingerprint" ]; then
echo "The GPG key fingerprint matches: $actual_fingerprint."
else
echo "Verification failed: the GPG key fingerprint ($actual_fingerprint) does not match the expected one ($expected_fingerprint)."
exit 1
fi
# Add the Mozilla APT repository to the sources list
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" > /etc/apt/sources.list.d/mozilla.list
# Configure APT to prioritize packages from the Mozilla repository
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' > /etc/apt/preferences.d/mozilla
# Update the package list
apt-get update
}
# Function to install Firefox and available language packs
install_firefox() {
echo "Installing Firefox and its language packs..."
# Install Firefox
apt-get install -y firefox
# Install all available Firefox language packs
apt-get install -y $(apt-cache search firefox-l10n | awk '{print $1}')
}
# Main execution of the script
main() {
setup_repository_and_key
install_firefox
echo "Firefox installation completed."
}
# Execute the main function
main

View File

@ -1,31 +0,0 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
# Exit immediately if a command exits with a non-zero status
set -e
# Function to remove NVIDIA software
remove_nvidia_packages() {
echo "Removing NVIDIA-related packages..."
if dpkg -l | grep -q nvidia; then
apt-get --purge --yes autoremove nvidia*
echo "NVIDIA packages removed successfully."
else
echo "No NVIDIA packages found to remove."
fi
}
# Main function
main() {
remove_nvidia_packages
echo "Software removal process completed."
}
# Run the main function
main
exit 0

View File

@ -0,0 +1,12 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
### Error checking added to "lint-trap" section.
### Missing files no longer cause builds to fail.
# Remove software
#apt --purge --yes autoremove nvidia*

View File

@ -4,38 +4,6 @@
# #
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me) # SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
# Exit immediately if a command exits with a non-zero status ### install cockpit server manager
set -e apt -y install cockpit*
# Function to check if a package is installed
is_installed() {
dpkg -l "$1" &> /dev/null
}
# Function to install Cockpit and related packages
install_cockpit_packages() {
PACKAGES=("cockpit" "cockpit-machines" "cockpit-podman")
for PACKAGE in "${PACKAGES[@]}"; do
if ! is_installed "$PACKAGE"; then
echo "Installing $PACKAGE..."
apt-get install -y "$PACKAGE"
echo "$PACKAGE installed successfully."
else
echo "$PACKAGE is already installed."
fi
done
}
# Main function
main() {
echo "Starting Cockpit installation..."
install_cockpit_packages
echo "Cockpit installation completed."
}
# Run the main function
main
exit 0

View File

@ -1,101 +0,0 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
# Exit immediately if a command exits with a non-zero status
set -e
# Function to check if a package is installed
is_installed() {
dpkg -l "$1" &> /dev/null
}
# Install required SELinux packages
install_selinux_packages() {
PACKAGES=("selinux-basics" "selinux-policy-default" "auditd")
for PACKAGE in "${PACKAGES[@]}"; do
if ! is_installed "$PACKAGE"; then
echo "Installing $PACKAGE..."
apt-get install -y "$PACKAGE"
echo "$PACKAGE installed successfully."
else
echo "$PACKAGE is already installed."
fi
done
}
# Initialize SELinux if not already active
initialize_selinux() {
if [ ! -f /etc/selinux/config ]; then
echo "Activating SELinux..."
selinux-activate
else
echo "SELinux is already activated."
fi
}
# Restart auditd service
restart_auditd() {
if systemctl is-active --quiet auditd; then
echo "Restarting auditd service..."
systemctl restart auditd
else
echo "Auditd service not running."
fi
}
# Disable AppArmor if it is running
disable_apparmor() {
if systemctl is-active --quiet apparmor; then
echo "Disabling and removing AppArmor..."
systemctl disable apparmor
systemctl stop apparmor
apt-get -y purge apparmor
else
echo "AppArmor is not running or already disabled."
fi
}
# Set SELinux to enforcing mode
set_selinux_enforcing() {
if getenforce | grep -q "Enforcing"; then
echo "SELinux is already in enforcing mode."
else
echo "Setting SELinux to enforcing mode..."
/usr/sbin/setenforce 1
fi
}
# Configure file contexts (example)
restore_file_contexts() {
echo "Restoring file contexts in /etc/..."
/sbin/restorecon -Rv /etc/
}
# Allow HTTPD scripts and modules to connect to the network (example)
configure_httpd_selinux() {
echo "Allowing HTTPD scripts and modules to connect to the network..."
/usr/sbin/setsebool -P httpd_can_network_connect 1
}
# Main function
main() {
install_selinux_packages
initialize_selinux
restart_auditd
disable_apparmor
set_selinux_enforcing
restore_file_contexts
configure_httpd_selinux
echo "SELinux setup completed successfully."
}
# Run the main function
main
exit 0

View File

@ -1,33 +0,0 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
# Exit immediately if a command exits with a non-zero status
set -e
# Function to remove unnecessary files
remove_file() {
local FILE_PATH="$1"
if [ -f "$FILE_PATH" ]; then
echo "Removing file: $FILE_PATH"
rm "$FILE_PATH"
echo "File $FILE_PATH removed successfully."
else
echo "File $FILE_PATH does not exist, skipping removal."
fi
}
# Main function
main() {
remove_file "/etc/default/grub"
echo "File cleanup completed."
}
# Run the main function
main
exit 0

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,62 +0,0 @@
#!/bin/bash
# Script to be used as a hook in Debian Live-Build
# to install Firefox from the official Mozilla repository along with all available language packs
# Function to set up the Mozilla repository and GPG key
setup_repository_and_key() {
echo "Setting up Mozilla repository and GPG key for Firefox..."
# Create directory to store the APT repository keyring if it doesn't exist
install -d -m 0755 /etc/apt/keyrings
# Import the Mozilla APT repository authentication key
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
# Verify the GPG key fingerprint
expected_fingerprint="35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3"
actual_fingerprint=$(gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); print $0}')
if [ "$actual_fingerprint" == "$expected_fingerprint" ]; then
echo "The GPG key fingerprint matches: $actual_fingerprint."
else
echo "Verification failed: the GPG key fingerprint ($actual_fingerprint) does not match the expected one ($expected_fingerprint)."
exit 1
fi
# Add the Mozilla APT repository to the sources list
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" > /etc/apt/sources.list.d/mozilla.list
# Configure APT to prioritize packages from the Mozilla repository
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' > /etc/apt/preferences.d/mozilla
# Update the package list
apt-get update
}
# Function to install Firefox and available language packs
install_firefox() {
echo "Installing Firefox and its language packs..."
# Install Firefox
apt-get install -y firefox
# Install all available Firefox language packs
apt-get install -y $(apt-cache search firefox-l10n | awk '{print $1}')
}
# Main execution of the script
main() {
setup_repository_and_key
install_firefox
echo "Firefox installation completed."
}
# Execute the main function
main

View File

@ -1,9 +0,0 @@
#!/bin/bash
# run the main Hooks python module
python3 /usr/lib/python3/dist-packages/pepperpy/hooks.py
### Setting --apt-recommends and --apt-suggests defaults to '0'
echo -e "# Changing these values to \"1\" may quickly fill up a small partition" > /etc/apt/apt.conf.d/99No-Recommends
echo -e "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";" >> /etc/apt/apt.conf.d/99No-Recommends

View File

@ -1,62 +0,0 @@
#!/bin/bash
# Script to be used as a hook in Debian Live-Build
# to install Firefox from the official Mozilla repository along with all available language packs
# Function to set up the Mozilla repository and GPG key
setup_repository_and_key() {
echo "Setting up Mozilla repository and GPG key for Firefox..."
# Create directory to store the APT repository keyring if it doesn't exist
install -d -m 0755 /etc/apt/keyrings
# Import the Mozilla APT repository authentication key
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
# Verify the GPG key fingerprint
expected_fingerprint="35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3"
actual_fingerprint=$(gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); print $0}')
if [ "$actual_fingerprint" == "$expected_fingerprint" ]; then
echo "The GPG key fingerprint matches: $actual_fingerprint."
else
echo "Verification failed: the GPG key fingerprint ($actual_fingerprint) does not match the expected one ($expected_fingerprint)."
exit 1
fi
# Add the Mozilla APT repository to the sources list
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" > /etc/apt/sources.list.d/mozilla.list
# Configure APT to prioritize packages from the Mozilla repository
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' > /etc/apt/preferences.d/mozilla
# Update the package list
apt-get update
}
# Function to install Firefox and available language packs
install_firefox() {
echo "Installing Firefox and its language packs..."
# Install Firefox
apt-get install -y firefox
# Install all available Firefox language packs
apt-get install -y $(apt-cache search firefox-l10n | awk '{print $1}')
}
# Main execution of the script
main() {
setup_repository_and_key
install_firefox
echo "Firefox installation completed."
}
# Execute the main function
main

View File

@ -4,28 +4,9 @@
# #
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me) # SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
# Exit immediately if a command exits with a non-zero status ### Error checking added to "lint-trap" section.
set -e ### Missing files no longer cause builds to fail.
# Function to remove NVIDIA software # Remove software
remove_nvidia_packages() { #apt --purge --yes autoremove nvidia*
echo "Removing NVIDIA-related packages..."
if dpkg -l | grep -q nvidia; then
apt-get --purge --yes autoremove nvidia*
echo "NVIDIA packages removed successfully."
else
echo "No NVIDIA packages found to remove."
fi
}
# Main function
main() {
remove_nvidia_packages
echo "Software removal process completed."
}
# Run the main function
main
exit 0

View File

@ -1,110 +0,0 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
# Exit immediately if a command exits with a non-zero status
set -e
# Function to check if a package is installed
is_installed() {
dpkg -l "$1" &> /dev/null
}
# Install required SELinux packages if not already installed
install_selinux_packages() {
PACKAGES=("selinux-basics" "selinux-policy-default" "auditd")
for PACKAGE in "${PACKAGES[@]}"; do
if ! is_installed "$PACKAGE"; then
echo "Installing $PACKAGE..."
apt-get install -y "$PACKAGE"
else
echo "$PACKAGE is already installed."
fi
done
}
# Initialize SELinux if not already active
initialize_selinux() {
if [ ! -f /etc/selinux/config ]; then
echo "Activating SELinux..."
selinux-activate
else
echo "SELinux is already activated."
fi
}
# Restart auditd service
restart_auditd() {
if service auditd status &> /dev/null; then
echo "Restarting auditd service..."
service auditd restart
else
echo "Auditd service not found."
fi
}
# Enable SELinux policy activation on boot
enable_selinux_policy() {
if [ -f /etc/init.d/selinux-policy-activate ]; then
echo "Enabling SELinux policy activation on boot..."
update-rc.d selinux-policy-activate defaults
else
echo "SELinux policy activation script not found."
fi
}
# Disable AppArmor if it is running
disable_apparmor() {
if service apparmor status &> /dev/null; then
echo "Disabling AppArmor..."
service apparmor stop
update-rc.d -f apparmor remove
apt-get -y purge apparmor
else
echo "AppArmor is not running."
fi
}
# Set SELinux to enforcing mode
set_selinux_enforcing() {
if getenforce | grep -q "Enforcing"; then
echo "SELinux is already in enforcing mode."
else
echo "Setting SELinux to enforcing mode..."
/usr/sbin/setenforce 1
fi
}
# Configure file contexts (example)
restore_file_contexts() {
echo "Restoring file contexts in /etc/..."
/sbin/restorecon -Rv /etc/
}
# Allow HTTPD scripts and modules to connect to the network (example)
configure_httpd_selinux() {
echo "Allowing HTTPD scripts and modules to connect to the network..."
/usr/sbin/setsebool -P httpd_can_network_connect 1
}
# Main function
main() {
install_selinux_packages
initialize_selinux
restart_auditd
enable_selinux_policy
disable_apparmor
set_selinux_enforcing
restore_file_contexts
configure_httpd_selinux
echo "SELinux setup completed successfully."
}
# Run the main function
main
exit 0

View File

@ -1,33 +0,0 @@
#!/bin/bash
# SPDX-License-Identifier: GPL-3.0-or-later
#
# SPDX-FileCopyrightText: 2023 PeppemrintOS Team (peppermintosteam@proton.me)
# Exit immediately if a command exits with a non-zero status
set -e
# Function to remove unnecessary files
remove_file() {
local FILE_PATH="$1"
if [ -f "$FILE_PATH" ]; then
echo "Removing file: $FILE_PATH"
rm "$FILE_PATH"
echo "File $FILE_PATH removed successfully."
else
echo "File $FILE_PATH does not exist, skipping removal."
fi
}
# Main function
main() {
remove_file "/etc/default/grub"
echo "File cleanup completed."
}
# Run the main function
main
exit 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

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