fix ffmpeg pure-ftpd.config

This commit is contained in:
zj
2025-12-02 01:36:23 +08:00
parent 5f078f0027
commit bcc08707b9
4 changed files with 388 additions and 6 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -5,7 +5,7 @@ iso_name="BBTTMS"
iso_label="BBTTMS_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)"
iso_publisher="BBTTMS <https://yuyujing.cn>"
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'

View File

@@ -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