https://wiki.archlinux.org/api.php?action=feedcontributions&user=Somebody62&feedformat=atomArchWiki - User contributions [en]2024-03-29T13:43:46ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Thunderbird&diff=566356Thunderbird2019-02-11T15:54:58Z<p>Somebody62: Fixed thunderbird-enigmail-git link (changed to thunderbird-extension-enigmail-git), and fixed a minor spelling and formatting error.</p>
<hr />
<div>[[Category:Email clients]]<br />
[[Category:Mozilla]]<br />
[[de:Thunderbird]]<br />
[[fr:Thunderbird]]<br />
[[it:Thunderbird]]<br />
[[ja:Thunderbird]]<br />
{{Related articles start}}<br />
{{Related|Thunderbird/Enigmail}}<br />
{{Related|Firefox}}<br />
{{Related articles end}}<br />
<br />
[https://www.thunderbird.net/en-US/ Thunderbird] is an open source email, news, and chat client previously developed by the Mozilla Foundation.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|thunderbird}} package, with a [https://www.archlinux.org/packages/?q=thunderbird-i18n language pack] if required.<br />
<br />
Other versions include:<br />
<br />
* {{App | Thunderbird Beta | Cutting edge features with relatively-good stability. | https://www.thunderbird.net/channel/ | {{AUR|thunderbird-beta-bin}}}}<br />
* {{App | Thunderbird Earlybird | Experience the newest innovations as they're developed (equivalent to an alpha and Firefox Aurora releases). | https://www.thunderbird.net/channel/ | {{AUR|thunderbird-earlybird}}}}<br />
* {{App | Thunderbird Nightly | Experience the newest innovations with nightly releases (for those that want to work with breakages). | https://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-comm-central/ | {{AUR|thunderbird-nightly}}}}<br />
<br />
A version overview, both past and future, can be read on [[MozillaWiki:Releases]].<br />
<br />
== Securing ==<br />
<br />
* Thunderbird sends your system's internal IP address to the configured SMTP server as an argument to the HELO/ELHO SMTP command. This value can be overridden by setting {{ic|mail.smtpserver.default.hello_argument}} to, for example, {{ic|localhost}}. Setting this value may increase the spam score of messages you send. See [http://kb.mozillazine.org/Replace_IP_address_with_name_in_headers] and [http://kb.mozillazine.org/Mail_and_news_settings].<br />
<br />
* To hide Thunderbird's [https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference#Linux User Agent], create a new empty {{ic|general.useragent.override}} string entry in the [[#Config Editor]].<br />
<br />
* Thunderbird disables email images by default but enables HTML rendering which may expose IP address and location. To disable this click ''View > Message Body As > Plain Text''.<br />
<br />
* JavaScript is disabled for message content but not for RSS news feeds. To disable set {{ic|javascript.enabled}} to {{ic|false}} in the [[#Config Editor]].<br />
<br />
== Extensions ==<br />
<br />
* {{App|[[Thunderbird/Enigmail|Enigmail]]|Extension for writing and receiving email signed and/or encrypted with the OpenPGP standard.|https://www.enigmail.net|{{Pkg|thunderbird-extension-enigmail}}, {{AUR|thunderbird-extension-enigmail-git}}}}<br />
* {{App|TorBirdy|Extension that configures Thunderbird to make connections over the [[Tor]] anonymity network|[https://addons.mozilla.org/thunderbird/addon/torbirdy/ TorBirdy AMO]|}}<br />
* {{App|Birdtray|Birdtray is a system tray new mail notification for Thunderbird 60+ which does not require extensions. Run Thunderbird with a system tray icon.|https://github.com/gyunaev/birdtray|{{AUR|birdtray}}}}<br />
* {{App|FireTray|Adds a customizable system tray icon for Thunderbird|[https://addons.thunderbird.net/de/thunderbird/addon/firetray/ FireTray AMO]|}}<br />
* {{App|[[Wikipedia:Lightning_(software)|Lightning]]|A calendar extension that brings [[Wikipedia:Mozilla Sunbird|Sunbird]]'s functionality to Thunderbird, including CalDAV support. Lightning now ships with Thunderbird, but due to differing release schedules it may have issues in Thunderbird testing releases. See [https://support.mozilla.org/en-US/questions/1211583 Mozilla support forum post]. Also see [https://developer.mozilla.org/en-US/docs/Mozilla/Calendar/Calendar_Versions Lightning Release Schedule].|https://www.thunderbird.net/en-US/calendar/|}}<br />
* {{App|SOGo Connector| Lets you sync address books via CardDAV|https://sogo.nu/download.html#/frontends|{{AUR|thunderbird-sogo-connector-bin}}}}<br />
* {{App|Cardbook|A new addressbook for Thunderbird based on the CARDDav and VCARD standards.|[https://addons.mozilla.org/thunderbird/addon/cardbook/ Cardbook AMO]|}}<br />
<br />
== Tips and tricks ==<br />
<br />
=== Config Editor ===<br />
<br />
Thunderbird can be extensively configured by clicking ''Edit > Preferences > Advanced > General > Config Editor''.<br />
<br />
=== Set the default browser ===<br />
<br />
{{Note|Since version 24 the {{ic|network.protocol-handler.app.*}} keys have no effect and will not be able to set the default browser.}}<br />
<br />
Thunderbird uses the default browser as defined by the [[XDG MIME Applications]]. This is commonly modified by [[desktop environment]]s (for example [[GNOME]]'s Control Center: ''Details > Default Applications > Web'').<br />
<br />
This can be overridden with {{ic|network.protocol-handler.warn-external}} in the [[#Config Editor]]<br />
<br />
If the following is all set to {{ic|false}} (default), set them to {{ic|true}} and Thunderbird will ask you which application to use when you click on a link (remember to also check ''"Remember my choice for .. links"'').<br />
<br />
network.protocol-handler.warn-external.ftp<br />
network.protocol-handler.warn-external.http<br />
network.protocol-handler.warn-external.https<br />
<br />
=== Plain Text mode and font uniformity ===<br />
<br />
Plain Text mode lets you view all your emails without HTML rendering and is available in ''View > Message Body As''. This defaults to the [[Wikipedia:Monospace_(Unicode)|Monospace]] font but the size is still inherited from original system fontconfig settings. The following example will overwrite this with Ubuntu Mono of 10 pixels (available in: {{Pkg|ttf-ubuntu-font-family}}).<br />
<br />
Remember to run {{ic|fc-cache -fv}} to update system font cache. See [[Font configuration]] for more information.<br />
<br />
{{hc|~/.config/fontconfig/fonts.conf|<nowiki><br />
<?xml version="1.0"?><br />
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"><br />
<fontconfig><br />
<match target="pattern"><br />
<test qual="any" name="family"><string>monospace</string></test><br />
<edit name="family" mode="assign" binding="same"><string>Ubuntu Mono</string></edit><br />
<!-- For Thunderbird, lowering default font size to 10 for uniformity --><br />
<edit name="pixelsize" mode="assign"><int>10</int></edit><br />
</match><br />
</fontconfig><br />
</nowiki>}}<br />
<br />
=== Webmail with Thunderbird ===<br />
<br />
:''See upstream Wiki: [http://kb.mozillazine.org/Using_webmail_with_your_email_client Using webmail with your email client].''<br />
<br />
=== Migrate profile to another system ===<br />
<br />
{{Tip|The [https://addons.mozilla.org/thunderbird/addon/importexporttools ImportExportTools] addon offers an option to export and import a profile folder.}}<br />
<br />
Before you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
With migration you just copy your current Thunderbird profile to another PC or a new Thunderbird installation:<br />
<br />
1. Install Thunderbird on the target PC<br />
<br />
2. Start Thunderbird without doing anything and quit it.<br />
<br />
3. Go to your Backup folder of your old Thunderbird installation<br />
<br />
4. Enter the backup profile folder:<br />
<br />
$ cd /to/backup/folder/.thunderbird/<oldrandomnumber>.default/<br />
<br />
5. Copy its content into the target profile folder {{ic|~/.thunderbird/<newrandomnumber>.default/}}<br />
<br />
$ cp -R /to/backup/folder/.thunderbird/<oldrandomnumber>.default/* ~/.thunderbird/<newrandomnumber>.default/<br />
<br />
=== Export and Import ===<br />
<br />
Before you start with Importing or Exporting tasks, backup your complete {{ic|~/.thunderbird}} profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
If your accounts are broken or you want to join two different Thunderbird installations, you better install one Import and Export AddOn (eg. [https://addons.mozilla.org/thunderbird/addon/importexporttools ImportExportTools AddOn]) to both Thunderbird installations and following this just export and import all your data to the new installation.<br />
<br />
=== Change the default sorting order ===<br />
Thunderbird (up to at least 31.4.0-1) sorts mail by date with the oldest on top without any threading. While this can be changed per folder, it is easier to set a sane default instead as described [https://superuser.com/questions/13518/change-the-default-sorting-order-in-thunderbird here].<br />
<br />
Set these preferences in the [[#Config Editor]]:<br />
<br />
mailnews.default_sort_order = 2 (descending)<br />
mailnews.default_view_flags = 1 (Threaded view)<br />
<br />
=== Maildir support ===<br />
The default message store format is mbox. To enable the use of Maildir, see [[MozillaWiki:Thunderbird/Maildir]]. You basically have to set the following preference in the [[#Config Editor]]:<br />
<br />
mail.serverDefaultStoreContractID = @mozilla.org/msgstore/maildirstore;1<br />
<br />
Some limitations up to at least 31.4.0-1: only the "tmp" and "cur" directories are supported. The "new" directory is completely ignored. The read state of mails are stored in a separate ".msf" file, so initially all local mail using Maildir will be marked as unread even when located in the "cur" directory.<br />
<br />
=== Spell checking ===<br />
<br />
Install {{Pkg|hunspell}} and a [https://www.archlinux.org/packages/?q=hunspell+dict hunspell language dictionary] and restart Thunderbird.<br />
<br />
See the Firefox article for [[Firefox#Firefox does not remember default spell check language|how to set the default spell checking language]].<br />
<br />
=== Native notifications ===<br />
<br />
Enable {{ic|mail.biff.use_system_alert}} in the [[#Config Editor]]. This option means that extensions (such as Gnome Integration) are not needed for these newer versions of Thunderbird.<br />
<br />
=== Theming tweaks ===<br />
<br />
Thunderbird should conform to [[GTK#Themes]] as defined on your system. However, two tweaks are desirable for full consistency. These are most beneficial for dark themes.<br />
<br />
# To view the body of emails with colors following your theme:<br />
## Go to ''Preferences''<br />
## Select the ''Display'' tab<br />
## Click the ''Colors'' button<br />
## Check ''Use system colors''<br />
## Set the option for ''Override the colors specified by the content with my selection above'' to ''Always'' or ''Only with High Contrast themes''<br />
# To view Lightning calendar with colors following your theme:<br />
## Go to ''Preferences''<br />
## Select the ''Calendar'' tab<br />
## Check ''Optimize colors for accessibility''<br />
<br />
Further customization can be attained by creating and editing a {{ic|userchrome.css}}. See [[Firefox/Tweaks#General user interface CSS settings]] and [http://kb.mozillazine.org/UserChrome.css Mozillazine's userchrome page].<br />
<br />
== Troubleshooting ==<br />
<br />
=== LDAP Segfault ===<br />
<br />
An [https://bugzilla.mozilla.org/show_bug.cgi?id=292127 LDAP clash (Bugzilla#292127)] arises on systems configured to use it to fetch user information. A possible [https://bugzilla.mozilla.org/show_bug.cgi?id=292127#c7 workaround] consists of renaming the conflicting bundled LDAP library.<br />
<br />
=== Error: Incoming server already exists ===<br />
<br />
It seems Thunderbird (v24) still has that bug which pops up with "Incoming server already exists" if you want to reinstall a previously deleted account with the same account data afterwards. Unfortunately, if you get this error you can now only clean reinstall Thunderbird: <br />
<br />
1. Make a backup of your current profile:<br />
<br />
$ cp -R ~/.thunderbird /to/backup/folder/<br />
<br />
2. Export all your Accounts, Calendar and Feeds via an AddOn like it's written in ''Export section'' of this Wiki.<br />
<br />
3. Uninstall your current Thunderbird installation:<br />
<br />
$ pacman -R thunderbird<br />
<br />
4. Remove all your data by deleting your current Thunderbird folder {{ic|rm -R ~/.thunderbird/}}.<br />
<br />
5. Install Thunderbird again:<br />
<br />
$ pacman -S thunderbird<br />
<br />
6. Create your mail accounts, feeds and calendars (empty).<br />
<br />
7. Install the [https://addons.mozilla.org/thunderbird/addon/importexporttools/ ImportExportTools] AddOn<br />
<br />
8. Import all your data.<br />
<br />
=== Thunderbird UI freezes when receiving a new message ===<br />
<br />
If Thunderbird is configured to show an alert when a new message arrives, or at launch, the lack of a notification daemon may freeze the interface (white screen) for many seconds. You can solve this issue by disabling alerts or installing a [[Desktop_notifications#Notification_servers|notification server]].<br />
<br />
=== LC_TIME environment variable not respected ===<br />
<br />
Thunderbird should use the {{ic|LC_TIME}} environment variable for localization, but it might not do so in all contexts. Some problems can be mitigated by setting ''Edit'' > ''Preferences'' > ''Advanced'' > ''Date and Time Formatting'' to ''Regional settings locale'', a setting which was introduced in Thunderbird 56. However, there is a [https://bugzilla.mozilla.org/show_bug.cgi?id=1426907 bug report] for this issue.</div>Somebody62https://wiki.archlinux.org/index.php?title=Talk:Thunderbird&diff=565458Talk:Thunderbird2019-02-01T17:42:57Z<p>Somebody62: /* Accessing Config Editor */ new section</p>
<hr />
<div>== Article overhaul proposition ==<br />
<br />
I'd like to reorganize this page, as I see there isn't too much helpful information here: the [[Thunderbird#Securing]] section needs to be looked into; the extensions section looks to be subjective and could use some prioritizing; two of the tip sections values will need to be determined: [[Thunderbird#Setting_the_default_browser]] is deprecated (I'm pretty sure), and [[Thunderbird#Plain_Text_mode_and_font_uniformity]] is preferential (in font selection and size) and globally defining. These mentions left aside leave a pretty thin article.<br />
<br />
Redoing this article I think would be a reasonable task. I was thinking six basic sections would do with this order and reason:<br />
<br />
* [[Thunderbird#Installation]] — probably the same is it is now, basic installation instructions.<br />
* [[Thunderbird#Usage]] — general how-to-use notes ([[Thunderbird#Migration]] and [[Thunderbird#Export_.2B_Import]] can probably be put here).<br />
* [[Thunderbird#Configuration]] — anything related to settings.<br />
* [[Thunderbird#Extensions]] — mention of more popular extensions (lightning, firetray?...).<br />
* [[Thunderbird#Themes_and_styling]] — general theme mention and styling notes.<br />
* [[Thunderbird#Troubleshooting]] — should be usable as is.<br />
<br />
Any thoughts, suggestions? --Gen2ly<br />
<br />
:+1 from me. -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 21:07, 15 December 2014 (UTC)<br />
<br />
::I like the plan too, two questions:<br />
::* Would [[Thunderbird#Securing]] go under [[Thunderbird#Configuration]]?<br />
::* I've tested [[Thunderbird#Setting the default browser]], what exactly is deprecated? For me those configuration keys seem to work, the overridden browser setting appears in the ''Attachments > Incoming'' tab.<br />
::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 13:47, 16 December 2014 (UTC)<br />
<br />
::: ''Would [[Thunderbird#Securing]] go under [[Thunderbird#Configuration]]?''<br />
::: I'm still looking at this. This is all new to me. Depending on necessity, I think it might have a place in its own section. But general layout standardization would probably say that it goes in [[Thunderbird#Configuration]].<br />
<br />
::: ''I've tested [[Thunderbird#Setting the default browser]], what exactly is deprecated?...''<br />
::: I have yet to look into this yet. When I read the note, I got a feeling that the settings were deprecated... this is an error on my part.<br />
<br />
::: --Gen2ly<br />
<br />
::::I see, the note refers to some {{ic|network.protocol-handler.app.*}} keys which are indeed not present anymore in Thunderbird, but the rest of the section doesn't rely on them.<br />
::::I've moved your updated plan to the section below, otherwise it's impossible to follow the discussion, see also [[Help:Discussion]]: for example Alad gave his +1 to the original plan but you can't assume he approves the new one too. You may also be interested in the <nowiki>~~~~</nowiki> shortcut to quickly sign your posts using the standard format.<br />
::::-- [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 16:27, 16 December 2014 (UTC)<br />
<br />
::::: Ughh, huge page restructure without discussion. I would prefer consensual relationships with recommendations as I believe that they more positively effect communal-health than quick overhauls. I will respond to this comment as positive and professionally as possible, to any degree if I fail to do so, then I apologize in advance and want it to be known that I consider the human factor, job one.<br />
<br />
::::: ''Impossible two follow'' is a completely '''un'''accurate connotation. My first thought when I read this was that the rewrite wasn't even read!... I wrote in the summary: "Rewrote proposal with more positive tone, expanded on a bit for better understanding". With this summary along with the edit itself, the factual re-representation in the edit was available. Wiki guidelines for editing discussions (whether verbal or non-verbal) generally allow correction of typos, grammar, and occasionally rewording for understanding, I'll touch more on this in a bit.<br />
<br />
::::: I would also like to add that such a description has a high risk of creating a negative reaction. Because the description "impossible" describes the end of the spectrum, it has the possibility of invoking feelings of bereftness before anything can be garnered from it :). From my experience, being considerate, positively effectual, and perspectively accurate in my recommendations helps garner communal bondings.<br />
<br />
::::: From here, I took a logical assumption of the possible perspective of the comment (to help fill in unknown gaps that it left). Namely, I came to think that the comment derived from a type of thinking like, "... because of tonal alteration of the discussion, alone it is enough to effect the nature of the discussion." And this, in an attempt to be productive, is what I walked away thinking.<br />
<br />
::::: For future knowledge, because it allows for greater understanding, I do plan to create new sections for any discussions even if I feel the general nature of them doesn't change (grammar and typos aside). The linearity of thought argument has tremendous value and I respect that. (I've come to think that the essentiality of action was taken because of this.) Thank you for your time.<br />
<br />
::::: (Of a sidenote: In my original proposition, I noticed it ended with a "--Gen2ly". I came to think that my signature was accidentally erased, as I'm pretty sure I left one, and this got put in its place.)<br />
<br />
::::: [[User:Gen2ly|Gently]] ([[User talk:Gen2ly|talk]]) 18:10, 17 December 2014 (UTC)<br />
<br />
::::::There seems to be some misunderstanding here, Kynikos simply moved your proposal to a different section for easy editing, and to keep the integrity of the responses intact - common in talk pages. So let's keep this discussion to [[Thunderbird]], shall we? -- [[User:Alad|Alad]] ([[User talk:Alad|talk]]) 18:22, 17 December 2014 (UTC)<br />
<br />
=== Updated plan ===<br />
<br />
I believe this article has enough value (by this I generally mean readership) to warrant a more thorough article. By "a more thorough" article, I mean that some of the section contents will need to be reviewed, and additionally, general usability and configuration sections added.<br />
<br />
Sections that need review, I believe, are:<br />
<br />
* [[Thunderbird#Securing]]<br />
<br />
: It has been previously tagged as needing "language, wiki syntax, or style improvements" with the note: "This section contains too many colloquial/subjective comments/expressions, a more neutral tone should be used"; a following note reads "Cleaned up some, still needs work."<br />
<br />
: An expert or some good research will need to go into this section as it generally lacks veracity/impartiality.<br />
<br />
* [[Thunderbird#Extensions]]<br />
<br />
: Preference for an extensions are usually personal; however... maybe these can be ordered by AUR votes.<br />
<br />
* [[Thunderbird#Tips and tricks]]<br />
<br />
: The [[Thunderbird#Setting the default browser]] section could be helped with a bit of clean up (the note for one, which mentioned below by Kynikos, may be in error), and [[Thunderbird#Plain Text mode and font uniformity]] is preferential (in font selection and size) — referring to [[Font configuration]] would be the more appropriate action, I believe.<br />
<br />
Sections I like to have/add in the article (and their reasoning), are:<br />
<br />
* [[Thunderbird#Installation]] — (already existent) probably the same is it is now, basic installation instructions.<br />
* [[Thunderbird#Usage]] — general how-to-use notes ([[Thunderbird#Webmail with Thunderbird]], [[Thunderbird#Migration]] and [[Thunderbird#Export_.2B_Import]] can probably be put here).<br />
* [[Thunderbird#Configuration]] — anything related to settings ([[Thunderbird#Setting_the_default_browser]] and [[Thunderbird#Plain Text mode and font uniformity]] can probably be put here).<br />
* [[Thunderbird#Extensions]] — mention of more popular extensions (EnigMail, Lightning...). I think this section would largely remain as is.<br />
* [[Thunderbird#Themes_and_styling]] — general theme mention and styling notes.<br />
* [[Thunderbird#Troubleshooting]] — should be usable as is.<br />
<br />
Any thoughts, suggestions? --Gen2ly<br />
<br />
== "Information disclosure" section tag resolution ==<br />
<br />
I would like to analyze the section [[Thunderbird#Information_disclosure]] in an attempt to resolve its tagging. The section is tagged, "This article or section needs language, wiki syntax or style improvements. Reason: Cleaned up some, still needs work.". The previous tag (if I remember correctly) noted concerns about partiality and truthfulness.<br />
<br />
<blockquote>Thunderbird does a reverse DNS lookup of {{ic|internal.private.hostname.and.private.domain}} by default. To help Thunderbird find what it is looking for, and prevent potential information leaks, set your hostname as explained in [[Network configuration#Set the hostname]].''</blockquote><br />
<br />
The unusual definition "{{ic|internal.private.hostname.and.private.domain}}" I'm relatively sure refers to the canonical_hostname ({{ic| man hosts}}). This form appears to be a bit of an elaboration. In an unmodified file of {{ic|/etc/hosts}} the value is {{ic|localhost.localdomain}}. I believe our naming of this value should reflect what is in the documentation.<br />
<br />
A "''...reverse DNS lookup...'''" is "''the resolution of an IP address to its designated domain name''" (source [[Wikipedia:Reverse_DNS_lookup]]). I sent to myself two emails and read the email headers and there is no mention of {{ic|localhost}} or {{ic|localdomain}} (my canonical_hostname is unmodified). Other MTUs I've discovered send this information but not Thunderbird (for example, {{ic|Received: from XXXXXX.com (localhost.localdomain [127.0.0.1]}} or {{ic|Received: from 127.0.0.1 (EHLO AAAAA.BBBBBB.com) (111.222.333.444)}}. This leaves the likelyhood that a reverse DNS is performed when the canonical_hostname is ''not'' defined as {{ic|localhost.localdomain}}.<br />
<br />
Working with the premise that a rDNS can occur (since it has not been disproved) then security regarding information disclosure is a reasonable concern. For example, if I had a canonical_hostname of {{ic|john-doe_555-blvd-NYNY}} it would not be swell. While it is likely true that this value doe not get often edited for most Arch Linux users, those on a specialized Intranet or using Arch as a server may alter this value. Additionally, while this unwanted security concern is largely, and possibly even entirely related to Thunderbird, I still think the best way to handle this would to be put a '''warning tag''' in the [[Network configuration#Set the hostname]] section. This should be done I believe because there might be programs now or in the future that might also perform a likewise operation. The tag could be added that was described like, ''"It is recommended not to enter user-sensitive data in the canonical_hostname or in an alias. At times, other programs may distribute this information.''".<br />
<br />
<blockquote>Do disable operation system information in mail headers:</blockquote><br />
<br />
Thunderbird sends a User Agent string which contains CPU architecture, Operating system, and Thunderbird information. This string is has been remarked as [http://forums.mozillazine.org/viewtopic.php?p=11222357&sid=b88d4129c02bb710112a82e72748347b#p11222357 noncritical] and from my observations is generally only used for datum (e.g. if a MTA is running poorly these details could direct the administrator to an MTU that was recently updated, or to compare MTU number usage).<br />
<br />
(The User Agent sting can be viewed by sending an email to oneself and then looking at the email headers, or as describe in this [http://forums.mozillazine.org/viewtopic.php?p=13938353#p13938353 post]).<br />
<br />
This directive would be bettered, I believe, if was presented as an option. Possibly a description like this will do: ''Thunderbird sends a User Agent string that yields CPU architecture, Operating system, and Thunderbird attributes. These details are non-critical to email delivery and the sending of them can be disabled if desired. Notwithstanding, this string has uses that are desirable for debugging, developing software infrastructure, and other things — their allowance can aid in software development.''<br />
<br />
[[User:Gen2ly|Gently]] ([[User talk:Gen2ly|talk]]) 17:04, 14 February 2015 (UTC)<br />
<br />
== Outlook to Thunderbird migration - proposition ==<br />
<br />
I have had a hard time today trying to move local email folders from MS Outlook to Thunderbird on another pc, so I thought I could write a small wiki about it to save others the time and frustration. Would this be a good place to write such an article? I would put in the "Migration" section. The article would cover the following subjects: <br />
* How to export email folders out of Outlook into a *.pst file<br />
* How to convert the *.pst file to mbox files using the libpst utilities<br />
* How to import the mbox files into Thunderbird when<br />
** using IMAP (manual copy/paste into local mail folder)<br />
** using POP3 or something else (with the ImportExportTools addon)<br />
I am new to writing wiki articles, but am willing to invest some time in reading the wiki guidelines before posting the article. [[User:SamDM|SamDM]] ([[User talk:SamDM|talk]]) 19:47, 15 July 2015 (UTC)<br />
<br />
:Hi, I don't see any problems if you add that info, however the "Migration" section was unrelated, and I've updated its heading, so you can instead create a separate "Migrate data from MS Outlook" (or similar) section. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 15:11, 17 July 2015 (UTC)<br />
<br />
== Accessing Config Editor ==<br />
<br />
I tried to follow the instructions on how to access the Config Editor in the section entitled "Config Editor". However, the option "Edit" was grayed out in the menu. I managed to access the Config Editor by going to the three horizontal bars (Thunderbird Menu), clicking Preferences, then Advanced, then in the General tab selecting the Config Editor. I'm pretty new here so if anyone wanted to update the article to reflect this potential change to the menu system, that would be great.<br />
<br />
[[User:Somebody62|Somebody62]] ([[User talk:Somebody62|talk]]) 17:42, 1 February 2019 (UTC)</div>Somebody62https://wiki.archlinux.org/index.php?title=User:Somebody62&diff=563025User:Somebody622019-01-12T21:25:26Z<p>Somebody62: Added my home page because I hate red links</p>
<hr />
<div><br />
== Somebody62 ==<br />
This is my Wiki page. I can't think of anything to put on it, though.</div>Somebody62https://wiki.archlinux.org/index.php?title=Talk:General_guidelines&diff=562435Talk:General guidelines2019-01-08T20:42:02Z<p>Somebody62: /* Fora vs Forums */ new section</p>
<hr />
<div>== Maybe make the section "correct" more clear ==<br />
<br />
I'd like to see a clearer title for that section and add a little more on how users should effectively ask for help and report issues. ie they need to state the whole problem and what they have already tried as well as logs and error messages. [http://www.co.kerr.tx.us/it/howtoreport.html how to report] and [http://www.catb.org/~esr/faqs/smart-questions.html ask smart questions] are both great links. <br />
<br />
Maybe "don't ask to ask" could also be added, as in, "can someone help me? My Arch install is broken!" type of messages.[[User:Meskarune|Meskarune]] ([[User talk:Meskarune|talk]]) 01:15, 23 June 2016 (UTC)<br />
<br />
:I don't think the [http://www.catb.org/~esr/faqs/smart-questions.html ask smart questions] is such a great link to give people. It's good for understanding our culture but it's not good for smooth relations with people asking questions. However, I do think [http://www.co.kerr.tx.us/it/howtoreport.html how to report] should be added; it's concise and to the point without risking antagonizing the person with a question. [[User:MacGyver|MacGyver]] ([[User talk:MacGyver|talk]]) 14:00, 24 June 2016 (UTC)<br />
<br />
:: Yeah, maybe https://askubuntu.com/help/how-to-ask would be a better link to use. It is shorter, nicer and clearer than ESR's doc. [[User:Meskarune|Meskarune]] ([[User talk:Meskarune|talk]]) 03:26, 20 July 2016 (UTC)<br />
<br />
::I'm not sure I agree re. ESR. It is an exemplary exposition of the critical thinking required to effectively engage with a technical audience. I have no issues with people finding it difficult; this isn't a distro like Ubuntu where popularity is a consideration. Our focus is on contribution, so a degree of proficiency, or the desire to attain proficiency, is a prerequisite. Reading ''Smart Questions'' is a pretty good gauge of that willingness. [[User:Jasonwryan|Jasonwryan]] ([[User talk:Jasonwryan|talk]]) 06:58, 21 August 2016 (UTC)<br />
<br />
== Fora vs Forums ==<br />
<br />
I noticed that while referring to the plural of "forum", some parts of this page used "fora" while others used "forums". Would it be possible to standardize the plural of "forum" on this page?<br />
<br />
[[User:Somebody62|Somebody62]] ([[User talk:Somebody62|talk]]) 20:42, 8 January 2019 (UTC)</div>Somebody62https://wiki.archlinux.org/index.php?title=PHP&diff=544964PHP2018-09-29T22:48:01Z<p>Somebody62: I changed the word order because it seemed a bit off</p>
<hr />
<div>[[Category:Programming languages]]<br />
[[de:PHP]]<br />
[[es:PHP]]<br />
[[fr:Lamp]]<br />
[[it:PHP]]<br />
[[ja:PHP]]<br />
[[ru:PHP]]<br />
[[sr:PHP]]<br />
[[zh-hans:PHP]]<br />
[https://secure.php.net/ PHP] is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.<br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{Pkg|php}} package from the [[official repositories]].<br />
<br />
You can find older versions of PHP in the AUR, such as {{AUR|php56}}.<br />
<br />
Note that to run PHP scripts as plain CGI, you need the {{Pkg|php-cgi}} package.<br />
<br />
== Running ==<br />
<br />
While PHP can be run standalone, it is typically used with http servers such as [[Apache HTTP Server]] (this is frequently called [[LAMP]] setup), [[nginx]], [[lighttpd]] and [[Hiawatha]].<br />
<br />
To run PHP standalone issue the {{ic|php -S localhost:8000 -t public_html/}} command. See [https://secure.php.net/manual/en/features.commandline.webserver.php documentation].<br />
<br />
== Configuration ==<br />
<br />
The main PHP configuration file is well-documented and located at {{ic|/etc/php/php.ini}}.<br />
<br />
* It is recommended to set your timezone ([https://secure.php.net/manual/en/timezones.php list of timezones]) in {{ic|/etc/php/php.ini}} like so:<br />
<br />
date.timezone = Europe/Berlin<br />
<br />
* If you want to display errors to debug your PHP code, change {{ic|display_errors}} to {{ic|On}} in {{ic|/etc/php/php.ini}}:<br />
<br />
display_errors = On<br />
<br />
* The [http://php.net/open-basedir open_basedir] directive limits the paths that can be accessed by PHP, thus increasing security at the expense of potentially interfering with normal program execution. Starting with PHP 7.0, it is [https://www.archlinux.org/news/php-70-packages-released/ no longer set by default] to more closely match upstream so users who wish to use it must configure it manually. Example:<br />
<br />
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/<br />
<br />
== Extensions ==<br />
<br />
A number of commonly used PHP extensions can also be found in the official repositories:<br />
<br />
$ pacman -Ss php-<br />
<br />
{{Tip|Instead of editing {{ic|/etc/php/php.ini}}, an extension may be enabled/configured in the {{ic|/etc/php/conf.d}} directory instead (e.g. {{ic|/etc/php/conf.d/gd.ini}})}}<br />
<br />
Extensions for current and older versions of PHP are also available in [[AUR]] under the prefix php-* and php56-*, e.g. {{AUR|php-imagick}}, {{AUR|php-redis}}, {{AUR|php56-mcrypt}}.<br />
<br />
=== gd ===<br />
<br />
For {{Pkg|php-gd}} uncomment the line in {{ic|/etc/php/php.ini}}:<br />
<br />
extension=gd<br />
<br />
=== Imagemagick ===<br />
[[Install]] the {{Pkg|imagemagick}} package and install one of the listed PHP extension library.<br />
<br />
Install {{Aur|php-imagick}}, it will create the file {{ic|/etc/php/conf.d/imagick.ini}} to configure the extension.<br />
<br />
==== PECL ====<br />
Make sure the {{AUR|php-pear}} package has been installed:<br />
# pecl install imagick<br />
<br />
Create a {{ic|/etc/php/conf.d/imagick.ini}} and enable the extension:<br />
<br />
{{hc|/etc/php/conf.d/imagick.ini|2=<br />
extension=imagick<br />
}}<br />
<br />
=== pthreads ===<br />
<br />
If you wish to have POSIX multi-threading you will need the pthreads extension. To install the pthreads (http://pecl.php.net/package/pthreads) extension using {{ic|pecl}} you are required to use a compiled version of PHP with the the thread safety support flag {{ic|--enable-maintainer-zts}}. Currently the most clean way to do this would be to rebuild the original package with the flag.<br />
<br />
Instruction can be found on the [[PHP pthreads extension]] page.<br />
<br />
=== PCNTL ===<br />
<br />
PCNTL allows you to create process directly into the server side machine. While this may seen as something you would want, it also gives PHP the power to mess things up really badly. So it is a PHP extension that cannot be loaded like other more convenient extension. This is because of the great power it gives to PHP. To enable it PCNTL has to be compiled into PHP.<br />
<br />
The php package on Arch Linux is currently built with "--enable-pcntl", so that it should be available by default.<br />
<br />
=== MySQL/MariaDB ===<br />
<br />
Install and configure MySQL/MariaDB as described in [[MariaDB]].<br />
<br />
Uncomment [https://secure.php.net/manual/en/mysqlinfo.api.choosing.php the following lines] in {{ic|/etc/php/php.ini}}:<br />
<br />
extension=pdo_mysql<br />
extension=mysqli<br />
<br />
{{Warning|{{ic|1=extension=mysql}} was [https://secure.php.net/manual/en/migration70.removed-exts-sapis.php removed] in PHP 7.0.}}<br />
<br />
You can add minor privileged MySQL users for your web scripts. You might also want to edit {{ic|/etc/mysql/my.cnf}} and uncomment the {{ic|skip-networking}} line so the MySQL server is only accessible by the localhost. You have to restart MySQL for changes to take effect.<br />
<br />
=== Redis ===<br />
Install and configure [[Redis]], then install {{Aur|phpredis-git}}.<br />
<br />
Uncomment the line of the package, e.g. {{ic|/etc/php/conf.d/redis.ini}}.<br />
<br />
=== PostgreSQL ===<br />
<br />
Install and configure [[PostgreSQL]], then install the {{pkg|php-pgsql}} package and uncomment the following lines in {{ic|/etc/php/php.ini}}:<br />
<br />
extension=pdo_pgsql<br />
extension=pgsql<br />
<br />
=== Sqlite ===<br />
<br />
Install and configure [[SQLite]], then install the {{pkg|php-sqlite}} package and uncomment the following lines in {{ic|/etc/php/php.ini}}:<br />
<br />
extension=pdo_sqlite<br />
extension=sqlite3<br />
<br />
=== XDebug ===<br />
<br />
XDebug allows you to easily debug php code using modified var_dump() function. Install {{Pkg|xdebug}} and uncomment the lines at {{ic|/etc/php/conf.d/xdebug.ini}}:<br />
<br />
zend_extension=xdebug<br />
xdebug.remote_enable=on<br />
xdebug.remote_host=127.0.0.1<br />
xdebug.remote_port=9000<br />
xdebug.remote_handler=dbgp<br />
<br />
{{Note|To always attempt to start a remote debugging session and connect to a debugging client it is also necessary to set {{ic|1=xdebug.remote_autostart=on}}.}}<br />
<br />
=== IMAP ===<br />
<br />
Install {{Pkg|php-imap}} and uncomment the line at {{ic|/etc/php/php.ini}}:<br />
<br />
extension=imap<br />
<br />
== Caching ==<br />
<br />
There are two kinds of caching in PHP: ''opcode''/''bytecode'' caching and ''userland''/''user data'' caching. Both allow for substantial gains in applications speed, and therefore should be enabled wherever possible.<br />
<br />
* [[wikipedia:Zend Opcache|Zend OPCache]] provides only ''opcode'' caching.<br />
* [https://github.com/krakjoe/apcu/ APCu] provides only ''userland'' caching.<br />
<br />
=== OPCache ===<br />
<br />
OPCache comes bundled with the standard PHP distribution, therefore to enable it you simply have to add or uncomment the following line in your [[#Configuration|PHP configuration file]]:<br />
{{hc|/etc/php/php.ini|2=zend_extension=opcache}}<br />
<br />
A list of its options and suggested settings can be found in its [https://secure.php.net/manual/en/book.opcache.php official entry] on the PHP website.<br />
<br />
{{Warning|If you choose to apply the [https://secure.php.net/manual/en/opcache.installation.php#opcache.installation.recommended suggested settings] its manual offers, be sure to read carefully [https://secure.php.net/manual/en/opcache.installation.php#114567 the first comment] below those instructions as well. In some configurations those settings result in errors such as {{ic|zend_mm_heap corrupted}} being produced.}}<br />
<br />
=== APCu ===<br />
<br />
APCu can be installed with the {{Pkg|php-apcu}} package. You can then enable it by uncommenting the following line in {{ic|/etc/php/conf.d/apcu.ini}}, or adding it to your [[#Configuration|PHP configuration file]]:<br />
<br />
extension=apcu<br />
<br />
Its author recommends a few [https://github.com/krakjoe/apcu/blob/master/INSTALL suggested settings], among which:<br />
* {{ic|1=apc.enabled=1}} and {{ic|1=apc.shm_size=32M}} are not really required as they represent the [https://secure.php.net/manual/en/apc.configuration.php default values];<br />
* {{ic|1=apc.ttl=7200}} on the other hand seems [https://secure.php.net/manual/en/apc.configuration.php#ini.apc.ttl rather beneficial];<br />
* finally, {{ic|1=apc.enable_cli=1}}, which although [https://secure.php.net/manual/en/apc.configuration.php#ini.apc.enable-cli not recommended] by the manual may be required by some software such as [https://github.com/owncloud/core/issues/17329#issuecomment-119248944 ownCloud].<br />
<br />
{{Tip|You can add those settings either to APCu's own {{ic|/etc/php/conf.d/apcu.ini}} '''or''' directly to your [[#Configuration|PHP configuration file]]. Just make sure not to enable the extension twice as it will result in errors being diplayed in the system logs.}}<br />
<br />
== Development tools ==<br />
<br />
=== Aptana Studio ===<br />
<br />
[http://www.aptana.com/products/studio3.html Aptana Studio] is an IDE for programming in PHP and web development. It can be installed with the {{AUR|aptana-studio}} package. Does not have a PHP debugger as of version 3.2.2.<br />
<br />
=== Eclipse PDT ===<br />
<br />
[http://www.eclipse.org/pdt/ Eclipse PDT] is the PHP variant of Eclipse. It can be installed with the {{Pkg|eclipse-php}} package. See [[Eclipse]] for more information.<br />
<br />
You would need other plugins for JavaScript support and DB query.<br />
<br />
=== Komodo ===<br />
<br />
[http://komodoide.com/ Komodo] is an IDE with good integration for PHP+HTML+JavaScript. [http://komodoide.com/komodo-edit/ Komodo Edit] is a free editor-only variant and installable with the {{AUR|komodo-edit}} package.<br />
<br />
=== Netbeans ===<br />
<br />
[https://netbeans.org/ NetBeans IDE] is a complete IDE for many languages including PHP. Includes features like debugging, refactoring, code templating, autocomplete, XML features, and web design and development functionalities (very good CSS autocomplete functionality and PHP/JavaScript code notifications/tips). Install it with the {{Pkg|netbeans}} package.<br />
<br />
=== PhpStorm ===<br />
<br />
[[Wikipedia:PhpStorm|JetBrains PhpStorm]] is a commercial, cross-platform IDE for PHP built on JetBrains' IntelliJ IDEA platform. It can be installed with the {{AUR|phpstorm}} package, or with {{AUR|phpstorm-eap}} for the 30-day trial version. You can get a free license for education from Jetbrains.[https://www.jetbrains.com/student/]<br />
<br />
=== Zend Studio ===<br />
<br />
[http://www.zend.com/products/studio/ Zend Studio] is the official PHP IDE, based on eclipse. The IDE has autocomplete, advanced code formatting, WYSIWYG html editor, refactoring, and all the eclipse features such as db access and version control integration and whatever you can get from other eclipse plugins. You can install it with the {{AUR|zendstudio}} package.<br />
<br />
== Commandline tools ==<br />
<br />
=== Composer ===<br />
<br />
[https://getcomposer.org/ Composer] is a dependency manager for PHP.<br />
It can be installed with the {{Pkg|composer}} package.<br />
<br />
==== Allow user-wide installations ====<br />
<br />
To allow global package installations for the current [[user]] (e.g. {{ic|$ composer global require "package/name"}}), you may want to specify a default location by using an [[environment variable]]:<br />
<br />
PATH="$HOME/.config/composer/vendor/bin:$PATH"<br />
<br />
=== Box ===<br />
<br />
[http://box-project.github.io/box2/ Box] is an application for building and managing Phars.<br />
It can be installed with the {{AUR|php-box}} package.<br />
<br />
=== PDepend ===<br />
<br />
[http://pdepend.org/ PHP Depend] (pdepend) is software metrics tool for php.<br />
It can be installed with the {{AUR|pdepend}} package.<br />
<br />
=== PHP Coding Standards Fixer ===<br />
<br />
[http://cs.sensiolabs.org/ PHP Coding Standards Fixer] a is PSR-1 and PSR-2 Coding Standards<br />
fixer for your code.<br />
It can be installed with the {{AUR|php-cs-fixer}} package.<br />
<br />
=== PHP-CodeSniffer ===<br />
<br />
[http://pear.php.net/package/PHP_CodeSniffer/ PHP CodeSniffer] tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.<br />
It can be installed with the {{AUR|php-codesniffer}} package.<br />
<br />
=== phpcov ===<br />
<br />
[https://github.com/sebastianbergmann/phpcov phpcov] is a command-line frontend for the PHP_CodeCoverage library.<br />
It can be installed with the {{AUR|phpcov}} package.<br />
<br />
=== phpDox ===<br />
<br />
[http://phpdox.de/ phpDox] is the documentation generator for PHP projects. This includes, but is not limited to, API documentation.<br />
It can be installed with the {{AUR|phpdox}} package.<br />
<br />
=== PHPLoc ===<br />
<br />
[https://github.com/sebastianbergmann/phploc/ PHPLoc] is a tool for quickly measuring the size of a PHP project.<br />
It can be installed with the {{AUR|phploc}} package.<br />
<br />
=== PhpMetrics ===<br />
<br />
[http://www.phpmetrics.org/ PhpMetrics] provides various metrics about PHP projects.<br />
It can be installed with the {{AUR|phpmetrics}} package.<br />
<br />
=== phptok ===<br />
<br />
[https://github.com/sebastianbergmann/phptok phptok] is a tool for quickly dumping the tokens of a PHP sourcecode file.<br />
It can be installed with the {{AUR|phptok}} package.<br />
<br />
=== PHPUnit ===<br />
<br />
[https://phpunit.de PHPUnit] is a programmer-oriented testing framework for PHP.<br />
It can be installed with the {{AUR|phpunit}} package.<br />
<br />
=== PHPUnit Skeleton Generator===<br />
<br />
[https://github.com/sebastianbergmann/phpunit-skeleton-generator PHPUnit Skeleton Generator] is a tool that can generate skeleton test classes from production code classes and vice versa.<br />
It can be installed with the {{AUR|phpunit-skeleton-generator}} package.<br />
<br />
=== Producer ===<br />
<br />
[http://getproducer.org/ Producer] is a command-line quality-assurance tool to validate, and then release, your PHP library package.<br />
It can be installed with the {{AUR|producer}} package.<br />
<br />
== Troubleshooting ==<br />
<br />
=== PHP Fatal error: Class 'ZipArchive' not found ===<br />
<br />
Ensure the zip extension is enabled.<br />
{{hc|/etc/php/php.ini|2=<br />
extension=zip}}<br />
<br />
=== /etc/php/php.ini not parsed ===<br />
<br />
If your {{ic|php.ini}} is not parsed, the ini file is named after the sapi it is using. For instance, if you are using uwsgi, the file would be called {{ic|/etc/php/php-uwsgi.ini}}. If you are using cli, it is {{ic|/etc/php/php-cli.ini}}.<br />
<br />
=== PHP Warning: PHP Startup: ''<module>'': Unable to initialize module ===<br />
<br />
When running {{ic|php}}, this error indicates that the aforementioned module is out of date. This will rarely happen in Arch Linux, since maintainers make sure core PHP and all modules be only available in compatible versions.<br />
<br />
This might happen in conjunction with a module compiled from the [[AUR]]. You usually could confirm this by looking at the dates of the files {{ic|/usr/lib/php/modules/}}.<br />
<br />
To fix, find a compatible update for your module, probably by looking up the [[AUR]] using its common name.<br />
<br />
If it applies, flag the outdated [[AUR]] package as ''outdated''.<br />
<br />
== See also ==<br />
<br />
* [http://www.php.net/ PHP Official Website]</div>Somebody62https://wiki.archlinux.org/index.php?title=Talk:Mkinitcpio&diff=542575Talk:Mkinitcpio2018-09-21T19:49:00Z<p>Somebody62: /* Possibly missing firmware for module XXXX */ new section</p>
<hr />
<div>{{DISPLAYTITLE:Talk:mkinitcpio}}<br />
== Talking about other hooks and a more generic view of the early userspace ==<br />
I am the current maintainer of the the {{AUR|dropbear_initrd_encrypt}}, and, I've also developed some other mkinitcpio hooks, such as: {{AUR|mkinitcpio-ppp}} and {{AUR|mkinitcpio-ddns}}. I will write some wiki pages describing them, but I would also like to talk more about the early userspace. So, my question is, should I make an early userspace page, should I write a page just for the hooks? Should I write it and make it related to the mkinitcpio page? Thanks in advance.<br />
<br />
[[User:Grazzolini|Grazzolini]] ([[User talk:Grazzolini|talk]]) 01:03, 11 February 2015 (UTC)<br />
<br />
:It depends a lot on how much content you're actually going to write. I suggest starting by expanding on the early userspace in [[Arch boot process]]; then, if what you write gets too long, we can always consider splitting the page. About custom/additional hooks you might create a section below [[Mkinitcpio#Common hooks]], following the same principle: if the content gets too long/detailed to stay in the page, we can split it later. In any case, it's very important that you try your best to avoid duplicating existing information in other articles, and instead either add links to them, or move that information to your new content, if it fits best there, and add links to the new location from the articles where the info was removed. — [[User:Kynikos|Kynikos]] ([[User talk:Kynikos|talk]]) 4:32, 12 February 2015 (UTC)<br />
<br />
::Thank you for your information [[User:Kynikos|Kynikos]]. I'll be contributing these changes very soon. [[User:Grazzolini|Grazzolini]] ([[User talk:Grazzolini|talk]]) 12:54, 12 February 2015 (UTC)<br />
<br />
== Mark /usr with a passno of {{ic|2}}, not {{ic|0}} ==<br />
<br />
[[mkinitcpio#/usr as a separate partition]] firmly suggests to mark {{ic|/usr}} with a {{ic|passno}} of {{ic|0}} in {{ic|/etc/fstab}}. The way I understand {{ic|man fstab}}, {{ic|2}} is the correct number for the task. Am I wrong? [[User:Regid|Regid]] ([[User talk:Regid|talk]]) 19:09, 6 April 2017 (UTC)<br />
: It also suggests adding the {{ic|fsck}} hook to your config. Seeing as the regular fsck binaries reside on the {{ic|/usr}} partition, this is needed to actually make it possible to fsck it at startup. The entry in {{ic|/etc/fstab}} should thus be {{ic|0}}. [[User:Koneu|Koneu]] ([[User talk:Koneu|talk]]) 07:27, 7 April 2017 (UTC)<br />
::I see your point about the binaries residing on /usr. Still, with a passno of {{ic|0}} you set no automatic fsck at all, don't you? Would you set passno for / to {{ic|0}} when usr is an integral part of /?<br />
::Indeed the fsck hook copies fsck binaries to the initramfs, and possibly ignores passno for / and /usr at runtime. As an aside, its help text should mention usr, not just /. <br />
::[[User:Regid|Regid]] ([[User talk:Regid|talk]]) 10:12, 7 April 2017 (UTC)<br />
<br />
== Talking about LUKS/LVM with sd-encrypt example ==<br />
Formerly there was a [https://wiki.archlinux.org/index.php?title=Mkinitcpio&diff=493888&oldid=492088 link to the forum] that was ambiguous about where the UUID were generated from. [[User:enckse|enckse]] documented clearly the same use case within this page, which was reverted by [[User:Lahwaacz|Lahwaacz]] in [https://wiki.archlinux.org/index.php?title=Mkinitcpio&diff=493938&oldid=493934 this change]. The [https://wiki.archlinux.org/index.php?title=Mkinitcpio&oldid=493938 current edit] of the page removes a reference to the forum post entirely. Where should the writeup from [[User:enckse|enckse]] be placed? - [[User:storrgie|storrgie]] 22:05, 23 October 2017 (UTC)<br />
: In the previous form, ie., as a tutorial, it would belong in someone's namespace. If you just want to capture the bit about determining UUIDs, then that is already documented on the [https://wiki.archlinux.org/index.php/Persistent_block_device_naming#by-uuid relevant page]. [[User:Jasonwryan|Jasonwryan]] ([[User talk:Jasonwryan|talk]]) 22:19, 23 October 2017 (UTC)<br />
:: If you review the forum post mentioned it isn't that I'm saying users don't know how to capture UUID. I'm saying that in the case of LUKS/LVM the rd.luks.uuid requires the block device UUID and the root=UUID= requires the UUID of the root volume group. This is what is ambiguous in the original forum post. Let's be clear, this is a commonly followed install pathway (LUKS/LVM), so why let users be confused when we've got a documented use case? - [[User:storrgie|storrgie]] 22:25, 23 October 2017 (UTC)<br />
::: Then that relevant factoid belongs on the [https://wiki.archlinux.org/index.php/Dm-crypt/System_configuration dm-crypt page] page. [[User:Jasonwryan|Jasonwryan]] ([[User talk:Jasonwryan|talk]]) 22:39, 23 October 2017 (UTC)<br />
:::: I've tried to place it in an [https://wiki.archlinux.org/index.php?title=Dm-crypt/System_configuration&diff=493944&oldid=488939 appropriate place on that page], please advise. - [[User:storrgie|storrgie]] 22:50, 23 October 2017 (UTC)<br />
:::::I said *not* the entire tutorial, just the relevant snippet about locating the correct uuids. [[User:Jasonwryan|Jasonwryan]] ([[User talk:Jasonwryan|talk]]) 23:20, 23 October 2017 (UTC)<br />
:::::: It'd be nice to have a proposed modification rather than just slapping the revert button. - [[User:storrgie|storrgie]] 23:41, 23 October 2017 (UTC)<br />
:::::::[[user:enckse|enckse]]'s writeup is really no better than the forum post, it just describes how to do one specific thing without explaining the steps. That's not the wiki way, the wiki should explain the steps in some organized way and let users combine them as they want.<br />
:::::::That said, I think that everything discussed here is already on the [[dm-crypt/System configuration]] page:<br />
:::::::* mkinitcpio hooks: [[dm-crypt/System_configuration#mkinitcpio]] (two variants, base and systemd)<br />
:::::::* bootloader config: [[dm-crypt/System_configuration#Using_encrypt_hook]] (for the base hook) and [[dm-crypt/System_configuration#Using_sd-encrypt_hook]] (for the systemd hook) - the second section ''explains'' what the {{ic|rd.luks.*}} parameters actually do, this cannot be found in the forum post<br />
:::::::* If you don't know how to get the UUIDs, read the [[Persistent block device naming]] page - it is linked multiple times from [[dm-crypt/System configuration]]. There is no point to include a full example of {{ic|lsblk -f}} everywhere.<br />
:::::::Though I must admit, that I can't find the {{ic|rd.lvm.lv}} kernel parameter anywhere on the wiki. I have no idea what it's for and the forum post does not explain it either. Is it necessary for resume? Or for LVM? Or the LUKS/LVM combo? If you find out, feel free to explain it here so we can find an appropriate place on the wiki for it.<br />
:::::::-- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 07:25, 24 October 2017 (UTC)<br />
:::::::: {{ic|rd.lvm.lv}} seems to be a [https://www.kernel.org/pub/linux/utils/boot/dracut/dracut.html#_lvm dracut] specific thing. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 13:26, 29 October 2017 (UTC)<br />
:::::::: [https://wiki.archlinux.org/index.php?title=Mkinitcpio&diff=494191&oldid=493938] confuses me. Is {{ic|/etc/crypttab}} meant to be {{ic|/etc/crypttab}} on real root or {{ic|/etc/crypttab}} in initramfs (i.e. {{ic|/etc/crypttab.initramfs}} on real root)? -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 13:39, 29 October 2017 (UTC)<br />
:::::::::Since the snippet is from the {{man|8|systemd-cryptsetup-generator}} man page, I'd say it's the root where ''systemd-cryptsetup-generator'' is run. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 13:56, 29 October 2017 (UTC)<br />
::::::::::[[mkinitcpio#Non-root drives are not decrypted by sd-lvm2 hook]] doesn't make the distinction, which makes the whole section nonsense. Why would you expect sd-lvm2 to have access to block devices that are decrypted after boot (those listed in {{ic|/etc/crypttab}} on real root)? Using {{ic|/etc/crypttab.initramfs}} is far simpler than messing around with all those {{ic|rd.luks.}} and {{ic|luks.}} parameters. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 14:06, 29 October 2017 (UTC)<br />
:::::::::::I have no idea, I just moved the section from [[systemd-boot]]. See also [[Talk:Systemd-boot#Move_section_.22Non-root_drives_are_not_decrypted_by_sd-lvm2_mkinitcpio_hook.22]]. -- [[User:Lahwaacz|Lahwaacz]] ([[User talk:Lahwaacz|talk]]) 14:31, 29 October 2017 (UTC)<br />
<br />
== Improvements for the Common hooks table and section about systemd hook ==<br />
<br />
I find the ''Common hooks'' table extremely useful on getting some information about the {{Pkg|mkinitcpio}} hooks, especially when it comes to '''systemd''' hook compatibility, so I started to improving it, especially as some info seemed to be missing or incomplete. So far I added the note about the modules missing from the table that are included in {{Pkg|initramfs}} package and noted the {{Pkg|btrfs-progs}} for '''btrfs''' hook (it was noted only in ''Runtime'', even if package hosts files for both) and what it seems {{Pkg|mkinitcpio-nfs-utils}} requirement for '''net''' hook – although I'm not 100% sure about the last one, as the package wasn't installed on any of my Arch machines, so I just took a quick look at the repository in browser.<br />
<br />
Next thing that got me confused was the ''Installation'' and ''Runtime'' tables. I realized that ''Installation'' must actually mean the ''Build'' as that's how the hooks are separated and took a look at what is included in {{ic|/usr/lib/initcpio/install/}} and {{ic|/usr/lib/initcpio/hooks/}} respectively. I found out that while most of the info is accurate (and despite '''resume''' hook being present in {{ic|install/}} it indeed seems it only calls for runtime hook) there are some discrepancies – in {{ic|hooks/}} there seems to be no '''mdadm_udev''' hook, nor '''fsck''' hook. Also, while some busybox ('''base''') hooks have their ''Runtime'' equivalents, this is not in case for '''sd-''' equivalents or '''systemd's''' equivalent for the '''udev''', '''usr''' and '''resume''' (see below).<br />
<br />
Which brings me to the final point: using '''systemd''' in place of default '''udev''' and '''base'''. It is barely documented on wiki, a bit better on it's help entry, but have been covered in other places. I have been doing that on my machine for a while but are not sure of the explicit benefits of this. I haven't noticed major changes and default {{ic|mkinitcpio.conf}} doesn't even mention it. The table covers the systemd equivalents, but I think a separate section explaining this could be helpful – maybe I just haven't found it yet and it is documented somewhere on wiki, but IMO it should at least be noted near that table, as it's not mentioned anywhere prior it on that page, other the '''Related articles''' and the expansion note. Also, it took me a while to figure the busybox/systemd meanings as they are confusing. Busybox is not mentioned anywhere in the page prior the table, so it either needs prior knowledge or looking at external sources, like [https://web.archive.org/web/20150430223035/http://archlinux.me/brain0/2010/02/13/early-userspace-in-arch-linux/ /dev/brain0 &raquo; Blog Archive &raquo; Early Userspace in Arch Linux] linked at the beginning. The note for '''base''' to "Always keep this hook as the first hook unless you know what you are doing." on the wiki and {{ic|mkinitcpio -H base}} doesn't explain that it is safe to remove it and systemd's doesn't span towards '''base''' in the table. The only clue is "Provides a busybox recovery shell when using systemd hook." note and only {{ic|mkinitcpio -H systemd}} clears the situation – i.e. the fact that the base can be safely removed, if one doesn't need the recovery shell. It would be nice to explain systemd's hook meaning a little in this wiki page, and would be great if someone more knowledgeable help with that, as I'm only inexperienced tinkerer :).<br />
<br />
[[User:Faalagorn|Faalagorn]] ([[User talk:Faalagorn|talk]]) 03:26, 28 January 2018 (UTC)<br />
:Thanks for improving. I have slightly different question. Does base hook really provide rescue shell for systemd? Last time I tried to switch to systemd I noticed there is no way to get into rescue shell if something goes wrong. That's why I reverted back to busybox. --[[User:Mxfm|Mxfm]] ([[User talk:Mxfm|talk]]) 06:58, 28 January 2018 (UTC)<br />
<br />
::Rescue shell should work since systemd-230-5, see {{Bug|36265}}. If it does not work file a new bug report. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:28, 28 January 2018 (UTC)<br />
<br />
:I removed {{ic|shutdown}} and {{ic|sd-shutdown}} from the expansion template. {{ic|shutdown}} is deprecated[https://lists.archlinux.org/pipermail/arch-dev-public/2013-December/025742.html] and {{ic|sd-shutdown}} should not be added to {{ic|mkinitcpio.conf}}, it's used only by {{ic|mkinitcpio-generate-shutdown-ramfs.service}}.<br />
:As you found out ''Installation'' means stuff in {{ic|/usr/lib/initcpio/install/}} and ''Runtime'' - {{ic|/usr/lib/initcpio/hooks/}}. The ''Runtime'' stuff is custom busybox shell scripts made by Arch devs. {{ic|systemd}}-based hooks don't use any hacky scripts, they uses unit files to start the services so the ''Runtime'' doesn't really apply to {{ic|systemd}}-based hooks. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:44, 28 January 2018 (UTC)<br />
<br />
:systemd doesn't span towards base in the table because it's not a direct replacement for it, it doesn't provide a recovery shell. There's no need to use systemd hooks unless you have a problem with the busybox hooks, or need functionality that busybox hooks don't provide (e.g. {{Bug|23182}}, {{Bug|42851}}). -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 09:58, 28 January 2018 (UTC)<br />
<br />
::Thanks for replying! Since you clarified some of my doubts, I have updated the table to use the ''Build'' instead ''Installation'' notations, since that's what they were referred to previously, and linked to the appropriate sections. I also noted that runtime hooks are only used with busybox init and hopefully clarified the part about inits in the first two columns (maybe that should be rather explained in the sections above though?) – feel free to improve that further though! There's also some standing uncertainess about the '''mdadm_udev''' and '''fsck''' I mentioned, as their are missing their runtime files and are still described in the table? I still think that the systemd section would be worthwhile and a bit clarification on the table – I also found another benefit of systemd hook – additional initrd breakup in {{ic|systemd-analyze}}, [https://bbs.archlinux.org/viewtopic.php?id=210157 see this post and the post it refers to]. Since i was fiddling with things improving the boot time, the extra info is quite helpful for me. There may be some more nuances, too – I was also after [[silent boot]] and while my current systemd initramfs is quiet with just the {{ic|quiet}} and {{ic|loglevel}} [[kernel parameters]], the base + udev hooks are not and probably require more tinkering.[[User:Faalagorn|Faalagorn]] [[User talk:Faalagorn|☎]]/[[Special:Contributions/Faalagorn|✓]] 16:19, 28 January 2018 (UTC)<br />
::'''EDIT:''' There's also issue/question about the '''mdadm''' hook and systemd – according to [https://www.mail-archive.com/arch-projects@archlinux.org/msg03348.html this], '''mdadm''' hook doesn't work and only '''mdadm_udev''' works with '''systemd''' hook. If that still stand, shouldn't mdadm be marked as ''not implemented'', similar to the '''net''' hook for systemd-based init? Also, technically '''systemd''' hook should also have entry in the table I guess, similar how '''base''' (plus '''udev''', '''usr''' and '''resume''') have. [[User:Faalagorn|Faalagorn]] [[User talk:Faalagorn|☎]]/[[Special:Contributions/Faalagorn|✓]] 16:25, 28 January 2018 (UTC)<br />
::: I did some testing with [[minimal initramfs]] with no (cat) compression comparing '''base''' with '''systemd''' hooks boot times. [https://docs.google.com/spreadsheets/d/1xy_480nKj8g17hnWk5NVctQurWRN3K-tdm0lZ6auMVk/edit?usp=sharing Here are my results from 20 boot times] – it's not professional and done mainly for my own curiosity, but what I found out that while boot time were similar, I spotted the differences – with '''base''' hook EFISTUB loader was constantly 20-21ms faster, which is understandable since the base hook initramfs is physically smaller. However, when using '''systemd''' hook, time spent in userspace was constantly being less for at least a couple ms, averaging at around 27ms less. My boot times with that setup were extremely fast in the first place, running minimal system from an M.2 SSD and hindered mostly by firmware, so the difference may vary by systems, but it seems there's some possible boot time improvements with systemd other than the benefit of splitting initrd from kernel in {{ic|systemd-analyze}}. Also, when using '''systemd''' hook, {{ic|systemd-analyze blame}} now lists more services. initrd-* services are unsurprising, but there were also new systemd-fsck-root.service, systemd-modules-load.service and systemd-tmpfile-clean.service – and still time spent in userspace boot process is less. Unfortunately, the [[F2FS]] on that system broke with ''can't find valid checkpoint'' error when I uncleanly shut the system down, which according to sources found online is irreparable and relatively common lately, so I won't test it further with F2FS, especially as I'm not gonna trust my partition to F2FS anyime soon, but I'll see how it'll be with regular ext4. I may also get to writing a section about systemd-based initramfs unless there's some opposition or someone else is working on it and probably update the [[Minimal initramfs]] page as well. [[User:Faalagorn|Faalagorn]] [[User talk:Faalagorn|☎]]/[[Special:Contributions/Faalagorn|✓]] 13:11, 30 January 2018 (UTC)<br />
<br />
== Should the fsck-hook be defined after filesystems? ==<br />
<br />
For [[fsck]] to work on root correctly, should this hook be set after {{ic|filesystems}}?<br />
Why does it only check root and no other partitions as defined in [[fstab]]?<br />
[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 10:28, 12 August 2018 (UTC)<br />
<br />
:Hook order mostly matters for the runtime hooks ({{ic|/usr/lib/initcpio/hooks/*}}). Since fsck and filesystems only install files to the initramfs (and there are no conflicting files) their order is irrelevant. Other filesystems from {{ic|/etc/fstab}} are fscked after switching root, there's no need to fsck them in initramfs. -- [[User:nl6720|nl6720]] ([[User talk:nl6720|talk]]) 10:45, 12 August 2018 (UTC)<br />
::Thanks for the details and clarification. :)<br />
::[[User:Francoism|Francoism]] ([[User talk:Francoism|talk]]) 12:16, 12 August 2018 (UTC)<br />
<br />
== Possibly missing firmware for module XXXX ==<br />
<br />
I noticed that I had the same warning as outlined in this section, except that my warnings said:<br />
<br />
==> WARNING: Possibly missing firmware for module: aic94xx<br><br />
==> WARNING: Possibly missing firmware for module: wd719x<br />
<br />
I was wondering if I should edit this section to reflect that there are multiple versions of this message or just leave it as it is?<br><br />
(Disclaimer: I am a new user)<br />
<br />
[[User:Somebody62|Somebody62]] ([[User talk:Somebody62|talk]]) 19:49, 21 September 2018 (UTC)</div>Somebody62