
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yokel Economics &#187; Debian</title>
	<atom:link href="http://192.168.0.198/archives/tag/debian/feed" rel="self" type="application/rss+xml" />
	<link>http://192.168.0.198</link>
	<description>Writings, notes, and data</description>
	<lastBuildDate>Mon, 30 Mar 2026 02:04:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>IceWM, Picom, and LXQT on Debian 12</title>
		<link>http://192.168.0.198/archives/2823</link>
		<comments>http://192.168.0.198/archives/2823#comments</comments>
		<pubDate>Sun, 08 Feb 2026 17:17:43 +0000</pubDate>
		<dc:creator>Yokelheim</dc:creator>
				<category><![CDATA[Computing Notes]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[IceWM]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LXQT]]></category>
		<category><![CDATA[Picom]]></category>

		<guid isPermaLink="false">http://192.168.0.198/?p=2823</guid>
		<description><![CDATA[This article details how to customize the user interface on Debian using IceWM and picom, and includes a useful font. This applies to Debian 12 at present and applies to any installation of IceWM and Picom as of this date. The version of IceWM used is 3.31, which is copyright 1992-2012 Markko Macke, and 2001 [...]]]></description>
			<content:encoded><![CDATA[<p>This article details how to customize the user interface on Debian using IceWM and picom, and includes a useful font. This applies to Debian 12 at present and applies to any installation of IceWM and Picom as of this date. The version of IceWM used is 3.31, which is copyright 1992-2012 Markko Macke, and 2001 Mathias Hasselman. The Picom version is 9.1, which is from 2022. These are the versions in the Debian repositories for Debian 12 as of this writing.</p>
<p>Download <a href="http://192.168.0.198/wp-content/uploads/2026/02/themes.tar.gz">themes.tar</a>, which contains 155 themes for IceWM including BlueSteel. This theme set is larger than the default extra-themes archive that one finds in Arch Linux or older version of other distributions. Download <a href="http://192.168.0.198/wp-content/uploads/2026/02/ubuntu-font-family-0.83.zip">ubuntu-font-family-0.83</a> for the complete set of Ubuntu fonts.  One font that I enjoy is AG57, <a href="https://github.com/neueneue/AG57">Akzidenze Grotesk</a>, some details of which can be found <a href="https://www.hackinggutenberg.berlin/en/work/ag57">online</a>.  That font is the precursor of Helvetica, which is also a wonderful font to use .</p>
<p>Extract the individual themes to ~/.icewm/themes.</p>
<p>Then, to modify that size of the text in the title bars regardless of theme, create a prefoverride file.  This is needed in the case of high resolution displays where the standard scaling settings do not modify the size of the window title bar text in IceWM.</p>
<p>Filename: ~/.icewm/prefoverride</p>
<pre># TitleFontNameXft="Impact, Condensed:size=10"
TitleFontNameXft="ubuntu:size=12"</pre>
<p>In this example, the font that I enjoyed called Impact is commented out, and Ubuntu is set to active. I used Impact, but choose to change it to Ubuntu. I left the comment there so that I could remember that one in the future.</p>
<p>By default, with this version, there is a sample config file in /usr/share/doc/picom/examples/picom.sample.conf.  Copy this file to ~/.config/picom/picom.conf and modify to to suit your preferences.</p>
<p>In my case, I changed the shadow widths on the windows and their starting locations.  I also disabled transparency because I dislike the effect of partially transparent windows.</p>
<p>Here is my config file (~/.config/picom/picom.conf):</p>
<p>&nbsp;</p>
<pre>#################################
#             Shadows           #
#################################

# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option.
#
# shadow = false
shadow = true;

# The blur radius for shadows, in pixels. (defaults to 12)
# shadow-radius = 12
shadow-radius = 12;

# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
shadow-opacity = .60

# The left offset for shadows, in pixels. (defaults to -15)
# shadow-offset-x = -15
shadow-offset-x = -10;

# The top offset for shadows, in pixels. (defaults to -15)
# shadow-offset-y = -15
shadow-offset-y = -10;

# Red color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-red = 0

# Green color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-green = 0

# Blue color value of shadow (0.0 - 1.0, defaults to 0).
# shadow-blue = 0

# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue)
# shadow-color = "#000000"

# Specify a list of conditions of windows that should have no shadow.
#
# examples:
#   shadow-exclude = "n:e:Notification";
#
# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification'",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",
  "_GTK_FRAME_EXTENTS@:c"
];

# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window.
# clip-shadow-above = []

# Specify a X geometry that describes the region in which shadow should not
# be painted in, such as a dock window region. Use
#    shadow-exclude-reg = "x10+0+0"
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
#
# shadow-exclude-reg = ""

# Crop shadow of a window fully on a particular Xinerama screen to the screen.
# xinerama-shadow-crop = false

#################################
#           Fading              #
#################################

# Fade windows in/out when opening/closing and when opacity changes,
#  unless no-fading-openclose is used.
# fading = false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
# fade-in-step = 0.028
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
# fade-out-step = 0.03
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (&gt; 0, defaults to 10)
# fade-delta = 10

# Specify a list of conditions of windows that should not be faded.
# fade-exclude = []

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false

#################################
#   Transparency / Opacity      #
#################################

# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
# inactive-opacity = 1
#inactive-opacity = 0.8;

# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
# frame-opacity = 1.0
#frame-opacity = 0.7;

# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows.
# inactive-opacity-override = true
#inactive-opacity-override = false;

# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
active-opacity = 1.0

# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
# inactive-dim = 0.0

# Specify a list of conditions of windows that should never be considered focused.
# focus-exclude = []
#focus-exclude = [ "class_g = 'Cairo-clock'" ];

# Use fixed inactive dim value, instead of adjusting according to window opacity.
# inactive-dim-fixed = 1.0

# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
# Note we don't make any guarantee about possible conflicts with other
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
# example:
#    opacity-rule = [ "80:class_g = 'URxvt'" ];
#
#opacity-rule = []

#################################
#           Corners             #
#################################

# Sets the radius of rounded window corners. When &gt; 0, the compositor will
# round the corners of windows. Does not interact well with
# `transparent-clipping`.
corner-radius = 0

# Exclude conditions for rounded corners.
rounded-corners-exclude = [
  "window_type = 'dock'",
  "window_type = 'desktop'"
];

#################################
#     Background-Blurring       #
#################################

# Parameters for background blurring, see the *BLUR* section for more information.
# blur-method =
# blur-size = 12
#
# blur-deviation = false
#
# blur-strength = 5

# Blur background of semi-transparent / ARGB windows.
# Bad in performance, with driver-dependent behavior.
# The name of the switch may change without prior notifications.
#
# blur-background = false

# Blur background of windows when the window frame is not opaque.
# Implies:
#    blur-background
# Bad in performance, with driver-dependent behavior. The name may change.
#
# blur-background-frame = false

# Use fixed blur strength rather than adjusting according to window opacity.
# blur-background-fixed = false

# Specify the blur convolution kernel, with the following format:
# example:
#   blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
#
# blur-kern = ""
blur-kern = "3x3box";

# Exclude conditions for background blur.
# blur-background-exclude = []
blur-background-exclude = [
  "window_type = 'dock'",
  "window_type = 'desktop'",
  "_GTK_FRAME_EXTENTS@:c"
];

#################################
#       General Settings        #
#################################

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
# `xrender` is the default one.
#
# backend = "glx"
backend = "xrender";

# Enable/disable VSync.
# vsync = false
vsync = true;

# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
# dbus = false

# Try to detect WM windows (a non-override-redirect window with no
# child that has 'WM_STATE') and mark them as active.
#
# mark-wmwin-focused = false
mark-wmwin-focused = true;

# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
# mark-ovredir-focused = false
mark-ovredir-focused = true;

# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# detect-rounded-corners = false
detect-rounded-corners = true;

# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
#
# detect-client-opacity = false
# detect-client-opacity = true;

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
# provided that the WM supports it.
#
# use-ewmh-active-win = false

# Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows.
#
# unredir-if-possible = false

# Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0

# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
# unredir-if-possible-exclude = []

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# detect-transient = false
detect-transient = true;

# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
# group focused at the same time. This usually means windows from the same application
# will be considered focused or unfocused at the same time.
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
#
# detect-client-leader = false

# Resize damaged region by a specific number of pixels.
# A positive value enlarges it while a negative one shrinks it.
# If the value is positive, those additional pixels will not be actually painted
# to screen, only used in blur calculation, and such. (Due to technical limitations,
# with use-damage, those pixels will still be incorrectly painted to screen.)
# Primarily used to fix the line corruption issues of blur,
# in which case you should use the blur radius value here
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
# with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
#
# resize-damage = 1

# Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested.
#
# invert-color-include = []

# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
# Might cause incorrect opacity when rendering transparent content (but never
# practically happened) and may not work with blur-background.
# My tests show a 15% performance boost. Recommended.
#
# glx-no-stencil = false

# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes,
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
# Recommended if it works.
#
# glx-no-rebind-pixmap = false

# Disable the use of damage information.
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
# The opposing option is use-damage
#
# no-use-damage = false
use-damage = true;

# Use X Sync fence to sync clients' draw calls, to make sure all draw
# calls are finished before picom starts drawing. Needed on nvidia-drivers
# with GLX backend for some users.
#
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window contents.
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
# in the source tree for examples.
#
# glx-fshader-win = ""

# Force all windows to be painted with blending. Useful if you
# have a glx-fshader-win that could turn opaque pixels transparent.
#
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
#
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them.
#
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case doesn't matter.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# log-level = "debug"
log-level = "warn";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = "/path/to/your/log/file"

# Show all X errors (for debugging)
# show-all-xerrors = false

# Write process ID to a file.
# write-pid-path = "/path/to/your/log/file"

# Window type settings
#
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
#     "unknown", "desktop", "dock", "toolbar", "menu", "utility",
#     "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
#     "tooltip", "notification", "combo", and "dnd".
#
# Following per window-type options are available: ::
#
#   fade, shadow:::
#     Controls window-type-specific shadow and fade settings.
#
#   opacity:::
#     Controls default opacity of the window type.
#
#   focus:::
#     Controls whether the window of this type is to be always considered focused.
#     (By default, all window types except "normal" and "dialog" has this on.)
#
#   full-shadow:::
#     Controls whether shadow is drawn under the parts of the window that you
#     normally won't be able to see. Useful when the window has parts of it
#     transparent, and you want shadows in those areas.
#
#   clip-shadow-above:::
#     Controls wether shadows that would have been drawn above the window should
#     be clipped. Useful for dock windows that should have no shadow painted on top.
#
#   redir-ignore:::
#     Controls whether this type of windows should cause screen to become
#     redirected again after been unredirected. If you have unredir-if-possible
#     set, and doesn't want certain window to cause unnecessary screen redirection,
#     you can set this to `true`.
#
wintypes:
{
  tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
  dock = { shadow = false; clip-shadow-above = true; }
  dnd = { shadow = false; }
  popup_menu = { opacity = 0.95; }
  dropdown_menu = { opacity = 0.95; }
};</pre>
<p>To use picom effectively, add &#8220;picom -b&#8221; to the session manager for startup options.  Steam does not like picom, so use &#8220;pkill picom&#8221; before launching games that rely on Steam.  In my particular case I have a session that uses the KDE destkop and I switch into that for steam gaming and then back to my LXQT session with IceWM and Picom for everything else.</p>
]]></content:encoded>
			<wfw:commentRss>http://192.168.0.198/archives/2823/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LibreWolf 145 &amp; Integrated AppImage</title>
		<link>http://192.168.0.198/archives/2573</link>
		<comments>http://192.168.0.198/archives/2573#comments</comments>
		<pubDate>Sun, 23 Nov 2025 20:24:19 +0000</pubDate>
		<dc:creator>Yokelheim</dc:creator>
				<category><![CDATA[Computing Notes]]></category>
		<category><![CDATA[AppImage]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[LibreWolf]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://192.168.0.198/?p=2573</guid>
		<description><![CDATA[LibreWolf is a fork of Firefox that removes many of Mozilla&#8217;s bad decisions.1 A mirror of LibreWolf 145.0.1-2.x86_64 appimage is available here. Debian stable requires one to use a format other than the LibreWolf repo because as of 23 November, 2025 their site says the following: sudo apt update &#38;&#38; sudo apt install extrepo -y [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://librewolf.net">LibreWolf</a> is a fork of Firefox that removes many of Mozilla&#8217;s bad decisions.<sup>1</sup> A mirror of LibreWolf 145.0.1-2.x86_64 appimage is available <a href="http://192.168.0.198/wp-content/uploads/2025/11/LibreWolf-145.0.1-2.x86_64.appimage">here</a>. Debian stable requires one to use a format other than the LibreWolf repo because as of 23 November, 2025 their site says the following:</p>
<pre>sudo apt update &amp;&amp; sudo apt install extrepo -y
sudo extrepo enable librewolf
sudo apt update &amp;&amp; sudo apt install librewolf -y</pre>
<p><a href="https://packages.debian.org/sid/extrepo">Extrarepo exists only in Sid</a>, which makes it unsuitable for Bookworm, or other stable Debian editions.  Adding Sid repos can turn Debian into something akin to a rolling distribution but it can cause problems if one wants older software.</p>
<p>To integrate the linked appimage into the operating system, take the following actions.<sup>2</sup></p>
<pre>./LibreWolf.x86_64.AppImage --appimage-extract
mv squashfs-root librewolf-145.0.1-2
mv librewolf-145.0.1-2 $HOME/Apps
cp $HOME/Apps/librewolf-145.0.1-2/io.gitlab.LibreWolf.desktop $HOME/.local/share/applications</pre>
<p>Then, modify the four lines in $HOME/.local/share/applications/io.gitlab.LibreWolf.desktop that say <em>exec</em>. Those lines need to reflect the path where the executable resides.</p>
<p>I was working on this with Obsidian and preparing to archive the appimage on this website when I ran into a snag. The Obsidian .desktop referenced the AppRun from the AppImage whereas Librewolf referenced the executable named librewolf. After resolving this, I checked the licenses. Obsidian distributes software that is under the Apache License. That license allows one to add other requirements to their additions to the software. Their additional term is that you may not redistribute their software. They are even more onerous that IBM was with Lotus Symphony 3. Lotus Symphony 3 was an office suite built on Open Office that had an excellent tabbed document interface. It was a beautiful interface that Open Office should have incorporated, but for some reason they did not. The Symphony 3 license allows you to redistribute on physical disc to your friends and family, but not via internet website. Obsidian says no to redistribution at all. I was using Obsidian extensively on all my mobile devices, but will have to discontinue using it now. I have no interest in building open source machines with open source operating systems and having software that does not allow you to mirror it.</p>
<pre>
./Obsidian-1.10.3.AppImage --appimage-extract
mv squashfs-root Obsidian-1.10.3
mv Obsidian-1.10.3 $HOME/Apps
cp $HOME/Apps/Obsidian-1.10.3/obsidian.desktop $HOME/.local/share/applications

Modify the exec line in $HOME/.local/share/applications/obsidian.desktop to reflect the path where the AppImage contents appear. The exec should point to the application binary and not the AppRun file. e.g. $HOME/Apps/Obsidian-1.10.3/obsidian
</pre>
<p>I will leave this here for memory and education, but will discontinue the use of Obsidian since its future as an ongoing concern is limited to their availability of their website as a distribution channel.  That does not bode well.  Symphony 3 (1.3 on Linux) is nearly extinct, but one can still run it on old virtual machines.  </p>
<ol>
<li>Mozilla&#8217;s strategic direction seems to be toward operating as an advertising company that uses the software clients themselves as the vehicle for advertisements and user data rather than websites and advertising platforms showing advertisements on those sites.</li>
<li>I use $HOME/Apps and $HOME/Applications to install programs like this rather than opt so that I can easily modify files or use them in backup scripts. Typically Apps contains smaller programs, and Applications contains larger ones such as GPT4ALL which consumes tens of gigabytes.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://192.168.0.198/archives/2573/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian 12 Sources</title>
		<link>http://192.168.0.198/archives/2450</link>
		<comments>http://192.168.0.198/archives/2450#comments</comments>
		<pubDate>Sun, 07 Sep 2025 02:38:50 +0000</pubDate>
		<dc:creator>Yokelheim</dc:creator>
				<category><![CDATA[Computing Notes]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[bookworm]]></category>
		<category><![CDATA[bullseye]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://192.168.0.198/?p=2450</guid>
		<description><![CDATA[This is a listing of Debian sources for future reference.&#160; Debian maintains&#160; an archive of older versions on the Distribution Archives website.&#160; It may be necessary at some point in the future to change the bullseye information below so that it points to the distribution archives. /etc/apt/sources.list.d/vivaldi.list ### THIS FILE IS AUTOMATICALLY CONFIGURED ### # [...]]]></description>
			<content:encoded><![CDATA[<p>This is a listing of Debian sources for future reference.&#160; Debian maintains&#160; an archive of older versions on the <a href="https://www.debian.org/distrib/archive">Distribution Archives</a> website.&#160; It may be necessary at some point in the future to change the bullseye information below so that it points to the distribution archives.</p>
<p><strong>/etc/apt/sources.list.d/vivaldi.list</strong> </p>
<pre>### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb [arch=amd64] https://repo.vivaldi.com/stable/deb/ stable main
</pre>
<p><strong>End of File</strong> </p>
<p>&#160;</p>
<p><strong>/etc/apt/sources.list</strong></p>
<pre>                                                
#deb cdrom:[Debian GNU/Linux 12.4.0 _Bookworm_ - Official amd64 NETINST with firmware 20231210-17:56]/ bookworm main&gt;

deb http://deb.debian.org/debian/ bookworm main non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware

# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware

# Debian 12 &quot;bookworm&quot; dropped by Python2.  Adding Debian 11 &quot;bullseye&quot;
# removed bullseye non-free-firmware from each of the below bullseye lines
# due to errors on 7/24/25</pre>
<pre>
deb http://deb.debian.org/debian/ bullseye main
deb-src http://deb.debian.org/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main
deb http://deb.debian.org/debian/ bullseye-updates main
deb-src http://deb.debian.org/debian/ bullseye-updates main


# added 7/24/25
# https://fasttrack.debian.net/


deb http://fasttrack.debian.net/debian-fasttrack/ bookworm-fasttrack main contrib
deb http://fasttrack.debian.net/debian-fasttrack/ bookworm-backports-staging main contrib



# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching &quot;deb cdrom&quot;
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
</pre>
<p><strong>End of File</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://192.168.0.198/archives/2450/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building an anti-bitrot bunker</title>
		<link>http://192.168.0.198/archives/1034</link>
		<comments>http://192.168.0.198/archives/1034#comments</comments>
		<pubDate>Sun, 20 Oct 2024 10:18:31 +0000</pubDate>
		<dc:creator>Yokelheim</dc:creator>
				<category><![CDATA[Computing Notes]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[R]]></category>

		<guid isPermaLink="false">http://192.168.0.198/?p=1034</guid>
		<description><![CDATA[When I first obtained a CompTIA A+ certification some time ago, the concept of bit rot related to what happens to software reliability as the number of updates to the system increases. Over time, software that worked in years past ceases to work as new system updates block system calls or change permissions and files [...]]]></description>
			<content:encoded><![CDATA[<p>When I first obtained a CompTIA A+ certification some time ago, the concept of bit rot related to what happens to software reliability as the number of updates to the system increases. Over time, software that worked in years past ceases to work as new system updates block system calls or change permissions and files that the software originally relied upon. This slow decaying of reliability was called bit rot. There are some other definitions floating around on the internet, but that is the one most relevant for me.</p>
<p>To prevent this and reduce the amount of time spent in sorting out the bit rot introduced to my investments by Microsoft&#8217;s proclivities, I have standardized on two operating systems for major time investments in computing that occupy my life.  Windows still has a place since I sometimes use Windows only games to play with my child.  Other than that necessity, I have built the things I rely on for use with Linux.  The two versions that I have standardized on are Debian and Fedora. Specifically Debian 12 and Fedora 38.  These are not what is used for the website, but they are the major components of my anti-bitrot infrastructure.  I am aware this may not be good security practice, but this isn&#8217;t to get me a job, this is to serve an aging man and his family reliably over time.</p>
<p>There are a few reasons that I selected Fedora 38 and Debian 12. Fedora 38 still has Python 2.7 in the repositories.  It was within 2 versions for upgrading from Fedora 36. Fedora 36 was what I was running in my Windows Subsystem for Linux instance, and I upgraded it to Fedora 38.   When deciding to move back to bare metal for my Linux software development and automation needs, I decided to standardize on that one.  Debian has a 32 bit version. I have both the 32-bit and 64-bit deployed in my network.  Debian 32 bit allows on to easily 32-bit builds of Java on a Linux server.  One can add the testing repository and have the latest Java in 32 bit form.  32-bit Java is necessary to run older Minecraft versions.  My family has a large set of mod-collections and old Java Minecraft instances and maps going back about 8 years. I can then run the latest JVM and the latest Minecraft on the same server because the 32bit JVM is available.  It is very annoying to try and  manage 32bit and 64bit Java virtual machines on the same host, so having it all 32-bit solves a huge problem.  One can add the Debian 11 repository and install Python2.7 if one wants to use old Python versions.  I need this old Python version for a project that I worked on over the course of the last 8 years.</p>
<p>The general anti-bit rot measure for Debian is to always use apt-get to install packages as this will leave the .deb file in the cache.  Then copy those .deb files on a regular basis to another location for use as a repository for other Debian installations.  This can be configured to work via a cron job.  Debian is really the only long-term viable game in town if one wants a 32-bit anti-bitrot bunker that will last into the future, over say, a ten year time horizon. Save the .deb files on a private web-server inside the network and periodically update that repository with the files copied via the sweeps from the cache directory.</p>
<p>For Fedora, this should work with any version.  Fedora 38 is the one I use.  Edit the /etc/dnf/dnf.conf file to say keep_cache=True, and this will save the dowloaded RPMS.  One can then build their repository using only what they need if so desired.  The other genuine long term standardization option is to mirror the entire repositories to the private webserver within one&#8217;s network.  To do this, install yumdownloader.   Then, move all of the .repo files from /etc/yum.repos.d except for one to a temporary location.  Then, go into a directory with a lot of space.  For Fedora 38, the complete mirror was 229GB.  Then use yumdownloader * and it will download all files from that repository.  Then, use yumdownloader &#8211;source * and it will download all source packages for the packages that it just downloaded.  Then, go back to /etc/yum.repos.d and switch that .repo file out with one that was moved previously, and repeat the process until all repositories have been completely downloaded.  Then, copy all downloaded RPMS to one large directory on the webserver and use createrepo to create the meta data.  Then on the client machines, create a .repo pointing to your own webserver, and move the existing .repo files in /etc/yum.repos.d to an archival location.   Then all of your installations will occur from your own webserver and all machines will have the same versions of packages.</p>
<p>In my case, I then install the data science specifics that I need for the automated software that I created.  The process varies slightly depending on whether the system is Fedora or Debian.</p>
<p>For Debian:</p>
<p>Add bullseye to sources.list<br />
Install python2 via bullseye repositories<br />
Install pip via the downloaded file from <a href="https://linuxhint.com/install-pip-on-debian-11/">https://linuxhint.com/install-pip-on-debian-11/</a> that is to say,<br />
1. wget <a href="https://bootstrap.pypa.io/pip/2.7/get-pip.py">https://bootstrap.pypa.io/pip/2.7/get-pip.py</a><br />
2. python2 ./get-pip.py<br />
Apt-get install libcurl4-openssl-dev</p>
<p>R:<br />
Install.packages(‘curl’)<br />
Install.packages(‘fpp2’)<br />
Install.packages(‘magrittr’)<br />
Install.packages(‘urca’)<br />
Install.packages(‘vars’)<br />
Install.packages(‘psych’)<br />
Apt-get install r-cran-rjava<br />
Install.packages(‘rJava’)<br />
Install.packages(‘xlsx’)<br />
Install.packages(‘Hmisc’)<br />
Install.packages(‘prophet’)<br />
Install.packages(‘dplyr’)<br />
pip2 install parsedatetime==2.5<br />
apt-get install awscli<br />
pip2 install boto3<br />
apt-get install r-cran-car</p>
<p>Troubleshooting steps if .xlsx and others are not built:<br />
Are all R packages installed successfully with a 0 exit status?</p>
<p>On Fedora, the repositories do not contain R components in the same way the Debian repositories do.  Here is the process for Fedora 38.</p>
<p>Used the script https://bootstrap.pypa.io/pip/2.7/get-pip.py<br />
pip2 install parsedatetime==2.5 &#8211;user<br />
dnf install libcurl<br />
dnf install libcurl-devel<br />
dnf install R<br />
dnf install awscli<br />
pip2 install boto3 &#8211;user<br />
dnf install cmake</p>
<p>Within R:<br />
install.packages(&#8216;car&#8217;)<br />
install.packages(&#8216;curl&#8217;)<br />
install.packages(&#8216;fpp2&#8242;)<br />
install.packages(‘magrittr’)<br />
install.packages(&#8216;urca&#8217;)<br />
install.packages(&#8216;vars&#8217;)<br />
install.packages(&#8216;psych&#8217;)<br />
install.packages(&#8216;rJava&#8217;)<br />
install.packages(&#8216;xlsx&#8217;)<br />
install.packages(&#8216;Hmisc&#8217;)<br />
install.packages(&#8216;prophet&#8217;)<br />
install.packages(&#8216;dplyr&#8217;)</p>
]]></content:encoded>
			<wfw:commentRss>http://192.168.0.198/archives/1034/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian 12  PATH and X11</title>
		<link>http://192.168.0.198/archives/592</link>
		<comments>http://192.168.0.198/archives/592#comments</comments>
		<pubDate>Sat, 18 May 2024 07:46:10 +0000</pubDate>
		<dc:creator>Yokelheim</dc:creator>
				<category><![CDATA[Computing Notes]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[X11]]></category>

		<guid isPermaLink="false">http://192.168.0.198/?p=592</guid>
		<description><![CDATA[A few quirks with Debain 12 include that path not being set in similar fashion to Fedora, Ubuntu, and other distributions.  One must regularly set export PATH=$PATH:/usr/sbin In Gnome, applications will open on the server instead of the client when using X11 forwarding.  This will occur even though xcalc opens on the client normally.  The [...]]]></description>
			<content:encoded><![CDATA[<p>A few quirks with Debain 12 include that path not being set in similar fashion to Fedora, Ubuntu, and other distributions.  One must regularly set</p>
<pre><code>export PATH=$PATH:/usr/sbin</code></pre>
<p>In Gnome, applications will open on the server instead of the client when using X11 forwarding.  This will occur even though xcalc opens on the client normally.  The way to avoid this is to add the following to .bashrc</p>
<pre>unset XDG_RUNTIME_DIR 
unset GDK_BACKEND</pre>
<p>The general rule is compress, then encrypt.<sup>1, 2</sup></p>
<p>1. <a title="https://stackoverflow.com/questions/4676095/when-compressing-and-encrypting-should-i-compress-first-or-encrypt-first" href="https://stackoverflow.com/questions/4676095/when-compressing-and-encrypting-should-i-compress-first-or-encrypt-first">https://stackoverflow.com/questions/4676095/when-compressing-and-encrypting-should-i-compress-first-or-encrypt-first</a></p>
<p>2. <a title="https://crypto.stackexchange.com/questions/33737/is-it-better-to-encrypt-before-compression-or-vice-versa" href="https://crypto.stackexchange.com/questions/33737/is-it-better-to-encrypt-before-compression-or-vice-versa">https://crypto.stackexchange.com/questions/33737/is-it-better-to-encrypt-before-compression-or-vice-versa</a></p>
]]></content:encoded>
			<wfw:commentRss>http://192.168.0.198/archives/592/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Java 21 in Debian 12</title>
		<link>http://192.168.0.198/archives/361</link>
		<comments>http://192.168.0.198/archives/361#comments</comments>
		<pubDate>Sun, 05 May 2024 02:50:00 +0000</pubDate>
		<dc:creator>Yokelheim</dc:creator>
				<category><![CDATA[Computing Notes]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://192.168.0.198/?p=361</guid>
		<description><![CDATA[Minecraft Java edition lost compatibility with Java 17 between 1.20.4 and 1.20.6. Version 1.20.4 works with Java 17, and 1.20.6 no longer works with Java 17.  Several guides appear online for installing downloaded packages of the 64-bit runtime from Oracle or other sources.  Since Debian offers 32-bit server operating systems in the present day, the [...]]]></description>
			<content:encoded><![CDATA[<p>Minecraft Java edition lost compatibility with Java 17 between 1.20.4 and 1.20.6. Version 1.20.4 works with Java 17, and 1.20.6 no longer works with Java 17.  Several guides appear online for installing downloaded packages of the 64-bit runtime from Oracle or other sources.  Since Debian offers 32-bit server operating systems in the present day, the package manager versions are the easiest option if one uses the 32-bit version of Debian.  One of the reasons to use the 32-bit version of Debian is for use with older versions of Minecraft such as 1.10 and 1.12.  The older versions’ ecosystem contain an incredible number of mods.  The older versions require 32-bit java runtimes and the easiest way to handle that is to use a 32-bit operating system and then one can have newer versions of Java alongside older versions of Java and then one can run any version of Minecraft and Minecraft Forge that they desire.</p>
<p>Edit /etc/apt/sources.list to contain the following lines:</p>
<pre>deb <a href="http://deb.debian.org/debian">http://deb.debian.org/debian</a> testing main
deb-src <a href="http://deb.debian.org/debian">http://deb.debian.org/debian</a> testing main</pre>
<p>Then, run the following commands.</p>
<pre>apt-get update
apt-get install openjdk-21-jre</pre>
<pre>java –version</pre>
<p><a title="https://wiki.debian.org/DebianTesting" href="https://wiki.debian.org/DebianTesting">https://wiki.debian.org/DebianTesting</a> contains a good reference guide for using Debian Testing, including details on upgrading to the next distribution.  The approximate Java lifecycle can be found at <a title="https://www.oracle.com/java/technologies/java-se-support-roadmap.html" href="https://www.oracle.com/java/technologies/java-se-support-roadmap.html">https://www.oracle.com/java/technologies/java-se-support-roadmap.html</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://192.168.0.198/archives/361/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
