From 1c26e2360320864d6cc7da15729387b620022838 Mon Sep 17 00:00:00 2001 From: zj <1052308257@qq.com> Date: Mon, 1 Dec 2025 23:54:49 +0800 Subject: [PATCH] update smarttms.service pure--ftpd.config dcp --- archiso/airootfs/etc/pure-ftpd/pure-ftpd.conf | 10 +- .../multi-user.target.wants/smarttms.service | 1 - .../etc/systemd/system/smarttms.service | 19 -- .../default.target.wants/smarttms.service | 1 + .../.config/systemd/user/smarttms.service | 22 ++ archiso/airootfs/home/smart/ffmpeg | 68 ++++ archiso/profiledef.sh | 2 +- .../tms-40-build-the-iso-local-again.sh | 314 ++++++++++++++++++ 8 files changed, 411 insertions(+), 26 deletions(-) delete mode 120000 archiso/airootfs/etc/systemd/system/multi-user.target.wants/smarttms.service delete mode 100755 archiso/airootfs/etc/systemd/system/smarttms.service create mode 120000 archiso/airootfs/home/smart/.config/systemd/user/default.target.wants/smarttms.service create mode 100644 archiso/airootfs/home/smart/.config/systemd/user/smarttms.service create mode 100644 archiso/airootfs/home/smart/ffmpeg create mode 100755 installation-scripts/tms-40-build-the-iso-local-again.sh diff --git a/archiso/airootfs/etc/pure-ftpd/pure-ftpd.conf b/archiso/airootfs/etc/pure-ftpd/pure-ftpd.conf index bdabe838..298d7337 100644 --- a/archiso/airootfs/etc/pure-ftpd/pure-ftpd.conf +++ b/archiso/airootfs/etc/pure-ftpd/pure-ftpd.conf @@ -37,7 +37,7 @@ BrokenClientsCompatibility no # Maximum number of simultaneous users -MaxClientsNumber 50 +MaxClientsNumber 100 @@ -62,7 +62,7 @@ VerboseLog no # List dot-files even when the client doesn't send "-a". -DisplayDotFiles yes +DisplayDotFiles no @@ -258,13 +258,13 @@ AllowAnonymousFXP no # even if they own them. But if TrustedGID is enabled, that group # will exceptionally have access to dot-files. -ProhibitDotFilesWrite no +ProhibitDotFilesWrite yes # Prohibit *reading* of files starting with a dot (.history, .ssh...) -ProhibitDotFilesRead no +ProhibitDotFilesRead yes @@ -449,7 +449,7 @@ CustomerProof yes # Listen only to IPv4 addresses in standalone mode (ie. disable IPv6) # By default, both IPv4 and IPv6 are enabled. -# IPV4Only yes +IPV4Only yes diff --git a/archiso/airootfs/etc/systemd/system/multi-user.target.wants/smarttms.service b/archiso/airootfs/etc/systemd/system/multi-user.target.wants/smarttms.service deleted file mode 120000 index edf9437b..00000000 --- a/archiso/airootfs/etc/systemd/system/multi-user.target.wants/smarttms.service +++ /dev/null @@ -1 +0,0 @@ -/etc/systemd/system/smarttms.service \ No newline at end of file diff --git a/archiso/airootfs/etc/systemd/system/smarttms.service b/archiso/airootfs/etc/systemd/system/smarttms.service deleted file mode 100755 index 208d3f74..00000000 --- a/archiso/airootfs/etc/systemd/system/smarttms.service +++ /dev/null @@ -1,19 +0,0 @@ -[Unit] -Description=SmartTMS Service -After=mysqld.service -Wants=mysqld.service - -[Service] -Type=forking -User=root -ExecStart=/usr/bin/smarttms start -ExecStop=/usr/bin/smarttms stop -ExecReload=/bin/kill -HUP $MAINPID -Restart=on-failure -RestartSec=5 -TimeoutStartSec=300 -TimeoutStopSec=300 - -[Install] -WantedBy=multi-user.target - diff --git a/archiso/airootfs/home/smart/.config/systemd/user/default.target.wants/smarttms.service b/archiso/airootfs/home/smart/.config/systemd/user/default.target.wants/smarttms.service new file mode 120000 index 00000000..4bdea428 --- /dev/null +++ b/archiso/airootfs/home/smart/.config/systemd/user/default.target.wants/smarttms.service @@ -0,0 +1 @@ +/home/smart/.config/systemd/user/smarttms.service \ No newline at end of file diff --git a/archiso/airootfs/home/smart/.config/systemd/user/smarttms.service b/archiso/airootfs/home/smart/.config/systemd/user/smarttms.service new file mode 100644 index 00000000..0579aeac --- /dev/null +++ b/archiso/airootfs/home/smart/.config/systemd/user/smarttms.service @@ -0,0 +1,22 @@ +[Unit] +Description=SmartTMS Service (User) +After=mysqld.service graphical.target +Wants=mysqld.service + +[Service] +Type=forking +ExecStart=sudo /usr/bin/smarttms start +ExecStop=sudo /usr/bin/smarttms stop +ExecReload=sudo /usr/bin/smarttms restart + +Restart=on-failure +RestartSec=5 +TimeoutStartSec=300 +TimeoutStopSec=300 + +Environment="DISPLAY=:0" +Environment="XAUTHORITY=/home/smart/.Xauthority" +Environment="XDG_CURRENT_DESKTOP=XFCE" + +[Install] +WantedBy=default.target diff --git a/archiso/airootfs/home/smart/ffmpeg b/archiso/airootfs/home/smart/ffmpeg new file mode 100644 index 00000000..90d359e7 --- /dev/null +++ b/archiso/airootfs/home/smart/ffmpeg @@ -0,0 +1,68 @@ +#!/bin/bash + +# ============================================================================== +# FFmpeg Wrapper Script for Volume Detection +# +# This script acts as a wrapper for the real ffmpeg binary. +# It's designed to handle cases where 'ffmpeg -filter:a volumedetect' +# doesn't output 'mean_volume:' (e.g., for image files or videos without audio). +# +# If 'mean_volume:' is not found in the real ffmpeg's stderr output, +# it injects 'mean_volume: 0 dB' into the stderr stream. +# +# Setup: +# 1. Rename your original ffmpeg binary. +# Example: mv /usr/bin/ffmpeg /usr/bin/ffmpeg.bin +# 2. Place this script at the original ffmpeg's path. +# Example: cp this_script.sh /usr/bin/ffmpeg +# 3. Make this script executable. +# Example: chmod +x /usr/bin/ffmpeg +# 4. Ensure REAL_FFMPEG_BINARY points to your renamed ffmpeg binary. +# ============================================================================== + +# --- Configuration --- +# Point this to the actual ffmpeg binary after you've renamed it. +# For example: /usr/bin/ffmpeg.bin or /usr/local/bin/ffmpeg.bin +REAL_FFMPEG_BINARY="/usr/bin/ffmpeg.bin" +# --------------------- + +# Check if the real ffmpeg binary exists +if [ ! -f "$REAL_FFMPEG_BINARY" ]; then + echo "Error: Real ffmpeg binary not found at $REAL_FFMPEG_BINARY" >&2 + echo "Please ensure you've renamed your original ffmpeg (e.g., to ffmpeg.bin)" >&2 + echo "and updated the REAL_FFMPEG_BINARY path in this script." >&2 + exit 1 +fi + +# Create a temporary file to capture stderr from the real ffmpeg command +TEMP_ERR_FILE=$(mktemp) + +# Ensure the temporary file is deleted when the script exits +trap "rm -f $TEMP_ERR_FILE" EXIT + +# Execute the real ffmpeg with all arguments passed to this script. +# Redirect its stdout to /dev/null as volumedetect output is on stderr. +# Redirect its stderr to our temporary file. +"$REAL_FFMPEG_BINARY" "$@" >/dev/null 2>"$TEMP_ERR_FILE" + +# Capture the exit code of the real ffmpeg command +REAL_FFMPEG_EXIT_CODE=$? + +# Read the content of the temporary stderr file +FFMPEG_STDERR_CONTENT=$(cat "$TEMP_ERR_FILE") + +# Check if "mean_volume:" is present in the captured stderr content +if echo "$FFMPEG_STDERR_CONTENT" | grep -q "mean_volume:"; then + # If found, print the original stderr content to our stderr + echo "$FFMPEG_STDERR_CONTENT" >&2 +else + # If not found, print the original stderr content + echo "$FFMPEG_STDERR_CONTENT" >&2 + # Then inject the default mean_volume line + echo "[ffmpeg-wrapper] Injected: mean_volume: 0 dB (original output lacked volume info)" >&2 # For debugging + echo "mean_volume: 0 dB" >&2 +fi + +# Exit with the same exit code as the real ffmpeg command +exit $REAL_FFMPEG_EXIT_CODE + diff --git a/archiso/profiledef.sh b/archiso/profiledef.sh index f2bb233e..064ce5b6 100755 --- a/archiso/profiledef.sh +++ b/archiso/profiledef.sh @@ -5,7 +5,7 @@ iso_name="BBTTMS" iso_label="BBTTMS_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" iso_publisher="BBTTMS " iso_application="BBTTMS Arch Linux Live/Rescue/Install DVD" -iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" +iso_version="BBTTMS_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" install_dir="BBTTMS" buildmodes=('iso') bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' diff --git a/installation-scripts/tms-40-build-the-iso-local-again.sh b/installation-scripts/tms-40-build-the-iso-local-again.sh new file mode 100755 index 00000000..ddca3fee --- /dev/null +++ b/installation-scripts/tms-40-build-the-iso-local-again.sh @@ -0,0 +1,314 @@ +#!/bin/bash +#set -e +################################################################################################################## +# Author : Erik Dubois +# Website : https://www.erikdubois.online +# Website : https://www.arcolinux.info +# Website : https://www.arcolinux.com +# Website : https://www.arcolinuxd.com +# Website : https://www.arcolinuxb.com +# Website : https://www.arcolinuxiso.com +# Website : https://www.arcolinuxforum.com +# Website : https://www.alci.online +################################################################################################################## +# +# DO NOT JUST RUN THIS. EXAMINE AND JUDGE. RUN AT YOUR OWN RISK. +# +################################################################################################################## + +if lsblk -f | grep btrfs > /dev/null 2>&1 ; then + echo + echo "################################################################## " + tput setaf 3 + echo "Message" + echo "This script has been known to cause issues on a Btrfs filesystem" + echo "Make backups before continuing" + echo "Continu at your own risk" + tput sgr0 + echo + read -p "Press Enter to continue... CTRL + C to stop" +fi + +echo +echo "################################################################## " +tput setaf 2 +echo "Phase 1 : " +echo "- Setting General parameters" +tput sgr0 +echo "################################################################## " +echo + + # setting of the general parameters + archisoRequiredVersion="archiso 83-1" + buildFolder=$HOME"/bbttms-build" +# outFolder=$HOME"/Bbttms-Iso-Out" + outFolder="/media/cinema/Bbttms-Iso-Out" + archisoVersion=$(sudo pacman -Q archiso) + + echo "################################################################## " + #echo "Building the desktop : "$desktop + #echo "Building version : "$arcolinuxVersion + #echo "Iso label : "$isoLabel + echo "Do you have the right archiso version? : "$archisoVersion + echo "What is the required archiso version? : "$archisoRequiredVersion + echo "Build folder : "$buildFolder + echo "Out folder : "$outFolder + echo "################################################################## " + + if [ "$archisoVersion" == "$archisoRequiredVersion" ]; then + tput setaf 2 + echo "##################################################################" + echo "Archiso has the correct version. Continuing ..." + echo "##################################################################" + tput sgr0 + else + tput setaf 1 + echo "###################################################################################################" + echo "You need to install the correct version of Archiso" + echo "Use 'sudo downgrade archiso' to do that" + echo "or update your system" + echo "If a new archiso package comes in and you want to test if you can still build" + echo "the iso then change the version in line 37." + echo "###################################################################################################" + tput sgr0 + fi + +echo +echo "################################################################## " +tput setaf 2 +echo "Phase 2 :" +echo "- Checking if archiso is installed" +echo "- Saving current archiso version to archiso.md" +echo "- Making mkarchiso verbose" +tput sgr0 +echo "################################################################## " +echo + + package="archiso" + + #---------------------------------------------------------------------------------- + + #checking if application is already installed or else install with aur helpers + if pacman -Qi $package &> /dev/null; then + + echo "Archiso is already installed" + + else + + #checking which helper is installed + if pacman -Qi yay &> /dev/null; then + + echo "################################################################" + echo "######### Installing with yay" + echo "################################################################" + yay -S --noconfirm $package + + elif pacman -Qi trizen &> /dev/null; then + + echo "################################################################" + echo "######### Installing with trizen" + echo "################################################################" + trizen -S --noconfirm --needed --noedit $package + + fi + + # Just checking if installation was successful + if pacman -Qi $package &> /dev/null; then + + echo "################################################################" + echo "######### "$package" has been installed" + echo "################################################################" + + else + + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "!!!!!!!!! "$package" has NOT been installed" + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + exit 1 + fi + + fi + + echo + echo "Saving current archiso version to archiso.md" + sudo sed -i "s/\(^archiso-version=\).*/\1$archisoVersion/" ../archiso.md + echo + echo "Making mkarchiso verbose" + sudo sed -i 's/quiet="y"/quiet="n"/g' /usr/bin/mkarchiso + +echo +echo "################################################################## " +tput setaf 2 +echo "Phase 3 :" +echo "- Deleting the build folder if one exists" +echo "- Copying the Archiso folder to build folder" +tput sgr0 +echo "################################################################## " +echo + + echo "Deleting the build folder if one exists - takes some time" + [ -d $buildFolder ] && sudo rm -rf $buildFolder + echo + echo "Copying the Archiso folder to build work" + echo + mkdir $buildFolder + cp -r ../archiso $buildFolder/archiso + +# echo +# echo "################################################################## " +# tput setaf 2 +# echo "Phase 4 :" +# echo "- Deleting any files in /etc/skel" +# echo "- Getting the last version of bashrc in /etc/skel" +# echo "- Removing the old packages.x86_64 file from build folder" +# echo "- Copying the new packages.x86_64 file to the build folder" +# echo "- Changing group for polkit folder" +# tput sgr0 +# echo "################################################################## " +# echo + +# echo "Deleting any files in /etc/skel" +# rm -rf $buildFolder/archiso/airootfs/etc/skel/.* 2> /dev/null +# echo + +# echo "Getting the last version of bashrc in /etc/skel" +# echo +# wget https://raw.githubusercontent.com/arcolinux/arcolinux-root/master/etc/skel/.bashrc-latest -O $buildFolder/archiso/airootfs/etc/skel/.bashrc + +# echo "Removing the old packages.x86_64 file from build folder" +# rm $buildFolder/archiso/packages.x86_64 +# echo +# echo "Copying the new packages.x86_64 file to the build folder" +# cp -f ../archiso/packages.x86_64 $buildFolder/archiso/packages.x86_64 +# echo +# echo "Changing group for polkit folder" +# sudo chgrp polkitd $buildFolder/archiso/airootfs/etc/polkit-1/rules.d +# #is not working so fixing this during calamares installation + +# echo +# echo "################################################################## " +# tput setaf 2 +# echo "Phase 5 : " +# echo "- Changing all references" +# echo "- Adding time to /etc/dev-rel" +# tput sgr0 +# echo "################################################################## " +# echo +# +# #Setting variables +# +# #profiledef.sh +# oldname1='iso_name=arcolinux' +# newname1='iso_name=arcolinux' +# +# oldname2='iso_label="arcolinux' +# newname2='iso_label="arcolinux' +# +# oldname3='ArcoLinux' +# newname3='ArcoLinux' +# +# #hostname +# oldname4='ArcoLinux' +# newname4='ArcoLinux' +# +# #lightdm.conf user-session +# oldname5='user-session=xfce' +# newname5='user-session='$lightdmDesktop +# +# #lightdm.conf autologin-session +# oldname6='#autologin-session=' +# newname6='autologin-session='$lightdmDesktop +# +# echo "Changing all references" +# echo +# sed -i 's/'$oldname1'/'$newname1'/g' $buildFolder/archiso/profiledef.sh +# sed -i 's/'$oldname2'/'$newname2'/g' $buildFolder/archiso/profiledef.sh +# sed -i 's/'$oldname3'/'$newname3'/g' $buildFolder/archiso/airootfs/etc/dev-rel +# sed -i 's/'$oldname4'/'$newname4'/g' $buildFolder/archiso/airootfs/etc/hostname +# sed -i 's/'$oldname5'/'$newname5'/g' $buildFolder/archiso/airootfs/etc/lightdm/lightdm.conf +# sed -i 's/'$oldname6'/'$newname6'/g' $buildFolder/archiso/airootfs/etc/lightdm/lightdm.conf +# +# echo "Adding time to /etc/dev-rel" +# date_build=$(date -d now) +# echo "Iso build on : "$date_build +# sudo sed -i "s/\(^ISO_BUILD=\).*/\1$date_build/" $buildFolder/archiso/airootfs/etc/dev-rel + + +#echo +#echo "################################################################## " +#tput setaf 2 +#echo "Phase 6 :" +#echo "- Cleaning the cache from /var/cache/pacman/pkg/" +#tput sgr0 +#echo "################################################################## " +#echo + + #echo "Cleaning the cache from /var/cache/pacman/pkg/" + #yes | sudo pacman -Scc + +echo +echo "################################################################## " +tput setaf 2 +echo "Phase 7 :" +echo "- Building the iso - this can take a while - be patient" +tput sgr0 +echo "################################################################## " +echo + + [ -d $outFolder ] || mkdir $outFolder + cd $buildFolder/archiso/ + sudo mkarchiso -v -w $buildFolder -o $outFolder $buildFolder/archiso/ + + + +# echo +# echo "###################################################################" +# tput setaf 2 +# echo "Phase 8 :" +# echo "- Creating checksums" +# echo "- Copying pgklist" +# tput sgr0 +# echo "###################################################################" +# echo +# +# cd $outFolder +# +# echo "Creating checksums for : "$isoLabel +# echo "##################################################################" +# echo +# echo "Building sha1sum" +# echo "########################" +# sha1sum $isoLabel | tee $isoLabel.sha1 +# echo "Building sha256sum" +# echo "########################" +# sha256sum $isoLabel | tee $isoLabel.sha256 +# echo "Building md5sum" +# echo "########################" +# md5sum $isoLabel | tee $isoLabel.md5 +# echo + echo "Moving pkglist.x86_64.txt" + echo "########################" + rename=$(date +%Y-%m-%d) + cp $buildFolder/iso/BBTTMS/pkglist.x86_64.txt $outFolder/BBTTMS-$rename-pkglist.txt + + +#echo +#echo "##################################################################" +#tput setaf 2 +#echo "Phase 9 :" +#echo "- Making sure we start with a clean slate next time" +#tput sgr0 +#echo "################################################################## " +#echo + + #echo "Deleting the build folder if one exists - takes some time" + #[ -d $buildFolder ] && sudo rm -rf $buildFolder + +echo +echo "##################################################################" +tput setaf 2 +echo "DONE" +echo "- Check your out folder :"$outFolder +tput sgr0 +echo "################################################################## " +echo