You are not logged in.
especially with Netflix, I was getting an average of 20% CPU and 30% GPU, and now again with 100% CPU
That tells you nothing but a bloated website is running like shit which can be due to many reasons. Do an actual test like I suggested if the glxgears fails to run properly then you have a problem, it does nothing but test the performance of the graphics.
However when I check (and I test it) it using LLVMPIPE:
What testing did you do? I have the idea on my Debian systemd less install it says it is using llvmpipe but the glxgears gives the same FPS output as Devuan booted on it saying it is using the HD630 integrated graphics. In my case a total false positive output. Oh and if you do not know it the glxgears should give the same FPS as the refresh rate of your monitor if working correctly.
You need to use
su -
or the path setting will be incorrect.
Unless you were reading the change log file and took the advice contained in it to make this file overcoming that breaking change, perhaps might have been news file not sure now it occurs to me. Something that is becoming far to common in Debian these days breaking compatibility just for the hell of it...
root@9600k:~# cat /etc/default/su
# Added to always have the PATH set for su.
ALWAYS_SET_PATH yesEdit: Oh if you are going to be messing with the sources file move it to a backup and create the new style one and use that.
root@9600k:~# cat /etc/apt/sources.list.d/devuan.sources
# Devuan 6 excalibur
## The new style method of using repositories to install software.
## This /etc/apt/sources.list.d/devuan.sources is new style and location file
## The /etc/apt/old.style.sources.list contains the same as this.
## https://linuxconfig.org/ubuntus-repository-configuration-ubuntu-sources-have-moved-to-etc-apt-sources-list-d-ubuntu-sources
## Normal excalibur sources
Types: deb
URIs: http://gnlug.org/pub/devuan/merged
Suites: excalibur excalibur-backports excalibur-proposed-updates excalibur-updates
Components: main non-free contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/devuan-archive-keyring.gpg
Architectures: amd64
## excalibur security sources
Types: deb
URIs: http://gnlug.org/pub/devuan/merged
Suites: excalibur-security
Components: main non-free contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/devuan-archive-keyring.gpg
Architectures: amd64i can toggle between the two by changing the displayserver value and rebooting.
Going to a virtual terminal logging in to edit the file to make the switch then a pkill X should be enough to get it done by killing off the X server and respawing it with the new value being read at its start up.
Hope that helps.
Well it is not in the the Pi images on that page with it you get stuck with a kernel that is roughly 60 revisions behind the Debian kernel with no way to upgrade. As I posted I got rid of that and went with a install that updates without problems, just today got the latest new kernel from the archives.
zeus@raspi:~$ uname -a
Linux raspi 6.12.57+deb13-arm64 #1 SMP Debian 6.12.57-1 (2025-11-05) aarch64 GNU/LinuxOh for anyone interested going to the Debian site getting the Pi images there using them for install then converting to Devuan install with the instructions from here to do it works well. You end up with a working Devuan system with an up to date kernel with all the packages able to install without problems. Not a broken system with out of date kernel and problems if you try to install a package(s) that need the /boot/firmware directory in place.
Debian files: https://raspi.debian.net/tested-images/
Trixie to Excalibur: https://www.devuan.org/os/documentation … libur.html
Works great with only couple of glitches you need the ntpsec-ntpdate package installed or you end up with the time set to 1970 the beginning of the Unix epoch on every boot. As a Pi has no hardware clock so it needs to be set on every boot. You will want the locales package installed and set to yours to get rid of them warnings and a dpkg-reconfigure tzdata done to set your time zone from the UTC it defaults to yours. Works great wish I had done that install instead of wasting all that time trying to get that pre-built broken image functioning correctly.
root@raspi:~# cat /etc/os-release
PRETTY_NAME="Devuan GNU/Linux 6 (excalibur)"
NAME="Devuan GNU/Linux"
VERSION_ID="6"
VERSION="6 (excalibur)"
VERSION_CODENAME="excalibur"
ID=devuan
ID_LIKE=debian
HOME_URL="https://www.devuan.org/"
SUPPORT_URL="https://devuan.org/os/community"
BUG_REPORT_URL="https://bugs.devuan.org/"
root@raspi:~# uname -a
Linux raspi 6.12.48+deb13-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux
root@raspi:~# apt policy linux-image-arm64
linux-image-arm64:
Installed: 6.12.48-1
Candidate: 6.12.48-1
Version table:
6.16.3-1~bpo13+1 100
100 http://gnlug.org/pub/devuan/merged excalibur-backports/main arm64 P>
*** 6.12.48-1 500
500 http://gnlug.org/pub/devuan/merged excalibur-proposed-updates/main >
500 http://gnlug.org/pub/devuan/merged excalibur-security/main arm64 Packages
100 /var/lib/dpkg/status
6.12.43-1 500
500 http://gnlug.org/pub/devuan/merged excalibur/main arm64 PackagesAnd if you are wondering just where the hell the usrmerge is like I was last night it is located so helpfully in /usr/lib, a directory not in your $PATH, not even named usrmerge for shits and giggles but convert-usrmerge by the systemd loving morons who did it.
root@9600k:~# apt-file list usrmerge
usrmerge: /usr/lib/usrmerge/convert-etc-shells
usrmerge: /usr/lib/usrmerge/convert-usrmerge
usrmerge: /usr/share/doc/usrmerge/README.Debian
usrmerge: /usr/share/doc/usrmerge/changelog.gz
usrmerge: /usr/share/doc/usrmerge/copyrightProblem now is, that the main purpose of that raspi was watching netflix,
If looking for a cheap small low power box and the funds are available to buy one try something like a Lenovo Think Center or the equivalent from Dell, HP ot several other brands have them too. SFF is what to search for they are more than enough to do most tasks on I got my two Think Centers with i5s, 8400t & 8500t six core, dirt cheap on Ebay for just over a $100. Wish I had went with them instead of the Pi I bought the year or two before they are much easier to deal with as they are a bog standard x86_64 computer. Easily upgraded with standard off the shelf parts nothing hanging off a dongles with flaky USB performance like a Pi has.
Is it because I ran it with sudo, or is there some critical difference in the builds?
I will go with difference in the builds it fails in exactly the same way here. And I see you have a 6.12.52 kernel installed somehow that fails to install on this build too as I mentioned. How did you get that kernel installed?
root@raspi:~# apt install raspi-firmware
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
firmware-brcm80211 bluez-firmware
The following NEW packages will be installed:
raspi-firmware
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,816 kB of archives.
After this operation, 22.8 MB of additional disk space will be used.
Get:1 http://gnlug.org/pub/devuan/merged daedalus/non-free-firmware arm64 raspi-firmware all 1.20220830+ds-1 [4,816 kB]
Fetched 4,816 kB in 1s (4,678 kB/s)
Selecting previously unselected package raspi-firmware.
(Reading database ... 70924 files and directories currently installed.)
Preparing to unpack .../raspi-firmware_1.20220830+ds-1_all.deb ...
Unpacking raspi-firmware (1.20220830+ds-1) ...
Setting up raspi-firmware (1.20220830+ds-1) ...
Error: missing /boot/firmware, did you forget to mount it?
dpkg: error processing package raspi-firmware (--configure):
installed raspi-firmware package post-installation script subprocess returned e
rror exit status 1
Processing triggers for initramfs-tools (0.142+deb12u3) ...
update-initramfs: Generating /boot/initrd.img-6.1.93What does work is my suggestion for it.
root@raspi:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.6G 0 3.6G 0% /dev
tmpfs 782M 4.9M 777M 1% /run
/dev/sdb2 40G 2.2G 35G 6% /
tmpfs 5.0M 12K 5.0M 1% /run/lock
tmpfs 1.6G 0 1.6G 0% /dev/shm
/dev/sdb1 499M 45M 455M 9% /boot/broadcom
tmpfs 3.9G 0 3.9G 0% /tmp
/dev/sda1 3.6T 1.2T 2.4T 34% /home/zeus/rtorrent
tmpfs 782M 0 782M 0% /run/user/1000
root@raspi:~# umount /dev/sdb1
root@raspi:~# mkdir /boot/firmware
root@raspi:~# mount /dev/sdb1 /boot/firmware
root@raspi:~# apt install raspi-firmware
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
firmware-brcm80211 bluez-firmware
The following NEW packages will be installed:
raspi-firmware
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/4,816 kB of archives.
After this operation, 22.8 MB of additional disk space will be used.
Selecting previously unselected package raspi-firmware.
(Reading database ... 70924 files and directories currently installed.)
Preparing to unpack .../raspi-firmware_1.20220830+ds-1_all.deb ...
Unpacking raspi-firmware (1.20220830+ds-1) ...
Setting up raspi-firmware (1.20220830+ds-1) ...
Processing triggers for initramfs-tools (0.142+deb12u3) ...
update-initramfs: Generating /boot/initrd.img-6.1.93
Creating initrd.gz.
root@raspi:~# cat /etc/os-release
PRETTY_NAME="Devuan GNU/Linux 5 (daedalus)"
NAME="Devuan GNU/Linux"
VERSION_ID="5"
VERSION="5 (daedalus)"
VERSION_CODENAME="daedalus"
ID=devuan
ID_LIKE=debian
HOME_URL="https://www.devuan.org/"
SUPPORT_URL="https://devuan.org/os/community"
BUG_REPORT_URL="https://bugs.devuan.org/"
root@raspi:~# uname -a
Linux raspi 6.1.93 #1 SMP PREEMPT Wed Oct 29 02:31:11 CET 2025 aarch64 GNU/LinuxI would go with a.
umount /dev/mmcblk0p1
mkdir /boot/firmware
mount /dev/mmcblk0p1 /boot/firmwareInstall the package then go back to the broken method the image is built with by reversing the changes to mount the /boot/broadcom again. I have no idea why the images are built with breaking changes that are not compatible with the debian archive files but it is the situation we find ourselves in by using it. I used an installer from a few days before that on my Pi4 and tried to update it to the Excalibur when it released the damn thing fails on the install of the kernel and initramfs-tools. So there is something to look forward too if ever wanting to do that. Oh if the mounting idea fails then try a symbolic link of the /boot/firmware to the /boot/broadcom.
Thanks, didn't know that. Good news, makes things a bit easier.
May as well make it even easier and set it up with the new style file layout, this includes everything and works without problems. Move the sources.list to a backup to stop apt from complaining about duplicates.
root@9600k:~# cat /etc/apt/sources.list.d/devuan.sources
# Devuan 6 excalibur
## The new style method of using repositories to install software.
## This /etc/apt/sources.list.d/devuan.sources is new style and location file
## The /etc/apt/old.style.sources.list contains the same as this.
## https://linuxconfig.org/ubuntus-repository-configuration-ubuntu-sources-have-moved-to-etc-apt-sources-list-d-ubuntu-sources
## Normal excalibur sources
Types: deb
URIs: http://gnlug.org/pub/devuan/merged
Suites: excalibur excalibur-backports excalibur-proposed-updates excalibur-updates
Components: main non-free contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/devuan-archive-keyring.gpg
Architectures: amd64
## excalibur security sources
Types: deb
URIs: http://gnlug.org/pub/devuan/merged
Suites: excalibur-security
Components: main non-free contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/devuan-archive-keyring.gpg
Architectures: amd64i can't get apt to update from the obsolete libupower-glib1 to libupower-glib3, something is borked in this vm but not sure what. maybe the version "number" is confusing apt due to the presence of the colon?
That is called an epoch in debian packaging terms it is used when there is a mis match in the package numbers. In addition your package you want to replace has a devuan in the name which means it has been edited by the maintainers to ensure it works on the system. Trying to replace it because you think you know better what packaging is needed than the people who put together the system is a bad idea. I have not seen one mention of why this replacement is needed by you other than it is outdated, on a system that is working properly with it installed at that version.
for kde, upower is a 'depends' and not a 'recommends' so it cannot be removed:
apt will remove the entire desktop when purging upower:
It most certainly can be removed/purged without losing the KDE desktop.
root@9600k:~# apt -s purge upower
The following package was automatically installed and is no longer required:
libupower-glib3
Use 'apt autoremove' to remove it.
REMOVING:
upower*
Summary:
Upgrading: 0, Installing: 0, Removing: 1, Not Upgrading: 0
Purg upower [1.90.9-5]root@9600k:~# apt policy plasma-desktop plasma-workspace kde-plasma-desktop kde-standard task-kde-desktop
plasma-desktop:
Installed: 4:6.3.6-1
Candidate: 4:6.3.6-1
Version table:
*** 4:6.3.6-1 990
990 http://gnlug.org/pub/devuan/merged excalibur/main amd64 Packages
100 /var/lib/dpkg/status
plasma-workspace:
Installed: 4:6.3.6-2
Candidate: 4:6.3.6-2
Version table:
*** 4:6.3.6-2 990
990 http://gnlug.org/pub/devuan/merged excalibur/main amd64 Packages
100 /var/lib/dpkg/status
kde-plasma-desktop:
Installed: (none)
Candidate: 5:162
Version table:
5:162 990
990 http://gnlug.org/pub/devuan/merged excalibur/main amd64 Packages
kde-standard:
Installed: (none)
Candidate: 5:162
Version table:
5:162 990
990 http://gnlug.org/pub/devuan/merged excalibur/main amd64 Packages
task-kde-desktop:
Installed: (none)
Candidate: 3.81devuan1
Version table:
3.81devuan1 990
990 http://gnlug.org/pub/devuan/merged excalibur/main amd64 PackagesWhat is going to be removed by your command is the meta packages which bring in the complete set of packages for those tasks. If it was removing all of them packages you would see hundreds of them being removed not the grand total of four it will remove with your simulation. In short your desktop would still be intact without them but without the upower being used. It is time to accept the people who put this system together know what they are doing with the version of the software they install on it to get and keep it running.
I don't have any memory issue or anything,
So for the sake of less than a 100M saving you are going to waste all that time on every kernel upgrade to get rid of them.
root@9600k:~# du -h /lib/modules/6.12.48+deb13-amd64
snip....
40K /lib/modules/6.12.48+deb13-amd64/kernel/sound/firewire/motu
312K /lib/modules/6.12.48+deb13-amd64/kernel/sound/firewire
20K /lib/modules/6.12.48+deb13-amd64/kernel/sound/isa/sb
24K /lib/modules/6.12.48+deb13-amd64/kernel/sound/isa
8.2M /lib/modules/6.12.48+deb13-amd64/kernel/sound
68K /lib/modules/6.12.48+deb13-amd64/kernel/block
102M /lib/modules/6.12.48+deb13-amd64/kernel
107M /lib/modules/6.12.48+deb13-amd64The quickest way for you to do this if you want to persist is to start building your own kernels with only the modules needed for your install. That guarantees that you will never have any excess modules loaded. Unless you apply the Debian patches to it it will lack the possible security fixes they do this is solved if you use their source to build the kernel.
I recommend any FLS/copyleft license: some places public domain gets ruined (stolen/copyrighted by commercialists).
I am certain most are not going to want to steal it to make some cash the vast majority of it is code I found other places and adopted for my use. Or trial and error for parts of it to get it working correctly. They will most likely be able to come up with better. Well the size of it is mainly due to all of the drives/machines options it does the backups to. You can cut them back considerably without it effecting the script. Just start simply using pieces of it to start with, with a lot of simply echo commands in place of where you want code to run after a condition you want to do is reached. This gives you idea it works as you want then you put the code you want in the section there. Then test it a few times with to see how it does. This allows you to build it up over time to do what you want done. Always make backup copies when you make changes this allows you to go back to known working copy if you mess it up totally to start again on what you want done. For example to start off with use this.
root@9600k:~# nano test.sh
root@9600k:~# cat test.sh
#!/bin/bash
# The file test is to test the mounting to the drive specified, pass in /dev/sda for example
# The partitions have to be labeled properly for it to find the UUIDs and the EFI partition
# needs to be of the form with the UUID in the fifth position. The EFI partition as 1,
# the / partition as 2 and the /home partition as 3
# Check to make certain the variables have been passed in the script.
if [ -z "$1" ] ; then
echo "The drive needs to be specified if sda for backup then /dev/sda."
exit 0
fi
# The partitions to be mounted for the copying/syncing operation make the mount points.
# Check to see if efi sync/copy directory exists if not create it.
if [ ! -d /tmp/efi ] ; then
mkdir "/tmp/efi"
echo "Created /tmp/efi directory for syncing/copying boot files"
else
echo "Already created /tmp/efi directory for syncing/copying boot files"
fi
# Check to see if /home sync/copy directory exists if not create it.
if [ ! -d /tmp/home ] ; then
mkdir "/tmp/home"
echo "Created /tmp/home directory for syncing/copying home files"
else
echo "Already created /tmp/home directory for syncing/copying home files"
fi
# Check to see if / sync/copy directory exists if not create it.
if [ ! -d /tmp/root ] ; then
mkdir "/tmp/root"
echo "Created /tmp/root directory for syncing/copying root files"
else
echo "Already created /tmp/root directory for syncing/copying root files"
fi
# mount the directories checking for an already mounted directory if doing a second rsync
# run without unmounting.
# check to see if /tmp/efi already mounted
mount1=$(mount | grep "$1"1 | cut -d " " -f 1)
mount2=$(mount | grep "$1"1 | cut -d " " -f 3)
if [ "$mount1" = "$1"1 ]; then
echo "$mount1"" is mounted as ""$mount2"
else
mount "$1"1 /tmp/efi
echo "Mounted ""$1""1 as /tmp/efi"
fi
# check to see if /tmp/root already mounted
mount3=$(mount | grep "$1"2 | cut -d " " -f 1)
mount4=$(mount | grep "$1"2 | cut -d " " -f 3)
if [ "$mount3" = "$1"2 ]; then
echo "$mount3"" is mounted as ""$mount4"
else
mount "$1"2 /tmp/root
echo "Mounted ""$1""2 as /tmp/root"
fi
# check to see if /tmp/home already mounted
mount5=$(mount | grep "$1"3 | cut -d " " -f 1)
mount6=$(mount | grep "$1"3 | cut -d " " -f 3)
if [ "$mount5" = "$1"3 ]; then
echo "$mount5"" is mounted as ""$mount6"
else
mount "$1"3 /tmp/home
echo "Mounted ""$1""3 as /tmp/home"
fi
root@9600k:~# chmod +x test.sh
root@9600k:~# ./test.sh /dev/sda
Already created /tmp/efi directory for syncing/copying boot files
Already created /tmp/home directory for syncing/copying home files
Already created /tmp/root directory for syncing/copying root files
Mounted /dev/sda1 as /tmp/efi
Mounted /dev/sda2 as /tmp/root
Mounted /dev/sda3 as /tmp/homeSo now you would have script that mounts a backup drive on the passed in to the script variable the /dev/sda like I use here. Which on my machine is the backup drive for my main install that I backup to before any major changes are done so I have something to go back to if it fails. After this you add the next thing you want done like copy/rsyncing the files to them.
I would add the comment at the very top about the labels set are this.
root@9600k:~# blkid |grep nvme0 | sort -n
/dev/nvme0n1p1: SEC_TYPE="msdos" LABEL_FATBOOT="CRUCIAL_EFI" LABEL="CRUCIAL_EFI" UUID="F0D8-55B1" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="06c13ca4-c6b9-41b0-9ed3-756ce6282278"
/dev/nvme0n1p2: LABEL="CrucialRoot" UUID="766dcfc3-a1e4-495f-86e2-570205723fef" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="74a3fd28-a39c-4a91-b015-31676217edaa"
/dev/nvme0n1p3: LABEL="CrucialHome" UUID="dc257f43-9b9a-4db0-bf79-7af981389d29" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="5c46783f-9051-463e-add8-fadcbe15d0f0"
/dev/nvme0n1p4: LABEL="CrucialMusic" UUID="5a6278cb-79eb-424b-a6d5-c85add3e641a" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="63732088-e879-490e-8f32-dff97ee9dd99"Without them the grepping I do to check if they are mounted fails and of course as I say in it the partition order is critical 1 is efi, 2 is / and 3 is /home. All my drive are setup this way if not the script has no idea if the correct partitions to backup are chosen.
Edit: And as I was looking at it again there are now 18 options for the backups to be done.
Is your whole script Free/Libre Opensource Software (FLS, OSS, FOSS, FLOSS) anywhere people can learn?
I have just sent it to you using the email function here when looking at the username. It is not anywhere else but on my machine. As to the license consider it in the public domain you can do anything you wish with it.
but I'm slightly bewildered why you'd backup /dev, /proc, /sys, /run, /tmp, swap
You must have missed the exclude= in front of those things, they are not backed up as they are not necessary to do so. The computer recreates all of those directories on boot as that line is for a running system. It is even easier for a system booted from as USB stick a simple mounting of the machine drive and then the back to drive and an rsync of everything on the machine drive to the backup is done. There is no need to exclude anything all that needs to be done on the backup drive you need to make the changes required to boot it on the new machine, in the efi, grub.cfg, fstab, hosts, hostname and any other things you need done. Once completed it should just boot on the new machine. Just make your script going bit by bit at a time testing it along the way until you get it done. Other tools mentioned when I first tried this many years ago not a single one of them could preform a backup and restore so I just carried on and got my solution which works flawlessly after all these years so I see no point in even trying them to judge the state of them now. All they are anyways is just someones code to do the same thing mine does, which if it goes wrong I have no clue where to search to make it work. With mine I know it inside and out and know exactly where to look if my recent change caused some problem. Worse case I go back to the previously working backed up script and try again with new one.
Edit: Oh one of those excluded items are needed the /swap but on an existing install you need not do anything with copying it. It is cleared and used on the reboot/boot of the machine like the /tmp directory. One thing I do need though is the fix_swap.sh run if it is new install drive as it will not exist and you will get a warning error on boot. So I run this file on such a drive and everything is back to normal as it should be.
root@9600k:~# cat bin/fix_swap.sh
#!/bin/bash
# A script to fix the swapfile missed when using new partition without one already there for a backup/clone/restore.
# make the /swapfile file
fallocate -l 2G /swapfile
# correct the permissions
chmod 600 /swapfile
# format as swap space
mkswap /swapfile
# load the /swapfile
swapon /swapfileI use swap file as I am not interested in dedicated partition for the purpose that is just one more UUID to keep track of one each and every install.
It'd also be a way one might quickly copy a Devuan install from an old to new PC without having to do an entire new installation.
In my backup script I use I have this for the main backup of root.
# Snyc/Copy the / directory.
rsync -ahPHAXx --delete --exclude={/boot/efi/*,/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/swapfile,/lost+found} / /tmp/root/
echo "Completed Sync/Copy to /tmp/root directory used for root files backup"That is run to copy to external usb drive which then get booted on the machine it will be installed on. An example of the files copied to the external drive.
6)
# Backup the install to the Intel_Spare drive for use in my spare machine full install with extra directories mounted on HD & NVMe drive
cp /root/bin/EFI_intel_grub.cfg /tmp/efi/EFI/debian/grub.cfg
cp /root/bin/boot_intel_grub.cfg /tmp/root/boot/grub/grub.cfg
cp /root/bin/intel_fstab_spare /tmp/root/etc/fstab
;;As you can see it is option number six of sixteen in that script which backs up to various drives and machine they will be booted on. Including cloning to the internal boot drive on the machines. I have quite the number of files used in this procedure depending on the machine involved. In addition there are sections in the script that solve the hostname problem.
# For changing the host name
HNAME=$(hostname)
echo "The host name is currently ""$HNAME"
read -r -p "Change it to another name? (y/n)? " choice
case "$choice" in
y|Y )
# Get new host name
read -r -p "Enter new hostname " newNAME
sed -i "s/$HNAME/$newNAME/g" /tmp/root/etc/hostname
sed -i "s/$HNAME/$newNAME/g" /tmp/root/etc/samba/smb.conf
# If 8400 hostname machine
if [ $newNAME == 8400 ]; then
cp /root/bin/etc_hosts_8400 /tmp/root/etc/hosts
echo "Copied /root/bin/etc_hosts_8400 to /tmp/root/etc/hosts"
cp /root/bin/gkrellm_user-config_8400 /tmp/home/$USER/.gkrellm2/user-config
cp /root/bin/gkrellm_sensor-config_8400 /tmp/home/$USER/.gkrellm2/sensor-config
chown $USER:$USER /tmp/home/$USER/.gkrellm2/user-config
chown $USER:$USER /tmp/home/$USER/.gkrellm2/sensor-config
echo "Copied /root/bin/gkrellm_user-config_8400 to home directory"
echo "Copied /root/bin/gkrellm_sensor-config_8400 to home directory"
cp /root/bin/rtorrent-rc_8400 /tmp/home/$USER/.rtorrent.rc
chown $USER:$USER /tmp/home/$USER/.rtorrent.rc
echo "Copied /root/bin/rtorrent-rc_8400 to home directory"
rm /tmp/root/etc/rc0.d/K01apcupsd
rm /tmp/root/etc/rc1.d/K01apcupsd
rm /tmp/root/etc/rc2.d/S03apcupsd
rm /tmp/root/etc/rc3.d/S03apcupsd
rm /tmp/root/etc/rc4.d/S03apcupsd
rm /tmp/root/etc/rc5.d/S03apcupsd
rm /tmp/root/etc/rc6.d/K01apcupsd
echo "Removed apcupsd init.d startup/shutdown files"
rm /tmp/root/etc/rc0.d/K01rtorrent
rm /tmp/root/etc/rc1.d/K01rtorrent
rm /tmp/root/etc/rc2.d/S03rtorrent
rm /tmp/root/etc/rc3.d/S03rtorrent
rm /tmp/root/etc/rc4.d/S03rtorrent
rm /tmp/root/etc/rc5.d/S03rtorrent
rm /tmp/root/etc/rc6.d/K01rtorrent
echo "Removed rtorrent init.d startup/shutdown files"
fiThere you can see in this section what is to be done for the machine 8400 I change the hostname in the three places it needs to be done. Copy over the gkrellm config files for the machine, the rtorrent.rc while at the same time disabling the started of the rtorrent and the apcupsd. As those are not needed on startup on that machine but can be used if necessary. Since all my machines are efi booting I also have section in there for it too.
# remove files on /tmp/efi gets only the files present on the install.
rm -r /tmp/efi/*
echo "efi directory now empty"
# Snyc/Copy the efi directory.
scp -r /boot/efi/* /tmp/efi/
echo "Completed Sync/Copy to /tmp/efi directory used for efi files backup"The machine specific file for the efi is copied in its drive section to be set by it so it will boot. I also have separate home partition I backup this uses a file I found years ago to stop my rsync from including things it should not be.
root@9600k:~# cat /usr/local/bin/rsync-homedir-excludes.txt
# rsync-homedir-excludes
#
# A list of files to exclude when backing up *nix home directories using rsync.
#
# Author: Ruben Barkow-Kuder <https://github.com/rubo77/rsync-homedir-excludes>
# Version: 2019-11-30
#The section of the home backup in the script.
# Snyc/Copy the /home directory.
USER=zeus
# Delete the SingletonLock on target drive if there so these browsers do not get stuck opening.
if [ -d "/tmp/home/$USER/.config/BraveSoftware/Brave-Browser/SingletonLock" ]; then
rm "/tmp/home/$USER/.config/BraveSoftware/Brave-Browser/SingletonLock"
echo "Removed /tmp/home/$USER/.config/BraveSoftware/Brave-Browser/SingletonLock"
fi
if [ -d "/tmp/home/$USER/.config/chromium/SingletonLock" ]; then
rm "/tmp/home/$USER/.config/chromium/SingletonLock"
echo "Removed /tmp/home/$USER/.config/chromium/SingletonLock"
fi
if [ -d "/tmp/home/$USER/.config/microsoft-edge/SingletonLock" ]; then
rm "/tmp/home/$USER/.config/microsoft-edge/SingletonLock"
echo "Removed /tmp/home/$USER/.config/microsoft-edge/SingletonLock"
fi
rsync -avP --delete --exclude-from=/usr/local/bin/rsync-homedir-excludes.txt /home/$USER/.[^.]* /tmp/home/$USER/
rsync -avP --delete /home/$USER/bin /tmp/home/$USER/
rsync -avP --delete /home/$USER/Desktop /tmp/home/$USER/
rsync -avP --delete /home/$USER/Documents /tmp/home/$USER/
rsync -avP --delete /home/$USER/Downloads /tmp/home/$USER/
rsync -avP --delete /home/$USER/Pictures /tmp/home/$USER/
rsync -avP --delete /home/$USER/Public /tmp/home/$USER/
rsync -avP --delete /home/$USER/src /tmp/home/$USER/
rsync -avP --delete /home/$USER/Templates /tmp/home/$USER/
rsync -avP --delete /home/$USER/Videos /tmp/home/$USER/
# For my wallpapers to be copied
mkdir -p /tmp/home/$USER/.cache/gnome-control-center/backgrounds
chown $USER:$USER /tmp/home/$USER/.cache/gnome-control-center/backgrounds
cp -vp /home/$USER/Pictures/background/* /tmp/home/$USER/.cache/gnome-control-center/backgrounds/
# For the Music directory that is not synced, if this is fresh formatted disk
# so the mount point will exist and it not fail on boot due lack of it.
if [ ! -d "/tmp/home/$USER/Music" ]; then
mkdir "/tmp/home/$USER/Music"
chown $USER:$USER "/tmp/home/$USER/Music"
echo "Created home/$USER/Music directory"
fi
# For the rtorrent directory that is not synced, if this is fresh formatted disk
# so the mount point will exist and it not fail on boot due lack of it.
if [ ! -d "/tmp/home/$USER/rtorrent" ]; then
mkdir "/tmp/home/$USER/rtorrent"
chown $USER:$USER "/tmp/home/$USER/rtorrent"
echo "Created home/$USER/rtorrent directory"
fi
echo "Completed Sync/Copy to /tmp/home directory used for home files backup"Hopefully this will give you some ideas on how to do it, it took me some amount of time to get it right threw trail and error to have a script that works flawlessly now for years. I use it may times a week to clone my install to install to my backup machine if testing something new. It is also the basis for my cron jobs that backup my machine to a drive in the machine every two hours.
Oh almost forgot the grub files.
root@9600k:~# ll bin/boot_
boot_crucial_grub.cfg boot_nvme_external_spare_grub.cfg
boot_ediloca_8500t_grub.cfg boot_nvme_grub.cfg
boot_elements_grub.cfg boot_nvme_spare_grub.cfg
boot_intel_grub.cfg boot_samsung_256_grub.cfg
boot_kingston_grub.cfg boot_sp_external_grub.cfg
boot_lenovo_grub.cfg boot_sp_nvme_grub.cfg
boot_mushkin_8500t_grub.cfg boot_wd_nvme_spare_grub.cfg
boot_mushkin_grub.cfg Those files get copied over depening on the option chosen and after every kernel upgrade I run the fix for the files so everything will continue to boot.
root@9600k:~# ll bin/fix_
fix_apcupsd.sh fix_grub_samsung_256.sh
fix_grub_crucial_nvme.sh fix_grub_sp_nvme.sh
fix_grub_ediloca_8500t.sh fix_grub_sp_nvme_spare.sh
fix_grub_intel_external.sh fix_grub_wd_nvme_spare.sh
fix_grub_kingston_ssd.sh fix_rtorrent.sh
fix_grub_lenovo.sh fix_swap.sh
fix_grub_mushkin_8500t_ssd.sh fix_timeout_grub.shA section of one of the files.
root@9600k:~# cat bin/fix_grub_crucial_nvme.sh
#!/bin/bash
# A script to fix the GRUB loader that is put into the boot directory when
# making a copy of my install. It is used when a kernel is upgraded so it will
# have a proper /boot/grub/grub.cfg to boot the install after the copying his done.
# Used when booted from my Crucial 4TB NVMe 9600k drive
# Fix the always 30 countdown in grub with a 5 second one before doing
# the rest of this.
sed -i "s/timeout=30/timeout=5/g" /boot/grub/grub.cfg
# My main Crucial NVMe install.
cp /boot/grub/grub.cfg /root/bin/boot_crucial_grub.cfg
sed -i "s/766dcfc3-a1e4-495f-86e2-570205723fef/766dcfc3-a1e4-495f-86e2-570205723fef/g" /root/bin/boot_crucial_grub.cfg
# My spare SP NVMe install.
cp /boot/grub/grub.cfg /root/bin/boot_sp_nvme_grub.cfg
sed -i "s/766dcfc3-a1e4-495f-86e2-570205723fef/a4410a13-b1ea-4007-b22f-6eb9e0a2ead4/g" /root/bin/boot_sp_nvme_grub.cfg
# My spare machine SP NVMe install.
cp /boot/grub/grub.cfg /root/bin/boot_nvme_spare_grub.cfg
sed -i "s/766dcfc3-a1e4-495f-86e2-570205723fef/f5b84b31-ce88-48ed-bbe4-edeec7a29fb2/g" /root/bin/boot_nvme_spare_grub.cfg
# My Intel external
cp /boot/grub/grub.cfg /root/bin/boot_intel_grub.cfg
sed -i "s/766dcfc3-a1e4-495f-86e2-570205723fef/6977106c-69db-4634-b33f-9a03da4b46ed/g" /root/bin/boot_intel_grub.cfg
# My laptop
cp /boot/grub/grub.cfg /root/bin/boot_lenovo_grub.cfg
sed -i "s/766dcfc3-a1e4-495f-86e2-570205723fef/cd974621-e821-401a-9df2-82054deed073/g" /root/bin/boot_lenovo_grub.cfgAs you can see it is a rather involved process I have developed to get this done but it has worked for years for me now. It will take time for you to get your own up and running but if you keep at it you can get it done.
I think they are letting young people work on the code... BAD! Leave it to us old farts!
Meh, I like the new format I think the idea is to make it more machine readable. Just for giggles looking at the labels in it I put two repositories on the single line it updates both of them just fine. Who knows if it will install packages from both or not.
root@9600k:~# agu
Hit:1 http://gnlug.org/pub/devuan/merged excalibur InRelease
Hit:2 http://gnlug.org/pub/devuan/merged excalibur-backports InRelease
Hit:3 http://gnlug.org/pub/devuan/merged excalibur-proposed-updates InRelease
Hit:4 http://gnlug.org/pub/devuan/merged excalibur-updates InRelease
Hit:5 http://de.deb.devuan.org/merged excalibur InRelease
Hit:6 http://gnlug.org/pub/devuan/merged excalibur-security InRelease
Hit:7 https://apt.benthetechguy.net/debian trixie InRelease
Hit:8 http://de.deb.devuan.org/merged excalibur-backports InRelease
Hit:9 http://de.deb.devuan.org/merged excalibur-proposed-updates InRelease
Hit:10 http://de.deb.devuan.org/merged excalibur-updates InRelease
All packages are up to date. root@9600k:~# cat /etc/apt/sources.list.d/devuan.sources
# Devuan 6 excalibur
## The new style method of using repositories to install software.
## This /etc/apt/sources.list.d/devuan.sources is new style and location file
## The /etc/apt/old.style.sources.list contains the same as this.
## https://linuxconfig.org/ubuntus-repository-configuration-ubuntu-sources-have-moved-to-etc-apt-sources-list-d-ubuntu-sources
## Normal excalibur sources
Types: deb
URIs: http://gnlug.org/pub/devuan/merged http://de.deb.devuan.org/merged
Suites: excalibur excalibur-backports excalibur-proposed-updates excalibur-updates
Components: main non-free contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/devuan-archive-keyring.gpg
Architectures: amd64
## excalibur security sources
Types: deb
URIs: http://gnlug.org/pub/devuan/merged
Suites: excalibur-security
Components: main non-free contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/devuan-archive-keyring.gpg
Architectures: amd64Edit:
root@9600k:~# alias agu
alias agu='apt update'Try this for your /etc/apt/sources.list.d/devuan.sources file.
## The new style method of using repositories to install software.
## This /etc/apt/sources.list.d/devuan.sources is new style and location file
## The /etc/apt/old.style.sources.list contains the same as this.
## https://linuxconfig.org/ubuntus-repository-configuration-ubuntu-sources-have-moved-to-etc-apt-sources-list-d-ubuntu-sources
## Normal unstable sources
Types: deb
URIs: http://gnlug.org/pub/devuan/merged
Suites: unstable
Components: main non-free contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/devuan-archive-keyring.gpg
Architectures: amd64Move your /etc/apt/sources.list to /etc/apt/old.style.sources.list to prevent conflicts and be certain only the new file will be used.
And then, the compilation still fails.
Feel free to look into the errors here.
So why the 4.0.0-dev version and not the 3.5.1? This has been shown above to work and is included/built in an excalibur system.
Edit: Oh non-mangled link to the pastebin.
My system was devuan stable originally, but now with a lot of more recent debian bullseye packages. You'd have to be more specific.
You are trying to compile modern code on at this point at least a near five year old system. As you have discovered this will not work. Upgrading to the excalibur will bring you success in what you want to do.
From the Debian Security Announcement I get in my RSS reader.
For the oldstable distribution (bookworm), these problems have been fixed
in version 3.0.17-1~deb12u3.
For the stable distribution (trixie), these problems have been fixed in
version 3.5.1-1+deb13u1.Bullseye will be using even older versions of everything including the compiler.
Do I even need to compile openssl ?
Yes I tried without doing it and it error-ed about not finding libssl.a and libcrypto.a if my memory serves me well. What kind of system you trying to compile this on? All I did was take a clone of my excalibur system and installed the build-essential got the ssl and nginx tar files and followed the commands other than the libpcre3 I skipped everything went well.
Installing the binary is no problem, what I need are the headers in order to compile nginx.
Here's the complete script
Well the ssl compiled here on an excalibur system. Here is what it gives me when doing it skipping the actual installing of the nginx.
zeus@8400:~/src/openssl-3.5.1$ ./config --prefix=/home/zeus/src/openssl-3.5.1/install
Configuring OpenSSL version 3.5.1 for target linux-x86_64
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
zeus@8400:~/src/openssl-3.5.1$ make -j $(nproc)
/usr/bin/perl util/mkinstallvars.pl PREFIX=. BINDIR=apps APPLINKDIR=ms LIBDIR= INCLUDEDIR=include "INCLUDEDIR=./include" ENGINESDIR=engines MODULESDIR=providers "VERSION=3.5.1" "LDLIBS=-ldl -pthread " > builddata.pm
/usr/bin/perl "-I." "-Iutil/perl" "-Mconfigdata" "-MOpenSSL::paramnames" "util/dofile.pl" "-oMakefile" crypto/params_idx.c.in > crypto/params_idx.c
/usr/bin/perl util/mkinstallvars.pl "PREFIX=/home/zeus/src/openssl-3.5.1/install" BINDIR=bin "LIBDIR=lib64" "libdir=/home/zeus/src/openssl-3.5.1/install/lib64" INCLUDEDIR=include APPLINKDIR=include/openssl "ENGINESDIR=/home/zeus/src/openssl-3.5.1/install/lib64/engines-3" "MODULESDIR=/home/zeus/src/openssl-3.5.1/install/lib64/ossl-modules" "PKGCONFIGDIR=/home/zeus/src/openssl-3.5.1/install/lib64/pkgconfig" "CMAKECONFIGDIR=/home/zeus/src/openssl-3.5.1/install/lib64/cmake/OpenSSL" "LDLIBS=-ldl -pthread " "VERSION=3.5.1" > installdata.pm
/usr/bin/perl "-I." "-Mconfigdata" "util/dofile.pl" "-oMakefile" include/crypto/bn_conf.h.in > include/crypto/bn_conf.h
/usr/bin/perl "-I." "-Mconfigdata" "util/dofile.pl" "-oMakefile" include/crypto/dso_conf.h.in > include/crypto/dso_conf.h
/usr/bin/perl "-I." "-Iutil/perl" "-Mconfigdata" "-MOpenSSL::paramnames" "util/dofile.pl" "-oMakefile" include/internal/param_names.h.in > include/internal/param_names.h
DEBUG: all keys: APPLINKDIR, BINDIR, CMAKECONFIGDIR, ENGINESDIR, INCLUDEDIR, LDLIBS, LIBDIR, MODULESDIR, PKGCONFIGDIR, PREFIX, VERSION, libdir
No value given for CMAKECONFIGDIR
No value given for PKGCONFIGDIR
No value given for libdir
DEBUG: PREFIX = . => PREFIX = /home/zeus/src/openssl-3.5.1
DEBUG: libdir = . => libdir = /home/zeus/src/openssl-3.5.1
DEBUG: BINDIR = apps => BINDIR = /home/zeus/src/openssl-3.5.1/apps, BINDIR_REL_PREFIX = apps
DEBUG: LIBDIR = => LIBDIR = /home/zeus/src/openssl-3.5.1, LIBDIR_REL_PREFIX =
DEBUG: INCLUDEDIR = [ include, ./include ] => INCLUDEDIR = [ /home/zeus/src/openssl-3.5.1/include, /home/zeus/src/openssl-3.5.1/include ], INCLUDEDIR_REL_PREFIX = [ include, ./include ]
DEBUG: APPLINKDIR = ms => APPLINKDIR = /home/zeus/src/openssl-3.5.1/ms, APPLINKDIR_REL_PREFIX = ms
snip...
rm -f test/tls13groupselection_test
rm -f test/tls13secretstest
${LDCMD:-gcc} -pthread -m64 -Wa,--noexecstack -Wall -O3 -L. \
-o test/tls13groupselection_test \
test/helpers/tls13groupselection_test-bin-ssltestlib.o \
test/tls13groupselection_test-bin-tls13groupselection_test.o \
-lssl test/libtestutil.a -lcrypto -ldl -pthread
${LDCMD:-gcc} -pthread -m64 -Wa,--noexecstack -Wall -O3 -L. \
-o test/tls13secretstest \
crypto/tls13secretstest-bin-packet.o \
crypto/tls13secretstest-bin-quic_vlint.o \
ssl/tls13secretstest-bin-tls13_enc.o \
test/tls13secretstest-bin-tls13secretstest.o \
-lssl test/libtestutil.a -lcrypto -ldl -pthread
rm -f test/uitest
${LDCMD:-gcc} -pthread -m64 -Wa,--noexecstack -Wall -O3 -L. \
-o test/uitest \
apps/lib/uitest-bin-apps_ui.o test/uitest-bin-uitest.o \
-lssl test/libtestutil.a -lcrypto -ldl -pthread
make[1]: Leaving directory '/home/zeus/src/openssl-3.5.1'
zeus@8400:~/src/openssl-3.5.1$ sudo make install
[sudo] password for zeus:
zeus is not in the sudoers file.
This incident has been reported to the administrator.
root@8400:~# cd /home/zeus/src/openssl-3.5.1/
root@8400:/home/zeus/src/openssl-3.5.1# make install
"make" depend && "make" _build_libs
make[1]: Entering directory '/home/zeus/src/openssl-3.5.1'
make[1]: Leaving directory '/home/zeus/src/openssl-3.5.1'
make[1]: Entering directory '/home/zeus/src/openssl-3.5.1'
make[1]: Nothing to be done for '_build_libs'.
make[1]: Leaving directory '/home/zeus/src/openssl-3.5.1'
created directory `/home/zeus/src/openssl-3.5.1/install'
created directory `/home/zeus/src/openssl-3.5.1/install/lib64'
*** Installing runtime libraries
install libcrypto.so.3 -> /home/zeus/src/openssl-3.5.1/install/lib64/libcrypto.so.3
install libssl.so.3 -> /home/zeus/src/openssl-3.5.1/install/lib64/libssl.so.3
*** Installing development files
created directory `/home/zeus/src/openssl-3.5.1/install/include'
created directory `/home/zeus/src/openssl-3.5.1/install/include/openssl'
snip...
install doc/html/man7/provider-signature.html -> /home/zeus/src/openssl-3.5.1/install/share/doc/openssl/html/man7/provider-signature.html
install doc/html/man7/provider-skeymgmt.html -> /home/zeus/src/openssl-3.5.1/install/share/doc/openssl/html/man7/provider-skeymgmt.html
install doc/html/man7/provider-storemgmt.html -> /home/zeus/src/openssl-3.5.1/install/share/doc/openssl/html/man7/provider-storemgmt.html
install doc/html/man7/provider.html -> /home/zeus/src/openssl-3.5.1/install/share/doc/openssl/html/man7/provider.html
install doc/html/man7/proxy-certificates.html -> /home/zeus/src/openssl-3.5.1/install/share/doc/openssl/html/man7/proxy-certificates.html
install doc/html/man7/x509.html -> /home/zeus/src/openssl-3.5.1/install/share/doc/openssl/html/man7/x509.htmlOnto the nginx.
zeus@8400:~/src$ cd nginx-1.29.1/
zeus@8400:~/src/nginx-1.29.1$ ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --modules-path=/usr/lib/nginx/modules --with-compat --with-http_ssl_module --with-http_v3_module --with-http_addition_module --with-http_random_index_module --with-http_slice_module --with-http_stub_status_module --with-threads --with-file-aio --with-openssl=../openssl-3.5.1 --with-openssl-opt="enable-tls1_3 enable-quic" --with-cc-opt="-I ../openssl-3.5.1/include" --with-ld-opt="-L ../openssl-3.5.1/lib"
checking for OS
+ Linux 6.12.48+deb13-amd64 x86_64
checking for C compiler ... found
+ using GNU C compiler
snip....
checking for PCRE2 library ... not found
checking for PCRE library ... not found
checking for PCRE library in /usr/local/ ... not found
checking for PCRE library in /usr/include/pcre/ ... not found
checking for PCRE library in /usr/pkg/ ... not found
checking for PCRE library in /opt/local/ ... not found
checking for PCRE library in /opt/homebrew/ ... not found
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.There I went without the libpre as the libpcre3-dev does not exist.
zeus@8400:~/src/nginx-1.29.1$ ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --modules-path=/usr/lib/nginx/modules --with-compat --with-http_ssl_module --with-http_v3_module --with-http_addition_module --with-http_random_index_module --with-http_slice_module --with-http_stub_status_module --with-threads --with-file-aio --with-openssl=../openssl-3.5.1 --with-openssl-opt="enable-tls1_3 enable-quic" --with-cc-opt="-I ../openssl-3.5.1/include" --with-ld-opt="-L ../openssl-3.5.1/lib" --without-http_rewrite_module
checking for OS
+ Linux 6.12.48+deb13-amd64 x86_64
checking for C compiler ... found
+ using GNU C compiler
snip...
checking for zlib library ... not found
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.The zlib1g-dev however does exist.
root@8400:~# apt install zlib1g-dev
The following package was automatically installed and is no longer required:
tdelibs-trinity
Use 'apt autoremove' to remove it.
Installing:
zlib1g-dev
Summary:
Upgrading: 0, Installing: 1, Removing: 0, Not Upgrading: 0
Download size: 920 kB
Space needed: 1,349 kB / 19.5 GB available
Get:1 http://gnlug.org/pub/devuan/merged excalibur/main amd64 zlib1g-dev amd64 1:1.3.dfsg+really1.3.1-1+b1 [920 kB]
Fetched 920 kB in 1s (1,119 kB/s)
Selecting previously unselected package zlib1g-dev:amd64.
(Reading database ... 226008 files and directories currently installed.)
Preparing to unpack .../zlib1g-dev_1%3a1.3.dfsg+really1.3.1-1+b1_amd64.deb ...
Unpacking zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1+b1) ...
Setting up zlib1g-dev:amd64 (1:1.3.dfsg+really1.3.1-1+b1) ...
Processing triggers for man-db (2.13.1-1) ...
zeus@8400:~/src/nginx-1.29.1$ ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --modules-path=/usr/lib/nginx/modules --with-compat --with-http_ssl_module --with-http_v3_module --with-http_addition_module --with-http_random_index_module --with-http_slice_module --with-http_stub_status_module --with-threads --with-file-aio --with-openssl=../openssl-3.5.1 --with-openssl-opt="enable-tls1_3 enable-quic" --with-cc-opt="-I ../openssl-3.5.1/include" --with-ld-opt="-L ../openssl-3.5.1/lib" --without-http_rewrite_module
checking for OS
+ Linux 6.12.48+deb13-amd64 x86_64
checking for C compiler ... found
snip...
checking for zlib library ... found
creating objs/Makefile
Configuration summary
+ using threads
+ PCRE library is not used
+ using OpenSSL library: ../openssl-3.5.1
+ using system zlib library
nginx path prefix: "/etc/nginx"
nginx binary file: "/usr/sbin/nginx"
nginx modules path: "/usr/lib/nginx/modules"
nginx configuration prefix: "/etc/nginx"
nginx configuration file: "/etc/nginx/nginx.conf"
nginx pid file: "/var/run/nginx.pid"
nginx error log file: "/var/log/nginx/error.log"
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"Which results in a makefile creation.
zeus@8400:~/src/nginx-1.29.1$ make -j $(nproc)
make -f objs/Makefile
make[1]: Entering directory '/home/zeus/src/nginx-1.29.1'
cd ../openssl-3.5.1 \
&& if [ -f Makefile ]; then make clean; fi \
&& ./config --prefix=/home/zeus/src/nginx-1.29.1/../openssl-3.5.1/.openssl no-shared no-threads enable-tls1_3 enable-quic \
&& make \
&& make install_sw LIBDIR=lib
sed -e "s|%%PREFIX%%|/etc/nginx|" \
-e "s|%%PID_PATH%%|/var/run/nginx.pid|" \
-e "s|%%CONF_PATH%%|/etc/nginx/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|" \
< man/nginx.8 > objs/nginx.8
make[2]: Entering directory '/home/zeus/src/openssl-3.5.1'
rm -f libcrypto.so.3
rm -f libcrypto.so
rm -f libssl.so.3
rm -f libssl.so
rm -f apps/libapps.a libcrypto.a libssl.a providers/libcommon.a providers/libdefault.a providers/liblegacy.a providers/libtemplate.a test/libtestutil.a
rm -f *.ld
snip...
objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \
objs/src/http/modules/ngx_http_upstream_least_conn_module.o \
objs/src/http/modules/ngx_http_upstream_random_module.o \
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/src/http/modules/ngx_http_upstream_zone_module.o \
objs/src/http/modules/ngx_http_stub_status_module.o \
objs/ngx_modules.o \
-L ../openssl-3.5.1/lib -lpthread -lcrypt ../openssl-3.5.1/.openssl/lib/libssl.a ../openssl-3.5.1/.openssl/lib/libcrypto.a -lpthread -lz \
-Wl,-E
make[1]: Leaving directory '/home/zeus/src/nginx-1.29.1'Seems straight forward enough to get done on an excalibur system. I would make certain you have the absolute latest openssl 3.5.1 code when doing it as there was major bugs patched just yesterday I think it was I seen those security updates for it get installed.