https://wiki.archlinux.org/api.php?action=feedcontributions&user=Seblu&feedformat=atomArchWiki - User contributions [en]2024-03-29T11:30:10ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Dell_XPS_13_(9310)&diff=667962Dell XPS 13 (9310)2021-05-05T21:39:47Z<p>Seblu: Virtualbox EFI broken</p>
<hr />
<div>[[Category:Dell]]<br />
[[ja:Dell XPS 13 (9370)]]<br />
{{Laptop style|Misses some sections, hardware table needs adjustments}}<br />
{| class="wikitable" style="float: right;"<br />
| '''Device''' || '''Status''' || '''Modules'''<br />
|-<br />
| Video || {{G|Working}} || i915<br />
|-<br />
| Wireless (AX500) || {{O|Unstable}} || ath11k<br />
|-<br />
| Wireless (AX201) || {{G|Working}} || iwlwifi<br />
|-<br />
| Bluetooth || {{G|Working}}|| btusb<br />
|-<br />
| Audio || {{G|Working}} || snd_hda_intel<br />
|-<br />
| Touchpad || {{G|Working}} || hid_multitouch<br />
|-<br />
| Webcam || {{G|Working}} || uvcvideo<br />
|-<br />
| Infrared Webcam || {{G|Working}} || uvcvideo<br />
|-<br />
| Infrared Camera Authentication || {{G|Working}} || ?<br />
|-<br />
| USB-C / Thunderbolt 4 || {{G|Working}} || intel_wmi_thunderbolt<br />
|-<br />
| Wireless switch || ? || intel_hid<br />
|-<br />
| Function/Multimedia Keys || {{G|Working}} || ?<br />
|-<br />
| Fingerprint sensor || {{G|Working}} || ?<br />
|-<br />
| Ambient light sensor || {{G|Working}} || iio<br />
|}<br />
{{Related articles start}}<br />
{{Related|Dell XPS 13 (9300)}}<br />
{{Related|Dell XPS 13 (9333)}}<br />
{{Related|Dell XPS 13 (9343)}}<br />
{{Related|Dell XPS 13 (9350)}}<br />
{{Related|Dell XPS 13 (9360)}}<br />
{{Related|Dell XPS 13 (9370)}}<br />
{{Related|Dell XPS 13 2-in-1 (9365)}}<br />
{{Related articles end}}<br />
<br />
Dell XPS late 2020 edition.<br />
== Audio ==<br />
Works correctly, requires {{Pkg|sof-firmware}}.<br />
<br />
== Wifi ==<br />
<br />
There are two possible devices the laptop may ship with, AX201 or AX500. AX201 support is already in the mainline kernel<br />
<br />
=== AX500 === <br />
<br />
Since Kernel version 5.10.9, users have reported some success with the Arch stock Kernel (a recent Dell firmware is also required: at least version 1.2.5). Please note, the driver is still experimental. While it's reported to working fine with a 2.4 GHz WPA Personal WiFi network, there might be problems after disconnecting the WiFi or with different setups (WPA3, 5 GHz WiFi). Your mileage may vary. However, recovery from suspend and hibernate appears to be broken, though it can usually be manually fixed by reloading the {{ic|ath11k_pci}} module. For example:<br />
<br />
$ sudo rmmod ath11k_pci<br />
# wait a couple minutes (yes really) for the operation to complete<br />
$ sudo modprobe ath11k_pci<br />
<br />
This can be automated via sleep hooks - if the module is unloaded before hibernating or suspending it unloads immediately with no delay, and the resume kernel bug doesn't happen:<br />
{{hc|/etc/systemd/system/ath11k-suspend.service|2=<br />
[Unit]<br />
Description=Suspend: rmmod ath11k_pci<br />
Before=sleep.target<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=/usr/bin/rmmod ath11k_pci<br />
<br />
[Install]<br />
WantedBy=sleep.target<br />
}}<br />
<br />
{{hc|/etc/systemd/system/ath11k-resume.service|2=<br />
[Unit]<br />
Description=Resume: modprobe ath11k_pci<br />
After=suspend.target<br />
<br />
[Service]<br />
Type=simple<br />
ExecStart=/usr/bin/modprobe ath11k_pci<br />
<br />
[Install]<br />
WantedBy=suspend.target<br />
<br />
}}<br />
<br />
You need to enable the hooks with {{ic|systemctl enable /etc/systemd/system/ath11k-suspend.service}} and {{ic|systemctl enable /etc/systemd/system/ath11k-resume.service}}.<br />
<br />
There is also work in progress in the form of qca6390 (the SoC of Killer AX500) driver development in the [https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git kernel.org kvalo/ath repository]. Patches based on the [https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/log/?h=ath11k-qca6390-bringup ath11k-qca6390-bringup branch] have been working (with an "experimental" caveat) for a while.<br />
<br />
==== mm/page_alloc error ====<br />
<br />
You might see the following error in your [[dmesg]] log if your WiFi is not working:<br />
{{bc|<br />
mm/page_alloc: place pages to tail in __free_pages_core()<br />
}}<br />
<br />
You can to reserve the memory starting from 20M to fix this error by adding the following parameter to your [[Kernel parameters|Linux kernel cmdline]]: <br />
{{bc|1=<br />
memmap=12M$20M<br />
}}<br />
<br />
Details about this problem can be found in the Linux kernel mailing list: https://lkml.org/lkml/2020/11/13/397<br />
<br />
==== Kernel versions before 5.10.9 ====<br />
<br />
Here are the earlier notes on compiling that Kernel:<br />
<br />
You can [[Kernel#Compilation|compile the kernel]] with the [https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/log/?h=ath11k-qca6390-bringup ath11k-qca6390-bringup branch]. The latest change of this branch is based on Linux v5.10 release, it has a work around that disables MHI M2 state and makes QCA6390 usable on 9310.<br />
{{warning| the driver is still experimental and might cause instability to your system.}}<br />
Before compiling, make sure to enable ath11k driver from kernel config:<br />
{{bc|<br />
make menuconfig<br />
--> Select Device drivers<br />
--> Network device support<br />
--> Wireless LAN<br />
--> Enable as below<br />
<M> Qualcomm Technologies 11ax chipset support<br />
<M> Atheros ath11k PCI support<br />
[*] QCA ath11k debugging<br />
[*] QCA ath11k debugfs support<br />
[*] ath11k tracing support<br />
[*] QCA ath11k spectral scan support}}<br />
<br />
<br />
qca6390 also require ath11k firmware, which is available on {{Pkg|linux-firmware}}.<br />
<br />
<br />
==== Kernel 5.12.0 ====<br />
<br />
The suspend problem appears to be fixed in 5.12.0, as tested under Fedora rawhide as of 24 February 2021. Wireless comes up on booting and after resume from suspend out of the box.<br />
<br />
== Fingerprint sensor ==<br />
<br />
The fingerprint sensor can be used by installing the proprietary Ubuntu driver released by Dell and Goodix. This requires a different fork of libfprint {{AUR|libfprint-tod-git}} - available on the AUR and built from source [https://gitlab.freedesktop.org/3v1n0/libfprint/-/tree/tod from the upstream repo]. This is a newer version intended for use only with touch-based sensors such as the one on the XPS.<br />
<br />
{{warning|This driver is proprietary, closed source and only distributed in binary form}}<br />
<br />
The proprietary driver can be obtained from the AUR: {{AUR|libfprint-2-tod1-xps9300-bin}}. Alternatively, it can also be manually installed from the [https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix/?h=devel Dell repository] by extracting the Debian file and copying its contents.<br />
<br />
The rest of the process is identical to that described on [[Fprint]] - just make sure not to install the version of libfprint on the main repo as it conflicts with libfprint-tod<br />
<br />
== Infrared camera ==<br />
<br />
When the IR camera(/dev/video2) is on, it will not automatically turn on the IR emitter. You can follow the instructions from [https://github.com/EmixamPP/linux-enable-ir-emitter linux-enable-ir-emitter] to enable the IR emitter.<br />
{{Note|You can skip from step 2 to 9 as I have gathered the setup data from those steps, so you don't have to: <br />
Bus 003 Device 003: ID 0c45:672a Microdia Integrated_Webcam_HD<br />
Setup Data<br />
bmRequestType: 0x21<br />
bRequest: 1<br />
wValue: 0x0600<br />
wIndex: 1026 (0x0402)<br />
wLength: 9<br />
Data Fragment: 010302000000000000<br />
You can continue to step 10 with the above data.<br />
}}<br />
<br />
The infrared camera can be used as an authentication method with {{AUR|howdy}}.<br />
<br />
{{Warning|As mentioned in the Howdy documentation, "DO NOT USE HOWDY AS THE SOLE AUTHENTICATION METHOD FOR YOUR SYSTEM."[https://github.com/boltgolt/howdy#a-note-on-security]}}<br />
<br />
The configuration file is located at {{ic|/lib/security/howdy/config.ini}}. The device should be configured like this: {{ic|device_path <nowiki>= /dev/video2 </nowiki>}}.<br />
<br />
<br />
{{Note|After installing howdy, you should tweak the configuration file to find the settings that work best for you.<br />
<br />
I personally found much better results by increasing {{ic|dark_threshold}} all the way to 80 or 90. Please read the config file carefully.}}<br />
<br />
== Ambient light sensor ==<br />
Install {{Pkg|iio-sensor-proxy}} to enable automatic brightness in Gnome.<br />
<br />
== Virtualization ==<br />
Virtualbox EFI guests VM are currently not working on this hardware.<br />
See: https://www.virtualbox.org/ticket/20090 and https://forums.virtualbox.org/viewtopic.php?f=7&t=100940.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Hyperkitty&diff=597707Hyperkitty2020-02-16T17:07:15Z<p>Seblu: Fix name typo</p>
<hr />
<div>[[Category:Mail server]]<br />
[[Category:Web applications]]<br />
[https://gitlab.com/mailman/hyperkitty Hyperkitty] is a [[Django]] based archiver and archive interface for [[Mailman]] 3.<br />
<br />
== Installation ==<br />
<br />
To use Hyperkitty, a working [[web server]] setup is required (e.g. using [[Apache]] to forward to the [[wikipedia:Wsgi|WSGI]] directly, or using [[Nginx]] forwarding requests to an application server such as [[UWSGI]]).<br />
<br />
[[Install]] the {{pkg|hyperkitty}} package.<br />
<br />
{{Warning|Hyperkitty should only be accessed over [[TLS]] (unless only accessed directly from the machine running it for testing purposes), as it otherwise exposes passwords and user data to the network.}}<br />
<br />
== Configuration ==<br />
<br />
The web application is configured in {{ic|/etc/webapps/hyperkitty/settings.py}}.<br />
<br />
{{Note|Hyperkitty should store user sensitive data (e.g. sqlite database) in {{ic|/var/lib/hyperkitty/data}}, as that directory is only accessible by root and the application itself.}}<br />
<br />
Change the default secret for the application:<br />
<br />
{{hc|/etc/webapps/hyperkitty/settings.py|<nowiki><br />
SECRET_KEY = 'something-very-secret'<br />
</nowiki>}}<br />
<br />
Make sure to disable debugging when running in production:<br />
<br />
{{hc|/etc/webapps/hyperkitty/settings.py|<nowiki><br />
DEBUG = False<br />
</nowiki>}}<br />
<br />
Add a valid email configuration (so that the [[Django]] application can verify subscribers):<br />
<br />
{{hc|/etc/webapps/hyperkitty/settings.py|<nowiki><br />
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'<br />
EMAIL_HOST = 'localhost'<br />
EMAIL_PORT = 25<br />
EMAIL_HOST_USER = <username><br />
EMAIL_HOST_PASSWORD = <password><br />
</nowiki>}}<br />
<br />
{{Note|The {{ic|DEFAULT_FROM_MAIL}} and {{ic|SERVER_MAIL}} configuration options can be used to define the {{ic|From:}} header of mails sent for internal authentication and error reporting (respectively).}}<br />
<br />
The valid hosts or domain names for the application need to be defined:<br />
<br />
{{hc|/etc/webapps/hyperkitty/settings.py|<nowiki><br />
ALLOWED_HOSTS = [<br />
'localhost',<br />
'lists.example.com'<br />
]<br />
</nowiki>}}<br />
<br />
== Hosting ==<br />
<br />
{{Expansion| Example for a setup using [[Apache]].}}<br />
<br />
{{Note|Hyperkitty needs to be run as its own user and group (i.e. {{ic|hyperkitty}}). It's using {{ic|/etc/webapps/hyperkitty}}, {{ic|/var/lib/hyperkitty}} and {{ic|/run/hyperkitty}} for configurations, static caches and (potentially) sockets (respectively)!}}<br />
<br />
=== Nginx and uWSGI ===<br />
<br />
Hyperkitty comes with a working [[uWSGI]] configuration file in {{ic|/etc/uwsgi/hyperkitty.ini}}.<br />
<br />
[[Install]] {{pkg|nginx}} and {{pkg|uwsgi-plugin-php}}, create a per-application socket for [[uWSGI]] (see [[UWSGI#Accessibility of uWSGI socket]] for reference) and [[Systemd#Using_units|activate]] the {{ic|uwsgi-secure@hyperkitty.socket}} unit.<br />
<br />
For a local test setup, serving Hyperkitty at http://127.0.0.1:80/hyperkitty add the following [[Nginx]] configuration to your setup:<br />
<br />
{{hc|/etc/nginx/hyperkitty.conf|<nowiki><br />
server {<br />
listen 80;<br />
server_name localhost;<br />
charset utf-8;<br />
client_max_body_size 75M;<br />
access_log /var/log/nginx/access.hyperkitty.log;<br />
error_log /var/log/nginx/error.hyperkitty.log;<br />
<br />
location ~^/static/(.*)$ {<br />
alias /usr/share/webapps/hyperkitty/static;<br />
}<br />
<br />
location ~^/(accounts|admin|hyperkitty)/(.*)$ {<br />
include /etc/nginx/uwsgi_params;<br />
uwsgi_pass unix:/run/hyperkitty/hyperkitty.sock;<br />
}<br />
}<br />
</nowiki>}}<br />
<br />
== Setup ==<br />
<br />
After first installation make sure to generate a database:<br />
<br />
$ sudo -u hyperkitty django-admin migrate --pythonpath /usr/share/webapps/hyperkitty/ --settings settings<br />
<br />
Afterwards, the static data for the application needs to be collected:<br />
<br />
$ sudo -u hyperkitty django-admin collectstatic --pythonpath /usr/share/webapps/hyperkitty/ --settings settings<br />
<br />
To compress the data, run the following:<br />
<br />
$ sudo -u hyperkitty django-admin compress --pythonpath /usr/share/webapps/hyperkitty/ --settings settings<br />
<br />
[[Enable]] and [[start]] the {{ic|hyperkitty-qcluster.service}} [[systemd]] service for required asynchronous operations on the web application.<br />
<br />
Populate the database with default data (when setting up for the first time):<br />
<br />
$ sudo -u hyperkitty django-admin loaddata --pythonpath /usr/share/webapps/hyperkitty/ --settings settings first_start<br />
<br />
Create a superuser account for the [[Django]] application:<br />
<br />
$ sudo -u hyperkitty django-admin createsuperuser --pythonpath /usr/share/webapps/hyperkitty --settings settings<br />
<br />
== Tips and tricks ==<br />
<br />
=== Importing mailman2 archives ===<br />
<br />
Hyperkitty can import archives from mailman < 3.0:<br />
<br />
$ sudo -u hyperkitty django-admin hyperkitty_import --pythonpath /usr/share/webapps/hyperkitty --settings settings -l ADDRESS mbox_file [mbox_file ...]<br />
<br />
Here {{ic|ADDRESS}} is the fully-qualified list name (e.g. ''list@example.com'') and the {{ic|mbox_file}} argument represents existing archives (in mbox format) to import (usually found in {{ic|/var/lib/mailman/archives/private/LIST_NAME.mbox/LIST_NAME.mbox}}).<br />
<br />
Afterwards the full-text search index can be updated manually:<br />
<br />
$ sudo -u hyperkitty django-admin update_index_one_list --pythonpath /usr/share/webapps/hyperkitty --settings settings ADDRESS<br />
<br />
{{Note|The full-text search index should be created by the minutely running cron-job automatically.}}<br />
<br />
=== Disabling Gravatar support ===<br />
<br />
The builtin gravatar support can be disabled in the configuration:<br />
<br />
{{hc|/etc/webapps/hyperkitty/settings.py|<nowiki><br />
GRAVATAR_SECURE_URL = ''<br />
</nowiki>}}<br />
<br />
=== Saving mail attachments to disk ===<br />
<br />
By default Hyperkitty stores mail attachments in its database. However, it can be configured to save the attachments to disk instead:<br />
<br />
{{hc|/etc/webapps/hyperkitty/settings.py|<nowiki><br />
HYPERKITTY_ATTACHMENT_FOLDER = /var/lib/hyperkitty/data/attachments<br />
</nowiki>}}<br />
<br />
{{Note|The location needs to be accessible and writable by the {{ic|hyperkitty}} user!}}<br />
<br />
=== Template customization ===<br />
<br />
Using [[Django]]'s [https://docs.djangoproject.com/en/3.0/ref/settings/#std:setting-TEMPLATES-DIRS TEMPLATES-DIRS] capabilities, it's possible to override the following templates to change the looks of the application:<br />
<br />
* {{ic|hyperkitty/headers.html}}: the content will appear before the {{ic|</head>}} tag<br />
* {{ic|hyperkitty/top.html}}: the content will appear before the {{ic|<body>}} tag<br />
* {{ic|hyperkitty/bottom.html}}: the content will appear before the {{ic|</body>}} tag<br />
<br />
=== Xapian search backend ===<br />
<br />
Hyperkitty can make use of a Xapian based search backend. [[Install]] the {{pkg|python-xapian-haystack}} package and configure the backend:<br />
<br />
{{hc|/etc/webapps/hyperkitty/settings.py|<nowiki><br />
HAYSTACK_CONNECTIONS = {<br />
'default': {<br />
'ENGINE': 'xapian_backend.XapianEngine',<br />
'PATH': "/var/lib/hyperkitty/data/xapian_index",<br />
},<br />
}<br />
</nowiki>}}<br />
<br />
Make sure to create the search index for all lists afterwards:<br />
$ sudo -u hyperkitty django-admin update_index --pythonpath /usr/share/webapps/hyperkitty --settings settings<br />
<br />
== See also ==<br />
<br />
* [https://hyperkitty.readthedocs.io/en/latest/ Hyperkitty Documentation] - The upstream documentation<br />
* [https://docs.mailman3.org/en/latest/ Mailman Suite Documentation] - The (high level) upstream documentation for the entire Mailman Suite (Mailman, Hyperkitty and Postorius)</div>Sebluhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=587316Unofficial user repositories2019-10-28T01:07:21Z<p>Seblu: /* seblu */ Add redundancy</p>
<hr />
<div>[[Category:Package management]]<br />
[[Category:Lists]]<br />
[[ja:非公式ユーザーリポジトリ]]<br />
[[zh-hans:Unofficial user repositories]]<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<br />
This article lists binary repositories freely created and shared by the community, often providing pre-built versions of PKGBUILDS found in the [[AUR]].<br />
<br />
In order to use these repositories, add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories and mirrors]]. If a repository is signed, you must obtain and locally sign the associated key, as explained in [[pacman/Package signing#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman/Tips and tricks#Custom local repository]].<br />
<br />
{{Warning|The official Arch Linux Developers and the Trusted Users do not perform tests of any sort to verify the contents of these repositories. You must decide whether to trust their maintainers and you take full responsibility for any consequences of using any unofficial repository.}}<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page, so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (web site, email address, user page on ArchWiki or the forums, etc.).<br />
* If the repository is of the ''signed'' variety, please include a key-id, possibly using it as the anchor for a link to its keyserver; if the key is not on a keyserver, include a link to the key file.<br />
* Include some short description (e.g. the category of packages provided in the repository).<br />
* If there is a page (either on ArchWiki or external) containing more information about the repository, include a link to it.<br />
* If possible, avoid using comments in code blocks. The formatted description is much more readable. Users who want some comments in their {{ic|pacman.conf}} can easily create it on their own.<br />
<br />
Some repositories may also have packages for architectures beside x86_64. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
== Signed ==<br />
<br />
=== andontie-aur ===<br />
<br />
* '''Maintainer:''' Holly M.<br />
* '''Description:''' A repo containing the most popular AUR packages, as well as some I use all the time. New packages can be requested on the upstream website.<br />
* '''Key-ID:''' EA50C866329648EE<br />
* '''Upstream page:''' https://aur.andontie.net<br />
<br />
{{bc|<nowiki><br />
[andontie-aur]<br />
Server = https://aur.andontie.net/$arch<br />
</nowiki>}}<br />
<br />
=== arcanisrepo ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#arcanis arcanis]<br />
* '''Description:''' A repository with some AUR packages including packages from VCS<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[arcanisrepo]<br />
Server = https://repo.arcanis.me/repo/$arch<br />
</nowiki>}}<br />
<br />
(It is also available via FTP with the same URL.)<br />
<br />
=== arch4edu ===<br />
<br />
* '''Maintainers:''' [https://github.com/petronny Jingbei Li (petronny)], and [https://github.com/arch4edu/arch4edu/graphs/contributors others]<br />
* '''Description:''' arch4edu is a community repository for Archlinux and ArchlinuxARM that strives to provide the latest versions of most software used by college students.<br />
* '''Git Repo:''' https://github.com/arch4edu/arch4edu<br />
* '''Issue tracking:''' https://github.com/arch4edu/arch4edu/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
* '''Key-ID:''' 7931B6D628C8D3BA<br />
<br />
{{bc|<nowiki><br />
[arch4edu]<br />
Server = https://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch<br />
## or other mirrors in https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
</nowiki>}}<br />
<br />
=== archlinuxcn ===<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], [https://www.archlinux.org/people/developers/#fyan Felix Yan (felixonmars, dev)], [https://twitter.com/lilydjwg lilydjwg], [https://www.archlinux.org/people/trusted-users/#farseerfc farseerfc (TU)], and [https://github.com/archlinuxcn/repo/graphs/contributors others]<br />
* '''Description:''' Packages by the Chinese Arch Linux community, all signed. Be aware that i686 packages are not fully maintained and tested, create an issue if you find some problems.<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Issue tracking:''' https://github.com/archlinuxcn/repo/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo (Mostly for users in mainland China), or install ''archlinuxcn-mirrorlist-git'' from the repo.<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other so you do not get errors about PGP signatures. ''archlinuxcn-keyring'' package itself is signed by TU.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
Server = http://repo.archlinuxcn.org/$arch<br />
## or install archlinuxcn-mirrorlist-git and use the mirrorlist<br />
#Include = /etc/pacman.d/archlinuxcn-mirrorlist<br />
</nowiki>}}<br />
<br />
=== archstrike ===<br />
<br />
* '''Maintainer:''' [https://archstrike.org/team The ArchStrike Team]<br />
* '''Description:''' A repository for security professionals and enthusiasts<br />
* '''Upstream page:''' https://archstrike.org/<br />
* '''Key-ID:''' 9D5F1C051D146843CDA4858BDE64825E7CBC0D51<br />
<br />
{{Note|ArchStrike specific instructions can be found at https://archstrike.org/wiki/setup}}<br />
<br />
{{bc|<nowiki><br />
[archstrike]<br />
Server = https://mirror.archstrike.org/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== archzfs ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/minextu Jan Houben (minextu)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/archzfs/archzfs<br />
* '''Key-ID:''' F75D9D76<br />
<br />
{{bc|<nowiki><br />
[archzfs]<br />
Server = http://archzfs.com/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== archzfs-kernels ===<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/endre/ Endre Szabo]<br />
* '''Description:''' Official kernel packages matching the most recent [[# archzfs|ZFS packages]] kernel version dependencies. Use this to be able to upgrade your kernel package every time whilst using ZFS packages above :)<br />
* '''Upstream page:''' https://end.re/archzfs-kernels/<br />
* '''Key-ID:''' Not needed as packages are from core repos and signed officially.<br />
<br />
{{bc|<nowiki><br />
[archzfs-kernels]<br />
Server = http://end.re/$repo/<br />
</nowiki>}}<br />
<br />
=== ashleyis ===<br />
<br />
* '''Maintainer:''' Ashley Towns ([https://aur.archlinux.org/account/ashleyis/ ashleyis])<br />
* '''Description:''' Debug versions of SDL, chipmunk, libtmx and other misc game libraries. also swift-lang and some other AUR packages <br />
* '''Key-ID:''' B1A4D311<br />
<br />
{{bc|<nowiki><br />
[ashleyis]<br />
Server = http://arch.ashleytowns.id.au/repo/$arch<br />
</nowiki>}}<br />
<br />
=== Bennix Repo ===<br />
<br />
* '''Maintainer:''' Ben P. Dorsi-Todaro ([https://techmeout.org Tech Me Out])<br />
* '''Description:''' Packages [http://ben-dorsi-todaro.com/ Ben P. Dorsi-Todaro] uses and are not listed in repos, or packages built by [http://www.bigbenshosting.com/ Big Ben's Web Hosting] <br />
* '''Key-ID:''' F14BB858F6253DA0<br />
<br />
{{bc|<nowiki><br />
[bigben-repo]<br />
SigLevel = Optional TrustAll<br />
Server = http://bennix.net/bigben-repo/<br />
</nowiki>}}<br />
<br />
=== blackeagle-pre-community ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintaned packages before moving to ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[blackeagle-pre-community]<br />
Server = https://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== chaotic-aur ===<br />
<br />
* '''Maintainer:''' [https://github.com/pedrohlc PedroHLC]<br />
* '''Description:''' Auto builds AUR packages the maintainer uses, update them hourly (a few are daily). Hosted in São Carlos, SP, Brazil. Has a mirror in Germany. x86_64 only. Has over 1400 packages.<br />
* '''Key-ID:''' [http://pool.sks-keyservers.net/pks/lookup?search=0x3056513887B78AEB&fingerprint=on&op=index], fingerprint {{ic|EF92 5EA6 0F33 D0CB 85C4 4AD1 3056 5138 87B7 8AEB }}<br />
* '''Note:''' See [https://lonewolf.pedrohlc.com/chaotic-aur maintainer's notes].<br />
{{bc|<nowiki><br />
[chaotic-aur]<br />
Server = http://lonewolf-builder.duckdns.org/$repo/x86_64<br />
Server = http://chaotic.bangl.de/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== catalyst ===<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst]<br />
Server = http://167.86.114.169/arch/catalyst/$arch<br />
</nowiki>}}<br />
<br />
=== catalyst-hd234k ===<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst-hd234k]<br />
Server = http://167.86.114.169/arch/catalyst-hd234k/$arch<br />
</nowiki>}}<br />
<br />
=== city ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#bgyorgy Balló György]<br />
* '''Description:''' Experimental/unpopular packages.<br />
* '''Upstream page:''' https://pkgbuild.com/~bgyorgy/city.html<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[city]<br />
Server = https://pkgbuild.com/~bgyorgy/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== coderkun-aur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with random software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' [https://www.suruatoel.xyz/coderkun.asc https://www.suruatoel.xyz/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = http://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== coderkun-aur-audio ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with audio-related (realtime kernels, lv2-plugins, …) software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' [https://www.suruatoel.xyz/coderkun.key https://www.suruatoel.xyz/coderkun.key]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== devkitpro ===<br />
<br />
* '''Maintainer:''' [https://devkitpro.org/ wintermute]<br />
* '''Description:''' Provides Homebrew toolchains for the Nintendo Wii, Gamecube, DS, GBA, Gamepark gp32 and Nintendo Switch<br />
* '''Upstream page:''' https://devkitpro.org/wiki/devkitPro_pacman<br />
* '''Key-ID:''' F7FD5492264BB9D0<br />
<br />
{{Note|Repository has its own additional keyring at https://downloads.devkitpro.org/devkitpro-keyring-r1.787e015-2-any.pkg.tar.xz.}}<br />
<br />
{{bc|<nowiki><br />
[dkp-libs]<br />
Server = https://downloads.devkitpro.org/packages<br />
[dkp-linux]<br />
Server = https://downloads.devkitpro.org/packages/linux<br />
</nowiki>}}<br />
<br />
=== disastrousaur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/TheGoliath TheGoliath]<br />
* '''Description:''' Well known AUR package managers, many of the most popular packages available on the AUR, as well as those that I favor myself<br />
* '''Upstream page:''' https://mirror.repohost.de/disastrousaur<br />
* '''Key-ID:''' CBAE582A876533FD<br />
* '''Keyfile:''' [https://mirror.repohost.de/disastrousaur.key https://mirror.repohost.de/disastrousaur.key]<br />
{{Warning|disastrousaur and disastrousarm have now been merged under the disastrousaur name Please make sure you have changed the Server URL for your repos accordingly. Builds for other architectures may come out as I got enough time getting things running. }}<br />
{{bc|<nowiki><br />
[disastrousaur]<br />
Server = https://mirror.repohost.de/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== dvzrv ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#dvzrv David Runge]<br />
* '''Description:''' [[Realtime kernel patchset]] (aka. {{AUR|linux-rt}} and {{AUR|linux-rt-lts}})<br />
* '''Key-ID:''' Not needed, as maintainer is a developer/TU<br />
<br />
{{bc|<nowiki><br />
[dvzrv]<br />
Server = https://pkgbuild.com/~dvzrv/repo/$arch<br />
</nowiki>}}<br />
<br />
=== ear ===<br />
<br />
* '''Maintainer:''' [https://wardsegers.be Ward Segers], <br />
* '''Description:''' Editicalu's ArchLinux Repository. Contains precompiled AUR packages (mostly the ones maintained by editicalu)<br />
* '''Homepage:''' https://ear.wardsegers.be/<br />
* '''Upstream page:''' https://gitlab.com/editicalu/ear<br />
* '''Keyfile:''' https://ear.wardsegers.be/signingkey.asc<br />
* '''Key-ID:''' A9C4E7734638ACF8<br />
<br />
{{Note|Instructions can be found at https://ear.wardsegers.be}}<br />
<br />
{{bc|<nowiki><br />
[ear]<br />
Server = https://ear.wardsegers.be/$arch<br />
</nowiki>}}<br />
<br />
=== eatabrick ===<br />
<br />
* '''Maintainer:''' bentglasstube<br />
* '''Description:''' Packages for software written by (and a few just compiled by) bentglasstube.<br />
<br />
{{bc|<nowiki><br />
[eatabrick]<br />
Server = http://repo.eatabrick.org/$arch<br />
</nowiki>}}<br />
<br />
=== eschwartz ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#eschwartz Eli Schwartz]<br />
* '''Description:''' Personal repo with AUR packages and some core packages from git (including glibc and pacman). Contains debug packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[eschwartz]<br />
Server = https://pkgbuild.com/~eschwartz/repo/$arch<br />
</nowiki>}}<br />
<br />
=== ffy00 ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#FFY00 Filipe Laíns]<br />
* '''Description:''' Personal repo. Contains some packages related to the D language.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[ffy00]<br />
Server = https://pkgbuild.com/~ffy00/repo<br />
</nowiki>}}<br />
<br />
=== fusion809 ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/fusion809|Brenton Horne]] (brentonhorne77 at gmail dot com).<br />
* '''Description:''' Provides a few AUR and other packages I like. Like CodeLite and bleeding-edge (latest release within 1 day of its release) GVim (GTK 2 interface).<br />
* '''Package list:''' http://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/<br />
* '''Key-ID:''' 03264DDCD606DC98<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/home_fusion809_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_fusion809_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== grawlinson ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/grawlinson George Rawlinson]<br />
* '''Description:''' AUR packages maintained by the user as well as some experimental packages.<br />
* '''Package list:''' https://repo.nullpointer.io<br />
* '''Key-ID:''' 25ea6900d9ea5ebc<br />
* '''Keyfile:''' https://nullpointer.io/grawlinson.key<br />
<br />
{{bc|<nowiki><br />
[grawlinson]<br />
Server = https://repo.nullpointer.io<br />
</nowiki>}}<br />
<br />
=== gnome-devel ===<br />
<br />
* '''Maintainer:''' [https://plus.google.com/+AndresFernandezperonista Andres Fernandez], [https://plus.google.com/+FernandoFernandezBerel Fernando Fernandez]<br />
* '''Description:''' GNOME development releases. For testing purposes only.<br />
* '''Package list:''' https://softwareperonista.com.ar/repo/archlinux/gnome-devel/x86_64/<br />
* '''Key-ID:''' DDCE9FD63370080B<br />
<br />
{{Note|Must be put above {{ic|[testing]}} repository.}}<br />
<br />
{{bc|<nowiki><br />
[gnome-devel]<br />
Server = https://softwareperonista.com.ar/repo/archlinux/gnome-devel/$arch<br />
</nowiki>}}<br />
<br />
=== herecura ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[herecura]<br />
Server = https://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== holo ===<br />
<br />
* '''Maintainer:''' Stefan Majewsky <holo-pacman@posteo.de> (please prefer to report issues at [https://github.com/majewsky/holo-pacman-repo/issues Github])<br />
* '''Description:''' Packages for [https://holocm.org Holo configuration management], including compatible plugins and tools.<br />
* '''Upstream page:''' https://github.com/majewsky/holo-pacman-repo<br />
* '''Package list:''' https://repo.holocm.org/archlinux/x86_64<br />
* '''Key-ID:''' 0xF7A9C9DC4631BD1A<br />
<br />
{{bc|<nowiki><br />
[holo]<br />
Server = https://repo.holocm.org/archlinux/x86_64<br />
</nowiki>}}<br />
<br />
=== ivasilev ===<br />
<br />
* '''Maintainer:''' [https://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' https://ivasilev.net/pacman<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=vindex&search=0xB77A3C8832838F1F80ADFD7E1D0507B417DAB671 17DAB671]<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = https://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
=== jlk ===<br />
<br />
* '''Maintainer:''' [[User:Lahwaacz|Jakub Klinkovský]]<br />
* '''Description:''' Various packages from the ABS and AUR. Modified packages are in the {{ic|modified}} group.<br />
* '''Upstream page:''' https://jlk.fjfi.cvut.cz/arch/repo/README.html<br />
* '''Key-ID:''' 932BA3FA0C86812A32D1F54DAB5964AEB9FEDDDC<br />
<br />
{{bc|<nowiki><br />
[jlk]<br />
Server = https://jlk.fjfi.cvut.cz/arch/repo<br />
</nowiki>}}<br />
<br />
=== llvm-svn ===<br />
<br />
* '''Maintainer:''' [[User:Kerberizer|Luchesar V. ILIEV (kerberizer)]]<br />
* '''Description:''' [https://aur.archlinux.org/pkgbase/llvm-svn llvm-svn] and [https://aur.archlinux.org/pkgbase/lib32-llvm-svn lib32-llvm-svn] from AUR: the LLVM compiler infrastructure, the Clang frontend, and the tools associated with it<br />
* '''Key-ID:''' [https://sks-keyservers.net/pks/lookup?op=vindex&search=0x76563F75679E4525&fingerprint=on&exact=on 0x76563F75679E4525], fingerprint {{ic|D16C F22D 27D1 091A 841C 4BE9 7656 3F75 679E 4525}}<br />
<br />
{{bc|<nowiki><br />
[llvm-svn]<br />
Server = https://repos.uni-plovdiv.net/archlinux/$repo/$arch<br />
</nowiki>}}<br />
<br />
<br />
=== markzz ===<br />
<br />
* '''Maintainer:''' [[User:Markzz|Mark Weiman (markzz)]]<br />
* '''Description:''' Packages that markzz maintains or uses on the AUR; this includes Linux with the vfio patchset ({{AUR|linux-vfio}} and {{AUR|linux-vfio-lts}}), and packages for analysis of network data.<br />
* '''Key ID:''' DEBB9EE4<br />
<br />
{{Note|If you want to add the key by installing the ''markzz-keyring'' package, temporarily add {{ic|1=SigLevel = Never}} into the repository section.}}<br />
<br />
{{bc|<nowiki><br />
[markzz]<br />
Server = https://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== maximbaz ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#maximbaz Maxim Baz]<br />
* '''Description:''' Personal repo with AUR packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[maximbaz]<br />
Server = https://pkgbuild.com/~maximbaz/repo/<br />
</nowiki>}}<br />
<br />
=== me176c ===<br />
<br />
* '''Maintainer:''' [https://github.com/lambdadroid lambdadroid]<br />
* '''Description:''' Packages for [[ASUS MeMO Pad 7 (ME176C(X))]]<br />
* '''Key-ID:''' 2B1138A8BB59D786A3BF42AAD996DA70572407FB<br />
<br />
{{bc|<nowiki><br />
[me176c]<br />
Server = https://me176c.uber.space/archlinux<br />
</nowiki>}}<br />
<br />
=== miffe ===<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=4059 miffe]<br />
* '''Description:''' AUR packages maintained by miffe, e.g. linux-mainline<br />
* '''Key ID:''' 313F5ABD<br />
<br />
{{bc|<nowiki><br />
[miffe]<br />
Server = https://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
=== mikelpint ===<br />
<br />
* '''Maintainer:''' [[User:Mikelpint|Mikel Pintado (Mikelpint)]]<br />
* '''Description:''' Packages that mikelpint maintains in the AUR.<br />
* '''Key ID:''' 5CA78FC65B189E2B<br />
<br />
{{bc|<nowiki><br />
[mikelpint]<br />
Server = https://mikelpint.github.io/repository/archlinux/repo<br />
</nowiki>}}<br />
<br />
=== Minerva W Science ===<br />
<br />
* '''Maintainer:''' Minerva W<br />
* '''Description:''' [[OpenFOAM]] packages.<br />
* '''Key-ID:''' 3FF21B78117507DA<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/x86_64/home_Minerva_W_Science_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_Minerva_W_Science_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/$arch <br />
</nowiki>}}<br />
<br />
=== mobile ===<br />
<br />
* '''Maintainer:''' [https://keybase.io/farwayer farwayer]<br />
* '''Description:''' React Native and Android development<br />
* '''Upstream page:''' https://keybase.pub/farwayer/arch/mobile/<br />
* '''Key ID:''' 7943315502A936D7<br />
<br />
{{bc|<nowiki><br />
[mobile]<br />
Server = https://farwayer.keybase.pub/arch/$repo<br />
</nowiki>}}<br />
<br />
=== nah ===<br />
<br />
* '''Maintainer:''' [https://yeah.nah.nz phillid]<br />
* '''Description:''' Pre-built versions of the (slow-to-build) graph-tool python libraries, mingw-w64<br />
* '''Key ID:''' 7BF3D17D0884BF5B<br />
<br />
{{bc|<nowiki><br />
[nah]<br />
Server = https://repo.nah.nz/$repo<br />
</nowiki>}}<br />
<br />
=== nickcao ===<br />
<br />
* '''Maintainer:''' [https://nichi.co/about NickCao]<br />
* '''Description:''' Some (useful for some) packages from me, and some aur packages I personally use.<br />
* '''Key-ID:''' 09CC69622E8D4EE343B4E8954D0BA456DF028C15<br />
<br />
{{bc|<nowiki><br />
[nickcao]<br />
Server = https://repo.nichi.co/$arch<br />
</nowiki>}}<br />
<br />
=== origincode ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/OriginCode OriginCode]<br />
* '''Description:''' A few staging or testing packages from [[#archlinuxcn]], and some daily use packages.<br />
* '''Key-ID:''' 0A5BAD445D80C1CC & 62BF97502AE10D22<br />
<br />
{{bc|<nowiki><br />
[origincode]<br />
Server = https://repo.origincode.me/repo/$arch<br />
</nowiki>}}<br />
<br />
=== pkgbuilder ===<br />
<br />
* '''Maintainer:''' [https://chriswarrick.com/ Chris Warrick]<br />
* '''Description:''' A repository for PKGBUILDer, a Python AUR helper.<br />
* '''Upstream page:''' https://github.com/Kwpolska/pkgbuilder<br />
* '''Key-ID:''' 5EAAEA16<br />
<br />
{{bc|<nowiki><br />
[pkgbuilder]<br />
Server = https://pkgbuilder-repo.chriswarrick.com/<br />
</nowiki>}}<br />
<br />
=== post-factum kernels ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/post-factum Oleksandr Natalenko aka post-factum]<br />
* '''Upstream page''': https://gitlab.com/post-factum/pf-kernel/wikis/README<br />
* '''Description''': [[Kernel#Major_patchsets|pf-kernel]] packages by its developer, post-factum<br />
* '''Key-ID:''': 95C357D2AF5DA89D<br />
* '''Keyfile''': https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/x86_64/home_post-factum_kernels_Arch.key<br />
<br />
{{bc|<nowiki><br />
[home_post-factum_kernels_Arch]<br />
Server = https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/$arch<br />
</nowiki>}}<br />
<br />
=== QOwnNotes ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/pbek Patrizio Bekerle] (pbek), QOwnNotes author<br />
* '''Description:''' QOwnNotes is a open source notepad and todo list manager with markdown support and [[ownCloud]] integration.<br />
* '''Key-ID:''' FFC43FC94539B8B0<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/x86_64/home_pbek_QOwnNotes_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_pbek_QOwnNotes_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== qt-debug ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/The-Compiler The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/qutebrowser/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = https://qutebrowser.org/qt-debug/$arch<br />
</nowiki>}}<br />
<br />
=== quarry ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [http://rubygems.org/ Rubygems] packages. See [https://bbs.archlinux.org/viewtopic.php?id=182729 forum announcement] for more information.<br />
* '''Sources:''' https://github.com/anatol/quarry<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = https://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
=== repo-ck ===<br />
<br />
Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
<br />
See [[/Repo-ck]].<br />
<br />
=== seblu ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (linux-seblu-meta, zfs-dkms, spotify, masterpdfeditor, etc).<br />
* '''Key-ID:''' Not required, as maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
SigLevel = Required TrustedOnly<br />
Server = https://al1.seblu.net/$repo/$arch<br />
Server = https://al2.seblu.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== seiichiro ===<br />
<br />
* '''Maintainer:''' [https://www.seiichiro0185.org Stefan Brand (seiichiro0185)]<br />
* '''Description:''' AUR-packages I use frequently<br />
* '''Key-ID:''' 805517CC<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = https://www.seiichiro0185.org/repo/$arch<br />
</nowiki>}}<br />
<br />
=== sergej-repo ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages also available for armv7h.<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[sergej-repo]<br />
Server = http://repo.p5n.pp.ru/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== siosm-aur ===<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages also available in the Arch User Repository, sometimes with minor fixes<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-aur]<br />
Server = http://siosm.fr/repo/$repo/<br />
</nowiki>}}<br />
<br />
=== sublime-text ===<br />
<br />
* '''Maintainer:''' Sublime Text developer<br />
* '''Description:''' Sublime Text editor packages from developer's repository<br />
* '''Upstream page:''' https://www.sublimetext.com/docs/3/linux_repositories.html#pacman<br />
* '''Key-ID:''' 8A8F901A<br />
<br />
{{bc|<nowiki><br />
[sublime-text]<br />
Server = https://download.sublimetext.com/arch/stable/x86_64<br />
</nowiki>}}<br />
<br />
=== subtitlecomposer ===<br />
<br />
* '''Maintainer:''' Mladen Milinkovic (maxrd2)<br />
* '''Description:''' Subtitle Composer stable and nightly builds<br />
* '''Upstream page:''' https://github.com/maxrd2/subtitlecomposer<br />
* '''Key-ID:''' EF9D9B26<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = https://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== trinity ===<br />
<br />
* '''Maintainer:''' Michael J. Manley <mmanley@ntge.net><br />
* '''Description:''' [[Trinity]] Desktop Environment<br />
* '''Key-ID:''' 5F710C1E<br />
<br />
{{bc|<nowiki><br />
[trinity]<br />
Server = https://repo.nasutek.com/arch/contrib/trinity/x86_64<br />
</nowiki>}}<br />
<br />
=== ungoo ===<br />
<br />
* '''Maintainer:''' [[User:Scrumplex|Sefa Eyeoglu]] <contact@scrumplex.net> (https://scrumplex.net)<br />
* '''Description:''' Latest ungoogled-chromium build<br />
* '''Upstream page:''' https://arch.scrumplex.net/ungoo<br />
* '''Key-ID:''' AF1FB107E188CB979A94FD7FC10411294912A422<br />
<br />
{{bc|<nowiki><br />
[ungoo]<br />
Server = https://arch.scrumplex.net/$repo/os/x86_64<br />
</nowiki>}}<br />
<br />
=== valveaur ===<br />
<br />
* '''Maintainer:''' John Schoenick <johns@valvesoftware.com> (https://valvesoftware.com)<br />
* '''Description:''' A repository by Valve Software Providing The Linux-fsync kernel and modules, including the futex-wait-multiple patchset for testing with Proton fsync & Mesa with the ACO compiler patchset. <br />
* '''Upstream page:''' https://steamcommunity.com/linux<br />
* '''Key-ID:''' 8DC2CE3A3D245E64<br />
<br />
{{bc|<nowiki><br />
[valveaur]<br />
Server = http://repo.steampowered.com/arch/valveaur<br />
</nowiki>}}<br />
<br />
=== xuanrui ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/xuanruiqi Xuanrui Qi (xuanruiqi)]<br />
* '''Description:''' xuanruiqi's own packages and frequently-used packages, mainly of interest to functional programmers.<br />
* '''Upstream Page:''' https://www.xuanruiqi.com/linux.html<br />
* '''Key-ID:''' 6E06FBC8<br />
<br />
{{bc|<nowiki><br />
[xuanrui]<br />
Server = https://arch.xuanruiqi.com/repo<br />
</nowiki>}}<br />
<br />
=== xyne-x86_64 ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
# Server = https://xyne.archlinux.ca/repos/xyne # It returns error 404 or 406 (varying). Use the line below:<br />
Server = http://xyne.archlinux.ca/bin/repo.php?file=<br />
</nowiki>}}<br />
<br />
=== home-thaodan ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/Thaodan Thaodan]<br />
* '''Upstream page''': https://gitlab.com/Thaodan/linux-pf<br />
* '''Description''': [[Kernel#Major_patchsets|pf-kernel]] and other packages by pf-kernel fork developer, Thaodan<br />
* '''Gitlab Project''': https://gitlab.com/Thaodan/repo-home-thaodan-repo<br />
* '''Key-ID:''': BBFE2FD421597395E4FC8C8DF6C85FEE79D661A4<br />
<br />
{{bc|<nowiki><br />
[home-thaodan]<br />
Server = https://thaodan.de/public/archlinux/home-thaodan/$arch<br />
</nowiki>}}<br />
<br />
== Unsigned ==<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
=== alucryd ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== alucryd-multilib ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages needed to run Steam without its runtime environment.<br />
<br />
{{bc|<nowiki><br />
[alucryd-multilib]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== andrwe ===<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' contains programs I'm using on many systems<br />
* '''Upstream page:''' http://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/$arch<br />
</nowiki>}}<br />
<br />
=== archgeotux ===<br />
<br />
* '''Maintainer:''' Samuel Mesa<br />
* '''Description:''' Geospatial and geographic information system applications<br />
* '''Upstream page:''' https://archgeotux.sourceforge.io/<br />
<br />
{{bc|<nowiki><br />
[archgeotux]<br />
Server = https://downloads.sourceforge.net/project/archgeotux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxfr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' many interesting packages provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr-kde4 ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' KDE4 packages (plasmoids, themes etc) provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-kde4]<br />
Server = http://archlinuxgr.tiven.org/archlinux-kde4/$arch<br />
</nowiki>}}<br />
<br />
=== craftdestiny ===<br />
<br />
* '''Maintainer:''' [https://craftdestiny.ovh LinuxVieLoisir]<br />
* '''Description:''' A Craft Destiny repository is there to avoid long compilation on some software. It also adds some very useful additional software.<br />
<br />
{{bc|<nowiki><br />
[craftdestiny]<br />
Server = https://miroir.craftdestiny.ovh/archlinux-repo/<br />
</nowiki>}}<br />
<br />
=== dx37essentials ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/DragonX256 DragonX256]<br />
* '''Description:''' Personal repository. Contains packages from AUR, which I using every day.<br />
* '''Git repo:''' https://gitlab.com/DX37/dx37essentials<br />
* '''Upstream page:''' https://dx37.gitlab.io/dx37essentials<br />
<br />
{{bc|<nowiki><br />
[dx37essentials]<br />
Server = https://dx37.gitlab.io/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== heftig ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#heftig Jan Steffens]<br />
* '''Description:''' Includes pulseaudio-git, pavucontrol-git, and firefox-developer-edition<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = https://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
=== jkanetwork ===<br />
<br />
* '''Maintainer:''' kprkpr <kevin01010 at gmail dot com><br />
* '''Maintainer:''' Joselucross <jlgarrido97 at gmail dot com><br />
* '''Description:''' Packages of AUR like pimagizer,stepmania,yaourt,linux-mainline,wps-office,grub-customizer,some IDE.. Open for all that wants to contribute<br />
* '''Upstream page:''' http://repo.jkanetwork.com/<br />
<br />
{{bc|<nowiki><br />
[jkanetwork]<br />
Server = http://repo.jkanetwork.com/repo/$repo/<br />
</nowiki>}}<br />
<br />
=== kodi-devel-prebuilt ===<br />
<br />
* '''Maintainer:''' asm0dey <pavel.finkelshtein+AUR@gmail.com><br />
* '''Description:''' Prebuilt packages of kodi-devel from AUR<br />
* '''Upstream page:''' {{AUR|kodi-devel}}<br />
<br />
{{bc|<nowiki><br />
[kodi-devel-prebuilt]<br />
Server = https://asm0dey.github.io/$repo/$arch<br />
SigLevel = PackageOptional<br />
</nowiki>}}<br />
<br />
=== mesa-git ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#lcarlier Laurent Carlier]<br />
* '''Description:''' Mesa git builds for the ''testing'' and ''multilib-testing'' repositories<br />
<br />
{{bc|<nowiki><br />
[mesa-git]<br />
Server = https://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== Mountain ===<br />
<br />
* '''Maintainer:''' [https://mountainlinux.wordpress.com Minzord]<br />
* '''Description:''' Popular AUR Packages and some Driver Wifi. <br />
<br />
{{bc|<nowiki><br />
[Mountain]<br />
SigLevel = Never<br />
Server = https://mountain-linux.github.io/Mountain/$arch<br />
</nowiki>}}<br />
<br />
=== oracle ===<br />
<br />
* '''Maintainer:''' [[User:Malvineous]]<br />
* '''Description:''' [[Oracle Database client]] and associated tools, built from AUR packages and hosted on AWS S3 using [https://github.com/Malvineous/archlinux-pacman-repo Makefile scripts].<br />
* '''Conditions:''' By using this repository you agree to the [http://www.oracle.com/technetwork/licenses/instant-client-lic-152016.html Oracle Technology Network Development and Distribution License Terms for Instant Client].<br />
{{bc|<nowiki><br />
[oracle]<br />
Server = http://linux.shikadi.net/arch/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== ownstuff ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Martchus Martchus]<br />
* '''Description:''' A lot of packages from the AUR, e.g. a great number of mingw-w64 packages, fonts, Perl modules, tools like {{AUR|tageditor}}, {{AUR|syncthingtray}}, {{AUR|subtitlecomposer}} and {{AUR|qmplay2}}<br />
* '''Upstream page''': https://github.com/Martchus/PKGBUILDs (sources beside the AUR) and https://martchus.no-ip.biz/repoindex (package browser/search)<br />
<br />
{{bc|<nowiki><br />
[ownstuff-testing]<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
<br />
[ownstuff]<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
{{Note|The testing repository is supposed to be used together with the official testing repositories.}}<br />
<br />
=== pantheon ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Repository containing Pantheon-related packages<br />
<br />
{{bc|<nowiki><br />
[pantheon]<br />
Server = https://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== pietma ===<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' http://pietma.com/tag/aur/<br />
<br />
{{bc|<nowiki><br />
[pietma]<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== pnsft-pur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ponsfoot ponsfoot]<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = https://osdn.net/projects/ponsfoot-aur/storage/pur/x86_64/<br />
</nowiki>}}<br />
<br />
=== titanium ===<br />
<br />
* '''Maintainer:''' Pyrerune <pyrerune@gmail.com><br />
* '''Description:''' Repository containing software I develop.<br />
{{bc|<nowiki><br />
[titanium]<br />
Server = https://pyrerune.github.io/titanium/$arch<br />
</nowiki>}}<br />
<br />
=== userrepository ===<br />
<br />
* '''Maintainer:''' [https://twitter.com/brunomiguel Bruno Miguel] <brunoalexandremiguel@gmail.com><br />
* '''Description:''' Repository containing software from AUR<br />
{{bc|<nowiki><br />
[userrepository]<br />
Server = https://userrepository.eu<br />
</nowiki>}}</div>Sebluhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=574874Unofficial user repositories2019-06-08T21:31:38Z<p>Seblu: /* seblu */</p>
<hr />
<div>[[Category:Package management]]<br />
[[Category:Lists]]<br />
[[ja:非公式ユーザーリポジトリ]]<br />
[[zh-hans:Unofficial user repositories]]<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<br />
This article lists binary repositories freely created and shared by the community, often providing pre-built versions of PKGBUILDS found in the [[AUR]].<br />
<br />
In order to use these repositories, add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories and mirrors]]. If a repository is signed, you must obtain and locally sign the associated key, as explained in [[Pacman-key#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman tips#Custom local repository]].<br />
<br />
{{Warning|The official Arch Linux Developers and the Trusted Users do not perform tests of any sort to verify the contents of these repositories. You must decide whether to trust their maintainers and you take full responsibility for any consequences of using any unofficial repository.}}<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page, so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (web site, email address, user page on ArchWiki or the forums, etc.).<br />
* If the repository is of the ''signed'' variety, please include a key-id, possibly using it as the anchor for a link to its keyserver; if the key is not on a keyserver, include a link to the key file.<br />
* Include some short description (e.g. the category of packages provided in the repository).<br />
* If there is a page (either on ArchWiki or external) containing more information about the repository, include a link to it.<br />
* If possible, avoid using comments in code blocks. The formatted description is much more readable. Users who want some comments in their {{ic|pacman.conf}} can easily create it on their own.<br />
<br />
Some repositories may also have packages for architectures beside x86_64. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
== Signed ==<br />
<br />
=== andontie-aur ===<br />
<br />
* '''Maintainer:''' Holly M.<br />
* '''Description:''' A repo containing the most popular AUR packages, as well as some I use all the time. New packages can be requested on the upstream website.<br />
* '''Key-ID:''' EA50C866329648EE<br />
* '''Upstream page:''' https://aur.andontie.net<br />
<br />
{{bc|<nowiki><br />
[andontie-aur]<br />
Server = https://aur.andontie.net/$arch<br />
</nowiki>}}<br />
<br />
=== arcanisrepo ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#arcanis arcanis]<br />
* '''Description:''' A repository with some AUR packages including packages from VCS<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[arcanisrepo]<br />
Server = https://repo.arcanis.me/repo/$arch<br />
</nowiki>}}<br />
<br />
(It is also available via FTP with the same URL.)<br />
<br />
=== arch4edu ===<br />
<br />
* '''Maintainers:''' [https://github.com/petronny Jingbei Li (petronny)], and [https://github.com/arch4edu/arch4edu/graphs/contributors others]<br />
* '''Description:''' arch4edu is a community repository for Archlinux and ArchlinuxARM that strives to provide the latest versions of most software used by college students.<br />
* '''Git Repo:''' https://github.com/arch4edu/arch4edu<br />
* '''Issue tracking:''' https://github.com/arch4edu/arch4edu/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
* '''Key-ID:''' 7931B6D628C8D3BA<br />
<br />
{{bc|<nowiki><br />
[arch4edu]<br />
Server = https://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch<br />
## or other mirrors in https://github.com/arch4edu/arch4edu/wiki/Add-arch4edu-to-your-Archlinux<br />
</nowiki>}}<br />
<br />
=== archlinuxcn ===<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], [https://www.archlinux.org/people/developers/#fyan Felix Yan (felixonmars, dev)], [https://twitter.com/lilydjwg lilydjwg], [https://www.archlinux.org/people/trusted-users/#farseerfc farseerfc (TU)], and [https://github.com/archlinuxcn/repo/graphs/contributors others]<br />
* '''Description:''' Packages by the Chinese Arch Linux community, all signed. Be aware that i686 packages are not fully maintained and tested, create an issue if you find some problems.<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Issue tracking:''' https://github.com/archlinuxcn/repo/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo (Mostly for users in mainland China), or install ''archlinuxcn-mirrorlist-git'' from the repo.<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other so you do not get errors about PGP signatures. ''archlinuxcn-keyring'' package itself is signed by TU.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
Server = http://repo.archlinuxcn.org/$arch<br />
## or use a CDN (beta)<br />
#Server = https://cdn.repo.archlinuxcn.org/$arch<br />
## or install archlinuxcn-mirrorlist-git and use the mirrorlist<br />
#Include = /etc/pacman.d/archlinuxcn-mirrorlist<br />
</nowiki>}}<br />
<br />
=== archstrike ===<br />
<br />
* '''Maintainer:''' [https://archstrike.org/team The ArchStrike Team]<br />
* '''Description:''' A repository for security professionals and enthusiasts<br />
* '''Upstream page:''' https://archstrike.org/<br />
* '''Key-ID:''' 9D5F1C051D146843CDA4858BDE64825E7CBC0D51<br />
<br />
{{Note|ArchStrike specific instructions can be found at https://archstrike.org/wiki/setup}}<br />
<br />
{{bc|<nowiki><br />
[archstrike]<br />
Server = https://mirror.archstrike.org/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== archzfs ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/minextu Jan Houben (minextu)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/archzfs/archzfs<br />
* '''Key-ID:''' F75D9D76<br />
<br />
{{bc|<nowiki><br />
[archzfs]<br />
Server = http://archzfs.com/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== ashleyis ===<br />
<br />
* '''Maintainer:''' Ashley Towns ([https://aur.archlinux.org/account/ashleyis/ ashleyis])<br />
* '''Description:''' Debug versions of SDL, chipmunk, libtmx and other misc game libraries. also swift-lang and some other AUR packages <br />
* '''Key-ID:''' B1A4D311<br />
<br />
{{bc|<nowiki><br />
[ashleyis]<br />
Server = http://arch.ashleytowns.id.au/repo/$arch<br />
</nowiki>}}<br />
<br />
=== Bennix Repo ===<br />
<br />
* '''Maintainer:''' Ben P. Dorsi-Todaro ([https://techmeout.org Tech Me Out])<br />
* '''Description:''' Packages [http://ben-dorsi-todaro.com/ Ben P. Dorsi-Todaro] uses and aren't listed in repos, or packages built by [http://www.bigbenshosting.com/ Big Ben's Web Hosting] <br />
* '''Key-ID:''' F14BB858F6253DA0<br />
<br />
{{bc|<nowiki><br />
[bigben-repo]<br />
SigLevel = Optional TrustAll<br />
Server = http://bennix.net/bigben-repo/<br />
</nowiki>}}<br />
<br />
=== blackeagle-pre-community ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintaned packages before moving to ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[blackeagle-pre-community]<br />
Server = https://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== chaotic-aur ===<br />
<br />
* '''Maintainer:''' [https://github.com/pedrohlc PedroHLC]<br />
* '''Description:''' Auto builds AUR packages the maintainer uses, update them hourly (a few are daily). Hosted in São Carlos, SP, Brazil. x86_64 only.<br />
* '''Key-ID:''' [http://pool.sks-keyservers.net/pks/lookup?search=0x3056513887B78AEB&fingerprint=on&op=index], fingerprint {{ic|EF92 5EA6 0F33 D0CB 85C4 4AD1 3056 5138 87B7 8AEB }}<br />
* '''Note:''' See [https://lonewolf.pedrohlc.com/chaotic-aur maintainer's notes].<br />
{{bc|<nowiki><br />
[chaotic-aur]<br />
Server = http://lonewolf-builder.duckdns.org/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== catalyst ===<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst]<br />
Server = https://167.86.114.169/arch/catalyst/$arch<br />
</nowiki>}}<br />
<br />
=== catalyst-hd234k ===<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst-hd234k]<br />
Server = https://167.86.114.169/arch/catalyst-hd234k/$arch<br />
</nowiki>}}<br />
<br />
=== city ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#bgyorgy Balló György]<br />
* '''Description:''' Experimental/unpopular packages.<br />
* '''Upstream page:''' https://pkgbuild.com/~bgyorgy/city.html<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[city]<br />
Server = https://pkgbuild.com/~bgyorgy/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== coderkun-aur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with random software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' [https://www.suruatoel.xyz/coderkun.asc https://www.suruatoel.xyz/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = http://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== coderkun-aur-audio ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with audio-related (realtime kernels, lv2-plugins, …) software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' [https://www.suruatoel.xyz/coderkun.key https://www.suruatoel.xyz/coderkun.key]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== devkitpro ===<br />
<br />
* '''Maintainer:''' [https://devkitpro.org/ wintermute]<br />
* '''Description:''' Provides Homebrew toolchains for the Nintendo Wii, Gamecube, DS, GBA, Gamepark gp32 and Nintendo Switch<br />
* '''Upstream page:''' https://devkitpro.org/wiki/devkitPro_pacman<br />
* '''Key-ID:''' F7FD5492264BB9D0<br />
<br />
{{Note|Repository has its own additional keyring at https://downloads.devkitpro.org/devkitpro-keyring-r1.787e015-2-any.pkg.tar.xz.}}<br />
<br />
{{bc|<nowiki><br />
[dkp-libs]<br />
Server = https://downloads.devkitpro.org/packages<br />
[dkp-linux]<br />
Server = https://downloads.devkitpro.org/packages/linux<br />
</nowiki>}}<br />
<br />
=== disastrousaur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/TheGoliath TheGoliath]<br />
* '''Description:''' Well known AUR package managers, many of the most popular packages available on the AUR, as well as those that I favor myself<br />
* '''Upstream page:''' https://mirror.repohost.de/disastrousaur<br />
* '''Key-ID:''' CBAE582A876533FD<br />
* '''Keyfile:''' [https://mirror.repohost.de/disastrousaur.key https://mirror.repohost.de/disastrousaur.key]<br />
{{Warning|disastrousaur and disastrousarm are undergoing restructuring (e.g. support for the aarch64 architecture and more). The repository itself will be available again under the disastrousaur name in the next week. Please make sure you have the URL changed accordingly as shown below. Sorry for causing any inconvenience. }}<br />
{{bc|<nowiki><br />
[disastrousaur]<br />
Server = https://mirror.repohost.de/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== dvzrv ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#dvzrv David Runge]<br />
* '''Description:''' [[Realtime kernel patchset]] (aka. {{AUR|linux-rt}} and {{AUR|linux-rt-lts}})<br />
* '''Key-ID:''' Not needed, as maintainer is a developer/TU<br />
<br />
{{bc|<nowiki><br />
[dvzrv]<br />
Server = https://pkgbuild.com/~dvzrv/repo/$arch<br />
</nowiki>}}<br />
<br />
=== eatabrick ===<br />
<br />
* '''Maintainer:''' bentglasstube<br />
* '''Description:''' Packages for software written by (and a few just compiled by) bentglasstube.<br />
<br />
{{bc|<nowiki><br />
[eatabrick]<br />
Server = http://repo.eatabrick.org/$arch<br />
</nowiki>}}<br />
<br />
=== eschwartz ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#eschwartz Eli Schwartz]<br />
* '''Description:''' Personal repo with AUR packages and some core packages from git (including glibc and pacman). Contains debug packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[eschwartz]<br />
Server = https://pkgbuild.com/~eschwartz/repo/$arch<br />
</nowiki>}}<br />
<br />
=== ffy00 ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#FFY00 Filipe Laíns]<br />
* '''Description:''' Personal repo. Contains some packages related to the D language.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[ffy00]<br />
Server = https://pkgbuild.com/~ffy00/repo<br />
</nowiki>}}<br />
<br />
=== fusion809 ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/fusion809|Brenton Horne]] (brentonhorne77 at gmail dot com).<br />
* '''Description:''' Provides a few AUR and other packages I like. Like CodeLite and bleeding-edge (latest release within 1 day of its release) GVim (GTK+2 interface).<br />
* '''Package list:''' http://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/<br />
* '''Key-ID:''' 03264DDCD606DC98<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/home_fusion809_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_fusion809_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== gnome-devel ===<br />
<br />
* '''Maintainer:''' [https://plus.google.com/+AndresFernandezperonista Andres Fernandez], [https://plus.google.com/+FernandoFernandezBerel Fernando Fernandez]<br />
* '''Description:''' GNOME development releases. For testing purposes only.<br />
* '''Package list:''' https://softwareperonista.com.ar/repo/archlinux/gnome-devel/x86_64/<br />
* '''Key-ID:''' DDCE9FD63370080B<br />
<br />
{{Note|Must be put above {{ic|[testing]}} repository.}}<br />
<br />
{{bc|<nowiki><br />
[gnome-devel]<br />
Server = https://softwareperonista.com.ar/repo/archlinux/gnome-devel/$arch<br />
</nowiki>}}<br />
<br />
=== herecura ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[herecura]<br />
Server = https://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== holo ===<br />
<br />
* '''Maintainer:''' Stefan Majewsky <holo-pacman@posteo.de> (please prefer to report issues at [https://github.com/majewsky/holo-pacman-repo/issues Github])<br />
* '''Description:''' Packages for [https://holocm.org Holo configuration management], including compatible plugins and tools.<br />
* '''Upstream page:''' https://github.com/majewsky/holo-pacman-repo<br />
* '''Package list:''' https://repo.holocm.org/archlinux/x86_64<br />
* '''Key-ID:''' 0xF7A9C9DC4631BD1A<br />
<br />
{{bc|<nowiki><br />
[holo]<br />
Server = https://repo.holocm.org/archlinux/x86_64<br />
</nowiki>}}<br />
<br />
=== ivasilev ===<br />
<br />
* '''Maintainer:''' [https://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' https://ivasilev.net/pacman<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=vindex&search=0xB77A3C8832838F1F80ADFD7E1D0507B417DAB671 17DAB671]<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = https://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
=== jlk ===<br />
<br />
* '''Maintainer:''' [[User:Lahwaacz|Jakub Klinkovský]]<br />
* '''Description:''' Various packages from the ABS and AUR. Modified packages are in the {{ic|modified}} group.<br />
* '''Upstream page:''' https://jlk.fjfi.cvut.cz/arch/repo/README.html<br />
* '''Key-ID:''' 932BA3FA0C86812A32D1F54DAB5964AEB9FEDDDC<br />
<br />
{{bc|<nowiki><br />
[jlk]<br />
Server = https://jlk.fjfi.cvut.cz/arch/repo<br />
</nowiki>}}<br />
<br />
=== llvm-svn ===<br />
<br />
* '''Maintainer:''' [[User:Kerberizer|Luchesar V. ILIEV (kerberizer)]]<br />
* '''Description:''' [https://aur.archlinux.org/pkgbase/llvm-svn llvm-svn] and [https://aur.archlinux.org/pkgbase/lib32-llvm-svn lib32-llvm-svn] from AUR: the LLVM compiler infrastructure, the Clang frontend, and the tools associated with it<br />
* '''Key-ID:''' [https://sks-keyservers.net/pks/lookup?op=vindex&search=0x76563F75679E4525&fingerprint=on&exact=on 0x76563F75679E4525], fingerprint {{ic|D16C F22D 27D1 091A 841C 4BE9 7656 3F75 679E 4525}}<br />
<br />
{{bc|<nowiki><br />
[llvm-svn]<br />
Server = https://repos.uni-plovdiv.net/archlinux/$repo/$arch<br />
</nowiki>}}<br />
=== lmrepo ===<br />
<br />
* '''Maintainer:''' [https://lukaszmoskala.pl Łukasz Moskała]<br />
* '''Description:''' AUR packages that I find usefull, including [https://aur.archlinux.org/packages/openrazer-meta openrazer]<br />
* '''Key-ID:''' [http://pool.sks-keyservers.net/pks/lookup?search=0x226981382B7115B2DF696B43C1F0BCD7CB0353DA&fingerprint=on&op=index 0x226981382B7115B2DF696B43C1F0BCD7CB0353DA], fingerprint {{ic|2269 8138 2B71 15B2 DF69 6B43 C1F0 BCD7 CB03 53DA}}<br />
<br />
{{bc|<nowiki><br />
[lmrepo]<br />
Server = http://arch.lukaszmoskala.pl<br />
</nowiki>}}<br />
=== markzz ===<br />
<br />
* '''Maintainer:''' [[User:Markzz|Mark Weiman (markzz)]]<br />
* '''Description:''' Packages that markzz maintains or uses on the AUR; this includes Linux with the vfio patchset ({{AUR|linux-vfio}} and {{AUR|linux-vfio-lts}}), and packages for analysis of network data.<br />
* '''Key ID:''' DEBB9EE4<br />
<br />
{{Note|If you want to add the key by installing the ''markzz-keyring'' package, temporarily add {{ic|1=SigLevel = Never}} into the repository section.}}<br />
<br />
{{bc|<nowiki><br />
[markzz]<br />
Server = https://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== maximbaz ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#maximbaz Maxim Baz]<br />
* '''Description:''' Personal repo with AUR packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[maximbaz]<br />
Server = https://pkgbuild.com/~maximbaz/repo/<br />
</nowiki>}}<br />
<br />
=== me176c ===<br />
<br />
* '''Maintainer:''' [https://github.com/lambdadroid lambdadroid]<br />
* '''Description:''' Packages for [[ASUS MeMO Pad 7 (ME176C(X))]]<br />
* '''Key-ID:''' 2B1138A8BB59D786A3BF42AAD996DA70572407FB<br />
<br />
{{bc|<nowiki><br />
[me176c]<br />
Server = https://me176c.uber.space/archlinux<br />
</nowiki>}}<br />
<br />
=== miffe ===<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=4059 miffe]<br />
* '''Description:''' AUR packages maintained by miffe, e.g. linux-mainline<br />
* '''Key ID:''' 313F5ABD<br />
<br />
{{bc|<nowiki><br />
[miffe]<br />
Server = https://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
=== mikelpint ===<br />
<br />
* '''Maintainer:''' [[User:Mikelpint|Mikel Pintado (Mikelpint)]]<br />
* '''Description:''' Packages that mikelpint maintains in the AUR.<br />
* '''Key ID:''' 5CA78FC65B189E2B<br />
<br />
{{bc|<nowiki><br />
[mikelpint]<br />
Server = https://mikelpint.github.io/repository/archlinux/repo<br />
</nowiki>}}<br />
<br />
=== Minerva W Science ===<br />
<br />
* '''Maintainer:''' Minerva W<br />
* '''Description:''' [[OpenFOAM]] packages.<br />
* '''Key-ID:''' 3FF21B78117507DA<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/x86_64/home_Minerva_W_Science_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_Minerva_W_Science_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/$arch <br />
</nowiki>}}<br />
<br />
=== mobile ===<br />
<br />
* '''Maintainer:''' [https://keybase.io/farwayer farwayer]<br />
* '''Description:''' React Native and Android development<br />
* '''Upstream page:''' https://keybase.pub/farwayer/arch/mobile/<br />
* '''Key ID:''' 7943315502A936D7<br />
<br />
{{bc|<nowiki><br />
[mobile]<br />
Server = https://farwayer.keybase.pub/arch/$repo<br />
</nowiki>}}<br />
<br />
=== nah ===<br />
<br />
* '''Maintainer:''' [https://yeah.nah.nz phillid]<br />
* '''Description:''' Pre-built versions of the (slow-to-build) graph-tool python libraries, mingw-w64<br />
* '''Key ID:''' 7BF3D17D0884BF5B<br />
<br />
{{bc|<nowiki><br />
[nah]<br />
Server = https://repo.nah.nz/$repo<br />
</nowiki>}}<br />
<br />
=== origincode ===<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/OriginCode OriginCode]<br />
* '''Description:''' A few staging or testing packages from [[#archlinuxcn]], and some daily use packages.<br />
* '''Key-ID:''' 0A5BAD445D80C1CC & 62BF97502AE10D22<br />
<br />
{{bc|<nowiki><br />
[origincode]<br />
Server = https://repo.origincode.me/repo/$arch<br />
</nowiki>}}<br />
<br />
=== pkgbuilder ===<br />
<br />
* '''Maintainer:''' [https://chriswarrick.com/ Chris Warrick]<br />
* '''Description:''' A repository for PKGBUILDer, a Python AUR helper.<br />
* '''Upstream page:''' https://github.com/Kwpolska/pkgbuilder<br />
* '''Key-ID:''' 5EAAEA16<br />
<br />
{{bc|<nowiki><br />
[pkgbuilder]<br />
Server = https://pkgbuilder-repo.chriswarrick.com/<br />
</nowiki>}}<br />
<br />
=== post-factum kernels ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/post-factum Oleksandr Natalenko aka post-factum]<br />
* '''Upstream page''': https://gitlab.com/post-factum/pf-kernel/wikis/README<br />
* '''Description''': [[Kernel#Major_patchsets|pf-kernel]] packages by its developer, post-factum<br />
* '''Key-ID:''': 95C357D2AF5DA89D<br />
* '''Keyfile''': https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/x86_64/home_post-factum_kernels_Arch.key<br />
<br />
{{bc|<nowiki><br />
[home_post-factum_kernels_Arch]<br />
Server = https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/$arch<br />
</nowiki>}}<br />
<br />
=== QOwnNotes ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/pbek Patrizio Bekerle] (pbek), QOwnNotes author<br />
* '''Description:''' QOwnNotes is a open source notepad and todo list manager with markdown support and [[ownCloud]] integration.<br />
* '''Key-ID:''' FFC43FC94539B8B0<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/x86_64/home_pbek_QOwnNotes_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_pbek_QOwnNotes_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== qt-debug ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/The-Compiler The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/qutebrowser/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = https://qutebrowser.org/qt-debug/$arch<br />
</nowiki>}}<br />
<br />
=== quarry ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [http://rubygems.org/ Rubygems] packages. See [https://bbs.archlinux.org/viewtopic.php?id=182729 forum announcement] for more information.<br />
* '''Sources:''' https://github.com/anatol/quarry<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = https://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
=== repo-ck ===<br />
<br />
Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
<br />
See [[/Repo-ck]].<br />
<br />
=== seblu ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (linux-seblu-meta, zfs-dkms, spotify, masterpdfeditor, etc).<br />
* '''Key-ID:''' Not required, as maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
Server = https://al.seblu.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== seiichiro ===<br />
<br />
* '''Maintainer:''' [https://www.seiichiro0185.org Stefan Brand (seiichiro0185)]<br />
* '''Description:''' AUR-packages I use frequently<br />
* '''Key-ID:''' 805517CC<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = https://www.seiichiro0185.org/repo/$arch<br />
</nowiki>}}<br />
<br />
=== sergej-repo ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages also available for armv7h.<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[sergej-repo]<br />
Server = http://repo.p5n.pp.ru/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== siosm-aur ===<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages also available in the Arch User Repository, sometimes with minor fixes<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-aur]<br />
Server = http://siosm.fr/repo/$repo/<br />
</nowiki>}}<br />
<br />
=== sublime-text ===<br />
<br />
* '''Maintainer:''' Sublime Text developer<br />
* '''Description:''' Sublime Text editor packages from developer's repository<br />
* '''Upstream page:''' https://www.sublimetext.com/docs/3/linux_repositories.html#pacman<br />
* '''Key-ID:''' 8A8F901A<br />
<br />
{{bc|<nowiki><br />
[sublime-text]<br />
Server = https://download.sublimetext.com/arch/stable/x86_64<br />
</nowiki>}}<br />
<br />
=== subtitlecomposer ===<br />
<br />
* '''Maintainer:''' Mladen Milinkovic (maxrd2)<br />
* '''Description:''' Subtitle Composer stable and nightly builds<br />
* '''Upstream page:''' https://github.com/maxrd2/subtitlecomposer<br />
* '''Key-ID:''' EF9D9B26<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = https://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== trinity ===<br />
<br />
* '''Maintainer:''' Michael Manley <mmanley@nasutek.com><br />
* '''Description:''' [[Trinity]] Desktop Environment<br />
* '''Key-ID:''' 65A4AC99<br />
<br />
{{bc|<nowiki><br />
[trinity]<br />
Server = https://repo.nasutek.com/arch/contrib/trinity/x86_64<br />
</nowiki>}}<br />
<br />
=== ungoo ===<br />
<br />
* '''Maintainer:''' [[User:Scrumplex|Sefa Eyeoglu]] <contact@scrumplex.net> (https://scrumplex.net)<br />
* '''Description:''' Latest ungoogled-chromium build<br />
* '''Upstream page:''' https://arch.scrumplex.net/ungoo<br />
* '''Key-ID:''' AF1FB107E188CB979A94FD7FC10411294912A422<br />
<br />
{{bc|<nowiki><br />
[ungoo]<br />
Server = https://arch.scrumplex.net/$repo/os/x86_64<br />
</nowiki>}}<br />
<br />
=== Webkit2Gtk-unstable ===<br />
<br />
* '''Maintainer:''' [[User:Mrmariusz|Mariusz Wojcik]]<br />
* '''Description:''' Latest Webkit2Gtk build for early adopters.<br />
* '''Upstream Page:''' https://webkitgtk.org/<br />
* '''Key-ID:''' 346854B5<br />
<br />
{{bc|<nowiki><br />
[home_mrmariusz_ArchLinux]<br />
Server = https://download.opensuse.org/repositories/home:/mrmariusz/ArchLinux/$arch<br />
</nowiki>}}<br />
<br />
=== xyne-x86_64 ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
# Server = https://xyne.archlinux.ca/repos/xyne # It returns error 404 or 406 (varying). Use the line below:<br />
Server = http://xyne.archlinux.ca/bin/repo.php?file=<br />
</nowiki>}}<br />
<br />
== Unsigned ==<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
=== alucryd ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== alucryd-multilib ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages needed to run Steam without its runtime environment.<br />
<br />
{{bc|<nowiki><br />
[alucryd-multilib]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== andrwe ===<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' contains programs I'm using on many systems<br />
* '''Upstream page:''' http://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/$arch<br />
</nowiki>}}<br />
<br />
<br />
=== archgeotux ===<br />
<br />
* '''Maintainer:''' Samuel Mesa<br />
* '''Description:''' Geospatial and geographic information system applications<br />
* '''Upstream page:''' https://archgeotux.sourceforge.io/<br />
<br />
{{bc|<nowiki><br />
[archgeotux]<br />
Server = https://downloads.sourceforge.net/project/archgeotux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxfr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' many interesting packages provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr-kde4 ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' KDE4 packages (plasmoids, themes etc) provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-kde4]<br />
Server = http://archlinuxgr.tiven.org/archlinux-kde4/$arch<br />
</nowiki>}}<br />
<br />
=== craftdestiny ===<br />
<br />
* '''Maintainer:''' [https://craftdestiny.ovh LinuxVieLoisir]<br />
* '''Description:''' A Craft Destiny repository is there to avoid long compilation on some software. It also adds some very useful additional software.<br />
<br />
{{bc|<nowiki><br />
[craftdestiny]<br />
Server = https://miroir.craftdestiny.ovh/archlinux-repo/<br />
</nowiki>}}<br />
<br />
=== dx37essentials ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/DragonX256 DragonX256]<br />
* '''Description:''' Personal repository. Contains packages from AUR, which I using every day.<br />
* '''Git repo:''' https://gitlab.com/DX37/dx37essentials<br />
* '''Upstream page:''' https://dx37.gitlab.io/dx37essentials<br />
<br />
{{bc|<nowiki><br />
[dx37essentials]<br />
Server = https://dx37.gitlab.io/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== heftig ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#heftig Jan Steffens]<br />
* '''Description:''' Includes pulseaudio-git, pavucontrol-git, and firefox-developer-edition<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = https://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
=== home-thaodan ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/Thaodan Thaodan]<br />
* '''Upstream page''': https://gitlab.com/Thaodan/linux-pf<br />
* '''Description''': [[Kernel#Major_patchsets|pf-kernel]] and other packages by pf-kernel fork developer, Thaodan<br />
<br />
{{bc|<nowiki><br />
[home-thaodan]<br />
Server = https://thaodan.de/home/bidar/home-thaodan/$arch<br />
</nowiki>}}<br />
<br />
=== jkanetwork ===<br />
<br />
* '''Maintainer:''' kprkpr <kevin01010 at gmail dot com><br />
* '''Maintainer:''' Joselucross <jlgarrido97 at gmail dot com><br />
* '''Description:''' Packages of AUR like pimagizer,stepmania,yaourt,linux-mainline,wps-office,grub-customizer,some IDE.. Open for all that wants to contribute<br />
* '''Upstream page:''' http://repo.jkanetwork.com/<br />
<br />
{{bc|<nowiki><br />
[jkanetwork]<br />
Server = http://repo.jkanetwork.com/repo/$repo/<br />
</nowiki>}}<br />
<br />
=== mesa-git ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#lcarlier Laurent Carlier]<br />
* '''Description:''' Mesa git builds for the ''testing'' and ''multilib-testing'' repositories<br />
<br />
{{bc|<nowiki><br />
[mesa-git]<br />
Server = https://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== minzord===<br />
<br />
* '''Maintainer:''' Minzord<br />
* '''Description:''' A Minzord repository is there to avoid long compilation on some software. It also adds some very useful additional software.<br />
<br />
{{bc|<nowiki><br />
[minzord]<br />
Server = https://minzordos.000webhostapp.com/Repo/<br />
</nowiki>}}<br />
<br />
=== oracle ===<br />
<br />
* '''Maintainer:''' [[User:Malvineous]]<br />
* '''Description:''' [[Oracle Database client]] and associated tools, built from AUR packages and hosted on AWS S3 using [https://github.com/Malvineous/archlinux-pacman-repo Makefile scripts].<br />
* '''Conditions:''' By using this repository you agree to the [http://www.oracle.com/technetwork/licenses/instant-client-lic-152016.html Oracle Technology Network Development and Distribution License Terms for Instant Client].<br />
{{bc|<nowiki><br />
[oracle]<br />
Server = http://linux.shikadi.net/arch/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== ownstuff ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Martchus Martchus]<br />
* '''Description:''' A lot of packages from the AUR, e.g. a great number of mingw-w64 packages, fonts, tools like [https://aur.archlinux.org/packages/tageditor Tag Editor], [https://aur.archlinux.org/packages/syncthingtray Syncthing Tray] and [https://aur.archlinux.org/packages/subtitlecomposer Subtitle Composer]<br />
* '''Upstream page''': https://github.com/Martchus/PKGBUILDs (sources beside the AUR) and https://martchus.no-ip.biz/repoindex (package browser/search)<br />
<br />
{{bc|<nowiki><br />
[ownstuff-testing]<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
<br />
[ownstuff]<br />
Server = https://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
Server = https://ftp.f3l.de/~martchus/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== pantheon ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Repository containing Pantheon-related packages<br />
<br />
{{bc|<nowiki><br />
[pantheon]<br />
Server = https://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== pietma ===<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' http://pietma.com/tag/aur/<br />
<br />
{{bc|<nowiki><br />
[pietma]<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== pnsft-pur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ponsfoot ponsfoot]<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = https://osdn.net/projects/ponsfoot-aur/storage/pur/x86_64/<br />
</nowiki>}}</div>Sebluhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=563970Unofficial user repositories2019-01-19T19:34:58Z<p>Seblu: /* seblu */ Update to https</p>
<hr />
<div>[[Category:Package management]]<br />
[[Category:Lists]]<br />
[[ja:非公式ユーザーリポジトリ]]<br />
[[zh-hans:Unofficial user repositories]]<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<br />
This article lists binary repositories freely created and shared by the community, often providing pre-built versions of PKGBUILDS found in the [[AUR]].<br />
<br />
In order to use these repositories, add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories and mirrors]]. If a repository is signed, you must obtain and locally sign the associated key, as explained in [[Pacman-key#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman tips#Custom local repository]].<br />
<br />
{{Warning|The official Arch Linux Developers and the Trusted Users do not perform tests of any sort to verify the contents of these repositories. You must decide whether to trust their maintainers and you take full responsibility for any consequences of using any unofficial repository.}}<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page, so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (web site, email address, user page on ArchWiki or the forums, etc.).<br />
* If the repository is of the ''signed'' variety, please include a key-id, possibly using it as the anchor for a link to its keyserver; if the key is not on a keyserver, include a link to the key file.<br />
* Include some short description (e.g. the category of packages provided in the repository).<br />
* If there is a page (either on ArchWiki or external) containing more information about the repository, include a link to it.<br />
* If possible, avoid using comments in code blocks. The formatted description is much more readable. Users who want some comments in their {{ic|pacman.conf}} can easily create it on their own.<br />
<br />
Some repositories may also have packages for architectures beside x86_64. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
== Signed ==<br />
<br />
=== arcanisrepo ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#arcanis arcanis]<br />
* '''Description:''' A repository with some AUR packages including packages from VCS<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[arcanisrepo]<br />
Server = https://repo.arcanis.me/repo/$arch<br />
</nowiki>}}<br />
<br />
(It is also available via FTP with the same URL.)<br />
<br />
=== archlinuxcn ===<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], [https://www.archlinux.org/people/developers/#fyan Felix Yan (felixonmars, dev)], [https://twitter.com/lilydjwg lilydjwg], [https://www.archlinux.org/people/trusted-users/#farseerfc farseerfc (TU)], and [https://github.com/archlinuxcn/repo/graphs/contributors others]<br />
* '''Description:''' Packages by the Chinese Arch Linux community, all signed. Be aware that i686 packages are not fully maintained and tested, create an issue if you find some problems.<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Issue tracking:''' https://github.com/archlinuxcn/repo/issues for packaging issues, out-of-date notifications, package requests, and related questions<br />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo (Mostly for users in mainland China), or install ''archlinuxcn-mirrorlist-git'' from the repo.<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other so you do not get errors about PGP signatures. ''archlinuxcn-keyring'' package itself is signed by TU.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
Server = http://repo.archlinuxcn.org/$arch<br />
## or use a CDN (beta)<br />
#Server = https://cdn.repo.archlinuxcn.org/$arch<br />
## or install archlinuxcn-mirrorlist-git and use the mirrorlist<br />
#Include = /etc/pacman.d/archlinuxcn-mirrorlist<br />
</nowiki>}}<br />
<br />
=== archstrike ===<br />
<br />
* '''Maintainer:''' [https://archstrike.org/team The ArchStrike Team]<br />
* '''Description:''' A repository for security professionals and enthusiasts<br />
* '''Upstream page:''' https://archstrike.org/<br />
* '''Key-ID:''' 9D5F1C051D146843CDA4858BDE64825E7CBC0D51<br />
<br />
{{Note|ArchStrike specific instructions can be found at https://archstrike.org/wiki/setup}}<br />
<br />
{{bc|<nowiki><br />
[archstrike]<br />
Server = https://mirror.archstrike.org/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== archzfs ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/minextu Jan Houben (minextu)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/archzfs/archzfs<br />
* '''Key-ID:''' F75D9D76<br />
<br />
{{bc|<nowiki><br />
[archzfs]<br />
Server = http://archzfs.com/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== ashleyis ===<br />
<br />
* '''Maintainer:''' Ashley Towns ([https://aur.archlinux.org/account/ashleyis/ ashleyis])<br />
* '''Description:''' Debug versions of SDL, chipmunk, libtmx and other misc game libraries. also swift-lang and some other AUR packages <br />
* '''Key-ID:''' B1A4D311<br />
<br />
{{bc|<nowiki><br />
[ashleyis]<br />
Server = http://arch.ashleytowns.id.au/repo/$arch<br />
</nowiki>}}<br />
<br />
=== blackeagle-pre-community ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintaned packages before moving to ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[blackeagle-pre-community]<br />
Server = https://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== chaotic-aur ===<br />
<br />
* '''Maintainer:''' [https://github.com/pedrohlc PedroHLC]<br />
* '''Description:''' Auto builds AUR packages the maintainer uses, update them hourly (a few are daily). Hosted in São Carlos, SP, Brazil. x86_64 only.<br />
* '''Key-ID:''' [http://pool.sks-keyservers.net/pks/lookup?search=0x3056513887B78AEB&fingerprint=on&op=index], fingerprint {{ic|EF92 5EA6 0F33 D0CB 85C4 4AD1 3056 5138 87B7 8AEB }}<br />
* '''Note:''' See [http://lonewolf-builder.duckdns.org/chaotic-aur/about.txt maintainer's notes].<br />
{{bc|<nowiki><br />
[chaotic-aur]<br />
Server = http://lonewolf-builder.duckdns.org/$repo/x86_64<br />
Server = http://lonewolf-ipfs.pedrohlc.com/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== catalyst ===<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst]<br />
Server = https://mirror.hactar.xyz/Vi0L0/catalyst/$arch<br />
</nowiki>}}<br />
<br />
=== catalyst-hd234k ===<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst-hd234k]<br />
Server = https://mirror.hactar.xyz/Vi0L0/catalyst-hd234k/$arch<br />
</nowiki>}}<br />
<br />
=== city ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#bgyorgy Balló György]<br />
* '''Description:''' Experimental/unpopular packages.<br />
* '''Upstream page:''' https://pkgbuild.com/~bgyorgy/city.html<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[city]<br />
Server = https://pkgbuild.com/~bgyorgy/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== coderkun-aur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with random software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' [https://www.suruatoel.xyz/coderkun.asc https://www.suruatoel.xyz/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = http://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== coderkun-aur-audio ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with audio-related (realtime kernels, lv2-plugins, …) software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.suruatoel.xyz/arch<br />
* '''Key-ID:''' 39E27199A6BEE374<br />
* '''Keyfile:''' [https://www.suruatoel.xyz/coderkun.key https://www.suruatoel.xyz/coderkun.key]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.suruatoel.xyz/$repo/$arch/<br />
</nowiki>}}<br />
<br />
=== devkitpro ===<br />
<br />
* '''Maintainer:''' [https://devkitpro.org/ wintermute]<br />
* '''Description:''' Provides Homebrew toolchains for the Nintendo Wii, Gamecube, DS, GBA, Gamepark gp32 and Nintendo Switch<br />
* '''Upstream page:''' https://devkitpro.org/wiki/devkitPro_pacman<br />
* '''Key-ID:''' F7FD5492264BB9D0<br />
<br />
{{Note|Repository has its own additional keyring at https://downloads.devkitpro.org/devkitpro-keyring-r1.787e015-2-any.pkg.tar.xz.}}<br />
<br />
{{bc|<nowiki><br />
[dkp-libs]<br />
Server = https://downloads.devkitpro.org/packages<br />
[dkp-linux]<br />
Server = https://downloads.devkitpro.org/packages<br />
</nowiki>}}<br />
<br />
=== disastrousaur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/TheGoliath/ TheGoliath]<br />
* '''Description:''' AUR packages mostly useful for daily use. Supporting package and database signing.<br />
* '''Upstream page:''' https://mirror.repohost.de/disastrousaur<br />
* '''Key-ID:''' CBAE582A876533FD<br />
* '''Keyfile:''' [https://mirror.xdfr.de/disastrousaur.key https://mirror.xdfr.de/disastrousaur.key]<br />
<br />
{{bc|<nowiki><br />
[disastrousaur]<br />
Server = https://mirror.repohost.de/$repo<br />
</nowiki>}}<br />
<br />
=== eatabrick ===<br />
<br />
* '''Maintainer:''' bentglasstube<br />
* '''Description:''' Packages for software written by (and a few just compiled by) bentglasstube.<br />
<br />
{{bc|<nowiki><br />
[eatabrick]<br />
Server = http://repo.eatabrick.org/$arch<br />
</nowiki>}}<br />
<br />
=== eschwartz ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#eschwartz Eli Schwartz]<br />
* '''Description:''' Personal repo with AUR packages and some core packages from git (including glibc and pacman). Contains debug packages.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[eschwartz]<br />
Server = https://pkgbuild.com/~eschwartz/repo/$arch<br />
</nowiki>}}<br />
<br />
=== ffy00 ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#FFY00 Filipe Laíns]<br />
* '''Description:''' Personal repo. Contains some packages related to the D language.<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[ffy00]<br />
Server = https://pkgbuild.com/~ffy00/repo<br />
</nowiki>}}<br />
<br />
=== fusion809 ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/fusion809|Brenton Horne]] (brentonhorne77 at gmail dot com).<br />
* '''Description:''' Provides a few AUR and other packages I like. Like CodeLite and bleeding-edge (latest release within 1 day of its release) GVim (GTK+2 interface).<br />
* '''Package list:''' http://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/<br />
* '''Key-ID:''' 03264DDCD606DC98<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/x86_64/home_fusion809_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_fusion809_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/fusion809/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== herecura ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[herecura]<br />
Server = https://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== holo ===<br />
<br />
* '''Maintainer:''' Stefan Majewsky <holo-pacman@posteo.de> (please prefer to report issues at [https://github.com/majewsky/holo-pacman-repo/issues Github])<br />
* '''Description:''' Packages for [https://holocm.org Holo configuration management], including compatible plugins and tools.<br />
* '''Upstream page:''' https://github.com/majewsky/holo-pacman-repo<br />
* '''Package list:''' https://repo.holocm.org/archlinux/x86_64<br />
* '''Key-ID:''' 0xF7A9C9DC4631BD1A<br />
<br />
{{bc|<nowiki><br />
[holo]<br />
Server = https://repo.holocm.org/archlinux/x86_64<br />
</nowiki>}}<br />
<br />
=== ivasilev ===<br />
<br />
* '''Maintainer:''' [https://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' https://ivasilev.net/pacman<br />
* '''Key-ID:''' [https://pgp.mit.edu/pks/lookup?op=vindex&search=0xB77A3C8832838F1F80ADFD7E1D0507B417DAB671 17DAB671]<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = https://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
=== jlk ===<br />
<br />
* '''Maintainer:''' [[User:Lahwaacz|Jakub Klinkovský]]<br />
* '''Description:''' Various packages from the ABS and AUR. Modified packages are in the {{ic|modified}} group.<br />
* '''Upstream page:''' https://jlk.fjfi.cvut.cz/arch/repo/README.html<br />
* '''Key-ID:''' 932BA3FA0C86812A32D1F54DAB5964AEB9FEDDDC<br />
<br />
{{bc|<nowiki><br />
[jlk]<br />
Server = https://jlk.fjfi.cvut.cz/arch/repo<br />
</nowiki>}}<br />
<br />
=== linux-macbook ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/m3thodic Tony Lambiris]<br />
* '''Description:''' AUR builds for the linux-macbook kernel by its developer, m3thodic<br />
* '''Upstream page:''' https://aur.archlinux.org/pkgbase/linux-macbook/<br />
* '''Key-ID:''' A55A1B6C098962D84AE9B57016A33C9959A40DED<br />
<br />
{{bc|<nowiki><br />
[linux-macbook]<br />
Server = http://libpcap.net/repo/linux-macbook<br />
</nowiki>}}<br />
<br />
=== llvm-svn ===<br />
<br />
* '''Maintainer:''' [[User:Kerberizer|Luchesar V. ILIEV (kerberizer)]]<br />
* '''Description:''' [https://aur.archlinux.org/pkgbase/llvm-svn llvm-svn] and [https://aur.archlinux.org/pkgbase/lib32-llvm-svn lib32-llvm-svn] from AUR: the LLVM compiler infrastructure, the Clang frontend, and the tools associated with it<br />
* '''Key-ID:''' [https://sks-keyservers.net/pks/lookup?op=vindex&search=0x76563F75679E4525&fingerprint=on&exact=on 0x76563F75679E4525], fingerprint {{ic|D16C F22D 27D1 091A 841C 4BE9 7656 3F75 679E 4525}}<br />
<br />
{{bc|<nowiki><br />
[llvm-svn]<br />
Server = https://repos.uni-plovdiv.net/archlinux/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== markzz ===<br />
<br />
* '''Maintainer:''' [[User:Markzz|Mark Weiman (markzz)]]<br />
* '''Description:''' Packages that markzz maintains or uses on the AUR; this includes Linux with the vfio patchset ({{AUR|linux-vfio}} and {{AUR|linux-vfio-lts}}), and packages for analysis of network data.<br />
* '''Key ID:''' DEBB9EE4<br />
<br />
{{Note|If you want to add the key by installing the ''markzz-keyring'' package, temporarily add {{ic|1=SigLevel = Never}} into the repository section.}}<br />
<br />
{{bc|<nowiki><br />
[markzz]<br />
Server = https://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== maximbaz ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#maximbaz Maxim Baz]<br />
* '''Description:''' Personal repo with AUR packages (notably {{AUR|chromium-vaapi}}).<br />
* '''Key-ID:''' 12C87A28FEAC6B20<br />
<br />
{{bc|<nowiki><br />
[maximbaz]<br />
Server = https://pkgbuild.com/~maximbaz/repo/<br />
</nowiki>}}<br />
<br />
=== miffe ===<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=4059 miffe]<br />
* '''Description:''' AUR packages maintained by miffe, e.g. linux-mainline<br />
* '''Key ID:''' 313F5ABD<br />
<br />
{{bc|<nowiki><br />
[miffe]<br />
Server = https://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
=== mikelpint ===<br />
<br />
* '''Maintainer:''' [[User:Mikelpint|Mikel Pintado (Mikelpint)]]<br />
* '''Description:''' Packages that mikelpint maintains in the AUR.<br />
* '''Key ID:''' 5CA78FC65B189E2B<br />
<br />
{{bc|<nowiki><br />
[mikelpint]<br />
Server = https://mikelpint.github.io/repository/archlinux/repo<br />
</nowiki>}}<br />
<br />
=== Minerva W Science ===<br />
<br />
* '''Maintainer:''' Minerva W<br />
* '''Description:''' [[OpenFOAM]] packages.<br />
* '''Key-ID:''' 3FF21B78117507DA<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/x86_64/home_Minerva_W_Science_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_Minerva_W_Science_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/$arch <br />
</nowiki>}}<br />
<br />
=== mobile ===<br />
<br />
* '''Maintainer:''' [https://keybase.io/farwayer farwayer]<br />
* '''Description:''' React Native and Android development<br />
* '''Upstream page:''' https://keybase.pub/farwayer/arch/mobile/<br />
* '''Key ID:''' 7943315502A936D7<br />
<br />
{{bc|<nowiki><br />
[mobile]<br />
Server = https://farwayer.keybase.pub/arch/$repo<br />
</nowiki>}}<br />
<br />
=== nah ===<br />
<br />
* '''Maintainer:''' [https://yeah.nah.nz phillid]<br />
* '''Description:''' Pre-built versions of the (slow-to-build) graph-tool python libraries, mingw-w64<br />
* '''Key ID:''' 7BF3D17D0884BF5B<br />
<br />
{{bc|<nowiki><br />
[nah]<br />
Server = https://repo.nah.nz/$repo<br />
</nowiki>}}<br />
<br />
=== pkgbuilder ===<br />
<br />
* '''Maintainer:''' [https://chriswarrick.com/ Chris Warrick]<br />
* '''Description:''' A repository for PKGBUILDer, a Python AUR helper.<br />
* '''Upstream page:''' https://github.com/Kwpolska/pkgbuilder<br />
* '''Key-ID:''' 5EAAEA16<br />
<br />
{{bc|<nowiki><br />
[pkgbuilder]<br />
Server = https://pkgbuilder-repo.chriswarrick.com/<br />
</nowiki>}}<br />
<br />
=== post-factum kernels ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/post-factum Oleksandr Natalenko aka post-factum]<br />
* '''Upstream page''': https://gitlab.com/post-factum/pf-kernel/wikis/README<br />
* '''Description''': [[Kernel#Major_patchsets|pf-kernel]] packages by its developer, post-factum<br />
* '''Key-ID:''': 95C357D2AF5DA89D<br />
* '''Keyfile''': https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/x86_64/home_post-factum_kernels_Arch.key<br />
<br />
{{bc|<nowiki><br />
[home_post-factum_kernels_Arch]<br />
Server = https://download.opensuse.org/repositories/home:/post-factum:/kernels/Arch/$arch<br />
</nowiki>}}<br />
<br />
=== QOwnNotes ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/pbek Patrizio Bekerle] (pbek), QOwnNotes author<br />
* '''Description:''' QOwnNotes is a open source notepad and todo list manager with markdown support and [[ownCloud]] integration.<br />
* '''Key-ID:''' FFC43FC94539B8B0<br />
* '''Keyfile:''' https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/x86_64/home_pbek_QOwnNotes_Arch_Extra.key<br />
<br />
{{bc|<nowiki><br />
[home_pbek_QOwnNotes_Arch_Extra]<br />
Server = https://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
=== qt-debug ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/The-Compiler The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/qutebrowser/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = https://qutebrowser.org/qt-debug/$arch<br />
</nowiki>}}<br />
<br />
=== quarry ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [http://rubygems.org/ Rubygems] packages. See [https://bbs.archlinux.org/viewtopic.php?id=182729 forum announcement] for more information.<br />
* '''Sources:''' https://github.com/anatol/quarry<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = https://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
=== repo-ck ===<br />
<br />
Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
<br />
See [[/Repo-ck]].<br />
<br />
=== seblu ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (linux-seblu-meta, virtualbox-ext-oracle, spotify, masterpdfeditor, yaourt, zfs-dkms, etc).<br />
* '''Key-ID:''' Not required, as maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
Server = https://al.seblu.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== seiichiro ===<br />
<br />
* '''Maintainer:''' [https://www.seiichiro0185.org Stefan Brand (seiichiro0185)]<br />
* '''Description:''' AUR-packages I use frequently<br />
* '''Key-ID:''' 805517CC<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = https://www.seiichiro0185.org/repo/$arch<br />
</nowiki>}}<br />
<br />
=== sergej-repo ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages also available for armv7h.<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[sergej-repo]<br />
Server = http://repo.p5n.pp.ru/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== siosm-aur ===<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages also available in the Arch User Repository, sometimes with minor fixes<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-aur]<br />
Server = http://siosm.fr/repo/$repo/<br />
</nowiki>}}<br />
<br />
=== sublime-text ===<br />
<br />
* '''Maintainer:''' Sublime Text developer<br />
* '''Description:''' Sublime Text editor packages from developer's repository<br />
* '''Upstream page:''' https://www.sublimetext.com/docs/3/linux_repositories.html#pacman<br />
* '''Key-ID:''' 8A8F901A<br />
<br />
{{bc|<nowiki><br />
[sublime-text]<br />
Server = https://download.sublimetext.com/arch/stable/x86_64<br />
</nowiki>}}<br />
<br />
=== subtitlecomposer ===<br />
<br />
* '''Maintainer:''' Mladen Milinkovic (maxrd2)<br />
* '''Description:''' Subtitle Composer stable and nightly builds<br />
* '''Upstream page:''' https://github.com/maxrd2/subtitlecomposer<br />
* '''Key-ID:''' EF9D9B26<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = https://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== trinity ===<br />
<br />
* '''Maintainer:''' Michael Manley <mmanley@nasutek.com><br />
* '''Description:''' [[Trinity]] Desktop Environment<br />
* '''Key-ID:''' 65A4AC99<br />
<br />
{{bc|<nowiki><br />
[trinity]<br />
Server = https://repo.nasutek.com/arch/contrib/trinity/x86_64<br />
</nowiki>}}<br />
<br />
=== Webkit2Gtk-unstable ===<br />
<br />
* '''Maintainer:''' [[User:Mrmariusz|Mariusz Wojcik]]<br />
* '''Description:''' Latest Webkit2Gtk build for early adopters.<br />
* '''Upstream Page:''' https://webkitgtk.org/<br />
* '''Key-ID:''' 346854B5<br />
<br />
{{bc|<nowiki><br />
[home_mrmariusz_ArchLinux]<br />
Server = https://download.opensuse.org/repositories/home:/mrmariusz/ArchLinux/$arch<br />
</nowiki>}}<br />
<br />
=== xyne-x86_64 ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
Server = https://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
== Unsigned ==<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
=== alucryd ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== alucryd-multilib ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages needed to run Steam without its runtime environment.<br />
<br />
{{bc|<nowiki><br />
[alucryd-multilib]<br />
Server = https://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
=== andrwe ===<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' contains programs I'm using on many systems<br />
* '''Upstream page:''' http://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/$arch<br />
</nowiki>}}<br />
<br />
=== archgeotux ===<br />
<br />
* '''Maintainer:''' Samuel Mesa<br />
* '''Description:''' Geospatial and geographic information system applications<br />
* '''Upstream page:''' https://archgeotux.sourceforge.io/<br />
<br />
{{bc|<nowiki><br />
[archgeotux]<br />
Server = https://downloads.sourceforge.net/project/archgeotux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxfr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' many interesting packages provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
=== archlinuxgr-kde4 ===<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' KDE4 packages (plasmoids, themes etc) provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-kde4]<br />
Server = http://archlinuxgr.tiven.org/archlinux-kde4/$arch<br />
</nowiki>}}<br />
<br />
=== craftdestiny ===<br />
<br />
* '''Maintainer:''' [https://craftdestiny.ovh LinuxVieLoisir]<br />
* '''Description:''' A Craft Destiny repository is there to avoid long compilation on some software. It also adds some very useful additional software.<br />
<br />
{{bc|<nowiki><br />
[craftdestiny]<br />
Server = https://miroir.craftdestiny.ovh/archlinux-repo/<br />
</nowiki>}}<br />
<br />
=== dx37essentials ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/DragonX256 DragonX256]<br />
* '''Description:''' Personal repository. Contains packages from AUR, which I using every day.<br />
* '''Git repo:''' https://gitlab.com/DX37/dx37essentials<br />
* '''Upstream page:''' https://dx37.gitlab.io/dx37essentials<br />
<br />
{{bc|<nowiki><br />
[dx37essentials]<br />
Server = https://dx37.gitlab.io/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== heftig ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/developers/#heftig Jan Steffens]<br />
* '''Description:''' Includes pulseaudio-git, pavucontrol-git, and firefox-developer-edition<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = https://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
=== home-thaodan ===<br />
<br />
* '''Maintainer''': [https://aur.archlinux.org/account/Thaodan Thaodan]<br />
* '''Upstream page''': https://gitlab.com/Thaodan/linux-pf<br />
* '''Description''': [[Kernel#Major_patchsets|pf-kernel]] and other packages by pf-kernel fork developer, Thaodan<br />
<br />
{{bc|<nowiki><br />
[home-thaodan]<br />
Server = https://thaodan.de/home/bidar/home-thaodan/$arch<br />
</nowiki>}}<br />
<br />
=== jkanetwork ===<br />
<br />
* '''Maintainer:''' kprkpr <kevin01010 at gmail dot com><br />
* '''Maintainer:''' Joselucross <jlgarrido97 at gmail dot com><br />
* '''Description:''' Packages of AUR like pimagizer,stepmania,yaourt,linux-mainline,wps-office,grub-customizer,some IDE.. Open for all that wants to contribute<br />
* '''Upstream page:''' http://repo.jkanetwork.com/<br />
<br />
{{bc|<nowiki><br />
[jkanetwork]<br />
Server = http://repo.jkanetwork.com/repo/$repo/<br />
</nowiki>}}<br />
<br />
=== mesa-git ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#lcarlier Laurent Carlier]<br />
* '''Description:''' Mesa git builds for the ''testing'' and ''multilib-testing'' repositories<br />
<br />
{{bc|<nowiki><br />
[mesa-git]<br />
Server = https://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== minzord===<br />
<br />
* '''Maintainer:''' Minzord<br />
* '''Description:''' A Minzord repository is there to avoid long compilation on some software. It also adds some very useful additional software.<br />
<br />
{{bc|<nowiki><br />
[minzord]<br />
Server = https://minzordos.000webhostapp.com/Repo/<br />
</nowiki>}}<br />
<br />
=== ownstuff ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/Martchus Martchus]<br />
* '''Description:''' A lot of packages from the AUR, eg. a great number of mingw-w64 packages, fonts, tools like [https://aur.archlinux.org/packages/tageditor Tag Editor], [https://aur.archlinux.org/packages/syncthingtray Syncthing Tray] and [https://aur.archlinux.org/packages/subtitlecomposer Subtitle Composer]<br />
* '''Upstream page''': https://github.com/Martchus/PKGBUILDs (sources beside the AUR) and https://martchus.no-ip.biz/repoindex (package browser/search)<br />
<br />
{{bc|<nowiki><br />
[ownstuff]<br />
Server = http://martchus.no-ip.biz/repo/arch/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
=== pantheon ===<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#alucryd Maxime Gauduin]<br />
* '''Description:''' Repository containing Pantheon-related packages<br />
<br />
{{bc|<nowiki><br />
[pantheon]<br />
Server = https://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
=== pietma ===<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' http://pietma.com/tag/aur/<br />
<br />
{{bc|<nowiki><br />
[pietma]<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}<br />
<br />
=== pnsft-pur ===<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ponsfoot ponsfoot]<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = https://osdn.net/projects/ponsfoot-aur/storage/pur/x86_64/<br />
</nowiki>}}</div>Sebluhttps://wiki.archlinux.org/index.php?title=User:Seblu&diff=563969User:Seblu2019-01-19T19:26:37Z<p>Seblu: </p>
<hr />
<div><br />
= Me =<br />
* My profile: https://www.archlinux.org/people/developers/#seblu<br />
* My website: https://seblu.net<br />
* My twitter: https://twitter.com/seblu84<br />
* My twister: @seblu<br />
* My GPG key fingerprint: B81B 051F 2D7F C867 AAFF 35A5 8DBD 63B8 2072 D77A<br />
<br />
= Packaging =<br />
<br />
== My repositories ==<br />
<br />
=== seblu repository ===<br />
<br />
Add this in your '''/etc/pacman.conf'''<br />
<pre><br />
[seblu]<br />
Server = https://al.seblu.net/$repo/$arch<br />
SigLevel = Required TrustedOnly<br />
</pre><br />
<br />
PKGBUILD can be found [https://git.seblu.net/archlinux here].<br />
<br />
=== ARM repository ===<br />
<br />
Instruction on a separate page: [[Arch_Linux_Archive]]<br />
<br />
== My Guidelines ==<br />
<br />
This is my guidelines that I try to apply in my packaging duties. <strike>Of course, everyone should follow them.</strike><br />
They come from my years of packaging for Archlinux.<br />
<br />
# Put all needed dependencies. You should not assume that another package has the same requirement and do the job for you. It can be dropped without notifying you.<br />
# Don't use versioned deps. That's a sad, but shared way of doing in Arch.<br />
# Quotes variables with spaces. In particular '''$scrdir''', '''$pkgdir'''. There is no allowed space in ''$pkgname'' and ''$pkgver''.<br />
# Use single quotes when there is no needs for double or back quotes. (e.g 'x86_64')<br />
# Don't '''cd''' in ''$srcdir'' at the beginning of '''prepare()''', '''build()''', '''package()'''. <u>It's a defacto standard</u>.<br />
# Don't use '''..''' (double dots) inside a path. In particular don't <code>cd "$srcdir"/linux; cd ..</code>. You will not go where you expect if ''linux'' was a symlink. <br />
# Use ''install'' instead of ''cp'' whenever possible.<br />
# Only <u>lowercase</u> in '''$pkgname'''<br />
# If upstream provides a signature, use it!<br />
# Never put '''base-devel''' as a dependency.<br />
# Don't use tab, use spaces.<br />
# No trailing whitespaces.<br />
# Comments are free.<br />
# Run '''namcap''' on your PKGBUILD and on your built package.<br />
# Run '''checkpkg''' after bumping a package to a new version.<br />
# Don't put informal messages in '''post_install()''' functions. Only mandatory messages. Howtos go into the wiki.<br />
# If you ship systemd unit files, name it lowercase.<br />
<br />
= FAQ =<br />
<br />
Here is '''my''' answers.<br />
<br />
== Should a daemon be automatically restarted when it fails? ==<br />
<br />
In a nutshell, this should be the last resort and not the default.<br />
<br />
The expected behavior for daemon is to do its job without crashing, and exit properly when it finishes.<br />
Unfortunately, bugs and others cosmic dusts cause software to misbehave.<br />
<br />
The question of making a daemon automatically restart will never come with a reliable one, but with a shaky daemon, more than once.<br />
And if it's not expensive to restart it automatically, maybe it's also a good idea to do the same for all daemons. Here we are.<br />
<br />
''From my experience'', most crashing '''daemons require user intervention before falling back to work'''.<br />
It can be caused by a misconfiguration (e.g upgrades, typo, ...), a programming error (leading to a segfault), missing libraries (packaging error), etc.<br />
So restarting it automatically, doesn't help much. Quite the opposite, it causes unneeded resources consumption (logs, forks) and make the debugging more difficult.<br />
<br />
'''Even worse''', restarting a daemon which fail may '''hides a degraded service'''.<br />
For example, when the service crashes for 20% of your customers because they have a back-quote in their login, or, it's damn slow because it restart twice before completing a task. There is plenty of errors that can be masked by a non-failing service, that's why '''a sane default is to not restart it''' when its creator didn't handle the case.<br />
<br />
Of course, there is poorly coded daemons, which require to be restarted frequently because they crash.<br />
In that case, auto-restart is an option. We have better things to do than restarting them manually.<br />
But this is not a default, '''it's targeted to a particular daemon''', which crash for a known reason. <br />
<br />
Some corner case may be found in vital daemons (e.g sshd), <u>which are required to get back the control of your host</u>.<br />
When you loose it, you cannot troubleshoot. In this case, restarting it may be a comforting behavior, albeit...<br />
<br />
As a consequence, I suggest to '''choose a default which doesn't try to make a non working daemon looks like a working one'''.<br />
If the administrator want it, let him override it.<br />
<br />
== Should I run Archlinux on my server? ==<br />
<br />
'''Yes''' it's a good idea to run Archlinux on your server but read this before:<br />
<br />
https://mailman.archlinux.org/pipermail/arch-general/2013-July/033791.html<br />
<br />
== How should I manage official kernel updates? ==<br />
<br />
=== Upgrading the kernel, you are in trouble! ===<br />
<br />
During its upgrade, the official kernel package (called '''linux''') removes (or replaces) modules in ''/lib/modules/$(uname -r)''. The running kernel ''$(uname -r)'' is still the same.<br />
As a consequence, you (or udev) cannot load kernel modules anymore. This may lead to difficult to track issues.<br />
So, '''you <u>should</u> reboot''' on your new kernel '''after each update'''.<br />
<br />
This is boring because:<br />
* This will downtime your service;<br />
* You're in the middle of something;<br />
* You don't need the new kernel now;<br />
* There is several updates by month;<br />
* It breaks your uptime. :)<br />
<br />
=== Reboot into your new kernel, you may go to hell ===<br />
<br />
Unadvertised users run only one Linux kernel on their computers. After an upgrade and a reboot, the computer might be "broken". This can be a consequence of a bug directly inside the kernel, or an error during the upgrade process.<br />
<br />
Archlinux official '''linux''' package doesn't provide you a correct solution for this. You workaround this by using the '''linux-lts''' kernel package to have a backup kernel (if your hardware is supported).<br />
<br />
=== A new hope (Episode IV) ===<br />
<br />
To fix the two previous issues, I suggest you a different approach.<br />
You could use a versioned kernel package like '''linux-seblu-3.x.y''' (you can find a copy in [https://seblu.net/a/seblu/x86_64/ my repository]).<br />
No package upgrades broke the module ABI and new versions are in a separate package.<br />
<br />
== Why [http://gist.io/5660494 ''Never use -Sy when installing!''] is wrong? ==<br />
<br />
''In a nutshell'': [http://gist.io/5660494 this article] misguides you.<br />
<br />
=== No versioned package ===<br />
<br />
The real issue behind all of this: '''We try to avoid version dependencies in Archlinux'''. Not that ''pacman'' cannot manage them.<br />
But developers decide to not use them when there is no strong needs. Mainly to:<br />
* Simplify the package maintenance (reduce the workload / the quantity of bug / etc);<br />
* Speed-up dependency computation.<br />
<br />
It's like that far before I joined the project, so don't blame me!<br />
<br />
Consequences: there is no way to know which packages needs to be updated when you upgrade another one.<br />
<br />
The safest and recommended way is: <u>When you upgrade or install a package, be sure that your whole system is up-to-date</u>. If not, some dependencies can be broken, like a library, a module, a database format, etc.<br />
<br />
In all case, be sure to have an upgraded system before report any issue in the bug report system.<br />
<br />
=== Why are you misguided? ===<br />
# Installing a new package don't pull the last version of an already installed library. When there is a soname bump, only the new installed software should be broken, and not your entire system. The running service should be fine. There are exceptions when versioned dependencies are used.<br />
# The cause is not the -y option. It's because your system was not upgraded before you install a new package.<br />
# That doesn't mean that you must upgrade the whole system each time you install a package. ''But if you don't understand why, do it.''<br />
# When you are using AUR packages or when your favorite desktop sync the database frequently (to show you the number of upgrades), you may break your system with -S. The -y option will not protect you.<br />
# Firefox is not linked against readline.<br />
# Core programs (bash, pacman, systemd) use versioned deps to prevent an unbootable operating system.<br />
# A loudly broken soft is better than a silent broken soft. Because you fix it quickly.<br />
# '''Upgrading the whole system is a dangerous operations''' (especially on servers). New software version could be bugged! A default policy to upgrade the whole system for each new installed package to prevent broken package is crazy.<br />
# Archlinux is not crap, it's targeted to power users.</div>Sebluhttps://wiki.archlinux.org/index.php?title=User:Seblu&diff=563968User:Seblu2019-01-19T19:25:16Z<p>Seblu: We now have ssl on al.seblu.net</p>
<hr />
<div><br />
= Me =<br />
* My profile: https://www.archlinux.org/people/developers/#seblu<br />
* My website: https://seblu.net<br />
* My twitter: https://twitter.com/seblu84<br />
* My twister: @seblu<br />
* My GPG key fingerprint: B81B 051F 2D7F C867 AAFF 35A5 8DBD 63B8 2072 D77A<br />
<br />
= Packaging =<br />
<br />
== My repositories ==<br />
<br />
=== seblu repository ===<br />
<br />
Add this in your '''/etc/pacman.conf'''<br />
<pre><br />
[seblu]<br />
Server = https://al.seblu.net/$repo/$arch<br />
SigLevel = Required TrustedOnly<br />
</pre><br />
<br />
PKGBUILD can be found [https://gitlab.seblu.net/archlinux/packages here].<br />
<br />
=== ARM repository ===<br />
<br />
Instruction on a separate page: [[ARM]]<br />
<br />
== My Guidelines ==<br />
<br />
This is my guidelines that I try to apply in my packaging duties. <strike>Of course, everyone should follow them.</strike><br />
They come from my years of packaging for Archlinux.<br />
<br />
# Put all needed dependencies. You should not assume that another package has the same requirement and do the job for you. It can be dropped without notifying you.<br />
# Don't use versioned deps. That's a sad, but shared way of doing in Arch.<br />
# Quotes variables with spaces. In particular '''$scrdir''', '''$pkgdir'''. There is no allowed space in ''$pkgname'' and ''$pkgver''.<br />
# Use single quotes when there is no needs for double or back quotes. (e.g 'x86_64')<br />
# Don't '''cd''' in ''$srcdir'' at the beginning of '''prepare()''', '''build()''', '''package()'''. <u>It's a defacto standard</u>.<br />
# Don't use '''..''' (double dots) inside a path. In particular don't <code>cd "$srcdir"/linux; cd ..</code>. You will not go where you expect if ''linux'' was a symlink. <br />
# Use ''install'' instead of ''cp'' whenever possible.<br />
# Only <u>lowercase</u> in '''$pkgname'''<br />
# If upstream provides a signature, use it!<br />
# Never put '''base-devel''' as a dependency.<br />
# Don't use tab, use spaces.<br />
# No trailing whitespaces.<br />
# Comments are free.<br />
# Run '''namcap''' on your PKGBUILD and on your built package.<br />
# Run '''checkpkg''' after bumping a package to a new version.<br />
# Don't put informal messages in '''post_install()''' functions. Only mandatory messages. Howtos go into the wiki.<br />
# If you ship systemd unit files, name it lowercase.<br />
<br />
= FAQ =<br />
<br />
Here is '''my''' answers.<br />
<br />
== Should a daemon be automatically restarted when it fails? ==<br />
<br />
In a nutshell, this should be the last resort and not the default.<br />
<br />
The expected behavior for daemon is to do its job without crashing, and exit properly when it finishes.<br />
Unfortunately, bugs and others cosmic dusts cause software to misbehave.<br />
<br />
The question of making a daemon automatically restart will never come with a reliable one, but with a shaky daemon, more than once.<br />
And if it's not expensive to restart it automatically, maybe it's also a good idea to do the same for all daemons. Here we are.<br />
<br />
''From my experience'', most crashing '''daemons require user intervention before falling back to work'''.<br />
It can be caused by a misconfiguration (e.g upgrades, typo, ...), a programming error (leading to a segfault), missing libraries (packaging error), etc.<br />
So restarting it automatically, doesn't help much. Quite the opposite, it causes unneeded resources consumption (logs, forks) and make the debugging more difficult.<br />
<br />
'''Even worse''', restarting a daemon which fail may '''hides a degraded service'''.<br />
For example, when the service crashes for 20% of your customers because they have a back-quote in their login, or, it's damn slow because it restart twice before completing a task. There is plenty of errors that can be masked by a non-failing service, that's why '''a sane default is to not restart it''' when its creator didn't handle the case.<br />
<br />
Of course, there is poorly coded daemons, which require to be restarted frequently because they crash.<br />
In that case, auto-restart is an option. We have better things to do than restarting them manually.<br />
But this is not a default, '''it's targeted to a particular daemon''', which crash for a known reason. <br />
<br />
Some corner case may be found in vital daemons (e.g sshd), <u>which are required to get back the control of your host</u>.<br />
When you loose it, you cannot troubleshoot. In this case, restarting it may be a comforting behavior, albeit...<br />
<br />
As a consequence, I suggest to '''choose a default which doesn't try to make a non working daemon looks like a working one'''.<br />
If the administrator want it, let him override it.<br />
<br />
== Should I run Archlinux on my server? ==<br />
<br />
'''Yes''' it's a good idea to run Archlinux on your server but read this before:<br />
<br />
https://mailman.archlinux.org/pipermail/arch-general/2013-July/033791.html<br />
<br />
== How should I manage official kernel updates? ==<br />
<br />
=== Upgrading the kernel, you are in trouble! ===<br />
<br />
During its upgrade, the official kernel package (called '''linux''') removes (or replaces) modules in ''/lib/modules/$(uname -r)''. The running kernel ''$(uname -r)'' is still the same.<br />
As a consequence, you (or udev) cannot load kernel modules anymore. This may lead to difficult to track issues.<br />
So, '''you <u>should</u> reboot''' on your new kernel '''after each update'''.<br />
<br />
This is boring because:<br />
* This will downtime your service;<br />
* You're in the middle of something;<br />
* You don't need the new kernel now;<br />
* There is several updates by month;<br />
* It breaks your uptime. :)<br />
<br />
=== Reboot into your new kernel, you may go to hell ===<br />
<br />
Unadvertised users run only one Linux kernel on their computers. After an upgrade and a reboot, the computer might be "broken". This can be a consequence of a bug directly inside the kernel, or an error during the upgrade process.<br />
<br />
Archlinux official '''linux''' package doesn't provide you a correct solution for this. You workaround this by using the '''linux-lts''' kernel package to have a backup kernel (if your hardware is supported).<br />
<br />
=== A new hope (Episode IV) ===<br />
<br />
To fix the two previous issues, I suggest you a different approach.<br />
You could use a versioned kernel package like '''linux-seblu-3.x.y''' (you can find a copy in [https://seblu.net/a/seblu/x86_64/ my repository]).<br />
No package upgrades broke the module ABI and new versions are in a separate package.<br />
<br />
== Why [http://gist.io/5660494 ''Never use -Sy when installing!''] is wrong? ==<br />
<br />
''In a nutshell'': [http://gist.io/5660494 this article] misguides you.<br />
<br />
=== No versioned package ===<br />
<br />
The real issue behind all of this: '''We try to avoid version dependencies in Archlinux'''. Not that ''pacman'' cannot manage them.<br />
But developers decide to not use them when there is no strong needs. Mainly to:<br />
* Simplify the package maintenance (reduce the workload / the quantity of bug / etc);<br />
* Speed-up dependency computation.<br />
<br />
It's like that far before I joined the project, so don't blame me!<br />
<br />
Consequences: there is no way to know which packages needs to be updated when you upgrade another one.<br />
<br />
The safest and recommended way is: <u>When you upgrade or install a package, be sure that your whole system is up-to-date</u>. If not, some dependencies can be broken, like a library, a module, a database format, etc.<br />
<br />
In all case, be sure to have an upgraded system before report any issue in the bug report system.<br />
<br />
=== Why are you misguided? ===<br />
# Installing a new package don't pull the last version of an already installed library. When there is a soname bump, only the new installed software should be broken, and not your entire system. The running service should be fine. There are exceptions when versioned dependencies are used.<br />
# The cause is not the -y option. It's because your system was not upgraded before you install a new package.<br />
# That doesn't mean that you must upgrade the whole system each time you install a package. ''But if you don't understand why, do it.''<br />
# When you are using AUR packages or when your favorite desktop sync the database frequently (to show you the number of upgrades), you may break your system with -S. The -y option will not protect you.<br />
# Firefox is not linked against readline.<br />
# Core programs (bash, pacman, systemd) use versioned deps to prevent an unbootable operating system.<br />
# A loudly broken soft is better than a silent broken soft. Because you fix it quickly.<br />
# '''Upgrading the whole system is a dangerous operations''' (especially on servers). New software version could be bugged! A default policy to upgrade the whole system for each new installed package to prevent broken package is crazy.<br />
# Archlinux is not crap, it's targeted to power users.</div>Sebluhttps://wiki.archlinux.org/index.php?title=User:Seblu&diff=552437User:Seblu2018-11-01T21:33:25Z<p>Seblu: Update links</p>
<hr />
<div><br />
= Me =<br />
* My profile: https://www.archlinux.org/people/developers/#seblu<br />
* My website: https://seblu.net<br />
* My twitter: https://twitter.com/seblu84<br />
* My twister: @seblu<br />
* My GPG key fingerprint: B81B 051F 2D7F C867 AAFF 35A5 8DBD 63B8 2072 D77A<br />
<br />
= Packaging =<br />
<br />
== My repositories ==<br />
<br />
=== seblu repository ===<br />
<br />
Add this in your '''/etc/pacman.conf'''<br />
<pre><br />
[seblu]<br />
Server = http://al.seblu.net/$repo/$arch<br />
SigLevel = Required TrustedOnly<br />
</pre><br />
<br />
PKGBUILD can be found [https://gitlab.seblu.net/archlinux/packages here].<br />
<br />
=== ARM repository ===<br />
<br />
Instruction on a separate page: [[ARM]]<br />
<br />
== My Guidelines ==<br />
<br />
This is my guidelines that I try to apply in my packaging duties. <strike>Of course, everyone should follow them.</strike><br />
They come from my years of packaging for Archlinux.<br />
<br />
# Put all needed dependencies. You should not assume that another package has the same requirement and do the job for you. It can be dropped without notifying you.<br />
# Don't use versioned deps. That's a sad, but shared way of doing in Arch.<br />
# Quotes variables with spaces. In particular '''$scrdir''', '''$pkgdir'''. There is no allowed space in ''$pkgname'' and ''$pkgver''.<br />
# Use single quotes when there is no needs for double or back quotes. (e.g 'x86_64')<br />
# Don't '''cd''' in ''$srcdir'' at the beginning of '''prepare()''', '''build()''', '''package()'''. <u>It's a defacto standard</u>.<br />
# Don't use '''..''' (double dots) inside a path. In particular don't <code>cd "$srcdir"/linux; cd ..</code>. You will not go where you expect if ''linux'' was a symlink. <br />
# Use ''install'' instead of ''cp'' whenever possible.<br />
# Only <u>lowercase</u> in '''$pkgname'''<br />
# If upstream provides a signature, use it!<br />
# Never put '''base-devel''' as a dependency.<br />
# Don't use tab, use spaces.<br />
# No trailing whitespaces.<br />
# Comments are free.<br />
# Run '''namcap''' on your PKGBUILD and on your built package.<br />
# Run '''checkpkg''' after bumping a package to a new version.<br />
# Don't put informal messages in '''post_install()''' functions. Only mandatory messages. Howtos go into the wiki.<br />
# If you ship systemd unit files, name it lowercase.<br />
<br />
= FAQ =<br />
<br />
Here is '''my''' answers.<br />
<br />
== Should a daemon be automatically restarted when it fails? ==<br />
<br />
In a nutshell, this should be the last resort and not the default.<br />
<br />
The expected behavior for daemon is to do its job without crashing, and exit properly when it finishes.<br />
Unfortunately, bugs and others cosmic dusts cause software to misbehave.<br />
<br />
The question of making a daemon automatically restart will never come with a reliable one, but with a shaky daemon, more than once.<br />
And if it's not expensive to restart it automatically, maybe it's also a good idea to do the same for all daemons. Here we are.<br />
<br />
''From my experience'', most crashing '''daemons require user intervention before falling back to work'''.<br />
It can be caused by a misconfiguration (e.g upgrades, typo, ...), a programming error (leading to a segfault), missing libraries (packaging error), etc.<br />
So restarting it automatically, doesn't help much. Quite the opposite, it causes unneeded resources consumption (logs, forks) and make the debugging more difficult.<br />
<br />
'''Even worse''', restarting a daemon which fail may '''hides a degraded service'''.<br />
For example, when the service crashes for 20% of your customers because they have a back-quote in their login, or, it's damn slow because it restart twice before completing a task. There is plenty of errors that can be masked by a non-failing service, that's why '''a sane default is to not restart it''' when its creator didn't handle the case.<br />
<br />
Of course, there is poorly coded daemons, which require to be restarted frequently because they crash.<br />
In that case, auto-restart is an option. We have better things to do than restarting them manually.<br />
But this is not a default, '''it's targeted to a particular daemon''', which crash for a known reason. <br />
<br />
Some corner case may be found in vital daemons (e.g sshd), <u>which are required to get back the control of your host</u>.<br />
When you loose it, you cannot troubleshoot. In this case, restarting it may be a comforting behavior, albeit...<br />
<br />
As a consequence, I suggest to '''choose a default which doesn't try to make a non working daemon looks like a working one'''.<br />
If the administrator want it, let him override it.<br />
<br />
== Should I run Archlinux on my server? ==<br />
<br />
'''Yes''' it's a good idea to run Archlinux on your server but read this before:<br />
<br />
https://mailman.archlinux.org/pipermail/arch-general/2013-July/033791.html<br />
<br />
== How should I manage official kernel updates? ==<br />
<br />
=== Upgrading the kernel, you are in trouble! ===<br />
<br />
During its upgrade, the official kernel package (called '''linux''') removes (or replaces) modules in ''/lib/modules/$(uname -r)''. The running kernel ''$(uname -r)'' is still the same.<br />
As a consequence, you (or udev) cannot load kernel modules anymore. This may lead to difficult to track issues.<br />
So, '''you <u>should</u> reboot''' on your new kernel '''after each update'''.<br />
<br />
This is boring because:<br />
* This will downtime your service;<br />
* You're in the middle of something;<br />
* You don't need the new kernel now;<br />
* There is several updates by month;<br />
* It breaks your uptime. :)<br />
<br />
=== Reboot into your new kernel, you may go to hell ===<br />
<br />
Unadvertised users run only one Linux kernel on their computers. After an upgrade and a reboot, the computer might be "broken". This can be a consequence of a bug directly inside the kernel, or an error during the upgrade process.<br />
<br />
Archlinux official '''linux''' package doesn't provide you a correct solution for this. You workaround this by using the '''linux-lts''' kernel package to have a backup kernel (if your hardware is supported).<br />
<br />
=== A new hope (Episode IV) ===<br />
<br />
To fix the two previous issues, I suggest you a different approach.<br />
You could use a versioned kernel package like '''linux-seblu-3.x.y''' (you can find a copy in [https://seblu.net/a/seblu/x86_64/ my repository]).<br />
No package upgrades broke the module ABI and new versions are in a separate package.<br />
<br />
== Why [http://gist.io/5660494 ''Never use -Sy when installing!''] is wrong? ==<br />
<br />
''In a nutshell'': [http://gist.io/5660494 this article] misguides you.<br />
<br />
=== No versioned package ===<br />
<br />
The real issue behind all of this: '''We try to avoid version dependencies in Archlinux'''. Not that ''pacman'' cannot manage them.<br />
But developers decide to not use them when there is no strong needs. Mainly to:<br />
* Simplify the package maintenance (reduce the workload / the quantity of bug / etc);<br />
* Speed-up dependency computation.<br />
<br />
It's like that far before I joined the project, so don't blame me!<br />
<br />
Consequences: there is no way to know which packages needs to be updated when you upgrade another one.<br />
<br />
The safest and recommended way is: <u>When you upgrade or install a package, be sure that your whole system is up-to-date</u>. If not, some dependencies can be broken, like a library, a module, a database format, etc.<br />
<br />
In all case, be sure to have an upgraded system before report any issue in the bug report system.<br />
<br />
=== Why are you misguided? ===<br />
# Installing a new package don't pull the last version of an already installed library. When there is a soname bump, only the new installed software should be broken, and not your entire system. The running service should be fine. There are exceptions when versioned dependencies are used.<br />
# The cause is not the -y option. It's because your system was not upgraded before you install a new package.<br />
# That doesn't mean that you must upgrade the whole system each time you install a package. ''But if you don't understand why, do it.''<br />
# When you are using AUR packages or when your favorite desktop sync the database frequently (to show you the number of upgrades), you may break your system with -S. The -y option will not protect you.<br />
# Firefox is not linked against readline.<br />
# Core programs (bash, pacman, systemd) use versioned deps to prevent an unbootable operating system.<br />
# A loudly broken soft is better than a silent broken soft. Because you fix it quickly.<br />
# '''Upgrading the whole system is a dangerous operations''' (especially on servers). New software version could be bugged! A default policy to upgrade the whole system for each new installed package to prevent broken package is crazy.<br />
# Archlinux is not crap, it's targeted to power users.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Dynamic_Kernel_Module_Support&diff=551242Dynamic Kernel Module Support2018-10-26T11:39:00Z<p>Seblu: /* Upgrades */ dkms supports deps order</p>
<hr />
<div>[[Category:Kernel]]<br />
[[ja:Dynamic Kernel Module Support]]<br />
[[ru:Dynamic Kernel Module Support]]<br />
[[zh-hans:Dynamic Kernel Module Support]]<br />
From [[wikipedia:Dynamic_Kernel_Module_Support|Wikipedia]]:<br />
<br />
: Dynamic Kernel Module Support (DKMS) is a program/framework that enables generating Linux kernel modules whose sources generally reside outside the kernel source tree. The concept is to have DKMS modules automatically rebuilt when a new kernel is installed. <br />
<br />
This means that a user does not have to wait for a company, project, or package maintainer to release a new version of the module. Since the introduction of [[Pacman#Hooks]], the rebuild of the modules is handled automatically when a kernel is upgraded.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|dkms}} package and the headers for your kernel (for the standard kernel this would be {{Pkg|linux-headers}}).<br />
<br />
A good number of modules that lie outside the kernel source tree have a DKMS variant; a few are hosted in the [https://www.archlinux.org/packages/?&q=dkms official repositories], most are found in the [https://aur.archlinux.org/packages/?SeB=n&K=dkms AUR].<br />
<br />
== Upgrades ==<br />
<br />
Though the rebuild of the DKMS modules is usually seamless during a kernel upgrade, it may still happen that the rebuild fails. You should pay extra attention to the [[Pacman]] output. This applies in particular if the system relies on the DKMS module to boot successfully and/or if you use DKMS with a custom kernel not in the [[Official repositories]]. <br />
<br />
To deal with changes in the kernel, fix bugs, or add necessary features consider upgrading the DKMS package before rebooting.<br />
<br />
== Usage ==<br />
<br />
Usage for invoking DKMS manually.<br />
<br />
Tab-completion is available by doing:<br />
<br />
# source /usr/share/bash-completion/completions/dkms<br />
<br />
=== List modules ===<br />
<br />
To list the current status of modules, versions and kernels within the tree:<br />
<br />
# dkms status<br />
<br />
=== Rebuild modules ===<br />
<br />
Rebuild all modules for the currently running kernel:<br />
<br />
# dkms autoinstall<br />
<br />
or for a specific kernel:<br />
<br />
# dkms autoinstall -k 3.16.4-1-ARCH<br />
<br />
To build a ''specific'' module for the currently running kernel:<br />
<br />
# dkms install -m nvidia -v 334.21<br />
<br />
or simply:<br />
<br />
# dkms install nvidia/334.21<br />
<br />
To build a module for ''all'' kernels:<br />
<br />
# dkms install nvidia/334.21 --all<br />
<br />
=== Remove modules ===<br />
<br />
To remove a module (old ones are not automatically removed):<br />
<br />
# dkms remove -m nvidia -v 331.49 --all<br />
<br />
or simply:<br />
<br />
# dkms remove nvidia/331.49 --all<br />
<br />
If the package {{Pkg|dkms}} is removed the information regarding previous module build files is lost. If this is the case, go through {{ic|/usr/lib/modules/KERNELVERSION-ARCH}} and delete all files and directories no longer in use.<br />
<br />
== DKMS package creation ==<br />
<br />
Here are some guidelines to follow when creating a DKMS package.<br />
<br />
=== Package name ===<br />
<br />
DKMS packages are named by appending "''-dkms''" to the original package name.<br />
<br />
The variable {{ic|$_pkgname}} is often used below {{ic|$pkgname}} to describe the package name minus the "''-dkms''" suffix (e.g. {{ic|<nowiki>_pkgname=${pkgname%-*}</nowiki>}}). This is useful to help keep similarities between the original package PKGBUILD and the DKMS variant.<br />
<br />
=== Dependencies ===<br />
<br />
Dependencies should be inherited from the original version with {{Pkg|dkms}} added and {{Pkg|linux-headers}} removed (as it is listed by the dkms package as ''optional'').<br />
<br />
=== Build source location ===<br />
<br />
Build sources should go into (this is the default build directory for DKMS):<br />
<br />
/usr/src/''PACKAGE_NAME''-''PACKAGE_VERSION''<br />
<br />
In the package directory, a DKMS configuration tells DKMS how to build the module ({{ic|dkms.conf}}), including the variables {{ic|PACKAGE_NAME}} and {{ic|PACKAGE_VERSION}}.<br />
<br />
* {{ic|PACKAGE_NAME}} - the actual project name (usually {{ic|$_pkgname}} or {{ic|$_pkgbase}}). <br />
* {{ic|PACKAGE_VERSION}} - by convention this should also be the {{ic|$pkgver}}.<br />
<br />
=== Patching ===<br />
<br />
The sources can be patched either directly in the PKGBUILD or through {{ic|dkms.conf}}.<br />
<br />
=== Module loading automatically in .install ===<br />
<br />
Loading and unloading modules should be left to the user. Consider the possibility a module may crash when loaded.<br />
<br />
Also, please note that you do not have to call {{ic|depmod}} explicitly to update the dependencies of your kernel module. Pacman is now calling DKMS {{ic|dkms install}} and {{ic|dkms remove}} automatically as hooks. {{ic|dkms install}} is making sure {{ic|depmod}} is called at the end of its process. {{ic|dkms install}} depends on {{ic|dkms build}} (to build the source against the current kernel), which itself depends on {{ic|dkms add}} (to add a symlink from {{ic|/var/lib/dkms/<package>/<version>/source}} to {{ic|/usr/src/<package>}}).<br />
<br />
=== namcap output ===<br />
<br />
[[namcap]] (which attempts to check for common mistakes and non-standard decisions in a package) is good practice to use at least once on ''any'' package; however, it has not yet been updated for DKMS specific guidelines.<br />
<br />
For example, DKMS uses {{ic|/usr/src/}} by default, but Namcap believes this to be a non-standard directory, a little contrary to its [[Wikipedia:Filesystem Hierarchy Standard|reference]].<br />
<br />
=== Example ===<br />
<br />
Here is an example package that edits {{ic|dkms.conf}} according to the package name and version.<br />
<br />
==== PKGBUILD ====<br />
<br />
{{hc|PKGBUILD|2=<br />
# Maintainer: foo <foo(at)gmail(dot)com><br />
# Contributor: bar <bar(at)gmai(dot)com><br />
<br />
_pkgbase=amazing<br />
pkgname=amazing-dkms<br />
pkgver=1<br />
pkgrel=1<br />
pkgdesc="The Amazing kernel modules (DKMS)"<br />
arch=('i686' 'x86_64')<br />
url="https://www.amazing.com/"<br />
license=('GPL2')<br />
depends=('dkms')<br />
conflicts=("${_pkgbase}")<br />
install=${pkgname}.install<br />
source=("${url}/files/tarball.tar.gz"<br />
'dkms.conf'<br />
'linux-3.14.patch')<br />
md5sums=(''use <nowiki>'</nowiki>updpkgsums''')<br />
<br />
build() {<br />
cd ${_pkgbase}-${pkgver}<br />
<br />
# Patch<br />
patch -p1 -i "${srcdir}"/linux-3.14.patch<br />
<br />
}<br />
<br />
package() {<br />
# Install<br />
msg2 "Starting make install..."<br />
make DESTDIR="${pkgdir}" install<br />
<br />
# Copy dkms.conf<br />
install -Dm644 dkms.conf "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf<br />
<br />
# Set name and version<br />
sed -e "s/@_PKGBASE@/${_pkgbase}/" \<br />
-e "s/@PKGVER@/${pkgver}/" \<br />
-i "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/dkms.conf<br />
<br />
# Copy sources (including Makefile)<br />
cp -r ${_pkgbase}/* "${pkgdir}"/usr/src/${_pkgbase}-${pkgver}/<br />
}<br />
}}<br />
<br />
==== dkms.conf ====<br />
<br />
{{hc|dkms.conf|2=<br />
PACKAGE_NAME="@_PKGBASE@"<br />
PACKAGE_VERSION="@PKGVER@"<br />
MAKE[0]="make --uname_r=$kernelver"<br />
CLEAN="make clean"<br />
BUILT_MODULE_NAME[0]="@_PKGBASE@"<br />
DEST_MODULE_LOCATION[0]="/kernel/drivers/misc"<br />
AUTOINSTALL="yes"<br />
}}<br />
<br />
==== .install ====<br />
<br />
Now pacman has DKMS hooks implemented, you do not have to specify DKMS-specific configuration in your .install file. Calls to {{ic|dkms install}} and {{ic|dkms remove}} will be automatic.<br />
<br />
== See also ==<br />
<br />
* [http://www.linuxjournal.com/article/6896 Linux Journal: Exploring Dynamic Kernel Module Support]</div>Sebluhttps://wiki.archlinux.org/index.php?title=User:Seblu&diff=507800User:Seblu2018-01-18T17:18:29Z<p>Seblu: </p>
<hr />
<div><br />
= Me =<br />
* My profile: https://www.archlinux.org/developers/#seblu<br />
* My website: https://seblu.net<br />
* My twitter: https://twitter.com/seblu42<br />
* My twister: @seblu<br />
* My GPG key fingerprint: B81B 051F 2D7F C867 AAFF 35A5 8DBD 63B8 2072 D77A<br />
<br />
= Packaging =<br />
<br />
== My repositories ==<br />
<br />
=== seblu repository ===<br />
<br />
Add this in your '''/etc/pacman.conf'''<br />
<pre><br />
[seblu]<br />
Server = http://al.seblu.net/$repo/$arch<br />
SigLevel = Required TrustedOnly<br />
</pre><br />
<br />
PKGBUILD can be found [https://gitlab.seblu.net/archlinux/packages here].<br />
<br />
=== ARM repository ===<br />
<br />
Instruction on a separate page: [[ARM]]<br />
<br />
== My Guidelines ==<br />
<br />
This is my guidelines that I try to apply in my packaging duties. <strike>Of course, everyone should follow them.</strike><br />
They come from my years of packaging for Archlinux.<br />
<br />
# Put all needed dependencies. You should not assume that another package has the same requirement and do the job for you. It can be dropped without notifying you.<br />
# Don't use versioned deps. That's a sad, but shared way of doing in Arch.<br />
# Quotes variables with spaces. In particular '''$scrdir''', '''$pkgdir'''. There is no allowed space in ''$pkgname'' and ''$pkgver''.<br />
# Use single quotes when there is no needs for double or back quotes. (e.g 'x86_64')<br />
# Don't '''cd''' in ''$srcdir'' at the beginning of '''prepare()''', '''build()''', '''package()'''. <u>It's a defacto standard</u>.<br />
# Don't use '''..''' (double dots) inside a path. In particular don't <code>cd "$srcdir"/linux; cd ..</code>. You will not go where you expect if ''linux'' was a symlink. <br />
# Use ''install'' instead of ''cp'' whenever possible.<br />
# Only <u>lowercase</u> in '''$pkgname'''<br />
# If upstream provides a signature, use it!<br />
# Never put '''base-devel''' as a dependency.<br />
# Don't use tab, use spaces.<br />
# No trailing whitespaces.<br />
# Comments are free.<br />
# Run '''namcap''' on your PKGBUILD and on your built package.<br />
# Run '''checkpkg''' after bumping a package to a new version.<br />
# Don't put informal messages in '''post_install()''' functions. Only mandatory messages. Howtos go into the wiki.<br />
# If you ship systemd unit files, name it lowercase.<br />
<br />
= FAQ =<br />
<br />
Here is '''my''' answers.<br />
<br />
== Should a daemon be automatically restarted when it fails? ==<br />
<br />
In a nutshell, this should be the last resort and not the default.<br />
<br />
The expected behavior for daemon is to do its job without crashing, and exit properly when it finishes.<br />
Unfortunately, bugs and others cosmic dusts cause software to misbehave.<br />
<br />
The question of making a daemon automatically restart will never come with a reliable one, but with a shaky daemon, more than once.<br />
And if it's not expensive to restart it automatically, maybe it's also a good idea to do the same for all daemons. Here we are.<br />
<br />
''From my experience'', most crashing '''daemons require user intervention before falling back to work'''.<br />
It can be caused by a misconfiguration (e.g upgrades, typo, ...), a programming error (leading to a segfault), missing libraries (packaging error), etc.<br />
So restarting it automatically, doesn't help much. Quite the opposite, it causes unneeded resources consumption (logs, forks) and make the debugging more difficult.<br />
<br />
'''Even worse''', restarting a daemon which fail may '''hides a degraded service'''.<br />
For example, when the service crashes for 20% of your customers because they have a back-quote in their login, or, it's damn slow because it restart twice before completing a task. There is plenty of errors that can be masked by a non-failing service, that's why '''a sane default is to not restart it''' when its creator didn't handle the case.<br />
<br />
Of course, there is poorly coded daemons, which require to be restarted frequently because they crash.<br />
In that case, auto-restart is an option. We have better things to do than restarting them manually.<br />
But this is not a default, '''it's targeted to a particular daemon''', which crash for a known reason. <br />
<br />
Some corner case may be found in vital daemons (e.g sshd), <u>which are required to get back the control of your host</u>.<br />
When you loose it, you cannot troubleshoot. In this case, restarting it may be a comforting behavior, albeit...<br />
<br />
As a consequence, I suggest to '''choose a default which doesn't try to make a non working daemon looks like a working one'''.<br />
If the administrator want it, let him override it.<br />
<br />
== Should I run Archlinux on my server? ==<br />
<br />
'''Yes''' it's a good idea to run Archlinux on your server but read this before:<br />
<br />
https://mailman.archlinux.org/pipermail/arch-general/2013-July/033791.html<br />
<br />
== How should I manage official kernel updates? ==<br />
<br />
=== Upgrading the kernel, you are in trouble! ===<br />
<br />
During its upgrade, the official kernel package (called '''linux''') removes (or replaces) modules in ''/lib/modules/$(uname -r)''. The running kernel ''$(uname -r)'' is still the same.<br />
As a consequence, you (or udev) cannot load kernel modules anymore. This may lead to difficult to track issues.<br />
So, '''you <u>should</u> reboot''' on your new kernel '''after each update'''.<br />
<br />
This is boring because:<br />
* This will downtime your service;<br />
* You're in the middle of something;<br />
* You don't need the new kernel now;<br />
* There is several updates by month;<br />
* It breaks your uptime. :)<br />
<br />
=== Reboot into your new kernel, you may go to hell ===<br />
<br />
Unadvertised users run only one Linux kernel on their computers. After an upgrade and a reboot, the computer might be "broken". This can be a consequence of a bug directly inside the kernel, or an error during the upgrade process.<br />
<br />
Archlinux official '''linux''' package doesn't provide you a correct solution for this. You workaround this by using the '''linux-lts''' kernel package to have a backup kernel (if your hardware is supported).<br />
<br />
=== A new hope (Episode IV) ===<br />
<br />
To fix the two previous issues, I suggest you a different approach.<br />
You could use a versioned kernel package like '''linux-seblu-3.x.y''' (you can find a copy in [https://seblu.net/a/seblu/x86_64/ my repository]).<br />
No package upgrades broke the module ABI and new versions are in a separate package.<br />
<br />
== Why [http://gist.io/5660494 ''Never use -Sy when installing!''] is wrong? ==<br />
<br />
''In a nutshell'': [http://gist.io/5660494 this article] misguides you.<br />
<br />
=== No versioned package ===<br />
<br />
The real issue behind all of this: '''We try to avoid version dependencies in Archlinux'''. Not that ''pacman'' cannot manage them.<br />
But developers decide to not use them when there is no strong needs. Mainly to:<br />
* Simplify the package maintenance (reduce the workload / the quantity of bug / etc);<br />
* Speed-up dependency computation.<br />
<br />
It's like that far before I joined the project, so don't blame me!<br />
<br />
Consequences: there is no way to know which packages needs to be updated when you upgrade another one.<br />
<br />
The safest and recommended way is: <u>When you upgrade or install a package, be sure that your whole system is up-to-date</u>. If not, some dependencies can be broken, like a library, a module, a database format, etc.<br />
<br />
In all case, be sure to have an upgraded system before report any issue in the bug report system.<br />
<br />
=== Why are you misguided? ===<br />
# Installing a new package don't pull the last version of an already installed library. When there is a soname bump, only the new installed software should be broken, and not your entire system. The running service should be fine. There are exceptions when versioned dependencies are used.<br />
# The cause is not the -y option. It's because your system was not upgraded before you install a new package.<br />
# That doesn't mean that you must upgrade the whole system each time you install a package. ''But if you don't understand why, do it.''<br />
# When you are using AUR packages or when your favorite desktop sync the database frequently (to show you the number of upgrades), you may break your system with -S. The -y option will not protect you.<br />
# Firefox is not linked against readline.<br />
# Core programs (bash, pacman, systemd) use versioned deps to prevent an unbootable operating system.<br />
# A loudly broken soft is better than a silent broken soft. Because you fix it quickly.<br />
# '''Upgrading the whole system is a dangerous operations''' (especially on servers). New software version could be bugged! A default policy to upgrade the whole system for each new installed package to prevent broken package is crazy.<br />
# Archlinux is not crap, it's targeted to power users.</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:UID_/_GID_Database&diff=506371DeveloperWiki:UID / GID Database2018-01-06T15:13:45Z<p>Seblu: cups user/group</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
This is intended to be a starting point for creating standard uid and gid numbers.<br />
<br />
I really think this should be moved directly into arch at some point and just have a a keyword in PKGBUILD like<br />
<br />
require_user('user1' 'user2')<br />
require_group('group1')<br />
<br />
and if they didn't exist they would be created according to this database by makepkg when building or by pacman when installing.<br />
<br />
Actually, for this to work, we will need to add the primary and secondary groups to the database as well.<br />
<br />
==Users==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package !! User Name !! UID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || mail || 8<br />
|-<br />
| || news || 9<br />
|-<br />
| || uucp || 10<br />
|-<br />
| || ftp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| || slocate || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| || nut || 55<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || dnslog || 60<br />
|-<br />
| || dnscache || 61<br />
|-<br />
| || tinydns || 62<br />
|-<br />
| || axfrdns || 63<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || fax || 69<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| || postfix || 73<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vpopmail || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| || fetchmail || 90<br />
|-<br />
| || smtpd || 91<br />
|-<br />
| || smtpq || 92<br />
|-<br />
| || smtpf || 93<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|zeroc-ice}} || ice || 101<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| {{pkg|minio}} || minio || 103<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || gitlab || 105<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || gitlab-runner || 107<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || netdata || 134<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc (deprecated, now dynamic) || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| {{pkg|zabbix-server}} || zabbix-server || 170<br />
|-<br />
| {{pkg|zabbix-proxy}} || zabbix-proxy || 171<br />
|-<br />
| {{pkg|zabbix-agent}} || zabbix-agent || 172<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| {{pkg|rabbitmq}} || rabbitmq || 197<br />
|-<br />
| {{pkg|matrix-synapse}} || synapse || 198<br />
|-<br />
| {{pkg|toxcore}} || tox-bootstrapd || 199<br />
|-<br />
| {{AUR|kubernetes}} || kubernetes || 205<br />
|-<br />
| {{pkg|kibana}} || kibana || 206<br />
|-<br />
| {{pkg|grafana}} || grafana || 207<br />
|-<br />
| {{pkg|consul}} || consul || 208<br />
|-<br />
| {{pkg|cups}} || cups || 209<br />
|-<br />
| {{pkg|amavisd-new}} || amavis || 333<br />
|-<br />
| {{pkg|ceph}} || ceph || 340<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || alias || 7790<br />
|-<br />
| || qmaild || 7791<br />
|-<br />
| || qmaill || 7792<br />
|-<br />
| || qmailp || 7793<br />
|-<br />
| || qmailq || 7794<br />
|-<br />
| || qmailr || 7795<br />
|-<br />
| || qmails || 7796<br />
|}<br />
<br />
==Groups==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package || Group Name !! GID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || sys || 3<br />
|-<br />
| {{pkg|filesystem}} || adm || 4<br />
|-<br />
| {{pkg|filesystem}} || tty || 5<br />
|-<br />
| {{pkg|filesystem}} || disk || 6<br />
|-<br />
| {{pkg|filesystem}} || lp || 7<br />
|-<br />
| {{pkg|filesystem}} || mem || 8<br />
|-<br />
| {{pkg|filesystem}} || kmem || 9<br />
|-<br />
| {{pkg|filesystem}} || wheel || 10<br />
|-<br />
| {{pkg|filesystem}} || ftp || 11<br />
|-<br />
| {{pkg|filesystem}} || mail || 12<br />
|-<br />
| || news || 13<br />
|-<br />
| {{pkg|filesystem}} || uucp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| {{pkg|filesystem}} || log || 19<br />
|-<br />
| {{pkg|filesystem}} || utmp || 20<br />
|-<br />
| {{pkg|filesystem}} || locate (ex slocate/mlocate/rlocate) || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| {{pkg|filesystem}} || rfkill || 24<br />
|-<br />
| {{pkg|filesystem}} || smmsp || 25<br />
|-<br />
| {{pkg|filesystem}} || proc || 26<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| {{pkg|filesystem}} || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| {{pkg|filesystem}} || games || 50<br />
|-<br />
| {{pkg|filesystem}} || lock || 54<br />
|-<br />
| || nut || 55<br />
|-<br />
| || bumblebee || 56<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| || postdrop || 75<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || kvm || 78<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vchkpw || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| {{pkg|filesystem}} || network || 90<br />
|-<br />
| {{pkg|filesystem}} || video || 91<br />
|-<br />
| {{pkg|filesystem}} || audio || 92<br />
|-<br />
| {{pkg|filesystem}} || optical || 93<br />
|-<br />
| {{pkg|filesystem}} || floppy || 94<br />
|-<br />
| {{pkg|filesystem}} || storage || 95<br />
|-<br />
| {{pkg|filesystem}} || scanner || 96<br />
|-<br />
| {{pkg|filesystem}} || input || 97<br />
|-<br />
| {{pkg|filesystem}} || power || 98<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|filesystem}} || users || 100<br />
|-<br />
| {{pkg|zeroc-ice}} || ice || 101<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| {{pkg|minio}} || minio || 103<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || gitlab || 105<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || gitlab-runner || 107<br />
|-<br />
| || vboxusers || 108<br />
|-<br />
| || vboxsf || 109<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| {{pkg|colord}} || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || vlock || 129<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || pulse-access || 131<br />
|-<br />
| || pulse-rt || 132<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || netdata || 134<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc (deprecated, now dynamic) || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || docker (deprecated, now dynamic) || 142<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| || smtpd || 145<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|wireshark-cli}} || wireshark || 150<br />
|-<br />
| || cgred || 160<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| {{pkg|zabbix-server}} || zabbix-server || 170<br />
|-<br />
| {{pkg|zabbix-proxy}} || zabbix-proxy || 171<br />
|-<br />
| {{pkg|zabbix-agent}} || zabbix-agent || 172<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal || 190<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| {{pkg|rabbitmq}} || rabbitmq || 197<br />
|-<br />
| {{pkg|matrix-synapse}} || synapse || 198<br />
|-<br />
| {{pkg|toxcore}} || tox-bootstrapd || 199<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || tpe || 200<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || audit || 201<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || socket-deny-all || 202<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || socket-deny-client || 203<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || socket-deny-server || 204<br />
|-<br />
| {{AUR|kubernetes}} || kubernetes || 205<br />
|-<br />
| {{pkg|kibana}} || kibana || 206<br />
|-<br />
| {{pkg|grafana}} || grafana || 207<br />
|-<br />
| {{pkg|consul}} || consul || 208<br />
|-<br />
| {{pkg|cups}} || cups || 209<br />
|-<br />
| {{pkg|amavisd-new}} || amavis || 333<br />
|-<br />
| {{pkg|ceph}} || ceph || 340<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || qmail || 2107<br />
|-<br />
| || nofiles || 2108<br />
|}</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:UID_/_GID_Database&diff=486688DeveloperWiki:UID / GID Database2017-08-23T23:27:03Z<p>Seblu: Add grafana user/group</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
This is intended to be a starting point for creating standard uid and gid numbers.<br />
<br />
I really think this should be moved directly into arch at some point and just have a a keyword in PKGBUILD like<br />
<br />
require_user('user1' 'user2')<br />
require_group('group1')<br />
<br />
and if they didn't exist they would be created according to this database by makepkg when building or by pacman when installing.<br />
<br />
Actually, for this to work, we will need to add the primary and secondary groups to the database as well.<br />
<br />
==Users==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package !! User Name !! UID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || mail || 8<br />
|-<br />
| || news || 9<br />
|-<br />
| || uucp || 10<br />
|-<br />
| || ftp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| || slocate || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| || nut || 55<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || dnslog || 60<br />
|-<br />
| || dnscache || 61<br />
|-<br />
| || tinydns || 62<br />
|-<br />
| || axfrdns || 63<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || fax || 69<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| || postfix || 73<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vpopmail || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| || fetchmail || 90<br />
|-<br />
| || smtpd || 91<br />
|-<br />
| || smtpq || 92<br />
|-<br />
| || smtpf || 93<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| {{pkg|minio}} || minio || 103<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || gitlab || 105<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || gitlab-runner || 107<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || netdata || 134<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc (deprecated, now dynamic) || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| {{pkg|zabbix-server}} || zabbix-server || 170<br />
|-<br />
| {{pkg|zabbix-proxy}} || zabbix-proxy || 171<br />
|-<br />
| {{pkg|zabbix-agent}} || zabbix-agent || 172<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| {{pkg|rabbitmq}} || rabbitmq || 197<br />
|-<br />
| {{pkg|matrix-synapse}} || synapse || 198<br />
|-<br />
| {{pkg|toxcore}} || tox-bootstrapd || 199<br />
|-<br />
| {{AUR|kubernetes}} || kubernetes || 205<br />
|-<br />
| {{pkg|kibana}} || kibana || 206<br />
|-<br />
| {{pkg|grafana}} || grafana || 207<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || alias || 7790<br />
|-<br />
| || qmaild || 7791<br />
|-<br />
| || qmaill || 7792<br />
|-<br />
| || qmailp || 7793<br />
|-<br />
| || qmailq || 7794<br />
|-<br />
| || qmailr || 7795<br />
|-<br />
| || qmails || 7796<br />
|}<br />
<br />
==Groups==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package || Group Name !! GID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || sys || 3<br />
|-<br />
| {{pkg|filesystem}} || adm || 4<br />
|-<br />
| {{pkg|filesystem}} || tty || 5<br />
|-<br />
| {{pkg|filesystem}} || disk || 6<br />
|-<br />
| {{pkg|filesystem}} || lp || 7<br />
|-<br />
| {{pkg|filesystem}} || mem || 8<br />
|-<br />
| {{pkg|filesystem}} || kmem || 9<br />
|-<br />
| {{pkg|filesystem}} || wheel || 10<br />
|-<br />
| {{pkg|filesystem}} || ftp || 11<br />
|-<br />
| {{pkg|filesystem}} || mail || 12<br />
|-<br />
| || news || 13<br />
|-<br />
| {{pkg|filesystem}} || uucp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| {{pkg|filesystem}} || log || 19<br />
|-<br />
| {{pkg|filesystem}} || utmp || 20<br />
|-<br />
| {{pkg|filesystem}} || locate (ex slocate/mlocate/rlocate) || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| {{pkg|filesystem}} || rfkill || 24<br />
|-<br />
| {{pkg|filesystem}} || smmsp || 25<br />
|-<br />
| {{pkg|filesystem}} || proc || 26<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| {{pkg|filesystem}} || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| {{pkg|filesystem}} || games || 50<br />
|-<br />
| {{pkg|filesystem}} || lock || 54<br />
|-<br />
| || nut || 55<br />
|-<br />
| || bumblebee || 56<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| || postdrop || 75<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || kvm || 78<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vchkpw || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| {{pkg|filesystem}} || network || 90<br />
|-<br />
| {{pkg|filesystem}} || video || 91<br />
|-<br />
| {{pkg|filesystem}} || audio || 92<br />
|-<br />
| {{pkg|filesystem}} || optical || 93<br />
|-<br />
| {{pkg|filesystem}} || floppy || 94<br />
|-<br />
| {{pkg|filesystem}} || storage || 95<br />
|-<br />
| {{pkg|filesystem}} || scanner || 96<br />
|-<br />
| {{pkg|filesystem}} || input || 97<br />
|-<br />
| {{pkg|filesystem}} || power || 98<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|filesystem}} || users || 100<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| {{pkg|minio}} || minio || 103<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || gitlab || 105<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || gitlab-runner || 107<br />
|-<br />
| || vboxusers || 108<br />
|-<br />
| || vboxsf || 109<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| {{pkg|colord}} || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || vlock || 129<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || pulse-access || 131<br />
|-<br />
| || pulse-rt || 132<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || netdata || 134<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc (deprecated, now dynamic) || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || docker (deprecated, now dynamic) || 142<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| || smtpd || 145<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|wireshark-cli}} || wireshark || 150<br />
|-<br />
| || cgred || 160<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| {{pkg|zabbix-server}} || zabbix-server || 170<br />
|-<br />
| {{pkg|zabbix-proxy}} || zabbix-proxy || 171<br />
|-<br />
| {{pkg|zabbix-agent}} || zabbix-agent || 172<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal || 190<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| {{pkg|rabbitmq}} || rabbitmq || 197<br />
|-<br />
| {{pkg|matrix-synapse}} || synapse || 198<br />
|-<br />
| {{pkg|toxcore}} || tox-bootstrapd || 199<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || tpe || 200<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || audit || 201<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || socket-deny-all || 202<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || socket-deny-client || 203<br />
|-<br />
| {{pkg|grsec-common}}{{Broken package link|package not found}} || socket-deny-server || 204<br />
|-<br />
| {{AUR|kubernetes}} || kubernetes || 205<br />
|-<br />
| {{pkg|kibana}} || kibana || 206<br />
|-<br />
| {{pkg|grafana}} || grafana || 207<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || qmail || 2107<br />
|-<br />
| || nofiles || 2108<br />
|}</div>Sebluhttps://wiki.archlinux.org/index.php?title=Unofficial_user_repositories&diff=458569Unofficial user repositories2016-12-05T23:45:26Z<p>Seblu: /* seblu */ New repo URL</p>
<hr />
<div>[[Category:Package management]]<br />
[[ja:非公式ユーザーリポジトリ]]<br />
[[zh-CN:Unofficial user repositories]]<br />
{{Related articles start}}<br />
{{Related|pacman-key}}<br />
{{Related|Official repositories}}<br />
{{Related articles end}}<br />
This article lists binary repositories freely created and shared by the community, often providing pre-built versions of PKGBUILDS found in the [[AUR]].<br />
<br />
{{Warning|Neither the official Arch Linux Developers nor the Trusted Users perform tests of any sort to verify the contents of these repositories; it is up to each user to decide whether to trust their maintainers, and take full responsibility for whatever their decision brings.}}<br />
<br />
In order to use these repositories, you will have to add them to {{ic|/etc/pacman.conf}}, as explained in [[pacman#Repositories and mirrors]]. If a repository is signed, you will have to obtain and locally sign the associated key, as explained in [[Pacman-key#Adding unofficial keys]].<br />
<br />
If you want to create your own custom repository, follow [[pacman tips#Custom local repository]].<br />
<br />
{{Tip|To get a list of all servers listed in this page: {{bc|<nowiki>curl 'https://wiki.archlinux.org/index.php/Unofficial_user_repositories' | grep 'Server = ' | sed "s/\$arch/$(uname -m)/g" | cut -f 3 -d' '</nowiki>}}<br />
<br />
For your convenience you can, for example, open them all in a web browser to inspect the contents of their repositories.<br />
}}<br />
<br />
== Adding your repository to this page ==<br />
<br />
If you have your own repository, please add it to this page, so that all the other users will know where to find your packages. Please keep the following rules when adding new repositories:<br />
<br />
* Keep the lists in alphabetical order.<br />
* Include some information about the maintainer: include at least a (nick)name and some form of contact information (web site, email address, user page on ArchWiki or the forums, etc.).<br />
* If the repository is of the ''signed'' variety, please include a key-id, possibly using it as the anchor for a link to its keyserver; if the key is not on a keyserver, include a link to the key file.<br />
* Include some short description (e.g. the category of packages provided in the repository).<br />
* If there is a page (either on ArchWiki or external) containing more information about the repository, include a link to it.<br />
* If possible, avoid using comments in code blocks. The formatted description is much more readable. Users who want some comments in their {{ic|pacman.conf}} can easily create it on their own.<br />
<br />
== Any ==<br />
<br />
"Any" repositories are architecture-independent. In other words, they can be used on both i686 and x86_64 systems.<br />
<br />
=== Signed ===<br />
<br />
==== infinality-bundle-fonts ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle-fonts repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle-fonts]<br />
Server = http://bohoomil.com/repo/fonts<br />
</nowiki>}}<br />
<br />
==== ivasilev ====<br />
<br />
* '''Maintainer:''' [http://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' http://ivasilev.net/pacman<br />
* '''Key-ID:''' 436BB513<br />
<br />
{{Note|I mantain 'any', 'i686' and 'x86_64' repos. Each of them includes packages from 'any'. $arch can be replaced with any of the three}}<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = http://ivasilev.net/pacman/any<br />
# Server = http://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
==== pkgbuilder ====<br />
<br />
* '''Maintainer:''' [https://chriswarrick.com/ Chris Warrick]<br />
* '''Description:''' A repository for PKGBUILDer, a Python AUR helper.<br />
* '''Upstream page:''' https://github.com/Kwpolska/pkgbuilder<br />
* '''Key-ID:''' 5EAAEA16<br />
<br />
{{bc|<nowiki><br />
[pkgbuilder]<br />
Server = https://pkgbuilder-repo.chriswarrick.com/<br />
</nowiki>}}<br />
<br />
==== xyne-any ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for "any" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{Note|Use this repository only if there is no matching {{ic|[xyne-*]}} repository for your architecture.}}<br />
<br />
{{bc|<nowiki><br />
[xyne-any]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
==== youtube-dl ====<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=94876 Case_Of]<br />
* '''Description:''' A repository for latest release of youtube-dl package.<br />
* '''Key-ID:''' [https://youtube-dl.tk/youtube-dl-pgp.key 9F213FB2]<br />
<br />
{{Note|Install the package with {{ic|pacman -S youtube-dl/youtube-dl}}.}}<br />
{{bc|<nowiki><br />
[youtube-dl]<br />
Server = https://youtube-dl.tk<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
==== archlinuxgr-any ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' The Hellenic (Greek) unofficial Arch Linux repository with many interesting packages.<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-any]<br />
Server = http://archlinuxgr.tiven.org/archlinux/any<br />
</nowiki>}}<br />
<br />
== Both i686 and x86_64 ==<br />
<br />
Repositories with both i686 and x86_64 versions. The {{ic|$arch}} variable will be set automatically by pacman.<br />
<br />
=== Signed ===<br />
<br />
==== arcanisrepo ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#arcanis arcanis]<br />
* '''Description:''' A repository with some AUR packages including packages from VCS<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[arcanisrepo]<br />
Server = http://repo.arcanis.me/repo/$arch<br />
</nowiki>}}<br />
<br />
(It is also available via FTP with the same url.)<br />
<br />
==== arch-openrc ====<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=84785 Chris Cromer]<br />
* '''Description:''' Packages to install and maintain OpenRC with sysvinit for Arch Linux.<br />
* '''Upstream sources page:''' https://github.com/cromerc/packages-openrc<br />
* '''Upstream packages/ISO page:''' https://sourceforge.net/projects/archopenrc/files/arch-openrc/<br />
* '''Key-ID:''' 97BEEEC2<br />
<br />
{{bc|<nowiki><br />
[arch-openrc]<br />
Server = http://downloads.sourceforge.net/project/archopenrc/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxcn ====<br />
<br />
* '''Maintainers:''' [https://plus.google.com/+PhoenixNemo/ Phoenix Nemo (phoenixlzx)], Felix Yan (felixonmars, TU), [https://twitter.com/lilydjwg lilydjwg], and others<br />
* '''Description:''' Packages by the Chinese Arch Linux community (mostly signed)<br />
* '''Git Repo:''' https://github.com/archlinuxcn/repo<br />
* '''Mirrors:''' https://github.com/archlinuxcn/mirrorlist-repo (Mostly for users in mainland China)<br />
* '''Key-ID:''' Once the repo is added, ''archlinuxcn-keyring'' package must be installed before any other so you do not get errors about PGP signatures.<br />
<br />
{{bc|<nowiki><br />
[archlinuxcn]<br />
SigLevel = Optional TrustedOnly<br />
Server = http://repo.archlinuxcn.org/$arch<br />
## or use a CDN (beta)<br />
#Server = https://cdn.repo.archlinuxcn.org/$arch<br />
</nowiki>}}<br />
<br />
==== blackeagle-pre-community ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' testing of the by me maintaned packages before moving to ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[blackeagle-pre-community]<br />
Server = http://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== catalyst ====<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Upstream Page:''' http://catalyst.wirephire.com<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst]<br />
Server = http://mirror.hactar.xyz/Vi0L0/catalyst/$arch<br />
</nowiki>}}<br />
<br />
==== catalyst-hd234k ====<br />
<br />
* '''Maintainer:''' [[User:Vi0L0|Vi0l0]]<br />
* '''Description:''' ATI Catalyst proprietary drivers.<br />
* '''Upstream Page:''' http://catalyst.wirephire.com<br />
* '''Key-ID:''' 653C3094<br />
<br />
{{bc|<nowiki><br />
[catalyst-hd234k]<br />
Server = http://mirror.hactar.xyz/Vi0L0/catalyst-hd234k/$arch<br />
</nowiki>}}<br />
<br />
==== city ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#bgyorgy Balló György]<br />
* '''Description:''' Experimental/unpopular packages.<br />
* '''Upstream page:''' http://pkgbuild.com/~bgyorgy/city.html<br />
* '''Key-ID:''' Not needed, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[city]<br />
Server = http://pkgbuild.com/~bgyorgy/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== gustawho ====<br />
* '''Maintainer:''' [https://twitter.com/gustawho Gustavo Castro] <gustawho@openmailbox.com><br />
* '''Description:''' Scientific tools (mostly physics/math) and AUR packages that take long to build (such as {{AUR|firefox-kde-opensuse}}).<br />
* '''Package list:''' http://gustawho.com/pacman<br />
* '''Upstream page:''' http://gustawho.com<br />
* '''Key-ID:''' [https://gustawho.com/repo/gustawho.key 76578671]<br />
{{bc|<nowiki><br />
[gustawho]<br />
Server = https://gustawho.com/repo/$arch<br />
</nowiki>}}<br />
<br />
==== haskell-core ====<br />
<br />
See [[ArchHaskell#haskell-core]].<br />
<br />
==== haskell-happstack ====<br />
<br />
See [[ArchHaskell#haskell-happstack]].<br />
<br />
==== haskell-web ====<br />
<br />
See [[ArchHaskell#haskell-web]].<br />
<br />
==== herecura ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#idevolder Ike Devolder]<br />
* '''Description:''' additional packages not found in the ''community'' repository<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[herecura]<br />
Server = http://repo.herecura.be/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== infinality-bundle ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle main repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle]<br />
Server = http://bohoomil.com/repo/$arch<br />
</nowiki>}}<br />
<br />
==== ivasilev ====<br />
<br />
* '''Maintainer:''' [http://ivasilev.net Ianis G. Vasilev]<br />
* '''Description:''' A variety of packages, mostly my own software and AUR builds.<br />
* '''Upstream page:''' http://ivasilev.net/pacman<br />
* '''Key-ID:''' 436BB513<br />
<br />
{{bc|<nowiki><br />
[ivasilev]<br />
Server = http://ivasilev.net/pacman/$arch<br />
</nowiki>}}<br />
<br />
==== llvm-svn ====<br />
<br />
* '''Maintainer:''' [[User:Kerberizer|Luchesar V. ILIEV (kerberizer)]]<br />
* '''Description:''' [https://aur.archlinux.org/pkgbase/llvm-svn llvm-svn] and [https://aur.archlinux.org/pkgbase/lib32-llvm-svn lib32-llvm-svn] from AUR: the LLVM compiler infrastructure, the Clang frontend, and the tools associated with it<br />
* '''Key-ID:''' [https://sks-keyservers.net/pks/lookup?op=vindex&search=0x76563F75679E4525&fingerprint=on&exact=on 0x76563F75679E4525], fingerprint {{ic|D16C F22D 27D1 091A 841C 4BE9 7656 3F75 679E 4525}}<br />
<br />
{{bc|<nowiki><br />
[llvm-svn]<br />
Server = http://repos.uni-plovdiv.net/archlinux/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== miffe ====<br />
<br />
* '''Maintainer:''' [https://bbs.archlinux.org/profile.php?id=4059 miffe]<br />
* '''Description:''' AUR packages maintained by miffe, e.g. linux-mainline<br />
* '''Key ID:''' 313F5ABD<br />
<br />
{{bc|<nowiki><br />
[miffe]<br />
Server = http://arch.miffe.org/$arch/<br />
</nowiki>}}<br />
<br />
==== repo-ck ====<br />
<br />
* '''Maintainer:''' [[User:Graysky|graysky]]<br />
* '''Description:''' Kernel and modules with Brain Fuck Scheduler and all the goodies in the ck1 patch set.<br />
* '''Upstream page:''' [http://repo-ck.com repo-ck.com]<br />
* '''Wiki:''' [[repo-ck]]<br />
* '''Key-ID:''' 5EE46C4C<br />
<br />
{{bc|<nowiki><br />
[repo-ck]<br />
Server = http://repo-ck.com/$arch<br />
</nowiki>}}<br />
<br />
==== seblu ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/developers/#seblu Sébastien Luttringer]<br />
* '''Description:''' All seblu useful pre-built packages, some homemade (virtualbox-ext-oracle, linux-seblu-meta, bedup).<br />
* '''Key-ID:''' Not required, as maintainer is a Developer<br />
<br />
{{bc|<nowiki><br />
[seblu]<br />
Server = http://al.seblu.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== seiichiro ====<br />
<br />
* '''Maintainer:''' [https://www.seiichiro0185.org Stefan Brand (seiichiro0185)]<br />
* '''Description:''' AUR-packages I use frequently<br />
* '''Key-ID:''' 805517CC<br />
<br />
{{bc|<nowiki><br />
[seiichiro]<br />
Server = http://www.seiichiro0185.org/repo/$arch<br />
</nowiki>}}<br />
<br />
==== sergej-repo ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#spupykin Sergej Pupykin]<br />
* '''Description:''' psi-plus, owncloud-git, ziproxy, android, MySQL, and other stuff. Some packages also available for armv7h.<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{bc|<nowiki><br />
[sergej-repo]<br />
Server = http://repo.p5n.pp.ru/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== tredaelli-systemd ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#tredaelli Timothy Redaelli]<br />
* '''Description:''' systemd rebuilt with unofficial OpenVZ patch (kernel < 2.6.32-042stab111.1)<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|{{ic|[tredaelli-systemd]}} must be put before {{ic|[core]}} in {{ic|/etc/pacman.conf}}}}<br />
<br />
{{bc|<nowiki><br />
[tredaelli-systemd]<br />
Server = http://pkgbuild.com/~tredaelli/repo/systemd/$arch<br />
</nowiki>}}<br />
<br />
==== Webkit2Gtk-unstable ====<br />
* '''Maintainer:''' [[User:Mrmariusz|Mariusz Wojcik]]<br />
* '''Description:''' Latest Webkit2Gtk build for early adopters.<br />
* '''Upstream Page:''' https://webkitgtk.org/<br />
* '''Key-ID:''' 346854B5<br />
<br />
{{bc|<nowiki><br />
[home_mrmariusz_ArchLinux]<br />
Server = http://download.opensuse.org/repositories/home:/mrmariusz/ArchLinux/$arch<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
==== archaudio ====<br />
<br />
* '''Maintainer:''' [[User:Schivmeister|Ray Rashif]], [https://aur.archlinux.org/account/jhernberg Joakim Hernberg]<br />
* '''Description:''' Pro-audio packages<br />
<br />
{{bc|<nowiki><br />
[archaudio-production]<br />
Server = http://repos.archaudio.org/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxfr ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
* '''Upstream page:''' http://afur.archlinux.fr<br />
<br />
{{bc|<nowiki><br />
[archlinuxfr]<br />
Server = http://repo.archlinux.fr/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxgr ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:'''<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr]<br />
Server = http://archlinuxgr.tiven.org/archlinux/$arch<br />
</nowiki>}}<br />
<br />
==== archlinuxgr-kde4 ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' KDE4 packages (plasmoids, themes etc) provided by the Hellenic (Greek) Arch Linux community<br />
<br />
{{bc|<nowiki><br />
[archlinuxgr-kde4]<br />
Server = http://archlinuxgr.tiven.org/archlinux-kde4/$arch<br />
</nowiki>}}<br />
<br />
==== arsch ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' From users of orgizm.net<br />
<br />
{{bc|<nowiki><br />
[arsch]<br />
Server = http://arsch.orgizm.net/$arch<br />
</nowiki>}}<br />
<br />
==== cinnamon ====<br />
<br />
* '''Maintainer:''' [https://github.com/jnbek jnbek]<br />
* '''Description:''' Stable and actively developed Cinnamon packages (Applets, Themes, Extensions), plus others (Hotot, qBitTorrent, GTK themes, Perl modules, and more).<br />
<br />
{{bc|<nowiki><br />
[cinnamon]<br />
Server = http://archlinux.zoelife4u.org/cinnamon/$arch<br />
</nowiki>}}<br />
<br />
==== heftig ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/developers/#heftig Jan Steffens]<br />
* '''Description:''' Includes pulseaudio-git, pavucontrol-git, and firefox-developer-edition<br />
* '''Upstream page:''' https://bbs.archlinux.org/viewtopic.php?id=117157<br />
<br />
{{bc|<nowiki><br />
[heftig]<br />
Server = https://pkgbuild.com/~heftig/repo/$arch<br />
</nowiki>}}<br />
<br />
==== home_Minerva_W_Science_Arch_Extra ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' [[OpenFOAM]] packages.<br />
<br />
{{bc|<nowiki><br />
[home_Minerva_W_Science_Arch_Extra]<br />
SigLevel = Never<br />
Server = http://download.opensuse.org/repositories/home:/Minerva_W:/Science/Arch_Extra/$arch <br />
</nowiki>}}<br />
<br />
==== home_Pival81_arch_xapps_Arch_Extra ====<br />
<br />
* '''Maintainer:''' Valerio Pizzi ([https://github.com/Pival81 Pival81] <pival801@gmail.com>)<br />
* '''Description:''' [https://github.com/linuxmint/xapps XApps] packages.<br />
<br />
{{bc|<nowiki><br />
[home_Pival81_arch_xapps_Arch_Extra]<br />
SigLevel = Never<br />
Server = http://download.opensuse.org/repositories/home:/Pival81:/arch:/xapps/Arch_Extra/$arch <br />
</nowiki>}}<br />
<br />
==== mesa-git ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/people/trusted-users/#lcarlier Laurent Carlier]<br />
* '''Description:''' Mesa git builds for the ''testing'' and ''multilib-testing'' repositories<br />
<br />
{{bc|<nowiki><br />
[mesa-git]<br />
Server = http://pkgbuild.com/~lcarlier/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== noware ====<br />
<br />
* '''Maintainer:''' Alexandru Thirtheu (alex_giusi_tiri2@yahoo.com) ([https://bbs.archlinux.org/profile.php?id=65036 Forums]) ([[User:AGT|Wiki]]) ([http://direct.noware.systems.:2 Web Site])<br />
* '''Description:''' Software which I prefer being present in a repository, than being compiled each time. It eases software maintenance, I find. Almost anything goes.<br />
<br />
{{bc|<nowiki><br />
[noware]<br />
Server = http://direct.$repo.systems.:2/repository/arch/$arch<br />
</nowiki>}}<br />
<br />
==== openrc-eudev ====<br />
* '''Maintainer:''' [[User:Nous|nous]]<br />
* '''Description:''' OpenRC init system, initscripts, eudev and nosystemd packages from the AUR.<br />
* '''Upstream page:''' https://sourceforge.net/projects/archopenrc<br />
* '''Upstream sources:''' https://github.com/cromerc/arch-openrc, https://github.com/cromerc/arch-nosystemd and the AUR<br />
<br />
{{bc|<nowiki><br />
[openrc-eudev]<br />
Server=http://downloads.sourceforge.net/project/archopenrc/$repo/$arch<br />
Server=ftp://ftp.heanet.ie/mirrors/sourceforge/a/ar/archopenrc/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== pantheon ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#alucryd Maxime Gauduin]<br />
* '''Description:''' Repository containing Pantheon-related packages<br />
<br />
{{bc|<nowiki><br />
[pantheon]<br />
Server = http://pkgbuild.com/~alucryd/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== pietma ====<br />
<br />
* '''Maintainer:''' MartiMcFly <martimcfly@autorisation.de><br />
* '''Description:''' Arch User Repository packages [https://aur.archlinux.org/packages/?K=martimcfly&SeB=m I create or maintain.].<br />
* '''Upstream page:''' http://pietma.com/tag/aur/<br />
<br />
{{bc|<nowiki><br />
[pietma]<br />
SigLevel = Optional TrustAll<br />
Server = http://repository.pietma.com/nexus/content/repositories/archlinux/$arch/$repo<br />
</nowiki>}}<br />
<br />
==== trinity ====<br />
<br />
* '''Maintainer:''' [[User:Mmanley|Michael Manley]]<br />
* '''Description:''' [[Trinity]] Desktop Environment<br />
<br />
{{bc|<nowiki><br />
[trinity]<br />
Server = http://repo.nasutek.com/arch/contrib/trinity/$arch<br />
</nowiki>}}<br />
<br />
==== home_tarakbumba_archlinux_Arch_Extra_standard ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Contains a few pre-built AUR packages (zemberek, etc.)<br />
<br />
{{bc|<nowiki><br />
[home_tarakbumba_archlinux_Arch_Extra_standard]<br />
Server = http://download.opensuse.org/repositories/home:/tarakbumba:/archlinux/Arch_Extra_standard/$arch<br />
</nowiki>}}<br />
<br />
==== QOwnNotes ====<br />
<br />
* '''Maintainer:''' http://www.qownnotes.org<br />
* '''Description:''' QOwnNotes is a open source notepad and todo list manager with markdown support and [[ownCloud]] integration.<br />
<br />
{{bc|<nowiki><br />
[home_pbek_QOwnNotes_Arch_Extra]<br />
SigLevel = Optional TrustAll<br />
Server = http://download.opensuse.org/repositories/home:/pbek:/QOwnNotes/Arch_Extra/$arch<br />
</nowiki>}}<br />
<br />
== i686 only ==<br />
<br />
=== Signed ===<br />
<br />
==== xyne-i686 ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for the "i686" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|This includes all packages in [[#xyne-any|<nowiki>[xyne-any]</nowiki>]].}}<br />
<br />
{{bc|<nowiki><br />
[xyne-i686]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
==== andrwe ====<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' each program I'm using on x86_64 is compiled for i686 too<br />
* '''Upstream page:''' http://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/i686<br />
</nowiki>}}<br />
<br />
==== kpiche ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Stable OpenSync packages.<br />
<br />
{{bc|<nowiki><br />
[kpiche]<br />
Server = http://kpiche.archlinux.ca/repo<br />
</nowiki>}}<br />
<br />
==== kernel26-pae ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' PAE-enabled 32-bit kernel 2.6.39<br />
<br />
{{bc|<nowiki><br />
[kernel26-pae]<br />
Server = http://kernel26-pae.archlinux.ca/<br />
</nowiki>}}<br />
<br />
==== linux-pae ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' PAE-enabled 32-bit kernel 3.0<br />
<br />
{{bc|<nowiki><br />
[linux-pae]<br />
Server = http://pae.archlinux.ca/<br />
</nowiki>}}<br />
<br />
== x86_64 only ==<br />
<br />
=== Signed ===<br />
<br />
==== archzfs ====<br />
<br />
* '''Maintainer:''' [http://archzfs.com Jesus Alvarez (demizer)]<br />
* '''Description:''' Packages for ZFS on Arch Linux.<br />
* '''Upstream page:''' https://github.com/archzfs/archzfs<br />
* '''Key-ID:''' 5E1ABF240EE7A126<br />
<br />
{{bc|<nowiki><br />
[archzfs]<br />
Server = http://archzfs.com/$repo/x86_64<br />
</nowiki>}}<br />
<br />
==== ashleyis ====<br />
<br />
* '''Maintainer:''' Ashley Towns ([https://aur.archlinux.org/account/ashleyis/ ashleyis])<br />
* '''Description:''' Debug versions of SDL, chipmunk, libtmx and other misc game libraries. also swift-lang and some other AUR packages <br />
* '''Key-ID:''' B1A4D311<br />
<br />
{{bc|<nowiki><br />
[ashleyis]<br />
Server = http://arch.ashleytowns.id.au/repo/$arch<br />
</nowiki>}}<br />
<br />
==== atom ====<br />
<br />
* '''Maintainer:''' Nicola Squartini ([https://github.com/tensor5 tensor5])<br />
* '''Upstream page:''' https://github.com/tensor5/arch-atom<br />
* '''Description:''' Atom text editor and Electron<br />
* '''Key-ID:''' B0544167<br />
<br />
{{bc|<nowiki><br />
[atom]<br />
Server = http://noaxiom.org/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== aurpackages ====<br />
<br />
* '''Maintainer:''' Mark Vainomaa <mikroskeem@mikroskeem.eu><br />
* '''Description:''' AUR packages I tend to use every day. Will be updated weekly<br />
* '''Key-ID:''' 2A07EF8371AFC028<br />
<br />
{{bc|<nowiki><br />
[aurpackages]<br />
SigLevel = Required<br />
Server = https://r.mikroskeem.eu<br />
</nowiki>}}<br />
<br />
==== boyska64 ====<br />
<br />
* '''Maintainer:''' boyska<br />
* '''Description:''' Personal repository: cryptography, sdr, mail handling and misc; don't expect packages to be upgraded promptly, I am a zealot of slackness<br />
* '''Key-ID:''' 0x7395DCAE58289CA9<br />
<br />
{{bc|<nowiki><br />
[boyska64]<br />
Server = http://boyska.degenerazione.xyz/archrepo<br />
</nowiki>}}<br />
<br />
==== coderkun-aur ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with random software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.coderkun.de/arch<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [https://www.coderkun.de/coderkun.asc https://www.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== coderkun-aur-audio ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/coderkun/ coderkun]<br />
* '''Description:''' AUR packages with audio-related (realtime kernels, lv2-plugins, …) software. Supporting package deltas and package and database signing.<br />
* '''Upstream page:''' https://www.coderkun.de/arch<br />
* '''Key-ID:''' A6BEE374<br />
* '''Keyfile:''' [https://www.coderkun.de/coderkun.asc https://www.coderkun.de/coderkun.asc]<br />
<br />
{{bc|<nowiki><br />
[coderkun-aur-audio]<br />
Server = http://arch.coderkun.de/$repo/$arch/<br />
</nowiki>}}<br />
<br />
==== decryptedepsilon ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/decryptedepsilon/ decryptedepsilon]<br />
* '''Description:''' AUR packages that I usually install (dropbox, jdk, atom, spotify, tor-browser-en, paper-icon-theme-git)<br />
* '''Upstream page:''' http://www.decryptedepsilon.bl.ee/repo/x86_64<br />
* '''Key-ID:''' 60442BA4<br />
* '''Keyfile:''' [http://www.decryptedepsilon.bl.ee/decryptedepsilon.asc http://www.decryptedepsilon.bl.ee/decryptedepsilon.asc]<br />
<br />
{{bc|<nowiki><br />
[decryptedepsilon]<br />
Server = http://decryptedepsilon.bl.ee/repo/$arch/<br />
</nowiki>}}<br />
<br />
==== eatabrick ====<br />
<br />
* '''Maintainer:''' bentglasstube<br />
* '''Description:''' Packages for software written by (and a few just compiled by) bentglasstube.<br />
<br />
{{bc|<nowiki><br />
[eatabrick]<br />
SigLevel = Required<br />
Server = http://repo.eatabrick.org/$arch<br />
</nowiki>}}<br />
<br />
==== freifunk-rheinland ====<br />
<br />
* '''Maintainer:''' nomaster<br />
* '''Description:''' Packages for the Freifunk project: batman-adv, batctl, fastd and dependencies.<br />
<br />
{{bc|<nowiki><br />
[freifunk-rheinland]<br />
Server = http://mirror.fluxent.de/archlinux-custom/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== holo ====<br />
<br />
* '''Maintainer:''' Stefan Majewsky <holo-pacman@posteo.de> (please prefer to report issues at [https://github.com/majewsky/holo-pacman-repo/issues Github])<br />
* '''Description:''' Packages for [https://holocm.org Holo configuration management], including compatible plugins and tools.<br />
* '''Upstream page:''' https://github.com/majewsky/holo-pacman-repo<br />
* '''Package list:''' https://repo.holocm.org/archlinux/x86_64<br />
* '''Key-ID:''' 0xF7A9C9DC4631BD1A<br />
<br />
{{bc|<nowiki><br />
[holo]<br />
Server = https://repo.holocm.org/archlinux/x86_64<br />
</nowiki>}}<br />
<br />
==== infinality-bundle-multilib ====<br />
<br />
* '''Maintainer:''' [http://bohoomil.com/ bohoomil]<br />
* '''Description:''' infinality-bundle multilib repository.<br />
* '''Upstream page:''' [http://bohoomil.com/ Infinality bundle & fonts]<br />
* '''Key-ID:''' 962DDE58<br />
<br />
{{bc|<nowiki><br />
[infinality-bundle-multilib]<br />
Server = http://bohoomil.com/repo/multilib/$arch<br />
</nowiki>}}<br />
<br />
==== linux-kalterfx ====<br />
<br />
* '''Maintainer''': Anna Ivanova ([https://aur.archlinux.org/account/kalterfive kalterfive])<br />
* '''Upstream page''': https://deadsoftware.ru/files/linux-kalterfx<br />
* '''Description''': A stable kernel with [[#Linux-pf|pf-kernel]]{{Broken section link}}, [[reiser4]] and smack<br />
* '''Key-ID''': A0C04F15<br />
* '''Keyfile''': https://keybase.io/kalterfive/key.asc<br />
<br />
{{bc|<nowiki><br />
[linux-kalterfx]<br />
Server = https://deadsoftware.ru/files/linux-kalterfx/repo/$arch<br />
</nowiki>}}<br />
<br />
==== markzz ====<br />
<br />
* '''Maintainer:''' [[User:Markzz|Mark Weiman (markzz)]]<br />
* '''Description:''' Packages that markzz maintains or uses on the AUR; this includes Linux with the vfio patchset ({{AUR|linux-vfio}} and {{AUR|linux-vfio-lts}}), and packages to maintain a Debian package repository.<br />
* '''Key ID:''' 3CADDFDD<br />
<br />
{{Note|If you want to add the key by installing the ''markzz-keyring'' package, temporarily add {{ic|1=SigLevel = Never}} into the repository section.}}<br />
<br />
{{bc|<nowiki><br />
[markzz]<br />
Server = http://repo.markzz.com/arch/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== mladoux ====<br />
* '''Maintainer''' [[mailto:mark.ladoux@gmail.com Mark LaDoux]]<br />
* '''Description''' Packages that Mark uses on his own systems. updated regularly ( usually weekly, schedule permitting ).<br />
* '''Upstream Page''' https://repo.markladoux.com/<br />
* '''Key ID''' 8C81228392DA8379BA1A871D07AD53FA02DC4E08<br />
<br />
<br />
{{bc|<nowiki><br />
[mladoux]<br />
Server = https://repo.markladoux.com/archlinux/$arch/<br />
</nowiki>}}<br />
<br />
==== qt-debug ====<br />
<br />
* '''Maintainer:''' [http://blog.the-compiler.org/?page_id=36 The Compiler]<br />
* '''Description:''' Qt/PyQt builds with debug symbols<br />
* '''Upstream page:''' https://github.com/qutebrowser/qt-debug-pkgbuild<br />
* '''Key-ID:''' D6A1C70FE80A0C82<br />
<br />
{{bc|<nowiki><br />
[qt-debug]<br />
Server = http://qutebrowser.org/qt-debug/$arch<br />
</nowiki>}}<br />
<br />
==== quarry ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/developers/#anatolik anatolik]<br />
* '''Description:''' Arch binary repository for [http://rubygems.org/ Rubygems] packages. See [https://bbs.archlinux.org/viewtopic.php?id=182729 forum announcement] for more information.<br />
* '''Sources:''' https://github.com/anatol/quarry<br />
* '''Key-ID:''' Not needed, as maintainer is a developer<br />
<br />
{{bc|<nowiki><br />
[quarry]<br />
Server = http://pkgbuild.com/~anatolik/quarry/x86_64/<br />
</nowiki>}}<br />
<br />
==== siosm-aur ====<br />
<br />
* '''Maintainer:''' [https://tim.siosm.fr/about/ Timothee Ravier]<br />
* '''Description:''' packages also available in the Arch User Repository, sometimes with minor fixes<br />
* '''Upstream page:''' https://tim.siosm.fr/repositories/<br />
* '''Key-ID:''' 78688F83<br />
<br />
{{bc|<nowiki><br />
[siosm-aur]<br />
Server = http://siosm.fr/repo/$repo/<br />
</nowiki>}}<br />
<br />
==== subtitlecomposer ====<br />
<br />
* '''Maintainer:''' Mladen Milinkovic (maxrd2)<br />
* '''Description:''' Subtitle Composer stable and nightly builds<br />
* '''Upstream page:''' https://github.com/maxrd2/subtitlecomposer<br />
* '''Key-ID:''' EF9D9B26<br />
<br />
{{bc|<nowiki><br />
[subtitlecomposer]<br />
Server = http://smoothware.net/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== xyne-x86_64 ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#xyne Xyne]<br />
* '''Description:''' A repository for Xyne's own projects containing packages for the "x86_64" architecture.<br />
* '''Upstream page:''' http://xyne.archlinux.ca/projects/<br />
* '''Key-ID:''' Not required, as maintainer is a TU<br />
<br />
{{Note|This includes all packages in [[#xyne-any|<nowiki>[xyne-any]</nowiki>]].}}<br />
<br />
{{bc|<nowiki><br />
[xyne-x86_64]<br />
Server = http://xyne.archlinux.ca/repos/xyne<br />
</nowiki>}}<br />
<br />
=== Unsigned ===<br />
<br />
{{Note|Users will need to add the following to these entries: {{ic|1=SigLevel = PackageOptional}}}}<br />
<br />
==== alucryd ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages Maxime Gauduin maintains (or not) in the AUR.<br />
<br />
{{bc|<nowiki><br />
[alucryd]<br />
Server = http://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
==== alucryd-multilib ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#alucryd Maxime Gauduin]<br />
* '''Description:''' Various packages needed to run Steam without its runtime environment.<br />
<br />
{{bc|<nowiki><br />
[alucryd-multilib]<br />
Server = http://pkgbuild.com/~alucryd/$repo/x86_64<br />
</nowiki>}}<br />
<br />
==== andrwe ====<br />
<br />
* '''Maintainer:''' Andrwe Lord Weber<br />
* '''Description:''' contains programs I'm using on many systems<br />
* '''Upstream page:''' http://andrwe.org/linux/repository<br />
<br />
{{bc|<nowiki><br />
[andrwe]<br />
Server = http://repo.andrwe.org/x86_64<br />
</nowiki>}}<br />
<br />
==== brtln ====<br />
<br />
* '''Maintainer:''' [https://www.archlinux.org/trustedusers/#bpiotrowski Bartłomiej Piotrowski]<br />
* '''Description:''' Some VCS packages.<br />
<br />
{{bc|<nowiki><br />
[brtln]<br />
Server = http://pkgbuild.com/~barthalion/brtln/$arch/<br />
</nowiki>}}<br />
<br />
==== imake ====<br />
<br />
* '''Maintainer:''' GRV <grvconstanta@gmail.com><br />
* '''Description:''' Important AUR packages that are pre-compiled and ready to install with pacman.<br />
<br />
{{bc|<nowiki><br />
[imake]<br />
SigLevel = Never<br />
Server = http://imake.ddns.net/$arch<br />
</nowiki>}}<br />
<br />
==== jkanetwork ====<br />
<br />
* '''Maintainer:''' kprkpr <kevin01010 at gmail dot com><br />
* '''Maintainer:''' Joselucross <jlgarrido97 at gmail dot com><br />
* '''Description:''' Packages of AUR like pimagizer,stepmania,yaourt,linux-mainline,wps-office,grub-customizer,some IDE.. Open for all that wants to contribute<br />
* '''Upstream page:''' http://repo.jkanetwork.com/<br />
<br />
{{bc|<nowiki><br />
[jkanetwork]<br />
Server = http://repo.jkanetwork.com/repo/$repo/<br />
</nowiki>}}<br />
<br />
==== matrixim ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/mytbk Iru Cai]<br />
* '''Description:''' Packages related to [https://matrix.org Matrix] messaging protocol, and software run on https://matrixim.cc -- my website and Matrix homeserver.<br />
<br />
{{bc|<nowiki><br />
[matrixim]<br />
Server = https://repo.matrixim.cc/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== mikroskeem ====<br />
<br />
* '''Maintainer:''' Mark Vainomaa <mikroskeem@mikroskeem.eu><br />
* '''Description:''' Openarena, i3 wm, and neovim-related packages<br />
<br />
'''NOTE:''' This repo isn't maintained anymore. It will be shut down on '''01-01-2017'''. Use my ''aurpackages'' repo instead.<br />
<br />
{{bc|<nowiki><br />
[mikroskeem]<br />
Server = https://nightsnack.cf/~mark/arch-pkgs<br />
</nowiki>}}<br />
<br />
==== mingw-w64 ====<br />
<br />
* '''Maintainer:''' [https://aur.archlinux.org/account/ant32 Philip] and [https://aur.archlinux.org/account/nic96 Jeromy] Reimer<br />
* '''Description:''' Almost all mingw-w64 packages in the AUR.<br />
<br />
{{bc|<nowiki><br />
[mingw-w64]<br />
Server = http://downloads.sourceforge.net/project/mingw-w64-archlinux/$arch<br />
#Server = http://amr.linuxd.org/archlinux/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
==== pkgbuild-current ====<br />
<br />
* '''Maintainer''': [https://fusion809.github.io Brenton Horne] (fusion809)<br />
* '''Description''': most of the packages in the [https://github.com/fusion809/PKGBUILDs fusion809/PKGBUILDs] GitHub repository (please report bugs here). Full list of packages can be found [https://github.com/fusion809/PKGBUILDs/releases/tag/current here].<br />
* '''Upstream page''': https://fusion809.github.io/PKGBUILDs<br />
<br />
{{bc|<nowiki><br />
[pkgbuild-current]<br />
Server = https://github.com/fusion809/PKGBUILDs/releases/download/current<br />
</nowiki>}}<br />
<br />
==== pnsft-pur ====<br />
<br />
* '''Maintainer:'''<br />
* '''Description:''' Japanese input method packages Mozc (vanilla) and libkkc<br />
<br />
{{bc|<nowiki><br />
[pnsft-pur]<br />
Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/x86_64<br />
</nowiki>}}<br />
<br />
==== rakudo ====<br />
<br />
* '''Maintainer:''' spider-mario <spidermario@free.fr><br />
* '''Description:''' Rakudo Perl6<br />
<br />
{{bc|<nowiki><br />
[rakudo]<br />
Server = https://spider-mario.quantic-telecom.net/archlinux/$repo/$arch<br />
</nowiki>}}<br />
<br />
==== zrootfs ====<br />
<br />
* '''Maintainer:''' Isabell Cowan <isabellcowan@gmail.com><br />
* '''Description:''' For Haswell and Broadwell architecture processors with size in mind (out of date 2016-03-14).<br />
<br />
{{bc|<nowiki><br />
[zrootfs]<br />
Server = http://www.izzette.com/izzi/zrootfs-old<br />
</nowiki>}}</div>Sebluhttps://wiki.archlinux.org/index.php?title=Enlightenment&diff=455914Enlightenment2016-11-03T15:56:51Z<p>Seblu: /* GNOME Keyring integration */ use .pam_environment which don't relying on a login shell</p>
<hr />
<div>[[Category:Desktop environments]]<br />
[[cs:Enlightenment]]<br />
[[de:Enlightenment]]<br />
[[es:Enlightenment]]<br />
[[fr:Enlightenment]]<br />
[[it:Enlightenment]]<br />
[[ja:Enlightenment]]<br />
[[lt:Enlightenment]]<br />
[[pl:Enlightenment]]<br />
[[ru:Enlightenment]]<br />
[[zh-cn:Enlightenment]]<br />
{{Related articles start}}<br />
{{Related|Desktop environment}}<br />
{{Related|Display manager}}<br />
{{Related|Window manager}}<br />
{{Related articles end}}<br />
<br />
== Enlightenment ==<br />
<br />
This comprises both the [https://www.enlightenment.org/ Enlightenment] [[window manager]] and Enlightenment Foundation Libraries (EFL), which provide additional desktop environment features such as a toolkit, object canvas, and abstracted objects. It has been under development since 2005, but in February 2011 the core EFLs saw their first stable 1.0 release.<br />
<br />
=== Installation ===<br />
<br />
Enlightenment can be [[installed]] with the package {{Pkg|enlightenment}}.<br />
<br />
You might also want to install {{Pkg|terminology}}, which is an EFL-based terminal emulator that integrates well with Enlightenment.<br />
<br />
==== From the AUR ====<br />
<br />
{{Warning|Some of these PKGBUILDs use unstable development code. Use them at your own risk.}}<br />
<br />
Development PKGBUILDs which download and install the very latest development code are available as {{AUR|enlightenment-git}} and its dependencies.<br />
<br />
The following are EFL-based applications, most in an early stage of development and not yet released:<br />
* {{AUR|ecrire-git}} – Ecrire text editor<br />
* {{AUR|elbow-git}} – Elbow web browser<br />
* {{AUR|eluminance-git}} – Eluminance photo browser<br />
* {{AUR|enjoy-git}} – [https://trac.enlightenment.org/e/wiki/Enjoy Enjoy] music player<br />
* {{AUR|eperiodique}} – [http://eperiodique.sourceforge.net/ Eperiodique] periodic table viewer<br />
* {{AUR|ephoto-git}} – [https://trac.enlightenment.org/e/wiki/Ephoto Ephoto] picture viewer<br />
* {{AUR|epymc-git}} – E Python Media Center<br />
* {{AUR|equate-git}} – Equate calculator<br />
* {{AUR|eruler-git}} – Eruler on-screen ruler and measurement tools<br />
* {{AUR|efbb-git}} – Escape from Booty Bay angry birds style game<br />
* {{AUR|elemines-git}} – [http://elemines.sourceforge.net/ Elemines] minesweeper style game<br />
* {{AUR|espionage-git}} – Espionage D-Bus inspector<br />
* {{AUR|ev-git}} – ev simple picture viewer<br />
* {{AUR|rage}} and {{AUR|rage-git}} – Rage video player<br />
<br />
=== Starting Enlightenment ===<br />
<br />
Simply choose ''Enlightenment'' session from your favourite [[display manager]] or configure [[xinitrc]] to start it from the console.<br />
<br />
==== Entrance ====<br />
<br />
{{Warning|Entrance is highly experimental, and does not have proper systemd support. Use it at your own risk.}}<br />
<br />
Enlightenment has a new display manager called Entrance, which is provided by the {{AUR|entrance-git}} package. Entrance is quite sophisticated and its configuration is controlled by {{ic|/etc/entrance/entrance.conf}}. It can be used by enabling {{ic|entrance.service}} [[systemd#Using units|using systemd]].<br />
<br />
==== Starting Enlightenment manually ====<br />
<br />
If you prefer to start Enlightenment manually from the console, add the following line to your {{ic|~/.xinitrc}} file:<br />
{{hc|~/.xinitrc|<br />
exec enlightenment_start<br />
}}<br />
<br />
After that Enlightenment can be launched by typing {{ic|startx}}. See [[xinitrc]] for details.<br />
<br />
=== Configuration ===<br />
<br />
Enlightenment has a sophisticated configuration system that can be accessed from the Main menu's Settings submenu.<br />
<br />
==== Network ====<br />
<br />
'''ConnMan'''<br />
<br />
Enlightenment's preferred network manager is [[Connman|ConnMan]] which can be installed from the {{Pkg|connman}} package. Follow the instructions on [[Connman]] to do the configuration.<br />
<br />
For extended configuration, you may also install Econnman (available in AUR as {{AUR|econnman}} or {{AUR|econnman-git}}) and its associated dependencies.<br />
<br />
'''Adding the ConnMan Gadget to the Shelf'''<br />
<br />
# Settings -> Extensions -> Modules<br />
# under System<br />
# Connection Manager<br />
# Load that (select then hit ''Load'').<br />
# Right-click on the shelf at the bottom of the screen.<br />
# Go to Shelf -> Contents<br />
# Then, just scroll around and find ''ConnMan''.<br />
# and hit ''Add''.<br />
<br />
'''NetworkManager'''<br />
<br />
You can also use {{Pkg|networkmanager}} to manage your network connections. Follow the instructions on [[NetworkManager]] to do the configuration.<br />
<br />
You probably also need {{Pkg|network-manager-applet}} to help with your settings. You may want to add it to the start up programs so every time Enlightenment starts it appears on systray. For that you should go to ''Settings Panel > Apps > Startup Applications > System'' and activate ''Network''.<br />
<br />
Whilst network connectivity will work, the applet itself will not be visible without a [[#System tray]].<br />
<br />
==== Polkit agent ====<br />
<br />
Enlightenment does not ship with a [[Polkit#Authentication agents|graphical polkit authentication agent]]. If you want to access some privileged actions (e.g. mount a filesystem on a system device), you have to install one and autostart it. For that you should go to ''Settings Panel > Apps > Startup Applications > System'' and activate it. There is an EFL based authentication agent available in the AUR, {{AUR|polkit-efl-git}}.<br />
<br />
==== GNOME Keyring integration ====<br />
<br />
It is possible to use gnome-keyring in Enlightenment. However, at the time of writing, you need a small hack to make it work in full.<br />
First, you must tell Enlightenment to autostart gnome-keyring. For that you should go to ''Settings Panel > Apps > Startup Applications > System'' and activate ''Certificate and Key Storage'', ''GPG Password Agent'', ''SSH Key Agent'' and "Secret Storage Service".<br />
After this, you should edit your {{ic|~/.pam_environment}} and add the following:<br />
<br />
#Set gnome-keyring as the ssh authentication agent<br />
SSH_AUTH_SOCK=/run/user/${UID}/keyring/ssh<br />
<br />
This "hack" is used to override the automatic setting of the variable by "enlightenment-start" from "ssh-agent" to gnome-keyring. <br />
<br />
More information on this topic in the [[GNOME Keyring]] article.<br />
<br />
==== System tray ====<br />
<br />
{{Note|Since Enlightenment 20, Xembed support has been removed [https://twitter.com/_enlightenment_/status/538000507315314688] meaning that many 'legacy' applets can no longer be displayed in the Systray. To use these applets, you will need to use a standalone system tray application such as {{Pkg|stalonetray}} instead.}}<br />
<br />
Enlightenment has support for a system tray but it is disabled by default. To enable the system tray, open the Enlightenment main menu, navigate to the ''Settings'' submenu and click on the ''Modules'' option. Scroll down until you see the ''Systray'' option. Highlight that option and click the ''Load'' button. Now that the module has been loaded, it can be added to the shelf. Right click on the shelf you wish to add the Systray to, hightlight the ''Shelf'' submenu and click on the ''Contents'' option. Scroll down until you see ''Systray''. Highlight that option and click the ''Add'' button.<br />
<br />
==== Notifications ====<br />
<br />
Enlightenment provides a notification server through its Notification extension.<br />
* Notifications may be displayed in any corner of the "screen" as defined below<br />
* Available screen policies are Primary Screen, Current Screen, All Screens, and Xinerama<br />
* Notifications may be filtered based on urgency (Low, Normal, or Critical in any combination)<br />
* A default notification timeout may be set and optionally enforced for all notifications<br />
* The notification server may also optionally ignore replace ID requests<br />
<br />
=== Themes ===<br />
<br />
More themes to customize the look of Enlightenment are available from:<br />
* [http://exchange.enlightenment.org/theme exchange.enlightenment.org]<br />
* [http://e17-stuff.org/index.php?xcontentmode=7000 e17-stuff.org]<br />
* [http://relighted.c0n.de/#100 relighted.c0n.de] for the default theme in 200 different colors<br />
* [http://git.enlightenment.org/themes git.enlightenment.org] (git clone the theme you like, run 'make' and you end up with a .edj theme file)<br />
* [http://packages.bodhilinux.com/bodhi/pool/stable/b/ packages.bodhilinux.com] has a good collection (you will need to extract the .edj file from the .deb; bsdtar will do this and is part of the base ArchLinux install). A nice catalog can be seen at [https://web.archive.org/web/20140120083020/http://art.bodhilinux.com/doku.php?id=bodhi_e17_themes_v3 their wiki].<br />
<br />
You can install the themes (coming in .edj format) using the theme configuration dialog or by moving them to {{ic|~/.e/e/themes}}. <br />
<br />
{{Note|Enlightenment does not provide a stable theme API, and there have been numerous theme API changes over the years, even after E17 was released. Themes that have not been updated regularly are unlikely to work.}}<br />
<br />
{{Tip|1=To make GTK and Qt applications match the default theme of Enlightenment you can download a theme like the [http://gnome-look.org/content/show.php/?content=163472 E17 GTK theme], place it in {{ic|~/.themes/}} and select application themes from Enlightenments settings, and set it to that, this will make all GTK2 and GTK3 applications match the default Enlightenment theme, you can then configure Qt applications (or configure Qt's default settings) to use the Gtk+ theme so it will mimic the theme your GTK applications are using, this way you can make sure most applications will blend in perfectly with your default enlightenment theme. See also [[Uniform look for Qt and GTK applications]].}}<br />
<br />
==== GTK+ ====<br />
<br />
To alter the GTK+ theme, go to ''Settings > All > Look > Application Theme''.<br />
<br />
=== Modules and Gadgets ===<br />
<br />
;Module:Name used in enlightenment to refer to the "backing" code for a gadget. <br />
;Gadget:Front-end or user interface that should help the end users of Enlightenment do something.<br />
<br />
Many Modules provide Gadgets that can be added to your desktop or on a shelf. Some Modules (such as CPUFreq) only provide a single Gadget while others (such as Composite) provide additional features without any gadgets. Note that certain gadgets such as Systray can only be added to a shelf while others such as Moon can only be loaded on the desktop. <br />
<br />
==== "Extra" modules ====<br />
<br />
{{Warning|These are 3rd party modules and not officially supported by the Enlightenment developers. They are also pulled directly from git, so they are development code that may or may not work at any time. Use at your own risk.}}<br />
Beyond the modules described here, more "extra" modules are available from {{AUR|e-modules-extra-git}}.<br />
<br />
'''Places'''<br />
<br />
Places is a gadget that will help you browse files on various devices you might plug into your computer, like phones, cameras, or other various storage devices you might plug into the usb port.<br />
<br />
Available from {{AUR|places-git}}{{Broken package link|{{aur-mirror|places-git}}}}.<br />
{{Note|This module is no longer required for auto-mounting external devices in Enlightenment}}<br />
<br />
'''Scale Windows'''<br />
<br />
The ''Scale Windows'' module, which requires compositing to be enabled, adds several features. The scale windows effect shrinks all open windows and brings them all into view. This is known in "Mission Control" in macOS. The scale pager effect zooms out and shows all desktops as a wall, like the compiz expo plugin. Both can be added to the desktop as a gadget or bound to a key binding, mouse binding or screen edge binding. <br />
<br />
Some people like to change the standard window selection key binding {{ic|ALT + Tab}} to use Scale Windows to select windows. To change this setting, you navigate to ''Menu > Settings > Settings Panel > Input > Keys''. From here, you can set any key binding you would like. <br />
<br />
To replace the window selection key binding functionality with Scale Windows, scroll through the left panel until you find the ''ALT'' section and then find and select {{ic|ALT + Tab}}. Then, scroll through the right panel looking for the "Scale Windows" section and choose either ''Select Next'' or ''Select Next (All)'' depending on whether you would like to see windows from only the current desktop or from all desktops and click ''Apply'' to save the binding.<br />
<br />
Available from {{AUR|comp-scale-git}}{{Broken package link|{{aur-mirror|comp-scale-git}}}}.<br />
<br />
<br />
=== Default Keybindings ===<br />
<br />
{| class="wikitable"<br />
|+ Some default Enlightenment keybindings<br />
| Shift + F10 <br />
| Maximize Vertically <br />
|-<br />
| Ctrl + Menu <br />
| Show "Clients" (windows) Menu <br />
|-<br />
| Alt + Escape <br />
| Show "Everything Launcher" (apps, windows, etc) <br />
|-<br />
| Win + Left <br />
| Maximize Left <br />
|-<br />
| Win + Right <br />
| Maximize Right <br />
|-<br />
| Alt + Shift + F10 <br />
| Maximize Horizontally <br />
|-<br />
| Alt + Shift + Left <br />
| Flip to the Desktop on the Left <br />
|-<br />
| Alt + Shift + Right <br />
| Flip to the Desktop on the Right <br />
|-<br />
| Ctrl + Alt + D <br />
| Show the desktop <br />
|-<br />
| Ctrl + Alt + F <br />
| Toggle Fullscreen <br />
|-<br />
| Ctrl + Alt + I <br />
| Toggle iconic mode <br />
|-<br />
| Ctrl + Alt + K <br />
| Kill window<br />
|-<br />
| Ctrl + Alt + L <br />
| Lock the desktop <br />
|-<br />
| Ctrl + Alt + N <br />
| Maximize Window <br />
|-<br />
| Ctrl + Alt + R <br />
| Toggle Shade up <br />
|-<br />
| Ctrl + Alt + W <br />
| Window menu <br />
|-<br />
| Ctrl + Alt + X <br />
| Close a window <br />
|-<br />
| Ctrl + Alt + Down <br />
| Lower <br />
|-<br />
| Ctrl + Alt + Up <br />
| Raise <br />
|-<br />
| Ctrl + Alt + Left <br />
| Flip to desktop on left <br />
|-<br />
| Ctrl + Alt + Right <br />
| Flip to desktop on right <br />
|-<br />
| Ctrl + Alt + Delete <br />
| End session dialog<br />
|-<br />
| Ctrl + Alt + Insert <br />
| Launch the default terminal <br />
|}<br />
<br />
=== Troubleshooting ===<br />
<br />
If you find some unexpected behavior, there are a few things you can do:<br />
# try to see if the same behavior exists with the default theme<br />
# disable any 3rd party modules you may have installed<br />
# backup {{ic|~/.e}} and remove it (e.g. {{ic|mv ~/.e ~/.e.back}})<br />
<br />
If you are sure you found a bug please report it [https://phab.enlightenment.org/maniphest/task/create/ directly upstream]. <br />
<br />
==== Compositing ====<br />
<br />
When the configuration needs to be reset and the settings windows can no longer be approached, configuration for the compositor can be reset using the hardcoded keybinding {{ic|Ctrl + Alt + Shift + Home}}.<br />
<br />
==== Unreadable fonts ====<br />
<br />
If fonts are too small and your screen is unreadable, be sure the right font packages are installed. {{Pkg|ttf-dejavu}} and {{Pkg|ttf-bitstream-vera}} are valid candidates.<br />
<br />
You can set scaling under ''Settings > Settings Panel > Look > Scaling''.<br />
<br />
==== Backlight always dimmed ====<br />
<br />
You may find that Enlightenment routinely dims the backlight to 30% on logout and will only restore it to 100% when you log into another Enlightenment session. This is especially problematic when using another desktop environment alongside Enlightenment as the backlight will not automatically be restored to its normal level when using that desktop environment. To fix this issue, open the Enlightenment ''Settings Panel'' and, under the ''Look'' tab, click on the ''Composite'' option. Tick the ''Don't fade backlight'' box and click ''OK''.<br />
<br />
==== Inconsistent cursor theme ====<br />
<br />
You may find that the cursor theme for the desktop is different to the one used in applications such as [[Firefox]]. This is because desktop applications are using X cursor themes whilst Enlightenment has its own set of cursor themes. For consistency, you can set Enlightenment to always use the X cursor theme. To do this, open the Enlightenment ''Settings Panel'' and click on the ''Input'' tab. Click on the ''Mouse'' option. Change the theme from ''Enlightenment'' to ''X'' and click ''OK''. You should now find that the same cursor theme is used everywhere. If the X cursor theme itself is not always consistent, see [[Cursor themes#XDG specification]].<br />
<br />
==== Background images ====<br />
<br />
You have to copy the desired wallpapers into {{ic|~/.e/e/backgrounds/}}<br />
<br />
MMB or RMB anywhere on the desktop will give access to the settings, select {{ic|/Desktop/Backgrounds/}}<br />
<br />
Any new image copied in the {{ic|~/.e/e/backgrounds/}} folder will get the list of available backgrounds auto-updated. Select desired wallpaper from drop-down menu. Inside the appropriate tabs in the global settings, you can adjust things like tiling of the background image, filling screen and such.<br />
<br />
== Enlightenment DR16 ==<br />
<br />
Enlightenment, Development Release 16 was first released in 2000, and reached version 1.0 in 2009. Originally, the DR16 stood for the 0.16 version of the Enlightenment project. You'll find it as "Enlightenment16" now in the Arch repositories, it is still under development today, regularly updated by its maintainer Kim 'kwo' Woelders. With compositing, shadows and transparencies, E16 kept all of the speed that presided over its foundation by original author Carsten "Rasterman" Haitzler but with up to date refinement.<br />
<br />
=== To install E16 ===<br />
<br />
Install {{Pkg|enlightenment16}}.<br />
<br />
See {{ic|/usr/share/doc/e16/e16.html}} for in depth documentation. The man page is at {{ic|man e16}}, not {{ic|man enlightenment}}, and only gives startup options.<br />
<br />
=== Basic Configuration ===<br />
<br />
Most configuration files for E16 reside in {{ic|~/.e16}} and are text-based, editable at will. That includes the Menus too.<br />
<br />
Shortcut keys can be either modified by hand, or with the e16keyedit software provided as source on the [http://sourceforge.net/projects/enlightenment/ sourceforge] page of the e16 project, or from the {{AUR|e16keyedit}}{{Broken package link|{{aur-mirror|e16keyedit}}}} package. Note that the keyboard shortcuts file is not created in {{ic|~/.e16}} by default. You can copy the packaged version to your home directory if you wish to make changes:<br />
$ cp /usr/share/e16/config/bindings.cfg ~/.e16<br />
<br />
<br />
==== Start/Restart/Stop Scripts ====<br />
<br />
Create an Init, a Start and a Stop folder in your {{ic|~/.e16}} folder: any .sh script found there will either be executed at Startup (from Init folder), at each Restart (from Start folder), or at Shutdown (from Stop folder); provided you allowed it trough the MMB / settings / session / <enable scripts> button and made them executable with {{ic|chmod +x '''yourscript.sh'''}}. Typical examples involves starting pulseaudio or your favorite network manager applet.<br />
<br />
==== Compositor ====<br />
<br />
Shadows, Transparent effects ''et all'' can be found in MMB or RMB /Settings, under Composite .<br />
<br />
== See also ==<br />
* [http://www.enlightenment.org/ Enlightenment Homepage]<br />
* [http://exchange.enlightenment.org/ Enlightenment Exchange]<br />
* [http://docs.enlightenment.org/ Enlightenment Developer Documentation]<br />
* [http://www.bodhilinux.com/e17guide/e17guideEN/ Bodhi Guide to Enlightenment]<br />
* [http://www.e17-stuff.org/ E17-Stuff]<br />
* [http://sourceforge.net/projects/enlightenment/ DR16 download resource]<br />
* [https://lists.sourceforge.net/lists/listinfo/enlightenment-users Enlightenment users mail list]<br />
* [https://lists.sourceforge.net/lists/listinfo/enlightenment-devel Enlightenment developer mail list]<br />
* irc://irc.freenode.net#e</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:ServerMigration&diff=432477DeveloperWiki:ServerMigration2016-04-24T15:38:43Z<p>Seblu: /* orion.archlinux.org (Intel Xeon E3-1245V2 32GB ECC 2x3TB) */</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
= Current setup =<br />
== luna.archlinux.org ==<br />
<br />
* bbs<br />
* wiki<br />
* aur<br />
* mailman<br />
<br />
== nymeria.archlinux.org ==<br />
<br />
* mail<br />
* repos/rsync<br />
<br />
== dragon.archlinux.org ==<br />
<br />
* backups<br />
<br />
== alberich.archlinux.org ==<br />
<br />
* releng stuff. no idea<br />
* tracker<br />
<br />
== gudrun.archlinux.org ==<br />
<br />
* planet<br />
* bugs<br />
* archweb<br />
* patchwork<br />
* projects<br />
<br />
== gerolde.archlinux.org ==<br />
<br />
== celestia.archlinux.org ==<br />
<br />
* pkgbuild.com<br />
<br />
= Desired setup =<br />
== dragon.archlinux.org (old name, new box, Intel Xeon E3-1245 2 x 3 TB 16GB ECC RAM) ==<br />
* backups<br />
<br />
== apollo.archlinux.org ([https://www.hetzner.de/de/hosting/produkte_rootserver/px61ssd]) ==<br />
* bbs<br />
* wiki<br />
* aur<br />
* mailman<br />
* planet<br />
* bugs<br />
* archweb<br />
* patchwork<br />
* projects<br />
<br />
== soyuz.archlinux.org ([https://www.hetzner.de/de/hosting/produkte_rootserver/px61ssd]) ==<br />
* pkgbuild.com<br />
* releng stuff. no idea<br />
* tracker<br />
<br />
== orion.archlinux.org (Intel Xeon E3-1245V2 32GB ECC 2x3TB) ==<br />
* repos/rsync<br />
* sources<br />
* archive<br />
<br />
= Plan of attack =<br />
<br />
* Get new servers (2 [https://www.hetzner.de/de/hosting/produkte_rootserver/px61ssd px61-ssd])<br />
* Write ansible scripts for all services<br />
* Services are to be split into 2 servers so that one is the webhost with outside-facing stuff and one is for internal stuff<br />
* Delete all old stuff in the wiki about old setups</div>Sebluhttps://wiki.archlinux.org/index.php?title=VirtualBox&diff=425640VirtualBox2016-03-13T13:15:38Z<p>Seblu: modules loading is done via systemd-modules-load</p>
<hr />
<div>[[Category:Emulators]]<br />
[[Category:Hypervisors]]<br />
[[cs:VirtualBox]]<br />
[[de:VirtualBox]]<br />
[[el:VirtualBox]]<br />
[[es:VirtualBox]]<br />
[[fr:VirtualBox]]<br />
[[hu:VirtualBox]]<br />
[[it:VirtualBox]]<br />
[[ja:VirtualBox]]<br />
[[pt:VirtualBox]]<br />
[[ru:VirtualBox]]<br />
[[zh-CN:VirtualBox]]<br />
{{Related articles start}}<br />
{{Related|:Category:Hypervisors}}<br />
{{Related|PhpVirtualBox}}<br />
{{Related|Moving an existing install into (or out of) a virtual machine}}<br />
{{Related articles end}}<br />
<br />
[https://www.virtualbox.org VirtualBox] is a [[Wikipedia:Hypervisor|hypervisor]] used to run operating systems in a special environment, called a virtual machine, on top of the existing operating system. VirtualBox is in constant development and new features are implemented continuously. It comes with a [[Qt]] GUI interface, as well as headless and [[Wikipedia:Simple DirectMedia Layer|SDL]] command-line tools for managing and running virtual machines.<br />
<br />
In order to integrate functions of the host system to the guests, including shared folders and clipboard, video acceleration and a seamless window integration mode, ''guest additions'' are provided for some guest operating systems.<br />
<br />
== Installation steps for Arch Linux hosts ==<br />
<br />
In order to launch VirtualBox virtual machines on your Arch Linux box, follow these installation steps.<br />
<br />
=== Install the core packages ===<br />
<br />
[[install]] the {{Pkg|virtualbox}} package. {{Pkg|virtualbox-host-dkms}} will also be installed as a required dependency. To compile the virtualbox modules provided by {{ic|virtualbox-host-dkms}}, it will also be necessary to install the appropriate headers package(s) for your installed kernel(s)[https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html]:<br />
<br />
* {{Pkg|linux}} kernel: {{Pkg|linux-headers}}<br />
* {{Pkg|linux-lts}} kernel: {{Pkg|linux-lts-headers}}<br />
* {{Pkg|linux-zen}} kernel: {{Pkg|linux-zen-headers}}<br />
* {{Pkg|linux-grsec}} kernel: {{Pkg|linux-grsec-headers}}<br />
<br />
You can also install the {{Pkg|qt4}} optional dependency in order to use the graphical interface which is based on [[Qt]]. This is not required if you intend to use VirtualBox in command-line only. [[#Use the right front-end|See below to learn the differences]].<br />
<br />
=== Install the VirtualBox kernel modules ===<br />
<br />
Next, to fully virtualize your guest installation, VirtualBox provides the following [[kernel modules]]: {{ic|vboxdrv}}, {{ic|vboxnetadp}}, {{ic|vboxnetflt}}, and {{ic|vboxpci}}. These must be added to your host kernel.<br />
<br />
The binary compatibility of kernel modules depends on the API of the kernel against which they have been compiled. The problem with the Linux kernel is that these interfaces might not be the same from one kernel version to another. In order to avoid compatibility problems and subtle bugs, each time the Linux kernel is upgraded, it is advised to recompile the kernel modules against the Linux kernel version that has just been installed. This is what Arch Linux packagers actually do with the VirtualBox kernel modules packages: each time a new Arch Linux kernel is released, the Virtualbox modules are upgraded accordingly.<br />
<br />
==== Hosts running a custom kernel ====<br />
<br />
If you use or intend to use a self-compiled kernel from sources, you have to know that VirtualBox does not require any virtualization modules (e.g. virtuo, kvm,...). The VirtualBox kernel modules provide all the necessary for VirtualBox to work properly. You can thus disable in your kernel ''.config'' file these virtualization modules if you do not use other hypervisors like Xen, KVM or QEMU.<br />
<br />
===== DKMS Install =====<br />
<br />
{{Tip|[[DKMS]] can automatically generate the modules of the current running kernel by running the following command:<br />
{{bc|<nowiki># dkms autoinstall</nowiki>}}<br />
}}<br />
<br />
As the {{Pkg|virtualbox-host-dkms}} package requires compilation, make sure you have the kernel headers corresponding to your custom kernel version to prevent this error from happening: {{ic|Your kernel headers for kernel ''your custom kernel version'' cannot be found at /usr/lib/modules/''your custom kernel version''/build or /usr/lib/modules/''your custom kernel version''/source}}<br />
<br />
Once {{Pkg|virtualbox-host-dkms}} is installed, simply generate the kernel modules for the custom kernel by running the following command:<br />
# dkms install vboxhost/''virtualbox-host-source version'' -k ''your custom kernel version''/''your architecture''<br />
<br />
{{Tip|Use this all-in-one command instead, if you do not want to adapt the above command:<br />
{{bc|<nowiki># dkms install vboxhost/$(pacman -Q virtualbox|awk '{print $2}'|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')</nowiki>}}<br />
}}<br />
<br />
To automatically recompile the VirtualBox kernel modules when their sources get upgraded (i.e. when the {{Pkg|virtualbox-host-dkms}} package has been upgraded), enable the {{ic|dkms}} service.<br />
<br />
=== Load the VirtualBox kernel modules ===<br />
<br />
Since version 5.0.16, {{Pkg|virtualbox-host-dkms}} and {{Pkg|virtualbox-guest-dkms}} use '''systemd-modules-load''' service to load their modules at boot time.<br />
<br />
{{Note|If you don't want the VirtualBox modules to be loaded at boot time, you have to use the classic systemd logic to mask modules by putting an empty files (or symlink to {{ic|/dev/null}}) in {{ic|/etc/modules-load.d}}}}<br />
<br />
Among the [[kernel modules]] VirtualBox uses, there is a mandatory module named {{ic|vboxdrv}}, which must be loaded before any virtual machines can run.<br />
<br />
To load the module manually:<br />
# modprobe vboxdrv<br />
<br />
The following modules are optional but are recommended if you do not want to be bothered in some advanced configurations (precised here after): {{ic|vboxnetadp}}, {{ic|vboxnetflt}} and {{ic|vboxpci}}.<br />
<br />
* {{ic|vboxnetadp}} and {{ic|vboxnetflt}} are both needed when you intend to use the [https://www.virtualbox.org/manual/ch06.html#network_bridged bridged] or [https://www.virtualbox.org/manual/ch06.html#network_hostonly host-only networking] feature. More precisely, {{ic|vboxnetadp}} is needed to create the host interface in the VirtualBox global preferences, and {{ic|vboxnetflt}} is needed to launch a virtual machine using that network interface.<br />
<br />
* {{ic|vboxpci}} is needed when your virtual machine needs to pass through a PCI device on your host.<br />
<br />
{{Note|If the VirtualBox kernel modules were loaded in the kernel while you updated the modules, you need to reload them manually to use the new updated version. To do it, run {{ic|vboxreload}} as root.}}<br />
<br />
Finally, if you use the aforementioned "Host-only" or "bridge networking" feature, make sure {{pkg|net-tools}} is installed. VirtualBox actually uses {{ic|ifconfig}} and {{ic|route}} to assign the IP and route to the host interface configured with {{ic|VBoxManage hostonlyif}} or via the GUI in ''Settings > Network > Host-only Networks > Edit host-only network (space) > Adapter''.<br />
<br />
=== Add usernames to the vboxusers group ===<br />
<br />
To use the USB ports of your host machine in your virtual machines, add to the {{ic|vboxusers}} [[group]] the usernames that will be authorized to use this feature. The new group does not automatically apply to existing sessions; the user has to log out and log in again, or start a new environment with the {{ic|newgrp}} command or with {{ic|sudo -u $USER -s}}. To add the current user to the {{ic|vboxusers}} group, type:<br />
# gpasswd -a $USER vboxusers<br />
<br />
=== Guest additions disc ===<br />
<br />
It is also recommended to install the {{Pkg|virtualbox-guest-iso}} package on the host running VirtualBox. This package will act as a disc image that can be used to install the guest additions onto guest systems other than Arch Linux. The ''.iso'' file will be located at {{ic|/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso}}, and may have to be mounted manually inside the virtual machine. Once mounted, you can run the guest additions installer inside the guest.<br />
<br />
=== Extension pack ===<br />
<br />
Since VirtualBox 4.0, non-GPL components have been split from the rest of the application. Despite being released under a non-free license and '''being only available for personal use''', you might be interested in installing the Oracle Extension Pack which provides [https://www.virtualbox.org/manual/ch01.html#intro-installing additional features]. To avoid manual manipulation, the {{aur|virtualbox-ext-oracle}} package is available, and a prebuilt version can be found in the [[Unofficial user repositories#seblu|seblu]] repository.<br />
<br />
If you prefer to use the traditional and manual way: download the extension manually and install it via the GUI (''File > Preferences > Extensions'') or via {{ic|VBoxManage extpack install <.vbox-extpack>}}, make sure you have a toolkit (like [[Polkit]], gksu, etc.) to grant privileged access to VirtualBox. The installation of this extension [https://www.virtualbox.org/ticket/8473 requires root access].<br />
<br />
=== Use the right front-end ===<br />
<br />
Now, you are ready to use VirtualBox. Congratulations!<br />
<br />
Multiple front-ends are available to you of which two are available by default:<br />
* If you want to use VirtualBox in command-line only (only launch and change settings of existing virtual machines), you can use the {{ic|VBoxSDL}} command. VBoxSDL does only provide a simple window that contains only the ''pure'' virtual machine, without menus or other controls.<br />
* If you want to use VirtualBox in command-line without any GUI running (e.g. on a server) to create, launch and configure virtual machines, use the {{ic|VBoxHeadless}} which produces no visible output on the host at all, but instead only delivers VRDP data (note: VRDP is only enabled if the extension pack is installed).<br />
<br />
If you installed the {{Pkg|qt4}} optional dependency, you can run {{ic|VirtualBox}} and have a nice-looking GUI interface with menus usable via the mouse.<br />
<br />
Finally, you can use [[PhpVirtualBox]] to administrate your virtual machines via a web interface.<br />
<br />
Refer to the [https://www.virtualbox.org/manual VirtualBox manual] to learn how to create virtual machines.<br />
<br />
{{Warning|If you intend to store virtual disk images on a [[Btrfs]] file system, before creating any images, you should consider disabling [[Btrfs#Copy-On-Write_.28CoW.29|Copy-on-Write]] for the destination directory of these images.}}<br />
<br />
== Installation steps for Arch Linux guests ==<br />
<br />
Boot the Arch installation media through one of the virtual machine's virtual drives. Then, complete the installation of a basic Arch system as explained in the [[Beginners' guide]] or the [[Installation guide]].<br />
<br />
==== Installation in EFI mode ====<br />
<br />
If you want to install Arch Linux in EFI mode inside VirtualBox, in the settings of the virtual machine, choose ''System'' item from the panel on the left and ''Motherboard'' tab from the right panel, and check the checkbox ''Enable EFI (special OSes only)''. After selecting the kernel from the Arch Linux installation media's menu, the media will hang for a minute or two and will continue to boot the kernel normally afterwards. Be patient.<br />
<br />
Once the system and the boot loader are installed, VirtualBox will first attempt to run {{ic|/EFI/BOOT/BOOTX64.EFI}} from the ESP. If that first option fails, VirtualBox will then try the EFI shell script {{ic|startup.nsh}} from the root of the ESP. This means that in order to boot the system you have the following options:<br />
<br />
* [[Unified Extensible Firmware Interface#UEFI Shell|Launch the bootloader manually]] from the EFI shell every time;<br />
* Move the bootloader to the default {{ic|/EFI/BOOT/BOOTX64.EFI}} path;<br />
* Create the {{ic|startup.nsh}} script at the ESP root containing the path to the boot loader application, e.g. {{ic|\EFI\grub\grubx64.efi}}.<br />
<br />
Do not bother with the VirtualBox Boot Manager (accessible with {{ic|F2}} at boot): EFI entries added to it manually at boot or with {{Pkg|efibootmgr}} will persist after a reboot [https://www.virtualbox.org/ticket/11177 but are lost when the VM is shut down].<br />
<br />
See also [https://bbs.archlinux.org/viewtopic.php?id=158003 UEFI Virtualbox installation boot problems].<br />
<br />
=== Install the Guest Additions ===<br />
<br />
VirtualBox [https://www.virtualbox.org/manual/ch04.html Guest Additions] provides drivers and applications that optimize the guest operating system including improved image resolution and better control of the mouse. Within the installed guest system, if using a graphical environment, install {{Pkg|virtualbox-guest-utils}}. Otherwise install {{Pkg|virtualbox-guest-utils-nox}} for VirtualBox Guest utilities without X support.<br />
<br />
Both packages will install {{Pkg|virtualbox-guest-dkms}} as a dependency. To compile the virtualbox modules provided by {{ic|virtualbox-guest-dkms}}, it will also be necessary to install the appropriate headers package(s) for your installed kernel(s)[https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html]:<br />
<br />
* {{Pkg|linux}} kernel: {{Pkg|linux-headers}}<br />
* {{Pkg|linux-lts}} kernel: {{Pkg|linux-lts-headers}}<br />
* {{Pkg|linux-zen}} kernel: {{Pkg|linux-zen-headers}}<br />
* {{Pkg|linux-grsec}} kernel: {{Pkg|linux-grsec-headers}}<br />
<br />
{{Note|<nowiki></nowiki><br />
* You can alternatively install the Guest Additions with the ISO from the {{Pkg|virtualbox-guest-iso}} package, provided you installed this on the host system. To do this, go to the device menu click Insert Guest Additions CD Image.<br />
* To recompile the vbox kernel modules, run {{ic|rcvboxdrv}} as root.<br />
}}<br />
<br />
=== Load the Virtualbox kernel modules ===<br />
<br />
To load the modules automatically, [[enable]] the {{ic|vboxservice}} service which loads the modules and synchronizes the guest's system time with the host.<br />
<br />
To load the modules manually, type:<br />
# modprobe -a vboxguest vboxsf vboxvideo<br />
<br />
To load the VirtualBox module at boot time, refer to [[Kernel modules#Automatic module handling]] and create a {{ic|*.conf}} file (e.g. {{ic|virtualbox.conf}}) in {{ic|/etc/modules-load.d/}} with these lines:<br />
{{hc|/etc/modules-load.d/virtualbox.conf|<br />
vboxguest<br />
vboxsf<br />
vboxvideo}}<br />
<br />
Note that depending on your choice of paravirtualization in VirtualBox, you may need to [[Systemd#Editing provided units|edit the unit]] with the following property to get it to load: {{ic|1=<br />
ConditionVirtualization=''paravirtualization''<br />
}}<br />
<br />
Run {{ic|systemd-detect-virt}} in the console to determine your paravirtualization.<br />
<br />
=== Launch the VirtualBox guest services ===<br />
<br />
After the rather big installation step dealing with VirtualBox kernel modules, now you need to start the guest services. The guest services are actually just a binary executable called {{ic|VBoxClient}} which will interact with your X Window System. {{ic|VBoxClient}} manages the following features:<br />
* shared clipboard and drag and drop between the host and the guest;<br />
* seamless window mode;<br />
* the guest display is automatically resized according to the size of the guest window;<br />
* checking the VirtualBox host version<br />
<br />
All of these features can be enabled independently with their dedicated flags:<br />
$ VBoxClient --clipboard --draganddrop --seamless --display --checkhostversion<br />
<br />
As a shortcut, the {{ic|VBoxClient-all}} bash script enables all of these features. You should set {{ic|VBoxClient}} to be automatically loaded as your [[desktop environment]] or [[window manager]] starts. In practice,<br />
* if you are using a [[desktop environment]], you just need to check a box or add the {{ic|/usr/sbin/VBoxClient-all}} to the autostart section in your [[desktop environment]] settings (the DE will typically set a flag to a ''.desktop'' file in {{ic|~/.config/autostart}}, see [[Autostart#Desktop entries|the Autostart section]] for more details);<br />
* if you do not have any [[desktop environment]], add the following line to the top of {{ic|~/.xinitrc}} above any {{ic|exec}} options. See [[Xinitrc]] for detail.<br />
{{hc|~/.xinitrc|<br />
/usr/bin/VBoxClient-all}}<br />
<br />
VirtualBox can also synchronize the time between the host and the guest. To do this, run {{ic|VBoxService}} as root. To set this to run automatically on boot, simply [[enable]] the {{ic|vboxservice}} service.<br />
<br />
Now, you should have a working Arch Linux guest. Note that features like clipboard sharing are disabled by default in VirtualBox, and you will need to turn them on in the per-VM settings if you actually want to use them (e.g. ''Settings > General > Advanced > Shared Clipboard'').<br />
<br />
=== Hardware acceleration ===<br />
<br />
Hardware acceleration can be activated from the VirtualBox options on the host computer. Note that when the gdm display manager 3.16+ is known to break hardware acceleration support[https://bbs.archlinux.org/viewtopic.php?id=200025], so if you get issues with hardware acceleration it might be a good idea to try out another display manager (lightdm seems to work fine). <br />
<br />
If you want to share folders between your host and your Arch Linux guest, read on.<br />
<br />
=== Enable shared folders ===<br />
<br />
Shared folders are managed on the host, in the settings of the Virtual Machine accessible via the GUI of VirtualBox, in the ''Shared Folders'' tab. There, ''Folder Path'', the name of the mount point identified by ''Folder name'', and options like ''Read-only'', ''Auto-mount'' and ''Make permanent'' can be specified. These parameters can be defined with the {{ic|VBoxManage}} command line utility. See [https://www.virtualbox.org/manual/ch04.html#sharedfolders there for more details].<br />
<br />
No matter which method you will use to mount your folder, all methods require some steps first.<br />
<br />
To avoid this issue {{ic|/sbin/mount.vboxsf: mounting failed with the error: No such device}}, make sure the {{ic|vboxsf}} kernel module is properly loaded. It should be, since we enabled all guest kernel modules previously.<br />
<br />
Two additional steps are needed in order for the mount point to be accessible from users other than root:<br />
* the {{Pkg|virtualbox-guest-utils}} package created a group {{ic|vboxsf}} (done in a previous step);<br />
* your username must be in this group, use this command {{ic|gpasswd -a $USER vboxsf}} to add your username and use {{ic|newgrp}} to apply the changes immediately;<br />
<br />
==== Manual mounting ====<br />
<br />
Use the following command to mount your folder in your Arch Linux guest:<br />
# mount -t vboxsf ''shared_folder_name'' ''mount_point_on_guest_system''<br />
<br />
The vboxsf filesystem offers other options which can be displayed with this command:<br />
# mount.vboxsf<br />
<br />
For example if the user was not in the ''vboxsf'' group, we could have used this command to give access our mountpoint to him:<br />
# mount -t vboxsf -o uid=1000,gid=1000 home /mnt/<br />
<br />
Where ''uid'' and ''gid'' are values corresponding to the users we want to give access to. These values are obtained from the {{ic|id}} command run against this user.<br />
<br />
==== Automounting ====<br />
<br />
In order for the automounting feature to work you must have checked the auto-mount checkbox in the GUI or used the optional {{ic|--automount}} argument with the command {{ic|VBoxManage sharedfolder}}.<br />
<br />
The shared folder should now appear in {{ic|/media/sf_''shared_folder_name''}}. If users in {{ic|media}} cannot access the shared folders, check that {{ic|media}} has permissions 755 or has group ownership {{ic|vboxsf}} if using permission 750. This is currently not the default if media is created by installing the {{ic|virtualbox-guest-utils}}.<br />
<br />
You can use symlinks if you want to have a more convenient access and avoid to browse in that directory, e.g.:<br />
$ ln -s /media/sf_''shared_folder_name'' ~/''my_documents''<br />
<br />
==== Mount at boot ====<br />
<br />
You can mount your directory with [[fstab]]. However, to prevent startup problems with systemd, {{ic|1=comment=systemd.automount}} should be added to {{ic|/etc/fstab}}. This way, the shared folders are mounted only when those mount points are accessed and not during startup. This can avoid some problems, especially if the guest additions are not loaded yet when systemd read fstab and mount the partitions.<br />
''sharedFolderName'' ''/path/to/mntPtOnGuestMachine'' vboxsf uid=''user'',gid=''group'',rw,dmode=700,fmode=600,comment=systemd.automount 0 0<br />
<br />
* {{ic|''sharedFolderName''}}: the value from the VirtualMachine's ''Settings > SharedFolders > Edit > FolderName'' menu. This value can be different from the name of the real folder name on the host machine. To see the VirtualMachine's ''Settings'' go to the host OS VirtualBox application, select the corresponding virtual machine and click on ''Settings''.<br />
* {{ic|''/path/to/mntPtOnGuestMachine''}}: if not existing, this directory should be created manually (for example by using [[Core utilities#mkdir|mkdir]])<br />
* {{ic|dmode}}/{{ic|fmode}} are directory/file permissions for directories/files inside {{ic|''/path/to/mntPtOnGuestMachine''}}.}}<br />
<br />
As of 2012-08-02, mount.vboxsf does not support the ''nofail'' option:<br />
''desktop'' ''/media/desktop'' vboxsf uid=''user'',gid=''group'',rw,dmode=700,fmode=600,nofail 0 0<br />
<br />
== Import/export VirtualBox virtual machines from/to other hypervisors ==<br />
<br />
If you plan to use your virtual machine on another hypervisor or want to import in VirtualBox a virtual machine created with another hypervisor, you might be interested in reading the following steps.<br />
<br />
=== Remove additions ===<br />
<br />
Guest additions are available in most hypervisor solutions: VirtualBox comes with the Guest Additions, VMware with the VMware Tools, Parallels with the Parallels Tools, etc. These additional components are designed to be installed inside a virtual machine after the guest operating system has been installed. They consist of device drivers and system applications that optimize the guest operating system for better performance and usability [https://www.virtualbox.org/manual/ch04.html by providing these features].<br />
<br />
If you have installed the additions to your virtual machine, please uninstall them first. Your guest, especially if it is using an OS from the Windows family, might behave weirdly, crash or even might not boot at all if you are still using the specific drivers in another hypervisor.<br />
<br />
=== Use the right virtual disk format ===<br />
<br />
This step will depend on the ability to convert the virtual disk image directly or not.<br />
<br />
==== Automatic tools ====<br />
<br />
Some companies provide tools which offer the ability to create virtual machines from a Windows or GNU/Linux operating system located either in a virtual machine or even in a native installation. With such a product, you do not need to apply this and the following steps and can stop reading here.<br />
* ''[http://www.parallels.com/products/transporter Parallels Transporter]'' which is non free, is a product from Parallels Inc. This solution basically consists in an piece of software called ''agent'' that will be installed in the guest you want to import/convert. Then, Parallels Transporter, <u>which only works on OS X</u>, will create a virtual machine from that ''agent'' which is contacted either by USB or Ethernet network.<br />
* ''[https://www.vmware.com/products/converter/ VMware vCenter Converter]'' which is free upon registration on the VMware webiste, works nearly the same way as Parallels Transporter, but the piece of software that will gather the data to create the virtual machine only works on a Windows platform.<br />
<br />
==== Manual conversion ====<br />
<br />
First, familiarize yourself with the [[#Formats supported by VirtualBox]] and [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|those supported by third-party hypervisors]].<br />
<br />
* Importing or exporting a virtual machine from/to a VMware solution is not a problem at all if you use the VMDK or OVF disk format, otherwise converting [[#VMDK to VDI and VDI to VMDK]] is possible and the aforementioned VMware vCenter Converter tool is available.<br />
<br />
* Importing or exporting from/to QEMU is not a problem neither: some QEMU formats are supported directly by VirtualBox and conversion between [[#QCOW2 to VDI and VDI to QCOW2]] is still available if needed.<br />
<br />
* Importing or exporting from/to Parallels hypervisor is the hardest way: Parallels does only support its own HDD format (even the standard and portable OVF format is not supported!).<br />
:* To export your virtual machine to Parallels, you will need to use the Parallels Transporter tool described above.<br />
:* To import your virtual machine to VirtualBox, you will need to use the VMware vCenter Converter described above to convert the VM to the VMware format first. Then, apply the solution to migrate from VMware.<br />
<br />
=== Create the VM configuration for your hypervisor ===<br />
<br />
Each hypervisor have their own virtual machine configuration file: {{ic|.vbox}} for VirtualBox, {{ic|.vmx}} for VMware, a {{ic|config.pvs}} file located in the virtual machine bundle ({{ic|.pvm}} file), etc. You will have thus to recreate a new virtual machine in your new destination hypervisor and specify its hardware configuration as close as possible as your initial virtual machine.<br />
<br />
Pay a close attention to the firmware interface (BIOS or UEFI) used to install the guest operating system. While an option is available to choose between these 2 interfaces on VirtualBox and on Parallels solutions, on VMware, you will have to add manually the following line to your ''.vmx'' file.<br />
<br />
{{hc|ArchLinux_vm.vmx|2=<br />
firmware = "efi"<br />
}}<br />
<br />
Finally, ask your hypervisor to use the existing virtual disk you have converted and launch the virtual machine.<br />
{{Tip|<br />
* On VirtualBox, if you do not want to browse the whole GUI to find the right location to add your new virtual drive device, you can [[#Replace a virtual disk manually from the .vbox file]], or use the {{ic|VBoxManage storageattach}} described in [[#Increase virtual disks]] or in the [https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach VirtualBox manual page].<br />
* Similarly, in VMware products, you can replace the location of the current virtual disk location by adapting the ''.vmdk'' file location in your ''.vmx'' configuration file.}}<br />
<br />
== Virtual disks management ==<br />
<br />
=== Formats supported by VirtualBox ===<br />
<br />
VirtualBox supports the following virtual disk formats:<br />
<br />
* VDI: The Virtual Disk Image is the VirtualBox own open container used by default when you create a virtual machine with VirtualBox.<br />
<br />
* VMDK: The Virtual Machine Disk has been initially developed by VMware for their products. The specification was initially closed source, but it became now an open format which is fully supported by VirtualBox. This format offers the ability to be split into several 2GB files. This feature is specially useful if you want to store the virtual machine on machines which do not support very large files. Other formats, excluding the HDD format from Parallels, do not provide such an equivalent feature.<br />
<br />
* VHD: The Virtual Hard Disk is the format used by Microsoft in Windows Virtual PC and Hyper-V. If you intend to use any of these Microsoft products, you will have to choose this format.<br />
:{{Tip|Since Windows 7, this format can be mounted directly without any additional application.}} <br />
<br />
* VHDX (read only): This is the eXtended version of the Virtual Hard Disk format developed by Microsoft, which has been released on 2012-09-04 with Hyper-V 3.0 coming with Windows Server 2012. This new version of the disk format does offer enhanced performance (better block alignment), larger blocks size, and journal support which brings power failure resiliency. VirtualBox [https://www.virtualbox.org/manual/ch15.html#idp63002176 should support this format in read only].<br />
<br />
* Version 2 of the HDD: The HDD format is developed by Parallels Inc and used in their hypervisor solutions like Parallels Desktop for Mac. Newer versions of this format (i.e. 3 and 4) are not supported due to the lack of documentation for this proprietary format. {{Note|There is currently a controversy regarding the support of the version 2 of the format. While the official VirtualBox manual [https://www.virtualbox.org/manual/ch05.html#vdidetails only reports the second version of the HDD file format as supported], Wikipedia's contributors are [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|reporting the first version may work too]]. Help is welcome if you can perform some tests with the first version of the HDD format.}}<br />
<br />
* QED: The QEMU Enhanced Disk format is an old file format for QEMU, another free and open source hypervisor. This format was designed from 2010 in a way to provide a superior alternative to QCOW2 and others. This format features a fully asynchronous I/O path, strong data integrity, backing files, and sparse files. QED format is supported only for compatibility with virtual machines created with old versions of QEMU.<br />
<br />
* QCOW: The QEMU Copy On Write format is the current format for QEMU. The QCOW format does support zlib-based transparent compression and encryption (the latter has flaw and is not recommended). QCOW is available in two versions: QCOW and QCOW2. The latter tends to supersede the first one. QCOW is [https://www.virtualbox.org/manual/ch15.html#idp63002176 currently fully supported by VirtualBox]. QCOW2 comes in two revisions: QCOW2 0.10 and QCOW2 1.1 (which is the default when you create a virtual disk with QEMU). VirtualBox does not support this QCOW2 format (both revisions have been tried).<br />
<br />
* OVF: The Open Virtualization Format is an open format which has been designed for interoperability and distributions of virtual machines between different hypervisors. VirtualBox supports all revisions of this format via the [https://www.virtualbox.org/manual/ch08.html#idp55423424 VBoxManage import/export feature] but with [https://www.virtualbox.org/manual/ch14.html#KnownProblems known limitations].<br />
<br />
* RAW: This is the mode when the virtual disk is exposed directly to the disk without being contained in a specific file format container. VirtualBox supports this feature in several ways: converting RAW disk [https://www.virtualbox.org/manual/ch08.html#idp59139136 to a specific format], or by [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi cloning a disk to RAW], or by using directly a VMDK file [https://www.virtualbox.org/manual/ch09.html#idp57804112 which points to a physical disk or a simple file].<br />
<br />
=== Disk image format conversion ===<br />
<br />
==== VMDK to VDI and VDI to VMDK ====<br />
<br />
VirtualBox can handle back and forth conversion between VDI and VMDK by itself with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd].<br />
<br />
VMDK to VDI:<br />
<br />
$ VBoxManage clonehd ''source.vmdk'' ''destination.vdi'' --format VDI<br />
<br />
VDI to VMDK:<br />
<br />
$ VBoxManage clonehd ''source.vdi'' ''destination.vmdk'' --format VMDK<br />
<br />
==== VHD to VDI and VDI to VHD ====<br />
<br />
VirtualBox can handle conversion back and forth this format with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd] too.<br />
<br />
VHD to VDI:<br />
<br />
$ VBoxManage clonehd ''source.vhd'' ''destination.vdi'' --format VDI<br />
<br />
VDI to VHD:<br />
<br />
$ VBoxManage clonehd ''source.vdi'' ''destination.vhd'' --format VHD<br />
<br />
==== QCOW2 to VDI and VDI to QCOW2 ====<br />
<br />
[https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd] cannot handle the QEMU format conversion; we will thus rely on another tool. The {{ic|qemu-img}} command from {{Pkg|qemu}} can be used to convert images back and forth from VDI to QCOW2. {{Note|{{ic|qemu-img}} can handle a bunch of other formats too. According to the {{ic|qemu-img --help}}, here are the supported formats this tool supports: "''vvfat vpc vmdk vhdx vdi ssh sheepdog sheepdog sheepdog raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd iscsi dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug'".}}<br />
<br />
QCOW2 to VDI:<br />
<br />
$ qemu-img convert -pO vdi ''source.qcow2'' ''destination.vdi''<br />
<br />
VDI to QCOW2:<br />
<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2''<br />
<br />
As QCOW2 comes in two revisions (see [[#Formats supported by VirtualBox]], use the flag {{ic|1=-o compat=}} to specify the revision.<br />
<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=0.10<br />
or<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=1.1<br />
<br />
{{Tip|The {{ic|-p}} parameter is used to get the progression of the conversion task.}}<br />
<br />
=== Mount virtual disks ===<br />
<br />
==== VDI ====<br />
<br />
Mounting vdi images only works with fixed size images (a.k.a. static images); dynamic (dynamically size allocating) images are not easily mountable.<br />
<br />
The offset of the partition (within the vdi) is needed, then add the value of {{ic|offData}} to {{ic|32256}} (e.g. 69632 + 32256 = 101888):<br />
<br />
$ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"<br />
<br />
The can now be mounted with:<br />
<br />
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/<br />
<br />
You can also use [https://github.com/pld-linux/VirtualBox/blob/master/mount.vdi mount.vdi] script that, which you can use as (install script itself to {{ic|/usr/bin/}}):<br />
<br />
# mount -t vdi -o fstype=ext4,rw,noatime,noexec ''vdi_file_location'' ''/mnt/''<br />
<br />
Alternately you can use {{Pkg|qemu}}'s kernel module that can do this [[http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/ attrib]]:<br />
<br />
# modprobe nbd max_part=16<br />
# qemu-nbd -c /dev/nbd0 <storage.vdi><br />
# mount /dev/nbd0p1 /mnt/dir/<br />
# # to unmount:<br />
# umount /mnt/dir/<br />
# qemu-nbd -d /dev/nbd0<br />
<br />
If the partition nodes are not propagated try using {{ic|partprobe /dev/nbd0}}; otherwise, a vdi partition can be mapped directly to a node by: {{ic|qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>}}.<br />
<br />
=== Compact virtual disks ===<br />
<br />
Compacting virtual disks only works with {{ic|.vdi}} files and basically consists in the following steps.<br />
<br />
Boot your virtual machine and remove all bloat manually or by using cleaning tools like {{Pkg|bleachbit}} which is [http://bleachbit.sourceforge.net/download/windows available for Windows systems too].<br />
<br />
Wiping free space with zeroes can be achieved with several tools:<br />
* If you were previously using Bleachbit, check the checkbox ''System > Free disk space'' in the GUI, or use {{ic|bleachbit -c system.free_disk_space}} in CLI;<br />
* On UNIX-based systems, by using {{ic|dd}} or preferably {{Pkg|dcfldd}} (see [http://superuser.com/a/355322 here] to learn the differences) :<br />
:{{bc|1=# dcfldd if=/dev/zero of=''/fillfile'' bs=4M}}<br />
:When {{ic|fillfile}} reaches the limit of the partition, you will get a message like {{ic|1280 blocks (5120Mb) written.dcfldd:: No space left on device}}. This means that all of the user-space and non-reserved blocks of the partition will be filled with zeros. Using this command as root is important to make sure all free blocks have been overwritten. Indeed, by default, when using partitions with ext filesystem, a specified percentage of filesystem blocks is reserved for the super-user (see the {{ic|-m}} argument in the {{ic|mkfs.ext4}} man pages or use {{ic|tune2fs -l}} to see how much space is reserved for root applications).<br />
:When the aforementioned process has completed, you can remove the file {{ic|''fillfile''}} you created.<br />
<br />
* On Windows, there are two tools available:<br />
:*{{ic|sdelete}} from the [http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx Sysinternals Suite], type {{ic|sdelete -s -z ''c:''}}, where you need to reexecute the command for each drive you have in your virtual machine;<br />
:* or, if you love scripts, there is a [http://blog.whatsupduck.net/2012/03/powershell-alternative-to-sdelete.html PowerShell solution], but which still needs to be repeated for all drives.<br />
::{{bc|PS> ./Write-ZeroesToFreeSpace.ps1 -Root ''c:\'' -PercentFree 0}}<br />
::{{Note|This script must be run in a PowerShell environment with administrator privileges. By default, scripts cannot be run, ensure the execution policy is at least on {{ic|RemoteSigned}} and not on {{ic|Restricted}}. This can be checked with {{ic|Get-ExecutionPolicy}} and the required policy can be set with {{ic|Set-ExecutionPolicy RemoteSigned}}.}}<br />
<br />
Once the free disk space have been wiped, shut down your virtual machine.<br />
<br />
The next time you boot your virtual machine, it is recommended to do a filesystem check.<br />
* On UNIX-based systems, you can use {{ic|fsck}} manually;<br />
:* On GNU/Linux systems, and thus on Arch Linux, you can force a disk check at boot [[Fsck#Forcing the check|thanks to a kernel boot parameter]];<br />
* On Windows systems, you can use:<br />
:* either {{ic|chkdsk ''c:'' /F}} where {{ic|''c:''}} needs to be replaced by each disk you need to scan and fix errors;<br />
:* or {{ic|FsckDskAll}} [http://therightstuff.de/2009/02/14/ChkDskAll-ChkDsk-For-All-Drives.aspx from here] which is basically the same software as {{ic|chkdsk}}, but without the need to repeat the command for all drives;<br />
<br />
Now, remove the zeros from the {{ic|vdi}} file with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi VBoxManage modifyhd]:<br />
$ VBoxManage modifyhd ''your_disk.vdi'' --compact<br />
<br />
{{Note|If your virtual machine has snapshots, you need to apply the above command on each {{ic|.vdi}} files you have.}}<br />
<br />
=== Increase virtual disks ===<br />
<br />
==== General procedure ====<br />
<br />
If you are running out of space due to the small hard drive size you selected when you created your virtual machine, the solution adviced by the VirtualBox manual is to use [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi VBoxManage modifyhd]. However this command only works for VDI and VHD disks and only for the dynamically allocated variants. If you want to resize a fixed size virtual disk disk too, read on this trick which works either for a Windows or UNIX-like virtual machine.<br />
<br />
First, create a new virtual disk next to the one you want to increase:<br />
$ VBoxManage createhd -filename ''new.vdi'' --size ''10000''<br />
<br />
where size is in MiB, in this example 10000MiB ~= 10GiB, and ''new.vdi'' is name of new hard drive to be created.<br />
<br />
Next, the old virtual disk needs to be cloned to the new one which this may take some time:<br />
$ VBoxManage clonehd ''old.vdi'' ''new.vdi'' --existing<br />
<br />
{{Note|By default, this command uses the ''Standard'' (corresponding to dynamic allocated) file format variant and thus will not use the same file format variant as your source virtual disk. If your ''old.vdi'' has a fixed size and you want to keep this variant, add the parameter {{ic|--variant Fixed}}.}}<br />
<br />
Detach the old hard drive and attach new one, replace all mandatory italic arguments by your own:<br />
$ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium none<br />
$ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium ''new.vdi'' --type hdd<br />
<br />
To get the storage controller name and the port number, you can use the command {{ic|VBoxManage showvminfo ''VM_name''}}. Among the output you will get such a result (what you are looking for is in italic):<br />
<br />
{{bc|<br />
[...]<br />
Storage Controller Name (0): IDE<br />
Storage Controller Type (0): PIIX4<br />
Storage Controller Instance Number (0): 0<br />
Storage Controller Max Port Count (0): 2<br />
Storage Controller Port Count (0): 2<br />
Storage Controller Bootable (0): on<br />
Storage Controller Name (1): SATA<br />
Storage Controller Type (1): IntelAhci<br />
Storage Controller Instance Number (1): 0<br />
Storage Controller Max Port Count (1): 30<br />
Storage Controller Port Count (1): 1<br />
Storage Controller Bootable (1): on<br />
IDE (1, 0): Empty<br />
''SATA'' (''0'', 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704)<br />
[...]}}<br />
<br />
Download [http://gparted.org/download.php GParted live image] and mount it as a virtual CD/DVD disk file, boot your virtual machine, increase/move your partitions, umount GParted live and reboot.<br />
<br />
{{Note|On GPT disks, increasing the size of the disk will result in the backup GPT header not being at the end of the device. GParted will ask to fix this, click on ''Fix'' both times. On MBR disks, you do not have such a problem as this partition table as no trailer at the end of the disk.}}<br />
<br />
Finally, unregister the virtual disk from VirtualBox and remove the file:<br />
$ VBoxManage closemedium disk ''old.vdi''<br />
$ rm ''old.vdi''<br />
<br />
==== Increase size for VDI disks ====<br />
If your disk is a vdi one, simply run:<br />
<br />
$ VBoxManage modifyhd ''your_virtual_disk.vdi'' --resize ''the_new_size''<br />
<br />
Then jump back to the Gparted step, to increase the size of the partition on the virtual disk.<br />
<br />
=== Replace a virtual disk manually from the .vbox file ===<br />
<br />
If you think that editing a simple ''XML'' file is more convenient than playing with the GUI or with {{ic|VBoxManage}} and you want to replace (or add) a virtual disk to your virtual machine, in the ''.vbox'' configuration file corresponding to your virtual machine, simply replace the GUID, the file location and the format to your needs:<br />
<br />
{{hc|ArchLinux_vm.vbox|2=<br />
<HardDisk uuid="''{670157e5-8bd4-4f7b-8b96-9ee412a712b5}''" location="''ArchLinux_vm.vdi''" format="''VDI''" type="Normal"/><br />
}}<br />
<br />
then in the {{ic|<AttachedDevice>}} sub-tag of {{ic|<StorageController>}}, replace the GUID by the new one.<br />
<br />
{{hc|ArchLinux_vm.vbox|2=<br />
<AttachedDevice type="HardDisk" port="0" device="0"><br />
<Image uuid="''{670157e5-8bd4-4f7b-8b96-9ee412a712b5}''"/><br />
</AttachedDevice><br />
}}<br />
<br />
{{Note|If you do not know the GUID of the drive you want to add, you can use the {{ic|VBoxManage showhdinfo ''file''}}. If you previously used {{ic|VBoxManage clonehd}} to copy/convert your virtual disk, this command should have outputted the GUID just after the copy/conversion completed. Using a random GUID does not work, as each [http://www.virtualbox.org/manual/ch05.html#cloningvdis UUID is stored inside each disk image].}}<br />
<br />
==== Transfer between Linux host and other OS ====<br />
<br />
The information about path to harddisks and the snapshots is stored between {{ic|<HardDisks> .... </HardDisks>}} tags in the file with the ''.vbox'' extension. You can edit them manually or use this script where you will need change only the path or use defaults, assumed that ''.vbox'' is in the same directory with a virtual harddisk and the snapshots folder. It will print out new configuration to stdout.<br />
<br />
{{bc|1=<br />
#!/bin/bash<br />
NewPath="${PWD}/"<br />
Snapshots="Snapshots/"<br />
Filename="$1"<br />
<br />
awk -v SetPath="$NewPath" -v SnapPath="$Snapshots" '{if(index($0,"<HardDisk uuid=") != 0){A=$3;split(A,B,"=");<br />
L=B[2];<br />
gsub(/\"/,"",L);<br />
sub(/^.*\//,"",L);<br />
sub(/^.*\\/,"",L);<br />
if(index($3,"{") != 0){SnapS=SnapPath}else{SnapS=""};<br />
print $1" "$2" location="\"SetPath SnapS L"\" "$4" "$5}<br />
else print $0}' "$Filename"}}<br />
<br />
{{Note|<br />
* If you will prepare virtual machine for use in Windows host then in the path name end you should use backslash \ instead of / .<br />
* The script detects snapshots by looking for {{ic|{}} in the file name.<br />
* To make it run on a new host you will need to add it first to the register by clicking on '''Machine -> Add...''' or use hotkeys Ctrl+A and then browse to ''.vbox'' file that contains configuration or use command line {{ic|VBoxManage registervm ''filename''.vbox}}}}<br />
<br />
=== Clone a virtual disk and assigning a new UUID to it ===<br />
<br />
UUIDs are widely used by VirtualBox. Each virtual machines and each virtual disk of a virtual machine must have a different UUID. When you launch a virtual machine in VirtualBox, the latter will keep track of all UUID of your virtual machine instance. See the [http://www.virtualbox.org/manual/ch08.html#vboxmanage-list VBoxManage list] to list the items registered with VirtualBox.<br />
<br />
If you cloned a virtual disk manually by copying the virtual disk file, you will need to assign a new UUID to the cloned virtual drive if you want to use the disk in the same virtual machine or even in another (if that one has already been opened, and thus registered, with VirtualBox).<br />
<br />
You can use this command to assign a new UUID to your virtual disk: <br />
$ VBoxManage internalcommands sethduuid ''/path/to/disk.vdi''<br />
<br />
{{Tip|In the future, to avoid copying the virtual disk and assigning a new UUID to your file manually, use [http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd] instead.}}<br />
<br />
{{Note|The commands above supports [[#Formats supported by VirtualBox|all virtual disk formats supported by VirtualBox]].}}<br />
<br />
== Advanced configuration ==<br />
<br />
=== Virtual machine launch management ===<br />
<br />
==== Starting virtual machines with a service ====<br />
<br />
Find hereafter the implementation details of a systemd service that will be used to consider a virtual machine as a service.<br />
<br />
{{hc|/etc/systemd/system/vboxvmservice@.service|2=<br />
[Unit]<br />
Description=VBox Virtual Machine %i Service<br />
Requires=systemd-modules-load.service<br />
After=systemd-modules-load.service<br />
<br />
[Service]<br />
User=''username''<br />
Group=vboxusers<br />
ExecStart=/usr/bin/VBoxHeadless -s %i<br />
ExecStop=/usr/bin/VBoxManage controlvm %i savestate<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
}}<br />
<br />
{{Note|Replace {{ic|''username''}} with a user that is a member of the {{ic|vboxusers}} group. Make sure the user chosen is the same user that will create/import virtual machines, otherwise the user will not see the VM appliances.}}<br />
<br />
{{Note|If you have multiple virtual machines managed by Systemd and they are not stopping properly, try to add {{ic|RemainAfterExit&#61;true}} and {{ic|KillMode&#61;none}} at the end of {{ic|[Service]}} section.}}<br />
<br />
To enable the service that will launch the virtual machine at next boot, use:<br />
# systemctl enable vboxvmservice@''your_virtual_machine_name''<br />
<br />
To start the service that will launch directly the virtual machine, use:<br />
# systemctl start vboxvmservice@''your_virtual_machine_name''<br />
<br />
VirtualBox 4.2 introduces [http://lifeofageekadmin.com/how-to-set-your-virtualbox-vm-to-automatically-startup/ a new way] for UNIX-like systems to have virtual machines started automatically, other than using a systemd service.<br />
<br />
==== Starting virtual machines with a keyboard shortcut ====<br />
<br />
It can be useful to start virtual machines directly with a keyboard shortcut instead of using the VirtualBox interface (GUI or CLI). For that, you can simply define key bindings in {{ic|.xbindkeysrc}}. Please refer to [[Xbindkeys]] for more details.<br />
<br />
Example, using the {{ic|Fn}} key of a laptop with an unused battery key ({{ic|F3}} on the computer used in this example):<br />
"VBoxManage startvm 'Windows 7'"<br />
m:0x0 + c:244<br />
XF86Battery<br />
<br />
{{Note|If you have a space in the name of your virtual machine, then enclose it with single apostrophes like made in the example just above.}}<br />
<br />
=== Use specific device in the virtual machine ===<br />
<br />
==== Using USB webcam / microphone ====<br />
<br />
{{Note|You will need to have VirtualBox extension pack installed before following the steps below. See [[#Extension pack]] for details.}}<br />
<br />
# Make sure the virtual machine is not running and your webcam / microphone is not being used.<br />
# Bring up the main VirtualBox window and go to settings for Arch machine. Go to USB section.<br />
# Make sure "Enable USB Controller" is selected. Also make sure that "Enable USB 2.0 (EHCI) Controller" is selected too.<br />
# Click the "Add filter from device" button (the cable with the '+' icon).<br />
# Select your USB webcam/microphone device from the list.<br />
# Now click OK and start your VM.<br />
<br />
{{Note|If your Microphone does not show up in the "Add filter from device" menu, try the USB 3.0 and 1.1 options instead (In Step 3).}}<br />
<br />
==== Detecting web-cams and other USB devices ====<br />
<br />
{{Note|This will not do much if you are running a *NIX OS inside of your VM, as most do not have autodetection features.}}<br />
If the device that you are looking for does not show up on any of the menus in the section above and you have tried all three USB controller options,<br />
boot up your VM three seperate times. Once using the USB 1.1 controller, Once using the USB 2.0 controller, etc. Leave the VM running for <br />
at least 5 minutes after startup. Sometimes Windows will autodetect the device for you.<br />
Be sure you filter any devices that are not a keyboard or a mouse so they do not start up at boot. <br />
This insures that Windows will detect the device at start-up.<br />
<br />
=== Access a guest server ===<br />
<br />
To access [[Wikipedia:Apache_HTTP_Server|Apache server]] on a Virtual Machine from the host machine '''only''', simply execute the following lines on the host:<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/''pcnet''/0/LUN#0/Config/Apache/HostPort" ''8888''<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/''pcnet''/0/LUN#0/Config/Apache/GuestPort" ''80''<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/''pcnet''/0/LUN#0/Config/Apache/Protocol" TCP<br />
Where 8888 is the port the host should listen on and 80 is the port the VM will send Apache's signal on.<br />
<br />
To use a port lower than 1024 on the host machine, changes need to be made to the firewall on that host machine. This can also be set up to work with SSH or any other services by changing "Apache" to the corresponding service and ports. <br />
<br />
{{note|{{ic|pcnet}} refers to the network card of the VM. If you use an Intel card in your VM settings, change {{ic|pcnet}} to {{ic|e1000}}.}}<br />
<br />
To communicate between the VirtualBox guest and host using ssh, the server port must be forwarded under Settings > Network. When connecting from the client/host, connect to the IP address of the client/host machine, as opposed to the connection of the other machine. This is because the connection will be made over a virtual adapter.<br />
<br />
=== D3D acceleration in Windows guests ===<br />
<br />
Recent versions of Virtualbox have support for accelerating OpenGL inside guests. This can be enabled with a simple checkbox in the machine's settings, right below where video ram is set, and installing the Virtualbox guest additions. However, most Windows games use Direct3D (part of DirectX), not OpenGL, and are thus not helped by this method. However, it is possible to gain accelerated Direct3D in your Windows guests by borrowing the d3d libraries from Wine, which translate d3d calls into OpenGL, which is then accelerated. These libraries are now part of Virtualbox guest additions software. <br />
<br />
After enabling OpenGL acceleration as described above, reboot the guest into safe mode (press F8 before the Windows screen appears but after the Virtualbox screen disappears), and install Virtualbox guest additions, during install enable checkbox "Direct3D support". Reboot back to normal mode and you should have accelerated Direct3D. <br />
<br />
{{Note | This hack may or may not work for some games depending on what hardware checks they make and what parts of D3D they use.}}<br />
{{Note | This was tested on Windows XP, 7 and 8.1. If method does not work on your Windows version please add data here.}}<br />
<br />
=== VirtualBox on a USB key ===<br />
When using VirtualBox on a USB key, for example to start an installed machine with an ISO image, you will manually have to create VDMKs from the existing drives. However, once the new VMDKs are saved and you move on to another machine, you may experience problems launching an appropriate machine again. To get rid of this issue, you can use the following script to launch VirtualBox. This script will clean up and unregister old VMDK files and it will create new, proper VMDKs for you:<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
<br />
# Erase old VMDK entries<br />
rm ~/.VirtualBox/*.vmdk<br />
<br />
# Clean up VBox-Registry<br />
sed -i '/sd/d' ~/.VirtualBox/VirtualBox.xml<br />
<br />
# Remove old harddisks from existing machines<br />
find ~/.VirtualBox/Machines -name \*.xml | while read file; do<br />
line=`grep -e "type\=\"HardDisk\"" -n $file | cut -d ':' -f 1`<br />
if [ -n "$line" ]; then<br />
sed -i ${line}d $file<br />
sed -i ${line}d $file<br />
sed -i ${line}d $file<br />
fi<br />
sed -i "/rg/d" $file<br />
done<br />
<br />
# Delete prev-files created by VirtualBox<br />
find ~/.VirtualBox/Machines -name \*-prev -exec rm '{}' \;<br />
<br />
# Recreate VMDKs<br />
ls -l /dev/disk/by-uuid | cut -d ' ' -f 9,11 | while read ln; do<br />
if [ -n "$ln" ]; then<br />
uuid=`echo "$ln" | cut -d ' ' -f 1`<br />
device=`echo "$ln" | cut -d ' ' -f 2 | cut -d '/' -f 3 | cut -b 1-3`<br />
<br />
# determine whether drive is mounted already<br />
checkstr1=`mount | grep $uuid`<br />
checkstr2=`mount | grep $device`<br />
checkstr3=`ls ~/.VirtualBox/*.vmdk | grep $device`<br />
if [[ -z "$checkstr1" && -z "$checkstr2" && -z "$checkstr3" ]]; then<br />
VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/$device.vmdk -rawdisk /dev/$device -register<br />
fi<br />
fi<br />
done<br />
<br />
# Start VirtualBox<br />
VirtualBox<br />
</nowiki>}}<br />
Note that your user has to be added to the "disk" group to create VMDKs out of existing drives.<br />
<br />
=== Run a native Arch Linux installation inside VirtualBox ===<br />
<br />
If you have a dual boot system between Arch Linux and another operating system, it can become rapidly tedious to switch back and forth if you need to work in both. Also, by using virtual machines, you just have a tiny fragment of your computer power, which can cause issues when working on projects requiring performance.<br />
<br />
This guide will let you reuse, in a virtual machine, your native Arch Linux installation when you are running your second operating system. This way, you keep the ability to run each operating system natively, but have the option to run your Arch Linux installation inside a virtual machine.<br />
<br />
==== Make sure you have a persistent naming scheme ====<br />
<br />
Depending on your hard drive setup, device files representing your hard drives may appear differently when you will run your Arch Linux installation natively or in virtual machine. This problem occurs when using [[RAID#Implementation|FakeRAID]] for example. The fake RAID device will be mapped in {{ic|/dev/mapper/}} when you run your GNU/Linux distribution natively, while the devices are still accessible separately. However, in your virtual machine, it can appear without any mapping in {{ic|/dev/sdaX}} for example, because the drivers controlling the fake RAID in your host operating system (e.g. Windows) are abstracting the fake RAID device.<br />
<br />
To circumvent this problem, we will need to use an addressing scheme that is persistent to both systems. This can be achieved using [[Fstab#UUIDs|UUIDs]] in your {{ic|/etc/fstab}} file. Make sure your [[fstab]] file is using UUIDs, otherwise fix this issue. Read [[fstab]] and [[Persistent block device naming]].<br />
<br />
{{ic|/etc/fstab}} is not the only location where UUIDs are used. Bootloaders and boot managers make use of them too. Now, make sure these are really using UUIDs.<br />
<br />
; [[GRUB Legacy]]<br />
If you are still using the old [[GRUB Legacy]], maybe is it [[GRUB Legacy#Upgrading to GRUB2|time to upgrade]], since this package is now dropped from the official Arch Linux repositories. If you want to keep it, edit {{ic|/boot/grub/menu.lst}} and replace the {{ic|1=root=/dev/sdXX}} statement in your Arch Linux boot entry by the Linux UUID mapping in {{ic|/dev/disk/by-uuid/}} corresponding to your root partition.<br />
<br />
title Arch Linux<br />
root<br />
kernel /vmlinuz-linux root=''/dev/disk/by-uuid/0a3407de-014b-458b-b5c1-848e92a327a3'' ro vga=773<br />
initrd /initramfs-linux-vbox.img<br />
<br />
Repeat the process here, for the fallback entry.<br />
<br />
; [[GRUB]]<br />
If you are running the most recent version of [[GRUB]]; you have nothing to do. Yet another reason to upgrade to GRUB 2.<br />
<br />
{{Warning|<br />
* Make sure your host partition is only accessible in read only from your Arch Linux virtual machine, this will avoid risk of corruptions if you were to corrupt that host partition by writing on it due to lack of attention.<br />
* You should NEVER allow VirtualBox to boot from the entry of your second operating system, which, as a reminder, is used as the host for this virtual machine! Take thus a special care especially if your default boot loader/boot manager entry is your other operating system. Give a more important timeout or put it below in the order of preferences.}}<br />
<br />
==== Make sure your mkinitcpio image is correct ====<br />
<br />
Make sure your [[Mkinitcpio|mkinitcpio]] configuration uses the [[Mkinitcpio#HOOKS|HOOK]] {{ic|block}}:<br />
<br />
{{hc|/etc/mkinitcpio.conf|2=<br />
[...]<br />
HOOKS="base udev autodetect modconf ''block'' filesystems keyboard fsck"<br />
[...]}}<br />
<br />
If it is not present, add it and [[Mkinitcpio#Image creation and activation|regenerate your initramfs]]:<br />
<br />
# mkinitcpio -p linux<br />
<br />
==== Create a VM configuration to boot from the physical drive ====<br />
<br />
===== Create a raw disk .vmdk image =====<br />
<br />
Now, we need to create a new virtual machine which will use a [https://www.virtualbox.org/manual/ch09.html#rawdisk RAW disk] as virtual drive, for that we will use a ~ 1Kio VMDK file which will be mapped to a physical disk. Unfortunately, VirtualBox does not have this option in the GUI, so we will have to use the console and use an internal command of {{ic|VBoxManage}}.<br />
<br />
Boot the host which will use the Arch Linux virtual machine. The command will need to be adapted according to the host you have.<br />
<br />
; On a GNU/Linux host:<br />
<br />
There is 3 ways to achieve this: login as root, changing the access right of the device with {{ic|chmod}}, adding your user to the {{ic|disk}} group. The latter way is the more elegant, let us proceed that way:<br />
<br />
# gpasswd -a ''your_user'' disk<br />
<br />
Apply the new group settings with:<br />
<br />
$ newgrp<br />
<br />
Now, you can use the command:<br />
<br />
$ VBoxManage internalcommands createrawvmdk -filename ''/path/to/file.vmdk'' -rawdisk ''/dev/sdb'' -register <br />
<br />
Adapt the above command to your need, especially the path and filename of the VMDK location and the raw disk location to map which contain your Arch Linux installation.<br />
<br />
; On a Windows host:<br />
<br />
Open a command prompt must be run as administrator. {{Tip|On Windows, open your start menu/start screen, type {{ic|cmd}}, and type {{ic|Ctrl+Shift+Enter}}, this is a shortcut to execute the selected program with admin rights.}}<br />
<br />
On Windows, as the disk filename convention is different from UNIX, use this command to determine what drives you have in your Windows system and their location:{{hc|# wmic diskdrive get name,size,model|<br />
Model Name Size<br />
WDC WD40EZRX-00SPEB0 ATA Device \\.\PHYSICALDRIVE1 4000783933440<br />
KINGSTON SVP100S296G ATA Device \\.\PHYSICALDRIVE0 96024821760<br />
Hitachi HDT721010SLA360 ATA Device \\.\PHYSICALDRIVE2 1000202273280<br />
Innostor Ext. HDD USB Device \\.\PHYSICALDRIVE3 1000202273280}}<br />
<br />
In this example, as the Windows convention is {{ic|\\.\PhysicalDriveX}} where X is a number from 0, {{ic|\\.\PHYSICALDRIVE1}} could be analogous to {{ic|/dev/sdb}} from the Linux disk terminology.<br />
<br />
To use the {{ic|VBoxManage}} command on Windows, you can either, change the current directory to your VirtualBox installation folder first with {{ic|cd C:\Program Files\Oracle\VirtualBox\}}<br />
<br />
# .\VBoxManage.exe internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1<br />
<br />
or use the absolute path name: <br />
<br />
# "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1<br />
<br />
; On another OS host:<br />
<br />
There are other limitations regarding the aforementioned command when used in other operating systems like OS X, please thus [https://www.virtualbox.org/manual/ch09.html#rawdisk read carefully the manual page], if you are concerned.<br />
<br />
===== Create the VM configuration file =====<br />
<br />
{{Note|<br />
* To make use of the VBoxManage command on Windows, you need to change the current directory to your VirtualBox installation folder first: cd C:\Program Files\Oracle\VirtualBox\.<br />
* Windows makes use of backslashes instead of slashes, please replace all slashes / occurrences by backslashes \ in the commands that follow when you will use them.}}<br />
<br />
After, we need to create a new machine (replace the ''VM_name'' to your convenience) and register it with VirtualBox.<br />
<br />
$ VBoxManage createvm -name ''VM_name'' -register<br />
<br />
Then, the newly raw disk needs to be attached to the machine. This will depend if your computer or actually the root of your native Arch Linux installation is on an IDE or a SATA controller.<br />
<br />
If you need an IDE controller:<br />
<br />
$ VBoxManage storagectl ''VM_name'' --name "IDE Controller" --add ide<br />
$ VBoxManage storageattach ''VM_name'' --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk<br />
<br />
otherwise:<br />
<br />
$ VBoxManage storagectl ''VM_name'' --name "SATA Controller" --add sata<br />
$ VBoxManage storageattach ''VM_name'' --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk<br />
<br />
While you continue using the CLI, it is recommended to use the VirtualBox GUI, to personalise the virtual machine configuration. Indeed, you must specify its hardware configuration as close as possible as your native machine: turning on the 3D acceleration, increasing video memory, setting the network interface, etc.<br />
<br />
==== Install the Guest Additions ====<br />
<br />
Finally, you may want to seamlessly integrate your Arch Linux with your host operating system and allow copy pasting between both OSes. Please refer to [[#Install the Guest Additions]] for that, since this Arch Linux virtual machine is basically an Arch Linux guest.<br />
<br />
{{Warning|For [[Xorg]] to work in natively and in the virtual machine, since obviously it will be using different drivers, it is best if there is no {{ic|/etc/X11/xorg.conf}}, so Xorg will pick up everything it needs on the fly. However, if you really do need your own Xorg configuration, maybe is it worth to set your default systemd target to {{ic|multi-user.target}} with {{ic|systemctl isolate graphical.target}} as root (more details at [[Systemd#Targets table]] and [[Systemd#Change current target]]). In that way, the graphical interface is disabled (i.e. Xorg is not launched) and after you logged in, you can {{ic|startx}}} manually with a custom {{ic|xorg.conf}}.}}<br />
<br />
=== Install a native Arch Linux system from VirtualBox ===<br />
<br />
In some cases it may be useful to install a native Arch Linux system while running another operating system: one way to accomplish this is to perform the installation through VirtualBox on a [http://www.virtualbox.org/manual/ch09.html#rawdisk raw disk]. If the existing operating system is Linux based, you may want to consider following [[Install from Existing Linux]] instead.<br />
<br />
This scenario is very similar to [[#Run a native Arch Linux installation inside VirtualBox]], but will follow those steps in a different order: start by [[#Create a raw disk .vmdk image]], then [[#Create the VM configuration file]].<br />
<br />
Now, you should have a working VM configuration whose virtual VMDK disk is tied to a real disk. The installation process is exactly the same as the steps described in [[#Installation steps for Arch Linux guests]], but [[#Make sure you have a persistent naming scheme]] and [[#Make sure your mkinitcpio image is correct]].<br />
<br />
{{Warning|<br />
*For BIOS systems and MBR disks, do not install a bootloader inside your virtual machine, this will not work since the MBR is not linked to the MBR of your real machine and your virtual disk is only mapped to a real partition without the MBR.<br />
*For UEFI systems without [[Wikipedia:Compatibility Support Module#CSM|CSM]] and GPT disks, the installation will not work at all since:<br />
:*the [[Wikipedia:EFI System partition|ESP]] partition is not mapped to your virtual disk and Arch Linux requires to have the Linux kernel on it to boot as an EFI application (see [[EFISTUB]] for details);<br />
:*and the efivars, if you are installing Arch Linux using the EFI mode brought by VirtualBox, are not the one of your real system: the bootmanager entries will hence not be registered.<br />
*This is why, it is recommended to create your partitions in a native installation first, otherwize the partitions will not be taken into consideration in your MBR/GPT partition table.}}<br />
<br />
After completing the installation, boot your computer natively with an GNU/Linux installation media (whether it be Arch Linux or not), [[Beginner's Guide#Chroot and configure the base system|chroot]] into your installed Arch Linux installation and [[Beginner's Guide#Install and configure a bootloader|#Install and configure a bootloader]].<br />
<br />
=== Move a native Windows installation to a virtual machine ===<br />
<br />
If you want to migrate an existing native Windows installation to a virtual machine which will be used with VirtualBox on GNU/Linux, this use case is for you. This section only covers native Windows installation using the MSDOS/Intel partition scheme. Your Windows installation must reside on the first MBR partition for this operation to success. Operation for other partitions are available but have been untested (see [[#Known limitations]] for details).<br />
<br />
{{Warning|If you are using an OEM version of Windows, this process is unauthorized by the end user license license. Indeed, the OEM license typically states the Windows install is tied with the hardware together. Transferring a Windows install to a virtual machine removes this link. Make thus sure you have a full Windows install or a volume license model before continuing. If you have a full Windows license but the latter is not coming in volume, nor as a special license for several PCs, this means you will have to remove the native installation after the transfer operation has been achieved.}}<br />
<br />
A couple of tasks are required to be done inside your native Windows installation first, then on your GNU/Linux host.<br />
<br />
==== Tasks on Windows ====<br />
<br />
The first three following points comes from [https://www.virtualbox.org/wiki/Migrate_Windows#HAL this outdated VirtualBox wiki page], but are updated here.<br />
<br />
* Remove IDE/ATA controllers checks (Windows XP only): Windows memorize the IDE/ATA drive controllers it has been installed on and will not boot if it detects these have changed. The solution proposed by Microsoft is to reuse the same controller or use one of the same serial, which is impossible to achieve since we are using a Virtual Machine. [https://www.virtualbox.org/wiki/Migrate_Windows#HardDiskSupport MergeIDE], a German tool, developped upon another other solution proposed by Microsoft can be used. That solution basically consists in taking all IDE/ATA controller drivers supported by Windows XP from the initial driver archive (the location is hard coded, or specify it as the first argument to the {{ic|.bat}} script), installing them and registering them with the regedit database.<br />
<br />
* Use the right type of Hardware Abstraction Layer (old 32 bits Windows versions): Microsoft ships 3 default versions: {{ic|Hal.dll}} (Standard PC), {{ic|Halacpi.dll}} (ACPI HAL) and {{ic|Halaacpi.dll}} (ACPI HAL with IO APIC). Your Windows install could come installed with the first or the second version. In that way, please [https://www.virtualbox.org/manual/ch08.html#idp56927888 disable the ''Enable IO/APIC'' VirtualBox extended feature].<br />
<br />
* Disable any AGP device driver (only outdated Windows versions): If you have the files {{ic|agp440.sys}} or {{ic|intelppm.sys}} inside the {{ic|C:\Windows\SYSTEM32\drivers\}} directory, remove it. As VirtualBox uses a PCI virtual graphic card, this can cause problems when this AGP driver is used.<br />
<br />
* Create a Windows recovery disk: In the following steps, if things turn bad, you will need to repair your Windows installation. Make sure you have an install media at hand, or create one with ''Create a recovery disk'' from Vista SP1, ''Create a system repair disc'' on Windows 7 or ''Create a recovery drive'' on Windows 8.x).<br />
<br />
==== Using Disk2vhd to clone Windows partition ====<br />
Boot into Windows, clean up the installation (with [http://www.piriform.com/ccleaner CCleaner] for example), use [https://technet.microsoft.com/en-us/library/ee656415.aspx disk2vhd] tool to create a VHD image. Include a reserved system partition (if present) and the actual Windows partition (usually disk C:). The size of Disk2vhd-created image will be the sum of the actual files on the partition (used space), not the size of a whole partition. If all goes well, the image should just boot in a VM and you won't have to go through the hassle with MBR and Windows bootloader, as in the case of cloning an entire partition.<br />
<br />
==== Tasks on GNU/Linux ====<br />
<br />
{{Tip|Skip the partition-related parts if you created VHD image with [[#Using Disk2vhd to clone Windows partition|Disk2vhd]].}}<br />
<br />
* Reduce the native Windows partition size to the size Windows actually needs with {{ic|ntfsresize}} available from {{Pkg|ntfs-3g}}. The size you will specify will be the same size of the VDI that will be created in the next step. If this size is too low, you may break your Windows install and the latter might not boot at all.<br />
<br />
:Use the {{ic|--no-action}} option first to run a test:<br />
:{{bc|# ntfsresize --no-action --size ''52Gi'' ''/dev/sda1''}}<br />
<br />
:If only the previous test succeeded, execute this command again, but this time without the aforementioned test flag.<br />
<br />
* Install VirtualBox on your GNU/Linux host (see [[#Installation steps for Arch Linux hosts]] if your host is Arch Linux).<br />
<br />
* Create the Windows disk image from the beginning of the drive to the end of the first partition where is located your Windows installation. Copying from the beginning of the disk is necessary because the MBR space at the beginning of the drive needs to be on the virtual drive along with the Windows partition. In this example two following partitions {{ic|sda2}} and {{ic|sda3}}will be later removed from the partition table and the MBR bootloader will be updated.<br />
<br />
:{{bc|<nowiki># sectnum=$(( $(cat /sys/block/''sda/sda1''/start) + $(cat /sys/block/''sda/sda1''/size) ))</nowiki>}}<br />
:Using {{ic|cat /sys/block/''sda/sda1''/size}} will output the number of total sectors of the first partition of the disk {{ic|sda}}. Adapt where necessary.<br />
<br />
:{{bc|<nowiki># dd if=''/dev/sda'' bs=512 count=$sectnum | VBoxManage convertfromraw stdin ''windows.vdi'' $(( $sectnum * 512 ))</nowiki>}}<br />
:We need to display the size in byte, {{ic|$(( $sectnum * 512 ))}} will convert the sector numbers to bytes.<br />
<br />
* Since you created your disk image as root, set the right ownership to the virtual disk image: {{bc|# chown ''your_user'':''your_group'' windows.vdi}}<br />
<br />
* Create your virtual machine configuration file and use the virtual disk created previously as the main virtual hard disk.<br />
<br />
* Try to boot your Windows VM, it may just work. First though remove and repair disks from the boot process as it may interfere (and likely will) booting into safe-mode.<br />
<br />
* Attempt to boot your Windows virtual machine in safe mode (press the F8 key before the Windows logo shows up)... if running into boot issues, read [[#Fix MBR and Microsoft bootloader]]. In safe-mode, drivers will be installed likely by the Windows plug-and-play detection mechanism [http://i.imgur.com/hh1RrSp.png view]. Additionally, install the VirtualBox Guest Additions via the menu ''Devices'' > ''Insert Guest Additions CD image...''. If a new disk dialog does not appear, navigate to the CD drive and start the installer manually.<br />
<br />
* You should finally have a working Windows virtual machine. Do not forget to read the [[#Known limitations]].<br />
<br />
* Performance tip: according to [http://www.virtualbox.org/manual/ch05.html#harddiskcontrollers VirtualBox manual], SATA controller has a better performance than IDE. If you can't boot Windows off virtual SATA controller right away, it is probably due to the lack of SATA drivers. Attach virtual disk to IDE controller, create an empty SATA controller and boot the VM - Windows should automatically install SATA drivers for the controller. You can then shutdown VM, detach virtual disk from IDE controller and attach it to SATA controller instead.<br />
<br />
==== Fix MBR and Microsoft bootloader ====<br />
<br />
If your Windows virtual machine refuses to boot, you may need to apply the following modifications to your virtual machine.<br />
<br />
*Boot a GNU/Live live distribution inside your virtual machine before Windows starts up.<br />
<br />
*Remove other partitions entries from the virtual disk MBR. Indeed, since we copied the MBR and only the Windows partition, the entries of the other partitions are still present in the MBR, but the partitions are not available anymore. Use {{ic|fdisk}} to achieve this for example.<br />
:{{bc|<nowiki>fdisk ''/dev/sda''<br />
Command (m for help): a<br />
Partition number (''1-3'', default ''3''): ''1''</nowiki>}}<br />
<br />
*Write the updated partition table to the disk (this will recreate the MBR) using the {{ic|m}} command inside {{ic|fdisk}}.<br />
<br />
*Use {{Pkg|testdisk}} (see [http://www.cgsecurity.org/index.html?testdisk.html here] for details) to add a generic MBR:<br />
:{{bc|# testdisk > ''Disk /dev/sda...''' > [Proceed] > [Intel] Intel/PC partition > [MBR Code] Write TestDisk MBR to first sector > Write a new copy of MBR code to first sector? (Y/n) > Y > Write a new copy of MBR code, confirm? (Y/N) > A new copy of MBR code has been written. You have to reboot for the change to take effect. > [OK]}}<br />
<br />
*With the new MBR and updated partition table, your Windows virtual machine should be able to boot. If you are still encountering issues, boot your Windows recovery disk from on of the previous step, and inside your Windows RE environment, execute the commands [http://support.microsoft.com/kb/927392 described here].<br />
<br />
==== Known limitations ====<br />
<br />
*Your virtual machine can sometimes hang and overrun your RAM, this can be caused by conflicting drivers still installed inside your Windows virtual machine. Good luck to find them!<br />
*Additional software expecting a given driver beneath may either not be disabled/uninstalled or needs to be uninstalled first as the drivers that are no longer available.<br />
*Your Windows installation must reside on the first partition for the above process to work. If this requirement is not met, the process might be achieved too, but this had not been tested. This will require either copying the MBR and editing in hexadecimal see [http://superuser.com/questions/237782/virtualbox-booting-cloned-disk/253417#253417 VirtualBox: booting cloned disk] or will require to fix the partition table [http://gparted.org/h2-fix-msdos-pt.php manually] or by repairing Windows with the recovery disk you created in a previous step. Let us consider our Windows installation on the second partition; we will copy the MBR, then the second partition where to the disk image. {{ic|VBoxManage convertfromraw}} needs the total number of bytes that will be written: calculated thanks to the size of the MBR (the start of the first partition) plus the size of the second (Windows) partition. {{ic|<nowiki>{ dd if=/dev/sda bs=512 count=$(cat /sys/block/sda/sda1/start) ; dd if=/dev/sda2 bs=512 count=$(cat /sys/block/sda/sda2/size) ; } | VBoxManage convertfromraw stdin windows.vdi $(( ($(cat /sys/block/sda/sda1/start) + $(cat /sys/block/sda/sda2/size)) * 512 ))</nowiki>}}.<br />
<br />
== Troubleshooting ==<br />
<br />
=== VERR_ACCESS_DENIED ===<br />
<br />
To access the raw vmdk image on a windows host, run the VirtualBox GUI as administrator.<br />
<br />
=== Keyboard and mouse are blocked in my virtual machine ===<br />
<br />
This means your virtual machine has captured the input of your keyboard and your mouse. Simply press the right {{ic|Ctrl}} key and your input should control your host again.<br />
<br />
To control transparently your virtual machine with your mouse going back and forth your host, without having to press any key, and thus have a seamless integration, install the guest additions inside the guest. Read from the [[#Install the Guest Additions]] step if you guest is Arch Linux, otherwise read the official VirtualBox help.<br />
<br />
=== Cannot send CTRL+ALT+Fn key to my virtual machine ===<br />
<br />
Your guest operating system is a GNU/Linux distribution and you want to open a new TTY shell by hitting {{ic|Ctrl+Alt+F2}} or exit your current X session with {{ic|Ctrl+Alt+Backspace}}. If you type these keyboard shortcuts without any adaptation, the guest will not receive any input and the host (if it is a GNU/Linux distribution too) will intercept these shortcut keys. To send {{ic|Ctrl+Alt+F2}} to the guest for example, simply hit your ''Host Key'' (usually the right {{ic|Ctrl}} key) and press {{ic|F2}} simultaneously.<br />
<br />
=== Fix ISO images problems ===<br />
<br />
While VirtualBox can mount ISO images without problem, there are some image formats which cannot reliably be converted to ISO. For instance, ccd2iso ignores .ccd and .sub files, which can give disk images with broken files. <br />
<br />
In this case, you will either have to use [[CDEmu]] for Linux inside VirtualBox or any other utility used to mount disk images.<br />
<br />
=== VirtualBox GUI does not match my GTK Theme ===<br />
<br />
See [[Uniform Look for Qt and GTK Applications]] for information about theming Qt based applications like Virtualbox.<br />
<br />
=== OpenBSD unusable when virtualisation instructions unavailable ===<br />
<br />
While OpenBSD is reported to work fine on other hypervisors without virtualisation instructions (VT-x AMD-V) enabled, an OpenBSD virtual machine running on VirtualBox without these instructions will be unusable, manifesting with a bunch of segmentation faults. Starting VirtualBox with the ''-norawr0'' argument [https://www.virtualbox.org/ticket/3947 may solve the problem]. You can do it like this:<br />
$ VBoxSDL -norawr0 -vm ''name_of_OpenBSD_VM''<br />
<br />
=== VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) ===<br />
<br />
This can occur if a VM is exited ungracefully. The solution to unlock the VM is trivial:<br />
$ VBoxManage controlvm ''virtual_machine_name'' poweroff<br />
<br />
=== USB subsystem is not working on the host or guest ===<br />
<br />
Your user must be in the {{ic|vboxusers}} group, and you need to install the [[#Extension pack|extension pack]] if you want USB 2 support. Then you will be able to enable USB 2 in the VM settings and add one or several filters for the devices you want to access from the guest OS.<br />
<br />
If {{ic|VBoxManage list usbhost}} does not show any USB devices even if run as root, make sure that there is no old udev rules (from VirtualBox 4.x) in ''/etc/udev/rules.d/''. VirtualBox 5.0 installs udev rules to ''/usr/lib/udev/rules.d/''. You can use command like {{ic|pacman -Qo /usr/lib/udev/rules.d/60-vboxdrv.rules}} to determine if the udev rule file is outdated.<br />
<br />
Sometimes, on old Linux hosts, the USB subsystem is not auto-detected resulting in an error {{ic|Could not load the Host USB Proxy service: VERR_NOT_FOUND}} or in a not visible USB drive on the host, [https://bbs.archlinux.org/viewtopic.php?id=121377 even when the user is in the '''vboxusers''' group]. This problem is due to the fact that VirtualBox switched from ''usbfs'' to ''sysfs'' in version 3.0.8. If the host does not understand this change, you can revert to the old behaviour by defining the following environment variable in any file that is sourced by your shell (e.g. your {{ic|~/.bashrc}} if you are using ''bash''):<br />
<br />
{{hc|~/.bashrc|VBOX_USB<nowiki>=</nowiki>usbfs}}<br />
<br />
Then make sure, the environment has been made aware of this change (reconnect, source the file manually, launch a new shell instance or reboot).<br />
<br />
Also make sure that your user is a member of the {{ic|storage}} group.<br />
<br />
=== Failed to create the host-only network interface ===<br />
<br />
Make sure all required kernel modules are loaded. See [[#Load the VirtualBox kernel modules]].<br />
<br />
=== WinXP: Bit-depth cannot be greater than 16 ===<br />
<br />
If you are running at 16-bit color depth, then the icons may appear fuzzy/choppy. However, upon attempting to change the color depth to a higher level, the system may restrict you to a lower resolution or simply not enable you to change the depth at all. To fix this, run {{ic|regedit}} in Windows and add the following key to the Windows XP VM's registry:<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]<br />
"ColorDepth"=dword:00000004<br />
<br />
Then update the color depth in the "desktop properties" window. If nothing happens, force the screen to redraw through some method (i.e. {{ic|Host+f}} to redraw/enter full screen).<br />
<br />
=== Use serial port in guest OS ===<br />
<br />
Check you permission for the serial port:<br />
$ /bin/ls -l /dev/ttyS*<br />
crw-rw---- 1 root uucp 4, 64 Feb 3 09:12 /dev/ttyS0<br />
crw-rw---- 1 root uucp 4, 65 Feb 3 09:12 /dev/ttyS1<br />
crw-rw---- 1 root uucp 4, 66 Feb 3 09:12 /dev/ttyS2<br />
crw-rw---- 1 root uucp 4, 67 Feb 3 09:12 /dev/ttyS3<br />
<br />
Add your user to the {{ic|uucp}} group.<br />
# gpasswd -a $USER uucp <br />
and log out and log in again.<br />
<br />
=== Windows 8.x Error Code 0x000000C4===<br />
<br />
If you get this error code while booting, even if you choose OS Type Win 8, try to enable the {{ic|CMPXCHG16B}} CPU instruction:<br />
<br />
$ vboxmanage setextradata ''virtual_machine_name'' VBoxInternal/CPUM/CMPXCHG16B 1<br />
<br />
=== Windows 8, 8.1 or 10 fails to install, boot or has error "ERR_DISK_FULL" ===<br />
Update the VM's settings by going to ''Settings > Storage > Controller:SATA'' and check "Use Host I/O Cache".<br />
<br />
=== Linux guests have slow/distorted audio ===<br />
<br />
The AC97 audio driver within the Linux kernel occasionally guesses the wrong clock settings when running inside Virtual Box, leading to audio that is either too slow or too fast. To fix this, create a file in {{ic|/etc/modprobe.d}} with the following line:<br />
<br />
options snd-intel8x0 ac97_clock=48000<br />
<br />
=== Guest freezes after starting Xorg ===<br />
<br />
Faulty or missing drivers may cause the guest to freeze after starting Xorg, see for example [https://bbs.archlinux.org/viewtopic.php?pid=1167838] and [https://bbs.archlinux.org/viewtopic.php?id=156079]. Try disabling 3D acceleration in ''Settings > Display'', and check if all [[Xorg]] drivers are installed.<br />
<br />
=== "NS_ERROR_FAILURE" and missing menu items ===<br />
<br />
If you encounter this message when first time starting the virtual machine:<br />
<br />
{{bc|Failed to open a session for the virtual machine debian.<br />
Could not open the medium '/home/.../VirtualBox VMs/debian/debian.qcow'.<br />
QCow: Reading the L1 table for image '/home/.../VirtualBox VMs/debian/debian.qcow' failed (VERR_EOF).<br />
VD: error VERR_EOF opening image file '/home/.../VirtualBox VMs/debian/debian.qcow' (VERR_EOF).<br />
<br />
Result Code: <br />
NS_ERROR_FAILURE (0x80004005)<br />
Component: <br />
Medium<br />
}}<br />
<br />
Exit VirtualBox, delete all files of the new machine and from virtualbox config file remove the last line in {{ic|MachineRegistry}} menu (or the offending machine you are creating):<br />
<br />
{{hc|~/.config/VirtualBox/VirtualBox.xml|2=<br />
...<br />
<MachineRegistry><br />
<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/debian/debian.vbox"/><br />
<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/ubuntu/ubuntu.vbox"/><br />
<strike><MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/></strike><br />
</MachineRegistry><br />
...<br />
}}<br />
<br />
This happens sometimes when selecting ''QCOW''/''QCOW2''/''QED'' disk format when creating a new virutal disk.<br />
<br />
=== USB modem ===<br />
<br />
If you have a USB modem which is being used by the guest OS, killing the guest OS can cause the modem to become unusable by the host system. Killing and restarting {{ic|VBoxSVC}} should fix this problem.<br />
<br />
=== "The specified path does not exist. Check the path and then try again." error in Windows guests ===<br />
<br />
This error message often appears when running an .exe file which requires administrator priviliges from a shared folder in windows guests. See [https://www.virtualbox.org/ticket/5732 the bug report] for details.<br />
<br />
There are several workarounds:<br />
<br />
# Disable UAC from Control Panel -> Action Center -> "Change User Account Control settings" from left side pane -> set slider to "Never notify" -> OK and reboot<br />
# Copy the file from the shared folder to the guest and run from there<br />
# Control Panel -> Network and Internet -> Internet Options -> Security -> Trusted Sites -> Sites -> Add "VBOXSVR" as a website<br />
# Start -> type "gpedit.msc" and press Enter -> Computer Configuration -> Administrative Templates -> Windows Components -> Internet Explorer -> Internet Control Panel -> Security Page -> Size to Zone Assignment List -> Add "VBOXSVR" to "2" and reboot<br />
<br />
{{Accuracy|Haven't tested#3 and #4 workarounds myself. If someone can confirm that they are working as well, please delete this note/template.}}<br />
<br />
=== No 64-bit OS client options ===<br />
<br />
When launching a VM client, and no 64-bit options are available, make sure your CPU virtualization capabilities (usually named {{ic|VT-x}}) are enabled in the BIOS.<br />
<br />
=== Host OS freezes on Virtual Machine start ===<br />
<br />
{{Expansion|Needs a link to a bug report; vague expressions like "currently" and "at the moment of writing" are of no help.}}<br />
<br />
Possible causes/solutions :<br />
* SMAP<br />
This is a known incompatiblity with SMAP enabled kernels affecting (mostly) Intel Broadwell chipsets. The matter is currently being investigated, with a wide variety of WIP vboxhost module patches out in the wild that are meant to solve the issue. At the moment of writing though, the only 100% guaranteed solution to this problem is disabling SMAP support in your kernel by appending the "nosmap" option to your kernel boot command line.<br />
* Hardware Virtualisation<br />
Disabling hardware virtualisation (VT-x/AMD-V) may solve the problem.<br />
* Various Kernel bugs<br />
** Fuse mounted partitions (like ntfs) [https://bbs.archlinux.org/viewtopic.php?id=185841], [https://bugzilla.kernel.org/show_bug.cgi?id=82951#c12]<br />
<br />
Generally, such issues are observed after upgrading VirtualBox or linux kernel. Downgrading them to the previous versions of theirs might solve the problem.<br />
<br />
=== The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1) ===<br />
<br />
When trying to launch a virtual machine, an error message like the following appears:<br />
<br />
{{bc|The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1)<br />
NS_ERROR_FAILURE 0x80004005<br />
Component: MachineWrap<br />
Interface: IMachine}}<br />
<br />
This may occur after upgrading the {{Pkg|virtualbox}} or {{Pkg|virtualbox-host-modules}} package. Try reloading the {{ic|vboxdrv}} module:<br />
<br />
{{bc|# modprobe -r vboxdrv<br />
# modprobe vboxdrv<br />
}}<br />
<br />
=== Analog microphone not working in guest ===<br />
<br />
If the audio input from an analog microphone is working correctly on the host, but no sound seems to get through to the guest, despite the microphone device apparently being detected normally, installing a [[Sound system#Sound servers|sound server]] such as [[PulseAudio]] on the host might fix the problem.<br />
<br />
== See also ==<br />
<br />
* [https://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual]<br />
* [[Wikipedia:VirtualBox]]</div>Sebluhttps://wiki.archlinux.org/index.php?title=VirtualBox&diff=425636VirtualBox2016-03-13T12:48:38Z<p>Seblu: DKMS hook now warn where there is an missing packages.</p>
<hr />
<div>[[Category:Emulators]]<br />
[[Category:Hypervisors]]<br />
[[cs:VirtualBox]]<br />
[[de:VirtualBox]]<br />
[[el:VirtualBox]]<br />
[[es:VirtualBox]]<br />
[[fr:VirtualBox]]<br />
[[hu:VirtualBox]]<br />
[[it:VirtualBox]]<br />
[[ja:VirtualBox]]<br />
[[pt:VirtualBox]]<br />
[[ru:VirtualBox]]<br />
[[zh-CN:VirtualBox]]<br />
{{Related articles start}}<br />
{{Related|:Category:Hypervisors}}<br />
{{Related|PhpVirtualBox}}<br />
{{Related|Moving an existing install into (or out of) a virtual machine}}<br />
{{Related articles end}}<br />
<br />
[https://www.virtualbox.org VirtualBox] is a [[Wikipedia:Hypervisor|hypervisor]] used to run operating systems in a special environment, called a virtual machine, on top of the existing operating system. VirtualBox is in constant development and new features are implemented continuously. It comes with a [[Qt]] GUI interface, as well as headless and [[Wikipedia:Simple DirectMedia Layer|SDL]] command-line tools for managing and running virtual machines.<br />
<br />
In order to integrate functions of the host system to the guests, including shared folders and clipboard, video acceleration and a seamless window integration mode, ''guest additions'' are provided for some guest operating systems.<br />
<br />
== Installation steps for Arch Linux hosts ==<br />
<br />
In order to launch VirtualBox virtual machines on your Arch Linux box, follow these installation steps.<br />
<br />
=== Install the core packages ===<br />
<br />
[[install]] the {{Pkg|virtualbox}} package. {{Pkg|virtualbox-host-dkms}} will also be installed as a required dependency. To compile the virtualbox modules provided by {{ic|virtualbox-host-dkms}}, it will also be necessary to install the appropriate headers package(s) for your installed kernel(s)[https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html]:<br />
<br />
* {{Pkg|linux}} kernel: {{Pkg|linux-headers}}<br />
* {{Pkg|linux-lts}} kernel: {{Pkg|linux-lts-headers}}<br />
* {{Pkg|linux-zen}} kernel: {{Pkg|linux-zen-headers}}<br />
* {{Pkg|linux-grsec}} kernel: {{Pkg|linux-grsec-headers}}<br />
<br />
You can also install the {{Pkg|qt4}} optional dependency in order to use the graphical interface which is based on [[Qt]]. This is not required if you intend to use VirtualBox in command-line only. [[#Use the right front-end|See below to learn the differences]].<br />
<br />
=== Install the VirtualBox kernel modules ===<br />
<br />
Next, to fully virtualize your guest installation, VirtualBox provides the following [[kernel modules]]: {{ic|vboxdrv}}, {{ic|vboxnetadp}}, {{ic|vboxnetflt}}, and {{ic|vboxpci}}. These must be added to your host kernel.<br />
<br />
The binary compatibility of kernel modules depends on the API of the kernel against which they have been compiled. The problem with the Linux kernel is that these interfaces might not be the same from one kernel version to another. In order to avoid compatibility problems and subtle bugs, each time the Linux kernel is upgraded, it is advised to recompile the kernel modules against the Linux kernel version that has just been installed. This is what Arch Linux packagers actually do with the VirtualBox kernel modules packages: each time a new Arch Linux kernel is released, the Virtualbox modules are upgraded accordingly.<br />
<br />
==== Hosts running a custom kernel ====<br />
<br />
If you use or intend to use a self-compiled kernel from sources, you have to know that VirtualBox does not require any virtualization modules (e.g. virtuo, kvm,...). The VirtualBox kernel modules provide all the necessary for VirtualBox to work properly. You can thus disable in your kernel ''.config'' file these virtualization modules if you do not use other hypervisors like Xen, KVM or QEMU.<br />
<br />
===== DKMS Install =====<br />
<br />
{{Tip|[[DKMS]] can automatically generate the modules of the current running kernel by running the following command:<br />
{{bc|<nowiki># dkms autoinstall</nowiki>}}<br />
}}<br />
<br />
As the {{Pkg|virtualbox-host-dkms}} package requires compilation, make sure you have the kernel headers corresponding to your custom kernel version to prevent this error from happening: {{ic|Your kernel headers for kernel ''your custom kernel version'' cannot be found at /usr/lib/modules/''your custom kernel version''/build or /usr/lib/modules/''your custom kernel version''/source}}<br />
<br />
Once {{Pkg|virtualbox-host-dkms}} is installed, simply generate the kernel modules for the custom kernel by running the following command:<br />
# dkms install vboxhost/''virtualbox-host-source version'' -k ''your custom kernel version''/''your architecture''<br />
<br />
{{Tip|Use this all-in-one command instead, if you do not want to adapt the above command:<br />
{{bc|<nowiki># dkms install vboxhost/$(pacman -Q virtualbox|awk '{print $2}'|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')</nowiki>}}<br />
}}<br />
<br />
To automatically recompile the VirtualBox kernel modules when their sources get upgraded (i.e. when the {{Pkg|virtualbox-host-dkms}} package has been upgraded), enable the {{ic|dkms}} service.<br />
<br />
=== Load the VirtualBox kernel modules ===<br />
<br />
Among the [[kernel modules]] VirtualBox uses, there is a mandatory module named {{ic|vboxdrv}}, which must be loaded before any virtual machines can run. It can be automatically loaded when Arch Linux starts up, or it can be loaded manually when necessary.<br />
<br />
To load the module manually:<br />
# modprobe vboxdrv<br />
<br />
To load the VirtualBox module at boot time, refer to [[Kernel modules#Automatic module handling]] and create a {{ic|*.conf}} file (e.g. {{ic|virtualbox.conf}}) in {{ic|/etc/modules-load.d/}} with the line:<br />
{{hc|/etc/modules-load.d/virtualbox.conf|<br />
vboxdrv}}<br />
<br />
The following modules are optional but are recommended if you do not want to be bothered in some advanced configurations (precised here after): {{ic|vboxnetadp}}, {{ic|vboxnetflt}} and {{ic|vboxpci}}.<br />
<br />
* {{ic|vboxnetadp}} and {{ic|vboxnetflt}} are both needed when you intend to use the [https://www.virtualbox.org/manual/ch06.html#network_bridged bridged] or [https://www.virtualbox.org/manual/ch06.html#network_hostonly host-only networking] feature. More precisely, {{ic|vboxnetadp}} is needed to create the host interface in the VirtualBox global preferences, and {{ic|vboxnetflt}} is needed to launch a virtual machine using that network interface.<br />
<br />
* {{ic|vboxpci}} is needed when your virtual machine needs to pass through a PCI device on your host.<br />
<br />
{{Note|If the VirtualBox kernel modules were loaded in the kernel while you updated the modules, you need to reload them manually to use the new updated version. To do it, run {{ic|vboxreload}} as root.}}<br />
<br />
Finally, if you use the aforementioned "Host-only" or "bridge networking" feature, make sure {{pkg|net-tools}} is installed. VirtualBox actually uses {{ic|ifconfig}} and {{ic|route}} to assign the IP and route to the host interface configured with {{ic|VBoxManage hostonlyif}} or via the GUI in ''Settings > Network > Host-only Networks > Edit host-only network (space) > Adapter''.<br />
<br />
=== Add usernames to the vboxusers group ===<br />
<br />
To use the USB ports of your host machine in your virtual machines, add to the {{ic|vboxusers}} [[group]] the usernames that will be authorized to use this feature. The new group does not automatically apply to existing sessions; the user has to log out and log in again, or start a new environment with the {{ic|newgrp}} command or with {{ic|sudo -u $USER -s}}. To add the current user to the {{ic|vboxusers}} group, type:<br />
# gpasswd -a $USER vboxusers<br />
<br />
=== Guest additions disc ===<br />
<br />
It is also recommended to install the {{Pkg|virtualbox-guest-iso}} package on the host running VirtualBox. This package will act as a disc image that can be used to install the guest additions onto guest systems other than Arch Linux. The ''.iso'' file will be located at {{ic|/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso}}, and may have to be mounted manually inside the virtual machine. Once mounted, you can run the guest additions installer inside the guest.<br />
<br />
=== Extension pack ===<br />
<br />
Since VirtualBox 4.0, non-GPL components have been split from the rest of the application. Despite being released under a non-free license and '''being only available for personal use''', you might be interested in installing the Oracle Extension Pack which provides [https://www.virtualbox.org/manual/ch01.html#intro-installing additional features]. To avoid manual manipulation, the {{aur|virtualbox-ext-oracle}} package is available, and a prebuilt version can be found in the [[Unofficial user repositories#seblu|seblu]] repository.<br />
<br />
If you prefer to use the traditional and manual way: download the extension manually and install it via the GUI (''File > Preferences > Extensions'') or via {{ic|VBoxManage extpack install <.vbox-extpack>}}, make sure you have a toolkit (like [[Polkit]], gksu, etc.) to grant privileged access to VirtualBox. The installation of this extension [https://www.virtualbox.org/ticket/8473 requires root access].<br />
<br />
=== Use the right front-end ===<br />
<br />
Now, you are ready to use VirtualBox. Congratulations!<br />
<br />
Multiple front-ends are available to you of which two are available by default:<br />
* If you want to use VirtualBox in command-line only (only launch and change settings of existing virtual machines), you can use the {{ic|VBoxSDL}} command. VBoxSDL does only provide a simple window that contains only the ''pure'' virtual machine, without menus or other controls.<br />
* If you want to use VirtualBox in command-line without any GUI running (e.g. on a server) to create, launch and configure virtual machines, use the {{ic|VBoxHeadless}} which produces no visible output on the host at all, but instead only delivers VRDP data (note: VRDP is only enabled if the extension pack is installed).<br />
<br />
If you installed the {{Pkg|qt4}} optional dependency, you can run {{ic|VirtualBox}} and have a nice-looking GUI interface with menus usable via the mouse.<br />
<br />
Finally, you can use [[PhpVirtualBox]] to administrate your virtual machines via a web interface.<br />
<br />
Refer to the [https://www.virtualbox.org/manual VirtualBox manual] to learn how to create virtual machines.<br />
<br />
{{Warning|If you intend to store virtual disk images on a [[Btrfs]] file system, before creating any images, you should consider disabling [[Btrfs#Copy-On-Write_.28CoW.29|Copy-on-Write]] for the destination directory of these images.}}<br />
<br />
== Installation steps for Arch Linux guests ==<br />
<br />
Boot the Arch installation media through one of the virtual machine's virtual drives. Then, complete the installation of a basic Arch system as explained in the [[Beginners' guide]] or the [[Installation guide]].<br />
<br />
==== Installation in EFI mode ====<br />
<br />
If you want to install Arch Linux in EFI mode inside VirtualBox, in the settings of the virtual machine, choose ''System'' item from the panel on the left and ''Motherboard'' tab from the right panel, and check the checkbox ''Enable EFI (special OSes only)''. After selecting the kernel from the Arch Linux installation media's menu, the media will hang for a minute or two and will continue to boot the kernel normally afterwards. Be patient.<br />
<br />
Once the system and the boot loader are installed, VirtualBox will first attempt to run {{ic|/EFI/BOOT/BOOTX64.EFI}} from the ESP. If that first option fails, VirtualBox will then try the EFI shell script {{ic|startup.nsh}} from the root of the ESP. This means that in order to boot the system you have the following options:<br />
<br />
* [[Unified Extensible Firmware Interface#UEFI Shell|Launch the bootloader manually]] from the EFI shell every time;<br />
* Move the bootloader to the default {{ic|/EFI/BOOT/BOOTX64.EFI}} path;<br />
* Create the {{ic|startup.nsh}} script at the ESP root containing the path to the boot loader application, e.g. {{ic|\EFI\grub\grubx64.efi}}.<br />
<br />
Do not bother with the VirtualBox Boot Manager (accessible with {{ic|F2}} at boot): EFI entries added to it manually at boot or with {{Pkg|efibootmgr}} will persist after a reboot [https://www.virtualbox.org/ticket/11177 but are lost when the VM is shut down].<br />
<br />
See also [https://bbs.archlinux.org/viewtopic.php?id=158003 UEFI Virtualbox installation boot problems].<br />
<br />
=== Install the Guest Additions ===<br />
<br />
VirtualBox [https://www.virtualbox.org/manual/ch04.html Guest Additions] provides drivers and applications that optimize the guest operating system including improved image resolution and better control of the mouse. Within the installed guest system, if using a graphical environment, install {{Pkg|virtualbox-guest-utils}}. Otherwise install {{Pkg|virtualbox-guest-utils-nox}} for VirtualBox Guest utilities without X support.<br />
<br />
Both packages will install {{Pkg|virtualbox-guest-dkms}} as a dependency. To compile the virtualbox modules provided by {{ic|virtualbox-guest-dkms}}, it will also be necessary to install the appropriate headers package(s) for your installed kernel(s)[https://lists.archlinux.org/pipermail/arch-dev-public/2016-March/027808.html]:<br />
<br />
* {{Pkg|linux}} kernel: {{Pkg|linux-headers}}<br />
* {{Pkg|linux-lts}} kernel: {{Pkg|linux-lts-headers}}<br />
* {{Pkg|linux-zen}} kernel: {{Pkg|linux-zen-headers}}<br />
* {{Pkg|linux-grsec}} kernel: {{Pkg|linux-grsec-headers}}<br />
<br />
{{Note|<nowiki></nowiki><br />
* You can alternatively install the Guest Additions with the ISO from the {{Pkg|virtualbox-guest-iso}} package, provided you installed this on the host system. To do this, go to the device menu click Insert Guest Additions CD Image.<br />
* To recompile the vbox kernel modules, run {{ic|rcvboxdrv}} as root.<br />
}}<br />
<br />
=== Load the Virtualbox kernel modules ===<br />
<br />
To load the modules automatically, [[enable]] the {{ic|vboxservice}} service which loads the modules and synchronizes the guest's system time with the host.<br />
<br />
To load the modules manually, type:<br />
# modprobe -a vboxguest vboxsf vboxvideo<br />
<br />
To load the VirtualBox module at boot time, refer to [[Kernel modules#Automatic module handling]] and create a {{ic|*.conf}} file (e.g. {{ic|virtualbox.conf}}) in {{ic|/etc/modules-load.d/}} with these lines:<br />
{{hc|/etc/modules-load.d/virtualbox.conf|<br />
vboxguest<br />
vboxsf<br />
vboxvideo}}<br />
<br />
Note that depending on your choice of paravirtualization in VirtualBox, you may need to [[Systemd#Editing provided units|edit the unit]] with the following property to get it to load: {{ic|1=<br />
ConditionVirtualization=''paravirtualization''<br />
}}<br />
<br />
Run {{ic|systemd-detect-virt}} in the console to determine your paravirtualization.<br />
<br />
=== Launch the VirtualBox guest services ===<br />
<br />
After the rather big installation step dealing with VirtualBox kernel modules, now you need to start the guest services. The guest services are actually just a binary executable called {{ic|VBoxClient}} which will interact with your X Window System. {{ic|VBoxClient}} manages the following features:<br />
* shared clipboard and drag and drop between the host and the guest;<br />
* seamless window mode;<br />
* the guest display is automatically resized according to the size of the guest window;<br />
* checking the VirtualBox host version<br />
<br />
All of these features can be enabled independently with their dedicated flags:<br />
$ VBoxClient --clipboard --draganddrop --seamless --display --checkhostversion<br />
<br />
As a shortcut, the {{ic|VBoxClient-all}} bash script enables all of these features. You should set {{ic|VBoxClient}} to be automatically loaded as your [[desktop environment]] or [[window manager]] starts. In practice,<br />
* if you are using a [[desktop environment]], you just need to check a box or add the {{ic|/usr/sbin/VBoxClient-all}} to the autostart section in your [[desktop environment]] settings (the DE will typically set a flag to a ''.desktop'' file in {{ic|~/.config/autostart}}, see [[Autostart#Desktop entries|the Autostart section]] for more details);<br />
* if you do not have any [[desktop environment]], add the following line to the top of {{ic|~/.xinitrc}} above any {{ic|exec}} options. See [[Xinitrc]] for detail.<br />
{{hc|~/.xinitrc|<br />
/usr/bin/VBoxClient-all}}<br />
<br />
VirtualBox can also synchronize the time between the host and the guest. To do this, run {{ic|VBoxService}} as root. To set this to run automatically on boot, simply [[enable]] the {{ic|vboxservice}} service.<br />
<br />
Now, you should have a working Arch Linux guest. Note that features like clipboard sharing are disabled by default in VirtualBox, and you will need to turn them on in the per-VM settings if you actually want to use them (e.g. ''Settings > General > Advanced > Shared Clipboard'').<br />
<br />
=== Hardware acceleration ===<br />
<br />
Hardware acceleration can be activated from the VirtualBox options on the host computer. Note that when the gdm display manager 3.16+ is known to break hardware acceleration support[https://bbs.archlinux.org/viewtopic.php?id=200025], so if you get issues with hardware acceleration it might be a good idea to try out another display manager (lightdm seems to work fine). <br />
<br />
If you want to share folders between your host and your Arch Linux guest, read on.<br />
<br />
=== Enable shared folders ===<br />
<br />
Shared folders are managed on the host, in the settings of the Virtual Machine accessible via the GUI of VirtualBox, in the ''Shared Folders'' tab. There, ''Folder Path'', the name of the mount point identified by ''Folder name'', and options like ''Read-only'', ''Auto-mount'' and ''Make permanent'' can be specified. These parameters can be defined with the {{ic|VBoxManage}} command line utility. See [https://www.virtualbox.org/manual/ch04.html#sharedfolders there for more details].<br />
<br />
No matter which method you will use to mount your folder, all methods require some steps first.<br />
<br />
To avoid this issue {{ic|/sbin/mount.vboxsf: mounting failed with the error: No such device}}, make sure the {{ic|vboxsf}} kernel module is properly loaded. It should be, since we enabled all guest kernel modules previously.<br />
<br />
Two additional steps are needed in order for the mount point to be accessible from users other than root:<br />
* the {{Pkg|virtualbox-guest-utils}} package created a group {{ic|vboxsf}} (done in a previous step);<br />
* your username must be in this group, use this command {{ic|gpasswd -a $USER vboxsf}} to add your username and use {{ic|newgrp}} to apply the changes immediately;<br />
<br />
==== Manual mounting ====<br />
<br />
Use the following command to mount your folder in your Arch Linux guest:<br />
# mount -t vboxsf ''shared_folder_name'' ''mount_point_on_guest_system''<br />
<br />
The vboxsf filesystem offers other options which can be displayed with this command:<br />
# mount.vboxsf<br />
<br />
For example if the user was not in the ''vboxsf'' group, we could have used this command to give access our mountpoint to him:<br />
# mount -t vboxsf -o uid=1000,gid=1000 home /mnt/<br />
<br />
Where ''uid'' and ''gid'' are values corresponding to the users we want to give access to. These values are obtained from the {{ic|id}} command run against this user.<br />
<br />
==== Automounting ====<br />
<br />
In order for the automounting feature to work you must have checked the auto-mount checkbox in the GUI or used the optional {{ic|--automount}} argument with the command {{ic|VBoxManage sharedfolder}}.<br />
<br />
The shared folder should now appear in {{ic|/media/sf_''shared_folder_name''}}. If users in {{ic|media}} cannot access the shared folders, check that {{ic|media}} has permissions 755 or has group ownership {{ic|vboxsf}} if using permission 750. This is currently not the default if media is created by installing the {{ic|virtualbox-guest-utils}}.<br />
<br />
You can use symlinks if you want to have a more convenient access and avoid to browse in that directory, e.g.:<br />
$ ln -s /media/sf_''shared_folder_name'' ~/''my_documents''<br />
<br />
==== Mount at boot ====<br />
<br />
You can mount your directory with [[fstab]]. However, to prevent startup problems with systemd, {{ic|1=comment=systemd.automount}} should be added to {{ic|/etc/fstab}}. This way, the shared folders are mounted only when those mount points are accessed and not during startup. This can avoid some problems, especially if the guest additions are not loaded yet when systemd read fstab and mount the partitions.<br />
''sharedFolderName'' ''/path/to/mntPtOnGuestMachine'' vboxsf uid=''user'',gid=''group'',rw,dmode=700,fmode=600,comment=systemd.automount 0 0<br />
<br />
* {{ic|''sharedFolderName''}}: the value from the VirtualMachine's ''Settings > SharedFolders > Edit > FolderName'' menu. This value can be different from the name of the real folder name on the host machine. To see the VirtualMachine's ''Settings'' go to the host OS VirtualBox application, select the corresponding virtual machine and click on ''Settings''.<br />
* {{ic|''/path/to/mntPtOnGuestMachine''}}: if not existing, this directory should be created manually (for example by using [[Core utilities#mkdir|mkdir]])<br />
* {{ic|dmode}}/{{ic|fmode}} are directory/file permissions for directories/files inside {{ic|''/path/to/mntPtOnGuestMachine''}}.}}<br />
<br />
As of 2012-08-02, mount.vboxsf does not support the ''nofail'' option:<br />
''desktop'' ''/media/desktop'' vboxsf uid=''user'',gid=''group'',rw,dmode=700,fmode=600,nofail 0 0<br />
<br />
== Import/export VirtualBox virtual machines from/to other hypervisors ==<br />
<br />
If you plan to use your virtual machine on another hypervisor or want to import in VirtualBox a virtual machine created with another hypervisor, you might be interested in reading the following steps.<br />
<br />
=== Remove additions ===<br />
<br />
Guest additions are available in most hypervisor solutions: VirtualBox comes with the Guest Additions, VMware with the VMware Tools, Parallels with the Parallels Tools, etc. These additional components are designed to be installed inside a virtual machine after the guest operating system has been installed. They consist of device drivers and system applications that optimize the guest operating system for better performance and usability [https://www.virtualbox.org/manual/ch04.html by providing these features].<br />
<br />
If you have installed the additions to your virtual machine, please uninstall them first. Your guest, especially if it is using an OS from the Windows family, might behave weirdly, crash or even might not boot at all if you are still using the specific drivers in another hypervisor.<br />
<br />
=== Use the right virtual disk format ===<br />
<br />
This step will depend on the ability to convert the virtual disk image directly or not.<br />
<br />
==== Automatic tools ====<br />
<br />
Some companies provide tools which offer the ability to create virtual machines from a Windows or GNU/Linux operating system located either in a virtual machine or even in a native installation. With such a product, you do not need to apply this and the following steps and can stop reading here.<br />
* ''[http://www.parallels.com/products/transporter Parallels Transporter]'' which is non free, is a product from Parallels Inc. This solution basically consists in an piece of software called ''agent'' that will be installed in the guest you want to import/convert. Then, Parallels Transporter, <u>which only works on OS X</u>, will create a virtual machine from that ''agent'' which is contacted either by USB or Ethernet network.<br />
* ''[https://www.vmware.com/products/converter/ VMware vCenter Converter]'' which is free upon registration on the VMware webiste, works nearly the same way as Parallels Transporter, but the piece of software that will gather the data to create the virtual machine only works on a Windows platform.<br />
<br />
==== Manual conversion ====<br />
<br />
First, familiarize yourself with the [[#Formats supported by VirtualBox]] and [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|those supported by third-party hypervisors]].<br />
<br />
* Importing or exporting a virtual machine from/to a VMware solution is not a problem at all if you use the VMDK or OVF disk format, otherwise converting [[#VMDK to VDI and VDI to VMDK]] is possible and the aforementioned VMware vCenter Converter tool is available.<br />
<br />
* Importing or exporting from/to QEMU is not a problem neither: some QEMU formats are supported directly by VirtualBox and conversion between [[#QCOW2 to VDI and VDI to QCOW2]] is still available if needed.<br />
<br />
* Importing or exporting from/to Parallels hypervisor is the hardest way: Parallels does only support its own HDD format (even the standard and portable OVF format is not supported!).<br />
:* To export your virtual machine to Parallels, you will need to use the Parallels Transporter tool described above.<br />
:* To import your virtual machine to VirtualBox, you will need to use the VMware vCenter Converter described above to convert the VM to the VMware format first. Then, apply the solution to migrate from VMware.<br />
<br />
=== Create the VM configuration for your hypervisor ===<br />
<br />
Each hypervisor have their own virtual machine configuration file: {{ic|.vbox}} for VirtualBox, {{ic|.vmx}} for VMware, a {{ic|config.pvs}} file located in the virtual machine bundle ({{ic|.pvm}} file), etc. You will have thus to recreate a new virtual machine in your new destination hypervisor and specify its hardware configuration as close as possible as your initial virtual machine.<br />
<br />
Pay a close attention to the firmware interface (BIOS or UEFI) used to install the guest operating system. While an option is available to choose between these 2 interfaces on VirtualBox and on Parallels solutions, on VMware, you will have to add manually the following line to your ''.vmx'' file.<br />
<br />
{{hc|ArchLinux_vm.vmx|2=<br />
firmware = "efi"<br />
}}<br />
<br />
Finally, ask your hypervisor to use the existing virtual disk you have converted and launch the virtual machine.<br />
{{Tip|<br />
* On VirtualBox, if you do not want to browse the whole GUI to find the right location to add your new virtual drive device, you can [[#Replace a virtual disk manually from the .vbox file]], or use the {{ic|VBoxManage storageattach}} described in [[#Increase virtual disks]] or in the [https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach VirtualBox manual page].<br />
* Similarly, in VMware products, you can replace the location of the current virtual disk location by adapting the ''.vmdk'' file location in your ''.vmx'' configuration file.}}<br />
<br />
== Virtual disks management ==<br />
<br />
=== Formats supported by VirtualBox ===<br />
<br />
VirtualBox supports the following virtual disk formats:<br />
<br />
* VDI: The Virtual Disk Image is the VirtualBox own open container used by default when you create a virtual machine with VirtualBox.<br />
<br />
* VMDK: The Virtual Machine Disk has been initially developed by VMware for their products. The specification was initially closed source, but it became now an open format which is fully supported by VirtualBox. This format offers the ability to be split into several 2GB files. This feature is specially useful if you want to store the virtual machine on machines which do not support very large files. Other formats, excluding the HDD format from Parallels, do not provide such an equivalent feature.<br />
<br />
* VHD: The Virtual Hard Disk is the format used by Microsoft in Windows Virtual PC and Hyper-V. If you intend to use any of these Microsoft products, you will have to choose this format.<br />
:{{Tip|Since Windows 7, this format can be mounted directly without any additional application.}} <br />
<br />
* VHDX (read only): This is the eXtended version of the Virtual Hard Disk format developed by Microsoft, which has been released on 2012-09-04 with Hyper-V 3.0 coming with Windows Server 2012. This new version of the disk format does offer enhanced performance (better block alignment), larger blocks size, and journal support which brings power failure resiliency. VirtualBox [https://www.virtualbox.org/manual/ch15.html#idp63002176 should support this format in read only].<br />
<br />
* Version 2 of the HDD: The HDD format is developed by Parallels Inc and used in their hypervisor solutions like Parallels Desktop for Mac. Newer versions of this format (i.e. 3 and 4) are not supported due to the lack of documentation for this proprietary format. {{Note|There is currently a controversy regarding the support of the version 2 of the format. While the official VirtualBox manual [https://www.virtualbox.org/manual/ch05.html#vdidetails only reports the second version of the HDD file format as supported], Wikipedia's contributors are [[Wikipedia:Comparison of platform virtual machines#Image type compatibility|reporting the first version may work too]]. Help is welcome if you can perform some tests with the first version of the HDD format.}}<br />
<br />
* QED: The QEMU Enhanced Disk format is an old file format for QEMU, another free and open source hypervisor. This format was designed from 2010 in a way to provide a superior alternative to QCOW2 and others. This format features a fully asynchronous I/O path, strong data integrity, backing files, and sparse files. QED format is supported only for compatibility with virtual machines created with old versions of QEMU.<br />
<br />
* QCOW: The QEMU Copy On Write format is the current format for QEMU. The QCOW format does support zlib-based transparent compression and encryption (the latter has flaw and is not recommended). QCOW is available in two versions: QCOW and QCOW2. The latter tends to supersede the first one. QCOW is [https://www.virtualbox.org/manual/ch15.html#idp63002176 currently fully supported by VirtualBox]. QCOW2 comes in two revisions: QCOW2 0.10 and QCOW2 1.1 (which is the default when you create a virtual disk with QEMU). VirtualBox does not support this QCOW2 format (both revisions have been tried).<br />
<br />
* OVF: The Open Virtualization Format is an open format which has been designed for interoperability and distributions of virtual machines between different hypervisors. VirtualBox supports all revisions of this format via the [https://www.virtualbox.org/manual/ch08.html#idp55423424 VBoxManage import/export feature] but with [https://www.virtualbox.org/manual/ch14.html#KnownProblems known limitations].<br />
<br />
* RAW: This is the mode when the virtual disk is exposed directly to the disk without being contained in a specific file format container. VirtualBox supports this feature in several ways: converting RAW disk [https://www.virtualbox.org/manual/ch08.html#idp59139136 to a specific format], or by [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi cloning a disk to RAW], or by using directly a VMDK file [https://www.virtualbox.org/manual/ch09.html#idp57804112 which points to a physical disk or a simple file].<br />
<br />
=== Disk image format conversion ===<br />
<br />
==== VMDK to VDI and VDI to VMDK ====<br />
<br />
VirtualBox can handle back and forth conversion between VDI and VMDK by itself with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd].<br />
<br />
VMDK to VDI:<br />
<br />
$ VBoxManage clonehd ''source.vmdk'' ''destination.vdi'' --format VDI<br />
<br />
VDI to VMDK:<br />
<br />
$ VBoxManage clonehd ''source.vdi'' ''destination.vmdk'' --format VMDK<br />
<br />
==== VHD to VDI and VDI to VHD ====<br />
<br />
VirtualBox can handle conversion back and forth this format with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd] too.<br />
<br />
VHD to VDI:<br />
<br />
$ VBoxManage clonehd ''source.vhd'' ''destination.vdi'' --format VDI<br />
<br />
VDI to VHD:<br />
<br />
$ VBoxManage clonehd ''source.vdi'' ''destination.vhd'' --format VHD<br />
<br />
==== QCOW2 to VDI and VDI to QCOW2 ====<br />
<br />
[https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd] cannot handle the QEMU format conversion; we will thus rely on another tool. The {{ic|qemu-img}} command from {{Pkg|qemu}} can be used to convert images back and forth from VDI to QCOW2. {{Note|{{ic|qemu-img}} can handle a bunch of other formats too. According to the {{ic|qemu-img --help}}, here are the supported formats this tool supports: "''vvfat vpc vmdk vhdx vdi ssh sheepdog sheepdog sheepdog raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd nbd nbd iscsi dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug'".}}<br />
<br />
QCOW2 to VDI:<br />
<br />
$ qemu-img convert -pO vdi ''source.qcow2'' ''destination.vdi''<br />
<br />
VDI to QCOW2:<br />
<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2''<br />
<br />
As QCOW2 comes in two revisions (see [[#Formats supported by VirtualBox]], use the flag {{ic|1=-o compat=}} to specify the revision.<br />
<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=0.10<br />
or<br />
$ qemu-img convert -pO qcow2 ''source.vdi'' ''destination.qcow2'' -o compat=1.1<br />
<br />
{{Tip|The {{ic|-p}} parameter is used to get the progression of the conversion task.}}<br />
<br />
=== Mount virtual disks ===<br />
<br />
==== VDI ====<br />
<br />
Mounting vdi images only works with fixed size images (a.k.a. static images); dynamic (dynamically size allocating) images are not easily mountable.<br />
<br />
The offset of the partition (within the vdi) is needed, then add the value of {{ic|offData}} to {{ic|32256}} (e.g. 69632 + 32256 = 101888):<br />
<br />
$ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"<br />
<br />
The can now be mounted with:<br />
<br />
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/<br />
<br />
You can also use [https://github.com/pld-linux/VirtualBox/blob/master/mount.vdi mount.vdi] script that, which you can use as (install script itself to {{ic|/usr/bin/}}):<br />
<br />
# mount -t vdi -o fstype=ext4,rw,noatime,noexec ''vdi_file_location'' ''/mnt/''<br />
<br />
Alternately you can use {{Pkg|qemu}}'s kernel module that can do this [[http://bethesignal.org/blog/2011/01/05/how-to-mount-virtualbox-vdi-image/ attrib]]:<br />
<br />
# modprobe nbd max_part=16<br />
# qemu-nbd -c /dev/nbd0 <storage.vdi><br />
# mount /dev/nbd0p1 /mnt/dir/<br />
# # to unmount:<br />
# umount /mnt/dir/<br />
# qemu-nbd -d /dev/nbd0<br />
<br />
If the partition nodes are not propagated try using {{ic|partprobe /dev/nbd0}}; otherwise, a vdi partition can be mapped directly to a node by: {{ic|qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>}}.<br />
<br />
=== Compact virtual disks ===<br />
<br />
Compacting virtual disks only works with {{ic|.vdi}} files and basically consists in the following steps.<br />
<br />
Boot your virtual machine and remove all bloat manually or by using cleaning tools like {{Pkg|bleachbit}} which is [http://bleachbit.sourceforge.net/download/windows available for Windows systems too].<br />
<br />
Wiping free space with zeroes can be achieved with several tools:<br />
* If you were previously using Bleachbit, check the checkbox ''System > Free disk space'' in the GUI, or use {{ic|bleachbit -c system.free_disk_space}} in CLI;<br />
* On UNIX-based systems, by using {{ic|dd}} or preferably {{Pkg|dcfldd}} (see [http://superuser.com/a/355322 here] to learn the differences) :<br />
:{{bc|1=# dcfldd if=/dev/zero of=''/fillfile'' bs=4M}}<br />
:When {{ic|fillfile}} reaches the limit of the partition, you will get a message like {{ic|1280 blocks (5120Mb) written.dcfldd:: No space left on device}}. This means that all of the user-space and non-reserved blocks of the partition will be filled with zeros. Using this command as root is important to make sure all free blocks have been overwritten. Indeed, by default, when using partitions with ext filesystem, a specified percentage of filesystem blocks is reserved for the super-user (see the {{ic|-m}} argument in the {{ic|mkfs.ext4}} man pages or use {{ic|tune2fs -l}} to see how much space is reserved for root applications).<br />
:When the aforementioned process has completed, you can remove the file {{ic|''fillfile''}} you created.<br />
<br />
* On Windows, there are two tools available:<br />
:*{{ic|sdelete}} from the [http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx Sysinternals Suite], type {{ic|sdelete -s -z ''c:''}}, where you need to reexecute the command for each drive you have in your virtual machine;<br />
:* or, if you love scripts, there is a [http://blog.whatsupduck.net/2012/03/powershell-alternative-to-sdelete.html PowerShell solution], but which still needs to be repeated for all drives.<br />
::{{bc|PS> ./Write-ZeroesToFreeSpace.ps1 -Root ''c:\'' -PercentFree 0}}<br />
::{{Note|This script must be run in a PowerShell environment with administrator privileges. By default, scripts cannot be run, ensure the execution policy is at least on {{ic|RemoteSigned}} and not on {{ic|Restricted}}. This can be checked with {{ic|Get-ExecutionPolicy}} and the required policy can be set with {{ic|Set-ExecutionPolicy RemoteSigned}}.}}<br />
<br />
Once the free disk space have been wiped, shut down your virtual machine.<br />
<br />
The next time you boot your virtual machine, it is recommended to do a filesystem check.<br />
* On UNIX-based systems, you can use {{ic|fsck}} manually;<br />
:* On GNU/Linux systems, and thus on Arch Linux, you can force a disk check at boot [[Fsck#Forcing the check|thanks to a kernel boot parameter]];<br />
* On Windows systems, you can use:<br />
:* either {{ic|chkdsk ''c:'' /F}} where {{ic|''c:''}} needs to be replaced by each disk you need to scan and fix errors;<br />
:* or {{ic|FsckDskAll}} [http://therightstuff.de/2009/02/14/ChkDskAll-ChkDsk-For-All-Drives.aspx from here] which is basically the same software as {{ic|chkdsk}}, but without the need to repeat the command for all drives;<br />
<br />
Now, remove the zeros from the {{ic|vdi}} file with [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi VBoxManage modifyhd]:<br />
$ VBoxManage modifyhd ''your_disk.vdi'' --compact<br />
<br />
{{Note|If your virtual machine has snapshots, you need to apply the above command on each {{ic|.vdi}} files you have.}}<br />
<br />
=== Increase virtual disks ===<br />
<br />
==== General procedure ====<br />
<br />
If you are running out of space due to the small hard drive size you selected when you created your virtual machine, the solution adviced by the VirtualBox manual is to use [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifyvdi VBoxManage modifyhd]. However this command only works for VDI and VHD disks and only for the dynamically allocated variants. If you want to resize a fixed size virtual disk disk too, read on this trick which works either for a Windows or UNIX-like virtual machine.<br />
<br />
First, create a new virtual disk next to the one you want to increase:<br />
$ VBoxManage createhd -filename ''new.vdi'' --size ''10000''<br />
<br />
where size is in MiB, in this example 10000MiB ~= 10GiB, and ''new.vdi'' is name of new hard drive to be created.<br />
<br />
Next, the old virtual disk needs to be cloned to the new one which this may take some time:<br />
$ VBoxManage clonehd ''old.vdi'' ''new.vdi'' --existing<br />
<br />
{{Note|By default, this command uses the ''Standard'' (corresponding to dynamic allocated) file format variant and thus will not use the same file format variant as your source virtual disk. If your ''old.vdi'' has a fixed size and you want to keep this variant, add the parameter {{ic|--variant Fixed}}.}}<br />
<br />
Detach the old hard drive and attach new one, replace all mandatory italic arguments by your own:<br />
$ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium none<br />
$ VBoxManage storageattach ''VM_name'' --storagectl ''SATA'' --port ''0'' --medium ''new.vdi'' --type hdd<br />
<br />
To get the storage controller name and the port number, you can use the command {{ic|VBoxManage showvminfo ''VM_name''}}. Among the output you will get such a result (what you are looking for is in italic):<br />
<br />
{{bc|<br />
[...]<br />
Storage Controller Name (0): IDE<br />
Storage Controller Type (0): PIIX4<br />
Storage Controller Instance Number (0): 0<br />
Storage Controller Max Port Count (0): 2<br />
Storage Controller Port Count (0): 2<br />
Storage Controller Bootable (0): on<br />
Storage Controller Name (1): SATA<br />
Storage Controller Type (1): IntelAhci<br />
Storage Controller Instance Number (1): 0<br />
Storage Controller Max Port Count (1): 30<br />
Storage Controller Port Count (1): 1<br />
Storage Controller Bootable (1): on<br />
IDE (1, 0): Empty<br />
''SATA'' (''0'', 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704)<br />
[...]}}<br />
<br />
Download [http://gparted.org/download.php GParted live image] and mount it as a virtual CD/DVD disk file, boot your virtual machine, increase/move your partitions, umount GParted live and reboot.<br />
<br />
{{Note|On GPT disks, increasing the size of the disk will result in the backup GPT header not being at the end of the device. GParted will ask to fix this, click on ''Fix'' both times. On MBR disks, you do not have such a problem as this partition table as no trailer at the end of the disk.}}<br />
<br />
Finally, unregister the virtual disk from VirtualBox and remove the file:<br />
$ VBoxManage closemedium disk ''old.vdi''<br />
$ rm ''old.vdi''<br />
<br />
==== Increase size for VDI disks ====<br />
If your disk is a vdi one, simply run:<br />
<br />
$ VBoxManage modifyhd ''your_virtual_disk.vdi'' --resize ''the_new_size''<br />
<br />
Then jump back to the Gparted step, to increase the size of the partition on the virtual disk.<br />
<br />
=== Replace a virtual disk manually from the .vbox file ===<br />
<br />
If you think that editing a simple ''XML'' file is more convenient than playing with the GUI or with {{ic|VBoxManage}} and you want to replace (or add) a virtual disk to your virtual machine, in the ''.vbox'' configuration file corresponding to your virtual machine, simply replace the GUID, the file location and the format to your needs:<br />
<br />
{{hc|ArchLinux_vm.vbox|2=<br />
<HardDisk uuid="''{670157e5-8bd4-4f7b-8b96-9ee412a712b5}''" location="''ArchLinux_vm.vdi''" format="''VDI''" type="Normal"/><br />
}}<br />
<br />
then in the {{ic|<AttachedDevice>}} sub-tag of {{ic|<StorageController>}}, replace the GUID by the new one.<br />
<br />
{{hc|ArchLinux_vm.vbox|2=<br />
<AttachedDevice type="HardDisk" port="0" device="0"><br />
<Image uuid="''{670157e5-8bd4-4f7b-8b96-9ee412a712b5}''"/><br />
</AttachedDevice><br />
}}<br />
<br />
{{Note|If you do not know the GUID of the drive you want to add, you can use the {{ic|VBoxManage showhdinfo ''file''}}. If you previously used {{ic|VBoxManage clonehd}} to copy/convert your virtual disk, this command should have outputted the GUID just after the copy/conversion completed. Using a random GUID does not work, as each [http://www.virtualbox.org/manual/ch05.html#cloningvdis UUID is stored inside each disk image].}}<br />
<br />
==== Transfer between Linux host and other OS ====<br />
<br />
The information about path to harddisks and the snapshots is stored between {{ic|<HardDisks> .... </HardDisks>}} tags in the file with the ''.vbox'' extension. You can edit them manually or use this script where you will need change only the path or use defaults, assumed that ''.vbox'' is in the same directory with a virtual harddisk and the snapshots folder. It will print out new configuration to stdout.<br />
<br />
{{bc|1=<br />
#!/bin/bash<br />
NewPath="${PWD}/"<br />
Snapshots="Snapshots/"<br />
Filename="$1"<br />
<br />
awk -v SetPath="$NewPath" -v SnapPath="$Snapshots" '{if(index($0,"<HardDisk uuid=") != 0){A=$3;split(A,B,"=");<br />
L=B[2];<br />
gsub(/\"/,"",L);<br />
sub(/^.*\//,"",L);<br />
sub(/^.*\\/,"",L);<br />
if(index($3,"{") != 0){SnapS=SnapPath}else{SnapS=""};<br />
print $1" "$2" location="\"SetPath SnapS L"\" "$4" "$5}<br />
else print $0}' "$Filename"}}<br />
<br />
{{Note|<br />
* If you will prepare virtual machine for use in Windows host then in the path name end you should use backslash \ instead of / .<br />
* The script detects snapshots by looking for {{ic|{}} in the file name.<br />
* To make it run on a new host you will need to add it first to the register by clicking on '''Machine -> Add...''' or use hotkeys Ctrl+A and then browse to ''.vbox'' file that contains configuration or use command line {{ic|VBoxManage registervm ''filename''.vbox}}}}<br />
<br />
=== Clone a virtual disk and assigning a new UUID to it ===<br />
<br />
UUIDs are widely used by VirtualBox. Each virtual machines and each virtual disk of a virtual machine must have a different UUID. When you launch a virtual machine in VirtualBox, the latter will keep track of all UUID of your virtual machine instance. See the [http://www.virtualbox.org/manual/ch08.html#vboxmanage-list VBoxManage list] to list the items registered with VirtualBox.<br />
<br />
If you cloned a virtual disk manually by copying the virtual disk file, you will need to assign a new UUID to the cloned virtual drive if you want to use the disk in the same virtual machine or even in another (if that one has already been opened, and thus registered, with VirtualBox).<br />
<br />
You can use this command to assign a new UUID to your virtual disk: <br />
$ VBoxManage internalcommands sethduuid ''/path/to/disk.vdi''<br />
<br />
{{Tip|In the future, to avoid copying the virtual disk and assigning a new UUID to your file manually, use [http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonehd] instead.}}<br />
<br />
{{Note|The commands above supports [[#Formats supported by VirtualBox|all virtual disk formats supported by VirtualBox]].}}<br />
<br />
== Advanced configuration ==<br />
<br />
=== Virtual machine launch management ===<br />
<br />
==== Starting virtual machines with a service ====<br />
<br />
Find hereafter the implementation details of a systemd service that will be used to consider a virtual machine as a service.<br />
<br />
{{hc|/etc/systemd/system/vboxvmservice@.service|2=<br />
[Unit]<br />
Description=VBox Virtual Machine %i Service<br />
Requires=systemd-modules-load.service<br />
After=systemd-modules-load.service<br />
<br />
[Service]<br />
User=''username''<br />
Group=vboxusers<br />
ExecStart=/usr/bin/VBoxHeadless -s %i<br />
ExecStop=/usr/bin/VBoxManage controlvm %i savestate<br />
<br />
[Install]<br />
WantedBy=multi-user.target<br />
}}<br />
<br />
{{Note|Replace {{ic|''username''}} with a user that is a member of the {{ic|vboxusers}} group. Make sure the user chosen is the same user that will create/import virtual machines, otherwise the user will not see the VM appliances.}}<br />
<br />
{{Note|If you have multiple virtual machines managed by Systemd and they are not stopping properly, try to add {{ic|RemainAfterExit&#61;true}} and {{ic|KillMode&#61;none}} at the end of {{ic|[Service]}} section.}}<br />
<br />
To enable the service that will launch the virtual machine at next boot, use:<br />
# systemctl enable vboxvmservice@''your_virtual_machine_name''<br />
<br />
To start the service that will launch directly the virtual machine, use:<br />
# systemctl start vboxvmservice@''your_virtual_machine_name''<br />
<br />
VirtualBox 4.2 introduces [http://lifeofageekadmin.com/how-to-set-your-virtualbox-vm-to-automatically-startup/ a new way] for UNIX-like systems to have virtual machines started automatically, other than using a systemd service.<br />
<br />
==== Starting virtual machines with a keyboard shortcut ====<br />
<br />
It can be useful to start virtual machines directly with a keyboard shortcut instead of using the VirtualBox interface (GUI or CLI). For that, you can simply define key bindings in {{ic|.xbindkeysrc}}. Please refer to [[Xbindkeys]] for more details.<br />
<br />
Example, using the {{ic|Fn}} key of a laptop with an unused battery key ({{ic|F3}} on the computer used in this example):<br />
"VBoxManage startvm 'Windows 7'"<br />
m:0x0 + c:244<br />
XF86Battery<br />
<br />
{{Note|If you have a space in the name of your virtual machine, then enclose it with single apostrophes like made in the example just above.}}<br />
<br />
=== Use specific device in the virtual machine ===<br />
<br />
==== Using USB webcam / microphone ====<br />
<br />
{{Note|You will need to have VirtualBox extension pack installed before following the steps below. See [[#Extension pack]] for details.}}<br />
<br />
# Make sure the virtual machine is not running and your webcam / microphone is not being used.<br />
# Bring up the main VirtualBox window and go to settings for Arch machine. Go to USB section.<br />
# Make sure "Enable USB Controller" is selected. Also make sure that "Enable USB 2.0 (EHCI) Controller" is selected too.<br />
# Click the "Add filter from device" button (the cable with the '+' icon).<br />
# Select your USB webcam/microphone device from the list.<br />
# Now click OK and start your VM.<br />
<br />
{{Note|If your Microphone does not show up in the "Add filter from device" menu, try the USB 3.0 and 1.1 options instead (In Step 3).}}<br />
<br />
==== Detecting web-cams and other USB devices ====<br />
<br />
{{Note|This will not do much if you are running a *NIX OS inside of your VM, as most do not have autodetection features.}}<br />
If the device that you are looking for does not show up on any of the menus in the section above and you have tried all three USB controller options,<br />
boot up your VM three seperate times. Once using the USB 1.1 controller, Once using the USB 2.0 controller, etc. Leave the VM running for <br />
at least 5 minutes after startup. Sometimes Windows will autodetect the device for you.<br />
Be sure you filter any devices that are not a keyboard or a mouse so they do not start up at boot. <br />
This insures that Windows will detect the device at start-up.<br />
<br />
=== Access a guest server ===<br />
<br />
To access [[Wikipedia:Apache_HTTP_Server|Apache server]] on a Virtual Machine from the host machine '''only''', simply execute the following lines on the host:<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/''pcnet''/0/LUN#0/Config/Apache/HostPort" ''8888''<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/''pcnet''/0/LUN#0/Config/Apache/GuestPort" ''80''<br />
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/''pcnet''/0/LUN#0/Config/Apache/Protocol" TCP<br />
Where 8888 is the port the host should listen on and 80 is the port the VM will send Apache's signal on.<br />
<br />
To use a port lower than 1024 on the host machine, changes need to be made to the firewall on that host machine. This can also be set up to work with SSH or any other services by changing "Apache" to the corresponding service and ports. <br />
<br />
{{note|{{ic|pcnet}} refers to the network card of the VM. If you use an Intel card in your VM settings, change {{ic|pcnet}} to {{ic|e1000}}.}}<br />
<br />
To communicate between the VirtualBox guest and host using ssh, the server port must be forwarded under Settings > Network. When connecting from the client/host, connect to the IP address of the client/host machine, as opposed to the connection of the other machine. This is because the connection will be made over a virtual adapter.<br />
<br />
=== D3D acceleration in Windows guests ===<br />
<br />
Recent versions of Virtualbox have support for accelerating OpenGL inside guests. This can be enabled with a simple checkbox in the machine's settings, right below where video ram is set, and installing the Virtualbox guest additions. However, most Windows games use Direct3D (part of DirectX), not OpenGL, and are thus not helped by this method. However, it is possible to gain accelerated Direct3D in your Windows guests by borrowing the d3d libraries from Wine, which translate d3d calls into OpenGL, which is then accelerated. These libraries are now part of Virtualbox guest additions software. <br />
<br />
After enabling OpenGL acceleration as described above, reboot the guest into safe mode (press F8 before the Windows screen appears but after the Virtualbox screen disappears), and install Virtualbox guest additions, during install enable checkbox "Direct3D support". Reboot back to normal mode and you should have accelerated Direct3D. <br />
<br />
{{Note | This hack may or may not work for some games depending on what hardware checks they make and what parts of D3D they use.}}<br />
{{Note | This was tested on Windows XP, 7 and 8.1. If method does not work on your Windows version please add data here.}}<br />
<br />
=== VirtualBox on a USB key ===<br />
When using VirtualBox on a USB key, for example to start an installed machine with an ISO image, you will manually have to create VDMKs from the existing drives. However, once the new VMDKs are saved and you move on to another machine, you may experience problems launching an appropriate machine again. To get rid of this issue, you can use the following script to launch VirtualBox. This script will clean up and unregister old VMDK files and it will create new, proper VMDKs for you:<br />
{{bc|<nowiki><br />
#!/bin/bash<br />
<br />
# Erase old VMDK entries<br />
rm ~/.VirtualBox/*.vmdk<br />
<br />
# Clean up VBox-Registry<br />
sed -i '/sd/d' ~/.VirtualBox/VirtualBox.xml<br />
<br />
# Remove old harddisks from existing machines<br />
find ~/.VirtualBox/Machines -name \*.xml | while read file; do<br />
line=`grep -e "type\=\"HardDisk\"" -n $file | cut -d ':' -f 1`<br />
if [ -n "$line" ]; then<br />
sed -i ${line}d $file<br />
sed -i ${line}d $file<br />
sed -i ${line}d $file<br />
fi<br />
sed -i "/rg/d" $file<br />
done<br />
<br />
# Delete prev-files created by VirtualBox<br />
find ~/.VirtualBox/Machines -name \*-prev -exec rm '{}' \;<br />
<br />
# Recreate VMDKs<br />
ls -l /dev/disk/by-uuid | cut -d ' ' -f 9,11 | while read ln; do<br />
if [ -n "$ln" ]; then<br />
uuid=`echo "$ln" | cut -d ' ' -f 1`<br />
device=`echo "$ln" | cut -d ' ' -f 2 | cut -d '/' -f 3 | cut -b 1-3`<br />
<br />
# determine whether drive is mounted already<br />
checkstr1=`mount | grep $uuid`<br />
checkstr2=`mount | grep $device`<br />
checkstr3=`ls ~/.VirtualBox/*.vmdk | grep $device`<br />
if [[ -z "$checkstr1" && -z "$checkstr2" && -z "$checkstr3" ]]; then<br />
VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/$device.vmdk -rawdisk /dev/$device -register<br />
fi<br />
fi<br />
done<br />
<br />
# Start VirtualBox<br />
VirtualBox<br />
</nowiki>}}<br />
Note that your user has to be added to the "disk" group to create VMDKs out of existing drives.<br />
<br />
=== Run a native Arch Linux installation inside VirtualBox ===<br />
<br />
If you have a dual boot system between Arch Linux and another operating system, it can become rapidly tedious to switch back and forth if you need to work in both. Also, by using virtual machines, you just have a tiny fragment of your computer power, which can cause issues when working on projects requiring performance.<br />
<br />
This guide will let you reuse, in a virtual machine, your native Arch Linux installation when you are running your second operating system. This way, you keep the ability to run each operating system natively, but have the option to run your Arch Linux installation inside a virtual machine.<br />
<br />
==== Make sure you have a persistent naming scheme ====<br />
<br />
Depending on your hard drive setup, device files representing your hard drives may appear differently when you will run your Arch Linux installation natively or in virtual machine. This problem occurs when using [[RAID#Implementation|FakeRAID]] for example. The fake RAID device will be mapped in {{ic|/dev/mapper/}} when you run your GNU/Linux distribution natively, while the devices are still accessible separately. However, in your virtual machine, it can appear without any mapping in {{ic|/dev/sdaX}} for example, because the drivers controlling the fake RAID in your host operating system (e.g. Windows) are abstracting the fake RAID device.<br />
<br />
To circumvent this problem, we will need to use an addressing scheme that is persistent to both systems. This can be achieved using [[Fstab#UUIDs|UUIDs]] in your {{ic|/etc/fstab}} file. Make sure your [[fstab]] file is using UUIDs, otherwise fix this issue. Read [[fstab]] and [[Persistent block device naming]].<br />
<br />
{{ic|/etc/fstab}} is not the only location where UUIDs are used. Bootloaders and boot managers make use of them too. Now, make sure these are really using UUIDs.<br />
<br />
; [[GRUB Legacy]]<br />
If you are still using the old [[GRUB Legacy]], maybe is it [[GRUB Legacy#Upgrading to GRUB2|time to upgrade]], since this package is now dropped from the official Arch Linux repositories. If you want to keep it, edit {{ic|/boot/grub/menu.lst}} and replace the {{ic|1=root=/dev/sdXX}} statement in your Arch Linux boot entry by the Linux UUID mapping in {{ic|/dev/disk/by-uuid/}} corresponding to your root partition.<br />
<br />
title Arch Linux<br />
root<br />
kernel /vmlinuz-linux root=''/dev/disk/by-uuid/0a3407de-014b-458b-b5c1-848e92a327a3'' ro vga=773<br />
initrd /initramfs-linux-vbox.img<br />
<br />
Repeat the process here, for the fallback entry.<br />
<br />
; [[GRUB]]<br />
If you are running the most recent version of [[GRUB]]; you have nothing to do. Yet another reason to upgrade to GRUB 2.<br />
<br />
{{Warning|<br />
* Make sure your host partition is only accessible in read only from your Arch Linux virtual machine, this will avoid risk of corruptions if you were to corrupt that host partition by writing on it due to lack of attention.<br />
* You should NEVER allow VirtualBox to boot from the entry of your second operating system, which, as a reminder, is used as the host for this virtual machine! Take thus a special care especially if your default boot loader/boot manager entry is your other operating system. Give a more important timeout or put it below in the order of preferences.}}<br />
<br />
==== Make sure your mkinitcpio image is correct ====<br />
<br />
Make sure your [[Mkinitcpio|mkinitcpio]] configuration uses the [[Mkinitcpio#HOOKS|HOOK]] {{ic|block}}:<br />
<br />
{{hc|/etc/mkinitcpio.conf|2=<br />
[...]<br />
HOOKS="base udev autodetect modconf ''block'' filesystems keyboard fsck"<br />
[...]}}<br />
<br />
If it is not present, add it and [[Mkinitcpio#Image creation and activation|regenerate your initramfs]]:<br />
<br />
# mkinitcpio -p linux<br />
<br />
==== Create a VM configuration to boot from the physical drive ====<br />
<br />
===== Create a raw disk .vmdk image =====<br />
<br />
Now, we need to create a new virtual machine which will use a [https://www.virtualbox.org/manual/ch09.html#rawdisk RAW disk] as virtual drive, for that we will use a ~ 1Kio VMDK file which will be mapped to a physical disk. Unfortunately, VirtualBox does not have this option in the GUI, so we will have to use the console and use an internal command of {{ic|VBoxManage}}.<br />
<br />
Boot the host which will use the Arch Linux virtual machine. The command will need to be adapted according to the host you have.<br />
<br />
; On a GNU/Linux host:<br />
<br />
There is 3 ways to achieve this: login as root, changing the access right of the device with {{ic|chmod}}, adding your user to the {{ic|disk}} group. The latter way is the more elegant, let us proceed that way:<br />
<br />
# gpasswd -a ''your_user'' disk<br />
<br />
Apply the new group settings with:<br />
<br />
$ newgrp<br />
<br />
Now, you can use the command:<br />
<br />
$ VBoxManage internalcommands createrawvmdk -filename ''/path/to/file.vmdk'' -rawdisk ''/dev/sdb'' -register <br />
<br />
Adapt the above command to your need, especially the path and filename of the VMDK location and the raw disk location to map which contain your Arch Linux installation.<br />
<br />
; On a Windows host:<br />
<br />
Open a command prompt must be run as administrator. {{Tip|On Windows, open your start menu/start screen, type {{ic|cmd}}, and type {{ic|Ctrl+Shift+Enter}}, this is a shortcut to execute the selected program with admin rights.}}<br />
<br />
On Windows, as the disk filename convention is different from UNIX, use this command to determine what drives you have in your Windows system and their location:{{hc|# wmic diskdrive get name,size,model|<br />
Model Name Size<br />
WDC WD40EZRX-00SPEB0 ATA Device \\.\PHYSICALDRIVE1 4000783933440<br />
KINGSTON SVP100S296G ATA Device \\.\PHYSICALDRIVE0 96024821760<br />
Hitachi HDT721010SLA360 ATA Device \\.\PHYSICALDRIVE2 1000202273280<br />
Innostor Ext. HDD USB Device \\.\PHYSICALDRIVE3 1000202273280}}<br />
<br />
In this example, as the Windows convention is {{ic|\\.\PhysicalDriveX}} where X is a number from 0, {{ic|\\.\PHYSICALDRIVE1}} could be analogous to {{ic|/dev/sdb}} from the Linux disk terminology.<br />
<br />
To use the {{ic|VBoxManage}} command on Windows, you can either, change the current directory to your VirtualBox installation folder first with {{ic|cd C:\Program Files\Oracle\VirtualBox\}}<br />
<br />
# .\VBoxManage.exe internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1<br />
<br />
or use the absolute path name: <br />
<br />
# "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename C:\file.vmdk -rawdisk \\.\PHYSICALDRIVE1<br />
<br />
; On another OS host:<br />
<br />
There are other limitations regarding the aforementioned command when used in other operating systems like OS X, please thus [https://www.virtualbox.org/manual/ch09.html#rawdisk read carefully the manual page], if you are concerned.<br />
<br />
===== Create the VM configuration file =====<br />
<br />
{{Note|<br />
* To make use of the VBoxManage command on Windows, you need to change the current directory to your VirtualBox installation folder first: cd C:\Program Files\Oracle\VirtualBox\.<br />
* Windows makes use of backslashes instead of slashes, please replace all slashes / occurrences by backslashes \ in the commands that follow when you will use them.}}<br />
<br />
After, we need to create a new machine (replace the ''VM_name'' to your convenience) and register it with VirtualBox.<br />
<br />
$ VBoxManage createvm -name ''VM_name'' -register<br />
<br />
Then, the newly raw disk needs to be attached to the machine. This will depend if your computer or actually the root of your native Arch Linux installation is on an IDE or a SATA controller.<br />
<br />
If you need an IDE controller:<br />
<br />
$ VBoxManage storagectl ''VM_name'' --name "IDE Controller" --add ide<br />
$ VBoxManage storageattach ''VM_name'' --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk<br />
<br />
otherwise:<br />
<br />
$ VBoxManage storagectl ''VM_name'' --name "SATA Controller" --add sata<br />
$ VBoxManage storageattach ''VM_name'' --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /path/to/file.vmdk<br />
<br />
While you continue using the CLI, it is recommended to use the VirtualBox GUI, to personalise the virtual machine configuration. Indeed, you must specify its hardware configuration as close as possible as your native machine: turning on the 3D acceleration, increasing video memory, setting the network interface, etc.<br />
<br />
==== Install the Guest Additions ====<br />
<br />
Finally, you may want to seamlessly integrate your Arch Linux with your host operating system and allow copy pasting between both OSes. Please refer to [[#Install the Guest Additions]] for that, since this Arch Linux virtual machine is basically an Arch Linux guest.<br />
<br />
{{Warning|For [[Xorg]] to work in natively and in the virtual machine, since obviously it will be using different drivers, it is best if there is no {{ic|/etc/X11/xorg.conf}}, so Xorg will pick up everything it needs on the fly. However, if you really do need your own Xorg configuration, maybe is it worth to set your default systemd target to {{ic|multi-user.target}} with {{ic|systemctl isolate graphical.target}} as root (more details at [[Systemd#Targets table]] and [[Systemd#Change current target]]). In that way, the graphical interface is disabled (i.e. Xorg is not launched) and after you logged in, you can {{ic|startx}}} manually with a custom {{ic|xorg.conf}}.}}<br />
<br />
=== Install a native Arch Linux system from VirtualBox ===<br />
<br />
In some cases it may be useful to install a native Arch Linux system while running another operating system: one way to accomplish this is to perform the installation through VirtualBox on a [http://www.virtualbox.org/manual/ch09.html#rawdisk raw disk]. If the existing operating system is Linux based, you may want to consider following [[Install from Existing Linux]] instead.<br />
<br />
This scenario is very similar to [[#Run a native Arch Linux installation inside VirtualBox]], but will follow those steps in a different order: start by [[#Create a raw disk .vmdk image]], then [[#Create the VM configuration file]].<br />
<br />
Now, you should have a working VM configuration whose virtual VMDK disk is tied to a real disk. The installation process is exactly the same as the steps described in [[#Installation steps for Arch Linux guests]], but [[#Make sure you have a persistent naming scheme]] and [[#Make sure your mkinitcpio image is correct]].<br />
<br />
{{Warning|<br />
*For BIOS systems and MBR disks, do not install a bootloader inside your virtual machine, this will not work since the MBR is not linked to the MBR of your real machine and your virtual disk is only mapped to a real partition without the MBR.<br />
*For UEFI systems without [[Wikipedia:Compatibility Support Module#CSM|CSM]] and GPT disks, the installation will not work at all since:<br />
:*the [[Wikipedia:EFI System partition|ESP]] partition is not mapped to your virtual disk and Arch Linux requires to have the Linux kernel on it to boot as an EFI application (see [[EFISTUB]] for details);<br />
:*and the efivars, if you are installing Arch Linux using the EFI mode brought by VirtualBox, are not the one of your real system: the bootmanager entries will hence not be registered.<br />
*This is why, it is recommended to create your partitions in a native installation first, otherwize the partitions will not be taken into consideration in your MBR/GPT partition table.}}<br />
<br />
After completing the installation, boot your computer natively with an GNU/Linux installation media (whether it be Arch Linux or not), [[Beginner's Guide#Chroot and configure the base system|chroot]] into your installed Arch Linux installation and [[Beginner's Guide#Install and configure a bootloader|#Install and configure a bootloader]].<br />
<br />
=== Move a native Windows installation to a virtual machine ===<br />
<br />
If you want to migrate an existing native Windows installation to a virtual machine which will be used with VirtualBox on GNU/Linux, this use case is for you. This section only covers native Windows installation using the MSDOS/Intel partition scheme. Your Windows installation must reside on the first MBR partition for this operation to success. Operation for other partitions are available but have been untested (see [[#Known limitations]] for details).<br />
<br />
{{Warning|If you are using an OEM version of Windows, this process is unauthorized by the end user license license. Indeed, the OEM license typically states the Windows install is tied with the hardware together. Transferring a Windows install to a virtual machine removes this link. Make thus sure you have a full Windows install or a volume license model before continuing. If you have a full Windows license but the latter is not coming in volume, nor as a special license for several PCs, this means you will have to remove the native installation after the transfer operation has been achieved.}}<br />
<br />
A couple of tasks are required to be done inside your native Windows installation first, then on your GNU/Linux host.<br />
<br />
==== Tasks on Windows ====<br />
<br />
The first three following points comes from [https://www.virtualbox.org/wiki/Migrate_Windows#HAL this outdated VirtualBox wiki page], but are updated here.<br />
<br />
* Remove IDE/ATA controllers checks (Windows XP only): Windows memorize the IDE/ATA drive controllers it has been installed on and will not boot if it detects these have changed. The solution proposed by Microsoft is to reuse the same controller or use one of the same serial, which is impossible to achieve since we are using a Virtual Machine. [https://www.virtualbox.org/wiki/Migrate_Windows#HardDiskSupport MergeIDE], a German tool, developped upon another other solution proposed by Microsoft can be used. That solution basically consists in taking all IDE/ATA controller drivers supported by Windows XP from the initial driver archive (the location is hard coded, or specify it as the first argument to the {{ic|.bat}} script), installing them and registering them with the regedit database.<br />
<br />
* Use the right type of Hardware Abstraction Layer (old 32 bits Windows versions): Microsoft ships 3 default versions: {{ic|Hal.dll}} (Standard PC), {{ic|Halacpi.dll}} (ACPI HAL) and {{ic|Halaacpi.dll}} (ACPI HAL with IO APIC). Your Windows install could come installed with the first or the second version. In that way, please [https://www.virtualbox.org/manual/ch08.html#idp56927888 disable the ''Enable IO/APIC'' VirtualBox extended feature].<br />
<br />
* Disable any AGP device driver (only outdated Windows versions): If you have the files {{ic|agp440.sys}} or {{ic|intelppm.sys}} inside the {{ic|C:\Windows\SYSTEM32\drivers\}} directory, remove it. As VirtualBox uses a PCI virtual graphic card, this can cause problems when this AGP driver is used.<br />
<br />
* Create a Windows recovery disk: In the following steps, if things turn bad, you will need to repair your Windows installation. Make sure you have an install media at hand, or create one with ''Create a recovery disk'' from Vista SP1, ''Create a system repair disc'' on Windows 7 or ''Create a recovery drive'' on Windows 8.x).<br />
<br />
==== Using Disk2vhd to clone Windows partition ====<br />
Boot into Windows, clean up the installation (with [http://www.piriform.com/ccleaner CCleaner] for example), use [https://technet.microsoft.com/en-us/library/ee656415.aspx disk2vhd] tool to create a VHD image. Include a reserved system partition (if present) and the actual Windows partition (usually disk C:). The size of Disk2vhd-created image will be the sum of the actual files on the partition (used space), not the size of a whole partition. If all goes well, the image should just boot in a VM and you won't have to go through the hassle with MBR and Windows bootloader, as in the case of cloning an entire partition.<br />
<br />
==== Tasks on GNU/Linux ====<br />
<br />
{{Tip|Skip the partition-related parts if you created VHD image with [[#Using Disk2vhd to clone Windows partition|Disk2vhd]].}}<br />
<br />
* Reduce the native Windows partition size to the size Windows actually needs with {{ic|ntfsresize}} available from {{Pkg|ntfs-3g}}. The size you will specify will be the same size of the VDI that will be created in the next step. If this size is too low, you may break your Windows install and the latter might not boot at all.<br />
<br />
:Use the {{ic|--no-action}} option first to run a test:<br />
:{{bc|# ntfsresize --no-action --size ''52Gi'' ''/dev/sda1''}}<br />
<br />
:If only the previous test succeeded, execute this command again, but this time without the aforementioned test flag.<br />
<br />
* Install VirtualBox on your GNU/Linux host (see [[#Installation steps for Arch Linux hosts]] if your host is Arch Linux).<br />
<br />
* Create the Windows disk image from the beginning of the drive to the end of the first partition where is located your Windows installation. Copying from the beginning of the disk is necessary because the MBR space at the beginning of the drive needs to be on the virtual drive along with the Windows partition. In this example two following partitions {{ic|sda2}} and {{ic|sda3}}will be later removed from the partition table and the MBR bootloader will be updated.<br />
<br />
:{{bc|<nowiki># sectnum=$(( $(cat /sys/block/''sda/sda1''/start) + $(cat /sys/block/''sda/sda1''/size) ))</nowiki>}}<br />
:Using {{ic|cat /sys/block/''sda/sda1''/size}} will output the number of total sectors of the first partition of the disk {{ic|sda}}. Adapt where necessary.<br />
<br />
:{{bc|<nowiki># dd if=''/dev/sda'' bs=512 count=$sectnum | VBoxManage convertfromraw stdin ''windows.vdi'' $(( $sectnum * 512 ))</nowiki>}}<br />
:We need to display the size in byte, {{ic|$(( $sectnum * 512 ))}} will convert the sector numbers to bytes.<br />
<br />
* Since you created your disk image as root, set the right ownership to the virtual disk image: {{bc|# chown ''your_user'':''your_group'' windows.vdi}}<br />
<br />
* Create your virtual machine configuration file and use the virtual disk created previously as the main virtual hard disk.<br />
<br />
* Try to boot your Windows VM, it may just work. First though remove and repair disks from the boot process as it may interfere (and likely will) booting into safe-mode.<br />
<br />
* Attempt to boot your Windows virtual machine in safe mode (press the F8 key before the Windows logo shows up)... if running into boot issues, read [[#Fix MBR and Microsoft bootloader]]. In safe-mode, drivers will be installed likely by the Windows plug-and-play detection mechanism [http://i.imgur.com/hh1RrSp.png view]. Additionally, install the VirtualBox Guest Additions via the menu ''Devices'' > ''Insert Guest Additions CD image...''. If a new disk dialog does not appear, navigate to the CD drive and start the installer manually.<br />
<br />
* You should finally have a working Windows virtual machine. Do not forget to read the [[#Known limitations]].<br />
<br />
* Performance tip: according to [http://www.virtualbox.org/manual/ch05.html#harddiskcontrollers VirtualBox manual], SATA controller has a better performance than IDE. If you can't boot Windows off virtual SATA controller right away, it is probably due to the lack of SATA drivers. Attach virtual disk to IDE controller, create an empty SATA controller and boot the VM - Windows should automatically install SATA drivers for the controller. You can then shutdown VM, detach virtual disk from IDE controller and attach it to SATA controller instead.<br />
<br />
==== Fix MBR and Microsoft bootloader ====<br />
<br />
If your Windows virtual machine refuses to boot, you may need to apply the following modifications to your virtual machine.<br />
<br />
*Boot a GNU/Live live distribution inside your virtual machine before Windows starts up.<br />
<br />
*Remove other partitions entries from the virtual disk MBR. Indeed, since we copied the MBR and only the Windows partition, the entries of the other partitions are still present in the MBR, but the partitions are not available anymore. Use {{ic|fdisk}} to achieve this for example.<br />
:{{bc|<nowiki>fdisk ''/dev/sda''<br />
Command (m for help): a<br />
Partition number (''1-3'', default ''3''): ''1''</nowiki>}}<br />
<br />
*Write the updated partition table to the disk (this will recreate the MBR) using the {{ic|m}} command inside {{ic|fdisk}}.<br />
<br />
*Use {{Pkg|testdisk}} (see [http://www.cgsecurity.org/index.html?testdisk.html here] for details) to add a generic MBR:<br />
:{{bc|# testdisk > ''Disk /dev/sda...''' > [Proceed] > [Intel] Intel/PC partition > [MBR Code] Write TestDisk MBR to first sector > Write a new copy of MBR code to first sector? (Y/n) > Y > Write a new copy of MBR code, confirm? (Y/N) > A new copy of MBR code has been written. You have to reboot for the change to take effect. > [OK]}}<br />
<br />
*With the new MBR and updated partition table, your Windows virtual machine should be able to boot. If you are still encountering issues, boot your Windows recovery disk from on of the previous step, and inside your Windows RE environment, execute the commands [http://support.microsoft.com/kb/927392 described here].<br />
<br />
==== Known limitations ====<br />
<br />
*Your virtual machine can sometimes hang and overrun your RAM, this can be caused by conflicting drivers still installed inside your Windows virtual machine. Good luck to find them!<br />
*Additional software expecting a given driver beneath may either not be disabled/uninstalled or needs to be uninstalled first as the drivers that are no longer available.<br />
*Your Windows installation must reside on the first partition for the above process to work. If this requirement is not met, the process might be achieved too, but this had not been tested. This will require either copying the MBR and editing in hexadecimal see [http://superuser.com/questions/237782/virtualbox-booting-cloned-disk/253417#253417 VirtualBox: booting cloned disk] or will require to fix the partition table [http://gparted.org/h2-fix-msdos-pt.php manually] or by repairing Windows with the recovery disk you created in a previous step. Let us consider our Windows installation on the second partition; we will copy the MBR, then the second partition where to the disk image. {{ic|VBoxManage convertfromraw}} needs the total number of bytes that will be written: calculated thanks to the size of the MBR (the start of the first partition) plus the size of the second (Windows) partition. {{ic|<nowiki>{ dd if=/dev/sda bs=512 count=$(cat /sys/block/sda/sda1/start) ; dd if=/dev/sda2 bs=512 count=$(cat /sys/block/sda/sda2/size) ; } | VBoxManage convertfromraw stdin windows.vdi $(( ($(cat /sys/block/sda/sda1/start) + $(cat /sys/block/sda/sda2/size)) * 512 ))</nowiki>}}.<br />
<br />
== Troubleshooting ==<br />
<br />
=== VERR_ACCESS_DENIED ===<br />
<br />
To access the raw vmdk image on a windows host, run the VirtualBox GUI as administrator.<br />
<br />
=== Keyboard and mouse are blocked in my virtual machine ===<br />
<br />
This means your virtual machine has captured the input of your keyboard and your mouse. Simply press the right {{ic|Ctrl}} key and your input should control your host again.<br />
<br />
To control transparently your virtual machine with your mouse going back and forth your host, without having to press any key, and thus have a seamless integration, install the guest additions inside the guest. Read from the [[#Install the Guest Additions]] step if you guest is Arch Linux, otherwise read the official VirtualBox help.<br />
<br />
=== Cannot send CTRL+ALT+Fn key to my virtual machine ===<br />
<br />
Your guest operating system is a GNU/Linux distribution and you want to open a new TTY shell by hitting {{ic|Ctrl+Alt+F2}} or exit your current X session with {{ic|Ctrl+Alt+Backspace}}. If you type these keyboard shortcuts without any adaptation, the guest will not receive any input and the host (if it is a GNU/Linux distribution too) will intercept these shortcut keys. To send {{ic|Ctrl+Alt+F2}} to the guest for example, simply hit your ''Host Key'' (usually the right {{ic|Ctrl}} key) and press {{ic|F2}} simultaneously.<br />
<br />
=== Fix ISO images problems ===<br />
<br />
While VirtualBox can mount ISO images without problem, there are some image formats which cannot reliably be converted to ISO. For instance, ccd2iso ignores .ccd and .sub files, which can give disk images with broken files. <br />
<br />
In this case, you will either have to use [[CDEmu]] for Linux inside VirtualBox or any other utility used to mount disk images.<br />
<br />
=== VirtualBox GUI does not match my GTK Theme ===<br />
<br />
See [[Uniform Look for Qt and GTK Applications]] for information about theming Qt based applications like Virtualbox.<br />
<br />
=== OpenBSD unusable when virtualisation instructions unavailable ===<br />
<br />
While OpenBSD is reported to work fine on other hypervisors without virtualisation instructions (VT-x AMD-V) enabled, an OpenBSD virtual machine running on VirtualBox without these instructions will be unusable, manifesting with a bunch of segmentation faults. Starting VirtualBox with the ''-norawr0'' argument [https://www.virtualbox.org/ticket/3947 may solve the problem]. You can do it like this:<br />
$ VBoxSDL -norawr0 -vm ''name_of_OpenBSD_VM''<br />
<br />
=== VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) ===<br />
<br />
This can occur if a VM is exited ungracefully. The solution to unlock the VM is trivial:<br />
$ VBoxManage controlvm ''virtual_machine_name'' poweroff<br />
<br />
=== USB subsystem is not working on the host or guest ===<br />
<br />
Your user must be in the {{ic|vboxusers}} group, and you need to install the [[#Extension pack|extension pack]] if you want USB 2 support. Then you will be able to enable USB 2 in the VM settings and add one or several filters for the devices you want to access from the guest OS.<br />
<br />
If {{ic|VBoxManage list usbhost}} does not show any USB devices even if run as root, make sure that there is no old udev rules (from VirtualBox 4.x) in ''/etc/udev/rules.d/''. VirtualBox 5.0 installs udev rules to ''/usr/lib/udev/rules.d/''. You can use command like {{ic|pacman -Qo /usr/lib/udev/rules.d/60-vboxdrv.rules}} to determine if the udev rule file is outdated.<br />
<br />
Sometimes, on old Linux hosts, the USB subsystem is not auto-detected resulting in an error {{ic|Could not load the Host USB Proxy service: VERR_NOT_FOUND}} or in a not visible USB drive on the host, [https://bbs.archlinux.org/viewtopic.php?id=121377 even when the user is in the '''vboxusers''' group]. This problem is due to the fact that VirtualBox switched from ''usbfs'' to ''sysfs'' in version 3.0.8. If the host does not understand this change, you can revert to the old behaviour by defining the following environment variable in any file that is sourced by your shell (e.g. your {{ic|~/.bashrc}} if you are using ''bash''):<br />
<br />
{{hc|~/.bashrc|VBOX_USB<nowiki>=</nowiki>usbfs}}<br />
<br />
Then make sure, the environment has been made aware of this change (reconnect, source the file manually, launch a new shell instance or reboot).<br />
<br />
Also make sure that your user is a member of the {{ic|storage}} group.<br />
<br />
=== Failed to create the host-only network interface ===<br />
<br />
Make sure all required kernel modules are loaded. See [[#Load the VirtualBox kernel modules]].<br />
<br />
=== WinXP: Bit-depth cannot be greater than 16 ===<br />
<br />
If you are running at 16-bit color depth, then the icons may appear fuzzy/choppy. However, upon attempting to change the color depth to a higher level, the system may restrict you to a lower resolution or simply not enable you to change the depth at all. To fix this, run {{ic|regedit}} in Windows and add the following key to the Windows XP VM's registry:<br />
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]<br />
"ColorDepth"=dword:00000004<br />
<br />
Then update the color depth in the "desktop properties" window. If nothing happens, force the screen to redraw through some method (i.e. {{ic|Host+f}} to redraw/enter full screen).<br />
<br />
=== Use serial port in guest OS ===<br />
<br />
Check you permission for the serial port:<br />
$ /bin/ls -l /dev/ttyS*<br />
crw-rw---- 1 root uucp 4, 64 Feb 3 09:12 /dev/ttyS0<br />
crw-rw---- 1 root uucp 4, 65 Feb 3 09:12 /dev/ttyS1<br />
crw-rw---- 1 root uucp 4, 66 Feb 3 09:12 /dev/ttyS2<br />
crw-rw---- 1 root uucp 4, 67 Feb 3 09:12 /dev/ttyS3<br />
<br />
Add your user to the {{ic|uucp}} group.<br />
# gpasswd -a $USER uucp <br />
and log out and log in again.<br />
<br />
=== Windows 8.x Error Code 0x000000C4===<br />
<br />
If you get this error code while booting, even if you choose OS Type Win 8, try to enable the {{ic|CMPXCHG16B}} CPU instruction:<br />
<br />
$ vboxmanage setextradata ''virtual_machine_name'' VBoxInternal/CPUM/CMPXCHG16B 1<br />
<br />
=== Windows 8, 8.1 or 10 fails to install, boot or has error "ERR_DISK_FULL" ===<br />
Update the VM's settings by going to ''Settings > Storage > Controller:SATA'' and check "Use Host I/O Cache".<br />
<br />
=== Linux guests have slow/distorted audio ===<br />
<br />
The AC97 audio driver within the Linux kernel occasionally guesses the wrong clock settings when running inside Virtual Box, leading to audio that is either too slow or too fast. To fix this, create a file in {{ic|/etc/modprobe.d}} with the following line:<br />
<br />
options snd-intel8x0 ac97_clock=48000<br />
<br />
=== Guest freezes after starting Xorg ===<br />
<br />
Faulty or missing drivers may cause the guest to freeze after starting Xorg, see for example [https://bbs.archlinux.org/viewtopic.php?pid=1167838] and [https://bbs.archlinux.org/viewtopic.php?id=156079]. Try disabling 3D acceleration in ''Settings > Display'', and check if all [[Xorg]] drivers are installed.<br />
<br />
=== "NS_ERROR_FAILURE" and missing menu items ===<br />
<br />
If you encounter this message when first time starting the virtual machine:<br />
<br />
{{bc|Failed to open a session for the virtual machine debian.<br />
Could not open the medium '/home/.../VirtualBox VMs/debian/debian.qcow'.<br />
QCow: Reading the L1 table for image '/home/.../VirtualBox VMs/debian/debian.qcow' failed (VERR_EOF).<br />
VD: error VERR_EOF opening image file '/home/.../VirtualBox VMs/debian/debian.qcow' (VERR_EOF).<br />
<br />
Result Code: <br />
NS_ERROR_FAILURE (0x80004005)<br />
Component: <br />
Medium<br />
}}<br />
<br />
Exit VirtualBox, delete all files of the new machine and from virtualbox config file remove the last line in {{ic|MachineRegistry}} menu (or the offending machine you are creating):<br />
<br />
{{hc|~/.config/VirtualBox/VirtualBox.xml|2=<br />
...<br />
<MachineRegistry><br />
<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/debian/debian.vbox"/><br />
<MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/ubuntu/ubuntu.vbox"/><br />
<strike><MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/></strike><br />
</MachineRegistry><br />
...<br />
}}<br />
<br />
This happens sometimes when selecting ''QCOW''/''QCOW2''/''QED'' disk format when creating a new virutal disk.<br />
<br />
=== USB modem ===<br />
<br />
If you have a USB modem which is being used by the guest OS, killing the guest OS can cause the modem to become unusable by the host system. Killing and restarting {{ic|VBoxSVC}} should fix this problem.<br />
<br />
=== "The specified path does not exist. Check the path and then try again." error in Windows guests ===<br />
<br />
This error message often appears when running an .exe file which requires administrator priviliges from a shared folder in windows guests. See [https://www.virtualbox.org/ticket/5732 the bug report] for details.<br />
<br />
There are several workarounds:<br />
<br />
# Disable UAC from Control Panel -> Action Center -> "Change User Account Control settings" from left side pane -> set slider to "Never notify" -> OK and reboot<br />
# Copy the file from the shared folder to the guest and run from there<br />
# Control Panel -> Network and Internet -> Internet Options -> Security -> Trusted Sites -> Sites -> Add "VBOXSVR" as a website<br />
# Start -> type "gpedit.msc" and press Enter -> Computer Configuration -> Administrative Templates -> Windows Components -> Internet Explorer -> Internet Control Panel -> Security Page -> Size to Zone Assignment List -> Add "VBOXSVR" to "2" and reboot<br />
<br />
{{Accuracy|Haven't tested#3 and #4 workarounds myself. If someone can confirm that they are working as well, please delete this note/template.}}<br />
<br />
=== No 64-bit OS client options ===<br />
<br />
When launching a VM client, and no 64-bit options are available, make sure your CPU virtualization capabilities (usually named {{ic|VT-x}}) are enabled in the BIOS.<br />
<br />
=== Host OS freezes on Virtual Machine start ===<br />
<br />
{{Expansion|Needs a link to a bug report; vague expressions like "currently" and "at the moment of writing" are of no help.}}<br />
<br />
Possible causes/solutions :<br />
* SMAP<br />
This is a known incompatiblity with SMAP enabled kernels affecting (mostly) Intel Broadwell chipsets. The matter is currently being investigated, with a wide variety of WIP vboxhost module patches out in the wild that are meant to solve the issue. At the moment of writing though, the only 100% guaranteed solution to this problem is disabling SMAP support in your kernel by appending the "nosmap" option to your kernel boot command line.<br />
* Hardware Virtualisation<br />
Disabling hardware virtualisation (VT-x/AMD-V) may solve the problem.<br />
* Various Kernel bugs<br />
** Fuse mounted partitions (like ntfs) [https://bbs.archlinux.org/viewtopic.php?id=185841], [https://bugzilla.kernel.org/show_bug.cgi?id=82951#c12]<br />
<br />
Generally, such issues are observed after upgrading VirtualBox or linux kernel. Downgrading them to the previous versions of theirs might solve the problem.<br />
<br />
=== The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1) ===<br />
<br />
When trying to launch a virtual machine, an error message like the following appears:<br />
<br />
{{bc|The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1)<br />
NS_ERROR_FAILURE 0x80004005<br />
Component: MachineWrap<br />
Interface: IMachine}}<br />
<br />
This may occur after upgrading the {{Pkg|virtualbox}} or {{Pkg|virtualbox-host-modules}} package. Try reloading the {{ic|vboxdrv}} module:<br />
<br />
{{bc|# modprobe -r vboxdrv<br />
# modprobe vboxdrv<br />
}}<br />
<br />
=== Analog microphone not working in guest ===<br />
<br />
If the audio input from an analog microphone is working correctly on the host, but no sound seems to get through to the guest, despite the microphone device apparently being detected normally, installing a [[Sound system#Sound servers|sound server]] such as [[PulseAudio]] on the host might fix the problem.<br />
<br />
== See also ==<br />
<br />
* [https://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual]<br />
* [[Wikipedia:VirtualBox]]</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Index&diff=416146DeveloperWiki:Index2016-01-18T23:57:25Z<p>Seblu: Reverted edits by Lahwaacz (talk) to last revision by Fengchao</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
=== Policies ===<br />
* [[DeveloperWiki:CoreSignoffs]]<br />
* [[DeveloperWiki:Patching]]<br />
* [[DeveloperWiki:ExtraPackages]]<br />
* [[DeveloperWiki:ExtraSignoffs]]<br />
* [[DeveloperWiki:Bash Coding Style]]<br />
<br />
=== Organization ===<br />
* [[DeveloperWiki:Internal Projects]]<br />
* [[DeveloperWiki:Roll Call]]<br />
* [[DeveloperWiki:ArchlinuxOrg Services]]<br />
* [[DeveloperWiki:Linux Conferences]]<br />
<br />
=== Packaging Guidelines ===<br />
* [[DeveloperWiki:HOWTO Be A Packager]]<br />
* [[DeveloperWiki:Systemd]]<br />
* [[DeveloperWiki:Signing Packages]]<br />
* [[DeveloperWiki:Building in a Clean Chroot]]<br />
* [[DeveloperWiki:Package Submittal Rules]]<br />
* [[DeveloperWiki:GNOME Guidelines]]<br />
* [[DeveloperWiki:Adopting Packages]]<br />
* [[DeveloperWiki:Package Testing]]<br />
* [[DeveloperWiki:PKGBUILD.com]]<br />
* [[DeveloperWiki:Migration Procedure: Proposal]]<br />
<br />
=== Packaging Reference ===<br />
<br />
* [[DeveloperWiki:UID / GID Database]]<br />
* [[DeveloperWiki:Provides Database]]<br />
* [[DeveloperWiki:Repo Cleanup]]<br />
* [[DeveloperWiki:KDE]]<br />
* [[DeveloperWiki:Python Todo List]]<br />
* [[DeveloperWiki:Ncurses Todo List]]<br />
* [[DeveloperWiki:Unimportant Rebuild List]]<br />
<br />
=== Important Public Information ===<br />
* [[UID and GID list]]<br />
<br />
=== Internals ===<br />
* [[:Category:DeveloperWiki:Server Configuration]]<br />
* [[DeveloperWiki:NewMirrors]]<br />
* [[DeveloperWiki:Developer Checklist]]<br />
<br />
=== Future ===<br />
* [[DeveloperWiki:Goals]]<br />
<br />
=== Artwork and Branding ===<br />
* [[DeveloperWiki:Branding Proposals]]<br />
* [[DeveloperWiki:Branding Todo List]]<br />
* [[DeveloperWiki:TrademarkPolicy]]<br />
<br />
=== Web Development ===<br />
* [[DeveloperWiki:Website Suggestions]]<br />
<br />
=== Release Engineering ===<br />
* [[DeveloperWiki:iso building]]<br />
* [[DeveloperWiki:releng testimages feedback]]<br />
* [[DeveloperWiki:releng roadmap]]<br />
<br />
=== Devops Team ===<br />
* [[DeveloperWiki:Arch Services]]</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Arch_Services&diff=416145DeveloperWiki:Arch Services2016-01-18T23:56:40Z<p>Seblu: Reverted edits by Lahwaacz (talk) to last revision by Seblu</p>
<hr />
<div>__NOTOC__<br />
[[Category:DeveloperWiki]]<br />
==Archweb==<br />
<br />
'''Description:'''<br />
Main web site.<br />
<br />
'''URI:''' <br />
* https://www.archlinux.org<br />
* https://master-key.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
* Running on gudrun.archlinux.org<br />
* Sources hosted on [https://projects.archlinux.org/archweb.git projects.archlinux.org]<br />
* Developed in django.<br />
<br />
==Wiki==<br />
<br />
'''Description:'''<br />
Documentation<br />
<br />
'''URI:''' <br />
https://wiki.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Forum==<br />
'''Description:'''<br />
Web forum<br />
<br />
'''URI:''' <br />
https://bbs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Bug Tracker==<br />
'''Description:'''<br />
Bug management system<br />
<br />
'''URI:''' <br />
https://bugs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Projects==<br />
<br />
'''Description:'''<br />
Projects service provide git repositories to arch devs.<br />
<br />
'''URI:'''<br />
* https://projects.archlinux.org/<br />
* ssh://gerolde.archlinux.org/<br />
<br />
'''Notes:'''<br />
* Web interfaces on gudrun.<br />
* Git repositories on gerolde.<br />
<br />
<br />
==AUR==<br />
'''Description:'''<br />
Arch Linux User Repositories<br />
<br />
'''URI:''' <br />
* https://aur.archlinux.org<br />
* https://aur-dev.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Sources==<br />
'''Description:'''<br />
Provide GPLv2 sources<br />
<br />
'''URI:''' <br />
https://sources.al.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Planet==<br />
'''Description:'''<br />
Blog<br />
<br />
'''URI:''' <br />
https://planet.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Lists==<br />
<br />
'''Description:'''<br />
Mailing list services.<br />
<br />
'''URI:''' <br />
* https://lists.archlinux.org<br />
* https://mailman.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
* Use mailman<br />
<br />
==Archive==<br />
<br />
'''Description:'''<br />
Arch Linux Archive of repositories/sources/iso.<br />
<br />
'''URI:''' <br />
https://archive.archlinux.org<br />
<br />
'''Notes:'''<br />
* Currently hosted on achille.seblu.net<br />
<br />
<br />
==MX==<br />
<br />
'''Description:'''<br />
Mail routing<br />
<br />
'''URI:''' <br />
smtp://mx.archlinux.org<br />
<br />
'''Domains:''' <br />
* archlinux.org<br />
* master-key.archlinux.org<br />
<br />
'''Notes:'''<br />
* Serveur is postfix<br />
* Hosted on nymeria<br />
<br />
==DNS==<br />
<br />
'''Description:'''<br />
Provide DNS resolution for Arch Linux domains.<br />
<br />
'''URI:''' <br />
* ns1.first-ns.de.<br />
* robotns2.second-ns.de.<br />
* robotns3.second-ns.com.<br />
<br />
'''Notes:'''<br />
* We use a SAAS DNS service from hetzner.de<br />
<br />
= Dev web space =<br />
'''Description:'''<br />
Developers and TU's web hosting<br />
<br />
'''URI:''' <br />
https://dev.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Build Server==<br />
'''Description:'''<br />
Build machine for dev/tu<br />
<br />
'''URI:''' <br />
* https://pkgbuild.com<br />
* ssh://pkgbuild.com<br />
<br />
'''Notes:'''<br />
* run on celestia<br />
<br />
==IRC==<br />
'''Description:'''<br />
Arch related IRC channels. <br />
<br />
'''URI:''' <br />
[[IRC_channel]]<br />
<br />
'''Notes:'''<br />
<br />
==Rsync==<br />
'''Description:'''<br />
Sync service / Mirrors<br />
<br />
'''URI:''' <br />
rsync://rsync.archlinux.org<br />
<br />
'''Notes:'''</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Arch_Services&diff=414848DeveloperWiki:Arch Services2016-01-10T01:04:53Z<p>Seblu: /* Archweb */</p>
<hr />
<div>__NOTOC__<br />
[[Category:DeveloperWiki]]<br />
==Archweb==<br />
<br />
'''Description:'''<br />
Main web site.<br />
<br />
'''URI:''' <br />
* https://www.archlinux.org<br />
* https://master-key.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
* Running on gudrun.archlinux.org<br />
* Sources hosted on [https://projects.archlinux.org/archweb.git projects.archlinux.org]<br />
* Developed in django.<br />
<br />
==Wiki==<br />
<br />
'''Description:'''<br />
Documentation<br />
<br />
'''URI:''' <br />
https://wiki.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Forum==<br />
'''Description:'''<br />
Web forum<br />
<br />
'''URI:''' <br />
https://bbs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Bug Tracker==<br />
'''Description:'''<br />
Bug management system<br />
<br />
'''URI:''' <br />
https://bugs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Projects==<br />
<br />
'''Description:'''<br />
Projects service provide git repositories to arch devs.<br />
<br />
'''URI:'''<br />
* https://projects.archlinux.org/<br />
* ssh://gerolde.archlinux.org/<br />
<br />
'''Notes:'''<br />
* Web interfaces on gudrun.<br />
* Git repositories on gerolde.<br />
<br />
<br />
==AUR==<br />
'''Description:'''<br />
Arch Linux User Repositories<br />
<br />
'''URI:''' <br />
* https://aur.archlinux.org<br />
* https://aur-dev.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Sources==<br />
'''Description:'''<br />
Provide GPLv2 sources<br />
<br />
'''URI:''' <br />
https://sources.al.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Planet==<br />
'''Description:'''<br />
Blog<br />
<br />
'''URI:''' <br />
https://planet.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Lists==<br />
<br />
'''Description:'''<br />
Mailing list services.<br />
<br />
'''URI:''' <br />
* https://lists.archlinux.org<br />
* https://mailman.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
* Use mailman<br />
<br />
==Archive==<br />
<br />
'''Description:'''<br />
Arch Linux Archive of repositories/sources/iso.<br />
<br />
'''URI:''' <br />
https://archive.archlinux.org<br />
<br />
'''Notes:'''<br />
* Currently hosted on achille.seblu.net<br />
<br />
<br />
==MX==<br />
<br />
'''Description:'''<br />
Mail routing<br />
<br />
'''URI:''' <br />
smtp://mx.archlinux.org<br />
<br />
'''Domains:''' <br />
* archlinux.org<br />
* master-key.archlinux.org<br />
<br />
'''Notes:'''<br />
* Serveur is postfix<br />
* Hosted on nymeria<br />
<br />
==DNS==<br />
<br />
'''Description:'''<br />
Provide DNS resolution for Arch Linux domains.<br />
<br />
'''URI:''' <br />
* ns1.first-ns.de.<br />
* robotns2.second-ns.de.<br />
* robotns3.second-ns.com.<br />
<br />
'''Notes:'''<br />
* We use a SAAS DNS service from hetzner.de<br />
<br />
= Dev web space =<br />
'''Description:'''<br />
Developers and TU's web hosting<br />
<br />
'''URI:''' <br />
https://dev.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Build Server==<br />
'''Description:'''<br />
Build machine for dev/tu<br />
<br />
'''URI:''' <br />
* https://pkgbuild.com<br />
* ssh://pkgbuild.com<br />
<br />
'''Notes:'''<br />
* run on celestia<br />
<br />
==IRC==<br />
'''Description:'''<br />
Arch related IRC channels. <br />
<br />
'''URI:''' <br />
[[IRC_channel]]<br />
<br />
'''Notes:'''<br />
<br />
==Rsync==<br />
'''Description:'''<br />
Sync service / Mirrors<br />
<br />
'''URI:''' <br />
rsync://rsync.archlinux.org<br />
<br />
'''Notes:'''</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Arch_Services&diff=414847DeveloperWiki:Arch Services2016-01-10T01:01:20Z<p>Seblu: </p>
<hr />
<div>__NOTOC__<br />
[[Category:DeveloperWiki]]<br />
==Archweb==<br />
<br />
'''Description:'''<br />
Main web site.<br />
<br />
'''URI:''' <br />
* https://www.archlinux.org<br />
* https://master-key.archlinux.org<br />
<br />
'''Notes:'''<br />
* Developed in django.<br />
* Code source hosted on projects.<br />
<br />
==Wiki==<br />
<br />
'''Description:'''<br />
Documentation<br />
<br />
'''URI:''' <br />
https://wiki.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Forum==<br />
'''Description:'''<br />
Web forum<br />
<br />
'''URI:''' <br />
https://bbs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Bug Tracker==<br />
'''Description:'''<br />
Bug management system<br />
<br />
'''URI:''' <br />
https://bugs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Projects==<br />
<br />
'''Description:'''<br />
Projects service provide git repositories to arch devs.<br />
<br />
'''URI:'''<br />
* https://projects.archlinux.org/<br />
* ssh://gerolde.archlinux.org/<br />
<br />
'''Notes:'''<br />
* Web interfaces on gudrun.<br />
* Git repositories on gerolde.<br />
<br />
<br />
==AUR==<br />
'''Description:'''<br />
Arch Linux User Repositories<br />
<br />
'''URI:''' <br />
* https://aur.archlinux.org<br />
* https://aur-dev.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Sources==<br />
'''Description:'''<br />
Provide GPLv2 sources<br />
<br />
'''URI:''' <br />
https://sources.al.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Planet==<br />
'''Description:'''<br />
Blog<br />
<br />
'''URI:''' <br />
https://planet.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
==Lists==<br />
<br />
'''Description:'''<br />
Mailing list services.<br />
<br />
'''URI:''' <br />
* https://lists.archlinux.org<br />
* https://mailman.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
* Use mailman<br />
<br />
==Archive==<br />
<br />
'''Description:'''<br />
Arch Linux Archive of repositories/sources/iso.<br />
<br />
'''URI:''' <br />
https://archive.archlinux.org<br />
<br />
'''Notes:'''<br />
* Currently hosted on achille.seblu.net<br />
<br />
<br />
==MX==<br />
<br />
'''Description:'''<br />
Mail routing<br />
<br />
'''URI:''' <br />
smtp://mx.archlinux.org<br />
<br />
'''Domains:''' <br />
* archlinux.org<br />
* master-key.archlinux.org<br />
<br />
'''Notes:'''<br />
* Serveur is postfix<br />
* Hosted on nymeria<br />
<br />
==DNS==<br />
<br />
'''Description:'''<br />
Provide DNS resolution for Arch Linux domains.<br />
<br />
'''URI:''' <br />
* ns1.first-ns.de.<br />
* robotns2.second-ns.de.<br />
* robotns3.second-ns.com.<br />
<br />
'''Notes:'''<br />
* We use a SAAS DNS service from hetzner.de<br />
<br />
= Dev web space =<br />
'''Description:'''<br />
Developers and TU's web hosting<br />
<br />
'''URI:''' <br />
https://dev.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
==Build Server==<br />
'''Description:'''<br />
Build machine for dev/tu<br />
<br />
'''URI:''' <br />
* https://pkgbuild.com<br />
* ssh://pkgbuild.com<br />
<br />
'''Notes:'''<br />
* run on celestia<br />
<br />
==IRC==<br />
'''Description:'''<br />
Arch related IRC channels. <br />
<br />
'''URI:''' <br />
[[IRC_channel]]<br />
<br />
'''Notes:'''<br />
<br />
==Rsync==<br />
'''Description:'''<br />
Sync service / Mirrors<br />
<br />
'''URI:''' <br />
rsync://rsync.archlinux.org<br />
<br />
'''Notes:'''</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Arch_Services&diff=414846DeveloperWiki:Arch Services2016-01-10T00:56:48Z<p>Seblu: </p>
<hr />
<div>__NOTOC__<br />
[[Category:DeveloperWiki]]<br />
= Archweb =<br />
<br />
'''Description:'''<br />
Main web site.<br />
<br />
'''URI:''' <br />
* https://www.archlinux.org<br />
* https://master-key.archlinux.org<br />
<br />
'''Notes:'''<br />
* Developed in django.<br />
* Code source hosted on projects.<br />
<br />
= Wiki =<br />
<br />
'''Description:'''<br />
Documentation<br />
<br />
'''URI:''' <br />
https://wiki.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
= Forum =<br />
'''Description:'''<br />
Web forum<br />
<br />
'''URI:''' <br />
https://bbs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
= Bug Tracker =<br />
'''Description:'''<br />
Bug management system<br />
<br />
'''URI:''' <br />
https://bugs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
= Projects =<br />
<br />
'''Description:'''<br />
Projects service provide git repositories to arch devs.<br />
<br />
'''URI:'''<br />
* https://projects.archlinux.org/<br />
* ssh://gerolde.archlinux.org/<br />
<br />
'''Notes:'''<br />
* Web interfaces on gudrun.<br />
* Git repositories on gerolde.<br />
<br />
<br />
= AUR =<br />
'''Description:'''<br />
Arch Linux User Repositories<br />
<br />
'''URI:''' <br />
* https://aur.archlinux.org<br />
* https://aur-dev.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
<br />
<br />
= Sources =<br />
'''Description:'''<br />
Provide GPLv2 sources<br />
<br />
'''URI:''' <br />
https://sources.al.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
= Planet =<br />
'''Description:'''<br />
Blog<br />
<br />
'''URI:''' <br />
https://planet.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
= Lists =<br />
<br />
'''Description:'''<br />
Mailing list services.<br />
<br />
'''URI:''' <br />
* https://lists.archlinux.org<br />
* https://mailman.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
* Use mailman<br />
<br />
= Archive =<br />
<br />
'''Description:'''<br />
Arch Linux Archive of repositories/sources/iso.<br />
<br />
'''URI:''' <br />
https://archive.archlinux.org<br />
<br />
'''Notes:'''<br />
* Currently hosted on achille.seblu.net<br />
<br />
<br />
= MX =<br />
<br />
'''Description:'''<br />
Mail routing<br />
<br />
'''URI:''' <br />
smtp://mx.archlinux.org<br />
<br />
'''Domains:''' <br />
* archlinux.org<br />
* master-key.archlinux.org<br />
<br />
'''Notes:'''<br />
* Serveur is postfix<br />
* Hosted on nymeria<br />
<br />
= DNS =<br />
<br />
'''Description:'''<br />
Provide DNS resolution for Arch Linux domains.<br />
<br />
'''URI:''' <br />
* ns1.first-ns.de.<br />
* robotns2.second-ns.de.<br />
* robotns3.second-ns.com.<br />
<br />
'''Notes:'''<br />
* We use a SAAS DNS service from hetzner.de<br />
<br />
= Dev web space =<br />
'''Description:'''<br />
Developers and TU's web hosting<br />
<br />
'''URI:''' <br />
https://dev.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
= Build Server =<br />
'''Description:'''<br />
Build machine for dev/tu<br />
<br />
'''URI:''' <br />
* https://pkgbuild.com<br />
* ssh://pkgbuild.com<br />
<br />
'''Notes:'''<br />
* run on celestia<br />
<br />
= IRC =<br />
'''Description:'''<br />
Arch related IRC channels. <br />
<br />
'''URI:''' <br />
[[IRC_channel]]<br />
<br />
'''Notes:'''<br />
<br />
= Rsync =<br />
'''Description:'''<br />
Sync service / Mirrors<br />
<br />
'''URI:''' <br />
rsync://rsync.archlinux.org<br />
<br />
'''Notes:'''</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Index&diff=414845DeveloperWiki:Index2016-01-10T00:48:57Z<p>Seblu: </p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
=== Policies ===<br />
* [[DeveloperWiki:CoreSignoffs]]<br />
* [[DeveloperWiki:Patching]]<br />
* [[DeveloperWiki:ExtraPackages]]<br />
* [[DeveloperWiki:ExtraSignoffs]]<br />
* [[DeveloperWiki:Bash Coding Style]]<br />
<br />
=== Organization ===<br />
* [[DeveloperWiki:Divisions]]<br />
* [[DeveloperWiki:Division Proposals]]<br />
* [[DeveloperWiki:Internal Projects]]<br />
* [[DeveloperWiki:Roll Call]]<br />
* [[DeveloperWiki:ArchlinuxOrg Services]]<br />
* [[DeveloperWiki:Linux Conferences]]<br />
* World Domination Plans<br />
** Moon Domination Plans<br />
** Other celestial bodies?<br />
* World Domination Status<br />
<br />
=== Packaging Guidelines ===<br />
* [[DeveloperWiki:HOWTO Be A Packager]]<br />
* [[DeveloperWiki:Systemd]]<br />
* [[DeveloperWiki:Signing Packages]]<br />
* [[DeveloperWiki:Building in a Clean Chroot]]<br />
* [[DeveloperWiki:Package Submittal Rules]]<br />
* [[DeveloperWiki:GNOME Guidelines]]<br />
* [[DeveloperWiki:Adopting Packages]]<br />
* [[DeveloperWiki:Package Testing]]<br />
* [[DeveloperWiki:PKGBUILD.com]]<br />
* [[DeveloperWiki:Migration Procedure: Proposal]]<br />
* [[DeveloperWiki:Non-Free Packages]]<br />
<br />
=== Packaging Reference ===<br />
<br />
* [[DeveloperWiki:Core-Repository]]<br />
* [[DeveloperWiki:UID / GID Database]]<br />
* [[DeveloperWiki:Provides Database]]<br />
* [[DeveloperWiki:Repo Cleanup]]<br />
* [[DeveloperWiki:KDE]]<br />
* [[DeveloperWiki:Python Todo List]]<br />
* [[DeveloperWiki:Curl Todo List]]<br />
* [[DeveloperWiki:Ncurses Todo List]]<br />
* [[DeveloperWiki:Unimportant Rebuild List]]<br />
<br />
=== Important Public Information ===<br />
* [[UID and GID list]]<br />
<br />
=== Internals ===<br />
* [[:Category:DeveloperWiki:Server Configuration]]<br />
* [[DeveloperWiki:NewMirrors]]<br />
* [[DeveloperWiki:Developer Checklist]]<br />
<br />
=== Future ===<br />
* [[DeveloperWiki:Goals]]<br />
* [[DeveloperWiki:Objectives]]<br />
<br />
=== Artwork and Branding ===<br />
* [[DeveloperWiki:Branding Proposals]]<br />
* [[DeveloperWiki:Branding Todo List]]<br />
* [[DeveloperWiki:TrademarkPolicy]]<br />
<br />
=== Web Development ===<br />
* [[DeveloperWiki:Website Suggestions]]<br />
<br />
=== Release Engineering ===<br />
* [[DeveloperWiki:iso building]]<br />
* [[DeveloperWiki:releng testimages feedback]]<br />
* [[DeveloperWiki:releng roadmap]]<br />
* [[DeveloperWiki:Release process]]<br />
<br />
=== Devops Team ===<br />
* [[DeveloperWiki:Arch Services]]</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Arch_Services&diff=414844DeveloperWiki:Arch Services2016-01-10T00:48:30Z<p>Seblu: Created page with "Category:DeveloperWiki = Archweb = '''Description:''' Main web site. '''URI:''' * https://www.archlinux.org * https://master-key.archlinux.org '''Notes:''' * Develope..."</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
<br />
= Archweb =<br />
<br />
'''Description:'''<br />
Main web site.<br />
<br />
'''URI:''' <br />
* https://www.archlinux.org<br />
* https://master-key.archlinux.org<br />
<br />
'''Notes:'''<br />
* Developed in django.<br />
* Code source hosted on projects.<br />
<br />
= Wiki =<br />
<br />
'''Description:'''<br />
Documentation<br />
<br />
'''URI:''' <br />
https://wiki.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
= Forum =<br />
'''Description:'''<br />
Web forum<br />
<br />
'''URI:''' <br />
https://bbs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
= Bug Tracker =<br />
'''Description:'''<br />
Bug management system<br />
<br />
'''URI:''' <br />
https://bugs.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
= Projects =<br />
<br />
'''Description:'''<br />
Projects service provide git repositories to arch devs.<br />
<br />
'''URI:'''<br />
* https://projects.archlinux.org/<br />
* ssh://gerolde.archlinux.org/<br />
<br />
'''Notes:'''<br />
* Web interfaces on gudrun.<br />
* Git repositories on gerolde.<br />
<br />
<br />
= AUR =<br />
'''Description:'''<br />
Arch Linux User Repositories<br />
<br />
'''URI:''' <br />
* https://aur.archlinux.org<br />
* https://aur-dev.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
<br />
<br />
= Sources =<br />
'''Description:'''<br />
Provide GPLv2 sources<br />
<br />
'''URI:''' <br />
https://sources.al.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
= Planet =<br />
'''Description:'''<br />
Blog<br />
<br />
'''URI:''' <br />
https://planet.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
<br />
= Lists =<br />
<br />
'''Description:'''<br />
Mailing list services.<br />
<br />
'''URI:''' <br />
* https://lists.archlinux.org<br />
* https://mailman.archlinux.org<br />
<br />
<br />
'''Notes:'''<br />
* Use mailman<br />
<br />
= Archive =<br />
<br />
'''Description:'''<br />
Arch Linux Archive of repositories/sources/iso.<br />
<br />
'''URI:''' <br />
https://archive.archlinux.org<br />
<br />
'''Notes:'''<br />
* Currently hosted on achille.seblu.net<br />
<br />
<br />
= MX =<br />
<br />
'''Description:'''<br />
Mail routing<br />
<br />
'''URI:''' <br />
smtp://mx.archlinux.org<br />
<br />
'''Domains:''' <br />
* archlinux.org<br />
* master-key.archlinux.org<br />
<br />
'''Notes:'''<br />
* Serveur is postfix<br />
* Hosted on nymeria<br />
<br />
= DNS =<br />
<br />
'''Description:'''<br />
Provide DNS resolution for Arch Linux domains.<br />
<br />
'''URI:''' <br />
* ns1.first-ns.de.<br />
* robotns2.second-ns.de.<br />
* robotns3.second-ns.com.<br />
<br />
'''Notes:'''<br />
* We use a SAAS DNS service from hetzner.de<br />
<br />
= Dev web space =<br />
'''Description:'''<br />
Developers and TU's web hosting<br />
<br />
'''URI:''' <br />
https://dev.archlinux.org<br />
<br />
'''Notes:'''<br />
<br />
= Build Server =<br />
'''Description:'''<br />
Build machine for dev/tu<br />
<br />
'''URI:''' <br />
* https://pkgbuild.com<br />
* ssh://pkgbuild.com<br />
<br />
'''Notes:'''<br />
* run on celestia<br />
<br />
= IRC =<br />
'''Description:'''<br />
IRC channels<br />
<br />
'''URI:''' <br />
<br />
'''Notes:'''<br />
<br />
<br />
= Rsync =<br />
'''Description:'''<br />
Sync service / Mirrors<br />
<br />
'''URI:''' <br />
rsync://rsync.archlinux.org<br />
<br />
'''Notes:'''</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:Roll_Call&diff=411414DeveloperWiki:Roll Call2015-12-10T15:14:06Z<p>Seblu: </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 />
** Packaging for Ruby language, cross-compilers, ...<br />
** Bug tracking for many packages (including working with upstream)<br />
** Supporting users at forum<br />
* Andreas Radke<br />
** Packaging (Bluetooth, Printing, Xorg, LibreOffice, LTS kernel)<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 />
** Maintaining: ArchISO<br />
* Giovanni Scafora<br />
* Guillaume Alaux<br />
** Packaging ([extra] and [Community] – mainly Java related packages)<br />
* Ionuț Mircea Bîru<br />
** Currently I'm in charge of paying all our servers and signing.<br />
** I don't do any packaging this days, unless there is a bug in a package that affects or annoys me.<br />
** Group contact for archlinux on freenode.<br />
* Jan de Groot<br />
** Packaging (GNOME). Not very active ATM.<br />
* Jan Steffens<br />
** Packaging (GNOME, misc other stuff)<br />
* Jürgen Hötzel<br />
** Packaging <br />
*** OCaml <br />
*** Various lisp programming languages<br />
*** Emacs<br />
* Laurent Carlier<br />
** Packaging (mesa, xorg)<br />
* Lukas Fleischer<br />
** Packaging<br />
** aurweb development<br />
** projects.archlinux.org maintenance<br />
* Maxime Gauduin<br />
** Packaging (LightDM, FFmpeg and encoding related stuff)<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 />
** Packaging (Audio, misc productivity and creativity, others)<br />
** Sporadic inactivity (mostly due to hardware issues needing to work in Windowz with pain)<br />
* Rémy Oudompheng<br />
** Packaging (TeXLive)<br />
* Ronald van Haren<br />
* Sébastien Luttringer<br />
** Packaging: https://www.archlinux.org/packages/?maintainer=seblu<br />
** Interested in:<br />
*** devtools maintainership<br />
*** archive project<br />
*** infra team<br />
* Sven-Hendrik Haase<br />
** Packaging (NVIDIA stuff, multimedia stuff)<br />
* Thomas Bächler<br />
* Thomas Dziedzic<br />
* Tobias Powalowski<br />
** Packaging (Kernel, Hardware support, Filesystems support, Boot process, Base components)<br />
** Maintaining Archboot installer ISO<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 />
** Packaging (Cinnamon, GNOME Flashback, LXDE)<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 />
** Packaging (Random Python modules, XMonad/XMobar and Haskell related packages)<br />
** IRC Op #archlinux, #archlinux-offtopic, (TU channel OP too)<br />
* Jerome Leclanche<br />
** Packaging (LXQt)<br />
* Jiachen Yang<br />
** Packaging (cutegram, libqtelegram-ae, telegramqml, lsw)<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 />
** Packaging<br />
** aurweb development<br />
** projects.archlinux.org maintenance<br />
* Lukas Jirkovsky<br />
** Packaging<br />
* Martin Wimpress<br />
* Massimiliano Torromeo<br />
** Packaging<br />
* Maxime Gauduin<br />
** Packaging (Pantheon, emulators, music players and stuff)<br />
* Pierre Neidhardt<br />
** Packaging (the day I'll have my PGP key signed... xD)<br />
* Sébastien Luttringer<br />
** Packaging: https://www.archlinux.org/packages/?maintainer=seblu<br />
* Sergej Pupykin<br />
* speps<br />
** Packaging (mostly Audio stuff)<br />
* Thomas Dziedzic<br />
* Thorsten Töpper<br />
** Packaging<br />
* Timothy Redaelli<br />
* Xyne<br />
* Михаил Страшун<br />
** Packaging (dlang group only)<br />
<br />
==Support Staff==<br />
* Alad Wenter<br />
** Wiki administration<br />
* Christian Rebischke<br />
** Security team<br />
* Dario Giovannetti<br />
** Wiki administration<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>Sebluhttps://wiki.archlinux.org/index.php?title=User_talk:Seblu&diff=406924User talk:Seblu2015-10-25T16:46:33Z<p>Seblu: </p>
<hr />
<div>== agetpkg ==<br />
<br />
Re [https://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&curid=19195&diff=406634&oldid=406314#agetpkg], I don't see agetpkg in the repos anymore, nor in the AUR. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:20, 24 October 2015 (UTC)<br />
<br />
: Discussion aournd '''agetpkg''' and where it should land is ongoing in [https://lists.archlinux.org/pipermail/arch-dev-public/2015-October/027480.html arch-dev-public].<br />
: -- [[User:Seblu|Seblu]] ([[User talk:Seblu|talk]]) Sun, 25 Oct 2015 17:44:18 +0100</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=406634Arch Linux Archive2015-10-24T12:06:27Z<p>Seblu: Reverted edits by Alad (talk) to last revision by Maevius</p>
<hr />
<div>[[Category:Package management]]<br />
[[fr:Arch Linux Archive]]<br />
[[ja:Arch Linux Archive]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''A'''rch '''L'''inux '''Archive''' (''a.k.a ala''), formerly known as ''Arch Linux Rollback Machine'' (''a.k.a ARM''), stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs'' across time.<br />
<br />
'''You can use it to'''<br />
* Downgrade to a previous version of one package (last version is broken, I want the previous one)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back 2 months ago)<br />
* Find a previous version of an ISO image<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
The following locations listed below are now closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Directories ==<br />
<br />
The '''Archive''' is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like in the following example.<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
Note: The last 3 special directories ('''last''', '''week''' and '''month''') which links respectively to the last synced repository, to the last monday and to the first of the current month.<br />
<br />
=== /packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
An lightweight index, named [http://ala.seblu.net/packages/.all/index.0.xz index.0.xz] is available to list all package in once.<br />
<br />
=== /iso ===<br />
<br />
The [http://ala.seblu.net/iso iso] directory contains official ISO images and bootstrap tarballs sorted by release date.<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
== agetpkg ==<br />
<br />
{{Pkg|agetpkg}} is a command line tool used to quickly list/get/install packages stored in the Archive.<br />
<br />
===== Download a previous version of ferm package =====<br />
agetpkg ferm<br />
<br />
===== Download xterm version 296 =====<br />
agetpkg ^xterm 296<br />
<br />
===== List all zsh versions =====<br />
agetpkg -l zsh$<br />
<br />
===== Install all gvfs packages in version 1.26.0 release 3 =====<br />
agetpkg -i gvfs 1.26.0 3<br />
<br />
===== Download all pwgen packages =====<br />
agetpkg -g -a pwgen<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
You can use {{Pkg|agetpkg}} to easily download a specific package version from the Archive.<br />
<br />
Or you can do it manually:<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Sources ==<br />
<br />
* [https://github.com/seblu/archivetools archivetools] -- Software to run an Archive server<br />
* [https://github.com/seblu/agetpkg agetpkg] -- Software to easy downgrade package from the Archive<br />
<br />
== Future plan ==<br />
<br />
* Move to official infrastructure.<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== History ==<br />
<br />
* New URL and closing the old ARM hierarchy on 2015-10-13. A new software, agetpkg was introduced.<br />
* The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
* The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=405104Arch Linux Archive2015-10-17T00:26:11Z<p>Seblu: Introduce agetpkg</p>
<hr />
<div>[[Category:Package management]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''A'''rch '''L'''inux '''Archive''' (''a.k.a ala''), formerly known as ''Arch Linux Rollback Machine'' (''a.k.a ARM''), stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs'' across time.<br />
<br />
'''You can use it to'''<br />
* Downgrade to a previous version of one package (last version is broken, I want the previous one)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back 2 moths ago)<br />
* Find a previous version of an ISO image<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
The following locations listed below are now closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Directories ==<br />
<br />
The '''Archive''' is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like in the following example.<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
Note: The last 3 special directories ('''last''', '''week''' and '''month''') which links respectively to the last synced repository, to the last monday and to the first of the current month.<br />
<br />
=== /packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
An lightweight index, named [http://ala.seblu.net/packages/.all/index.0.xz index.0.xz] is available to list all package in once.<br />
<br />
=== /iso ===<br />
<br />
The [http://ala.seblu.net/iso iso] directory contains official ISO images and bootstrap tarballs sorted by release date.<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
== agetpkg ==<br />
<br />
'''agetpkg''' is a command line tool used to quickly list/get/install packages stored in the Archive.<br />
<br />
===== Download a previous version of ferm package =====<br />
agetpkg ferm<br />
<br />
===== Download xterm version 296 =====<br />
agetpkg ^xterm 296<br />
<br />
===== List all zsh versions =====<br />
agetpkg -l zsh$<br />
<br />
===== Install all gvfs packages in version 1.26.0 release 3 =====<br />
agetpkg -i gvfs 1.26.0 3<br />
<br />
===== Download all pwgen packages =====<br />
agetpkg -g -a pwgen<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
You can use [https://www.archlinux.org/packages/extra/any/agetpkg/ agetpkg] to easily download a specific package version from the Archive.<br />
<br />
Or you can do it manually:<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Sources ==<br />
<br />
* [https://github.com/seblu/archivetools archivetools] -- Software to run an Archive server<br />
* [https://github.com/seblu/agetpkg agetpkg] -- Software to easy downgrade package from the Archive<br />
<br />
== Future plan ==<br />
<br />
* Move to official infrastructure.<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== History ==<br />
<br />
* New URL and closing the old ARM hierarchy on 2015-10-13. A new software, agetpkg was introduced.<br />
* The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
* The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=404456Arch Linux Archive2015-10-13T16:38:20Z<p>Seblu: typo</p>
<hr />
<div>[[Category:Package management]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''A'''rch '''L'''inux '''Archive''' (''a.k.a ala''), formerly known as ''Arch Linux Rollback Machine'' (''a.k.a ARM''), stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs'' across time.<br />
<br />
'''You can use it to'''<br />
* Downgrade to a previous version of one package (last version is broken, I want the previous one)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back 2 moths ago)<br />
* Find a previous version of an ISO image<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
The following locations listed below are now closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Directories ==<br />
<br />
The '''Archive''' is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like in the following example.<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
Note: The last 3 special directories ('''last''', '''week''' and '''month''') which links respectively to the last synced repository, to the last monday and to the first of the current month.<br />
<br />
=== /packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
An lightweight index, named [http://ala.seblu.net/packages/.all/index.0.xz index.0.xz] is available to list all package in once.<br />
<br />
=== /iso ===<br />
<br />
The [http://ala.seblu.net/iso iso] directory contains official ISO images and bootstrap tarballs sorted by release date.<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
<br />
You could do it manually<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Sources ==<br />
<br />
* [https://github.com/seblu/archivetools archivetools] -- Software to run an Archive server<br />
* [https://github.com/seblu/agetpkg agetpkg] -- Software to easy downgrade package from the Archive<br />
<br />
== Future plan ==<br />
<br />
* Move to official infrastructure.<br />
* Introduce agetpkg<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== History ==<br />
<br />
* New URL and closing the old ARM hierarchy on 2015-10-13. A new software, agetpkg was introduced.<br />
* The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
* The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=404431Arch Linux Archive2015-10-13T13:47:42Z<p>Seblu: </p>
<hr />
<div>[[Category:Package management]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''A'''rch '''L'''inux '''Archive''' (''a.k.a ala''), formerly known as ''Arch Linux Rollback Machine'' (''a.k.a ARM''), stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs' across time.<br />
<br />
'''You can use it to'''<br />
* Downgrade to a previous version of one package (last version is broken, I want the previous one)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back 2 moths ago)<br />
* Find a previous version of an ISO image<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
The following locations listed below are now closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Directories ==<br />
<br />
The '''Archive''' is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like in the following example.<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
Note: The last 3 special directories ('''last''', '''week''' and '''month''') which links respectively to the last synced repository, to the last monday and to the first of the current month.<br />
<br />
=== /packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
An lightweight index, named [http://ala.seblu.net/packages/.all/index.0.xz index.0.xz] is available to list all package in once.<br />
<br />
=== /iso ===<br />
<br />
The [http://ala.seblu.net/iso iso] directory contains official ISO images and bootstrap tarballs sorted by release date.<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
<br />
You could do it manually<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Sources ==<br />
<br />
* [https://github.com/seblu/archivetools archivetools] -- Software to run an Archive server<br />
* [https://github.com/seblu/agetpkg agetpkg] -- Software to easy downgrade package from the Archive<br />
<br />
== Future plan ==<br />
<br />
* Move to official infrastructure.<br />
* Introduce agetpkg<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== History ==<br />
<br />
* New URL and closing the old ARM hirarchy on 2015-10-13. A new software, agetpkg was introduced.<br />
* The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
* The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=404427Arch Linux Archive2015-10-13T13:41:25Z<p>Seblu: </p>
<hr />
<div>[[Category:Package management]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''A'''rch '''L'''inux '''Archive''' (''a.k.a ala''), formerly known as ''Arch Linux Rollback Machine'' (''a.k.a ARM''), stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs' across time.<br />
<br />
You can use it to:<br />
* Find a previous version of one package (last version is broken, I want the previous one)<br />
* Find an older version of a repository (I want to setup an Archlinux like 3 weeks ago)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back in time)<br />
* Downgrade because the last is broken (and you lost your cache).<br />
<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
The following locations listed below are now closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Directories ==<br />
<br />
The '''Archive''' is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like in the following example.<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
Note: The last 3 special directories ('''last''', '''week''' and '''month''') which links respectively to the last synced repository, to the last monday and to the first of the current month.<br />
<br />
=== /packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
An lightweight index, named [http://ala.seblu.net/packages/.all/index.0.xz index.0.xz] is available to list all package in once.<br />
<br />
=== /iso ===<br />
<br />
The [http://ala.seblu.net/iso iso] directory contains official ISO images and bootstrap tarballs sorted by release date.<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
<br />
You could do it manually<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Sources ==<br />
<br />
* [https://github.com/seblu/archivetools archivetools] -- Software to run an Archive server<br />
* [https://github.com/seblu/agetpkg agetpkg] -- Software to easy downgrade package from the Archive<br />
<br />
== Future plan ==<br />
<br />
* Move to official infrastructure.<br />
* Introduce agetpkg<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== History ==<br />
<br />
* New URL and closing the old ARM hirarchy on 2015-10-13. A new software, agetpkg was introduced.<br />
* The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
* The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Downgrading_packages&diff=404425Downgrading packages2015-10-13T13:39:48Z<p>Seblu: </p>
<hr />
<div>[[Category:Package management]]<br />
[[cs:Downgrading packages]]<br />
[[de:Ältere Paketversion installieren (Downgrade)]]<br />
[[es:Downgrading packages]]<br />
[[fa:دانگرید]]<br />
[[fr:Downgrade]]<br />
[[it:Downgrading packages]]<br />
[[ja:パッケージのダウングレード]]<br />
[[ru:Downgrading packages]]<br />
[[sk:Downgrading packages]]<br />
[[tr:Paket sürümünü düşürmek]]<br />
[[uk:Downgrading packages]]<br />
[[zh-cn:Downgrading packages]]<br />
{{Related articles start}}<br />
{{Related|Arch Build System}}<br />
{{Related|makepkg}}<br />
{{Related|pacman}}<br />
{{Related|Arch Linux Archive}}<br />
{{Related articles end}}<br />
{{Expansion|soname bumps}}<br />
<br />
Before downgrading a single or multiple packages, consider why you wish to do so. If it is due to a bug, search the [https://bugs.archlinux.org/ Bugtracker] for existing tasks. If there is none, add a new task; it is better to correct bugs, or at least warn other users of possible issues.<br />
<br />
{{Warning|<br />
* Downgrading one package may require that its dependencies be downgraded as well. When the number of packages to downgrade is large, it may be simpler to re-install the system, especially for fundamental OS components.<br />
* Be careful with changes to configuration files and scripts. For now pacman will handle this for us, as long as we do not bypass its safeguards.<br />
}}<br />
<br />
== Return to an earlier package version ==<br />
<br />
=== Using the pacman cache ===<br />
<br />
If a package was installed at an earlier stage, and the [[Pacman#Cleaning_the_package_cache|pacman cache]] was not cleaned, install an earlier version from {{ic|/var/cache/pacman/pkg/}}.<br />
<br />
This process will remove the current package and install the older version. Dependency changes will be handled, but [[pacman]] will not handle version conflicts. If a library or other package needs to be downgraded with the packages, please be aware that you will have to downgrade this package yourself as well.<br />
<br />
# cd /var/cache/pacman/pkg/<br />
# pacman -U <file_name_of_the_package><br />
<br />
See [[Pacman#Skip package from being upgraded]] to keep the lower package version.<br />
<br />
=== Downgrading the kernel ===<br />
<br />
If you are unable to boot after a kernel update, then you can downgrade the kernel via a live CD. Use a fairly recent Arch Linux installation medium. Once it has booted, mount the partition where your system is installed to {{ic|/mnt}}, and if you have {{ic|/boot}} or {{ic|/var}} on separate partitions, mount them there as well (e.g. {{ic|mount /dev/sdc3 /mnt/boot}}). Then [[chroot]] into the system:<br />
<br />
# arch-chroot /mnt /bin/bash<br />
<br />
Here you can go to {{ic|/var/cache/pacman/pkg}} and downgrade the packages. At least downgrade {{Pkg|linux}}, {{Pkg|linux-headers}} and any kernel modules. For example:<br />
<br />
# pacman -U linux-3.5.6-1-x86_64.pkg.tar.xz linux-headers-3.5.6-1-x86_64.pkg.tar.xz virtualbox-host-modules-4.2.0-5-x86_64.pkg.tar.xz<br />
<br />
Exit the chroot (with {{ic|exit}}), reboot and you should be done.<br />
<br />
=== Arch Linux Archive ===<br />
<br />
The [[Arch Linux Archive]] is a daily snapshot of the [[official repositories]].<br />
<br />
The ''ALA'' can be used to install a previous package version, or restore the system to an earlier date.<br />
<br />
=== Rebuild the package ===<br />
<br />
If the package is unavailable, find the correct [[PKGBUILD]] and rebuild it with [[makepkg]].<br />
<br />
For packages from the [[official repositories]], retrieve the PKGBUILD with [[ABS]] and change the software version. Alternatively, find the package on the [https://www.archlinux.org/packages Packages] website, click "View Changes", and navigate to the desired version. The files are available through a {{ic|.tar.gz}} snapshot, and via the ''Tree'' view.<br />
<br />
See also [[Getting PKGBUILDS From SVN#Checkout an older revision of a package]].<br />
<br />
Old AUR packages can be obtained from [http://pkgbuild.com/git/aur-mirror.git/ aur-mirror]. See [[Arch User Repository#Git repositories for AUR3 packages]] for details.<br />
<br />
=== Using the downgrade script ===<br />
<br />
The {{AUR|downgrade}} package is a Bash script to downgrade one (or multiple) packages, by using the pacman cache or the [[Arch Rollback Machine]]. See {{ic|man downgrade}} for details.<br />
<br />
Another tool is {{AUR|downgrader}}, which supports the pacman log, can downgrade packages from ARM and local cache, and handle package lists. This tool may be particularly useful to identify problematic packages.<br />
<br />
== Return from [testing] ==<br />
<br />
See [[Official repositories#Disabling testing repositories]].</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=404424Arch Linux Archive2015-10-13T13:38:31Z<p>Seblu: </p>
<hr />
<div>[[Category:Package management]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The '''A'''rch '''L'''inux '''Archive''' (''a.k.a ala''), formerly known as ''Arch Linux Rollback Machine'' (''a.k.a ARM''), stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs' across time.<br />
<br />
You can use it to:<br />
* Find a previous version of one package (last version is broken, I want the previous one)<br />
* Find an older version of a repository (I want to setup an Archlinux like 3 weeks ago)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back in time)<br />
* Downgrade because the last is broken (and you lost your cache).<br />
<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
The following locations listed below are now closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Directories ==<br />
<br />
The '''Archive''' is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like in the following example.<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
Note: The last 3 special directories ('''last''', '''week''' and '''month''') which links respectively to the last synced repository, to the last monday and to the first of the current month.<br />
<br />
=== /packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
An lightweight index, named [http://ala.seblu.net/packages/.all/index.0.xz index.0.xz] is available to list all package in once.<br />
<br />
=== /iso ===<br />
<br />
The [http://ala.seblu.net/iso iso] directory contains official ISO images and bootstrap tarballs sorted by release date.<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
<br />
You could do it manually<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Sources ==<br />
<br />
* [https://github.com/seblu/archivetools archivetools] -- Software to run an Archive server<br />
* [https://github.com/seblu/agetpkg agetpkg] -- Software to easy downgrade package from the Archive<br />
<br />
== Future plan ==<br />
<br />
* Move to official infrastructure.<br />
* Introduce agetpkg<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== History ==<br />
<br />
The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
<br />
The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Talk:Archive&diff=404422Talk:Archive2015-10-13T13:36:40Z<p>Seblu: Seblu moved page Talk:Archive to Talk:Arch Linux Archive</p>
<hr />
<div>#REDIRECT [[Talk:Arch Linux Archive]]</div>Sebluhttps://wiki.archlinux.org/index.php?title=Talk:Arch_Linux_Archive&diff=404421Talk:Arch Linux Archive2015-10-13T13:36:40Z<p>Seblu: Seblu moved page Talk:Archive to Talk:Arch Linux Archive</p>
<hr />
<div>== Merging with Arch Rollback Machine article == <br />
This is to note that a discussion how to merge duplicate content of this article has been started at [[Talk:Arch Rollback Machine#Archive]]. If interested, please contribute there. --[[User:Indigo|Indigo]] ([[User talk:Indigo|talk]]) 11:47, 2 July 2015 (UTC)</div>Sebluhttps://wiki.archlinux.org/index.php?title=Archive&diff=404420Archive2015-10-13T13:36:40Z<p>Seblu: Seblu moved page Archive to Arch Linux Archive</p>
<hr />
<div>#REDIRECT [[Arch Linux Archive]]</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=404419Arch Linux Archive2015-10-13T13:36:40Z<p>Seblu: Seblu moved page Archive to Arch Linux Archive</p>
<hr />
<div>[[Category:Package management]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The Arch Linux '''Archive''', formerly known as ''Arch Linux Rollback Machine'', stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs' across time. This can be considered as an Arch Linux Museum.<br />
<br />
You can use it to:<br />
* Find a previous version of one package (last version is broken, I want the previous one)<br />
* Find an older version of a repository (I want to setup an Archlinux like 3 weeks ago)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back in time)<br />
* Downgrade because the last is broken (and you lost your cache).<br />
<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
The following locations listed below are now closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Directories ==<br />
<br />
The '''Archive''' is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like in the following example.<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
Note: The last 3 special directories ('''last''', '''week''' and '''month''') which links respectively to the last synced repository, to the last monday and to the first of the current month.<br />
<br />
=== /packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
An lightweight index, named [http://ala.seblu.net/packages/.all/index.0.xz index.0.xz] is available to list all package in once.<br />
<br />
=== /iso ===<br />
<br />
The [http://ala.seblu.net/iso iso] directory contains official ISO images and bootstrap tarballs sorted by release date.<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
<br />
You could do it manually<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Sources ==<br />
<br />
* [https://github.com/seblu/archivetools archivetools] -- Software to run an Archive server<br />
* [https://github.com/seblu/agetpkg agetpkg] -- Software to easy downgrade package from the Archive<br />
<br />
== Future plan ==<br />
<br />
* Move to official infrastructure.<br />
* Introduce agetpkg<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== History ==<br />
<br />
The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
<br />
The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Rollback_Machine&diff=404418Arch Rollback Machine2015-10-13T13:35:00Z<p>Seblu: Redirected page to Archive</p>
<hr />
<div>#REDIRECT [[Archive]]</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=404417Arch Linux Archive2015-10-13T13:33:57Z<p>Seblu: </p>
<hr />
<div>[[Category:Package management]]<br />
{{Related articles start}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The Arch Linux '''Archive''', formerly known as ''Arch Linux Rollback Machine'', stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs' across time. This can be considered as an Arch Linux Museum.<br />
<br />
You can use it to:<br />
* Find a previous version of one package (last version is broken, I want the previous one)<br />
* Find an older version of a repository (I want to setup an Archlinux like 3 weeks ago)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back in time)<br />
* Downgrade because the last is broken (and you lost your cache).<br />
<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
The following locations listed below are now closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Directories ==<br />
<br />
The '''Archive''' is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== /repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like in the following example.<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
├── 2014<br />
│ ├── 01<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 02<br />
│ ├── 03<br />
│ ├── ...<br />
│ └── 09<br />
│ ├── 01<br />
│ ├── ...<br />
│ └── 28<br />
├── last<br />
├── month<br />
└── week<br />
<br />
Note: The last 3 special directories ('''last''', '''week''' and '''month''') which links respectively to the last synced repository, to the last monday and to the first of the current month.<br />
<br />
=== /packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
An lightweight index, named [http://ala.seblu.net/packages/.all/index.0.xz index.0.xz] is available to list all package in once.<br />
<br />
=== /iso ===<br />
<br />
The [http://ala.seblu.net/iso iso] directory contains official ISO images and bootstrap tarballs sorted by release date.<br />
<br />
├── 2014.09.03<br />
├── 2014.10.01<br />
├── 2014.11.01<br />
├── 2014.12.01<br />
├── 2015.07.01<br />
├── 2015.08.01<br />
├── 2015.09.01<br />
└── 2015.10.01<br />
├── arch<br />
├── archlinux-2015.10.01-dual.iso<br />
├── archlinux-2015.10.01-dual.iso.sig<br />
├── archlinux-2015.10.01-dual.iso.torrent<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz<br />
├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig<br />
├── md5sums.txt<br />
└── sha1sums.txt<br />
<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
<br />
You could do it manually<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== Sources ==<br />
<br />
* [https://github.com/seblu/archivetools archivetools] -- Software to run an Archive server<br />
* [https://github.com/seblu/agetpkg agetpkg] -- Software to easy downgrade package from the Archive<br />
<br />
== Future plan ==<br />
<br />
* Move to official infrastructure.<br />
* Introduce agetpkg<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== History ==<br />
<br />
The original ARM (''Archlinux Rollback Machine'') was closed on 2013-08-18 [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360].<br />
<br />
The new one is hosted on [http://seblu.net seblu.net] since 2013-08-31.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Arch_Linux_Archive&diff=404409Arch Linux Archive2015-10-13T13:07:10Z<p>Seblu: Moving to new url</p>
<hr />
<div>[[Category:Package management]]<br />
{{Related articles start}}<br />
{{Related|Arch Rollback Machine}}<br />
{{Related|Downgrading packages}}<br />
{{Related articles end}}<br />
<br />
The Arch Linux '''Archive''', formerly known as ''Arch Linux Rollback Machine'', stores ''official repositories snapshots'', ''iso images'' and ''bootstrap tarballs' across time. This can be considered as an Arch Linux Museum.<br />
<br />
You can use it to:<br />
* Find a previous version of one package (last version is broken, I want the previous one)<br />
* Find an older version of a repository (I want to setup an Archlinux like 3 weeks ago)<br />
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back in time)<br />
* Downgrade because the last is broken (and you lost your cache).<br />
<br />
== Location ==<br />
<br />
The Arch Linux Archive is currently available at http://ala.seblu.net/.<br />
<br />
Previous locations listed below are deprecated and will be closed soon:<br />
* http://seblu.net/a/archive<br />
* ftp://seblu.net/archlinux/archive<br />
<br />
Older locations listed below are already closed:<br />
* http://seblu.net/a/arm<br />
* ftp://seblu.net/archlinux/arm<br />
<br />
== Hierarchy ==<br />
<br />
The Archive is split into 3 main directories detailed below.<br />
<br />
├── iso<br />
├── packages<br />
└── repos<br />
<br />
=== repos ===<br />
<br />
The [http://ala.seblu.net/repos repos] directory contains daily snapshots of official mirror organized by date like the following<br />
<br />
repos<br />
├── 2013<br />
│ ├── 08<br />
│ │ └── 31<br />
│ │ ├── community<br />
│ │ ├── community-staging<br />
│ │ ├── community-testing<br />
│ │ ├── core<br />
│ │ ├── extra<br />
│ │ ├── gnome-unstable<br />
│ │ ├── kde-unstable<br />
│ │ ├── lastsync<br />
│ │ ├── multilib<br />
│ │ ├── multilib-staging<br />
│ │ ├── multilib-testing<br />
│ │ ├── pool<br />
│ │ ├── staging<br />
│ │ └── testing<br />
│ ├── 09<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │ ├── 21<br />
│ │ └── 22<br />
│ ├── 10<br />
│ │ ├── 01<br />
│ │ ├── 02<br />
│ │ ├── ...<br />
│ │<br />
│ ├── 11<br />
│ └── 12<br />
└── 2014<br />
├── 01<br />
│ ├── 01<br />
│ ├── 02<br />
│ ├── ...<br />
│<br />
├── 02<br />
├── 03<br />
├── ...<br />
└── 09<br />
├── 01<br />
├── ...<br />
└── 28<br />
<br />
=== packages ===<br />
<br />
The [http://ala.seblu.net/packages packages] directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.<br />
<br />
├── packages<br />
│ ├── a<br />
│ │ ├── awesome<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig<br />
│ │ │ ├── ...<br />
│ │ │ <br />
│ │ ├── ...<br />
│ │ ├── awstats<br />
│ │ └── axel<br />
│ │ <br />
│ ├── b<br />
│ ├── ...<br />
│ └── z<br />
<br />
You can use the magic subdirectory [http://ala.seblu.net/packages/.all .all] to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.<br />
<br />
├── packages<br />
│ ├── .all<br />
│ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz<br />
│ │ ├── ...<br />
│ │ ├── zsh-5.0.2-3-i686.pkg.tar.xz<br />
│ │ ├── zsh-5.0.2-4-i686.pkg.tar.xz<br />
│ │ └── ...<br />
<br />
== FAQ ==<br />
<br />
=== How to downgrade one package ===<br />
<br />
<br />
You could do it manually<br />
<br />
# Run your favorite internet browser and go to http://ala.seblu.net/packages;<br />
# Go to the package you need and download it;<br />
# Run {{Ic|pacman -U ''pkgname''.pkg.tar.xz}} as root.<br />
<br />
=== How to restore all my packages at a specific date ===<br />
<br />
To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck [[pacman]] at this date, by editing your {{ic|/etc/pacman.conf}} and use the following server directive:<br />
<br />
{{bc|<nowiki><br />
[core]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[extra]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
<br />
[community]<br />
SigLevel = PackageRequired<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
or by replace your {{ic|/etc/pacman.d/mirrorlist}} by the following content:<br />
<br />
{{bc|<nowiki><br />
## <br />
## Arch Linux repository mirrorlist <br />
## Generated on 2042-01-01 <br />
##<br />
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch<br />
</nowiki>}}<br />
<br />
Then update the database and force downgrade:<br />
# pacman -Syyuu<br />
<br />
{{Note|It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.}}<br />
<br />
== TODO ==<br />
<br />
* Move to official infrastructure.<br />
* Automatic clean-up after a defined amount of time?<br />
* Archive more stuff?<br />
<br />
== Sources ==<br />
<br />
You can find the archive code here: https://github.com/seblu/archivetools<br />
You can find the agetpkg code here: https://github.com/seblu/agetpkg</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:UID_/_GID_Database&diff=391253DeveloperWiki:UID / GID Database2015-08-15T17:34:20Z<p>Seblu: </p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
This is intended to be a starting point for creating standard uid and gid numbers.<br />
<br />
I really think this should be moved directly into arch at some point and just have a a keyword in PKGBUILD like<br />
<br />
require_user('user1' 'user2')<br />
require_group('group1')<br />
<br />
and if they didn't exist they would be created according to this database by makepkg when building or by pacman when installing.<br />
<br />
Actually, for this to work, we will need to add the primary and secondary groups to the database as well.<br />
<br />
==Users==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package !! User Name !! UID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || mail || 8<br />
|-<br />
| || news || 9<br />
|-<br />
| || uucp || 10<br />
|-<br />
| || ftp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| || slocate || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| || nut || 55<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || dnslog || 60<br />
|-<br />
| || dnscache || 61<br />
|-<br />
| || tinydns || 62<br />
|-<br />
| || axfrdns || 63<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || fax || 69<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| || postfix || 73<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vpopmail || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| || fetchmail || 90<br />
|-<br />
| || smtpd || 91<br />
|-<br />
| || smtpq || 92<br />
|-<br />
| || smtpf || 93<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc (deprecated, now dynamic) || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || alias || 7790<br />
|-<br />
| || qmaild || 7791<br />
|-<br />
| || qmaill || 7792<br />
|-<br />
| || qmailp || 7793<br />
|-<br />
| || qmailq || 7794<br />
|-<br />
| || qmailr || 7795<br />
|-<br />
| || qmails || 7796<br />
|}<br />
<br />
==Groups==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package || Group Name !! GID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || sys || 3<br />
|-<br />
| {{pkg|filesystem}} || adm || 4<br />
|-<br />
| {{pkg|filesystem}} || tty || 5<br />
|-<br />
| {{pkg|filesystem}} || disk || 6<br />
|-<br />
| {{pkg|filesystem}} || lp || 7<br />
|-<br />
| {{pkg|filesystem}} || mem || 8<br />
|-<br />
| {{pkg|filesystem}} || kmem || 9<br />
|-<br />
| {{pkg|filesystem}} || wheel || 10<br />
|-<br />
| {{pkg|filesystem}} || ftp || 11<br />
|-<br />
| {{pkg|filesystem}} || mail || 12<br />
|-<br />
| || news || 13<br />
|-<br />
| {{pkg|filesystem}} || uucp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| {{pkg|filesystem}} || log || 19<br />
|-<br />
| {{pkg|filesystem}} || utmp || 20<br />
|-<br />
| {{pkg|filesystem}} || locate (ex slocate/mlocate/rlocate) || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| {{pkg|filesystem}} || rfkill || 24<br />
|-<br />
| {{pkg|filesystem}} || smmsp || 25<br />
|-<br />
| {{pkg|filesystem}} || proc || 26<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| {{pkg|filesystem}} || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| {{pkg|filesystem}} || games || 50<br />
|-<br />
| {{pkg|filesystem}} || lock || 54<br />
|-<br />
| || nut || 55<br />
|-<br />
| || bumblebee || 56<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| || postdrop || 75<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || kvm || 78<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vchkpw || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| {{pkg|filesystem}} || network || 90<br />
|-<br />
| {{pkg|filesystem}} || video || 91<br />
|-<br />
| {{pkg|filesystem}} || audio || 92<br />
|-<br />
| {{pkg|filesystem}} || optical || 93<br />
|-<br />
| {{pkg|filesystem}} || floppy || 94<br />
|-<br />
| {{pkg|filesystem}} || storage || 95<br />
|-<br />
| {{pkg|filesystem}} || scanner || 96<br />
|-<br />
| {{pkg|filesystem}} || input || 97<br />
|-<br />
| {{pkg|filesystem}} || power || 98<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|filesystem}} || users || 100<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || vboxusers || 108<br />
|-<br />
| || vboxsf || 109<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| {{pkg|colord}} || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || vlock || 129<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || pulse-access || 131<br />
|-<br />
| || pulse-rt || 132<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc (deprecated, now dynamic) || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || docker (deprecated, now dynamic) || 142<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| || smtpd || 145<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|wireshark-cli}} || wireshark || 150<br />
|-<br />
| || cgred || 160<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal || 190<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| {{pkg|grsec-common}} || tpe || 200<br />
|-<br />
| {{pkg|grsec-common}} || audit || 201<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-all || 202<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-client || 203<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-server || 204<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || qmail || 2107<br />
|-<br />
| || nofiles || 2108<br />
|}</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:UID_/_GID_Database&diff=391252DeveloperWiki:UID / GID Database2015-08-15T17:33:06Z<p>Seblu: Reverted edits by Seblu (talk) to last revision by Thestinger</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
This is intended to be a starting point for creating standard uid and gid numbers.<br />
<br />
I really think this should be moved directly into arch at some point and just have a a keyword in PKGBUILD like<br />
<br />
require_user('user1' 'user2')<br />
require_group('group1')<br />
<br />
and if they didn't exist they would be created according to this database by makepkg when building or by pacman when installing.<br />
<br />
Actually, for this to work, we will need to add the primary and secondary groups to the database as well.<br />
<br />
==Users==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package !! User Name !! UID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || mail || 8<br />
|-<br />
| || news || 9<br />
|-<br />
| || uucp || 10<br />
|-<br />
| || ftp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| || slocate || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| || nut || 55<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || dnslog || 60<br />
|-<br />
| || dnscache || 61<br />
|-<br />
| || tinydns || 62<br />
|-<br />
| || axfrdns || 63<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || fax || 69<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| || postfix || 73<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vpopmail || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| || fetchmail || 90<br />
|-<br />
| || smtpd || 91<br />
|-<br />
| || smtpq || 92<br />
|-<br />
| || smtpf || 93<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || alias || 7790<br />
|-<br />
| || qmaild || 7791<br />
|-<br />
| || qmaill || 7792<br />
|-<br />
| || qmailp || 7793<br />
|-<br />
| || qmailq || 7794<br />
|-<br />
| || qmailr || 7795<br />
|-<br />
| || qmails || 7796<br />
|}<br />
<br />
==Groups==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package || Group Name !! GID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || sys || 3<br />
|-<br />
| {{pkg|filesystem}} || adm || 4<br />
|-<br />
| {{pkg|filesystem}} || tty || 5<br />
|-<br />
| {{pkg|filesystem}} || disk || 6<br />
|-<br />
| {{pkg|filesystem}} || lp || 7<br />
|-<br />
| {{pkg|filesystem}} || mem || 8<br />
|-<br />
| {{pkg|filesystem}} || kmem || 9<br />
|-<br />
| {{pkg|filesystem}} || wheel || 10<br />
|-<br />
| {{pkg|filesystem}} || ftp || 11<br />
|-<br />
| {{pkg|filesystem}} || mail || 12<br />
|-<br />
| || news || 13<br />
|-<br />
| {{pkg|filesystem}} || uucp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| {{pkg|filesystem}} || log || 19<br />
|-<br />
| {{pkg|filesystem}} || utmp || 20<br />
|-<br />
| {{pkg|filesystem}} || locate (ex slocate/mlocate/rlocate) || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| {{pkg|filesystem}} || rfkill || 24<br />
|-<br />
| {{pkg|filesystem}} || smmsp || 25<br />
|-<br />
| {{pkg|filesystem}} || proc || 26<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| {{pkg|filesystem}} || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| {{pkg|filesystem}} || games || 50<br />
|-<br />
| {{pkg|filesystem}} || lock || 54<br />
|-<br />
| || nut || 55<br />
|-<br />
| || bumblebee || 56<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| || postdrop || 75<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || kvm || 78<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vchkpw || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| {{pkg|filesystem}} || network || 90<br />
|-<br />
| {{pkg|filesystem}} || video || 91<br />
|-<br />
| {{pkg|filesystem}} || audio || 92<br />
|-<br />
| {{pkg|filesystem}} || optical || 93<br />
|-<br />
| {{pkg|filesystem}} || floppy || 94<br />
|-<br />
| {{pkg|filesystem}} || storage || 95<br />
|-<br />
| {{pkg|filesystem}} || scanner || 96<br />
|-<br />
| {{pkg|filesystem}} || input || 97<br />
|-<br />
| {{pkg|filesystem}} || power || 98<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|filesystem}} || users || 100<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || vboxusers || 108<br />
|-<br />
| || vboxsf || 109<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| {{pkg|colord}} || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || vlock || 129<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || pulse-access || 131<br />
|-<br />
| || pulse-rt || 132<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || docker || 142<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| || smtpd || 145<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|wireshark-cli}} || wireshark || 150<br />
|-<br />
| || cgred || 160<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal || 190<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| {{pkg|grsec-common}} || tpe || 200<br />
|-<br />
| {{pkg|grsec-common}} || audit || 201<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-all || 202<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-client || 203<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-server || 204<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || qmail || 2107<br />
|-<br />
| || nofiles || 2108<br />
|}</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:UID_/_GID_Database&diff=391249DeveloperWiki:UID / GID Database2015-08-15T17:08:15Z<p>Seblu: remove docker reservation, dynamic is fine</p>
<hr />
<div>[[Category:DeveloperWiki]]<br />
This is intended to be a starting point for creating standard uid and gid numbers.<br />
<br />
I really think this should be moved directly into arch at some point and just have a a keyword in PKGBUILD like<br />
<br />
require_user('user1' 'user2')<br />
require_group('group1')<br />
<br />
and if they didn't exist they would be created according to this database by makepkg when building or by pacman when installing.<br />
<br />
Actually, for this to work, we will need to add the primary and secondary groups to the database as well.<br />
<br />
==Users==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package !! User Name !! UID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || mail || 8<br />
|-<br />
| || news || 9<br />
|-<br />
| || uucp || 10<br />
|-<br />
| || ftp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| || slocate || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| || nut || 55<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || dnslog || 60<br />
|-<br />
| || dnscache || 61<br />
|-<br />
| || tinydns || 62<br />
|-<br />
| || axfrdns || 63<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || fax || 69<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| || postfix || 73<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vpopmail || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| || fetchmail || 90<br />
|-<br />
| || smtpd || 91<br />
|-<br />
| || smtpq || 92<br />
|-<br />
| || smtpf || 93<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || alias || 7790<br />
|-<br />
| || qmaild || 7791<br />
|-<br />
| || qmaill || 7792<br />
|-<br />
| || qmailp || 7793<br />
|-<br />
| || qmailq || 7794<br />
|-<br />
| || qmailr || 7795<br />
|-<br />
| || qmails || 7796<br />
|}<br />
<br />
==Groups==<br />
<br />
{| border="1" cellpadding="4" cellspacing="0"<br />
! Owning Package || Group Name !! GID<br />
|-<br />
| {{pkg|filesystem}} || root || 0<br />
|-<br />
| {{pkg|filesystem}} || bin || 1<br />
|-<br />
| {{pkg|filesystem}} || daemon || 2<br />
|-<br />
| {{pkg|filesystem}} || sys || 3<br />
|-<br />
| {{pkg|filesystem}} || adm || 4<br />
|-<br />
| {{pkg|filesystem}} || tty || 5<br />
|-<br />
| {{pkg|filesystem}} || disk || 6<br />
|-<br />
| {{pkg|filesystem}} || lp || 7<br />
|-<br />
| {{pkg|filesystem}} || mem || 8<br />
|-<br />
| {{pkg|filesystem}} || kmem || 9<br />
|-<br />
| {{pkg|filesystem}} || wheel || 10<br />
|-<br />
| {{pkg|filesystem}} || ftp || 11<br />
|-<br />
| {{pkg|filesystem}} || mail || 12<br />
|-<br />
| || news || 13<br />
|-<br />
| {{pkg|filesystem}} || uucp || 14<br />
|-<br />
| || proxy || 15<br />
|-<br />
| || stunnel || 16<br />
|-<br />
| || jabber || 17<br />
|-<br />
| || osiris || 18<br />
|-<br />
| {{pkg|filesystem}} || log || 19<br />
|-<br />
| {{pkg|filesystem}} || utmp || 20<br />
|-<br />
| {{pkg|filesystem}} || locate (ex slocate/mlocate/rlocate) || 21<br />
|-<br />
| || cron || 22<br />
|-<br />
| || fcron || 23<br />
|-<br />
| {{pkg|filesystem}} || rfkill || 24<br />
|-<br />
| {{pkg|filesystem}} || smmsp || 25<br />
|-<br />
| {{pkg|filesystem}} || proc || 26<br />
|-<br />
| || snort || 29<br />
|-<br />
| || nagios (coming soon) || 30<br />
|-<br />
| || nrpe || 31<br />
|-<br />
| {{pkg|rpcbind}} || rpc || 32<br />
|-<br />
| {{pkg|filesystem}} || http || 33<br />
|-<br />
| || named || 40<br />
|-<br />
| || privoxy || 42<br />
|-<br />
| {{pkg|tor}} || tor || 43<br />
|-<br />
| {{pkg|nbd}} || nbd|| 44<br />
|-<br />
| || mpd || 45<br />
|-<br />
| || mopidy || 46<br />
|-<br />
| {{pkg|filesystem}} || games || 50<br />
|-<br />
| {{pkg|filesystem}} || lock || 54<br />
|-<br />
| || nut || 55<br />
|-<br />
| || bumblebee || 56<br />
|-<br />
| || tomcat8 || 57<br />
|-<br />
| || rbldns || 58<br />
|-<br />
| || rbldnszones || 59<br />
|-<br />
| || clamav || 64<br />
|-<br />
| || bitlbee || 65<br />
|-<br />
| || tomcat6 || 66<br />
|-<br />
| || minbif || 67<br />
|-<br />
| {{pkg|filesystem}} || uuidd || 68<br />
|-<br />
| || cyrus || 70<br />
|-<br />
| || tomcat7 || 71<br />
|-<br />
| || courier || 72<br />
|-<br />
| {{pkg|dovecot}} || dovenull || 74<br />
|-<br />
| || postdrop || 75<br />
|-<br />
| {{pkg|dovecot}} || dovecot || 76<br />
|-<br />
| || asterisk || 77<br />
|-<br />
| || kvm || 78<br />
|-<br />
| || exim || 79<br />
|-<br />
| || vchkpw || 80<br />
|-<br />
| {{pkg|filesystem}} || dbus || 81<br />
|-<br />
| || nsvsd || 83<br />
|-<br />
| || avahi || 84<br />
|-<br />
| || nx || 85<br />
|-<br />
| || beaglidx || 86<br />
|-<br />
| {{pkg|ntp}} || ntp || 87<br />
|-<br />
| || postgres || 88<br />
|-<br />
| || mysql || 89<br />
|-<br />
| {{pkg|filesystem}} || network || 90<br />
|-<br />
| {{pkg|filesystem}} || video || 91<br />
|-<br />
| {{pkg|filesystem}} || audio || 92<br />
|-<br />
| {{pkg|filesystem}} || optical || 93<br />
|-<br />
| {{pkg|filesystem}} || floppy || 94<br />
|-<br />
| {{pkg|filesystem}} || storage || 95<br />
|-<br />
| {{pkg|filesystem}} || scanner || 96<br />
|-<br />
| {{pkg|filesystem}} || input || 97<br />
|-<br />
| {{pkg|filesystem}} || power || 98<br />
|-<br />
| {{pkg|filesystem}} || nobody || 99<br />
|-<br />
| {{pkg|filesystem}} || users || 100<br />
|-<br />
| {{pkg|polkit}} || polkitd || 102<br />
|-<br />
| || nm-openconnect || 104<br />
|-<br />
| || cherokee || 106<br />
|-<br />
| || vboxusers || 108<br />
|-<br />
| || vboxsf || 109<br />
|-<br />
| || partimag || 110<br />
|-<br />
| {{pkg|x2goserver}} || x2gouser || 111<br />
|-<br />
| {{pkg|x2goserver}} || x2goprint || 112<br />
|-<br />
| || unifi || 113<br />
|-<br />
| || gdm || 120<br />
|-<br />
| || lxdm || 121<br />
|-<br />
| || murmurd || 122<br />
|-<br />
| {{pkg|colord}} || colord || 124<br />
|-<br />
| || deluge || 125<br />
|-<br />
| || backuppc || 126<br />
|-<br />
| || lldpd || 127<br />
|-<br />
| || vlock || 129<br />
|-<br />
| || pulse || 130<br />
|-<br />
| || pulse-access || 131<br />
|-<br />
| || pulse-rt || 132<br />
|-<br />
| || rtkit || 133<br />
|-<br />
| || kdm || 135<br />
|-<br />
| || znc || 136<br />
|-<br />
| || usbmux || 140<br />
|-<br />
| || salt || 141<br />
|-<br />
| || nvidia-persistenced || 143<br />
|-<br />
| || smtpd || 145<br />
|-<br />
| {{pkg|nss-pam-ldapd}}|| nslcd || 146<br />
|-<br />
| {{pkg|wireshark-cli}} || wireshark || 150<br />
|-<br />
| || cgred || 160<br />
|-<br />
| {{pkg|transmission-cli}} || transmission || 169<br />
|-<br />
| || postfwd || 180<br />
|-<br />
| || smokeping || 181<br />
|-<br />
| || spamd || 182<br />
|-<br />
| {{pkg|chrony}} || chrony || 183<br />
|-<br />
| {{pkg|pdnsd}} || pdnsd || 184<br />
|-<br />
| {{pkg|polipo}} || polipo || 185<br />
|-<br />
| {{pkg|tinyproxy}} || tinyproxy || 186<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal || 190<br />
|-<br />
| {{pkg|filesystem}} || systemd-journal-gateway || 191<br />
|-<br />
| {{pkg|filesystem}} || systemd-timesync || 192<br />
|-<br />
| {{pkg|filesystem}} || systemd-network || 193<br />
|-<br />
| {{pkg|filesystem}} || systemd-bus-proxy || 194<br />
|-<br />
| {{pkg|filesystem}} || systemd-resolve || 195<br />
|-<br />
| {{pkg|gitolite}} || gitolite || 196<br />
|-<br />
| {{pkg|grsec-common}} || tpe || 200<br />
|-<br />
| {{pkg|grsec-common}} || audit || 201<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-all || 202<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-client || 203<br />
|-<br />
| {{pkg|grsec-common}} || socket-deny-server || 204<br />
|-<br />
| || ldap || 439<br />
|-<br />
| || oprofile || 492<br />
|-<br />
| || qmail || 2107<br />
|-<br />
| || nofiles || 2108<br />
|}</div>Sebluhttps://wiki.archlinux.org/index.php?title=Talk:ARM&diff=380679Talk:ARM2015-07-02T08:04:05Z<p>Seblu: /* ARM architecture */</p>
<hr />
<div>== ARM architecture ==<br />
<br />
ARM is far more commonly associated to [[:Category:ARM architecture]] than the Arch-specific Rollback Machine is. As such, I propose to change the redirect accordingly. See also [[Template_talk:About]]. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 16:12, 1 July 2015 (UTC)<br />
<br />
:+1 — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 03:16, 2 July 2015 (UTC)<br />
<br />
::Done, closing. [https://wiki.archlinux.org/index.php?title=ARM&type=revision&diff=380672&oldid=276516] -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 06:00, 2 July 2015 (UTC)<br />
<br />
: Even though ARM architecture is not officially supported, it's the right move. But we should keep a link to the Archlinux ARM from the new redirected one. — [[User:Seblu|Seblu]] ([[User talk:Seblu|talk]]) 03:16, 2 July 2015 (UTC)</div>Sebluhttps://wiki.archlinux.org/index.php?title=User:Seblu&diff=377377User:Seblu2015-06-04T00:32:34Z<p>Seblu: /* Should a daemon be automatically restarted when it fails? */</p>
<hr />
<div><br />
= Me =<br />
* My profile: https://www.archlinux.org/developers/#seblu<br />
* My website: https://seblu.net<br />
* My twitter: https://twitter.com/seblu42<br />
* My twister: @seblu<br />
* My GPG key fingerprint: B81B 051F 2D7F C867 AAFF 35A5 8DBD 63B8 2072 D77A<br />
<br />
= Packaging =<br />
<br />
== My repositories ==<br />
<br />
=== seblu repository ===<br />
<br />
Add this in your '''/etc/pacman.conf'''<br />
<pre><br />
[seblu]<br />
Server = http://seblu.net/a/$repo/$arch<br />
SigLevel = Required TrustedOnly<br />
</pre><br />
<br />
PKGBUILD can be found [https://github.com/seblu/archpkg here].<br />
<br />
=== ARM repository ===<br />
<br />
Instruction on a separate page: [[ARM]]<br />
<br />
== My Guidelines ==<br />
<br />
This is my guidelines that I try to apply in my packaging duties. <strike>Of course, everyone should follow them.</strike><br />
They come from my years of packaging for Archlinux.<br />
<br />
# Put all needed dependencies. You should not assume that another package has the same requirement and do the job for you. It can be dropped without notifying you.<br />
# Don't use versioned deps. That's a sad, but shared way of doing in Arch.<br />
# Quotes variables with spaces. In particular '''$scrdir''', '''$pkgdir'''. There is no allowed space in ''$pkgname'' and ''$pkgver''.<br />
# Use single quotes when there is no needs for double or back quotes. (e.g 'x86_64')<br />
# Don't '''cd''' in ''$srcdir'' at the beginning of '''prepare()''', '''build()''', '''package()'''. <u>It's a defacto standard</u>.<br />
# Don't use '''..''' (double dots) inside a path. In particular don't <code>cd "$srcdir"/linux; cd ..</code>. You will not go where you expect if ''linux'' was a symlink. <br />
# Use ''install'' instead of ''cp'' whenever possible.<br />
# Only <u>lowercase</u> in '''$pkgname'''<br />
# If upstream provides a signature, use it!<br />
# Never put '''base-devel''' as a dependency.<br />
# Don't use tab, use spaces.<br />
# No trailing whitespaces.<br />
# Comments are free.<br />
# Run '''namcap''' on your PKGBUILD and on your built package.<br />
# Run '''checkpkg''' after bumping a package to a new version.<br />
# Don't put informal messages in '''post_install()''' functions. Only mandatory messages. Howtos go into the wiki.<br />
# If you ship systemd unit files, name it lowercase.<br />
<br />
= FAQ =<br />
<br />
Here is '''my''' answers.<br />
<br />
== Should a daemon be automatically restarted when it fails? ==<br />
<br />
In a nutshell, this should be the last resort and not the default.<br />
<br />
The expected behavior for daemon is to do its job without crashing, and exit properly when it finishes.<br />
Unfortunately, bugs and others cosmic dusts cause software to misbehave.<br />
<br />
The question of making a daemon automatically restart will never come with a reliable one, but with a shaky daemon, more than once.<br />
And if it's not expensive to restart it automatically, maybe it's also a good idea to do the same for all daemons. Here we are.<br />
<br />
''From my experience'', most crashing '''daemons require user intervention before falling back to work'''.<br />
It can be caused by a misconfiguration (e.g upgrades, typo, ...), a programming error (leading to a segfault), missing libraries (packaging error), etc.<br />
So restarting it automatically, doesn't help much. Quite the opposite, it causes unneeded resources consumption (logs, forks) and make the debugging more difficult.<br />
<br />
'''Even worse''', restarting a daemon which fail may '''hides a degraded service'''.<br />
For example, when the service crashes for 20% of your customers because they have a back-quote in their login, or, it's damn slow because it restart twice before completing a task. There is plenty of errors that can be masked by a non-failing service, that's why '''a sane default is to not restart it''' when its creator didn't handle the case.<br />
<br />
Of course, there is poorly coded daemons, which require to be restarted frequently because they crash.<br />
In that case, auto-restart is an option. We have better things to do than restarting them manually.<br />
But this is not a default, '''it's targeted to a particular daemon''', which crash for a known reason. <br />
<br />
Some corner case may be found in vital daemons (e.g sshd), <u>which are required to get back the control of your host</u>.<br />
When you loose it, you cannot troubleshoot. In this case, restarting it may be a comforting behavior, albeit...<br />
<br />
As a consequence, I suggest to '''choose a default which doesn't try to make a non working daemon looks like a working one'''.<br />
If the administrator want it, let him override it.<br />
<br />
== Should I run Archlinux on my server? ==<br />
<br />
'''Yes''' it's a good idea to run Archlinux on your server but read this before:<br />
<br />
https://mailman.archlinux.org/pipermail/arch-general/2013-July/033791.html<br />
<br />
== How should I manage official kernel updates? ==<br />
<br />
=== Upgrading the kernel, you are in trouble! ===<br />
<br />
During its upgrade, the official kernel package (called '''linux''') removes (or replaces) modules in ''/lib/modules/$(uname -r)''. The running kernel ''$(uname -r)'' is still the same.<br />
As a consequence, you (or udev) cannot load kernel modules anymore. This may lead to difficult to track issues.<br />
So, '''you <u>should</u> reboot''' on your new kernel '''after each update'''.<br />
<br />
This is boring because:<br />
* This will downtime your service;<br />
* You're in the middle of something;<br />
* You don't need the new kernel now;<br />
* There is several updates by month;<br />
* It breaks your uptime. :)<br />
<br />
=== Reboot into your new kernel, you may go to hell ===<br />
<br />
Unadvertised users run only one Linux kernel on their computers. After an upgrade and a reboot, the computer might be "broken". This can be a consequence of a bug directly inside the kernel, or an error during the upgrade process.<br />
<br />
Archlinux official '''linux''' package doesn't provide you a correct solution for this. You workaround this by using the '''linux-lts''' kernel package to have a backup kernel (if your hardware is supported).<br />
<br />
=== A new hope (Episode IV) ===<br />
<br />
To fix the two previous issues, I suggest you a different approach.<br />
You could use a versioned kernel package like '''linux-seblu-3.x.y''' (you can find a copy in [https://seblu.net/a/seblu/x86_64/ my repository]).<br />
No package upgrades broke the module ABI and new versions are in a separate package.<br />
<br />
== Why [http://gist.io/5660494 ''Never use -Sy when installing!''] is wrong? ==<br />
<br />
''In a nutshell'': [http://gist.io/5660494 this article] misguides you.<br />
<br />
=== No versioned package ===<br />
<br />
The real issue behind all of this: '''We try to avoid version dependencies in Archlinux'''. Not that ''pacman'' cannot manage them.<br />
But developers decide to not use them when there is no strong needs. Mainly to:<br />
* Simplify the package maintenance (reduce the workload / the quantity of bug / etc);<br />
* Speed-up dependency computation.<br />
<br />
It's like that far before I joined the project, so don't blame me!<br />
<br />
Consequences: there is no way to know which packages needs to be updated when you upgrade another one.<br />
<br />
The safest and recommended way is: <u>When you upgrade or install a package, be sure that your whole system is up-to-date</u>. If not, some dependencies can be broken, like a library, a module, a database format, etc.<br />
<br />
In all case, be sure to have an upgraded system before report any issue in the bug report system.<br />
<br />
=== Why are you misguided? ===<br />
# Installing a new package don't pull the last version of an already installed library. When there is a soname bump, only the new installed software should be broken, and not your entire system. The running service should be fine. There are exceptions when versioned dependencies are used.<br />
# The cause is not the -y option. It's because your system was not upgraded before you install a new package.<br />
# That doesn't mean that you must upgrade the whole system each time you install a package. ''But if you don't understand why, do it.''<br />
# When you are using AUR packages or when your favorite desktop sync the database frequently (to show you the number of upgrades), you may break your system with -S. The -y option will not protect you.<br />
# Firefox is not linked against readline.<br />
# Core programs (bash, pacman, systemd) use versioned deps to prevent an unbootable operating system.<br />
# A loudly broken soft is better than a silent broken soft. Because you fix it quickly.<br />
# '''Upgrading the whole system is a dangerous operations''' (especially on servers). New software version could be bugged! A default policy to upgrade the whole system for each new installed package to prevent broken package is crazy.<br />
# Archlinux is not crap, it's targeted to power users.</div>Sebluhttps://wiki.archlinux.org/index.php?title=User:Seblu&diff=375321User:Seblu2015-05-26T23:36:07Z<p>Seblu: /* FAQ */</p>
<hr />
<div><br />
= Me =<br />
* My profile: https://www.archlinux.org/developers/#seblu<br />
* My website: https://seblu.net<br />
* My twitter: https://twitter.com/seblu42<br />
* My twister: @seblu<br />
* My GPG key fingerprint: B81B 051F 2D7F C867 AAFF 35A5 8DBD 63B8 2072 D77A<br />
<br />
= Packaging =<br />
<br />
== My repositories ==<br />
<br />
=== seblu repository ===<br />
<br />
Add this in your '''/etc/pacman.conf'''<br />
<pre><br />
[seblu]<br />
Server = http://seblu.net/a/$repo/$arch<br />
SigLevel = Required TrustedOnly<br />
</pre><br />
<br />
PKGBUILD can be found [https://github.com/seblu/archpkg here].<br />
<br />
=== ARM repository ===<br />
<br />
Instruction on a separate page: [[ARM]]<br />
<br />
== My Guidelines ==<br />
<br />
This is my guidelines that I try to apply in my packaging duties. <strike>Of course, everyone should follow them.</strike><br />
They come from my years of packaging for Archlinux.<br />
<br />
# Put all needed dependencies. You should not assume that another package has the same requirement and do the job for you. It can be dropped without notifying you.<br />
# Don't use versioned deps. That's a sad, but shared way of doing in Arch.<br />
# Quotes variables with spaces. In particular '''$scrdir''', '''$pkgdir'''. There is no allowed space in ''$pkgname'' and ''$pkgver''.<br />
# Use single quotes when there is no needs for double or back quotes. (e.g 'x86_64')<br />
# Don't '''cd''' in ''$srcdir'' at the beginning of '''prepare()''', '''build()''', '''package()'''. <u>It's a defacto standard</u>.<br />
# Don't use '''..''' (double dots) inside a path. In particular don't <code>cd "$srcdir"/linux; cd ..</code>. You will not go where you expect if ''linux'' was a symlink. <br />
# Use ''install'' instead of ''cp'' whenever possible.<br />
# Only <u>lowercase</u> in '''$pkgname'''<br />
# If upstream provides a signature, use it!<br />
# Never put '''base-devel''' as a dependency.<br />
# Don't use tab, use spaces.<br />
# No trailing whitespaces.<br />
# Comments are free.<br />
# Run '''namcap''' on your PKGBUILD and on your built package.<br />
# Run '''checkpkg''' after bumping a package to a new version.<br />
# Don't put informal messages in '''post_install()''' functions. Only mandatory messages. Howtos go into the wiki.<br />
# If you ship systemd unit files, name it lowercase.<br />
<br />
= FAQ =<br />
<br />
Here is '''my''' answers.<br />
<br />
== Should a daemon be automatically restarted when it fails? ==<br />
<br />
In a nutshell, this should be the last resort and not the default.<br />
<br />
The expected behavior of a daemon is that it does its job without crashing, and exit properly when it finishes.<br />
Unfortunately, bugs and others cosmic dusts cause software to misbehave.<br />
<br />
This question will never be asked with a reliable daemon, but with a shaky one, more than once.<br />
And if it's not expensive to restart it automatically, maybe it's also a good idea to make it the default for reliable ones. Here we are.<br />
<br />
''From my experience'', most crashing '''daemons require user intervention before falling back to work'''.<br />
It can be caused by a misconfiguration (e.g upgrades, typo, ...), a programming error (leading to a segfault), missing libraries (packaging error), etc.<br />
So restarting it automatically, doesn't help much. Quite the opposite, it causes unneeded resources consumption (logs, forks) and make the debugging more difficult.<br />
<br />
'''Even worse''', restarting a daemon which fail may '''hides a degraded service'''.<br />
For example, when the service crashes for 20% of your customers because they have a back-quote in their login, or, it's damn slow because it restart twice before completing a task. There is plenty of errors that can be masked by a non-failing service, that's why '''a sane default is to not restart it''' when its creator didn't handle the case.<br />
<br />
Of course, there is poorly coded daemons, which require to be restarted frequently because they crash.<br />
In that case, auto-restart is mandatory. We have better thing to do than restarting them manually.<br />
But this is not the default, it's targeted to a particular daemon, which crash for a known reason. <br />
<br />
Some corner case may be found in vital daemons (e.g sshd), which are required to get back the control of your host.<br />
When you loose it, you cannot troubleshoot. In this case, restarting it may be a comforting behavior, albeit...<br />
<br />
As a consequence, I suggest to '''choose a default which doesn't try to make a non working daemon looks like a working one'''.<br />
If the administrator want it, let him override it.<br />
<br />
== Should I run Archlinux on my server? ==<br />
<br />
'''Yes''' it's a good idea to run Archlinux on your server but read this before:<br />
<br />
https://mailman.archlinux.org/pipermail/arch-general/2013-July/033791.html<br />
<br />
== How should I manage official kernel updates? ==<br />
<br />
=== Upgrading the kernel, you are in trouble! ===<br />
<br />
During its upgrade, the official kernel package (called '''linux''') removes (or replaces) modules in ''/lib/modules/$(uname -r)''. The running kernel ''$(uname -r)'' is still the same.<br />
As a consequence, you (or udev) cannot load kernel modules anymore. This may lead to difficult to track issues.<br />
So, '''you <u>should</u> reboot''' on your new kernel '''after each update'''.<br />
<br />
This is boring because:<br />
* This will downtime your service;<br />
* You're in the middle of something;<br />
* You don't need the new kernel now;<br />
* There is several updates by month;<br />
* It breaks your uptime. :)<br />
<br />
=== Reboot into your new kernel, you may go to hell ===<br />
<br />
Unadvertised users run only one Linux kernel on their computers. After an upgrade and a reboot, the computer might be "broken". This can be a consequence of a bug directly inside the kernel, or an error during the upgrade process.<br />
<br />
Archlinux official '''linux''' package doesn't provide you a correct solution for this. You workaround this by using the '''linux-lts''' kernel package to have a backup kernel (if your hardware is supported).<br />
<br />
=== A new hope (Episode IV) ===<br />
<br />
To fix the two previous issues, I suggest you a different approach.<br />
You could use a versioned kernel package like '''linux-seblu-3.x.y''' (you can find a copy in [https://seblu.net/a/seblu/x86_64/ my repository]).<br />
No package upgrades broke the module ABI and new versions are in a separate package.<br />
<br />
== Why [http://gist.io/5660494 ''Never use -Sy when installing!''] is wrong? ==<br />
<br />
''In a nutshell'': [http://gist.io/5660494 this article] misguides you.<br />
<br />
=== No versioned package ===<br />
<br />
The real issue behind all of this: '''We try to avoid version dependencies in Archlinux'''. Not that ''pacman'' cannot manage them.<br />
But developers decide to not use them when there is no strong needs. Mainly to:<br />
* Simplify the package maintenance (reduce the workload / the quantity of bug / etc);<br />
* Speed-up dependency computation.<br />
<br />
It's like that far before I joined the project, so don't blame me!<br />
<br />
Consequences: there is no way to know which packages needs to be updated when you upgrade another one.<br />
<br />
The safest and recommended way is: <u>When you upgrade or install a package, be sure that your whole system is up-to-date</u>. If not, some dependencies can be broken, like a library, a module, a database format, etc.<br />
<br />
In all case, be sure to have an upgraded system before report any issue in the bug report system.<br />
<br />
=== Why are you misguided? ===<br />
# Installing a new package don't pull the last version of an already installed library. When there is a soname bump, only the new installed software should be broken, and not your entire system. The running service should be fine. There are exceptions when versioned dependencies are used.<br />
# The cause is not the -y option. It's because your system was not upgraded before you install a new package.<br />
# That doesn't mean that you must upgrade the whole system each time you install a package. ''But if you don't understand why, do it.''<br />
# When you are using AUR packages or when your favorite desktop sync the database frequently (to show you the number of upgrades), you may break your system with -S. The -y option will not protect you.<br />
# Firefox is not linked against readline.<br />
# Core programs (bash, pacman, systemd) use versioned deps to prevent an unbootable operating system.<br />
# A loudly broken soft is better than a silent broken soft. Because you fix it quickly.<br />
# '''Upgrading the whole system is a dangerous operations''' (especially on servers). New software version could be bugged! A default policy to upgrade the whole system for each new installed package to prevent broken package is crazy.<br />
# Archlinux is not crap, it's targeted to power users.</div>Sebluhttps://wiki.archlinux.org/index.php?title=Nftables&diff=355517Nftables2015-01-05T15:53:58Z<p>Seblu: reject is not deprecated.</p>
<hr />
<div>{{DISPLAYTITLE:nftables}}<br />
[[Category:Firewalls]]<br />
[[ja:Nftables]]<br />
{{Related articles start}}<br />
{{Related|Firewalls}}<br />
{{Related|iptables}}<br />
{{Related articles end}}<br />
{{Expansion|nftables is an entirely new utility, and lacks sufficient documentation on this wiki.}}<br />
[http://netfilter.org/projects/nftables/ nftables] is a netfilter project that aims to replace the existing ip-, ip6-, arp-, and ebtables framework. It provides a new packet filtering framework, a new user-space utility (nft), and a compatibility layer for ip- and ip6tables. It uses the existing hooks, connection tracking system, user-space queueing component, and logging subsystem of netfilter.<br />
<br />
You can also visit the [http://wiki.nftables.org official nftables wiki page] for more information.<br />
<br />
The first release is available in Linux 3.13, which is in the ''core'' repository ({{Pkg|linux}}), and nftables (the user-space components) is available in the ''extra'' repository ({{Pkg|nftables}}), and on the [[AUR]] in package {{AUR|nftables-git}}.<br />
<br />
==Overview==<br />
nftables consists of three main components: a kernel implementation, the libnl netlink communication and the nftables user-space front-end. The kernel provides a netlink configuration interface, as well as run-time rule-set evaluation using a small classification language interpreter. libnl contains the low-level functions for communicating with the kernel; the nftables front-end is what the user interacts with.<br />
<br />
==nft==<br />
nftables' user-space utility {{ic|nft}} now performs most of the rule-set evaluation before handing rule-sets to the kernel. Because of this, nftables provides no default tables or chains; although, a user can emulate an iptables-like setup.<br />
<br />
It works in a fashion similar to ifconfig or iproute2. The commands are a long, structured sequence rather than using argument switches like in iptables. For example:<br />
nft add rule ip6 filter input ip6 saddr ::1 accept<br />
{{ic|add}} is the command. {{ic|rule}} is a subcommand of {{ic|add}}. {{ic|ip6}} is an argument of {{ic|rule}}, telling it to use the ip6 family. {{ic|filter}} and {{ic|input}} are arguments of {{ic|rule}} specifying the table and chain to use, respectively. The rest that follows is a rule definition, which includes matches ({{ic|ip}}), their parameters ({{ic|saddr}}), parameter arguments ({{ic|::1}}), and jumps ({{ic|accept}}).<br />
<br />
The following is an incomplete list of the commands available in nft:<br />
<nowiki><br />
list<br />
tables [family]<br />
table [family] <name><br />
chain [family] <table> <name><br />
<br />
add<br />
table [family] <name><br />
chain [family] <table> <name> [chain definitions]<br />
rule [family] <table> <chain> <rule definition><br />
<br />
table [family] <name> (shortcut for `add table`)<br />
<br />
insert<br />
rule [family] <table> <chain> <rule definition><br />
<br />
delete<br />
table [family] <name><br />
chain [family] <table> <name><br />
rule [family] <table> <handle><br />
<br />
flush<br />
table [family] <name><br />
chain [family] <table> <name></nowiki><br />
{{ic|family}} is optional, but it will default to {{ic|ip}}.<br />
<br />
==Tables==<br />
The purpose of tables is to hold chains. Unlike tables in iptables, there are no built-in tables in nftables. Tables can have one of five families specified, which unifies the various iptables utilities into one:<br />
<br />
{| class="wikitable"<br />
! nftables family || iptables utility<br />
|-<br />
| ip || iptables<br />
|-<br />
| ip6 || ip6tables<br />
|- <br />
| inet || iptables and ip6tables<br />
|-<br />
| arp || arptables<br />
|-<br />
| bridge || ebtables<br />
|-<br />
|}<br />
<br />
{{ic|ip}} is the default family.<br />
{{ic|inet}} requires Linux >=3.15 and allows for the unification of the ip and ip6 families to make defining rules for both easier.<br />
<br />
===Listing===<br />
You can list the current tables in a family with the {{ic|nft list}} command.<br />
# nft list tables<br />
# nft list tables ip6<br />
<br />
You can list a full table definition by specifying a table name:<br />
# nft list table foo<br />
# nft list table ip6 foo<br />
<br />
===Creation===<br />
Tables can be added via two commands — one just being a shortcut for the other. Here is an example of how to add an ip table called foo and an ip6 table called foo:<br />
# nft add table foo<br />
# nft table ip6 foo<br />
You can have two tables with the same name as long as they are in different families.<br />
<br />
===Deletion===<br />
Tables can only be deleted if there are no chains in them.<br />
# nft delete table foo<br />
# nft delete table ip6 foo<br />
<br />
==Chains==<br />
The purpose of chains is to hold rules. Unlike chains in iptables, there are no built-in chains in nftables. This means that if no chain uses any types or hooks in the netfilter framework, packets that would flow through those chains will not be touched by nftables, unlike iptables.<br />
<br />
===Listing===<br />
The {{ic|nft list table foo}} command will list all the chains in the foo table. You can also list rules from an individual chain.<br />
# nft list chain foo bar<br />
# nft list chain ip6 foo bar<br />
These commands will list the {{ic|bar}} chains in the ip and ip6 {{ic|foo}} tables.<br />
<br />
===Creation===<br />
Chains can be added when a table is created in a file definition or one at time via the {{ic|nft add chain}} command.<br />
# nft add chain foo bar<br />
# nft add chain ip6 foo bar<br />
These commands will add a chain called {{ic|bar}} to the ip and ip6 {{ic|foo}} tables.<br />
<br />
====Properties====<br />
Because nftables has no built-in chains, it allows chains to access certain features of the netfilter framework.<br />
# nft add chain filter input { type filter hook input priority 0\; }<br />
This command tells nftables to add a chain called {{ic|input}} to the {{ic|filter}} table and defines its type, hook, and priority. These properties essentially replace the built-in tables and chains in iptables.<br />
<br />
=====Types=====<br />
There are three types a chain can have and they correspond to the tables used in iptables:<br />
*filter<br />
*nat<br />
*route (mangle)<br />
<br />
=====Hooks=====<br />
There are five hooks a chain can use and they correspond to the chains used in iptables:<br />
*input<br />
*output<br />
*forward<br />
*prerouting<br />
*postrouting<br />
<br />
=====Priorities=====<br />
{{Note|Priorities do not currently appear to have any effect on which chain sees packets first.}}<br />
{{Note|Since the priority seems to be an unsigned integer, negative priorities will be converted into very high priorities.}}<br />
Priorities tell nftables which chains packets should pass through first. They are integers, and the higher the integer, the higher the priority.<br />
<br />
===Deletion===<br />
Chains can only be deleted if there are no rules in them.<br />
# nft delete chain foo bar<br />
# nft delete chain ip6 foo bar<br />
These commands delete the {{ic|bar}} chains from the ip and ip6 {{ic|foo}} tables.<br />
<br />
==Rules==<br />
The purpose of rules is to identify packets (match) and carry out tasks (jump). Like in iptables, there are various matches and jumps available, though not all of them are feature-complete in nftables.<br />
<br />
===Listing===<br />
You can list the current rules in a table with the {{ic|nft list}} command, using the same method as listing a table. You can also list rules from an individual chain.<br />
# nft list chain foo bar<br />
# nft list chain ip6 foo bar<br />
These commands will list the rules in the {{ic|bar}} chains in the ip and ip6 {{ic|foo}} tables.<br />
<br />
===Creation===<br />
Rules can be added when a table is created in a file definition or one at time via the {{ic|nft add rule}} command.<br />
# nft add rule foo bar ip saddr 127.0.0.1 accept<br />
# nft add rule ip6 foo bar ip saddr ::1 accept<br />
These commands will add a rule to the {{ic|bar}} chains in the ip and ip6 {{ic|foo}} tables that matches an {{ic|ip}} packet when its {{ic|saddr}} (source address) is 127.0.0.1 (IPv4) or ::1 (IPv6) and accepts those packets.<br />
<br />
====Matches====<br />
There are various matches available in nftables and, for the most part, coincide with their iptables counterparts. The most noticeable difference is that there are no generic or implicit matches anymore. A generic match was one that was always available, such as {{ic|--protocol}} or {{ic|--source}}. Implicit matches were protocol-specific, such as {{ic|--sport}} when a packet was determined to be TCP.<br />
<br />
The following is an incomplete list of the matches available:<br />
*meta (meta properties, e.g. interfaces)<br />
*icmp (ICMP protocol)<br />
*icmpv6 (ICMPv6 protocol)<br />
*ip (IP protocol)<br />
*ip6 (IPv6 protocol)<br />
*tcp (TCP protocol)<br />
*udp (UDP protocol)<br />
*sctp (SCTP protocol)<br />
*ct (connection tracking)<br />
<br />
The following is an incomplete list of match arguments (for a more complete list, see {{ic|man 8 nft}}):<br />
<nowiki><br />
meta:<br />
oif <output interface INDEX><br />
iif <input interface INDEX><br />
oifname <output interface NAME><br />
iifname <input interface NAME><br />
<br />
(oif and iif accept string arguments and are converted to interface indexes)<br />
(oifname and iifname are more dynamic, but slower because of string matching)<br />
<br />
icmp:<br />
type <icmp type><br />
<br />
icmpv6:<br />
type <icmpv6 type><br />
<br />
ip:<br />
protocol <protocol><br />
daddr <destination address><br />
saddr <source address><br />
<br />
ip6:<br />
daddr <destination address><br />
saddr <source address><br />
<br />
tcp:<br />
dport <destination port><br />
sport <source port><br />
<br />
udp:<br />
dport <destination port><br />
sport <source port><br />
<br />
sctp:<br />
dport <destination port><br />
sport <source port><br />
<br />
ct:<br />
state <new | established | related | invalid></nowiki><br />
<br />
====Jumps====<br />
Jumps work the same as they do in iptables, except multiple jumps can now be used in one rule.<br />
# nft add rule filter input tcp dport 22 log accept<br />
<br />
The following is an incomplete list of jumps:<br />
*accept (accept a packet)<br />
*reject (reject a packet)<br />
*drop (drop a packet)<br />
*snat (perform source NAT on a packet)<br />
*dnat (perform destination NAT on a packet)<br />
*log (log a packet)<br />
*counter (keep a counter on a packet; counters are optional in nftables)<br />
*return (stop traversing the chain)<br />
*jump <chain> (jump to another chain)<br />
*goto <chain> (jump to another chain, but don't return)<br />
<br />
===Insertion===<br />
Rules can be prepended to chains with the {{ic|nft insert rule}} command.<br />
# nft insert rule filter input ct state established,related accept<br />
<br />
===Deletion===<br />
Individual rules can only be deleted by their handles. The {{ic|nft --handle list}} command must be used to determine rule handles. Note the {{ic|--handle}} switch, which tells {{ic|nft}} to list handles in its output.<br />
<br />
The following determines the handle for a rule and then deletes it. The {{ic|--number}} argument is useful for viewing some numeric output, like unresolved IP addresses.<br />
{{hc|# nft --handle --numeric list chain filter input|2=<br />
<nowiki><br />
table ip filter {<br />
chain input {<br />
type filter hook input priority 0;<br />
ip saddr 127.0.0.1 accept # handle 10<br />
}<br />
}<br />
</nowiki><br />
}}<br />
# nft delete rule filter input handle 10<br />
<br />
All the chains in a table can be flushed with the {{ic|nft flush table}} command. Individual chains can be flushed using either the {{ic|nft flush chain}} or {{ic|nft delete rule}} commands.<br />
# nft flush table foo<br />
# nft flush chain foo bar<br />
# nft delete rule ip6 foo bar<br />
The first command flushes all of the chains in the ip {{ic|foo}} table. The second flushes the {{ic|bar}} chain in the ip {{ic|foo}} table. The third deletes all of the rules in {{ic|bar}} chain in the ip6 {{ic|foo}} table.<br />
<br />
===Atomic Reloading===<br />
Flush the current ruleset :<br />
# echo "flush ruleset" > /tmp/nftables <br />
Dump the current ruleset:<br />
# nft list ruleset >> /tmp/nftables<br />
Now you can edit /tmp/nftables and apply your changes with:<br />
# nft -f /tmp/nftables<br />
<br />
==File Definitions==<br />
<br />
File definitions can be used by the {{ic|nft -f}} command, which acts like the {{ic|iptables-restore}} command.<br />
However, unlike {{ic|iptables-restore}}, this command does not flush out your existing ruleset, to do so you have<br />
to prepend the flush command.<br />
<br />
{{hc|/etc/nftables/filter.rules|2=<br />
<nowiki><br />
flush table ip filter<br />
table ip filter {<br />
chain input {<br />
type filter hook input priority 0;<br />
ct state established,related accept<br />
ip saddr 127.0.0.1 accept<br />
tcp dport 22 log accept<br />
reject<br />
}<br />
}<br />
</nowiki><br />
}}<br />
<br />
To export your rules (like {{ic|iptables-save}}):<br />
<br />
# nft list ruleset<br />
<br />
==Getting Started==<br />
To get an [[iptables]]-like chain set up, you will first need to use the provided IPv4 filter file:<br />
<br />
# nft -f /etc/nftables/ipv4-filter<br />
<br />
To list the resulting chain:<br />
<br />
# nft list table filter<br />
<br />
Drop output to a destination:<br />
<br />
# nft add rule ip filter output ip daddr 1.2.3.4 drop<br />
<br />
Drop packets destined for local port 80:<br />
<br />
# nft add rule ip filter input tcp dport 80 drop<br />
<br />
Delete all rules in a chain:<br />
<br />
# nft delete rule filter output<br />
<br />
==Samples==<br />
===Simple IP/IPv6 Firewall===<br />
{{hc|firewall.rules|2=<br />
<nowiki><br />
# A simple firewall<br />
<br />
table firewall {<br />
chain incoming {<br />
type filter hook input priority 0;<br />
<br />
# established/related connections<br />
ct state established,related accept<br />
<br />
# invalid connections<br />
ct state invalid drop<br />
<br />
# loopback interface<br />
iifname lo accept<br />
<br />
# icmp<br />
ip protocol icmp accept<br />
<br />
# open tcp ports: sshd (22), httpd (80)<br />
tcp dport {ssh, http} accept<br />
<br />
# everything else<br />
reject<br />
}<br />
}<br />
<br />
table ip6 firewall {<br />
chain incoming {<br />
type filter hook input priority 0;<br />
<br />
# established/related connections<br />
ct state established,related accept<br />
<br />
# invalid connections<br />
ct state invalid drop<br />
<br />
# loopback interface<br />
iifname lo accept<br />
<br />
# icmp<br />
ip6 nexthdr icmpv6 accept<br />
<br />
# open tcp ports: sshd (22), httpd (80)<br />
tcp dport {ssh, http} accept<br />
<br />
# everything else<br />
reject<br />
}<br />
}<br />
</nowiki><br />
}}<br />
<br />
===Limit rate and tcp flags IP/IPv6 Firewall===<br />
{{hc|firewall.2.rules|2=<br />
<nowiki><br />
table firewall {<br />
chain incoming {<br />
type filter hook input priority 0;<br />
<br />
# bad tcp -> avoid network scanning:<br />
tcp flags & (fin|syn) == (fin|syn) drop<br />
tcp flags & (syn|rst) == (syn|rst) drop<br />
tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) drop # == 0 would be better, not supported yet.<br />
tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) drop<br />
<br />
# no ping floods:<br />
ip protocol icmp limit rate 10/second accept<br />
ip protocol icmp drop<br />
<br />
ct state established,related accept<br />
ct state invalid drop<br />
<br />
iifname lo accept<br />
<br />
# avoid brute force on ssh:<br />
tcp dport ssh limit rate 15/minute accept<br />
<br />
reject<br />
}<br />
}<br />
<br />
table ip6 firewall {<br />
chain incoming {<br />
type filter hook input priority 0;<br />
<br />
# bad tcp:<br />
tcp flags & (fin|syn) == (fin|syn) drop<br />
tcp flags & (syn|rst) == (syn|rst) drop<br />
tcp flags & (fin|syn|rst|psh|ack|urg) < (fin) drop # == 0 would be better, not supported yet.<br />
tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|psh|urg) drop<br />
<br />
# no ping floods:<br />
ip6 nexthdr icmpv6 limit rate 10/second accept<br />
ip6 nexthdr icmpv6 drop<br />
<br />
ct state established,related accept<br />
ct state invalid drop<br />
<br />
# loopback interface<br />
iifname lo accept<br />
<br />
# avoid brute force on ssh:<br />
tcp dport ssh limit rate 15/minute accept<br />
<br />
reject<br />
}<br />
}<br />
</nowiki><br />
}}<br />
<br />
===Jump===<br />
When using jumps in config file, it is necessary to define the target chain first. Otherwise one could end up with <code>Error: Could not process rule: No such file or directory</code>.<br />
{{hc|jump.rules|2=<br />
<nowiki><br />
table inet filter {<br />
chain web {<br />
tcp dport http accept<br />
tcp dport 8080 accept<br />
}<br />
chain input {<br />
type filter hook input priority 0;<br />
ip saddr 10.0.2.0/24 jump web<br />
drop<br />
}<br />
}<br />
</nowiki><br />
}}<br />
<br />
==Loading rules at boot==<br />
<br />
To automatically load rules on system boot, simply enable the nftables systemd service by executing {{ic|systemctl enable nftables}}<br />
<br />
{{Note|You may have to create {{ic|/etc/modules-load.d/nftables.conf}} with all of the nftables related modules you require as entries for the systemd service to work correctly. You can get a list of modules using this command: {{bc|<nowiki>lsmod | grep nf</nowiki>}} <br />
<br />
Otheriwse, you could end up with the dreaded {{ic|Error: Could not process rule: No such file or directory}} error.}}<br />
<br />
==Logging to Syslog==<br />
<br />
If you use a Linux kernel < 3.17, you have to modprobe {{ic|xt_LOG}} to enable logging.<br />
<br />
==See also==<br />
* [http://people.netfilter.org/wiki-nftables/index.php/ netfilter nftables wiki]<br />
* [https://lwn.net/Articles/324251/ First release of nftables]<br />
* [https://home.regit.org/netfilter-en/nftables-quick-howto/ nftables quick howto]<br />
* [https://lwn.net/Articles/564095/ The return of nftables]</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:TheBigIdeaPage&diff=341394DeveloperWiki:TheBigIdeaPage2014-10-24T00:10:20Z<p>Seblu: /* Multiple kernel support */</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 FS#18590].<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.<br />
<br />
==== Multiple kernel support ====<br />
Our current way of managing kernel should be improved:<br />
<br />
# Updating a kernel need an immediate reboot<br /> Kernel modules of the current running kennel is removed and replaced by another kernel module. So you cannot load modules anymore. In servers environment, it's difficult to restart your server everytime a stable release is out.<br />
# We cannot have more than one version of the kernel.<br />If the last update cause an issue, you cannot select an older one in your favoring boot loader. You need an USB rescue key, if the server is not close to you, Houston, we've had a problem.<br />
<br />
<u>Possible solution:</u><br />
A simple solution would be to put the kernel name inside the package name and use a meta package to pull the last version.<br />
Letting for example 3 kernels generations (3.17.x, 3.16.x, 3.15.x) before removing them (by conflicts).<br />
<br />
==== Out-of-tree kernel modules management ====<br />
<br />
Currently, we have 3 kernels (-arch, -lts, -grsec) and updating out-of-tree kernel modules is something time consuming. The frequency and the testing phase make things even more error prone.<br />
<br />
To simplify the situation, I'm suggesting to let DKMS manage them. This is particularly useful if we implement previous idea of multiple kernel support and make the number of kernel modules scalable.<br />
<br />
Of course, that make compilation of modules being done by every users, but, it mays be a fair trade as these modules don't make enough effort to be mainlined.</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:TheBigIdeaPage&diff=341393DeveloperWiki:TheBigIdeaPage2014-10-24T00:09:01Z<p>Seblu: /* Multiple kernel support */</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 FS#18590].<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.<br />
<br />
==== Multiple kernel support ====<br />
Our current way of managing kernel should be improved:<br />
<br />
# Updating a kernel need an immediate reboot<br /> Kernel modules of the current running kennel is removed and replaced by another kernel module. So you cannot load modules anymore. In servers environment, it's difficult to restart your server everytime a stable release is out.<br />
# We cannot have more than one version of the kernel.<br />If the last update cause an issue, you cannot select an older one in your favoring boot loader. You need an USB rescue key, if the server is close to you...<br />
<br />
<u>Possible solution:</u><br />
A simple solution would be to put the kernel name inside the package name and use a meta package to pull the last version.<br />
Letting for example 3 kernels generations (3.17.x, 3.16.x, 3.15.x) before removing them (by conflicts).<br />
<br />
==== Out-of-tree kernel modules management ====<br />
<br />
Currently, we have 3 kernels (-arch, -lts, -grsec) and updating out-of-tree kernel modules is something time consuming. The frequency and the testing phase make things even more error prone.<br />
<br />
To simplify the situation, I'm suggesting to let DKMS manage them. This is particularly useful if we implement previous idea of multiple kernel support and make the number of kernel modules scalable.<br />
<br />
Of course, that make compilation of modules being done by every users, but, it mays be a fair trade as these modules don't make enough effort to be mainlined.</div>Sebluhttps://wiki.archlinux.org/index.php?title=DeveloperWiki:TheBigIdeaPage&diff=341390DeveloperWiki:TheBigIdeaPage2014-10-24T00:05:50Z<p>Seblu: </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 FS#18590].<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.<br />
<br />
==== Multiple kernel support ====<br />
Our current way of managing kernel should be improved:<br />
<br />
# Updating a kernel need an immediate reboot<br />
<br />
Kernel modules of the current running kennel is removed and replaced by another kernel module. So you cannot load modules anymore.<br />
In servers environment, it's difficult to restart your server everytime a stable release is out.<br />
<br />
<br />
# We cannot have more than one version of the kernel.<br />
If the last update cause an issue, you cannot select an older one in your favoring boot loader. You need an USB rescue key, if the server is close to you...<br />
<br />
Possible solution:<br />
A simple solution would be to put the kernel name inside the package name and use a meta package to pull the last version.<br />
Letting for example 3 kernels generations (3.17.x, 3.16.x, 3.15.x) before removing them (by conflicts).<br />
<br />
==== Out-of-tree kernel modules management ====<br />
<br />
Currently, we have 3 kernels (-arch, -lts, -grsec) and updating out-of-tree kernel modules is something time consuming. The frequency and the testing phase make things even more error prone.<br />
<br />
To simplify the situation, I'm suggesting to let DKMS manage them. This is particularly useful if we implement previous idea of multiple kernel support and make the number of kernel modules scalable.<br />
<br />
Of course, that make compilation of modules being done by every users, but, it mays be a fair trade as these modules don't make enough effort to be mainlined.</div>Seblu