https://wiki.archlinux.org/api.php?action=feedcontributions&user=ConnorBehan&feedformat=atomArchWiki - User contributions [en]2024-03-29T12:47:29ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Iwd&diff=792572Iwd2023-11-15T16:08:48Z<p>ConnorBehan: /* Connect to a network */ - Usually you are only prompted once</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Wireless networking]]<br />
[[Category:Network configuration]]<br />
[[ja:Iwd]]<br />
[[pt:Iwd]]<br />
[[ru:Iwd]]<br />
[[zh-hans:Iwd]]<br />
{{Related articles start}}<br />
{{Related|Network configuration}}<br />
{{Related|Wireless network configuration}}<br />
{{Related|wpa_supplicant}}<br />
{{Related articles end}}<br />
[https://iwd.wiki.kernel.org/ iwd] (iNet wireless daemon) is a wireless daemon for Linux written by Intel. The core goal of the project is to optimize resource utilization by not depending on any external libraries and instead utilizing features provided by the Linux Kernel to the maximum extent possible.<br />
<br />
iwd can work in standalone mode or in combination with comprehensive network managers like [[ConnMan]], [[systemd-networkd]] and [[NetworkManager#Using iwd as the Wi-Fi backend|NetworkManager]].<br />
<br />
{{Note|Do not follow the instructions on this page when using iwd via a [[network manager]] unless it is explicitly stated otherwise in that network manager's article.}}<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|iwd}} package.<br />
<br />
== Usage ==<br />
<br />
The {{Pkg|iwd}} package provides the client program {{ic|iwctl}}, the daemon {{ic|iwd}} and the Wi-Fi monitoring tool {{ic|iwmon}}.<br />
<br />
{{Aur|iwgtk}} provides a GUI front-end for iwd and an indicator (tray) icon.<br />
<br />
[[Start/enable]] {{ic|iwd.service}} so it can be controlled through the {{ic|iwctl}} command or through {{ic|iwgtk}}.<br />
<br />
{{Note|Only root and members of the {{ic|netdev}} or the {{ic|wheel}} [[user group]] are allowed to interact with ''iwd''. In order to use ''iwctl'' or ''iwgtk'', you need to [[Users and groups#Group management|add your user to one of those groups]].}}<br />
<br />
=== iwctl ===<br />
<br />
To get an interactive prompt do:<br />
<br />
$ iwctl<br />
<br />
The interactive prompt is then displayed with a prefix of {{ic|[iwd]#}}.<br />
<br />
{{Tip|<br />
* In the {{ic|iwctl}} prompt you can auto-complete commands and device names by hitting {{ic|Tab}}.<br />
* To exit the interactive prompt, send [[Wikipedia:EOF character|EOF]] by pressing {{ic|Ctrl+d}}.<br />
* You can use all commands as command line arguments without entering an interactive prompt. For example: {{ic|iwctl device wlan0 show}}.<br />
}}<br />
<br />
To list all available commands:<br />
<br />
[iwd]# help<br />
<br />
==== Connect to a network ====<br />
<br />
First, if you do not know your wireless device name, list all Wi-Fi devices:<br />
<br />
[iwd]# device list<br />
<br />
If the device or its corresponding adapter is turned off, turn it on:<br />
<br />
[iwd]# device ''device'' set-property Powered on<br />
<br />
[iwd]# adapter ''adapter'' set-property Powered on<br />
<br />
Then, to initiate a scan for networks (note that this command will not output anything):<br />
<br />
[iwd]# station ''device'' scan<br />
<br />
You can then list all available networks:<br />
<br />
[iwd]# station ''device'' get-networks<br />
<br />
Finally, to connect to a network:<br />
<br />
[iwd]# station ''device'' connect ''SSID''<br />
<br />
{{Note|For automatic IP and DNS configuration via DHCP, you have to [[#Enable built-in network configuration|manually enable]] the built-in DHCP client or configure a [[Network configuration#Network managers|standalone DHCP client]].}}<br />
{{Tip|The user interface supports autocomplete, by typing {{ic|station }} and {{ic|Tab}} {{ic|Tab}}, the available devices are displayed, type the first letters of the device and {{ic|Tab}} to complete. The same way, type {{ic|connect }} and {{ic|Tab}} {{ic|Tab}} in order to have the list of available networks displayed. Then, type the first letters of the chosen network followed by {{ic|Tab}} in order to complete the command.}} <br />
<br />
If a passphrase is required (and it is not already stored in one of the profiles that iwd automatically checks), you will be prompted to enter it. Alternatively, you can supply it as a command line argument:<br />
<br />
$ iwctl --passphrase ''passphrase'' station ''device'' connect ''SSID''<br />
<br />
{{Note|<br />
* {{ic|iwd}} automatically stores network passphrases in the {{ic|/var/lib/iwd}} directory and uses them to auto-connect in the future. See [[#Network configuration]].<br />
* To connect to a network with spaces in the SSID, the network name should be double quoted when connecting.<br />
* iwd only supports PSK pass-phrases from 8 to 63 ASCII-encoded characters. The following error message will be given if the requirements are not met: {{ic|PMK generation failed. Ensure Crypto Engine is properly configured}}.<br />
}}<br />
<br />
==== Connect to a network using WPS/WSC ====<br />
<br />
If your network is configured such that you can connect to it by pressing a button ([[Wikipedia:Wi-Fi Protected Setup]]), check first that your network device is also capable of using this setup procedure.<br />
<br />
[iwd]# wsc list<br />
<br />
Then, provided that your device appeared in the above list,<br />
<br />
[iwd]# wsc ''device'' push-button<br />
<br />
and push the button on your router. The procedure works also if the button was pushed beforehand, less than 2 minutes earlier.<br />
<br />
If your network requires to validate a PIN number to connect that way, check the {{ic|help}} command output to see how to provide the right options to the {{ic|wsc}} command.<br />
<br />
==== Disconnect from a network ====<br />
<br />
To disconnect from a network:<br />
<br />
[iwd]# station ''device'' disconnect<br />
<br />
==== Show device and connection information ====<br />
<br />
To display the details of a WiFi device, like MAC address:<br />
<br />
[iwd]# device ''device'' show<br />
<br />
To display the connection state, including the connected network of a Wi-Fi device:<br />
<br />
[iwd]# station ''device'' show<br />
<br />
==== Manage known networks ====<br />
<br />
To list networks you have connected to previously:<br />
<br />
[iwd]# known-networks list<br />
<br />
To forget a known network:<br />
<br />
[iwd]# known-networks ''SSID'' forget<br />
<br />
=== iwgtk ===<br />
<br />
Alternatively, {{Aur|iwgtk}} provides a GUI front-end through which iwd can be controlled.<br />
<br />
Running {{ic|iwgtk}} without any arguments launches the application window, which can be used to toggle your adapters and devices on/off, change their operating modes, view available networks, connect to available networks, and manage known networks.<br />
<br />
==== Indicator icon ====<br />
<br />
To launch iwgtk's indicator (tray) icon daemon, run:<br />
<br />
$ iwgtk -i<br />
<br />
If the indicator icon does not appear, then your system tray most likely lacks support for the StatusNotifierItem API, in which case you need to run a compatibility layer such as {{Aur|snixembed-git}}.<br />
<br />
The following system trays support StatusNotifierItem, and therefore work out of the box:<br />
<br />
* KDE Plasma<br />
* swaybar<br />
* xfce4-panel<br />
<br />
The following trays only support XEmbed, and therefore require {{Aur|snixembed-git}}:<br />
<br />
* AwesomeWM<br />
* i3bar<br />
<br />
==== Autostart ====<br />
<br />
The most common use case for iwgtk is to start the indicator daemon every time you log into your desktop. If your desktop environment supports the [[XDG Autostart]] standard, this should happen automatically due to the {{ic|iwgtk-indicator.desktop}} file which is placed in {{ic|/etc/xdg/autostart/}} by the AUR package.<br />
<br />
Alternatively, a systemd unit file to start the indicator daemon is provided by the AUR package. If your desktop environment supports systemd's {{ic|graphical-session.target}} unit, then iwgtk can be autostarted via systemd by [[enabling]] the {{ic|iwgtk.service}} [[user unit]].<br />
<br />
== Network configuration ==<br />
<br />
By default, ''iwd'' stores the network configuration in the directory {{ic|/var/lib/iwd}}. The configuration file is named as {{ic|''network''.''type''}}, where ''network'' is the network SSID and ''.type'' is the network type, either ''.open'', ''.psk'' or ''.8021x''. The file is used to store the encrypted {{ic|PreSharedKey}} and optionally the cleartext {{ic|Passphrase}} and can also be created by the user without invoking {{ic|iwctl}}. The file can be used for other configuration pertaining to that network SSID as well. For more settings, see {{man|5|iwd.network}}.<br />
<br />
{{Note|In string values, including identities and passwords, certain characters may be backslash-escaped. Leading spaces, \n, \r, and literal backslashes must be escaped. See {{man|5|iwd.network}}.}}<br />
<br />
=== WPA-PSK ===<br />
<br />
A minimal example file to connect to a WPA-PSK or WPA2-PSK secured network with SSID "spaceship" and passphrase "test1234":<br />
<br />
{{hc|/var/lib/iwd/spaceship.psk|2=<br />
[Security]<br />
PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295}}<br />
<br />
{{Note|The SSID of the network is used as a filename only when it contains only alphanumeric characters or one of {{ic|- _}}. If it contains any other characters, the name will instead be an {{ic|1==}}-character followed by the hex-encoded version of the SSID.}}<br />
<br />
To calculate the pre-shared key from the passphrase, one of these two methods can be used:<br />
<br />
* Enter the passphrase in cleartext in the configuration file:<br />
<br />
{{hc|/var/lib/iwd/spaceship.psk|2=<br />
[Security]<br />
Passphrase=test1234}}<br />
<br />
:The pre-shared key will be appended to the file at the first connect:<br />
<br />
{{hc|/var/lib/iwd/spaceship.psk|2=<br />
[Security]<br />
Passphrase=test1234<br />
PreSharedKey=aafb192ce2da24d8c7805c956136f45dd612103f086034c402ed266355297295}}<br />
<br />
* Or the pre-shared key can be calculated from the SSID and the passphrase using ''wpa_passphrase'' (from {{Pkg|wpa_supplicant}}) or {{AUR|wpa-psk}}. See [[wpa_supplicant#Connecting with wpa_passphrase]] for more details.<br />
<br />
=== WPA Enterprise ===<br />
<br />
==== EAP-PWD ====<br />
<br />
For connecting to a EAP-PWD protected enterprise access point you need to create a file called: {{ic|''essid''.8021x}} in the {{ic|/var/lib/iwd}} directory with the following content:<br />
<br />
{{hc|/var/lib/iwd/''essid''.8021x|2=<br />
[Security]<br />
EAP-Method=PWD<br />
EAP-Identity=''your_enterprise_email''<br />
EAP-Password=''your_password''<br />
<br />
[Settings]<br />
AutoConnect=true<br />
}}<br />
<br />
If you do not want autoconnect to the AP you can set the option to False and connect manually to the access point via {{ic|iwctl}}. The same applies to the password, if you do not want to store it plaintext leave the option out of the file and just connect to the enterprise AP.<br />
<br />
{{Note|There is no way to change priorities of different SSIDs, you may want to set {{ic|1=AutoConnect=false}} as a workaround.}}<br />
<br />
==== EAP-PEAP ====<br />
<br />
Like EAP-PWD, you also need to create a {{ic|''essid''.8021x}} file in the directory. Before you proceed to write the configuration file, this is also a good time to find out which CA certificate your organization uses. This is an example configuration file that uses MSCHAPv2 password authentication:<br />
<br />
{{hc|/var/lib/iwd/''essid''.8021x|2=<br />
[Security]<br />
EAP-Method=PEAP<br />
EAP-Identity=anonymous@realm.edu<br />
EAP-PEAP-CACert=/path/to/root.crt<br />
EAP-PEAP-ServerDomainMask=radius.realm.edu<br />
EAP-PEAP-Phase2-Method=MSCHAPV2<br />
EAP-PEAP-Phase2-Identity=johndoe@realm.edu<br />
EAP-PEAP-Phase2-Password=hunter2<br />
<br />
[Settings]<br />
AutoConnect=true<br />
}}<br />
<br />
MsCHAPv2 passwords can also be stored as a encrypted hash. The correct md4 hash can be calculated with:<br />
<br />
$ iconv -t utf16le | openssl md4 -provider legacy<br />
<br />
Insert an EOF after your password by pressing {{ic|Ctrl+d}}, do not hit {{ic|Enter}}. The resulting hash needs to be stored inside the {{ic|EAP-PEAP-Phase2-Password-Hash}} key.<br />
<br />
{{Tip|If you are planning on using ''eduroam'', see also [[#eduroam]].}}<br />
<br />
==== TTLS-PAP ====<br />
<br />
Like EAP-PWD, you also need to create a {{ic|''essid''.8021x}} file in the directory. Before you proceed to write the configuration file, this is also a good time to find out which CA certificate your organization uses. This is an example configuration file that uses PAP password authentication:<br />
<br />
{{hc|/var/lib/iwd/''essid''.8021x|2=<br />
[Security]<br />
EAP-Method=TTLS<br />
EAP-Identity=anonymous@uni-test.de<br />
EAP-TTLS-CACert=cert.pem<br />
EAP-TTLS-ServerDomainMask=*.uni-test.de<br />
EAP-TTLS-Phase2-Method=Tunneled-PAP<br />
EAP-TTLS-Phase2-Identity=user<br />
EAP-TTLS-Phase2-Password=password<br />
<br />
[Settings]<br />
AutoConnect=true<br />
}}<br />
<br />
==== eduroam ====<br />
<br />
eduroam offers a [https://cat.eduroam.org/ configuration assistant tool (CAT)], which unfortunately does not support iwd. However, the installer, which you can download by clicking on the download button then selecting your university, is just a Python script. It is easy to extract the necessary configuration options, including the certificate and server domain mask.<br />
<br />
The following table contains a mapping of iwd configuration options to eduroam CAT install script variables.<br />
<br />
{| class="wikitable<br />
! Iwd Configuration Option !! CAT Script Variable<br />
|-<br />
| ''essid'' || one of {{ic|Config.ssids}}<br />
|-<br />
| {{ic|EAP-Method}} || {{ic|Config.eap_outer}}<br />
|-<br />
| {{ic|EAP-Identity}} || {{ic|Config.anonymous_identity}}<br />
|-<br />
| {{ic|EAP-''method''-CACert}} || the content of {{ic|Config.CA}} or an absolute path to a ''.pem'' file containing {{ic|Config.CA}}<br />
|-<br />
| {{ic|EAP-''method''-ServerDomainMask}} || one of {{ic|Config.servers}}<br />
|-<br />
| {{ic|EAP-''method''-Phase2-Method}} || {{ic|Config.eap_inner}} unless it is equal to {{ic|PAP}}, in that case use instead {{ic|Tunneled-PAP}}<br />
|-<br />
| {{ic|EAP-''method''-Phase2-Identity}} || {{ic|''username''@Config.user_realm}}<br />
|}<br />
<br />
where {{ic|''method''}} is the content of {{ic|EAP-Method}} and should be either {{ic|TTLS}} or {{ic|PEAP}}. Once you have extracted all necessary information and converted them to their iwd configuration equivalent you can put them in a configuration file called {{ic|''essid''.8021x}} as explained in the preceding methods.<br />
<br />
{{Note|<br />
* {{ic|EAP-Identity}} may not be required by your eduroam provider, in which case you might have to use {{ic|anonymous@''Config.user_realm''}} in this field.<br />
* If your {{ic|EAP-''method''-ServerDomainMask}} starts with {{ic|DNS:}}, use only the part after {{ic|DNS:}}.<br />
}}<br />
<br />
==== Other cases ====<br />
<br />
More example tests can be [https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/autotests found in the test cases] of the upstream repository.<br />
<br />
== Optional configuration ==<br />
<br />
File {{ic|/etc/iwd/main.conf}} can be used for main configuration. See {{man|5|iwd.config}}.<br />
<br />
=== Disable auto-connect for a particular network ===<br />
<br />
Create / edit file {{ic|/var/lib/iwd/''network''.''type''}}. Add the following section to it:<br />
<br />
{{hc|/var/lib/iwd/spaceship.psk (for example)|2=<br />
[Settings]<br />
AutoConnect=false<br />
}}<br />
<br />
=== Disable periodic scan for available networks ===<br />
<br />
By default when {{ic|iwd}} is in disconnected state, it periodically scans for available networks. To disable periodic scan (so as to always scan manually), create / edit file {{ic|/etc/iwd/main.conf}} and add the following section to it:<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[Scan]<br />
DisablePeriodicScan=true<br />
}}<br />
<br />
=== Enable built-in network configuration ===<br />
<br />
Since version 0.19, iwd can assign IP address(es) and set up routes using a built-in DHCP client or with static configuration. It is a good alternative to [[Network configuration#Network managers|standalone DHCP clients]].<br />
<br />
To activate iwd's network configuration feature, create/edit {{ic|/etc/iwd/main.conf}} and add the following section to it:<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[General]<br />
EnableNetworkConfiguration=true<br />
}}<br />
<br />
There is also ability to set route metric with {{ic|RoutePriorityOffset}}:<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[Network]<br />
RoutePriorityOffset=300<br />
}}<br />
<br />
==== IPv6 support ====<br />
<br />
Since version 1.10, iwd supports IPv6, but it is disabled by default in versions below 2.0.<br />
Since version [https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=00baa75e963334fc3946490e554641891614c255 2.0], it is enabled by default.<br />
<br />
To disable it, add the following to the configuration file:<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[Network]<br />
EnableIPv6=false<br />
}}<br />
<br />
To enable it in version below 2.0 and higher than 1.10:<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[Network]<br />
EnableIPv6=true<br />
}}<br />
<br />
This setting is required to be enabled whether you want to use DHCPv6 or static IPv6 configuration. It can also be set on a per-network basis.<br />
<br />
==== Setting static IP address in network configuration ====<br />
<br />
Add the following section to {{ic|/var/lib/iwd/''network''.''type''}} file. For example:<br />
<br />
{{hc|/var/lib/iwd/spaceship.psk|2=<br />
[IPv4]<br />
Address=192.168.1.10<br />
Netmask=255.255.255.0<br />
Gateway=192.168.1.1<br />
Broadcast=192.168.1.255<br />
DNS=192.168.1.1<br />
}}<br />
<br />
==== Select DNS manager ====<br />
<br />
At the moment, iwd supports two DNS managers—[[systemd-resolved]] and [[resolvconf]].<br />
<br />
Add the following section to {{ic|/etc/iwd/main.conf}} for {{ic|systemd-resolved}}:<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[Network]<br />
NameResolvingService=systemd<br />
}}<br />
<br />
For {{ic|resolvconf}}:<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[Network]<br />
NameResolvingService=resolvconf<br />
}}<br />
<br />
{{Note|If not specified, [[systemd-resolved]] is used as default.}}<br />
<br />
=== Allow any user to read status information ===<br />
<br />
If you want to allow any user to read the status information, but not modify the settings, you can create the following [[D-Bus]] configuration file:<br />
<br />
{{hc|/etc/dbus-1/system.d/iwd-allow-read.conf|<nowiki><br />
<!-- Allow any user to read iwd status information. Overrides some part<br />
of /usr/share/dbus-1/system.d/iwd-dbus.conf. --><br />
<br />
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"<br />
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"><br />
<busconfig><br />
<br />
<policy context="default"><br />
<deny send_destination="net.connman.iwd"/><br />
<allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="GetAll" /><br />
<allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.Properties" send_member="Get" /><br />
<allow send_destination="net.connman.iwd" send_interface="org.freedesktop.DBus.ObjectManager" send_member="GetManagedObjects" /><br />
<allow send_destination="net.connman.iwd" send_interface="net.connman.iwd.Device" send_member="RegisterSignalLevelAgent" /><br />
<allow send_destination="net.connman.iwd" send_interface="net.connman.iwd.Device" send_member="UnregisterSignalLevelAgent" /><br />
</policy><br />
<br />
</busconfig><br />
</nowiki>}}<br />
<br />
=== Encrypted network profiles ===<br />
<br />
By default, iwd stores network credentials to the system unencrypted. Since iwd version 1.25, iwd provides experimental support for creating [https://iwd.wiki.kernel.org/profile_encryption encrypted profiles] for systems using systemd. <br />
<br />
First, create an encrypted credential. The following example uses [[systemd-creds]] and creates an encrypted credential called ''iwd-secret'' that is bound to the system's [[Trusted Platform Module]] which will be used to create encrypted profiles:<br />
<br />
# systemd-ask-password -n | systemd-creds --tpm2-device=auto -T --name=iwd-secret encrypt - /etc/credstore.encrypted/iwd-secret.cred<br />
<br />
Next, add the {{ic|LoadEncryptedCredential}} option by creating a [[drop-in file]] for the iwd service.<br />
<br />
{{hc|/etc/systemd/system/iwd.service.d/use-creds.conf|2=<br />
[Service]<br />
LoadEncryptedCredential=iwd-secret:/etc/credstore.encrypted/iwd-secret.cred<br />
}}<br />
<br />
Finally, add the {{ic|SystemdEncrypt}} option with the value being the named credential to the iwd configuration file, [[daemon-reload|reload]] the systemd manager, and [[restart]] the iwd service.<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[General]<br />
...<br />
SystemdEncrypt=iwd-secret<br />
}}<br />
<br />
{{Note|<br />
* Any profiles currently on the system will be encrypted automatically. At this point there is nothing else needed. Any future profiles will be encrypted automatically.<br />
* In the above example, the encrypted credential is implicitly bound to TPM PCR 7. Therefore, if the secure boot state changes then connecting to networks will not be possible for that booted session.<br />
}}<br />
<br />
== Troubleshooting ==<br />
<br />
=== Verbose TLS debugging ===<br />
<br />
This can be useful, if you have trouble setting up MSCHAPv2 or TTLS. You can set the following [[environment variable]] via a [[drop-in snippet]]:<br />
<br />
{{hc|/etc/systemd/system/iwd.service.d/tls-debug.conf|2=<br />
[Service]<br />
Environment=IWD_TLS_DEBUG=TRUE<br />
}}<br />
<br />
Check the iwd logs afterwards by running {{ic|journalctl -u iwd.service}} as root.<br />
<br />
=== Restarting iwd.service after boot ===<br />
<br />
On some machines, it is reported that {{ic|iwd.service}} has to be restarted to work after boot. See {{Bug|63912}} and [https://bbs.archlinux.org/viewtopic.php?id=251432 thread 251432]. This probably occurs because the Linux kernel and services start too early and ''iwd'' starts before wireless network card powers on. As a workaround, [[extend the unit]] to add a delay:<br />
<br />
[Service]<br />
ExecStartPre=/usr/bin/sleep 2<br />
<br />
Then [[reload]] the ''systemd'' manager configuration.<br />
<br />
=== Connect issues after reboot ===<br />
<br />
A low entropy pool can cause connection problems in particular noticeable after reboot. See [[Random number generation]] for suggestions to increase the entropy pool.<br />
<br />
=== Wireless device is not renamed by udev ===<br />
<br />
Since version 1.0, iwd disables predictable renaming of wireless device. It installs the following systemd network link configuration file which prevents udev from renaming the interface to {{ic|wlp#s#}}:<br />
<br />
{{hc|1=/usr/lib/systemd/network/80-iwd.link|2=<br />
[Match]<br />
Type=wlan<br />
<br />
[Link]<br />
NamePolicy=keep kernel<br />
}}<br />
<br />
As a result the wireless link name {{ic|wlan#}} is kept after boot. This resolved a race condition between ''iwd'' and [[udev]] on interface renaming as explained in [https://iwd.wiki.kernel.org/interface_lifecycle#udev_interface_renaming iwd udev interface renaming].<br />
<br />
If this results in issues try masking it with:<br />
<br />
# ln -s /dev/null /etc/systemd/network/80-iwd.link<br />
<br />
=== No DHCP in AP mode ===<br />
<br />
Clients may not receive an IP address via DHCP when connecting to ''iwd'' in AP mode. It is therefore necessary to enable network configuration by ''iwd'' on managed interfaces:<br />
<br />
{{hc|1=/etc/iwd/main.conf|2=<br />
[General]<br />
EnableNetworkConfiguration=True<br />
}}<br />
<br />
The mentioned file has to be created if it does not already exist.<br />
<br />
=== WiFi keeps disconnecting due to iwd crash ===<br />
<br />
Some users experience disconnections with WiFi, re-connecting continuously but stabilizing eventually and managing to connect. <br />
<br />
Users report crashes ([https://bbs.archlinux.org/viewtopic.php?id=273965]) of {{ic|iwd.service}} in their [[journal]]. <br />
<br />
The core issue is having multiple conflicting services for managing their network connections. Check that you do not have [[enable]]d them at the same time to fix this issue.<br />
<br />
=== Error loading client private key ===<br />
<br />
To load key files ''iwd'' requires the {{ic|pkcs8_key_parser}} [[kernel module]]. While on boot it gets loaded by {{man|8|systemd-modules-load.service}} using {{ic|/usr/lib/modules-load.d/pkcs8.conf}}, that will not be the case if {{Pkg|iwd}} has just been installed.<br />
<br />
If messages such as {{ic|Error loading client private key ''/path/to/key''}} show up in the [[journal]] when trying to connect to WPA Enterprise networks, manually load the module:<br />
<br />
# modprobe pkcs8_key_parser<br />
<br />
=== iwd keeps roaming ===<br />
<br />
iwd will roam to other known APs if the connection is too bad.<br />
<br />
This will show up in the system log as {{ic|wlan0: deauthenticating from xx:xx:xx:xx:xx:xx by local choice (Reason: 3{{=}}DEAUTH_LEAVING)}}<br />
<br />
You can see the connection signal strength with<br />
<br />
iwctl station wlan0 show | grep RSSI<br />
<br />
You can increase the threshold to allow a worse connection. RoamThreshold defaults to -70 and RoamThreshold5G to -76.<br />
<br />
{{hc|/etc/iwd/main.conf|2=<br />
[General]<br />
RoamThreshold=-75<br />
RoamThreshold5G=-80}}<br />
<br />
== See also ==<br />
<br />
* [https://iwd.wiki.kernel.org/gettingstarted Getting Started with iwd]<br />
* [https://iwd.wiki.kernel.org/networkconfigurationsettings Network Configuration Settings]<br />
* [https://git.kernel.org/pub/scm/network/wireless/iwd.git/tree/autotests More Examples for WPA Enterprise]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=237074 The IWD thread on the Arch Linux Forums]<br />
* [https://www.youtube.com/watch?v=F2Q86cphKDo 2017 Update on new WiFi daemon for Linux by Marcel Holtmann - YouTube]<br />
* [https://www.youtube.com/watch?v=QIqT2obSPDk The New Wi-Fi Experience for Linux - Marcel Holtmann, Intel - YouTube]<br />
* [https://iwd.wiki.kernel.org/ap_mode How to set up a simple access point with iwd]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Nitrokey&diff=792473Nitrokey2023-11-13T23:17:03Z<p>ConnorBehan: /* Setup */ - Link to instructions</p>
<hr />
<div>[[Category:Universal 2nd Factor]]<br />
[[ja:Nitrokey]]<br />
{{Related articles start}}<br />
{{Related|Universal 2nd Factor}}<br />
{{Related|GnuPG}}<br />
{{Related articles end}}<br />
<br />
[https://www.nitrokey.com/ Nitrokey] is an open-source USB key series used to enable the secure encryption and signing of data. The secret keys are always stored inside the Nitrokey which protects against malware (such as computer viruses) and attackers. A user-chosen PIN and a tamper-proof smart card protect the Nitrokey in case of loss and theft. The hardware and software of Nitrokey are open-source. The free software and open hardware enables independent parties to verify the security of the device. Nitrokey is supported on Microsoft Windows, macOS, Linux, and BSD. Nitrokey is developed and produced in Germany.<br />
<br />
== Software ==<br />
<br />
Packages designed to help configure Nitrokey products are {{Pkg|nitrocli}}, {{Pkg|nitrokey-app}} and {{Pkg|python-pynitrokey}}. As of 2023, only the last one supports the Nitrokey 3.<br />
<br />
For hardware encryption devices in general, it is important to have {{Pkg|gnupg}} installed. Secure login to a shell and [https://www.dongleauth.com/ various websites] are also supported by the Nitrokey 3 and Nitrokey FIDO2. For this to work, {{Pkg|libfido2}} is required, see [[Universal 2nd Factor]].<br />
<br />
== Setup ==<br />
<br />
Device nodes for a Nitrokey will be created by the udev rules which are part of the {{Pkg|libnitrokey}} package. For use by [[GnuPG]], the newly created {{ic|/dev/bus/usb/*/*}} device (as determined by {{ic|lsusb}}) must be accessible by an unprivileged user. For [[WebAuthn]], the {{ic|/dev/hidraw*}} device must also be. If they are only accessible by root, you can change the default by adding {{ic|MODE{{=}}"0666"}} to the appropriate lines in {{ic|41-nitrokey.rules}}. Instead of 41, one might need to symlink to a higher number if {{ic|50-udev-default.rules}} interferes.<br />
<br />
Nitrokeys are empty when they first arrive. The [https://docs.nitrokey.com/start/linux/openpgp-keygen-backup.html official instructions] explain how to create a new secret key and transfer it to the device. Backing up the key must be done before the transfer but only do this if you have a secure place to store the backup. The official site also has [https://docs.nitrokey.com/u2f/linux/desktop-login instructions] for how to interface with {{Pkg|sudo}} and such using {{Pkg|pam-u2f}}.<br />
<br />
== See also ==<br />
<br />
* [https://www.nitrokey.com/ Nitrokeys Official Website]<br />
* [[Wikipedia:Nitrokey|Nitrokey Wikipedia Entry]]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Nitrokey&diff=792472Nitrokey2023-11-13T22:47:41Z<p>ConnorBehan: /* Setup */ - Oops</p>
<hr />
<div>[[Category:Universal 2nd Factor]]<br />
[[ja:Nitrokey]]<br />
{{Related articles start}}<br />
{{Related|Universal 2nd Factor}}<br />
{{Related|GnuPG}}<br />
{{Related articles end}}<br />
<br />
[https://www.nitrokey.com/ Nitrokey] is an open-source USB key series used to enable the secure encryption and signing of data. The secret keys are always stored inside the Nitrokey which protects against malware (such as computer viruses) and attackers. A user-chosen PIN and a tamper-proof smart card protect the Nitrokey in case of loss and theft. The hardware and software of Nitrokey are open-source. The free software and open hardware enables independent parties to verify the security of the device. Nitrokey is supported on Microsoft Windows, macOS, Linux, and BSD. Nitrokey is developed and produced in Germany.<br />
<br />
== Software ==<br />
<br />
Packages designed to help configure Nitrokey products are {{Pkg|nitrocli}}, {{Pkg|nitrokey-app}} and {{Pkg|python-pynitrokey}}. As of 2023, only the last one supports the Nitrokey 3.<br />
<br />
For hardware encryption devices in general, it is important to have {{Pkg|gnupg}} installed. Secure login to a shell and [https://www.dongleauth.com/ various websites] are also supported by the Nitrokey 3 and Nitrokey FIDO2. For this to work, {{Pkg|libfido2}} is required, see [[Universal 2nd Factor]].<br />
<br />
== Setup ==<br />
<br />
Device nodes for a Nitrokey will be created by the udev rules which are part of the {{Pkg|libnitrokey}} package. For use by [[GnuPG]], the newly created {{ic|/dev/bus/usb/*/*}} device (as determined by {{ic|lsusb}}) must be accessible by an unprivileged user. For [[WebAuthn]], the {{ic|/dev/hidraw*}} device must also be. If they are only accessible by root, you can change the default by adding {{ic|MODE{{=}}"0666"}} to the appropriate lines in {{ic|41-nitrokey.rules}}. Instead of 41, one might need to symlink to a higher number if {{ic|50-udev-default.rules}} interferes.<br />
<br />
== See also ==<br />
<br />
* [https://www.nitrokey.com/ Nitrokeys Official Website]<br />
* [[Wikipedia:Nitrokey|Nitrokey Wikipedia Entry]]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Nitrokey&diff=792471Nitrokey2023-11-13T22:47:05Z<p>ConnorBehan: Udev tips</p>
<hr />
<div>[[Category:Universal 2nd Factor]]<br />
[[ja:Nitrokey]]<br />
{{Related articles start}}<br />
{{Related|Universal 2nd Factor}}<br />
{{Related|GnuPG}}<br />
{{Related articles end}}<br />
<br />
[https://www.nitrokey.com/ Nitrokey] is an open-source USB key series used to enable the secure encryption and signing of data. The secret keys are always stored inside the Nitrokey which protects against malware (such as computer viruses) and attackers. A user-chosen PIN and a tamper-proof smart card protect the Nitrokey in case of loss and theft. The hardware and software of Nitrokey are open-source. The free software and open hardware enables independent parties to verify the security of the device. Nitrokey is supported on Microsoft Windows, macOS, Linux, and BSD. Nitrokey is developed and produced in Germany.<br />
<br />
== Software ==<br />
<br />
Packages designed to help configure Nitrokey products are {{Pkg|nitrocli}}, {{Pkg|nitrokey-app}} and {{Pkg|python-pynitrokey}}. As of 2023, only the last one supports the Nitrokey 3.<br />
<br />
For hardware encryption devices in general, it is important to have {{Pkg|gnupg}} installed. Secure login to a shell and [https://www.dongleauth.com/ various websites] are also supported by the Nitrokey 3 and Nitrokey FIDO2. For this to work, {{Pkg|libfido2}} is required, see [[Universal 2nd Factor]].<br />
<br />
== Setup ==<br />
<br />
Device nodes for a Nitrokey will be created by the udev rules which are part of the {{Pkg|libnitrokey}} package. For use by [[GnuPG]], the newly created {{ic|/dev/bus/usb/*/*}} device (as determined by {{ic|lsusb}}) must be accessible by an unprivileged user. For [[WebAuthn]], the {{ic|/dev/hidraw*}} device must also be. If they are only accessible by root, you can change the default by adding {{ic|MODE="0666"}} to the appropriate lines in {{ic|41-nitrokey.rules}}. Instead of 41, one might need to symlink to a higher number if {{ic|50-udev-default.rules}} interferes.<br />
<br />
== See also ==<br />
<br />
* [https://www.nitrokey.com/ Nitrokeys Official Website]<br />
* [[Wikipedia:Nitrokey|Nitrokey Wikipedia Entry]]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Nitrokey&diff=792470Nitrokey2023-11-13T22:37:27Z<p>ConnorBehan: Explain dependencies more</p>
<hr />
<div>[[Category:Universal 2nd Factor]]<br />
[[ja:Nitrokey]]<br />
{{Related articles start}}<br />
{{Related|Universal 2nd Factor}}<br />
{{Related|GnuPG}}<br />
{{Related articles end}}<br />
<br />
[https://www.nitrokey.com/ Nitrokey] is an open-source USB key series used to enable the secure encryption and signing of data. The secret keys are always stored inside the Nitrokey which protects against malware (such as computer viruses) and attackers. A user-chosen PIN and a tamper-proof smart card protect the Nitrokey in case of loss and theft. The hardware and software of Nitrokey are open-source. The free software and open hardware enables independent parties to verify the security of the device. Nitrokey is supported on Microsoft Windows, macOS, Linux, and BSD. Nitrokey is developed and produced in Germany.<br />
<br />
== Software ==<br />
<br />
Packages designed to help configure Nitrokey products are {{Pkg|nitrocli}}, {{Pkg|nitrokey-app}} and {{Pkg|python-pynitrokey}}. As of 2023, only the last one supports the Nitrokey 3.<br />
<br />
For hardware encryption devices in general, it is important to have {{Pkg|gnupg}} installed. Secure login to a shell and [https://www.dongleauth.com/ various websites] are also supported by the Nitrokey 3 and Nitrokey FIDO2. For this to work, {{Pkg|libfido2}} is required, see [[Universal 2nd factor]].<br />
<br />
== See also ==<br />
<br />
* [https://www.nitrokey.com/ Nitrokeys Official Website]<br />
* [[Wikipedia:Nitrokey|Nitrokey Wikipedia Entry]]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=OpenRC&diff=778485OpenRC2023-05-18T23:03:02Z<p>ConnorBehan: /* Services */ - Warn about an issue</p>
<hr />
<div>[[Category:Init]]<br />
[[ja:OpenRC]]<br />
[[pt:OpenRC]]<br />
[[ru:OpenRC]]<br />
[[tr:OpenRC]]<br />
{{Related articles start}}<br />
{{Related|init}}<br />
{{Related articles end}}<br />
{{Warning|Arch Linux only has official support for [[systemd]]. When using OpenRC, please mention so in support requests.}}<br />
<br />
[[Gentoo:OpenRC|OpenRC]] is a service manager maintained by the Gentoo developers. OpenRC is dependency based and works with the system provided init program, normally [[SysVinit]].<br />
<br />
== Installation ==<br />
<br />
OpenRC and accompanying packages are available in the [[AUR]]. For details on init components, see [[Init]].<br />
<br />
Install either the {{AUR|openrc}} or {{AUR|openrc-git}} package. From version 0.25 onward, OpenRC provides its own init at {{ic|/usr/bin/openrc-init}}.<br />
Optionally, you can use other inits from, e.g., {{Pkg|busybox}}. Note that when {{ic|openrc-init}} is used, it must be paired with {{ic|openrc-shutdown}}, and ''not'' the {{ic|shutdown}} or {{ic|reboot}} commands from other packages, otherwise you will encounter errors.<br />
<br />
A basic set of service files are available from the {{AUR|openrc-arch-services-git}} package.<br />
Other packages may have service files provided outside this package; a search on the AUR is recommended.<br />
<br />
To maintain compatibility with {{AUR|initscripts-fork}}, configuration files are installed to {{ic|/etc/openrc/}}.<br />
<br />
=== Booting ===<br />
<br />
For booting with OpenRC, set the {{ic|init}} option in the [[kernel parameters]].<br><br />
To use OpenRC's built-in init, set {{ic|1=init=/usr/bin/openrc-init}}.<br />
To use [[SysVinit]] set {{ic|1=init=/usr/bin/init-openrc}}.<br><br />
Note that when using {{ic|openrc-init}}, the {{ic|/etc/inittab}} file is not used.<br />
<br />
== Configuration ==<br />
<br />
The {{Ic|1=/etc/openrc/conf.d}} directory, and the {{Ic|1=/etc/openrc/rc.d}} file is used for configuration.<br />
<br />
For general information on configuring OpenRC, see:<br />
<br />
* [https://www.calculate-linux.org/main/en/openrc_manuals OpenRC manuals]<br />
* [[Gentoo:OpenRC]].<br />
<br />
For instructions when migrating from [[systemd]], see [[Init#Configuration]].<br />
<br />
=== Services ===<br />
<br />
OpenRC services are enabled by issuing {{ic|rc-update add ''service_name'' ''runlevel''}} as root. It is recommended to at least enable the following services:<br />
{| class="wikitable"<br />
! Service name<br />
! [[Gentoo:OpenRC#Named runlevels|Runlevel]]<br />
! Description<br />
|-<br />
| udev<br />
| sysinit<br />
| Device hot-plugging<br />
|-<br />
| alsa<br />
| default<br />
| [[ALSA]] state<br />
|-<br />
| acpid<br />
| default<br />
| ACPI events<br />
|-<br />
| dbus<br />
| default<br />
| Messaging bus<br />
|-<br />
| dcron<br />
| default<br />
| Scheduling<br />
|-<br />
| syslog-ng<br />
| default<br />
| System logs<br />
|}<br />
<br />
{{Warning|If using {{ic|1=init=/usr/bin/openrc-init}} in your kernel parameters, you will need to manually enable [[getty]] services, otherwise you will be left with no interactive TTYs as stated in [https://github.com/OpenRC/openrc/blob/master/agetty-guide.md the documentation].}}<br />
If necessary, create services for each wanted [[getty]] by creating symbolic links to {{ic|/etc/openrc/init.d/getty}}. E.g. for {{ic|/dev/tty1}}:<br />
<br />
# ln -s /etc/openrc/init.d/agetty{,.tty1}<br />
# rc-update add agetty.tty1 default<br />
<br />
To prevent PAM from attempting to register with systemd after logging into the tty (which can sometimes [https://bbs.archlinux.org/viewtopic.php?id=285505 cause problems], it is safe to remove or comment out the lines mentioning systemd in {{ic|/etc/pam.d/system-auth}}.<br />
<br />
See also [[Gentoo:Systemd#Native services]].<br />
<br />
=== Network ===<br />
<br />
The network is configured through {{ic|newnet}} [https://github.com/OpenRC/openrc/blob/master/NEWNET.md]. Modify the {{ic|/etc/openrc/conf.d/network}} file; both the {{ic|ip}} ({{Pkg|iproute2}}) and the {{ic|ifconfig}} ({{Pkg|net-tools}}) commands are supported. Below is an example configuration using {{ic|ip}}.<br />
<br />
{{bc|1=<br />
ip_eth0="192.168.1.2/24"<br />
defaultiproute="via 192.168.1.1"<br />
ifup_eth0="ip link set \$int mtu 1500"<br />
}}<br />
<br />
The network service is added to the boot runlevel by default, so no further action is required. See [[Network configuration]] for general networking information.<br />
<br />
{{Note|1=You may also use [[NetworkManager]], [[dhcpcd]] or {{AUR|netcfg}} by enabling the respective services. ''netcfg'' mimics the [[netctl]] behaviour (see [https://bbs.archlinux.org/viewtopic.php?pid=1489283#p1489283] if you want to enable profiles connection on booting - requires {{ic|wpa_actiond}}). See [https://archlinux.org/netcfg/features.html netcfg features].}}<br />
<br />
=== Boot logs ===<br />
<br />
To enable boot logging, uncomment the {{ic|1=rc_logger="YES"}} line in {{ic|/etc/openrc/rc.conf}}. When enabled, boot logs are stored in {{ic|/var/log/rc.log}}.<br />
<br />
=== Hostname ===<br />
<br />
OpenRC sets the hostname from {{ic|/etc/openrc/conf.d/hostname}}. The file looks as follows:<br />
<br />
{{bc|1=<br />
# Set to the hostname of this machine<br />
hostname="myhostname"<br />
}}<br />
<br />
=== Kernel modules ===<br />
<br />
OpenRC uses {{ic|/etc/openrc/conf.d/modules}} instead of {{ic|/etc/modules-load.d}}. For example:<br />
<br />
{{hc|/etc/openrc/conf.d/modules|2=<br />
# You should consult your kernel documentation and configuration<br />
# for a list of modules and their options.<br />
<br />
modules="vboxdrv acpi_cpufreq"<br />
}}<br />
<br />
=== Locale ===<br />
<br />
Keyboard layout can be configured via {{ic|/etc/openrc/conf.d/keymaps}} and {{ic|/etc/openrc/conf.d/consolefont}}. You can also configure the settings through the {{ic|/etc/locale.conf}} file, which is sourced via {{ic|/etc/profile.d/locale.sh}}. <br />
<br />
See [[Gentoo:Localization/Guide#Keyboard layout for the console]] and [[Locale]] for details.<br />
<br />
== Usage ==<br />
<br />
This section draws a parallel between [[systemd]] and other [[init]] systems.<br />
<br />
You can omit the {{ic|.service}} and {{ic|.target}} extensions, especially if temporarily editing the [[kernel parameters]].<br />
<br />
{| class="wikitable" width="100%"<br />
! systemd !! SysVinit !! OpenRC !! Description<br />
|-<br />
| {{ic|systemctl list-units}} || {{ic|rc.d list}} || {{ic|rc-status}} || List running services status<br />
|-<br />
| {{ic|systemctl --failed}} || || {{ic|rc-status --crashed}} || Check failed services<br />
|-<br />
| {{ic|systemctl --all}} || || {{ic|rc-update -v show}} || Display all available services.<br />
|-<br />
| {{ic|systemctl (start, stop, restart, status) daemon.service}} || {{ic|rc.d (start, stop, restart) daemon}} || {{ic|rc-service daemon (start, stop, restart, status)}} || Change service state.<br />
|- <br />
| {{ic|systemctl (enable, disable) daemon.service}} || {{ic|chkconfig daemon (on, off)}} || {{ic|rc-update (add, del) daemon}} || Turn service on or off.<br />
|-<br />
| {{ic|systemctl daemon-reload}} || {{ic|chkconfig daemon --add}} || || Create or modify configuration.<br />
|}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Quiet booting ===<br />
<br />
To hide boot messages from OpenRC, you can edit {{ic|/etc/inittab}} and add {{ic|--quiet}} to every openrc command. For further information check with {{ic|$ openrc -h}}.<br />
<br />
== Troubleshooting ==<br />
<br />
=== Error while unmounting /tmp ===<br />
<br />
When shutting the system down, you might get an error message such as <br />
<br />
{{bc|* Unmounting /tmp ... <br />
* in use but fuser finds nothing [ !! ]}}<br />
<br />
This can be fixed by adding<br />
<br />
no_umounts="/tmp"<br />
<br />
to {{ic|/etc/openrc/conf.d/localmount}}<br />
<br />
{{Note|This problem occurs only if your tmp is mounted as a tmpfs.}}<br />
<br />
=== Disabling IPv6 does not work ===<br />
<br />
One option is to add:<br />
<br />
# Disable ipv6<br />
net.ipv6.conf.all.disable_ipv6 = 1<br />
<br />
in a file with a {{ic|.conf}} extension under {{ic|/etc/openrc/sysctl.d}}<br />
<br />
=== During shutdown remounting root as read-only fails ===<br />
<br />
If the above happens, edit the {{ic|/etc/openrc/init.d/mount-ro}} file and put:<br />
<br />
telinit u<br />
<br />
after the following line:<br />
<br />
# Flush all pending disk writes now<br />
sync; sync<br />
<br />
=== /etc/sysctl.conf not found ===<br />
<br />
By default, {{ic|sysctl --system}} is called to load the sysctl configuration. [https://github.com/OpenRC/openrc/blob/master/init.d/sysctl.in#L40] This includes the {{ic|/etc/sysctl.conf}} file, which was removed from Arch. [https://archlinux.org/news/deprecation-of-etcsysctlconf/]<br />
<br />
To prevent a missing file error, create the file:<br />
<br />
# touch /etc/sysctl.conf<br />
<br />
=== opentmpfiles-setup failed to start ===<br />
<br />
On booting openrc, you may see lines like these :<br />
<br />
* Setting up tmpfiles.d entries ...<br />
chattr: Operation not supported while setting flags on /var/log/journal<br />
chattr: No such file or directory while trying to stat /var/log/journal/%m<br />
chattr: Operation not supported while setting flags on /var/log/journal/remote<br />
[ !! ]<br />
ERROR: opentmpfiles-setup failed to start<br />
<br />
This is caused by {{ic|/usr/lib/tmpfiles.d/journal-nocow.conf}} using options that are only valid if journal is on a btrfs filesystem.<br />
<br />
See https://github.com/OpenRC/opentmpfiles/issues/2 for details<br />
<br />
A workaround is to create an empty {{ic|/etc/tmpfiles.d/journal-nocow.conf}} to override the settings.<br />
<br />
== Reverting to systemd ==<br />
<br />
Reverting to systemd should be straightforward in most cases. It is essentially the reversal of migrating to OpenRC, with care placed on the following:<br />
<br />
* Removal of, or otherwise editing, the {{ic|1=init=}} parameter on the kernel command line<br />
* Replacement of any OpenRC-tailored or no-systemd packages with their stock equivalents (e.g. replacement of {{AUR|dbus-nosystemd}} with {{pkg|dbus}})<br />
<br />
== See also ==<br />
<br />
* [[Wikipedia:OpenRC]]<br />
* [[Gentoo:OpenRC]]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=152606 Forum thread about OpenRC in Arch]<br />
* [https://blog.notfoss.com/posts/openrc-on-arch-linux/ Blog: OpenRC on Arch Linux]<br />
* [https://wiki.manjaro.org/index.php?title=OpenRC,_an_alternative_to_systemd Manjaro wiki]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Package_Maintainer_guidelines&diff=731128Package Maintainer guidelines2022-05-31T02:12:18Z<p>ConnorBehan: /* Accessing and updating the repository */ - Note about split packages</p>
<hr />
<div>[[Category:Package development]]<br />
[[ja:AUR Trusted User ガイドライン]]<br />
[[pt:AUR Trusted User Guidelines]]<br />
[[zh-hans:AUR Trusted User Guidelines]]<br />
{{Related articles start}}<br />
{{Related|Arch User Repository}}<br />
{{Related|DeveloperWiki#Packaging Guidelines}}<br />
{{Related articles end}}<br />
'''Trusted Users (TU)''' are members of the community charged with keeping the AUR in working order. They maintain popular packages ([https://mailman.archlinux.org/pipermail/aur-general/2010-September/010649.html communicating with and sending patches upstream as needed]), and vote in administrative matters. A TU is elected from active community members by current TUs in a democratic process. TUs are the only members who have a final say in the direction of the AUR.<br />
<br />
The TUs are governed using the [https://tu-bylaws.aur.archlinux.org TU bylaws]<br />
<br />
== TODO list for new Trusted Users ==<br />
<br />
# Read this entire wiki article.<br />
# Read the [https://tu-bylaws.aur.archlinux.org TU Bylaws].<br />
# Make sure your account details on the [[AUR]] are up-to-date.<br />
# Ask one of your sponsors to give you TU status on the AUR.<br />
# Add yourself to the [[Trusted Users]] page.<br />
# Remind a [[ArchWiki:Access levels and roles#Access levels|bureaucrat]] to add your wiki account to the {{int:group-archtu}} group.<br />
# Remind a [https://bbs.archlinux.org/userlist.php?username=&show_group=1&sort_by=username&sort_dir=ASC&search=Submit BBS admin] to change your account on forums.<br />
# Ask one of your sponsors for the [ircs://irc.libera.chat/archlinux-staff #archlinux-staff] and [ircs://irc.libera.chat/archlinux-tu #archlinux-tu] keys and join us in the channels (this is not mandatory, but a great way of getting to know parts of the team and collaborate).<br />
#* If you need a bouncer, ask heftig for a [[Matrix]] invite. <br />
#* If you want an {{ic|@archlinux/trusteduser/''username''}} cloak, ask our [[Arch IRC channels#Libera Chat group contacts|group contacts]] to get you one.<br />
# Ask one of your sponsors to create a ticket in [https://gitlab.archlinux.org/archlinux/infrastructure/-/issues the infrastructure repository issue tracker] (using the {{ic|Onboarding}} template) and provide them with the following information:<br />
#* An SSH public key. If you do not have one, follow [[SSH keys#Generating an SSH key pair]] to create one.<br />
#* A username which will be used for your SSO account and for your (to be created) {{ic|@archlinux.org}} email address.<br />
#* Your full name.<br />
#* Your (personal) e-mail address and a valid PGP public key ID for it, which will be used to provide the initial password for the developer interface (archweb) to you and which will be linked to your (to be created) SSO account.<br />
#* Whether your private or your (to be created) {{ic|''username''@archlinux.org}} email address should be used for the non-public mailing lists and be allowed to post to the [https://lists.archlinux.org/mailman3/lists/arch-dev-public.lists.archlinux.org/ arch-dev-public] mailing list.<br />
# Set the password for your {{ic|@archlinux.org}} e-mail address by following [[DeveloperWiki:Staff Services#Email]].<br />
# Create a PGP key pair for [[package signing]] by following the [https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/wikis/workflows/add-a-new-packager-key workflow for adding a new packager key] (using your new {{ic|<username>@archlinux.org}} address as uid).<br />
# Ask one of your sponsors to create a ticket in the [https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues archlinux-keyring repository issue tracker] (using the {{ic|New Packager Key}} template) in order to have your PGP key signed by (at least) three main key holders.<br />
# Install the {{pkg|devtools}} package.<br />
# [[AUR submission guidelines#Authentication|Configure your private ssh key]] for {{ic|repos.archlinux.org}}.<br />
# Ssh to yourname@repos.archlinux.org (once you have permissions).<br />
# Start contributing!<br />
<br />
== The TU and the AUR ==<br />
<br />
The TUs should also make an effort to check package submissions in the [[AUR]] for malicious code and good PKGBUILDing standards. In around 80% of cases the PKGBUILDs in the UNSUPPORTED are very simple and can be quickly checked for sanity and malicious code by the TU team.<br />
<br />
TUs should also check PKGBUILDs for minor mistakes, suggest corrections and improvements. The TU should endeavor to confirm that all packages follow the Arch Packaging Guidelines/Standards and in doing so share their skills with other package builders in an effort to raise the standard of package building across the distribution.<br />
<br />
TUs are also in an excellent position to document recommended practices.<br />
<br />
=== Rewriting git history ===<br />
<br />
In some cases rewriting the history of an AUR repository is required, for example when a user inadvertently uses their real name in a published commit. This can be automated with {{man|1|git-filter-branch}}. <br />
<br />
To force push the new history, forward the {{ic|1=AUR_OVERWRITE=1}} environment variable to {{man|1|git-push}}. See [https://gitlab.archlinux.org/archlinux/aurweb/-/commit/c5302d3a33028f483cc2e01225226d4ae047dd4a] for details.<br />
<br />
{{Warning|It is recommended to create a backup of the repository before rewriting history.}}<br />
<br />
; Modify committer or author identity<br />
<br />
Install {{Pkg|git-filter-repo}} and run:<br />
<br />
$ git-filter-repo --name-callback 'return name.replace(b"''Old name''", b"''New name''")' --email-callback 'return email.replace(b"''old@email.com''", b"''new@email.com''")'<br />
<br />
Alternatively, use {{ic|git filter-branch --env-filter}} with the {{ic|GIT_AUTHOR_NAME}}, {{ic|GIT_AUTHOR_EMAIL}}, {{ic|GIT_COMMITTER_NAME}} and {{ic|GIT_COMMITTER_EMAIL}} [[environment variables]]. For example:<br />
<br />
{{bc|1=<br />
git filter-branch --env-filter '<br />
if test "$GIT_AUTHOR_EMAIL" = "lepetit@prince.com"; then<br />
GIT_AUTHOR_EMAIL=user@users.noreply.github.com<br />
fi<br />
if test "$GIT_AUTHOR_NAME" = "Antoine de Saint-Exupéry"; then<br />
GIT_AUTHOR_NAME=user<br />
fi'<br />
}}<br />
<br />
{{Note|{{man|1|git-log}} only displays the git ''author'' by default. Use {{ic|1=git log --pretty=fuller}} to display the ''author'' and ''committer''.}}<br />
<br />
=== Handling AUR requests ===<br />
<br />
{{Expansion|This list is incomplete for now and should be expanded.}}<br />
<br />
TUs should periodically check the [https://aur.archlinux.org/requests requests] filed on the AUR. For that there are some generic rules what to check for each request type:<br />
<br />
; Orphan request<br />
<br />
* check if the request is older then 14 days (the date column turns red in the overview) (you cannot accept it before that anyway)<br />
* check if there was no update to the package itself (commit or release) done in the past 14 days<br />
* check if there was no comment from the package maintainer done in the past 14 days<br />
<br />
If all of the above points are true then you can accept the Orphan Request.<br />
<br />
== The TU and [community], guidelines for package maintenance ==<br />
<br />
=== Rules for packages entering the [community] repository ===<br />
<br />
* A package must not already exist in any of the Arch Linux repositories. You should take necessary precautions to ensure no other packager is in the process of promoting the same package. Double-check the AUR package comments, read the latest subject headings in [https://mailman.archlinux.org/mailman/listinfo/aur-general aur-general], search [https://bugs.archlinux.org/index.php?project=0&do=index&switch=1 all projects in the bugtracker], [[wikipedia:Grep|grep]] the [https://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.log.html Subversion log], and send a quick message to the private TU [[IRC channel]].<br />
* [[AUR helpers#Pacman wrappers|Pacman wrappers]], as a special exception, will never be permitted. If wanting to otherwise add an [[AUR helper]], write an email to {{ic|arch-dev-public}} with the proposed addition, and respect any objections provided by team members.<br />
* Only "popular" packages may enter the repo, as defined by 1% usage from [https://pkgstats.archlinux.de/packages pkgstats] or 10 votes on the AUR.<br />
* Automatic exceptions to this rule are:<br />
** i18n packages<br />
** accessibility packages<br />
** drivers<br />
** dependencies of packages who satisfy the definition of popular, including makedeps and optdeps<br />
** packages that are part of a collection and are intended to be distributed together, provided a part of this collection satisfies the definition of popular<br />
* Any additions not covered by the above criteria must first be proposed on the aur-general mailing list, explaining the reason for the exemption (e.g. renamed package, new package). The agreement of three other TUs is required for the package to be accepted into [community]. Proposed additions from TUs with large numbers of "non-popular" packages are more likely to be rejected.<br />
* TUs are strongly encouraged to move packages they currently maintain from [community] if they have low usage. No enforcement will be made, although resigning TUs packages may be filtered before adoption can occur.<br />
* It is good practice to always bump the '''pkgrel''' by ''1'' (in other words, set it to ''n + 1'') when promoting a package from AUR. This is to facilitate automatic updates for those who already have the package installed, so that they may continue to receive updates from the official channel. Another positive effect of this is that users are not warned that their local copy is newer, as is the case if a packager does reset the '''pkgrel''' to ''1''.<br />
<br />
=== Accessing and updating the repository ===<br />
<br />
{{Merge|DeveloperWiki:HOWTO Be A Packager|Duplicate with some minor differences}}<br />
<br />
The [community] repository now uses '''devtools''' which is the same system used for uploading packages to [core] and [extra] to {{ic|repos.archlinux.org}}. Thus most of the instructions in [[DeveloperWiki:HOWTO Be A Packager|Packager Guide]] work without any change. Information which is specific for the [community] repository (like changed URLs) have been put here. The devtools require packagers to [[makepkg#Packager information|set the PACKAGER variable]] in {{ic|makepkg.conf}}.<br />
<br />
Initially you should do a '''non-recursive checkout''' of the [community] repository:<br />
<br />
<nowiki>$ svn checkout -N svn+ssh://svn-community@repos.archlinux.org/srv/repos/svn-community/svn svn-community</nowiki><br />
<br />
This creates a directory named "svn-community" which contains nothing but a ".svn" folder.<br />
<br />
For '''checking''' out, '''updating''' all packages or '''adding''' a package see the [[DeveloperWiki:HOWTO Be A Packager|Packager Guide]].<br />
<br />
To '''remove''' a package:<br />
<br />
$ ssh repos.archlinux.org /community/db-repo-remove community arch pkgname<br />
<br />
This needs to be done separately for all components of a split package. Here and in the following text, ''arch'' should be ''x86_64'' which is the only architecture supported by Arch Linux since [https://archlinux.org/news/the-end-of-i686-support/ i686 support has been deprecated].<br />
<br />
{{Note|If you are editing packages of the ''any'' architecture you can simply run the x86_64 scripts which will also work.}}<br />
<br />
When you are done with editing the PKGBUILD, etc., you should '''commit''' the changes ({{ic|svn commit}}).<br />
<br />
Build the package with the helper script {{ic|extra-x86_64-build}}. If you want to upload to testing you need to build with the testing script {{ic|testing-x86_64-build}} instead.<br />
<br />
Sign the package with {{ic|gpg --detach-sign *.pkg.tar.xz}}. If you are using a different PGP key for package signing you can add it to {{ic|~/.makepkg.conf}} with {{ic|1=GPGKEY=''identifier''}}.<br />
<br />
When you want to '''release''' a package, first copy the package along with its signatures to the ''staging/community'' directory on ''repos.archlinux.org'' using {{ic|scp}} and then '''tag''' the package by going to the ''pkgname/trunk'' directory and issuing {{ic|archrelease community-arch}}. This makes an svn copy of the trunk entries in a directory named ''community-x86_64'' indicating that this package is in the community repository for that architecture. Note that the staging directory is different from the staging repository and every package needs to be uploaded to the staging directory. This process can be automated with the {{ic|communitypkg}} script, see the summary below.<br />
<br />
'''Package update summary:'''<br />
<br />
* '''Update''' the package directory: {{ic|svn update some-package}}.<br />
* '''Change''' to the package trunk directory: {{ic|cd some-package/trunk}}.<br />
* '''Edit''' the PKGBUILD, make necessary changes, update hashes with {{ic|updpkgsums}}.<br />
* '''Build''' the package: {{ic|makechrootpkg}} or {{ic|extra-x86_64-build}}. It is '''mandatory''' to build in a [[DeveloperWiki:Building in a clean chroot|clean chroot]].<br />
* '''[[Namcap]]''' the PKGBUILD and the binary {{ic|pkg.tar.gz}}.<br />
* '''Commit''', '''Sign''', '''Copy''' and '''Tag''' the package using {{ic|communitypkg "commit message"}}. This automates the following:<br />
** '''Commit''' the changes to trunk: {{ic|svn commit}}.<br />
** '''Sign''' the package: {{ic|gpg --detach-sign *.pkg.tar.xz}}.<br />
** '''Copy''' the package and its signature to ''repos.archlinux.org'': {{ic|scp *.pkg.tar.xz *.pkg.tar.xz.sig repos.archlinux.org:staging/community/}}.<br />
** '''Tag''' the package: {{ic|archrelease community-x86_64}}.<br />
* '''Update''' the repository: {{ic|ssh repos.archlinux.org /community/db-update}}.<br />
<br />
Also see the ''Miscellaneous'' section in the [[DeveloperWiki:HOWTO Be A Packager|Packager Guide]] and [[SSH keys#ssh-agent]].<br />
<br />
=== Disowning packages ===<br />
<br />
If a TU cannot or does not want to maintain a package any longer, a notice should be posted to the AUR Mailing List, so another TU can<br />
maintain it. A package can still be disowned even if no other TU wants to maintain it, but the TUs should try not to drop many packages (they should not take on more than they have time for). If a package has become obsolete or is not used any longer, it can be removed completely as well.<br />
<br />
If a package has been removed completely, it can be uploaded once again (fresh) to UNSUPPORTED, where a regular user can maintain the package instead of the TU.<br />
<br />
=== Moving packages from unsupported to [community] ===<br />
<br />
Follow the normal procedures for adding a package to community, but remember to delete the corresponding package from unsupported!<br />
<br />
=== Moving packages from [community] to unsupported ===<br />
<br />
Remove the package using the instructions above and upload your source to the AUR.<br />
<br />
=== Moving packages from [community-testing] to [community] ===<br />
<br />
$ ssh repos.archlinux.org /community/db-move community-testing community ''package''<br />
<br />
=== Deleting packages from unsupported ===<br />
<br />
There is no point in removing dummy packages, because they will be re-created in an attempt to track dependencies. If someone uploads a<br />
real package then all dependents will point to the correct place.<br />
<br />
=== Remote build on build.archlinux.org ===<br />
<br />
{{Warning|The following procedures defeats the Web Of Trust model: a user with root access to PKGBUILD.com could alter the package and/or the signature before it gets published.}}<br />
<br />
Trusted users and developers can connect to build.archlinux.org via SSH to, among others, build packages using the devtools.<br />
This has numerous advantages over a local setup:<br />
<br />
* Builds are fast and network speed is high.<br />
* The environment needs setup only once.<br />
* Your local system need not be Arch Linux.<br />
<br />
The process is similar to that of a local setup with devtools. Your GnuPG private is required for signing but you do not want to upload it for obvious security reasons. As such, you will need to forward the GnuPG agent socket from your local machine to the server: this will allow you to sign packages on the build server without communicating your key. This also means that we need to disable the agent on the server before we can run anything.<br />
<br />
First, connect to build.archlinux.org and disable<br />
<br />
$ ssh build.archlinux.org<br />
$ systemctl --user mask gpg-agent.service<br />
<br />
Make sure gpg-agent is not running ({{ic|systemctl --user stop gpg-agent.service}}). At this point, make sure that no sockets exist in the folder pointed by {{ic|gpgconf --list-dir socketdir}}. If they do, remove them or log out and in again.<br />
If you have a custom $GNUPGHOME (eg. to move it to {{ic|~/.config/gnupg}}), you will need to unset that, as it is not possible in gnupg to set the homedir without setting the socketdir.<br />
On build.archlinux.org, ''StreamLocalBindUnlink yes'' is set in ''sshd_config'', therefore removing the sockets manually on logout is not necessary.<br />
<br />
While the PGP private keys remain on your local machine, the public keys '''must''' be on the build server. Export your public ring to the build server, e.g. from you local machine<br />
<br />
$ scp ~/.gnupg/pubring.gpg build.archlinux.org:~/.gnupg/pubring.gpg<br />
<br />
SSH is required to checkout and commit to the SVN repository. You can either set up a new SSH key pair on the server (it is highly discouraged to put your local private key on a server for security reasons) or reuse your local keys via socket forwarding. If you opt for the latter, make sure to disable ssh-agent on the build server if you had enabled it previously (it is not running by default).<br />
<br />
Configure you build environment on the build server:<br />
<br />
{{hc|1=~/.makepkg.conf|2=<br />
PACKAGER="John Doe <john@doe.example>"<br />
## Optional<br />
PKGDEST="/home/johndoe/packages"<br />
SRCDEST="/home/johndoe/sources"<br />
SRCPKGDEST="/home/johndoe/srcpackages"<br />
LOGDEST="/home/johndoe/logs"<br />
## If your PGP key is not the default, specify the right fingerprint:<br />
GPGKEY="ABCD1234..."<br />
}}<br />
<br />
{{Warning|Forwarding your gpg-agent socket to a remote machine makes it possible for anyone with root access to that system to use your unlocked GPG credentials. To circumvent this issue, we need to disable passphrase caching.}}<br />
<br />
Disable passphrase caching with the following settings:<br />
<br />
{{hc|gpg-agent.conf|<br />
default-cache-ttl 0<br />
max-cache-ttl 0<br />
}}<br />
<br />
Because we will want to keep our usual GPG agent running with its current settings, we are going to run another GPG agent dedicated to the task at hand. Create a {{ic|~/.gnupg-archlinux}} folder and symlink everything from {{ic|~/.gnupg}} there, except {{ic|~/.gnupg/gpg-agent.conf}}. Configure the new GPG agent:<br />
<br />
{{hc|~/.gnupg-archlinux|<br />
extra-socket /home/doe/.gnupg-archlinux/S.gpg-agent.extra<br />
default-cache-ttl 0<br />
max-cache-ttl 0<br />
pinentry-program /usr/bin/pinentry-gtk-2<br />
}}<br />
<br />
The {{ic|gpg-agent-extra.socket}} will be forwarded to build.archlinux.org. <br />
<br />
Start the dedicated agent with<br />
<br />
$ gpg-agent --homedir ~/.gnupg-archlinux --daemon<br />
<br />
Connect with:<br />
<br />
$ ssh -R $REMOTE_SSH_AUTH_SOCK:$SSH_AUTH_SOCK -R /run/user/$REMOTE_UID/gnupg/S.gpg-agent:/home/doe/.gnupg-archlinux/S.gpg-agent.extra build.archlinux.org<br />
<br />
or, if using GnuPG as your SSH agent:<br />
<br />
$ ssh -R /run/user/$REMOTE_UID/gnupg/S.gpg-agent.ssh:/run/user/$LOCAL_UID/gnupg/S.gpg-agent.ssh -R /run/user/$REMOTE_UID/gnupg/S.gpg-agent:/home/doe/.gnupg-archlinux/S.gpg-agent.extra build.archlinux.org<br />
<br />
Replace ''$REMOTE_UID'' and ''$LOCAL_UID'' by your user identifier as returned by {{ic|id -u}} on the build server and locally, respectively.<br />
If using ssh-agent, replace ''$REMOTE_SSH_AUTH_SOCK'' by the path to the SSH socket on the remote host (it can be anything).<br />
<br />
You can make the forwarding permanent for that host. For instance with gpg-agent.ssh:<br />
<br />
{{hc|~/.ssh/config|<br />
Host build.archlinux.org<br />
RemoteForward /run/user/$REMOTE_UID/gnupg/S.gpg-agent /run/user/$LOCAL_UID/gnupg/S.gpg-agent.extra<br />
RemoteForward /run/user/$REMOTE_UID/gnupg/S.gpg-agent.ssh /run/user/$LOCAL_UID/gnupg/S.gpg-agent.ssh<br />
}}<br />
<br />
Again, replace ''$REMOTE_UID'' and ''$LOCAL_UID'' with their respective values.<br />
<br />
From then on, the procedure should be exactly the same as a local build:<br />
<br />
$ ssh build.archlinux.org<br />
$ svn checkout -N svn+ssh://svn-community@repos.archlinux.org/srv/repos/svn-community/svn svn-community<br />
$ ...<br />
<br />
{{Note|pinentry-curses might not work with socket forwarding. If it fails for you, try using a different pinentry.}}<br />
<br />
== TODO list retiring a Trusted User ==<br />
<br />
When a TU resigns the following list has be followed, these steps do not apply when a TU resigns but is still a Developer.<br />
<br />
# All packages packaged by the retiree should be resigned (so rebuild). Packages packaged by the retiree can be found in Archweb https://archlinux.org/packages/?sort=&q=&packager=$packager&flagged= where packager is the username on Archweb.<br />
# The account of the retiree should be disabled on Archweb and added to the 'Retired Trusted users' group. The retiree should be removed from the 'Trusted Users' and the repository permissions should be reduced to none.<br />
# The shell access to our servers should be disabled. (notably repos.archlinux.org, pkgbuild.com)<br />
# The GPG key should be removed and a new archlinux-keyring package should be pushed to the repos. Create bug reports in the keyring project to remove the keys of the retired Trusted Users.<br />
# Remove the TU group from their AUR account.<br />
# A [[ArchWiki:Access levels and roles#Access levels|bureaucrat]] should remove their wiki account from the {{int:group-archtu}} group.<br />
# A [https://bbs.archlinux.org/userlist.php?username=&show_group=1&sort_by=username&sort_dir=ASC&search=Submit BBS admin] should change their account on forums.</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Acme.sh&diff=730290Acme.sh2022-05-21T01:51:03Z<p>ConnorBehan: /* Issuing a new cert */ - A link to the guide for how to do this is more important than a link to the announcement</p>
<hr />
<div>{{Lowercase title}}<br />
[[Category:Networking]]<br />
[[Category:Encryption]]<br />
[[Category:Commands]]<br />
{{Style|This article needs some language and minor wiki syntax improvements}}<br />
[https://github.com/acmesh-official/acme.sh acme.sh] is an [[ACME]] client written in Shell which has full ACME protocol implementation, supports IPv6, wildcard certs.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|acme.sh}} package, and {{Pkg|socat}} if you want to use the standalone mode.<br />
<br />
== Usage ==<br />
<br />
The {{Pkg|acme.sh}} package does not provide its man pages, but a [https://github.com/acmesh-official/acme.sh/wiki/ wiki page] exists on the project's website. {{ic|acme.sh --help}} also outputs a long list of commands and parameters.<br />
<br />
There are three steps involved:<br />
<br />
# Requesting a certificate to be issued.<br />
# Installing the issued certificate, to make it useful.<br />
# Maintaining the certificate over time.<br />
<br />
The first 2 steps are summarized at the bottom of https://git.guilhem.org/lacme/about/, starting with the words "Requesting new Certificate Issuance with the ACME protocol".<br />
<br />
=== Issuing a new cert ===<br />
<br />
You can specify any domain by {{ic|-d}}.<br />
<br />
{{Tip|You might want to [https://github.com/acmesh-official/acme.sh/wiki/Change-default-CA-to-ZeroSSL specify] LetsEncrypt as your default CA, as acme.sh [https://community.letsencrypt.org/t/the-acme-sh-will-change-default-ca-to-zerossl-on-august-1st-2021/144052 uses] ZeroSSL as its default CA effective from August 1st, 2021.}}<br />
<br />
Use specifying webroot method:<br />
<br />
$ acme.sh --issue -d example.com -d www.example.com -d cp.example.com -d '*.example.com' -w /home/wwwroot/example.com<br />
<br />
or, use standslone mode by adding {{ic|--standalone}} if you got {{Pkg|socat}} installed and no web server is running:<br />
<br />
$ acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com<br />
<br />
or use Nginx mode:<br />
<br />
$ acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com<br />
<br />
or use DNS mode (see [https://github.com/acmesh-official/acme.sh/wiki/dnsapi official wiki] for more):<br />
<br />
$ acme.sh --issue -d example.com -d '*.example.com' --dns dns_he<br />
<br />
See more examples [https://github.com/acmesh-official/acme.sh/wiki/How-to-issue-a-cert here].<br />
<br />
=== Install the cert to Apache/Nginx etc ===<br />
<br />
Nginx:<br />
<br />
$ acme.sh --install-cert -d example.com --key-file '/path/to/keyfile/in/nginx/example.key' --fullchain-file '/path/to/fullchain/nginx/example.cer' --reloadcmd "systemctl force-reload nginx"<br />
<br />
Apache:<br />
<br />
$ acme.sh --install-cert -d example.com --cert-file '/path/to/certfile/in/apache/example.cer' --key-file '/path/to/keyfile/in/apache/example.key' --fullchain-file '/path/to/fullchain/certfile/apache/example.fullchain.cer' --reloadcmd "systemctl force-reload nginx apache2"<br />
<br />
=== Maintaining a cert ===<br />
<br />
The certs will be renewed every 60 days. To run {{ic|acme.sh}} regularly, a [https://github.com/acmesh-official/acme.sh/wiki/Using-systemd-units-instead-of-cron systemd timer] may be set up.<br />
<br />
== See also ==<br />
<br />
* [https://github.com/acmesh-official/acme.sh home page] and [https://github.com/acmesh-official/acme.sh/wiki/ wiki page] for the documentation.<br />
* {{ic|acme.sh}} acknowledges {{ic|acme-tiny}}. {{ic|acme-tiny}}'s author has several more acme related utilities at [https://github.com/diafygi/]. Those utilities are more basic, and the author goes into more thorough, more under the hood, explanations of what is going on, in order to show their usage.</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:PKGBUILD.com&diff=593770DeveloperWiki:PKGBUILD.com2020-01-02T17:57:44Z<p>ConnorBehan: /* Warning */ - This is the URL now.</p>
<hr />
<div>[[Category:Arch development]]<br />
==Warning==<br />
This article now describes the build server at '''dragon.archlinux.org''' instead.<br />
<br />
==Directories that must be used==<br />
<br />
All users should use '''only''' {{ic|~/packages}} for storing packages builds and {{ic|~/svn-packages}}.<br />
These directories are excluded from backups and all other directories are automatically backed up.<br />
<br />
==Creating chroots and building packages==<br />
<br />
Devtools 0.9.10 has build helpers that can be used. <br />
<br />
/usr/bin/extra-x86_64-build<br />
/usr/bin/multilib-build<br />
/usr/bin/staging-x86_64-build<br />
/usr/bin/testing-x86_64-build<br />
<br />
This can be used to _create_ and build packages. Chroots are created by default in /var/tmp/archbuild.<br />
To build packages that depend on each other you should use makechrootpkg directly.<br />
<br />
$ sudo extra-x86_64-build<br />
$ sudo testing-x86_64-build<br />
<br />
==x86_64==<br />
<br />
$ sudo makechrootpkg -cr /var/lib/archbuild/extra-x86_64 -- -i<br />
<br />
next package<br />
<br />
$ sudo makechrootpkg -r /var/lib/archbuild/extra-x86_64<br />
<br />
==Packager && Makeflags==<br />
<br />
Add ~/.makepkg.conf with PACKAGER information<br />
<br />
PACKAGER="Name <email>"<br />
MAKEFLAGS="-j5"<br />
<br />
==Connecting to sigurd or gerolde from brynhild==<br />
<br />
On your local system add this:<br />
$ cat .ssh/config<br />
Host pkgbuild.com<br />
Hostname pkgbuild.com<br />
User youruser<br />
ForwardAgent yes<br />
<br />
==Generating rebuilding list when soname is bumped==<br />
<br />
Available in repo-tools.git (https://projects.archlinux.de/repo-tools.git/) and available on brynhild:<br />
<br />
$ sogrep <repo> <soname><br />
$ sogrep extra x264.so.107</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:PKGBUILD.com&diff=592278DeveloperWiki:PKGBUILD.com2019-12-20T17:28:16Z<p>ConnorBehan: It would be better to rename the page but this will do for now.</p>
<hr />
<div>[[Category:Arch development]]<br />
==Warning==<br />
This article now describes the build server at '''soyuz.archlinux.org''' instead.<br />
<br />
==Directories that must be used==<br />
<br />
All users should use '''only''' {{ic|~/packages}} for storing packages builds and {{ic|~/svn-packages}}.<br />
These directories are excluded from backups and all other directories are automatically backed up.<br />
<br />
==Creating chroots and building packages==<br />
<br />
Devtools 0.9.10 has build helpers that can be used. <br />
<br />
/usr/bin/extra-x86_64-build<br />
/usr/bin/multilib-build<br />
/usr/bin/staging-x86_64-build<br />
/usr/bin/testing-x86_64-build<br />
<br />
This can be used to _create_ and build packages. Chroots are created by default in /var/tmp/archbuild.<br />
To build packages that depend on each other you should use makechrootpkg directly.<br />
<br />
$ sudo extra-x86_64-build<br />
$ sudo testing-x86_64-build<br />
<br />
==x86_64==<br />
<br />
$ sudo makechrootpkg -cr /var/lib/archbuild/extra-x86_64 -- -i<br />
<br />
next package<br />
<br />
$ sudo makechrootpkg -r /var/lib/archbuild/extra-x86_64<br />
<br />
==Packager && Makeflags==<br />
<br />
Add ~/.makepkg.conf with PACKAGER information<br />
<br />
PACKAGER="Name <email>"<br />
MAKEFLAGS="-j5"<br />
<br />
==Connecting to sigurd or gerolde from brynhild==<br />
<br />
On your local system add this:<br />
$ cat .ssh/config<br />
Host pkgbuild.com<br />
Hostname pkgbuild.com<br />
User youruser<br />
ForwardAgent yes<br />
<br />
==Generating rebuilding list when soname is bumped==<br />
<br />
Available in repo-tools.git (https://projects.archlinux.de/repo-tools.git/) and available on brynhild:<br />
<br />
$ sogrep <repo> <soname><br />
$ sogrep extra x264.so.107</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Talk:NVIDIA_Optimus&diff=459616Talk:NVIDIA Optimus2016-12-19T21:38:56Z<p>ConnorBehan: /* Xorg config file */ - Can be either.</p>
<hr />
<div>== Remove the libglamoregl.so is necessary ==<br />
<br />
The NVIDIA's official page gives a caveat.[http://http.download.nvidia.com/XFree86/Linux-x86_64/361.28/README/randr14.html]<br />
<br />
''Some versions of the “modesetting” driver try to load a sub-module called “glamor”, which conflicts with the NVIDIA GLX implementation. Please ensure that the libglamoregl.so X module is not installed.''<br />
<br />
Only if I rename or remove the /lib/xorg/modules/libglamoregl.so can I get the Optimus work.<br />
Disabling it in xorg.conf takes no effect.<br />
[[User:Constroy|Constroy]] ([[User talk:Constroy|talk]]) 05:33, 29 March 2016 (UTC)<br />
<br />
:Well, if none of the methods described in the first note of [[NVIDIA_Optimus#Using_nvidia]] work, it might be necessary to re-open the mentioned {{Bug|43830}} or even open a new one upstream.[https://bugs.archlinux.org/task/43830#comment132737] See the comments by lordheavy in the bug; deleting the libraries is the worst case option. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 13:19, 29 March 2016 (UTC)<br />
<br />
== Clarify Xorg section ==<br />
<br />
The [[Using nvidia section |https://wiki.archlinux.org/index.php/NVIDIA_Optimus#Using_nvidia]] discusses Xorg configutation, which I think is confusing at the moment. I think I can explain it like so:<br />
<br />
* Is Xorg above 1.17.2?<br />
** Yes: use the short configuration shown, which only presents a section for {{ic|nvidia}}<br />
** No: use the longer configuration which contains a section for both {{ic|Device}} and {{ic|Screen}} for both {{ic|nvidia}} and {{ic|intel}}<br />
<br />
* Did you run into issues after Xorg 1.17.1?<br />
** No: obviously irrelevant<br />
** Yes: modify the {{ic|Device}} section for {{ic|intel}} with the shown code.<br />
<br />
My issue is that if one is on > 1.17.2 or above, ''there is no {{ic|intel}} section''. I have no personal experience with this, but upon reading it I found it confusing. Either one needs an {{ic|intel}} section or they don't, at least as it currently reads. Perhaps the instructions mean "if you have problems, please ''add'' this section to your {{ic|xorg.conf}}"? Or perhaps they mean, "if you have problems, please use the longer {{ic|xorg.conf}} containing both {{ic|nvidia}} and {{ic|intel}} sections, replacing the following for the {{ic|intel}} section. In either case (or some new case I don't know), the current instructions don't seem to reconcile the versions of the {{ic|xorg.conf}} shown. [[User:Jwhendy|Jwhendy]] ([[User talk:Jwhendy|talk]]) 19:39, 4 May 2016 (UTC)<br />
<br />
== Detecting Optimus ==<br />
<br />
Then how ''do'' you detect Optimus, Lahwaacz?<br />
<br />
[[User:Ewtoombs|Ewtoombs]] ([[User talk:Ewtoombs|talk]]) 20:39, 13 October 2016 (UTC)<br />
<br />
:You have to find information specific to your laptop, like [http://superuser.com/questions/282734/how-to-disable-nvidia-optimus-on-a-dell-xps-15 this]. There is no point in providing ''wrong'' information on the wiki. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 06:36, 14 October 2016 (UTC)<br />
<br />
::The second version I provided wasn't wrong. It was actually quite useful and completely accurate. It really is impossible that you have Optimus if you don't have two GPUs, one of which is an NVIDIA. You're just being obstinate. [[User:Ewtoombs|Ewtoombs]] ([[User talk:Ewtoombs|talk]]) 13:40, 14 October 2016 (UTC)<br />
<br />
:::The necessary conditions for having Optimus are listed at the very top of the page, in the first sentence. The only thing you've provided on top of that is lots of mights and maybes, along with a completely unrelated info regarding problems with hardware rendering. That's hardly a case of [[w:factual accuracy|factual accuracy]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 14:21, 14 October 2016 (UTC)<br />
<br />
== Xorg config file ==<br />
<br />
The Xorg config file may have to be {{ic|/etc/X11/xorg.conf.d/20-nvidia.conf}} as {{ic|/etc/X11/xorg.conf}} is deprecated? Am I right?<br />
<br />
[[User:Noraj|Noraj]] ([[User talk:Noraj|talk]]) 18:50, 2 November 2016 (UTC)<br />
:Nah, all the places that used to be searched by X are still searched by X. [[User:ConnorBehan|ConnorBehan]] ([[User talk:ConnorBehan|talk]]) 21:38, 19 December 2016 (UTC)</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Roll_Call&diff=411091DeveloperWiki:Roll Call2015-12-06T17:51:46Z<p>ConnorBehan: /* Trusted Users */ - I wish more of the AUR packages I used had adoption rates high enough to justify moves to [community]</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
==Developers==<br />
* Aaron Griffin<br />
<br />
* Allan McRae<br />
** Packaging (toolchain)<br />
** Pacman development<br />
<br />
* Anatol Pomozov<br />
* Andreas Radke<br />
* Andrew Gregory<br />
** Pacman development<br />
* Ángel Velásquez<br />
* Antonio Rojas<br />
** Packaging (KDE, math stuff, orphans)<br />
* Bartłomiej Piotrowski<br />
** Packaging (mostly core and extra)<br />
** Bug tracker admin<br />
** Planet admin<br />
** Helping with rebuilds<br />
* Dan McGee<br />
* Daniel Isenmann<br />
* Dave Reisner<br />
* Eric Bélanger<br />
* Evangelos Foutras<br />
** Packaging (Xfce, LLVM/Clang)<br />
** Rebuild automation (arch-rebuilds)<br />
** Might be inactive for some period in 2016 and/or 2017<br />
* Felix Yan<br />
** Packaging (Python, Perl, Haskell, Nodejs, KDE/Qt, Deepin, Chinese/Japanese l10n, and more)<br />
* Florian Pritz<br />
** Packaging<br />
** Serveradmin<br />
** Mirrors<br />
** Mailinglists<br />
* Gaetan Bisson<br />
** Packaging<br />
* Gerardo Pozzi<br />
* Giovanni Scafora<br />
* Guillaume Alaux<br />
* Ionuț Mircea Bîru<br />
* Jan de Groot<br />
* Jan Steffens<br />
** Packaging (GNOME, misc other stuff)<br />
* Jürgen Hötzel<br />
* Laurent Carlier<br />
** Packaging (mesa, xorg)<br />
* Lukas Fleischer<br />
* Maxime Gauduin<br />
* Pierre Schmitz<br />
** Packaging<br />
*** PHP<br />
*** See https://www.archlinux.org/packages/?maintainer=pierre<br />
** Maintaining<br />
*** install ISO and bootstrap packages<br />
*** Keyring<br />
*** wiki and bbs software (MediaWiki, FluxBB, custom themes and extensions)<br />
* Ray Rashif<br />
* Rémy Oudompheng<br />
* Ronald van Haren<br />
* Sébastien Luttringer<br />
* Sven-Hendrik Haase<br />
** Packaging (NVIDIA stuff, multimedia stuff)<br />
* Thomas Bächler<br />
* Thomas Dziedzic<br />
* Tobias Powalowski<br />
* Tom Gundersen<br />
<br />
==Trusted Users==<br />
* Alexander Rødseth<br />
* Alexandre Filgueira<br />
* Anatol Pomozov<br />
* Andrzej Giniewicz<br />
* Antonio Rojas<br />
* Balló György<br />
* Christian Hesse<br />
* Connor Behan<br />
** Packaging<br />
* Daniel Micay<br />
* Daniel Wallace<br />
** Packaging<br />
* Evgeniy Alekseev<br />
* Fabio Castelli<br />
** Packaging<br />
* Ike Devolder<br />
** Packaging<br />
* Jakob Gruber<br />
** Packaging<br />
* Jaroslav Lichtblau<br />
* Jelle van der Waa<br />
* Jerome Leclanche<br />
** Packaging (LXQt)<br />
* Jiachen Yang<br />
* Johannes Löthberg<br />
* Jonathan Steel<br />
** Packaging<br />
* Kyle Keen<br />
* Laurent Carlier<br />
** Packaging<br />
* Levente Polyak<br />
** Packaging<br />
** Security team<br />
** Reproducible builds<br />
* Lukas Fleischer<br />
* Lukas Jirkovsky<br />
** Packaging<br />
* Martin Wimpress<br />
* Massimiliano Torromeo<br />
** Packaging<br />
* Maxime Gauduin<br />
* Pierre Neidhardt<br />
* Ray Rashif<br />
* Sébastien Luttringer<br />
* Sergej Pupykin<br />
* speps<br />
* Thomas Dziedzic<br />
* Thorsten Töpper<br />
* Timothy Redaelli<br />
* Xyne<br />
* Михаил Страшун<br />
<br />
==Support Staff==<br />
* Alad Wenter<br />
** Wiki administration<br />
* Christian Rebischke<br />
** arch-security mailinglist, searching CVE's in arch packages, writing bug reports<br />
* Doug Newgard<br />
** Bug tracker basic triage, sorting, correction, and assigning<br />
* Eric Waller<br />
* Jakob Wadsager<br />
* Jason Ryan<br />
** Forum Administration and Moderation<br />
** Wiki Administration<br />
* Johannes Löthberg<br />
* Levente Polyak<br />
** See above (TU)<br />
* Remi Gacogne<br />
** Security team<br />
** Reproducible builds<br />
* tigrmesh<br />
* WorMzy Tykashi<br />
** Forum moderation<br />
* Xyne</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=List_of_applications/Internet&diff=393199List of applications/Internet2015-08-23T01:07:11Z<p>ConnorBehan: /* Other */ - This was already listed</p>
<hr />
<div><noinclude><br />
[[Category:Internet applications]]<br />
[[cs:List of Applications/Internet]]<br />
[[es:List of applications/Internet]]<br />
[[it:List of Applications/Internet]]<br />
[[ja:アプリケーション一覧/インターネット]]<br />
[[ru:List of applications/Internet]]<br />
[[zh-cn:List of Applications/Internet]]<br />
[[zh-tw:List of Applications/Internet]]<br />
{{List of applications navigation}}<br />
</noinclude><br />
== Internet ==<br />
<br />
{{Note|1=For possibly more up to date selection of applications, try checking the [https://aur.archlinux.org/packages.php?O=0&K=&do_Search=Go&detail=1&C=13&SeB=nd&SB=n&SO=a&PP=50 AUR 'network' category]}}<br />
<br />
=== Network managers ===<br />
<br />
* {{App|[[Connman]]|Daemon for managing internet connections within embedded devices running the Linux operating system. Comes with a command-line client, plus Enlightenment, GTK and Dmenu clients are available.|https://connman.net/|{{Pkg|connman}}}}<br />
* {{App|[[netctl]]|Simple and robust tool to manage network connections via profiles. Intended for use with [[systemd]].|https://projects.archlinux.org/netctl.git/|{{Pkg|netctl}}}}<br />
* {{App|[[NetworkManager]]|Manager that provides wired, wireless, mobile broadband and OpenVPN detection with configuration and automatic connection.|http://projects.gnome.org/NetworkManager/|{{Pkg|networkmanager}}}}<br />
* {{App|[[systemd-networkd]]|Native [[systemd]] daemon that manages network configuration. It includes support for basic network configuration through udev and networkd. The service is available with systemd > 210.|http://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html|{{Pkg|systemd}}}}<br />
* {{App|[[Wicd]]|Wireless and wired connection manager with few dependencies. Comes with an ncurses interface, and a GTK interface {{Pkg|wicd-gtk}} is available.|http://wicd.sourceforge.net/|{{Pkg|wicd}}}}<br />
<br />
=== Web browsers ===<br />
<br />
See also [[Wikipedia:Comparison of web browsers]].<br />
<br />
==== Console ====<br />
<br />
* {{App|[[Wikipedia:ELinks|ELinks]]|Advanced and well-established feature-rich text mode web browser (Links fork, barely supported since 2009).|http://elinks.or.cz/|{{Pkg|elinks}}}}<br />
* {{App|[[Wikipedia:Links (web browser)|Links]]|Text WWW browser. Includes a console version [links] similar to Lynx, and a graphical X-window/framebuffer version [links -g] (must be compiled in, Arch has both) with CSS, image rendering, pull-down menus.|http://links.twibright.com/|{{Pkg|links}}}}<br />
* {{App|[[Wikipedia:Lynx (web browser)|Lynx]]|Text browser for the World Wide Web.|http://lynx.isc.org|{{Pkg|lynx}}}}<br />
* {{App|retawq|Interactive, multi-threaded network client (web browser) for text terminals.|http://retawq.sourceforge.net/|{{AUR|retawq}}}}<br />
* {{App|[[Wikipedia:W3m|w3m]]|Pager/text-based web browser. It has vim-like keybindings, and is able to display images. It has javascript support too.|http://w3m.sourceforge.net/|{{Pkg|w3m}}}}<br />
<br />
==== Graphical ====<br />
<br />
===== Gecko-based =====<br />
<br />
See also [[Wikipedia:Gecko (software)]].<br />
<br />
* {{App|[[Firefox]]|Extensible browser from Mozilla based on Gecko with fast rendering.|https://mozilla.com/firefox|{{Pkg|firefox}}}}<br />
* {{App|Seamonkey|Continuation of the Mozilla Internet Suite.|http://www.seamonkey-project.org/|{{Pkg|seamonkey}}}}<br />
* {{App|[[Wikipedia:Conkeror|Conkeror]]|Keyboard-based browser modeled after [[Emacs]] using [[Wikipedia:XULRunner|XULRunner]]. Customizable via JavaScript.|http://repo.or.cz/w/conkeror.git/|{{AUR|conkeror-git}}}}<br />
<br />
====== Firefox forks ======<br />
<br />
{{Warning|The following browsers are third-party builds of Firefox. Please direct any support requests to their respective creators.}}<br />
<br />
* {{App|[[Wikipedia:Mozilla Corporation software rebranded by the Debian project#IceWeasel|Iceweasel]]|Fork of Firefox developed by Debian Linux. The main difference is that it does not include any trademarked Mozilla artwork. See [http://web.glandium.org/blog/?p&#61;97] for more information on Iceweasel's existence.|https://wiki.debian.org/Iceweasel|{{AUR|iceweasel}}}}<br />
* {{App|[[Wikipedia:GNU IceCat|GNU IceCat]]|Web browser distributed by the GNU Project, stripped of non-free components and with additional privacy extensions. Release cycle may be delayed compared to Mozilla Firefox.|https://www.gnu.org/software/gnuzilla/|{{AUR|icecat}}}}<br />
* {{App|[[Wikipedia:Pale Moon (web browser)|Pale Moon]]|Fork based on Firefox, using a Firefox 3+ interface through selective use of add-ons. Firefox add-ons may not be compatible. [https://addons.palemoon.org/firefox/incompatible/] Compiled for SSE2, with disabled optional code and no support for newer Firefox features such as cache2, e10s, and OTMC.| http://www.palemoon.org/|{{AUR|palemoon-bin}}}}<br />
<br />
===== Blink-based =====<br />
<br />
See also [[Wikipedia:Blink (layout engine)]].<br />
<br />
* {{App|[[Chromium]]|Web browser developed by Google, the open source project behind Google Chrome.|http://www.chromium.org/|{{Pkg|chromium}}}}<br />
* {{App|[[Opera]]|Highly customizable browser with focuses on an adherence to web rendering standards.|http://opera.com|{{Pkg|opera}}}}<br />
<br />
===== Webkit-based =====<br />
<br />
See also [[Wikipedia:Webkit]].<br />
<br />
* {{App|[[Wikipedia:Arora (browser)|Arora]]|Cross-platform web browser built using QtWebKit. Development stopped in January 2012.|https://code.google.com/p/arora/|{{Pkg|arora}}}}<br />
* {{App|[[dwb]]|Lightweight, highly customizable web browser based on the WebKit engine with ''vi''-like shortcuts and tiling layouts. As of October 2014 ''dwb'' is [https://bitbucket.org/portix/dwb/pull-request/22/several-cleanups-to-increase-portability/diff#comment-3217936 unmaintained].|http://portix.bitbucket.org/dwb/|{{Pkg|dwb}}}}<br />
* {{App|[[GNOME Web]]|Browser which uses the WebKitGTK+ rendering engine, part of {{Grp|gnome}}.|https://wiki.gnome.org/Apps/Web/|{{Pkg|epiphany}}}}<br />
* {{App|[[Jumanji]]|Highly customizable and functional web browser.|http://pwmt.org/projects/jumanji|{{AUR|jumanji}}{{Broken package link|{{aur-mirror|jumanji}}}}}}<br />
* {{App|[[Luakit]]|Highly configurable, micro-browser framework based on the WebKit engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.|http://mason-larobina.github.com/luakit/|{{Pkg|luakit}}}}<br />
* {{App|Maxthon|A browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier.|http://www.maxthon.cn/|{{AUR|maxthon-browser}}{{Broken package link|{{aur-mirror|maxthon-browser}}}}}}<br />
* {{App|[[Wikipedia:Midori (web browser)|Midori]]|Lightweight web browser based on GTK+ and WebKit.|http://midori-browser.org/|{{Pkg|midori}}}}<br />
* {{App|Otter-browser|Browser aiming to recreate classic Opera (12.x) UI using Qt5.|http://otter-browser.org/|{{AUR|otter-browser}}}}<br />
* {{App|[[Wikipedia:QupZilla|QupZilla]]|New and very fast open source browser based on WebKit core, written in Qt framework.| http://www.qupzilla.com |{{pkg|qupzilla}}}}<br />
* {{App|[[qutebrowser]]|A keyboard-driven, vim-like browser based on PyQt5 and QtWebKit.|https://github.com/The-Compiler/qutebrowser|{{AUR|qutebrowser}}}}<br />
* {{App|[[wikipedia:Rekonq|Rekonq]]|WebKit-based web browser for KDE.|http://rekonq.kde.org/|{{Pkg|rekonq}}}}<br />
* {{App|Sb|Very lightweight WebKit-based browser that uses keybindings to perform most things the URL bar would usually do.|https://github.com/mutantturkey/sb/|{{AUR|sb-git}}{{Broken package link|{{aur-mirror|sb-git}}}}}}<br />
* {{App|SlimBoat|Fast, free secure and powerful web browser based on QtWebkit.|http://www.slimboat.com/|{{AUR|slimboat}}{{Broken package link|{{aur-mirror|slimboat}}}}}}<br />
* {{App|Surf|Lightweight WebKit-based browser, which follows the [http://suckless.org/philosophy suckless ideology] (basically, the browser itself is a single C source file).|http://surf.suckless.org|{{Pkg|surf}}}}<br />
* {{App|[[Wikipedia:Uzbl|Uzbl]]|Group of web interface tools which adhere to the Unix philosophy.|http://uzbl.org/|{{Pkg|uzbl-browser}}}}<br />
* {{App|vimb|Fast and lightweight vim like web browser based on the webkit web browser engine and the GTK toolkit.|https://fanglingsu.github.io/vimb/|{{AUR|vimb}}}}<br />
* {{App|[[Vimprobable]]|Browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine and uses the GTK+ bindings.|http://sourceforge.net/apps/trac/vimprobable/|{{AUR|vimprobable-git}}{{Broken package link|{{aur-mirror|vimprobable-git}}}}}}<br />
* {{App|[[Wikipedia:Xombrero|Xombrero]] (formerly known as ''xxxterm'') |Webkit minimalist web browser with sophisticated security features designed-in, BSD style.|https://opensource.conformal.com/wiki/xombrero|{{AUR|xombrero-git}}{{Broken package link|{{aur-mirror|xombrero-git}}}}}}<br />
<br />
===== Other =====<br />
<br />
* {{App|[[Wikipedia:Konqueror|Konqueror]]|Web browser based on Qt and KHTML, part of {{Grp|kdebase}}.|http://konqueror.org/|{{Pkg|kdebase-konqueror}}}}<br />
* {{App|[[Wikipedia:Abaco (web browser)|Abaco]]|Multi-page graphical web browser for the Plan 9 OS.|http://lab-fgb.com/abaco/|{{AUR|abaco}}{{Broken package link|{{aur-mirror|abaco}}}}}}<br />
* {{App|[[Wikipedia:Dillo|Dillo]]|Small, fast graphical web browser built on [[Wikipedia:Fltk|FLTK]].|http://dillo.org/|{{Pkg|dillo}}}}<br />
* {{App|[[Wikipedia:NetSurf|NetSurf]]|Featherweight browser written in C, notable for its slowly developing JavaScript support and fast rendering through its own custom rendering engine.|http://netsurf-browser.org|{{Pkg|netsurf}}}}<br />
<br />
=== Downloaders ===<br />
<br />
==== FTP ====<br />
<br />
===== FTP clients =====<br />
<br />
See also [[Wikipedia:Comparison of FTP client software]].<br />
<br />
* {{App|[[CurlFtpFS]]|Filesystem for accessing FTP hosts; based on FUSE and libcurl.|http://curlftpfs.sourceforge.net/|{{Pkg|curlftpfs}}}}<br />
* {{App|FatRat|Download manager with support for HTTP, FTP, SFTP, BitTorrent, RapidShare and more.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:FileZilla|FileZilla]]|Fast and reliable FTP, FTPS and SFTP client.|http://filezilla-project.org/|{{Pkg|filezilla}}}}<br />
* {{App|[[FtpFs#Fuseftp|fuseftp]]|FTP filesystem written in Perl, using [[Wikipedia:Filesystem in Userspace|FUSE]].|http://freshmeat.net/projects/fuseftp/|{{AUR|fuseftp}}{{Broken package link|{{aur-mirror|fuseftp}}}}}}<br />
* {{App|[[Wikipedia:gFTP|gFTP]]|Multithreaded FTP client for Linux.|http://gftp.seul.org/|{{Pkg|gftp}}}}<br />
* {{App|[[Wikipedia:Lftp|LFTP]]|Sophisticated command-line FTP client.|http://lftp.yar.ru/|{{Pkg|lftp}}}}<br />
* {{App|LftpFS|Read-only filesystem based on lftp (also supports HTTP, FISH, SFTP, HTTPS, FTPS and proxies).|http://lftpfs.sourceforge.net/|{{AUR|lftpfs}}{{Broken package link|{{aur-mirror|lftpfs}}}}}}<br />
* {{App|[[Wikipedia:tnftp|tnftp]]|FTP client with several advanced features for [[Wikipedia:NetBSD|NetBSD]].|http://freecode.com/projects/tnftp|{{Pkg|tnftp}}}}<br />
Some file managers like Dolphin, [[GNOME Files]] and [[Thunar]] also provide FTP functionality.<br />
<br />
===== FTP servers =====<br />
<br />
* {{App|bftpd|Small, easy-to-configure FTP server|http://bftpd.sourceforge.net/|{{Pkg|bftpd}}}}<br />
* {{App|[[Proftpd|proFTPd]]|A secure and configurable FTP server|http://www.proftpd.org/|{{AUR|proftpd}}}}<br />
* {{App|[[Pure-FTPd]]|Free (BSD-licensed), secure, production-quality and standard-compliant FTP server.|http://www.pureftpd.org/project/pure-ftpd|{{AUR|pure-ftpd}}}}<br />
* {{App|[[vsftpd]]|Lightweight, stable and secure FTP server for UNIX-like systems.|https://security.appspot.com/vsftpd.html|{{Pkg|vsftpd}}}}<br />
<br />
==== BitTorrent clients ====<br />
<br />
See also [[Wikipedia:Comparison of BitTorrent clients]].<br />
<br />
===== Console =====<br />
<br />
====== Command line / backend ======<br />
Can be used as-is via command line, but all have a choice of front-end options as well.<br />
* {{App|[[aria2]]|Lightweight download utility that supports simultaneous adaptive downloading via HTTP(S), FTP, BitTorrent (DHT, PEX, MSE/PE) protocols and Metalink. It can run as a daemon controlled via a built-in JSON-RPC or XML-RPC interface.|http://aria2.sourceforge.net/|{{Pkg|aria2}}}}<br />
* {{App|[[btpd]]|Simple BitTorrent client daemon with a command-line interface (web and GTK+ interfaces are also available).|http://github.com/btpd/btpd|{{AUR|btpd}}{{Broken package link|{{aur-mirror|btpd}}}}}}<br />
* {{App|[[Wikipedia:MLDonkey|MLDonkey]]|Multi-protocol P2P client that supports BitTorrent, HTTP, FTP, eDonkey and Direct Connect.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-cli}} (includes backend, daemon, command-line interface, and a Web UI interface)}}<br />
<br />
====== Console Interface ======<br />
* {{App|[[rTorrent]]|Simple and lightweight ncurses BitTorrent client. Requires {{Pkg|libtorrent}} backend.|https://rakshasa.github.io/rtorrent/|{{Pkg|rtorrent}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with a daemon version, ncurses CLI. Requires {{Pkg|transmission-cli}} backend.|http://transmissionbt.com/|{{Pkg|transmission-remote-cli}}}}<br />
<br />
===== Graphical Interface =====<br />
<br />
====== libtorrent-rasterbar backend ======<br />
<br />
* {{App|[[Deluge]]|User-friendly BitTorrent client written in PyGTK that can run as a daemon.|http://deluge-torrent.org/|{{Pkg|deluge}}}}<br />
* {{App|FatRat|Qt4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more. Written in C++.|http://fatrat.dolezel.info/|{{AUR|fatrat-git}}}}<br />
* {{App|[[Wikipedia:qBittorrent|qBittorrent]]|Open source (GPLv2) BitTorrent client that strongly resembles µtorrent.|http://www.qbittorrent.org/|{{Pkg|qbittorrent}}}}<br />
* {{App|[[Wikipedia:Tribler|Tribler]]|4th generation file sharing system bittorrent client.|http://www.tribler.org|{{AUR|tribler}}{{Broken package link|{{aur-mirror|tribler}}}}}}<br />
<br />
====== libktorrent backend ======<br />
* {{App|[[Wikipedia:KGet|KGet]]|Download manager for KDE that supports HTTP(S), FTP and BitTorrent. Part of {{Grp|kdenetwork}}.|http://www.kde.org/applications/internet/kget/|{{Pkg|kdenetwork-kget}}}}<br />
* {{App|[[Ktorrent]]|Feature-rich BitTorrent client for KDE.|http://ktorrent.org/|{{Pkg|ktorrent}}}}<br />
<br />
====== others ======<br />
* {{App|QTorrent|BitTorrent client written in PyQt3.|http://thegraveyard.org/qtorrent.php{{Dead link|2012|09|20}}|{{AUR|qtorrent}}{{Broken package link|{{aur-mirror|qtorrent}}}}}}<br />
* {{App|Tixati|P2P client that uses the BitTorrent protocol.|http://www.tixati.com|{{AUR|tixati}}}}<br />
* {{App|[[Transmission]]|Simple and easy-to-use BitTorrent client with daemon version, GTK+, Qt GUI, web and CLI front-ends.|http://transmissionbt.com/|{{Pkg|transmission-gtk}} {{Pkg|transmission-qt}} {{AUR|transmission-remote-gtk}} (remote clients work with the daemon in the -cli package)}}<br />
* {{App|[[Wikipedia:Vuze|Vuze]]|Feature-rich BitTorrent client written in Java (formerly Azureus).|https://www.vuze.com/|{{AUR|vuze}}}}<br />
<br />
==== eDonkey clients ====<br />
<br />
eDonkey is still the second-largest p2p network (see [http://ipoque.com/en/resources/internet-studies Internet Study 2008/2009]).<br />
<br />
See also [[Wikipedia:Comparison of eDonkey software]].<br />
<br />
* {{App|[[aMule]]|Well-known eDonkey/Kad client with a daemon version and GTK+, web, and CLI front-ends.|http://www.amule.org/|{{Pkg|amule}}}}<br />
* {{App|KaMule|KDE graphical front-end for aMule.|http://kde-apps.org/content/show.php?content&#61;150270|{{AUR|kamule}}{{Broken package link|{{aur-mirror|kamule}}}}}}<br />
* {{App|MlDonkey|A multi-network P2P client.|http://mldonkey.sourceforge.net/|{{Pkg|mldonkey}}}}<br />
<br />
==== Gnutella ====<br />
<br />
* {{App|[[Wikipedia:Sharelin|Sharelin]]|Gnutella2 only client with a web UI.|http://sourceforge.net/apps/mediawiki/sharelin|{{AUR|sharelin}}{{Broken package link|{{aur-mirror|sharelin}}}}}}<br />
<br />
=== Communication ===<br />
<br />
==== Email clients ====<br />
<br />
See also [[Wikipedia:Comparison of e-mail clients]].<br />
<br />
===== Console =====<br />
<br />
* {{App|alot|An experimental terminal MUA based on [http://notmuchmail.org/ notmuch mail]. It is written in python using the [http://urwid.org/ urwid] toolkit.|https://github.com/pazz/alot|{{AUR|alot}} {{AUR|alot-git}}{{Broken package link|{{aur-mirror|alot-git}}}}}}<br />
* {{App|[[Alpine]]|Fast, easy-to-use and Apache-licensed email client based on [[Wikipedia:Pine (email client)|Pine]].|https://washington.edu/alpine|{{AUR|re-alpine}}{{Broken package link|{{aur-mirror|re-alpine}}}} {{AUR|alpine}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|S-nail|a mail processing system with a command syntax reminiscent of ''ed'' with lines replaced by messages. Provides the functionality of [[Wikipedia:mailx|mailx]] and much more.|http://sourceforge.net/projects/s-nail/|{{Pkg|s-nail}}}}<br />
* {{App|mu/mu4e|Email indexer (mu) and client for emacs (mu4e). Xapian based for fast searches.|http://www.djcbsoftware.nl/code/mu/mu4e.html|{{AUR|mu}}}}<br />
* {{App|[[Mutt]]|Small but very powerful text-based mail client.|http://www.mutt.org/|{{Pkg|mutt}}}}<br />
* {{App|Nmh|A modular mail handling system.|http://www.nongnu.org/nmh/|{{AUR|nmh}} {{AUR|nmh-git}}}}<br />
* {{App|[[notmuch]]|A fast mail indexer built on top of ''xapian''.|http://notmuchmail.org/|{{Pkg|notmuch}} {{Pkg|notmuch-vim}} {{Pkg|notmuch-mutt}}}}<br />
* {{App|[[Sup]]|CLI mail client with very fast searching, tagging, threading and GMail like operation.|http://supmua.org/|{{AUR|sup}}}}<br />
* {{App|Wanderlust|Email client and news reader for Emacs.|http://www.gohome.org/wl/|{{Pkg|wanderlust}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Balsa]]|Simple and light email client that is part of the Gnome project.|http://pawsa.fedorapeople.org/balsa/|{{Pkg|balsa}}}}<br />
* {{App|[[Wikipedia:Claws Mail|Claws Mail]]|Lightweight GTK-based email client and news reader.|http://claws-mail.org/|{{Pkg|claws-mail}}}}<br />
* {{App|[[Evolution]]|Mature and feature-rich e-mail client used in GNOME by default. Part of {{Grp|gnome-extra}}.|http://projects.gnome.org/evolution/|{{Pkg|evolution}}}}<br />
* {{App|Geary|Simple desktop mail client built in [[Wikipedia:Vala (programming language)|Vala]].|https://wiki.gnome.org/Apps/Geary|{{Pkg|geary}}}}<br />
* {{App|[[Wikipedia:Kmail|Kmail]]|Mature and feature-rich email client. Part of {{Grp|kdepim}}{{Broken package link|replaced by {{Pkg|kde-meta-kdepim}}}}.|http://kde.org/applications/internet/kmail/|{{Pkg|kdepim-kmail}}}}<br />
* {{App|Manitou Mail|Database-driven email system.|http://www.manitou-mail.org/|{{AUR|manitou-mdx}}{{Broken package link|{{aur-mirror|manitou-mdx}}}} {{AUR|manitou-ui}}{{Broken package link|{{aur-mirror|manitou-ui}}}}}}<br />
* {{App|Roundcubemail|Browser-based multilingual IMAP client with a native application-like user interface.|http://roundcube.net/|{{Pkg|roundcubemail}}}}<br />
* {{App|[[Wikipedia:Sylpheed|Sylpheed]]|Lightweight and user-friendly GTK+ email client.|http://sylpheed.sraoss.jp/en/|{{Pkg|sylpheed}}}}<br />
* {{App|[[Thunderbird]]|Feature-rich email client from Mozilla written in GTK+.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Trojitá|Qt IMAP email client. Only supports one IMAP account.|http://trojita.flaska.net/|{{Pkg|trojita}}}}<br />
<br />
==== Instant messaging ====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging protocols]].<br />
<br />
This section lists all software with [[Wikipedia:Instant messaging|instant messaging]] support. Particularly, that are client and server applications.<br />
<br />
===== IRC clients =====<br />
<br />
See also [[Wikipedia:Comparison of Internet Relay Chat clients]].<br />
<br />
{{Note|Most web browsers and many IM clients also support IRC.}}<br />
<br />
====== Console ======<br />
<br />
* {{App|[[Wikipedia:BitchX|BitchX]]|Console-based IRC client developed from the popular [[Wikipedia:ircII|ircII]].|http://www.bitchx.org/|{{AUR|bitchx-git}}}}<br />
* {{App|ERC|Powerful, modular, and extensible IRC client for [[Emacs]].|http://savannah.gnu.org/projects/erc/|{{AUR|erc-git}}{{Broken package link|{{aur-mirror|erc-git}}}}}}<br />
* {{App|[[Wikipedia:Ii (IRC client)|ii]]|Featherweight IRC client, literally {{ic|tail -f}} the conversation and {{ic|echo}} back your replies to a file.|http://tools.suckless.org/ii|{{AUR|ii}}}}<br />
* {{App|Ircfs|File system interface to IRC written in [http://limbo.cat-v.org Limbo].|http://www.ueber.net/code/r/ircfs|{{AUR?|ircfs}}}}<br />
* {{App|[[Irssi]]|Highly-configurable ncurses-based IRC client.|http://irssi.org/|{{Pkg|irssi}}}}<br />
* {{App|ScrollZ|Advanced IRC client based on [[Wikipedia:ircII|ircII]].|http://www.scrollz.info/|{{AUR|scrollz}}}}<br />
* {{App|sic|Extremely simple IRC client, similar to [[Wikipedia:Ii (IRC client)|ii]].|http://tools.suckless.org/sic|{{AUR|sic}}{{Broken package link|{{aur-mirror|sic}}}}}}<br />
* {{App|[[Wikipedia:WeeChat|WeeChat]]|Modular, lightweight ncurses-based IRC client.|http://weechat.org/|{{Pkg|weechat}}}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|HexChat|Fork of XChat for Linux and Windows.|http://hexchat.github.io/|{{Pkg|hexchat}}}}<br />
* {{App|[[Wikipedia:Konversation|Konversation]]|Qt-based IRC client for the KDE desktop.|http://konversation.kde.org/|{{Pkg|konversation}}}}<br />
* {{App|[[Wikipedia:KVIrc|KVIrc]]|Qt-based IRC client featuring extensive themes support.|http://kvirc.net/|{{Pkg|kvirc}}}}<br />
* {{App|Loqui|GTK+ IRC client with only one dependency: [https://live.gnome.org/GNetLibrary GNet].|https://launchpad.net/loqui|{{AUR|loqui}}}}<br />
* {{App|LostIRC|Simple GTK+ IRC client with tab-autocompletion, multiple server support, logging and others.|http://lostirc.sourceforge.net|{{AUR|lostirc}}}}<br />
* {{App|pcw|Frontend for [http://tools.suckless.org/ii ii] that opens a new terminal for each channel.|https://bitbucket.org/emg/pcw|{{AUR|pcw-hg}}{{Broken package link|{{aur-mirror|pcw-hg}}}}}}<br />
* {{App|[[Wikipedia:Quassel IRC|Quassel]]|Modern, cross-platform, distributed IRC client.|http://quassel-irc.org/|{{Pkg|quassel-core}} {{Pkg|quassel-client}}}}<br />
* {{App|[[Wikipedia:Smuxi|Smuxi]]|Cross-platform IRC client for the GNOME desktop inspired by [[Irssi]].|http://smuxi.org/|{{Pkg|smuxi}}}}<br />
* {{App|[[Wikipedia:XChat|XChat]]|GTK-based IRC client that works on both Linux and Windows.|http://xchat.org/|{{Pkg|xchat}}}}<br />
<br />
===== XMPP (Jabber) =====<br />
<br />
See also [[Wikipedia:XMPP]] and [[Wikipedia:Comparison of instant messaging clients#XMPP-related features]].<br />
<br />
====== Console clients ======<br />
<br />
* {{App|Freetalk|Console-based Jabber client.|https://gnu.org/s/freetalk/|{{Pkg|freetalk}}}}<br />
* {{App|jabber.el|Minimal Jabber client for [[Emacs]].|http://emacs-jabber.sourceforge.net/|{{AUR|emacs-jabber}}}}<br />
* {{App|[[Wikipedia:MCabber|MCabber]]|Small Jabber console client, includes features: SSL, PGP, MUC, OTR, and UTF8.|http://mcabber.com/|{{Pkg|mcabber}}}}<br />
* {{App|Profanity|A console based Jabber client inspired by Irssi.|http://www.profanity.im/|{{Pkg|profanity}}}}<br />
<br />
====== Graphical clients ======<br />
<br />
* {{App|[[Wikipedia:Gajim|Gajim]]|Jabber client written in PyGTK.|https://gajim.org/|{{Pkg|gajim}}}}<br />
* {{App|Jabbim|Jabber client written in PyQt.|http://www.jabbim.com/|{{AUR|jabbim-svn}}{{Broken package link|{{aur-mirror|jabbim-svn}}}}}}<br />
* {{App|[[Wikipedia:Psi (instant messaging client)|Psi]]|Qt-based Jabber client which supports video conferencing (since version 0.13).|http://psi-im.org/|{{Pkg|psi}} {{Pkg|psimedia}}}}<br />
* {{App|Psi+|Enhanced version of the Psi Jabber client with many new [http://psi-plus.com/wiki/en:features#differences_between_psi_beta_version_and_the_official_psi_015-dev_version features].|https://code.google.com/p/psi-dev/|{{AUR|psi-plus-git}}}}<br />
* {{App|[[Wikipedia:Tkabber|Tkabber]]|Easy to hack feature-rich XMPP client by the author of the ejabberd XMPP server.|http://tkabber.jabber.ru/|{{Pkg|tkabber}}}}<br />
<br />
====== Servers ======<br />
<br />
See also [[Wikipedia:Comparison of XMPP server software]].<br />
<br />
* {{App|[[Prosody]]|An XMPP server written in the [http://www.lua.org/ Lua] programming language. Prosody is designed to be lightweight and highly extensible. It is licensed under a permissive [http://prosody.im/source/mit MIT license].|http://prosody.im/|{{Pkg|prosody}}}}<br />
* {{App|Ejabberd|Jabber server written in Erlang|http://www.ejabberd.im/|{{Pkg|ejabberd}}}}<br />
* {{App|[[Jabberd2]]|An XMPP server written in the C language and licensed under the GNU General Public License. It was inspired by jabberd14.|http://jabberd2.org|{{AUR|jabberd2}}{{Broken package link|{{aur-mirror|jabberd2}}}}}}<br />
* {{App|Openfire|An XMPP IM multiplatform server written in Java|http://www.igniterealtime.org/projects/openfire/|{{Pkg|openfire}}}}<br />
<br />
===== Multi-protocol clients =====<br />
<br />
See also [[Wikipedia:Comparison of instant messaging clients]].<br />
<br />
{{Note|All messengers, that support several networks by means of direct connections to them, belong to this section.}}<br />
<br />
Many clients listed here (including Pidgin and all its forks) support multiple IM networks via [[Wikipedia:libpurple|libpurple]]. The number of networks supported by these clients is very large but they (like any multiprotocol clients) usually have very limited or no support for network-specific features.<br />
<br />
====== Console ======<br />
<br />
* {{App|BarnOwl|Ncurses-based chat client with support for the Zephyr, AIM, Jabber, IRC, and Twitter protocols.|http://barnowl.mit.edu/|{{AUR|barnowl}}}}<br />
* {{App|[[Bitlbee]]|IRC client that provides a gateway to popular chat networks (XMPP, MSN, Yahoo, AIM, ICQ and Twitter).|http://bitlbee.org/|{{Pkg|bitlbee}}}}<br />
* {{App|[[Wikipedia:Centericq|CenterIM]]|Fork of CenterICQ, a text mode menu- and window-driven IM interface.|http://centerim.org/|{{Pkg|centerim}}}}<br />
* {{App|[[Pidgin|Finch]]|Ncurses-based chat client that uses libpurple and supports all its protocols.|http://developer.pidgin.im/wiki/Using%20Finch|{{Pkg|finch}}}}<br />
* {{App|[[Wikipedia:naim (software)|naim]]|Ncurses chat client with support for AOL, ICQ, IRC and the Lily CMC.|http://naim.n.ml.org/|{{Pkg|naim}}}}<br />
* {{App|pork|Programmable, ncurses-based AIM and IRC client that mostly looks and feels like ircII.|http://dev.ojnk.net/|{{Pkg|pork}}}}<br />
* {{App|[[Tox]]|Tox is a distributed, secure messenger with audio and video chat capabilities.|https://tox.chat/|{{AUR|tox-git}}}}<br />
<br />
====== Graphical ======<br />
<br />
* {{App|Carrier|Pidgin fork providing minor GUI enhancements (formerly FunPidgin).|http://funpidgin.sourceforge.net/|{{AUR|carrier}}{{Broken package link|{{aur-mirror|carrier}}}}}}<br />
* {{App|[[Wikipedia:Emesene|Emesene]]|PyGTK instant messenger for the Windows Live Messenger network, also compatible with Jabber, Facebook and Google Talk.|http://emesene.org/|{{AUR|emesene}}{{Broken package link|{{aur-mirror|emesene}}}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework.|http://live.gnome.org/Empathy|{{Pkg|empathy}}}}<br />
* {{App|Galaxium Messenger|Messenger application designed for the GNOME desktop.|https://code.google.com/p/galaxium/|{{AUR|galaxium}}{{Broken package link|{{aur-mirror|galaxium}}}}}}<br />
* {{App|[[Wikipedia:Instantbird|Instantbird]]|Multi-protocol chat client using Mozilla's XUL and libpurple.|http://instantbird.com/|{{AUR|instantbird}}}}<br />
* {{App|[[Wikipedia:Kopete|Kopete]]|User-friendly IM supporting AIM, ICQ, Windows Live Messenger, Yahoo, Jabber, Gadu-Gadu, Novell GroupWise Messenger, and other IM networks. Part of {{Grp|kdenetwork}}.|http://kopete.kde.org/|{{Pkg|kdenetwork-kopete}}}}<br />
* {{App|[[KDE#KDE Telepathy|KDE Telepathy]]|KDE instant messaging client using the [[Wikipedia:Telepathy (software)|Telepathy]] framework. Meant as a replacement for Kopete.|http://community.kde.org/Real-Time_Communication_and_Collaboration/|{{Pkg|telepathy-kde-meta}}}}<br />
* {{App|Licq|Instant messaging client for UNIX supporting multiple protocols (currently ICQ, MSN and Jabber).|http://www.licq.org|{{Pkg|licq}}}}<br />
* {{App|Mikutter|An open-source Twitter client using [[GTK+]] and Ruby.|http://mikutter.hachune.net/|{{AUR|mikutter}} {{AUR|mikutter-git}}{{Broken package link|{{aur-mirror|mikutter-git}}}}}}<br />
* {{App|[[Pidgin]]|Multi-protocol instant messaging client.|http://pidgin.im/|{{Pkg|pidgin}} {{AUR|pidgin-light}}}}<br />
* {{App|qutIM|Simple and user-friendly IM supporting ICQ, Jabber, Mail.Ru, IRC and VKontakte messaging.|http://qutim.org/|{{AUR|qutim-stable}}{{Broken package link|{{aur-mirror|qutim-stable}}}}}}<br />
<br />
===== Lan messengers =====<br />
<br />
See also: [[Wikipedia:Comparison_of_LAN_messengers|Comparison of LAN messengers]].<br />
<br />
* {{App|iptux|Lan communication software, compatible with IP Messenger.|https://github.com/iptux-src/iptux|{{AUR|iptux}}{{Broken package link|{{aur-mirror|iptux}}}}}}<br />
<br />
==== VoIP / Softphone ====<br />
<br />
See also [[Wikipedia:Comparison of VoIP software]] and [[Wikipedia:List of SIP software]].<br />
<br />
===== Clients =====<br />
<br />
{{Note| Some [[#Instant messaging|IM clients]] also offer voice and video communication}}<br />
<br />
====== SIP ======<br />
* {{App|[[Wikipedia:Blink (software)|Blink]]|State of the art, easy to use SIP client.|http://www.icanblink.com/|{{AUR|blink-darcs}}{{Broken package link|{{aur-mirror|blink-darcs}}}}}}<br />
* {{App|[[Wikipedia:Ekiga|Ekiga]]|VoIP and video conferencing application with full SIP and H.323 support (formerly known as GNOME Meeting).|http://www.ekiga.org/|{{Pkg|ekiga}}}}<br />
* {{App|[[Wikipedia:Empathy (software)|Empathy]]|GNOME instant messenger client using the Telepathy framework with SIP support (using the Sofia-SIP library).|https://live.gnome.org/Empathy|{{Pkg|empathy}}}}<br />
* {{App|[[Wikipedia:Jitsi|Jitsi]]|Audio/video SIP VoIP phone and instant messenger written in Java (formerly SIP-Communicator).|https://jitsi.org/|{{AUR|jitsi}}}}<br />
* {{App|[[Wikipedia:KPhone|KPhone]]|Qt SIP User Agent with voice, video and text messaging support.|http://sourceforge.net/projects/kphone/|{{AUR?|kphone}}}}<br />
* {{App|[[Wikipedia:Linphone|Linphone]]|VoIP phone application that allows you to to communicate freely with people over the internet, with voice, video, and text instant messaging.|http://www.linphone.org/|{{Pkg|linphone}}}}<br />
* {{App|Minisip|SIP User Agent with focus on security (supports TLS, end-to-end security, SRTP, MIKEY (DH, PSK, PKE)).|http://www.minisip.org/|{{AUR?|minisip}}}}<br />
* {{App|[[Wikipedia:QuteCom|QuteCom]]|Softphone which allows you to make free PC to PC video and voice calls, and to integrate all your IM contacts in one place (formerly Wengo Phone).|http://trac.qutecom.org/|{{AUR|qutecom}}{{Broken package link|{{aur-mirror|qutecom}}}}}}<br />
* {{App|[[Wikipedia:Twinkle (software)|Twinkle]]|Qt softphone for VoIP and IM communication using SIP.|http://www.twinklephone.com/|{{AUR|twinkle}}}}<br />
* {{App|[[Wikipedia:X-Lite|X-Lite]]|Proprietary freeware VoIP soft phone that uses SIP.|http://www.counterpath.net/x-lite|{{AUR|xlite_bin}}}}<br />
* {{App|[[Wikipedia:Zfone|Zfone]]|Softphone application for secure voice communication over the Internet (VoIP), using the ZRTP protocol.|http://zfoneproject.com/|{{AUR|zfone}}{{Broken package link|{{aur-mirror|zfone}}}}}}<br />
<br />
====== IAX2 ======<br />
* {{App|Kiax|Qt-based IAX/2 Softphone.|http://www.forschung-direkt.eu/projects/kiax2/|{{AUR|kiax}}{{Broken package link|{{aur-mirror|kiax}}}}}}<br />
<br />
====== Skype ======<br />
* {{App|[[Skype]]|Popular but proprietary application for high-quality voice communication.|http://www.skype.com/|{{Pkg|skype}}}}<br />
<br />
====== Other ======<br />
* {{App|Hangups|A third-party instant messaging client for Google Hangouts|https://github.com/tdryer/hangups|{{AUR|hangups-git}}}}<br />
* {{App|[[Wikipedia:Mumble (software)|Mumble]]|Voice chat application similar to TeamSpeak.|http://mumble.sourceforge.net/|{{pkg|mumble}}}}<br />
* {{App|[[TeamSpeak]]|Proprietary VoIP application with gamers as its target audience.|http://www.teamspeak.com/|{{Pkg|teamspeak3}}}}<br />
* {{App|Webex|Proprietary conferencing software.|http://www.webex.com/|{{AUR|webex}}{{Broken package link|{{aur-mirror|webex}}}}}}<br />
<br />
====== Multi-protocol ======<br />
* {{App|[[Wikipedia:SFLphone|SFLPhone]]|Open-source SIP/IAX2 compatible softphone with PulseAudio support.|http://sflphone.org/|{{AUR|sflphone}}{{Broken package link|{{aur-mirror|sflphone}}}}}}<br />
<br />
===== Utilities =====<br />
<br />
* {{App|Gladstone|Educational ITU-T G.729 compliant codec with a GStreamer plugin.|https://gitorious.org/gladstone|{{AUR|gladstone-drizztbsd-git}}}}<br />
* {{App|SIPp|Open source test tool and traffic generator for the SIP protocol.|http://sipp.sourceforge.net/|{{AUR|sipp}}}}<br />
* {{App|Sipsak|Small command-line tool for developers and administrators of SIP applications.|http://sipsak.org/|{{AUR|sipsak}}{{Broken package link|{{aur-mirror|sipsak}}}}}}<br />
<br />
==== Speech recognition ====<br />
<br />
See [[Speech recognition#List of speech recognition application]].<br />
<br />
=== News, RSS, and blogs ===<br />
<br />
==== News aggregators ====<br />
<br />
See also [[Wikipedia:Comparison of feed aggregators]].<br />
<br />
===== Console =====<br />
<br />
* {{App|[[Wikipedia:Canto (news aggregator)|Canto]]|Ncurses RSS aggregator.|http://codezen.org/canto/|{{AUR|canto-next-git}}}}<br />
* {{App|[[Wikipedia:Gnus|Gnus]]|Email, NNTP and RSS client for Emacs.|http://gnus.org/|{{AUR|emacs-gnus-git}}}}<br />
* {{App|Newsbeuter|Ncurses RSS aggregator with layout and keybinding similar to the [[Mutt]] email client.|http://newsbeuter.org|{{Pkg|newsbeuter}}}}<br />
* {{App|Rawdog|"RSS Aggregator Without Delusions Of Grandeur" that parses RSS/CDF/Atom feeds into a static HTML page of articles in chronological order.|http://offog.org/code/rawdog.html|{{AUR|rawdog}}}}<br />
* {{App|Snownews|Text mode RSS news reader.|http://kiza.kcore.de/software/snownews/|{{Pkg|snownews}}}}<br />
<br />
===== Graphical =====<br />
<br />
* {{App|[[Wikipedia:Kontact#News Feed Aggregator|Akregator]]|News aggregator for KDE, part of {{Grp|kdepim}}{{Broken package link|replaced by {{Pkg|kde-meta-kdepim}}}}.|http://kde.org/applications/internet/akregator/|{{Pkg|kdepim-akregator}}}}<br />
* {{App|Blam|Simple newsreader for GNOME written in C Sharp.| https://git.gnome.org/browse/blam|{{Pkg|blam}}}}<br />
* {{App|[[Wikipedia:BlogBridge|BlogBridge]]|Excellent Java-based aggregator, which gives users the option to synchronize their feeds across multiple computers. Though according to the official website, project is not being supported any more.|http://blogbridge.com|{{AUR|blogbridge}}{{Broken package link|{{aur-mirror|blogbridge}}}}}}<br />
* {{App|[[Wikipedia:Liferea|Liferea]]|GTK+ news aggregator for online news feeds and weblogs.| http://liferea.sourceforge.net|{{Pkg|liferea}}}}<br />
* {{App|RSS Guard|Very tiny RSS and ATOM news reader developed using Qt framework.|https://bitbucket.org/skunkos/rssguard|{{AUR|rssguard}}}}<br />
* {{App|[[Wikipedia:RSSOwl|RSSOwl]]|Powerful aggregator for RSS and Atom feeds, written in Java using Eclipse Rich Client Platform and SWT as a widget toolkit.|http://boreal.rssowl.org|{{AUR|rssowl}}}}<br />
* {{App|[[Thunderbird]]|Email client from Mozilla which also functions as a pretty nice news aggregator.|http://www.mozilla.org/thunderbird/|{{Pkg|thunderbird}}}}<br />
* {{App|Tickr (formerly News)|GTK-based RSS Reader that displays feeds as a smooth scrolling line on your Desktop, as known from TV stations.|http://newsrssticker.com/|{{AUR|tickr}}{{Broken package link|{{aur-mirror|tickr}}}}}}<br />
* {{App|Urssus|Cross platform GUI news aggregator.|https://code.google.com/p/urssus/|{{AUR|urssus}}}}<br />
* {{App|QuiteRSS|RSS/Atom feed reader written on Qt/С++.|http://quiterss.org/|{{AUR|quiterss}}}}<br />
<br />
==== Podcast clients ====<br />
<br />
* {{App|gPodder|A podcast client and feed aggregator (GTK+ and CLI interface).|http://gpodder.org/|{{AUR|gpodder3}}}}<br />
* {{App|Greg|A command-line podcast aggregator.|https://github.com/manolomartinez/greg|{{AUR|greg-git}}{{Broken package link|{{aur-mirror|greg-git}}}}}}<br />
* {{App|Marrie|A simple podcast client that runs on the Command Line Interface.|https://github.com/rafaelmartins/marrie/|{{AUR|marrie-git}}}}<br />
* {{App|PodCastXDL|A simple podcast Downloader for the terminal.|https://github.com/levi0x0/PodCastXDL|{{AUR|podcastxdl-git}}{{Broken package link|{{aur-mirror|podcastxdl-git}}}}}}<br />
* {{App|Vocal|Simple Podcast Client for the Modern Desktop (GTK+).|https://launchpad.net/vocal|{{AUR|vocal-bzr}}}}<br />
<br />
==== Usenet newsreaders & newsgrabbers ====<br />
<br />
Some [[#Email_clients|email clients]] also support NNTP. This section mainly lists NNTP-only client.<br />
<br />
See also: [[Wikipedia:List of Usenet newsreaders]], [[Wikipedia:Comparison of Usenet newsreaders]].<br />
<br />
* {{app|lottanzb|A ''SABnzbd+'' (Usenet binary downloader) GUI front-end written in PyGTK|http://www.lottanzb.org/|{{aur|lottanzb}}}}<br />
* {{app|nn|Alternative more user-friendly(curses-based) Usenet newsreader for UNIX.|http://www.nndev.org/|{{aur|nn}}{{Broken package link|{{aur-mirror|nn}}}}}}<br />
* {{app|[[NZBGet]]|CLI Utility to grab Usenet binary file using .nzb files.|http://nzbget.sourceforge.net/|{{pkg|nzbget}}}}<br />
* {{app|[[Wikipedia:Pan_(newsreader)|pan]]|A GTK2 Usenet newsreader that's good at both text and binaries.|http://pan.rebelbase.com/|{{aur|pan}}}}<br />
* {{app|[[Wikipedia:slrn|slrn]]|An open source text-based news client.|http://www.slrn.org/|{{pkg|slrn}}}}<br />
* {{app|[[Wikipedia:Tin_(newsreader)|tin]]|A cross-platform threaded NNTP and spool based UseNet newsreader.|http://tin.org/|{{aur|tin}}}}<br />
* {{app|trn|A text-based Threaded Usenet newsreader.|http://trn.sourceforge.net/|{{aur|trn}}}}<br />
* {{app|[[Wikipedia:XPN_(newsreader)|XPN]]|A graphical newsreader use PyGTK.|http://xpn.altervista.org/index-en.html|{{aur|xpn}}{{Broken package link|{{aur-mirror|xpn}}}}}}<br />
* {{app|xrn|Usenet newsreader for X Window System.|http://www.mit.edu/people/jik/software/xrn.html|{{aur|xrn}}}}<br />
<br />
==== Blog software ====<br />
See also [[Wikipedia:Blog software]] and [[Wikipedia:List of content management systems]].<br />
<br />
* {{App|[[Drupal]]|An open source content management platform powering millions of websites and applications. It is built, used, and supported by an active and diverse community of people around the world.|http://drupal.org/|{{Pkg|drupal}}}}<br />
* {{App|[[Ghost]]|Blogging platform written in JavaScript and distributed under the MIT License, designed to simplify the process of online publishing for individual bloggers as well as online publications.|https://ghost.org/|{{AUR|ghost}}}}<br />
* {{App|Hexo|A fast, simple & powerful blog framework, powered by Node.js.|http://hexo.io|{{AUR|nodejs-hexo}}}}<br />
* {{App|[[Jekyll]]|A static blog engine, written in Ruby, which supports Markdown, textile and other formats.|http://jekyllrb.com/|{{AUR|ruby-jekyll}}}}<br />
* {{App|Nanoblogger|A small weblog engine written in Bash for the command line. It uses common UNIX tools such as cat, grep, and sed to create static HTML content. It is not mantained anymore.|http://nanoblogger.sourceforge.net/|{{Pkg|nanoblogger}}}}<br />
* {{app|Pelican|A static site generator, powered by Python.|http://docs.getpelican.com/en/3.5.0/|{{aur|pelican}}}}<br />
* {{App|[[Wordpress]]|An easy to setup and administer FLOSS content management system featuring a strong and vibrant community with thousands of plugins and themes.|http://wordpress.org/|{{Pkg|wordpress}}}}<br />
<br />
==== Microblogging clients ====<br />
<br />
See also [[Wikipedia:List of Twitter services and applications]].<br />
<br />
* {{App|Birdie|A beautiful Twitter client for GNU/Linux, currently [http://www.birdieapp.eu/2014/10/26/birdie-2-status.html under active development].|http://birdieapp.github.io/ |{{AUR|birdie}}{{Broken package link|{{aur-mirror|birdie}}}}}}<br />
* {{App|Choqok|Microblogging client for KDE that supports Twitter.com, Pump.io, GNU social and opendesktop.org services.|http://choqok.gnufolks.org/|{{Pkg|choqok}}}}<br />
* {{App|Corebird|Native Gtk+ Twitter client for the Linux desktop.|http://corebird.baedert.org/|{{AUR|corebird-git}}}}<br />
* {{App|[[Wikipedia:Gwibber|Gwibber]]|GTK-based microblogging client with support for Facebook, Identi.ca, Twitter, Flickr, Foursquare, Sina and Sohu.|http://gwibber.com/|{{AUR|gwibber}}{{Broken package link|{{aur-mirror|gwibber}}}}}}<br />
* {{App|[[Wikipedia:Hotot (program)|Hotot]]|Lightweight and open source microblogging client with support for Twitter and Identi.ca and integration with various image sharing services and URL shorteners [http://hotot.org/ (discontinued)].|http://hotot.org|{{AUR|hotot}}{{Broken package link|{{aur-mirror|hotot}}}}}}<br />
* {{App|Pino|Simple and fast client for Twitter and Identi.ca written in [[Wikipedia:Vala (programming language)|Vala]].|http://pino-app.appspot.com/|{{AUR|pino}}{{Broken package link|{{aur-mirror|pino}}}}}}<br />
* {{App|Polly|Linux Twitter client designed for multiple columns of multiple accounts.|https://launchpad.net/polly/|{{AUR|polly}}}}<br />
* {{App|Qwit|Cross-platform client for Twitter using the Qt toolkit.|http://code.google.com/p/qwit/|{{AUR|qwit}}{{Broken package link|{{aur-mirror|qwit}}}}}}<br />
* {{App|ttytter|Easily scriptable twitter client written in Perl.|http://www.floodgap.com/software/ttytter/|{{Pkg|ttytter}}}}<br />
* {{App|Turpial|Multi-interface Twitter client written in Python.|http://turpial.org.ve/|{{AUR|turpial-git}}}}<br />
* {{App|tyrs|Simple client for Twitter and Identi.ca supporting virtually all its features with nice console UI (unmaintained).|http://tyrs.nicosphere.net/ {{Dead link|2014|07|17}}|{{AUR|tyrs}}{{Broken package link|{{aur-mirror|tyrs}}}}}}<br />
* {{App|turses|Twitter client for the console based off {{AUR|tyrs}}{{Broken package link|{{aur-mirror|tyrs}}}} with major improvements.|http://turses.rtfd.org/|{{AUR|turses}}}}<br />
<br />
=== Pastebin clients ===<br />
<br />
See also [[Wikipedia:Pastebin]].<br />
<br />
Pastebin services are often used to quote text or images while collaborating and troubleshooting. Pastebin clients provide a convenient way to post from the command line.<br />
<br />
{{Tip| You can access the [https://ptpb.pw ptpb.pw], [http://sprunge.us/ sprunge.us] and [http://ix.io/ ix.io] pastebins using curl. For example pipe the output of a command to ptpb: {{bc|''command'' <nowiki>| curl -F c=@- https://ptpb.pw </nowiki>}} or upload a file (including images): {{bc|<nowiki>curl -F c=@- https://ptpb.pw < </nowiki>''file''}}}}<br />
<br />
{{Note| [http://pastebin.com/ pastebin.com] is blocked for some people and has a history of annoying issues (javascript, adverts, poor formatting, etc).}}<br />
<br />
* {{App|codepad-git|A codepad.org pastebin client written in python.|http://www.codepad.org|{{AUR|codepad-git}}{{Broken package link|{{aur-mirror|codepad-git}}}}}}<br />
* {{App|Elmer|Pastebin client similar to wgetpaste and curlpaste, except written in Perl and usable with wget or curl. Servers: [http://codepad.org/ codepad.org], [http://rafb.me/ rafb.me], [http://sprunge.us/ sprunge.us].|https://github.com/sudokode/elmer|{{AUR|elmer}}}}<br />
* {{App|Fb-client|Client for the [http://paste.xinu.at/ paste.xinu.at] pastebin.|http://paste.xinu.at|{{Pkg|fb-client}}}}<br />
* {{App|Gist|Command-line interface for the [https://gist.github.com/ gist.github.com] pastebin service.|http://github.com/defunkt/gist|{{Pkg|gist}}}}<br />
* {{App|Haste|Universal pastebin tool, written in Haskell. Servers: [http://hpaste.org/ hpaste.org], [http://paste2.org/ paste2.org], [http://pastebin.com/ pastebin.com] and others.|http://hackage.haskell.org/package/haste|{{AUR|ruby-haste}} {{AUR|ruby-haste-git}}}}<br />
* {{App|Hg-paste|Pastebin extension for Mercurial which can send diffs to various pastebin websites for easy sharing. Servers: [http://dpaste.com/ dpaste.com] and [http://dpaste.org/ dpaste.org].|http://bitbucket.org/sjl/hg-paste|{{AUR|hg-paste}}{{Broken package link|{{aur-mirror|hg-paste}}}}}}<br />
* {{App|imgur|A CLI client which can upload image to [http://imgur.com imgur.com] image sharing service.|http://imgur.com/apps|{{AUR|imgur}}}}<br />
* {{App|Ix|Client for the ix.io pastebin.|http://ix.io|{{Pkg|ix}}}}<br />
* {{App|Npaste-client|Client for the [http://npaste.de/ npaste.de] pastebin.|http://npaste.de|{{AUR|npaste-client}}{{Broken package link|{{aur-mirror|npaste-client}}}}}}<br />
* {{App|Pastebinit|Really small Python script that acts as a Pastebin client. Servers: [http://pastie.org/ pastie.org], [http://paste.kde.org/ paste.kde.org], [http://paste.debian.net/ paste.debian.net], [http://paste.ubuntu.com/ paste.ubuntu.com] and others (for a full list see {{ic|pastebinit -l}}).|http://launchpad.net/pastebinit|{{Pkg|pastebinit}}}}<br />
* {{App|paste-binouse|C++ standalone pastebin web server|https://github.com/abique/paste-binouse|{{AUR|paste-binouse}}{{Broken package link|{{aur-mirror|paste-binouse}}}}}}<br />
* {{App|pb|A very fast, lightweight pastebin and general file uploader written in python with a ton of features.|https://ptpb.pw|{{AUR|ptpb}}{{Broken package link|{{aur-mirror|ptpb}}}}}}<br />
* {{App|Uppity|The pastebin client with an attitude.|https://github.com/Kiwi/Uppity|{{AUR|uppity-git}}}}<br />
* {{App|Vim-gist|Vim script for [https://gist.github.com/ gist.github.com].| http://www.vim.org/scripts/script.php?script_id&#61;2423 |{{AUR|vim-gist}}{{Broken package link|{{aur-mirror|vim-gist}}}}}}<br />
* {{App|Vim-paster|Vim plugin to paste to any pastebin service using curl.|http://eugeneciurana.com/site.php?page&#61;tools|{{AUR|vim-paster}}{{Broken package link|{{aur-mirror|vim-paster}}}}}}<br />
* {{App|Wgetpaste|Bash script that automates pasting to a number of pastebin services. Servers: [http://pastebin.ca/ pastebin.ca], [http://codepad.org/ codepad.org], [http://dpaste.com/ dpaste.com] and [http://pastebin.osuosl.org/ pastebin.osuosl.org].|http://wgetpaste.zlin.dk/|{{Pkg|wgetpaste}}}}<br />
<br />
=== Bitcoin ===<br />
<br />
See the main article: [[Bitcoin]].<br />
<br />
* {{App|Armory|Bitcoin client with features such as support for multiple wallets, importing keys and backups.|https://github.com/etotheipi/BitcoinArmory|{{AUR|armory-git}}}}<br />
* {{App|[[Bitcoin]]|Official tool to manage Bitcoins, a P2P currency.|http://bitcoin.org/|{{Pkg|bitcoin-daemon}} {{Pkg|bitcoin-qt}}}}<br />
* {{App|Electrum|An easy to use Bitcoin client.|http://electrum.org/|{{Pkg|electrum}}}}<br />
* {{App|MultiBit|A lightweight Bitcoin desktop client powered by the BitCoinJ library.|https://multibit.org/|{{Pkg|multibit}}}}<br />
<br />
=== Surveying ===<br />
<br />
* {{App|[[Wikipedia:LimeSurvey|LimeSurvey]]|An open source on-line survey application. As a web server-based software it enables users to develop and publish on-line surveys, and collect responses, with no programming.|https://www.limesurvey.org/|{{AUR|limesurvey}}}}</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Java&diff=343025Java2014-11-02T21:34:39Z<p>ConnorBehan: /* Former "One time setup" trick */ - Perhaps I've gotten this wrong. But an Ubuntu-style "this doesn't work anymore" is not acceptable.</p>
<hr />
<div>[[Category:Programming language]]<br />
[[cs:Java]]<br />
[[de:Java]]<br />
[[es:Java]]<br />
[[fr:Java]]<br />
[[it:Java]]<br />
[[ja:Java]]<br />
[[pt:Java]]<br />
[[ru:Java]]<br />
[[tr:Java]]<br />
{{Related articles start}}<br />
{{Related|Java Package Guidelines}}<br />
{{Related articles end}}<br />
<br />
"''Java is a programming language originally developed by Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture.''" — [[Wikipedia:Java (programming language)|Wikipedia article]]<br />
<br />
Arch Linux officially supports the open source [http://openjdk.java.net/ OpenJDK] versions 7 and 8. All these JVM can be installed without conflict and switched between using helper script {{Ic|archlinux-java}}. Several other Java environments are available in [[AUR]] but are not officially supported.<br />
<br />
== Installation ==<br />
The following packages are available in the [[official repositories]]:<br />
<br />
OpenJDK 7:<br />
<br />
{| class="wikitable"<br />
! Package name !! Use<br />
|-<br />
|{{Pkg|jre7-openjdk-headless}} || Java runtime environment (''JRE'') without any graphical tool - version 7<br />
|-<br />
|{{Pkg|jre7-openjdk}} || Complete Java Runtime Environment (''JRE'') - version 7<br />
|-<br />
|{{Pkg|jdk7-openjdk}} || Java Development Kit (''JDK'') - version 7<br />
|-<br />
|{{Pkg|openjdk7-doc}} || OpenJDK javadoc - version 7<br />
|-<br />
|{{Pkg|openjdk7-src}} || OpenJDK sources - version 7<br />
|}<br />
<br />
OpenJDK 8:<br />
<br />
{| class="wikitable"<br />
! Package name !! Use<br />
|-<br />
|{{Pkg|jre8-openjdk-headless}} || Java runtime environment (''JRE'') without any graphical tool - version 8<br />
|-<br />
|{{Pkg|jre8-openjdk}} || Complete Java Runtime Environment (''JRE'') - version 8<br />
|-<br />
|{{Pkg|jdk8-openjdk}} || Java Development Kit (''JDK'') - version 8<br />
|-<br />
|{{Pkg|openjdk8-doc}} || OpenJDK javadoc - version 8<br />
|-<br />
|{{Pkg|openjdk8-src}} || OpenJDK sources - version 8<br />
|-<br />
|}<br />
<br />
{{Note|Installing a JDK will automatically pull its JRE dependency.}}<br />
<br />
{{Note|After installation, the Java environment will need to be recognized by the shell ({{Ic|$PATH}} variable). This can be done by sourcing {{Ic|/etc/profile}} from the command line or by logging out/in again of a Desktop Environment.}}<br />
<br />
Two ''common'' packages named {{Pkg|java-runtime-common}} and {{Pkg|java-environment-common}} are automatically pulled as dependency and provide environment file {{Ic|/etc/profile.d/jre.sh}}. This file contains all JVM common environment variables. Package {{Pkg|java-runtime-common}} also provides a utility script {{Ic|archlinux-java}} that can display and change the default Java environment. This script sets links {{Ic|/usr/lib/jvm/default}} and {{Ic|/usr/lib/jvm/default-runtime}} to point at a valid non-conflicting Java environment installed and Java runtime in {{Ic|/usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME}}}. Most executable provided by the Java environment set have direct links from {{Ic|/usr/bin}}, others are available in {{Ic|$PATH}}.<br />
<br />
{{Warning|File {{Ic|/etc/profile.d/jdk.sh}} is not provided anymore by any package.}}<br />
<br />
== Flagging packages as out-of-date ==<br />
<br />
Although the Arch Linux package releases may contain a reference to the proprietary versions the packages are based on, the open-source project has its own versioning scheme: <br />
<br />
* {{Pkg|jre7-openjdk}}, {{Pkg|jdk7-openjdk}}, and {{Pkg|jre7-openjdk-headless}} should be flagged as out-of-date based on the [http://icedtea.wildebeest.org/download/source ''IcedTea'' version] (e.g. {{ic|2.4.3}}), rather than on the Oracle reference version (e.g. {{ic|u45}} in the release {{ic|7.u45_2.4.3-1}}).<br />
* {{Pkg|icedtea-web}} should be flagged as out-of-date based on the [http://icedtea.wildebeest.org/download/source ''IcedTea Web'' version] (e.g. {{ic|1.4.1}}). This is independent of the ''IcedTea'' version.<br />
<br />
== Switching between JVM ==<br />
<br />
Helper script {{Ic|archlinux-java}} provides such functionalities:<br />
<br />
archlinux-java <COMMAND><br />
<br />
COMMAND:<br />
status List installed Java environments and enabled one<br />
get Return the short name of the Java environment set as default<br />
set <JAVA_ENV> Force <JAVA_ENV> as default<br />
unset Unset current default Java environment<br />
fix Fix an invalid/broken default Java environment configuration<br />
<br />
=== List compatible Java environments installed ===<br />
<br />
% archlinux-java status<br />
<br />
Example:<br />
<br />
% archlinux-java status<br />
Available Java environments:<br />
java-7-openjdk (default)<br />
java-8-openjdk/jre<br />
<br />
Note the ''(default)'' denoting that {{Ic|java-7-openjdk}} is currently set as default. Invocation of {{Ic|java}} and other binaries will rely on this Java install. Also note on the previous output that only the ''JRE'' part of OpenJDK 8 is installed here.<br />
<br />
=== Change default Java environment ===<br />
<br />
# archlinux-java set <JAVA_ENV_NAME><br />
<br />
Example:<br />
<br />
# archlinux-java set java-8-openjdk/jre<br />
<br />
Note that {{Ic|archlinux-java}} will not let you set an invalid Java environment. In the previous example, {{pkg|jre8-openjdk}} is installed but {{pkg|jdk8-openjdk}} is '''not''' so trying to set {{Ic|java-8-openjdk}} will fail:<br />
<br />
# archlinux-java set java-8-openjdk<br />
'/usr/lib/jvm/java-8-openjdk' is not a valid Java environment path<br />
<br />
=== Unsetting the default Java environment ===<br />
<br />
There should be no need to unset a Java environment as packages providing them should take care of this. Still should you want to do so, just use command {{Ic|unset}}:<br />
<br />
# archlinux-java unset<br />
<br />
=== Fixing the default Java environment ===<br />
<br />
If an invalid Java environment link is set, calling the {{Ic|archlinux-java fix}} command tries to fix these. Also note that if no default Java environment is set, this will look for valid ones and try to set it for you. Officially supported packages "OpenJDK 7" and "OpenJDK 8" will be considered first in this order, then un-official packages from [[AUR]].<br />
<br />
# archlinux-java fix<br />
<br />
=== Former "One time setup" trick ===<br />
<br />
Formerly, package {{Pkg|java-common}} could be forced into using a Java installation by setting environment variable {{Ic|JAVA_HOME}}. However, in order to reduce the number of symlinks and fix {{Bug|41883}}, {{Pkg|java-runtime-common}} was made to set {{Ic|PATH}} instead, overriding whatever the user may do to {{Ic|JAVA_HOME}}.<br />
<br />
== Package pre-requisites to support {{Ic|archlinux-java}} ==<br />
This section is targeted at packager willing to provide packages in [[AUR]] for an alternate JVM and be able to integrate with Arch Linux JVM scheme to use {{Ic|archlinux-java}}. To do so, packages should:<br />
<br />
* Place all files under {{Ic|/usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME} }}<br />
* Ensure all executables for which [https://www.archlinux.org/packages/extra/any/java-runtime-common/files/ java-runtime-common] and [https://www.archlinux.org/packages/extra/any/java-environment-common/files/ java-environment-common] provide links are available in the corresponding package <br />
* Ship links from {{Ic|/usr/bin}} to executables, only if these links do not already belong to [https://www.archlinux.org/packages/extra/any/java-runtime-common/files/ java-runtime-common] and [https://www.archlinux.org/packages/extra/any/java-environment-common/files/ java-environment-common]<br />
* Suffix man pages with {{Ic|-${VENDOR_NAME}${JAVA_MAJOR_VERSION} }} to prevent conflicts (see [https://www.archlinux.org/packages/extra/x86_64/jre8-openjdk/files/ jre8-openjdk file list] where man pages are suffixed with {{Ic|-openjdk8}})<br />
* Do not declare any [[PKGBUILD#conflicts|conflicts]] nor [[PKGBUILD#replaces|replaces]] with other JDKs, {{Ic|java-runtime}}, {{Ic|java-runtime-headless}} nor {{Ic|java-environment}}<br />
* Use script {{Ic|archlinux-java}} in ''install functions'' to set the Java environment as default '''if no other valid Java environment is already set''' (ie: package should not '''force''' install as default). See [https://projects.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/java7-openjdk officially supported Java environment package sources] for examples<br />
<br />
Also please note that:<br />
* Packages that need '''any''' Java environment should declare dependency on {{Ic|java-runtime}}, {{Ic|java-runtime-headless}} or {{Ic|java-environment}} as usual<br />
* Packages that need a '''specific Java vendor''' should declare dependency on the corresponding package<br />
* OpenJDK packages now declare {{Ic|1=provides="java-runtime-openjdk=${pkgver}"}} etc. This enables a third-party package to declare dependency on an OpenJDK without specifying a version<br />
<br />
== Unsupported JVM from AUR ==<br />
<br />
{{Warning|Packages in [[AUR]] may or may not support {{Ic|archlinux-java}}}}<br />
<br />
=== Java SE ===<br />
Several packages from [[AUR]] provide Oracle's implementations of JRE and JDK, but the main ones are {{AUR|jre}} and {{AUR|jdk}}.<br />
<br />
==== Java SE 6/7 ====<br />
Older versions include {{AUR|jre6}}/{{AUR|jre6-compat}}/{{AUR|jre7}} and {{AUR|jdk6}}/{{AUR|jdk6-compat}}/{{AUR|jdk7}}.<br />
<br />
=== Oracle JRockit ===<br />
[http://www.oracle.com/technetwork/middleware/jrockit/overview/index.html JRockit] is Oracle's JIT version of Java, available as {{AUR|jrockit}}.<br />
<br />
=== VMkit ===<br />
[http://vmkit.llvm.org/index.html VMkit] is an LLVM-based framework for JIT virtual machines. J3 is a JVM running on VMkit. The webpage can be found here: [http://vmkit.llvm.org/get_started.html vmkit]. J3 depends on the GNU classpath libraries, but may also work with the Apache class path libraries.<br />
<br />
=== Parrot VM ===<br />
[http://www.parrot.org/ Parrot] is a VM that offers experimental [http://trac.parrot.org/parrot/wiki/Languages support for Java] through two different methods: Either as a [http://code.google.com/p/parrot-jvm/ Java VM bytecode translator] or as a [https://github.com/chrisdolan/perk Java compiler targeting the Parrot VM]. {{Pkg|parrot}} is available in the [[official repositories]] and {{AUR|parrot-git}} in the AUR.<br />
<br />
== Troubleshooting ==<br />
=== MySQL ===<br />
Due to the fact that the JDBC-drivers often use the port in the URL to establish a connection to the database, it is considered "remote" (i.e., MySQL does not listen to the port as per its default settings) despite the fact that they are possibly running on the same host, Thus, to use JDBC and MySQL you should enable remote access to MySQL, following the instructions in [[MySQL#Grant Remote Access]].<br />
<br />
=== Impersonate another window manager ===<br />
You may use the {{pkg|wmname}} from [http://tools.suckless.org/wmname suckless.org] to make the JVM believe you are running a different window manager. This may solve a rendering issue of Java GUIs occurring in window managers like [[Awesome]] or [[Dwm]].<br />
$ wmname LG3D<br />
<br />
You must restart the application in question after issuing the wmname command.<br />
<br />
This works because the JVM contains a hard-coded list of known, non-re-parenting window managers. For maximum irony, some users prefer to impersonate {{ic|LG3D}}, the non-re-parenting window manager [[wikipedia:Project_Looking_Glass|written by Sun, in Java]].<br />
<br />
=== Illegible fonts ===<br />
In addition to the suggestions mentioned below in [[#Better font rendering]], some fonts may still not be legible afterwards. If this is the case, there is a good chance Microsoft fonts are being used. Install {{AUR|ttf-ms-fonts}} from the [[AUR]].<br />
<br />
=== Missing text in some applications ===<br />
If some applications are completely missing texts it may help to use the options under [[#Tips and tricks]] as suggested in {{Bug|40871}}.<br />
<br />
== Tips and tricks ==<br />
{{Note|Suggestions in this section are applicable to all applications, using explicitly installed (external) Java runtime. Some applications are bundled with own (private) runtime or use own mechanics for GUI, font rendering, etc., so none of written below is guaranteed to work.}}<br />
<br />
Behavior of most Java applications can be controlled by supplying predefined variables to Java runtime. From [https://bbs.archlinux.org/viewtopic.php?id=72892 this forum post], a way to do it consists of adding the following line in your {{Ic|~/.bashrc}} (or {{Ic|/etc/profile.d/jre.sh}} to affect programs that are not run by sourcing {{Ic|~/.bashrc}}, e.g., launching a program from Gnome's Applications view):<br />
<br />
export _JAVA_OPTIONS="-D'''<option 1>''' -D'''<option 2>'''..."<br />
<br />
For example, to use system anti-aliased fonts and make swing use the GTK look and feel:<br />
<br />
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'<br />
<br />
=== Better font rendering ===<br />
Both closed source and open source implementations of Java are known to have improperly implemented anti-aliasing of fonts. This can be fixed with the following options: {{Ic|1=awt.useSystemAAFontSettings=on}}, {{Ic|1=swing.aatext=true}}<br />
<br />
See [[Java Runtime Environment Fonts]] for more detailed information.<br />
<br />
=== GTK LookAndFeel ===<br />
If your Java programs look ugly, you may want to set up the default look and feel for the swing components: {{Ic|1=swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel}}.<br />
<br />
Some Java programs insist on using the cross platform Metal look and feel. In some of these cases you can force these apps to use the GTK look and feel by setting the following property:<br />
<br />
{{Ic|1=swing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel}}.<br />
<br />
=== Non-reparenting window managers ===<br />
<br />
Non-reparenting window managers user should set the following environment variable in their {{Ic|.xinitrc}}<br />
<br />
export _JAVA_AWT_WM_NONREPARENTING=1</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:TheBigIdeaPage&diff=341070DeveloperWiki:TheBigIdeaPage2014-10-21T18:56:03Z<p>ConnorBehan: /* Listing all direct dependencies */ - Linking to mailing list</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
== The Big Idea Page ==<br />
<br />
This page is for generating a collection of ideas that would improve Arch Linux. It will allow us to assess areas in which we can improve and whether we need more "staff" to move forward.<br />
<br />
==== Bugzilla ====<br />
Moving the bug tracker to Bugzilla would have many advantages (see also {{Bug|24999}}):<br />
* It is more well maintained upstream than Flyspray<br />
* Bugs could be handled via email<br />
* ...<br />
Florian has a script that will convert our bug database into Bugzilla format. Currently no-one is interested in maintaining the install.<br />
<br />
==== Moving repository management to git ====<br />
Using git instead of SVN is not really the primary goal, although it is a nice bonus. We also gain other stuff (split packages with different architectures, debug package repos, ...)<br />
Florian has made great advances in this realm. [[User:Bluewind/dbscripts-rewrite]]<br />
<br />
==== Signing database files ====<br />
Our package security would be improved by signing repository databases. This requires working with upstream GPG developers to allow signing of files over ssh.<br />
<br />
==== Auto rebuild script ====<br />
Simplfing package rebuilds. <br />
rebuildpkg pkg1 pkg2 pkg3<br />
<br />
==== More packaging automation ====<br />
Not a very big idea but very much related to "auto rebuild script". Yet another wrapper or a full-blown "packaging shell", this time abstracting away the underlying independent build tools (svn, devtools, etc.), providing auto-completion of package names, committing to the correct repo, building on remote build server if wanted, rebuilding single packages or a package dependency list (with bumps and auto push to a staging or testing repo; there is no need to test successful rebuilds locally; also send e-mails to maintainers of failed builds), getting packages and signing them if built remotely, starting up a container or a VM with the newly built package and all dependencies to allow real, live testing (especially for graphical stuff). Will allow anyone to build, release and push depending on permissions to a repo (all users by default have permission to custom repos); this is defined in a file. Does packaging and does it well. Very distro-specific, will have zero compatibility with other pacman distros. Will look stupid at first. Will be useful in the long-run. Will become obsolete if systemd solves the whole Linux packaging problem.<br />
<br />
==== Orphan packages ====<br />
There are LOTS of these. Any common themes that would be worth recruiting a new packager for?<br />
<br />
==== Datacenter software ====<br />
Maintain software used in datacenters in the repo for easier installation? (ceph, puppet, nagios, ...)<br />
<br />
==== Delta packages in repos ====<br />
pacman already supports delta packages, but repo scripts don't generate the necessary delta files. See: [[Deltup]]; [https://bugs.archlinux.org/task/18590 Feature request] (now closed).<br />
<br />
==== Encourage people to contribute to Arch projects ====<br />
Github and the like encourage contributions by making the source obvious and easy to navigate. We currently lack this with Arch projects (and possibly packages). I think slapping our projects onto Github or an in-house Gitlab would increase contributions. The cgit + mailing list thing seems archaic nowadays where developers grow up with pull requests. Perhaps we should adapt where it makes sense? This might in fact alleviate some of our staff trouble as we allow others to more easily help us out.<br />
<br />
==== Better namcap errors for version bumps ====<br />
namcap should emit errors for packages when their updated version would break other apps due to soname bumps. Sadly, this can't work just by dependencies alone because our packages don't list all the dependencies directly. This is currently done on pkgbuild.com using sogrep and some manual note keeping which seems backward. sogrep is not readily available in devtools because it requires having a full mirror on the local drive. Since a full mirror is still less than 20 GiB, I don't believe this is a big problem and sogrep should be packaged in devtools to allow namcap to have some new features. Failing that, either a generated database for sonames should be generated by our tools (basically ldd over all dynamically linked objects) or an API for sogrep-like operations should be provided.<br />
<br />
When such a tool is available, namcap could be improved to have this feature and henceforth version bumping would require less manual effort upfront and would be less error prone.<br />
<br />
==== Listing all direct dependencies ====<br />
As a follow up to this, the fact that Arch packages only list "first level" dependencies has long been a source of maintenance burden. I can see two reasons for why people (Judd?) decided this:<br />
# It makes it easier for new packagers to contribute.<br />
# It prevents overly verbose output of "pacman -Qi".<br />
The newbie friendliness can be kept if we continue to allow "first level only" packages in the AUR. However, I think official repositories should list every library dependency in the depends array. This will require a pkgrel bump of every package, but we only need to do it once. For those who still want short "pacman -Qi" output, we can introduce a new switch to pacman which will automatically trim second level deps. This is much faster than doing the opposite and trying to run namcap each time.<br />
<br />
One should not have to use separate tools to generate a rebuild list. The "Required by" field of a pacman query should be enough. As it stands, this field is useless because rebuilds don't care about "Required at the first level by". A short-lived alternative proposal was to achieve this with [[User:Allan/Pacman_Hooks|hooks]]. However, [https://lists.archlinux.org/pipermail/pacman-dev/2014-April/018994.html as discussed], it is very ugly to expose the .PKGINFO file and let scripts alter dependencies as packages are installed.</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:TheBigIdeaPage&diff=341069DeveloperWiki:TheBigIdeaPage2014-10-21T18:55:09Z<p>ConnorBehan: /* The Big Idea Page */ - A bold claim that we should list all dependencies.</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
== The Big Idea Page ==<br />
<br />
This page is for generating a collection of ideas that would improve Arch Linux. It will allow us to assess areas in which we can improve and whether we need more "staff" to move forward.<br />
<br />
==== Bugzilla ====<br />
Moving the bug tracker to Bugzilla would have many advantages (see also {{Bug|24999}}):<br />
* It is more well maintained upstream than Flyspray<br />
* Bugs could be handled via email<br />
* ...<br />
Florian has a script that will convert our bug database into Bugzilla format. Currently no-one is interested in maintaining the install.<br />
<br />
==== Moving repository management to git ====<br />
Using git instead of SVN is not really the primary goal, although it is a nice bonus. We also gain other stuff (split packages with different architectures, debug package repos, ...)<br />
Florian has made great advances in this realm. [[User:Bluewind/dbscripts-rewrite]]<br />
<br />
==== Signing database files ====<br />
Our package security would be improved by signing repository databases. This requires working with upstream GPG developers to allow signing of files over ssh.<br />
<br />
==== Auto rebuild script ====<br />
Simplfing package rebuilds. <br />
rebuildpkg pkg1 pkg2 pkg3<br />
<br />
==== More packaging automation ====<br />
Not a very big idea but very much related to "auto rebuild script". Yet another wrapper or a full-blown "packaging shell", this time abstracting away the underlying independent build tools (svn, devtools, etc.), providing auto-completion of package names, committing to the correct repo, building on remote build server if wanted, rebuilding single packages or a package dependency list (with bumps and auto push to a staging or testing repo; there is no need to test successful rebuilds locally; also send e-mails to maintainers of failed builds), getting packages and signing them if built remotely, starting up a container or a VM with the newly built package and all dependencies to allow real, live testing (especially for graphical stuff). Will allow anyone to build, release and push depending on permissions to a repo (all users by default have permission to custom repos); this is defined in a file. Does packaging and does it well. Very distro-specific, will have zero compatibility with other pacman distros. Will look stupid at first. Will be useful in the long-run. Will become obsolete if systemd solves the whole Linux packaging problem.<br />
<br />
==== Orphan packages ====<br />
There are LOTS of these. Any common themes that would be worth recruiting a new packager for?<br />
<br />
==== Datacenter software ====<br />
Maintain software used in datacenters in the repo for easier installation? (ceph, puppet, nagios, ...)<br />
<br />
==== Delta packages in repos ====<br />
pacman already supports delta packages, but repo scripts don't generate the necessary delta files. See: [[Deltup]]; [https://bugs.archlinux.org/task/18590 Feature request] (now closed).<br />
<br />
==== Encourage people to contribute to Arch projects ====<br />
Github and the like encourage contributions by making the source obvious and easy to navigate. We currently lack this with Arch projects (and possibly packages). I think slapping our projects onto Github or an in-house Gitlab would increase contributions. The cgit + mailing list thing seems archaic nowadays where developers grow up with pull requests. Perhaps we should adapt where it makes sense? This might in fact alleviate some of our staff trouble as we allow others to more easily help us out.<br />
<br />
==== Better namcap errors for version bumps ====<br />
namcap should emit errors for packages when their updated version would break other apps due to soname bumps. Sadly, this can't work just by dependencies alone because our packages don't list all the dependencies directly. This is currently done on pkgbuild.com using sogrep and some manual note keeping which seems backward. sogrep is not readily available in devtools because it requires having a full mirror on the local drive. Since a full mirror is still less than 20 GiB, I don't believe this is a big problem and sogrep should be packaged in devtools to allow namcap to have some new features. Failing that, either a generated database for sonames should be generated by our tools (basically ldd over all dynamically linked objects) or an API for sogrep-like operations should be provided.<br />
<br />
When such a tool is available, namcap could be improved to have this feature and henceforth version bumping would require less manual effort upfront and would be less error prone.<br />
<br />
==== Listing all direct dependencies ====<br />
As a follow up to this, the fact that Arch packages only list "first level" dependencies has long been a source of maintenance burden. I can see two reasons for why people (Judd?) decided this:<br />
# It makes it easier for new packagers to contribute.<br />
# It prevents overly verbose output of "pacman -Qi".<br />
The newbie friendliness can be kept if we continue to allow "first level only" packages in the AUR. However, I think official repositories should list every library dependency in the depends array. This will require a pkgrel bump of every package, but we only need to do it once. For those who still want short "pacman -Qi" output, we can introduce a new switch to pacman which will automatically trim second level deps. This is much faster than doing the opposite and trying to run namcap each time.<br />
<br />
One should not have to use separate tools to generate a rebuild list. The "Required by" field of a pacman query should be enough. As it stands, this field is useless because rebuilds don't care about "Required at the first level by". A short-lived alternative proposal was to achieve this with [[User:Allan/Pacman_Hooks|hooks]]. However, it is very ugly to expose the .PKGINFO file and let scripts alter dependencies as packages are installed.</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Arch_compared_to_other_distributions&diff=334927Arch compared to other distributions2014-09-12T03:14:01Z<p>ConnorBehan: rm singular they</p>
<hr />
<div>[[Category:About Arch]]<br />
[[cs:Arch Compared to Other Distributions]]<br />
[[da:Arch Compared to Other Distributions]]<br />
[[de:Arch vs. Distribution X]]<br />
[[el:Arch Compared to Other Distributions]]<br />
[[es:Arch Compared to Other Distributions]]<br />
[[fa:آرچ در مقایسه با سایر توزیعها]]<br />
[[fr:Arch vs autres distributions]]<br />
[[hu:Arch Compared to Other Distributions]]<br />
[[id:Arch Compared to Other Distributions]]<br />
[[it:Arch Compared to Other Distributions]]<br />
[[ja:Arch Compared to Other Distributions]]<br />
[[ko:Arch Compared to Other Distributions]]<br />
[[lt:Arch Compared to Other Distributions]]<br />
[[nl:Arch Compared to Other Distributions]]<br />
[[pl:Arch Compared to Other Distributions]]<br />
[[pt:Arch Compared to Other Distributions]]<br />
[[ro:Arch în comparație cu alte distribuții]]<br />
[[ru:Arch Compared to Other Distributions]]<br />
[[sk:Arch Compared to Other Distributions]]<br />
[[th:Arch Compared to Other Distributions]]<br />
[[tr:Arch_ile_diğer_dağıtımların_karşılaştırması]]<br />
[[uk:Arch Compared to Other Distributions]]<br />
[[zh-CN:Arch Compared to Other Distributions]]<br />
[[zh-TW:Arch Compared to Other Distributions]]<br />
{{Related articles start}}<br />
{{Related|Arch Linux}}<br />
{{Related|The Arch Way}}<br />
{{Related|Arch based distributions (active)}}<br />
{{Related articles end}}<br />
This page attempts to draw a comparison between Arch Linux and other popular GNU/Linux distributions and UNIX-like operating systems. The summaries that follow are brief descriptions that may help a person decide if Arch Linux will suit his or her needs. Although reviews and descriptions can be useful, first-hand experience is invariably the best way to compare distributions.<br />
<br />
== Source-based ==<br />
<br />
Source-based distributions are highly portable, giving the advantage of controlling and compiling the entire OS and applications for a particular machine architecture and usage scheme, with the disadvantage of the time-consuming nature of source compilation. The Arch base and all packages are compiled for i686 and x86_64 architectures, offering a potential performance boost over i486/i586 binary distributions, with the added advantage of expedient installation.<br />
<br />
=== Gentoo Linux ===<br />
<br />
* Both Arch Linux and Gentoo Linux are rolling release systems, making packages available to the distribution a short time after they are released upstream. <br />
* The Gentoo packages and base system are built directly from source code according to user-specified ''USE flags''. Arch provides a ports-like system for building packages from source, though the Arch base system is designed to be installed as pre-built i686/x86_64 binary. This generally makes Arch quicker to build and update, and allows Gentoo to be more systemically customizable.<br />
* Arch supports i686 and x86_64 while Gentoo officially supports x86, x86_64, PPC, SPARC, Alpha, ARM, MIPS, HP/PA, S/390, sh, and Itanium architectures.<br />
* Gentoo's official package and system management tools tend to be rather more complex and "powerful" than those provided by Arch, and certain features which are at the very heart of Gentoo ''([http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=2 USE flags], [http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1#doc_chap5 SLOTs], etc.)'' don't have any direct Arch Linux equivalent. Some of that is due to the fact that Arch is primarily a binary distro, but differences in [[The_Arch_Way|design philosophy]] also play a big role, with Arch taking a more principled stance in favor of architectural simplicity and avoiding over-engineering.<br />
* Because both the Gentoo and Arch installations only include a base system, both are considered to be highly customizable. Gentoo users will generally feel quite comfortable with most aspects of Arch.<br />
<br />
=== Sorcerer/Lunar-Linux/Source Mage ===<br />
<br />
* Sorcerer/Lunar-Linux/Source Mage (SLS) are all source-based distributions originally related to one another. <br />
* SLS distributions use a rather simple set of script files to create package descriptions, and use a global configuration file to configure the compilation process, much like the [[Arch Build System]]. The SLS tools do full dependency checking, including handling optional features, package tracking, removal and upgrading. There are no binary packages for any of the SLS family, although they all provide the ability to roll back to earlier installed packages easily.<br />
* The installation process involves configuring a simple base system from the shell and ncurses menus, then optionally recompiling the base system afterward. <br />
* Like Arch, there is no default WM/DE/DM, and Xorg is not included in the base installation. Several X server alternatives are available (X.Org 6.8 or 7, XFree86).<br />
<br />
== Minimalist ==<br />
<br />
The minimalist distributions are quite comparable to Arch, sharing several similarities. All are considered "simple" from a technical standpoint.<br />
<br />
=== LFS ===<br />
<br />
* LFS, (or Linux From Scratch) exists simply as documentation. The book instructs the user on obtaining the source code for a minimal base package set for a functional GNU/Linux system, and how to manually compile, patch and configure it from scratch. LFS is as minimal as it gets, and offers an excellent and educational process of building and customizing a base system.<br />
* LFS provides no online repositories; sources are manually obtained, compiled and installed with ''make''. (Several manual methods of package management exist, and are mentioned in LFS Hints). <br />
* Arch provides these very same packages, plus [[systemd]], a few extra tools and the powerful [[pacman]] package manager as its base system, already compiled for i686/x86_64. Along with the minimal Arch base system, the Arch community and developers provide and maintain many thousands of binary packages installable via pacman as well as [[PKGBUILD]] build scripts for use with the [[Arch Build System]]. Arch also includes the [[makepkg]] tool for expediently building or customizing ''.pkg.tar.xz'' packages, readily installable by pacman. <br />
* Judd Vinet built Arch from scratch, and then wrote pacman in C. Historically, Arch was sometimes humorously described simply as "Linux, with a nice package manager."<br />
<br />
=== CRUX ===<br />
* Before creating Arch, Judd Vinet admired and used CRUX; a minimalist distribution created by Per Lidén. Originally inspired by ideas in common with CRUX and BSD, Arch was built from scratch, and [[pacman]] was then coded in C. <br />
* Arch and CRUX share some guiding principles: for instance, both are architecture-optimized, minimalist and K.I.S.S.-oriented. <br />
* Both ship with ports-like systems, and, like *BSD, both provide a minimal base environment to build upon. <br />
* Arch features pacman, which handles binary system package management and works seamlessly with the [[Arch Build System]]. CRUX uses a community contributed system called prt-get, which, in combination with its own ports system, handles dependency resolution, but builds all packages from source (though the CRUX base installation is binary). <br />
* Arch officially supports x86_64 and i686 only, whereas CRUX officially offers only x86_64.<br />
*Arch uses a rolling-release system and features a large array of binary package repositories as well as the [[Arch User Repository]]. CRUX provides a more slimmed-down officially supported ports system in addition to a comparatively modest community repository.<br />
<br />
=== Slackware ===<br />
<br />
* Slackware and Arch are quite similar in that both are simple distributions focused on elegance and minimalism. <br />
<br />
* Slackware is famous for its lack of branding and completely vanilla packages, from the kernel up. Arch typically applies patching only to avoid severe breakage or to ensure packages will compile cleanly. <br />
<br />
* Slackware uses BSD-style init scripts, Arch uses [[systemd]]. <br />
<br />
* Arch supplies a package management system in [[pacman]] which, unlike Slackware's standard tools, offers automatic dependency resolution and allows for more automated system upgrades. Slackware users typically prefer their method of manual dependency resolution, citing the level of system control it grants them, as well as Slackware's excellent supply of pre-installed libraries and dependencies. <br />
<br />
* Arch is a rolling-release system. Slackware is seen as more conservative in its release cycle, preferring proven stable packages. Arch is more ''bleeding-edge'' in this respect. <br />
<br />
* Arch Linux provides many thousands of binary packages within its official repositories whereas Slackware official repositories are more modest. <br />
<br />
* Arch offers the [[Arch Build System]], an actual ports-like system and also the [[AUR]], a very large collection of PKGBUILDs contributed by users. Slackware offers a similar, though slimmer system at [http://www.slackbuilds.org slackbuilds.org] which is a semi-official repository of Slackbuilds, which are analogous to Arch PKGBUILDs. Slackware users will generally be quite comfortable with most aspects of Arch.<br />
<br />
== General ==<br />
<br />
These distributions offer a broad range of advantages and strengths, and can be made to serve most operating system uses.<br />
<br />
=== Debian GNU/Linux ===<br />
<br />
* Debian is the largest upstream Linux distribution with a bigger community and features stable, testing, and unstable branches, offering over 30,000 high quality binary packages. The available number of Arch binary packages is more modest. However, when including the AUR, the quantities are very comparable. <br />
<br />
* Debian has a more vehement stance on free software but still includes non-free software in its non-free repos. Arch is more lenient, and therefore inclusive, concerning ''non-free packages'' as defined by GNU, thereby leaving the choice to the users.<br />
<br />
* Debian's design approach focuses more on stability and stringent testing and focus based mostly on its famous "Debian social contract". Arch is focused more on the philosophy of simplicity, minimalism, and offering bleeding edge software. Arch packages are more current than Debian Stable and Testing, being more comparable to the Debian Unstable branch. <br />
<br />
* Both Debian and Arch offer well-regarded package management systems. <br />
<br />
* Arch is a rolling release, whereas Debian Stable is released with "frozen" packages. Debian unstable is rolling.<br />
<br />
* Debian is available for many architectures, including alpha, arm, hppa, i386, x86_64, ia64, m68k, mips, mipsel, powerpc, s390, and sparc, whereas Arch is officially i686 and x86_64, with community ports for arm (for Raspberry Pi for example) only. <br />
<br />
* Arch provides more expedient support for building custom, installable packages from outside sources, with a ports-like package build system. Debian does not offer a ports system, relying instead on its huge binary repositories.<br />
<br />
* The Arch installation system only offers a minimal base, transparently exposed during system configuration, whereas Debian's methods, such as the use of apt ''tasks'' to install pre-selected groups of packages, offer a more automatically configured approach as well as several alternative methods of installation. <br />
<br />
* Debian utilizes the ''SysVinit'' by default (though systemd and upstart are available for users to configure), whereas Arch uses [[systemd]] by default for overall better performance. In its next stable release, Debian will use [[systemd]] by default.<br />
<br />
* Arch generally packages software libraries together with their header files, whereas in Debian header files have to be downloaded separately.<br />
<br />
* Arch keeps patching to a minimum, thus avoiding problems that upstream are unable to review, whereas Debian patches its packages more liberally for a wider audience.<br />
<br />
* [https://bbs.archlinux.org/viewtopic.php?id=179481 Some differences between packaging in Arch and Debian.]<br />
<br />
=== Fedora ===<br />
<br />
* Fedora is community developed, yet corporately backed by Red Hat; it is often presented as a bleeding edge testbed release system; Fedora packages and projects migrate to RHEL and some eventually become adopted by other distributions. Arch too is generally considered bleeding edge, although it is a rolling-release and does not serve as a testing branch for another distribution.<br />
<br />
* Fedora packages are RPM format, using the YUM package manager, and official graphical package tools are also available. Arch uses [[pacman]] to manage tar.xz packages and does not officially support a graphical frontend.<br />
<br />
* Fedora refuses to include MP3 media support and other non-free software in official repositories due to its dedication to free software, though third-party repositories are available for such packages. Arch is more lenient in its disposition toward MP3 and non-free software, leaving the discernment to the user.<br />
<br />
* Fedora offers many installation options including a graphical installer as well as a minimal option. Fedora "spins" also provide alternative assortments of desktop environments to choose from, each with a modest assortment of default packages. Arch, on the other hand, only provides a few scripts meant to ease the process of a minimal base system install.<br />
<br />
* Fedora has a scheduled release cycle, but officially supports discrete version upgrades with the FedUp tool. Arch is a rolling-release system.<br />
<br />
* '''The Arch Way''' focuses on simplicity, lightweight elegance and empowering the user, whereas '''Fedora Core Values''' focus on free software, community development and bleeding edge systemic innovation.<br />
<br />
* Arch features a ports system, whereas Fedora does not.<br />
<br />
* '''Both Arch and Fedora are targeted at experienced users and developers.''' Both strongly encourage their users to contribute to project development.<br />
<br />
* Fedora has earned much community recognition for integration of SELinux, GCJ compiled packages (to remove the need for Oracle's JRE), and prolific upstream contribution; Red Hat and thus, Fedora developers by extension, contribute the highest percentage of Linux kernel code as compared to any other project.<br />
<br />
* Arch Linux provides what is widely regarded as the most thorough and comprehensive distribution wiki. The Fedora wiki is used in the original sense of the word "wiki", or a way to exchange information between developers, testers and users rapidly. It is not meant to be an end-user knowledge base like Arch's. Fedora's wiki resembles an issue tracker or a corporate wiki.<br />
<br />
=== Frugalware ===<br />
<br />
* Arch is command-line oriented. <br />
<br />
* Frugalware does not support the JFS filesystem by default. <br />
<br />
* Both Arch and Frugalware are promoted as i686 optimized. <br />
<br />
* Both Arch and Frugalware could be installed as a minimal environment first and later expanded with pacman according to the user's choices and needs. <br />
<br />
* Frugalware also could be installed from a DVD, with default software choices and desktop environment chosen for the user already.<br />
<br />
* Frugalware has a scheduled release cycle. Again, Arch is more focused on simplicity, minimalism, code-correctness and bleeding edge packages within a rolling-release model.<br />
<br />
== Beginner-friendly ==<br />
<br />
Sometimes called "newbie distros", the beginner-friendly distributions share a lot of similarities, though Arch is quite different from them. Arch may be a better choice if you want to learn about GNU/Linux by building up from a very minimal base, as an installation of Arch installs very few packages in comparison. Specific differences between distributions are described below.<br />
<br />
=== Ubuntu ===<br />
<br />
* Ubuntu is an immensely popular Debian-based distribution commercially sponsored by Canonical Ltd., while Arch is an independently developed system built from scratch.<br />
<br />
* The two projects have very different goals and are targeted at a different user base. Arch is designed for users who desire a do-it-yourself approach, whereas Ubuntu provides an autoconfigured system which is meant to be more user-friendly. Arch is presented as a much more minimalist design from the base installation onward, relying heavily on the user to customize it to their own specific needs. In general, developers and tinkerers will probably like Arch better than Ubuntu, though many Arch users have started on Ubuntu and eventually migrated to Arch.<br />
<br />
* Current Ubuntu development and promotion seem to be heavily embracing the touch screen device market, whereas Arch development is more generally focused on a user-centric model which empowers its community to create customized solutions to be developed collaboratively.<br />
** Furthermore, Canonical's commercial nature has led them to some controversial decisions, such as the inclusion of advertisements in Unity's ''Dash'' menu and user data collection. Arch is an independent, community-driven project that has no commercial agenda and features no bloatware in its distribution.<br />
<br />
* Ubuntu moves between discrete releases every 6 months, whereas Arch is a rolling-release system with a new snapshot issued every month.<br />
<br />
* Arch offers a ports-like package build system, while Ubuntu does not.<br />
<br />
* The two communities differ in some ways as well. The Arch community is much smaller and is strongly encouraged to contribute to the distribution. In contrast, the Ubuntu community is relatively large and can therefore tolerate a much larger percentage of users who do not actively contribute to development, packaging, or repository maintenance.<br />
<br />
=== Linux Mint ===<br />
<br />
* [http://www.linuxmint.com/ Linux Mint] was born as an [[#Ubuntu|Ubuntu]] derivative, and later added the LMDE (Linux Mint Debian Edition) that is instead based on [[#Debian GNU/Linux|Debian]]. On the other hand, Arch is an independent distribution that relies on its own [[ABS|build system]] and [[official repositories|repositories]].<br />
* Similarly to Ubuntu, Mint aims to be "a modern, elegant and comfortable operating system which is both powerful and easy to use" and its targeted user base, approach concerning the default distribution's packages and targets are clearly opposite to Arch's [[The Arch Way|minimalism]].<br />
* Mint includes several graphical tools for easier maintenance, called ''MintTools''. Arch only provides simple command-line tools like [[pacman]] and leaves system management to be organized by the user.<br />
* Mint mainly ships with [[Cinnamon]] or [[MATE]] as its GUI, and alternatively [[KDE]] or [[Xfce4]], plus codecs, flash, DVD playback and MP3 support, some of which are proprietary software; it also includes a variety of popular software, such as [[Firefox]], [[GIMP]], [[Libreoffice]], [[pidgin]] and others. Arch's base installation does not even include [[Xorg]], let alone any window managers or desktop environments, which, if needed, can only be installed as a later step. Also, no proprietary software is included in Arch's default distribution.<br />
* New versions of Mint are released every six months, about a month after Ubuntu, with a slightly different support cycle; LTS versions are supported for five years, and the three releases between them are only supported for six months, until their succession. The LMDE version follows Debian Testing's release cycle, described as "semi-rolling" on its website. Arch is instead a full rolling-release distribution.<br />
* Mint uses APT as its package manager; Arch uses [[pacman]].<br />
<br />
=== openSUSE ===<br />
<br />
openSUSE is centered around the RPM package format and its well-regarded YaST2 GUI-driven configuration tool, which is a one-stop shop for most users' system configuration needs, including package management. Arch does not offer such a facility as it goes against [[The Arch Way]]. openSUSE, therefore, is widely regarded as more appropriate for less-experienced users, or those who want a more GUI-driven environment, auto-configuration and expected functionality out of the box.<br />
<br />
=== Mandriva/Mageia ===<br />
<br />
Mandriva Linux (formerly Mandrake Linux) was created in 1998 with the goal of making GNU/Linux easy to use for everyone; it is RPM-based and uses the urpmi package manager. Mageia is a Mandriva fork created by former Mandriva employees which opposes its parent distribution's commercial position, being a non-profit and community-driven project. Again, Arch takes a simpler approach than Mandriva or Mageia, being text-based and relying on more manual configuration, and is aimed at intermediate to advanced users.<br />
<br />
=== PCLinuxOS ===<br />
<br />
* PCLinuxOS is a popular distribution originally based on Mandriva providing a complete DE, designed for user-friendliness and is described as "simple", though its definition of simple is quite different than the Arch definition. Arch is designed as a simple base system to be customized from the ground up and is aimed more toward advanced users.<br />
<br />
* PCLOS uses the apt package manager as a wrapper for RPM packages. Arch uses its own independently-developed [[pacman]] package manager with ''.pkg.tar.xz'' packages. <br />
<br />
* PCLOS is very GUI-driven, provides GUI hardware configuration tools and the Synaptic package management front-end, and claims to have little or no reliance on the shell. Arch is command-line oriented and designed for more simple approaches to system configuration, management and maintenance.<br />
<br />
* PCLOS recommends 256&nbsp;MB RAM as part of its minimum system requirements. Being more lightweight, Arch can run on systems with much less system memory, requiring only 64&nbsp;MB of RAM for a base i686 install, and will run flawlessly on more modern systems.<br />
<br />
== The *BSDs ==<br />
<br />
<nowiki>*</nowiki>BSDs share a common origin and descend directly from the work done at UC Berkeley to produce a freely redistributable, free of cost, UNIX system. They are not GNU/Linux distributions, but rather, UNIX-like operating systems. Therefore, although Arch and the *BSDs share the concept of a tightly-integrated base and ports system, they are absolutely not related from a code standpoint, except for perhaps ''vi'', as Arch's ''vi'' is the original BSD ''vi'' (most *BSDs do not use the original BSD ''vi'' anymore). *BSDs were derived from the original AT&T UNIX code and have a true UNIX heritage. To learn more about the *BSD variants, visit the vendor's site.<br />
<br />
=== FreeBSD ===<br />
<br />
* Both Arch and [http://www.freebsd.org/about.html FreeBSD] offer software which can be obtained using binaries or compiled using ''ports'' systems. <br />
<br />
* Like other *BSDs, the FreeBSD base is developed fundamentally as a system designed as a whole, with each application ''ported'' over to FreeBSD and made sure to work in the process. In contrast, GNU/Linux distributions such as Arch exist as amalgams combined from many separate sources. <br />
<br />
* The FreeBSD license is generally more protective of the ''coder'', in contrast to the GPL, which favors protection of the ''code'' itself. Arch is released under the GPL. <br />
<br />
* In FreeBSD, like Arch, decisions are delegated to you, the power user. This may be the most interesting comparison to Arch since it goes head-to-head in package modernity and has a somewhat sizable, smart, active, no-nonsense community. <br />
<br />
* Both systems share many similarities and FreeBSD users will generally feel quite comfortable with most aspects of Arch.<br />
<br />
=== NetBSD ===<br />
<br />
* NetBSD is a free, secure, and highly portable UNIX-like open-source operating system available for over 50 platforms, from 64-bit Opteron machines and desktop systems to hand-held and embedded devices. Its clean design and advanced features make it excellent in both production and research environments, and it is user-supported with complete source. Many applications are easily available through pkgsrc, the NetBSD Packages Collection. <br />
<br />
* Arch may not operate on the vast number of devices NetBSD operates on, but for an i686 system it may offer more applications. <br />
<br />
* NetBSD's pkgsrc provides a source based method of installation similar to Arch's ABS; however binary packages are also available using ''pkg_tools''. <br />
<br />
* Arch does share similarities with NetBSD: both require manual configuration, they are minimalist and lightweight, both offer ports systems as well as binaries and both have active, no-nonsense developers and communities.<br />
<br />
=== OpenBSD ===<br />
<br />
The OpenBSD project produces a free, multi-platform 4.4BSD-based UNIX-like operating system.<br />
<br />
* OpenBSD focuses on portability, standardization, code correctness, proactive security, and integrated cryptography. In contrast, Arch focuses more on simplicity, elegance, minimalism and bleeding edge software. OpenBSD is self-described as "perhaps the #1 security OS".<br />
<br />
* Both Arch and OpenBSD offer a small, elegant base install.<br />
<br />
* Both offer a ports and packaging system to allow for easy installation and management of programs which are not part of the base operating system.<br />
<br />
* In contrast to a GNU/Linux system like Arch, but in common with most other BSD-based operating systems, the OpenBSD kernel and userland programs, such as the shell and common tools (like ''ls'', ''cp'', ''cat'' and ''ps''), are developed together in a single source repository.<br />
<br />
== See also ==<br />
* [http://distrowatch.com/ DistroWatch.com]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Init&diff=333583Init2014-09-03T01:31:06Z<p>ConnorBehan: /* Inits */ - Adding tool written by a vehement systemd hater</p>
<hr />
<div>[[Category:Boot process]]<br />
[[ja:Init]]<br />
{{Related articles start}}<br />
{{Related|Arch boot process}}<br />
{{Related|Init Rosetta}}<br />
{{Related articles end}}<br />
{{Warning|Only [[systemd]] is officially supported in Arch Linux. When using a different init system, please mention so in support requests.}}<br />
[[Wikipedia:Init|Init]] is the first process started during system boot. It is a a daemon process that continues running until the system is shut down. Init is the direct or indirect ancestor of all other processes, and automatically adopts all orphaned processes. It is started by the kernel using a hard-coded filename; if the kernel is unable to start it, panic will result. Init is typically assigned process identifier 1.<br />
<br />
The init ''process'', init ''scripts'', and ''service manager'' combine to the init '''system'''. Init systems may separate these components, or combine (some or all) in the init process.<br />
<br />
== Inits (combined) ==<br />
<br />
* {{App|[[systemd]]|Dependency-based init system with aggressive parallelization, process supervision using cgroups, and the ability to depend on a given mount point or dbus service.|http://freedesktop.org/wiki/Software/systemd/|{{Pkg|systemd}}}}<br />
* {{App|Epoch|Single-threaded init system designed for minimal footprint, compatibility and unified configuration.|http://universe2.us/epoch.html|}}<br />
* {{App|initng|Dependency-based init system with parallelization and asynchronous start.|http://initng.sourceforge.net/trac|{{AUR|initng-git}}}}<br />
* {{App|[[SysVinit]]|Traditional System V init.|http://savannah.nongnu.org/projects/sysvinit|{{AUR|sysvinit}}}}<br />
* {{App|[[Wikipedia:Upstart|Upstart]]|Event-based init system which handles starting, stopping and supervising of tasks and services.|http://upstart.ubuntu.com/|{{AUR|upstart}}}}<br />
<br />
== Inits ==<br />
<br />
{{Poor writing|Some descriptions are not exactly descriptive}}<br />
<br />
* {{App|[[BusyBox]]|Utilities for rescue and embedded systems.|http://busybox.net/|{{Pkg|busybox}}}}<br />
* {{App|finit|Small init system written in Ruby supporting cgroups and socket activation.|https://github.com/felipec/finit/|}}<br />
* {{App|minit|Small yet feature-complete init.|http://www.fefe.de/minit/|{{AUR|minit}}}}<br />
* {{App|sinit|Simple init initially based on Rich Felker’s minimal init.|http://tools.suckless.org/sinit|{{AUR|sinit}}}}<br />
<br />
== Init scripts ==<br />
<br />
* {{App|initscripts-fork|Maintained fork of SysVinit scripts in Arch Linux.|https://bitbucket.org/TZ86/initscripts-fork/overview|{{AUR|initscripts-fork}}}}<br />
* {{App|minirc|Minimal init script designed for BusyBox.|https://github.com/hut/minirc/|{{AUR|minirc-git}}}}<br />
* {{App|OpenRC Arch services|OpenRC service scripts compatible to Arch Linux.|https://github.com/andrewgregory/openrc-arch-services|{{AUR|openrc-arch-services-git}}}}<br />
* {{App|spark-rc|A simple rc script to kickstart your system.|https://github.com/fbt/spark-rc|{{AUR|spark-rc}}}}<br />
* {{App|watchman-sm-services|Examples of services for watchman.|https://github.com/fbt/watchman-services|{{AUR|watchman-sm-services-git}}}}<br />
<br />
== Service managers ==<br />
<br />
* {{App|daemontools|Collection of tools for managing UNIX services.|http://cr.yp.to/daemontools.html|{{AUR|daemontools}}}}<br />
* {{App|[[OpenRC]]|Dependency-based rc system that works with the system-provided init, normally SysVinit.|http://www.gentoo.org/proj/en/base/openrc/|{{AUR|openrc}}}} / {{AUR|openrc-core}}<br />
* {{App|perp|Persistent process (service) supervisor and managment framework for UNIX.|http://b0llix.net/perp/|{{AUR|perp}}}}<br />
* {{App|[[runit]]|UNIX init scheme with service supervision, a replacement for SysVinit, and other init schemes.|http://smarden.org/runit/|{{AUR|runit}}}}<br />
* {{App|s6|Small suite of programs for UNIX, designed to allow service supervision in the line of daemontools and runit.|http://skarnet.org/software/s6/|{{AUR|s6}}}}<br />
* {{App|watchman|A not-so-simple service manager for Linux.|https://github.com/fbt/watchman|{{AUR|watchman-sm}}}}<br />
<br />
== Troubleshooting ==<br />
<br />
This section addresses potential problems when not using ''systemd''.<br />
<br />
=== Cron functionality ===<br />
<br />
Arch uses [[Systemd#Timers|timer]] files instead of [[cron]] by default. See [https://github.com/notfoss/archlinux-cronjobs] for example cron jobs.<br />
<br />
=== Group permissions ===<br />
<br />
Systemd handles [[groups]] with {{ic|logind}} and [[General_troubleshooting#Session_permissions|local sessions]]. Without them, users should add themselves to the respective groups (such as ''audio'', ''video'') and reboot.<br />
<br />
[[Policykit#Authentication_agents|Policykit agents]] require an active session, but rules can be [[Policykit#Allow_mounting_a_filesystem_on_a_system_device_for_a_group|adjusted manually]].<br />
<br />
=== Rootless X (1.16) ===<br />
<br />
See [[Xorg#Rootless Xorg (v1.16)]].<br />
<br />
=== Start X on the same TTY ===<br />
<br />
See [http://blog.falconindy.com/articles/back-to-basics-with-x-and-systemd.html].<br />
<br />
=== Syslog-ng ===<br />
<br />
Syslog-ng is configured for {{ic|journalctl}} by default. Edit {{ic|/etc/syslog-ng/syslog-ng.conf}}:<br />
<br />
{{bc|<br />
source src {<br />
unix-stream("/dev/log");<br />
internal();<br />
file("/proc/kmsg");<br />
};<br />
}}<br />
<br />
See [[Syslog-ng#Sources]] for details.<br />
<br />
== See also ==<br />
<br />
* [https://wiki.debian.org/Debate/initsystem Debian init system debate]<br />
* [http://skarnet.org/software/s6/s6-svscan-1.html How to run s6-svscan as process 1]<br />
* [https://bbs.archlinux.org/viewtopic.php?id=162606&p=1 Replace systemd with busybox + minirc]<br />
* [https://fleshless.org/pages/spark.html Spark project]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Intel_GMA_3600&diff=332022Intel GMA 36002014-08-23T15:35:22Z<p>ConnorBehan: /* News */ - typo</p>
<hr />
<div>[[Category:Graphics]][[Category:X Server]]<br />
[[fr:Intel]]<br />
[[zh-CN:Intel_GMA3600]]<br />
{{Related articles start}}<br />
{{Related|Intel graphics}}<br />
{{Related|Xorg}}<br />
{{Related articles end}}<br />
<br />
The '''Intel GMA 3600''' series is a family of integrated video adapters based on the PowerVR SGX 545 graphics core. It is used in the Atom N2600 and Atom N2800.<br />
<br />
==News==<br />
Intel release a graphics driver for PowerVR:<br />
http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=21938<br />
<br />
Be aware: The current version 1.03 (10/01/2012) has the following dependencies:<br />
<br />
Bundle "Ant"<br />
* Kernel: 3.0.0<br />
* Mesa GL: 7.9<br />
* Xorg: 1.9<br />
<br />
Bundle "Bee"<br />
* Kernel: 3.1.0<br />
* Mesa GL: 7.11<br />
* Xorg: 1.11<br />
<br />
This means, unless you run a really outdated system this driver is useless for Arch-Linux.<br />
<br />
==Kernel module driver==<br />
Kernel has an experimental support for this adapter since v3.3. Since Kernel v3.5 the GMA3600 power features are supported. Now suspend/resume should properly work.<br />
<br />
If after resume you got a blank screen try the following<br />
sudo touch /etc/pm/sleep.d/99video<br />
<br />
==Xorg driver==<br />
At the moment there is no accelerated driver for Xorg Server, but some support is available using the Xorg modesetting driver:<br />
<br />
pacman -S xf86-video-modesetting<br />
<br />
/etc/X11/xorg.conf.d/20-gpudriver.conf:<br />
Section "Device"<br />
Identifier "Intel GMA3600"<br />
Driver "modesetting"<br />
EndSection<br />
<br />
The modesetting driver allows disabling/enabling LVDS, VGA, etc. ports and changing resolution using xrandr.<br />
<br />
The following can be used to disable LVDS and force enable VGA if needed.<br />
<br />
/etc/X11/xorg.conf.d/20-gpudriver.conf:<br />
Section "Device"<br />
Identifier "Intel GMA3600"<br />
Driver "modesetting"<br />
Option "Monitor-LVDS-0" "Ignore"<br />
Option "Monitor-VGA-0" "Monitor"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Ignore"<br />
Option "Ignore"<br />
EndSection<br />
<br />
Section "Monitor"<br />
Identifier "Monitor"<br />
Option "Enable"<br />
EndSection<br />
<br />
==Playing video==<br />
It is unable to utilize whole chip power and play fullHD movies using graphics acceleration. As workaround you could utilize the maximum power of your Atom CPU to decode video:<br />
<br />
mplayer -lavdopts threads=4 -fs myvideo.avi<br />
<br />
== Cedarview-drm module port ==<br />
You can get around the Kernel 3.1.0 requirement from the package by using the following git repository[http://communities.intel.com/message/199686#199686 1] (thanks to [https://github.com/thomas001/cedarview-drm thomas001]):<br />
git clone https://github.com/thomas001/cedarview-drm.git cedarview-drm-master<br />
(Intended for Linux Kernel releases 3.7 to 3.9)<br />
<br />
git clone -b linux-3.5 https://github.com/thomas001/cedarview-drm.git<br />
(Intended for Linux Kernel releases 3.4 and 3.5)<br />
<br />
Currently the following kernel versions are tested:<br />
* vanilla 3.7.8<br />
* vanilla 3.4.32 --- use linux-3.5 branch<br />
<br />
You can either compile the module directly using a command like: <br />
make -C /lib/modules/`uname -r`/build M=`pwd` KMYDIR=`pwd`<br />
<br />
or you employ [https://wiki.archlinux.org/index.php/Dkms DKMS]:<br />
cp -r /path/too/cedarview-drm /usr/src/cedarview-drm-1.0.3<br />
dkms add cedarview-drm/1.0.3<br />
<br />
Afterwards you have to build the module and maybe regenerate your initramfs, as follows:<br />
mkinitcpio -p linux<br />
<br />
==See also==<br />
* https://www.change.org/en-GB/petitions/intel-listen-to-the-community-and-develop-gma3600-drivers-for-linux<br />
* http://ubuntuforums.org/showthread.php?t=1953734<br />
* http://communities.intel.com/message/158477</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Init/Replacing_udev&diff=324018Init/Replacing udev2014-07-08T08:40:45Z<p>ConnorBehan: /* Troubleshooting */ - netcfg is not openrc specific</p>
<hr />
<div>[[Category:Hardware detection and troubleshooting]]<br />
[[ja:Eudev]]<br />
{{ic|eudev}} is a fork of [[udev]] started by the Gentoo project, with the goal of isolation from any particular flavor of system<br />
initialization, such as [[systemd]] or [[sysvinit]]. It is primarily designed and tested for use with [[OpenRC]], but is agnostic to any system initialization so it may be used with other init systems such as [[runit]], [[sysvinit]] etc.<br />
<br />
== Installation ==<br />
<br />
Install {{AUR|eudev}} from the [[Arch User Repository]]. Alternatively, {{AUR|eudev-git}} and {{AUR|eudev-openrc}} are available, each with differing dependencies.<br />
<br />
Be warned that this package will remove [[systemd]] as it replaces udev. Therefore, you should install an alternative init system such as [[OpenRC]], [[runit]] or [[sysvinit]] and have it boot successfully under that init system prior to installing eudev.<br />
<br />
== Troubleshooting ==<br />
<br />
=== General ===<br />
<br />
*eudev will not start<br />
<br />
Check the init script for eudev (aliased to udev, so /etc/openrc/init.d/udev on an OpenRC setup for example) and ensure the command points to /usr/bin/udev.<br />
<br />
*D-Bus will not start<br />
<br />
Install the AUR package {{AUR|dbus-nosystemd}} and then ensure D-Bus is configured in your init system to be started on startup.<br />
<br />
*netctl will not work<br />
<br />
netctl is not compatible due to dependency on systemd libs, instead, use {{AUR|netcfg}}, avaliable in the AUR.<br />
<br />
=== OpenRC Specific ===<br />
<br />
*NetworkManager is not working<br />
<br />
There is a systemd-free version in the AUR, {{AUR|networkmanager-openrc}}</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Blu-ray&diff=290362Blu-ray2013-12-25T18:16:20Z<p>ConnorBehan: /* BD+ */ - Well I'll be damned. It just came out.</p>
<hr />
<div>[[Category:Audio/Video]]<br />
[[Category:Optical]]<br />
This article is designed to help Linux users to play the BluRay discs they have legally purchased on their computers. Since no official BluRay player software is available on their system, Linux users have to use open-source libraries capable of handling the DRM schemes that protect these disc contents. This is legal in most countries where interoperability allows this.<br />
<br />
== How it works ==<br />
=== BluRay DRM ===<br />
Contrary to the DVD CSS, which was definitely compromised once the unique encryption key had been discovered, BluRay uses stronger DRM mechanisms, which makes it a lot more difficult to manage. Firstly, the AACS standard uses a lot more complicated cryptographic process to protect the disc content, but also allows the industry to revoke compromised keys and distribute new keys through new BR discs. Secondly, BluRay may also use another layer of protection: BD+. Although most of commercial discs use AACS, a few of them additionally use BD+. In 2007, the AACS system was compromised and decryption keys were published on the Internet. Many decryption programs were made available, but the interest to Linux users was the capability of playing their discs - legally purchased - on their computers. Although the industry was able to revoke the first leaked decryption keys, new keys are regularly published in a cat and mouse play.<br />
<br />
==== AACS ====<br />
The AACS specification and decryption process are publicly available at [http://www.aacsla.com/specifications/]. Many articles and research papers describe it in detail at [http://forum.doom9.org/showthread.php?t=122363], [http://cacr.uwaterloo.ca/~dstinson/papers/AACS-journal.pdf] or [http://www.iis.sinica.edu.tw/papers/lcs/5007-F.pdf].<br />
{{AUR|libaacs}} is a research project from the VideoLAN developer team to implement the Advanced Access Content System specification, and distributed as an open-source library [http://www.videolan.org/developers/libaacs.html]. This project does not offer any key or certificate that could be used to decode encrypted copyrighted material. However, combined with a key database file, it is possible to use it to play BluRay discs that use the AACS standard. This file is called {{ic|KEYDB.cfg}} and is accessed by libaacs in {{ic|~/.config/aacs}}. The format of this file is available at [http://git.videolan.org/?p=libaacs.git;a=blob_plain;f=KEYDB.cfg;hb=HEAD].<br />
<br />
===== AACS decryption process =====<br />
The AACS decryption process for a protected disc by a licensed player goes through four stages:<br />
# The software/embedded player's Device Keys, together with the disc's Media Key Block (MKB) data are used to retrieve a "Processing Key", and with that (plus another datum from the MKB) to compute the Media Key.<br />
# That Media Key, together with the disc's Volume ID (VID) obtained by the player presenting a valid Host Certificate to the drive is used to compute the Volume Unique Key (VUK).<br />
# This VUK is used to unscramble the disc's scrambled Title Keys.<br />
# Finally those Title Keys unscramble the disc's protected media content.<br />
Note that it is the disc that contains the MKB. MKB have been renewed since the first commercial BluRay release in 2006. The latest MKB is version 30, but many MKB actually share the same key. The software player provides the Host key and certificate, whereas the drive contains a list of the Host key/certificates that have been revoked.<br />
<br />
Using libaacs, the decryption process can skip some of these stages to reach the last step, which allows the media player to play the disc. This is either by providing in the {{ic|KEYDB.cfg}} file either (or both):<br />
* a valid (corresponding to the MKB version of the disc) Processing key and a valid (i.e. non revoked by the drive) Host key/certificate<br />
* a valid VUK for the specific disc.<br />
<br />
If libaacs finds a valid processing key for the disc MKB version as well as a valid Host key and certificates, it can start the decryption process from step 2. However, the Host key/certificates are regularly revoked through the propagation of new BluRay discs. Once revoked, a drive is not able to read both new and older discs. This is usually irreversible and can only be fixed by providing a more recent Host key/certificate (for Windows users, this corresponds to updating their software player). The advantage of this method is that until the Host key/certificate is revoked, and as long as the disc uses an MKB version for which the Processing key is known, libaacs is able to compute the VUK of any disc. As of today, the Processing keys for MKB versions 1 to 28 have been computed and made available on the Internet.<br />
<br />
Thankfully, in case no valid Processing key is available and/or the Host certificate has been revoked, libaacs has an alternative way to decrypt a disc: by providing a valid VUK in the {{ic|KEYDB.cfg}} file. This allows libaacs to skip directly to step 3. Contrary to the Processing keys, VUKs are disc specific. Therefore this is less efficient as the user will have to get the VUK from a third party. But the great advantage is that VUKs cannot be revoked. Note that if libaacs is able to perform step 2 (with a valid Host key/certificate), then it stores the VUK calculated in step 3 in {{ic|~/.cache/aacs/vuk}}. At subsequent viewings of the same disc, libaacs can reuse the stored VUK. Thus it may be a good idea to backup these VUKs.<br />
<br />
==== BD+ ====<br />
In December 2013, VideoLAN released the long awaited {{AUR|libbdplus}} which provides experimental support for BD+ decryption.<br />
<br />
=== Summary ===<br />
1. The user starts playing a BluRay with a video player having libbluray and libaacs support.<br />
<br />
2. If the BR disc is not scrambled with AACS, go to 4a.<br />
<br />
3. If the BR disc is scrambled with AACS, libaacs will:<br />
<br />
:3.1. Check if a valid VUK for the disc is already available in {{ic|~/.cache/aacs/vuk/}}. If yes, go to step 4a, if not continue to next step.<br />
<br />
:3.2. Read {{ic|~/.config/aacs/KEYDB.cfg}}:<br />
<br />
::3.2.1. If a valid VUK is available, go to 4a, if not continue to next step.<br />
<br />
::3.2.2. If a valid Processing key (i.e. corresponding to the disc MKB version) and a valid (non-revoked by drive) Host key/certificate is available, libaacs will compute the VUK. The VUK is stored in {{ic|~/.cache/aacs/vuk}} for future use. Go to step 4a.<br />
<br />
:3.3 If no valid key is available, go to step 4b.<br />
<br />
4a. The software player is able to play the disc content.<br />
<br />
4b. The software player fails to read the disc content.<br />
<br />
==Playback==<br />
===Preparation===<br />
Firstly [[pacman|install]] {{pkg|libbluray}} from the [[official repositories]] and {{AUR|libaacs-git}} from the [[AUR]]. Then try method 1, and if this does not work, try method 2. The two methods are not exclusive, you can use both methods in the same {{ic|KEYDB.cfg}} file.<br />
<br />
==== Method 1 (PK and Host K/C) ====<br />
Download http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg (contains no VUKs, but contains Processing keys and a Host key/certificate up to MKB v28 that is revoked in MKB v30 discs) in {{ic|~/.config/aacs/}}. This method will only work if your drive has not revoked the host key/certificate that is in this {{ic|KEYDB.cfg}} file.<br />
{{bc|cd ~/.config/aacs/ && wget http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg}}<br />
<br />
Next, mount the bluray to a directory. eg: {{bc|# mount /dev/sr0 /media/blurays}}<br />
<br />
When you play the disc (using mplayer or vlc), libaacs will store the VUK in {{ic|~/.cache/aacs/vuk}}. The filename is the disc ID and its content is the VUK itself. VLC will reuse this VUK even if it does not find a valid {{ic|KEYDB.cfg}} file, so it could be a good idea to backup this directory for the future.<br />
<br />
==== Method 2 (VUK) ====<br />
If bluray playback with the hcert mentioned above does not work, download a list of VUKs from http://forum.doom9.org/attachment.php?attachmentid=11170&d=1276615904 or (newer) http://forum.doom9.org/showthread.php?p=1525922#post1525922. You will need to create 2 files in the directory {{ic|~/.config/aacs}}. Unfortunately, both are distributed with the name 'KEYDB'. Fortunately, the VUK file is usually named KEYDB.txt on doom9's forums. The 'KEYDB.cfg' file can be downloaded to this directory as-is. The 'KEYDB.txt' file should be renamed 'vuk' - with no file extension. Attempting to insert the VUK entries into the KEYDB.cfg file will invalidate the file. Note that the VUK entry format has changed since the early libaacs versions. All keys must start with 0x. This command will automatically reformat the keys:<br />
{{bc|<nowiki>sed -i 's/\([[:xdigit:]]\)\{5,\}/0x&/g' ~/.config/aacs/vuk</nowiki>}}<br />
<br />
Next, mount the bluray to a directory. eg: {{bc|# mount /dev/sr0 /media/blurays}}<br />
<br />
=== Media Players ===<br />
These are media players capable of using libbluray and libaacs to play AACS-scrambled BluRay discs.<br />
<br />
==== mplayer ====<br />
To play blurays in mplayer the basic playback command is:<br />
{{bc|mplayer br:///</bluray/mount/dir>}}<br />
<br />
or:<br />
<br />
{{bc|mplayer br://<title number> -bluray-device </bluray/mount/dir>}}<br />
<br />
=====Stuttering Video=====<br />
It is likely that you will need to enable hardware acceleration and multi core CPU support for the bluray to play smoothly.<br />
<br />
For nvidia cards, enable hardware acceleration by installing libvdpau and using the option '-vo vdpau' with mplayer. eg:<br />
{{bc|mplayer -vo vdpau br:///</bluray/mount/dir>}}<br />
<br />
For multi core CPU support use the options '-lavdopts threads=N', where 'N' is the number of cores. eg:<br />
{{bc|1=mplayer -lavdopts threads=2 br:///</bluray/mount/dir>}}<br />
<br />
=====Incorrect Audio Language=====<br />
You can scroll through the playback languages using the '#' key.<br />
<br />
=====Out of Sync Audio=====<br />
From your first mplayer output, you must find the codec used for the bluray. It will be at the end of the line "Selected video codec".<br />
<br />
For H.264 discs use the option '-vc ffh264vdpau'. eg:<br />
{{bc|mplayer -vc ffh264vdpau br:///</bluray/mount/dir>}}<br />
For VC-1 discs use '-vc ffvc1vdpau'. eg:<br />
{{bc|mplayer -vc ffvc1vdpau br:///</bluray/mount/dir>}}<br />
For MPEG discs use '-vc ffmpeg12vdpau'. eg:<br />
{{bc|mplayer -vc ffmpeg12vdpau br:///</bluray/mount/dir>}}<br />
<br />
==== vlc ====<br />
Since version 2.0.0, vlc has had experimental bluray playback support. Bluray menus are not yet working (however, this is improving ; you may try using {{AUR|libbluray-git}} instead of {{pkg|libbluray}}). <br />
<br />
Start playback with: {{bc|vlc bluray://</bluray/mount/dir>}}<br />
<br />
==== xine ====<br />
Start playback with:<br />
{{bc|xine bluray://</bluray/mount/dir>}}<br />
<br />
===Troubleshooting===<br />
====Absent {{ic|KEYDB.cfg}} file====<br />
If a valid VUK is found in {{ic|~/.cache/aacs/vuk}}, then libaacs does not need to use {{ic|KEYDB.cfg}} to decrypt the content. However, a {{ic|KEYDB.cfg}} file in {{ic|~/.config/aacs/}} is still required (even if that file is empty).<br />
<br />
====Revoked Host key/certificate====<br />
Unfortunately, what may happen when trying to play a newer BluRay disc is the revocation of host key/certificates (which are keys of licensed software players) by your drive. When this happens, {{AUR|aacskeys}} will return this message:<br />
<br />
The given Host Certficate / Private Key has been revoked by your drive.<br />
<br />
This is part of the AACS protection scheme: editors are able to revoke old software player host keys that have leaked on the Internet and distribute the lists on newer commercial disc releases. This is irreversible and does cannot be fixed even after reflashing the drive. The only two ways to correct this would be:<br />
* to update the host key/certificate part in {{ic|KEYDB.cfg}} to ones that have not been revoked (yet)<br />
* to add in {{ic|KEYDB.cfg}} the VUK of each specific disc instead, [[BluRay#If Fast & Simple does not work|as explained above]]. VUKs cannot be revoked by the industry.<br />
When a disc (using mplayer or vlc) is succesfully decrypted, libaacs will store the VUK in {{ic|~/.cache/aacs/vuk}}. If the host key/certificate in {{ic|KEYDB.cfg}} is subsequently revoked, VLC will still be able to use the stored VUK, so it could be a good idea to backup the {{ic|~/.cache/aacs}} directory for the future.<br />
<br />
==== Using aacskeys ====<br />
Install {{AUR|aacskeys}}. You need to run {{AUR|aacskeys}} from a directory that contains valid host key/certificate and processing keys:<br />
{{bc|cd /usr/share/aacskeys}} and run: {{bc|aacskeys </bluray/mount/dir>}} eg: {{bc|cd /usr/share/aacskeys && aacskeys /media/blurays}}<br />
<br />
If you wish, you may add the BR to the key database: edit {{ic|~/.config/aacs/KEYDB.cfg}} and add the information output by aacskeys using this syntax:<br />
{{bc|<nowiki>0x<unit key file hash> = Film Title | V | 0x<volume unique key></nowiki>}}<br />
<br />
===== If aacskeys is not able to generate the key =====<br />
Try to generate the VolumeID with [http://forum.doom9.org/showthread.php?p=993782 DumpVID] using wine. The VolumeID can now be used to generate the bluray key with aacskeys with the VolumeID option<br />
{{bc|Usage: aacskeys [options] <mountpath> [volume id / binding nonce]}}<br />
<br />
==Other Useful Software==<br />
<br />
For DVD, the {{Pkg|libdvdcss}} package supplies the needed decryption libs. Below are some options for BluRay/HD-DVD decryption. Users can employ to backup a commercial BluRay movie under Fair Use guidelines:<br />
<br />
*{{AUR|aacskeys}} - Opensource<br />
*{{AUR|dumphd}} - Opensource<br />
*{{AUR|makemkv}} - Closed source/limited free beta<br />
<br />
*[http://www.slysoft.com/en/anydvdhd.html anydvdhd] - Commercial software requiring users to run it on an Microsoft OS in a VM.</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Blu-ray&diff=277908Blu-ray2013-10-07T00:38:52Z<p>ConnorBehan: /* BD+ */ - If you want libbdplus you'll have to write it yourself. Readers should know this.</p>
<hr />
<div>[[Category:Audio/Video]]<br />
[[Category:Optical]]<br />
This article is designed to help Linux users to play the BluRay discs they have legally purchased on their computers. Since no official BluRay player software is available on their system, Linux users have to use open-source libraries capable of handling the DRM schemes that protect these disc contents. This is legal in most countries where interoperability allows this.<br />
<br />
== How it works ==<br />
=== BluRay DRM ===<br />
Contrary to the DVD CSS, which was definitely compromised once the unique encryption key had been discovered, BluRay uses stronger DRM mechanisms, which makes it a lot more difficult to manage. Firstly, the AACS standard uses a lot more complicated cryptographic process to protect the disc content, but also allows the industry to revoke compromised keys and distribute new keys through new BR discs. Secondly, BluRay may also use another layer of protection: BD+. Although most of commercial discs use AACS, a few of them additionally use BD+. In 2007, the AACS system was compromised and decryption keys were published on the Internet. Many decryption programs were made available, but the interest to Linux users was the capability of playing their discs - legally purchased - on their computers. Although the industry was able to revoke the first leaked decryption keys, new keys are regularly published in a cat and mouse play.<br />
<br />
==== AACS ====<br />
The AACS specification and decryption process are publicly available at [http://www.aacsla.com/specifications/]. Many articles and research papers describe it in detail at [http://forum.doom9.org/showthread.php?t=122363], [http://cacr.uwaterloo.ca/~dstinson/papers/AACS-journal.pdf] or [http://www.iis.sinica.edu.tw/papers/lcs/5007-F.pdf].<br />
{{AUR|libaacs}} is a research project from the VideoLAN developer team to implement the Advanced Access Content System specification, and distributed as an open-source library [http://www.videolan.org/developers/libaacs.html]. This project does not offer any key or certificate that could be used to decode encrypted copyrighted material. However, combined with a key database file, it is possible to use it to play BluRay discs that use the AACS standard. This file is called {{ic|KEYDB.cfg}} and is accessed by libaacs in {{ic|~/.config/aacs}}. The format of this file is available at [http://git.videolan.org/?p=libaacs.git;a=blob_plain;f=KEYDB.cfg;hb=HEAD].<br />
<br />
===== AACS decryption process =====<br />
The AACS decryption process for a protected disc by a licensed player goes through four stages:<br />
# The software/embedded player's Device Keys, together with the disc's Media Key Block (MKB) data are used to retrieve a "Processing Key", and with that (plus another datum from the MKB) to compute the Media Key.<br />
# That Media Key, together with the disc's Volume ID (VID) obtained by the player presenting a valid Host Certificate to the drive is used to compute the Volume Unique Key (VUK).<br />
# This VUK is used to unscramble the disc's scrambled Title Keys.<br />
# Finally those Title Keys unscramble the disc's protected media content.<br />
Note that it is the disc that contains the MKB. MKB have been renewed since the first commercial BluRay release in 2006. The latest MKB is version 30, but many MKB actually share the same key. The software player provides the Host key and certificate, whereas the drive contains a list of the Host key/certificates that have been revoked.<br />
<br />
Using libaacs, the decryption process can skip some of these stages to reach the last step, which allows the media player to play the disc. This is either by providing in the {{ic|KEYDB.cfg}} file either (or both):<br />
* a valid (corresponding to the MKB version of the disc) Processing key and a valid (i.e. non revoked by the drive) Host key/certificate<br />
* a valid VUK for the specific disc.<br />
<br />
If libaacs finds a valid processing key for the disc MKB version as well as a valid Host key and certificates, it can start the decryption process from step 2. However, the Host key/certificates are regularly revoked through the propagation of new BluRay discs. Once revoked, a drive is not able to read both new and older discs. This is usually irreversible and can only be fixed by providing a more recent Host key/certificate (for Windows users, this corresponds to updating their software player). The advantage of this method is that until the Host key/certificate is revoked, and as long as the disc uses an MKB version for which the Processing key is known, libaacs is able to compute the VUK of any disc. As of today, the Processing keys for MKB versions 1 to 28 have been computed and made available on the Internet.<br />
<br />
Thankfully, in case no valid Processing key is available and/or the Host certificate has been revoked, libaacs has an alternative way to decrypt a disc: by providing a valid VUK in the {{ic|KEYDB.cfg}} file. This allows libaacs to skip directly to step 3. Contrary to the Processing keys, VUKs are disc specific. Therefore this is less efficient as the user will have to get the VUK from a third party. But the great advantage is that VUKs cannot be revoked. Note that if libaacs is able to perform step 2 (with a valid Host key/certificate), then it stores the VUK calculated in step 3 in {{ic|~/.cache/aacs/vuk}}. At subsequent viewings of the same disc, libaacs can reuse the stored VUK. Thus it may be a good idea to backup these VUKs.<br />
<br />
==== BD+ ====<br />
There is currently no way to handle BD+ with open-source libraries. At one time, the VideoLAN developers were working on a libbdplus library too with source and binary releases postponed until legal clarification. As of 2013, mentions of the project have been removed from their website so it is doubtful that they are still working on it.<br />
<br />
=== Summary ===<br />
1. The user starts playing a BluRay with a video player having libbluray and libaacs support.<br />
<br />
2. If the BR disc is not scrambled with AACS, go to 4a.<br />
<br />
3. If the BR disc is scrambled with AACS, libaacs will:<br />
<br />
:3.1. Check if a valid VUK for the disc is already available in {{ic|~/.cache/aacs/vuk/}}. If yes, go to step 4a, if not continue to next step.<br />
<br />
:3.2. Read {{ic|~/.config/aacs/KEYDB.cfg}}:<br />
<br />
::3.2.1. If a valid VUK is available, go to 4a, if not continue to next step.<br />
<br />
::3.2.2. If a valid Processing key (i.e. corresponding to the disc MKB version) and a valid (non-revoked by drive) Host key/certificate is available, libaacs will compute the VUK. The VUK is stored in {{ic|~/.cache/aacs/vuk}} for future use. Go to step 4a.<br />
<br />
:3.3 If no valid key is available, go to step 4b.<br />
<br />
4a. The software player is able to play the disc content.<br />
<br />
4b. The software player fails to read the disc content.<br />
<br />
==Playback==<br />
===Preparation===<br />
Firstly [[pacman|install]] {{pkg|libbluray}} from the [[official repositories]] and {{AUR|libaacs-git}} from the [[AUR]]. Then try method 1, and if this does not work, try method 2. The two methods are not exclusive, you can use both methods in the same {{ic|KEYDB.cfg}} file.<br />
<br />
==== Method 1 (PK and Host K/C) ====<br />
Download http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg (contains no VUKs, but contains Processing keys and a Host key/certificate up to MKB v28 that is revoked in MKB v30 discs) in {{ic|~/.config/aacs/}}. This method will only work if your drive has not revoked the host key/certificate that is in this {{ic|KEYDB.cfg}} file.<br />
{{bc|cd ~/.config/aacs/ && wget http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg}}<br />
<br />
Next, mount the bluray to a directory. eg: {{bc|# mount /dev/sr0 /media/blurays}}<br />
<br />
When you play the disc (using mplayer or vlc), libaacs will store the VUK in {{ic|~/.cache/aacs/vuk}}. The filename is the disc ID and its content is the VUK itself. VLC will reuse this VUK even if it does not find a valid {{ic|KEYDB.cfg}} file, so it could be a good idea to backup this directory for the future.<br />
<br />
==== Method 2 (VUK) ====<br />
If bluray playback with the hcert mentioned above does not work, download a list of VUKs from http://forum.doom9.org/attachment.php?attachmentid=11170&d=1276615904 or (newer) http://forum.doom9.org/showthread.php?p=1525922#post1525922. You will need to create 2 files in the directory {{ic|~/.config/aacs}}. Unfortunately, both are distributed with the name 'KEYDB'. Fortunately, the VUK file is usually named KEYDB.txt on doom9's forums. The 'KEYDB.cfg' file can be downloaded to this directory as-is. The 'KEYDB.txt' file should be renamed 'vuk' - with no file extension. Attempting to insert the VUK entries into the KEYDB.cfg file will invalidate the file. Note that the VUK entry format has changed since the early libaacs versions. All keys must start with 0x. This command will automatically reformat the keys:<br />
{{bc|<nowiki>sed -i 's/\([[:xdigit:]]\)\{5,\}/0x&/g' ~/.config/aacs/vuk</nowiki>}}<br />
<br />
Next, mount the bluray to a directory. eg: {{bc|# mount /dev/sr0 /media/blurays}}<br />
<br />
=== Media Players ===<br />
These are media players capable of using libbluray and libaacs to play AACS-scrambled BluRay discs.<br />
<br />
==== mplayer ====<br />
To play blurays in mplayer the basic playback command is:<br />
{{bc|mplayer br:///</bluray/mount/dir>}}<br />
<br />
or:<br />
<br />
{{bc|mplayer br://<title number> -bluray-device </bluray/mount/dir>}}<br />
<br />
=====Stuttering Video=====<br />
It is likely that you will need to enable hardware acceleration and multi core CPU support for the bluray to play smoothly.<br />
<br />
For nvidia cards, enable hardware acceleration by installing libvdpau and using the option '-vo vdpau' with mplayer. eg:<br />
{{bc|mplayer -vo vdpau br:///</bluray/mount/dir>}}<br />
<br />
For multi core CPU support use the options '-lavdopts threads=N', where 'N' is the number of cores. eg:<br />
{{bc|1=mplayer -lavdopts threads=2 br:///</bluray/mount/dir>}}<br />
<br />
=====Incorrect Audio Language=====<br />
You can scroll through the playback languages using the '#' key.<br />
<br />
=====Out of Sync Audio=====<br />
From your first mplayer output, you must find the codec used for the bluray. It will be at the end of the line "Selected video codec".<br />
<br />
For H.264 discs use the option '-vc ffh264vdpau'. eg:<br />
{{bc|mplayer -vc ffh264vdpau br:///</bluray/mount/dir>}}<br />
For VC-1 discs use '-vc ffvc1vdpau'. eg:<br />
{{bc|mplayer -vc ffvc1vdpau br:///</bluray/mount/dir>}}<br />
For MPEG discs use '-vc ffmpeg12vdpau'. eg:<br />
{{bc|mplayer -vc ffmpeg12vdpau br:///</bluray/mount/dir>}}<br />
<br />
==== vlc ====<br />
Since version 2.0.0, vlc has had experimental bluray playback support. Bluray menus are not yet working (however, this is improving ; you may try using {{AUR|libbluray-git}} instead of {{pkg|libbluray}}). <br />
<br />
Start playback with: {{bc|vlc bluray://</bluray/mount/dir>}}<br />
<br />
==== xine ====<br />
Start playback with:<br />
{{bc|xine bluray://</bluray/mount/dir>}}<br />
<br />
===Troubleshooting===<br />
====Absent {{ic|KEYDB.cfg}} file====<br />
If a valid VUK is found in {{ic|~/.cache/aacs/vuk}}, then libaacs does not need to use {{ic|KEYDB.cfg}} to decrypt the content. However, a {{ic|KEYDB.cfg}} file in {{ic|~/.config/aacs/}} is still required (even if that file is empty).<br />
<br />
====Revoked Host key/certificate====<br />
Unfortunately, what may happen when trying to play a newer BluRay disc is the revocation of host key/certificates (which are keys of licensed software players) by your drive. When this happens, {{AUR|aacskeys}} will return this message:<br />
<br />
The given Host Certficate / Private Key has been revoked by your drive.<br />
<br />
This is part of the AACS protection scheme: editors are able to revoke old software player host keys that have leaked on the Internet and distribute the lists on newer commercial disc releases. This is irreversible and does cannot be fixed even after reflashing the drive. The only two ways to correct this would be:<br />
* to update the host key/certificate part in {{ic|KEYDB.cfg}} to ones that have not been revoked (yet)<br />
* to add in {{ic|KEYDB.cfg}} the VUK of each specific disc instead, [[BluRay#If Fast & Simple does not work|as explained above]]. VUKs cannot be revoked by the industry.<br />
When a disc (using mplayer or vlc) is succesfully decrypted, libaacs will store the VUK in {{ic|~/.cache/aacs/vuk}}. If the host key/certificate in {{ic|KEYDB.cfg}} is subsequently revoked, VLC will still be able to use the stored VUK, so it could be a good idea to backup the {{ic|~/.cache/aacs}} directory for the future.<br />
<br />
==== Using aacskeys ====<br />
Install {{AUR|aacskeys}}. You need to run {{AUR|aacskeys}} from a directory that contains valid host key/certificate and processing keys:<br />
{{bc|cd /usr/share/aacskeys}} and run: {{bc|aacskeys </bluray/mount/dir>}} eg: {{bc|cd /usr/share/aacskeys && aacskeys /media/blurays}}<br />
<br />
If you wish, you may add the BR to the key database: edit {{ic|~/.config/aacs/KEYDB.cfg}} and add the information output by aacskeys using this syntax:<br />
{{bc|<nowiki>0x<unit key file hash> = Film Title | V | 0x<volume unique key></nowiki>}}<br />
<br />
===== If aacskeys is not able to generate the key =====<br />
Try to generate the VolumeID with [http://forum.doom9.org/showthread.php?p=993782 DumpVID] using wine. The VolumeID can now be used to generate the bluray key with aacskeys with the VolumeID option<br />
{{bc|Usage: aacskeys [options] <mountpath> [volume id / binding nonce]}}<br />
<br />
==Other Useful Software==<br />
<br />
For DVD, the {{Pkg|libdvdcss}} package supplies the needed decryption libs. Below are some options for BluRay/HD-DVD decryption. Users can employ to backup a commercial BluRay movie under Fair Use guidelines:<br />
<br />
*{{AUR|aacskeys}} - Opensource<br />
*{{AUR|dumphd}} - Opensource<br />
*{{AUR|makemkv}} - Closed source/limited free beta<br />
<br />
*[http://www.slysoft.com/en/anydvdhd.html anydvdhd] - Commercial software requiring users to run it on an Microsoft OS in a VM.</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Synchronization_and_backup_programs&diff=276295Synchronization and backup programs2013-09-22T03:29:24Z<p>ConnorBehan: /* Cloud backups */ - Adding Mega, which is more than competitive in this area</p>
<hr />
<div>[[Category:Data compression and archiving]]<br />
[[Category:System recovery]]<br />
[[ru:Backup Programs]]<br />
This wiki page contains information about various backup programs. It's a good idea to ''have'' regular backups of important data, most notably configuration files ({{Ic|/etc/*}}) and the local pacman database (usually {{Ic|/var/lib/pacman/local/*}}).<br />
<br />
== Introduction ==<br />
Before you start trying various programs out, try to think about your needs, e.g. consider the following questions:<br />
* What backup medium do I have available? (CD, DVD, remote server, external hard drive, etc.)<br />
* How often do I plan to backup? (daily, weekly, monthly, etc.)<br />
* What features do I expect from the backup solution? (compression, encryption, handles renames, etc.)<br />
* How do I plan to restore backups if needed?<br />
<br />
== Incremental backups ==<br />
Applications that can do incremental backups remember and take into account what data has been backed up during the last run and eliminate the need to have duplicates of unchanged data. Restoring the data to a certain point in time would require locating the last full backup and all the incremental backups from then to the moment when it is supposed to be restored. This sort of backup is useful for those who do it very often.<br />
<br />
=== Rsync-type backups ===<br />
The main characteristic of this type of backups is that they maintain a copy of the directory you want to keep a backup of, in a traditional "mirror" fashion.<br />
<br />
Certain rsync-type packages also do snapshot backups by storing files which describe how the contents of files and folders changed from the last backup (so-called 'diffs'). Hence, they are inherently incremental, but usually they do not have compression or encryption. On the other hand, a working copy of everything is immediately available, no decompression/decryption needed. A downside to rsync-type programs is that they cannot be easily burned and restored from a CD or DVD.<br />
<br />
==== Console ====<br />
* {{App|[[rsync]]|A file transfer program to keep remote files in sync.<br />
** rsync almost always makes a mirror of the source.<br />
** It is possible to restore a full backup before the most recent backup if hardlinks are allowed in the backup file system. See the section "Back up your data with rsync" in this link |http://www.ibm.com/developerworks/aix/library/au-spunix_rsync/index.html|<br />
<br />
** If hard links are not allowed, it is impossible to restore a full backup before the most recent backup (but you can use --backup to keep old versions of the files).<br />
** Standard install on all distros.<br />
** Can run over SSH (port 22) or native rsync protocol (port 873).<br />
** Win32 version available.<br />
|http://rsync.samba.org/|{{Pkg|rsync}}}}<br />
<br />
* {{App|[[Wikipedia:Rsync#Variations|rdiff-backup]]|A utility for local/remote mirroring and incremental backups.<br />
** Stores the most recent backup as regular files.<br />
** To revert to older versions, you apply the diff files to recreate the older versions.<br />
** It is granularly incremental (delta backup), it only stores changes to a file; will not create a new copy of a file upon change.<br />
** Win32 version available.<br />
|http://www.nongnu.org/rdiff-backup/|{{Pkg|rdiff-backup}}}}<br />
<br />
* {{App|[[rsnapshot]]|A remote filesystem snapshot utility.<br />
** Does not store diffs, instead it copies entire files if they have changed.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** It is differential in that the size of the backup is only the original backup size plus the size of all files that have changed since the last backup.<br />
** Destination filesystem must support hard links.<br />
** Win32 version available.<br />
|http://www.rsnapshot.org/|{{Pkg|rsnapshot}}}}<br />
<br />
* {{App|SafeKeep|A client/server backup system which uses rdiff-backup.<br />
** Integrates with Linux LVM and databases to create consistent backups.<br />
** Bandwidth throttling.<br />
|http://safekeep.sourceforge.net/|{{AUR|safekeep}}}}<br />
<br />
* {{App|Link-Backup|A tool similar to rsync based scripts, but which does not use rsync. NOTE: no upstream activity since 2008. <br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** Intelligently handles renames, moves, and duplicate files without additional storage or transfer.<br />
** The backup directory contains {{ic|.catalog}}, a catalog of all unique file instances; backup trees hard-link to this catalog.<br />
** Transfer occurs over standard I/O locally or remotely between a client and server instance of this script.<br />
** It copies itself to the server; it does not need to be installed on the server.<br />
** Requires SSH for remote backups.<br />
** It resumes stopped backups; it can even be told to run for an arbitrary number of minutes.<br />
|http://www.scottlu.com/Content/Link-Backup.html|{{AUR|link-backup}}}}<br />
<br />
* {{App|[[Wikipedia:Unison (file synchronizer)|Unison]]|A program that synchronizes files between two machines over network (LAN or Inet) using a smart diff method + rsync. Allows the user to interactively choose which changes to push, pull, or merge.|http://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}<br />
<br />
* {{App|oldtime|A highly customizable and configurable backup & restore system.|https://github.com/GutenYe/oldtime|{{AUR?|oldtime}}}}<br />
<br />
* {{App|rsync-snapshot.sh|Another rsync shellscript with smart rotation (non-linear distribution) of backups. Integrity protection, Quotas, Rules and many more features.|http://blog.pointsoftware.ch/index.php/howto-local-and-remote-snapshot-backup-using-rsync-with-hard-links/|{{AUR?|rsync-snasphot.sh}}}}<br />
<br />
==== Graphical ====<br />
* {{App|Back In Time|A simple backup tool for Linux inspired by the [[Wikipedia:FlyBack|FlyBack]] and [https://wiki.ubuntu.com/TimeVault/ TimeVault] projects.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** Really is just a front-end to {{ic|rsync}}, {{ic|diff}}, {{ic|cp}}.<br />
** A new snapshot is created only if something changed since the last snapshot.<br />
|http://backintime.le-web.org/|{{AUR|backintime}}}}<br />
<br />
* {{App|[[Wikipedia:FlyBack|FlyBack]]|A clone of Apple's [[Wikipedia:Time Machine (Mac OS)|Time Machine]], a backup utility for Mac OS X.|http://www.flyback-project.org/|{{AUR|flyback}}}}<br />
<br />
* {{App|[[Wikipedia:Areca Backup|Areca Backup]]|An easy to use and reliable backup solution for Linux and Windows.<br />
** Written in Java.<br />
** Primarily archive-based (zip), but will do file-based backup as well.<br />
** Delta backup supported (stores only changes).<br />
|http://areca.sourceforge.net/|{{AUR|areca}}}}<br />
<br />
* {{App|[[Wikipedia:LuckyBackup|luckyBackup]]|An easy program to backup and sync your files.<br />
** It is written in Qt and C++.<br />
** It has sync, backup (with include and exclude options) and restore capabilities.<br />
** It can do remote connection backups, scheduled backups.<br />
** A command line mode.<br />
|http://luckybackup.sourceforge.net/index.html|{{AUR|luckybackup}}}}<br />
<br />
* {{App|syncBackup|A front-end for rsync that provides a fast and extraordinary copying tool. It offers the most common options that control its behavior and permit very flexible specification of the set of files to be copied.<br />
|http://www.darhon.com/syncbackup|{{AUR|syncbackup}}}}<br />
<br />
* {{App|[[BackupPC]]|A high-performance, enterprise-grade system for backing up Unix, Linux, Windows, and Mac OS X desktops and laptops to a remote server.<br />
** Deduplication: Identical files across multiple backups of the same or different PCs are stored only once resulting in substantial savings in disk storage and disk I/O.<br />
** Optional compression support further reducing disk storage.<br />
** No client-side software is needed.<br />
** Simple but powerful web-based UI.<br />
|http://backuppc.sourceforge.net/index.html|{{Pkg|backuppc}}}}<br />
<br />
=== Other backups ===<br />
Most other backup applications tend to create (big) archive files and (of course) keep track of what's been archived. Creating {{ic|.tar.bz2}} or {{ic|.tar.gz}} archives has the advantage that you can extract the backups with just tar/bzip2/gzip, so you do not need to have the backup program around.<br />
<br />
==== Console ====<br />
* {{App|Arch Backup|A trivial backup script with simple configuration.<br />
** Configurable compression method.<br />
** Multiple backup targets.<br />
|http://code.google.com/p/archlinux-stuff/|{{Pkg|arch-backup}}}}<br />
<br />
* {{App|[[Backup with hdup|hdup]]|A very simple command line backup tool.<br />
** Creates tar.gz or tar.bz2 archives.<br />
** Supports gpg encryption.<br />
** Supports pushing over SSH.<br />
** Multiple backup targets.<br />
|http://miek.nl/projects/hdup2/|{{AUR|hdup}}}}<br />
<br />
* {{App|rdup|A platform for backups that provides scripts to facilitate backups and delegates the encryption, compression, transfer and packaging to other utilities in a true Unix-way.<br />
** Creates tar.gz archives or rsync-type copy.<br />
** Encryption (gpg, blowfish and others); also applies for rsync-type copy.<br />
** Compression (also for rsync-type copy).<br />
|http://miek.nl/projects/rdup|{{AUR|rdup}}}}<br />
<br />
* {{App|[[Duplicity]]|A simple command-line utility which allows encrypted compressed incremental backup to nearly any storage.<br />
** Supports gpg encryption and signing.<br />
** Supports gzip compression.<br />
** Supports full or incremental backups, incremental backup stores only difference between new and old file.<br />
** Supports pushing over FTP, SSH, rsync, WebDAV, WebDAVs, HSi and Amazon S3 or local filesystem.<br />
|http://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}<br />
<br />
* {{App|[[Wikipedia:DAR (Disk Archiver)|DAR]]|A full-featured command-line backup tool, short for Disk ARchive.<br />
** It uses its own format for archives (so you need to have it around when you want to restore).<br />
** Supports splitting backups into more files by size.<br />
** Makefile-type config files, some custom scripts are available along with it.<br />
** Supports basic encryption.<br />
** Automatic backup using [[cron]] is possible with {{AUR|sarab}}.<br />
|http://dar.linux.free.fr/|{{AUR|dar}} {{AUR|kdar}} (fontend)}}<br />
<br />
* {{App|Manent|An algorithmically strong backup and archival program. NOTE: no upstream activity since 2009.<br />
** Efficient backup to anything that looks like a storage.<br />
** Works well over a slow and unreliable network.<br />
** Offers online access to the contents of the backup.<br />
** Backed up storage is completely encrypted.<br />
** Several computers can use the same storage for backup, automatically sharing data.<br />
** Not reliant on timestamps of the remote system to detect changes.<br />
** Cross-platform support for Unicode file names.<br />
|http://code.google.com/p/manent/|{{AUR|manent}}}}<br />
<br />
* {{App|btar|tar-compatible archiver<br />
** Fast archive creation (multicore compression or ciphering)<br />
** Arbitrary chain of compression/ciphers (calls any compression/ciphering programs)<br />
** Indexed archive retrieval or listing<br />
** Redundancy<br />
** Serialization through pipes (and only one file per backup)<br />
** Can be extracted or checked with gnutar<br />
** Differential backups of multiple levels<br />
** Optional encoding of big files with rsync-differences<br />
|http://viric.name/cgi-bin/btar|{{AUR|btar}}}}<br />
<br />
* {{App|obnam|Easy, secure backup program<br />
** Uses snapshots instead of full/incremental backups<br />
|http://liw.fi/obnam/|{{AUR|obnam}}}}<br />
<br />
* {{App|System Tar & Restore|A set of bash scripts for full system backup and restore<br />
** CLI and Dialog interfaces, Zenity wrappers<br />
** Easy backup and restore wizards<br />
** Uses tar to create and restore backups<br />
** Creates tar.gz or tar.xz archives<br />
** Uses rsync to transfer a running system<br />
** Supports Grub2 and Syslinux<br />
|https://github.com/tritonas00/system-tar-and-restore|{{AUR|system-tar-and-restore}}}}<br />
<br />
* {{App|Packrat|A simple, modular backup system using [[Wikipedia:DAR (Disk Archiver)|DAR]]<br />
** Full or incremental backups stored locally, on a remote system via SSH, or on Amazon S3<br />
|http://www.zeroflux.org/projects|{{AUR|packrat}}}}<br />
<br />
==== Graphical ====<br />
* {{App|Backerupper|A simple program for backing up selected directories over a local network. Its main intended purpose is backing up a user's personal data.<br />
** Creates {{ic|.tar.gz}} archives.<br />
** Configurable backup frequency, backup time and max copies.<br />
|http://sourceforge.net/projects/backerupper/|{{AUR|backerupper}}}}<br />
<br />
* {{App|[[Duplicity|Déjà Dup]]|A simple GTK+ backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend.<br />
** Automatic, timed backup configurable in GUI.<br />
** Restore wizard.<br />
** Integrated into the Nautilus file manager.<br />
** Inherits several features of duplicity.<br />
|https://launchpad.net/deja-dup|{{Pkg|deja-dup|}}}}<br />
<br />
* {{App|Synkron|A folder synchronization tool.<br />
** Syncs multiple folders.<br />
** Can exclude files from sync based on wildcards.<br />
** Restores files.<br />
** Cross-platform support.<br />
|http://synkron.sourceforge.net/|{{AUR|synkron}}}}<br />
<br />
== Cloud backups ==<br />
* {{App|[[Wikipedia:CrashPlan|CrashPlan]]|An online/offsite backup solution.<br />
** Unlimited online space for very reasonable pricing.<br />
** Automatic and incremental backups to multiple destinations.<br />
** Intuitive GUI.<br />
** Offers encryption and de-duplication.<br />
** Software is generally free.<br />
|http://www.crashplan.com/|{{AUR|crashplan}}}}<br />
<br />
* {{App|[[Dropbox]]|A popular file-sharing service.<br />
** A daemon monitors a specified directory, and uploads incremental changes to dropbox.com. <br />
** Changes automatically show up on your other computers. <br />
** Includes file sharing and a public directory. <br />
** You can recover deleted files. <br />
** Community written add-ons. <br />
** Free accounts have 2GB storage.<br />
|http://www.getdropbox.com|{{AUR|dropbox}} {{AUR|nautilus-dropbox}}}}<br />
<br />
* {{App|[[Wikipedia:Jungle Disk|Jungle Disk]]|An online backup tool that stores its data in Amazon S3 or Rackspace Cloud Files.<br />
** A Nautilus extension.<br />
** Only paid plans available.<br />
|http://www.jungledisk.com/|{{AUR|nautilus-jungledisk}}}}<br />
<br />
* {{App|[[Wikipedia:Mega (website)|MEGA]]|Successor to the MegaUpload file-sharing service.<br />
** Free accounts are 50GB with paid plans available for more space.<br />
** Offers encryption and de-duplication.<br />
** Usualy accessed through its web interface but other tools exist.<br />
|https://mega.co.nz|{{AUR|megatools}}}}<br />
<br />
* {{App|Tarsnap|A secure online backup service for BSD, Linux, OS X, Solaris and Windows (through Cygwin).<br />
** Compressed encrypted backups to Amazon S3 Servers.<br />
** Automate via [[cron]].<br />
** Incremental backups.<br />
** Backup any files or directories.<br />
** Command line only client.<br />
** Pay only for usage (bandwidth and storage). <br />
|http://www.tarsnap.com|{{Pkg|tarsnap}}}}<br />
<br />
* {{App|[[Wikipedia:Wuala|Wuala]]|A secure online storage, file synchronization, versioning and backup service.<br />
** Closed source, free and paid version available.<br />
** Free account holds 5GB.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
** Social networking features.<br />
** All files in the cloud are first encrypted locally.<br />
|http://www.wuala.com/|{{AUR|wuala}}, {{AUR|wuala-daemon}} &ndash; to run as daemon}}<br />
<br />
* {{App|[[Wikipedia:SpiderOak|SpiderOak]]|An online backup tool for Windows, Mac and Linux users to back up, share, sync, access and store[1] their data.<br />
** Free and paid version available.<br />
** Free account holds 2GB.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
|https://spideroak.com/|{{AUR|spideroak}}}}<br />
<br />
* {{App|[[Ubuntu One]]|An online storage service with sync and sharing across platforms.<br />
** Free and paid versions available.<br />
** Free account with 5GB.<br />
** Mobile access.<br />
** Music streaming.<br />
|https://one.ubuntu.com/services/|{{Pkg|ubuntuone-client}}}}<br />
<br />
== Cooperative storage cloud backups ==<br />
<br />
A [[Wikipedia:Cooperative_storage_cloud|cooperative storage cloud]] is a decentralized model of networked online storage where data is stored on multiple computers, hosted by the participants cooperating in the cloud. <br />
<br />
* {{App|[http://www.symform.com Symform]| A peer-to-peer cloud backup service.<br />
** Unlimited free backup in exchange for 2:1 storage space contribution with an always-connected device (at least 80% uptime).<br />
** [http://www.symform.com/our-solutions/pricing/ Payment options exist].<br />
** First 10GB of backup storage is free (no contribution needed).<br />
** In addition to paid support, support plans in exchange for extended contribution (300GB+) exist.<br />
** Automatic and incremental backups.<br />
** Data is encrypted before leaving the computer, though keys are also stored on the Symform's servers.<br />
** Customizable limits for bandwidth consumption.<br />
** Ability to have a local copy ("Hot Copy") of the backed up data on a different disk or computer.<br />
** Ability to have synchronized folders between nodes (Dropbox-like).<br />
** Closed source, using mono. Windows clients available.<br />
|http://www.symform.com/|{{AUR|symform}}}}<br />
<br />
== Non-incremental backups ==<br />
Another type of backups are those used in case of a disaster. These include application that allow easy backup of entire filesystems and recovery in case of failure, usually in the form of a Live CD or USB drive. The contains complete system images from one or more specific points in time and are frequently used by to record known good configurations.<br />
<br />
* {{App|Q7Z|P7Zip GUI for Linux, which attempts to simplify data compression and backup. It can create the following archive types: 7z, BZip2, Zip, GZip, Tar.<br />
** Updates existing archives quickly.<br />
** Backup multiple folders to a storage location.<br />
** Create or extract protected archives.<br />
** Lessen effort by using archiving profiles and lists.<br />
|http://k7z.sourceforge.net/|{{AUR|q7z}}}}<br />
<br />
* {{App|[[Partclone]]|A tool that can be used to back up and restore a partition while considering only used blocks.<br />
** Supports ext2, ext3, hfs+, reiser3.5, reiser3.6, reiser4, ext4 and btrfs.<br />
** Supports compression.<br />
|http://partclone.nchc.org.tw/trac/|{{Pkg|partclone}}}}<br />
<br />
* {{App|[[Wikipedia:Redo Backup and Recovery|Redo Backup and Recovery]]|A backup and disaster recovery application that runs from a bootable Linux CD image.<br />
** Is capable of bare-metal backup and recovery of disk partitions.<br />
** Uses [http://www.xpud.org/ xPUD] and [[Partclone]] for the backend.<br />
|http://www.redobackup.org/|{{AUR?|redobackup}}}}<br />
<br />
* {{App|[[Wikipedia:Clonezilla|Clonezilla]]|A disaster recovery, disk cloning, disk imaging and deployment solution.<br />
** Boots from live CD, USB flash drive, or PXE server.<br />
** Supports ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs, btrfs FAT32, NTFS, HFS+ and others.<br />
** Uses Partclone (default), Partimage (optional), ntfsclone (optional), or dd to image or clone a partition.<br />
** Multicasting server to restore to many machines at once.<br />
|http://clonezilla.org/|{{Pkg|clonezilla}}}}<br />
<br />
* {{App|[[Wikipedia:Partimage|Partimage]]|A disk cloning utility for Linux/UNIX environments.<br />
** Has a Live CD.<br />
** Supports the most popular filesystems on Linux, Windows and Mac OS.<br />
** Compression.<br />
** Saving to multiple CDs or DVDs or across a network using Samba/NFS.<br />
|http://www.partimage.org/Main_Page|{{Pkg|partimage}}}}<br />
<br />
* {{App|FSArchiver|A safe and flexible file-system backup and deployment tool<br />
** Support for basic file attributes (permissions, owner, ...).<br />
** Support for multiple file-systems per archive.<br />
** Support for extended attributes (they are used by SELinux).<br />
** Support the basic file-system attributes (label, uuid, block-size) for all linux file-systems.<br />
** Support for [http://www.fsarchiver.org/Cloning-ntfs ntfs filesystems] (ability to create flexible clones of a Windows partitions).<br />
** Checksumming of everything which is written in the archive (headers, data blocks, whole files).<br />
** Ability to restore an archive which is corrupt (it will just skip the current file).<br />
** Multi-threaded lzo, gzip, bzip2, lzma compression.<br />
** Support for splitting large archives into several files with a fixed maximum size.<br />
** Encryption of the archive using a password. Based on blowfish from libcrypto from [[OpenSSL]].<br />
** Support backup of a mounted root filesystem (-A option).<br />
|http://www.fsarchiver.org/Main_Page|{{Pkg|fsarchiver}}}}<br />
<br />
* {{App|[[Wikipedia:Mondo Rescue|Mondo Rescue]]|A disaster recovery solution to create backup media that can be used to redeploy the damaged system.<br />
** Image-based backups, supporting Linux/Windows.<br />
** Compression rate is adjustable.<br />
** Can backup live systems (without having to halt it).<br />
** Can split image over many files.<br />
** Supports booting to a Live CD to perform a full restore.<br />
** Can backup/restore over NFS, from CDs, tape drives and and other media.<br />
** Can verify backups.<br />
|http://www.mondorescue.org/|{{AUR|mondo}}}}<br />
<br />
== Versioning systems ==<br />
These are traditionally used for keeping track of software development; but if you want to have a simple way to manage your config files in one directory, it might be a good solution.<br />
<br />
=== Version control systems ===<br />
{{Wikipedia|Comparison of revision control software}}.<br />
<br />
* {{App|[[Git]]|A distributed revision control and source code management system with an emphasis on speed.<br />
** Very easy creation, merging, and deletion of branches.<br />
** Nearly all operations are performed locally, giving it a huge speed advantage on centralized systems.<br />
** Has a "staging area" or "index", this is an intermediate area where commits can be formatted and reviewed before completing the commit.<br />
** Does not handle binary files very well.<br />
|http://git-scm.com/|{{Pkg|git}}}}<br />
<br />
* {{App|[[Subversion]]|A full-featured centralized version control system originally designed to be a better CVS.<br />
** Renamed/copied/moved/removed files retain full revision history.<br />
** Native support for binary files, with space-efficient binary-diff storage.<br />
** Costs proportional to change size, not to data size.<br />
** Allows arbitrary metadata ("properties") to be attached to any file or directory. <br />
|http://subversion.apache.org/|{{Pkg|subversion}}}}<br />
<br />
* {{App|[[Mercurial]]|A distributed version control system written in Python and similar in many ways to Git.<br />
** Platform independent.<br />
** Support for [http://mercurial.selenic.com/wiki/UsingExtensions extensions].<br />
** A set of commands consistent with Subversion.<br />
** Supports tags.<br />
|http://mercurial.selenic.com/|{{Pkg|mercurial}}}}<br />
<br />
* {{App|[[Wikipedia:Bazaar (software)|Bazaar]]|A distributed version control system that helps you track project history over time and to collaborate easily with others.<br />
** Similar commands to Subversion.<br />
** Supports working with or without a central server.<br />
** Support for working with some other revision control systems<br />
** Complete Unicode support.<br />
|http://bazaar.canonical.com/en/|{{Pkg|bzr}}}}<br />
<br />
* {{App|[[Wikipedia:Darcs|Darcs]]|A distributed revision control system that was designed to replace traditional, centralized source control systems such as CVS and Subversion.<br />
** Offline mode.<br />
** Easy branching and merging.<br />
** Written in Haskell.<br />
** Not very fast.<br />
|http://darcs.net/|{{AUR|darcs}}}}<br />
<br />
=== VCS-based backups ===<br />
<br />
* {{App|Gibak|A backup system based on [[Git]].<br />
** Supports binary diffs.<br />
** Uses all of Git's features (such as {{ic|.gitignore}} for filtering files).<br />
** Uses Git's hook system to save information that Git does not (permissions, mtime, empty directories, etc).<br />
|https://github.com/pangloss/gibak|{{AUR|gibak}}}}<br />
* {{App|bup|A fledgling Git-based backup solution written in Python and C.<br />
** Uses a rolling checksum algorithm (similar to rsync) to split large files into chunks.<br />
** Can back up directly to a remote bup server.<br />
** Has an improved index format to allow you to track many files.<br />
|https://github.com/bup/bup|{{AUR|bup}}}}<br />
* {{App|ColdStorage|Another backup tool using Git at its core, written in [[Qt]].|http://gitorious.org/coldstorage|{{AUR|coldstorage-git}}}}<br />
<br />
== External Resources ==<br />
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]<br />
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Synchronization_and_backup_programs&diff=276293Synchronization and backup programs2013-09-22T03:22:27Z<p>ConnorBehan: Packrat is a backup script, not a cloud service</p>
<hr />
<div>[[Category:Data compression and archiving]]<br />
[[Category:System recovery]]<br />
[[ru:Backup Programs]]<br />
This wiki page contains information about various backup programs. It's a good idea to ''have'' regular backups of important data, most notably configuration files ({{Ic|/etc/*}}) and the local pacman database (usually {{Ic|/var/lib/pacman/local/*}}).<br />
<br />
== Introduction ==<br />
Before you start trying various programs out, try to think about your needs, e.g. consider the following questions:<br />
* What backup medium do I have available? (CD, DVD, remote server, external hard drive, etc.)<br />
* How often do I plan to backup? (daily, weekly, monthly, etc.)<br />
* What features do I expect from the backup solution? (compression, encryption, handles renames, etc.)<br />
* How do I plan to restore backups if needed?<br />
<br />
== Incremental backups ==<br />
Applications that can do incremental backups remember and take into account what data has been backed up during the last run and eliminate the need to have duplicates of unchanged data. Restoring the data to a certain point in time would require locating the last full backup and all the incremental backups from then to the moment when it is supposed to be restored. This sort of backup is useful for those who do it very often.<br />
<br />
=== Rsync-type backups ===<br />
The main characteristic of this type of backups is that they maintain a copy of the directory you want to keep a backup of, in a traditional "mirror" fashion.<br />
<br />
Certain rsync-type packages also do snapshot backups by storing files which describe how the contents of files and folders changed from the last backup (so-called 'diffs'). Hence, they are inherently incremental, but usually they do not have compression or encryption. On the other hand, a working copy of everything is immediately available, no decompression/decryption needed. A downside to rsync-type programs is that they cannot be easily burned and restored from a CD or DVD.<br />
<br />
==== Console ====<br />
* {{App|[[rsync]]|A file transfer program to keep remote files in sync.<br />
** rsync almost always makes a mirror of the source.<br />
** It is possible to restore a full backup before the most recent backup if hardlinks are allowed in the backup file system. See the section "Back up your data with rsync" in this link |http://www.ibm.com/developerworks/aix/library/au-spunix_rsync/index.html|<br />
<br />
** If hard links are not allowed, it is impossible to restore a full backup before the most recent backup (but you can use --backup to keep old versions of the files).<br />
** Standard install on all distros.<br />
** Can run over SSH (port 22) or native rsync protocol (port 873).<br />
** Win32 version available.<br />
|http://rsync.samba.org/|{{Pkg|rsync}}}}<br />
<br />
* {{App|[[Wikipedia:Rsync#Variations|rdiff-backup]]|A utility for local/remote mirroring and incremental backups.<br />
** Stores the most recent backup as regular files.<br />
** To revert to older versions, you apply the diff files to recreate the older versions.<br />
** It is granularly incremental (delta backup), it only stores changes to a file; will not create a new copy of a file upon change.<br />
** Win32 version available.<br />
|http://www.nongnu.org/rdiff-backup/|{{Pkg|rdiff-backup}}}}<br />
<br />
* {{App|[[rsnapshot]]|A remote filesystem snapshot utility.<br />
** Does not store diffs, instead it copies entire files if they have changed.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** It is differential in that the size of the backup is only the original backup size plus the size of all files that have changed since the last backup.<br />
** Destination filesystem must support hard links.<br />
** Win32 version available.<br />
|http://www.rsnapshot.org/|{{Pkg|rsnapshot}}}}<br />
<br />
* {{App|SafeKeep|A client/server backup system which uses rdiff-backup.<br />
** Integrates with Linux LVM and databases to create consistent backups.<br />
** Bandwidth throttling.<br />
|http://safekeep.sourceforge.net/|{{AUR|safekeep}}}}<br />
<br />
* {{App|Link-Backup|A tool similar to rsync based scripts, but which does not use rsync. NOTE: no upstream activity since 2008. <br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** Intelligently handles renames, moves, and duplicate files without additional storage or transfer.<br />
** The backup directory contains {{ic|.catalog}}, a catalog of all unique file instances; backup trees hard-link to this catalog.<br />
** Transfer occurs over standard I/O locally or remotely between a client and server instance of this script.<br />
** It copies itself to the server; it does not need to be installed on the server.<br />
** Requires SSH for remote backups.<br />
** It resumes stopped backups; it can even be told to run for an arbitrary number of minutes.<br />
|http://www.scottlu.com/Content/Link-Backup.html|{{AUR|link-backup}}}}<br />
<br />
* {{App|[[Wikipedia:Unison (file synchronizer)|Unison]]|A program that synchronizes files between two machines over network (LAN or Inet) using a smart diff method + rsync. Allows the user to interactively choose which changes to push, pull, or merge.|http://www.cis.upenn.edu/~bcpierce/unison/|{{Pkg|unison}}}}<br />
<br />
* {{App|oldtime|A highly customizable and configurable backup & restore system.|https://github.com/GutenYe/oldtime|{{AUR?|oldtime}}}}<br />
<br />
* {{App|rsync-snapshot.sh|Another rsync shellscript with smart rotation (non-linear distribution) of backups. Integrity protection, Quotas, Rules and many more features.|http://blog.pointsoftware.ch/index.php/howto-local-and-remote-snapshot-backup-using-rsync-with-hard-links/|{{AUR?|rsync-snasphot.sh}}}}<br />
<br />
==== Graphical ====<br />
* {{App|Back In Time|A simple backup tool for Linux inspired by the [[Wikipedia:FlyBack|FlyBack]] and [https://wiki.ubuntu.com/TimeVault/ TimeVault] projects.<br />
** Creates hard links between a series of backed-up trees (snapshots).<br />
** Really is just a front-end to {{ic|rsync}}, {{ic|diff}}, {{ic|cp}}.<br />
** A new snapshot is created only if something changed since the last snapshot.<br />
|http://backintime.le-web.org/|{{AUR|backintime}}}}<br />
<br />
* {{App|[[Wikipedia:FlyBack|FlyBack]]|A clone of Apple's [[Wikipedia:Time Machine (Mac OS)|Time Machine]], a backup utility for Mac OS X.|http://www.flyback-project.org/|{{AUR|flyback}}}}<br />
<br />
* {{App|[[Wikipedia:Areca Backup|Areca Backup]]|An easy to use and reliable backup solution for Linux and Windows.<br />
** Written in Java.<br />
** Primarily archive-based (zip), but will do file-based backup as well.<br />
** Delta backup supported (stores only changes).<br />
|http://areca.sourceforge.net/|{{AUR|areca}}}}<br />
<br />
* {{App|[[Wikipedia:LuckyBackup|luckyBackup]]|An easy program to backup and sync your files.<br />
** It is written in Qt and C++.<br />
** It has sync, backup (with include and exclude options) and restore capabilities.<br />
** It can do remote connection backups, scheduled backups.<br />
** A command line mode.<br />
|http://luckybackup.sourceforge.net/index.html|{{AUR|luckybackup}}}}<br />
<br />
* {{App|syncBackup|A front-end for rsync that provides a fast and extraordinary copying tool. It offers the most common options that control its behavior and permit very flexible specification of the set of files to be copied.<br />
|http://www.darhon.com/syncbackup|{{AUR|syncbackup}}}}<br />
<br />
* {{App|[[BackupPC]]|A high-performance, enterprise-grade system for backing up Unix, Linux, Windows, and Mac OS X desktops and laptops to a remote server.<br />
** Deduplication: Identical files across multiple backups of the same or different PCs are stored only once resulting in substantial savings in disk storage and disk I/O.<br />
** Optional compression support further reducing disk storage.<br />
** No client-side software is needed.<br />
** Simple but powerful web-based UI.<br />
|http://backuppc.sourceforge.net/index.html|{{Pkg|backuppc}}}}<br />
<br />
=== Other backups ===<br />
Most other backup applications tend to create (big) archive files and (of course) keep track of what's been archived. Creating {{ic|.tar.bz2}} or {{ic|.tar.gz}} archives has the advantage that you can extract the backups with just tar/bzip2/gzip, so you do not need to have the backup program around.<br />
<br />
==== Console ====<br />
* {{App|Arch Backup|A trivial backup script with simple configuration.<br />
** Configurable compression method.<br />
** Multiple backup targets.<br />
|http://code.google.com/p/archlinux-stuff/|{{Pkg|arch-backup}}}}<br />
<br />
* {{App|[[Backup with hdup|hdup]]|A very simple command line backup tool.<br />
** Creates tar.gz or tar.bz2 archives.<br />
** Supports gpg encryption.<br />
** Supports pushing over SSH.<br />
** Multiple backup targets.<br />
|http://miek.nl/projects/hdup2/|{{AUR|hdup}}}}<br />
<br />
* {{App|rdup|A platform for backups that provides scripts to facilitate backups and delegates the encryption, compression, transfer and packaging to other utilities in a true Unix-way.<br />
** Creates tar.gz archives or rsync-type copy.<br />
** Encryption (gpg, blowfish and others); also applies for rsync-type copy.<br />
** Compression (also for rsync-type copy).<br />
|http://miek.nl/projects/rdup|{{AUR|rdup}}}}<br />
<br />
* {{App|[[Duplicity]]|A simple command-line utility which allows encrypted compressed incremental backup to nearly any storage.<br />
** Supports gpg encryption and signing.<br />
** Supports gzip compression.<br />
** Supports full or incremental backups, incremental backup stores only difference between new and old file.<br />
** Supports pushing over FTP, SSH, rsync, WebDAV, WebDAVs, HSi and Amazon S3 or local filesystem.<br />
|http://www.nongnu.org/duplicity/|{{Pkg|duplicity}}}}<br />
<br />
* {{App|[[Wikipedia:DAR (Disk Archiver)|DAR]]|A full-featured command-line backup tool, short for Disk ARchive.<br />
** It uses its own format for archives (so you need to have it around when you want to restore).<br />
** Supports splitting backups into more files by size.<br />
** Makefile-type config files, some custom scripts are available along with it.<br />
** Supports basic encryption.<br />
** Automatic backup using [[cron]] is possible with {{AUR|sarab}}.<br />
|http://dar.linux.free.fr/|{{AUR|dar}} {{AUR|kdar}} (fontend)}}<br />
<br />
* {{App|Manent|An algorithmically strong backup and archival program. NOTE: no upstream activity since 2009.<br />
** Efficient backup to anything that looks like a storage.<br />
** Works well over a slow and unreliable network.<br />
** Offers online access to the contents of the backup.<br />
** Backed up storage is completely encrypted.<br />
** Several computers can use the same storage for backup, automatically sharing data.<br />
** Not reliant on timestamps of the remote system to detect changes.<br />
** Cross-platform support for Unicode file names.<br />
|http://code.google.com/p/manent/|{{AUR|manent}}}}<br />
<br />
* {{App|btar|tar-compatible archiver<br />
** Fast archive creation (multicore compression or ciphering)<br />
** Arbitrary chain of compression/ciphers (calls any compression/ciphering programs)<br />
** Indexed archive retrieval or listing<br />
** Redundancy<br />
** Serialization through pipes (and only one file per backup)<br />
** Can be extracted or checked with gnutar<br />
** Differential backups of multiple levels<br />
** Optional encoding of big files with rsync-differences<br />
|http://viric.name/cgi-bin/btar|{{AUR|btar}}}}<br />
<br />
* {{App|obnam|Easy, secure backup program<br />
** Uses snapshots instead of full/incremental backups<br />
|http://liw.fi/obnam/|{{AUR|obnam}}}}<br />
<br />
* {{App|System Tar & Restore|A set of bash scripts for full system backup and restore<br />
** CLI and Dialog interfaces, Zenity wrappers<br />
** Easy backup and restore wizards<br />
** Uses tar to create and restore backups<br />
** Creates tar.gz or tar.xz archives<br />
** Uses rsync to transfer a running system<br />
** Supports Grub2 and Syslinux<br />
|https://github.com/tritonas00/system-tar-and-restore|{{AUR|system-tar-and-restore}}}}<br />
<br />
* {{App|Packrat|A simple, modular backup system using [[Wikipedia:DAR (Disk Archiver)|DAR]]<br />
** Full or incremental backups stored locally, on a remote system via SSH, or on Amazon S3<br />
|http://www.zeroflux.org/projects|{{AUR|packrat}}}}<br />
<br />
==== Graphical ====<br />
* {{App|Backerupper|A simple program for backing up selected directories over a local network. Its main intended purpose is backing up a user's personal data.<br />
** Creates {{ic|.tar.gz}} archives.<br />
** Configurable backup frequency, backup time and max copies.<br />
|http://sourceforge.net/projects/backerupper/|{{AUR|backerupper}}}}<br />
<br />
* {{App|[[Duplicity|Déjà Dup]]|A simple GTK+ backup program. It hides the complexity of doing backups the 'right way' (encrypted, off-site, and regular) and uses duplicity as the backend.<br />
** Automatic, timed backup configurable in GUI.<br />
** Restore wizard.<br />
** Integrated into the Nautilus file manager.<br />
** Inherits several features of duplicity.<br />
|https://launchpad.net/deja-dup|{{Pkg|deja-dup|}}}}<br />
<br />
* {{App|Synkron|A folder synchronization tool.<br />
** Syncs multiple folders.<br />
** Can exclude files from sync based on wildcards.<br />
** Restores files.<br />
** Cross-platform support.<br />
|http://synkron.sourceforge.net/|{{AUR|synkron}}}}<br />
<br />
== Cloud backups ==<br />
* {{App|[[Wikipedia:CrashPlan|CrashPlan]]|An online/offsite backup solution.<br />
** Unlimited online space for very reasonable pricing.<br />
** Automatic and incremental backups to multiple destinations.<br />
** Intuitive GUI.<br />
** Offers encryption and de-duplication.<br />
** Software is generally free.<br />
|http://www.crashplan.com/|{{AUR|crashplan}}}}<br />
<br />
* {{App|[[Dropbox]]|A popular file-sharing service.<br />
** A daemon monitors a specified directory, and uploads incremental changes to dropbox.com. <br />
** Changes automatically show up on your other computers. <br />
** Includes file sharing and a public directory. <br />
** You can recover deleted files. <br />
** Community written add-ons. <br />
** Free accounts have 2GB storage.<br />
|http://www.getdropbox.com|{{AUR|dropbox}} {{AUR|nautilus-dropbox}}}}<br />
<br />
* {{App|[[Wikipedia:Jungle Disk|Jungle Disk]]|An online backup tool that stores its data in Amazon S3 or Rackspace Cloud Files.<br />
** A Nautilus extension.<br />
** Only paid plans available.<br />
|http://www.jungledisk.com/|{{AUR|nautilus-jungledisk}}}}<br />
<br />
* {{App|Tarsnap|A secure online backup service for BSD, Linux, OS X, Solaris and Windows (through Cygwin).<br />
** Compressed encrypted backups to Amazon S3 Servers.<br />
** Automate via [[cron]].<br />
** Incremental backups.<br />
** Backup any files or directories.<br />
** Command line only client.<br />
** Pay only for usage (bandwidth and storage). <br />
|http://www.tarsnap.com|{{Pkg|tarsnap}}}}<br />
<br />
* {{App|[[Wikipedia:Wuala|Wuala]]|A secure online storage, file synchronization, versioning and backup service.<br />
** Closed source, free and paid version available.<br />
** Free account holds 5GB.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
** Social networking features.<br />
** All files in the cloud are first encrypted locally.<br />
|http://www.wuala.com/|{{AUR|wuala}}, {{AUR|wuala-daemon}} &ndash; to run as daemon}}<br />
<br />
* {{App|[[Wikipedia:SpiderOak|SpiderOak]]|An online backup tool for Windows, Mac and Linux users to back up, share, sync, access and store[1] their data.<br />
** Free and paid version available.<br />
** Free account holds 2GB.<br />
** Includes file sharing and a public directory.<br />
** Incremental backup and sync are both supported.<br />
|https://spideroak.com/|{{AUR|spideroak}}}}<br />
<br />
* {{App|[[Ubuntu One]]|An online storage service with sync and sharing across platforms.<br />
** Free and paid versions available.<br />
** Free account with 5GB.<br />
** Mobile access.<br />
** Music streaming.<br />
|https://one.ubuntu.com/services/|{{Pkg|ubuntuone-client}}}}<br />
<br />
== Cooperative storage cloud backups ==<br />
<br />
A [[Wikipedia:Cooperative_storage_cloud|cooperative storage cloud]] is a decentralized model of networked online storage where data is stored on multiple computers, hosted by the participants cooperating in the cloud. <br />
<br />
* {{App|[http://www.symform.com Symform]| A peer-to-peer cloud backup service.<br />
** Unlimited free backup in exchange for 2:1 storage space contribution with an always-connected device (at least 80% uptime).<br />
** [http://www.symform.com/our-solutions/pricing/ Payment options exist].<br />
** First 10GB of backup storage is free (no contribution needed).<br />
** In addition to paid support, support plans in exchange for extended contribution (300GB+) exist.<br />
** Automatic and incremental backups.<br />
** Data is encrypted before leaving the computer, though keys are also stored on the Symform's servers.<br />
** Customizable limits for bandwidth consumption.<br />
** Ability to have a local copy ("Hot Copy") of the backed up data on a different disk or computer.<br />
** Ability to have synchronized folders between nodes (Dropbox-like).<br />
** Closed source, using mono. Windows clients available.<br />
|http://www.symform.com/|{{AUR|symform}}}}<br />
<br />
== Non-incremental backups ==<br />
Another type of backups are those used in case of a disaster. These include application that allow easy backup of entire filesystems and recovery in case of failure, usually in the form of a Live CD or USB drive. The contains complete system images from one or more specific points in time and are frequently used by to record known good configurations.<br />
<br />
* {{App|Q7Z|P7Zip GUI for Linux, which attempts to simplify data compression and backup. It can create the following archive types: 7z, BZip2, Zip, GZip, Tar.<br />
** Updates existing archives quickly.<br />
** Backup multiple folders to a storage location.<br />
** Create or extract protected archives.<br />
** Lessen effort by using archiving profiles and lists.<br />
|http://k7z.sourceforge.net/|{{AUR|q7z}}}}<br />
<br />
* {{App|[[Partclone]]|A tool that can be used to back up and restore a partition while considering only used blocks.<br />
** Supports ext2, ext3, hfs+, reiser3.5, reiser3.6, reiser4, ext4 and btrfs.<br />
** Supports compression.<br />
|http://partclone.nchc.org.tw/trac/|{{Pkg|partclone}}}}<br />
<br />
* {{App|[[Wikipedia:Redo Backup and Recovery|Redo Backup and Recovery]]|A backup and disaster recovery application that runs from a bootable Linux CD image.<br />
** Is capable of bare-metal backup and recovery of disk partitions.<br />
** Uses [http://www.xpud.org/ xPUD] and [[Partclone]] for the backend.<br />
|http://www.redobackup.org/|{{AUR?|redobackup}}}}<br />
<br />
* {{App|[[Wikipedia:Clonezilla|Clonezilla]]|A disaster recovery, disk cloning, disk imaging and deployment solution.<br />
** Boots from live CD, USB flash drive, or PXE server.<br />
** Supports ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs, btrfs FAT32, NTFS, HFS+ and others.<br />
** Uses Partclone (default), Partimage (optional), ntfsclone (optional), or dd to image or clone a partition.<br />
** Multicasting server to restore to many machines at once.<br />
|http://clonezilla.org/|{{Pkg|clonezilla}}}}<br />
<br />
* {{App|[[Wikipedia:Partimage|Partimage]]|A disk cloning utility for Linux/UNIX environments.<br />
** Has a Live CD.<br />
** Supports the most popular filesystems on Linux, Windows and Mac OS.<br />
** Compression.<br />
** Saving to multiple CDs or DVDs or across a network using Samba/NFS.<br />
|http://www.partimage.org/Main_Page|{{Pkg|partimage}}}}<br />
<br />
* {{App|FSArchiver|A safe and flexible file-system backup and deployment tool<br />
** Support for basic file attributes (permissions, owner, ...).<br />
** Support for multiple file-systems per archive.<br />
** Support for extended attributes (they are used by SELinux).<br />
** Support the basic file-system attributes (label, uuid, block-size) for all linux file-systems.<br />
** Support for [http://www.fsarchiver.org/Cloning-ntfs ntfs filesystems] (ability to create flexible clones of a Windows partitions).<br />
** Checksumming of everything which is written in the archive (headers, data blocks, whole files).<br />
** Ability to restore an archive which is corrupt (it will just skip the current file).<br />
** Multi-threaded lzo, gzip, bzip2, lzma compression.<br />
** Support for splitting large archives into several files with a fixed maximum size.<br />
** Encryption of the archive using a password. Based on blowfish from libcrypto from [[OpenSSL]].<br />
** Support backup of a mounted root filesystem (-A option).<br />
|http://www.fsarchiver.org/Main_Page|{{Pkg|fsarchiver}}}}<br />
<br />
* {{App|[[Wikipedia:Mondo Rescue|Mondo Rescue]]|A disaster recovery solution to create backup media that can be used to redeploy the damaged system.<br />
** Image-based backups, supporting Linux/Windows.<br />
** Compression rate is adjustable.<br />
** Can backup live systems (without having to halt it).<br />
** Can split image over many files.<br />
** Supports booting to a Live CD to perform a full restore.<br />
** Can backup/restore over NFS, from CDs, tape drives and and other media.<br />
** Can verify backups.<br />
|http://www.mondorescue.org/|{{AUR|mondo}}}}<br />
<br />
== Versioning systems ==<br />
These are traditionally used for keeping track of software development; but if you want to have a simple way to manage your config files in one directory, it might be a good solution.<br />
<br />
=== Version control systems ===<br />
{{Wikipedia|Comparison of revision control software}}.<br />
<br />
* {{App|[[Git]]|A distributed revision control and source code management system with an emphasis on speed.<br />
** Very easy creation, merging, and deletion of branches.<br />
** Nearly all operations are performed locally, giving it a huge speed advantage on centralized systems.<br />
** Has a "staging area" or "index", this is an intermediate area where commits can be formatted and reviewed before completing the commit.<br />
** Does not handle binary files very well.<br />
|http://git-scm.com/|{{Pkg|git}}}}<br />
<br />
* {{App|[[Subversion]]|A full-featured centralized version control system originally designed to be a better CVS.<br />
** Renamed/copied/moved/removed files retain full revision history.<br />
** Native support for binary files, with space-efficient binary-diff storage.<br />
** Costs proportional to change size, not to data size.<br />
** Allows arbitrary metadata ("properties") to be attached to any file or directory. <br />
|http://subversion.apache.org/|{{Pkg|subversion}}}}<br />
<br />
* {{App|[[Mercurial]]|A distributed version control system written in Python and similar in many ways to Git.<br />
** Platform independent.<br />
** Support for [http://mercurial.selenic.com/wiki/UsingExtensions extensions].<br />
** A set of commands consistent with Subversion.<br />
** Supports tags.<br />
|http://mercurial.selenic.com/|{{Pkg|mercurial}}}}<br />
<br />
* {{App|[[Wikipedia:Bazaar (software)|Bazaar]]|A distributed version control system that helps you track project history over time and to collaborate easily with others.<br />
** Similar commands to Subversion.<br />
** Supports working with or without a central server.<br />
** Support for working with some other revision control systems<br />
** Complete Unicode support.<br />
|http://bazaar.canonical.com/en/|{{Pkg|bzr}}}}<br />
<br />
* {{App|[[Wikipedia:Darcs|Darcs]]|A distributed revision control system that was designed to replace traditional, centralized source control systems such as CVS and Subversion.<br />
** Offline mode.<br />
** Easy branching and merging.<br />
** Written in Haskell.<br />
** Not very fast.<br />
|http://darcs.net/|{{AUR|darcs}}}}<br />
<br />
=== VCS-based backups ===<br />
<br />
* {{App|Gibak|A backup system based on [[Git]].<br />
** Supports binary diffs.<br />
** Uses all of Git's features (such as {{ic|.gitignore}} for filtering files).<br />
** Uses Git's hook system to save information that Git does not (permissions, mtime, empty directories, etc).<br />
|https://github.com/pangloss/gibak|{{AUR|gibak}}}}<br />
* {{App|bup|A fledgling Git-based backup solution written in Python and C.<br />
** Uses a rolling checksum algorithm (similar to rsync) to split large files into chunks.<br />
** Can back up directly to a remote bup server.<br />
** Has an improved index format to allow you to track many files.<br />
|https://github.com/bup/bup|{{AUR|bup}}}}<br />
* {{App|ColdStorage|Another backup tool using Git at its core, written in [[Qt]].|http://gitorious.org/coldstorage|{{AUR|coldstorage-git}}}}<br />
<br />
== External Resources ==<br />
* [http://www.halfgaar.net/backing-up-unix Backing up Linux and other Unix(-like) systems]<br />
* [http://www.askapache.com/security/mirror-using-rsync-ssh.html Mirroring an Entire Site using Rsync over SSH]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Package_Maintainer_guidelines&diff=211334Package Maintainer guidelines2012-06-27T07:10:47Z<p>ConnorBehan: /* Accessing and Updating the Repository */ - PACKAGER variable instructions</p>
<hr />
<div>[[Category:Package management]]<br />
[[Category:About Arch]]<br />
[[Category:Arch User Repository]]<br />
[[es:AUR Trusted User Guidelines]]<br />
[[zh-CN:AUR Trusted User Guidelines]]<br />
{{Article summary start}}<br />
{{Article summary text|Explains guidelines for the Arch User Repository's Trusted Users.}}<br />
{{Article summary heading|Related}}<br />
{{Article summary wiki|Arch User Repository}}<br />
{{Article summary end}}<br />
<br />
The '''Trusted User (TU)''' is a member of the community charged with keeping the AUR in working order. He/she maintains popular packages ([https://mailman.archlinux.org/pipermail/aur-general/2010-September/010649.html communicating with and sending patches upstream as needed]), and votes in administrative matters. A TU is elected from active community members by current TUs in a democratic process. TUs are the only members who have a final say in the direction of the AUR.<br />
<br />
The TUs are governed using the [https://aur.archlinux.org/trusted-user/TUbylaws.html TU bylaws]<br />
<br />
==TODO list for new Trusted Users==<br />
# Read this entire wiki article.<br />
# Read the [https://aur.archlinux.org/trusted-user/TUbylaws.html TU Bylaws].<br />
# Make sure your account details on the [[Arch User Repository|AUR]] are up-to-date and that your sponsor has given you TU status.<br />
# Add yourself to the [[Trusted Users]] page.<br />
# Remind Allan/Andrea to change your account on forums.<br />
# Ask some TU for the #archlinux-tu@freenode key and hang out with us in the channel. You do not have to do this, but it would be neat since this is where most dark secrets are spilled and where many new ideas are conceived.<br />
# If you are not upgraded to a Trusted User group on bug tracker in two days, report this as a bug to Andrea Scarpino (andrea@archlinux.org).<br />
# Send Ionuț Bîru (ibiru@archlinux.org) all the information based on this [https://www.archlinux.org/trustedusers/ template] to have access on dev interface.<br />
# Install the {{pkg|devtools}} package.<br />
# Send an email to Lukas Fleischer with one SSH public key attached. If you do not have one, use {{ic|ssh-keygen}} to generate one. Check the [[Using SSH Keys]] wiki page for more information about SSH keys.<br />
# Create a PGP key for [[package signing]].<br />
# Send a signed email to all [http://www.archlinux.org/master-keys/ Master Keys owners] including your PGP key and the relative full key fingerprint. Your key needs to be signed at least by three of five master key holders.<br />
# Make the directories {{ic|~/staging/community}} and {{ic|~/staging/community-testing}} (and {{ic|~/staging/multilib}} if you are interested in maintaining multilib packages) on aur.archlinux.org. This step is '''important''' as the devtools scripts use this directory to process incoming packages.<br />
# Start contributing!<br />
<br />
==The TU and [unsupported]==<br />
<br />
The TUs should also make an effort to check package submissions in UNSUPPORTED for malicious code and good PKGBUILDing standards. In around 80% of cases the PKGBUILDs in the UNSUPPORTED are very simple and can be quickly checked for sanity and malicious code by the TU team.<br />
<br />
TUs should also check PKGBUILDs for minor mistakes, suggest corrections and improvements. The TU should endeavor to confirm that all pkgs follow the Arch Packaging Guidelines/Standards and in doing so share their skills with other package builders in an effort to raise the standard of package building across the distro.<br />
<br />
TUs are also in an excellent position to document recommended practices.<br />
<br />
==The TU and [community], Guidelines for Package Maintenance==<br />
<br />
=== Rules for Packages Entering the [community] Repo ===<br />
<br />
* Only "popular" packages may enter the repo, as defined by 1% usage from [https://www.archlinux.de/?page=PackageStatistics pkgstats] or 10 votes on the AUR.<br />
<br />
* Automatic exceptions to this rule are:<br />
** i18n packages<br />
** accessibility packages<br />
** drivers<br />
** dependencies of packages who satisfy the definition of popular, including makedeps and optdeps<br />
** packages that are part of a collection and are intended to be distributed together, provided a part of this collection satisfies the definition of popular<br />
<br />
* Any additions not covered by the above criteria must first be proposed on the aur-general mailing list, explaining the reason for the exemption (e.g. renamed package, new package). The agreement of three other TUs is required for the package to be accepted into [community]. Proposed additions from TUs with large numbers of "non-popular" packages are more likely to be rejected.<br />
<br />
* TUs are strongly encouraged to move packages they currently maintain from [community] if they have low usage. No enforcement will be made, although resigning TUs packages may be filtered before adoption can occur.<br />
<br />
=== Accessing and Updating the Repository ===<br />
<br />
The [community] repository now uses '''devtools''' which is the same system used for uploading packages to [core] and [extra], except that it uses another server https://aur.archlinux.org instead of http://archlinux.org. Thus most of the instructions in [[DeveloperWiki:HOWTO Be A Packager|Packager Guide]] work without any change. Information which is specific for the [community] repository (like changed URLs) have been put here. The devtools require packagers to [[Arch_Build_System#Set_the_PACKAGER_variable_in_.2Fetc.2Fmakepkg.conf|set the PACKAGER variable]]. This is done in {{ic|/usr/share/devtools/makepkg-{i686,x86_64}.conf}} since the regular configuration file does not get placed in a clean chroot.<br />
<br />
Initially you should do a '''non-recursive checkout''' of the [community] repository:<br />
svn checkout -N svn+ssh://aur.archlinux.org/srv/svn-packages<br />
<br />
This creates a directory named "svn-packages" which contains nothing. It does, however, know that it is an svn checkout. <br />
<br />
For '''checking''' out, '''updating''' all packages or '''adding''' a package see the [[DeveloperWiki:HOWTO Be A Packager|Packager Guide]].<br />
<br />
To '''remove''' a package:<br />
ssh aur.archlinux.org /arch/db-remove pkgname community arch<br />
<br />
Here and in the following text, arch can be one of i686 or x86_64 which are the two architectures supported by Arch Linux. (What about "any"?)<br />
<br />
When you are done with editing the PKGBUILD, etc, you should '''commit''' the changes ({{ic|svn commit}}).<br />
<br />
When you want to '''release''' a package, first copy the package to the ''staging/community'' directory on aur.archlinux.org using scp and then '''tag''' the package by going to the ''pkgname/trunk'' directory and issuing {{ic|archrelease community-arch}}. This makes an svn copy of the trunk entries in a directory named ''community-i686'' or ''community-x86_64'' indicating that this package is in the community repository for that architecture.<br />
<br />
'''''Note:''' In some cases, especially for community packages, an x86_64 TU might bump the pkgrel by .1 (and not +1). This indicates that the change to the PKGBUILD is x86_64 specific and i686 maintainers '''should not''' rebuild the package for i686. When the TU decides to bump the pkgrel, it should be done with the usual increment of +1. However, a previous pkgrel=2.1 must not become pkgrel=3.1 when bumped by the TU and must instead be pkgrel=3. In a nutshell, leave dot (.) releases exclusive to the x86_64 TU's to avoid confusion.''<br />
<br />
Thus the '''process''' of updating a package can be summarised as:<br />
<br />
* '''Update''' the package directory ({{ic|svn update some-package}})<br />
* '''Change''' to the package trunk directory ({{ic|cd some-package/trunk}})<br />
* '''Edit''' the PKGBUILD, make necessary changes and {{ic|makepkg}}. It is recommended to build in a [[DeveloperWiki:Building in a Clean Chroot|clean chroot]].<br />
* '''[[Namcap]]''' the PKGBUILD and the binary pkg.tar.gz.<br />
* '''Commit''', '''Copy''' and '''Tag''' the package using {{ic|communitypkg "commit message"}}. This automates the following:<br />
** '''Commit''' the changes to trunk ({{ic|svn commit}})<br />
** '''Copy''' the package to aur.archlinux.org ({{ic|scp pkgname-ver-rel-arch.pkg.tar.xz* aur.archlinux.org:staging/community/}})<br />
** '''Tag''' the package ({{ic|archrelease community-{i686,x86_64}}})<br />
* '''Update''' the repository ({{ic|ssh aur.archlinux.org /arch/db-update}})<br />
<br />
Also see the ''Miscellaneous'' section in the [[DeveloperWiki:HOWTO Be A Packager|Packager Guide]]. For the section ''Avoid having to enter your password all the time'' use aur.archlinux.org instead of archlinux.org and svn.archlinux.org.<br />
<br />
=== Disowning packages ===<br />
If a TU cannot or does not want to maintain a package any longer, a notice should be posted to the AUR Mailing List, so another TU can<br />
maintain it. A package can still be disowned even if no other TU wants to maintain it, but the TUs should try not to drop many packages (they should not take on more than they have time for). If a package has become obsolete or is not used any longer, it can be removed completely as well.<br />
<br />
If a package has been removed completely, it can be uploaded once again (fresh) to UNSUPPORTED, where a regular user can maintain the package instead of the TU.<br />
<br />
=== Moving packages from unsupported to [community] ===<br />
<br />
Follow the normal procedures for adding a package community, but remember to delete the corresponding package from unsupported!<br />
<br />
=== Moving packages from [community] to unsupported ===<br />
<br />
Remove the package using the instructions above and upload your source tarball to the AUR.<br />
<br />
=== Moving packages from [community-testing] to [community] ===<br />
ssh aur.archlinux.org /arch/db-move community-testing community package<br />
<br />
=== Deleting packages from unsupported ===<br />
There is no point in removing dummy packages, because they will be re-created in an attempt to track dependencies. If someone uploads a<br />
real package then all dependents will point to the correct place.<br />
<br />
=== See also ===<br />
* [[DeveloperWiki#Packaging_Guidelines]]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Package_Maintainers&diff=199508Package Maintainers2012-04-27T20:25:26Z<p>ConnorBehan: /* Active Trusted Users */ - Added myself and alphabetized</p>
<hr />
<div>[[Category:Arch development]]<br />
{{i18n|Trusted Users}}<br />
[[fr:TU]]<br />
The '''Trusted Users''' serve the following purposes:<br />
# Maintain {{Ic|[community]}} as an intermediary between Arch Linux's [[Official Repositories]] and the unsupported package collection in the [[AUR]].<br />
# Maintain, manage, and watch over the operation of the [[AUR]].<br />
<br />
== How to become TU? ==<br />
The ''minimum'' requirements to becoming a TU are as follows:<br />
* know basic shell scripting<br />
* maintain a few packages in AUR with clean, high-quality PKGBUILDs<br />
* basic community involvement (mailing list, forums, IRC)<br />
* know Google-Fu<br />
* a general idea of the kind of packages you want to maintain (basically, why do you want to become TU?)<br />
<br />
<br />
Even though you could become a TU by merely fulfilling those minimum requirements, the people judging you [https://aur.archlinux.org/trusted-user/TUbylaws.html#SVP during voting] might expect more of you. Such as:<br />
* involvement in the bug tracker (reporting, research, info)<br />
* patches for Arch projects<br />
* involvement in a few open-source projects (even if they are your own)<br />
<br />
<br />
In case you still feel up to becoming TU after reading these lists, you should find another TU to sponsor you and write a witty application signed with your GPG key to the aur-general mailing list.<br />
<br />
For more information, please see [https://aur.archlinux.org/trusted-user/TUbylaws.html Trusted User Bylaws] and [[AUR Trusted User Guidelines]].<br />
<br />
== Active Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|style="font-weight: bold;"|E-Mail<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=Atsutane Atsutane] ||Thorsten Töpper||atsutane {0x40} freethoughts {0x2E} de<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=Barthalion&SeB=m Barthalion] ||Bartłomiej Piotrowski||barthalion@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=BlackIkeEagle BlackIkeEagle]||[[User:BlackEagle|Ike Devolder]]||ike DOT devolder AT gmail DOT com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=bluewind&SeB=m Bluewind]||Florian Pritz || bluewind@xinu.at<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=cmb&SeB=m cmb]||Chris Brannon||cmbrannon79 at gmail dot com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=City-busz&SeB=m City-busz]||György Balló||ballogyor+arch at gmail dot com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=ConnorBehan ConnorBehan]||Connor Behan||connor.behan@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=cryptocrack&SeB=m cryptocrack]||Lukas Fleischer||archlinux at cryptocrack dot de<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=Daenyth&SeB=m Daenyth]||Daenyth Blank||Daenyth+Arch gmail com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=Dragonlord&SeB=m Dragonlord]||[[User:Dragonlord|Jaroslav Lichtblau]]||tu dragonlord cz<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=falconindy&SeB=m falconindy]||Dave Reisner||d[at]falconindy[dot]com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=foutrelis&SeB=m foutrelis]||Evangelos Foutras||evangelos@foutrelis.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=heftig&SeB=m heftig]||Jan Steffens||jan.steffens@student.kit.edu<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=jelly&SeB=m jelly]||Jelle van der Waa || jelle vdwaa nl<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=kaitocracy&SeB=m kaitocracy]||[[User:kaitocracy|Kaiting Chen]]||kaitocracy@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=lordheavy&SeB=m Lordheavy]||[[User:Lordheavy|Laurent Carlier]]||lordheavym at gmail com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=mtorromeo&SeB=m mtorromeo]||Massimiliano Torromeo||massimiliano.torromeo@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=ornitorrincos&SeB=m ornitorrincos]||Imanol Celaya||ilcra1989@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=Partition&SeB=m Partition]||Mateusz Herych||heniekk at gmail dot com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=petelewis&SeB=m petelewis]||Peter Lewis||plewis at aur dot archlinux dot org<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=PirateJonno&SeB=m PirateJonno]||Jonathan Conder||jonno dot conder at gmail dot com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=pressh&SeB=m pressh]||Ronald van Haren||ronald.archlinux.org<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=schivmeister&SeB=m schivmeister]||[[User:Schivmeister|Ray Rashif]]||schiv archlinux org<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=schuay&SeB=m schuay]||Jakob Gruber||jakob.gruber@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=seblu&SeB=m seblu]||Sébastien Luttringer||s e b l u '''+''' a r c h # s e b lu ''dot'' n e t<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=sergej&SeB=m sergej]||Sergej Pupykin||pupykins@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=stativ&SeB=m stativ]||Lukas Jirkovsky||l.jirkovsky strange_curved_character gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=svenstaro&SeB=m svenstaro]||[[User:svenstaro|Sven-Hendrik Haase]]||sh@lutzhaase.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=td123&SeB=m td123]||Thomas Dziedzic||gostrc at gmail<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=tredaelli&SeB=m tredaelli]||Timothy Redaelli||timothy.redaelli@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=vegai&SeB=m vegai]||Vesa Kaihlavirta||vpkaihla@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=Xyne Xyne]||<--||ca . archlinux @ xyne, in reverse order<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=trontonic&O=0&PP=100&SB=v&SO=d xyproto]||Alexander Rødseth||rodseth@gmail.com<br />
|}<br />
<br />
== Inactive Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|style="font-weight: bold;"|E-Mail<br />
|style="font-weight: bold;"|Comments/Reference<br />
|-<br />
|<br />
|-<br />
|}<br />
<br />
== Some Past Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|-<br />
|abhidg||Abhishek Dasgupta<br />
|-<br />
|Allan||Allan McRae<br />
|-<br />
|anders||Anders Bergh<br />
|-<br />
|angvp||[[User:Angvp|Angel Velásquez]]<br />
|-<br />
|bardo||Corrado Primier<br />
|-<br />
|bash||Andrea Scarpino<br />
|-<br />
|bfinch||Bob Finch<br />
|-<br />
|brain0||Thomas Bächler<br />
|-<br />
|bjorn||[[User:Bjørn|Bjørn Lindeijer]]<br />
|-<br />
|codemac||Jeff Mickey<br />
|-<br />
|DaNiMoTh||JJ. DaNiMoTh<br />
|-<br />
|dejari||Leslie P. Polzer<br />
|-<br />
|dsa||Douglas Soares de Andrade<br />
|-<br />
|dtw||Phil Dillon-Thiselton<br />
|-<br />
|elasticdog||Aaron Bull Schaefer<br />
|-<br />
|encelo||Angelo Theodorou<br />
|-<br />
|even ||Kessia Pinheiro<br />
|-<br />
|filoktetes||Robert Emil Berge<br />
|-<br />
|firmicus||François Charette<br />
|-<br />
|ganja_guru||Varun Acharya<br />
|-<br />
|gcarrier||Geoffroy Carrier<br />
|-<br />
|Ghost1227||Dan Griffiths<br />
|-<br />
|gummibaerchen||Timm Preetz<br />
|-<br />
|hdoria||Hugo Doria<br />
|-<br />
|iphitus||James Rayner<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=itsbrad212&SeB=m itsbrad212]||Brad Fanella<br />
|-<br />
|louipc||Loui Chang<br />
|-<br />
|mOLOk||Alessio Bolognino<br />
|-<br />
|nesl247||Alex Heck<br />
|-<br />
|Neverth||Mikko Seppälä<br />
|-<br />
|phrakture||Aaron Griffin<br />
|-<br />
|Pierre||Pierre Schmitz<br />
|-<br />
|pizzapunk||Alexander Fehr<br />
|-<br />
|pjmattal||Paul Mattal<br />
|-<br />
|Ranguvar||Devin Cofer<br />
|-<br />
|Romashka||Roman Kyrylych<br />
|-<br />
|shastry||Vinay S Shastry<br />
|-<br />
|Snowman||Eric Bélanger<br />
|-<br />
|shinlun||Shinlun Hsieh<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=StefanHusmann&SeB=m StefanHusmann]||Stefan Husmann<br />
|-<br />
|STiAT||Georg Grabler<br />
|-<br />
|swiergot||Jaroslaw Swierczynski<br />
|-<br />
|tardo||Shehzad Qureshi<br />
|-<br />
|thotypous||Paulo Matias<br />
|-<br />
|voidnull||Giovanni Scafora<br />
|-<br />
|wizzomafizzo||Callan Barrett<br />
|-<br />
|wonder || Ionut Biru<br />
|-<br />
|Xilon||Sebastian Nowicki<br />
|-<br />
|xterminus||Charles Mauch<br />
|-<br />
|zeus||Zhukov Pavel<br />
|}<br />
<br />
==See also==<br />
*[http://www.archlinux.org/trustedusers/ Trusted Users profiles]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Package_Maintainers&diff=194027Package Maintainers2012-04-13T21:12:41Z<p>ConnorBehan: /* How to become TU? */ - Added GPG key recommendation</p>
<hr />
<div>[[Category:Arch development (English)]]<br />
{{i18n|Trusted Users}}<br />
[[fr:TU]]<br />
The '''Trusted Users''' serve the following purposes:<br />
# Maintain {{Ic|[community]}} as an intermediary between Arch Linux's [[Official Repositories]] and the unsupported package collection in the [[AUR]].<br />
# Maintain, manage, and watch over the operation of the [[AUR]].<br />
<br />
== How to become TU? ==<br />
The ''minimum'' requirements to becoming a TU are as follows:<br />
* know basic shell scripting<br />
* maintain a few packages in AUR with clean, high-quality PKGBUILDs<br />
* basic community involvement (mailing list, forums, IRC)<br />
* know Google-Fu<br />
* a general idea of the kind of packages you want to maintain (basically, why do you want to become TU?)<br />
<br />
<br />
Even though you could become a TU by merely fulfilling those minimum requirements, the people judging you [https://aur.archlinux.org/trusted-user/TUbylaws.html#SVP during voting] might expect more of you. Such as:<br />
* involvement in the bug tracker (reporting, research, info)<br />
* patches for Arch projects<br />
* involvement in a few open-source projects (even if they are your own)<br />
<br />
<br />
In case you still feel up to becoming TU after reading these lists, you should find another TU to sponsor you and write a witty application signed with your GPG key to the aur-general mailing list.<br />
<br />
For more information, please see [https://aur.archlinux.org/trusted-user/TUbylaws.html Trusted User Bylaws] and [[AUR Trusted User Guidelines]].<br />
<br />
== Active Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|style="font-weight: bold;"|E-Mail<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=Atsutane Atsutane] ||Thorsten Töpper||atsutane {0x40} freethoughts {0x2E} de<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=Barthalion&SeB=m Barthalion] ||Bartłomiej Piotrowski||barthalion@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=bluewind&SeB=m Bluewind]||Florian Pritz || bluewind@xinu.at<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=cmb&SeB=m cmb]||Chris Brannon||cmbrannon79 at gmail dot com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=cryptocrack&SeB=m cryptocrack]||Lukas Fleischer||archlinux at cryptocrack dot de<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=Daenyth&SeB=m Daenyth]||Daenyth Blank||Daenyth+Arch gmail com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=Dragonlord&SeB=m Dragonlord]||[[User:Dragonlord|Jaroslav Lichtblau]]||tu dragonlord cz<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=falconindy&SeB=m falconindy]||Dave Reisner||d[at]falconindy[dot]com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=foutrelis&SeB=m foutrelis]||Evangelos Foutras||evangelos@foutrelis.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=heftig&SeB=m heftig]||Jan Steffens||jan.steffens@student.kit.edu<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=jelly&SeB=m jelly]||Jelle van der Waa || jelle vdwaa nl<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=kaitocracy&SeB=m kaitocracy]||[[User:kaitocracy|Kaiting Chen]]||kaitocracy@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=lordheavy&SeB=m Lordheavy]||[[User:Lordheavy|Laurent Carlier]]||lordheavym at gmail com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=mtorromeo&SeB=m mtorromeo]||Massimiliano Torromeo||massimiliano.torromeo@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=ornitorrincos&SeB=m ornitorrincos]||Imanol Celaya||ilcra1989@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=Partition&SeB=m Partition]||Mateusz Herych||heniekk at gmail dot com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=petelewis&SeB=m petelewis]||Peter Lewis||plewis at aur dot archlinux dot org<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=PirateJonno&SeB=m PirateJonno]||Jonathan Conder||jonno dot conder at gmail dot com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=pressh&SeB=m pressh]||Ronald van Haren||ronald.archlinux.org<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=schivmeister&SeB=m schivmeister]||[[User:Schivmeister|Ray Rashif]]||schiv archlinux org<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=schuay&SeB=m schuay]||Jakob Gruber||jakob.gruber@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=seblu&SeB=m seblu]||Sébastien Luttringer||s e b l u '''+''' a r c h # s e b lu ''dot'' n e t<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=sergej&SeB=m sergej]||Sergej Pupykin||pupykins@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=stativ&SeB=m stativ]||Lukas Jirkovsky||l.jirkovsky strange_curved_character gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=svenstaro&SeB=m svenstaro]||[[User:svenstaro|Sven-Hendrik Haase]]||sh@lutzhaase.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=td123&SeB=m td123]||Thomas Dziedzic||gostrc at gmail<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=tredaelli&SeB=m tredaelli]||Timothy Redaelli||timothy.redaelli@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=vegai&SeB=m vegai]||Vesa Kaihlavirta||vpkaihla@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=Xyne Xyne]||<--||ca . archlinux @ xyne, in reverse order<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=trontonic&O=0&PP=100&SB=v&SO=d xyproto]||Alexander Rødseth||rodseth@gmail.com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?SeB=m&K=BlackIkeEagle BlackIkeEagle]||[[User:BlackEagle|Ike Devolder]]||ike DOT devolder AT gmail DOT com<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=City-busz&SeB=m City-busz]||György Balló||ballogyor+arch at gmail dot com<br />
|}<br />
<br />
== Inactive Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|style="font-weight: bold;"|E-Mail<br />
|style="font-weight: bold;"|Comments/Reference<br />
|-<br />
|<br />
|-<br />
|}<br />
<br />
== Some Past Trusted Users ==<br />
{|<br />
|- style="border-bottom:solid 2px"<br />
|style="font-weight: bold;padding-right:120px"|Nick<br />
|style="font-weight: bold;padding-right:200px"|Name<br />
|-<br />
|abhidg||Abhishek Dasgupta<br />
|-<br />
|Allan||Allan McRae<br />
|-<br />
|anders||Anders Bergh<br />
|-<br />
|angvp||[[User:Angvp|Angel Velásquez]]<br />
|-<br />
|bardo||Corrado Primier<br />
|-<br />
|bash||Andrea Scarpino<br />
|-<br />
|bfinch||Bob Finch<br />
|-<br />
|brain0||Thomas Bächler<br />
|-<br />
|bjorn||[[User:Bjørn|Bjørn Lindeijer]]<br />
|-<br />
|codemac||Jeff Mickey<br />
|-<br />
|DaNiMoTh||JJ. DaNiMoTh<br />
|-<br />
|dejari||Leslie P. Polzer<br />
|-<br />
|dsa||Douglas Soares de Andrade<br />
|-<br />
|dtw||Phil Dillon-Thiselton<br />
|-<br />
|elasticdog||Aaron Bull Schaefer<br />
|-<br />
|encelo||Angelo Theodorou<br />
|-<br />
|even ||Kessia Pinheiro<br />
|-<br />
|filoktetes||Robert Emil Berge<br />
|-<br />
|firmicus||François Charette<br />
|-<br />
|ganja_guru||Varun Acharya<br />
|-<br />
|gcarrier||Geoffroy Carrier<br />
|-<br />
|Ghost1227||Dan Griffiths<br />
|-<br />
|gummibaerchen||Timm Preetz<br />
|-<br />
|hdoria||Hugo Doria<br />
|-<br />
|iphitus||James Rayner<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=itsbrad212&SeB=m itsbrad212]||Brad Fanella<br />
|-<br />
|louipc||Loui Chang<br />
|-<br />
|mOLOk||Alessio Bolognino<br />
|-<br />
|nesl247||Alex Heck<br />
|-<br />
|Neverth||Mikko Seppälä<br />
|-<br />
|phrakture||Aaron Griffin<br />
|-<br />
|Pierre||Pierre Schmitz<br />
|-<br />
|pizzapunk||Alexander Fehr<br />
|-<br />
|pjmattal||Paul Mattal<br />
|-<br />
|Ranguvar||Devin Cofer<br />
|-<br />
|Romashka||Roman Kyrylych<br />
|-<br />
|shastry||Vinay S Shastry<br />
|-<br />
|Snowman||Eric Bélanger<br />
|-<br />
|shinlun||Shinlun Hsieh<br />
|-<br />
|[https://aur.archlinux.org/packages.php?K=StefanHusmann&SeB=m StefanHusmann]||Stefan Husmann<br />
|-<br />
|STiAT||Georg Grabler<br />
|-<br />
|swiergot||Jaroslaw Swierczynski<br />
|-<br />
|tardo||Shehzad Qureshi<br />
|-<br />
|thotypous||Paulo Matias<br />
|-<br />
|voidnull||Giovanni Scafora<br />
|-<br />
|wizzomafizzo||Callan Barrett<br />
|-<br />
|wonder || Ionut Biru<br />
|-<br />
|Xilon||Sebastian Nowicki<br />
|-<br />
|xterminus||Charles Mauch<br />
|-<br />
|zeus||Zhukov Pavel<br />
|}<br />
<br />
==See also==<br />
*[http://www.archlinux.org/trustedusers/ Trusted Users profiles]</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Apache_OpenOffice&diff=116738Apache OpenOffice2010-09-11T01:57:32Z<p>ConnorBehan: /* Other extensions installed by default */ - s/thax/tax/</p>
<hr />
<div>[[Category:Office (English)]]<br />
[[Category:HOWTOs (English)]]<br />
{{i18n|OpenOffice}}<br />
[http://www.openoffice.org/ OpenOffice] is a leading open-source office software suite for word processing, spreadsheets, presentations, graphics, databases and more.<br />
<br />
==OpenOffice in Arch Linux==<br />
Arch offers 4 trees of binary packages for OpenOffice with different package names:<br />
<br />
'''openoffice-base'''<br />
<br />
This will always be the last released stable version of OpenOffice. <br><br />
Current version: 3.2.0 <br><br />
Start it with "soffice" or from a desktop menu.<br><br />
<br />
'''openoffice-base-beta'''<br />
<br />
This package will be only present when a new release is not far away. It will be the alpha, beta, and release candidates packages for the next stable release. <br><br />
Current version: 3.2.0_ooo320_m12-1 (way to=3.1.1rcX) (versions branched from DEV320_m12 that will lead to next stable 3.2.x release) <br><br />
Start it with "soffice-beta" or from a desktop menu <br><br />
It is safe to install it together with the stable and devel version. <br><br />
Please test it carefully and report upstream bugs to OpenOffice and packaging bugs in our flyspray. <br><br />
See http://wiki.services.openoffice.org/wiki/OOoRelease311 for roadmap<br />
<br />
'''openoffice-base-devel'''<br />
<br />
This packages will be updated from time to time and is a playground for the packager and for testing latest features. Please test and file upstream issues at http://www.openoffice.org/issues/query.cgi <br><br />
Current version: 3.3_dev300_m70-1 / snapshot DEV300_m70 (snapshots past branching the 3.2 stable tree that will lead to 3.3 release and beyond) <br><br />
Start it with "soffice-dev" or from a desktop menu <br><br />
It is safe to install it together with the stable and beta version. <br><br />
See http://wiki.services.openoffice.org/wiki/OOoRelease33 for roadmap<br />
<br />
'''go-openoffice'''<br />
<br />
In addition, there is a package for go-openoffice also called ooo-build - the "Novell fork" in the extra repository, which includes enhancements and features found in versions of openoffice.org available in Ubuntu, OpenSuSE and other distributions. For users of Arch switching from other distributions go-openoffice may be more familiar to them. It will always be the latest stable release in extra based on the source of openoffice-base pkg. Future beta/devel versions will go to the testing repo. <br><br />
Right now go-openoffice cannot be installed along any other openoffice branch; consider it a replacement.<br />
<br />
{{Note|If you play with more than one openoffice-base version it is highly recommended to always backup your configuration directory, ~/.openoffice{2,3}.}}<br />
<br />
==Installation==<br />
* First, install a Java Runtime Environment (optional, highly recommended). See: [[Java]]<br />
<br />
* Also, make sure that fonts are installed, otherwise you will see only rectangles:<br />
# pacman -S ttf-dejavu artwiz-fonts ttf-ms-fonts (and additionally any other needed for your language)<br />
<br />
* Download the base for stable and/or beta and/or devel and/or go-oo:<br />
# pacman -S openoffice-base openoffice-base-beta openoffice-base-devel go-openoffice<br />
<br />
* Download a language package. The main package contains only en_US files, yet the repository offer every shipped upstream langpack, except for go-openoffice.<br />
# pacman -S openoffice-en-GB openoffice-de ....<br />
<br />
===Extension management and spell checking for OpenOffice 3.x===<br />
The Arch package is now shipped with some dictionaries. Check Extension manager if your language is already there simply by loading up any OO program (Writer for example) and access the Extension Manager from the Tools menu. From there enter the following location to install a spell check dictionary:<br />
<br />
/usr/lib/openoffice/share/extension/install/<br />
<br />
{{Note | If you installed go-openoffice, the path will be /usr/lib/go-openoffice/share/extension/install/ instead. }}<br />
<br />
Alternatively, there are several ways to accomplish this:<br />
<br />
* 1) Use the Extension manager from OOo menu for download and installation - installs only for the user into his ~/.openoffice.org/3/user/uno_packages/cache<br />
* 2) Download the extension and install it using "/usr/lib/openoffice/program/unopkg add extension" for the user or<br />
* 3) Download the extension and install it using "/usr/lib/openoffice/program/unopkg add --shared extension" for every user on the system (requires root permission)<br />
<br />
=====Other extensions installed by default=====<br />
(This list is valid for go-openoffice)<br />
* pdfimport.oxt: ability to import PDF files in Draw and Impress<br />
* presenter-screen.oxt: when using two displays this plugin provides more control over slideshow<br />
* sun-presentation-minimizer.oxt: reduce file size of current presentation<br />
* wiki-publisher.oxt: allows to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language<br />
<br />
===Set OOo environment variable===<br />
OpenOffice supports to use several toolkits for drawing and integrates into different desktop environments in a clean way. To choose by hand, you need to set the OOO_FORCE_DESKTOP environment variable.<br />
<br />
To run OpenOffice.org in GTK2 mode(this is default and already preset), you can issue (using bash):<br />
# OOO_FORCE_DESKTOP=gnome soffice<br />
To run OpenOffice.org in QT/KDE3 mode, you can issue (using bash):<br />
# OOO_FORCE_DESKTOP=kde soffice<br />
To run OpenOffice.org in QT4/KDE4 mode, you can issue (using bash):<br />
# OOO_FORCE_DESKTOP=kde4 soffice<br />
<br />
{{Note | As KDE look was removed in Openoffice3 it is highly recommended to use the GTK mode for all users. KDE4 integration is in experimental state in go-openoffice and in openoffice-base-devel (starting from m56)}}<br />
<br />
====Configure OOo environment globally====<br />
To configure the look for anytime OpenOffice gets started, you can export the '''<tt>OOO_FORCE_DESKTOP</tt>''' variable in /etc/profile.d/openoffice.sh, or in /usr/bin/soffice, with the value '''<tt>gnome</tt>''', '''<tt>kde</tt>''', or '''<tt>kde4</tt>'''.<br />
<br />
====Environment variable scripts====<br />
If for whatever reason you do not want to configure the look globaly, as a non-GNOME/KDE user you may run into problems when trying to add the environment variable to the command in a *box menu, as such menus do not seem to like environment variables.<br />
<br />
This script will run openoffice using the GTK look while still accepting command line options like -writer.<br />
#!/bin/sh<br />
<br />
#### openoffice-gtk - A script to start openoffice with the GNOME/GTK environment<br />
<br />
OOO_FORCE_DESKTOP=gnome /usr/bin/soffice "$@"<br />
<br />
Just use this script as a command (e.g, /usr/bin/openoffice-gtk) for your menu or whatever other sort of launcher you use.<br />
<br />
{{Note | If you open a file in a filemanager, for example Thunar, the default look will be used, as the file association will not use your personal script. }}<br />
<br />
===KDE4 look and feel for OpenOffice===<br />
<br />
Check [[Uniform Look for QT and GTK Applications]] for a broad application, general tips and other methods to achieve it.<br />
<br />
'''Method 1:'''<br />
<br />
Open the menu editor, select Office and insert OOO_FORCE_DESKTOP=kde4 before /usr/bin/soffice -(writer/calc/base/etc.) for each OpenOffice application in the general tab/Command field. For example, change /usr/bin/soffice -writer to <br />
OOO_FORCE_DESKTOP=kde4 /usr/bin/soffice -writer<br />
<br />
Save (i.e. update system configuration), open an OpenOffice application and do a CTRL+O to check whether it worked.<br />
<br />
'''Method 2:'''<br />
<br />
OOO_FORCE_DESKTOP=gnome never did the trick for me. A good workaround is to set (as root):<br />
export SAL_GTK_USE_PIXMAPPAINT=1<br />
into /etc/profile.d/openoffice.sh. In KDE4 systemsettings, make sure "use my KDE style in GTK applications" is selected in Appearance > GTK styles and fonts (you must install gtk-qt-engine first).<br />
<br />
'''Method 3:'''<br />
<br />
[[Uniform_Look_for_QT_and_GTK_Applications#KDE4_Oxygen]]. <br />
<br />
Although by default it applies a KDE look to all GTK+ applications, it can be made to apply only to specific applications. Check the documentation in the package available at [http://kde-look.org/content/show.php?content=103741 kde-look's project page].<br />
<br />
'''Method 4:'''<br />
<br />
[[Uniform_Look_for_QT_and_GTK_Applications#GTK-QT-Engine]] (applies to all GTK+ applications).<br />
<br />
====Alternative configuration====<br />
You may wish to set the Xorg server dots-per-inch in the [[KDM]] configuration.<br />
<br />
Do not select "use my KDE style in GTK applications". Instead choose a native syle and font for GTK2 applications.<br />
# pacman -S gtk-chtheme<br />
# pacman -S gtk-engines<br />
<br />
Use gtk-chtheme to select a style (in general different from KDE) and a font (may be the same as your KDE general system font). There are also other GTK engine packages available.<br />
<br />
There are two relevant parts of the OOo options dialog, View and Fonts:<br />
*View<br />
**set scale to 100%<br />
**set use system font OFF (otherwise replacement table will not be used)<br />
**set antialiasing OFF<br />
<br />
*Fonts<br />
**select "Use replacement table"<br />
**replace "Andale Sans UI" (you ''must'' type this in -- it is not in the drop down list) with another font (your KDE system font or another if this looks bad)<br />
**Press the tick symbol to update the list<br />
**Select "always" and "screen only"<br />
**Press OK<br />
<br />
When choosing fonts for OpenOffice note that the poor font rendering engine included in the package may not render a particular font in the same way as other apps on the desktop. Use the {{Filename|kmag}} magnifying glass to examine shape of each letter.<br />
<br />
==Running OpenOffice==<br />
<br />
If you want to run a specific module of OpenOffice.org (instead of the soffice default Startcenter), for example the word processor (Write), spreadsheet application (Calc) or presentation program (Impress), check for the following script front-ends:<br />
<br />
Writer<br />
/usr/bin/soffice -writer<br />
<br />
Calc<br />
/usr/bin/soffice -calc<br />
<br />
Impress<br />
/usr/bin/soffice -impress<br />
<br />
Draw<br />
/usr/bin/soffice -draw<br />
<br />
Math (Formula Editor)<br />
/usr/bin/soffice -math<br />
<br />
Base (Database frontend)<br />
/usr/bin/soffice -base<br />
<br />
Printer Administration (Recommended to run as root)<br />
/usr/bin/spadmin<br />
<br />
==Speed up OpenOffice==<br />
Some settings may improve OpenOffice's loading time and responsiveness. However, some also increase RAM usage, so use them carefully. They can all be accessed under ''Tools > Options''.<br />
*Under ''Memory'':<br />
**Reduce the number of Undo steps to a figure lower than 100, to something like 20 or 30 steps.<br />
**Under Graphics cache, set Use for OpenOffice.org to 128 MB (up from the original 20MB).<br />
**Set Memory per object to 20MB (up from the default 5MB).<br />
**If you use OpenOffice often, check OpenOffice.org Quickstarter.<br />
*Under ''Java'', uncheck Use a Java runtime environment.<br />
==Trouble-shooting==<br />
=== Font substitution ===<br />
These settings can be changed in the OpenOffice.org options. From the drop-down menu, select ''Tools > Options > OpenOffice.org > Fonts''. Check the box that says ''Apply Replacement Table''. Type {{Codeline|Andale Sans UI}} in the font box and choose your desired font for the ''Replace with'' option. When done, click the ''checkmark''. Then choose the ''Always'' and ''Screen only'' options in the box below. Click OK.<br />
You will then need to go to ''Tools > Options > OpenOffice.org > View'', and uncheck "Use system font for user interface". If you use a non-antialised font, such as Arial, you will also need to uncheck "Screen font antialiasing" before menu fonts render correctly.<br />
<br />
=== Anti-aliasing ===<br />
Execute<br />
$ echo "Xft.lcdfilter: lcddefault" | xrdb -merge<br />
<br />
To make the change persistent, add "{{Codeline|Xft.lcdfilter: lcddefault}}" to your {{Filename|~/.Xresources}} file. [https://bugs.launchpad.net/ubuntu/+source/openoffice.org/+bug/271283/comments/19].<br />
<br />
If this doesn't work you can also try adding "{{Codeline|Xft.lcdfilter: lcddefault}}" to your {{Filename|~/.Xdefaults}}. If you do not have this file, you will have to create it.<br />
<br />
=== TrueType font detection ===<br />
See [[Font Configuration#Programs can no longer access TrueType fonts]]. To add fonts to those already available in OpenOffice, run {{Codeline|spadmin}}.<br />
<br />
===Qt looks with KDE >4===<br />
OpenOffice has transitioned to Qt 4, and as such the look of the applications can not be set with Qt 3 tools.<br />
<br />
===French dictionary===<br />
As of openoffice 3.0.0-2 the french dictionary is buggy due to a character encoding problem. To solve this problem, first execute the following commands (you will need '''zip''' and '''unzip''' packages):<br />
$ cp /usr/lib/openoffice/share/extension/install/dict-fr.oxt dict-fr.oxt<br />
$ unzip dict-fr.oxt -d dict-fr<br />
$ cd dict-fr<br />
$ iconv -f ISO-8859-15 -t UTF-8 dictionaries.xcu > dictionaries.xcu.utf<br />
$ mv dictionaries.xcu.utf dictionaries.xcu<br />
$ zip ../dict-fr.oxt *<br />
$ cd ../<br />
$ rm -r dict-fr<br />
then go in the openoffice extension manager (Tools menu) and install the dictionary from the new dict-fr.oxt file.<br />
<br />
===Dark GTK themes and gtk-qt-engine===<br />
For a quick fix, see [http://aur.archlinux.org/packages.php?ID=22383 openoffice-dark-gtk-fix] or if you have go-openoffice see [http://aur.archlinux.org/packages.php?ID=28879 go-openoffice-dark-gtk-fix] on the AUR. This also sets 'OOO_FORCE_DESKTOP=gnome'. Another fix is to export SAL_USE_VCLPLUGIN=gen (generic X11). See [http://user.services.openoffice.org/en/forum/viewtopic.php?f=16&t=27216#p123942 for more info]<br />
<br />
In 3.2.0 (OOO320m12), the fixes mentioned above do not seem to work. The colors can be configured manually in ''Options -> Appearance'', but Impress and Calc (maybe others too) will stay dark unless you disable automatic detection of high contrast themes first.<br><br />
This can be done by going to ''Options -> Accesibility'' and setting ''Automatically detect high contrast mode of operating system'' to off.<br>Now the colors can be configured in ''Options -> Appearance''.<br />
<br />
=== Hanging when using NFS shares ===<br />
If OpenOffice hangs when trying to open/save a document located on a NFS share, try prepending the following lines with a "#" in /usr/lib/openoffice/program/soffice (/usr/bin/soffice if using go-openoffice):<br />
# file locking now enabled by default<br />
SAL_ENABLE_FILE_LOCKING=1<br />
export SAL_ENABLE_FILE_LOCKING<br />
Original post [http://www.crazysquirrel.com/computing/debian/bugs/openoffice-over-nfs.jspx here]<br />
<br>note: only NFSv3 is affected. NFSv4 works well with OpenOffice.</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Reiser4&diff=27542Reiser42007-08-04T22:28:43Z<p>ConnorBehan: /* Packages */</p>
<hr />
<div>[[Category:File systems (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
''Contributed by Itlain and others''<br />
<br />
{{stub}}<br />
<br />
==Short Introduction==<br />
Reiser4 is a new file system developed by [http://www.namesys.com/v4/v4.html Namesys]. It is a very fast file system (according to Namesys, the fastest). You can find [http://www.namesys.com/benchmarks.html benchmarks] between the different file systems available on Linux on their website. It's also an atomic file system, "which means that your file system operations either entirely occur, or they entirely don't, and they don't corrupt due to half occurring."<br />
<br />
==Important Notes==<br />
* Reiser4 requires a patched kernel<br />
* You're still using a 2.4 kernel: reiser4 is developed for 2.6 kernel, and has not been back ported to 2.4<br />
* Reiser4 consumes a little more CPU than other filesystems<br />
* Be warned that Reiser4 is still not considered a stable release.<br />
<br />
==Required materials==<br />
* Recommended partitions:<br />
<br />
- One empty partition for the new reiser4 system <br />
<br />
- One small (12 - 20 MB) ext2 partition for /boot<br />
<br />
- ''Optional:'' reiser4 partitions for /home, /var, /home/user/temp and anything you want<br />
<br />
''It is very easy to manage your partitions with '''gparted''' from extra. Archie LiveCD may be helpfull to modify partitions, it already has gparted installed.''<br />
<br />
* Reiser4 enabled LiveCDs:<br />
* Recovery Is Possible http://www.tux.org/pub/people/kent-robotti/looplinux/rip/<br />
* The Jackass! project http://jackass.homelinux.org<br />
* The Conrad project http://forums.gentoo.org/viewtopic-t-483382.html<br />
* GParted offers a LiveCD or LiveUSB running X http://gparted.sourceforge.net/livecd.php<br />
<br />
* Another LiveCD:<br />
* Kanotix @ http://kanotix.com/files/kanotix/<br />
<br />
==Packages==<br />
''Note that you have to enable unstable and maybe testing repos to install some of this packages, uncommenting them in /etc/pacman.conf''<br />
<br />
1.- Install '''reiser4progs''' from unstable<br />
<pre>pacman -Sy reiser4progs</pre><br />
<br />
2.- You'll need a reiser4 patched kernel. I recommend you to install '''kernel26beyond''' from extra, although it is no longer maintained.<br />
<pre>pacman -Sy kernel26beyond</pre><br />
<br />
3.- Bootloader<br />
<br />
a) '''lilo''' is the recommended one because it is filesystem-independent<br />
<br />
b) If you wish to use '''grub''' with reiser4, the grub package should be rebuild applying the reiser4 patch.<br />
<br />
[http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/*checkout*/base/grub/install-grub install-grub] and [http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/*checkout*/base/grub/menu.lst menu.lst] from Arch Linux CVS<br />
<br />
<pre><br />
pkgname=grub<br />
pkgver=0.97<br />
pkgrel=2<br />
pkgdesc="A GNU multiboot boot loader"<br />
url="http://www.gnu.org/software/grub/"<br />
depends=('ncurses' 'libaal' 'reiser4progs' 'bash')<br />
<br />
source=(ftp://ftp.namesys.com/pub/reiser4progs/grub-0.97-reiser4-20050808.tar.gz \<br />
menu.lst install-grub)<br />
backup=('boot/grub/menu.lst')<br />
md5sums=('c5a860a4cd81cffc95a3b9ca5624aa7b' '615101c2fc1bc2204be8eba33cfaf52c'\<br />
'4876f193005df5fca8ca9647729d1e23')<br />
<br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
# optimizations break the build -- disable them<br />
CFLAGS= ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin<br />
CFLAGS= make || return 1<br />
make DESTDIR=$startdir/pkg install <br />
install -D -m644 ../install-grub $startdir/pkg/sbin/install-grub<br />
install -D -m755 ../install-grub $startdir/pkg/sbin/install-grub<br />
mkdir -p $startdir/pkg/usr/share<br />
ln -s ../lib/grub $startdir/pkg/usr/share/grub<br />
}<br />
</pre><br />
<br />
===Install and reboot===<br />
You'll have to install the new packages, update you kernel and your bootloader, to make sure it works.<br />
Remember to run lilo as root if you choose it as bootloader.<br />
<br />
==Moving to Reiser4==<br />
In the next steps we'll copy the data to the new reiser4 partitions, so make<br />
sure you have enough disk space on hda2. You can check this disk information with '''df'''.<br />
<br />
===Sample system===<br />
<pre><br />
* /dev/hda2: (10 Gb, 5 Gb free); Reiserfs /<br />
* /dev/hda3: (10 Gb, 1 Gb used); Reiserfs /home<br />
* /dev/hda4: (1 Gb); swap<br />
</pre><br />
<br />
===Backup===<br />
Next big thing is to make sure your /home directory is save:<br />
<br />
(as root)<br />
<pre><br />
mkdir /backup<br />
cp -R /home /backup<br />
</pre><br />
<br />
Once the /home directory is safely backed up (and there is no important data @ the hdc3 disk) you can continue.<br />
<br />
===Formating===<br />
Run the following commands:<br />
<br />
<pre><br />
mkfs.reiser4 /dev/hda5<br />
fsck.reiser4 --fix /dev/hda5<br />
mkdir /reiser4<br />
mount -t reiser4 /dev/hda5 /reiser4<br />
</pre><br />
<br />
===Copy system===<br />
Once the partition is formated, copy you current system to the new partition and create the system directories:<br />
<br />
<pre><br />
# Copy the system<br />
cp -a /bin /reiser4<br />
cp -a /boot /reiser4<br />
cp -a /etc /reiser4<br />
cp -a /lib /reiser4<br />
cp -a /opt /reiser4<br />
cp -a /root /reiser4<br />
cp -a /sbin /reiser4<br />
cp -a /tmp /reiser4<br />
cp -a /usr /reiser4<br />
cp -a /var /reiser4<br />
<br />
# Restore Backup<br />
cp -a /backup/home /reiser4<br />
<br />
#Mount points (check you fstab file)<br />
mkdir /reiser4/mnt/cd<br />
mkdir /reiser4/mnt/dvd<br />
<br />
# Create system directories<br />
mkdir /reiser4/sys<br />
mkdir /reiser4/proc<br />
mkdir /reiser4/dev<br />
<br />
#Migrate Udev<br />
mknod /reiser4/dev/console c 5 1<br />
mknod -m 666 /reiser4/dev/null c 1 3<br />
mknod -m 666 /reiser4/dev/zero c 1 5<br />
</pre><br />
<br />
===Configure system:===<br />
====/reiser4/etc/fstab:====<br />
<pre><br />
# <br />
# /etc/fstab: static file system information<br />
#<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
none /dev/pts devpts defaults 0 0<br />
none /dev/shm tmpfs defaults 0 0<br />
tmpfs /tmp tmpfs defaults 0 0<br />
usbfs /proc/bus/usb usbfs defaults 0 0<br />
<br />
/dev/cdroms/cdrom0 /mnt/cd iso9660 ro,user,noauto,unhide 0 0<br />
/dev/cdroms/cdrom0 /mnt/dvd udf ro,user,noauto,unhide 0 0<br />
<br />
/dev/hda4 swap swap defaults 0 0<br />
/dev/hda2 /boot ext2 defaults 0 1<br />
/dev/hda5 / reiser4 defaults 0 1<br />
</pre><br />
<br />
====/etc/lilo.conf:====<br />
<pre><br />
#<br />
# /etc/lilo.conf<br />
#<br />
<br />
boot=/dev/hda<br />
# This line often fixes L40 errors on bootup<br />
# disk=/dev/hda bios=0x80<br />
<br />
default=Arch4<br />
timeout=20<br />
lba32<br />
prompt<br />
<br />
image=/boot/vmlinuz26beyond<br />
label=Arch4<br />
root=/dev/hda5<br />
append="video=vesafb:1024x768-24@56,ywrap,mtrr splash=verbose,theme:darch console=tty1 resume2=swap:/dev/hdb1"<br />
initrd=/boot/initramfs-beyond.img<br />
read-only<br />
<br />
image=/boot/vmlinuz26beyond<br />
label=Arch<br />
root=/dev/hda3<br />
append="video=vesafb:1024x768-24@56,ywrap,mtrr splash=verbose,theme:darch console=tty1 resume2=swap:/dev/hdb1"<br />
initrd=/boot/initramfs-beyond.img<br />
read-only<br />
</pre><br />
<br />
'''Run lilo''' to install new kernels.<br />
<br />
===Done===<br />
You hopefully done now, you can reboot your system and try to run the 'new' reiser4 installation.<br />
If you plan to formate /dev/hda3, make sure you run lilo or grub from the new system and configure them like above.<br />
<br />
==Possible Issues==<br />
* Permissions: chown -R username.group <userdir><br />
* If you have problem with "su" command after the change of fs, you should reinstall coreutils package.<br />
* The first time you start the new system, no modules are loaded:<br />
** Run '''hwdetect --load-modules'''<br />
** Restart some daemons from /etc/rc.d<br />
** Everything works fine now and the next time you reboot.<br />
<br />
==External Links==<br />
* [http://www.namesys.com/v4/v4.html Reiser4 homepage]<br />
* [http://en.wikipedia.org/wiki/Reiser4 Reiser4] from Wikipedia.org<br />
* [http://www.namesys.com/install_v4.html Getting started with Reiser4] from Namesys.com</div>ConnorBehanhttps://wiki.archlinux.org/index.php?title=Reiser4&diff=27541Reiser42007-08-04T22:28:06Z<p>ConnorBehan: /* Required materials */</p>
<hr />
<div>[[Category:File systems (English)]]<br />
[[Category:HOWTOs (English)]]<br />
<br />
''Contributed by Itlain and others''<br />
<br />
{{stub}}<br />
<br />
==Short Introduction==<br />
Reiser4 is a new file system developed by [http://www.namesys.com/v4/v4.html Namesys]. It is a very fast file system (according to Namesys, the fastest). You can find [http://www.namesys.com/benchmarks.html benchmarks] between the different file systems available on Linux on their website. It's also an atomic file system, "which means that your file system operations either entirely occur, or they entirely don't, and they don't corrupt due to half occurring."<br />
<br />
==Important Notes==<br />
* Reiser4 requires a patched kernel<br />
* You're still using a 2.4 kernel: reiser4 is developed for 2.6 kernel, and has not been back ported to 2.4<br />
* Reiser4 consumes a little more CPU than other filesystems<br />
* Be warned that Reiser4 is still not considered a stable release.<br />
<br />
==Required materials==<br />
* Recommended partitions:<br />
<br />
- One empty partition for the new reiser4 system <br />
<br />
- One small (12 - 20 MB) ext2 partition for /boot<br />
<br />
- ''Optional:'' reiser4 partitions for /home, /var, /home/user/temp and anything you want<br />
<br />
''It is very easy to manage your partitions with '''gparted''' from extra. Archie LiveCD may be helpfull to modify partitions, it already has gparted installed.''<br />
<br />
* Reiser4 enabled LiveCDs:<br />
* Recovery Is Possible http://www.tux.org/pub/people/kent-robotti/looplinux/rip/<br />
* The Jackass! project http://jackass.homelinux.org<br />
* The Conrad project http://forums.gentoo.org/viewtopic-t-483382.html<br />
* GParted offers a LiveCD or LiveUSB running X http://gparted.sourceforge.net/livecd.php<br />
<br />
* Another LiveCD:<br />
* Kanotix @ http://kanotix.com/files/kanotix/<br />
<br />
==Packages==<br />
''Note that you have to enable unstable and maybe testing repos to install some of this packages, uncommenting them in /etc/pacman.conf''<br />
<br />
1.- Install '''reiser4progs''' from unstable<br />
<pre>pacman -Sy reiser4progs</pre><br />
<br />
2.- You'll need a reiser4 patched kernel. I recommend you to install '''kernel26beyond''' from extra.<br />
<pre>pacman -Sy kernel26beyond</pre><br />
<br />
3.- Bootloader<br />
<br />
a) '''lilo''' is the recommended one because it is filesystem-independent<br />
<br />
b) If you wish to use '''grub''' with reiser4, the grub package should be rebuild applying the reiser4 patch.<br />
<br />
[http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/*checkout*/base/grub/install-grub install-grub] and [http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/*checkout*/base/grub/menu.lst menu.lst] from Arch Linux CVS<br />
<br />
<pre><br />
pkgname=grub<br />
pkgver=0.97<br />
pkgrel=2<br />
pkgdesc="A GNU multiboot boot loader"<br />
url="http://www.gnu.org/software/grub/"<br />
depends=('ncurses' 'libaal' 'reiser4progs' 'bash')<br />
<br />
source=(ftp://ftp.namesys.com/pub/reiser4progs/grub-0.97-reiser4-20050808.tar.gz \<br />
menu.lst install-grub)<br />
backup=('boot/grub/menu.lst')<br />
md5sums=('c5a860a4cd81cffc95a3b9ca5624aa7b' '615101c2fc1bc2204be8eba33cfaf52c'\<br />
'4876f193005df5fca8ca9647729d1e23')<br />
<br />
build() {<br />
cd $startdir/src/$pkgname-$pkgver<br />
# optimizations break the build -- disable them<br />
CFLAGS= ./configure --prefix=/usr --bindir=/bin --sbindir=/sbin<br />
CFLAGS= make || return 1<br />
make DESTDIR=$startdir/pkg install <br />
install -D -m644 ../install-grub $startdir/pkg/sbin/install-grub<br />
install -D -m755 ../install-grub $startdir/pkg/sbin/install-grub<br />
mkdir -p $startdir/pkg/usr/share<br />
ln -s ../lib/grub $startdir/pkg/usr/share/grub<br />
}<br />
</pre><br />
<br />
===Install and reboot===<br />
You'll have to install the new packages, update you kernel and your bootloader, to make sure it works.<br />
Remember to run lilo as root if you choose it as bootloader.<br />
<br />
==Moving to Reiser4==<br />
In the next steps we'll copy the data to the new reiser4 partitions, so make<br />
sure you have enough disk space on hda2. You can check this disk information with '''df'''.<br />
<br />
===Sample system===<br />
<pre><br />
* /dev/hda2: (10 Gb, 5 Gb free); Reiserfs /<br />
* /dev/hda3: (10 Gb, 1 Gb used); Reiserfs /home<br />
* /dev/hda4: (1 Gb); swap<br />
</pre><br />
<br />
===Backup===<br />
Next big thing is to make sure your /home directory is save:<br />
<br />
(as root)<br />
<pre><br />
mkdir /backup<br />
cp -R /home /backup<br />
</pre><br />
<br />
Once the /home directory is safely backed up (and there is no important data @ the hdc3 disk) you can continue.<br />
<br />
===Formating===<br />
Run the following commands:<br />
<br />
<pre><br />
mkfs.reiser4 /dev/hda5<br />
fsck.reiser4 --fix /dev/hda5<br />
mkdir /reiser4<br />
mount -t reiser4 /dev/hda5 /reiser4<br />
</pre><br />
<br />
===Copy system===<br />
Once the partition is formated, copy you current system to the new partition and create the system directories:<br />
<br />
<pre><br />
# Copy the system<br />
cp -a /bin /reiser4<br />
cp -a /boot /reiser4<br />
cp -a /etc /reiser4<br />
cp -a /lib /reiser4<br />
cp -a /opt /reiser4<br />
cp -a /root /reiser4<br />
cp -a /sbin /reiser4<br />
cp -a /tmp /reiser4<br />
cp -a /usr /reiser4<br />
cp -a /var /reiser4<br />
<br />
# Restore Backup<br />
cp -a /backup/home /reiser4<br />
<br />
#Mount points (check you fstab file)<br />
mkdir /reiser4/mnt/cd<br />
mkdir /reiser4/mnt/dvd<br />
<br />
# Create system directories<br />
mkdir /reiser4/sys<br />
mkdir /reiser4/proc<br />
mkdir /reiser4/dev<br />
<br />
#Migrate Udev<br />
mknod /reiser4/dev/console c 5 1<br />
mknod -m 666 /reiser4/dev/null c 1 3<br />
mknod -m 666 /reiser4/dev/zero c 1 5<br />
</pre><br />
<br />
===Configure system:===<br />
====/reiser4/etc/fstab:====<br />
<pre><br />
# <br />
# /etc/fstab: static file system information<br />
#<br />
# <file system> <dir> <type> <options> <dump> <pass><br />
none /dev/pts devpts defaults 0 0<br />
none /dev/shm tmpfs defaults 0 0<br />
tmpfs /tmp tmpfs defaults 0 0<br />
usbfs /proc/bus/usb usbfs defaults 0 0<br />
<br />
/dev/cdroms/cdrom0 /mnt/cd iso9660 ro,user,noauto,unhide 0 0<br />
/dev/cdroms/cdrom0 /mnt/dvd udf ro,user,noauto,unhide 0 0<br />
<br />
/dev/hda4 swap swap defaults 0 0<br />
/dev/hda2 /boot ext2 defaults 0 1<br />
/dev/hda5 / reiser4 defaults 0 1<br />
</pre><br />
<br />
====/etc/lilo.conf:====<br />
<pre><br />
#<br />
# /etc/lilo.conf<br />
#<br />
<br />
boot=/dev/hda<br />
# This line often fixes L40 errors on bootup<br />
# disk=/dev/hda bios=0x80<br />
<br />
default=Arch4<br />
timeout=20<br />
lba32<br />
prompt<br />
<br />
image=/boot/vmlinuz26beyond<br />
label=Arch4<br />
root=/dev/hda5<br />
append="video=vesafb:1024x768-24@56,ywrap,mtrr splash=verbose,theme:darch console=tty1 resume2=swap:/dev/hdb1"<br />
initrd=/boot/initramfs-beyond.img<br />
read-only<br />
<br />
image=/boot/vmlinuz26beyond<br />
label=Arch<br />
root=/dev/hda3<br />
append="video=vesafb:1024x768-24@56,ywrap,mtrr splash=verbose,theme:darch console=tty1 resume2=swap:/dev/hdb1"<br />
initrd=/boot/initramfs-beyond.img<br />
read-only<br />
</pre><br />
<br />
'''Run lilo''' to install new kernels.<br />
<br />
===Done===<br />
You hopefully done now, you can reboot your system and try to run the 'new' reiser4 installation.<br />
If you plan to formate /dev/hda3, make sure you run lilo or grub from the new system and configure them like above.<br />
<br />
==Possible Issues==<br />
* Permissions: chown -R username.group <userdir><br />
* If you have problem with "su" command after the change of fs, you should reinstall coreutils package.<br />
* The first time you start the new system, no modules are loaded:<br />
** Run '''hwdetect --load-modules'''<br />
** Restart some daemons from /etc/rc.d<br />
** Everything works fine now and the next time you reboot.<br />
<br />
==External Links==<br />
* [http://www.namesys.com/v4/v4.html Reiser4 homepage]<br />
* [http://en.wikipedia.org/wiki/Reiser4 Reiser4] from Wikipedia.org<br />
* [http://www.namesys.com/install_v4.html Getting started with Reiser4] from Namesys.com</div>ConnorBehan