Software developer interested into security and sustainability.
You’re right, apparently amongst other things there are some hooks that are ran during the package’s lifecycle in something that is called the control archive.
Actually it’s just an archive. It can be easily extracted using dpkg -x *.deb ~/.local
for example.
Fuck them, glad I switched to Jellyfin years ago.
True. Technically the bounds for the validity period are from Jan 1, 1950 to Dec 31, 9999.
Eval is bad for security boundaries and the string based approach is a pain to develop and maintain. An alternative that is equally bad for security but better for development would be dynamic imports using importlib.
If you want to support custom scripts while enforcing security boundaries, you could use an embeddable interpreter like lua, or create your own.
E8XIB¹⁹
It all makes sense when you think about the way it will be parsed. I prefer to use newlines instead of semicolons to show the blocks more clearly.
for file in *.txt
do
cat "$file"
done
The do
and done
serve as the loop block delimiters. Such as {
and }
in many other languages. The shell parser couldn’t know where stuff starts/ends.
Edit:
I agree that the then
/fi
, do
/done
case
/esac
are very inconsistent.
Also to fail early and raise errors on uninitialized variables, I recommend to add this to the beginning of your bash scripts:
set -euo pipefail
Or only this for regular sh scripts:
set -eu
-e
: Exit on error
-u
: Error on access to undefined variable
-o pipefail
: Abort pipeline early if any part of it fails.
There is also -x
that can be very useful for debugging as it shows a trace of every command and result as it is executed.
What are you missing on Firebase?
This + node_exporter.
I think you may want to use
for device in /dev/disk/by-uuid/*
That doesn’t explain why you aren’t seeing messages. I see there is a shebang at the start of the script. Can you confirm that the script has the executable bit set for the root user?
It works with USB interfaces using passthrough. But yeah doesn’t make a lot of sense.
You wouldn’t download a car‽
I understand your project’s constraints. I meant that you could try compiling and running the mongoose server linked against the packed filesystem in your development machine.
It seems to me that the problem would be caused by Mongoose packing, rather than vite/rollup’s build, since it seems to run fine on your development environment.
PS: Could you try reproducing the Problem using a mongoose server running on your development machine, or even better: on a Dockerfile? Then you could share a minimal example that could help to further diagnose the issue.
From Archwiki > xrandr:
Tip: Both GDM and SDDM have startup scripts that are executed when X is initiated. For GDM, these are in /etc/gdm/, while for SDDM this is done at /usr/share/sddm/scripts/Xsetup. This method requires root access and mucking around in system configuration files, but will take effect earlier in the startup process than using xprofile.
It is an issue in a managed environment such as on corporation or school PCs.