<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://thinkserver.freddythechick.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sam</id>
	<title>ThinkServer - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://thinkserver.freddythechick.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sam"/>
	<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/wiki/Special:Contributions/Sam"/>
	<updated>2026-07-21T16:11:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_16.0&amp;diff=1007</id>
		<title>OpenSUSE Leap 16.0</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_16.0&amp;diff=1007"/>
		<updated>2026-07-10T14:13:45Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Installation notes/Known Issues = */ Removed extra =&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Linux distribution my server is based on. More information is available [https://www.opensuse.org/ here].&lt;br /&gt;
&lt;br /&gt;
If you are looking to install openSUSE, there are more details in [[obtaining openSUSE 16.0]].&lt;br /&gt;
&lt;br /&gt;
== Changes to openSUSE ==&lt;br /&gt;
=== YaST deprication ===&lt;br /&gt;
&lt;br /&gt;
YaST is no longer being developed by SuSE and therefore is not being developed for openSUSE. Therefore, YaST is not available in openSUSE 16.0. openSUSE 16.0 now uses Myrlyn for package management and Cockpit for most other things YaST used to do.&lt;br /&gt;
&lt;br /&gt;
=== New installer ===&lt;br /&gt;
&lt;br /&gt;
Agama is the new web based installer for openSUSE when installing via ISO image. There is also a migration tool available in previous versions that takes care of the full migration to openSUSE 16.0 automatically and painlessly.&lt;br /&gt;
&lt;br /&gt;
=== Wayland compositor by default ===&lt;br /&gt;
&lt;br /&gt;
openSUSE 16.0 no longer uses X and defaults to using Wayland as the desktop compositor. To use X as before, this must be installed yourself but do note, this is deprecated.&lt;br /&gt;
&lt;br /&gt;
=== AppArmor no longer default ===&lt;br /&gt;
&lt;br /&gt;
AppArmor is no longer the default security solution, SELinux is now the preferred security solution for openSUSE 16.0. AppArmor can, however, still be used if preferred.&lt;br /&gt;
&lt;br /&gt;
== Installation notes/Known Issues ==&lt;br /&gt;
&lt;br /&gt;
* If upgrading, check the &amp;quot;Unneeded Packages&amp;quot; category in Myrlyn once upgraded to remove any lingering unneeded packages from the previous version.&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
[[OpenSUSE Leap 16.0 Release Notes|Release Notes]]&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 16.0 was released on 1st October 2025. It is an open-source distribution and is free of charge. It is developed by the community and sponsored by [https://www.eqtgroup.com/ EQT Partners] (formally Micro Focus and Novell).&lt;br /&gt;
&lt;br /&gt;
== Previous supported versions (at time of release) ==&lt;br /&gt;
&lt;br /&gt;
* openSUSE Leap 15.6 (Supported until 30th April 2026)&lt;br /&gt;
* openSUSE Tumbleweed (Rolling release)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:openSUSE Leap 16.0 webpage.webp|center|400px]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=WireGuard&amp;diff=1006</id>
		<title>WireGuard</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=WireGuard&amp;diff=1006"/>
		<updated>2026-07-01T16:44:37Z</updated>

		<summary type="html">&lt;p&gt;Sam: Recreated lost page through Wayback Machine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WireGuard is a lightweight VPN server, built-in to the Linux kernel past kernel 5.6, making it very easy to set up on a Linux server. This guide will detail how to install on this server.&lt;br /&gt;
&lt;br /&gt;
== Before you start ==&lt;br /&gt;
You will need to install the following packages:&lt;br /&gt;
* &amp;lt;code&amp;gt;openresolv&amp;lt;/code&amp;gt; (for DNS resolution)&lt;br /&gt;
* &amp;lt;code&amp;gt;wireguard-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install the required packages ===&lt;br /&gt;
* Type &amp;lt;code&amp;gt;sudo zypper in openresolv wireguard-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Y&amp;lt;/kbd&amp;gt; to accept&lt;br /&gt;
&lt;br /&gt;
=== Allow IP forwarding ===&lt;br /&gt;
WireGuard requires IP forwarding to function as it will forward packets between your network adapter and a virtual adapter.&lt;br /&gt;
&lt;br /&gt;
* Open a terminal window&lt;br /&gt;
* Move to &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; - &amp;lt;code&amp;gt;cd /etc&amp;lt;/code&amp;gt;&lt;br /&gt;
* Open &amp;lt;code&amp;gt;sysctl.conf&amp;lt;/code&amp;gt; for editing - &amp;lt;code&amp;gt;sudo nano sysctl.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Type your root password and press &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt;&lt;br /&gt;
* At the end of the file, type the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;net.ipv4.ip_forward=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Press &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;X&amp;lt;/kbd&amp;gt; then &amp;lt;kbd&amp;gt;Y&amp;lt;/kbd&amp;gt; to save then &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt; to confirm saving the file&lt;br /&gt;
* Load the changes - &amp;lt;code&amp;gt;sysctl -p&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Restart the computer ===&lt;br /&gt;
* After completing the previous steps, restart the computer. This will active &amp;lt;code&amp;gt;openresolv&amp;lt;/code&amp;gt; (no further configuration needed) and ensure IP forwarding is enabled. You are now ready to configure WireGuard.&lt;br /&gt;
&lt;br /&gt;
=== Allow port forwarding on the router ===&lt;br /&gt;
* Port 33333 or whatever port you choose later must be port forwarded through your router. Ensure this is for UDP, &#039;&#039;&#039;NOT&#039;&#039;&#039; TCP.&lt;br /&gt;
&lt;br /&gt;
== Configure the server ==&lt;br /&gt;
We will now configure the server settings for WireGuard. WireGuard comes complete with tools to create the the private/public keys needed to function and is configured with a simple configuration file.&lt;br /&gt;
&lt;br /&gt;
=== Become a superuser ===&lt;br /&gt;
For the following sets, you may need to become a superuser (&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;) to access the WireGuard folder.&lt;br /&gt;
&lt;br /&gt;
* Become a superuser - &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Move to WireGuard directory ===&lt;br /&gt;
* Type your root password and press &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt;. The terminal text should change to red to indicate you are now a superuser.&lt;br /&gt;
* Move to the WireGuard directory - &amp;lt;code&amp;gt;cd /etc/wireguard&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will find this directory is empty - we will work in this directory which is secure.&lt;br /&gt;
&lt;br /&gt;
=== Generate a public/private key pair ===&lt;br /&gt;
* Generate a private and public key for the server. You can use the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;wg genkey | tee server-privatekey | wg pubkey &amp;gt; server-publickey&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;server-privatekey&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;server-publickey&amp;lt;/code&amp;gt; are filenames and can be anything you want and can be changed accordingly. These files are not directly used by WireGuard.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FFEEEE;border:1px solid #FF0000;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The private key generated should &#039;&#039;&#039;NEVER&#039;&#039;&#039; leave the server. Anyone with the private key can connect to and compromise the server. If the key does become compromised, a new private key should be generated and configured immediately and the old key never used again.&lt;br /&gt;
&lt;br /&gt;
To keep private keys secure once used, it is advisable to store the private key somewhere offline and secure, away from the server. One example would be a USB stick. This way, if the server is compromised, it will be more difficult to compromise the private key. Ensure the permissions are correct as follows so that access is restricted to only superusers.&lt;br /&gt;
&lt;br /&gt;
The public key is safe from compromise, this does not need to be stored with such security.&lt;br /&gt;
&lt;br /&gt;
All private/public keys in this guide were generated as an example and are not in use on this server.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Change the permissions of the private key so that only superusers can access the key: &amp;lt;code&amp;gt;chmod 600 server-privatekey&amp;lt;/code&amp;gt;&lt;br /&gt;
* We need the private key to put in the configuration file: &amp;lt;code&amp;gt;cat server-privatekey&amp;lt;/code&amp;gt;. This will display the key on the screen which can then be copied.&lt;br /&gt;
&lt;br /&gt;
=== Create configuration file ===&lt;br /&gt;
* We will create a configuration file with the same name as the interface WireGuard will create: &amp;lt;code&amp;gt;nano wg0.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Insert the following into the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Interface]&lt;br /&gt;
## Local Address : A private IP address for wg0 interface.&lt;br /&gt;
Address = 10.20.10.1/24&lt;br /&gt;
ListenPort = 33333&lt;br /&gt;
&lt;br /&gt;
## local server privatekey&lt;br /&gt;
PrivateKey = iFFxF+gX39U9O4L4qt2mufTS441YWLu5WVt0mMPpLEA=&lt;br /&gt;
&lt;br /&gt;
## The PostUp will run when the WireGuard Server starts the virtual VPN tunnel.&lt;br /&gt;
## The PostDown rules run when the WireGuard Server stops the virtual VPN tunnel.&lt;br /&gt;
## Specify the command that allows traffic to leave the server and give the VPN clients access to the Internet.&lt;br /&gt;
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT&lt;br /&gt;
PostUp = iptables -t nat -A POSTROUTING -o em1 -j MASQUERADE&lt;br /&gt;
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT&lt;br /&gt;
PostDown = iptables -t nat -D POSTROUTING -o em1 -j MASQUERADE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tweak the file to match your server configuration:&lt;br /&gt;
** &amp;lt;code&amp;gt;Address = 10.20.10.1/24&amp;lt;/code&amp;gt; - this is the address used by the WireGuard interface and should be different from your local network subnet.&lt;br /&gt;
** &amp;lt;code&amp;gt;ListenPort = 33333&amp;lt;/code&amp;gt; - 33333 is the default WireGuard network port but can be changed to anything you like as long as the port is not already in use by something else.&lt;br /&gt;
** &amp;lt;code&amp;gt;PrivateKey = iFFxF+gX39U9O4L4qt2mufTS441YWLu5WVt0mMPpLEA=&amp;lt;/code&amp;gt; - Paste the key your generated and copied earlier.&lt;br /&gt;
** &amp;lt;code&amp;gt;PostUp = iptables -t nat -A POSTROUTING -o em1 -j MASQUERADE&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;PostDown = iptables -t nat -D POSTROUTING -o em1 -j MASQUERADE&amp;lt;/code&amp;gt; - the interface needs changing according to the name of the Ethernet card on your computer (&amp;lt;code&amp;gt;em1&amp;lt;/code&amp;gt; in this example, which can be found by typing &amp;lt;code&amp;gt;ip a&amp;lt;/code&amp;gt;. Common names include &amp;lt;code&amp;gt;eth0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;eno1&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;em1&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Once done, save the file: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;X&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;Y&amp;lt;/kbd&amp;gt; then &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
* Change the permissions so that the configuration file can only be accessed by superusers: &amp;lt;code&amp;gt;chmod 600 wg0.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Start WireGuard ==&lt;br /&gt;
* Type &amp;lt;code&amp;gt;systemctl start wg-quick@wg0&amp;lt;/code&amp;gt; to start WireGuard.&lt;br /&gt;
** &amp;lt;code&amp;gt;wg0&amp;lt;/code&amp;gt; is the name of the WireGuard interface and configuration file we created. If different, this should be changed to match the same name as the configuration file.&lt;br /&gt;
* Check that WireGuard is running: &amp;lt;code&amp;gt;wg show&amp;lt;/code&amp;gt;. You should see something similar to the following if all is well:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface: wg0&lt;br /&gt;
public key: 7IXE2Ej++JNHXDeP9mt9/N+OslIBmvOAREzCnT0v6To=&lt;br /&gt;
private key: (hidden)&lt;br /&gt;
listening port: 33333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The public key should match the one generated earlier and can be viewed by typing &amp;lt;code&amp;gt;cat server-publickey&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you would like WireGuard to start on startup, type the following: &amp;lt;code&amp;gt;systemctl enable wg-quick@wg0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting up a client ==&lt;br /&gt;
Client software is available for many operating systems, including Windows, macOS, Linux (native support past Kernel 5.6) and Android. Here we will make a config file and add it to the server configuration, but due to the vast amount of different operating systems supported, we will not cover how to add the configuration to your respective operating system.&lt;br /&gt;
&lt;br /&gt;
The client configuration file is similar to the server configuration file and remains very simple.&lt;br /&gt;
&lt;br /&gt;
=== Generate a public/private key pair ===&lt;br /&gt;
* We will generated a public/private key pair much the same way as we did for the server:&lt;br /&gt;
&amp;lt;pre&amp;gt;wg genkey | tee client-privatekey | wg pubkey &amp;gt; client-publickey&amp;lt;/pre&amp;gt;&lt;br /&gt;
** The name &amp;lt;code&amp;gt;client&amp;lt;/code&amp;gt; for the file name can be changed to anything you like for convenience.&lt;br /&gt;
* Change the permissions of the private key so that only superusers can access the key: &amp;lt;code&amp;gt;chmod 600 client-privatekey&amp;lt;/code&amp;gt;&lt;br /&gt;
* We need the private key to put in the configuration file: &amp;lt;code&amp;gt;cat client-privatekey&amp;lt;/code&amp;gt;. This will display the key on the screen which can then be copied.&lt;br /&gt;
&lt;br /&gt;
=== Creating a configuration file ===&lt;br /&gt;
* Open a new configuration file: &amp;lt;code&amp;gt;sudo nano client.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
** Once again, the name &amp;lt;code&amp;gt;client&amp;lt;/code&amp;gt; can be anything you like for convenience.&lt;br /&gt;
* Insert the following into the file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Interface]&lt;br /&gt;
PrivateKey = 4JYkCM3VBuRpJAHjj8S8LyunF+Can5ZLCxB8OjXo9WI=&lt;br /&gt;
ListenPort = 33333&lt;br /&gt;
Address = 10.20.10.2/24&lt;br /&gt;
DNS = 1.1.1.1, 1.0.0.1&lt;br /&gt;
&lt;br /&gt;
[Peer]&lt;br /&gt;
PublicKey = 7IXE2Ej++JNHXDeP9mt9/N+OslIBmvOAREzCnT0v6To=&lt;br /&gt;
AllowedIPs = 0.0.0.0/0&lt;br /&gt;
Endpoint = example.com:33333&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tweak the file to match your client configuration:&lt;br /&gt;
** &amp;lt;code&amp;gt;PrivateKey = 4JYkCM3VBuRpJAHjj8S8LyunF+Can5ZLCxB8OjXo9WI=&amp;lt;/code&amp;gt; - the private key generated for the client (&#039;&#039;&#039;NOT&#039;&#039;&#039; the server private key).&lt;br /&gt;
** &amp;lt;code&amp;gt;ListenPort = 33333&amp;lt;/code&amp;gt; - needs to match the &amp;lt;code&amp;gt;ListenPort&amp;lt;/code&amp;gt; for the server.&lt;br /&gt;
** &amp;lt;code&amp;gt;Address = 10.20.10.2/24&amp;lt;/code&amp;gt; - the address to use, within the subnet defined in the server configuration.&lt;br /&gt;
** &amp;lt;code&amp;gt;DNS = 1.1.1.1, 1.0.0.1&amp;lt;/code&amp;gt; - the DNS server to use to resolve names. Something needs to be defined here as there is no DHCP to define a DNS server. This can be a server of your own on the network, your router or one of the many online services (CloudFlare DNS = 1.1.1.1, 1.0.0.1, Google DNS = 8.8.8.8, 8.8.4.4).&lt;br /&gt;
** &amp;lt;code&amp;gt;PublicKey = 7IXE2Ej++JNHXDeP9mt9/N+OslIBmvOAREzCnT0v6To=&amp;lt;/code&amp;gt; - the public key of the server, &#039;&#039;&#039;NOT&#039;&#039;&#039; the client public key.&lt;br /&gt;
** &amp;lt;code&amp;gt;AllowedIPs = 0.0.0.0/0&amp;lt;/code&amp;gt; - range of addresses that will be passed over the tunnel. Comma-separated list, can include IPv6 addresses if being used. 0.0.0.0/0 forwards everything.&lt;br /&gt;
** &amp;lt;code&amp;gt;Endpoint = example.com:33333&amp;lt;/code&amp;gt; - DNS address or IP address to connect to the server. An IP address will only be useful if you have a static address, otherwise a DNS address with DynDNS is a better solution.&lt;br /&gt;
* Save the file - &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;X&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;Y&amp;lt;/kbd&amp;gt; then &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
* The file can then be transferred to the client and imported into the WireGuard client ready for use.&lt;br /&gt;
&lt;br /&gt;
=== Adding peers to the server configuration ===&lt;br /&gt;
* Open the server configuration file - &amp;lt;code&amp;gt;nano wg0.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add the &amp;lt;code&amp;gt;[Peer]&amp;lt;/code&amp;gt; section, marked in italics, as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Interface]&lt;br /&gt;
## Local Address : A private IP address for wg0 interface.&lt;br /&gt;
Address = 10.20.10.1/24&lt;br /&gt;
ListenPort = 33333&lt;br /&gt;
&lt;br /&gt;
## local server privatekey&lt;br /&gt;
PrivateKey = iFFxF+gX39U9O4L4qt2mufTS441YWLu5WVt0mMPpLEA=&lt;br /&gt;
&lt;br /&gt;
## The PostUp will run when the WireGuard Server starts the virtual VPN tunnel.&lt;br /&gt;
## The PostDown rules run when the WireGuard Server stops the virtual VPN tunnel.&lt;br /&gt;
## Specify the command that allows traffic to leave the server and give the VPN clients access to the Internet.&lt;br /&gt;
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT&lt;br /&gt;
PostUp = iptables -t nat -A POSTROUTING -o em1 -j MASQUERADE&lt;br /&gt;
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT&lt;br /&gt;
PostDown = iptables -t nat -D POSTROUTING -o em1 -j MASQUERADE&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;[Peer]&#039;&#039;&lt;br /&gt;
&#039;&#039;# one client which will be setup to use 10.20.10.2 IP&#039;&#039;&lt;br /&gt;
&#039;&#039;PublicKey = 92p5r33HRrEvzlQJIdANcyIKx0JgtNV5VfQOOwLnFwM=&#039;&#039;&lt;br /&gt;
&#039;&#039;AllowedIPs = 10.20.10.2/32&#039;&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Tweak the file to match your client configuration:&lt;br /&gt;
** &amp;lt;code&amp;gt;PublicKey = 92p5r33HRrEvzlQJIdANcyIKx0JgtNV5VfQOOwLnFwM=&amp;lt;/code&amp;gt; - the public key generated for the client.&lt;br /&gt;
** &amp;lt;code&amp;gt;AllowedIPs = 10.20.10.2/32&amp;lt;/code&amp;gt; - the IP address used for the tunnel, should match the client configuration file.&lt;br /&gt;
* Save the file - &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt;+&amp;lt;kbd&amp;gt;X&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;Y&amp;lt;/kbd&amp;gt; then &amp;lt;kbd&amp;gt;Enter&amp;lt;/kbd&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Reloading the server ==&lt;br /&gt;
For our changes to take effect, the WireGuard daemon needs to be reloaded or restarted using:&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl reload wg-quick@wg0&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl restart wg-quick@wg0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point, the WireGuard VPN is ready to go!&lt;br /&gt;
&lt;br /&gt;
== Adding further clients ==&lt;br /&gt;
* Generate a public/private key pair as explained under the client section.&lt;br /&gt;
* Create a configuration with the new public/private key pair generated.&lt;br /&gt;
* Copy the configuration to the respective client.&lt;br /&gt;
* Add another &amp;lt;code&amp;gt;[Peer]&amp;lt;/code&amp;gt; section to the server configuration.&lt;br /&gt;
* Reload the WireGuard server.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
Thank you to &amp;quot;Mark Liversedge&amp;quot; at [https://markliversedge.blogspot.com/2023/09/wireguard-setup-for-dummies.html Wireguard setup for dummeies] with his comprehensive guide that made this possible for me&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_16.0_Release_Notes&amp;diff=1005</id>
		<title>OpenSUSE Leap 16.0 Release Notes</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_16.0_Release_Notes&amp;diff=1005"/>
		<updated>2026-07-01T16:40:22Z</updated>

		<summary type="html">&lt;p&gt;Sam: Recreated lost page through Wayback Machine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Publication Date:&#039;&#039;&#039; 2025-09-29&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap is a modern, modular operating system suitable for both traditional IT and multimodal workloads. This document highlights major features, updates, and known limitations.&lt;br /&gt;
&lt;br /&gt;
== About the release notes ==&lt;br /&gt;
These Release Notes are identical across all architectures, and the most recent version is always available online at https://doc.opensuse.org.&lt;br /&gt;
&lt;br /&gt;
Entries are only listed once but they can be referenced in several places if they are important and belong to more than one section.&lt;br /&gt;
&lt;br /&gt;
Release notes usually only list changes that happened between two subsequent releases. Certain important entries from the release notes of previous product versions are repeated. To make these entries easier to identify, they contain a note to that effect.&lt;br /&gt;
&lt;br /&gt;
However, repeated entries are provided as a courtesy only. Therefore, if you are skipping one or more service packs, check the release notes of the skipped service packs as well. If you are only reading the release notes of the current release, you could miss important changes.&lt;br /&gt;
&lt;br /&gt;
=== Documentation and other information ===&lt;br /&gt;
For the most up-to-date version of the documentation for openSUSE Leap, see:&lt;br /&gt;
* https://doc.opensuse.org.&lt;br /&gt;
&lt;br /&gt;
This section describes community-driven enhancements, features, and updates that extend the SUSE Linux Enterprise core. These changes reflect the openSUSE project&#039;s unique contributions, including desktop improvements, additional packages, and new workflows.&lt;br /&gt;
&lt;br /&gt;
== openSUSE Leap Community Additions ==&lt;br /&gt;
&lt;br /&gt;
=== Lifecycle ===&lt;br /&gt;
Each openSUSE Leap minor release is published once every 12 months. openSUSE Leap 16 provides maintenance updates over two minor releases, giving each release a full 24 months of community support.&lt;br /&gt;
&lt;br /&gt;
Unless there is a change in release strategy, the final openSUSE Leap version (16.6) will be released in fall 2031 and will continue receiving updates until the release of openSUSE Leap 17.1 two years later.&lt;br /&gt;
&lt;br /&gt;
For more information, see: [https://en.opensuse.org/Roadmap Roadmap].&lt;br /&gt;
&lt;br /&gt;
For more than 24 months of support for a point release, the openSUSE migration tool makes it simple to move to SUSE Linux Enterprise, which provides decades of support. See [https://www.suse.com/support/policy.html Support Policy] and [https://www.suse.com/support/programs/long-term-service-pack-support.html Long Term Service Pack Support].&lt;br /&gt;
&lt;br /&gt;
=== Migration from Leap 15.6 ===&lt;br /&gt;
The [https://github.com/openSUSE/opensuse-migration-tool openSUSE migration tool] (&amp;lt;code&amp;gt;zypper in opensuse-migration-tool&amp;lt;/code&amp;gt;) is included as part of openSUSE Leap 15.6. Users migrating from older releases can run the tool from [https://github.com/openSUSE/opensuse-migration-tool Git repository].&lt;br /&gt;
&lt;br /&gt;
For more information, refer to: [https://en.opensuse.org/SDB:System_upgrade SDB:System_upgrade].&lt;br /&gt;
&lt;br /&gt;
=== Installer and Desktop Environments ===&lt;br /&gt;
* openSUSE Leap 16 installer provides only Wayland variants of desktop environments. Xorg-based environments can be installed manually post-installation.&lt;br /&gt;
&lt;br /&gt;
==== NVIDIA and Graphics Issues with the Installation Image ====&lt;br /&gt;
Some users with NVIDIA GPUs may experience graphics-related issues during installation, such as boo#1247670 where X server fails to start. This is due to the fact that openSUSE Leap install image contains &amp;lt;code&amp;gt;kernel-default-optional&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;kernel-default-extra&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you encounter problems specific to the &amp;lt;code&amp;gt;nouveau&amp;lt;/code&amp;gt; driver, try booting with the option: &amp;lt;code&amp;gt;rd.driver.blacklist=nouveau&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For general graphics boot problems, use the option: &amp;lt;code&amp;gt;nomodeset&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Experimental Xfce Wayland session ====&lt;br /&gt;
Experimental Xfce Wayland session is available as an installation option. openSUSE Leap is one of the first distributions to provide Wayland support for [https://en.opensuse.org/Portal:Xfce Xfce]. We use &amp;lt;code&amp;gt;gtkgreet&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;greetd&amp;lt;/code&amp;gt; as a Wayland-ready replacement for LightDM (used in the X11 variant).&lt;br /&gt;
&lt;br /&gt;
==== LXQt Wayland session available post install ====&lt;br /&gt;
LXQt Wayland session is included, but will become a full installer option in later releases once LXQt Miriway efforts are further developed: https://code.opensuse.org/leap/features/issue/192.&lt;br /&gt;
&lt;br /&gt;
=== Changes to the openSUSE Welcome ===&lt;br /&gt;
openSUSE Leap 16 now uses the &amp;lt;code&amp;gt;opensuse-welcome-launcher&amp;lt;/code&amp;gt; to start the appropriate greeter application. This launcher, in combination with &amp;lt;code&amp;gt;gnome-tour&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;plasma-welcome&amp;lt;/code&amp;gt;, replaces the legacy Qt5-based &amp;lt;code&amp;gt;opensuse-welcome&amp;lt;/code&amp;gt;, which was previously the default greeter.&lt;br /&gt;
&lt;br /&gt;
The launcher also allows the openSUSE release team to update or refresh the displayed greeter via a package update, for example after a major GNOME update. To create a custom appliance without a welcome application, or to deploy a system where the greeter should never appear, remove &amp;lt;code&amp;gt;opensuse-welcome-launcher&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Automated NVIDIA Driver and Repository Setup ===&lt;br /&gt;
On supported GPUs, NVIDIA&#039;s open driver is installed by default along with the NVIDIA graphics driver repository. In openSUSE Leap 16, user-space drivers are also automatically installed, enabling graphical acceleration out of the box.&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
==== AppArmor ====&lt;br /&gt;
AppArmor has been updated from version 3.1 to 4.1.&lt;br /&gt;
* Version [https://gitlab.com/apparmor/apparmor/-/wikis/Release_Notes_4.0.1 4.0] introduced fine-grained network rules (limitable by IP/port), but kernel support is not upstream yet.&lt;br /&gt;
* Version [https://gitlab.com/apparmor/apparmor/-/wikis/Release_Notes_4.1.0 4.1] introduced the &amp;lt;code&amp;gt;priority=&amp;amp;lt;number&amp;amp;gt;&amp;lt;/code&amp;gt; rule prefix, which allows overriding rules.&lt;br /&gt;
&lt;br /&gt;
==== AppArmor not available by default on new installations ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FFEEEE;border:1px solid #FF0000;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
AppArmor is no longer available in SUSE Linux Enterprise 16.0. Leap users cannot select AppArmor as the Linux Security Module (LSM) during a new installation. AppArmor can still be enabled post-installation. For instructions, refer to AppArmor wiki page.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Users migrating manually from 15.6 will retain AppArmor by default. Users migrating with [https://github.com/openSUSE/opensuse-migration-tool openSUSE migration tool] will be prompted to either switch to SELinux or preserve AppArmor during post-migration.&lt;br /&gt;
&lt;br /&gt;
=== Steam ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FFEEEE;border:1px solid #FF0000;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;Steam&amp;lt;/code&amp;gt; package has been removed from the [https://en.opensuse.org/Package_repositories#Non-OSS Non-OSS repository] due to limited 32-bit library support. Users are advised to install it via [https://en.opensuse.org/Steam#Flatpak Flatpak].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 32-bit execution requires installing &amp;lt;code&amp;gt;grub2-compat-ia32&amp;lt;/code&amp;gt; and rebooting.&lt;br /&gt;
* SELinux users may also need &amp;lt;code&amp;gt;selinux-policy-targeted-gaming&amp;lt;/code&amp;gt;. For details, refer to [https://en.opensuse.org/Portal:SELinux/Common_issues#Steam_Proton,_Bottles,_WINE,_Lutris,_not_working SELinux wiki page].&lt;br /&gt;
&lt;br /&gt;
=== Wine ===&lt;br /&gt;
openSUSE Leap includes wine 10.10, available only in the [https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine#shared-wow64 wow64] flavor. Users requiring 32-bit binary execution should consider using the Flatpak version or a similar solution.&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
==== Broken libvirt networking when using Docker ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FFEEEE;border:1px solid #FF0000;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If networking inside libvirt-managed virtual machines fails while Docker is running, it is likely due to Docker not supporting &amp;lt;code&amp;gt;nftables&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To fix the issue:&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;/etc/libvirt/network.conf&amp;lt;/code&amp;gt; and set:&lt;br /&gt;
&amp;lt;pre&amp;gt;firewall_backend = &amp;quot;iptables&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Add the virtual network interface to the libvirt firewall zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;firewall-cmd --add-interface=virbr0 --zone=libvirt --permanent&lt;br /&gt;
firewall-cmd --reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Restart libvirt and related services:&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl restart libvirtd&amp;lt;/pre&amp;gt;&lt;br /&gt;
This restores networking for libvirt VMs while Docker is active.&lt;br /&gt;
&lt;br /&gt;
=== GNU Health ===&lt;br /&gt;
[https://www.gnuhealth.org/ GNU Health] has been updated to major release 5.0.2. The underlying ERP framework, Tryton, has been updated to LTS version 7.0. Functional improvements include enhanced medical image workflows and better integration with Orthanc 1.12.9 (PACS server).&lt;br /&gt;
&lt;br /&gt;
=== PipeWire replaces PulseAudio ===&lt;br /&gt;
openSUSE Leap 16.0 uses PipeWire by default. Users upgrading from previous releases should be automatically migrated from PulseAudio. &amp;lt;code&amp;gt;opensuse-migration-tool&amp;lt;/code&amp;gt; provides a post-migration script if migration does not occur automatically.&lt;br /&gt;
&lt;br /&gt;
If experiencing audio issues, ensure you are not using the &amp;lt;code&amp;gt;wireplumber-video-only-profile&amp;lt;/code&amp;gt;. For details, refer to [https://en.opensuse.org/openSUSE:Pipewire#Installation PipeWire#Installation] for details.&lt;br /&gt;
&lt;br /&gt;
=== Hexchat drop ===&lt;br /&gt;
Hexchat IRC client has been dropped as the [https://github.com/hexchat/hexchat upstream project] is archived. Alternatives include [https://software.opensuse.org/package/polari Polari] or the Flatpak version: [https://flathub.org/en/apps/io.github.Hexchat Flatpak].&lt;br /&gt;
&lt;br /&gt;
=== Configuring boot entry with serial console ===&lt;br /&gt;
See https://en.opensuse.org/SDB:SerialConsole for guidance.&lt;br /&gt;
&lt;br /&gt;
This section describes the enterprise-grade foundation of openSUSE Leap, based on SUSE Linux Enterprise. Content here is adapted from the SUSE Linux Enterprise release notes to reflect core functionality, security updates, and enterprise features that openSUSE Leap inherits.&lt;br /&gt;
&lt;br /&gt;
== SUSE Linux Enterprise Core ==&lt;br /&gt;
&lt;br /&gt;
=== What&#039;s new? ===&lt;br /&gt;
==== Package and module changes in 16.0 ====&lt;br /&gt;
The full list of changed packages compared to 15 SP7 can be seen at this URL:&lt;br /&gt;
&lt;br /&gt;
https://documentation.suse.com/package-lists/sle/16.0/package-changes_SLE-15-SP7-GA_SLE-16.0-GA.txt&lt;br /&gt;
&lt;br /&gt;
The full list of changed modules compared to 15 SP7 can be seen at this URL:&lt;br /&gt;
&lt;br /&gt;
https://documentation.suse.com/package-lists/sle/16.0/module-changes_SLE-15-SP7-GA_SLE-16.0-GA.txt&lt;br /&gt;
&lt;br /&gt;
=== Support and lifecycle ===&lt;br /&gt;
openSUSE Leap is backed by award-winning support from SUSE, an established technology leader with a proven history of delivering enterprise-quality support services.&lt;br /&gt;
&lt;br /&gt;
The current version (16.0) will be fully maintained and supported until 31 Jul 2034.&lt;br /&gt;
&lt;br /&gt;
If you need additional time to design, validate and test your upgrade plans, Long Term Service Pack Support can extend the support duration. You can buy an additional 12 to 36 months in twelve month increments. This means that you can receive support up to Dec 2037.&lt;br /&gt;
&lt;br /&gt;
For more information, see the pages [https://www.suse.com/support/policy.html Support Policy] and [https://www.suse.com/support/programs/long-term-service-pack-support.html Long Term Service Pack Support].&lt;br /&gt;
&lt;br /&gt;
=== Support statement for openSUSE Leap ===&lt;br /&gt;
To receive support, you need an appropriate subscription with SUSE. For more information, see https://forums.opensuse.org.&lt;br /&gt;
&lt;br /&gt;
The following definitions apply:&lt;br /&gt;
&lt;br /&gt;
; L1&lt;br /&gt;
: Problem determination, which means technical support designed to provide compatibility information, usage support, ongoing maintenance, information gathering, and basic troubleshooting using the documentation.&lt;br /&gt;
; L2&lt;br /&gt;
: Problem isolation, which means technical support designed to analyze data, reproduce customer problems, isolate the problem area, and provide a resolution for problems not resolved by Level 1 or prepare for Level 3.&lt;br /&gt;
; L3&lt;br /&gt;
: Problem resolution, which means technical support designed to resolve problems by engaging engineering to resolve product defects which have been identified by Level 2 Support.&lt;br /&gt;
&lt;br /&gt;
For contracted customers and partners, openSUSE Leap is delivered with L3 support for all packages, except for the following:&lt;br /&gt;
* Technology Previews, see Section &amp;quot;Technology previews&amp;quot;&lt;br /&gt;
* Sound, graphics, fonts and artwork&lt;br /&gt;
* Packages that require an additional customer contract, see Section &amp;quot;Software requiring specific contracts&amp;quot;&lt;br /&gt;
* Some packages shipped as part of the module &#039;&#039;Workstation Extension&#039;&#039; are L2-supported only&lt;br /&gt;
* Packages with names ending in &amp;lt;code&amp;gt;-devel&amp;lt;/code&amp;gt; (containing header files and similar developer resources) will only be supported together with their main packages.&lt;br /&gt;
&lt;br /&gt;
SUSE will only support the usage of original packages. That is, packages that are unchanged and not recompiled.&lt;br /&gt;
&lt;br /&gt;
==== General support ====&lt;br /&gt;
To learn about supported features and limitations, refer to the following sections in this document:&lt;br /&gt;
* Section &amp;quot;Virtualization&amp;quot;&lt;br /&gt;
* Section &amp;quot;Removed and deprecated features and packages&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Software requiring specific contracts ====&lt;br /&gt;
Certain software delivered as part of openSUSE Leap may require an external contract. Check the support status of individual packages using the RPM metadata that can be viewed with &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zypper&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;YaST&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Major packages and groups of packages affected by this are:&lt;br /&gt;
* PostgreSQL (all versions, including all subpackages)&lt;br /&gt;
&lt;br /&gt;
==== Software under GNU AGPL ====&lt;br /&gt;
openSUSE Leap 16.0 (and the SUSE Linux Enterprise modules) includes the following software that is shipped &#039;&#039;only&#039;&#039; under a GNU AGPL software license:&lt;br /&gt;
* Ghostscript (including subpackages)&lt;br /&gt;
* &amp;lt;code&amp;gt;velociraptor&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;velociraptor-client&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;zypp-boot-plugin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 16.0 (and the SUSE Linux Enterprise modules) includes the following software that is shipped under multiple licenses that include a GNU AGPL software license:&lt;br /&gt;
* MySpell dictionaries and LightProof&lt;br /&gt;
* ArgyllCMS&lt;br /&gt;
&lt;br /&gt;
=== Technology previews ===&lt;br /&gt;
Technology previews are packages, stacks, or features delivered by SUSE to provide glimpses into upcoming innovations. Technology previews are included for your convenience to give you a chance to test new technologies within your environment. We would appreciate your feedback! If you test a technology preview, contact your SUSE representative and let them know about your experience and use cases. Your input is helpful for future development.&lt;br /&gt;
&lt;br /&gt;
Technology previews come with the following limitations:&lt;br /&gt;
* Technology previews are still in development. Therefore, they may be functionally incomplete, unstable, or in other ways not suitable for production use.&lt;br /&gt;
* Technology previews are not supported.&lt;br /&gt;
* Technology previews may only be available for specific hardware architectures. Details and functionality of technology previews are subject to change. As a result, upgrading to subsequent releases of a technology preview may be impossible and require a fresh installation.&lt;br /&gt;
* Technology previews can be removed from a product at any time. This may be the case, for example, if SUSE discovers that a preview does not meet the customer or market needs, or does not comply with enterprise standards.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;lklfuse&amp;lt;/code&amp;gt; ===&lt;br /&gt;
As technology preview, &amp;lt;code&amp;gt;lklfuse&amp;lt;/code&amp;gt; is available in openSUSE Leap 16.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lklfuse&amp;lt;/code&amp;gt; is intentionally built without Btrfs support. Btrfs filesystems can be multi-device (for example, RAID1) but &amp;lt;code&amp;gt;lklfuse&amp;lt;/code&amp;gt; currently only supports a single device per mount.&lt;br /&gt;
&lt;br /&gt;
=== Changes affecting all architectures ===&lt;br /&gt;
* &amp;lt;code&amp;gt;rasdaemon&amp;lt;/code&amp;gt; has been updated to version 8.3.0. This version supports machine checks related to CXL memory.&lt;br /&gt;
* We now provide Grafana Alloy which can integrate with SUSE Observability as well.&lt;br /&gt;
* &amp;lt;code&amp;gt;NetworkManager&amp;lt;/code&amp;gt; is now the only network configuration stack in openSUSE Leap 16.0.&lt;br /&gt;
* We now provide a unified image that can be used to install either SLES or SLES for SAP&lt;br /&gt;
&lt;br /&gt;
==== Userspace live patching ====&lt;br /&gt;
Currently, &amp;lt;code&amp;gt;libpulp&amp;lt;/code&amp;gt; supports ULP (user space live patching) of &amp;lt;code&amp;gt;glibc&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;openssl&amp;lt;/code&amp;gt; binaries on the following architectures:&lt;br /&gt;
* x86-64&lt;br /&gt;
* ppc64le&lt;br /&gt;
&lt;br /&gt;
For more information see https://documentation.suse.com/sles/15-SP7/html/SLES-all/cha-ulp.html&lt;br /&gt;
&lt;br /&gt;
==== Switch to &amp;lt;code&amp;gt;mountfd&amp;lt;/code&amp;gt; API in &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; ====&lt;br /&gt;
The &amp;lt;code&amp;gt;util-linux&amp;lt;/code&amp;gt; mount command has switched from the old string-based method to the new kernel &amp;lt;code&amp;gt;mountfd&amp;lt;/code&amp;gt; API. This change introduces new features but also comes with some minor incompatibilities.&lt;br /&gt;
&lt;br /&gt;
There is a special case that cannot be handled by &amp;lt;code&amp;gt;mountfd&amp;lt;/code&amp;gt; and needs to be handled by applications:&lt;br /&gt;
* &amp;lt;code&amp;gt;mountfd&amp;lt;/code&amp;gt; discriminates between the physical mount layer and the virtual mount layer&lt;br /&gt;
* once the physical mount layer is read-only, read-write mount on the virtual layer is not possible&lt;br /&gt;
&lt;br /&gt;
If the first mount is read-only, then the physical filesystem is mounted read-only, and later mounting of the same file system as read-write is not possible. To solve this problem, the first mount needs to be read-only on the virtual layer only, keeping the physical layer read-write. The userspace fix is simple. Instead of:&lt;br /&gt;
&amp;lt;pre&amp;gt;mount -oro&amp;lt;/pre&amp;gt;&lt;br /&gt;
use&lt;br /&gt;
&amp;lt;pre&amp;gt;mount -oro=vfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will keep the physical layer read-write, but the virtual file system layer (and the userspace access) read-only.&lt;br /&gt;
&lt;br /&gt;
==== Switch to predictable network names ====&lt;br /&gt;
The persistent network naming scheme used in Leap 15 became legacy with the switch to the systemd predictable network names. For complicated setups, we recommend using &amp;lt;code&amp;gt;systemd.link&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
For more information, see:&lt;br /&gt;
* https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/&lt;br /&gt;
* https://www.freedesktop.org/software/systemd/man/latest/systemd.link.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#C0C0C0;border:1px solid #666666;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the future, when upgrading from SL Micro to Leap 16.1 (so-called &amp;quot;SLE merge&amp;quot;), some systems will have &amp;lt;code&amp;gt;net.ifnames=0&amp;lt;/code&amp;gt; set on their kernel command line (this is the case for new installations of SL Micro 6.0 and 6.1). This boot option will prevent the system from switching to the predictable naming scheme and it will need to be removed.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== systemd default configurations moved to &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; ====&lt;br /&gt;
Main configuration files have been moved from &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;. This ensures that main configuration files have lower precedence, allowing them to be overriden by package-supplied drop-in snippets.&lt;br /&gt;
&lt;br /&gt;
Local configuration should be created by either modifying the default file in &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; (or a copy of it placed in &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; if the original file is shipped in &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;), or by creating drop-in snippets in the appropriate directory in (for example, &amp;lt;code&amp;gt;/etc/systemd/coredump.conf.d/&amp;lt;/code&amp;gt;) - this is recommended.&lt;br /&gt;
&lt;br /&gt;
Remove configurations in &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; to restore defaults.&lt;br /&gt;
&lt;br /&gt;
==== Password access as root via SSH disabled ====&lt;br /&gt;
Previously, it was possible to SSH as root using password-based authentication. In Leap 16.0 only key-based authentication is allowed by default. Systems upgraded to 16.0 from a previous version will carry over the old behavior. New installations will enforce the new behavior.&lt;br /&gt;
&lt;br /&gt;
Installing the package &amp;lt;code&amp;gt;openssh-server-config-rootlogin&amp;lt;/code&amp;gt; restores the old behavior and allows password-based login for the root user.&lt;br /&gt;
&lt;br /&gt;
==== Minimum hardware requirements ====&lt;br /&gt;
openSUSE Leap 16.0 requires hardware to meet requirements on these architectures:&lt;br /&gt;
* For AMD64 and Intel* 64 systems: Microarchitecture level x86-64-v2 or higher.&lt;br /&gt;
* For IBM* Power LE systems: POWER10 or higher (see note below).&lt;br /&gt;
* For Arm64* systems: Armv8.0-A or higher.&lt;br /&gt;
* For IBM* Z systems: z14 or higher.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#C0C0C0;border:1px solid #666666;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
POWER9 systems may work with Leap 16.0 but are not supported by IBM, the hardware vendor.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SHA1 to be disabled or mark unapproved ====&lt;br /&gt;
Due to FIPS 140-3 certification requirements, the SHA1 cryptographic algorithm will be disabled or marked unapproved when running in FIPS mode.&lt;br /&gt;
&lt;br /&gt;
==== Added &amp;lt;code&amp;gt;tuned&amp;lt;/code&amp;gt; ====&lt;br /&gt;
The &amp;lt;code&amp;gt;tuned&amp;lt;/code&amp;gt; package contains a daemon that tunes system settings dynamically.&lt;br /&gt;
&lt;br /&gt;
==== Lightweight guard region support ====&lt;br /&gt;
This is a new feature in &amp;lt;code&amp;gt;madvise()&amp;lt;/code&amp;gt; that installs a lightweight guard region into a specified address range.&lt;br /&gt;
&lt;br /&gt;
See [https://manpages.opensuse.org/Leap-16.0/man-pages/madvise.2.en.html#MADV_GUARD_INSTALL madvise() man page] for more information.&lt;br /&gt;
&lt;br /&gt;
==== Harmless error messages sometimes displayed when launching some applications ====&lt;br /&gt;
The following messages are sometimes displayed when launching specific applications:&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;gnome-desktop&amp;lt;/code&amp;gt; some times failes to create transient scope:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;gt; gnome-session-binary: GnomeDesktop-WARNING: Could not create transient scope for PID 7883: GDBus.Error:org.freedesktop.DBus.Error.UnixProcessIdUnknown: Process with ID 7883 does not exist.&amp;lt;/pre&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; sometimes fails to assign cgroup:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;gt; systemd: app-gnome-gnome\x2dkeyring\x2dpkcs11-6708.scope: Couldn&#039;t move process 6708 to requested cgroup &#039;/user.slice/user-0.slice/user@0.service/app.slice/app-gnome-gnome\x2dkeyring\x2dpkcs11-6708.scope&#039;: No such process&lt;br /&gt;
&amp;gt; systemd: app-gnome-gnome\x2dkeyring\x2dpkcs11-6708.scope: Failed to add PIDs to scope&#039;s control group: No such process&lt;br /&gt;
&amp;gt; systemd: app-gnome-gnome\x2dkeyring\x2dpkcs11-6708.scope: Failed with result &#039;resources&#039;.&lt;br /&gt;
&amp;gt; systemd: Failed to start Application launched by gnome-session-binary.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These messages are harmless and can be ignored.&lt;br /&gt;
&lt;br /&gt;
==== NFS over TLS support ====&lt;br /&gt;
NFS over TLS is now supported for storage traffic.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;saptune&amp;lt;/code&amp;gt; replaces &amp;lt;code&amp;gt;sapconf&amp;lt;/code&amp;gt; ====&lt;br /&gt;
In Leap 16.0, &amp;lt;code&amp;gt;sapconf&amp;lt;/code&amp;gt; is replaced with &amp;lt;code&amp;gt;saptune&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;saptune&amp;lt;/code&amp;gt; will also be enabled with a base tuning, similar to &amp;lt;code&amp;gt;sapconf&amp;lt;/code&amp;gt;. Base tuning only will be enabled if &amp;lt;code&amp;gt;saptune&amp;lt;/code&amp;gt; was not configured before (no SAP Notes or Solutions selected).&lt;br /&gt;
&lt;br /&gt;
==== Azure Entra ID authentication via &amp;lt;code&amp;gt;himmelblau&amp;lt;/code&amp;gt; ====&lt;br /&gt;
The &amp;lt;code&amp;gt;himmelblau&amp;lt;/code&amp;gt; package has been added. It provides interoperability with Microsoft Azure Entra ID and Intune. It supports Linux authentication to Microsoft Azure Entra ID via PAM and NSS modules.&lt;br /&gt;
&lt;br /&gt;
For more information see https://github.com/himmelblau-idm/himmelblau.&lt;br /&gt;
&lt;br /&gt;
==== Legacy BIOS support ====&lt;br /&gt;
Legacy BIOS is still supported in openSUSE Leap 16.0. However, some features are not available when using it (for example, full-disk encryption with TPM). Finally, support for legacy BIOS will be discontinued in the future. For that reason we recommend switching to UEFI at the nearest opportunity.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; not persistent ====&lt;br /&gt;
In openSUSE Leap 16.0, &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; is no longer persistent between reboots but uses &amp;lt;code&amp;gt;tmpfs&amp;lt;/code&amp;gt; instead. See https://susedoc.github.io/doc-modular/main/html/SLE-comparison/index.html#sle16-tmp for more information.&lt;br /&gt;
&lt;br /&gt;
==== Python update strategy ====&lt;br /&gt;
* &amp;lt;code&amp;gt;/usr/bin/python3&amp;lt;/code&amp;gt; is currently set to use Python 3.13. In a future minor version update this is likely going to be changed to a newer Python version.&lt;br /&gt;
* openSUSE Leap 16.0 contains around 700 popular Python packages, which form a basic set of functionality for packages that depends on Python and for developing apps without needing to install Python modules from an external provider.&lt;br /&gt;
* We have been working on removing the dependencies of packages and tools on the &amp;lt;code&amp;gt;/usr/bin/python3&amp;lt;/code&amp;gt; binary, which means that openSUSE Leap could use a newer version of the Python interpreter in the future. This new Python interpreter will coexist with the previous version that will then be maintained as legacy interpreter for a limited time.&lt;br /&gt;
&lt;br /&gt;
==== Removal of 32-bit support ====&lt;br /&gt;
openSUSE Leap 16.0 only supports 64-bit binaries. Support for 32-bit binaries (or 31-bit binaries on IBM Z) has been removed.&lt;br /&gt;
&lt;br /&gt;
This means that statically-linked 32-bit binaries (or 31-bit binaries on IBM Z) and container images cannot be run anymore. 32-bit syscalls are still enabled by default on arm64, and can be enabled on x86_64 via the kernel parameter &amp;lt;code&amp;gt;ia32_emulation&amp;lt;/code&amp;gt;. On other architectures it&#039;s disabled without any option to enable it.&lt;br /&gt;
&lt;br /&gt;
==== Compiling kernel uses non-default compiler ====&lt;br /&gt;
Customers who need to build kernel modules or rebuild the kernel must use the same compiler version the kernel was built with. The kernel is built with &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; version 13, which is not the default compiler. Install the &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt; version 13 compiler using the gcc13 package and invoke it with the command &amp;lt;code&amp;gt;gcc-13&amp;lt;/code&amp;gt;. This specific compiler version is only supported for building kernel modules and the kernel.&lt;br /&gt;
&lt;br /&gt;
==== Optimized libraries for newer hardware architectures ====&lt;br /&gt;
We have added support for the glibc-HWCAPS feature which loads optimized versions of libraries for specific newer CPUs automatically.&lt;br /&gt;
&lt;br /&gt;
The build infrastructure for this feature is enabled for the following libraries:&lt;br /&gt;
* &amp;lt;code&amp;gt;blosc2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;boost&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;brotli&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bzip2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;flac&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;jsoncpp&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lame&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;leveldb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libdb-4_8&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libgcrypt&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libiscsi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libjpeg-turbo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libjxl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libmng&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libnettle&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libpng16&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libvorbis&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;libxmlb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;lzo&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;openjpeg2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;openssl-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python311&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python313&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sqlite3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;talloc&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tree-sitter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wavpack&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;xxhash&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;xz&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;zlib&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;zopfli&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;zstd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== No remote root login with password ====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FFEEEE;border:1px solid #FF0000;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you install the system using only a &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; password and do not provide an SSH key for the root user, &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; will not be enabled automatically after installation. You will not be able to log in remotely as root using the password.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
By default, remote password-based &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; login is disabled. The installer enables the &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt; service only when an SSH key for root is configured during setup. To allow remote &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; login, configure an SSH key for root during installation.&lt;br /&gt;
&lt;br /&gt;
==== Default user group assignment changed ====&lt;br /&gt;
Previously, all user accounts belonged to a single &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt; group.&lt;br /&gt;
&lt;br /&gt;
Now instead of being added to the common &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt; group, each new user now gets their own primary group matching their username. This is due to &amp;lt;code&amp;gt;USERGROUPS_ENAB&amp;lt;/code&amp;gt; being enabled in &amp;lt;code&amp;gt;/usr/etc/login.defs&amp;lt;/code&amp;gt;. This change affects all new installations and upgraded systems that did not change the default &amp;lt;code&amp;gt;/etc/login.defs&amp;lt;/code&amp;gt;. This has several consequences:&lt;br /&gt;
* files created by new users are not group-readable by default&lt;br /&gt;
* configurations that used the primary &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt; group as a condition do not work anymore&lt;br /&gt;
* configurations that used the primary or secondary &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt; group as a condition need to have the &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt; group manually added to these user accounts in order to continue to work, for example, to for &amp;lt;code&amp;gt;@users&amp;lt;/code&amp;gt; in the sudoers file&lt;br /&gt;
* home directories inherited from a previous system need to standardize the GID of the files by running:&lt;br /&gt;
: &amp;lt;code&amp;gt;find &amp;quot;$HOME&amp;quot; -group users -exec chgrp myuser {} \;&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;chgrp -R myuser &amp;quot;$HOME&amp;quot;&amp;lt;/code&amp;gt; if you did not use any GID other than &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SysV init.d scripts support ====&lt;br /&gt;
SysV init.d scripts have been [https://www.suse.com/releasenotes/x86_64/SUSE-SLES/15-SP2/index.html#jsc-SLE-7690 deprecated since Leap 15 SP2].&lt;br /&gt;
&lt;br /&gt;
In Leap 16.0, support of SysV init.d scripts has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Changes affecting all architectures (RC1) ===&lt;br /&gt;
This section contains information specific to RC1. We are working on fixing the problems mentioned here. The content of this section will be removed for the final released product.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;/etc/services&amp;lt;/code&amp;gt; removal ====&lt;br /&gt;
The &amp;lt;code&amp;gt;/etc/services&amp;lt;/code&amp;gt; file is just a dummy file that will be removed in the future. Software that appends to it without creating it should have its behavior changed.&lt;br /&gt;
&lt;br /&gt;
=== Changes affecting all architectures (Beta4) ===&lt;br /&gt;
This section contains information specific to Beta4. We are working on fixing the problems mentioned here. The content of this section will be removed for the final released product.&lt;br /&gt;
&lt;br /&gt;
==== Configuring network interfaces during installation ====&lt;br /&gt;
Currently, the installer does not allow for setting up network interfaces using the UI. However, in the meantime you can use dracut-like command-line options, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;ifname=&amp;lt;interface&amp;gt;:&amp;lt;MAC&amp;gt;&lt;br /&gt;
ip=&amp;lt;interface&amp;gt;:dhcp&amp;lt;/pre&amp;gt;&lt;br /&gt;
Additionally, the &amp;lt;code&amp;gt;inst.copy_network&amp;lt;/code&amp;gt; is not available in Beta4.&lt;br /&gt;
&lt;br /&gt;
==== SAP workloads on Leap 16.0 ====&lt;br /&gt;
For running SAP workloads on openSUSE Leap 16.0, do the following:&lt;br /&gt;
&lt;br /&gt;
# Unpack the SAP installer.&lt;br /&gt;
# Run the following commands to change policies:&lt;br /&gt;
&amp;lt;pre&amp;gt;semanage boolean -m --on selinuxuser_execmod&lt;br /&gt;
semanage boolean -m --on unconfined_service_transition_to_unconfined_user&lt;br /&gt;
semanage permissive -a snapper_grub_plugin_t&lt;br /&gt;
restorecon -R /&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Run the following commands to lable all files:&lt;br /&gt;
&amp;lt;pre&amp;gt;test -d ./snapshots &amp;amp;&amp;amp; restorecon -R / -e /.snapshots&lt;br /&gt;
test -d ./snapshots || restorecon R /&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Install SAP workload or SAP HANA&lt;br /&gt;
# Label all files again:&lt;br /&gt;
&amp;lt;pre&amp;gt;test -d /.snapshots &amp;amp;&amp;amp; restorecon -R / -e /.snapshots&lt;br /&gt;
test -d /.snapshots || restorecon -R /&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== FIPS 140-3 not working properly ====&lt;br /&gt;
FIPS 140-3 installation has not been fully validated and may cause unexpected software failure or crashes. Therefore, we discourage you from using it on Beta4.&lt;br /&gt;
&lt;br /&gt;
=== Changes affecting all architectures (Beta3) ===&lt;br /&gt;
This section contains information specific to Beta3. We are working on fixing the problems mentioned here. The content of this section will be removed for the final released product.&lt;br /&gt;
&lt;br /&gt;
==== Kernel crash in QEMU ====&lt;br /&gt;
openSUSE Leap 16.0 requires a CPU that supports a so-called &amp;quot;x86-64-v2&amp;quot; microarchitecture. Due to this, running a Leap image using QEMU currently results in a kernel crash.&lt;br /&gt;
&lt;br /&gt;
As a workaround you can run QEMU with the &amp;lt;code&amp;gt;-cpu host&amp;lt;/code&amp;gt; argument.&lt;br /&gt;
&lt;br /&gt;
==== Missing &amp;lt;code&amp;gt;libnsl.so.1&amp;lt;/code&amp;gt; library ====&lt;br /&gt;
The &amp;lt;code&amp;gt;libnsl.so.1&amp;lt;/code&amp;gt; library has been deprecated in SLES 15 and finally removed in openSUSE Leap 16.0.&lt;br /&gt;
&lt;br /&gt;
As a workaround for applications that cannot be installed without it (but presumaly do not use it for anything), we provide the &amp;lt;code&amp;gt;libnsl-stub1&amp;lt;/code&amp;gt; package that includes ABI-compatible but otherwise function-less stub of the library file.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;firewalld&amp;lt;/code&amp;gt; not usable with many interfaces ====&lt;br /&gt;
Due to an upstream bug, &amp;lt;code&amp;gt;firewalld&amp;lt;/code&amp;gt; might take a long time or time out when adding many interfaces. The error occurs when &amp;lt;code&amp;gt;firewalld&amp;lt;/code&amp;gt; is restarted after applying such a configuration. The following message appears in the system logs:&lt;br /&gt;
&amp;lt;pre&amp;gt;ERROR:dbus.proxies:Introspect error on :1.18:/org/fedoraproject/FirewallD1: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.&amp;lt;/pre&amp;gt;&lt;br /&gt;
See https://github.com/firewalld/firewalld/issues/1399 for more information.&lt;br /&gt;
&lt;br /&gt;
=== Changes affecting all architectures (Beta2) ===&lt;br /&gt;
This section contains information specific to Beta2. We are working on fixing the problems mentioned here. The content of this section will be removed for the final released product.&lt;br /&gt;
&lt;br /&gt;
==== Switch from YaST to Cockpit ====&lt;br /&gt;
openSUSE Leap 16.0 has switched from YaST to Cockpit for manual system administration. We have enhanced Cockpit with new modules with the intention to upstream them later. Despite being functional, bugs might appear and features might be missing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;New modules&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;cockpit-subscriptions&amp;lt;/code&amp;gt;: register, de-register and view SUSE Linux Enterprise registrations. Does not work for unprivileged users yet.&lt;br /&gt;
* &amp;lt;code&amp;gt;cockpit-repositories&amp;lt;/code&amp;gt;: add, remove, view repositories, change settings and refresh them. Does not work for unprivileged users yet.&lt;br /&gt;
* &amp;lt;code&amp;gt;cockpit-packages&amp;lt;/code&amp;gt;: show installed packages, search available repositories, install and uninstall packages. Requires administrative access. Be aware that there are no safety measures implemented as far as system usability goes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enhanced modules&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;cockpit-packagekit&amp;lt;/code&amp;gt;: update packages from available repositories. The module now allows to individually select packages to update.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Upstream modules&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cockpit&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-bridge&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-kdump&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-machines&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-networkmanager&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-podman&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-selinux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-storaged&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-system&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-ws&amp;lt;/code&amp;gt;: these modules are updated to the recent stable base version 332 (or their respective).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Default selection&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Installation of the pattern &amp;lt;code&amp;gt;cockpit&amp;lt;/code&amp;gt; will pull in the following modules: &amp;lt;code&amp;gt;cockpit&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-bridge&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-networkmanager&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-packagekit&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-packages&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-repos&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-selinux&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-storaged&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-subscriptions&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-system&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cockpit-ws&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;dovecot 2.4&amp;lt;/code&amp;gt; configuration upgrade ====&lt;br /&gt;
In openSUSE Leap 16.0 &amp;lt;code&amp;gt;dovecot&amp;lt;/code&amp;gt; has been upgraded to version 2.4. The configuration of this version is incompatible with the previous versions.&lt;br /&gt;
&lt;br /&gt;
Configuration has to be updated manually. For more information see https://doc.dovecot.org/2.4.0/installation/upgrade/2.3-to-2.4.html.&lt;br /&gt;
&lt;br /&gt;
=== Changes affecting all architectures (Beta1) ===&lt;br /&gt;
This section contains information specific to Beta1. We are working on fixing the problems mentioned here. The content of this section will be removed for the final released product.&lt;br /&gt;
&lt;br /&gt;
==== Disk configuration UI during installation ====&lt;br /&gt;
Currently, choosing disk configurations other than &amp;quot;An existing disk&amp;quot; (installation to a single disk) suffer from poor usability. This is expected to change in a future update.&lt;br /&gt;
&lt;br /&gt;
==== Non-functioning &amp;lt;code&amp;gt;zypper&amp;lt;/code&amp;gt; after installation ====&lt;br /&gt;
There is currently a known issue that adds a non-functioning &amp;lt;code&amp;gt;zypper&amp;lt;/code&amp;gt; repository which prevents &amp;lt;code&amp;gt;zypper&amp;lt;/code&amp;gt; from working correctly.&lt;br /&gt;
&lt;br /&gt;
To fix this issue, remove the repository in question and add the installation medium repository manually:&lt;br /&gt;
# Remove repository with &amp;lt;code&amp;gt;zypper rr&amp;lt;/code&amp;gt;. To remove the first repository, for example, run: &amp;lt;code&amp;gt;zypper rr 1&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Add the installation medium as repository by running&lt;br /&gt;
#: &amp;lt;pre&amp;gt;zypper ar hd:/install?device=/dev/disk/by-label/agama-installer medium&amp;lt;/pre&amp;gt;&lt;br /&gt;
#: (the &amp;lt;code&amp;gt;medium&amp;lt;/code&amp;gt; at the end is a name you want to give the repository).&lt;br /&gt;
# Run &amp;lt;code&amp;gt;zypper refresh&amp;lt;/code&amp;gt; to refresh the added repository.&lt;br /&gt;
&lt;br /&gt;
==== systemd uses cgroup v2 by default ====&lt;br /&gt;
openSUSE Leap 16.0 uses cgroup v2 by default and v1 is unsupported. If you need to use cgroup v1, SLES 15 SP6 can be switched to hybrid mode using a boot parameter.&lt;br /&gt;
&lt;br /&gt;
=== x86-64-specific changes ===&lt;br /&gt;
Information in this section applies to the x86-64 architecture.&lt;br /&gt;
&lt;br /&gt;
==== AMD EPYC Turin automonous frequency scaling ====&lt;br /&gt;
In Leap 16.0, the default Linux CPU frequency scaling driver for AMD EPYC Turin (and later processors) has shifted to the AMD P-State driver to enable autonomous frequency scaling.&lt;br /&gt;
&lt;br /&gt;
With the AMD P-State driver, it enables the use of the Energy Performance Preference (EPP) for more granular control over performance versus power efficiency to adjust the CPU frequencies based on workload and hardware feedback dynamically.&lt;br /&gt;
&lt;br /&gt;
=== IBM Z-specific changes (s390x) ===&lt;br /&gt;
Information in this section applies to openSUSE Leap for IBM Z 16.0. For more information, see https://www.ibm.com/docs/en/linux-on-systems?topic=distributions-suse-linux-enterprise-server&lt;br /&gt;
&lt;br /&gt;
==== Hardware ====&lt;br /&gt;
* Support has been added for IBM z17 in &amp;lt;code&amp;gt;kernel&amp;lt;/code&amp;gt; providing machine name, kconfig options, new instructions, etc.&lt;br /&gt;
* Support has been added for IBM z17 in &amp;lt;code&amp;gt;gdb&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;valgrind&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;binutils&amp;lt;/code&amp;gt;&lt;br /&gt;
* Support has been added for IBM z16 - reset DAT-Protection facility support&lt;br /&gt;
* Identify ConnectX devices through port rather than PCHID&lt;br /&gt;
* Processor Activity Instrumentation / Neural Network Processing Assist counters for new IBM Z hardware was added into kernel&lt;br /&gt;
* kprobes are now supported without &amp;lt;code&amp;gt;stop machine&amp;lt;/code&amp;gt;&lt;br /&gt;
* Promiscuous Mode Exploitation for NETH Virtual Functions for IBM z17 and LinuxONE 5&lt;br /&gt;
* Vertical CPU Polarization support for IBM z17 and LinuxONE 5&lt;br /&gt;
* qclib has been updated to support IBM z17&lt;br /&gt;
* The Integrated Accelerator for AI has new operations, which are now supported by libzdnn low-level driver library&lt;br /&gt;
* Enhanced RAS and Call Home for zPCI&lt;br /&gt;
* The kernel image can move into vmalloc space, where random physical pages are used to map virtual pages (V!=R)&lt;br /&gt;
* Add new CPU-MF Counters for new IBM Z Hardware (libpfm)&lt;br /&gt;
* Deactivate CONFIG_QETH_OSX kernel config option&lt;br /&gt;
* Upgrade Mellanox (mlx5) driver to latest version&lt;br /&gt;
&lt;br /&gt;
==== Performance ====&lt;br /&gt;
* LPAR level power consumption reporting is now available in kernel and s390-tools.&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== In-kernel crypto support =====&lt;br /&gt;
With this service pack are additionally supported:&lt;br /&gt;
* MSA 10 XTS instructions for in-kernel crypto&lt;br /&gt;
* MSA 11 HMAC instructions for in-kernel crypto&lt;br /&gt;
* MSA 12 (SHA3) has been added and introduces new options to call CPACF SHA 3 functions&lt;br /&gt;
* MSA 11 HMAC instructions for in-kernel crypto&lt;br /&gt;
* MSA 10 XTS crypto PAES support for in-kernel crypto&lt;br /&gt;
&lt;br /&gt;
===== OpenSSL features =====&lt;br /&gt;
This release brings these features and improvements:&lt;br /&gt;
* XTS instructions support in libcrypto/openSSL&lt;br /&gt;
* New MSA 11 HMAC instruction support in libcrypto/openSSL&lt;br /&gt;
* Added support for MSA 12 (SHA3), which also introduces new options to call CPACF SHA3 and SHKE functions&lt;br /&gt;
* Extended support of the openssl-pkcs11 provider such that it can be used by programs that issue forks&lt;br /&gt;
* Replace openssl-ibmpkcs11 with openssl-pkcs11&lt;br /&gt;
* Upgrade openssl-ibmca to the latest version&lt;br /&gt;
&lt;br /&gt;
===== openCryptoki =====&lt;br /&gt;
* The new version of &amp;lt;code&amp;gt;libica&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libzpc&amp;lt;/code&amp;gt; is included.&lt;br /&gt;
* The openCryptoki CCA Token is now available on x86_64 and ppc64le architectures.&lt;br /&gt;
&lt;br /&gt;
===== p11-kit =====&lt;br /&gt;
* Add support for IBM specific attributes and mechanisms to the PKCS11 client-server implementation of p11-kit.&lt;br /&gt;
&lt;br /&gt;
===== pkey =====&lt;br /&gt;
* The kernel pkey module can now generate keys AES-XTS keys (MSA 10) and HMAC key (MSA 11) from clear keys.&lt;br /&gt;
* The module can also generate keys represented by identifiers of secure execution retrievable keys.&lt;br /&gt;
* The pkey also supports EP11 API ordinal 6 for secure guests.&lt;br /&gt;
&lt;br /&gt;
===== zcrypt =====&lt;br /&gt;
* The zcrypt extends error recovery to deal with device scans of unavailable devices.&lt;br /&gt;
&lt;br /&gt;
==== Virtualization ====&lt;br /&gt;
* KVM guests can exploit z17 &amp;amp; LinuxONE 5 CPU features&lt;br /&gt;
* KVM can display available host key hashes for Secure Execution (Query Host-key hash UVC)&lt;br /&gt;
* KVM can benefit from genprotimg rewritten in Rust to re-use existing rust libraries (s390-tools feature)&lt;br /&gt;
* KVM benefits from genprotimg validation of SE image running on particular host(s) (s390-tools feature)&lt;br /&gt;
* KVM benefits from using pvimg info command to display encrypted &amp;amp; unencrypted SE image information (s390-tools)&lt;br /&gt;
* KVM can use unencrypted SE images for creating generic images (s390-tools feature)&lt;br /&gt;
* KVM passthrough is available for guests i.e. retrievable secrets in Secure Execution guests&lt;br /&gt;
* KVM can use unencrypted SE images for creating generic images (s390-tools feature)&lt;br /&gt;
* KVM implements counters for nested guest shadow events&lt;br /&gt;
* KVM implements virsh hypervisor-cpu-models (libvirt)&lt;br /&gt;
* KVM provides enhanced and dynamic CPU topology for KVM guests (qemu)&lt;br /&gt;
* KVM and libvirt full boot order enables users to attempt booting from multiple targets&lt;br /&gt;
* KVM provides Atomic Memop for Key-Checked Compare-and-swap&lt;br /&gt;
* KVM enhances CCW address translation architectural compliance&lt;br /&gt;
* KVM improves memory reclaiming for z15 Secure Execution guests and above (libvirt)&lt;br /&gt;
&lt;br /&gt;
==== Miscellaneous ====&lt;br /&gt;
* &amp;lt;code&amp;gt;plymouth&amp;lt;/code&amp;gt; was replaced by &amp;lt;code&amp;gt;blog&amp;lt;/code&amp;gt; on s390x, as &amp;lt;code&amp;gt;plymouth&amp;lt;/code&amp;gt; couldn&#039;t work without graphical display.&lt;br /&gt;
* The &amp;lt;code&amp;gt;Eigen&amp;lt;/code&amp;gt; library is the backend used by &amp;lt;code&amp;gt;Tensorflow&amp;lt;/code&amp;gt; for computations executed on the CPU. Several GCC adjustments have been implemented to speed up Eigen with IBM z14 support and above.&lt;br /&gt;
* Allow &amp;lt;code&amp;gt;httpd&amp;lt;/code&amp;gt; customers to protect their web server identity using HSMs (via CryptoExpress adapters).&lt;br /&gt;
&lt;br /&gt;
===== Enhancements in &amp;lt;code&amp;gt;s390-tools&amp;lt;/code&amp;gt; =====&lt;br /&gt;
The latest s390-tool update brings these noticeable changes:&lt;br /&gt;
* Additional channel measurements - kernel &amp;amp; &amp;lt;code&amp;gt;s390-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
* A new tool cpacinfo shall provide information on CPACF including the supported MSA levels, instructions, subfunctions per instruction. https://www.ibm.com/docs/en/linux-on-systems?topic=hw-cpacf&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;parmfile&amp;lt;/code&amp;gt; now points to ISO =====&lt;br /&gt;
Previously, &amp;lt;code&amp;gt;parmfile&amp;lt;/code&amp;gt; would point to a directory of unpacked files.&lt;br /&gt;
&lt;br /&gt;
Now it needs to point to a loop-mounted ISO via FTP. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;root=live:ftp://$SERVER_URL/install/agama-online.iso&lt;br /&gt;
agama.install_url=ftp://$SERVER_URL/install/agama&amp;lt;/pre&amp;gt;&lt;br /&gt;
For more information see https://agama-project.github.io/docs/user/boot_options.&lt;br /&gt;
&lt;br /&gt;
===== Disk selection UI problems during installation =====&lt;br /&gt;
If you want to enable a disk, click on &#039;&#039;Storage&#039;&#039; in the left panel, then &#039;&#039;Install new system on&#039;&#039; and choose &amp;quot;storage techs&amp;quot;. Then you can choose a type of disk. This can be avoided if you have defined your &amp;lt;code&amp;gt;parmfile&amp;lt;/code&amp;gt; as described in Section &amp;quot;&amp;lt;code&amp;gt;parmfile&amp;lt;/code&amp;gt; now points to ISO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you choose DASD, you should see disks based on your &amp;lt;code&amp;gt;parmfile&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;cio_ignore&amp;lt;/code&amp;gt; configuration. Then choose a disk and activate it by clicking &#039;&#039;Perform an action&#039;&#039; and then &#039;&#039;Activate&#039;&#039;. This can take a moment. If it is not visible, then you need to click on Storage or refresh the page.&lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;zFCP&#039;&#039; section, after activating a disk a gray line will appear. This is just a visual bug, the disk will activate correctly.&lt;br /&gt;
&lt;br /&gt;
===== Installation failure on zVM =====&lt;br /&gt;
Due to a change from &amp;lt;code&amp;gt;linuxrc&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;dracut&amp;lt;/code&amp;gt;, the &amp;lt;code&amp;gt;parmfile&amp;lt;/code&amp;gt; needs to define not only installation source but also a network and disks.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;parmfile&amp;lt;/code&amp;gt; needs to be filled with a &amp;lt;code&amp;gt;dracut-like&amp;lt;/code&amp;gt; options, for example:&lt;br /&gt;
&amp;lt;pre&amp;gt;root=live:ftp://$SERVER_URL/install/online.iso&lt;br /&gt;
ip=$IP_address::$IP_gateway:24:SLE16-Beta4:$NETWORK_DEVICE:none&lt;br /&gt;
rd.zdev=qeth,0.0.0800:0.0.0801:0.0.0802,layer2=1,portno=0&lt;br /&gt;
cio_ignore=all,!condev,!0.0.0160 nameserver=$NAMEserverIP&lt;br /&gt;
live.password=linux rd.zdev=dasd,0.0.0160&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== POWER-specific changes (ppc64le) ===&lt;br /&gt;
Information in this section applies to openSUSE Leap for POWER 16.0.&lt;br /&gt;
&lt;br /&gt;
==== KVM guests in LPAR ====&lt;br /&gt;
The ability to run KVM Guests in an LPAR is a new feature in PowerVM Firmware 1060.10 release and supported in openSUSE Leap 16.0. This enables users to run KVM guests in a PowerVM LPAR bringing industry standard Linux KVM virtualization stack to IBM PowerVM, which easily integrates with existing Linux virtualization ecosystem. This enables a lot of interesting usecases which were earlier difficult to realize in a PowerVM LPAR.&lt;br /&gt;
&lt;br /&gt;
KVM in a PowerVM LPAR is a new type of LPAR (logical partition) that allows the openSUSE Leap 16.0 kernel to host KVM guests inside an LPAR on PowerVM. A KVM enabled LPAR allows standard Linux KVM tools (for example, &amp;lt;code&amp;gt;virsh&amp;lt;/code&amp;gt;) to create and manage lightweight Linux Virtual Machines (VM). A KVM Linux LPAR uses dedicated cores which enables Linux to have full control of when Linux VMs are scheduled to run, just like KVM on other platforms.&lt;br /&gt;
&lt;br /&gt;
==== Login times out on HMC virtual terminal ====&lt;br /&gt;
If you install openSUSE Leap for POWER with the GNOME desktop on LPAR and try to login via the HMC virtual terminal, the login may time out while entering your credentials.&lt;br /&gt;
&lt;br /&gt;
To work around this issue, disable the Plymouth graphical boot screen by appending the boot parameter &amp;lt;code&amp;gt;plymouth.enable=0&amp;lt;/code&amp;gt; to the kernel command line.&lt;br /&gt;
&lt;br /&gt;
=== Arm-specific changes (AArch64) ===&lt;br /&gt;
==== System-on-Chip driver enablement ====&lt;br /&gt;
Leap 16.0 includes driver enablement for the following System-on-Chip (SoC) chipsets:&lt;br /&gt;
* Ampere* X-Gene*, eMAG*, Altra*, Altra Max, AmpereOne*&lt;br /&gt;
* AWS* Graviton, Graviton2, Graviton3&lt;br /&gt;
* Broadcom* BCM2837/BCM2710, BCM2711&lt;br /&gt;
* Fujitsu* A64FX&lt;br /&gt;
* Huawei* Kunpeng* 916, Kunpeng 920&lt;br /&gt;
* Marvell* ThunderX*, ThunderX2*; OCTEON TX*; Armada* 7040, Armada 8040&lt;br /&gt;
* NVIDIA* Grace; Tegra* X1, Tegra X2, Xavier*, Orin; Blue﻿Field*, Blue﻿Field-2, Blue﻿Field-3&lt;br /&gt;
* NXP* i.MX 8M, 8M Mini; Layerscape* LS1012A, LS1027A/LS1017A, LS1028A/LS1018A, LS1043A, LS1046A, LS1088A, LS2080A/LS2040A, LS2088A, LX2160A&lt;br /&gt;
* Rockchip RK3399&lt;br /&gt;
* Socionext* SynQuacer* SC2A11&lt;br /&gt;
* Xilinx* Zynq* UltraScale*﻿+ MPSoC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#C0C0C0;border:1px solid #666666;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Driver enablement is done as far as available and requested. Refer to the following sections for any known limitations.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some systems might need additional drivers for external chips, such as a Power Management Integrated Chip (PMIC), which may differ between systems with the same SoC chipset.&lt;br /&gt;
&lt;br /&gt;
For booting, systems need to fulfill either the Server Base Boot Requirements (SBBR) or the Embedded Base Boot Requirements (EBBR), that is, the Unified Extensible Firmware Interface (UEFI) either implementing the Advanced Configuration and Power Interface (ACPI) or providing a Flat Device Tree (FDT) table. If both are implemented, the kernel will default to the Device Tree; the kernel command line argument &amp;lt;code&amp;gt;acpi=force&amp;lt;/code&amp;gt; can override this default behavior.&lt;br /&gt;
&lt;br /&gt;
Check for SUSE &#039;&#039;YES!&#039;&#039; certified systems, which have undergone compatibility testing.&lt;br /&gt;
&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
* iSCSI boot support is disabled in OVMF images.&lt;br /&gt;
&lt;br /&gt;
==== QEMU ====&lt;br /&gt;
QEMU has been updated to version 10.0.2, full list of changes are available at https://wiki.qemu.org/ChangeLog/10.0&lt;br /&gt;
&lt;br /&gt;
Highlights include:&lt;br /&gt;
* Removed features: https://qemu-project.gitlab.io/qemu/about/removed-features.html&lt;br /&gt;
* Deprecated features: https://qemu-project.gitlab.io/qemu/about/deprecated.html&lt;br /&gt;
&lt;br /&gt;
==== libvirt ====&lt;br /&gt;
&amp;lt;code&amp;gt;libvirt&amp;lt;/code&amp;gt; has been updated to version 11.4.0, this includes many incremental improvements and bug fixes, see https://libvirt.org/news.html#v11-4-0-2025-06-02.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;libvirt&amp;lt;/code&amp;gt; provides now a modular daemons.&lt;br /&gt;
&lt;br /&gt;
==== VMware ====&lt;br /&gt;
===== &amp;lt;code&amp;gt;open-vm-tools&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;code&amp;gt;open-vm-tools&amp;lt;/code&amp;gt; has been updated to version 13.0.0 that addresses a few critical problems and bug fixes. See https://github.com/vmware/open-vm-tools/blob/stable-13.0.0/ReleaseNotes.md.&lt;br /&gt;
&lt;br /&gt;
==== Confidential Computing ====&lt;br /&gt;
===== &amp;lt;code&amp;gt;sevctl&amp;lt;/code&amp;gt; =====&lt;br /&gt;
The &amp;lt;code&amp;gt;sevctl&amp;lt;/code&amp;gt; package has been updated to version 0.6.0.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;snpguest&amp;lt;/code&amp;gt; =====&lt;br /&gt;
The &amp;lt;code&amp;gt;snpguest&amp;lt;/code&amp;gt; package has been updated to version 0.9.1. Full list of changes is available at: https://github.com/virtee/snpguest/compare/v0.7.1…​v0.9.1&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;snphost&amp;lt;/code&amp;gt; =====&lt;br /&gt;
The &amp;lt;code&amp;gt;snphost&amp;lt;/code&amp;gt; package version 0.6.0 has been added.&lt;br /&gt;
&lt;br /&gt;
===== Intel TDX Confidential Computing =====&lt;br /&gt;
In openSUSE Leap 16.0 the kernel now incorporates the latest upstream Intel Trust Domain Extensions (TDX) patches. This significant update prepares the virtualization toolstack for Intel TDX confidential computing capabilities.&lt;br /&gt;
&lt;br /&gt;
These patches are important for enabling the kernel to support creating and managing trust domains, which is a step towards enabling confidential computing environments on Intel TDX-enabled hardware.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#C0C0C0;border:1px solid #666666;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The full Intel TDX confidential computing experience also requires integrating QEMU and libvirt components, which will be part of a future update.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Enhanced VM Security with AMD SEV-SNP =====&lt;br /&gt;
AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) is a hardware security feature in AMD EPYC processors that provides a highly secure and confidential environment for virtual machines (VMs). It offers strong memory confidentiality through per-VM encryption keys and AES encryption, and crucially, robust memory integrity protection to prevent tampering from the hypervisor or other threats. It also provides enhanced isolation and remote attestation capabilities, making it ideal for protecting sensitive data and workloads in untrusted environments like cloud computing. This release fully integrates AMD SEV-SNP for KVM-based virtual machines. This means integrated support in our kernel, along with updated QEMU, Libvirt, and OVMF Firmware. To use AMD SEV-SNP, you&#039;ll need, AMD EPYC™ 3rd Gen Processors (Milan) or newer and SEV-SNP enabled in your system&#039;s BIOS/UEFI.&lt;br /&gt;
&lt;br /&gt;
==== Others ====&lt;br /&gt;
===== &amp;lt;code&amp;gt;numatop&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;code&amp;gt;numatop&amp;lt;/code&amp;gt; is available in version 2.5, adding support for Intel GNR and SRF platforms.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;numactl&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;code&amp;gt;numactl&amp;lt;/code&amp;gt; is shipped in version 2.0.19. Full changes at: https://github.com/numactl/numactl/releases/tag/v2.0.19&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;libguestfs&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;code&amp;gt;libguestfs&amp;lt;/code&amp;gt; has been updated to version 1.55.13.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;virt-v2v&amp;lt;/code&amp;gt; =====&lt;br /&gt;
Update to version 2.7.16. While there are no dedicated release notes, you can review the code changes in Github: https://github.com/libguestfs/virt-v2v/tree/v2.7.16&lt;br /&gt;
* Implement --parallel=N for parallel disk copies&lt;br /&gt;
* Update Translations&lt;br /&gt;
* Various fixes&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;virtiofsd&amp;lt;/code&amp;gt; =====&lt;br /&gt;
The &amp;lt;code&amp;gt;virtiofsd&amp;lt;/code&amp;gt; has been updated to 1.12.0.&lt;br /&gt;
&lt;br /&gt;
===== &amp;lt;code&amp;gt;virt-manager&amp;lt;/code&amp;gt; =====&lt;br /&gt;
&amp;lt;code&amp;gt;virt-manager&amp;lt;/code&amp;gt; is now shipped in version 5.0.0. Its preferable to setup VNC for remote viewing and do all the XML editing using the &amp;lt;code&amp;gt;virsh&amp;lt;/code&amp;gt; command. Full list of changes is available at https://github.com/virt-manager/virt-manager/releases/tag/v5.0.0&lt;br /&gt;
&lt;br /&gt;
===== virt-bridge-setup =====&lt;br /&gt;
virt-bridge-setup is a script designed to simplify network bridge creation on a specified interface using nmcli. It was developed as a replacement for the automatic &amp;quot;yast2 virtualization&amp;quot; bridge creation and is particularly useful for setting up virtualization environments.&lt;br /&gt;
&lt;br /&gt;
Important considerations:&lt;br /&gt;
* It supports IPv4 only.&lt;br /&gt;
* This is a simple script not intended for complex network scenarios (vlan, bonding, etc…​); manual bridge setup is recommended for intricate configurations.&lt;br /&gt;
* The script should be run locally (not remotely) immediately after installation and before any custom network configurations.&lt;br /&gt;
&lt;br /&gt;
=== Removed and deprecated features and packages ===&lt;br /&gt;
This section lists features and packages that were removed from openSUSE Leap or will be removed in upcoming versions.&lt;br /&gt;
&lt;br /&gt;
==== Removed features and packages ====&lt;br /&gt;
The following features and packages have been removed in this release.&lt;br /&gt;
* Xorg server has been removed. Only Wayland is supported for graphical display. X11 applications compatibility is provided via XWayland.&lt;br /&gt;
* &amp;lt;code&amp;gt;sapconf&amp;lt;/code&amp;gt; has been removed. See Section &amp;quot;&amp;lt;code&amp;gt;saptune&amp;lt;/code&amp;gt; replaces &amp;lt;code&amp;gt;sapconf&amp;lt;/code&amp;gt;&amp;quot; for more info.&lt;br /&gt;
* YaST has been removed. See Section &amp;quot;Switch from YaST to Cockpit&amp;quot; for more info.&lt;br /&gt;
* WSL1 is not supported anymore&lt;br /&gt;
* The Xen hypervisor was removed in favor of KVM. You no longer run SLE 16 as Xen host or as paravirtualized guest (PV). Running SLE 16 as fully virtualized Xen guest (HVM) or using using hardware virtualization features (PVH) is still possible.&lt;br /&gt;
* &amp;lt;code&amp;gt;nscd&amp;lt;/code&amp;gt; has been removed&lt;br /&gt;
* The snIPL package is deprecated as HMC is providing most capabilities. There is also available a command line client to interact with the HMC Web Services API: the zhmccli https://github.com/zhmcclient.&lt;br /&gt;
* Removed &amp;lt;code&amp;gt;rc&amp;lt;service&amp;gt;&amp;lt;/code&amp;gt; controls of systemd services&lt;br /&gt;
* Removed the &amp;lt;code&amp;gt;KBD_DISABLE_CAPS_LOCK&amp;lt;/code&amp;gt; feature from &amp;lt;code&amp;gt;/etc/sysconfig/keyboard&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;netiucv&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;lcs&amp;lt;/code&amp;gt; drivers&lt;br /&gt;
* &amp;lt;code&amp;gt;ansible-9&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ansible-core-2.16&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;criu&amp;lt;/code&amp;gt;&lt;br /&gt;
* Section &amp;quot;SysV init.d scripts support&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;compat-libpthread-nonshared&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;crun&amp;lt;/code&amp;gt; has been removed. Use &amp;lt;code&amp;gt;runc&amp;lt;/code&amp;gt; instead.&lt;br /&gt;
&lt;br /&gt;
=== Deprecated features and packages ===&lt;br /&gt;
The following features and packages are deprecated and will be removed in a future version of openSUSE Leap.&lt;br /&gt;
* The 2MB OVMF image will be deprecated and removed in openSUSE Leap 16.1.&lt;br /&gt;
&lt;br /&gt;
==== nmap deprecation notice ====&lt;br /&gt;
The nmap project has moved to a new source license that makes future releases of nmap incompatible with our product.&lt;br /&gt;
&lt;br /&gt;
In Leap 16.0, we are shipping the latest version of nmap released under the old license. In an upcoming release we will switch to an alternative tool.&lt;br /&gt;
&lt;br /&gt;
== Obtaining source code ==&lt;br /&gt;
This SUSE product includes materials licensed to SUSE under the GNU General Public License (GPL). The GPL requires SUSE to provide the source code that corresponds to the GPL-licensed material. The source code is available for download at https://get.opensuse.org on Medium 2. For up to three years after distribution of the SUSE product, upon request, SUSE will mail a copy of the source code. Send requests by e-mail to sle_source_request@suse.com. SUSE may charge a reasonable fee to recover distribution costs.&lt;br /&gt;
&lt;br /&gt;
== Legal notices ==&lt;br /&gt;
Copyright © 2025-2025 openSUSE contributors and SUSE LLC. All rights reserved.&lt;br /&gt;
&lt;br /&gt;
Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or (at your option) Version 1.3; with the Invariant Section being this copyright notice and license. A copy of the license version 1.2 is included in the section entitled &amp;quot;GNU Free Documentation License&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This document includes content adapted from the SUSE Linux Enterprise release notes, contributed by the SUSE Documentation Team. Portions of the content are maintained by the openSUSE community.&lt;br /&gt;
&lt;br /&gt;
For SUSE trademarks, see https://www.suse.com/company/legal/. For openSUSE trademarks, see https://en.opensuse.org/openSUSE:Trademark_guidelines. All other third-party trademarks are the property of their respective owners. Trademark symbols (®, ™, etc.) denote trademarks of SUSE, openSUSE, and their affiliates. Asterisks (*) denote third-party trademarks.&lt;br /&gt;
&lt;br /&gt;
While every effort has been made to ensure accuracy, the openSUSE contributors, SUSE Documentation Team, and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Obtaining_openSUSE_16.0&amp;diff=1004</id>
		<title>Obtaining openSUSE 16.0</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Obtaining_openSUSE_16.0&amp;diff=1004"/>
		<updated>2026-07-01T14:58:34Z</updated>

		<summary type="html">&lt;p&gt;Sam: Corrected incorrect showing link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[openSUSE Leap 16.0]] is available from the following locations:&lt;br /&gt;
&lt;br /&gt;
* https://www.opensuse.org/, click &#039;Leap&#039; then &#039;Install Leap&#039;&lt;br /&gt;
** DVD/USB installation - this is the most common download option and needed for conventional installations. (Direct/Torrent)&lt;br /&gt;
** Network installation - installs the system from an internet repository or network repository. (Direct/Torrent)&lt;br /&gt;
* If I have already downloaded an ISO, they are currently available at \\thinkserver\Build\CD Images\ via Samba/Windows File share.&lt;br /&gt;
* The ISO needs to be put onto a USB Stick and made into a bootable USB drive. This method completely wipes the stick and needs the computer to support booting from USB. However, this method makes the installation a lot faster than optical media. On Windows, the recommended method is to use [https://rufus.ie/ Rufus] in DD writing mode.&lt;br /&gt;
* They can also be burned to a DVD. The image itself needs burning, not the image file. For more information, see [[burning a CD/DVD image]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: 32-bit builds are no longer available, only 64-bit is supported (most modern CPU&#039;s support 64-bit, late generation Intel Pentium 4&#039;s and all Core processors will support x86_64). If you require 32-bit, you must use the [[openSUSE Tumbleweed]] distribution.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: x86_64 builds require an microarchitecture level of at least x86_84 v2 (at least Intel Core i3/5/7 1st generation) to install as of openSUSE 16.0.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Download links ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: SHA-256 values removed as links download latest build available at the time, which may not match the SHA-256 values if kept here.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These should be available during the lifetime of this version:&lt;br /&gt;
&lt;br /&gt;
=== Intel or AMD 64-bit desktops, laptops, and servers (x86_64) ===&lt;br /&gt;
&lt;br /&gt;
==== DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-x86_64.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-x86_64.install.iso.torrent&lt;br /&gt;
&lt;br /&gt;
==== Network Install DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-x86_64.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-x86_64.install.iso.torrent&lt;br /&gt;
&lt;br /&gt;
=== UEFI ARM 64-bit servers, desktops, laptops and boards (aarch64) ===&lt;br /&gt;
&lt;br /&gt;
==== DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-aarch64.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-aarch64.install.iso.torrent&lt;br /&gt;
&lt;br /&gt;
==== Network Install DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-aarch64.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-aarch64.install.iso.torrent&lt;br /&gt;
&lt;br /&gt;
=== PowerPC servers, not big-endian (ppc64le) ===&lt;br /&gt;
&lt;br /&gt;
==== DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-ppc64le.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: Not available at launch&lt;br /&gt;
&lt;br /&gt;
==== Network Install DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-ppc64le.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: Not available at launch&lt;br /&gt;
&lt;br /&gt;
=== IBM zSystems and LinuxONE (s390x) ===&lt;br /&gt;
&lt;br /&gt;
==== DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-s390x.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: Not available at launch&lt;br /&gt;
&lt;br /&gt;
==== Network Install DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-s390x.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: Not available at launch&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Obtaining_openSUSE_16.0&amp;diff=1003</id>
		<title>Obtaining openSUSE 16.0</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Obtaining_openSUSE_16.0&amp;diff=1003"/>
		<updated>2026-07-01T14:57:49Z</updated>

		<summary type="html">&lt;p&gt;Sam: Recreated lost page through Wayback Machine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[openSUSE Leap 16.0]] is available from the following locations:&lt;br /&gt;
&lt;br /&gt;
* [https://www.opensuse.org/], click &#039;Leap&#039; then &#039;Install Leap&#039;&lt;br /&gt;
** DVD/USB installation - this is the most common download option and needed for conventional installations. (Direct/Torrent)&lt;br /&gt;
** Network installation - installs the system from an internet repository or network repository. (Direct/Torrent)&lt;br /&gt;
* If I have already downloaded an ISO, they are currently available at \\thinkserver\Build\CD Images\ via Samba/Windows File share.&lt;br /&gt;
* The ISO needs to be put onto a USB Stick and made into a bootable USB drive. This method completely wipes the stick and needs the computer to support booting from USB. However, this method makes the installation a lot faster than optical media. On Windows, the recommended method is to use [https://rufus.ie/ Rufus] in DD writing mode.&lt;br /&gt;
* They can also be burned to a DVD. The image itself needs burning, not the image file. For more information, see [[burning a CD/DVD image]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: 32-bit builds are no longer available, only 64-bit is supported (most modern CPU&#039;s support 64-bit, late generation Intel Pentium 4&#039;s and all Core processors will support x86_64). If you require 32-bit, you must use the [[openSUSE Tumbleweed]] distribution.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: x86_64 builds require an microarchitecture level of at least x86_84 v2 (at least Intel Core i3/5/7 1st generation) to install as of openSUSE 16.0.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Download links ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: SHA-256 values removed as links download latest build available at the time, which may not match the SHA-256 values if kept here.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These should be available during the lifetime of this version:&lt;br /&gt;
&lt;br /&gt;
=== Intel or AMD 64-bit desktops, laptops, and servers (x86_64) ===&lt;br /&gt;
&lt;br /&gt;
==== DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-x86_64.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-x86_64.install.iso.torrent&lt;br /&gt;
&lt;br /&gt;
==== Network Install DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-x86_64.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-x86_64.install.iso.torrent&lt;br /&gt;
&lt;br /&gt;
=== UEFI ARM 64-bit servers, desktops, laptops and boards (aarch64) ===&lt;br /&gt;
&lt;br /&gt;
==== DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-aarch64.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-aarch64.install.iso.torrent&lt;br /&gt;
&lt;br /&gt;
==== Network Install DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-aarch64.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-aarch64.install.iso.torrent&lt;br /&gt;
&lt;br /&gt;
=== PowerPC servers, not big-endian (ppc64le) ===&lt;br /&gt;
&lt;br /&gt;
==== DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-ppc64le.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: Not available at launch&lt;br /&gt;
&lt;br /&gt;
==== Network Install DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-ppc64le.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: Not available at launch&lt;br /&gt;
&lt;br /&gt;
=== IBM zSystems and LinuxONE (s390x) ===&lt;br /&gt;
&lt;br /&gt;
==== DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-offline-installer-s390x.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: Not available at launch&lt;br /&gt;
&lt;br /&gt;
==== Network Install DVD ====&lt;br /&gt;
&lt;br /&gt;
Direct: https://download.opensuse.org/distribution/leap/16.0/offline/Leap-16.0-online-installer-s390x.install.iso&lt;br /&gt;
&lt;br /&gt;
Torrent: Not available at launch&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Template:Current_openSUSE&amp;diff=1002</id>
		<title>Template:Current openSUSE</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Template:Current_openSUSE&amp;diff=1002"/>
		<updated>2026-07-01T14:49:42Z</updated>

		<summary type="html">&lt;p&gt;Sam: Changed to openSUSE 16.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[openSUSE Leap 16.0]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=File:OpenSUSE_Leap_16.0_webpage.webp&amp;diff=1001</id>
		<title>File:OpenSUSE Leap 16.0 webpage.webp</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=File:OpenSUSE_Leap_16.0_webpage.webp&amp;diff=1001"/>
		<updated>2026-07-01T14:48:52Z</updated>

		<summary type="html">&lt;p&gt;Sam: Original summary - &amp;quot;Screenshot taken with scrollbar in correct location at the top of the page&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Original summary - &amp;quot;Screenshot taken with scrollbar in correct location at the top of the page&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_16.0&amp;diff=1000</id>
		<title>OpenSUSE Leap 16.0</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_16.0&amp;diff=1000"/>
		<updated>2026-07-01T14:48:04Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added webpage image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Linux distribution my server is based on. More information is available [https://www.opensuse.org/ here].&lt;br /&gt;
&lt;br /&gt;
If you are looking to install openSUSE, there are more details in [[obtaining openSUSE 16.0]].&lt;br /&gt;
&lt;br /&gt;
== Changes to openSUSE ==&lt;br /&gt;
=== YaST deprication ===&lt;br /&gt;
&lt;br /&gt;
YaST is no longer being developed by SuSE and therefore is not being developed for openSUSE. Therefore, YaST is not available in openSUSE 16.0. openSUSE 16.0 now uses Myrlyn for package management and Cockpit for most other things YaST used to do.&lt;br /&gt;
&lt;br /&gt;
=== New installer ===&lt;br /&gt;
&lt;br /&gt;
Agama is the new web based installer for openSUSE when installing via ISO image. There is also a migration tool available in previous versions that takes care of the full migration to openSUSE 16.0 automatically and painlessly.&lt;br /&gt;
&lt;br /&gt;
=== Wayland compositor by default ===&lt;br /&gt;
&lt;br /&gt;
openSUSE 16.0 no longer uses X and defaults to using Wayland as the desktop compositor. To use X as before, this must be installed yourself but do note, this is deprecated.&lt;br /&gt;
&lt;br /&gt;
=== AppArmor no longer default ===&lt;br /&gt;
&lt;br /&gt;
AppArmor is no longer the default security solution, SELinux is now the preferred security solution for openSUSE 16.0. AppArmor can, however, still be used if preferred.&lt;br /&gt;
&lt;br /&gt;
== Installation notes/Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* If upgrading, check the &amp;quot;Unneeded Packages&amp;quot; category in Myrlyn once upgraded to remove any lingering unneeded packages from the previous version.&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
[[OpenSUSE Leap 16.0 Release Notes|Release Notes]]&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 16.0 was released on 1st October 2025. It is an open-source distribution and is free of charge. It is developed by the community and sponsored by [https://www.eqtgroup.com/ EQT Partners] (formally Micro Focus and Novell).&lt;br /&gt;
&lt;br /&gt;
== Previous supported versions (at time of release) ==&lt;br /&gt;
&lt;br /&gt;
* openSUSE Leap 15.6 (Supported until 30th April 2026)&lt;br /&gt;
* openSUSE Tumbleweed (Rolling release)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:openSUSE Leap 16.0 webpage.webp|center|400px]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_16.0&amp;diff=999</id>
		<title>OpenSUSE Leap 16.0</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_16.0&amp;diff=999"/>
		<updated>2026-07-01T14:45:33Z</updated>

		<summary type="html">&lt;p&gt;Sam: Recreated lost page through Wayback Machine&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Linux distribution my server is based on. More information is available [https://www.opensuse.org/ here].&lt;br /&gt;
&lt;br /&gt;
If you are looking to install openSUSE, there are more details in [[obtaining openSUSE 16.0]].&lt;br /&gt;
&lt;br /&gt;
== Changes to openSUSE ==&lt;br /&gt;
=== YaST deprication ===&lt;br /&gt;
&lt;br /&gt;
YaST is no longer being developed by SuSE and therefore is not being developed for openSUSE. Therefore, YaST is not available in openSUSE 16.0. openSUSE 16.0 now uses Myrlyn for package management and Cockpit for most other things YaST used to do.&lt;br /&gt;
&lt;br /&gt;
=== New installer ===&lt;br /&gt;
&lt;br /&gt;
Agama is the new web based installer for openSUSE when installing via ISO image. There is also a migration tool available in previous versions that takes care of the full migration to openSUSE 16.0 automatically and painlessly.&lt;br /&gt;
&lt;br /&gt;
=== Wayland compositor by default ===&lt;br /&gt;
&lt;br /&gt;
openSUSE 16.0 no longer uses X and defaults to using Wayland as the desktop compositor. To use X as before, this must be installed yourself but do note, this is deprecated.&lt;br /&gt;
&lt;br /&gt;
=== AppArmor no longer default ===&lt;br /&gt;
&lt;br /&gt;
AppArmor is no longer the default security solution, SELinux is now the preferred security solution for openSUSE 16.0. AppArmor can, however, still be used if preferred.&lt;br /&gt;
&lt;br /&gt;
== Installation notes/Known Issues ===&lt;br /&gt;
&lt;br /&gt;
* If upgrading, check the &amp;quot;Unneeded Packages&amp;quot; category in Myrlyn once upgraded to remove any lingering unneeded packages from the previous version.&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
[[OpenSUSE Leap 16.0 Release Notes|Release Notes]]&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 16.0 was released on 1st October 2025. It is an open-source distribution and is free of charge. It is developed by the community and sponsored by [https://www.eqtgroup.com/ EQT Partners] (formally Micro Focus and Novell).&lt;br /&gt;
&lt;br /&gt;
== Previous supported versions (at time of release) ==&lt;br /&gt;
&lt;br /&gt;
* openSUSE Leap 15.6 (Supported until 30th April 2026)&lt;br /&gt;
* openSUSE Tumbleweed (Rolling release)&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Tumbleweed&amp;diff=998</id>
		<title>OpenSUSE Tumbleweed</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Tumbleweed&amp;diff=998"/>
		<updated>2025-08-01T14:14:47Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* About openSUSE Tumbleweed */ Corrected openSUSE link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;More information is available [https://www.opensuse.org/ here]. If you are looking to install openSUSE, there are more details in [[Obtaining openSUSE Tumbleweed|obtaining openSUSE Tumbleweed]].&lt;br /&gt;
&lt;br /&gt;
== About openSUSE Tumbleweed ==&lt;br /&gt;
&lt;br /&gt;
[[File:Tumbleweed.png|right]]&lt;br /&gt;
&lt;br /&gt;
openSUSE Tumbleweed is a rolling distribution of openSUSE. It is kept up to date with the latest packages, while maintaining a degree of stability. Although not as unstable as the bleeding edge factory build (which usually includes the very latest and beta builds of packages), it is not considered as stable as the main openSUSE distribution. That being said, issues are usually fixed pretty quick due to the rolling nature of this release.&lt;br /&gt;
&lt;br /&gt;
In 2019, we moved to openSUSE Tumbleweed in place of [[openSUSE Leap 15.1]]. Due to the pace of change with internet security, a number of new features that we wanted on the server were not available in the normal openSUSE Leap releases without causing too much disruption to the normal release model. Some of the new features we want to take advantage of include:&lt;br /&gt;
&lt;br /&gt;
* TLS 1.3 support in Apache&lt;br /&gt;
* openSSL 1.1.1 support, allowing TLS 1.3 support&lt;br /&gt;
* Strongswan modern charon support, moving away from the old ipsec model of support&lt;br /&gt;
&lt;br /&gt;
[[openSUSE Leap 15.2]] includes these packages as stable releases and we moved back to Leap for that release (we was set for using what would have been openSUSE Leap 16 (now [[openSUSE Leap 15.4]]), however, our needs were met in openSUSE Leap 15.2).&lt;br /&gt;
&lt;br /&gt;
== Known Issues ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;16th January 2020 - Nextcloud 17 and Piwigo are incompatible with the latest PHP 7.4 installed by openSUSE Leap. We are awaiting updates from the developers to address these issues&amp;lt;/s&amp;gt; - These are now compatible with PHP 7.4&lt;br /&gt;
&lt;br /&gt;
* No known issues at present&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Tumbleweed is an open-source distribution and is free of charge. It was founded by [https://www.novell.com/home/ Novell] and is developed by the community and sponsored by SUSE, a subsidiary of EQT Partners, Sweden.&lt;br /&gt;
&lt;br /&gt;
[[File:OpenSUSE_Leap_42.1_website.png|500px|center]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=997</id>
		<title>OpenSUSE Support List</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=997"/>
		<updated>2025-07-27T02:02:21Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Currently supported */ Corrected EOL date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Future release ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected release date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;openSUSE Leap 16.0&#039;&#039; || &#039;&#039;1st October 2025&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Currently supported ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Leap 15.6]] || &#039;&#039;&#039;30th April 2026&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Tumbleweed]]&#039;&#039;&#039; || &#039;&#039;&#039;Rolling release (supported if updated)&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Discontinued ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE version !! Discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.5]] || 31st December 2024&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.4]] || 30th November 2023&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.3]] || 31st December 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.2]] || 4th January 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.1]] || 2nd February 2021**&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.0]] || 3rd December 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.3]] || 1st July 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.2]] || 26th January 2018&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.1]] || 17th May 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.2]] || 17th January 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.1]]* || 3rd February 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.3]] || 29th January 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.2]] || 15th January 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.1]] || 15th May 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 11.4]]* || 5th November 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.3 || 20th January 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.2* || 12th May 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.1* || 14th January 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.0 || 26th July 2010&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.3 || 31st October 2009&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.2 || 30th November 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.1 || 31st May 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.0 || 30th November 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.3 || 30th April 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.2 || 31st October 2006&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.1 || 30th June 2006&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; = Evergreen was supported on this release. All Evergreen support has been stopped.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; = Date originally November 2020 but changed due to the worldwide COVID-19 pandemic.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=996</id>
		<title>OpenSUSE Support List</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=996"/>
		<updated>2025-07-27T02:00:53Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Currently supported */ Bolded date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Future release ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected release date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;openSUSE Leap 16.0&#039;&#039; || &#039;&#039;1st October 2025&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Currently supported ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Leap 15.6]] || &#039;&#039;&#039;31st December 2025&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Tumbleweed]]&#039;&#039;&#039; || &#039;&#039;&#039;Rolling release (supported if updated)&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Discontinued ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE version !! Discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.5]] || 31st December 2024&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.4]] || 30th November 2023&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.3]] || 31st December 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.2]] || 4th January 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.1]] || 2nd February 2021**&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.0]] || 3rd December 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.3]] || 1st July 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.2]] || 26th January 2018&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.1]] || 17th May 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.2]] || 17th January 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.1]]* || 3rd February 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.3]] || 29th January 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.2]] || 15th January 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.1]] || 15th May 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 11.4]]* || 5th November 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.3 || 20th January 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.2* || 12th May 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.1* || 14th January 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.0 || 26th July 2010&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.3 || 31st October 2009&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.2 || 30th November 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.1 || 31st May 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.0 || 30th November 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.3 || 30th April 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.2 || 31st October 2006&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.1 || 30th June 2006&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; = Evergreen was supported on this release. All Evergreen support has been stopped.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; = Date originally November 2020 but changed due to the worldwide COVID-19 pandemic.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=995</id>
		<title>OpenSUSE Support List</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=995"/>
		<updated>2025-07-27T02:00:23Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Expected release */ Changed expected to future&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Future release ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected release date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;openSUSE Leap 16.0&#039;&#039; || &#039;&#039;1st October 2025&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Currently supported ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Leap 15.6]] || 31st December 2025&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Tumbleweed]]&#039;&#039;&#039; || &#039;&#039;&#039;Rolling release (supported if updated)&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Discontinued ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE version !! Discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.5]] || 31st December 2024&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.4]] || 30th November 2023&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.3]] || 31st December 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.2]] || 4th January 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.1]] || 2nd February 2021**&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.0]] || 3rd December 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.3]] || 1st July 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.2]] || 26th January 2018&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.1]] || 17th May 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.2]] || 17th January 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.1]]* || 3rd February 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.3]] || 29th January 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.2]] || 15th January 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.1]] || 15th May 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 11.4]]* || 5th November 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.3 || 20th January 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.2* || 12th May 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.1* || 14th January 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.0 || 26th July 2010&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.3 || 31st October 2009&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.2 || 30th November 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.1 || 31st May 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.0 || 30th November 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.3 || 30th April 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.2 || 31st October 2006&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.1 || 30th June 2006&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; = Evergreen was supported on this release. All Evergreen support has been stopped.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; = Date originally November 2020 but changed due to the worldwide COVID-19 pandemic.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=994</id>
		<title>OpenSUSE Support List</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=994"/>
		<updated>2025-05-29T20:13:53Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added expected release date for openSUSE 16.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Expected release ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected release date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;openSUSE Leap 16.0&#039;&#039; || &#039;&#039;1st October 2025&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Currently supported ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Leap 15.6]] || 31st December 2025&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Tumbleweed]]&#039;&#039;&#039; || &#039;&#039;&#039;Rolling release (supported if updated)&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Discontinued ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE version !! Discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.5]] || 31st December 2024&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.4]] || 30th November 2023&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.3]] || 31st December 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.2]] || 4th January 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.1]] || 2nd February 2021**&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.0]] || 3rd December 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.3]] || 1st July 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.2]] || 26th January 2018&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.1]] || 17th May 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.2]] || 17th January 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.1]]* || 3rd February 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.3]] || 29th January 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.2]] || 15th January 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.1]] || 15th May 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 11.4]]* || 5th November 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.3 || 20th January 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.2* || 12th May 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.1* || 14th January 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.0 || 26th July 2010&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.3 || 31st October 2009&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.2 || 30th November 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.1 || 31st May 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.0 || 30th November 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.3 || 30th April 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.2 || 31st October 2006&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.1 || 30th June 2006&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; = Evergreen was supported on this release. All Evergreen support has been stopped.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; = Date originally November 2020 but changed due to the worldwide COVID-19 pandemic.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.5&amp;diff=993</id>
		<title>OpenSUSE Leap 15.5</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.5&amp;diff=993"/>
		<updated>2025-04-03T16:04:18Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added no support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{No support}}&lt;br /&gt;
This is the Linux distribution my server was based on. More information is available [https://www.opensuse.org/ here]. &lt;br /&gt;
&lt;br /&gt;
If you are looking to install openSUSE, you should look at installing {{Current openSUSE}}, the latest version.&lt;br /&gt;
&lt;br /&gt;
If you are still looking to install openSUSE, there are more details in [[obtaining openSUSE Leap 15.5]].&lt;br /&gt;
&lt;br /&gt;
== Changes to openSUSE ==&lt;br /&gt;
&lt;br /&gt;
Starting with Leap 42.1, work commenced to align openSUSE Leap&#039;s code using SUSE Enterprise Linux as the base code. This [https://www.suse.com/c/closing-the-leap-gap-src/ Closing the Leap Gap] project has finally taken shape in openSUSE 15.3 with this release using SUSE Linux Enterprise packages where possible. You will notice this with the additional update repositories that are added in this release. This will allow stable releases to be built based on the rock solid reliability of SUSE Linux Enterprise.&lt;br /&gt;
&lt;br /&gt;
Releases are now in line with SUSE Enterprise Linux, with openSUSE 15.4, openSUSE 15.5 and openSUSE 15.6 now expected to align with the SUSE Enterprise Linux releases instead of the anticipated jump to openSUSE 16.0 as would have happened before.&lt;br /&gt;
&lt;br /&gt;
32-bit versions are no longer available, only 64-bit (x86_64) now. SUSE Enterprise Linux has not supported 32-bit for a long time and being more in line with SUSE Enterprise Linux, openSUSE now shares this trait. Most modern CPU&#039;s now support 64-bit (Intel Pentium 4&#039;s with the Prescott 2M core from 2005 onwards support x86_64). The rolling release, [[openSUSE Tumbleweed]] still supports 32-bit versions if needed.&lt;br /&gt;
&lt;br /&gt;
== Installation notes/Known Issues ==&lt;br /&gt;
&lt;br /&gt;
Due to the Closing the Leap Gap Project, there have been some major changes within the system that have presented issues while installing this version.&lt;br /&gt;
&lt;br /&gt;
* If upgrading, check the &amp;quot;Unneeded Packages&amp;quot; category in YaST once upgraded to remove any lingering unneeded packages from the previous version.&lt;br /&gt;
* MariaDB now uses system authentication for the root user - just login as root then type &amp;lt;code&amp;gt;mariadb&amp;lt;/code&amp;gt;. You will be logged in automatically. This differs from before where the root password needed setting before you could use it.&lt;br /&gt;
* To enable TLS in Apache, the following flags need adding to &amp;lt;code&amp;gt;sysconfig&amp;lt;/code&amp;gt;. Edit &amp;lt;code&amp;gt;/etc/sysconfig/apache2&amp;lt;/code&amp;gt; and edit this line:&amp;lt;br&amp;gt;&lt;br /&gt;
 APACHE_SERVER_FLAGS=&amp;quot;SSL HTTP2&amp;quot;&lt;br /&gt;
* YaST does not prompt for a root user password for Samba as previous versions did. This can be set up manually with &amp;lt;code&amp;gt;smbpasswd -a root&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;samba-ad-dc&amp;lt;/code&amp;gt; has been removed from this release. It was removed from SuSE Linux 15 SP5 as it was only a technical preview so does not appear in openSUSE Leap 15.5. This is important if you implemented AD DC in previous versions.&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
[[openSUSE Leap 15.5 Release Notes|Release Notes]]&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 15.5 was released on 7th June 2023. It is an open-source distribution and is free of charge. It is developed by the community and sponsored by [https://www.eqtgroup.com/ EQT Partners] (formally Micro Focus and Novell).&lt;br /&gt;
&lt;br /&gt;
== Previous supported versions (at time of release) ==&lt;br /&gt;
&lt;br /&gt;
* [[openSUSE Leap 15.4]] (Supported until 30th November 2023)&lt;br /&gt;
* [[openSUSE Tumbleweed]] (Rolling release)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:OpenSUSE_webpage_Leap_15.5.webp|center|400px]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.4&amp;diff=992</id>
		<title>OpenSUSE Leap 15.4</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.4&amp;diff=992"/>
		<updated>2025-04-03T16:03:48Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added no support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{No support}}&lt;br /&gt;
This is the Linux distribution my server was based on. More information is available [https://www.opensuse.org/ here]. &lt;br /&gt;
&lt;br /&gt;
If you are looking to install openSUSE, you should look at installing {{Current openSUSE}}, the latest version.&lt;br /&gt;
&lt;br /&gt;
If you are still looking to install openSUSE, there are more details in [[obtaining openSUSE Leap 15.4]].&lt;br /&gt;
&lt;br /&gt;
== Changes to openSUSE ==&lt;br /&gt;
&lt;br /&gt;
Starting with Leap 42.1, work commenced to align openSUSE Leap&#039;s code using SUSE Enterprise Linux as the base code. This &amp;quot;[https://www.suse.com/c/closing-the-leap-gap-src/ Closing the Leap Gap]&amp;quot; project has finally taken shape in openSUSE 15.3 with this release using SUSE Linux Enterprise packages where possible. You will notice this with the additional update repositories that are added in this release. This will allow stable releases to be built based on the rock solid reliability of SUSE Linux Enterprise. &lt;br /&gt;
&lt;br /&gt;
Releases are now in line with SUSE Enterprise Linux, with openSUSE 15.4 and openSUSE 15.5 now expected to align with the SUSE Enterprise Linux releases instead of the anticipated jump to openSUSE 16.0 as would have happened before.&lt;br /&gt;
&lt;br /&gt;
32-bit versions are no longer available, only 64-bit (x86_64) now. SUSE Enterprise Linux has not supported 32-bit for a long time and being more in line with SUSE Enterprise Linux, openSUSE now shares this trait. Most modern CPU&#039;s now support 64-bit (Intel Pentium 4&#039;s with the Prescott 2M core from 2005 onwards support x86_64). The rolling release, [[openSUSE Tumbleweed]] still supports 32-bit versions if needed.&lt;br /&gt;
&lt;br /&gt;
== Installation notes/Known Issues ==&lt;br /&gt;
&lt;br /&gt;
Due to the Closing the Leap Gap Project, there have been some major changes within the system that have presented issues while installing this version.&lt;br /&gt;
&lt;br /&gt;
* If upgrading, check the &amp;quot;Unneeded Packages&amp;quot; category in YaST once upgraded to remove any lingering unneeded packages from the previous version.&lt;br /&gt;
* PHP 8 is available in this release but not supported by all web software at present due to a major version change (namely Mediawiki 1.38.x). PHP 7 is still available for install in the meantime.&lt;br /&gt;
* MariaDB now uses system authentication for the root user - just login as root then type &amp;lt;code&amp;gt;mariadb&amp;lt;/code&amp;gt;. You will be logged in automatically. This differs from before where the root password needed setting before you could use it.&lt;br /&gt;
* To enable TLS in Apache, the following flags need adding to &amp;lt;code&amp;gt;sysconfig&amp;lt;/code&amp;gt;. Edit &amp;lt;code&amp;gt;/etc/sysconfig/apache2&amp;lt;/code&amp;gt; and edit this line:&amp;lt;br&amp;gt;&lt;br /&gt;
 APACHE_SERVER_FLAGS=&amp;quot;SSL HTTP2&amp;quot;&lt;br /&gt;
* Crashplan has issues with this version of openSUSE. These can be resolved [[Code42 Crashplan|here]].&lt;br /&gt;
* YaST does not prompt for a root user password for Samba as previous versions did. This can be set up manually with &amp;lt;code&amp;gt;smbpasswd -a root&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
[[openSUSE Leap 15.4 Release Notes|Release Notes]]&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 15.4 was released on 9th June 2022. It is an open-source distribution and is free of charge. It is developed by the community and sponsored by [https://www.eqtgroup.com/ EQT Partners] (formally Micro Focus and Novell).&lt;br /&gt;
&lt;br /&gt;
== Previous supported versions (at time of release) ==&lt;br /&gt;
&lt;br /&gt;
* [[openSUSE Leap 15.3]] (Supported until November 2022)&lt;br /&gt;
* [[openSUSE Tumbleweed]] (Rolling release)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:OpenSUSE_webpage_Leap_15.4.png|center|400px]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.3&amp;diff=991</id>
		<title>OpenSUSE Leap 15.3</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.3&amp;diff=991"/>
		<updated>2025-04-03T16:03:12Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added no support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{No support}}&lt;br /&gt;
This is the Linux distribution my server was based on. More information is available [https://www.opensuse.org/ here]. &lt;br /&gt;
&lt;br /&gt;
If you are looking to install openSUSE, you should look at installing {{Current openSUSE}}, the latest version.&lt;br /&gt;
&lt;br /&gt;
If you are still looking to install openSUSE, there are more details in [[obtaining openSUSE Leap 15.3]].&lt;br /&gt;
&lt;br /&gt;
== Changes to openSUSE ==&lt;br /&gt;
&lt;br /&gt;
Starting with Leap 42.1, work commenced to align openSUSE Leap&#039;s code using SUSE Enterprise Linux as the base code. This &amp;quot;[https://www.suse.com/c/closing-the-leap-gap-src/ Closing the Leap Gap]&amp;quot; project has finally taken shape in openSUSE 15.3 with this release using SUSE Linux Enterprise packages where possible. You will notice this with the additional update repositories that are added in this release. This will allow stable releases to be built based on the rock solid reliability of SUSE Linux Enterprise. &lt;br /&gt;
&lt;br /&gt;
Releases are now in line with SUSE Enterprise Linux, with openSUSE 15.4 and possibly openSUSE 15.5 now expected to align with the SUSE Enterprise Linux releases instead of the anticipated jump to openSUSE 16.0 as would have happened before after this release.&lt;br /&gt;
&lt;br /&gt;
32-bit versions are no longer available, only 64-bit (x86_64) now. SUSE Enterprise Linux has not supported 32-bit for a long time and being more in line with SUSE Enterprise Linux, openSUSE now shares this trait. Most modern CPU&#039;s now support 64-bit (Intel Pentium 4&#039;s with the Prescott 2M core from 2005 onwards support x86_64). The rolling release, [[openSUSE Tumbleweed]] still supports 32-bit versions if needed.&lt;br /&gt;
&lt;br /&gt;
== Installation notes/Known Issues ==&lt;br /&gt;
&lt;br /&gt;
* If upgrading, check the &amp;quot;Unneeded Packages&amp;quot; category in YaST once upgraded to remove any lingering unneeded packages from the previous version.&lt;br /&gt;
* Additional SLE update repositories need to be added if upgrading owing to the &amp;quot;[https://www.suse.com/c/closing-the-leap-gap-src/ Closing the Leap Gap]&amp;quot; project.&lt;br /&gt;
* No other issues at present&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
[[openSUSE Leap 15.3 Release Notes|Release Notes]]&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 15.3 was released on 2nd June 2021. It is an open-source distribution and is free of charge. It is developed by the community and sponsored by [https://www.eqtgroup.com/ EQT Partners] (formally Micro Focus and Novell).&lt;br /&gt;
&lt;br /&gt;
== Previous supported versions (at time of release) ==&lt;br /&gt;
&lt;br /&gt;
* [[openSUSE Leap 15.2]] (Supported until December 2021)&lt;br /&gt;
* [[openSUSE Tumbleweed]] (Rolling release)&lt;br /&gt;
&lt;br /&gt;
[[File:OpenSUSE_webpage_Leap_15.3.webp|center|400px]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.2&amp;diff=990</id>
		<title>OpenSUSE Leap 15.2</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.2&amp;diff=990"/>
		<updated>2025-04-03T16:02:47Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added not support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{No support}}&lt;br /&gt;
This is the Linux distribution my server was based on. More information is available [https://www.opensuse.org/ here]. &lt;br /&gt;
&lt;br /&gt;
If you are looking to install openSUSE, you should look at installing {{Current openSUSE}}, the latest version.&lt;br /&gt;
&lt;br /&gt;
If you are still looking to install openSUSE, there are more details in [[obtaining openSUSE Leap 15.2]].&lt;br /&gt;
&lt;br /&gt;
== Changes to openSUSE ==&lt;br /&gt;
&lt;br /&gt;
Starting with Leap 42.1, Leap&#039;s code is aligned with SUSE Enterprise Linux as the base code. This will allow stable releases to be built based on the rock solid reliability of SuSE Linux Enterprise. Releases will be more in line with SUSE Enterprise Linux. 32-bit versions are no longer available, only 64-bit (x86_64) versions are now available. SUSE Enterprise Linux has not supported 32-bit for a long time and being more in line with SUSE Enterprise Linux, openSUSE now shares this trait. Most modern CPU&#039;s now support 64-bit (Late Pentium 4&#039;s and above support x86_64). The rolling release, [[openSUSE Tumbleweed]] still supports 32-bit versions if needed.&lt;br /&gt;
&lt;br /&gt;
* This release supports TLS v1.3 with Apache&lt;br /&gt;
* This release supports the new &amp;lt;code&amp;gt;charon&amp;lt;/code&amp;gt; method of configuration for Strongswan.&lt;br /&gt;
&lt;br /&gt;
== Installation notes/Known Issues ==&lt;br /&gt;
&lt;br /&gt;
* Not strictly related to openSUSE but as of today (17th July 2020), Crashplan&#039;s service has changed from &amp;lt;code&amp;gt;crashplan&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;code42&amp;lt;/code&amp;gt;.&lt;br /&gt;
* No other known issues during installation.&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
[[openSUSE Leap 15.2 Release Notes|Release Notes]]&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 15.2 was released on 2nd July 2020. It is an open-source distribution and is free of charge. It is developed by the community and sponsored by [https://www.eqtgroup.com/ EQT Partners (formally Micro Focus and Novell)].&lt;br /&gt;
&lt;br /&gt;
== Previous supported versions (at time of release) ==&lt;br /&gt;
&lt;br /&gt;
* [[openSUSE Leap 15.1]] (Supported until November 2020)&lt;br /&gt;
* [[openSUSE Tumbleweed]] (Rolling release)&lt;br /&gt;
&lt;br /&gt;
[[File:OpenSUSE_webpage_Leap_15.2.png|center|400px]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.1&amp;diff=989</id>
		<title>OpenSUSE Leap 15.1</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.1&amp;diff=989"/>
		<updated>2025-04-03T16:02:10Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added no support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{No support}}&lt;br /&gt;
This release was skipped on the server as we used [[openSUSE Tumbleweed]] to meet our needs. The next supported Leap release that we used is [[openSUSE Leap 15.2]].&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=988</id>
		<title>OpenSUSE Support List</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Support_List&amp;diff=988"/>
		<updated>2025-04-03T16:00:34Z</updated>

		<summary type="html">&lt;p&gt;Sam: Moved openSUSE Leap 15.5 to discontinued&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Currently supported ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE Version !! Expected discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Leap 15.6]] || 31st December 2025&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[openSUSE Tumbleweed]]&#039;&#039;&#039; || &#039;&#039;&#039;Rolling release (supported if updated)&#039;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Discontinued ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! openSUSE version !! Discontinued date&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.5]] || 31st December 2024&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.4]] || 30th November 2023&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.3]] || 31st December 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.2]] || 4th January 2022&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.1]] || 2nd February 2021**&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 15.0]] || 3rd December 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.3]] || 1st July 2019&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.2]] || 26th January 2018&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE Leap 42.1]] || 17th May 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.2]] || 17th January 2017&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 13.1]]* || 3rd February 2016&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.3]] || 29th January 2015&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.2]] || 15th January 2014&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 12.1]] || 15th May 2013&lt;br /&gt;
|-&lt;br /&gt;
| [[openSUSE 11.4]]* || 5th November 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.3 || 20th January 2012&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.2* || 12th May 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.1* || 14th January 2011&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 11.0 || 26th July 2010&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.3 || 31st October 2009&lt;br /&gt;
|-&lt;br /&gt;
| openSUSE 10.2 || 30th November 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.1 || 31st May 2008&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 10.0 || 30th November 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.3 || 30th April 2007&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.2 || 31st October 2006&lt;br /&gt;
|-&lt;br /&gt;
| SUSE Linux 9.1 || 30th June 2006&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; = Evergreen was supported on this release. All Evergreen support has been stopped.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; = Date originally November 2020 but changed due to the worldwide COVID-19 pandemic.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=CPU_feature_flags&amp;diff=987</id>
		<title>CPU feature flags</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=CPU_feature_flags&amp;diff=987"/>
		<updated>2024-12-15T16:56:28Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added missing definitions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the explanations for the CPU flags available in Linux under Hardware information.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! CPU flag&lt;br /&gt;
! Flag meaning&lt;br /&gt;
|-&lt;br /&gt;
| 3DNOW&lt;br /&gt;
| A multimedia extension created by AMD for its processors, based on/almost equivalent to Intel&#039;s MMX extensions.&lt;br /&gt;
|-&lt;br /&gt;
| 3DNOWEXT&lt;br /&gt;
| 3DNOW Extended. Also known as AMD&#039;s 3DNow! Enhanced/3DNow! Extensions.&lt;br /&gt;
|-&lt;br /&gt;
| APIC&lt;br /&gt;
| Advanced Programmable Interrupt Controller.&lt;br /&gt;
|-&lt;br /&gt;
| CLFSH/CLFlush&lt;br /&gt;
| Cache Line Flush.&lt;br /&gt;
|-&lt;br /&gt;
| CMOV&lt;br /&gt;
| Conditional Move/Compare Instruction.&lt;br /&gt;
|-&lt;br /&gt;
| CMP_Legacy&lt;br /&gt;
| Register showing the CPU is not Hyper-Threading capable.&lt;br /&gt;
|-&lt;br /&gt;
| Constant_TSC&lt;br /&gt;
| On Intel Pentium 4&#039;s, the TSC runs with constant frequency independent of CPU frequency when EST is used.&lt;br /&gt;
|-&lt;br /&gt;
| CR8Legacy&lt;br /&gt;
| CR8 in 32-bit mode.&lt;br /&gt;
|-&lt;br /&gt;
| CX8&lt;br /&gt;
| CMPXCHG8B Instruction (Compare and exchange 8 bytes. Also known as F00F, which is an abbreviation of the hexadecimal encoding of an instruction that exhibits a design flaw in the majority of older Intel Pentium CPU&#039;s).&lt;br /&gt;
|-&lt;br /&gt;
| CX16&lt;br /&gt;
| CMPXCHG16B Instruction (CMPXCHG16B allows for atomic operations on 128-bit double quadword (or oword) data types. This is useful for high resolution counters that could be updated by multiple processors (or cores). Without CMPXCHG16B the only way to perform such an operation is by using a critical section).&lt;br /&gt;
|-&lt;br /&gt;
| DE&lt;br /&gt;
| Debugging Extensions.&lt;br /&gt;
|-&lt;br /&gt;
| DS&lt;br /&gt;
| Debug Store.&lt;br /&gt;
|-&lt;br /&gt;
| DS_CPL&lt;br /&gt;
| CPL qualified Debug Store (whatever CPL might mean in this context).&lt;br /&gt;
|-&lt;br /&gt;
| DTS&lt;br /&gt;
| Could mean either Debug Trace Store or Digital Thermal Sensor, depending on source.&lt;br /&gt;
|-&lt;br /&gt;
| EIST/EST&lt;br /&gt;
| Enhanced Intel SpeedStep Technology.&lt;br /&gt;
|-&lt;br /&gt;
| EPT&lt;br /&gt;
| Extended Page Tables (Intel, similar to NPT on AMD).&lt;br /&gt;
|-&lt;br /&gt;
| FID&lt;br /&gt;
| Frequency IDentifier.&lt;br /&gt;
|-&lt;br /&gt;
| FPU&lt;br /&gt;
| x87 Floating Point Unit built into the CPU. This is where most mathematically intense calculations take place. Used to be a separate chip on the 80486SX and earlier (called the 80487 or 80387, etc. 80486DX had FPU built-in as well). All Pentium CPUs and later have this functionality built in.&lt;br /&gt;
|-&lt;br /&gt;
| FXSR&lt;br /&gt;
| FXSAVE/FXRSTOR. (The FXSAVE instruction writes the current state of the x87 FPU, MMX technology, Streaming SIMD Extensions, and Streaming SIMD Extensions 2 data, control, and status registers to the destination operand. The destination is a 512-byte memory location. FXRSTOR will restore the state saves).&lt;br /&gt;
|-&lt;br /&gt;
| FXSR_OPT&lt;br /&gt;
| FXSR optimisations.&lt;br /&gt;
|-&lt;br /&gt;
| HT&lt;br /&gt;
| Hyper-Transport. Note that the same abbreviation might is also used to indicate Hyper-Threading (see below).&lt;br /&gt;
|-&lt;br /&gt;
| HTT/HT&lt;br /&gt;
| Hyper-Threading. An Intel technology that allows quasi-parallel execution of different instructions on a single core. The single core is seen by applications as if it were two (or potentially more) cores. However, two true CPU cores are almost always faster than a single core with HyperThreading. This flag indicates support in the CPU when checking the flags in /proc/cpuinfo on Linux systems.&lt;br /&gt;
|-&lt;br /&gt;
| HVM&lt;br /&gt;
| Hardware support for virtual machines (Xen abbreviation for AMD SVM / Intel VMX).&lt;br /&gt;
|-&lt;br /&gt;
| LAHF_LM&lt;br /&gt;
| Load Flags into AH Register, Long Mode.&lt;br /&gt;
|-&lt;br /&gt;
| LM&lt;br /&gt;
| Long Mode (64bit Extensions, AMD&#039;s AMD64 or Intel&#039;s EM64T).&lt;br /&gt;
|-&lt;br /&gt;
| MCA&lt;br /&gt;
| Machine Check Architecture.&lt;br /&gt;
|-&lt;br /&gt;
| MCE&lt;br /&gt;
| Machine Check Exception.&lt;br /&gt;
|-&lt;br /&gt;
| MMX&lt;br /&gt;
| It is rumoured to stand for MultiMedia eXtension or Multiple Math or Matrix Math eXtension, but officially it is a meaningless acronym trademarked by Intel.&lt;br /&gt;
|-&lt;br /&gt;
| MMXEXT&lt;br /&gt;
| MMX Extensions – an enhanced set of instructions compared to MMX.&lt;br /&gt;
|-&lt;br /&gt;
| MNI&lt;br /&gt;
| Modular Network Interface or Merom New Instruction (see SSSE3).&lt;br /&gt;
|-&lt;br /&gt;
| MON/MONITOR&lt;br /&gt;
| CPU Monitor.&lt;br /&gt;
|-&lt;br /&gt;
| MSR&lt;br /&gt;
| RDMSR and WRMSR Support.&lt;br /&gt;
|-&lt;br /&gt;
| MTRR&lt;br /&gt;
| Memory Type Range Register.&lt;br /&gt;
|-&lt;br /&gt;
| NPT&lt;br /&gt;
| Nested Page Tables (AMD, similar to EPT on Intel).&lt;br /&gt;
|-&lt;br /&gt;
| NX&lt;br /&gt;
| No eXecute, a flag that can be set on memory pages to disable execution of code in these pages.&lt;br /&gt;
|-&lt;br /&gt;
| PAE&lt;br /&gt;
| Physical Address Extensions. PAE is the added ability of the IA32 processor to address more than 4 GB of physical memory using Intel&#039;s 36bit page addresses instead of the standard 32bit page addresses to access a total of 64gibibytes of RAM. Most AMD chips support PAE as well.&lt;br /&gt;
&lt;br /&gt;
PAE is the second method supported to access memory above 4 GB (PSE36 being the first); this method has been widely implemented. PAE maps up to 64 GB of physical memory into a 32-bit (4 GB) virtual address space using either 4-KB or 2-MB pages. The Page directories and the page tables are extended to 8 byte formats, allowing the extension of the base addresses of page tables and page frames to 24 bits (from 20 bits). This is where the extra four bits are introduced to complete the 36-bit physical address.&lt;br /&gt;
&lt;br /&gt;
Windows supports PAE with 4-KB pages. PAE also supports a mode where 2-MB pages are supported. Many of the UNIX operating systems rely on the 2 MB-page mode. The address translation is done without the use of page tables (the PDE supplies the page frame address directly). &lt;br /&gt;
|-&lt;br /&gt;
| PAT&lt;br /&gt;
| Page Attribute Table.&lt;br /&gt;
|-&lt;br /&gt;
| PBE&lt;br /&gt;
| Pending Break Encoding.&lt;br /&gt;
|-&lt;br /&gt;
| PGE&lt;br /&gt;
| PTE Global Bit.&lt;br /&gt;
|-&lt;br /&gt;
| PNI&lt;br /&gt;
| Prescott New Instruction. This was the codename for SSE3 before it was released on the Intel Prescott processor (which was later added to the Pentium 4 family name).&lt;br /&gt;
|-&lt;br /&gt;
| PSE&lt;br /&gt;
| Page Size Extensions (See PSE36).&lt;br /&gt;
|-&lt;br /&gt;
| PSE36&lt;br /&gt;
| Page Size Extensions 36. IA-32 supports two methods to access memory above 4 GB (32 bits). PSE (Page Size Extension) was the first method, which shipped with the Pentium II. This method offers a compatibility advantage because it kept the PTE (page table entry) size of 4 bytes. However, the only practical implementation of this is through a driver. This approach suffers from significant performance limitations, due to a buffer copy operation necessary for reading and writing above 4 GB. PSE mode is used in the PSE 36 RAM disk usage model.&lt;br /&gt;
&lt;br /&gt;
PSE uses a standard 1K directory and no page tables to extend the page size 4-MB (eliminating one level of indirection for that mode). The Page Directory Entries (PDE) contains 14 bits of address, and when combined with the 22-bit byte index, yields the 36 bits of extended physical address. Both 4-KB and 4-MB pages are simultaneously supported below 4 GB, with the 4-KB pages supported in the standard way.&lt;br /&gt;
&lt;br /&gt;
Note that pages located above 4 GB must use PSE mode (with 4-MB page sizes).&lt;br /&gt;
|-&lt;br /&gt;
| SEP&lt;br /&gt;
| SYSENTER and SYSEXIT.&lt;br /&gt;
|-&lt;br /&gt;
| SS&lt;br /&gt;
| Self-Snoop.&lt;br /&gt;
|-&lt;br /&gt;
| SSE&lt;br /&gt;
| Streaming SIMD Extensions. Developed by Intel for its Pentium III but also implemented by AMD processors from Athlon XP onwards.&lt;br /&gt;
|-&lt;br /&gt;
| SSE2&lt;br /&gt;
| Streaming SIMD Extensions 2 (An additional 144 SIMDs). Introduced by Intel Pentium 4 and on AMD since Athlon 64.&lt;br /&gt;
|-&lt;br /&gt;
| SSE3&lt;br /&gt;
| Streaming SIMD Extensions 3 (An additional 13 instructions). Introduced with “Prescott” revision Intel Pentium 4 processors. AMD introduced SSE3 with the Athlon 64 &amp;quot;Venice&amp;quot; revision.&lt;br /&gt;
|-&lt;br /&gt;
| SSSE3&lt;br /&gt;
| Supplemental Streaming SIMD Extension 3 (SSSE3 contains 16 new discrete instructions over SSE3). Introduced on Intel Core 2 Duo processors. No AMD chip supports SSSE3 yet.&lt;br /&gt;
|-&lt;br /&gt;
| SSE4&lt;br /&gt;
| Streaming SIMD Extentions 4. Introduced with &amp;quot;Nehalem&amp;quot; processor in 2008. Also known as &amp;quot;Nehalem New Instructions&amp;quot; (NNI).&lt;br /&gt;
|-&lt;br /&gt;
| SSE4_1&lt;br /&gt;
| Streaming SIMD Extentions 4.1.&lt;br /&gt;
|-&lt;br /&gt;
| SSE4_2&lt;br /&gt;
| Streaming SIMD Extentions 4.2.&lt;br /&gt;
|-&lt;br /&gt;
| SVM&lt;br /&gt;
| Secure Virtual Machine. (AMD&#039;s virtualization extensions to the 64-bit x86 architecture, equivalent to Intel&#039;s VMX, both also known as HVM in the Xen hypervisor).&lt;br /&gt;
|-&lt;br /&gt;
| SYSCALL&lt;br /&gt;
| System Call (the mechanism used by an application program to request service from the operating system).&lt;br /&gt;
|-&lt;br /&gt;
| TM&lt;br /&gt;
| Thermal Monitor.&lt;br /&gt;
|-&lt;br /&gt;
| TM2&lt;br /&gt;
| Thermal Monitor 2.&lt;br /&gt;
|-&lt;br /&gt;
| TNI&lt;br /&gt;
| Tejas New Instruction. See SSSE3.&lt;br /&gt;
|-&lt;br /&gt;
| TPR&lt;br /&gt;
| Task Priority Register.&lt;br /&gt;
|-&lt;br /&gt;
| TPR_SHADOW&lt;br /&gt;
| Shadowed Task Priority Registers (for virtualization).&lt;br /&gt;
|-&lt;br /&gt;
| TS&lt;br /&gt;
| Thermal Sensor.&lt;br /&gt;
|-&lt;br /&gt;
| TSC&lt;br /&gt;
| Time Stamp Counter.&lt;br /&gt;
|-&lt;br /&gt;
| TTP&lt;br /&gt;
| Thermal Trip.&lt;br /&gt;
|-&lt;br /&gt;
| VID&lt;br /&gt;
| Voltage IDentifier&lt;br /&gt;
|-&lt;br /&gt;
| VME&lt;br /&gt;
| Virtual-8086 Mode Enhancement.&lt;br /&gt;
|-&lt;br /&gt;
| VMX&lt;br /&gt;
| Intel&#039;s equivalent to AMD&#039;s SVM.&lt;br /&gt;
|-&lt;br /&gt;
| VNMI&lt;br /&gt;
| Virtual NMI (non-maskable interrupts) (for virtualization).&lt;br /&gt;
|-&lt;br /&gt;
| VPID&lt;br /&gt;
| Virtual Processor ID (for virtualization).&lt;br /&gt;
|-&lt;br /&gt;
| XTPR&lt;br /&gt;
| TPR register chipset update control messenger. Part of the APIC code.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=986</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=986"/>
		<updated>2024-10-10T03:47:08Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Finish configuring LocalSettings.php */ Removed unneeded lines&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entirely on the English Wikipedia, but should be quite relevant for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-&amp;lt;date&amp;gt;-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
* The following extra extensions need to be downloaded, extracted and dropped in the extensions folder:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MassMessage MassMessage]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:TemplateStyles TemplateStyles]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:JsonConfig JsonConfig]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MobileFrontend MobileFrontend]&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving database to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the database, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a separate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
*** ParserFunctions&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed successfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
&lt;br /&gt;
=== Finish configuring LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Open LocalSettings.php in a text editor&lt;br /&gt;
* Add a line to enable a favicon:&lt;br /&gt;
 $wgFavicon = &amp;quot;$wgResourceBasePath/resources/assets/&amp;lt;logoimage.svg&amp;gt;&amp;quot;;&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;$wgEmergencyContact&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$wgPasswordSender&amp;lt;/code&amp;gt; with your email address between the quote marks&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgLocaltimezone&amp;lt;/code&amp;gt; from UTC to your correct PHP time zone - in our case, &amp;lt;code&amp;gt;Europe/London&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
This stops user accounts being created and prevents editing by anyone other than yourself.&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadSkin ( &#039;Vector&#039; );&amp;lt;/code&amp;gt; the following:&lt;br /&gt;
 $wgDefaultSkin = &#039;vector-2022&#039;;&lt;br /&gt;
This enables the modern Vector 2022 skin&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;JsonConfig&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgJsonConfigEnableLuaSupport = true; // required to use JsonConfig in Lua&lt;br /&gt;
 $wgJsonConfigModels[&#039;Tabular.JsonConfig&#039;] = &#039;JsonConfig\JCTabularContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.tab&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.tab$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigModels[&#039;Map.JsonConfig&#039;] = &#039;JsonConfig\JCMapDataContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.map&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.map$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigInterwikiPrefix = &amp;quot;commons&amp;quot;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;MobileFrontend&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgMFDefaultSkinClass = &#039;SkinMinerva&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;ParserFunctions&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgPFEnableStringFunctions = true;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Scribunto&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgScribuntoDefaultEngine = &#039;luastandalone&#039;;&lt;br /&gt;
* Add the following block at the end (leave commented out until needed for debugging for security and comment back out once debugging finished):&lt;br /&gt;
 # Show PHP exceptions (only enable on error)&lt;br /&gt;
 #$wgShowExceptionDetails = true;&lt;br /&gt;
* Add the following block at the end - this allows larger modules to be uploaded without errors:&lt;br /&gt;
 $wgMaxArticleSize = 4096;       # Size in kb&lt;br /&gt;
 $wgAPIMaxResultSize = 4096000;  # Size in b&lt;br /&gt;
&lt;br /&gt;
Go back to the website and check that it is still functional. If you are greeted by a blank page, the most common reason is a missing &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; at the end of a line - all lines must end with a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Installing_Jellyfin&amp;diff=985</id>
		<title>Installing Jellyfin</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Installing_Jellyfin&amp;diff=985"/>
		<updated>2024-09-10T19:33:45Z</updated>

		<summary type="html">&lt;p&gt;Sam: Created article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jellyfin is a free and open-source media server and suite of multimedia applications designed to organize, manage, and share digital media files to networked devices.&lt;br /&gt;
&lt;br /&gt;
An RPM package is not provided for openSUSE so Jellyfin must be installed from the Linux manual install tarball. This guide will explain how to do this. This guide is written with the current version of Jellyfin 10.9.11.&lt;br /&gt;
&lt;br /&gt;
== What you need to know ==&lt;br /&gt;
&lt;br /&gt;
You will need to download the following:&lt;br /&gt;
* Jellyfin Generic Linux Server package&lt;br /&gt;
* &amp;lt;code&amp;gt;jellyfin-ffmpeg&amp;lt;/code&amp;gt;tarball&lt;br /&gt;
&lt;br /&gt;
The following packages need installing:&lt;br /&gt;
* &amp;lt;code&amp;gt;gcc&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;yasm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following packages need installing from Packman:&lt;br /&gt;
* &amp;lt;code&amp;gt;libx264-devel&amp;lt;/code&amp;gt; - required&lt;br /&gt;
* &amp;lt;code&amp;gt;libx265-devel&amp;lt;/code&amp;gt; - optional for H.265/HEVC transcoding&lt;br /&gt;
* &amp;lt;code&amp;gt;SVT-AV1-devel&amp;lt;/code&amp;gt; - optional for AV1 transcoding&lt;br /&gt;
&lt;br /&gt;
== Installing Jellyfin ==&lt;br /&gt;
&lt;br /&gt;
* Create the directory &amp;lt;code&amp;gt;sudo mkdir /opt/jellyfin&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move into the directory &amp;lt;code&amp;gt;cd /opt/jellyfin&amp;lt;/code&amp;gt;&lt;br /&gt;
* Download the latest tarball from the [https://repo.jellyfin.org/?path=/server/linux/latest-stable/amd64 Jellyfin website] - for example, &amp;lt;code&amp;gt;wget https://repo.jellyfin.org/files/server/linux/latest-stable/amd64/jellyfin_10.9.11-amd64.tar.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
* Unzip the tar archive, &amp;lt;code&amp;gt;sudo tar zxvf jellyfin_10.9.11-amd64.tar.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
* We need to create the script to run Jellyfin and run it as a service. Open &amp;lt;code&amp;gt;sudo nano jellyfin.sh&amp;lt;/code&amp;gt; and add the following to the script file:&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 JELLYFINDIR=&amp;quot;/opt/jellyfin&amp;quot;&lt;br /&gt;
 FFMPEGDIR=&amp;quot;/usr/share/jellyfin-ffmpeg/bin&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 $JELLYFINDIR/jellyfin/jellyfin \&lt;br /&gt;
  -d $JELLYFINDIR/data \&lt;br /&gt;
  -C $JELLYFINDIR/cache \&lt;br /&gt;
  -c $JELLYFINDIR/config \&lt;br /&gt;
  -l $JELLYFINDIR/log \&lt;br /&gt;
  --ffmpeg $FFMPEGDIR/ffmpeg&lt;br /&gt;
* Press Ctrl+W to save the file&lt;br /&gt;
* Run &amp;lt;code&amp;gt;sudo chmod +x jellyfin.sh&amp;lt;/code&amp;gt; to make the script executable&lt;br /&gt;
* Move back into the Jellyfin directory and initially run the Jellyfin script created earlier &amp;lt;code&amp;gt;./jellyfin.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
* Once it has started, close the script by pressing Ctrl+C&lt;br /&gt;
* Move up a directory &amp;lt;code&amp;gt;cd ..&amp;lt;/code&amp;gt;. Take ownership of the file under the user you are running &amp;lt;code&amp;gt;sudo chown -R &amp;lt;username&amp;gt;:users jellyfin&amp;lt;/code&amp;gt;. &#039;&#039;&#039;Note:&#039;&#039;&#039; &amp;lt;code&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; needs changing to whatever your username is&lt;br /&gt;
&lt;br /&gt;
=== Install service script ===&lt;br /&gt;
&lt;br /&gt;
This will guide you on how to create a script to start Jellyfin as a service on startup.&lt;br /&gt;
&lt;br /&gt;
* Move to &amp;lt;code&amp;gt;cd /etc/systemd/system&amp;lt;/code&amp;gt;&lt;br /&gt;
* We need to create the script to run Jellyfin as a service. Open &amp;lt;code&amp;gt;sudo nano jellyfin.service&amp;lt;/code&amp;gt; and add the following to the script file:&lt;br /&gt;
 [Unit]&lt;br /&gt;
 Description=Jellyfin&lt;br /&gt;
 After=network.target&lt;br /&gt;
 &lt;br /&gt;
 [Service]&lt;br /&gt;
 Type=simple&lt;br /&gt;
 User=&amp;lt;username&amp;gt;&lt;br /&gt;
 Restart=always&lt;br /&gt;
 ExecStart=/opt/jellyfin/jellyfin.sh&lt;br /&gt;
 &lt;br /&gt;
 [Install]&lt;br /&gt;
 WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; &amp;lt;code&amp;gt;User=&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; should be changed to the same user that took ownership of the Jellyfin folder earlier.&lt;br /&gt;
* Press Ctrl+W to save the file&lt;br /&gt;
* Correct the permissions of the service file &amp;lt;code&amp;gt;sudo chmod 644 jellyfin.service&amp;lt;/code&amp;gt;&lt;br /&gt;
* Reload the system daemons to allow the service to load &amp;lt;code&amp;gt;sudo systemctl daemon-reload&amp;lt;/code&amp;gt;&lt;br /&gt;
* Run the Jellyfin service and check it starts &amp;lt;code&amp;gt;sudo service jellyfin start&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you&#039;d like Jellyfin to run on startup, run &amp;lt;code&amp;gt;sudo systemctl enable jellyfin.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install &amp;lt;code&amp;gt;jellyfin-ffmpeg&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
openSUSE does not come with an FFMpeg version that includes propriety formats such as H.264 and H.265/HEVC. We need to install &amp;lt;code&amp;gt;jellyfin-ffmpeg&amp;lt;/code&amp;gt; which includes these formats and is tailored for hardware encoding for Jellyfin. A few dependencies need installing first.&lt;br /&gt;
&lt;br /&gt;
* We need to add the Packman repository that includes the dependencies we need &amp;lt;code&amp;gt;sudo zypper addrepo -cfp 90 &#039;https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/&#039; packman&amp;lt;/code&amp;gt;&lt;br /&gt;
* Refresh zypper to load the new repositories &amp;lt;code&amp;gt;sudo zypper ref&amp;lt;/code&amp;gt;. Accept the keys needed for the repositories.&lt;br /&gt;
* Install the base proprietary codecs &amp;lt;code&amp;gt;sudo zypper install --allow-vendor-change --from packman ffmpeg gstreamer-plugins-{good,bad,ugly,libav} libavcodec vlc-codecs&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install the dependency packages depending on what you need: &amp;lt;code&amp;gt;sudo zypper in libx264-devel libx265-devel SVT-AV1-devel&amp;lt;/code&amp;gt;. Allow any extra dependencies these may require.&lt;br /&gt;
* Install the base packages need to compile &amp;lt;code&amp;gt;jellyfin-ffmpeg&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;sudo zypper in gcc make yasm&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move to your home downloads folder &amp;lt;code&amp;gt;cd ~/Downloads&amp;lt;/code&amp;gt;&lt;br /&gt;
* Download the &amp;lt;code&amp;gt;jellyfin-ffmpeg&amp;lt;/code&amp;gt; from [https://github.com/jellyfin/jellyfin-ffmpeg/releases GitHub]. Ensure that the version is compatible with the version of Jellyfin you have installed - for example Jellyfin 10.9.11 is compatible with the latest &amp;lt;code&amp;gt;jellyfin-ffmpeg&amp;lt;/code&amp;gt; package 6.0.1-8. Download the source tar.gz package with &amp;lt;code&amp;gt;wget https://github.com/jellyfin/jellyfin-ffmpeg/archive/refs/tags/v6.0.1-8.tar.gz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&#039;&#039;&#039;Tip:&#039;&#039;&#039; You may need to expand the Assets tab to show the downloadable packages.&lt;br /&gt;
* Extract the package with &amp;lt;code&amp;gt;tar zxvf v6.0.1-8.tar.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move into the folder created &amp;lt;code&amp;gt;cd jellyfin-ffmpeg-6.0.1-8&amp;lt;/code&amp;gt;&lt;br /&gt;
* Run &amp;lt;code&amp;gt;./configure --prefix=/usr/share/jellyfin-ffmpeg --enable-libx264 --enable-libx265 --enable-libsvtav1 --enable-gpl&amp;lt;/code&amp;gt;.&lt;br /&gt;
This will configure the package to be installed to &amp;lt;code&amp;gt;/usr/share/jellyfin-ffmeg&amp;lt;/code&amp;gt; with H.264, H.265/HEVC and AV1. Due to H.264 and H.265/HEVC being licensed under a GPL license, the whole package will be licensed under GPL which is enabled by the switch. This can be configured as needed by adding/removing switches.&lt;br /&gt;
* Run &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;. This will compile the code and may take a while&lt;br /&gt;
* Run &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt; to install&lt;br /&gt;
&lt;br /&gt;
== Configuring Jellyfin ==&lt;br /&gt;
&lt;br /&gt;
Jellyfin is configured through the web browser. Open a web browser and go to the following address: &amp;lt;code&amp;gt;http://localhost:8096&amp;lt;/code&amp;gt;. You should get the first run installer after installation is complete.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Disclaimers&amp;diff=984</id>
		<title>MediaWiki:Disclaimers</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Disclaimers&amp;diff=984"/>
		<updated>2024-08-24T13:04:49Z</updated>

		<summary type="html">&lt;p&gt;Sam: Removed disclaimers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Privacy&amp;diff=983</id>
		<title>MediaWiki:Privacy</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Privacy&amp;diff=983"/>
		<updated>2024-08-24T13:04:17Z</updated>

		<summary type="html">&lt;p&gt;Sam: Removed privacy policy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.6_Release_Notes&amp;diff=982</id>
		<title>OpenSUSE Leap 15.6 Release Notes</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.6_Release_Notes&amp;diff=982"/>
		<updated>2024-08-23T23:20:05Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* System Upgrade */ Corrected section link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;openSUSE Leap is a free and Linux-based operating system for your PC, Laptop or Server. You can surf the Web, manage your e-mails and photos, do office work, play videos or music and have a lot of fun!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Publication Date:&#039;&#039;&#039; 2024-06-10, &#039;&#039;&#039;Version:&#039;&#039;&#039; 15.6.20240610.a9f19f4&lt;br /&gt;
&lt;br /&gt;
This is the initial version of the release notes for the forthcoming openSUSE Leap 15.6.&lt;br /&gt;
&lt;br /&gt;
If you upgrade from an older version to this openSUSE Leap release, see previous release notes listed here: https://en.opensuse.org/openSUSE:Release_Notes.&lt;br /&gt;
&lt;br /&gt;
This public beta test is part of the openSUSE project. Information about the project is available at https://www.opensuse.org.&lt;br /&gt;
&lt;br /&gt;
Report all bugs you encounter using this prerelease of openSUSE Leap 15.6 in the openSUSE Bugzilla. For more information, see https://en.opensuse.org/Submitting_Bug_Reports. If you would like to see anything added to the release notes, file a bug report against the component “Release Notes”.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
This section contains installation-related notes. For detailed installation instructions, see the documentation at https://doc.opensuse.org/documentation/leap/startup/html/book-startup/part-basics.html.&lt;br /&gt;
&lt;br /&gt;
=== Using Atomic Updates With the System Role Transactional Server ===&lt;br /&gt;
&lt;br /&gt;
The installer supports the system role &#039;&#039;Transactional Server&#039;&#039;. This system role features an update system that applies updates atomically (as a single operation) and makes them easy to revert should that become necessary. These features are based on the package management tools that all other SUSE and openSUSE distributions also rely on. This means that the vast majority of RPM packages that work with other system roles of openSUSE Leap 15.6 also work with the system role &#039;&#039;Transactional Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#C0C0C0;border:1px solid #666666;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note: Incompatible packages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some packages modify the contents of &amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/srv&amp;lt;/code&amp;gt; in their RPM &amp;lt;code&amp;gt;%post&amp;lt;/code&amp;gt; scripts. These packages are incompatible. If you find such a package, file a bug report.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To provide these features, this update system relies on:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Btrfs snapshots.&#039;&#039;&#039;  Before a system update is started, a new Btrfs snapshot of the root file system is created. Then, all the changes from the update are installed into that Btrfs snapshot. To complete the update, you can then restart the system into the new snapshot.&lt;br /&gt;
&lt;br /&gt;
To revert the update, simply boot from the previous snapshot instead.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;A read-only root file system.&#039;&#039;&#039;  To avoid issues with and data loss because of updates, the root file system must not be written to otherwise. Therefore, the root file system is mounted read-only during normal operation.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;To make this setup work, two additional changes to the file system needed to be made: To allow writing user configuration in &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;, this directory is automatically configured to use OverlayFS. &amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt; is now a separate subvolume which can be written to by processes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FDDFA6;border:1px solid #BB7B03;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important: &#039;&#039;Transactional Server&#039;&#039; Needs At Least 12 GB of Disk Space&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The system role &#039;&#039;Transactional Server&#039;&#039; needs a disk size of at least 12 GB to accommodate Btrfs snapshots.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FDDFA6;border:1px solid #BB7B03;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important: YaST Does Not Work Transactional Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Currently, YaST does not work with transactional updates. This is because YaST performs things immediately and because it cannot edit a read-only filesystem.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To work with transactional updates, always use the command &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update&amp;lt;/code&amp;gt;&#039;&#039;&#039; instead of YaST and Zypper for all software management:&lt;br /&gt;
&lt;br /&gt;
* Update the system: &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update up&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* Install a package: &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update pkg in &#039;&#039;PACKAGE_NAME&#039;&#039;&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* Remove a package: &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update pkg rm &#039;&#039;PACKAGE_NAME&#039;&#039;&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* To revert the last snapshot, that is the last set of changes to the root file system, make sure your system is booted into the next to last snapshot and run: &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update rollback&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Optionally, add a snapshot ID to the end of the command to rollback to a specific ID.&lt;br /&gt;
&lt;br /&gt;
When using this system role, by default, the system will perform a daily update and reboot between 03:30 am and 05:00 am. Both of these actions are systemd-based and if necessary can be disabled using systemctl:&lt;br /&gt;
&lt;br /&gt;
 systemctl disable --now transactional-update.timer rebootmgr.service&lt;br /&gt;
&lt;br /&gt;
For more information about transactional updates, see the openSUSE Kubic blog posts https://kubic.opensuse.org/blog/2018-04-04-transactionalupdates/ and https://kubic.opensuse.org/blog/2018-04-20-transactionalupdates2/.&lt;br /&gt;
&lt;br /&gt;
=== Installing on Hard Disks With Less Than 12 GB of Capacity ===&lt;br /&gt;
&lt;br /&gt;
The installer will only propose a partitioning scheme if the available hard disk size is larger than 12 GB. If you want to set up, for example, very small virtual machines images, use the guided partitioner to tune partitioning parameters manually.&lt;br /&gt;
&lt;br /&gt;
=== UEFI - Unified Extensible Firmware Interface ===&lt;br /&gt;
&lt;br /&gt;
Prior to installing openSUSE on a system that boots using UEFI (Unified Extensible Firmware Interface), you are urgently advised to check for any firmware updates the hardware vendor recommends and, if available, to install such an update. A pre-installation of Windows 8 or later is a strong indication that your system boots using UEFI.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Background:&#039;&#039; Some UEFI firmware has bugs that cause it to break if too much data gets written to the UEFI storage area. However, there is no clear data of how much is &amp;quot;too much&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
openSUSE minimizes the risk by not writing more than the bare minimum required to boot the OS. The minimum means telling the UEFI firmware about the location of the openSUSE boot loader. Upstream Linux kernel features that use the UEFI storage area for storing boot and crash information (&amp;lt;code&amp;gt;pstore&amp;lt;/code&amp;gt;) have been disabled by default. Nevertheless, it is recommended to install any firmware updates the hardware vendor recommends.&lt;br /&gt;
&lt;br /&gt;
=== UEFI, GPT and MS-DOS Parititions ===&lt;br /&gt;
&lt;br /&gt;
Together with the EFI/UEFI specification, a new style of partitioning arrived: GPT (GUID Partition Table). This new schema uses globally unique identifiers (128-bit values displayed in 32 hexadecimal digits) to identify devices and partition types.&lt;br /&gt;
&lt;br /&gt;
Additionally, the UEFI specification also allows legacy MBR (MS-DOS) partitions. The Linux boot loaders (ELILO or GRUB 2) try to automatically generate a GUID for those legacy partitions, and write them to the firmware. Such a GUID can change frequently, causing a rewrite in the firmware. A rewrite consists of two different operations: Removing the old entry and creating a new entry that replaces the first one.&lt;br /&gt;
&lt;br /&gt;
Modern firmware has a garbage collector that collects deleted entries and frees the memory reserved for old entries. A problem arises when faulty firmware does not collect and free those entries. This can result in a non-bootable system.&lt;br /&gt;
&lt;br /&gt;
To work around this problem, convert the legacy MBR partition to GPT.&lt;br /&gt;
&lt;br /&gt;
== System Upgrade ==&lt;br /&gt;
&lt;br /&gt;
This section lists notes related to upgrading the system. For supported scenarios and detailed upgrade instructions, see the documentation at:&lt;br /&gt;
&lt;br /&gt;
* https://en.opensuse.org/SDB:System_upgrade&lt;br /&gt;
* https://doc.opensuse.org/documentation/leap/startup/html/book-startup/cha-update-osuse.html&lt;br /&gt;
&lt;br /&gt;
Make sure to also review the following sections of this documentation:&lt;br /&gt;
&lt;br /&gt;
* Section &amp;quot;[[#Packaging Changes|Packaging Changes]]&amp;quot;&lt;br /&gt;
* Section &amp;quot;[[#Usage of 4096 bit RSA RPM and repository signing key|Usage of 4096 bit RSA RPM and repository signing key]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Packaging Changes ==&lt;br /&gt;
&lt;br /&gt;
=== Important changes in updated packages ===&lt;br /&gt;
&lt;br /&gt;
Package python-podman is now based on the project [https://github.com/containers/podman-py podman-py] was [https://github.com/containers/python-podman python-podman].&lt;br /&gt;
&lt;br /&gt;
=== Deprecated Packages ===&lt;br /&gt;
&lt;br /&gt;
Deprecated packages are still shipped as part of the distribution but are scheduled to be removed the next version of openSUSE Leap. These packages exist to aid migration, but their use is discouraged and they may not receive updates.&lt;br /&gt;
&lt;br /&gt;
To check whether installed packages are no longer maintained, make sure that the &amp;lt;code&amp;gt;lifecycle-data-openSUSE&amp;lt;/code&amp;gt; package is installed, then use the command:&lt;br /&gt;
&lt;br /&gt;
 zypper lifecycle&lt;br /&gt;
&lt;br /&gt;
=== Removed Packages ===&lt;br /&gt;
&lt;br /&gt;
Removed packages are not shipped as part of the distribution anymore.&lt;br /&gt;
&lt;br /&gt;
The following packages were all superseded by [https://en.opensuse.org/SDB:NVIDIA_SUSE_Prime NVIDIA SUSE Prime]. Also see Section &amp;quot;[[#Removal of Bumblebee packages|Removal of Bumblebee packages]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;bbswitch&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bumblebee&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bumblebee-status&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;primus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following python packages were all removed from openSUSE Leap 15.6 as they are unmaintained and no longer part of openSUSE Factory.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-faulthandler&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-flake8dir&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-ordering&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;pythonpath&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-random-order&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-repeat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-reqs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-travis-fold&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-IMDbPY&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Keras-Applications&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Ming&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-PasteScript&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-PyPrint&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Pykka&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Qt.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Quandl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Theano&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-abclient&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter-nbutils&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_calysto&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_contrib_core&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_full_width&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_highlight_selected_word&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_imatlab_kernel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_jgraph&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_jupyterlab_launcher&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_latex_envs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_nbpresent&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_nbsmoke&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_sphinx&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_themer&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_vega&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_watermark&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nbindex-jupyter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-archive&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-argparse&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-discover&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-licenses&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-links&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-setuptools&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-shells&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-demjson&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-discover&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-django-babel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-djvulibre&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dnsdiag&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-efilter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-enum-compat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-featureflow&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-flake8-future-import&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-flask-peewee&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-flask-restplus&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pep517&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-piston-mini-client&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pomegranate&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-proboscis&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pyIOSXR&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pyblake2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pyfg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pygeos&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pympv&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-python-fileinspector&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-python-jsonrpc-server&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-socketIO-client-nexus&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-sphinxcontrib-actdiag&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-spyder-line-profiler&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-spyder-memory-profiler&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-spyder-unittest&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-sqlsoup&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-test-server&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-img2pdf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jenkins-job-builder&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jgraph&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jsonextended&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jsonlib-python3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jsonpath-rw-ext&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupytext&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-keepalive&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-keyczar&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-language-check&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-logilab-astng&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-lws&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-lzmaffi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-missingno&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-mockldap&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-moksha-common&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-moviepy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-murano-pkg-check&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-uncompyle6&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-whois_similarity_distance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nose-cover3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nose-random&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-openstack.nose_plugin&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nagiosplugin&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nbsphinx-link&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-os-api-ref&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-oslo.db&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pampy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pass_&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python_keyring&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pdfkit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-qgrid&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-raet&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-ravello-sdk&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-requests-html&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-ruamel.yaml.cmd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-rustcfg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-serpy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-shouldbe&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-sigal&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-slumber&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-torch&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-tox-travis&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-trello&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-twodict&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Drivers and Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Removal of Bumblebee packages ===&lt;br /&gt;
&lt;br /&gt;
Packages maintained as part of [https://build.opensuse.org/project/show/X11:Bumblebee X11:Bumblebee] project were succeeded by [https://en.opensuse.org/SDB:NVIDIA_SUSE_Prime NVIDIA SUSE Prime]. Bumblebee packages will no longer be part of the standard distribution. See details in [https://code.opensuse.org/leap/features/issue/142 the drop feature request tracker].&lt;br /&gt;
&lt;br /&gt;
=== Secure Boot: Third-Party Drivers Need to Be Properly Signed ===&lt;br /&gt;
&lt;br /&gt;
Starting with openSUSE Leap 15.2, kernel module signature check for third-party drivers (&amp;lt;code&amp;gt;CONFIG_MODULE_SIG=y&amp;lt;/code&amp;gt;) is now enabled. This is an important security measure to avoid untrusted code running in the kernel.&lt;br /&gt;
&lt;br /&gt;
This may prevent third-party kernel modules from being loaded if UEFI Secure Boot is enabled. Kernel Module Packages (KMPs) from the official openSUSE repositories are not affected, because the modules they contain are signed with the openSUSE key. The signature check has the following behaviour:&lt;br /&gt;
&lt;br /&gt;
* Kernel modules that are unsigned or signed with a key that is either known as untrusted or cannot be verified against the system&#039;s trusted key data base will be blocked.&lt;br /&gt;
&lt;br /&gt;
It is possible to generate a custom certificate, enroll it into the system&#039;s Machine Owner Key (MOK) data base, and sign locally compiled kernel modules with this certificate&#039;s key. Modules signed in this manner will neither be blocked nor cause warnings. See https://en.opensuse.org/openSUSE:UEFI.&lt;br /&gt;
&lt;br /&gt;
Since this also affects NVIDIA graphics drivers, we addressed this in our official packages for openSUSE. However, you need to manually enroll a new MOK key after installation to make the new packages work. For instructions how to install the drivers and enroll the MOK key, see https://en.opensuse.org/SDB:NVIDIA_drivers#Secureboot.&lt;br /&gt;
&lt;br /&gt;
=== Network install image hangs on boot on Raspberry Pi ===&lt;br /&gt;
&lt;br /&gt;
Booting the network install image from USB stick on Raspberry Pi 4 hangs on boot. To resolve this issue, add the &amp;lt;code&amp;gt;console=tty&amp;lt;/code&amp;gt; boot parameter. See details in the known issues section of our [https://en.opensuse.org/HCL:Raspberry_Pi4#Boot_from_USB_in_Net_install_image_of_Leap_15.4_hangs_on_boot Raspberry Pi 4 Hardware Compatibility List].&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
This section lists desktop issues and changes in openSUSE Leap 15.6.&lt;br /&gt;
&lt;br /&gt;
=== KDE 4 and Qt 4 removal ===&lt;br /&gt;
&lt;br /&gt;
KDE 4 packages will not be part of openSUSE Leap 15.4. Please update your system to Plasma 5 and Qt 5. Some of Qt 4 packages might still remain for compatibility reasons. https://bugzilla.opensuse.org/show_bug.cgi?id=1179613.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;noveau&amp;lt;/code&amp;gt; disabled for NVIDIA Turing and Ampere GPUs/openGPU recommendation ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;nouveau&amp;lt;/code&amp;gt; driver is still considered experimental for Nvidia Turing and Ampere GPUs. Therefore it has been disabled by default on systems with these GPUs.&lt;br /&gt;
&lt;br /&gt;
Instead of using the nouveau driver we recommend using Nvidia&#039;s new openGPU driver. Install this driver by installing these following packages:&lt;br /&gt;
&lt;br /&gt;
* nvidia-open-driver-G06-signed-kmp-default&lt;br /&gt;
* kernel-firmware-nvidia-gsp-G06&lt;br /&gt;
&lt;br /&gt;
Then uncomment the &amp;lt;code&amp;gt;options nvidia&amp;lt;/code&amp;gt; line in the &amp;lt;code&amp;gt;/etc/modprobe.d/50-nvidia-default.conf&amp;lt;/code&amp;gt; file so that it looks like the following afterwards:&lt;br /&gt;
&lt;br /&gt;
 ### Enable support on *all* Turing/Ampere GPUs: Alpha Quality!&lt;br /&gt;
 options nvidia NVreg_OpenRmEnableUnsupportedGpus=1&lt;br /&gt;
&lt;br /&gt;
If you prefer using &amp;lt;code&amp;gt;nouveau&amp;lt;/code&amp;gt; driver anyway, add &amp;lt;code&amp;gt;nouveau.force_probe=1&amp;lt;/code&amp;gt; to your kernel boot parameters, and do not install the above openGPU package.&lt;br /&gt;
&lt;br /&gt;
=== Starting &amp;lt;code&amp;gt;ibus&amp;lt;/code&amp;gt; automatically under KDE Plasma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ibus&amp;lt;/code&amp;gt; does not start automatically under KDE Plasma. This can be fixed by adding the appropriate command to the autostart section. To do that, go to System Settings, Startup and Shutdown, Autostart and there click on the Add… button, and then click on Add Application…. In the opened dialog window type &amp;lt;code&amp;gt;ibus-daemon -x&amp;lt;/code&amp;gt; into the text box and click OK. For more information see https://bugzilla.suse.com/show_bug.cgi?id=1211977.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;iotop&amp;lt;/code&amp;gt; support ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;iotop&amp;lt;/code&amp;gt;&#039;&#039;&#039; does not display values for SWAPIN and IO %.&lt;br /&gt;
&lt;br /&gt;
Since Linux kernel 5.14, either kernel boot parameter &amp;lt;code&amp;gt;delayacct&amp;lt;/code&amp;gt;  needs to be specified or &amp;lt;code&amp;gt;kernel.task_delayacct&amp;lt;/code&amp;gt; sysctl needs to be enabled.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
This section lists changes to security features in openSUSE Leap 15.6 &lt;br /&gt;
&lt;br /&gt;
=== Usage of 4096 bit RSA RPM and repository signing key ===&lt;br /&gt;
&lt;br /&gt;
We switched the RPM and repository signing key of openSUSE Leap 15.5 from 2048 bit RSA to a 4096 bit RSA key. This key was previously introduced to openSUSE Leap 15.4 users in a maintenance update. Users upgrading from older releases will need to import the new key manually as described in https://en.opensuse.org/SDB:System_upgrade#0._New_4096_bit_RSA_signing_key.&lt;br /&gt;
&lt;br /&gt;
=== Cockpit root login is disabled by default ===&lt;br /&gt;
&lt;br /&gt;
Cockpit is newly part of openSUSE Leap 15.6. However, similarly to sshd, the password-based login for root is disabled by default. Users need to manually edit &amp;lt;code&amp;gt;/etc/cockpit/disallowed-users&amp;lt;/code&amp;gt; and restart &amp;lt;code&amp;gt;cockpit.socket&amp;lt;/code&amp;gt; as described in https://news.opensuse.org/2024/04/29/try-cockpit-in-leap-rc/ to allow root login.&lt;br /&gt;
&lt;br /&gt;
== More Information and Feedback ==&lt;br /&gt;
&lt;br /&gt;
* Read the &amp;lt;code&amp;gt;README&amp;lt;/code&amp;gt; documents on the medium.&lt;br /&gt;
* View a detailed changelog information about a particular package from its RPM:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;rpm --changelog -qp FILENAME.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
* Replace &#039;&#039;&amp;lt;code&amp;gt;FILENAME&amp;lt;/code&amp;gt;&#039;&#039; with the name of the RPM.&lt;br /&gt;
* Check the &amp;lt;code&amp;gt;ChangeLog&amp;lt;/code&amp;gt; file in the top level of the medium for a chronological log of all changes made to the updated packages.&lt;br /&gt;
* Find more information in the &amp;lt;code&amp;gt;docu&amp;lt;/code&amp;gt; directory on the medium.&lt;br /&gt;
* For additional or updated documentation, see https://doc.opensuse.org/ .&lt;br /&gt;
* For the latest product news, from openSUSE, visit https://www.opensuse.org. &lt;br /&gt;
&lt;br /&gt;
Copyright © 2024 SUSE LLC&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.6_Release_Notes&amp;diff=981</id>
		<title>OpenSUSE Leap 15.6 Release Notes</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.6_Release_Notes&amp;diff=981"/>
		<updated>2024-08-23T23:19:16Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Removed Packages */ Corrected section link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;openSUSE Leap is a free and Linux-based operating system for your PC, Laptop or Server. You can surf the Web, manage your e-mails and photos, do office work, play videos or music and have a lot of fun!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Publication Date:&#039;&#039;&#039; 2024-06-10, &#039;&#039;&#039;Version:&#039;&#039;&#039; 15.6.20240610.a9f19f4&lt;br /&gt;
&lt;br /&gt;
This is the initial version of the release notes for the forthcoming openSUSE Leap 15.6.&lt;br /&gt;
&lt;br /&gt;
If you upgrade from an older version to this openSUSE Leap release, see previous release notes listed here: https://en.opensuse.org/openSUSE:Release_Notes.&lt;br /&gt;
&lt;br /&gt;
This public beta test is part of the openSUSE project. Information about the project is available at https://www.opensuse.org.&lt;br /&gt;
&lt;br /&gt;
Report all bugs you encounter using this prerelease of openSUSE Leap 15.6 in the openSUSE Bugzilla. For more information, see https://en.opensuse.org/Submitting_Bug_Reports. If you would like to see anything added to the release notes, file a bug report against the component “Release Notes”.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
This section contains installation-related notes. For detailed installation instructions, see the documentation at https://doc.opensuse.org/documentation/leap/startup/html/book-startup/part-basics.html.&lt;br /&gt;
&lt;br /&gt;
=== Using Atomic Updates With the System Role Transactional Server ===&lt;br /&gt;
&lt;br /&gt;
The installer supports the system role &#039;&#039;Transactional Server&#039;&#039;. This system role features an update system that applies updates atomically (as a single operation) and makes them easy to revert should that become necessary. These features are based on the package management tools that all other SUSE and openSUSE distributions also rely on. This means that the vast majority of RPM packages that work with other system roles of openSUSE Leap 15.6 also work with the system role &#039;&#039;Transactional Server&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#C0C0C0;border:1px solid #666666;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note: Incompatible packages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some packages modify the contents of &amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/srv&amp;lt;/code&amp;gt; in their RPM &amp;lt;code&amp;gt;%post&amp;lt;/code&amp;gt; scripts. These packages are incompatible. If you find such a package, file a bug report.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To provide these features, this update system relies on:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Btrfs snapshots.&#039;&#039;&#039;  Before a system update is started, a new Btrfs snapshot of the root file system is created. Then, all the changes from the update are installed into that Btrfs snapshot. To complete the update, you can then restart the system into the new snapshot.&lt;br /&gt;
&lt;br /&gt;
To revert the update, simply boot from the previous snapshot instead.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;A read-only root file system.&#039;&#039;&#039;  To avoid issues with and data loss because of updates, the root file system must not be written to otherwise. Therefore, the root file system is mounted read-only during normal operation.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;To make this setup work, two additional changes to the file system needed to be made: To allow writing user configuration in &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;, this directory is automatically configured to use OverlayFS. &amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt; is now a separate subvolume which can be written to by processes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FDDFA6;border:1px solid #BB7B03;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important: &#039;&#039;Transactional Server&#039;&#039; Needs At Least 12 GB of Disk Space&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The system role &#039;&#039;Transactional Server&#039;&#039; needs a disk size of at least 12 GB to accommodate Btrfs snapshots.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#FDDFA6;border:1px solid #BB7B03;padding-left:5px;padding-right:5px;padding-bottom:5px;padding-top:5px;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important: YaST Does Not Work Transactional Mode&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Currently, YaST does not work with transactional updates. This is because YaST performs things immediately and because it cannot edit a read-only filesystem.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To work with transactional updates, always use the command &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update&amp;lt;/code&amp;gt;&#039;&#039;&#039; instead of YaST and Zypper for all software management:&lt;br /&gt;
&lt;br /&gt;
* Update the system: &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update up&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* Install a package: &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update pkg in &#039;&#039;PACKAGE_NAME&#039;&#039;&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* Remove a package: &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update pkg rm &#039;&#039;PACKAGE_NAME&#039;&#039;&amp;lt;/code&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
* To revert the last snapshot, that is the last set of changes to the root file system, make sure your system is booted into the next to last snapshot and run: &#039;&#039;&#039;&amp;lt;code&amp;gt;transactional-update rollback&amp;lt;/code&amp;gt;&#039;&#039;&#039;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Optionally, add a snapshot ID to the end of the command to rollback to a specific ID.&lt;br /&gt;
&lt;br /&gt;
When using this system role, by default, the system will perform a daily update and reboot between 03:30 am and 05:00 am. Both of these actions are systemd-based and if necessary can be disabled using systemctl:&lt;br /&gt;
&lt;br /&gt;
 systemctl disable --now transactional-update.timer rebootmgr.service&lt;br /&gt;
&lt;br /&gt;
For more information about transactional updates, see the openSUSE Kubic blog posts https://kubic.opensuse.org/blog/2018-04-04-transactionalupdates/ and https://kubic.opensuse.org/blog/2018-04-20-transactionalupdates2/.&lt;br /&gt;
&lt;br /&gt;
=== Installing on Hard Disks With Less Than 12 GB of Capacity ===&lt;br /&gt;
&lt;br /&gt;
The installer will only propose a partitioning scheme if the available hard disk size is larger than 12 GB. If you want to set up, for example, very small virtual machines images, use the guided partitioner to tune partitioning parameters manually.&lt;br /&gt;
&lt;br /&gt;
=== UEFI - Unified Extensible Firmware Interface ===&lt;br /&gt;
&lt;br /&gt;
Prior to installing openSUSE on a system that boots using UEFI (Unified Extensible Firmware Interface), you are urgently advised to check for any firmware updates the hardware vendor recommends and, if available, to install such an update. A pre-installation of Windows 8 or later is a strong indication that your system boots using UEFI.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Background:&#039;&#039; Some UEFI firmware has bugs that cause it to break if too much data gets written to the UEFI storage area. However, there is no clear data of how much is &amp;quot;too much&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
openSUSE minimizes the risk by not writing more than the bare minimum required to boot the OS. The minimum means telling the UEFI firmware about the location of the openSUSE boot loader. Upstream Linux kernel features that use the UEFI storage area for storing boot and crash information (&amp;lt;code&amp;gt;pstore&amp;lt;/code&amp;gt;) have been disabled by default. Nevertheless, it is recommended to install any firmware updates the hardware vendor recommends.&lt;br /&gt;
&lt;br /&gt;
=== UEFI, GPT and MS-DOS Parititions ===&lt;br /&gt;
&lt;br /&gt;
Together with the EFI/UEFI specification, a new style of partitioning arrived: GPT (GUID Partition Table). This new schema uses globally unique identifiers (128-bit values displayed in 32 hexadecimal digits) to identify devices and partition types.&lt;br /&gt;
&lt;br /&gt;
Additionally, the UEFI specification also allows legacy MBR (MS-DOS) partitions. The Linux boot loaders (ELILO or GRUB 2) try to automatically generate a GUID for those legacy partitions, and write them to the firmware. Such a GUID can change frequently, causing a rewrite in the firmware. A rewrite consists of two different operations: Removing the old entry and creating a new entry that replaces the first one.&lt;br /&gt;
&lt;br /&gt;
Modern firmware has a garbage collector that collects deleted entries and frees the memory reserved for old entries. A problem arises when faulty firmware does not collect and free those entries. This can result in a non-bootable system.&lt;br /&gt;
&lt;br /&gt;
To work around this problem, convert the legacy MBR partition to GPT.&lt;br /&gt;
&lt;br /&gt;
== System Upgrade ==&lt;br /&gt;
&lt;br /&gt;
This section lists notes related to upgrading the system. For supported scenarios and detailed upgrade instructions, see the documentation at:&lt;br /&gt;
&lt;br /&gt;
* https://en.opensuse.org/SDB:System_upgrade&lt;br /&gt;
* https://doc.opensuse.org/documentation/leap/startup/html/book-startup/cha-update-osuse.html&lt;br /&gt;
&lt;br /&gt;
Make sure to also review the following sections of this documentation:&lt;br /&gt;
&lt;br /&gt;
* Section &amp;quot;[[#Packaging Changes]]&amp;quot;&lt;br /&gt;
* Section &amp;quot;[[#Usage of 4096 bit RSA RPM and repository signing key]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Packaging Changes ==&lt;br /&gt;
&lt;br /&gt;
=== Important changes in updated packages ===&lt;br /&gt;
&lt;br /&gt;
Package python-podman is now based on the project [https://github.com/containers/podman-py podman-py] was [https://github.com/containers/python-podman python-podman].&lt;br /&gt;
&lt;br /&gt;
=== Deprecated Packages ===&lt;br /&gt;
&lt;br /&gt;
Deprecated packages are still shipped as part of the distribution but are scheduled to be removed the next version of openSUSE Leap. These packages exist to aid migration, but their use is discouraged and they may not receive updates.&lt;br /&gt;
&lt;br /&gt;
To check whether installed packages are no longer maintained, make sure that the &amp;lt;code&amp;gt;lifecycle-data-openSUSE&amp;lt;/code&amp;gt; package is installed, then use the command:&lt;br /&gt;
&lt;br /&gt;
 zypper lifecycle&lt;br /&gt;
&lt;br /&gt;
=== Removed Packages ===&lt;br /&gt;
&lt;br /&gt;
Removed packages are not shipped as part of the distribution anymore.&lt;br /&gt;
&lt;br /&gt;
The following packages were all superseded by [https://en.opensuse.org/SDB:NVIDIA_SUSE_Prime NVIDIA SUSE Prime]. Also see Section &amp;quot;[[#Removal of Bumblebee packages|Removal of Bumblebee packages]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;bbswitch&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bumblebee&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bumblebee-status&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;primus&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following python packages were all removed from openSUSE Leap 15.6 as they are unmaintained and no longer part of openSUSE Factory.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-faulthandler&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-flake8dir&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-ordering&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;pythonpath&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-random-order&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-repeat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-reqs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pytest-travis-fold&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-IMDbPY&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Keras-Applications&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Ming&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-PasteScript&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-PyPrint&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Pykka&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Qt.py&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Quandl&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-Theano&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-abclient&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter-nbutils&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_calysto&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_contrib_core&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_full_width&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_highlight_selected_word&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_imatlab_kernel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_jgraph&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_jupyterlab_launcher&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_latex_envs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_nbpresent&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_nbsmoke&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_sphinx&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_themer&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_vega&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupyter_watermark&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nbindex-jupyter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-archive&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-argparse&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-discover&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-licenses&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-links&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-setuptools&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dephell-shells&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-demjson&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-discover&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-django-babel&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-djvulibre&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-dnsdiag&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-efilter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-enum-compat&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-featureflow&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-flake8-future-import&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-flask-peewee&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-flask-restplus&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pep517&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-piston-mini-client&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pomegranate&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-proboscis&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pyIOSXR&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pyblake2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pyfg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pygeos&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pympv&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-python-fileinspector&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-python-jsonrpc-server&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-socketIO-client-nexus&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-sphinxcontrib-actdiag&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-spyder-line-profiler&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-spyder-memory-profiler&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-spyder-unittest&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-sqlsoup&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-test-server&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-img2pdf&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jenkins-job-builder&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jgraph&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jsonextended&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jsonlib-python3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jsonpath-rw-ext&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-jupytext&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-keepalive&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-keyczar&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-language-check&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-logilab-astng&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-lws&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-lzmaffi&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-missingno&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-mockldap&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-moksha-common&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-moviepy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-murano-pkg-check&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-uncompyle6&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-whois_similarity_distance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nose-cover3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nose-random&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-openstack.nose_plugin&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nagiosplugin&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-nbsphinx-link&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-os-api-ref&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-oslo.db&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pampy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pass_&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python_keyring&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-pdfkit&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-qgrid&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-raet&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-ravello-sdk&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-requests-html&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-ruamel.yaml.cmd&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-rustcfg&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-serpy&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-shouldbe&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-sigal&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-slumber&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-torch&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-tox-travis&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-trello&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;python-twodict&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Drivers and Hardware ==&lt;br /&gt;
&lt;br /&gt;
=== Removal of Bumblebee packages ===&lt;br /&gt;
&lt;br /&gt;
Packages maintained as part of [https://build.opensuse.org/project/show/X11:Bumblebee X11:Bumblebee] project were succeeded by [https://en.opensuse.org/SDB:NVIDIA_SUSE_Prime NVIDIA SUSE Prime]. Bumblebee packages will no longer be part of the standard distribution. See details in [https://code.opensuse.org/leap/features/issue/142 the drop feature request tracker].&lt;br /&gt;
&lt;br /&gt;
=== Secure Boot: Third-Party Drivers Need to Be Properly Signed ===&lt;br /&gt;
&lt;br /&gt;
Starting with openSUSE Leap 15.2, kernel module signature check for third-party drivers (&amp;lt;code&amp;gt;CONFIG_MODULE_SIG=y&amp;lt;/code&amp;gt;) is now enabled. This is an important security measure to avoid untrusted code running in the kernel.&lt;br /&gt;
&lt;br /&gt;
This may prevent third-party kernel modules from being loaded if UEFI Secure Boot is enabled. Kernel Module Packages (KMPs) from the official openSUSE repositories are not affected, because the modules they contain are signed with the openSUSE key. The signature check has the following behaviour:&lt;br /&gt;
&lt;br /&gt;
* Kernel modules that are unsigned or signed with a key that is either known as untrusted or cannot be verified against the system&#039;s trusted key data base will be blocked.&lt;br /&gt;
&lt;br /&gt;
It is possible to generate a custom certificate, enroll it into the system&#039;s Machine Owner Key (MOK) data base, and sign locally compiled kernel modules with this certificate&#039;s key. Modules signed in this manner will neither be blocked nor cause warnings. See https://en.opensuse.org/openSUSE:UEFI.&lt;br /&gt;
&lt;br /&gt;
Since this also affects NVIDIA graphics drivers, we addressed this in our official packages for openSUSE. However, you need to manually enroll a new MOK key after installation to make the new packages work. For instructions how to install the drivers and enroll the MOK key, see https://en.opensuse.org/SDB:NVIDIA_drivers#Secureboot.&lt;br /&gt;
&lt;br /&gt;
=== Network install image hangs on boot on Raspberry Pi ===&lt;br /&gt;
&lt;br /&gt;
Booting the network install image from USB stick on Raspberry Pi 4 hangs on boot. To resolve this issue, add the &amp;lt;code&amp;gt;console=tty&amp;lt;/code&amp;gt; boot parameter. See details in the known issues section of our [https://en.opensuse.org/HCL:Raspberry_Pi4#Boot_from_USB_in_Net_install_image_of_Leap_15.4_hangs_on_boot Raspberry Pi 4 Hardware Compatibility List].&lt;br /&gt;
&lt;br /&gt;
== Desktop ==&lt;br /&gt;
&lt;br /&gt;
This section lists desktop issues and changes in openSUSE Leap 15.6.&lt;br /&gt;
&lt;br /&gt;
=== KDE 4 and Qt 4 removal ===&lt;br /&gt;
&lt;br /&gt;
KDE 4 packages will not be part of openSUSE Leap 15.4. Please update your system to Plasma 5 and Qt 5. Some of Qt 4 packages might still remain for compatibility reasons. https://bugzilla.opensuse.org/show_bug.cgi?id=1179613.&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;noveau&amp;lt;/code&amp;gt; disabled for NVIDIA Turing and Ampere GPUs/openGPU recommendation ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;nouveau&amp;lt;/code&amp;gt; driver is still considered experimental for Nvidia Turing and Ampere GPUs. Therefore it has been disabled by default on systems with these GPUs.&lt;br /&gt;
&lt;br /&gt;
Instead of using the nouveau driver we recommend using Nvidia&#039;s new openGPU driver. Install this driver by installing these following packages:&lt;br /&gt;
&lt;br /&gt;
* nvidia-open-driver-G06-signed-kmp-default&lt;br /&gt;
* kernel-firmware-nvidia-gsp-G06&lt;br /&gt;
&lt;br /&gt;
Then uncomment the &amp;lt;code&amp;gt;options nvidia&amp;lt;/code&amp;gt; line in the &amp;lt;code&amp;gt;/etc/modprobe.d/50-nvidia-default.conf&amp;lt;/code&amp;gt; file so that it looks like the following afterwards:&lt;br /&gt;
&lt;br /&gt;
 ### Enable support on *all* Turing/Ampere GPUs: Alpha Quality!&lt;br /&gt;
 options nvidia NVreg_OpenRmEnableUnsupportedGpus=1&lt;br /&gt;
&lt;br /&gt;
If you prefer using &amp;lt;code&amp;gt;nouveau&amp;lt;/code&amp;gt; driver anyway, add &amp;lt;code&amp;gt;nouveau.force_probe=1&amp;lt;/code&amp;gt; to your kernel boot parameters, and do not install the above openGPU package.&lt;br /&gt;
&lt;br /&gt;
=== Starting &amp;lt;code&amp;gt;ibus&amp;lt;/code&amp;gt; automatically under KDE Plasma ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ibus&amp;lt;/code&amp;gt; does not start automatically under KDE Plasma. This can be fixed by adding the appropriate command to the autostart section. To do that, go to System Settings, Startup and Shutdown, Autostart and there click on the Add… button, and then click on Add Application…. In the opened dialog window type &amp;lt;code&amp;gt;ibus-daemon -x&amp;lt;/code&amp;gt; into the text box and click OK. For more information see https://bugzilla.suse.com/show_bug.cgi?id=1211977.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;iotop&amp;lt;/code&amp;gt; support ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;code&amp;gt;iotop&amp;lt;/code&amp;gt;&#039;&#039;&#039; does not display values for SWAPIN and IO %.&lt;br /&gt;
&lt;br /&gt;
Since Linux kernel 5.14, either kernel boot parameter &amp;lt;code&amp;gt;delayacct&amp;lt;/code&amp;gt;  needs to be specified or &amp;lt;code&amp;gt;kernel.task_delayacct&amp;lt;/code&amp;gt; sysctl needs to be enabled.&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
&lt;br /&gt;
This section lists changes to security features in openSUSE Leap 15.6 &lt;br /&gt;
&lt;br /&gt;
=== Usage of 4096 bit RSA RPM and repository signing key ===&lt;br /&gt;
&lt;br /&gt;
We switched the RPM and repository signing key of openSUSE Leap 15.5 from 2048 bit RSA to a 4096 bit RSA key. This key was previously introduced to openSUSE Leap 15.4 users in a maintenance update. Users upgrading from older releases will need to import the new key manually as described in https://en.opensuse.org/SDB:System_upgrade#0._New_4096_bit_RSA_signing_key.&lt;br /&gt;
&lt;br /&gt;
=== Cockpit root login is disabled by default ===&lt;br /&gt;
&lt;br /&gt;
Cockpit is newly part of openSUSE Leap 15.6. However, similarly to sshd, the password-based login for root is disabled by default. Users need to manually edit &amp;lt;code&amp;gt;/etc/cockpit/disallowed-users&amp;lt;/code&amp;gt; and restart &amp;lt;code&amp;gt;cockpit.socket&amp;lt;/code&amp;gt; as described in https://news.opensuse.org/2024/04/29/try-cockpit-in-leap-rc/ to allow root login.&lt;br /&gt;
&lt;br /&gt;
== More Information and Feedback ==&lt;br /&gt;
&lt;br /&gt;
* Read the &amp;lt;code&amp;gt;README&amp;lt;/code&amp;gt; documents on the medium.&lt;br /&gt;
* View a detailed changelog information about a particular package from its RPM:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;rpm --changelog -qp FILENAME.rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
* Replace &#039;&#039;&amp;lt;code&amp;gt;FILENAME&amp;lt;/code&amp;gt;&#039;&#039; with the name of the RPM.&lt;br /&gt;
* Check the &amp;lt;code&amp;gt;ChangeLog&amp;lt;/code&amp;gt; file in the top level of the medium for a chronological log of all changes made to the updated packages.&lt;br /&gt;
* Find more information in the &amp;lt;code&amp;gt;docu&amp;lt;/code&amp;gt; directory on the medium.&lt;br /&gt;
* For additional or updated documentation, see https://doc.opensuse.org/ .&lt;br /&gt;
* For the latest product news, from openSUSE, visit https://www.opensuse.org. &lt;br /&gt;
&lt;br /&gt;
Copyright © 2024 SUSE LLC&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=FreePBX_Distribution&amp;diff=980</id>
		<title>FreePBX Distribution</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=FreePBX_Distribution&amp;diff=980"/>
		<updated>2024-08-23T23:14:37Z</updated>

		<summary type="html">&lt;p&gt;Sam: Sam moved page FreePBX Distribution to Archive:FreePBX Distribution: Archiving page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Archive:FreePBX Distribution]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Archive:FreePBX_Distribution&amp;diff=979</id>
		<title>Archive:FreePBX Distribution</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Archive:FreePBX_Distribution&amp;diff=979"/>
		<updated>2024-08-23T23:14:37Z</updated>

		<summary type="html">&lt;p&gt;Sam: Sam moved page FreePBX Distribution to Archive:FreePBX Distribution: Archiving page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FreePBX Distribution is a fully fledged VoIP server allowing complete customisation to your needs and works with most setups. It is an appliance, with a complete Linux setup and web manager to allow easy administration.&lt;br /&gt;
&lt;br /&gt;
We have implemented FreePBX 16 and Asterisk 20. This is the latest version of Asterisk and is a LTS release so will be supported well into the future with fixes (slated to be supported until 2027). This is a complete distribution and so needs to be installed on its own machine/virtual machine. We will be setting this up on a separate virtual machine rather than the main server.&lt;br /&gt;
&lt;br /&gt;
We will be configuring this system to work with the Mitel 5360 IP Phone and the Mitel 5624 VoWiFi phone so some settings are specific to the 53xx models of this phone. We will also be using Twilio as a SIP trunk so some settings are specific for this.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Download the latest FreePBX ISO image. This is currently FreePBX 15 available [https://downloads.freepbxdistro.org/ISO/SNG7-PBX-64bit-2104-1.iso here directly] or at [https://www.freepbx.org/downloads/ this website]. Please do not be phased as at the moment, we will be upgrading to FreePBX 16 once FreePBX 15 is installed.&lt;br /&gt;
* This will need burning to a DVD or writing to a USB stick. We use a USB stick and Rufus under windows to write it to a USB stick (use DD mode). This guide will cover the USB method but the CD method is very similar.&lt;br /&gt;
&lt;br /&gt;
== Booting the installation system ==&lt;br /&gt;
# Insert the USB stick or DVD into the computer.&lt;br /&gt;
# Power on the machine.&lt;br /&gt;
# Press the key to bring up the boot device menu if needed.&lt;br /&gt;
# Select the USB stick or DVD that is inserted.&lt;br /&gt;
# When the boot menu appears, select &#039;FreePBX 15 Advanced Installation&#039;.&lt;br /&gt;
# Next, select &#039;Advanced Installation with Normal Video&#039;.&lt;br /&gt;
# Next, select &#039;Advanced Install with Asterisk 17 via Standard Video&#039;. Asterisk 17 is the latest available to install from the media but we will upgrade it later. The system will now boot to the Linux installer.&lt;br /&gt;
&lt;br /&gt;
== Configuring the FreePBX installation ==&lt;br /&gt;
&lt;br /&gt;
We will be using a dedicated computer with an empty hard drive. This will be a custom installation so that we can configure the system before it is installed. This guide will show you all the main options that need to be changed - there are other options if you wish to customise the installation but this is what I will be using to install the system.&lt;br /&gt;
&lt;br /&gt;
=== Setting the date, time and time zone ===&lt;br /&gt;
&lt;br /&gt;
# Click &#039;&#039;&#039;DATE &amp;amp; TIME&#039;&#039;&#039; to select the correct time zone and set the date &amp;amp; time.&lt;br /&gt;
# In the &#039;Region:&#039; box, type or select &#039;Europe&#039;.&lt;br /&gt;
# In the &#039;City:&#039; box, change &#039;Amsterdam&#039; by typing of selecting &#039;London&#039;.&lt;br /&gt;
# If you are already connected to a network, ensure that the &#039;Network Time&#039; switch is &#039;On&#039;. This is important as this server will be used to set the times on the phones and needs accurate time to function correctly.&lt;br /&gt;
# We will configure the time servers to use ones closer to us in the UK. Click the cog icon next to the &#039;On&#039; switch.&lt;br /&gt;
# We will change the CentOS NTP servers to Google servers.  For example, double click on the first address and change &amp;lt;code&amp;gt;0.centos.pool.ntp.org&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;time1.google.com&amp;lt;/code&amp;gt;. Do this for servers 0-3 and &amp;lt;code&amp;gt;time1-4&amp;lt;/code&amp;gt;.&lt;br /&gt;
# We will add the main server IP address as a source too. This is typed in the top box and then click &#039;+&#039;.&lt;br /&gt;
# Click &#039;OK&#039;.&lt;br /&gt;
# Click &#039;Done&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Setting the keyboard layout ===&lt;br /&gt;
&lt;br /&gt;
# Click &#039;&#039;&#039;KEYBOARD&#039;&#039;&#039;.&lt;br /&gt;
# Click the &#039;+&#039; button to add a new keyboard layout. We must add the new keyboard layout before removing the one we don&#039;t want.&lt;br /&gt;
# Type &#039;UK&#039; in the search box.&lt;br /&gt;
# Click &#039;English (UK)&#039;.&lt;br /&gt;
# Click &#039;Add&#039;.&lt;br /&gt;
# Select &#039;English (US)&#039; from the list.&lt;br /&gt;
# Click the &#039;-&#039; button to remove this layout.&lt;br /&gt;
# You may test the layout in the box on the right. I usually check that the &#039;£&#039; and &#039;#&#039; symbols come up when I press these keys.&lt;br /&gt;
# Click &#039;Done&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Setting language support ===&lt;br /&gt;
&lt;br /&gt;
# Click &#039;&#039;&#039;LANGUAGE SUPPORT&#039;&#039;&#039;.&lt;br /&gt;
# Tick &#039;English (United Kingdom).&lt;br /&gt;
#* Unfortunately, we cannot deselect &#039;English (United States)&#039;.&lt;br /&gt;
# Click &#039;Done&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Setting the hard drive partitioning ===&lt;br /&gt;
&lt;br /&gt;
As this is a new install, we will be configuring FreePBX to use the whole drive. We would like to use the BtrFS file system so this is slightly different to usual.&lt;br /&gt;
&lt;br /&gt;
# Click &#039;&#039;&#039;INSTALLATION DESTINATION&#039;&#039;&#039;.&lt;br /&gt;
# Check that the hard drive we want to use has a tick on it.&lt;br /&gt;
# Under &#039;Partitioning&#039;, select &#039;I will configure partitioning&#039;.&lt;br /&gt;
# Click &#039;Done&#039;.&lt;br /&gt;
# Under &#039;New mount points will use the following partitioning scheme&#039;, change &#039;LVM&#039; to &#039;Btrfs&#039;.&lt;br /&gt;
# If there are already any partitions on the disk, you will have to select each one and click &#039;-&#039; on each one until the disk is empty.&lt;br /&gt;
# We want to use the whole drive. At the top of the list, click &#039;Click here to create them automatically&#039;. This will automatically create the correct partitions using the whole drive.&lt;br /&gt;
# Click &#039;Done&#039;.&lt;br /&gt;
# A list of what will be done during the installation will appear which you can review. If you are happy, click &#039;Accept Changes&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Disable kdump ===&lt;br /&gt;
&lt;br /&gt;
I have no use for kdump so will be disabling it.&lt;br /&gt;
&lt;br /&gt;
# Click &#039;&#039;&#039;KDUMP&#039;&#039;&#039;.&lt;br /&gt;
# Untick the &#039;Enable kdump&#039; box.&lt;br /&gt;
# Click &#039;Done&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Setting the network hostname ===&lt;br /&gt;
&lt;br /&gt;
The rest of the network settings should be OK unless you have something custom to configure. We will just be changing the hostname.&lt;br /&gt;
&lt;br /&gt;
# Click &#039;&#039;&#039;NETWORK AND HOSTNAME&#039;&#039;&#039;.&lt;br /&gt;
# In the hostname box, replace &#039;freepbx.sangoma.local&#039; to the hostname of your network (for example freepbx.freddythechick.net).&lt;br /&gt;
# Click &#039;Apply&#039;.&lt;br /&gt;
# Click &#039;Done&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Starting the installation ===&lt;br /&gt;
&lt;br /&gt;
# If there is any problems preventing installation, there will be a yellow bar at the bottom of the screen saying where the problem is and the section that has the problem will have a yellow exclamation mark. These sections will need fixing before you can continue.&lt;br /&gt;
# I have added a picture of what the screen should look like for reference once everything is configured.&lt;br /&gt;
# If you are happy with all of the settings, click &#039;Begin Installation&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Entering a root password ===&lt;br /&gt;
&lt;br /&gt;
The installation will start. While the installation continues, we need to set the root password. This will not stop the installation while you are setting this up but must be done before the installation is finished.&lt;br /&gt;
&lt;br /&gt;
# Click &#039;&#039;&#039;ROOT PASSWORD&#039;&#039;&#039;.&lt;br /&gt;
# Type a password for the root user in the &#039;Root Password:&#039; box.&lt;br /&gt;
# Retype the password in the &#039;Confirm:&#039; box.&lt;br /&gt;
# Click &#039;Done&#039;.&lt;br /&gt;
&lt;br /&gt;
This will be an internet facing machine, even more so if exposing SSH so it is &#039;&#039;&#039;HIGHLY RECOMMENDED&#039;&#039;&#039; to type a password that fills the strength bar so that it says &#039;&#039;&#039;Strong&#039;&#039;&#039;. Use a combination of uppercase letters, lowercase letters, numbers and symbols and make the password as long as you can possibly remember. Do not use common words that may be in the dictionary or names. If you do, you will be warned with a yellow bar at the bottom and will be asked to click &#039;Done&#039; again. It is &#039;&#039;&#039;HIGHLY RECOMMENDED&#039;&#039;&#039; to use a different password if you are warned of this as you will be at risk of attack.&lt;br /&gt;
&lt;br /&gt;
=== Completing the installation ===&lt;br /&gt;
&lt;br /&gt;
You will now be back at the installation screen - grab a cup of coffee and wait for the installation to finish.&lt;br /&gt;
&lt;br /&gt;
Once the installation is finished, it will say &#039;SangomaOS 7.8 is now successfully installed and ready to use! Go ahead and reboot to start using it!&#039;. Click the &#039;Reboot&#039; button and the machine will reboot to the FreePBX terminal. Remember to remove the DVD/image from the drive!&lt;br /&gt;
&lt;br /&gt;
== First run of the web interface ==&lt;br /&gt;
&lt;br /&gt;
# Open a browser on a machine on the same network and go to the IP address of the machine. For example, if the machine is at &amp;lt;code&amp;gt;192.168.1.45&amp;lt;/code&amp;gt;, type &amp;lt;code&amp;gt;http://192.168.1.45&amp;lt;/code&amp;gt; into the address bar. If you are not sure of the address, login to the server as root and it will display the IP address of the machine. This is the first time of using the web interface so we need to set up a few items. Ignore any warnings about the server certificate - this can be set up later.&lt;br /&gt;
# Type a username into the &#039;&#039;&#039;Username&#039;&#039;&#039; field. Avoid common usernames, such as admin and user as these are easily guessed if your server is attacked.&lt;br /&gt;
# Type a password into the &#039;&#039;&#039;Password&#039;&#039;&#039; and &#039;&#039;&#039;Confirm Password&#039;&#039;&#039; fields. Make sure this is strong, especially if you plan to make the admin pages web facing at a latter date.&lt;br /&gt;
# Type an e-mail address into the &#039;&#039;&#039;Notifications Email address&#039;&#039;&#039; field. This is used if there are any critical errors on the server and to inform you of automatic system updates.&lt;br /&gt;
# You can change the &#039;&#039;&#039;System Identifier&#039;&#039;&#039; to something else if you like, this is especially handy if managing more than one FreePBX server.&lt;br /&gt;
# Choose your settings to enable automatic updates as you would like for your system.&lt;br /&gt;
# When done, click &#039;Setup System&#039; in the bottom right hand corner.&lt;br /&gt;
# This will take you to the home page for the server. To administer the system, click &#039;FreePBX Administration&#039; and log in with the details you typed just now.&lt;br /&gt;
# You will now be asked if you would like to activate the system with Sangoma. This is recommended to activate some of the modules we will be using later. Click &#039;Activate&#039;.&lt;br /&gt;
# Type your e-mail address. If you already have an e-mail account with Sangoma, wait a few seconds and type your password when the box comes up. Fill in any missing details if needed then click &#039;Continue&#039;. If you don&#039;t already have an account, you will have to fill in your details and click &#039;Create&#039;.&lt;br /&gt;
# Under &#039;New Activation&#039;, type a location and then click &#039;Activate&#039;. If you are re-installing an already activated system, you can go to &#039;Existing Deployment&#039; and type the deployment number already activated there.&lt;br /&gt;
# Once you have clicked &#039;Activate&#039;, it will then display a deployment number. This means it is successfully deployed. The deployment number can be displayed later if needed.&lt;br /&gt;
# Click &#039;Skip&#039; on the module updates for now as we need to set up the server first.&lt;br /&gt;
# Leave &#039;&#039;&#039;Sound Prompts Language&#039;&#039;&#039; as &#039;English (United Kingdom)&#039; or change this from the drop down menu if wrong.&lt;br /&gt;
# Leave &#039;&#039;&#039;System Language&#039;&#039;&#039; as &#039;English (United Kingdom)&#039; or change to this from the drop down menu if wrong.&lt;br /&gt;
# The &#039;&#039;&#039;Timezone&#039;&#039;&#039; option should already be correct from our installation. If not, it can be corrected here to &#039;Europe/London&#039;.&lt;br /&gt;
# Click &#039;Submit&#039; in the bottom left hand corner. It will take a while as it is starting to setup the system - be patient!&lt;br /&gt;
# Unless you want to set up the firewall, click &#039;Abort&#039;.&lt;br /&gt;
# You may get a few adverts after this - click &#039;Not Now&#039; to skip them.&lt;br /&gt;
# Your system is now basically set up - you will be presented with the dashboard.&lt;br /&gt;
# If there is a red &#039;Apply Now&#039; button in the top right hand corner, press this to configure the system with the changes just implemented.&lt;br /&gt;
&lt;br /&gt;
== Updating the server ==&lt;br /&gt;
&lt;br /&gt;
=== Updating using CentOS system updates (OPTIONAL) ===&lt;br /&gt;
&lt;br /&gt;
The FreePBX distribution is based on CentOS 7.8, however, FreePBX very rarely, if ever, provide updates to the system unless they upgrade the distribution. You can configure the system to update using CentOS repositories for a more up-to-date and secure system.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: If you are using anything the uses kernel modules (i.e. DAHDI modules), please do not use this method to update - this will cause the modules to break as they rely on the kernel supplied to operate.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I do not use anything that relies on the kernel so shall be applying these updates.&lt;br /&gt;
&lt;br /&gt;
==== Add the CentOS 7 update repository ====&lt;br /&gt;
&lt;br /&gt;
* At the terminal, type the following command:&lt;br /&gt;
 yum-config-manager --add-repo https://www.mirrorservice.org/sites/mirror.centos.org/7/updates/x86_64/&lt;br /&gt;
* We need to add the GPG key for this repository to be trusted. Type the following command:&lt;br /&gt;
 gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7&lt;br /&gt;
You should see a key displayed.&lt;br /&gt;
* Import the key so the system trusts it, type:&lt;br /&gt;
 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7&lt;br /&gt;
* We now want to clear the yum cache so that it picks up the new repository. Type:&lt;br /&gt;
 yum clean all&lt;br /&gt;
* You can now follow the next step to update the system.&lt;br /&gt;
&lt;br /&gt;
=== General updates ===&lt;br /&gt;
&lt;br /&gt;
As with any Linux distribution, from time to time there are updates to the system. This will show you how to check these and install them.&lt;br /&gt;
&lt;br /&gt;
# Login to the system at the terminal or SSH as root.&lt;br /&gt;
# Type &amp;lt;code&amp;gt;yum update&amp;lt;/code&amp;gt;.&lt;br /&gt;
# After downloading the update lists from the internet, a list may be shown showing the latest updates available. If &amp;lt;code&amp;gt;No Packages marked for Update&amp;lt;/code&amp;gt; is shown, there are no updates available right now and you can continue to the next step.&lt;br /&gt;
# If there are updates offered, type &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; to accept the changes. The updates will then be downloaded and installed. Some packages take a long time to install and the system will look like it has hung. Be patient, they will eventually install.&lt;br /&gt;
# It is recommended that once the update is finished, you reboot the machine so that the updates are applied. Type &amp;lt;code&amp;gt;reboot&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Updating FreePBX modules ===&lt;br /&gt;
&lt;br /&gt;
# From the dashboard, on the menu bar, go to &#039;&#039;&#039;Admin &amp;gt; Module Admin&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;Check Online&#039; to check the internet for updated modules.&lt;br /&gt;
# Once done, click &#039;Upgrade all&#039; on the right-hand side to mark all modules for update.&lt;br /&gt;
# Click &#039;Process&#039; to start updating the modules.&lt;br /&gt;
# You will be presented with a list of modules to be updated. Scroll to the bottom and click &#039;Confirm&#039;&lt;br /&gt;
# Some updates take a very long time to complete, please be patient! Avoid refreshing or going back or the server could be left in an inconsistent state.&lt;br /&gt;
# Once the current updates are complete, press &#039;Return&#039; to be taken back to the Module Admin screen.&lt;br /&gt;
# Click the red &#039;Apply Config&#039; button at the top right of the screen.&lt;br /&gt;
# Some updates rely on other packages to be updated first. Keep cycling through these steps until there are no more packages to update.&lt;br /&gt;
&lt;br /&gt;
=== Upgrading to FreePBX 16 ===&lt;br /&gt;
&lt;br /&gt;
At the moment, FreePBX 16 is not available separately so we need to upgrade to FreePBX 16 through FreePBX 15. This can only be done once the system is updated. The biggest change of this upgrade is now supporting the modern PHP 7.4 instead of the now legacy and unsupported PHP 5.6.&lt;br /&gt;
&lt;br /&gt;
# From the dashboard, on the menu bar, go to &#039;&#039;&#039;Admin &amp;gt; Module Admin&#039;&#039;&#039;.&lt;br /&gt;
# Click &#039;Check Online&#039; to check the internet for updated modules.&lt;br /&gt;
# Under the &#039;Admin&#039; section, look for a module called &#039;PBX Upgrader&#039;.&lt;br /&gt;
# Click the &amp;gt; to expand the entry.&lt;br /&gt;
# Change &#039;No Action&#039; to &#039;Download and Install&#039;.&lt;br /&gt;
# Go to the top of the page and on the right-hand side, click &#039;Process&#039;.&lt;br /&gt;
# Click &#039;Confirm&#039; to install the module.&lt;br /&gt;
# Once it has completed, press &#039;Return&#039; to be taken back to the Module Admin screen.&lt;br /&gt;
# Click the red &#039;Apply Config&#039; button at the top right of the screen.&lt;br /&gt;
# On the menu bar, go to &#039;&#039;&#039;Admin &amp;gt; 15 to 16 Upgrade Tool&#039;&#039;&#039;.&lt;br /&gt;
# Click the &#039;Check the requirements!&#039; button.&lt;br /&gt;
# Once it has checked, if all is well, click the &#039;Proceed to the upgrade process&#039;. If anything comes back with an error, this will need fixing before proceeding.&lt;br /&gt;
# Although you have not changed the system yet, it may complain about not using standard repositories. Under &#039;Non-standard Repository Servers&#039;, leave as &#039;Reset the repos to the defaults.&lt;br /&gt;
# Click &#039;Next&#039;.&lt;br /&gt;
# Fill out any details you would like for the survey (this is optional), or press skip.&lt;br /&gt;
# Read the warning message and then press &#039;OK&#039; when ready to upgrade.&lt;br /&gt;
# Please be patient, ignore any error messages and do not think the system has hung, this process can take a long time to complete. If the webpage does fail during the upgrade and you cannot access the progress of the upgrade, go to the terminal and type &amp;lt;code&amp;gt;tails -f /var/log/pbx/freepbx16-upgrade.log&amp;lt;/code&amp;gt; which should allow you to follow the update. Once done, return to the dashboard.&lt;br /&gt;
# Now is a good time to once again reboot the system to apply all the changes.&lt;br /&gt;
# Once rebooted, check for module updates as per previous section.&lt;br /&gt;
&lt;br /&gt;
=== Upgrading to the latest Asterisk version ===&lt;br /&gt;
&lt;br /&gt;
Once all the updates have been installed on the distribution, we can upgrade the version of Asterisk to the Asterisk 18 which is the latest version as of writing.&lt;br /&gt;
&lt;br /&gt;
# Login to the system at the terminal or SSH as root.&lt;br /&gt;
# From the terminal, type &amp;lt;code&amp;gt;asterisk-version-switch&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Select the number next to the version that you would like to install - e.g. &amp;lt;code&amp;gt;7&amp;lt;/code&amp;gt; for Asterisk 18 then hit enter.&lt;br /&gt;
# Wait for the script to run through upgrading Asterisk.&lt;br /&gt;
# When returned to the terminal, restart the machine to apply the new changes.&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.6&amp;diff=978</id>
		<title>OpenSUSE Leap 15.6</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=OpenSUSE_Leap_15.6&amp;diff=978"/>
		<updated>2024-08-17T22:48:06Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Previous supported versions (at time of release) */ Corrected date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Linux distribution my server is based on. More information is available [https://www.opensuse.org/ here].&lt;br /&gt;
&lt;br /&gt;
If you are looking to install openSUSE, there are more details in [[obtaining openSUSE Leap 15.6]].&lt;br /&gt;
&lt;br /&gt;
== Changes to openSUSE ==&lt;br /&gt;
&lt;br /&gt;
=== Closing the Gap ===&lt;br /&gt;
&lt;br /&gt;
Starting with Leap 42.1, work commenced to align openSUSE Leap&#039;s code using SUSE Enterprise Linux as the base code. This [https://www.suse.com/c/closing-the-leap-gap-src/ Closing the Leap Gap] project has finally taken shape in openSUSE 15.3 with this release using SUSE Linux Enterprise packages where possible. You will notice this with the additional update repositories that are added in this release. This will allow stable releases to be built based on the rock solid reliability of SUSE Linux Enterprise.&lt;br /&gt;
&lt;br /&gt;
Releases are now in line with SUSE Enterprise Linux, with openSUSE 15.4, openSUSE 15.5 and openSUSE 15.6 now expected to align with the SUSE Enterprise Linux releases instead of the anticipated jump to openSUSE 16.0 as would have happened before.&lt;br /&gt;
&lt;br /&gt;
32-bit versions are no longer available, only 64-bit (x86_64) now. SUSE Enterprise Linux has not supported 32-bit for a long time and being more in line with SUSE Enterprise Linux, openSUSE now shares this trait. Most modern CPU&#039;s now support 64-bit (Intel Pentium 4&#039;s with the Prescott 2M core from 2005 onwards support x86_64). The rolling release, [[openSUSE Tumbleweed]] still supports 32-bit versions if needed.&lt;br /&gt;
&lt;br /&gt;
=== Last 15.x Release ===&lt;br /&gt;
&lt;br /&gt;
This is expected to be the last release in the 15.x branch. The next version of openSUSE Leap is expected to be 16.0 with some large changes to how the operating system operates expected.&lt;br /&gt;
&lt;br /&gt;
== Installation notes/Known Issues ==&lt;br /&gt;
&lt;br /&gt;
Due to the Closing the Leap Gap Project, there have been some major changes within the system that have presented issues while installing this version.&lt;br /&gt;
&lt;br /&gt;
* If upgrading, check the &amp;quot;Unneeded Packages&amp;quot; category in YaST once upgraded to remove any lingering unneeded packages from the previous version.&lt;br /&gt;
* MariaDB now uses system authentication for the root user - just login as root then type &amp;lt;code&amp;gt;mariadb&amp;lt;/code&amp;gt;. You will be logged in automatically. This differs from before where the root password needed setting before you could use it.&lt;br /&gt;
* To enable TLS in Apache, the following flags need adding to &amp;lt;code&amp;gt;sysconfig&amp;lt;/code&amp;gt;. Edit &amp;lt;code&amp;gt;/etc/sysconfig/apache2&amp;lt;/code&amp;gt; and edit this line:&amp;lt;br&amp;gt;&lt;br /&gt;
 APACHE_SERVER_FLAGS=&amp;quot;SSL HTTP2&amp;quot;&lt;br /&gt;
* YaST does not prompt for a root user password for Samba as previous versions did. This can be set up manually with &amp;lt;code&amp;gt;smbpasswd -a root&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;samba-ad-dc&amp;lt;/code&amp;gt; was removed in the previous release. It was removed from SuSE Linux 15 SP5 as it was only a technical preview so does not appear in openSUSE Leap 15.5. This is important if you implemented AD DC in previous versions.&lt;br /&gt;
&lt;br /&gt;
== Release notes ==&lt;br /&gt;
&lt;br /&gt;
[[openSUSE Leap 15.6 Release Notes|Release Notes]]&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
openSUSE Leap 15.6 was released on 12th June 2024. It is an open-source distribution and is free of charge. It is developed by the community and sponsored by [https://www.eqtgroup.com/ EQT Partners] (formally Micro Focus and Novell).&lt;br /&gt;
&lt;br /&gt;
== Previous supported versions (at time of release) ==&lt;br /&gt;
&lt;br /&gt;
* [[openSUSE Leap 15.5]] (Supported until 31st December 2024)&lt;br /&gt;
* [[openSUSE Tumbleweed]] (Rolling release)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:openSUSE Leap 15.6 webpage.png|center|400px]]&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=977</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=977"/>
		<updated>2024-08-13T23:52:43Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Finish configuring LocalSettings.php */ Added extra option for ParserFunctions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entirely on the English Wikipedia, but should be quite relevant for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-&amp;lt;date&amp;gt;-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
* The following extra extensions need to be downloaded, extracted and dropped in the extensions folder:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MassMessage MassMessage]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:TemplateStyles TemplateStyles]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:JsonConfig JsonConfig]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MobileFrontend MobileFrontend]&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving database to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the database, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a separate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
*** ParserFunctions&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed successfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
&lt;br /&gt;
=== Finish configuring LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Open LocalSettings.php in a text editor&lt;br /&gt;
* Add a line to enable a favicon:&lt;br /&gt;
 $wgFavicon = &amp;quot;$wgResourceBasePath/resources/assets/&amp;lt;logoimage.svg&amp;gt;&amp;quot;;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgEnableUserEmail&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;$wgEmergencyContact&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$wgPasswordSender&amp;lt;/code&amp;gt; with your email address between the quote marks&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgLocaltimezone&amp;lt;/code&amp;gt; from UTC to your correct PHP time zone - in our case, &amp;lt;code&amp;gt;Europe/London&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
This stops user accounts being created and prevents editing by anyone other than yourself.&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadSkin ( &#039;Vector&#039; );&amp;lt;/code&amp;gt; the following:&lt;br /&gt;
 $wgDefaultSkin = &#039;vector-2022&#039;;&lt;br /&gt;
This enables the modern Vector 2022 skin&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;JsonConfig&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgJsonConfigEnableLuaSupport = true; // required to use JsonConfig in Lua&lt;br /&gt;
 $wgJsonConfigModels[&#039;Tabular.JsonConfig&#039;] = &#039;JsonConfig\JCTabularContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.tab&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.tab$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigModels[&#039;Map.JsonConfig&#039;] = &#039;JsonConfig\JCMapDataContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.map&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.map$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigInterwikiPrefix = &amp;quot;commons&amp;quot;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Math&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgDefaultUserOptions[&#039;math&#039;] = &#039;mathml&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;MobileFrontend&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgMFAutodetectMobileView = true;&lt;br /&gt;
 $wgMFDefaultSkinClass = &#039;SkinMinerva&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;ParserFunctions&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgPFEnableStringFunctions = true;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Scribunto&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgScribuntoDefaultEngine = &#039;luastandalone&#039;;&lt;br /&gt;
 $wgScribuntoEngineConf[&#039;luastandalone&#039;][&#039;cpuLimit&#039;] = &#039;60&#039;; # Allows lua scripts to run for 60 seconds - needed during import&lt;br /&gt;
* Add the following block at the end (leave commented out until needed for debugging for security and comment back out once debugging finished):&lt;br /&gt;
 # Show PHP exceptions (only enable on error)&lt;br /&gt;
 #$wgShowExceptionDetails = true;&lt;br /&gt;
* Add the following block at the end - this allows larger modules to be uploaded without errors:&lt;br /&gt;
 $wgMaxArticleSize = 4096;       # Size in kb&lt;br /&gt;
 $wgAPIMaxResultSize = 4096000;  # Size in b&lt;br /&gt;
&lt;br /&gt;
Go back to the website and check that it is still functional. If you are greeted by a blank page, the most common reason is a missing &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; at the end of a line - all lines must end with a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=976</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=976"/>
		<updated>2024-08-13T23:49:26Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Install Mediawiki */ Added ParserFunctions to extensions list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entirely on the English Wikipedia, but should be quite relevant for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-&amp;lt;date&amp;gt;-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
* The following extra extensions need to be downloaded, extracted and dropped in the extensions folder:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MassMessage MassMessage]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:TemplateStyles TemplateStyles]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:JsonConfig JsonConfig]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MobileFrontend MobileFrontend]&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving database to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the database, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a separate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
*** ParserFunctions&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed successfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
&lt;br /&gt;
=== Finish configuring LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Open LocalSettings.php in a text editor&lt;br /&gt;
* Add a line to enable a favicon:&lt;br /&gt;
 $wgFavicon = &amp;quot;$wgResourceBasePath/resources/assets/&amp;lt;logoimage.svg&amp;gt;&amp;quot;;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgEnableUserEmail&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;$wgEmergencyContact&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$wgPasswordSender&amp;lt;/code&amp;gt; with your email address between the quote marks&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgLocaltimezone&amp;lt;/code&amp;gt; from UTC to your correct PHP time zone - in our case, &amp;lt;code&amp;gt;Europe/London&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
This stops user accounts being created and prevents editing by anyone other than yourself.&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadSkin ( &#039;Vector&#039; );&amp;lt;/code&amp;gt; the following:&lt;br /&gt;
 $wgDefaultSkin = &#039;vector-2022&#039;;&lt;br /&gt;
This enables the modern Vector 2022 skin&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;JsonConfig&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgJsonConfigEnableLuaSupport = true; // required to use JsonConfig in Lua&lt;br /&gt;
 $wgJsonConfigModels[&#039;Tabular.JsonConfig&#039;] = &#039;JsonConfig\JCTabularContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.tab&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.tab$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigModels[&#039;Map.JsonConfig&#039;] = &#039;JsonConfig\JCMapDataContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.map&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.map$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigInterwikiPrefix = &amp;quot;commons&amp;quot;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Math&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgDefaultUserOptions[&#039;math&#039;] = &#039;mathml&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;MobileFrontend&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgMFAutodetectMobileView = true;&lt;br /&gt;
 $wgMFDefaultSkinClass = &#039;SkinMinerva&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Scribunto&#039; );&amp;lt;/code&amp;gt;&lt;br /&gt;
 $wgScribuntoDefaultEngine = &#039;luastandalone&#039;;&lt;br /&gt;
 $wgScribuntoEngineConf[&#039;luastandalone&#039;][&#039;cpuLimit&#039;] = &#039;60&#039;; # Allows lua scripts to run for 60 seconds - needed during import&lt;br /&gt;
* Add the following block at the end (leave commented out until needed for debugging for security and comment back out once debugging finished):&lt;br /&gt;
 # Show PHP exceptions (only enable on error)&lt;br /&gt;
 #$wgShowExceptionDetails = true;&lt;br /&gt;
* Add the following block at the end - this allows larger modules to be uploaded without errors:&lt;br /&gt;
 $wgMaxArticleSize = 4096;       # Size in kb&lt;br /&gt;
 $wgAPIMaxResultSize = 4096000;  # Size in b&lt;br /&gt;
&lt;br /&gt;
Go back to the website and check that it is still functional. If you are greeted by a blank page, the most common reason is a missing &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; at the end of a line - all lines must end with a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=975</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=975"/>
		<updated>2024-08-13T19:53:05Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Finish configuring LocalSettings.php */ Added large article part to LocalSettings.php&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entirely on the English Wikipedia, but should be quite relevant for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-&amp;lt;date&amp;gt;-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
* The following extra extensions need to be downloaded, extracted and dropped in the extensions folder:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MassMessage MassMessage]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:TemplateStyles TemplateStyles]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:JsonConfig JsonConfig]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MobileFrontend MobileFrontend]&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving database to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the database, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a separate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed successfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
&lt;br /&gt;
=== Finish configuring LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Open LocalSettings.php in a text editor&lt;br /&gt;
* Add a line to enable a favicon:&lt;br /&gt;
 $wgFavicon = &amp;quot;$wgResourceBasePath/resources/assets/&amp;lt;logoimage.svg&amp;gt;&amp;quot;;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgEnableUserEmail&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;$wgEmergencyContact&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$wgPasswordSender&amp;lt;/code&amp;gt; with your email address between the quote marks&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgLocaltimezone&amp;lt;/code&amp;gt; from UTC to your correct PHP time zone - in our case, &amp;lt;code&amp;gt;Europe/London&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
This stops user accounts being created and prevents editing by anyone other than yourself.&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadSkin ( &#039;Vector&#039; );&amp;lt;/code&amp;gt; the following:&lt;br /&gt;
 $wgDefaultSkin = &#039;vector-2022&#039;;&lt;br /&gt;
This enables the modern Vector 2022 skin&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;JsonConfig&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgJsonConfigEnableLuaSupport = true; // required to use JsonConfig in Lua&lt;br /&gt;
 $wgJsonConfigModels[&#039;Tabular.JsonConfig&#039;] = &#039;JsonConfig\JCTabularContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.tab&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.tab$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigModels[&#039;Map.JsonConfig&#039;] = &#039;JsonConfig\JCMapDataContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.map&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.map$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigInterwikiPrefix = &amp;quot;commons&amp;quot;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Math&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgDefaultUserOptions[&#039;math&#039;] = &#039;mathml&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;MobileFrontend&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgMFAutodetectMobileView = true;&lt;br /&gt;
 $wgMFDefaultSkinClass = &#039;SkinMinerva&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Scribunto&#039; );&amp;lt;/code&amp;gt;&lt;br /&gt;
 $wgScribuntoDefaultEngine = &#039;luastandalone&#039;;&lt;br /&gt;
 $wgScribuntoEngineConf[&#039;luastandalone&#039;][&#039;cpuLimit&#039;] = &#039;60&#039;; # Allows lua scripts to run for 60 seconds - needed during import&lt;br /&gt;
* Add the following block at the end (leave commented out until needed for debugging for security and comment back out once debugging finished):&lt;br /&gt;
 # Show PHP exceptions (only enable on error)&lt;br /&gt;
 #$wgShowExceptionDetails = true;&lt;br /&gt;
* Add the following block at the end - this allows larger modules to be uploaded without errors:&lt;br /&gt;
 $wgMaxArticleSize = 4096;       # Size in kb&lt;br /&gt;
 $wgAPIMaxResultSize = 4096000;  # Size in b&lt;br /&gt;
&lt;br /&gt;
Go back to the website and check that it is still functional. If you are greeted by a blank page, the most common reason is a missing &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; at the end of a line - all lines must end with a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=974</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=974"/>
		<updated>2024-08-12T02:53:12Z</updated>

		<summary type="html">&lt;p&gt;Sam: Spell checked&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entirely on the English Wikipedia, but should be quite relevant for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-&amp;lt;date&amp;gt;-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
* The following extra extensions need to be downloaded, extracted and dropped in the extensions folder:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MassMessage MassMessage]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:TemplateStyles TemplateStyles]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:JsonConfig JsonConfig]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MobileFrontend MobileFrontend]&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving database to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the database, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a separate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed successfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
&lt;br /&gt;
=== Finish configuring LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Open LocalSettings.php in a text editor&lt;br /&gt;
* Add a line to enable a favicon:&lt;br /&gt;
 $wgFavicon = &amp;quot;$wgResourceBasePath/resources/assets/&amp;lt;logoimage.svg&amp;gt;&amp;quot;;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgEnableUserEmail&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;$wgEmergencyContact&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$wgPasswordSender&amp;lt;/code&amp;gt; with your email address between the quote marks&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgLocaltimezone&amp;lt;/code&amp;gt; from UTC to your correct PHP time zone - in our case, &amp;lt;code&amp;gt;Europe/London&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
This stops user accounts being created and prevents editing by anyone other than yourself.&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadSkin ( &#039;Vector&#039; );&amp;lt;/code&amp;gt; the following:&lt;br /&gt;
 $wgDefaultSkin = &#039;vector-2022&#039;;&lt;br /&gt;
This enables the modern Vector 2022 skin&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;JsonConfig&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgJsonConfigEnableLuaSupport = true; // required to use JsonConfig in Lua&lt;br /&gt;
 $wgJsonConfigModels[&#039;Tabular.JsonConfig&#039;] = &#039;JsonConfig\JCTabularContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.tab&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.tab$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigModels[&#039;Map.JsonConfig&#039;] = &#039;JsonConfig\JCMapDataContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.map&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.map$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigInterwikiPrefix = &amp;quot;commons&amp;quot;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Math&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgDefaultUserOptions[&#039;math&#039;] = &#039;mathml&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;MobileFrontend&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgMFAutodetectMobileView = true;&lt;br /&gt;
 $wgMFDefaultSkinClass = &#039;SkinMinerva&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Scribunto&#039; );&amp;lt;/code&amp;gt;&lt;br /&gt;
 $wgScribuntoDefaultEngine = &#039;luastandalone&#039;;&lt;br /&gt;
 $wgScribuntoEngineConf[&#039;luastandalone&#039;][&#039;cpuLimit&#039;] = &#039;60&#039;; # Allows lua scripts to run for 60 seconds - needed during import&lt;br /&gt;
* Add the following block at the end (leave commented out until needed for debugging for security and comment back out once debugging finished):&lt;br /&gt;
 # Show PHP exceptions (only enable on error)&lt;br /&gt;
 #$wgShowExceptionDetails = true;&lt;br /&gt;
&lt;br /&gt;
Go back to the website and check that it is still functional. If you are greeted by a blank page, the most common reason is a missing &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; at the end of a line - all lines must end with a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=973</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=973"/>
		<updated>2024-08-12T02:48:17Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Downloading and installing MediaWiki */ Added extra extensions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entierly on the English Wikipedia, but should be quite relevent for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preperation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-(date)-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
* The following extra extensions need to be downloaded, extracted and dropped in the extensions folder:&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MassMessage MassMessage]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:TemplateStyles TemplateStyles]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:JsonConfig JsonConfig]&lt;br /&gt;
** [https://www.mediawiki.org/wiki/Extension:MobileFrontend MobileFrontend]&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving databse to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the databse, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a seperate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed sucessfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
&lt;br /&gt;
=== Finish configuring LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Open LocalSettings.php in a text editor&lt;br /&gt;
* Add a line to enable a favicon:&lt;br /&gt;
 $wgFavicon = &amp;quot;$wgResourceBasePath/resources/assets/&amp;lt;logoimage.svg&amp;gt;&amp;quot;;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgEnableUserEmail&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;$wgEmergencyContact&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$wgPasswordSender&amp;lt;/code&amp;gt; with your email address between the quote marks&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgLocaltimezone&amp;lt;/code&amp;gt; from UTC to your correct PHP timezone - in our case, &amp;lt;code&amp;gt;Europe/London&amp;lt;/code&amp;gt;&lt;br /&gt;
* Underneath &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&amp;lt;/code&amp;gt;, add the following&lt;br /&gt;
 $wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
This stops user accounts being created and prevents editing by anyone other than yourself.&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadSkin ( &#039;Vector&#039; );&amp;lt;/code&amp;gt; the following:&lt;br /&gt;
 $wgDefaultSkin = &#039;vector-2022&#039;;&lt;br /&gt;
This enables the modern Vector 2022 skin&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;JsonConfig&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgJsonConfigEnableLuaSupport = true; // required to use JsonConfig in Lua&lt;br /&gt;
 $wgJsonConfigModels[&#039;Tabular.JsonConfig&#039;] = &#039;JsonConfig\JCTabularContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.tab&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.tab$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigModels[&#039;Map.JsonConfig&#039;] = &#039;JsonConfig\JCMapDataContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.map&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.map$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigInterwikiPrefix = &amp;quot;commons&amp;quot;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Math&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgDefaultUserOptions[&#039;math&#039;] = &#039;mathml&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;MobileFrontend&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgMFAutodetectMobileView = true;&lt;br /&gt;
 $wgMFDefaultSkinClass = &#039;SkinMinerva&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Scribunto&#039; );&amp;lt;/code&amp;gt;&lt;br /&gt;
 $wgScribuntoDefaultEngine = &#039;luastandalone&#039;;&lt;br /&gt;
 $wgScribuntoEngineConf[&#039;luastandalone&#039;][&#039;cpuLimit&#039;] = &#039;60&#039;; # Allows lua scripts to run for 60 seconds - needed during import&lt;br /&gt;
* Add the following block at the end (leave commented out until needed for debugging for security and comment back out once debugging finished):&lt;br /&gt;
 # Show PHP exceptions (only enable on error)&lt;br /&gt;
 #$wgShowExceptionDetails = true;&lt;br /&gt;
&lt;br /&gt;
Go back to the website and check that it is still functional. If you are greeted by a blank page, the most common reason is a missing &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; at the end of a line - all lines must end with a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=972</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=972"/>
		<updated>2024-08-12T02:44:21Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Finish configuring LocalSettings.php */ Added check website&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entierly on the English Wikipedia, but should be quite relevent for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preperation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-(date)-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving databse to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the databse, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a seperate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed sucessfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
&lt;br /&gt;
=== Finish configuring LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Open LocalSettings.php in a text editor&lt;br /&gt;
* Add a line to enable a favicon:&lt;br /&gt;
 $wgFavicon = &amp;quot;$wgResourceBasePath/resources/assets/&amp;lt;logoimage.svg&amp;gt;&amp;quot;;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgEnableUserEmail&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;$wgEmergencyContact&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$wgPasswordSender&amp;lt;/code&amp;gt; with your email address between the quote marks&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgLocaltimezone&amp;lt;/code&amp;gt; from UTC to your correct PHP timezone - in our case, &amp;lt;code&amp;gt;Europe/London&amp;lt;/code&amp;gt;&lt;br /&gt;
* Underneath &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&amp;lt;/code&amp;gt;, add the following&lt;br /&gt;
 $wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
This stops user accounts being created and prevents editing by anyone other than yourself.&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadSkin ( &#039;Vector&#039; );&amp;lt;/code&amp;gt; the following:&lt;br /&gt;
 $wgDefaultSkin = &#039;vector-2022&#039;;&lt;br /&gt;
This enables the modern Vector 2022 skin&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;JsonConfig&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgJsonConfigEnableLuaSupport = true; // required to use JsonConfig in Lua&lt;br /&gt;
 $wgJsonConfigModels[&#039;Tabular.JsonConfig&#039;] = &#039;JsonConfig\JCTabularContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.tab&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.tab$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigModels[&#039;Map.JsonConfig&#039;] = &#039;JsonConfig\JCMapDataContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.map&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.map$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigInterwikiPrefix = &amp;quot;commons&amp;quot;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Math&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgDefaultUserOptions[&#039;math&#039;] = &#039;mathml&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;MobileFrontend&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgMFAutodetectMobileView = true;&lt;br /&gt;
 $wgMFDefaultSkinClass = &#039;SkinMinerva&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Scribunto&#039; );&amp;lt;/code&amp;gt;&lt;br /&gt;
 $wgScribuntoDefaultEngine = &#039;luastandalone&#039;;&lt;br /&gt;
 $wgScribuntoEngineConf[&#039;luastandalone&#039;][&#039;cpuLimit&#039;] = &#039;60&#039;; # Allows lua scripts to run for 60 seconds - needed during import&lt;br /&gt;
* Add the following block at the end (leave commented out until needed for debugging for security and comment back out once debugging finished):&lt;br /&gt;
 # Show PHP exceptions (only enable on error)&lt;br /&gt;
 #$wgShowExceptionDetails = true;&lt;br /&gt;
&lt;br /&gt;
Go back to the website and check that it is still functional. If you are greeted by a blank page, the most common reason is a missing &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; at the end of a line - all lines must end with a &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=971</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=971"/>
		<updated>2024-08-12T02:42:41Z</updated>

		<summary type="html">&lt;p&gt;Sam: /* Preperation */ Added LocalSettings.php additions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entierly on the English Wikipedia, but should be quite relevent for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preperation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-(date)-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving databse to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the databse, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a seperate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed sucessfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
&lt;br /&gt;
=== Finish configuring LocalSettings.php ===&lt;br /&gt;
&lt;br /&gt;
* Open LocalSettings.php in a text editor&lt;br /&gt;
* Add a line to enable a favicon:&lt;br /&gt;
 $wgFavicon = &amp;quot;$wgResourceBasePath/resources/assets/&amp;lt;logoimage.svg&amp;gt;&amp;quot;;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgEnableUserEmail&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
* Edit &amp;lt;code&amp;gt;$wgEmergencyContact&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$wgPasswordSender&amp;lt;/code&amp;gt; with your email address between the quote marks&lt;br /&gt;
* Change &amp;lt;code&amp;gt;$wgLocaltimezone&amp;lt;/code&amp;gt; from UTC to your correct PHP timezone - in our case, &amp;lt;code&amp;gt;Europe/London&amp;lt;/code&amp;gt;&lt;br /&gt;
* Underneath &amp;lt;code&amp;gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&amp;lt;/code&amp;gt;, add the following&lt;br /&gt;
 $wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;br /&gt;
This stops user accounts being created and prevents editing by anyone other than yourself.&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadSkin ( &#039;Vector&#039; );&amp;lt;/code&amp;gt; the following:&lt;br /&gt;
 $wgDefaultSkin = &#039;vector-2022&#039;;&lt;br /&gt;
This enables the modern Vector 2022 skin&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;JsonConfig&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgJsonConfigEnableLuaSupport = true; // required to use JsonConfig in Lua&lt;br /&gt;
 $wgJsonConfigModels[&#039;Tabular.JsonConfig&#039;] = &#039;JsonConfig\JCTabularContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.tab&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.tab$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigModels[&#039;Map.JsonConfig&#039;] = &#039;JsonConfig\JCMapDataContent&#039;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;] = [&lt;br /&gt;
         &#039;namespace&#039; =&amp;gt; 486,&lt;br /&gt;
         &#039;nsName&#039; =&amp;gt; &#039;Data&#039;,&lt;br /&gt;
         // page name must end in &amp;quot;.map&amp;quot;, and contain at least one symbol&lt;br /&gt;
         &#039;pattern&#039; =&amp;gt; &#039;/.\.map$/&#039;,&lt;br /&gt;
         &#039;license&#039; =&amp;gt; &#039;CC0-1.0&#039;,&lt;br /&gt;
         &#039;isLocal&#039; =&amp;gt; false,&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigInterwikiPrefix = &amp;quot;commons&amp;quot;;&lt;br /&gt;
 $wgJsonConfigs[&#039;Tabular.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
 $wgJsonConfigs[&#039;Map.JsonConfig&#039;][&#039;remote&#039;] = [&lt;br /&gt;
         &#039;url&#039; =&amp;gt; &#039;https://commons.wikimedia.org/w/api.php&#039;&lt;br /&gt;
 ];&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Math&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgDefaultUserOptions[&#039;math&#039;] = &#039;mathml&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;MobileFrontend&#039; );&amp;lt;/code&amp;gt;:&lt;br /&gt;
 $wgMFAutodetectMobileView = true;&lt;br /&gt;
 $wgMFDefaultSkinClass = &#039;SkinMinerva&#039;;&lt;br /&gt;
* Add under &amp;lt;code&amp;gt;wfLoadExtension( &#039;Scribunto&#039; );&amp;lt;/code&amp;gt;&lt;br /&gt;
 $wgScribuntoDefaultEngine = &#039;luastandalone&#039;;&lt;br /&gt;
 $wgScribuntoEngineConf[&#039;luastandalone&#039;][&#039;cpuLimit&#039;] = &#039;60&#039;; # Allows lua scripts to run for 60 seconds - needed during import&lt;br /&gt;
* Add the following block at the end (leave commented out until needed for debugging for security and comment back out once debugging finished):&lt;br /&gt;
 # Show PHP exceptions (only enable on error)&lt;br /&gt;
 #$wgShowExceptionDetails = true;&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=970</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=970"/>
		<updated>2024-08-12T02:28:23Z</updated>

		<summary type="html">&lt;p&gt;Sam: Saved progress so far&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entierly on the English Wikipedia, but should be quite relevent for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
You will also need the following for optimal performance:&lt;br /&gt;
&lt;br /&gt;
* ICU&lt;br /&gt;
* ImageMagick&lt;br /&gt;
* git (for revision control - not strictly necessary)&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preperation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-(date)-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving databse to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the databse, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a seperate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer. Click the &#039;set up the wiki&#039; link&lt;br /&gt;
* Choose your language then click &#039;Continue&#039;&lt;br /&gt;
* Check the Environmental checks and fix anything flagged up here. If all is OK, you will see &#039;The environment has been checked. You can install MediaWiki.&#039; in green with a tick. At this point, click &#039;Continue&#039;&lt;br /&gt;
* Enter the database configuration:&lt;br /&gt;
** Database type: MariaDB, MySQL, or compatible&lt;br /&gt;
** Database host: localhost&lt;br /&gt;
** Database name (no hyphens): enwiki&lt;br /&gt;
** Database table prefix (no hyphens): &amp;lt;leave blank&amp;gt;&lt;br /&gt;
** Database username: enwiki&lt;br /&gt;
** Database password: &amp;lt;use password generated/configured earlier&amp;gt;&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* On Database settings, leave the &#039;Use the same account as for installation&#039; box checked and click &#039;Continue&#039;&lt;br /&gt;
* On Name, enter the following settings:&lt;br /&gt;
** Name of wiki:&amp;lt;whatever you want your wiki to be called&amp;gt;&lt;br /&gt;
** Project namespace: Same as the wiki name&lt;br /&gt;
* Enter details of an account username, password and e-mail address so that you can administer the wiki later.&lt;br /&gt;
* Make sure &#039;Ask me more questions&#039; is checked and click &#039;Continue&#039;&lt;br /&gt;
* On Options, select the following:&lt;br /&gt;
** User rights profile: Account creation required (we will be further locking this down later)&lt;br /&gt;
** Copyright and license: Creative Commons Attribution-ShareAlike (this specific license &#039;&#039;&#039;MUST&#039;&#039;&#039; be selected if using Wikipedia&#039;s content)&lt;br /&gt;
** Uncheck &#039;Enable outbound email&#039;&lt;br /&gt;
** Select Vector as the default skin with the radio button&lt;br /&gt;
** Check the following extensions to enable them:&lt;br /&gt;
*** MassMessage&lt;br /&gt;
*** Cite&lt;br /&gt;
*** Math&lt;br /&gt;
*** Poem&lt;br /&gt;
*** Scribunto&lt;br /&gt;
*** TemplateStyles&lt;br /&gt;
*** JsonConfig&lt;br /&gt;
*** MobileFrontend&lt;br /&gt;
** Check &#039;Enable Instant Commons&#039;&lt;br /&gt;
** Change under Logo (icon) and Sidebar logo (optional) &amp;lt;code&amp;gt;change-your-logo.svg&amp;lt;/code&amp;gt; to the filename of the image you dropped in the resource folder earlier. You will see a preview of it underneath&lt;br /&gt;
** Ensure PHP object caching (APC, APCu or WinCache) is selected&lt;br /&gt;
* Click &#039;Continue&#039;&lt;br /&gt;
* Click &#039;Continue&#039; to finish the install&lt;br /&gt;
* Ensure the installation has completed sucessfully then click &#039;Continue&#039;&lt;br /&gt;
* A copy of the LocalSettings.php file will be downloaded automatically. This needs to be moved to the root folder of the wiki which will then make it work.&lt;br /&gt;
* Click &#039;Enter your wiki&#039;. You will be greeted with the default MediaWiki Main page if all is well.&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=969</id>
		<title>Making a English Wikipedia server</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=Making_a_English_Wikipedia_server&amp;diff=969"/>
		<updated>2024-08-12T01:55:45Z</updated>

		<summary type="html">&lt;p&gt;Sam: Saved progress so far&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.mediawiki.org MediaWiki] makes dumps of the English Wikipedia about once a month. As it is free and open source content, you can use these dumps to make your own server with the English Wikipedia content in it. As the English Wikipedia is the largest Wikipedia, it does take a while to import the dumps, but it is by no means impossible. This guide will help you long the way.&lt;br /&gt;
&lt;br /&gt;
This guide is based entierly on the English Wikipedia, but should be quite relevent for other languages too.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Here is some information of a few things you need to know before you get started. It will all be covered in the instructions below.&lt;br /&gt;
&lt;br /&gt;
=== What you need to know ===&lt;br /&gt;
&lt;br /&gt;
You will need the following to get started:&lt;br /&gt;
&lt;br /&gt;
* Apache Web Server&lt;br /&gt;
* PHP&lt;br /&gt;
* MySQL/MariaDB&lt;br /&gt;
* A dump of your Wikipedia of choice&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
&lt;br /&gt;
* Remember that some of the Wikipedia dumps are huge. You will need a lot of disk space (Around 100GB as a minimum for the download, around 500GB to do this comfortably once the database grows, remember that Wikipedia is always growing...)&lt;br /&gt;
* Prepare MySQL/MariaDB and PHP for the incoming large transactions.&lt;br /&gt;
&lt;br /&gt;
== Preperation ==&lt;br /&gt;
&lt;br /&gt;
=== Downloading the dumps ===&lt;br /&gt;
&lt;br /&gt;
# The dumps for English Wikipedia are available from [https://dumps.wikimedia.org/enwiki/ Wikimedia Dumps]. When there, you&#039;ll obviously want to select the latest date.&lt;br /&gt;
# Once there, you&#039;ll need to download the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;enwiki-(date)-pages-articles-multistream.xml.bz2&amp;lt;/code&amp;gt; (This is the latest revision of every Wikipedia page, article and template - the basics you need to get going)&lt;br /&gt;
# This is compressed with Bzip2 - if you have the space, extract it once downloaded to speed up importing.&lt;br /&gt;
&lt;br /&gt;
=== Downloading and installing MediaWiki ===&lt;br /&gt;
&lt;br /&gt;
* Download the latest version of Mediawiki from the [https://www.mediawiki.org Mediawiki] website. As were using Linux, it&#039;s better to download the .tar.gz version.&lt;br /&gt;
* Extract the archive&lt;br /&gt;
* Clear out anything not needed:&lt;br /&gt;
** Timeless and Mono skin&lt;br /&gt;
** Text files in the root, install.sh, docker...&lt;br /&gt;
* Copy the folder to the webroot&lt;br /&gt;
* Place a file in the .../resources/asset folder if using a picture for the site logo/favicon&lt;br /&gt;
&lt;br /&gt;
=== Preparing the database ===&lt;br /&gt;
&lt;br /&gt;
* Login to MariaDB as root&lt;br /&gt;
* Create the database:&lt;br /&gt;
 CREATE DATABASE enwiki;&lt;br /&gt;
* Create a user for the database:&lt;br /&gt;
 CREATE USER &#039;enwiki&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;database_password&#039;;&lt;br /&gt;
A password can be generated at [https://passwordsgenerator.net/ Password Generator Plus]. Use a length as long as possible, it doesn&#039;t need to be remembered past this configuration.&lt;br /&gt;
* Grant priveliges for the user to this database:&lt;br /&gt;
 GRANT ALL PRIVILEGES ON enwiki.* TO &#039;enwiki&#039;@&#039;localhost&#039; WITH GRANT OPTION;&lt;br /&gt;
* Exit MariaDB&lt;br /&gt;
* Restart the server&lt;br /&gt;
 systemctl restart mariadb&lt;br /&gt;
&lt;br /&gt;
This can be tweaked with different database and user names as required.&lt;br /&gt;
&lt;br /&gt;
=== Moving databse to a different hard drive ===&lt;br /&gt;
&lt;br /&gt;
Due to the sheer size of the databse, you may choose to move the MariaDB database to a different drive. MariaDB stores each database in a seperate folder by default making this easy.&lt;br /&gt;
&lt;br /&gt;
* Stop MariaDB&lt;br /&gt;
 systemctl stop mariadb&lt;br /&gt;
* Navigate to &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
* Move the &amp;lt;code&amp;gt;enwiki&amp;lt;/code&amp;gt;/database name folder to where you want the database to be stored&lt;br /&gt;
* Back in the &amp;lt;code&amp;gt;/var/lib/mysql&amp;lt;/code&amp;gt; folder, create a symlink to where you moved the folder, using the same name for the symlink&lt;br /&gt;
* Chown the databse folder where you moved it to mysql:&lt;br /&gt;
 chown -R mysql:root /path/to/folder/enwiki&lt;br /&gt;
* Restart MariaDB, check it starts with no errors&lt;br /&gt;
 systemctl start mariadb&lt;br /&gt;
&lt;br /&gt;
=== Install Mediawiki ===&lt;br /&gt;
&lt;br /&gt;
* Navigate to where your instance is installed: for example, https://enwiki.freddythechick.net/. You will be greeted by the Mediawiki installer.&lt;br /&gt;
&lt;br /&gt;
== Importing the dump ==&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Sidebar&amp;diff=968</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Sidebar&amp;diff=968"/>
		<updated>2024-07-24T19:48:14Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added navigation header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** Hardware|Hardware&lt;br /&gt;
** Thinkserver:News|News&lt;br /&gt;
&amp;lt;!-- ** User:Sam|Me! --&amp;gt;&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
* Server Version&lt;br /&gt;
**Special:Version|Mediawiki Version&lt;br /&gt;
* OpenSUSE Support List&lt;br /&gt;
**OpenSUSE Support List|OpenSUSE Support List&lt;br /&gt;
* TOOLBOX&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Sidebar&amp;diff=967</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Sidebar&amp;diff=967"/>
		<updated>2024-07-24T19:47:41Z</updated>

		<summary type="html">&lt;p&gt;Sam: Trying to space&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; * mainpage|mainpage-description&lt;br /&gt;
 * Hardware|Hardware&lt;br /&gt;
 * Thinkserver:News|News&lt;br /&gt;
&amp;lt;!-- ** User:Sam|Me! --&amp;gt;&lt;br /&gt;
 * recentchanges-url|recentchanges&lt;br /&gt;
 * randompage-url|randompage&lt;br /&gt;
* Server Version&lt;br /&gt;
**Special:Version|Mediawiki Version&lt;br /&gt;
* OpenSUSE Support List&lt;br /&gt;
**OpenSUSE Support List|OpenSUSE Support List&lt;br /&gt;
* TOOLBOX&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Sidebar&amp;diff=966</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Sidebar&amp;diff=966"/>
		<updated>2024-07-24T19:47:10Z</updated>

		<summary type="html">&lt;p&gt;Sam: Removed unneeded space&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;** mainpage|mainpage-description&lt;br /&gt;
** Hardware|Hardware&lt;br /&gt;
** Thinkserver:News|News&lt;br /&gt;
&amp;lt;!-- ** User:Sam|Me! --&amp;gt;&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
* Server Version&lt;br /&gt;
**Special:Version|Mediawiki Version&lt;br /&gt;
* OpenSUSE Support List&lt;br /&gt;
**OpenSUSE Support List|OpenSUSE Support List&lt;br /&gt;
* TOOLBOX&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=965</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=965"/>
		<updated>2024-07-07T01:05:21Z</updated>

		<summary type="html">&lt;p&gt;Sam: Removed custom font code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-talk { display:none!important; }&lt;br /&gt;
body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=964</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=964"/>
		<updated>2024-07-07T01:03:58Z</updated>

		<summary type="html">&lt;p&gt;Sam: Try adding classes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-talk { display:none!important; }&lt;br /&gt;
body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &amp;quot;Interstate Regular&amp;quot; !important;&lt;br /&gt;
  src: url(&#039;../fonts/interstate-regular.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
.mw-body,&lt;br /&gt;
.mw-headline,&lt;br /&gt;
.mw-label,&lt;br /&gt;
.mw-input,&lt;br /&gt;
.mw-body-content,&lt;br /&gt;
.mw-allpages-table-form,&lt;br /&gt;
.mw-allpages-nav&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=963</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=963"/>
		<updated>2024-07-07T01:02:37Z</updated>

		<summary type="html">&lt;p&gt;Sam: Try adding important&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-talk { display:none!important; }&lt;br /&gt;
body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &amp;quot;Interstate Regular&amp;quot; !important;&lt;br /&gt;
  src: url(&#039;../fonts/interstate-regular.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=962</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=962"/>
		<updated>2024-07-07T01:01:34Z</updated>

		<summary type="html">&lt;p&gt;Sam: Try WOFF font&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-talk { display:none!important; }&lt;br /&gt;
body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &amp;quot;Interstate Regular&amp;quot;;&lt;br /&gt;
  src: url(&#039;../fonts/interstate-regular.woff&#039;) format(&#039;woff&#039;);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=961</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=961"/>
		<updated>2024-07-07T00:54:04Z</updated>

		<summary type="html">&lt;p&gt;Sam: Shortened URL, added quotes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-talk { display:none!important; }&lt;br /&gt;
body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: &amp;quot;Interstate Regular&amp;quot;;&lt;br /&gt;
  src: url(&#039;../fonts/INTERR.ttf&#039;) format(&#039;truetype&#039;);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=960</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=960"/>
		<updated>2024-07-07T00:51:56Z</updated>

		<summary type="html">&lt;p&gt;Sam: Try URL&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-talk { display:none!important; }&lt;br /&gt;
body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: Interstate Regular;&lt;br /&gt;
  src: url(&#039;https://thinkserver.freddythechick.net/fonts/INTERR.ttf&#039;) format(&#039;truetype&#039;);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=959</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=959"/>
		<updated>2024-07-07T00:50:42Z</updated>

		<summary type="html">&lt;p&gt;Sam: Added local&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-talk { display:none!important; }&lt;br /&gt;
body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: Interstate Regular;&lt;br /&gt;
  src: local (&amp;quot;Interstate Regular&amp;quot;),&lt;br /&gt;
url(&#039;fonts/INTERR.ttf&#039;) format(&#039;truetype&#039;);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
	<entry>
		<id>https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=958</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://thinkserver.freddythechick.net/index.php?title=MediaWiki:Common.css&amp;diff=958"/>
		<updated>2024-07-07T00:48:44Z</updated>

		<summary type="html">&lt;p&gt;Sam: Try font change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
#ca-talk { display:none!important; }&lt;br /&gt;
body.page-Main_Page.action-view h1.firstHeading, body.page-Main_Page.action-submit h1.firstHeading { display: none; }&lt;br /&gt;
&lt;br /&gt;
@font-face {&lt;br /&gt;
  font-family: Interstate Regular;&lt;br /&gt;
  src: url(&#039;fonts/INTERR.ttf&#039;) format(&#039;truetype&#039;);&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Sam</name></author>
	</entry>
</feed>