diff --git a/.github/workflows/cibuild-setup-ubuntu.sh b/.github/workflows/cibuild-setup-ubuntu.sh index 7e75025d107..cb4668725fb 100755 --- a/.github/workflows/cibuild-setup-ubuntu.sh +++ b/.github/workflows/cibuild-setup-ubuntu.sh @@ -81,6 +81,9 @@ else fatal "Unknown compiler: $COMPILER" fi +# ASAN can crash with the new default of =32 +sysctl --write vm.mmap_rnd_bits=28 + apt-get -y update --fix-missing apt-get -y build-dep util-linux diff --git a/.github/workflows/cibuild.yml b/.github/workflows/cibuild.yml index 3686ebc7cbc..8500e4bb2ef 100644 --- a/.github/workflows/cibuild.yml +++ b/.github/workflows/cibuild.yml @@ -60,7 +60,7 @@ jobs: cancel-in-progress: true env: COMPILER: gcc - COMPILER_VERSION: 10 + COMPILER_VERSION: 13 SANITIZE: no COVERAGE: yes steps: diff --git a/AUTHORS b/AUTHORS index 9223f252b92..a5de37c8ed3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -102,6 +102,7 @@ CONTRIBUTORS: Ævar Arnfjörð Bjarmason ahmogit Alain Guibert + Alan Coopersmith Alan Curry Alan Jenkins Alan Wendt @@ -240,11 +241,13 @@ CONTRIBUTORS: Christoph Junghans Christoph Lameter Chris Webb + CismonX Claus Hindsgaul Cliff Wickman Clytie Siddall Cody Maloney Colin Gillespie + Colin Walters Colin Watson Cong Wang Corentin Chary @@ -319,6 +322,7 @@ CONTRIBUTORS: Eli Schwartz ellcs Elliott Mitchell + Emanuele Torre Emir SARI Enze Li Eric Badger @@ -350,6 +354,7 @@ CONTRIBUTORS: FeRD (Frank Dana) Filipe Brandenburger Filipe Manana + Firas Khalil Khana Flávio Leitner Florentin Duneau Florian Weimer @@ -379,6 +384,8 @@ CONTRIBUTORS: Gabriel M. Schuyler Gaël PORTAY Gao Xiang + Gavin Lloyd + Geoffrey Casper Georg Schiesser Georgy Yakovlev Gerald Schaefer @@ -415,8 +422,10 @@ CONTRIBUTORS: Helmut Grohne Hendrik Lönngren Henne Vogelsang + Henrik Lindström Hermann Beckers Hideki EIRAKU + Hideki Yoshida Hill Ma Hiroaki Sengoku H.J. Lu @@ -505,8 +514,10 @@ CONTRIBUTORS: John David Anglin John Garry John Groves + John Keeping John Keeping John Lindgren + John Paul Adrian Glaubitz John Paul Morrison John W Higgins John W. Linville @@ -514,6 +525,7 @@ CONTRIBUTORS: Jon Grant Jon Ringle Jookia + Jordan Williams Jordi Mas i Hernàndez Jörg Jenderek Joseph Parmelee @@ -536,6 +548,7 @@ CONTRIBUTORS: Kai Lüke Kalev Soikonen Kaligule + Karthikeyan Krishnasamy Kay Sievers Kees Cook Ken Kopin @@ -554,6 +567,7 @@ CONTRIBUTORS: Konstantin Khlebnikov kraptor Kunihiko IMAI + Kuniyuki Iwashima KyleMahlkuch Lada Trimasova LaMont Jones @@ -600,6 +614,7 @@ CONTRIBUTORS: Marek Polacek Mario Blättermann Mark Barbone + Mark Harfouche Mark Hindley Mark McLoughlin Mark Sheppard @@ -625,6 +640,7 @@ CONTRIBUTORS: Matthias König Mattias Nissler Matti Niemenmaa + Matt Turner Mauricio Faria de Oliveira Maurizio Lombardi maximilian attems @@ -634,6 +650,7 @@ CONTRIBUTORS: Meelis Roos Merlin Büge Mesutcan Kurt + Mete Durlu Michael Bunk michael-dev Michael Forney @@ -650,11 +667,13 @@ CONTRIBUTORS: Michal Schmidt Michal Suchanek Michel Robitaille + Miika Alikirri Mike Frysinger Mike Gilbert Mike Hommey Mikel Olasagasti Uranga Mike Place + Mike Yuan Mikhail Gusarov Mikhail Vorobyov Miklos Szeredi @@ -662,9 +681,11 @@ CONTRIBUTORS: Milan Bouchet-Valat Milan Broz Ming Lei + Mingye Wang (Artoria2e5) Miquel van Smoorenburg Mitchum DSouza Moritz Muehlenhoff + mr-bronson M.S.Colclough Namhyung Kim Naohiro Aota @@ -675,6 +696,7 @@ CONTRIBUTORS: Nathan Sharp NeilBrown Neil Horman + Nicholas Vinson nick black nick black Nick Holloway @@ -756,6 +778,7 @@ CONTRIBUTORS: Portisch Po-Yu Chuang Prarit Bhargava + Pratik R. Sampat Qais Yousef Quentin Rameau Radka Skvarilova @@ -780,6 +803,7 @@ CONTRIBUTORS: Rian Hunter Richard Allen Richard Fuchs + Richard Purdie Richard Tollerton Richard Weinberger Richard W.M. Jones @@ -805,6 +829,7 @@ CONTRIBUTORS: Romain Bouvier Romain Izard Romain Naour + Rom Ronan Pigott Ronny Chevalier Ron Sommeling @@ -833,6 +858,7 @@ CONTRIBUTORS: Santiago Vila Doncel Sascha Sommer Sassan Panahinejad + Satadru Pramanik, DO, MPH, MEng Scott James Remnant Scott Moser Scott Shambarger @@ -898,6 +924,7 @@ CONTRIBUTORS: taiyu Takeshi Hamasaki tamz + Tanish Yadav Temuri Doghonadze Terry Burton Thayne McCombs @@ -917,8 +944,10 @@ CONTRIBUTORS: Thorsten Glaser Thorsten Kukuk Thorsten Wilmer + Tianjia Zhang Tilman Schmidt Tim Gardner + Tim Hallmann Tim Hildering Timo Juhani Lindfors Timo Warns @@ -958,6 +987,7 @@ CONTRIBUTORS: Vicente Jimenez Aguilar Vicki Pfau Victor Dodon + Victor Westerhuis Viktor Rosendahl (BMW) Ville Skyttä Vincent Deffontaines @@ -975,6 +1005,7 @@ CONTRIBUTORS: Volker Schatz Vratislav Podzimek Waldemar Brodkorb + WanBingjiang WANG Chao Wang Shilong WANG Xuerui @@ -1016,6 +1047,7 @@ CONTRIBUTORS: Zeeshan Ali (Khattak) zeyun chen zhanchengbin + Zhaoming Luo zhenwei pi Zhi Li zuoqian diff --git a/Documentation/TODO b/Documentation/TODO index d229dd32928..880a92cde57 100644 --- a/Documentation/TODO +++ b/Documentation/TODO @@ -128,12 +128,12 @@ login-utils: - consolidate newgrp(1) * we have "su --group/--supp-group" to switch between groups, newgrp(1) in util-linux and shadow-utils (and sg(1) alias in shadow-utils) - * the unique functionality provided by newgpr(1) is support for group + * the unique functionality provided by newgrp(1) is support for group passwords [/etc/gshadow] -- do we really need this functionality? * maybe we can mark group-passwords as deprecated, and replace sg(1) and - newgpr(1) with su(1) code. The another way is to ask for group password in + newgrp(1) with su(1) code. The another way is to ask for group password in su --group too. - * note that shadow-utils newgpr(1) provides support for syslog and audit log. + * note that shadow-utils newgrp(1) provides support for syslog and audit log. libsmartcols / column -t diff --git a/Documentation/howto-contribute.txt b/Documentation/howto-contribute.txt index 1b782775713..97f3ce1e160 100644 --- a/Documentation/howto-contribute.txt +++ b/Documentation/howto-contribute.txt @@ -44,26 +44,28 @@ Repositories & Branches * Primary repository is on kernel.org: git clone git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git - We use this repository for master and stable branches only. - * Backup repository at github.com: git clone https://github.com/util-linux/util-linux.git - We use this repository to backup kernel.org and for pull requests, - issues tracking and topic branches. The master and stable branches are - always pushed to the both repositories in the same time. + We use this repository to backup kernel.org and for PULL REQUESTS, + issues tracking. The master and stable branches are always pushed to + the both repositories in the same time. It's recommended to use github.com for development. * Branches: - master - development for the next release - stable/* - stable maintenance releases - - Github only: - - next - optionally used when master branch is frozen due to -rcN releases - topic/* - long time development + master - continuous development + stable/vX.Y - stable releases + + Since version 2.40, the "master" branch remains continuously open and is + never subjected to feature freezes. The stabilization process for + the upcoming release is exclusively conducted within the "stable/" branches. + Upon branching from "master" to "stable/vX.Y," a new tag vX.Y+1-devel + is generated to serve as placeholder for git-based versioning (refer to + tools/git-version-gen). Subsequently, changes specific to the new release + (such as po/ updates) are selectively cherry-picked from "stable/vX.Y" to + "master" after the final release. Patching Process diff --git a/Documentation/howto-pull-request.txt b/Documentation/howto-pull-request.txt index 752e60aabc8..ceaeb20d894 100644 --- a/Documentation/howto-pull-request.txt +++ b/Documentation/howto-pull-request.txt @@ -28,17 +28,15 @@ git push yourgit Branches -------- -1. Use the name of the subsystem, such as blkid, libmount, misc-utils, -that is the common thing for changes in the change set. +1. The name of your branch isn't crucial, but if you intend to contribute +regularly, it's beneficial to establish a naming convention that works well for +you. For instance, consider prefixing your branch name with the subsystem's +name, such as blkid, libmount, etc. -2. If the changes do not have anything in common use some random name, -such as YYYY-MM-DD of the first patch in the branch. Name of the branch -does not really matter that much, with one exception. +2. Avoid using the 'master' branch for your contributions. The 'master' branch +should be reserved for staying synchronized with the upstream repository. -3. Do not use 'master' branch to your contributions. The 'master' branch -is needed to stay up to date with upstream. - -4. When done push your branch to your remote git server. +3. Once you've completed your work, push your branch to your remote Git server. git checkout master git branch textual @@ -130,13 +128,12 @@ git push -f yourgit textual:textual 4. You have two ways how to send your pull request: -4.1 Github pull request +4.1 Github pull request (recommended) -This is recommended way for your small and trivial changes, or for -work-in-progress projects (rewrites, new commands, etc.). All you -need is to press "pull request" button on GitHub. +This is recommended way for your changes. All you need is to press "pull +request" button on GitHub. -4.2. Send your work to the mailing list +4.2. Send your work to the mailing list (optional) Assuming the changes look good send them to mail list. Yes, the all of them! Sending pull request with github is not visible for project diff --git a/Documentation/licenses/COPYING.GPL-2.0-only b/Documentation/licenses/COPYING.GPL-2.0-only new file mode 100644 index 00000000000..d159169d105 --- /dev/null +++ b/Documentation/licenses/COPYING.GPL-2.0-only @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/Documentation/licenses/COPYING.MIT b/Documentation/licenses/COPYING.MIT new file mode 100644 index 00000000000..ca93ff85900 --- /dev/null +++ b/Documentation/licenses/COPYING.MIT @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Documentation/releases/v2.40-ReleaseNotes b/Documentation/releases/v2.40-ReleaseNotes index ada7f275984..71a5cf56de3 100644 --- a/Documentation/releases/v2.40-ReleaseNotes +++ b/Documentation/releases/v2.40-ReleaseNotes @@ -58,6 +58,19 @@ libsmartcols: supported. +Security issues +--------------- + +This release fixes CVE-2024-28085. The wall command does not filter escape +sequences from command line arguments. The vulnerable code was introduced in +commit cdd3cc7fa4 (2013). Every version since has been vulnerable. + +This allows unprivileged users to put arbitrary text on other users terminals, +if mesg is set to y and *wall is setgid*. Not all distros are affected (e.g. +CentOS, RHEL, Fedora are not; Ubuntu and Debian wall is both setgid and mesg is +set to y by default). + + Changes between v2.39 and v2.40 ------------------------------- @@ -78,8 +91,10 @@ agetty: audit-arch: - add support for alpha [Thomas Weißschuh] autotools: + - add dependence on libsmartcols for lsclocks [Karel Zak] - add missing dist_noinst_DATA [Karel Zak] - check for flex in autogen.sh [Karel Zak] + - cleanup lastlog2 stuff [Karel Zak] - fix AC_DEFINE_UNQUOTED() use [Karel Zak] - fix AC_PROG_LEX use [Karel Zak] - fix librtas check [Karel Zak] @@ -94,6 +109,7 @@ bash-completion: - update for mkswap [Karel Zak] blkdev.h: - avoid some unused argument warnings [Thomas Weißschuh] + - update location of SCSI device types [Christoph Anton Mitterer] blkid: - fix call to err_exclusive_options [Thomas Weißschuh] blkpr: @@ -119,9 +135,13 @@ build-sys: - fix po-man clean [Karel Zak] - fix typo in waitpid check [Thomas Weißschuh] - improve checkadoc [Karel Zak] + - introduce localstatedir [Karel Zak] + - make sure everywhere is localstatedir [Karel Zak] - only build col on glibc [Thomas Weißschuh] - only pass --failure-level if supported [Thomas Weißschuh] - rearrange gitignore in alphabetical order [Enze Li] + - release++ (v2.40-rc1) [Karel Zak] + - release++ (v2.40-rc2) [Karel Zak] - try to always use 64bit time support on glibc [Thomas Weißschuh] buildsys: - warn on usage of VLAs [Thomas Weißschuh] @@ -137,6 +157,8 @@ cfdisk: - ask y/n before wipe [Karel Zak] - fix menu behavior after writing changes [Karel Zak] - properly handle out-of-order partitions during resize [Thomas Weißschuh] +chcpu(8): + - document limitations of -g [Stanislav Brabec] chrt: - (man) add note about --sched-period lower limit [Karel Zak] - (tests) don't mark tests as known failed [Thomas Weißschuh] @@ -154,6 +176,7 @@ ci: - cache openwrt sdk [Thomas Weißschuh] - cancel running jobs on push [Frantisek Sumsal] - collect coverage on _exit() as well [Frantisek Sumsal] + - consistently use gcc 13 during CI [Thomas Weißschuh] - disable cpp/path-injection rule [Thomas Weißschuh] - don't combine -Werror and -fsanitize [Thomas Weißschuh] - enable -Werror for meson [Thomas Weißschuh] @@ -162,6 +185,7 @@ ci: - mark source directory as safe [Thomas Weißschuh] - packit add flex [Karel Zak] - prevent prompts during installation [Thomas Weißschuh] + - reduce aslr level to avoid issues with ASAN [Thomas Weißschuh] - run full testsuite under musl libc [Thomas Weißschuh] - tweak build dir's ACL when collecting coverage [Frantisek Sumsal] - use clang 16 [Thomas Weißschuh] @@ -182,8 +206,11 @@ dmesg: - add support for reserved and local facilities [Thomas Weißschuh] - cleanup function names [Karel Zak] - correctly print all supported facility names [Thomas Weißschuh] + - don't affect delta by --since [Karel Zak] - error out instead of silently ignoring force_prefix [Thomas Weißschuh] - fix FD leak [Karel Zak] + - fix delta calculation [Karel Zak] + - fix wrong size calculation [Karel Zak] - make kmsg read() buffer big enough for kernel [anteater] - man and coding style changes [Karel Zak] - only write one message to json [Thomas Weißschuh] @@ -192,16 +219,31 @@ dmesg: - support reading kmsg format from file [Thomas Weißschuh] - use symbolic defines for second conversions [Thomas Weißschuh] docs: + - add BSD-2-Clause [Karel Zak] - add SPDX to boilerplate.c [Karel Zak] + - add enosys to ReleaseNotes [Karel Zak] + - add exch to ReleaseNotes [Karel Zak] + - add hints about systemd [Karel Zak] + - add note about stable branches [Karel Zak] + - add setpgid do ReleaseNotes [Karel Zak] + - cleanup public domain license texts [Karel Zak] + - fix a typo [Masatake YAMATO] + - fix typos [Jakub Wilk] + - improve howto-pull-request [Karel Zak] - move Copyright in boilerplate.c [Karel Zak] + - move GPL-2.0 license text to Docimentation directory [Karel Zak] + - remove duplicated author name in namei.1.adoc [Emanuele Torre] - update AUTHORS file [Karel Zak] + - update v2.40-ReleaseNotes [Karel Zak] - use HTTPS for GitHub clone URLs [Jakub Wilk] + - use proper XSPD identifier for GPL-2.0 [Karel Zak] eject: - (tests) don't write mount hint to terminal [Karel Zak] enosys: - add --list [Thomas Weißschuh] - add bash completion [Thomas Weißschuh] - add common arguments [Thomas Weißschuh] + - add helpers for 64 bit integer loading [Thomas Weißschuh] - add manpage [Thomas Weißschuh] - add support for MIPS, PowerPC and ARC [Thomas Weißschuh] - add support for ioctl blocking [Thomas Weißschuh] @@ -213,6 +255,7 @@ enosys: - build BPF dynamically [Thomas Weißschuh] - don't require end-of-options marker [Thomas Weißschuh] - don't validate that numbers are found from headers [Thomas Weißschuh] + - drop unnessecary load of ioctl number [Thomas Weißschuh] - enable locale handling [Thomas Weißschuh] - find syscalls at build time [Thomas Weißschuh] - fix build on hppa [John David Anglin] @@ -224,6 +267,8 @@ enosys: - mark variable static [Thomas Weißschuh] - move from tests/helpers/test_enosys.c [Thomas Weißschuh] - only build if AUDIT_ARCH_NATIVE is defined [Thomas Weißschuh] + - optimize bytecode when execve is not blocked [Thomas Weißschuh] + - optimize bytecode when no ioctls are blocked [Thomas Weißschuh] - properly block execve syscall [Thomas Weißschuh] - provide a nicer build message for syscalls.h generation [Thomas Weißschuh] - remove long jumps from BPF [Thomas Weißschuh] @@ -251,6 +296,7 @@ fadvise: fallocate: - fix the way to evaluate values returned from posix_fallocate [Masatake YAMATO] fdisk: + - (man) fix typo, improve readability [Karel Zak] - add support for partition resizing [Thomas Weißschuh] - guard posix variable [Thomas Weißschuh] - remove usage of VLA [Thomas Weißschuh] @@ -268,6 +314,7 @@ findmnt: - add --list-columns [Karel Zak] - add -I, --dfi options for imitating the output of df -i [Masatake YAMATO] - add inode-related columns for implementing "df -i" like output [Masatake YAMATO] + - remove deleted option from manual [Chris Hofstaedtler] - use zero to separate lines in multi-line cells [Karel Zak] flock: - initialize timevals [-Werror=maybe-uninitialized] [Karel Zak] @@ -292,6 +339,7 @@ hexdump: - Add missing section header in man page [Mario Blättermann] - add '--one-byte-hex' format option [Tomasz Wojdat] - add new format-strings test case [Tomasz Wojdat] + - check blocksize when display data [Karel Zak] - use xasprintf to build string [Thomas Weißschuh] hwclock: - Improve set error in the face of jitter [Eric Badger] @@ -322,8 +370,19 @@ jsonwrt: - add ul_jsonwrt_value_s_sized [Thomas Weißschuh] last: - Add -T option for tab-separated output [Trag Date] + - avoid out of bounds array access [biubiuzy] last(1): - Document -T option for tab-separated output [Trag Date] +lastlog: + - cleanup function definitions [Karel Zak] + - improve errors printing [Karel Zak] +lastlog2: + - Don't print space if Service column is not printed [Miika Alikirri] + - Fix various issues with meson [Fabian Vogt] + - convert check_user() to boolean-like macro [Karel Zak] + - improve coding style [Karel Zak] + - make longopts[] static-const [Karel Zak] + - rename tmpfiles [Christian Hesse] ldattach: - don't call exit() from signal handler [Thomas Weißschuh] ldfd: @@ -334,12 +393,17 @@ lib/ include/: - cleanup licence headers [Karel Zak] lib/buffer: - make buffer usable for non-string data [Karel Zak] +lib/c_strtod: + - fix uselocale() fallback if strtod_l() is not available [Alan Coopersmith] lib/caputils: - fix integer handling issues [coverity scan] [Karel Zak] lib/color-names: - fix licence header [Karel Zak] lib/colors: - correct documentation of colors_add_scheme() [Thomas Weißschuh] +lib/cpuset: + - exit early from cpulist_parse [Thomas Weißschuh] + - make max variable const [Thomas Weißschuh] lib/env: - avoid underflow of read_all_alloc() return value [Thomas Weißschuh] - fix function name remote_entry -> remove_entry [Thomas Weißschuh] @@ -365,7 +429,10 @@ lib/path: - remove usage of VLA [Thomas Weißschuh] - set errno in case of error [Tobias Stoeckmann] lib/pty-session: + - Don't ignore SIGHUP. [Kuniyuki Iwashima] - initialize timevals [-Werror=maybe-uninitialized] [Karel Zak] +lib/sha1: + - fix for old glibc [Karel Zak] lib/shells: - Plug econf memory leak [Tobias Stoeckmann] - initialize free-able variables [Karel Zak] @@ -436,6 +503,7 @@ libblkid: - (vxfs) simplify prober [Thomas Weißschuh] - (vxfs) use hex escape for magic [Thomas Weißschuh] - (zonefs) avoid modifying shared buffer [Thomas Weißschuh] + - Check offset in LUKS2 header [Milan Broz] - add remove_buffer helper [Thomas Weißschuh] - avoid aligning out of probing area [Thomas Weißschuh] - avoid memory leak of cachefile path [Thomas Weißschuh] @@ -470,6 +538,7 @@ libfdisk: - use new blkid_wipe_all helper [Thomas Weißschuh] liblastlog2: - fix leaks [Karel Zak] + - fix pkg-config inclidedir [Karel Zak] libmount: - (context) avoid dead store [Thomas Weißschuh] - (optlist) correctly detect ro status [Thomas Weißschuh] @@ -482,6 +551,7 @@ libmount: - (utils) avoid dead store [Thomas Weißschuh] - (utils) fix statx fallback [Thomas Weißschuh] - (veritydev) use asprintf to build string [Thomas Weißschuh] + - Fix export of mnt_context_is_lazy and mnt_context_is_onlyonce [Matt Turner] - Fix regression when mounting with atime [Filipe Manana] - accept '\' as escape for options separator [Karel Zak] - add helper to log mount messages as emitted by kernel [Thomas Weißschuh] @@ -501,8 +571,10 @@ libmount: - don't assume errno after failed asprintf() [Karel Zak] - don't call hooks after mount. helper [Karel Zak] - don't call mount. helper with usernames [Karel Zak] - - don't canonicalize symlinks for bind operation [Karel Zak] + - don't hold write fd to mounted device [Jan Kara] + - don't initialize variable twice (#2714) [Thorsten Kukuk] - don't pass option "defaults" to helper [Thomas Weißschuh] + - fix copy & past bug in lock initialization [Karel Zak] - fix fsconfig value unescaping [Karel Zak] - fix options prepend/insert and merging [Karel Zak] - fix possible NULL dereference [coverity scan] [Karel Zak] @@ -520,10 +592,12 @@ libmount: - introduce /run/mount/utab.event [Karel Zak] - introduce LIBMOUNT_FORCE_MOUNT2={always,never,auto} [Karel Zak] - introduce reference counting for libmnt_lock [Karel Zak] + - make sure "option=" is used as string [Karel Zak] - make.stx_mnt_id use more robust [Karel Zak] - reduce utab.lock permissions [Karel Zak] - report all kernel messages for fd-based mount API [Thomas Weißschuh] - report failed syscall name [Karel Zak] + - report kernel message from new API [Karel Zak] - report statx in features list [Karel Zak] - test utab options after helper call [Thomas Weißschuh] - update documentation for MNT_ERR_APPLYFLAGS [Debarshi Ray] @@ -695,19 +769,26 @@ lsclocks: - rename column RESOLUTION to RESOL_RAW [Thomas Weißschuh] - split out data function [Thomas Weißschuh] - trim default columns [Thomas Weißschuh] + - use clock id from clock_getcpuclockid in add_cpu_clock [Alan Coopersmith] lscpu: - Even more Arm part numbers (early 2023) [Jeremy Linton] - Use 4K buffer size instead of BUFSIZ [Khem Raj] - add procfs-sysfs dump from VisionFive 2 [Jan Engelhardt] - cure empty output of lscpu -b/-p [Jan Engelhardt] + - don't use NULL sharedmap [Karel Zak] - fix caches separator for --parse= [Karel Zak] + - initialize all variables (#2714) [Thorsten Kukuk] + - remove redundant include [Karel Zak] - remove usage of VLA [Thomas Weißschuh] + - restructure op-mode printing [Thomas Weißschuh] lscpu-cputype.c: - assign value to multiple variables (ar->bit32 and ar->bit64) clang with -Wcomma will emit an warning of "misuse of comma operator". Since the value that will be assigned, is the same for both (bit32 and bit64), just assigning directly to both variables seems reasonable. [rilysh] lsdf: + - (man page) revise text decoration [Masatake YAMATO] - make the code for filling SOURCE, PARTITION, and MAJMIN reusable [Masatake YAMATO] lsfd: - (comment) fix a typo [Masatake YAMATO] + - (cosmetic) normalize whitespaces [Masatake YAMATO] - (filter) accept floating point numbers in expressions [Masatake YAMATO] - (filter) improve error message [Masatake YAMATO] - (filter) reduce duplicated code in macro definitions [Masatake YAMATO] @@ -727,6 +808,8 @@ lsfd: - (refactor) make the code for traversing threads reusable [Masatake YAMATO] - (refactor) make the way to handle character devices extensible [Masatake YAMATO] - (refactor) move miscdev specific code to cdev_misc_ops [Masatake YAMATO] + - (refactor) rename a function, s/new_process/new_proc/g [Masatake YAMATO] + - (refactor) rename add_nodevs to read_mountinfo [Masatake YAMATO] - (refactor) unify the invocations of sysfs_get_byteorder() [Masatake YAMATO] - (test) add a case for testing a unix socket including newline characters in its path name [Masatake YAMATO] - (tests) don't run mqueue test on byteorder mismatch [Thomas Weißschuh] @@ -771,6 +854,7 @@ lsfd: - delete redundant parentheses surrounding return value [Masatake YAMATO] - don't capitalize the help strings for the columns [Masatake YAMATO] - don't check the value returned from new_file() [Masatake YAMATO] + - don't list kernel threads unless --threads is given [Masatake YAMATO] - fill ENDPOINTS column for eventfd [Masatake YAMATO] - fill ENDPOINTS column for pty devices [Masatake YAMATO] - fill ENDPOINTS column of POSIX Mqueue [Masatake YAMATO] @@ -790,6 +874,7 @@ lsfd: - keep filter-only columns hidden [Karel Zak] - make the order of calling finalize_* and initialize_* consistent [Masatake YAMATO] - make the sock_xinfo layer be able to prepare an ipc_class for a given socket [Masatake YAMATO] + - make the way to read /proc/$pid/mountinfo robust [Masatake YAMATO] - mark XMODE.m on fds monitored by poll(2) and ppoll(2) [Masatake YAMATO] - mark XMODE.m on fds monitored by select(2) and pselect6(2) [Masatake YAMATO] - move a local variable to a narrower scope [Masatake YAMATO] @@ -797,6 +882,7 @@ lsfd: - print the detail of the timer associated with a timerfd [Masatake YAMATO] - print the masks specified in signalfds [Masatake YAMATO] - re-fill unix socket paths with sockdiag netlink interface [Masatake YAMATO] + - read /proc/$pid/ns/mnt earlier [Masatake YAMATO] - rearrange the aligment of the help messages [Masatake YAMATO] - show default columns in the help message [Masatake YAMATO] - switch to c99-conformant alignment specification [Thomas Weißschuh] @@ -823,6 +909,8 @@ lsfd.1.adoc: - revise type names for columns [Masatake YAMATO] - update for signalfds [Masatake YAMATO] - write about timerfd [Masatake YAMATO] +lsipc: + - fix semaphore USED counter [Karel Zak] lslocks: - (fix) set JSON type for COL_SIZE even when --bytes is specified [Masatake YAMATO] - (man) add missing fields [Masatake YAMATO] @@ -841,6 +929,7 @@ lslocks: - add a missing "break;" in a switch/case statement [Masatake YAMATO] - cleanup --list-columns [Karel Zak] - don't attempt to open /proc/-1/fd/ [Jakub Wilk] + - fix buffer overflow [Karel Zak] - improve --list-columns [Karel Zak] - refactor the code reading /proc/locks [Masatake YAMATO] - rename functions for future extension [Masatake YAMATO] @@ -854,23 +943,33 @@ m4: man: - Add enosys and lsclocks to po4a.cfg [Mario Blättermann] meson: + - Only build blkzone and blkpr if the required linux header exists [Jordan Williams] + - Only build libmount python module if python was found [Fabian Vogt] - add check for linux/mount.h [Thomas Weißschuh] - add check for struct statx [Thomas Weißschuh] - add conditionalization for test progs [Zbigniew Jędrzejewski-Szmek] + - add forgotten files to lists [Zbigniew Jędrzejewski-Szmek] - add missing scols sample [Karel Zak] + - avoid future-deprecated feature [Karel Zak] - avoid int operation with non-int [Thomas Weißschuh] - build test_mount_optlist [Thomas Weißschuh] - bump required version to 0.60.0 [Thomas Weißschuh] - check for HAVE_STRUCT_STATX_STX_MNT_ID [Karel Zak] - check for _NL_TIME_WEEK_1STDAY in langinfo.h [Christian Hesse] - conditionalize waitpid [Zbigniew Jędrzejewski-Szmek] + - create dedicated config for pam_lastlog2 [Thomas Weißschuh] + - define _GNU_SOURCE when checking for SO_PASSCRED [Thomas Weißschuh] - don't try to build test_ca without libcap-ng [Thomas Weißschuh] + - fix LIBBLKID_VERSION definition [Karel Zak] - fix copy & past error [Karel Zak] + - fix disablement check [Zbigniew Jędrzejewski-Szmek] + - fix mismatch with handling of lib_dl dependency [Zbigniew Jędrzejewski-Szmek] - implement HAVE_PTY [Zbigniew Jędrzejewski-Szmek] - include bash-completion for newgrp [Christian Hesse] - include bash-completion for write [Christian Hesse] - install chfn setuid [Christian Hesse] - install chsh setuid [Christian Hesse] + - install lastlog2.h library header file [Karel Zak] - install mount setuid [Christian Hesse] - install newgrp setuid [Christian Hesse] - install su setuid [Christian Hesse] @@ -880,12 +979,16 @@ meson: - install wall setgid [Christian Hesse] - install write executable with group 'tty' [Christian Hesse] - install write setgid [Christian Hesse] + - only build liblastlog when enabled [Thomas Weißschuh] - properly handle gettext non-existence [Thomas Weißschuh] - remove scols filter sample [Karel Zak] - require 0.57 [Thomas Weißschuh] + - run compiler checks with -D_GNU_SOURCE when necessary [Thomas Weißschuh] - run tests if with option program-tests [sewn] - try to always use 64bit time support on glibc [Thomas Weißschuh] - update for libsmartcols filter [Karel Zak] + - use a dependency object for liblastlog2 [Thomas Weißschuh] + - use a dependency object for sqlite3 [Thomas Weißschuh] - use bison --defines=HEADER [Karel Zak] - use meson features instead of bash [sewn] misc: @@ -901,6 +1004,8 @@ more: - avoid out-of-bound access [Thomas Weißschuh] - exit if POLLERR and POLLHUP on stdin is received [Goldwyn Rodrigues] - exit if POLLHUP or POLLERR on stdin is received [Goldwyn Rodrigues] + - fix poll() use [Karel Zak] + - remove second check for EOF (#2714) [Thorsten Kukuk] - remove usage of alloca() [Thomas Weißschuh] mount: - (tests) don't create /dev/nul [Thomas Weißschuh] @@ -923,18 +1028,26 @@ pipesz: po: - add ro.po (from translationproject.org) [Remus-Gabriel Chelu] - merge changes [Karel Zak] + - update cs.po (from translationproject.org) [Petr Písař] - update de.po (from translationproject.org) [Hermann Beckers] + - update de.po (from translationproject.org) [Mario Blättermann] - update es.po (from translationproject.org) [Antonio Ceballos Roa] + - update fr.po (from translationproject.org) [Frédéric Marchal] - update hr.po (from translationproject.org) [Božidar Putanec] - update ja.po (from translationproject.org) [Takeshi Hamasaki] + - update ko.po (from translationproject.org) [Seong-ho Cho] + - update pl.po (from translationproject.org) [Jakub Bogusz] + - update ro.po (from translationproject.org) [Remus-Gabriel Chelu] - update sr.po (from translationproject.org) [Мирослав Николић] - update tr.po (from translationproject.org) [Emir SARI] + - update uk.po (from translationproject.org) [Yuri Chornoivan] po-man: - add ko.po (from translationproject.org) [Seong-ho Cho] - add ro.po (from translationproject.org) [Remus-Gabriel Chelu] - merge changes [Karel Zak] - update de.po (from translationproject.org) [Mario Blättermann] - update fr.po (from translationproject.org) [Frédéric Marchal] + - update ro.po (from translationproject.org) [Remus-Gabriel Chelu] - update sr.po (from translationproject.org) [Мирослав Николић] - update uk.po (from translationproject.org) [Yuri Chornoivan] prlimit: @@ -946,6 +1059,8 @@ readprofile: - use xasprintf to build string [Thomas Weißschuh] rename: - properly handle directories with trailing slash [Thomas Weißschuh] +rev: + - Check for wchar conversion errors [Tim Hallmann] runuser.1.adoc: - Move -m|-p|--preserve-environment in order [Sebastian Pipping] runuser|su: @@ -959,8 +1074,10 @@ setarch: - add riscv64/riscv32 support [Michal Biesek] setpriv: - add landlock support [Thomas Weißschuh] + - apply landlock without configuration [Thomas Weißschuh] - fix group argument completion [Thomas Weißschuh] setterm: + - Document behavior of redirection [Stanislav Brabec] - avoid restoring flags from uninitialized memory [Chris Hofstaedtler] sfdisk: - Fix markup in man page [Mario Blättermann] @@ -969,6 +1086,12 @@ sha1: - properly wipe variables [Thomas Weißschuh] strv: - make strv_new_api static [Thomas Weißschuh] +su: + - (man) add hint about sessions [Karel Zak] + - (man) improve formatting [Karel Zak] + - fix use after free in run_shell [Tanish Yadav] +su, agetty: + - don't use program_invocation_short_name for openlog() [Karel Zak] sulogin: - relabel terminal according to SELinux policy [Christian Göttsche] - use get_terminal_default_type() [Karel Zak] @@ -978,7 +1101,9 @@ swapon: sys-utils: - cleanup license lines, add SPDX [Karel Zak] - fix SELinux context example in mount.8 [Todd Zullinger] + - hwclock-rtc fix pointer usage [Karthikeyan Krishnasamy] sys-utils/lscpu: + - Unblock SIGSEGV before vmware_bdoor [WanBingjiang] - Use ul_path_scanf where possible [Tobias Stoeckmann] term-utils: - fix indentation [Karel Zak] @@ -1014,6 +1139,7 @@ tests: - (lsfd filter-floating-point-nums) use --raw output to make the case more robust [Masatake YAMATO] - (lsfd mkfds-*) alter the L4 ports for avoiding the conflict with option-inet test case [Masatake YAMATO] - (lsfd mkfds-bpf-map) chmod a+x [Masatake YAMATO] + - (lsfd mkfds-inotify) consider environments not having / as a mount point [Masatake YAMATO] - (lsfd mkfds-inotify) use findmnt(1) instead of stat(1) to get bdev numbers [Masatake YAMATO] - (lsfd mkfds-socketpair) make a case for testing DGRAM a subtest and add a subtest for STREAM [Masatake YAMATO] - (lsfd mkfds-unix-dgram) don't depend on the number of whitespaces in the output [Masatake YAMATO] @@ -1038,8 +1164,11 @@ tests: - (lsfd) don't run the unix-stream testcase including newlines in the path on qemu-user [Masatake YAMATO] - (lsfd) extend the cases for testing BPF.NAME column [Masatake YAMATO] - (lsfd) extend the mkfds-socketpair case to test ENDPOINTS with SOCK.SHUTDOWN info [Masatake YAMATO] + - (lsfd) fix typoes in an error name [Masatake YAMATO] - (lsfd) show the entry for mqueue in /proc/self/mountinfo [Masatake YAMATO] - (lsfd) skip mkfds-netns if SIOCGSKNS is not defined [Masatake YAMATO] + - (lsfd) skip some cases if NETLINK_SOCK_DIAG for AF_UNIX is not available [Masatake YAMATO] + - (lsfd-functions.bash,cosmetic) unify the style to define functions [Masatake YAMATO] - (lsfd/filter) add a case for comparing floating point numbers [Masatake YAMATO] - (lslcoks) insert a sleep between taking a lock and running lslocks [Masatake YAMATO] - (lslocks) add cases testing HOLDERS column [Masatake YAMATO] @@ -1061,6 +1190,7 @@ tests: - (test_mkfds mkfds-multiplexing) dump /proc/$pid/syscall for debugging [Masatake YAMATO] - (test_mkfds mkfds-multiplexing) make the output of ts_skip_subtest visible [Masatake YAMATO] - (test_mkfds pty) add a new factory [Masatake YAMATO] + - (test_mkfds sockdiag) new factory [Masatake YAMATO] - (test_mkfds socketpair) add "halfclose" parameter [Masatake YAMATO] - (test_mkfds {bpf-prog,bpf-map}) fix memory leaks [Masatake YAMATO] - (test_mkfds) add --is-available option [Masatake YAMATO] @@ -1094,6 +1224,8 @@ tests: - make mount/special more robust [Karel Zak] - make ts_skip_capability accepts the output of older version of getpcaps [Masatake YAMATO] - skip broken tests on docker [Thomas Weißschuh] + - update build tests [Karel Zak] + - update dmesg deltas [Karel Zak] - update lsfd broken filter test [Karel Zak] - use array keys in more robust way [Karel Zak] - use scols_column_set_properties() in 'fromfile' sample [Karel Zak] @@ -1102,6 +1234,9 @@ tests,autotools: timeutils: - add an inline funciton, is_timespecset() [Masatake YAMATO] - add strtimespec_relative [Thomas Weißschuh] +tmpfiles: + - add and install for uuidd, generate /run/uuidd & /var/lib/libuuid [Christian Hesse] + - depend on systemd... [Christian Hesse] tools: - (asciidoctor) explicitly require extensions module [Thomas Weißschuh] tools/all_syscalls: @@ -1135,9 +1270,12 @@ uuidd: - add cont_clock persistence [Michael Trapp] - enable cont-clock in service file [Karel Zak] - improve man page for -cont-clock [Karel Zak] +uuidd.rc: + - create localstatedir in init script [Christian Hesse] uuidgen: - add option --count [Karel Zak] - mark some options mutually exclusive [Karel Zak] + - use xmalloc instead of malloc (#2714) [Thorsten Kukuk] verity: - modernize example in manpage [Luca Boccassi] - use -verity as the device mapper name instead of libmnt_ [Luca Boccassi] @@ -1147,6 +1285,7 @@ waitpid: wall: - do not error for ttys that do not exist [Mike Gilbert] - fix calloc cal [-Werror=calloc-transposed-args] [Karel Zak] + - fix escape sequence Injection [CVE-2024-28085] [Karel Zak] - query logind for list of users with tty (#2088) [Thorsten Kukuk] wdctl: - properyl test timeout conditions [Thomas Weißschuh] diff --git a/Documentation/releases/v2.40.1-ReleaseNotes b/Documentation/releases/v2.40.1-ReleaseNotes new file mode 100644 index 00000000000..3e3e3b15693 --- /dev/null +++ b/Documentation/releases/v2.40.1-ReleaseNotes @@ -0,0 +1,143 @@ +util-linux v2.40.1 Release Notes +================================ + +Changes between v2.40 and v2.40.1 +--------------------------------- + +README.licensing/flock: + - Add MIT license mention [Richard Purdie] +agetty: + - Don't override TERM passed by the user [Daan De Meyer] + - fix resource leak [Karel Zak] + - make reload code more robust [Karel Zak] +all_syscalls: + - don't hardcode AWK invocation [Thomas Weißschuh] + - don't warn during cleanup [Thomas Weißschuh] + - fail if any step fails [Thomas Weißschuh] + - use sed to extract defines from headers [Thomas Weißschuh] +autotools: + - distribute pam_lastlog2/meson.build [Thomas Weißschuh] +bcachefs: + - Remove BCACHEFS_SB_MAX_SIZE & check [Tony Asleson] +build-sys: + - release++ (v2.40.1-rc1) [Karel Zak] +cal: + - use unsigned int to follow union with unsigned int [Karel Zak] +docs: + - add COPYING.MIT [Karel Zak] + - fix GPL name typo [Karel Zak] + - update AUTHORS file [Karel Zak] + - update v2.40.1-ReleaseNotes [Karel Zak] +findmnt: + - always zero-terminate SOURCES data [Thomas Weißschuh] + - revise the code for -I and -D option [Masatake YAMATO] +fsck.minix: + - fix possible overrun [Karel Zak] +getopt: + - remove free-before-exit [Karel Zak] +hwclock: + - free temporary variable before return [Karel Zak] + - initialize parser variables [Karel Zak] +lastlog2: + - begin descriptions of options with a lowercase letter [Benno Schulenberg] +lib/pager: +libblkid: + - Fix segfault when blkid.conf doesn't exist [Karel Zak] + - topology/ioctl correctly handle kernel types [Thomas Weißschuh] + - topology/ioctl simplify ioctl handling [Thomas Weißschuh] +libfdisk: + - add initializer to geometry [Karel Zak] +libmount: + - Fix access check for utab in context [Karel Zak] + - fix comment typo for mnt_fs_get_comment() [Tianjia Zhang] + - fix possible memory leak [Karel Zak] + - fix umount --read-only [Karel Zak] +libsmartcols: + - fix column reduction [Karel Zak] + - reset wrap after calculation [Karel Zak] +libuuid: + - (man) fix function declarations [CismonX] +losetup: + - losetup.8 Clarify --direct-io [Colin Walters] +lsblk: + - simplify SOURCES code [Karel Zak] +lsclocks: + - fix FD leak [Karel Zak] +lsfd: + - (man) fix license name [Jakub Wilk] + - add LSFD_DEBUG env var for debugging [Masatake YAMATO] +lslocks: + - don't abort gathering per-process information even if opening a /proc/[0-9]* fails [Masatake YAMATO] + - remove a unused local variable [Masatake YAMATO] +lsns: + - fix netns use [Karel Zak] + - report with warnx if a namespace related ioctl fails with ENOSYS [Masatake YAMATO] + - tolerate lsns_ioctl(fd, NS_GET_{PARENT,USERNS}) failing with ENOSYS [Masatake YAMATO] +meson: + - Add build-blkdiscard option [Jordan Williams] + - Add build-blkpr option [Jordan Williams] + - Add build-blkzone option [Jordan Williams] + - Add build-blockdev option [Jordan Williams] + - Add build-chcpu option [Jordan Williams] + - Add build-dmesg option [Jordan Williams] + - Add build-enosys option [Jordan Williams] + - Add build-fadvise option [Jordan Williams] + - Add build-fsfreeze option [Jordan Williams] + - Add build-ipcmk option [Jordan Williams] + - Add build-ldattach option [Jordan Williams] + - Add build-lsclocks option [Jordan Williams] + - Add build-lsfd option and make rt dependency optional [Jordan Williams] + - Add build-rtcwake option [Jordan Williams] + - Add build-script option [Jordan Williams] + - Add build-scriptlive option [Jordan Williams] + - Add build-setarch option [Jordan Williams] + - Add have_pty variable to check if pty is available [Jordan Williams] + - Add missing check for build-ipcrm option [Jordan Williams] + - Define _DARWIN_C_SOURCE on macOS as is done in Autotools [Jordan Williams] + - Don't define HAVE_ENVIRON_DECL when environ is unavailable [Jordan Williams] + - Fix build by default and install behavior for build-pipesz option [Jordan Williams] + - Fix false positive detection of mempcpy on macOS [Jordan Williams] + - Only build libmount when required [Jordan Williams] + - Only pick up the rt library once [Jordan Williams] + - Only require the crypt library when necessary [Jordan Williams] + - Only use the --version-script linker flag where it is supported [Jordan Williams] + - Remove libblkid dependency on libmount [Jordan Williams] + - Remove lingering mq_libs variable [Jordan Williams] + - Require pty for the su and runuser executables [Jordan Williams] + - Require the seminfo type for ipcmk, ipcrm, and ipcs [Jordan Williams] + - Use has_type instead of sizeof to detect cpu_set_t type [Jordan Williams] + - Use libblkid as a dependency [Jordan Williams] + - Use libmount as a dependency [Jordan Williams] + - respect c_args/CFLAGS when generating syscalls [Karel Zak] +pam_lastlog2: + - link against liblastlog [Thomas Weißschuh] +po: + - merge changes [Karel Zak] + - update cs.po (from translationproject.org) [Petr Písař] + - update fr.po (from translationproject.org) [Frédéric Marchal] + - update hr.po (from translationproject.org) [Božidar Putanec] + - update ja.po (from translationproject.org) [Takeshi Hamasaki] + - update ko.po (from translationproject.org) [Seong-ho Cho] + - update pl.po (from translationproject.org) [Jakub Bogusz] + - update ro.po (from translationproject.org) [Remus-Gabriel Chelu] + - update uk.po (from translationproject.org) [Yuri Chornoivan] +po-man: + - merge changes [Karel Zak] + - update de.po (from translationproject.org) [Mario Blättermann] + - update ko.po (from translationproject.org) [Seong-ho Cho] + - update ro.po (from translationproject.org) [Remus-Gabriel Chelu] +strutils.h: + - Include strings.h header for strncasecmp function [Jordan Williams] +tests: + - (lsfd mkfds-multiplexing) skip if /proc/$pid/syscall is broken [Masatake YAMATO] + - (lsns ioctl_ns) add more debug print [Masatake YAMATO] + - (lsns ioctl_ns) record stdout/stderr for debugging the case [Masatake YAMATO] + - (test_mkfds sockdiag) verify the recieved message to detect whether the socket is usable or not [Masatake YAMATO] +textual: + - fix some typos and inconsistencies in usage and error messages [Benno Schulenberg] +wall: + - check sysconf() returnvalue [Karel Zak] + - fix possible memory leak [Karel Zak] + - make sure unsigned variable not underflow [Karel Zak] +xalloc.h: + - Include stdio.h header for vasprintf function [Jordan Williams] diff --git a/Documentation/releases/v2.40.2-ReleaseNotes b/Documentation/releases/v2.40.2-ReleaseNotes new file mode 100644 index 00000000000..29ffe061768 --- /dev/null +++ b/Documentation/releases/v2.40.2-ReleaseNotes @@ -0,0 +1,69 @@ +util-linux v2.40.2 Release Notes +================================ + +Changes between v2.40.1 and v2.40.2 +----------------------------------- + +autotools: + - Properly order install dependencies of pam_lastlog2 [Thomas Weißschuh] + - make pam install path configurable [Thomas Weißschuh] +bash-completion: + - add logger --sd-* completions [Ville Skyttä] +build-sys: + - _PATH_VENDORDIR workaround [Karel Zak] +cfdisk: + - fix possible integer overflow [coverity scan] [Karel Zak] +docs: + - update AUTHORS file [Karel Zak] +include/pidfd-utils: + - provide ENOSYS stubs if pidfd functions are missing [Thomas Weißschuh] + - remove hardcoded syscall fallback [Karel Zak] +lib/buffer: + - introduce ul_buffer_get_string() [Thomas Weißschuh] +lib/fileutils: + - add ul_basename() [Karel Zak] +lib/path: + - Fix ul_path_read_buffer() [Daan De Meyer] +lib/sysfs: + - abort device hierarchy walk at root of sysfs [Thomas Weißschuh] + - zero-terminate result of sysfs_blkdev_get_devchain() [Thomas Weißschuh] +libmount: + - fix syscall save function [Karel Zak] + - fix tree FD usage in subdir hook [Karel Zak] + - improving robustness in reading kernel messages [Karel Zak] + - add pidfs to pseudo fs list [Mike Yuan] +libsmartcols: + - fix reduction stages use [Karel Zak] + - ensure filter-scanner/paser.c file is newer than the .h file [Chen Qi] +libuuid: + - clear uuidd cache on fork() [Thomas Weißschuh] + - drop check for HAVE_TLS [Thomas Weißschuh] + - drop duplicate assignment liuuid_la_LDFLAGS [Karel Zak] + - split uuidd cache into dedicated struct [Thomas Weißschuh] + - Conditionally add uuid_time64 to sym. version map [Nicholas Vinson] +lscpu: + - New Arm Cortex part numbers [Jeremy Linton] +lsfd: + - Refactor the pidfd logic into lsfd-pidfd.c [Xi Ruoyao] + - Support pidfs [Xi Ruoyao] + - test Adapt test cases for pidfs [Xi Ruoyao] +meson: + - Correctly require the Python.h header for the python dependency [Jordan Williams] + - Fix build-python option [Jordan Williams] + - Only require Python module when building pylibmount [Jordan Williams] +misc-utils: + - uuidd Use ul_sig_err instead of errx [Cristian Rodríguez] +mkswap.8.adoc: + - update note regarding swapfile creation [Mike Yuan] +po: + - merge changes [Karel Zak] + - update es.po (from translationproject.org) [Antonio Ceballos Roa] + - update ja.po (from translationproject.org) [Hideki Yoshida] +po-man: + - merge changes [Karel Zak] +rename: + - use ul_basename() [Karel Zak] +sys-utils/setpgid: + - make -f work [Emanuele Torre] +wdctl: + - always query device node when sysfs is unavailable [Thomas Weißschuh] diff --git a/Documentation/releases/v2.40.3-ReleaseNotes b/Documentation/releases/v2.40.3-ReleaseNotes new file mode 100644 index 00000000000..3fa2d72a2cb --- /dev/null +++ b/Documentation/releases/v2.40.3-ReleaseNotes @@ -0,0 +1,109 @@ + +util-linux v2.40.3 Release Notes +================================ + +Changes between v2.40.2 and v2.40.3 +----------------------------------- + +agetty: + - Prevent cursor escape [Stanislav Brabec] + - add "systemd" to --version output [Karel Zak] + - fix ambiguous ‘else’ [-Werror=dangling-else] [Karel Zak] +audit-arch.h: + - add defines for m68k, sh [Chris Hofstaedtler] +autotools: + - Check for BPF_OBJ_NAME_LEN (required by lsfd) [Karel Zak] + - add --disable-enosys, check for linux/audit.h [Karel Zak] + - add Libs.private to uuid.pc [Karel Zak] + - allow enabling dmesg with --disable-all-programs [Henrik Lindström] + - allow enabling lsblk with --disable-all-programs [Henrik Lindström] + - check for sys/vfs.h and linux/bpf.h [Karel Zak] + - fix securedir and pam_lastlog2 install [Karel Zak] +bash-completion: + - add `--pty` and `--no-pty` options for `su` and `runuser` [Christoph Anton Mitterer] + - complete `--user` only for `runuser`, not for `su` [Christoph Anton Mitterer] +chcpu(8): + - Document CPU deconfiguring behavior [Mete Durlu] + - Fix typo [Mete Durlu] +ci: + - bump coveralls compiler version to gcc 13 [Karel Zak] +doc: + - fsck.8.adoc - fix email typo [Geoffrey Casper] +docs: + - update AUTHORS file [Karel Zak] +fdisk: + - (man) improve --sector-size description [Karel Zak] + - fix SGI boot file prompt [mr-bronson] + - fix fdisk_sgi_set_bootfile return value [mr-bronson] + - fix sgi_check_bootfile name size minimum [mr-bronson] + - fix sgi_menu_cb return value [mr-bronson] +fincore: + - Use correct syscall number for cachestat on alpha [John Paul Adrian Glaubitz] +fstab.5 mount: + - fstab.5 mount.8 add note about field separator [Karel Zak] +hardlink: + - fix memory corruption (size calculation) [Karel Zak] + - hardlink.1 directory|file is mandatory [наб] +hwclock: + - Remove ioperm declare as it causes nested extern declare warning [Zhaoming Luo] +lib/env: + - fix env_list_setenv() for strings without '=' [Karel Zak] +libblkid: + - (exfat) validate fields used by prober [Thomas Weißschuh] + - (gpt) use blkid_probe_verify_csum() for partition array checksum [Thomas Weißschuh] + - add FSLASTBLOCK for swaparea [Karel Zak] + - bitlocker add image for Windows 7+ BitLocker [Victor Westerhuis] + - bitlocker fix version on big-endian systems [Victor Westerhuis] + - improve portability [Yang Kun] +libfdisk: + - make sure libblkid uses the same sector size [Karel Zak] +libmount: + - exec mount helpers with posixly correct argument order [nilfsuser5678] + - extract common error handling function [John Keeping] + - propagate first error of multiple filesystem types [John Keeping] +libmount/context_mount: + - fix argument number comments [nilfsuser5678] +logger: + - correctly format tv_usec [Thomas Weißschuh] +lscpu: + - Skip aarch64 decode path for rest of the architectures [Pratik R. Sampat] + - make code more readable [Karel Zak] +lslocks: + - remove deadcode [coverity scan] [Karel Zak] +lsns: + - ignore ESRCH errors reported when accessing files under /proc [Masatake YAMATO] +man pages: + - document `--user` option for `runuser` [Christoph Anton Mitterer] + - use `user` rather than `username` [Christoph Anton Mitterer] +meson: + - check for BPF_OBJ_NAME_LEN and linux/bpf.h [Karel Zak] +mkswap: + - set selinux label also when creating file [Zbigniew Jędrzejewski-Szmek] +more: + - make sure we have data on stderr [Karel Zak] +nsenter: + - support empty environ[] [Karel Zak] +partx: + - Fix example in man page [Michal Suchanek] +po: + - merge changes [Karel Zak] + - update de.po (from translationproject.org) [Mario Blättermann] + - update ja.po (from translationproject.org) [Hideki Yoshida] + - update pt_BR.po (from translationproject.org) [Rafael Fontenelle] + - update sr.po (from translationproject.org) [Мирослав Николић] + - update zh_CN.po (from translationproject.org) [Mingye Wang (Artoria2e5)] +po-man: + - add missing langs to po4a.cfg [Karel Zak] + - fix typo, update .gitignore [Karel Zak] + - merge changes [Karel Zak] + - update fr.po (from translationproject.org) [Frédéric Marchal] + - update pt_BR.po (from translationproject.org) [Rafael Fontenelle] +tests: + - fdisk/bsd Update expected output for alpha [John Paul Adrian Glaubitz] +umount, losetup: + - Document loop destroy behavior [Stanislav Brabec] +uuidd: + - fix /var/lib/libuuid mode uuidd-tmpfiles.conf [Karel Zak] + - fix typo in tmpfiles.conf [Karel Zak] +- fix /var/lib/libuuid mode uuidd-tmpfiles.conf [Karel Zak] +- fix typo in tmpfiles.conf [Karel Zak] diff --git a/Documentation/releases/v2.40.4-ReleaseNotes b/Documentation/releases/v2.40.4-ReleaseNotes new file mode 100644 index 00000000000..fe13f9d0b33 --- /dev/null +++ b/Documentation/releases/v2.40.4-ReleaseNotes @@ -0,0 +1,13 @@ +util-linux v2.40.4 Release Notes +================================ + +Changes between v2.40.3 and v2.40.4 +----------------------------------- + +libmount: + - Revert "libmount: exec mount helpers with posixly correct argument order" +po: + - merge changes [Karel Zak] +po-man: + - merge changes [Karel Zak] + - Fix table formatting [M Sirabella] diff --git a/Makefile.am b/Makefile.am index 2986006933c..8204bc070ce 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3,6 +3,7 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/include \ -DLOCALEDIR=\"$(localedir)\" \ -D_PATH_RUNSTATEDIR=\"${runstatedir}\" \ + -D_PATH_LOCALSTATEDIR=\"${localstatedir}\" \ -D_PATH_SYSCONFSTATICDIR=\"${sysconfstaticdir}\" if USE_VENDORDIR @@ -55,6 +56,7 @@ usrsbin_exec_PROGRAMS = man_MANS = pkgconfig_DATA = usrlib_exec_LTLIBRARIES = +securelib_exec_LTLIBRARIES = bin_PROGRAMS = sbin_PROGRAMS = dist_usrbin_exec_SCRIPTS = @@ -152,10 +154,12 @@ EXTRA_DIST += \ # pylibmountexec module must be installed after usrlib_exec libraries, # otherwise the libtool relink step will fail to find libmount.la and # will try -lmount which is possibly not available. +# The same for securelib_exec and liblastlog2.la # # So introduce this dependency rule: # install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES -@verbatim_pylibmount_dependency@ +# install-securelib_execLTLIBRARIES: install-usrlib_execLTLIBRARIES +@verbatim_extra_dependency@ # # Don't rely on configure.ac AC_CONFIG_FILES for install paths. @@ -175,9 +179,11 @@ edit_cmd = sed \ -e 's|@docdir[@]|$(docdir)|g' \ -e 's|@includedir[@]|$(includedir)|g' \ -e 's|@runstatedir[@]|$(runstatedir)|g' \ + -e 's|@localstatedir[@]|$(localstatedir)|g' \ -e 's|@usrlib_execdir[@]|$(usrlib_execdir)|g' \ -e 's|@usrbin_execdir[@]|$(usrbin_execdir)|g' \ -e 's|@usrsbin_execdir[@]|$(usrsbin_execdir)|g' \ + -e 's|@SOCKET_LIBS[@]|$(SOCKET_LIBS)|g' \ -e 's|@VERSION[@]|$(VERSION)|g' \ -e 's|@ADJTIME_PATH[@]|$(ADJTIME_PATH)|g' \ -e 's|@LIBUUID_VERSION[@]|$(LIBUUID_VERSION)|g' \ diff --git a/NEWS b/NEWS index 5e70daed9e3..70523f30c88 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,35 @@ -util-linux 2.40: Jan 24 2024 +util-linux 2.40.4: Jan 13 2025 +* see Documentation/releases/v2.40.4-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40.4-ChangeLog + +util-linux 2.40.3: Jan 09 2025 +* see Documentation/releases/v2.40.3-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40.3-ChangeLog + +util-linux 2.40.2: Jul 04 2024 +* see Documentation/releases/v2.40.2-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40.2-ChangeLog + +util-linux 2.40.1: May 06 2024 +* see Documentation/releases/v2.40.1-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40.1-ChangeLog + +util-linux 2.40.1-rc1: May 01 2024 +* see Documentation/releases/v2.40.1-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40.1-rc1-ChangeLog + +util-linux 2.40: Mar 27 2024 * see Documentation/releases/v2.40-ReleaseNotes or the complete changelog at https://www.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40-ChangeLog +util-linux 2.40-rc2: Feb 29 2024 +* see Documentation/releases/v2.40-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40-rc2-ChangeLog + +util-linux 2.40-rc1: Jan 24 2024 +* see Documentation/releases/v2.40-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.40/v2.40-rc1-ChangeLog + util-linux 2.39: May 17 2023 * see Documentation/releases/v2.39-ReleaseNotes or the complete changelog at https://www.kernel.org/pub/linux/utils/util-linux/v2.39/v2.39-ChangeLog diff --git a/README.licensing b/README.licensing index 2af64624658..535ad348139 100644 --- a/README.licensing +++ b/README.licensing @@ -4,7 +4,7 @@ There is code under: * GPL-1.0-or-later - GNU General Public License version 1, or any later version - * GPL-2.0 - GNU General Public License version 2 + * GPL-2.0-only - GNU General Public License version 2 * GPL-2.0-or-later - GNU General Public License version 2, or any later version @@ -12,6 +12,8 @@ There is code under: * LGPL-2.1-or-later - GNU Lesser General Public License 2.1 or any later version + * MIT - MIT License + * BSD-2-Clause - Simplified BSD License * BSD-3-Clause - BSD 3-Clause "New" or "Revised" License diff --git a/bash-completion/logger b/bash-completion/logger index 7fb95652f24..608b8578269 100644 --- a/bash-completion/logger +++ b/bash-completion/logger @@ -39,6 +39,10 @@ _logger_module() COMPREPLY=( $(compgen -W "msgid" -- $cur) ) return 0 ;; + '--sd-id') + COMPREPLY=( $(compgen -W "timeQuality origin meta" -- $cur) ) + return 0 + ;; '-h'|'--help'|'-V'|'--version') return 0 ;; @@ -58,6 +62,8 @@ _logger_module() --priority --rfc3164 --rfc5424 + --sd-id + --sd-param --server --size --skip-empty diff --git a/bash-completion/su b/bash-completion/su index 913e445230a..6aa084b7f65 100644 --- a/bash-completion/su +++ b/bash-completion/su @@ -1,9 +1,10 @@ _su_module() { - local cur prev OPTS + local cur prev OPTS prog COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" + prog="${COMP_WORDS[0]}" case $prev in '-'|'-u'|'--user') COMPREPLY=( $(compgen -u -- $cur) ) @@ -23,8 +24,7 @@ _su_module() esac case $cur in -*) - OPTS=" --user - --preserve-environment + OPTS=" --preserve-environment --whitelist-environment --group --supp-group @@ -33,8 +33,14 @@ _su_module() --session-command --fast --shell + --pty + --no-pty --help --version" + if [ "${prog}" = runuser ]; then + OPTS=" ${OPTS} + --user" + fi COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) return 0 ;; diff --git a/configure.ac b/configure.ac index ec79bd4ead3..07369a57eba 100644 --- a/configure.ac +++ b/configure.ac @@ -29,7 +29,7 @@ PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{ dnl libblkid version LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" -LIBBLKID_DATE="24-Jan-2024" +LIBBLKID_DATE="13-Jan-2025" LIBBLKID_LT_MAJOR=1 LIBBLKID_LT_MINOR=1 LIBBLKID_LT_MICRO=0 @@ -92,6 +92,8 @@ AS_CASE([$prefix], ] ) +AC_SUBST([localstatedir]) + # default for old versions without $runstatedir AS_IF([test x"$runstatedir" = x], [runstatedir='${localstatedir}/run']) @@ -101,7 +103,6 @@ AS_CASE([$localstatedir:$runstatedir], [NONE:'${localstatedir}/run' | /var:'${localstatedir}/run' | NONE:'/run' ], [runstatedir=/run; AC_MSG_NOTICE([ --runstatedir defaults to /run])] ) - AC_SUBST([runstatedir]) @@ -119,6 +120,9 @@ AS_CASE([$libdir], ) AC_SUBST([usrlib_execdir]) +securelib_execdir='${libdir}/security' +AC_SUBST([securelib_execdir]) + # static configuration maintaned by packages (e.g. /usr/lib) AC_ARG_VAR([SYSCONFSTATICDIR], [Path to static system configuration, default ${prefix}/lib]) @@ -131,6 +135,7 @@ AC_PROG_CC AM_PROG_CC_C_O AC_PROG_MKDIR_P AC_PROG_YACC +AC_PROG_SED # Don't use autotools integrated LEX/YACC support for libsmartcols AC_PATH_PROG([FLEX], [flex]) @@ -327,6 +332,8 @@ AC_CHECK_HEADERS([ \ inttypes.h \ lastlog.h \ libutil.h \ + linux/audit.h \ + linux/bpf.h \ linux/blkzoned.h \ linux/btrfs.h \ linux/capability.h \ @@ -495,6 +502,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ dnl Convert some ac_cv_header_* variables to have_* dnl +have_linux_audit_h=$ac_cv_header_linux_audit_h have_linux_blkzoned_h=$ac_cv_header_linux_blkzoned_h have_linux_btrfs_h=$ac_cv_header_linux_btrfs_h have_linux_capability_h=$ac_cv_header_linux_capability_h @@ -514,6 +522,8 @@ have_shadow_h=$ac_cv_header_shadow_h have_sys_signalfd_h=$ac_cv_header_sys_signalfd_h have_utmpx_h=$ac_cv_header_utmpx_h have_mntent_h=$ac_cv_header_mntent_h +have_sys_vfs_h=$ac_cv_header_sys_vfs_h +have_linux_bpf_h=$ac_cv_header_linux_bpf_h AS_CASE([$linux_os:$have_linux_version_h], [yes:no], @@ -557,6 +567,10 @@ AC_CHECK_DECL([strsignal], [Define to 1 if have strsignal function prototype])], ) +AC_CHECK_DECL([BPF_OBJ_NAME_LEN], + [have_bpf_obj_name_len=yes], [have_bpf_obj_name_len=no], + [#include ]) + AC_CHECK_DECL([TIOCGLCKTRMIOS], [have_tiocglcktrmios=yes], [have_tiocglcktrmios=no], [#include ]) @@ -869,7 +883,7 @@ AM_CONDITIONAL([HAVE_MANPAGES], [test "x$have_manpages" = xyes]) AC_ARG_ENABLE([poman], - AS_HELP_STRING([--disable-poman], [generate translated man pages]), + AS_HELP_STRING([--disable-poman], [do not generate translated man pages]), [], [UL_DEFAULT_ENABLE([poman], [check])] ) UL_BUILD_INIT([poman]) @@ -1285,6 +1299,7 @@ UL_BUILD_INIT([libmount]) UL_REQUIRES_BUILD([libmount], [libblkid]) UL_REQUIRES_HAVE([libmount], [dirfd,ddfd], [dirfd or ddfd function]) UL_REQUIRES_HAVE([libmount], [mntent_h], [mntent.h header file]) +UL_REQUIRES_HAVE([libmount], [sys_vfs_h], [sys/vfs.h header file]) AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes]) AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes && test "x$enable_static" = xyes]) AS_IF([test "x$build_libmount" = xyes], [ @@ -1822,7 +1837,11 @@ AC_CHECK_FUNCS([swapon]) AC_CHECK_FUNCS([swapoff]) -UL_BUILD_INIT([lsblk], [check]) +AC_ARG_ENABLE([lsblk], + AS_HELP_STRING([--disable-lsblk], [do not build lsblk]), + [], [UL_DEFAULT_ENABLE([lsblk], [check])] +) +UL_BUILD_INIT([lsblk]) UL_REQUIRES_LINUX([lsblk]) UL_REQUIRES_BUILD([lsblk], [libblkid]) UL_REQUIRES_BUILD([lsblk], [libmount]) @@ -1847,6 +1866,8 @@ AC_ARG_ENABLE([lsfd], UL_BUILD_INIT([lsfd]) UL_REQUIRES_LINUX([lsfd]) UL_REQUIRES_BUILD([lsfd], [libsmartcols]) +UL_REQUIRES_HAVE([lsfd], [linux_bpf_h], [linux/bpf.h header file]) +UL_REQUIRES_HAVE([lsfd], [bpf_obj_name_len], [BPF_OBJ_NAME_LEN macro in linux/bpf.h]) AM_CONDITIONAL([BUILD_LSFD], [test "x$build_lsfd" = xyes]) AC_ARG_ENABLE([lslogins], @@ -1946,8 +1967,13 @@ UL_REQUIRES_LINUX([waitpid]) UL_REQUIRES_SYSCALL_CHECK([waitpid], [UL_CHECK_SYSCALL([pidfd_open])], [pidfd_open]) AM_CONDITIONAL([BUILD_WAITPID], [test "x$build_waitpid" = xyes]) -UL_BUILD_INIT([enosys], [check]) +AC_ARG_ENABLE([enosys], + AS_HELP_STRING([--disable-enosys], [do not build enosys]), + [], [UL_DEFAULT_ENABLE([enosys], [check])] +) +UL_BUILD_INIT([enosys]) UL_REQUIRES_LINUX([enosys]) +UL_REQUIRES_HAVE([enosys], [linux_audit_h], [linux/audit.h header file]) AS_IF([test "x$build_enosys" = xyes], [ AC_MSG_CHECKING([for valid audit arch]) AC_COMPILE_IFELSE( @@ -1961,6 +1987,7 @@ AM_CONDITIONAL([BUILD_ENOSYS], [test "x$build_enosys" = xyes]) UL_BUILD_INIT([lsclocks], [check]) UL_REQUIRES_LINUX([lsclocks]) +UL_REQUIRES_BUILD([lsclocks], [libsmartcols]) AM_CONDITIONAL([BUILD_LSCLOCKS], [test "x$build_lsclocks" = xyes]) UL_BUILD_INIT([getopt], [yes]) @@ -2140,7 +2167,11 @@ UL_BUILD_INIT([readprofile], [check]) UL_REQUIRES_LINUX([readprofile]) AM_CONDITIONAL([BUILD_READPROFILE], [test "x$build_readprofile" = xyes]) -UL_BUILD_INIT([dmesg], [check]) +AC_ARG_ENABLE([dmesg], + AS_HELP_STRING([--disable-dmesg], [do not build dmesg]), + [], [UL_DEFAULT_ENABLE([dmesg], [check])] +) +UL_BUILD_INIT([dmesg]) UL_REQUIRES_LINUX([dmesg]) AM_CONDITIONAL([BUILD_DMESG], [test "x$build_dmesg" = xyes]) @@ -2752,16 +2783,17 @@ AM_CONDITIONAL([BUILD_PYLIBMOUNT], [test "x$build_pylibmount" = "xyes"]) # We need to introduce a verbatim dependency into the Makefile, without automake # trying to interpret it, so push it as a AM_SUBST_NOTMAKE variable. -verbatim_pylibmount_dependency=' +verbatim_extra_dependency=' # pylibmountexec module must be installed after usrlib_exec libraries, # otherwise the libtool relink step will fail to find libmount.la and # will try -lmount which is possibly not available. install-pylibmountexecLTLIBRARIES: install-usrlib_execLTLIBRARIES +install-securelib_execLTLIBRARIES: install-usrlib_execLTLIBRARIES ' -AC_SUBST([verbatim_pylibmount_dependency]) -AM_SUBST_NOTMAKE([verbatim_pylibmount_dependency]) +AC_SUBST([verbatim_extra_dependency]) +AM_SUBST_NOTMAKE([verbatim_extra_dependency]) AC_ARG_ENABLE([pg-bell], AS_HELP_STRING([--disable-pg-bell], [let pg not ring the bell on invalid keys]), diff --git a/disk-utils/cfdisk.c b/disk-utils/cfdisk.c index 11b7faef752..183b7671eb3 100644 --- a/disk-utils/cfdisk.c +++ b/disk-utils/cfdisk.c @@ -1741,6 +1741,8 @@ static int ui_table_goto(struct cfdisk *cf, int where) if (where < 0) where = 0; + if (!nparts) + where = 0; else if ((size_t) where > nparts - 1) where = nparts - 1; diff --git a/disk-utils/fdisk-menu.c b/disk-utils/fdisk-menu.c index 4c6a9189349..68e4252ed29 100644 --- a/disk-utils/fdisk-menu.c +++ b/disk-utils/fdisk-menu.c @@ -974,7 +974,7 @@ static int sgi_menu_cb(struct fdisk_context **cxt0, rc = fdisk_toggle_partition_flag(cxt, n, SGI_FLAG_BOOT); break; case 'b': - fdisk_sgi_set_bootfile(cxt); + rc = fdisk_sgi_set_bootfile(cxt); break; case 'c': rc = fdisk_ask_partnum(cxt, &n, FALSE); diff --git a/disk-utils/fdisk.8.adoc b/disk-utils/fdisk.8.adoc index d7b863f2d21..4a1447df4f4 100644 --- a/disk-utils/fdisk.8.adoc +++ b/disk-utils/fdisk.8.adoc @@ -40,7 +40,7 @@ Note that *partx*(8) provides a rich interface for scripts to print disk layouts == OPTIONS *-b*, *--sector-size* _sectorsize_:: -Specify the sector size of the disk. Valid values are 512, 1024, 2048, and 4096. (Recent kernels know the sector size. Use this option only on old kernels or to override the kernel's ideas.) Since util-linux-2.17, *fdisk* differentiates between logical and physical sector size. This option changes both sector sizes to _sectorsize_. +Specify the sector size of the disk. Valid values are 512, 1024, 2048, and 4096. The kernel is aware of the sector size for regular block devices. Use this option only on very old kernels, when working with disk images, or to override the kernel's default sector size. Since util-linux-2.17, *fdisk* distinguishes between logical and physical sector size. This option changes both sector sizes to the specified _sectorsize_. *-B*, *--protect-boot*:: Don't erase the beginning of the first disk sector when creating a new disk label. This feature is supported for GPT and MBR. diff --git a/disk-utils/fsck.8.adoc b/disk-utils/fsck.8.adoc index 976e7ff08d0..bf6a0ec2673 100644 --- a/disk-utils/fsck.8.adoc +++ b/disk-utils/fsck.8.adoc @@ -1,7 +1,7 @@ //po4a: entry man manual //// Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. -This file may be copied under the terms of the GNU Public License. +This file may be copied under the terms of the GNU General Public License. //// = fsck(8) :doctype: manpage @@ -151,9 +151,14 @@ enables libmount debug output. _/etc/fstab_ +== NOTES +During boot, *systemd* does not invoke *fsck -A*. Instead, it schedules the activation +of mounts individually, taking into account dependencies on backing devices, networking, +and other factors. Consequently, *fsck* is called individually for each device. + == AUTHORS -mailto:tytso@mit.edu>[Theodore Ts'o], +mailto:tytso@mit.edu[Theodore Ts'o], mailto:kzak@redhat.com[Karel Zak] == SEE ALSO diff --git a/disk-utils/fsck.minix.c b/disk-utils/fsck.minix.c index 03a47460ecb..08903587b6f 100644 --- a/disk-utils/fsck.minix.c +++ b/disk-utils/fsck.minix.c @@ -548,7 +548,7 @@ get_dirsize(void) { block = Inode[ROOT_INO].i_zone[0]; read_block(block, blk); - for (size = 16; size < MINIX_BLOCK_SIZE; size <<= 1) { + for (size = 16; size + 2 < MINIX_BLOCK_SIZE; size <<= 1) { if (strcmp(blk + size + 2, "..") == 0) { dirsize = size; namelen = size - 2; diff --git a/disk-utils/mkswap.8.adoc b/disk-utils/mkswap.8.adoc index 17212438a64..2aba655de4e 100644 --- a/disk-utils/mkswap.8.adoc +++ b/disk-utils/mkswap.8.adoc @@ -112,7 +112,7 @@ Presently, Linux allows 32 swap areas. The areas in use can be seen in the file If you don't know the page size that your machine uses, you can look it up with *getconf PAGESIZE*. -To set up a swap file, it is necessary to create that file before initializing it with *mkswap*, e.g. using a command like +Aside from *mkswap --file*, it is also possible to create the swapfile manually before initializing it with *mkswap*, e.g. using a command like .... # dd if=/dev/zero of=swapfile bs=1MiB count=$((8*1024)) @@ -120,7 +120,7 @@ To set up a swap file, it is necessary to create that file before initializing i to create 8GiB swapfile. -Please read notes from *swapon*(8) about *the swap file use restrictions* (holes, preallocation and copy-on-write issues). +In such a case, please read notes from *swapon*(8) about *the swap file use restrictions* (holes, preallocation and copy-on-write issues). == SEE ALSO diff --git a/disk-utils/mkswap.c b/disk-utils/mkswap.c index 9c80b070c75..ca1f07b86d5 100644 --- a/disk-utils/mkswap.c +++ b/disk-utils/mkswap.c @@ -754,7 +754,8 @@ int main(int argc, char **argv) deinit_signature_page(&ctl); #ifdef HAVE_LIBSELINUX - if (S_ISREG(ctl.devstat.st_mode) && is_selinux_enabled() > 0) { + if ((ctl.file || S_ISREG(ctl.devstat.st_mode)) && + is_selinux_enabled() > 0) { const char *context_string; char *oldcontext; context_t newcontext; diff --git a/disk-utils/partx.8.adoc b/disk-utils/partx.8.adoc index bfc0c5a26e8..180f1c32b2c 100644 --- a/disk-utils/partx.8.adoc +++ b/disk-utils/partx.8.adoc @@ -122,7 +122,7 @@ Lists the length in sectors and human-readable size of partition 5 on _/dev/sda_ partx --add --nr 3:5 /dev/sdd:: Adds all available partitions from 3 to 5 (inclusive) on _/dev/sdd_. -partx -d --nr :-1 /dev/sdd:: +partx -d --nr -1: /dev/sdd:: Removes the last partition on _/dev/sdd_. == AUTHORS diff --git a/disk-utils/swaplabel.8.adoc b/disk-utils/swaplabel.8.adoc index 14ab6c438d0..de440d39465 100644 --- a/disk-utils/swaplabel.8.adoc +++ b/disk-utils/swaplabel.8.adoc @@ -1,7 +1,7 @@ //po4a: entry man manual //// Copyright 2010 Jason Borden -This file may be copied under the terms of the GNU Public License. +This file may be copied under the terms of the GNU General Public License. //// = swaplabel(8) :doctype: manpage diff --git a/disk-utils/swaplabel.c b/disk-utils/swaplabel.c index 6b5078677fb..2c56e15018a 100644 --- a/disk-utils/swaplabel.c +++ b/disk-utils/swaplabel.c @@ -8,7 +8,7 @@ * * Usage: swaplabel [-L label] [-U UUID] device * - * This file may be redistributed under the terms of the GNU Public License + * This file may be redistributed under the terms of the GNU General Public License * version 2 or later. * */ diff --git a/include/audit-arch.h b/include/audit-arch.h index ade1824174d..9afc663cd53 100644 --- a/include/audit-arch.h +++ b/include/audit-arch.h @@ -35,6 +35,8 @@ # endif #elif __powerpc__ # define SECCOMP_ARCH_NATIVE AUDIT_ARCH_PPC +#elif __m68k__ +# define SECCOMP_ARCH_NATIVE AUDIT_ARCH_M68K #elif __mips__ # if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ # define SECCOMP_ARCH_NATIVE AUDIT_ARCH_MIPS @@ -47,6 +49,12 @@ # else # define SECCOMP_ARCH_NATIVE AUDIT_ARCH_ARCV2 # endif +#elif __sh__ +# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +# define SECCOMP_ARCH_NATIVE AUDIT_ARCH_SH +# else +# define SECCOMP_ARCH_NATIVE AUDIT_ARCH_SHEL +# endif #elif __sparc__ # if __SIZEOF_POINTER__ == 4 # define SECCOMP_ARCH_NATIVE AUDIT_ARCH_SPARC diff --git a/include/blkdev.h b/include/blkdev.h index f2252e78070..efa33af11fa 100644 --- a/include/blkdev.h +++ b/include/blkdev.h @@ -131,8 +131,8 @@ int blkdev_is_cdrom(int fd); /* get device's geometry - legacy */ int blkdev_get_geometry(int fd, unsigned int *h, unsigned int *s); -/* SCSI device types. Copied almost as-is from kernel header. - * http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/scsi/scsi.h */ +/* SCSI device types. Copied almost as-is from kernel header + * (include/scsi/scsi_proto.h). */ #define SCSI_TYPE_DISK 0x00 #define SCSI_TYPE_TAPE 0x01 #define SCSI_TYPE_PRINTER 0x02 diff --git a/include/buffer.h b/include/buffer.h index b122da4eb41..1ccbc971b19 100644 --- a/include/buffer.h +++ b/include/buffer.h @@ -35,6 +35,7 @@ int ul_buffer_append_ntimes(struct ul_buffer *buf, size_t n, const char *str); int ul_buffer_set_data(struct ul_buffer *buf, const char *data, size_t sz); char *ul_buffer_get_data(struct ul_buffer *buf, size_t *sz, size_t *width); +char *ul_buffer_get_string(struct ul_buffer *buf, size_t *sz, size_t *width); char *ul_buffer_get_safe_data(struct ul_buffer *buf, size_t *sz, size_t *width, const char *safechars); size_t ul_buffer_get_bufsiz(struct ul_buffer *buf); diff --git a/include/crc32.h b/include/crc32.h index 81c7703b17e..0d34da0d249 100644 --- a/include/crc32.h +++ b/include/crc32.h @@ -1,6 +1,6 @@ /* - * No copyright is claimed. This code is in the public domain; do with it what - * you wish. + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. */ #ifndef UL_CRC32_H #define UL_CRC32_H diff --git a/include/crc32c.h b/include/crc32c.h index 3d27461844d..1ac6b970c6e 100644 --- a/include/crc32c.h +++ b/include/crc32c.h @@ -1,6 +1,6 @@ /* - * No copyright is claimed. This code is in the public domain; do with it what - * you wish. + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. */ #ifndef UL_CRC32C_H #define UL_CRC32C_H diff --git a/include/fileutils.h b/include/fileutils.h index 538eab0b74e..6fc93d0db82 100644 --- a/include/fileutils.h +++ b/include/fileutils.h @@ -114,5 +114,6 @@ int ul_copy_file(int from, int to); extern int ul_reopen(int fd, int flags); +extern char *ul_basename(char *path); #endif /* UTIL_LINUX_FILEUTILS */ diff --git a/include/pager.h b/include/pager.h index 6d8fdd771e6..e5ba4d7217a 100644 --- a/include/pager.h +++ b/include/pager.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: GPL-2.0-or-later * - * This file may be redistributed under the terms of the GNU Public License. + * This file may be redistributed under the terms of the GNU General Public License. */ #ifndef UTIL_LINUX_PAGER #define UTIL_LINUX_PAGER diff --git a/include/pathnames.h b/include/pathnames.h index 81fa405f63c..de456c53e7a 100644 --- a/include/pathnames.h +++ b/include/pathnames.h @@ -233,4 +233,9 @@ /* Maximum number of PIDs system supports */ #define _PATH_PROC_PIDMAX "/proc/sys/kernel/pid_max" +/* libeconf default */ +#ifndef _PATH_VENDORDIR +# define _PATH_VENDORDIR "/usr/etc" +#endif + #endif /* PATHNAMES_H */ diff --git a/include/pidfd-utils.h b/include/pidfd-utils.h index ff0bc4c792f..aa4cce5a3f3 100644 --- a/include/pidfd-utils.h +++ b/include/pidfd-utils.h @@ -5,29 +5,17 @@ #ifndef UTIL_LINUX_PIDFD_UTILS #define UTIL_LINUX_PIDFD_UTILS +#include +#include + #ifdef HAVE_SYS_SYSCALL_H # include -/* - * If the kernel headers are too old to provide the syscall numbers, let's - * define them ourselves. This can be helpful while cross-compiling. - */ -#ifndef __NR_pidfd_send_signal -#define __NR_pidfd_send_signal 424 -#define SYS_pidfd_send_signal __NR_pidfd_send_signal -#endif -#ifndef __NR_pidfd_open -#define __NR_pidfd_open 434 -#define SYS_pidfd_open __NR_pidfd_open -#endif - # if defined(SYS_pidfd_send_signal) && defined(SYS_pidfd_open) # ifdef HAVE_SYS_PIDFD_H # include # endif -# include # ifndef HAVE_PIDFD_SEND_SIGNAL -# include static inline int pidfd_send_signal(int pidfd, int sig, siginfo_t *info, unsigned int flags) { @@ -46,4 +34,23 @@ static inline int pidfd_open(pid_t pid, unsigned int flags) # endif /* SYS_pidfd_send_signal */ #endif /* HAVE_SYS_SYSCALL_H */ + +#ifndef UL_HAVE_PIDFD +static inline int pidfd_send_signal(int pidfd __attribute__((unused)), + int sig __attribute__((unused)), + siginfo_t *info __attribute__((unused)), + unsigned int flags __attribute__((unused))) +{ + errno = ENOSYS; + return -1; +} + +static inline int pidfd_open(pid_t pid __attribute__((unused)), + unsigned int flags __attribute__((unused))) +{ + errno = ENOSYS; + return -1; +} +#endif + #endif /* UTIL_LINUX_PIDFD_UTILS */ diff --git a/include/pty-session.h b/include/pty-session.h index bece863f5c5..734a7f6893a 100644 --- a/include/pty-session.h +++ b/include/pty-session.h @@ -1,5 +1,6 @@ /* - * This code is in the public domain; do with it what you wish. + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. * * Written by Karel Zak in Jul 2019 */ diff --git a/include/strutils.h b/include/strutils.h index e9f8a0ce040..b9f3e08ec67 100644 --- a/include/strutils.h +++ b/include/strutils.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include diff --git a/include/xalloc.h b/include/xalloc.h index f7d42c99f52..6675988d690 100644 --- a/include/xalloc.h +++ b/include/xalloc.h @@ -13,6 +13,7 @@ #ifndef UTIL_LINUX_XALLOC_H #define UTIL_LINUX_XALLOC_H +#include #include #include diff --git a/lib/buffer.c b/lib/buffer.c index cc863fa3afe..a3a19c26eee 100644 --- a/lib/buffer.c +++ b/lib/buffer.c @@ -188,6 +188,19 @@ char *ul_buffer_get_data(struct ul_buffer *buf, size_t *sz, size_t *width) return buf->begin; } +char *ul_buffer_get_string(struct ul_buffer *buf, size_t *sz, size_t *width) +{ + char *ret; + + ret = ul_buffer_get_data(buf, sz, width); + + /* data in buffer is already zero-terminated */ + if (sz) + *sz = *sz + 1; + + return ret; +} + /* size of allocated area (!= size of stored data */ size_t ul_buffer_get_bufsiz(struct ul_buffer *buf) { diff --git a/lib/env.c b/lib/env.c index 2bdfe5697e9..f35006f3a03 100644 --- a/lib/env.c +++ b/lib/env.c @@ -93,6 +93,7 @@ struct ul_env_list *env_from_fd(int fd) ssize_t rc = 0; struct ul_env_list *ls = NULL; + errno = 0; if ((rc = read_all_alloc(fd, &buf)) < 1) return NULL; buf[rc] = '\0'; @@ -118,13 +119,13 @@ int env_list_setenv(struct ul_env_list *ls) int rc = 0; while (ls && rc == 0) { - if (ls->env) { + if (ls->env && *ls->env) { char *val = strchr(ls->env, '='); - if (!val) - continue; - *val = '\0'; - rc = setenv(ls->env, val + 1, 0); - *val = '='; + if (val) { + *val = '\0'; + rc = setenv(ls->env, val + 1, 0); + *val = '='; + } } ls = ls->next; } diff --git a/lib/fileeq.c b/lib/fileeq.c index 2a74af8a799..2d5038c4e4b 100644 --- a/lib/fileeq.c +++ b/lib/fileeq.c @@ -272,12 +272,12 @@ size_t ul_fileeq_set_size(struct ul_fileeq *eq, uint64_t filesiz, nreads = filesiz / readsiz; /* enlarge readsize for large files */ if (nreads > maxdigs) - readsiz = filesiz / maxdigs; + readsiz = (filesiz + maxdigs - 1) / maxdigs; break; } eq->readsiz = readsiz; - eq->blocksmax = filesiz / readsiz; + eq->blocksmax = (filesiz + readsiz - 1) / readsiz; DBG(EQ, ul_debugobj(eq, "set sizes: filesiz=%ju, maxblocks=%" PRIu64 ", readsiz=%zu", eq->filesiz, eq->blocksmax, eq->readsiz)); diff --git a/lib/fileutils.c b/lib/fileutils.c index 7779e10e68d..95ee516350c 100644 --- a/lib/fileutils.c +++ b/lib/fileutils.c @@ -2,7 +2,7 @@ * This code is in the public domain; do with it what you wish. * * Copyright (C) 2012 Sami Kerola - * Copyright (C) 2012-2020 Karel Zak + * Copyright (C) 2012-2024 Karel Zak */ #include #include @@ -311,3 +311,35 @@ int ul_reopen(int fd, int flags) return open(buf, flags); } + + +/* This is a libc-independent version of basename(), which is necessary to + * maintain functionality across different libc implementations. It was + * inspired by the behavior and implementation of glibc. + */ +char *ul_basename(char *path) +{ + char *p; + + if (!path || !*path) + return (char *) "."; /* ugly, static string */ + + p = strrchr(path, '/'); + if (!p) + return path; /* no '/', return original */ + + if (*(p + 1) != '\0') + return p + 1; /* begin of the name */ + + while (p > path && *(p - 1) == '/') + --p; /* remove tailing '/' */ + + if (p > path) { + *p-- = '\0'; + while (p > path && *(p - 1) != '/') + --p; /* move to the beginning of the name */ + } else while (*(p + 1) != '\0') + ++p; + + return p; +} diff --git a/lib/logindefs.c b/lib/logindefs.c index 95631223aae..b51e65fdf06 100644 --- a/lib/logindefs.c +++ b/lib/logindefs.c @@ -255,11 +255,7 @@ static void load_defaults(void) free_getlogindefs_data(); error = econf_readDirs(&file, -#if USE_VENDORDIR _PATH_VENDORDIR, -#else - NULL, -#endif "/etc", "login", "defs", "= \t", "#"); if (error) diff --git a/lib/pager.c b/lib/pager.c index 98814b54922..db7a989df4b 100644 --- a/lib/pager.c +++ b/lib/pager.c @@ -85,9 +85,7 @@ static int start_command(struct child_process *cmd) close(cmd->in); } - if (cmd->preexec_cb) - cmd->preexec_cb(); - + cmd->preexec_cb(); execvp(cmd->argv[0], (char *const*) cmd->argv); errexec(cmd->argv[0]); } @@ -142,7 +140,7 @@ static int finish_command(struct child_process *cmd) return wait_or_whine(cmd->pid); } -static void pager_preexec_less(void) +static void pager_preexec(void) { /* * Work around bug in "less" by not starting it until we @@ -242,11 +240,7 @@ static void __setup_pager(void) pager_argv[2] = pager; pager_process.argv = pager_argv; pager_process.in = -1; - - if (!strncmp(pager, "less", 4)) - pager_process.preexec_cb = pager_preexec_less; - else - pager_process.preexec_cb = NULL; + pager_process.preexec_cb = pager_preexec; if (start_command(&pager_process)) return; diff --git a/lib/path.c b/lib/path.c index 202f19ac4fc..f897599fd06 100644 --- a/lib/path.c +++ b/lib/path.c @@ -682,7 +682,7 @@ int ul_path_read_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char if (*(buf + rc - 1) == '\n') buf[--rc] = '\0'; else - buf[rc - 1] = '\0'; + buf[rc] = '\0'; } return rc; diff --git a/lib/pty-session.c b/lib/pty-session.c index 25dddd2fac1..815264d1a90 100644 --- a/lib/pty-session.c +++ b/lib/pty-session.c @@ -241,6 +241,7 @@ int ul_pty_signals_setup(struct ul_pty *pty) sigaddset(&ourset, SIGCHLD); sigaddset(&ourset, SIGWINCH); sigaddset(&ourset, SIGALRM); + sigaddset(&ourset, SIGHUP); sigaddset(&ourset, SIGTERM); sigaddset(&ourset, SIGINT); sigaddset(&ourset, SIGQUIT); @@ -584,6 +585,8 @@ static int handle_signal(struct ul_pty *pty, int fd) &info, (void *) &pty->win); } break; + case SIGHUP: + /* fallthrough */ case SIGTERM: /* fallthrough */ case SIGINT: diff --git a/lib/sha1.c b/lib/sha1.c index 2e6b44d0530..3edff122c49 100644 --- a/lib/sha1.c +++ b/lib/sha1.c @@ -1,4 +1,7 @@ /* + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. + * * SHA-1 in C by Steve Reid * 100% Public Domain * @@ -153,11 +156,15 @@ void ul_SHA1Transform(uint32_t state[5], const unsigned char buffer[64]) state[3] += d; state[4] += e; /* Wipe variables */ +#ifdef HAVE_EXPLICIT_BZERO explicit_bzero(&a, sizeof(a)); explicit_bzero(&b, sizeof(b)); explicit_bzero(&c, sizeof(c)); explicit_bzero(&d, sizeof(d)); explicit_bzero(&e, sizeof(e)); +#else + a = b = c = d = e = 0; +#endif #ifdef UL_SHA1HANDSOFF memset(block, '\0', sizeof(block)); #endif diff --git a/lib/sha256.c b/lib/sha256.c index 934303c7b37..10877d24027 100644 --- a/lib/sha256.c +++ b/lib/sha256.c @@ -1,4 +1,7 @@ /* + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. + * * public domain sha256 crypt implementation * * original sha crypt design: http://people.redhat.com/drepper/SHA-crypt.txt diff --git a/lib/sysfs.c b/lib/sysfs.c index dfacf4a4a77..ac9c5c3bf32 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -404,8 +404,8 @@ char *sysfs_blkdev_get_devchain(struct path_cxt *pc, char *buf, size_t bufsz) ul_buffer_append_string(&tmp, _PATH_SYS_DEVBLOCK "/"); ul_buffer_append_data(&tmp, buf, ssz); - p = ul_buffer_get_data(&tmp, &sz, NULL); - if (p && sz < bufsz) { + p = ul_buffer_get_string(&tmp, &sz, NULL); + if (p && sz <= bufsz) { memcpy(buf, p, sz); res = buf; } @@ -467,6 +467,10 @@ static int sysfs_devchain_is_removable(char *chain) /* append "/removable" to the path */ memcpy(chain + len, REMOVABLE_FILENAME, sizeof(REMOVABLE_FILENAME)); + /* root of device hierarchy */ + if (strcmp(chain, "/sys/dev/block" REMOVABLE_FILENAME) == 0) + break; + /* try to read it */ fd = open(chain, O_RDONLY); if (fd != -1) { diff --git a/libblkid/meson.build b/libblkid/meson.build index 5a28bdfcb84..73ea0883d28 100644 --- a/libblkid/meson.build +++ b/libblkid/meson.build @@ -1,4 +1,9 @@ dir_libblkid = include_directories('.', 'src') +if not build_libblkid + blkid_dep = disabler() + blkid_static_dep = disabler() + subdir_done() +endif defs = configuration_data() defs.set('LIBBLKID_DATE', libblkid_date) @@ -131,27 +136,34 @@ if build_libblkid and not have_dirfd and not have_ddfd error('neither dirfd nor ddfd are available') endif +libblkid_link_depends = [] +libblkid_link_args = [] + +if cc.has_link_argument('-Wl,--version-script=@0@'.format(libblkid_sym_path)) + libblkid_link_depends += [libblkid_sym] + libblkid_link_args += ['-Wl,--version-script=@0@'.format(libblkid_sym_path)] +endif + lib_blkid = both_libraries( 'blkid', list_h, lib_blkid_sources, include_directories : [dir_include, dir_libblkid], - link_depends : libblkid_sym, + link_depends : libblkid_link_depends, version : libblkid_version, - link_args : ['-Wl,--version-script=@0@'.format(libblkid_sym_path)], + link_args : libblkid_link_args, link_with : lib_common, dependencies : build_libblkid ? [lib_econf] : disabler(), install : build_libblkid) blkid_dep = declare_dependency(link_with: lib_blkid, include_directories: '.') lib_blkid_static = lib_blkid.get_static_lib() +blkid_static_dep = declare_dependency(link_with: lib_blkid_static, include_directories: '.') -if build_libblkid - pkgconfig.generate(lib_blkid, - description : 'Block device id library', - subdirs : 'blkid', - version : pc_version) - if meson.version().version_compare('>=0.54.0') - meson.override_dependency('blkid', blkid_dep) - endif +pkgconfig.generate(lib_blkid, + description : 'Block device id library', + subdirs : 'blkid', + version : pc_version) +if meson.version().version_compare('>=0.54.0') + meson.override_dependency('blkid', blkid_dep) endif diff --git a/libblkid/src/config.c b/libblkid/src/config.c index 7b8b04f9211..19c80ea9df3 100644 --- a/libblkid/src/config.c +++ b/libblkid/src/config.c @@ -28,6 +28,7 @@ #include "blkidP.h" #include "env.h" +#include "pathnames.h" static int parse_evaluate(struct blkid_config *conf, char *s) { @@ -153,6 +154,8 @@ struct blkid_config *blkid_read_config(const char *filename) #else /* !HAVE_LIBECONF */ static econf_file *file = NULL; + char *line = NULL; + bool uevent = false; econf_err error; if (filename) { @@ -160,11 +163,7 @@ struct blkid_config *blkid_read_config(const char *filename) error = econf_readFile(&file, filename, "= \t", "#"); } else { error = econf_readDirs(&file, -#if USE_VENDORDIR _PATH_VENDORDIR, -#else - NULL, -#endif "/etc", "blkid", "conf", "= \t", "#"); } @@ -187,7 +186,6 @@ struct blkid_config *blkid_read_config(const char *filename) } } - bool uevent = false; if ((error = econf_getBoolValue(file, NULL, "SEND_UEVENT", &uevent))) { if (error != ECONF_NOKEY) { DBG(CONFIG, ul_debug("couldn't fetch SEND_UEVENT corrently: %s", econf_errString(error))); @@ -209,7 +207,6 @@ struct blkid_config *blkid_read_config(const char *filename) } } - char *line = NULL; if ((error = econf_getStringValue(file, NULL, "EVALUATE", &line))) { conf->nevals = 0; if (error != ECONF_NOKEY) { @@ -219,7 +216,7 @@ struct blkid_config *blkid_read_config(const char *filename) DBG(CONFIG, ul_debug("key CACHE_FILE not found, using built-in default ")); } } else { - if (*line && parse_evaluate(conf, line) == -1) + if (line && *line && parse_evaluate(conf, line) == -1) goto err; } @@ -238,8 +235,8 @@ struct blkid_config *blkid_read_config(const char *filename) if (f) fclose(f); #else - econf_free (file); - free (line); + econf_free(file); + free(line); #endif return conf; err: @@ -248,8 +245,8 @@ struct blkid_config *blkid_read_config(const char *filename) #ifndef HAVE_LIBECONF fclose(f); #else - econf_free (file); - free (line); + econf_free(file); + free(line); #endif return NULL; } diff --git a/libblkid/src/partitions/gpt.c b/libblkid/src/partitions/gpt.c index 473bf5c0e21..a8846be21f2 100644 --- a/libblkid/src/partitions/gpt.c +++ b/libblkid/src/partitions/gpt.c @@ -294,7 +294,7 @@ static struct gpt_header *get_gpt_header( /* Validate entries */ crc = count_crc32((unsigned char *) *ents, esz, 0, 0); - if (crc != le32_to_cpu(h->partition_entry_array_crc32)) { + if (!blkid_probe_verify_csum(pr, crc, le32_to_cpu(h->partition_entry_array_crc32))) { DBG(LOWPROBE, ul_debug("GPT entries corrupted")); return NULL; } diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c index 76905e1970f..7c561cf4409 100644 --- a/libblkid/src/probe.c +++ b/libblkid/src/probe.c @@ -967,10 +967,19 @@ static void cdrom_size_correction(blkid_probe pr, uint64_t last_written) #endif -#ifdef BLKIOOPT static uint64_t blkid_get_io_size(int fd) { - static const int ioctls[] = { BLKIOOPT, BLKIOMIN, BLKBSZGET }; + static const int ioctls[] = { +#ifdef BLKIOOPT + BLKIOOPT, +#endif +#ifdef BLKIOMIN + BLKIOMIN, +#endif +#ifdef BLKBSZGET + BLKBSZGET, +#endif + }; unsigned int s; size_t i; int r; @@ -983,7 +992,6 @@ static uint64_t blkid_get_io_size(int fd) return DEFAULT_SECTOR_SIZE; } -#endif /** * blkid_probe_set_device: @@ -1192,10 +1200,8 @@ int blkid_probe_set_device(blkid_probe pr, int fd, } # endif -#ifdef BLKIOOPT if (S_ISBLK(sb.st_mode) && !is_floppy && !blkid_probe_is_tiny(pr)) pr->io_size = blkid_get_io_size(fd); -#endif DBG(LOWPROBE, ul_debug("ready for low-probing, offset=%"PRIu64", size=%"PRIu64", zonesize=%"PRIu64", iosize=%"PRIu64, pr->off, pr->size, pr->zone_size, pr->io_size)); diff --git a/libblkid/src/superblocks/bcache.c b/libblkid/src/superblocks/bcache.c index 47d906063db..8ad2dc0f874 100644 --- a/libblkid/src/superblocks/bcache.c +++ b/libblkid/src/superblocks/bcache.c @@ -164,8 +164,6 @@ struct bcachefs_super_block { #define BCACHEFS_SECTOR_SIZE 512U /* maximum superblock size shift */ #define BCACHEFS_SB_MAX_SIZE_SHIFT 0x10U -/* maximum superblock size */ -#define BCACHEFS_SB_MAX_SIZE (1U << BCACHEFS_SB_MAX_SIZE_SHIFT) /* fields offset within super block */ #define BCACHEFS_SB_FIELDS_OFF offsetof(struct bcachefs_super_block, _start) /* tag value for members field */ @@ -360,9 +358,6 @@ static int probe_bcachefs(blkid_probe pr, const struct blkid_idmag *mag) sb_size = BCACHEFS_SB_FIELDS_OFF + BYTES(bcs); - if (sb_size > BCACHEFS_SB_MAX_SIZE) - return BLKID_PROBE_NONE; - if (bcs->layout.sb_max_size_bits > BCACHEFS_SB_MAX_SIZE_SHIFT) return BLKID_PROBE_NONE; diff --git a/libblkid/src/superblocks/bitlocker.c b/libblkid/src/superblocks/bitlocker.c index a9a7bfb8f52..170a67605ee 100644 --- a/libblkid/src/superblocks/bitlocker.c +++ b/libblkid/src/superblocks/bitlocker.c @@ -168,7 +168,7 @@ static int probe_bitlocker(blkid_probe pr, if (buf_fve) { const struct bde_fve_metadata *fve = (const struct bde_fve_metadata *) buf_fve; - blkid_probe_sprintf_version(pr, "%d", fve->version); + blkid_probe_sprintf_version(pr, "%d", le16_to_cpu(fve->version)); } return 0; } diff --git a/libblkid/src/superblocks/exfat.c b/libblkid/src/superblocks/exfat.c index 18a3e07c7a2..a7d3e02980f 100644 --- a/libblkid/src/superblocks/exfat.c +++ b/libblkid/src/superblocks/exfat.c @@ -161,6 +161,8 @@ static int exfat_validate_checksum(blkid_probe pr, return 1; } +#define in_range_inclusive(val, start, stop) (val >= start && val <= stop) + static int exfat_valid_superblock(blkid_probe pr, const struct exfat_super_block *sb) { if (le16_to_cpu(sb->BootSignature) != 0xAA55) @@ -172,10 +174,41 @@ static int exfat_valid_superblock(blkid_probe pr, const struct exfat_super_block if (memcmp(sb->JumpBoot, "\xEB\x76\x90", 3) != 0) return 0; + if (memcmp(sb->FileSystemName, "EXFAT ", 8) != 0) + return 0; + for (size_t i = 0; i < sizeof(sb->MustBeZero); i++) if (sb->MustBeZero[i] != 0x00) return 0; + if (!in_range_inclusive(sb->NumberOfFats, 1, 2)) + return 0; + + if (!in_range_inclusive(sb->BytesPerSectorShift, 9, 12)) + return 0; + + if (!in_range_inclusive(sb->SectorsPerClusterShift, + 0, + 25 - sb->BytesPerSectorShift)) + return 0; + + if (!in_range_inclusive(le32_to_cpu(sb->FatOffset), + 24, + le32_to_cpu(sb->ClusterHeapOffset) - + (le32_to_cpu(sb->FatLength) * sb->NumberOfFats))) + return 0; + + if (!in_range_inclusive(le32_to_cpu(sb->ClusterHeapOffset), + le32_to_cpu(sb->FatOffset) + + le32_to_cpu(sb->FatLength) * sb->NumberOfFats, + 1U << (32 - 1))) + return 0; + + if (!in_range_inclusive(le32_to_cpu(sb->FirstClusterOfRootDirectory), + 2, + le32_to_cpu(sb->ClusterCount) + 1)) + return 0; + if (!exfat_validate_checksum(pr, sb)) return 0; diff --git a/libblkid/src/superblocks/luks.c b/libblkid/src/superblocks/luks.c index 0230b349267..4623c98fc9d 100644 --- a/libblkid/src/superblocks/luks.c +++ b/libblkid/src/superblocks/luks.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2008 Karel Zak - * Copyright (C) 2018 Milan Broz + * Copyright (C) 2018-2024 Milan Broz * * Inspired by libvolume_id by * Kay Sievers @@ -15,6 +15,7 @@ #include #include #include +#include #include "superblocks.h" @@ -96,6 +97,19 @@ static int luks_attributes(blkid_probe pr, struct luks2_phdr *header, uint64_t o return BLKID_PROBE_OK; } +static bool luks_valid(struct luks2_phdr *header, const char *magic, uint64_t offset) +{ + if (memcmp(header->magic, magic, LUKS_MAGIC_L)) + return false; + + /* LUKS2 header is not at expected offset */ + if (be16_to_cpu(header->version) == 2 && + be64_to_cpu(header->hdr_offset) != offset) + return false; + + return true; +} + static int probe_luks(blkid_probe pr, const struct blkid_idmag *mag __attribute__((__unused__))) { struct luks2_phdr *header; @@ -105,7 +119,7 @@ static int probe_luks(blkid_probe pr, const struct blkid_idmag *mag __attribute_ if (!header) return errno ? -errno : BLKID_PROBE_NONE; - if (!memcmp(header->magic, LUKS_MAGIC, LUKS_MAGIC_L)) { + if (luks_valid(header, LUKS_MAGIC, 0)) { /* LUKS primary header was found. */ return luks_attributes(pr, header, 0); } @@ -118,7 +132,7 @@ static int probe_luks(blkid_probe pr, const struct blkid_idmag *mag __attribute_ if (!header) return errno ? -errno : BLKID_PROBE_NONE; - if (!memcmp(header->magic, LUKS_MAGIC_2, LUKS_MAGIC_L)) + if (luks_valid(header, LUKS_MAGIC_2, secondary_offsets[i])) return luks_attributes(pr, header, secondary_offsets[i]); } diff --git a/libblkid/src/superblocks/superblocks.c b/libblkid/src/superblocks/superblocks.c index dd1e6dcf31d..2b836dee19a 100644 --- a/libblkid/src/superblocks/superblocks.c +++ b/libblkid/src/superblocks/superblocks.c @@ -594,6 +594,7 @@ static int blkid_probe_set_usage(blkid_probe pr, int usage) (const unsigned char *) u, strlen(u) + 1); } +/* size used by filesystem for data */ int blkid_probe_set_fssize(blkid_probe pr, uint64_t size) { struct blkid_chain *chn = blkid_probe_get_chain(pr); diff --git a/libblkid/src/superblocks/swap.c b/libblkid/src/superblocks/swap.c index 487690517fc..2db1cdd8038 100644 --- a/libblkid/src/superblocks/swap.c +++ b/libblkid/src/superblocks/swap.c @@ -47,9 +47,12 @@ static void swap_set_info_swap1(blkid_probe pr, uint32_t pagesize = mag->sboff + mag->len; blkid_probe_set_fsblocksize(pr, pagesize); + /* note that "lastpage" in swap header means number of pages used by + * swap, see mkswap */ uint32_t lastpage = endianness == BLKID_ENDIANNESS_LITTLE ? le32_to_cpu(hdr->lastpage) : be32_to_cpu(hdr->lastpage); blkid_probe_set_fssize(pr, (uint64_t) pagesize * lastpage); + blkid_probe_set_fslastblock(pr, lastpage + 1); } static int swap_set_info(blkid_probe pr, const struct blkid_idmag *mag, diff --git a/libblkid/src/topology/ioctl.c b/libblkid/src/topology/ioctl.c index 3560a2fb537..7b15c9e9a74 100644 --- a/libblkid/src/topology/ioctl.c +++ b/libblkid/src/topology/ioctl.c @@ -18,60 +18,38 @@ #include "topology.h" -/* - * ioctl topology values - */ -static const struct topology_val { - - long ioc; - - /* functions to set probing result */ - int (*set_ulong)(blkid_probe, unsigned long); - int (*set_int)(blkid_probe, int); - int (*set_u64)(blkid_probe, uint64_t); - -} topology_vals[] = { - { BLKALIGNOFF, NULL, blkid_topology_set_alignment_offset }, - { BLKIOMIN, blkid_topology_set_minimum_io_size }, - { BLKIOOPT, blkid_topology_set_optimal_io_size }, - { BLKPBSZGET, blkid_topology_set_physical_sector_size }, - { BLKGETDISKSEQ, .set_u64 = blkid_topology_set_diskseq }, - /* we read BLKSSZGET in topology.c */ -}; - static int probe_ioctl_tp(blkid_probe pr, const struct blkid_idmag *mag __attribute__((__unused__))) { - size_t i; - - for (i = 0; i < ARRAY_SIZE(topology_vals); i++) { - const struct topology_val *val = &topology_vals[i]; - int rc = 1; - union { - unsigned long ul; - int i; - uint64_t u64; - } data; - - if (ioctl(pr->fd, val->ioc, &data) == -1) - goto nothing; - - if (val->set_int) - rc = val->set_int(pr, data.i); - else if (val->set_ulong) - rc = val->set_ulong(pr, data.ul); - else - rc = val->set_u64(pr, data.u64); - - if (rc) - goto err; - } + uint64_t u64; + int s32; + + if (ioctl(pr->fd, BLKALIGNOFF, &s32) == -1) + return 1; + if (blkid_topology_set_alignment_offset(pr, s32)) + return -1; + + if (ioctl(pr->fd, BLKIOMIN, &s32) == -1) + return 1; + if (blkid_topology_set_minimum_io_size(pr, s32)) + return -1; + + if (ioctl(pr->fd, BLKIOOPT, &s32) == -1) + return 1; + if (blkid_topology_set_optimal_io_size(pr, s32)) + return -1; + + if (ioctl(pr->fd, BLKPBSZGET, &s32) == -1) + return 1; + if (blkid_topology_set_physical_sector_size(pr, s32)) + return -1; + + if (ioctl(pr->fd, BLKGETDISKSEQ, &u64) == -1) + return 1; + if (blkid_topology_set_physical_sector_size(pr, u64)) + return -1; return 0; -nothing: - return 1; -err: - return -1; } const struct blkid_idinfo ioctl_tp_idinfo = diff --git a/libfdisk/meson.build b/libfdisk/meson.build index eaab9e13895..57dda5cfa99 100644 --- a/libfdisk/meson.build +++ b/libfdisk/meson.build @@ -60,8 +60,8 @@ lib_fdisk_static = static_library( 'fdisk_static', link_whole : lib__fdisk, link_with : [lib_common, - lib_blkid.get_static_lib(), lib_uuid.get_static_lib()], + dependencies : [blkid_static_dep], install : false) lib_fdisk = library( @@ -71,8 +71,8 @@ lib_fdisk = library( version : libfdisk_version, link_args : ['-Wl,--version-script=@0@'.format(libfdisk_sym_path)], link_with : [lib_common, - lib_blkid, lib_uuid], + dependencies : [blkid_dep], install : build_libfdisk) fdisk_dep = declare_dependency(link_with: lib_fdisk, include_directories: '.') diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c index ecf0b367857..5c00164ce96 100644 --- a/libfdisk/src/dos.c +++ b/libfdisk/src/dos.c @@ -790,7 +790,7 @@ static void get_partition_table_geometry(struct fdisk_context *cxt, unsigned int *ph, unsigned int *ps) { unsigned char *bufp = cxt->firstsector; - struct { unsigned int c, h, o, v; } t[8]; + struct { unsigned int c, h, o, v; } t[8] = { 0 }; unsigned int n1, n2, n3, n4, n5, n6; const struct dos_partition *p; unsigned int c, h, s, l; diff --git a/libfdisk/src/sgi.c b/libfdisk/src/sgi.c index 23aafd9e340..71abedd3f9b 100644 --- a/libfdisk/src/sgi.c +++ b/libfdisk/src/sgi.c @@ -391,8 +391,8 @@ static int sgi_check_bootfile(struct fdisk_context *cxt, const char *name) sz = strlen(name); - if (sz < 3) { - /* "/a\n" is minimum */ + if (sz < 2) { + /* "/a" is minimum */ fdisk_warnx(cxt, _("Invalid bootfile! The bootfile must " "be an absolute non-zero pathname, " "e.g. \"/unix\" or \"/unix.save\".")); @@ -443,12 +443,14 @@ int fdisk_sgi_set_bootfile(struct fdisk_context *cxt) fdisk_info(cxt, _("The current boot file is: %s"), sgilabel->boot_file); - rc = fdisk_ask_string(cxt, _("Enter of the new boot file"), &name); + rc = fdisk_ask_string(cxt, _("Enter full path of the new boot file"), &name); if (rc == 0) rc = sgi_check_bootfile(cxt, name); if (rc) { - if (rc == 1) + if (rc == 1) { fdisk_info(cxt, _("Boot file is unchanged.")); + rc = 0; + } goto done; } diff --git a/libfdisk/src/wipe.c b/libfdisk/src/wipe.c index bb5f1bb38bf..f389ed4194a 100644 --- a/libfdisk/src/wipe.c +++ b/libfdisk/src/wipe.c @@ -133,6 +133,7 @@ int fdisk_do_wipe(struct fdisk_context *cxt) DBG(WIPE, ul_debugobj(wp, "blkid_probe_set_device() failed [rc=%d]", rc)); return rc; } + blkid_probe_set_sectorsize(pr, cxt->sector_size); DBG(WIPE, ul_debugobj(wp, " wiping...")); blkid_wipe_all(pr); @@ -176,6 +177,8 @@ int fdisk_check_collisions(struct fdisk_context *cxt) free(cxt->collision); cxt->collision = NULL; + blkid_probe_set_sectorsize(pr, cxt->sector_size); + blkid_probe_enable_superblocks(pr, 1); blkid_probe_set_superblocks_flags(pr, BLKID_SUBLKS_TYPE | BLKID_SUBLKS_BADCSUM); diff --git a/liblastlog2/meson.build b/liblastlog2/meson.build index d4cd4a61ee9..6f8db53cf94 100644 --- a/liblastlog2/meson.build +++ b/liblastlog2/meson.build @@ -43,6 +43,8 @@ if build_liblastlog2 ) meson.override_dependency('lastlog2', lastlog2_dep) + install_headers('src/lastlog2.h', subdir : 'liblastlog2') + foreach lastlog2_test: lastlog2_tests test_name = 'test_lastlog2_' + lastlog2_test exe = executable( diff --git a/liblastlog2/src/lastlog2.h b/liblastlog2/src/lastlog2.h index 28ed096c55c..280f387d6f7 100644 --- a/liblastlog2/src/lastlog2.h +++ b/liblastlog2/src/lastlog2.h @@ -32,7 +32,7 @@ extern "C" { #endif -#define LL2_DEFAULT_DATABASE "/var/lib/lastlog/lastlog2.db" +#define LL2_DEFAULT_DATABASE _PATH_LOCALSTATEDIR "/lib/lastlog/lastlog2.db" #include diff --git a/libmount/meson.build b/libmount/meson.build index a9d4d778048..6b16aab94dc 100644 --- a/libmount/meson.build +++ b/libmount/meson.build @@ -1,3 +1,9 @@ +if not build_libmount + mount_dep = disabler() + mount_static_dep = disabler() + subdir_done() +endif + dir_libmount = include_directories('.', 'src') defs = configuration_data() @@ -70,45 +76,41 @@ lib__mount = static_library( '_mount', lib_mount_sources, include_directories : [dir_include, - dir_libmount, - dir_libblkid]) + dir_libmount], + dependencies : [blkid_dep]) lib_mount_static = static_library( 'mount_static', link_whole : lib__mount, - link_with : [lib_common, - lib_blkid.get_static_lib()], - dependencies : [realtime_libs], + link_with : [lib_common], + dependencies : [blkid_static_dep, realtime_libs], install : false) +mount_static_dep = declare_dependency(link_with: lib_mount_static, include_directories: '.') lib__mount_deps = [ lib_selinux, - get_option('cryptsetup-dlopen').enabled() ? lib_dl : lib_cryptsetup, + cryptsetup_dlopen ? lib_dl : lib_cryptsetup, realtime_libs ] lib_mount = library( 'mount', link_whole : lib__mount, include_directories : [dir_include, - dir_libmount, - dir_libblkid], + dir_libmount], link_depends : libmount_sym, version : libmount_version, link_args : ['-Wl,--version-script=@0@'.format(libmount_sym_path)], - link_with : [lib_common, - lib_blkid], - dependencies : lib__mount_deps, + link_with : [lib_common], + dependencies : lib__mount_deps + blkid_dep, install : build_libmount) mount_dep = declare_dependency(link_with: lib_mount, include_directories: '.') -if build_libmount - pkgconfig.generate(lib_mount, - description : 'mount library', - subdirs : 'libmount', - version : pc_version) - if meson.version().version_compare('>=0.54.0') - meson.override_dependency('mount', mount_dep) - endif +pkgconfig.generate(lib_mount, + description : 'mount library', + subdirs : 'libmount', + version : pc_version) +if meson.version().version_compare('>=0.54.0') + meson.override_dependency('mount', mount_dep) endif libmount_tests = [ @@ -136,9 +138,9 @@ if program_tests exe = executable( test_name, 'src/' + libmount_test_src_override.get(libmount_test, libmount_test) + '.c', - include_directories : [dir_include, dir_libblkid], - link_with : [lib__mount, lib_common, lib_blkid_static], - dependencies : lib__mount_deps, + include_directories : [dir_include], + link_with : [lib__mount, lib_common], + dependencies : lib__mount_deps + blkid_static_dep, c_args : ['-DTEST_PROGRAM'], ) # the test-setup expects the helpers in the toplevel build-directory diff --git a/libmount/python/meson.build b/libmount/python/meson.build index c5feb7bccd8..a385aae7085 100644 --- a/libmount/python/meson.build +++ b/libmount/python/meson.build @@ -1,10 +1,6 @@ -python_module = import('python') - -python = python_module.find_installation( - get_option('python'), - required : get_option('build-python'), - disabler : true) -build_python = python.found() +if get_option('build-python').disabled() + subdir_done() +endif pylibmount_sources = ''' pylibmount.c @@ -17,13 +13,22 @@ if LINUX pylibmount_sources += 'context.c' endif +python_module = import('python') +python = python_module.find_installation( + get_option('python'), + required : true, + disabler : true) +if meson.version().version_compare('<1.4.1') + cc.has_header('Python.h', + include_directories : include_directories(python.get_path('include')), + required : true) +endif python.extension_module( 'pylibmount', pylibmount_sources, - include_directories : [dir_include, dir_libmount], + include_directories : [dir_include], subdir : 'libmount', - link_with : lib_mount, - dependencies : python.dependency(), + dependencies : [mount_dep, python.dependency()], c_args : [ '-Wno-cast-function-type', @@ -33,9 +38,7 @@ python.extension_module( ], install : true) -if build_python - python.install_sources( - '__init__.py', - subdir : 'libmount', - pure : false) -endif +python.install_sources( + '__init__.py', + subdir : 'libmount', + pure : false) diff --git a/libmount/src/context.c b/libmount/src/context.c index d9310c453bd..2e94d9f68db 100644 --- a/libmount/src/context.c +++ b/libmount/src/context.c @@ -43,6 +43,8 @@ #include +#include "mount-api-utils.h" + /** * mnt_new_context: * @@ -314,6 +316,8 @@ int mnt_context_reset_status(struct libmnt_context *cxt) if (!cxt) return -EINVAL; + reset_syscall_status(cxt); + cxt->syscall_status = 1; /* means not called yet */ cxt->helper_exec_status = 1; cxt->helper_status = 0; @@ -365,8 +369,7 @@ const char *mnt_context_get_writable_tabpath(struct libmnt_context *cxt) { assert(cxt); - context_init_paths(cxt, 1); - return cxt->utab_path; + return mnt_context_utab_writable(cxt) ? cxt->utab_path : NULL; } @@ -549,10 +552,10 @@ int mnt_context_enable_onlyonce(struct libmnt_context *cxt, int enable) } /** - * mnt_context_is_lazy: + * mnt_context_is_onlyonce: * @cxt: mount context * - * Returns: 1 if lazy umount is enabled or 0 + * Returns: 1 if only-once mount is enabled or 0 */ int mnt_context_is_onlyonce(struct libmnt_context *cxt) { @@ -1789,6 +1792,45 @@ int mnt_context_set_mountdata(struct libmnt_context *cxt, void *data) return 0; } +#ifdef USE_LIBMOUNT_MOUNTFD_SUPPORT +int mnt_context_open_tree(struct libmnt_context *cxt, const char *path, unsigned long mflg) +{ + unsigned long oflg = OPEN_TREE_CLOEXEC; + int rc = 0, fd = -1; + + if (mflg == (unsigned long) -1) { + rc = mnt_optlist_get_flags(cxt->optlist, &mflg, cxt->map_linux, 0); + if (rc) + return rc; + } + if (!path) { + path = mnt_fs_get_target(cxt->fs); + if (!path) + return -EINVAL; + } + + /* Classic -oremount,bind,ro is not bind operation, it's just + * VFS flags update only */ + if ((mflg & MS_BIND) && !(mflg & MS_REMOUNT)) { + oflg |= OPEN_TREE_CLONE; + + if (mnt_optlist_is_rbind(cxt->optlist)) + oflg |= AT_RECURSIVE; + } + + if (cxt->force_clone) + oflg |= OPEN_TREE_CLONE; + + DBG(CXT, ul_debugobj(cxt, "open_tree(path=%s%s%s)", path, + oflg & OPEN_TREE_CLONE ? " clone" : "", + oflg & AT_RECURSIVE ? " recursive" : "")); + fd = open_tree(AT_FDCWD, path, oflg); + set_syscall_status(cxt, "open_tree", fd >= 0); + + return fd; +} +#endif + /* * Translates LABEL/UUID/path to mountable path */ diff --git a/libmount/src/context_mount.c b/libmount/src/context_mount.c index 9beac17c01b..09fa25bc894 100644 --- a/libmount/src/context_mount.c +++ b/libmount/src/context_mount.c @@ -451,10 +451,10 @@ static int exec_helper(struct libmnt_context *cxt) args[i++] = type; /* 11 */ } if (namespace) { - args[i++] = "-N"; /* 11 */ - args[i++] = namespace; /* 12 */ + args[i++] = "-N"; /* 12 */ + args[i++] = namespace; /* 13 */ } - args[i] = NULL; /* 13 */ + args[i] = NULL; /* 14 */ for (i = 0; args[i]; i++) DBG(CXT, ul_debugobj(cxt, "argv[%d] = \"%s\"", i, args[i])); @@ -546,9 +546,10 @@ static int do_mount(struct libmnt_context *cxt, const char *try_type) cxt->syscall_status = 0; } - if (org_type && rc != 0) + if (org_type && rc != 0) { __mnt_fs_set_fstype_ptr(cxt->fs, org_type); - org_type = NULL; + org_type = NULL; + } if (rc == 0 && try_type && cxt->update) { struct libmnt_fs *fs = mnt_update_get_fs(cxt->update); @@ -574,6 +575,15 @@ static int is_success_status(struct libmnt_context *cxt) return 0; } +static int is_termination_status(struct libmnt_context *cxt) +{ + if (is_success_status(cxt)) + return 1; + + return mnt_context_get_syscall_errno(cxt) != EINVAL && + mnt_context_get_syscall_errno(cxt) != ENODEV; +} + /* try mount(2) for all items in comma separated list of the filesystem @types */ static int do_mount_by_types(struct libmnt_context *cxt, const char *types) { @@ -614,7 +624,7 @@ static int do_mount_by_types(struct libmnt_context *cxt, const char *types) rc = do_mount(cxt, p); p = end ? end + 1 : NULL; free(autotype); - } while (!is_success_status(cxt) && p); + } while (!is_termination_status(cxt) && p); free(p0); return rc; @@ -659,10 +669,7 @@ static int do_mount_by_pattern(struct libmnt_context *cxt, const char *pattern) for (fp = filesystems; *fp; fp++) { DBG(CXT, ul_debugobj(cxt, " ##### trying '%s'", *fp)); rc = do_mount(cxt, *fp); - if (is_success_status(cxt)) - break; - if (mnt_context_get_syscall_errno(cxt) != EINVAL && - mnt_context_get_syscall_errno(cxt) != ENODEV) + if (is_termination_status(cxt)) break; } mnt_free_filesystems(filesystems); @@ -674,7 +681,6 @@ static int prepare_target(struct libmnt_context *cxt) const char *tgt, *prefix; int rc = 0; struct libmnt_ns *ns_old; - struct stat st; assert(cxt); assert(cxt->fs); @@ -714,10 +720,7 @@ static int prepare_target(struct libmnt_context *cxt) return -MNT_ERR_NAMESPACE; /* canonicalize the path */ - if (rc == 0 && - !(cxt->optlist && mnt_optlist_is_bind(cxt->optlist) - && mnt_safe_lstat(tgt, &st) == 0 && S_ISLNK(st.st_mode))) { - + if (rc == 0) { struct libmnt_cache *cache = mnt_context_get_cache(cxt); if (cache) { @@ -1575,6 +1578,13 @@ int mnt_context_get_mount_excode( */ syserr = mnt_context_get_syscall_errno(cxt); + if (buf && cxt->syscall_errmsg) { + snprintf(buf, bufsz, _("%s system call failed: %s"), + cxt->syscall_name ? : "mount", + cxt->syscall_errmsg); + return MNT_EX_FAIL; + } + switch(syserr) { case EPERM: if (!buf) diff --git a/libmount/src/context_umount.c b/libmount/src/context_umount.c index 79b62378d8d..bf70ed2ee76 100644 --- a/libmount/src/context_umount.c +++ b/libmount/src/context_umount.c @@ -267,6 +267,9 @@ static int lookup_umount_fs_by_statfs(struct libmnt_context *cxt, const char *tg * So, let's use statfs() if possible (it's bad idea for --lazy/--force * umounts as target is probably unreachable NFS, also for --detach-loop * as this additionally needs to know the name of the loop device). + * + * For the "umount --read-only" command, we need to read the mountinfo + * to obtain the mount source. */ if (mnt_context_is_restricted(cxt) || *tgt != '/' @@ -275,6 +278,7 @@ static int lookup_umount_fs_by_statfs(struct libmnt_context *cxt, const char *tg || mnt_context_is_lazy(cxt) || mnt_context_is_nocanonicalize(cxt) || mnt_context_is_loopdel(cxt) + || mnt_context_is_rdonly_umount(cxt) || mnt_safe_stat(tgt, &st) != 0 || !S_ISDIR(st.st_mode) || has_utab_entry(cxt, tgt)) return 1; /* not found */ diff --git a/libmount/src/fs.c b/libmount/src/fs.c index 79e32a170d4..26f2c69e90a 100644 --- a/libmount/src/fs.c +++ b/libmount/src/fs.c @@ -1454,7 +1454,7 @@ int mnt_fs_get_attribute(struct libmnt_fs *fs, const char *name, * mnt_fs_get_comment: * @fs: fstab/mtab/mountinfo entry pointer * - * Returns: 0 on success, 1 when not found the @name or negative number in case of error. + * Returns: comment string */ const char *mnt_fs_get_comment(struct libmnt_fs *fs) { diff --git a/libmount/src/hook_loopdev.c b/libmount/src/hook_loopdev.c index 8c8f7f21873..597b9339ac0 100644 --- a/libmount/src/hook_loopdev.c +++ b/libmount/src/hook_loopdev.c @@ -140,10 +140,6 @@ static int setup_loopdev(struct libmnt_context *cxt, DBG(LOOP, ul_debugobj(cxt, "trying to setup device for %s", backing_file)); - ol = mnt_context_get_optlist(cxt); - if (!ol) - return -ENOMEM; - if (mnt_optlist_is_rdonly(ol)) { DBG(LOOP, ul_debugobj(cxt, "enabling READ-ONLY flag")); lo_flags |= LO_FLAGS_READ_ONLY; @@ -356,15 +352,19 @@ static int setup_loopdev(struct libmnt_context *cxt, */ mnt_optlist_append_flags(ol, MS_RDONLY, cxt->map_linux); - /* we have to keep the device open until mount(1), - * otherwise it will be auto-cleared by kernel + /* + * We have to keep the device open until mount(1), otherwise it + * will be auto-cleared by kernel. However we don't want to + * keep writeable fd as kernel wants to block all writers to + * the device being mounted (in the more hardened + * configurations). So grab read-only fd instead. */ - hd->loopdev_fd = loopcxt_get_fd(&lc); + hd->loopdev_fd = open(lc.device, O_RDONLY | O_CLOEXEC); if (hd->loopdev_fd < 0) { - DBG(LOOP, ul_debugobj(cxt, "failed to get loopdev FD")); + DBG(LOOP, + ul_debugobj(cxt, "failed to reopen loopdev FD")); rc = -errno; - } else - loopcxt_set_fd(&lc, -1, 0); + } } done: loopcxt_deinit(&lc); diff --git a/libmount/src/hook_mount.c b/libmount/src/hook_mount.c index 961cc8745d0..af84f755eaa 100644 --- a/libmount/src/hook_mount.c +++ b/libmount/src/hook_mount.c @@ -65,19 +65,35 @@ static void close_sysapi_fds(struct libmnt_sysapi *api) api->fd_tree = api->fd_fs = -1; } -static void debug_fs_fd_messages(int fd) +static void save_fd_messages(struct libmnt_context *cxt, int fd) { uint8_t buf[BUFSIZ]; int rc; - while ((rc = read(fd, buf, sizeof(buf))) != -1) { - if (rc > 0 && buf[rc - 1] == '\n') - buf[rc - 1] = '\0'; - DBG(CXT, ul_debug("message from kernel: %*s", rc, buf)); + free(cxt->syscall_errmsg); + cxt->syscall_errmsg = NULL; + + while ((rc = read(fd, buf, sizeof(buf) - 1)) != -1) { + + if (rc == 0) + continue; + if (buf[rc - 1] == '\n') + buf[--rc] = '\0'; + else + buf[rc] = '\0'; + + DBG(CXT, ul_debug("message from kernel: \"%*s\"", rc, buf)); + + if (rc < 3 || strncmp((char *) buf, "e ", 2) != 0) + continue; + if (cxt->syscall_errmsg) + strappend(&cxt->syscall_errmsg, "; "); + + strappend(&cxt->syscall_errmsg, ((char *) buf) + 2); } } -static void set_syscall_status_cxt_log(struct libmnt_context *cxt, +static void hookset_set_syscall_status(struct libmnt_context *cxt, const char *name, int x) { struct libmnt_sysapi *api; @@ -86,13 +102,11 @@ static void set_syscall_status_cxt_log(struct libmnt_context *cxt, if (!x) { api = get_sysapi(cxt); - if (api) - debug_fs_fd_messages(api->fd_fs); + if (api && api->fd_fs >= 0) + save_fd_messages(cxt, api->fd_fs); } } -#define set_syscall_status set_syscall_status_cxt_log - /* * This hookset uses 'struct libmnt_sysapi' (mountP.h) as hookset data. */ @@ -176,7 +190,7 @@ static inline int fsconfig_set_value( } else rc = fsconfig(fd, FSCONFIG_SET_FLAG, name, NULL, 0); - set_syscall_status(cxt, "fsconfig", rc == 0); + hookset_set_syscall_status(cxt, "fsconfig", rc == 0); return rc; } @@ -216,6 +230,9 @@ static int configure_superblock(struct libmnt_context *cxt, /* Ignore VFS flags, userspace and external options */ continue; + if (!value && mnt_opt_is_sepnodata(opt)) + value = ""; /* force use the value as string */ + rc = fsconfig_set_value(cxt, hs, fd, name, value); if (rc != 0) goto done; @@ -241,50 +258,13 @@ static int open_fs_configuration_context(struct libmnt_context *cxt, DBG(HOOK, ul_debug(" fsopen(%s)", type)); api->fd_fs = fsopen(type, FSOPEN_CLOEXEC); - set_syscall_status(cxt, "fsopen", api->fd_fs >= 0); + hookset_set_syscall_status(cxt, "fsopen", api->fd_fs >= 0); if (api->fd_fs < 0) return -errno; api->is_new_fs = 1; return api->fd_fs; } -static int open_mount_tree(struct libmnt_context *cxt, const char *path, unsigned long mflg) -{ - unsigned long oflg = OPEN_TREE_CLOEXEC; - int rc = 0, fd = -1; - - if (mflg == (unsigned long) -1) { - rc = mnt_optlist_get_flags(cxt->optlist, &mflg, cxt->map_linux, 0); - if (rc) - return rc; - } - if (!path) { - path = mnt_fs_get_target(cxt->fs); - if (!path) - return -EINVAL; - } - - /* Classic -oremount,bind,ro is not bind operation, it's just - * VFS flags update only */ - if ((mflg & MS_BIND) && !(mflg & MS_REMOUNT)) { - oflg |= OPEN_TREE_CLONE; - - if (mnt_optlist_is_rbind(cxt->optlist)) - oflg |= AT_RECURSIVE; - } - - if (cxt->force_clone) - oflg |= OPEN_TREE_CLONE; - - DBG(HOOK, ul_debug("open_tree(path=%s%s%s)", path, - oflg & OPEN_TREE_CLONE ? " clone" : "", - oflg & AT_RECURSIVE ? " recursive" : "")); - fd = open_tree(AT_FDCWD, path, oflg); - set_syscall_status(cxt, "open_tree", fd >= 0); - - return fd; -} - static int hook_create_mount(struct libmnt_context *cxt, const struct libmnt_hookset *hs, void *data __attribute__((__unused__))) @@ -320,19 +300,19 @@ static int hook_create_mount(struct libmnt_context *cxt, DBG(HOOK, ul_debugobj(hs, "init FS")); rc = fsconfig(api->fd_fs, FSCONFIG_SET_STRING, "source", src, 0); - set_syscall_status(cxt, "fsconfig", rc == 0); + hookset_set_syscall_status(cxt, "fsconfig", rc == 0); if (!rc) rc = configure_superblock(cxt, hs, api->fd_fs, 0); if (!rc) { DBG(HOOK, ul_debugobj(hs, "create FS")); rc = fsconfig(api->fd_fs, FSCONFIG_CMD_CREATE, NULL, NULL, 0); - set_syscall_status(cxt, "fsconfig", rc == 0); + hookset_set_syscall_status(cxt, "fsconfig", rc == 0); } if (!rc) { api->fd_tree = fsmount(api->fd_fs, FSMOUNT_CLOEXEC, 0); - set_syscall_status(cxt, "fsmount", api->fd_tree >= 0); + hookset_set_syscall_status(cxt, "fsmount", api->fd_tree >= 0); if (api->fd_tree < 0) rc = -errno; } @@ -381,7 +361,7 @@ static int hook_reconfigure_mount(struct libmnt_context *cxt, if (api->fd_fs < 0) { api->fd_fs = fspick(api->fd_tree, "", FSPICK_EMPTY_PATH | FSPICK_NO_AUTOMOUNT); - set_syscall_status(cxt, "fspick", api->fd_fs >= 0); + hookset_set_syscall_status(cxt, "fspick", api->fd_fs >= 0); if (api->fd_fs < 0) return -errno; } @@ -390,7 +370,7 @@ static int hook_reconfigure_mount(struct libmnt_context *cxt, if (!rc) { DBG(HOOK, ul_debugobj(hs, "re-configurate FS")); rc = fsconfig(api->fd_fs, FSCONFIG_CMD_RECONFIGURE, NULL, NULL, 0); - set_syscall_status(cxt, "fsconfig", rc == 0); + hookset_set_syscall_status(cxt, "fsconfig", rc == 0); } DBG(HOOK, ul_debugobj(hs, "reconf FS done [rc=%d]", rc)); @@ -412,7 +392,7 @@ static int set_vfsflags(struct libmnt_context *cxt, /* fallback only; necessary when init_sysapi() during preparation * cannot open the tree -- for example when we call /sbin/mount. */ if (api->fd_tree < 0 && mnt_fs_get_target(cxt->fs)) { - rc = api->fd_tree = open_mount_tree(cxt, NULL, (unsigned long) -1); + rc = api->fd_tree = mnt_context_open_tree(cxt, NULL, (unsigned long) -1); if (rc < 0) return rc; rc = 0; @@ -428,7 +408,7 @@ static int set_vfsflags(struct libmnt_context *cxt, errno = 0; rc = mount_setattr(api->fd_tree, "", callflags, &attr, sizeof(attr)); - set_syscall_status(cxt, "mount_setattr", rc == 0); + hookset_set_syscall_status(cxt, "mount_setattr", rc == 0); if (rc && errno == EINVAL) return -MNT_ERR_APPLYFLAGS; @@ -490,7 +470,7 @@ static int hook_set_propagation(struct libmnt_context *cxt, /* fallback only; necessary when init_sysapi() during preparation * cannot open the tree -- for example when we call /sbin/mount. */ if (api->fd_tree < 0 && mnt_fs_get_target(cxt->fs)) { - rc = api->fd_tree = open_mount_tree(cxt, NULL, (unsigned long) -1); + rc = api->fd_tree = mnt_context_open_tree(cxt, NULL, (unsigned long) -1); if (rc < 0) goto done; rc = 0; @@ -520,7 +500,7 @@ static int hook_set_propagation(struct libmnt_context *cxt, (uint64_t) attr.propagation)); rc = mount_setattr(api->fd_tree, "", flgs, &attr, sizeof(attr)); - set_syscall_status(cxt, "mount_setattr", rc == 0); + hookset_set_syscall_status(cxt, "mount_setattr", rc == 0); if (rc && errno == EINVAL) return -MNT_ERR_APPLYFLAGS; @@ -562,7 +542,7 @@ static int hook_attach_target(struct libmnt_context *cxt, } rc = move_mount(api->fd_tree, "", AT_FDCWD, target, MOVE_MOUNT_F_EMPTY_PATH); - set_syscall_status(cxt, "move_mount", rc == 0); + hookset_set_syscall_status(cxt, "move_mount", rc == 0); return rc == 0 ? 0 : -errno; } @@ -627,7 +607,7 @@ static int init_sysapi(struct libmnt_context *cxt, return -ENOMEM; if (path) { - api->fd_tree = open_mount_tree(cxt, path, flags); + api->fd_tree = mnt_context_open_tree(cxt, path, flags); if (api->fd_tree < 0) goto fail; @@ -648,7 +628,7 @@ static int init_sysapi(struct libmnt_context *cxt, else if (!fsopen_is_supported()) { errno = ENOSYS; rc = -errno; - set_syscall_status(cxt, "fsopen", rc == 0); + hookset_set_syscall_status(cxt, "fsopen", rc == 0); } if (rc < 0) goto fail; diff --git a/libmount/src/hook_subdir.c b/libmount/src/hook_subdir.c index 7da563b85d4..2a2b8c2a491 100644 --- a/libmount/src/hook_subdir.c +++ b/libmount/src/hook_subdir.c @@ -165,17 +165,29 @@ static int tmptgt_cleanup(struct hookset_data *hsd) static int do_mount_subdir( struct libmnt_context *cxt, struct hookset_data *hsd, - const char *root, - const char *target) + const char *root) { int rc = 0; const char *subdir = hsd->subdir; + const char *target; #ifdef USE_LIBMOUNT_MOUNTFD_SUPPORT - struct libmnt_sysapi *api; + struct libmnt_sysapi *api = mnt_context_get_sysapi(cxt); + + /* fallback only; necessary when hook_mount.c during preparation + * cannot open the tree -- for example when we call /sbin/mount. */ + if (api && api->fd_tree < 0) { + api->fd_tree = mnt_context_open_tree(cxt, NULL, (unsigned long) -1); + if (api->fd_tree < 0) + return api->fd_tree; + } +#endif + /* reset to the original mountpoint */ + mnt_fs_set_target(cxt->fs, hsd->org_target); + target = mnt_fs_get_target(cxt->fs); - api = mnt_context_get_sysapi(cxt); - if (api) { +#ifdef USE_LIBMOUNT_MOUNTFD_SUPPORT + if (api && api->fd_tree >= 0) { /* FD based way - unfortunately, it's impossible to open * sub-directory on not-yet attached mount. It means * hook_mount.c attaches FS to temporary directory, and we @@ -186,7 +198,7 @@ static int do_mount_subdir( */ int fd; - DBG(HOOK, ul_debug("attach subdir %s", subdir)); + DBG(HOOK, ul_debug("attach subdir '%s'", subdir)); fd = open_tree(api->fd_tree, subdir, OPEN_TREE_CLOEXEC | OPEN_TREE_CLONE); set_syscall_status(cxt, "open_tree", fd >= 0); @@ -256,13 +268,8 @@ static int hook_mount_post( if (!hsd || !hsd->subdir) return 0; - /* reset to the original mountpoint */ - mnt_fs_set_target(cxt->fs, hsd->org_target); - /* bind subdir to the real target, umount temporary target */ - rc = do_mount_subdir(cxt, hsd, - MNT_PATH_TMPTGT, - mnt_fs_get_target(cxt->fs)); + rc = do_mount_subdir(cxt, hsd, MNT_PATH_TMPTGT); if (rc) return rc; diff --git a/libmount/src/libmount.sym b/libmount/src/libmount.sym index 0b43160f3a7..2b6b12d5c3b 100644 --- a/libmount/src/libmount.sym +++ b/libmount/src/libmount.sym @@ -370,7 +370,7 @@ MOUNT_2_38 { MOUNT_2_39 { mnt_cache_set_sbprobe; mnt_context_enable_onlyonce; - mnt_context_is_lazy; + mnt_context_is_onlyonce; mnt_context_enable_noautofs; mnt_table_enable_noautofs; mnt_table_is_noautofs; diff --git a/libmount/src/mountP.h b/libmount/src/mountP.h index 9bca4ea7702..f437816278d 100644 --- a/libmount/src/mountP.h +++ b/libmount/src/mountP.h @@ -432,6 +432,7 @@ struct libmnt_context int syscall_status; /* 1: not called yet, 0: success, <0: -errno */ const char *syscall_name; /* failed syscall name */ + char *syscall_errmsg; /* message from kernel */ struct libmnt_ns ns_orig; /* original namespace */ struct libmnt_ns ns_tgt; /* target namespace */ @@ -496,6 +497,9 @@ static inline void reset_syscall_status(struct libmnt_context *cxt) DBG(CXT, ul_debug("reset syscall status")); cxt->syscall_status = 0; cxt->syscall_name = NULL; + + free(cxt->syscall_errmsg); + cxt->syscall_errmsg = NULL; } /* optmap.c */ @@ -604,6 +608,7 @@ extern int mnt_opt_set_value(struct libmnt_opt *opt, const char *str); extern int mnt_opt_set_u64value(struct libmnt_opt *opt, uint64_t num); extern int mnt_opt_set_quoted_value(struct libmnt_opt *opt, const char *str); extern int mnt_opt_is_external(struct libmnt_opt *opt); +extern int mnt_opt_is_sepnodata(struct libmnt_opt *opt); /* fs.c */ extern int mnt_fs_follow_optlist(struct libmnt_fs *fs, struct libmnt_optlist *ol); @@ -687,6 +692,9 @@ static inline struct libmnt_sysapi *mnt_context_get_sysapi(struct libmnt_context { return mnt_context_get_hookset_data(cxt, &hookset_mount); } + +int mnt_context_open_tree(struct libmnt_context *cxt, const char *path, unsigned long mflg); + #endif #endif /* _LIBMOUNT_PRIVATE_H */ diff --git a/libmount/src/optlist.c b/libmount/src/optlist.c index 101c908aeff..476acfd656f 100644 --- a/libmount/src/optlist.c +++ b/libmount/src/optlist.c @@ -46,6 +46,7 @@ struct libmnt_opt { unsigned int external : 1, /* visible for external helpers only */ recursive : 1, /* recursive flag */ + sepnodata : 1, /* value separator, but without data ("name=") */ is_linux : 1, /* defined in ls->linux_map (VFS attr) */ quoted : 1; /* name="value" */ }; @@ -438,6 +439,10 @@ static struct libmnt_opt *optlist_new_opt(struct libmnt_optlist *ls, opt->value = strndup(value, valsz); if (!opt->value) goto fail; + + } else if (value) { + /* separator specified, but empty value ("name=") */ + opt->sepnodata = 1; } if (namesz) { opt->name = strndup(name, namesz); @@ -957,7 +962,8 @@ int mnt_optlist_strdup_optstr(struct libmnt_optlist *ls, char **optstr, continue; rc = mnt_buffer_append_option(&buf, opt->name, strlen(opt->name), - opt->value, + opt->value ? opt->value : + opt->sepnodata ? "" : NULL, opt->value ? strlen(opt->value) : 0, opt->quoted); if (rc) @@ -1043,6 +1049,7 @@ struct libmnt_optlist *mnt_copy_optlist(struct libmnt_optlist *ls) no->src = opt->src; no->external = opt->external; no->quoted = opt->quoted; + no->sepnodata = opt->sepnodata; } } @@ -1184,6 +1191,11 @@ int mnt_opt_is_external(struct libmnt_opt *opt) return opt && opt->external ? 1 : 0; } +int mnt_opt_is_sepnodata(struct libmnt_opt *opt) +{ + return opt->sepnodata; +} + #ifdef TEST_PROGRAM diff --git a/libmount/src/tab_update.c b/libmount/src/tab_update.c index f0c99b82da5..d44d190bc98 100644 --- a/libmount/src/tab_update.c +++ b/libmount/src/tab_update.c @@ -894,7 +894,7 @@ static int update_init_lock(struct libmnt_update *upd, struct libmnt_lock *lc) upd->lock = mnt_new_lock(upd->filename, 0); if (!upd->lock) return -ENOMEM; - mnt_lock_block_signals(lc, TRUE); + mnt_lock_block_signals(upd->lock, TRUE); } return 0; @@ -982,9 +982,9 @@ int mnt_update_already_done(struct libmnt_update *upd) if (mnt_optstr_get_missing(fs->user_optstr, upd->fs->user_optstr, NULL) == 0) { upd->missing_options = 1; DBG(UPDATE, ul_debugobj(upd, " missing options detected")); - } - } else - rc = 1; + } else + rc = 1; + } } else if (upd->target) { /* umount */ diff --git a/libmount/src/utils.c b/libmount/src/utils.c index a2f8ea0337c..94a877cf051 100644 --- a/libmount/src/utils.c +++ b/libmount/src/utils.c @@ -340,6 +340,7 @@ int mnt_fstype_is_pseudofs(const char *type) "none", "nsfs", "overlay", + "pidfs", "pipefs", "proc", "pstore", diff --git a/libsmartcols/meson.build b/libsmartcols/meson.build index 560352d179c..bedd6da9769 100644 --- a/libsmartcols/meson.build +++ b/libsmartcols/meson.build @@ -72,3 +72,5 @@ if build_libsmartcols meson.override_dependency('smartcols', smartcols_dep) endif endif + +manadocs += ['libsmartcols/scols-filter.5.adoc'] diff --git a/libsmartcols/scols-filter.5.adoc b/libsmartcols/scols-filter.5.adoc index ec1d95c5a7c..1cb39d09d0d 100644 --- a/libsmartcols/scols-filter.5.adoc +++ b/libsmartcols/scols-filter.5.adoc @@ -2,7 +2,7 @@ //// Copyright (C) 2023 Karel Zak -This file may be copied under the terms of the GNU Public License. +This file may be copied under the terms of the GNU General Public License. //// = scols-filter(5) :doctype: manpage diff --git a/libsmartcols/src/Makemodule.am b/libsmartcols/src/Makemodule.am index 377888e81ed..a1f30bcde1e 100644 --- a/libsmartcols/src/Makemodule.am +++ b/libsmartcols/src/Makemodule.am @@ -58,6 +58,7 @@ $(SCOLS_YACC_STEMP): $(SCOLS_YACC_BASENAME).y @rm -f $(SCOLS_YACC_STEMP).tmp @touch -f $(SCOLS_YACC_STEMP).tmp $(AM_V_YACC) $(BISON) $< --output=${basename $@}.c --defines=${basename $@}.h + @touch -f ${basename $@}.c @mv -f $(SCOLS_YACC_STEMP).tmp $@ $(SCOLS_YACC_BASENAME).c $(SCOLS_YACC_BASENAME).h: $(SCOLS_YACC_STEMP) @@ -69,6 +70,7 @@ $(SCOLS_LEX_STEMP): $(SCOLS_LEX_BASENAME).l @rm -f $(SCOLS_LEX_STEMP).tmp @touch -f $(SCOLS_LEX_STEMP).tmp $(AM_V_GEN) $(FLEX) --header-file=${basename $@}.h --outfile=${basename $@}.c $< + @touch -f ${basename $@}.c @mv -f $(SCOLS_LEX_STEMP).tmp $@ $(SCOLS_LEX_BASENAME).c $(SCOLS_LEX_BASENAME).h: $(SCOLS_LEX_STEMP) diff --git a/libsmartcols/src/calculate.c b/libsmartcols/src/calculate.c index 84198da3bca..41daf74b3cc 100644 --- a/libsmartcols/src/calculate.c +++ b/libsmartcols/src/calculate.c @@ -306,6 +306,8 @@ static int reduce_column(struct libscols_table *tb, size_t wanted, org_width, reduce = 1; int is_trunc = 0; + if (stage > 6) + return -1; if (tb->termwidth >= *width) return 1; /* ignore hidden columns */ @@ -379,9 +381,14 @@ static int reduce_column(struct libscols_table *tb, /* columns are reduced in "bad first" way, be more * agresive for the the worst column */ reduce = 3; - if (cl->width - reduce < st->width_min) - reduce = cl->width - st->width_min; - cl->width -= reduce; + + if (cl->width < reduce) + reduce = cl->width; + + if (cl->width - reduce > st->width_min) + cl->width -= reduce; + else + cl->width = st->width_min; break; default: return -1; /* no more stages */ @@ -413,10 +420,8 @@ int __scols_calculate(struct libscols_table *tb, struct ul_buffer *buf) size_t colsepsz; int sorted = 0; - DBG(TAB, ul_debugobj(tb, "-----calculate-(termwidth=%zu)-----", tb->termwidth)); tb->is_dummy_print = 1; - colsepsz = scols_table_is_noencoding(tb) ? mbs_width(colsep(tb)) : mbs_safe_width(colsep(tb)); @@ -430,6 +435,11 @@ int __scols_calculate(struct libscols_table *tb, struct ul_buffer *buf) while (scols_table_next_column(tb, &itr, &cl) == 0) { int is_last; + memset(&cl->wstat, 0, sizeof(cl->wstat)); + cl->width = 0; + cl->width_treeart = 0; + scols_column_reset_wrap(cl); + if (scols_column_is_hidden(cl)) continue; @@ -485,7 +495,7 @@ int __scols_calculate(struct libscols_table *tb, struct ul_buffer *buf) /* reduce columns width */ while (width > tb->termwidth) { size_t org_width = width; - int rc = 0, n = 0; + int xrc = 0, n = 0; if (!sorted) { DBG(TAB, ul_debugobj(tb, "sorting by deviation")); @@ -500,12 +510,12 @@ int __scols_calculate(struct libscols_table *tb, struct ul_buffer *buf) scols_reset_iter(&itr, SCOLS_ITER_BACKWARD); while (width > tb->termwidth - && rc == 0 + && xrc == 0 && scols_table_next_column(tb, &itr, &cl) == 0) { - rc = reduce_column(tb, cl, &width, stage, n++); + xrc = reduce_column(tb, cl, &width, stage, n++); } - if (rc != 0) + if (xrc != 0) break; if (org_width == width) stage++; diff --git a/libsmartcols/src/column.c b/libsmartcols/src/column.c index 5700bac3b91..586a485abef 100644 --- a/libsmartcols/src/column.c +++ b/libsmartcols/src/column.c @@ -470,7 +470,7 @@ char *scols_wrapnl_nextchunk(const struct libscols_column *cl __attribute__((unu * This is built-in function for scols_column_set_wrapfunc(). This function * walk string separated by \0. * - * For example for data "AAA\0BBB\0CCC" the next chunk is "BBB". + * For example for data "AAA\0BBB\0CCC\0" the next chunk is "BBB". * * Returns: next chunk * diff --git a/libsmartcols/src/print.c b/libsmartcols/src/print.c index 88ab5a2f0f9..ab279e39fcf 100644 --- a/libsmartcols/src/print.c +++ b/libsmartcols/src/print.c @@ -764,11 +764,11 @@ int __cursor_to_buffer(struct libscols_table *tb, } } +done: /* reset wrapping after greatest chunk calculation */ if (cal && scols_column_is_wrap(cl)) scols_column_reset_wrap(cl); -done: DBG(COL, ul_debugobj(cl, "__cursor_to_buffer rc=%d", rc)); return rc; } @@ -802,8 +802,12 @@ static int print_line(struct libscols_table *tb, rc = __cursor_to_buffer(tb, buf, 0); if (!rc) rc = print_data(tb, buf); - if (!rc && scols_column_has_pending_wrap(cl)) - pending = 1; + if (!rc) { + if (scols_column_has_pending_wrap(cl)) + pending = 1; + else + scols_column_reset_wrap(cl); + } scols_table_reset_cursor(tb); } fputs_color_line_close(tb); @@ -827,10 +831,12 @@ static int print_line(struct libscols_table *tb, rc = __cursor_to_buffer(tb, buf, 0); if (!rc) rc = print_pending_data(tb, buf); - if (!rc && scols_column_has_pending_wrap(cl)) - pending = 1; - if (!rc && !pending) - scols_column_reset_wrap(cl); + if (!rc) { + if (scols_column_has_pending_wrap(cl)) + pending = 1; + else + scols_column_reset_wrap(cl); + } } else print_empty_cell(tb, cl, ln, NULL, ul_buffer_get_bufsiz(buf)); scols_table_reset_cursor(tb); diff --git a/libuuid/man/uuid_compare.3.adoc b/libuuid/man/uuid_compare.3.adoc index 1d3247542b7..60011675009 100644 --- a/libuuid/man/uuid_compare.3.adoc +++ b/libuuid/man/uuid_compare.3.adoc @@ -46,7 +46,7 @@ uuid_compare - compare whether two UUIDs are the same *#include * -*int uuid_compare(uuid_t __uu1__, uuid_t __uu2__)* +*int uuid_compare(const uuid_t __uu1__, const uuid_t __uu2__)* == DESCRIPTION diff --git a/libuuid/man/uuid_copy.3.adoc b/libuuid/man/uuid_copy.3.adoc index fee40d6bf7b..31c963decae 100644 --- a/libuuid/man/uuid_copy.3.adoc +++ b/libuuid/man/uuid_copy.3.adoc @@ -46,7 +46,7 @@ uuid_copy - copy a UUID value *#include * -*void uuid_copy(uuid_t __dst__, uuid_t __src__);* +*void uuid_copy(uuid_t __dst__, const uuid_t __src__);* == DESCRIPTION diff --git a/libuuid/man/uuid_is_null.3.adoc b/libuuid/man/uuid_is_null.3.adoc index 6fed1d8a860..23f2bf85f04 100644 --- a/libuuid/man/uuid_is_null.3.adoc +++ b/libuuid/man/uuid_is_null.3.adoc @@ -46,7 +46,7 @@ uuid_is_null - compare the value of the UUID to the NULL value *#include * -*int uuid_is_null(uuid_t __uu__);* +*int uuid_is_null(const uuid_t __uu__);* == DESCRIPTION diff --git a/libuuid/man/uuid_parse.3.adoc b/libuuid/man/uuid_parse.3.adoc index 8129aaee8fc..230023fd5a2 100644 --- a/libuuid/man/uuid_parse.3.adoc +++ b/libuuid/man/uuid_parse.3.adoc @@ -46,8 +46,8 @@ uuid_parse - convert an input UUID string into binary representation *#include * -*int uuid_parse(char *__in__, uuid_t __uu__);* + -*int uuid_parse_range(char *__in_start__, char *__in_end__, uuid_t __uu__);* +*int uuid_parse(const char *__in__, uuid_t __uu__);* + +*int uuid_parse_range(const char *__in_start__, const char *__in_end__, uuid_t __uu__);* == DESCRIPTION diff --git a/libuuid/man/uuid_time.3.adoc b/libuuid/man/uuid_time.3.adoc index 5497583ccc3..5e579e240ee 100644 --- a/libuuid/man/uuid_time.3.adoc +++ b/libuuid/man/uuid_time.3.adoc @@ -46,7 +46,7 @@ uuid_time - extract the time at which the UUID was created *#include * -*time_t uuid_time(uuid_t __uu__, struct timeval *__ret_tv__)* +*time_t uuid_time(const uuid_t __uu__, struct timeval *__ret_tv__)* == DESCRIPTION diff --git a/libuuid/man/uuid_unparse.3.adoc b/libuuid/man/uuid_unparse.3.adoc index a14dc8c2e76..20e8cfbab31 100644 --- a/libuuid/man/uuid_unparse.3.adoc +++ b/libuuid/man/uuid_unparse.3.adoc @@ -46,9 +46,9 @@ uuid_unparse - convert a UUID from binary representation to a string *#include * -*void uuid_unparse(uuid_t __uu__, char *__out__);* + -*void uuid_unparse_upper(uuid_t __uu__, char *__out__);* + -*void uuid_unparse_lower(uuid_t __uu__, char *__out__);* +*void uuid_unparse(const uuid_t __uu__, char *__out__);* + +*void uuid_unparse_upper(const uuid_t __uu__, char *__out__);* + +*void uuid_unparse_lower(const uuid_t __uu__, char *__out__);* == DESCRIPTION diff --git a/libuuid/meson.build b/libuuid/meson.build index a801b4e656c..597487fd084 100644 --- a/libuuid/meson.build +++ b/libuuid/meson.build @@ -20,6 +20,16 @@ unparse_c = files('src/unparse.c') libuuid_sym = 'src/libuuid.sym' libuuid_sym_path = '@0@/@1@'.format(meson.current_source_dir(), libuuid_sym) +libuuid_link_depends = [] +libuuid_link_args = [] + +if cc.has_link_argument('-Wl,--version-script=@0@'.format(libuuid_sym_path)) + libuuid_link_depends += [libuuid_sym] + libuuid_link_args += ['-Wl,--version-script=@0@'.format(libuuid_sym_path)] +endif + +thread_dep = dependency('threads') + lib_uuid = both_libraries( 'uuid', list_h, @@ -31,10 +41,10 @@ lib_uuid = both_libraries( md5_c, sha1_c, include_directories : [dir_include, dir_libuuid], - link_depends : libuuid_sym, + link_depends : libuuid_link_depends, version : libuuid_version, - link_args : ['-Wl,--version-script=@0@'.format(libuuid_sym_path)], - dependencies : [socket_libs, + link_args : libuuid_link_args, + dependencies : [socket_libs, thread_dep, build_libuuid ? [] : disabler()], install : build_libuuid) uuid_dep = declare_dependency(link_with: lib_uuid, include_directories: dir_libuuid) diff --git a/libuuid/src/Makemodule.am b/libuuid/src/Makemodule.am index e58fa261cf7..867ad7be5ec 100644 --- a/libuuid/src/Makemodule.am +++ b/libuuid/src/Makemodule.am @@ -31,7 +31,7 @@ libuuid_la_SOURCES = \ EXTRA_libuuid_la_DEPENDENCIES = \ libuuid/src/libuuid.sym -libuuid_la_LIBADD = $(LDADD) $(SOCKET_LIBS) +libuuid_la_LIBADD = $(LDADD) $(SOCKET_LIBS) -lpthread libuuid_la_CFLAGS = \ $(AM_CFLAGS) \ @@ -41,7 +41,7 @@ libuuid_la_CFLAGS = \ libuuid_la_LDFLAGS = $(SOLIB_LDFLAGS) if HAVE_VSCRIPT -libuuid_la_LDFLAGS += libuuid_la_LDFLAGS += $(VSCRIPT_LDFLAGS),$(top_srcdir)/libuuid/src/libuuid.sym +libuuid_la_LDFLAGS += $(VSCRIPT_LDFLAGS),$(top_srcdir)/libuuid/src/libuuid.sym endif libuuid_la_LDFLAGS += -version-info $(LIBUUID_VERSION_INFO) diff --git a/libuuid/src/gen_uuid.c b/libuuid/src/gen_uuid.c index 59e8c23f01a..3b76ddc9aae 100644 --- a/libuuid/src/gen_uuid.c +++ b/libuuid/src/gen_uuid.c @@ -80,6 +80,8 @@ #if defined(__linux__) && defined(HAVE_SYS_SYSCALL_H) #include #endif +#include +#include #include "all-io.h" #include "uuidP.h" @@ -90,11 +92,7 @@ #include "md5.h" #include "sha1.h" -#ifdef HAVE_TLS #define THREAD_LOCAL static __thread -#else -#define THREAD_LOCAL static -#endif #ifdef _WIN32 static void gettimeofday (struct timeval *tv, void *dummy) @@ -583,64 +581,76 @@ int __uuid_generate_time_cont(uuid_t out, int *num, uint32_t cont_offset) * If neither of these is possible (e.g. because of insufficient permissions), it generates * the UUID anyway, but returns -1. Otherwise, returns 0. */ + +/* thread local cache for uuidd based requests */ +THREAD_LOCAL struct { + int num; + int cache_size; + int last_used; + struct uuid uu; + time_t last_time; +} uuidd_cache = { + .cache_size = CS_MIN, +}; + +static void reset_uuidd_cache(void) +{ + memset(&uuidd_cache, 0, sizeof(uuidd_cache)); + uuidd_cache.cache_size = CS_MIN; +} + static int uuid_generate_time_generic(uuid_t out) { -#ifdef HAVE_TLS - /* thread local cache for uuidd based requests */ - THREAD_LOCAL int num = 0; - THREAD_LOCAL int cache_size = CS_MIN; - THREAD_LOCAL int last_used = 0; - THREAD_LOCAL struct uuid uu; - THREAD_LOCAL time_t last_time = 0; - time_t now; - - if (num > 0) { /* expire cache */ + static volatile sig_atomic_t atfork_registered; + time_t now; + + if (!atfork_registered) { + pthread_atfork(NULL, NULL, reset_uuidd_cache); + atfork_registered = 1; + } + + if (uuidd_cache.num > 0) { /* expire cache */ now = time(NULL); - if (now > last_time+1) { - last_used = cache_size - num; - num = 0; + if (now > uuidd_cache.last_time+1) { + uuidd_cache.last_used = uuidd_cache.cache_size - uuidd_cache.num; + uuidd_cache.num = 0; } } - if (num <= 0) { /* fill cache */ + if (uuidd_cache.num <= 0) { /* fill cache */ /* * num + OP_BULK provides a local cache in each application. * Start with a small cache size to cover short running applications * and adjust the cache size over the runntime. */ - if ((last_used == cache_size) && (cache_size < CS_MAX)) - cache_size *= CS_FACTOR; - else if ((last_used < (cache_size / CS_FACTOR)) && (cache_size > CS_MIN)) - cache_size /= CS_FACTOR; + if ((uuidd_cache.last_used == uuidd_cache.cache_size) && (uuidd_cache.cache_size < CS_MAX)) + uuidd_cache.cache_size *= CS_FACTOR; + else if ((uuidd_cache.last_used < (uuidd_cache.cache_size / CS_FACTOR)) && (uuidd_cache.cache_size > CS_MIN)) + uuidd_cache.cache_size /= CS_FACTOR; - num = cache_size; + uuidd_cache.num = uuidd_cache.cache_size; if (get_uuid_via_daemon(UUIDD_OP_BULK_TIME_UUID, - out, &num) == 0) { - last_time = time(NULL); - uuid_unpack(out, &uu); - num--; + out, &uuidd_cache.num) == 0) { + uuidd_cache.last_time = time(NULL); + uuid_unpack(out, &uuidd_cache.uu); + uuidd_cache.num--; return 0; } /* request to daemon failed, reset cache */ - num = 0; - cache_size = CS_MIN; + reset_uuidd_cache(); } - if (num > 0) { /* serve uuid from cache */ - uu.time_low++; - if (uu.time_low == 0) { - uu.time_mid++; - if (uu.time_mid == 0) - uu.time_hi_and_version++; + if (uuidd_cache.num > 0) { /* serve uuid from cache */ + uuidd_cache.uu.time_low++; + if (uuidd_cache.uu.time_low == 0) { + uuidd_cache.uu.time_mid++; + if (uuidd_cache.uu.time_mid == 0) + uuidd_cache.uu.time_hi_and_version++; } - num--; - uuid_pack(&uu, out); - if (num == 0) - last_used = cache_size; + uuidd_cache.num--; + uuid_pack(&uuidd_cache.uu, out); + if (uuidd_cache.num == 0) + uuidd_cache.last_used = uuidd_cache.cache_size; return 0; } -#else - if (get_uuid_via_daemon(UUIDD_OP_TIME_UUID, out, 0) == 0) - return 0; -#endif return __uuid_generate_time(out, NULL); } diff --git a/libuuid/src/libuuid.sym b/libuuid/src/libuuid.sym index 0f67ede0d52..106c017790e 100644 --- a/libuuid/src/libuuid.sym +++ b/libuuid/src/libuuid.sym @@ -57,7 +57,7 @@ global: */ UUID_2.40 { global: - uuid_time64; /* only on 32bit architectures with 64bit time_t */ + uuid_time64*; /* only on 32bit architectures with 64bit time_t */ } UUID_2.36; diff --git a/libuuid/src/uuidP.h b/libuuid/src/uuidP.h index fef7e6cb56d..6face821523 100644 --- a/libuuid/src/uuidP.h +++ b/libuuid/src/uuidP.h @@ -39,8 +39,8 @@ #include "uuid.h" -#define LIBUUID_CLOCK_FILE "/var/lib/libuuid/clock.txt" -#define LIBUUID_CLOCK_CONT_FILE "/var/lib/libuuid/clock-cont.txt" +#define LIBUUID_CLOCK_FILE _PATH_LOCALSTATEDIR "/lib/libuuid/clock.txt" +#define LIBUUID_CLOCK_CONT_FILE _PATH_LOCALSTATEDIR "/lib/libuuid/clock-cont.txt" /* * Offset between 15-Oct-1582 and 1-Jan-70 diff --git a/libuuid/uuid.pc.in b/libuuid/uuid.pc.in index 875de19bc21..51929fe80d7 100644 --- a/libuuid/uuid.pc.in +++ b/libuuid/uuid.pc.in @@ -6,6 +6,6 @@ includedir=@includedir@ Name: uuid Description: Universally unique id library Version: @LIBUUID_VERSION@ -Requires: Cflags: -I${includedir}/uuid +Libs.private: @SOCKET_LIBS@ -lpthread Libs: -L${libdir} -luuid diff --git a/login-utils/chsh.1.adoc b/login-utils/chsh.1.adoc index 965a9e333d6..940ded5aa13 100644 --- a/login-utils/chsh.1.adoc +++ b/login-utils/chsh.1.adoc @@ -44,7 +44,7 @@ deprecated *-u*. Print version and exit. The short options *-V* have been used since version 2.39; old versions use deprecated *-v*. -include::man-common/help-version.adoc[] +// Do not include::man-common/help-version.adoc[] as both -h and -V were already explicitly given above in more detail. == VALID SHELLS diff --git a/login-utils/last.c b/login-utils/last.c index bbbe817f8a9..f5a9fec0804 100644 --- a/login-utils/last.c +++ b/login-utils/last.c @@ -351,7 +351,10 @@ static int time_formatter(int fmt, char *dst, size_t dlen, time_t *when) { char buf[CTIME_BUFSIZ]; - ctime_r(when, buf); + if (!ctime_r(when, buf)) { + ret = -1; + break; + } snprintf(dst, dlen, "%s", buf); ret = rtrim_whitespace((unsigned char *) dst); break; diff --git a/login-utils/lslogins.c b/login-utils/lslogins.c index 217f3f3aedc..41f7e135ea1 100644 --- a/login-utils/lslogins.c +++ b/login-utils/lslogins.c @@ -1458,7 +1458,7 @@ static void __attribute__((__noreturn__)) usage(void) fputs(_(" --notruncate don't truncate output\n"), out); fputs(_(" -o, --output[=] define the columns to output\n"), out); fputs(_(" --output-all output all columns\n"), out); - fputs(_(" -p, --pwd display information related to login by password.\n"), out); + fputs(_(" -p, --pwd display information related to login by password\n"), out); fputs(_(" -r, --raw display in raw mode\n"), out); fputs(_(" -s, --system-accs display system accounts\n"), out); fputs(_(" --time-format= display dates in short, full or iso format\n"), out); diff --git a/login-utils/newgrp.1.adoc b/login-utils/newgrp.1.adoc index 0e73eaf51ce..e9a90d3ea85 100644 --- a/login-utils/newgrp.1.adoc +++ b/login-utils/newgrp.1.adoc @@ -1,4 +1,8 @@ -//po4a: entry man manual +// +// No copyright is claimed. This code is in the public domain; do with +// it what you wish. +// +// po4a: entry man manual // Original author unknown. This man page is in the public domain. // Modified Sat Oct 9 17:46:48 1993 by faith@cs.unc.edu = newgrp(1) diff --git a/login-utils/runuser.1.adoc b/login-utils/runuser.1.adoc index aea95f743b6..b041572e102 100644 --- a/login-utils/runuser.1.adoc +++ b/login-utils/runuser.1.adoc @@ -56,7 +56,7 @@ Start the shell as a login shell with an environment similar to a real login: Preserve the entire environment, i.e., do not set *HOME*, *SHELL*, *USER* or *LOGNAME*. The option is ignored if the option *--login* is specified. *-P*, *--pty*:: -Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid TIOCSTI ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., *runuser --pty* *-u* _username_ *--* _command_ *&*). If the pseudo-terminal is enabled, then *runuser* works as a proxy between the sessions (sync stdin and stdout). +Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid TIOCSTI ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., *runuser --pty* *-u* _user_ *--* _command_ *&*). If the pseudo-terminal is enabled, then *runuser* works as a proxy between the sessions (sync stdin and stdout). + This feature is mostly designed for interactive sessions. If the standard input is not a terminal, but for example a pipe (e.g., *echo "date" | runuser --pty -u* _user_), then the *ECHO* flag for the pseudo-terminal is disabled to avoid messy output. @@ -77,6 +77,9 @@ Same as *-c*, but do not create a new session. (Discouraged.) Do not create a pseudo-terminal, opposite of *--pty* and *-P*. Note that running without a pseudo-terminal opens the security risk of privilege escalation through TIOCSTI/TIOCLINUX ioctl command injection. +*-u*, *--user*=_user_:: +Run _command_ with the effective user ID and group ID of the user name _user_. + *-w*, *--whitelist-environment*=_list_:: Don't reset the environment variables specified in the comma-separated _list_ when clearing the environment for *--login*. The whitelist is ignored for the environment variables *HOME*, *SHELL*, *USER*, *LOGNAME*, and *PATH*. diff --git a/login-utils/su-common.c b/login-utils/su-common.c index 4cc24e34c14..3dda84e532b 100644 --- a/login-utils/su-common.c +++ b/login-utils/su-common.c @@ -290,7 +290,7 @@ static void log_syslog(struct su_context *su, bool successful) { DBG(LOG, ul_debug("syslog logging")); - openlog(program_invocation_short_name, LOG_PID, LOG_AUTH); + openlog(su->runuser ? "runuser" : "su", LOG_PID, LOG_AUTH); syslog(LOG_NOTICE, "%s(to %s) %s on %s", successful ? "" : su->runuser ? "FAILED RUNUSER " : "FAILED SU ", @@ -447,9 +447,10 @@ static void supam_open_session(struct su_context *su) rc = pam_open_session(su->pamh, 0); if (is_pam_failure(rc)) { + const char *msg = pam_strerror(su->pamh, rc); + supam_cleanup(su, rc); - errx(EXIT_FAILURE, _("cannot open session: %s"), - pam_strerror(su->pamh, rc)); + errx(EXIT_FAILURE, _("cannot open session: %s"), msg); } else su->pam_has_session = 1; } @@ -835,13 +836,14 @@ static void run_shell( size_t n_args = 1 + su->fast_startup + 2 * ! !command + n_additional_args + 1; const char **args = xcalloc(n_args, sizeof *args); size_t argno = 1; + char *tmp; DBG(MISC, ul_debug("starting shell [shell=%s, command=\"%s\"%s%s]", shell, command, su->simulate_login ? " login" : "", su->fast_startup ? " fast-start" : "")); + tmp = xstrdup(shell); - char* tmp = xstrdup(shell); if (su->simulate_login) { char *arg0; char *shell_basename; @@ -851,10 +853,8 @@ static void run_shell( arg0[0] = '-'; strcpy(arg0 + 1, shell_basename); args[0] = arg0; - } else { - args[0] = basename(tmp); - } - free(tmp); + } else + args[0] = basename(tmp); if (su->fast_startup) args[argno++] = "-f"; diff --git a/login-utils/su.1.adoc b/login-utils/su.1.adoc index 2db2e04c587..33f45833f44 100644 --- a/login-utils/su.1.adoc +++ b/login-utils/su.1.adoc @@ -64,7 +64,7 @@ PAM) from this point of view. You need to use tools like *systemd-run* or Preserve the entire environment, i.e., do not set *HOME*, *SHELL*, *USER* or *LOGNAME*. This option is ignored if the option *--login* is specified. *-P*, *--pty*:: -Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid *TIOCSTI* ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., *su --pty* **-** __username__ *-c* _application_ *&*). If the pseudo-terminal is enabled, then *su* works as a proxy between the sessions (sync stdin and stdout). +Create a pseudo-terminal for the session. The independent terminal provides better security as the user does not share a terminal with the original session. This can be used to avoid *TIOCSTI* ioctl terminal injection and other security attacks against terminal file descriptors. The entire session can also be moved to the background (e.g., *su --pty* **-** __user__ *-c* _application_ *&*). If the pseudo-terminal is enabled, then *su* works as a proxy between the sessions (sync stdin and stdout). + This feature is mostly designed for interactive sessions. If the standard input is not a terminal, but for example a pipe (e.g., *echo "date" | su --pty*), then the *ECHO* flag for the pseudo-terminal is disabled to avoid messy output. diff --git a/meson.build b/meson.build index 5a3806cf8e9..39a5c68016d 100644 --- a/meson.build +++ b/meson.build @@ -10,8 +10,10 @@ project('util-linux', 'c', fs = import('fs') pkgconfig = import('pkgconfig') +# soname versions; This never change because we use symbols versioing. There is also +# API version (LIB*_VERSION macros) and it follow package version. libblkid_version = '1.1.0' -libblkid_date = '01-Jun-2021' +libblkid_date = '13-Jan-2025' libuuid_version = '1.3.0' liblastlog2_version = '2.0.0' libmount_version = '1.1.0' @@ -28,6 +30,7 @@ sysconfstaticdir = join_paths(prefixdir, 'lib') docdir = join_paths(prefixdir, get_option('datadir'), 'doc', 'util-linux') mandir = join_paths(prefixdir, get_option('mandir')) runstatedir = '/run' +localstatedir = '/var' execprefixdir = prefixdir sysconfdir = join_paths(prefixdir, get_option('sysconfdir')) usrbin_exec_dir = join_paths(execprefixdir, bindir) @@ -38,6 +41,10 @@ vendordir = get_option('vendordir') add_project_arguments('-D_GNU_SOURCE', language : 'c') +if host_machine.system() == 'darwin' + add_project_arguments('-D_DARWIN_C_SOURCE', language : 'c') +endif + cc = meson.get_compiler('c') conf = configuration_data() @@ -55,24 +62,29 @@ endif pc_version = '.'.join(pc_version) -conf.set_quoted('LIBBLKID_VERSION', libblkid_version) +conf.set_quoted('LIBBLKID_VERSION', pc_version) conf.set_quoted('LIBBLKID_DATE', libblkid_date) conf.set('bindir', bindir) conf.set('sbindir', sbindir) conf.set('runstatedir', runstatedir) +conf.set('localstatedir', localstatedir) conf.set('sysconfdir', sysconfdir) +conf.set('usrbin_execdir', usrbin_exec_dir) conf.set('usrsbin_execdir', usrsbin_exec_dir) conf.set('docdir', docdir) conf.set_quoted('_PATH_SYSCONFSTATICDIR', sysconfstaticdir) conf.set_quoted('_PATH_RUNSTATEDIR', runstatedir) +conf.set_quoted('_PATH_LOCALSTATEDIR', localstatedir) conf.set_quoted('CONFIG_ADJTIME_PATH', '/etc/adjtime') conf.set_quoted('ADJTIME_PATH', '/etc/adjtime') # yes, both are used :( -conf.set_quoted('_PATH_VENDORDIR', vendordir) +if vendordir != '' + conf.set_quoted('_PATH_VENDORDIR', vendordir) +endif conf.set('USE_VENDORDIR', vendordir == '' ? false : 1) -build_libblkid = not get_option('build-libblkid').disabled() +build_libblkid = get_option('build-libblkid').allowed() conf.set('HAVE_LIBBLKID', build_libblkid ? 1 : false) summary('libblkid', build_libblkid ? 'enabled' : 'disabled', section : 'components') @@ -91,7 +103,8 @@ conf.set('HAVE_MOUNTFD_API', have_mountfd_api ? 1 : false) have_struct_statx = cc.sizeof('struct statx', prefix : '#include ') > 0 conf.set('HAVE_STRUCT_STATX', have_struct_statx ? 1 : false) -build_libmount = not get_option('build-libmount').disabled() +build_libmount = get_option('build-libmount').require(get_option('build-libblkid').allowed()).allowed() + conf.set('HAVE_LIBMOUNT', build_libmount ? 1 : false) conf.set('USE_LIBMOUNT_SUPPORT_NAMESPACES', 1) conf.set('USE_LIBMOUNT_MOUNTFD_SUPPORT', have_mountfd_api ? 1 : false) @@ -101,7 +114,7 @@ build_libsmartcols = not get_option('build-libsmartcols').disabled() conf.set('HAVE_LIBSMARTCOLS', build_libsmartcols ? 1 : false) summary('libsmartcols', build_libsmartcols ? 'enabled' : 'disabled', section : 'components') -build_libfdisk = not get_option('build-libfdisk').disabled() +build_libfdisk = not get_option('build-libfdisk').require(get_option('build-libblkid').allowed()).disabled() conf.set('HAVE_LIBFDISK', build_libfdisk ? 1 : false) summary('libfdisk', build_libfdisk ? 'enabled' : 'disabled', section : 'components') @@ -340,7 +353,10 @@ lib_udev = dependency( required : get_option('systemd')) conf.set('HAVE_LIBUDEV', lib_udev.found() ? 1 : false) -lib_crypt = cc.find_library('crypt') +lib_crypt = cc.find_library('crypt', required : get_option('build-newgrp')) +if not lib_crypt.found() + lib_crypt = cc.find_library('crypt', required : get_option('build-sulogin')) +endif lib_pam = cc.find_library('pam', required : get_option('build-login')) if not lib_pam.found() @@ -364,7 +380,8 @@ lib_cryptsetup = dependency( required : get_option('cryptsetup')) conf.set('HAVE_CRYPTSETUP', lib_cryptsetup.found() ? 1 : false) -if not get_option('cryptsetup').disabled() and get_option('cryptsetup-dlopen').enabled() +cryptsetup_dlopen = not get_option('cryptsetup').disabled() and get_option('cryptsetup-dlopen').enabled() +if cryptsetup_dlopen if meson.version().version_compare('>= 0.62.0') lib_dl = dependency('dl') else @@ -440,12 +457,11 @@ endforeach have = cc.has_header('sched.h') conf.set10('HAVE_DECL_CPU_ALLOC', have) -# We get -1 if the size cannot be determined -have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#define _GNU_SOURCE\n#include ') > 0 +have_cpu_set_t = cc.has_type('cpu_set_t', args : '-D_GNU_SOURCE', prefix : '#include ') conf.set('HAVE_CPU_SET_T', have_cpu_set_t ? 1 : false) have = cc.has_header_symbol('unistd.h', 'environ', args : '-D_GNU_SOURCE') -conf.set10('HAVE_ENVIRON_DECL', have) +conf.set('HAVE_ENVIRON_DECL', have ? 1 : false) have = cc.has_header_symbol('signal.h', 'sighandler_t', args : '-D_GNU_SOURCE') conf.set('HAVE_SIGHANDLER_T', have ? 1 : false) @@ -456,7 +472,9 @@ conf.set10('HAVE_STRSIGNAL_DECL', have) have = cc.sizeof('union semun', prefix : '#include ') > 0 conf.set('HAVE_UNION_SEMUN', have ? 1 : false) -have = cc.has_type('loff_t', prefix : '#include ') +have = cc.has_type('loff_t', + args : '-D_GNU_SOURCE', + prefix : '#include ') conf.set('HAVE_LOFF_T', have ? 1 : false) have = cc.compiles(''' @@ -556,7 +574,6 @@ funcs = ''' llistxattr llseek newlocale - mempcpy mkostemp move_mount mount_setattr @@ -621,6 +638,9 @@ foreach func: funcs conf.set('HAVE_' + func.to_upper(), have ? 1 : false) endforeach +have_mempcpy = cc.has_function('mempcpy', prefix: '#include ', args: '-D_GNU_SOURCE') +conf.set('HAVE_MEMPCPY', have_mempcpy ? 1 : false) + have = conf.get('HAVE_FUTIMENS') in [1] and conf.get('HAVE_INOTIFY_INIT1') in [1] conf.set('AGETTY_RELOAD', have ? 1 : false) if not have @@ -640,6 +660,7 @@ have_ddfd = cc.has_member('DIR', 'dd_fd', conf.set('HAVE_DECL_DDFD', have_ddfd ? 1 : false) have = cc.has_member('struct tm', 'tm_gmtoff', + args : '-D_GNU_SOURCE', prefix : ''' #include #include @@ -656,6 +677,7 @@ have = cc.has_member('struct termios', 'c_line', conf.set('HAVE_STRUCT_TERMIOS_C_LINE', have ? 1 : false) have = cc.has_member('struct stat', 'st_mtim.tv_nsec', + args : '-D_GNU_SOURCE', prefix : '#include ') conf.set('HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC', have ? 1 : false) @@ -665,6 +687,7 @@ conf.set('HAVE_STRUCT_STATX_STX_MNT_ID', have ? 1 : false) # replacement for AC_STRUCT_TIMEZONE have = cc.has_member('struct tm', 'tm_zone', + args : '-D_GNU_SOURCE', prefix : '#include ') conf.set('HAVE_STRUCT_TM_TM_ZONE', have ? 1 : false) @@ -712,12 +735,15 @@ if not cc.has_function('socket') endif endif +lib_rt = cc.find_library('rt', required : false) realtime_libs = [] have = cc.has_function('clock_gettime') if not have - realtime_libs += cc.find_library('rt', required : true) - have = cc.has_function('clock_gettime', - dependencies : realtime_libs) + if lib_rt.found() + realtime_libs += lib_rt + have = cc.has_function('clock_gettime', + dependencies : realtime_libs) + endif endif conf.set('HAVE_CLOCK_GETTIME', have ? 1 : false) @@ -725,9 +751,11 @@ thread_libs = dependency('threads') have = cc.has_function('timer_create') if not have - realtime_libs = [cc.find_library('rt', required : true)] - have = cc.has_function('timer_create', - dependencies : realtime_libs) + if lib_rt.found() + realtime_libs = [lib_rt] + have = cc.has_function('timer_create', + dependencies : realtime_libs) + endif if not have realtime_libs += thread_libs have = cc.has_function('timer_create', @@ -765,9 +793,9 @@ int main(void) { have = cc.compiles(code, name : 'using __progname') conf.set('HAVE___PROGNAME', have ? 1 : false) -have = conf.get('HAVE_PTY_H').to_string() == '1' \ - and conf.get('HAVE_SYS_SIGNALFD_H').to_string() == '1' -conf.set('HAVE_PTY', have ? 1 : false) +have_pty = conf.get('HAVE_PTY_H').to_string() == '1' \ + and conf.get('HAVE_SYS_SIGNALFD_H').to_string() == '1' +conf.set('HAVE_PTY', have_pty ? 1 : false) have_opal_get_status= cc.has_header_symbol('linux/sed-opal.h', 'IOC_OPAL_GET_STATUS') conf.set('HAVE_OPAL_GET_STATUS', have_opal_get_status ? 1 : false) @@ -872,6 +900,7 @@ conf.set('USE_TTY_GROUP', have ? 1 : false) bison = find_program('bison') flex = find_program('flex') +sed = find_program('sed') build_hwclock = not get_option('build-hwclock').disabled() bison_gen = generator( @@ -879,6 +908,8 @@ bison_gen = generator( output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'], arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@']) +python_program = find_program('python3', 'python', native : true) + meson_make_symlink = meson.current_source_dir() + '/tools/meson-make-symlink.sh' meson_make_manpage_stub = meson.current_source_dir() + '/tools/meson-make-manpage-stub.sh' @@ -947,9 +978,7 @@ subdir('term-utils') subdir('po') includes = [dir_include, - dir_libblkid, dir_libsmartcols, - dir_libmount, dir_libfdisk, dir_libuuid, dir_liblastlog2, @@ -1054,7 +1083,7 @@ if opt and not is_disabler(exe) bashcompletions += ['utmpdump'] endif -opt = not get_option('build-su').disabled() +opt = get_option('build-su').require(have_pty).allowed() exe = executable( 'su', 'login-utils/su.c', @@ -1135,7 +1164,7 @@ if opt and not is_disabler(exe) join_paths(mandir, 'man8/vigr.8')) endif -opt = not get_option('build-runuser').disabled() +opt = get_option('build-runuser').require(have_pty).allowed() exe = executable( 'runuser', 'login-utils/runuser.c', @@ -1348,29 +1377,39 @@ exe = executable( exes += exe manadocs += ['sys-utils/choom.1.adoc'] +has_seminfo_type = cc.has_type('struct seminfo', args : '-D_GNU_SOURCE', prefix : '#include ') + +opt = get_option('build-ipcmk').require(has_seminfo_type).allowed() exe = executable( 'ipcmk', ipcmk_sources, include_directories : includes, link_with : [lib_common], install_dir : usrbin_exec_dir, - install : true) -exes += exe -manadocs += ['sys-utils/ipcmk.1.adoc'] -bashcompletions += ['ipcmk'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/ipcmk.1.adoc'] + bashcompletions += ['ipcmk'] +endif +opt = get_option('build-ipcrm').require(has_seminfo_type).allowed() exe = executable( 'ipcrm', ipcrm_sources, include_directories : includes, link_with : [lib_common], install_dir : usrbin_exec_dir, - install : true) -exes += exe -manadocs += ['sys-utils/ipcrm.1.adoc'] -bashcompletions += ['ipcrm'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/ipcrm.1.adoc'] + bashcompletions += ['ipcrm'] +endif -opt = not get_option('build-ipcs').disabled() +opt = not get_option('build-ipcs').require(has_seminfo_type).disabled() exe = executable( 'ipcs', ipcs_sources, @@ -1472,28 +1511,32 @@ if opt and not is_disabler(exe) bashcompletions += ['tunelp'] endif +opt = not get_option('build-fstrim').disabled() exe = executable( 'fstrim', fstrim_sources, include_directories : includes, - link_with : [lib_common, - lib_mount], + link_with : [lib_common], + dependencies : [mount_dep], install_dir : sbindir, - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/fstrim.8.adoc'] bashcompletions += ['fstrim'] -endif +endif +opt = get_option('build-dmesg').require(cc.has_header('sys/klog.h')).allowed() exe = executable( 'dmesg', dmesg_sources, include_directories : includes, link_with : [lib_common, lib_tcolors], - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/dmesg.1.adoc'] bashcompletions += ['dmesg'] @@ -1522,109 +1565,143 @@ exes += exe manadocs += ['sys-utils/ctrlaltdel.8.adoc'] bashcompletions += ['ctrlaltdel'] +have_linux_fs_h = conf.get('HAVE_LINUX_FS_H').to_string() == '1' + +opt = get_option('build-fsfreeze').require(have_linux_fs_h).allowed() exe = executable( 'fsfreeze', fsfreeze_sources, include_directories : includes, install_dir : sbindir, - install : true) -exes += exe -manadocs += ['sys-utils/fsfreeze.8.adoc'] -bashcompletions += ['fsfreeze'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/fsfreeze.8.adoc'] + bashcompletions += ['fsfreeze'] +endif +opt = get_option('build-blkdiscard').require(have_linux_fs_h).allowed() exe = executable( 'blkdiscard', blkdiscard_sources, include_directories : includes, - link_with : [lib_common, - lib_blkid], + link_with : [lib_common], + dependencies : [blkid_dep], install_dir : sbindir, - install : true) -exes += exe -manadocs += ['sys-utils/blkdiscard.8.adoc'] -bashcompletions += ['blkdiscard'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/blkdiscard.8.adoc'] + bashcompletions += ['blkdiscard'] +endif +opt = get_option('build-blkzone').require(have_linux_fs_h).allowed() exe = executable( 'blkzone', blkzone_sources, include_directories : includes, link_with : [lib_common], install_dir : sbindir, - install : true) -exes += exe -manadocs += ['sys-utils/blkzone.8.adoc'] -bashcompletions += ['blkzone'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/blkzone.8.adoc'] + bashcompletions += ['blkzone'] +endif +opt = get_option('build-blkpr').require(cc.has_header('linux/pr.h')).allowed() exe = executable( 'blkpr', blkpr_sources, include_directories : includes, link_with : [lib_common], install_dir : sbindir, - install : true) -exes += exe -manadocs += ['sys-utils/blkpr.8.adoc'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/blkpr.8.adoc'] +endif +opt = get_option('build-ldattach').require(cc.has_header('linux/if.h')).allowed() exe = executable( 'ldattach', ldattach_sources, include_directories : includes, link_with : [lib_common], install_dir : usrsbin_exec_dir, - install : true) -exes += exe -manadocs += ['sys-utils/ldattach.8.adoc'] -bashcompletions += ['ldattach'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/ldattach.8.adoc'] + bashcompletions += ['ldattach'] +endif + +have_linux_rtc_h = cc.has_header('linux/rtc.h') +opt = get_option('build-rtcwake').require(have_linux_rtc_h).allowed() exe = executable( 'rtcwake', rtcwake_sources, include_directories : includes, link_with : [lib_common], install_dir : usrsbin_exec_dir, - install : true) -exes += exe -manadocs += ['sys-utils/rtcwake.8.adoc'] -bashcompletions += ['rtcwake'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/rtcwake.8.adoc'] + bashcompletions += ['rtcwake'] +endif +opt = get_option('build-setarch').require(cc.has_header('sys/personality.h')).allowed() exe = executable( 'setarch', setarch_sources, include_directories : includes, link_with : [lib_common], install_dir : usrbin_exec_dir, - install : true) -exes += exe -manadocs += ['sys-utils/setarch.8.adoc'] -bashcompletions += ['setarch'] - -setarch_links = ['uname26', 'linux32', 'linux64'] -setarch_links_arch = { - 's390x' : ['s390', 's390x'], - 'x86' : ['i386'], - 'x86_64' : ['i386', 'x86_64'], - 'ppc64' : ['ppc', 'ppc64', 'ppc32'], - 'space64' : ['sparc', 'sparc64', 'sparc32', 'sparc32bash'], - 'mips64' : ['mips', 'mips64', 'mips32'], - 'ia64' : ['i386', 'ia64'], - 'hppa' : ['parisc', 'parisc64', 'parisc32'], -} -setarch_links += setarch_links_arch.get(host_machine.cpu_family(), []) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/setarch.8.adoc'] + bashcompletions += ['setarch'] +endif -foreach link: setarch_links - meson.add_install_script(meson_make_symlink, - 'setarch', - join_paths(usrbin_exec_dir, link)) - manlinks += {link + '.8': 'setarch.8'} -endforeach +if opt + setarch_links = ['uname26', 'linux32', 'linux64'] + setarch_links_arch = { + 's390x' : ['s390', 's390x'], + 'x86' : ['i386'], + 'x86_64' : ['i386', 'x86_64'], + 'ppc64' : ['ppc', 'ppc64', 'ppc32'], + 'space64' : ['sparc', 'sparc64', 'sparc32', 'sparc32bash'], + 'mips64' : ['mips', 'mips64', 'mips32'], + 'ia64' : ['i386', 'ia64'], + 'hppa' : ['parisc', 'parisc64', 'parisc32'], + } + setarch_links += setarch_links_arch.get(host_machine.cpu_family(), []) + + foreach link: setarch_links + meson.add_install_script(meson_make_symlink, + 'setarch', + join_paths(usrbin_exec_dir, link)) + manlinks += {link + '.8': 'setarch.8'} + endforeach +endif opt = not get_option('build-eject').disabled() exe = executable( 'eject', eject_sources, include_directories : includes, - link_with : [lib_common, - lib_mount], + link_with : [lib_common], + dependencies : [mount_dep], install_dir : usrbin_exec_dir, install : opt, build_by_default : opt) @@ -1695,16 +1772,18 @@ if not is_disabler(exe) bashcompletions += ['prlimit'] endif +opt = not get_option('build-lsns').disabled() exe = executable( 'lsns', lsns_sources, include_directories : includes, link_with : [lib_common, - lib_smartcols, - lib_mount], + lib_smartcols], + dependencies : [mount_dep], install_dir : usrbin_exec_dir, - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/lsns.8.adoc'] bashcompletions += ['lsns'] @@ -1716,9 +1795,8 @@ exe = executable( mount_sources, include_directories : includes, link_with : [lib_common, - lib_smartcols, - lib_mount], - dependencies : lib_selinux, + lib_smartcols], + dependencies : [lib_selinux, mount_dep], install_mode : 'rwsr-xr-x', install : opt, build_by_default : opt) @@ -1726,8 +1804,8 @@ exe2 = executable( 'umount', umount_sources, include_directories : includes, - link_with : [lib_common, - lib_mount], + link_with : [lib_common], + dependencies : [mount_dep], install_mode : 'rwsr-xr-x', install : opt, build_by_default : opt) @@ -1746,8 +1824,8 @@ exe = executable( include_directories : includes, link_args : ['--static'], link_with : [lib_common, - lib_smartcols_static, - lib_mount_static], + lib_smartcols_static], + dependencies : [mount_static_dep], install : opt2, build_by_default : opt2) if opt2 and not is_disabler(exe) @@ -1760,8 +1838,8 @@ exe = executable( umount_sources, include_directories : includes, link_args : ['--static'], - link_with : [lib_common, - lib_mount_static], + link_with : [lib_common], + dependencies : [mount_static_dep], install : opt2, build_by_default : opt2) if opt2 and not is_disabler(exe) @@ -1770,32 +1848,34 @@ endif # setuid? +opt = not get_option('build-swapon').disabled() exe = executable( 'swapon', swapon_sources, include_directories : includes, link_with : [lib_common, - lib_blkid, - lib_mount, lib_smartcols], + dependencies : [blkid_dep, mount_dep], install_dir : sbindir, - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['sys-utils/swapon.8.adoc'] bashcompletions += ['swapon'] endif +opt = not get_option('build-swapoff').disabled() exe = executable( 'swapoff', swapoff_sources, include_directories : includes, - link_with : [lib_common, - lib_blkid, - lib_mount], + link_with : [lib_common], + dependencies : [blkid_dep, mount_dep], install_dir : sbindir, - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manlinks += {'swapoff.8': 'swapon.8'} bashcompletions += ['swapoff'] @@ -1816,16 +1896,20 @@ if not is_disabler(exe) bashcompletions += ['lscpu'] endif +opt = get_option('build-chcpu').require(have_cpu_set_t).allowed() exe = executable( 'chcpu', chcpu_sources, include_directories : includes, link_with : [lib_common], install_dir : sbindir, - install : true) -exes += exe -manadocs += ['sys-utils/chcpu.8.adoc'] -bashcompletions += ['chcpu'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['sys-utils/chcpu.8.adoc'] + bashcompletions += ['chcpu'] +endif exe = executable( 'wdctl', @@ -1845,7 +1929,7 @@ exe = executable( 'mountpoint', mountpoint_sources, include_directories : includes, - link_with : [lib_mount], + dependencies : [mount_dep], install : opt, build_by_default : opt) if opt and not is_disabler(exe) @@ -1905,6 +1989,7 @@ exe = executable( unshare_sources, include_directories : includes, link_with : [lib_common], + dependencies : [mount_dep], install_dir : usrbin_exec_dir, install : opt, build_by_default : opt) @@ -1920,6 +2005,7 @@ exe = executable( unshare_sources, include_directories : includes, link_with : [lib_common], + dependencies : [mount_dep], install_dir : usrbin_exec_dir, install : opt, build_by_default : opt) @@ -2093,12 +2179,11 @@ exe = executable( mkswap_sources, include_directories : includes, link_with : [lib_common, - lib_blkid, lib_uuid], - dependencies: [lib_selinux], + dependencies: [blkid_dep, lib_selinux], install_dir : sbindir, install : true) -if opt and not is_disabler(exe) +if not is_disabler(exe) exes += exe manadocs += ['disk-utils/mkswap.8.adoc'] bashcompletions += ['mkswap'] @@ -2109,11 +2194,11 @@ exe = executable( swaplabel_sources, include_directories : includes, link_with : [lib_common, - lib_blkid, lib_uuid], + dependencies : [blkid_dep], install_dir : sbindir, install : true) -if opt and not is_disabler(exe) +if not is_disabler(exe) exes += exe manadocs += ['disk-utils/swaplabel.8.adoc'] bashcompletions += ['swaplabel'] @@ -2124,10 +2209,8 @@ exe = executable( 'fsck', fsck_sources, include_directories : includes, - link_with : [lib_common, - lib_blkid, - lib_mount], - dependencies : realtime_libs, + link_with : [lib_common], + dependencies : [blkid_dep, mount_dep, realtime_libs], install_dir : sbindir, install : opt, build_by_default : opt) @@ -2221,17 +2304,23 @@ exe = executable( if opt and not is_disabler(exe) exes += exe manadocs += ['disk-utils/fdformat.8.adoc'] + bashcompletions += ['fdformat'] endif +opt = get_option('build-blockdev').require(LINUX).allowed() exe = executable( 'blockdev', blockdev_sources, include_directories : includes, link_with : [lib_common], install_dir : sbindir, - install : true) -manadocs += ['disk-utils/blockdev.8.adoc'] -bashcompletions += ['blockdev'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['disk-utils/blockdev.8.adoc'] + bashcompletions += ['blockdev'] +endif opt = not get_option('build-fdisks').disabled() if opt and not have_dirfd and not have_ddfd @@ -2313,9 +2402,8 @@ exe = executable( link_with : [lib_common, lib_fdisk, lib_smartcols, - lib_tcolors, - lib_mount], - dependencies : [curses_libs], + lib_tcolors], + dependencies : [curses_libs, mount_dep], install_dir : sbindir, install : opt, build_by_default : opt) @@ -2357,8 +2445,8 @@ exe4 = executable( partx_sources, include_directories : includes, link_with : [lib_common, - lib_blkid, lib_smartcols], + dependencies : [blkid_dep], install_dir : usrsbin_exec_dir, install : opt, build_by_default : opt) @@ -2373,6 +2461,7 @@ endif ############################################################ +opt = get_option('build-script').require(have_pty).allowed() exe = executable( 'script', script_sources, @@ -2383,10 +2472,13 @@ exe = executable( realtime_libs, math_libs], install_dir : usrbin_exec_dir, - install : true) -exes += exe -manadocs += ['term-utils/script.1.adoc'] -bashcompletions += ['script'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['term-utils/script.1.adoc'] + bashcompletions += ['script'] +endif exe = executable( 'test_script', @@ -2398,9 +2490,12 @@ exe = executable( lib_utempter, realtime_libs, math_libs], - build_by_default : program_tests) -exes += exe + build_by_default : opt and program_tests) +if opt and not is_disabler(exe) + exes += exe +endif +opt = get_option('build-scriptlive').require(have_pty).allowed() exe = executable( 'scriptlive', scriptlive_sources, @@ -2410,10 +2505,13 @@ exe = executable( realtime_libs, math_libs], install_dir : usrbin_exec_dir, - install : true) -exes += exe -manadocs += ['term-utils/scriptlive.1.adoc'] -bashcompletions += ['scriptlive'] + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['term-utils/scriptlive.1.adoc'] + bashcompletions += ['scriptlive'] +endif exe = executable( 'scriptreplay', @@ -2651,51 +2749,53 @@ exes += exe manadocs += ['misc-utils/whereis.1.adoc'] bashcompletions += ['whereis'] +opt = not get_option('build-lslocks').disabled() exe = executable( 'lslocks', lslocks_sources, include_directories : includes, link_with : [lib_common, - lib_mount, lib_smartcols], + dependencies : [mount_dep], install_dir : usrbin_exec_dir, - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/lslocks.8.adoc'] bashcompletions += ['lslocks'] endif +opt = not get_option('build-lsblk').disabled() exe = executable( 'lsblk', lsblk_sources, include_directories : includes, link_with : [lib_common, - lib_blkid, - lib_mount, lib_tcolors, lib_smartcols], - dependencies : lib_udev, - install : true) -if not is_disabler(exe) + dependencies : [blkid_dep, lib_udev, mount_dep], + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/lsblk.8.adoc'] bashcompletions += ['lsblk'] endif -mq_libs = [] -mq_libs += cc.find_library('rt', required : true) - +opt = not get_option('build-lsfd').require(lib_rt.found()).disabled() \ + and cc.has_header_symbol('linux/bpf.h', 'BPF_OBJ_NAME_LEN') exe = executable( 'lsfd', lsfd_sources, include_directories : includes, link_with : [lib_common, lib_smartcols], - dependencies : mq_libs, + dependencies : [lib_rt], install_dir : usrbin_exec_dir, - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/lsfd.1.adoc'] endif @@ -2760,8 +2860,8 @@ exe = executable( 'blkid', blkid_sources, include_directories : includes, - link_with : [lib_common, - lib_blkid], + link_with : [lib_common], + dependencies : [blkid_dep], install_dir : sbindir, install : opt, build_by_default : opt) @@ -2776,8 +2876,8 @@ exe = executable( 'blkid.static', blkid_sources, include_directories : includes, - link_with : [lib_common, - lib_blkid_static], + link_with : [lib_common], + dependencies : [blkid_static_dep], install_dir : sbindir, install : opt, build_by_default : opt) @@ -2789,7 +2889,7 @@ exe = executable( 'sample-mkfs', 'libblkid/samples/mkfs.c', include_directories : includes, - link_with : lib_blkid) + dependencies : [blkid_dep]) if not is_disabler(exe) exes += exe endif @@ -2798,7 +2898,7 @@ exe = executable( 'sample-partitions', 'libblkid/samples/partitions.c', include_directories : includes, - link_with : lib_blkid) + dependencies : [blkid_dep]) if not is_disabler(exe) exes += exe endif @@ -2807,7 +2907,7 @@ exe = executable( 'sample-superblocks', 'libblkid/samples/superblocks.c', include_directories : includes, - link_with : lib_blkid) + dependencies : [blkid_dep]) if not is_disabler(exe) exes += exe endif @@ -2816,7 +2916,7 @@ exe = executable( 'sample-topology', 'libblkid/samples/topology.c', include_directories : includes, - link_with : lib_blkid) + dependencies : [blkid_dep]) if not is_disabler(exe) exes += exe endif @@ -2825,7 +2925,7 @@ exe = executable( 'test_blkid_fuzz_sample', 'libblkid/src/fuzz.c', include_directories: includes, - link_with: lib_blkid, + dependencies : [blkid_dep], build_by_default: program_tests) if not is_disabler(exe) exes += exe @@ -2837,7 +2937,7 @@ exe = executable( 'findfs', findfs_sources, include_directories : includes, - link_with : [lib_blkid], + dependencies : [blkid_dep], install_dir : sbindir, install : true) if not is_disabler(exe) @@ -2851,8 +2951,8 @@ exe = executable( wipefs_sources, include_directories : includes, link_with : [lib_common, - lib_blkid, lib_smartcols], + dependencies : [blkid_dep], install_dir : sbindir, install : true) if not is_disabler(exe) @@ -2861,17 +2961,17 @@ if not is_disabler(exe) bashcompletions += ['wipefs'] endif +opt = not get_option('build-findmnt').disabled() exe = executable( 'findmnt', findmnt_sources, include_directories : includes, link_with : [lib_common, - lib_blkid, - lib_mount, lib_smartcols], - dependencies : [lib_udev], - install : true) -if not is_disabler(exe) + dependencies : [blkid_dep, lib_udev, mount_dep], + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/findmnt.8.adoc'] bashcompletions += ['findmnt'] @@ -2893,6 +2993,7 @@ exe = executable( 'rename', rename_sources, include_directories : includes, + link_with : [lib_common], install_dir : usrbin_exec_dir, install : opt, build_by_default : opt) @@ -2940,14 +3041,15 @@ if not is_disabler(exe) bashcompletions += ['hardlink'] endif -opt = not get_option('build-pipesz').disabled() +opt = get_option('build-pipesz').allowed() exe = executable( 'pipesz', pipesz_sources, include_directories : includes, link_with : [lib_common], install_dir : usrbin_exec_dir, - install : true) + install : opt, + build_by_default : opt) if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/pipesz.1.adoc'] @@ -2967,14 +3069,18 @@ if not is_disabler(exe) exes += exe endif +have_posix_fadvise = conf.get('HAVE_POSIX_FADVISE').to_string() == '1' + +opt = get_option('build-fadvise').require(have_posix_fadvise).allowed() exe = executable( 'fadvise', fadvise_sources, include_directories : includes, link_with : [lib_common], install_dir : usrbin_exec_dir, - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/fadvise.1.adoc'] bashcompletions += ['fadvise'] @@ -2998,32 +3104,38 @@ endif syscalls_h = custom_target('syscalls.h', input : 'tools/all_syscalls', output : 'syscalls.h', - command : ['tools/all_syscalls', cc.cmd_array()] + command : ['tools/all_syscalls', sed.full_path(), + cc.cmd_array(), get_option('c_args')], ) -if cc.compiles(fs.read('include/audit-arch.h'), name : 'has AUDIT_ARCH_NATIVE') - exe = executable( - 'enosys', - 'misc-utils/enosys.c', syscalls_h, - include_directories : includes, - link_with : [lib_common], - install_dir : usrbin_exec_dir, - install : true) - if not is_disabler(exe) - exes += exe - manadocs += ['misc-utils/enosys.1.adoc'] - bashcompletions += ['enosys'] - endif +have_linux_audit_h = cc.has_header('linux/audit.h') +have_audit_arch_native = cc.compiles(fs.read('include/audit-arch.h'), name : 'has AUDIT_ARCH_NATIVE') + +opt = get_option('build-enosys').require(have_linux_audit_h and have_audit_arch_native).allowed() +exe = executable( + 'enosys', + 'misc-utils/enosys.c', syscalls_h, + include_directories : includes, + link_with : [lib_common], + install_dir : usrbin_exec_dir, + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) + exes += exe + manadocs += ['misc-utils/enosys.1.adoc'] + bashcompletions += ['enosys'] endif +opt = get_option('build-lsclocks').require(have_linux_rtc_h).allowed() exe = executable( 'lsclocks', lsclocks_sources, include_directories : includes, link_with : [lib_common, lib_smartcols], install_dir : usrbin_exec_dir, - install : true) -if not is_disabler(exe) + install : opt, + build_by_default : opt) +if opt and not is_disabler(exe) exes += exe manadocs += ['misc-utils/lsclocks.1.adoc'] bashcompletions += ['lsclocks'] @@ -3180,7 +3292,7 @@ if conf.get('HAVE_OPENAT').to_string() == '1' \ exes += exe endif -if conf.get('HAVE_PTY').to_string() == '1' +if have_pty exe = executable( 'test_pty', pty_session_c, @@ -3294,7 +3406,8 @@ endif ############################################################ libfdisk_tests_cflags = ['-DTEST_PROGRAM'] -libfdisk_tests_ldadd = [lib_fdisk_static, lib_uuid, lib_blkid] +libfdisk_tests_ldadd = [lib_fdisk_static, lib_uuid] +libfdisk_tests_ldadd_deps = [blkid_dep] exe = executable( 'test_fdisk_ask', @@ -3302,6 +3415,7 @@ exe = executable( c_args : libfdisk_tests_cflags, include_directories : lib_fdisk_includes, link_with : libfdisk_tests_ldadd, + dependencies : libfdisk_tests_ldadd_deps, build_by_default: program_tests) if not is_disabler(exe) exes += exe @@ -3313,6 +3427,7 @@ exe = executable( c_args : libfdisk_tests_cflags, include_directories : lib_fdisk_includes, link_with : libfdisk_tests_ldadd, + dependencies : libfdisk_tests_ldadd_deps, build_by_default: program_tests) if not is_disabler(exe) exes += exe @@ -3324,6 +3439,7 @@ exe = executable( c_args : libfdisk_tests_cflags, include_directories : lib_fdisk_includes, link_with : libfdisk_tests_ldadd, + dependencies : libfdisk_tests_ldadd_deps, build_by_default: program_tests) if not is_disabler(exe) exes += exe @@ -3335,6 +3451,7 @@ exe = executable( c_args : libfdisk_tests_cflags, include_directories : lib_fdisk_includes, link_with : libfdisk_tests_ldadd, + dependencies : libfdisk_tests_ldadd_deps, build_by_default: program_tests) if not is_disabler(exe) exes += exe @@ -3346,6 +3463,7 @@ exe = executable( c_args : libfdisk_tests_cflags, include_directories : lib_fdisk_includes, link_with : libfdisk_tests_ldadd, + dependencies : libfdisk_tests_ldadd_deps, build_by_default: program_tests) if not is_disabler(exe) exes += exe @@ -3357,6 +3475,7 @@ exe = executable( c_args : libfdisk_tests_cflags, include_directories : lib_fdisk_includes, link_with : libfdisk_tests_ldadd, + dependencies : libfdisk_tests_ldadd_deps, build_by_default: program_tests) if not is_disabler(exe) exes += exe @@ -3471,14 +3590,14 @@ exe = executable( build_by_default: program_tests) exes += exe -if LINUX +if LINUX and lib_rt.found() exe = executable( 'test_mkfds', 'tests/helpers/test_mkfds.c', 'tests/helpers/test_mkfds.h', 'tests/helpers/test_mkfds_ppoll.c', include_directories : includes, - dependencies : mq_libs, + dependencies : [lib_rt], build_by_default: program_tests) exes += exe endif @@ -3596,7 +3715,7 @@ configure_file(output : 'meson.conf', '''asan=@0@ PYTHON=@1@ '''.format(get_option('b_sanitize')=='address' ? 'yes' : '', - python.full_path())]) + python_program.full_path())]) run_sh = find_program('tests/run.sh') run_target( diff --git a/meson_options.txt b/meson_options.txt index fe2ae4a41d0..fedda65e508 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -53,14 +53,26 @@ option('build-fdisks', type : 'feature', description : 'build fdisk(8), sfdisk(8) and cfdisk(8)') option('build-mount', type : 'feature', description : 'build mount(8) and umount(8)') +option('build-swapon', type : 'feature', + description : 'build swapon') +option('build-swapoff', type : 'feature', + description : 'build swapoff') +option('build-chcpu', type : 'feature', + description : 'build chcpu') option('build-losetup', type : 'feature', description : 'build losetup') option('build-zramctl', type : 'feature', description : 'build zramctl') +option('build-lsns', type : 'feature', + description : 'build lsns') option('build-fsck', type : 'feature', description : 'build fsck') option('build-partx', type : 'feature', description : 'build addpart, delpart, partx') +option('build-script', type : 'feature', + description : 'build script') +option('build-scriptlive', type : 'feature', + description : 'build scriptlive') option('build-uuidd', type : 'feature', description : 'build the uuid daemon') @@ -91,6 +103,8 @@ option('build-minix', type : 'feature', description : 'build fsck.minix, mkfs.minix') option('build-fdformat', type : 'feature', value : 'disabled', description : 'build fdformat') +option('build-blockdev', type : 'feature', + description : 'build blockdev') option('build-hwclock', type : 'feature', description : 'build hwclock') option('build-lslogins', type : 'feature', @@ -101,6 +115,14 @@ option('build-cal', type : 'feature', description : 'build cal') option('build-logger', type : 'feature', description : 'build logger') +option('build-lsblk', type : 'feature', + description : 'build lsblk') +option('build-lslocks', type : 'feature', + description : 'build lslocks') +option('build-findmnt', type : 'feature', + description : 'build findmnt') +option('build-lsfd', type : 'feature', + description : 'build lsfd') option('build-switch_root', type : 'feature', description : 'switch_root') option('build-pivot_root', type : 'feature', @@ -113,6 +135,8 @@ option('build-irqtop', type : 'feature', description : 'build irqtop') option('build-chmem', type : 'feature', description : 'build chmem') +option('build-ipcmk', type : 'feature', + description : 'build ipcmk') option('build-ipcrm', type : 'feature', description : 'build ipcrm') option('build-ipcs', type : 'feature', @@ -121,6 +145,24 @@ option('build-rfkill', type : 'feature', description : 'build rfkill') option('build-tunelp', type : 'feature', description : 'build tunelp') +option('build-fstrim', type : 'feature', + description : 'build fstrim') +option('build-dmesg', type : 'feature', + description : 'build dmesg') +option('build-fsfreeze', type : 'feature', + description : 'build fsfreeze') +option('build-blkdiscard', type : 'feature', + description : 'build blkdiscard') +option('build-blkzone', type : 'feature', + description : 'build blkzone') +option('build-blkpr', type : 'feature', + description : 'build blkpr') +option('build-ldattach', type : 'feature', + description : 'build ldattach') +option('build-rtcwake', type : 'feature', + description : 'build rtcwake') +option('build-setarch', type : 'feature', + description : 'build setarch') option('build-kill', type : 'feature', description : 'build kill') option('build-last', type : 'feature', @@ -159,6 +201,12 @@ option('build-pg', type : 'feature', description : 'build pg') option('build-pipesz', type : 'feature', description : 'build pipesz') +option('build-fadvise', type : 'feature', + description : 'build fadvise') +option('build-enosys', type : 'feature', + description : 'build enosys') +option('build-lsclocks', type : 'feature', + description : 'build lsclocks') option('build-setterm', type : 'feature', description : 'build setterm') option('build-schedutils', type : 'feature', @@ -222,5 +270,5 @@ option('vendordir', option('pamlibdir', type : 'string', description : 'directory for PAM modules') option('lastlog-compat-symlink', type : 'boolean', - value : 'false', + value : false, description : 'create lastlog compat symlink') diff --git a/misc-utils/.gitignore b/misc-utils/.gitignore index 24b40acafa9..49e2e0e992f 100644 --- a/misc-utils/.gitignore +++ b/misc-utils/.gitignore @@ -2,6 +2,7 @@ getopt.1 uuidd.8 uuidd.rc uuidd.service -lastlog2-import.service uuidd.socket -lastlog2.conf +uuidd-tmpfiles.conf +lastlog2-import.service +lastlog2-tmpfiles.conf diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am index 5f035f84dee..337a8bcd692 100644 --- a/misc-utils/Makemodule.am +++ b/misc-utils/Makemodule.am @@ -109,10 +109,10 @@ lastlog2_LDADD = $(LDADD) liblastlog2.la -lsqlite3 lastlog2_CFLAGS = $(AM_CFLAGS) -I$(ul_liblastlog2_incdir) systemdsystemunit_DATA += \ misc-utils/lastlog2-import.service -tmpfiles_DATA += misc-utils/lastlog2.conf +tmpfiles_DATA += misc-utils/lastlog2-tmpfiles.conf endif PATHFILES += misc-utils/lastlog2-import.service \ - misc-utils/lastlog2.conf + misc-utils/lastlog2-tmpfiles.conf if BUILD_UUIDGEN usrbin_exec_PROGRAMS += uuidgen @@ -143,6 +143,7 @@ uuidd_SOURCES = misc-utils/uuidd.c lib/monotonic.c lib/timer.c if HAVE_SYSTEMD uuidd_LDADD += $(SYSTEMD_LIBS) $(SYSTEMD_DAEMON_LIBS) uuidd_CFLAGS += $(SYSTEMD_CFLAGS) $(SYSTEMD_DAEMON_CFLAGS) +tmpfiles_DATA += misc-utils/uuidd-tmpfiles.conf systemdsystemunit_DATA += \ misc-utils/uuidd.service \ misc-utils/uuidd.socket @@ -157,7 +158,8 @@ endif # BUILD_UUIDD PATHFILES += \ misc-utils/uuidd.rc \ misc-utils/uuidd.service \ - misc-utils/uuidd.socket + misc-utils/uuidd.socket \ + misc-utils/uuidd-tmpfiles.conf if BUILD_BLKID sbin_PROGRAMS += blkid @@ -230,6 +232,7 @@ usrbin_exec_PROGRAMS += rename MANPAGES += misc-utils/rename.1 dist_noinst_DATA += misc-utils/rename.1.adoc rename_SOURCES = misc-utils/rename.c +rename_LDADD = $(LDADD) libcommon.la endif if BUILD_GETOPT @@ -286,7 +289,9 @@ lsfd_SOURCES = \ misc-utils/lsfd-sock.h \ misc-utils/lsfd-sock-xinfo.c \ misc-utils/lsfd-unkn.c \ - misc-utils/lsfd-fifo.c + misc-utils/lsfd-fifo.c \ + misc-utils/lsfd-pidfd.h \ + misc-utils/lsfd-pidfd.c lsfd_LDADD = $(LDADD) $(MQ_LIBS) libsmartcols.la libcommon.la lsfd_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir) endif @@ -324,7 +329,7 @@ misc-utils/enosys.c: syscalls.h syscalls.h: $(top_srcdir)/tools/all_syscalls @echo ' GEN $@' - @$(top_srcdir)/tools/all_syscalls $(CC) $(CFLAGS) + @$(top_srcdir)/tools/all_syscalls "$(SED)" $(CC) $(CFLAGS) -include syscalls.h.deps CLEANFILES += syscalls.h syscalls.h.deps diff --git a/misc-utils/blkid.8.adoc b/misc-utils/blkid.8.adoc index 5e8002d73d3..3b02c7529b5 100644 --- a/misc-utils/blkid.8.adoc +++ b/misc-utils/blkid.8.adoc @@ -1,6 +1,6 @@ //po4a: entry man manual // Copyright 2000 Andreas Dilger (adilger@turbolinux.com) -// This file may be copied under the terms of the GNU Public License. +// This file may be copied under the terms of the GNU General Public License. = blkid(8) :doctype: manpage :man manual: System Administration diff --git a/misc-utils/cal.c b/misc-utils/cal.c index e6f4a6e4f3a..900f7277da6 100644 --- a/misc-utils/cal.c +++ b/misc-utils/cal.c @@ -360,7 +360,7 @@ int main(int argc, char **argv) * POSIX: 19971201 + 7 -1 = 0 */ { - int wfd; + unsigned int wfd; union { unsigned int word; char *string; } val; val.string = nl_langinfo(_NL_TIME_WEEK_1STDAY); diff --git a/misc-utils/fincore.1.adoc b/misc-utils/fincore.1.adoc index 73f90c3b2ce..2ee43435f84 100644 --- a/misc-utils/fincore.1.adoc +++ b/misc-utils/fincore.1.adoc @@ -2,7 +2,7 @@ //// Copyright 2017 Red Hat, Inc. -This file may be copied under the terms of the GNU Public License. +This file may be copied under the terms of the GNU General Public License. //// = fincore(1) :doctype: manpage diff --git a/misc-utils/fincore.c b/misc-utils/fincore.c index 513b8111410..25ce5aa1ea1 100644 --- a/misc-utils/fincore.c +++ b/misc-utils/fincore.c @@ -46,8 +46,12 @@ #ifndef HAVE_CACHESTAT #ifndef SYS_cachestat +#if defined (__alpha__) +#define SYS_cachestat 561 +#else #define SYS_cachestat 451 #endif +#endif struct cachestat_range { uint64_t off; diff --git a/misc-utils/findfs.8.adoc b/misc-utils/findfs.8.adoc index 560a5bada74..4e033b7f7e7 100644 --- a/misc-utils/findfs.8.adoc +++ b/misc-utils/findfs.8.adoc @@ -1,6 +1,6 @@ //po4a: entry man manual // Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. -// This file may be copied under the terms of the GNU Public License. +// This file may be copied under the terms of the GNU General Public License. = findfs(8) :doctype: manpage :man manual: System Administration diff --git a/misc-utils/findmnt.8.adoc b/misc-utils/findmnt.8.adoc index 150990a6d8f..941eb6c2c3c 100644 --- a/misc-utils/findmnt.8.adoc +++ b/misc-utils/findmnt.8.adoc @@ -48,9 +48,6 @@ Do not canonicalize paths at all. This option affects the comparing of paths and *-c*, *--canonicalize*:: Canonicalize all printed paths. -*--deleted*:: -Print filesystems where target (mountpoint) is marked as deleted by kernel. - *-D*, *--df*:: Imitate the output of *df*(1). This option is equivalent to *-o SOURCE,FSTYPE,SIZE,USED,AVAIL,USE%,TARGET* but excludes all pseudo filesystems. Use *--all* to print all filesystems. See also *-I*, *--dfi* options. diff --git a/misc-utils/findmnt.c b/misc-utils/findmnt.c index cc397da3609..f40b13726a7 100644 --- a/misc-utils/findmnt.c +++ b/misc-utils/findmnt.c @@ -552,7 +552,6 @@ static char *get_vfs_attr(struct libmnt_fs *fs, int sizetype) static char *get_data_col_sources(struct libmnt_fs *fs, int evaluate, size_t *datasiz) { const char *tag = NULL, *p = NULL; - int i = 0; const char *device = NULL; char *val = NULL; blkid_dev_iterate iter; @@ -602,10 +601,8 @@ static char *get_data_col_sources(struct libmnt_fs *fs, int evaluate, size_t *da dev = blkid_verify(blk_cache, dev); if (!dev) continue; - if (i != 0) - ul_buffer_append_data(&buf, "\0", 1); ul_buffer_append_string(&buf, blkid_dev_devname(dev)); - i++; + ul_buffer_append_data(&buf, "\0", 1); } blkid_dev_iterate_end(iter); free(val); @@ -1636,7 +1633,7 @@ int main(int argc, char *argv[]) break; case 'I': flags &= ~FL_TREE; - flags |= FL_DF_INODES; + flags |= (FL_DF_INODES | FL_DF); break; case 'i': flags |= FL_INVERT; @@ -1775,22 +1772,20 @@ int main(int argc, char *argv[]) if (collist) list_colunms(); /* print end exit */ - if (!ncolumns && (flags & FL_DF_INODES)) { + if (!ncolumns && (flags & FL_DF)) { add_column(columns, ncolumns++, COL_SOURCE); add_column(columns, ncolumns++, COL_FSTYPE); - add_column(columns, ncolumns++, COL_INO_TOTAL); - add_column(columns, ncolumns++, COL_INO_USED); - add_column(columns, ncolumns++, COL_INO_AVAIL); - add_column(columns, ncolumns++, COL_INO_USEPERC); - add_column(columns, ncolumns++, COL_TARGET); - } - else if (!ncolumns && (flags & FL_DF)) { - add_column(columns, ncolumns++, COL_SOURCE); - add_column(columns, ncolumns++, COL_FSTYPE); - add_column(columns, ncolumns++, COL_SIZE); - add_column(columns, ncolumns++, COL_USED); - add_column(columns, ncolumns++, COL_AVAIL); - add_column(columns, ncolumns++, COL_USEPERC); + if (flags & FL_DF_INODES) { + add_column(columns, ncolumns++, COL_INO_TOTAL); + add_column(columns, ncolumns++, COL_INO_USED); + add_column(columns, ncolumns++, COL_INO_AVAIL); + add_column(columns, ncolumns++, COL_INO_USEPERC); + } else { + add_column(columns, ncolumns++, COL_SIZE); + add_column(columns, ncolumns++, COL_USED); + add_column(columns, ncolumns++, COL_AVAIL); + add_column(columns, ncolumns++, COL_USEPERC); + } add_column(columns, ncolumns++, COL_TARGET); } diff --git a/misc-utils/findmnt.h b/misc-utils/findmnt.h index 5c694500be4..85ab68da554 100644 --- a/misc-utils/findmnt.h +++ b/misc-utils/findmnt.h @@ -24,7 +24,7 @@ enum { FL_SHADOWED = (1 << 20), FL_DELETED = (1 << 21), FL_SHELLVAR = (1 << 22), - FL_DF_INODES = (1 << 23) | FL_DF, + FL_DF_INODES = (1 << 23), /* basic table settings */ FL_ASCII = (1 << 25), diff --git a/misc-utils/getopt.c b/misc-utils/getopt.c index f989461a764..c57dd87377a 100644 --- a/misc-utils/getopt.c +++ b/misc-utils/getopt.c @@ -446,7 +446,6 @@ int main(int argc, char *argv[]) ctl.shell = shell_type(optarg); break; case 'T': - free(ctl.long_options); return TEST_EXIT_CODE; case 'u': ctl.quote = 0; diff --git a/misc-utils/hardlink.1.adoc b/misc-utils/hardlink.1.adoc index 471cb1c7ddd..ac6f2d689e8 100644 --- a/misc-utils/hardlink.1.adoc +++ b/misc-utils/hardlink.1.adoc @@ -18,7 +18,7 @@ hardlink - link multiple copies of a file == SYNOPSIS -*hardlink* [options] [_directory_|_file_]... +*hardlink* [options] _directory_|_file_... == DESCRIPTION diff --git a/misc-utils/lastlog2.conf.in b/misc-utils/lastlog2-tmpfiles.conf.in similarity index 100% rename from misc-utils/lastlog2.conf.in rename to misc-utils/lastlog2-tmpfiles.conf.in diff --git a/misc-utils/lastlog2.8.adoc b/misc-utils/lastlog2.8.adoc index b6be372d6d7..c0d3ecf4b2e 100644 --- a/misc-utils/lastlog2.8.adoc +++ b/misc-utils/lastlog2.8.adoc @@ -1,7 +1,7 @@ //po4a: entry man manual //// Copyright 2023 Thorsten Kukuk (kukuk@suse.de) -This file may be copied under the terms of the GNU Public License. +This file may be copied under the terms of the GNU General Public License. //// = lastlog2(8) :doctype: manpage diff --git a/misc-utils/lastlog2.c b/misc-utils/lastlog2.c index 010c7e6fa73..7e511b036bb 100644 --- a/misc-utils/lastlog2.c +++ b/misc-utils/lastlog2.c @@ -41,16 +41,15 @@ static char *lastlog2_path = LL2_DEFAULT_DATABASE; -static int bflg = 0; -static time_t b_days = 0; -static int tflg = 0; -static time_t t_days = 0; -static int sflg = 0; - -static int -print_entry(const char *user, int64_t ll_time, - const char *tty, const char *rhost, - const char *pam_service, const char *error) +static int bflg; +static time_t b_days; +static int tflg; +static time_t t_days; +static int sflg; + +static int print_entry(const char *user, int64_t ll_time, + const char *tty, const char *rhost, + const char *pam_service, const char *error) { static int once = 0; char *datep; @@ -71,11 +70,11 @@ print_entry(const char *user, int64_t ll_time, /* this is necessary if you compile this on architectures with a 32bit time_t type. */ time_t t_time = ll_time; - tm = localtime_r (&t_time, &tm_buf); + tm = localtime_r(&t_time, &tm_buf); if (tm == NULL) datep = "(unknown)"; else { - strftime (datetime, sizeof(datetime), "%a %b %e %H:%M:%S %z %Y", tm); + strftime(datetime, sizeof(datetime), "%a %b %e %H:%M:%S %z %Y", tm); datep = datetime; } @@ -84,13 +83,16 @@ print_entry(const char *user, int64_t ll_time, if (!once) { printf("Username Port From%*s Latest%*s%s\n", - maxIPv6Addrlen-4, " ", - sflg?(int)strlen(datep)-5:0, " ", sflg?"Service":""); + maxIPv6Addrlen - 4, " ", + sflg ? (int) strlen(datep) -5 : 0, + " ", sflg ? "Service" : ""); once = 1; } printf("%-16s %-8.8s %*s %s%*s%s\n", user, tty ? tty : "", -maxIPv6Addrlen, rhost ? rhost : "", datep, - sflg?31-(int)strlen(datep):0, " ", sflg?(pam_service?pam_service:""):""); + sflg ? 31 - (int) strlen(datep) : 0, + (sflg && pam_service) ? " " : "", + sflg ? (pam_service ? pam_service : "") : ""); if (error) printf("\nError: %s\n", error); @@ -98,8 +100,7 @@ print_entry(const char *user, int64_t ll_time, return 0; } -static void -usage(void) +static void __attribute__((__noreturn__)) usage(void) { FILE *output = stdout; @@ -107,15 +108,15 @@ usage(void) fprintf(output, _(" %s [options]\n"), program_invocation_short_name); fputs(USAGE_OPTIONS, output); - fputs(_(" -b, --before DAYS Print only records older than DAYS\n"), output); - fputs(_(" -C, --clear Clear record of a user (requires -u)\n"), output); - fputs(_(" -d, --database FILE Use FILE as lastlog2 database\n"), output); - fputs(_(" -i, --import FILE Import data from old lastlog file\n"), output); - fputs(_(" -r, --rename NEWNAME Rename existing user to NEWNAME (requires -u)\n"), output); - fputs(_(" -s, --service Display PAM service\n"), output); - fputs(_(" -S, --set ySet lastlog record to current time (requires -u)\n"), output); - fputs(_(" -t, --time DAYS Print only lastlog records more recent than DAYS\n"), output); - fputs(_(" -u, --user LOGIN Print lastlog record of the specified LOGIN\n"), output); + fputs(_(" -b, --before DAYS print only records older than DAYS\n"), output); + fputs(_(" -C, --clear clear record of a user (requires -u)\n"), output); + fputs(_(" -d, --database FILE use FILE as lastlog2 database\n"), output); + fputs(_(" -i, --import FILE import data from old lastlog file\n"), output); + fputs(_(" -r, --rename NEWNAME rename existing user to NEWNAME (requires -u)\n"), output); + fputs(_(" -s, --service display PAM service\n"), output); + fputs(_(" -S, --set set lastlog record to current time (requires -u)\n"), output); + fputs(_(" -t, --time DAYS print only lastlog records more recent than DAYS\n"), output); + fputs(_(" -u, --user LOGIN print lastlog record of the specified LOGIN\n"), output); fputs(USAGE_SEPARATOR, output); fprintf(output, USAGE_HELP_OPTIONS(25)); @@ -124,20 +125,12 @@ usage(void) exit(EXIT_SUCCESS); } -/* Check if an user exists on the system. - If yes, return 0, else return -1. */ -static int -check_user(const char *name) -{ - if (getpwnam(name) == NULL) - return -1; - return 0; -} +/* Check if an user exists on the system */ +#define has_user(_x) (getpwnam(_x) != NULL) -int -main(int argc, char **argv) +int main(int argc, char **argv) { - struct option const longopts[] = { + static const struct option longopts[] = { {"before", required_argument, NULL, 'b'}, {"clear", no_argument, NULL, 'C'}, {"database", required_argument, NULL, 'd'}, @@ -171,7 +164,7 @@ main(int argc, char **argv) unsigned long days; errno = 0; days = strtoul_or_err(optarg, _("Cannot parse days")); - b_days = (time_t) days * (24L*3600L) /* seconds/DAY */; + b_days = (time_t) days * (24L * 3600L) /* seconds/DAY */; bflg = 1; } break; @@ -204,7 +197,7 @@ main(int argc, char **argv) unsigned long days; errno = 0; days = strtoul_or_err(optarg, _("Cannot parse days")); - t_days = (time_t) days * (24L*3600L) /* seconds/DAY */; + t_days = (time_t) days * (24L * 3600L) /* seconds/DAY */; tflg = 1; } break; @@ -220,48 +213,38 @@ main(int argc, char **argv) } } - if ((Cflg + Sflg + iflg) > 1) { - errx(EXIT_FAILURE, _("Option -C, -i and -S cannot be used together\n")); - } + if ((Cflg + Sflg + iflg) > 1) + errx(EXIT_FAILURE, _("Option -C, -i and -S cannot be used together")); db_context = ll2_new_context(lastlog2_path); if (!db_context) - errx(EXIT_FAILURE, _("Couldn't initialize lastlog2 environment.\n")); + errx(EXIT_FAILURE, _("Couldn't initialize lastlog2 environment")); if (iflg) { /* Importing entries */ if (ll2_import_lastlog(db_context, lastlog_file, &error) != 0) { - ll2_unref_context(db_context); - if (error) { - errx(EXIT_FAILURE, "%s\n", error); - } - else - errx(EXIT_FAILURE, _("Couldn't import entries from '%s'\n"), lastlog_file); + warnx(_("Couldn't import entries from '%s'"), lastlog_file); + goto err; } - ll2_unref_context(db_context); - exit(EXIT_SUCCESS); + goto done; } if (Cflg || Sflg || rflg) { /* udpating, inserting and removing entries */ if (!uflg || strlen(user) == 0) { - ll2_unref_context(db_context); - errx(EXIT_FAILURE, _("Options -C, -r and -S require option -u to specify the user\n")); + warnx(_("Options -C, -r and -S require option -u to specify the user")); + goto err; } - if ((Cflg || Sflg) && check_user(user) != 0) { - ll2_unref_context(db_context); - errx(EXIT_FAILURE, _("User '%s' does not exist.\n"), user); + if ((Cflg || Sflg) && !has_user(user)) { + warnx(_("User '%s' does not exist."), user); + goto err; } if (Cflg) { if (ll2_remove_entry(db_context, user, &error) != 0) { - ll2_unref_context(db_context); - if (error) { - errx(EXIT_FAILURE, "%s\n", error); - } - else - errx(EXIT_FAILURE, _("Couldn't remove entry for '%s'\n"), user); + warnx(_("Couldn't remove entry for '%s'"), user); + goto err; } } @@ -269,35 +252,24 @@ main(int argc, char **argv) time_t ll_time = 0; if (time(&ll_time) == -1) { - ll2_unref_context(db_context); - errx(EXIT_FAILURE, _("Could not determine current time: %s"), - strerror(errno)); + warn(_("Could not determine current time")); + goto err; } if (ll2_update_login_time(db_context, user, ll_time, &error) != 0) { - ll2_unref_context(db_context); - if (error) { - errx(EXIT_FAILURE, "%s\n", error); - } - else - errx(EXIT_FAILURE, _("Couldn't update login time for '%s'\n"), user); + warnx(_("Couldn't update login time for '%s'"), user); + goto err; } - } if (rflg) { if (ll2_rename_user(db_context, user, newname, &error) != 0) { - ll2_unref_context(db_context); - if (error) { - errx(EXIT_FAILURE, "%s\n", error); - } - else - errx(EXIT_FAILURE, _("Couldn't rename entry '%s' to '%s'\n"), user, newname); + warnx(_("Couldn't rename entry '%s' to '%s'"), user, newname); + goto err; } } - ll2_unref_context(db_context); - exit(EXIT_SUCCESS); + goto done; } if (user) { @@ -307,9 +279,9 @@ main(int argc, char **argv) char *rhost = NULL; char *service = NULL; - if (check_user(user) != 0) { - ll2_unref_context(db_context); - errx(EXIT_FAILURE, _("User '%s' does not exist.\n"), user); + if (!has_user(user)) { + warnx(_("User '%s' does not exist."), user); + goto err; } /* We ignore errors, if the user is not in the database he did never login */ @@ -317,21 +289,21 @@ main(int argc, char **argv) &service, NULL); print_entry(user, ll_time, tty, rhost, service, NULL); - - ll2_unref_context(db_context); - exit(EXIT_SUCCESS); + goto done; } /* print all information */ if (ll2_read_all(db_context, print_entry, &error) != 0) { - ll2_unref_context(db_context); - if (error) { - errx(EXIT_FAILURE, "%s\n", error); - } - else - errx(EXIT_FAILURE, _("Couldn't read entries for all users\n")); + warnx(_("Couldn't read entries for all users")); + goto err; } +done: ll2_unref_context(db_context); exit(EXIT_SUCCESS); +err: + ll2_unref_context(db_context); + if (error) + errx(EXIT_FAILURE, "%s", error); + exit(EXIT_FAILURE); } diff --git a/misc-utils/logger.c b/misc-utils/logger.c index e1d270de8df..e928286c2fb 100644 --- a/misc-utils/logger.c +++ b/misc-utils/logger.c @@ -798,12 +798,12 @@ static void syslog_rfc5424_header(struct logger_ctl *const ctl) if (localtime_r(&tv.tv_sec, &tm) != NULL) { char fmt[64]; const size_t i = strftime(fmt, sizeof(fmt), - "%Y-%m-%dT%H:%M:%S.%%06u%z ", &tm); + "%Y-%m-%dT%H:%M:%S.%%06jd%z ", &tm); /* patch TZ info to comply with RFC3339 (we left SP at end) */ fmt[i - 1] = fmt[i - 2]; fmt[i - 2] = fmt[i - 3]; fmt[i - 3] = ':'; - xasprintf(&time, fmt, tv.tv_usec); + xasprintf(&time, fmt, (intmax_t) tv.tv_usec); } else err(EXIT_FAILURE, _("localtime() failed")); } else diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index 30bd2edfdff..15d9b193eb7 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -935,8 +935,7 @@ static char *device_get_data( ul_buffer_append_string(&buf, "[SWAP]"); else ul_buffer_append_string(&buf, mnt_fs_get_target(fs)); - if (i + 1 < n) - ul_buffer_append_data(&buf, "\0", 1); + ul_buffer_append_data(&buf, "\0", 1); } str = ul_buffer_get_data(&buf, datasiz, NULL); break; @@ -953,8 +952,7 @@ static char *device_get_data( if (mnt_fs_is_swaparea(fs)) continue; ul_buffer_append_string(&buf, root ? root : "/"); - if (i + 1 < n) - ul_buffer_append_data(&buf, "\0", 1); + ul_buffer_append_data(&buf, "\0", 1); } str = ul_buffer_get_data(&buf, datasiz, NULL); break; @@ -1276,7 +1274,7 @@ static void device_fill_scols_cell(struct lsblk_device *dev, ce = scols_line_get_cell(ln, colnum); if (!ce) return; - rc = datasiz ? scols_cell_refer_memory(ce, data, datasiz + 1) + rc = datasiz ? scols_cell_refer_memory(ce, data, datasiz) : scols_cell_refer_data(ce, data); if (rc) err(EXIT_FAILURE, _("failed to add output data")); diff --git a/misc-utils/lsclocks.c b/misc-utils/lsclocks.c index 867f860d5b1..0799f656512 100644 --- a/misc-utils/lsclocks.c +++ b/misc-utils/lsclocks.c @@ -277,6 +277,7 @@ static int64_t get_namespace_offset(const char *name) } free(buf); + close(fd); return ret; } diff --git a/misc-utils/lsfd-file.c b/misc-utils/lsfd-file.c index 9b91462d6b1..3f330146dcc 100644 --- a/misc-utils/lsfd-file.c +++ b/misc-utils/lsfd-file.c @@ -45,6 +45,8 @@ #include "procfs.h" #include "lsfd.h" +#include "lsfd-pidfd.h" +#include "pidfd-utils.h" static struct idcache *username_cache; @@ -492,6 +494,22 @@ static unsigned long get_minor_for_mqueue(void) return minor(sb.st_dev); } +static unsigned long get_minor_for_pidfs(void) +{ + int fd = pidfd_open(getpid(), 0); + struct stat sb; + unsigned long ret = 0; + + if (fd < 0) + return 0; + + if (fstat(fd, &sb) == 0 && (sb.st_mode & S_IFMT) == S_IFREG) + ret = minor(sb.st_dev); + + close(fd); + return ret; +} + static void file_class_initialize(void) { unsigned long m; @@ -510,6 +528,10 @@ static void file_class_initialize(void) m = get_minor_for_mqueue(); if (m) add_nodev(m, "mqueue"); + + m = get_minor_for_pidfs(); + if (m) + add_nodev(m, "pidfs"); } static void file_class_finalize(void) @@ -783,3 +805,77 @@ const struct file_class mqueue_file_class = { .fill_column = mqueue_file_fill_column, .get_ipc_class = mqueue_file_get_ipc_class, }; + +struct pidfs_file { + struct file file; + struct pidfd_data data; +}; + +static void init_pidfs_file_content(struct file *file) +{ + struct pidfs_file *pidfs_file = (struct pidfs_file *)file; + + memset(&pidfs_file->data, 0, sizeof(pidfs_file->data)); +} + +static int pidfs_file_handle_fdinfo(struct file *file, const char *key, const char *value) +{ + struct pidfs_file *pidfs_file = (struct pidfs_file *)file; + + return pidfd_handle_fdinfo(&pidfs_file->data, key, value); +} + +static void pidfs_file_free_content(struct file *file) +{ + struct pidfs_file *pidfs_file = (struct pidfs_file *)file; + + pidfd_free(&pidfs_file->data); +} + +static bool pidfs_file_fill_column(struct proc *proc __attribute__((__unused__)), + struct file *file, + struct libscols_line *ln, + int column_id, + size_t column_index) +{ + struct pidfs_file *pidfs_file = (struct pidfs_file *)file; + char *buf = NULL; + + switch(column_id) { + case COL_TYPE: + if (scols_line_set_data(ln, column_index, "pidfd")) + err(EXIT_FAILURE, _("failed to add output data")); + return true; + case COL_NAME: + buf = pidfd_get_name(&pidfs_file->data); + break; + default: + if (!pidfd_fill_column(&pidfs_file->data, column_id, &buf)) + return false; + } + + if (buf && + scols_line_refer_data(ln, column_index, buf)) + err(EXIT_FAILURE, _("failed to add output data")); + + return true; +} + +const struct file_class pidfs_file_class = { + .super = &file_class, + .size = sizeof(struct pidfs_file), + .initialize_content = init_pidfs_file_content, + .handle_fdinfo = pidfs_file_handle_fdinfo, + .fill_column = pidfs_file_fill_column, + .free_content = pidfs_file_free_content, +}; + +bool is_pidfs_dev(dev_t dev) +{ + const char *fs = get_nodev_filesystem(minor(dev)); + + if (fs && (strcmp (fs, "pidfs") == 0)) + return true; + + return false; +} diff --git a/misc-utils/lsfd-pidfd.c b/misc-utils/lsfd-pidfd.c new file mode 100644 index 00000000000..430a8028dcb --- /dev/null +++ b/misc-utils/lsfd-pidfd.c @@ -0,0 +1,95 @@ +/* + * lsfd-pidfd.c - handle pidfd (from anon_inode or pidfs) + * + * Copyright (C) 2024 Xi Ruoyao + * + * Refactored and moved out from lsfd-unkn.c (originally authored by + * Masatake YAMATO ). + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it would be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include + +#include "strutils.h" +#include "xalloc.h" + +#include "lsfd.h" +#include "lsfd-pidfd.h" + +int pidfd_handle_fdinfo(struct pidfd_data *data, const char *key, + const char *value) +{ + if (strcmp(key, "Pid") == 0) { + uint64_t pid; + int rc = ul_strtou64(value, &pid, 10); + + if (rc < 0) + return 0; /* ignore -- parse failed */ + + data->pid = (pid_t)pid; + return 1; + } else if (strcmp(key, "NSpid") == 0) { + data->nspid = xstrdup(value); + return 1; + } + + return 0; +} + +char *pidfd_get_name(struct pidfd_data *data) +{ + char *str = NULL; + char *comm = NULL; + struct proc *proc = get_proc(data->pid); + + if (proc) + comm = proc->command; + + xasprintf(&str, "pid=%d comm=%s nspid=%s", + data->pid, + comm ? comm : "", + data->nspid ? data->nspid : ""); + return str; +} + +bool pidfd_fill_column(struct pidfd_data *data, int column_id, char **str) +{ + switch(column_id) { + case COL_PIDFD_COMM: { + struct proc *pidfd_proc = get_proc(data->pid); + char *pidfd_comm = NULL; + + if (pidfd_proc) + pidfd_comm = pidfd_proc->command; + if (pidfd_comm) { + *str = xstrdup(pidfd_comm); + return true; + } + break; + } + case COL_PIDFD_NSPID: + if (data->nspid) { + *str = xstrdup(data->nspid); + return true; + } + break; + case COL_PIDFD_PID: + xasprintf(str, "%d", (int)data->pid); + return true; + } + + return false; +} diff --git a/misc-utils/lsfd-pidfd.h b/misc-utils/lsfd-pidfd.h new file mode 100644 index 00000000000..2f65d3b3f33 --- /dev/null +++ b/misc-utils/lsfd-pidfd.h @@ -0,0 +1,37 @@ +/* + * lsfd-pidfd.h - handle pidfd (from anon_inode or pidfs) + * + * Copyright (C) 2024 Xi Ruoyao + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it would be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include + +struct pidfd_data { + pid_t pid; + char *nspid; +}; + +int pidfd_handle_fdinfo(struct pidfd_data *, const char *, const char *); +char *pidfd_get_name(struct pidfd_data *); +bool pidfd_fill_column(struct pidfd_data *, int, char **); + +static inline void __attribute__((nonnull(1))) +pidfd_free(struct pidfd_data *data) +{ + free(data->nspid); +} diff --git a/misc-utils/lsfd-sock-xinfo.c b/misc-utils/lsfd-sock-xinfo.c index a293806c663..71be41ad3a4 100644 --- a/misc-utils/lsfd-sock-xinfo.c +++ b/misc-utils/lsfd-sock-xinfo.c @@ -179,9 +179,12 @@ static void load_sock_xinfo_no_nsswitch(struct netns *nsobj) load_xinfo_from_proc_packet(netns); diagsd = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_SOCK_DIAG); + DBG(ENDPOINTS, ul_debug("made a diagnose socket [fd=%d; %s]", diagsd, + (diagsd >= 0)? "successful": strerror(errno))); if (diagsd >= 0) { load_xinfo_from_diag_unix(diagsd, netns); close(diagsd); + DBG(ENDPOINTS, ul_debug("close the diagnose socket")); } if (nsobj) @@ -337,6 +340,7 @@ static void send_diag_request(int diagsd, void *req, size_t req_size, bool (*cb)(ino_t, size_t, void *), ino_t netns) { + int r; struct sockaddr_nl nladdr = { .nl_family = AF_NETLINK, }; @@ -361,30 +365,45 @@ static void send_diag_request(int diagsd, void *req, size_t req_size, __attribute__((aligned(sizeof(void *)))) uint8_t buf[8192]; - if (sendmsg(diagsd, &mhd, 0) < 0) + r = sendmsg(diagsd, &mhd, 0); + DBG(ENDPOINTS, ul_debug("sendmsg [rc=%d; %s]", + r, (r >= 0)? "successful": strerror(errno))); + if (r < 0) return; for (;;) { const struct nlmsghdr *h; - int r = recvfrom(diagsd, buf, sizeof(buf), 0, NULL, NULL); + r = recvfrom(diagsd, buf, sizeof(buf), 0, NULL, NULL); + DBG(ENDPOINTS, ul_debug("recvfrom [rc=%d; %s]", + r, (r >= 0)? "successful": strerror(errno))); if (r < 0) return; h = (void *) buf; + DBG(ENDPOINTS, ul_debug(" OK: %d", NLMSG_OK(h, (size_t)r))); if (!NLMSG_OK(h, (size_t)r)) return; for (; NLMSG_OK(h, (size_t)r); h = NLMSG_NEXT(h, r)) { - if (h->nlmsg_type == NLMSG_DONE) + if (h->nlmsg_type == NLMSG_DONE) { + DBG(ENDPOINTS, ul_debug(" DONE")); return; - if (h->nlmsg_type == NLMSG_ERROR) + } + if (h->nlmsg_type == NLMSG_ERROR) { + struct nlmsgerr *e = (struct nlmsgerr *)NLMSG_DATA(h); + DBG(ENDPOINTS, ul_debug(" ERROR: %s", + strerror(- e->error))); return; + } if (h->nlmsg_type == SOCK_DIAG_BY_FAMILY) { + DBG(ENDPOINTS, ul_debug(" FAMILY")); if (!cb(netns, h->nlmsg_len, NLMSG_DATA(h))) return; } + DBG(ENDPOINTS, ul_debug(" NEXT")); } + DBG(ENDPOINTS, ul_debug(" OK: 0")); } } @@ -639,6 +658,8 @@ static void load_xinfo_from_proc_unix(ino_t netns_inode) FILE *unix_fp; unix_fp = fopen("/proc/net/unix", "r"); + DBG(ENDPOINTS, ul_debug("open /proc/net/unix [fp=%p; %s]", unix_fp, + unix_fp? "successful": strerror(errno))); if (!unix_fp) return; @@ -655,13 +676,18 @@ static void load_xinfo_from_proc_unix(ino_t netns_inode) unsigned long inode; struct unix_xinfo *ux; char path[UNIX_LINE_LEN + 1] = { 0 }; + int r; + DBG(ENDPOINTS, ul_debug(" line: %s", line)); - if (sscanf(line, "%*x: %*x %*x %" SCNx64 " %x %x %lu %" + r = sscanf(line, "%*x: %*x %*x %" SCNx64 " %x %x %lu %" stringify_value(UNIX_LINE_LEN) "[^\n]", - &flags, &type, &st, &inode, path) < 4) + &flags, &type, &st, &inode, path); + DBG(ENDPOINTS, ul_debug(" scanf: %d", r)); + if (r < 4) continue; + DBG(ENDPOINTS, ul_debug(" inode: %lu", inode)); if (inode == 0) continue; @@ -675,10 +701,12 @@ static void load_xinfo_from_proc_unix(ino_t netns_inode) ux->st = st; xstrncpy(ux->path, path, sizeof(ux->path)); + DBG(ENDPOINTS, ul_debug(" path: %s", ux->path)); add_sock_info(&ux->sock); } out: + DBG(ENDPOINTS, ul_debug("close /proc/net/unix")); fclose(unix_fp); } @@ -712,6 +740,9 @@ static bool handle_diag_unix(ino_t netns __attribute__((__unused__)), if (diag->udiag_family != AF_UNIX) return false; + DBG(ENDPOINTS, ul_debug(" UNIX")); + DBG(ENDPOINTS, ul_debug(" LEN: %zu (>= %zu)", nlmsg_len, + (size_t)(NLMSG_LENGTH(sizeof(*diag))))); if (nlmsg_len < NLMSG_LENGTH(sizeof(*diag))) return false; @@ -719,21 +750,29 @@ static bool handle_diag_unix(ino_t netns __attribute__((__unused__)), inode = (ino_t)diag->udiag_ino; xinfo = get_sock_xinfo(inode); + DBG(ENDPOINTS, ul_debug(" inode: %llu", (unsigned long long)inode)); + DBG(ENDPOINTS, ul_debug(" xinfo: %p", xinfo)); + if (xinfo == NULL) /* The socket is found in the diag response but not in the proc fs. */ return true; + DBG(ENDPOINTS, ul_debug(" xinfo->class == &unix_xinfo_class: %d", + xinfo->class == &unix_xinfo_class)); if (xinfo->class != &unix_xinfo_class) return true; unix_xinfo = (struct unix_xinfo *)xinfo; rta_len = nlmsg_len - NLMSG_LENGTH(sizeof(*diag)); + DBG(ENDPOINTS, ul_debug(" rta_len: %zu", rta_len)); for (struct rtattr *attr = (struct rtattr *)(diag + 1); RTA_OK(attr, rta_len); attr = RTA_NEXT(attr, rta_len)) { size_t len = RTA_PAYLOAD(attr); + DBG(ENDPOINTS, ul_debug(" len = %2zu, type: %d", + rta_len, attr->rta_type)); switch (attr->rta_type) { case UNIX_DIAG_NAME: unix_refill_name(xinfo, RTA_DATA(attr), len); diff --git a/misc-utils/lsfd-unkn.c b/misc-utils/lsfd-unkn.c index 8f6e9084689..8e257f479be 100644 --- a/misc-utils/lsfd-unkn.c +++ b/misc-utils/lsfd-unkn.c @@ -28,6 +28,7 @@ #include "timeutils.h" #include "lsfd.h" +#include "lsfd-pidfd.h" #define offsetofend(TYPE, MEMBER) \ (offsetof(TYPE, MEMBER) + sizeof_member(TYPE, MEMBER)) @@ -183,10 +184,6 @@ static int unkn_handle_fdinfo(struct file *file, const char *key, const char *va /* * pidfd */ -struct anon_pidfd_data { - pid_t pid; - char *nspid; -}; static bool anon_pidfd_probe(const char *str) { @@ -195,51 +192,28 @@ static bool anon_pidfd_probe(const char *str) static char *anon_pidfd_get_name(struct unkn *unkn) { - char *str = NULL; - struct anon_pidfd_data *data = (struct anon_pidfd_data *)unkn->anon_data; + struct pidfd_data *data = (struct pidfd_data *)unkn->anon_data; - char *comm = NULL; - struct proc *proc = get_proc(data->pid); - if (proc) - comm = proc->command; - - xasprintf(&str, "pid=%d comm=%s nspid=%s", - data->pid, - comm? comm: "", - data->nspid? data->nspid: ""); - return str; + return pidfd_get_name(data); } static void anon_pidfd_init(struct unkn *unkn) { - unkn->anon_data = xcalloc(1, sizeof(struct anon_pidfd_data)); + unkn->anon_data = xcalloc(1, sizeof(struct pidfd_data)); } static void anon_pidfd_free(struct unkn *unkn) { - struct anon_pidfd_data *data = (struct anon_pidfd_data *)unkn->anon_data; + struct pidfd_data *data = (struct pidfd_data *)unkn->anon_data; - if (data->nspid) - free(data->nspid); + pidfd_free(data); free(data); } static int anon_pidfd_handle_fdinfo(struct unkn *unkn, const char *key, const char *value) { - if (strcmp(key, "Pid") == 0) { - uint64_t pid; - - int rc = ul_strtou64(value, &pid, 10); - if (rc < 0) - return 0; /* ignore -- parse failed */ - ((struct anon_pidfd_data *)unkn->anon_data)->pid = (pid_t)pid; - return 1; - } else if (strcmp(key, "NSpid") == 0) { - ((struct anon_pidfd_data *)unkn->anon_data)->nspid = xstrdup(value); - return 1; - - } - return 0; + return pidfd_handle_fdinfo((struct pidfd_data *)unkn->anon_data, + key, value); } static bool anon_pidfd_fill_column(struct proc *proc __attribute__((__unused__)), @@ -249,32 +223,9 @@ static bool anon_pidfd_fill_column(struct proc *proc __attribute__((__unused__) size_t column_index __attribute__((__unused__)), char **str) { - struct anon_pidfd_data *data = (struct anon_pidfd_data *)unkn->anon_data; - - switch(column_id) { - case COL_PIDFD_COMM: { - struct proc *pidfd_proc = get_proc(data->pid); - char *pidfd_comm = NULL; - if (pidfd_proc) - pidfd_comm = pidfd_proc->command; - if (pidfd_comm) { - *str = xstrdup(pidfd_comm); - return true; - } - break; - } - case COL_PIDFD_NSPID: - if (data->nspid) { - *str = xstrdup(data->nspid); - return true; - } - break; - case COL_PIDFD_PID: - xasprintf(str, "%d", (int)data->pid); - return true; - } - - return false; + return pidfd_fill_column((struct pidfd_data *)unkn->anon_data, + column_id, + str); } static const struct anon_ops anon_pidfd_ops = { diff --git a/misc-utils/lsfd.1.adoc b/misc-utils/lsfd.1.adoc index 512fb231e28..69b9f429320 100644 --- a/misc-utils/lsfd.1.adoc +++ b/misc-utils/lsfd.1.adoc @@ -2,7 +2,7 @@ //// Copyright 2021 Red Hat, Inc. -This file may be copied under the terms of the GNU Public License. +This file may be copied under the terms of the GNU General Public License. //// = lsfd(1) :doctype: manpage diff --git a/misc-utils/lsfd.c b/misc-utils/lsfd.c index 29e69e10085..01e88d51b9e 100644 --- a/misc-utils/lsfd.c +++ b/misc-utils/lsfd.c @@ -84,6 +84,14 @@ static int kcmp(pid_t pid1 __attribute__((__unused__)), #include "lsfd.h" +UL_DEBUG_DEFINE_MASK(lsfd); +UL_DEBUG_DEFINE_MASKNAMES(lsfd) = UL_DEBUG_EMPTY_MASKNAMES; + +static void lsfd_init_debug(void) +{ + __UL_INIT_DEBUG_FROM_ENV(lsfd, LSFD_DEBUG_, 0, LSFD_DEBUG); +} + /* * /proc/$pid/mountinfo entries */ @@ -402,7 +410,7 @@ static const struct colinfo infos[] = { N_("user of the process") }, [COL_XMODE] = { "XMODE", 0, SCOLS_FL_RIGHT, SCOLS_JSON_STRING, - N_("extended version of MDOE (rwxD[Ll]m)") }, + N_("extended version of MODE (rwxD[Ll]m)") }, }; static const int default_columns[] = { @@ -675,6 +683,9 @@ static const struct file_class *stat2class(struct stat *sb) if (is_mqueue_dev(dev)) return &mqueue_file_class; + if (is_pidfs_dev(dev)) + return &pidfs_file_class; + return &file_class; default: break; @@ -892,7 +903,7 @@ static void parse_maps_line(struct path_cxt *pc, char *buf, struct proc *proc) "-%"SCNx64 /* end */ " %4[^ ]" /* mode */ " %"SCNx64 /* offset */ - " %lx:%lx" /* maj:min */ + " %lx:%lx" /* maj:min */ " %"SCNu64, /* inode */ &start, &end, modestr, &offset, @@ -1006,12 +1017,26 @@ static void collect_fs_files(struct path_cxt *pc, struct proc *proc, sockets_only); } -static void collect_namespace_files(struct path_cxt *pc, struct proc *proc) +static void collect_namespace_files_tophalf(struct path_cxt *pc, struct proc *proc) { enum association assocs[] = { ASSOC_NS_CGROUP, ASSOC_NS_IPC, ASSOC_NS_MNT, + }; + const char *names[] = { + [ASSOC_NS_CGROUP] = "ns/cgroup", + [ASSOC_NS_IPC] = "ns/ipc", + [ASSOC_NS_MNT] = "ns/mnt", + }; + collect_outofbox_files(pc, proc, assocs, names, ARRAY_SIZE(assocs), + /* Namespace information is alwasys needed. */ + false); +} + +static void collect_namespace_files_bottomhalf(struct path_cxt *pc, struct proc *proc) +{ + enum association assocs[] = { ASSOC_NS_NET, ASSOC_NS_PID, ASSOC_NS_PID4C, @@ -1021,9 +1046,6 @@ static void collect_namespace_files(struct path_cxt *pc, struct proc *proc) ASSOC_NS_UTS, }; const char *names[] = { - [ASSOC_NS_CGROUP] = "ns/cgroup", - [ASSOC_NS_IPC] = "ns/ipc", - [ASSOC_NS_MNT] = "ns/mnt", [ASSOC_NS_NET] = "ns/net", [ASSOC_NS_PID] = "ns/pid", [ASSOC_NS_PID4C] = "ns/pid_for_children", @@ -1093,7 +1115,7 @@ const char *get_nodev_filesystem(unsigned long minor) return NULL; } -static void add_nodevs(FILE *mnt) +static void read_mountinfo(FILE *mnt) { /* This can be very long. A line in mountinfo can have more than 3 * paths. */ @@ -1104,10 +1126,10 @@ static void add_nodevs(FILE *mnt) char filesystem[256]; /* 23 61 0:22 / /sys rw,nosuid,nodev,noexec,relatime shared:2 - sysfs sysfs rw,seclabel */ - if(sscanf(line, "%*d %*d %lu:%lu %*s %*s %*s %*[^-] - %s %*[^\n]", + if(sscanf(line, "%*d %*d %lu:%lu %*s %*s %*s %*[^-] - %255s %*[^\n]", &major, &minor, filesystem) != 3) /* 1600 1458 0:55 / / rw,nodev,relatime - overlay overlay rw,context="s... */ - if (sscanf(line, "%*d %*d %lu:%lu %*s %*s %*s - %s %*[^\n]", + if (sscanf(line, "%*d %*d %lu:%lu %*s %*s %*s - %255s %*[^\n]", &major, &minor, filesystem) != 3) continue; @@ -1621,17 +1643,17 @@ static void parse_proc_syscall(struct lsfd_control *ctl __attribute__((__unused_ return; switch (scn) { -#ifdef SYS_poll +#ifdef SYS_poll case SYS_poll: mark_poll_fds_as_multiplexed(ptr, pid, proc); break; #endif -#ifdef SYS_ppoll +#ifdef SYS_ppoll case SYS_ppoll: mark_poll_fds_as_multiplexed(ptr, pid, proc); break; #endif -#ifdef SYS_ppoll_time64 +#ifdef SYS_ppoll_time64 case SYS_ppoll_time64: mark_poll_fds_as_multiplexed(ptr, pid, proc); break; @@ -1647,7 +1669,7 @@ static void parse_proc_syscall(struct lsfd_control *ctl __attribute__((__unused_ mark_select_fds_as_multiplexed(ptr, pid, proc); break; #endif -#ifdef SYS_pselect6_time64 +#ifdef SYS_pselect6_time64 case SYS_pselect6_time64: mark_select_fds_as_multiplexed(ptr, pid, proc); break; @@ -1698,17 +1720,40 @@ static void read_process(struct lsfd_control *ctl, struct path_cxt *pc, || kcmp(proc->leader->pid, proc->pid, KCMP_FS, 0, 0) != 0) collect_fs_files(pc, proc, ctl->sockets_only); + /* Reading /proc/$pid/mountinfo is expensive. + * mnt_namespaces is a table for avoiding reading mountinfo files + * for an identical mnt namespace. + * + * After reading a mountinfo file for a mnt namespace, we store $mnt_id + * identifying the mnt namespace to mnt_namespaces. + * + * Before reading a mountinfo, we look up the mnt_namespaces with $mnt_id + * as a key. If we find the key, we can skip the reading. + * + * To utilize mnt_namespaces, we need $mnt_id. + * So we read /proc/$pid/ns/mnt here. However, we should not read + * /proc/$pid/ns/net here. When reading /proc/$pid/ns/net, we need + * the information about backing device of "nsfs" file system. + * The information is available in a mountinfo file. + */ + + /* 1/3. read /proc/$pid/ns/mnt */ + if (proc->ns_mnt == 0) + collect_namespace_files_tophalf(pc, proc); + + /* 2/3. read /proc/$pid/mountinfo */ if (proc->ns_mnt == 0 || !has_mnt_ns(proc->ns_mnt)) { FILE *mnt = ul_path_fopen(pc, "r", "mountinfo"); if (mnt) { - add_nodevs(mnt); + read_mountinfo(mnt); if (proc->ns_mnt) add_mnt_ns(proc->ns_mnt); fclose(mnt); } } - collect_namespace_files(pc, proc); + /* 3/3. read /proc/$pid/ns/{the other than mnt} */ + collect_namespace_files_bottomhalf(pc, proc); /* If kcmp is not available, * there is no way to know whether threads share resources. @@ -1741,7 +1786,7 @@ static void read_process(struct lsfd_control *ctl, struct path_cxt *pc, out: /* Let's be careful with number of open files */ - ul_path_close_dirfd(pc); + ul_path_close_dirfd(pc); } static void parse_pids(const char *str, pid_t **pids, int *count) @@ -2237,6 +2282,8 @@ int main(int argc, char *argv[]) { NULL, 0, NULL, 0 }, }; + lsfd_init_debug(); + setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); diff --git a/misc-utils/lsfd.h b/misc-utils/lsfd.h index 1859dc746ff..f0f17d5b043 100644 --- a/misc-utils/lsfd.h +++ b/misc-utils/lsfd.h @@ -28,7 +28,11 @@ #include #include #include +#include +#include +#include +#include "debug.h" #include "libsmartcols.h" #include "list.h" #include "nls.h" @@ -36,6 +40,17 @@ #include "strutils.h" #include "xalloc.h" +/* + * debug + */ +UL_DEBUG_DECLARE_MASK(lsfd); + +#define LSFD_DEBUG_INIT (1 << 1) +#define LSFD_DEBUG_ENDPOINTS (1 << 2) +#define LSFD_DEBUG_ALL 0xFFFF + +#define DBG(m, x) __UL_DBG(lsfd, LSFD_DEBUG_, m, x) + /* * column IDs */ @@ -213,7 +228,7 @@ struct file_class { }; extern const struct file_class file_class, cdev_class, bdev_class, sock_class, unkn_class, fifo_class, - nsfs_file_class, mqueue_file_class; + nsfs_file_class, mqueue_file_class, pidfs_file_class; /* * IPC @@ -292,4 +307,9 @@ bool is_mqueue_dev(dev_t dev); */ bool is_multiplexed_by_eventpoll(int fd, struct list_head *eventpolls); +/* + * Pidfs + */ +bool is_pidfs_dev(dev_t dev); + #endif /* UTIL_LINUX_LSFD_H */ diff --git a/misc-utils/lslocks.c b/misc-utils/lslocks.c index 2a88440b446..175ee3d2ac1 100644 --- a/misc-utils/lslocks.c +++ b/misc-utils/lslocks.c @@ -48,6 +48,7 @@ #include "optutils.h" #include "procfs.h" #include "column-list-table.h" +#include "fileutils.h" /* column IDs */ enum { @@ -88,7 +89,7 @@ static struct colinfo infos[] = { [COL_END] = { "END", 10, SCOLS_FL_RIGHT, N_("ending offset of the lock")}, [COL_PATH] = { "PATH", 0, SCOLS_FL_TRUNC, N_("path of the locked file")}, [COL_BLOCKER] = { "BLOCKER", 0, SCOLS_FL_RIGHT, N_("PID of the process blocking the lock") }, - [COL_HOLDERS] = { "HOLDERS", 0, SCOLS_FL_WRAP, N_("HOLDERS of the lock") }, + [COL_HOLDERS] = { "HOLDERS", 0, SCOLS_FL_WRAP, N_("holders of the lock") }, }; static int columns[ARRAY_SIZE(infos) * 2]; @@ -220,13 +221,11 @@ static char *get_filename_sz(ino_t inode, pid_t lock_pid, size_t *size) struct stat sb; struct dirent *dp; DIR *dirp; - size_t len; int fd; - char path[PATH_MAX], sym[PATH_MAX], *ret = NULL; + char path[PATH_MAX] = { 0 }, + sym[PATH_MAX] = { 0 }, *ret = NULL; *size = 0; - memset(path, 0, sizeof(path)); - memset(sym, 0, sizeof(sym)); if (lock_pid < 0) /* pid could be -1 for OFD locks */ @@ -241,16 +240,14 @@ static char *get_filename_sz(ino_t inode, pid_t lock_pid, size_t *size) if (!(dirp = opendir(path))) return NULL; - if ((len = strlen(path)) >= (sizeof(path) - 2)) + if (strlen(path) >= (sizeof(path) - 2)) goto out; if ((fd = dirfd(dirp)) < 0 ) goto out; - while ((dp = readdir(dirp))) { - if (!strcmp(dp->d_name, ".") || - !strcmp(dp->d_name, "..")) - continue; + while ((dp = xreaddir(dirp))) { + ssize_t len; errno = 0; @@ -492,12 +489,11 @@ static int get_pid_locks(void *locks, void (*add_lock)(void *, struct lock *), s return rc; } -static int get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) +static void get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) { DIR *dir; struct dirent *d; struct path_cxt *pc = NULL; - int rc = 0; pc = ul_new_path(NULL); if (!pc) @@ -515,10 +511,8 @@ static int get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) if (procfs_dirent_get_pid(d, &pid) != 0) continue; - if (procfs_process_init_path(pc, pid) != 0) { - rc = -1; - break; - } + if (procfs_process_init_path(pc, pid) != 0) + continue; if (procfs_process_get_cmdname(pc, buf, sizeof(buf)) <= 0) continue; @@ -530,7 +524,7 @@ static int get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) closedir(dir); ul_unref_path(pc); - return rc; + return; } static int get_proc_locks(void *locks, void (*add_lock)(void *, struct lock *), void *fallback) diff --git a/misc-utils/mcookie.c b/misc-utils/mcookie.c index 5a01b4605a8..99df4f4a6d9 100644 --- a/misc-utils/mcookie.c +++ b/misc-utils/mcookie.c @@ -1,4 +1,8 @@ -/* mcookie.c -- Generates random numbers for xauth +/* + * No copyright is claimed. This code is in the public domain; do with + * it what you wish. + * + * mcookie.c -- Generates random numbers for xauth * Created: Fri Feb 3 10:42:48 1995 by faith@cs.unc.edu * Revised: Fri Mar 19 07:48:01 1999 by faith@acm.org * Public Domain 1995, 1999 Rickard E. Faith (faith@acm.org) diff --git a/misc-utils/meson.build b/misc-utils/meson.build index 6a7dd8ceef0..68ea9777ec1 100644 --- a/misc-utils/meson.build +++ b/misc-utils/meson.build @@ -56,6 +56,7 @@ lsfd_sources = files ( 'lsfd-sock-xinfo.c', 'lsfd-unkn.c', 'lsfd-fifo.c', + 'lsfd-pidfd.c', ) uuidgen_sources = files( @@ -77,6 +78,14 @@ test_uuidd_sources = files( ) if build_liblastlog2 and systemd.found() + lastlog2_tmpfiles = configure_file( + input : 'lastlog2-tmpfiles.conf.in', + output : 'lastlog2-tmpfiles.conf', + configuration : conf) + install_data( + lastlog2_tmpfiles, + install_dir : '/usr/lib/tmpfiles.d') + lastlog2_service = configure_file( input : 'lastlog2-import.service.in', output : 'lastlog2-import.service', @@ -86,17 +95,15 @@ if build_liblastlog2 and systemd.found() install_dir : systemdsystemunitdir) endif -if build_liblastlog2 - lastlog2_tmpfiles = configure_file( - input : 'lastlog2.conf.in', - output : 'lastlog2.conf', +if build_uuidd and systemd.found() + uuidd_tmpfiles = configure_file( + input : 'uuidd-tmpfiles.conf.in', + output : 'uuidd-tmpfiles.conf', configuration : conf) install_data( - lastlog2_tmpfiles, + uuidd_tmpfiles, install_dir : '/usr/lib/tmpfiles.d') -endif -if build_uuidd and systemd.found() uuidd_service = configure_file( input : 'uuidd.service.in', output : 'uuidd.service', diff --git a/misc-utils/namei.1.adoc b/misc-utils/namei.1.adoc index 2cfeac1af51..a26cb01b3d0 100644 --- a/misc-utils/namei.1.adoc +++ b/misc-utils/namei.1.adoc @@ -70,7 +70,7 @@ To be discovered. The original *namei* program was written by mailto:rogers@amadeus.wr.tek.com[Roger Southwick]. -The program was rewritten by Karel Zak mailto:kzak@redhat.com[Karel Zak]. +The program was rewritten by mailto:kzak@redhat.com[Karel Zak]. == SEE ALSO diff --git a/misc-utils/rename.1.adoc b/misc-utils/rename.1.adoc index 1f6225fb14a..692f4b54f62 100644 --- a/misc-utils/rename.1.adoc +++ b/misc-utils/rename.1.adoc @@ -1,4 +1,8 @@ -//po4a: entry man manual +// +// No copyright is claimed. This code is in the public domain; do with +// it what you wish. +// +// po4a: entry man manual // Written by Andries E. Brouwer (aeb@cwi.nl) // Placed in the public domain = rename(1) diff --git a/misc-utils/rename.c b/misc-utils/rename.c index 9ab38695f2c..bb2e3103dba 100644 --- a/misc-utils/rename.c +++ b/misc-utils/rename.c @@ -28,7 +28,6 @@ for i in $@; do N=`echo "$i" | sed "s/$FROM/$TO/g"`; mv "$i" "$N"; done #include #include #include -#include #include #include #include @@ -40,6 +39,7 @@ for i in $@; do N=`echo "$i" | sed "s/$FROM/$TO/g"`; mv "$i" "$N"; done #include "closestream.h" #include "optutils.h" #include "rpmatch.h" +#include "fileutils.h" #define RENAME_EXIT_SOMEOK 2 #define RENAME_EXIT_NOTHING 4 @@ -59,7 +59,7 @@ static char *find_initial_replace(char *from, char *to, char *orig) /* We only want to search in the final path component. Don't include the final '/' in that component; if `from` is empty, we want it to first match after the '/', not before. */ - search_start = basename(orig); + search_start = ul_basename(orig); } return strstr(search_start, from); diff --git a/misc-utils/uuidd-tmpfiles.conf.in b/misc-utils/uuidd-tmpfiles.conf.in new file mode 100644 index 00000000000..2245b1b7e30 --- /dev/null +++ b/misc-utils/uuidd-tmpfiles.conf.in @@ -0,0 +1,6 @@ +# This file is part of uuidd. +# +# See tmpfiles.d(5) for details +# +d @runstatedir@/uuidd 2775 uuidd uuidd - +d @localstatedir@/lib/libuuid 2775 uuidd uuidd - diff --git a/misc-utils/uuidd.8.adoc b/misc-utils/uuidd.8.adoc index c1c66258c74..16b4e906e81 100644 --- a/misc-utils/uuidd.8.adoc +++ b/misc-utils/uuidd.8.adoc @@ -1,7 +1,7 @@ //po4a: entry man manual //// Copyright 2007 by Theodore Ts'o. All Rights Reserved. -This file may be copied under the terms of the GNU Public License. +This file may be copied under the terms of the GNU General Public License. //// = uuidd(8) :doctype: manpage diff --git a/misc-utils/uuidd.c b/misc-utils/uuidd.c index 42a252dd050..f3f2f42e240 100644 --- a/misc-utils/uuidd.c +++ b/misc-utils/uuidd.c @@ -338,7 +338,7 @@ static void timeout_handler(int sig __attribute__((__unused__)), #ifdef HAVE_TIMER_CREATE if (info->si_code == SI_TIMER) #endif - errx(EXIT_FAILURE, _("timed out")); + ul_sig_err(EXIT_FAILURE, "timed out"); } static void server_loop(const char *socket_path, const char *pidfile_path, diff --git a/misc-utils/uuidd.rc.in b/misc-utils/uuidd.rc.in index 7943945622f..49190494632 100644 --- a/misc-utils/uuidd.rc.in +++ b/misc-utils/uuidd.rc.in @@ -17,8 +17,9 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin DAEMON=/usr/sbin/uuidd UUIDD_USER=uuidd UUIDD_GROUP=uuidd -UUIDD_DIR=@runstatedir@/uuidd -PIDFILE=$UUIDD_DIR/uuidd.pid +UUIDD_RUNSTATEDIR=@runstatedir@/uuidd +UUIDD_LOCALSTATEDIR=@localstatedir@/lib/libuuid +PIDFILE=$UUIDD_RUNSTATEDIR/uuidd.pid test -x $DAEMON || exit 0 @@ -27,9 +28,13 @@ test -x $DAEMON || exit 0 case "$1" in start) log_daemon_msg "Starting uuid generator" "uuidd" - if ! test -d $UUIDD_DIR; then - mkdir -p $UUIDD_DIR - chown -R $UUIDD_USER:$UUIDD_GROUP $UUIDD_DIR + if ! test -d $UUIDD_RUNSTATEDIR; then + mkdir -p $UUIDD_RUNSTATEDIR + chown -R $UUIDD_USER:$UUIDD_GROUP $UUIDD_RUNSTATEDIR + fi + if ! test -d $UUIDD_LOCALSTATEDIR; then + mkdir -p $UUIDD_LOCALSTATEDIR + chown -R $UUIDD_USER:$UUIDD_GROUP $UUIDD_LOCALSTATEDIR fi start_daemon -p $PIDFILE $DAEMON log_end_msg $? diff --git a/misc-utils/uuidd.service.in b/misc-utils/uuidd.service.in index 330f1ab9b23..529d7238860 100644 --- a/misc-utils/uuidd.service.in +++ b/misc-utils/uuidd.service.in @@ -16,7 +16,7 @@ ProtectKernelTunables=yes ProtectKernelModules=yes ProtectControlGroups=yes MemoryDenyWriteExecute=yes -ReadWritePaths=/var/lib/libuuid/ +ReadWritePaths=@localstatedir@/lib/libuuid/ SystemCallFilter=@default @file-system @basic-io @system-service @signal @io-event @network-io [Install] diff --git a/misc-utils/uuidgen.1.adoc b/misc-utils/uuidgen.1.adoc index e1d2cae059b..659a7804dc8 100644 --- a/misc-utils/uuidgen.1.adoc +++ b/misc-utils/uuidgen.1.adoc @@ -1,7 +1,7 @@ //po4a: entry man manual //// Copyright 1999 Andreas Dilger (adilger@enel.ucalgary.ca) -This file may be copied under the terms of the GNU Public License. +This file may be copied under the terms of the GNU General Public License. //// = uuidgen(1) :doctype: manpage diff --git a/misc-utils/uuidgen.c b/misc-utils/uuidgen.c index 27429223cef..57769c1f405 100644 --- a/misc-utils/uuidgen.c +++ b/misc-utils/uuidgen.c @@ -19,6 +19,7 @@ #include "closestream.h" #include "strutils.h" #include "optutils.h" +#include "xalloc.h" static void __attribute__((__noreturn__)) usage(void) { @@ -57,7 +58,7 @@ static char *unhex(const char *value, size_t *valuelen) errtryhelp(EXIT_FAILURE); } - value2 = malloc(*valuelen / 2 + 1); + value2 = xmalloc(*valuelen / 2 + 1); for (x = n = 0; n < *valuelen; n++) { c = value[n]; diff --git a/misc-utils/waitpid.c b/misc-utils/waitpid.c index 0a4e03d1671..4d77e1df44e 100644 --- a/misc-utils/waitpid.c +++ b/misc-utils/waitpid.c @@ -236,7 +236,7 @@ int main(int argc, char **argv) if (count && count > n_pids) errx(EXIT_FAILURE, - _("can't want for %zu of %zu PIDs"), count, n_pids); + _("can't wait for %zu of %zu PIDs"), count, n_pids); pid_t *pids = parse_pids(argc - pid_idx, argv + pid_idx); diff --git a/misc-utils/wipefs.8.adoc b/misc-utils/wipefs.8.adoc index 184c7236ee4..886ddb62e21 100644 --- a/misc-utils/wipefs.8.adoc +++ b/misc-utils/wipefs.8.adoc @@ -1,6 +1,6 @@ //po4a: entry man manual // Copyright 2009 by Karel Zak. All Rights Reserved. -// This file may be copied under the terms of the GNU Public License. +// This file may be copied under the terms of the GNU General Public License. = wipefs(8) :doctype: manpage :man manual: System Administration diff --git a/pam_lastlog2/Makemodule.am b/pam_lastlog2/Makemodule.am index f33c98ba532..f17cc09f6a1 100644 --- a/pam_lastlog2/Makemodule.am +++ b/pam_lastlog2/Makemodule.am @@ -3,6 +3,6 @@ if BUILD_PAM_LASTLOG2 include pam_lastlog2/man/Makemodule.am include pam_lastlog2/src/Makemodule.am -EXTRA_DIST += pam_lastlog2/COPYING +EXTRA_DIST += pam_lastlog2/COPYING pam_lastlog2/meson.build endif # BUILD_PAM_LASTLOG2 diff --git a/pam_lastlog2/meson.build b/pam_lastlog2/meson.build index d662e1b3f21..12f3a6b211e 100644 --- a/pam_lastlog2/meson.build +++ b/pam_lastlog2/meson.build @@ -21,7 +21,7 @@ if build_pam_lastlog2 libpam = cc.find_library('pam') - pam_lastlog2 = both_libraries( + pam_lastlog2 = shared_module( 'pam_lastlog2', lib_pam_lastlog2_sources, name_prefix : '', @@ -31,14 +31,6 @@ if build_pam_lastlog2 dependencies : [libpam, lastlog2_dep], install : build_liblastlog2, install_dir : pamlibdir, - version : liblastlog2_version, ) manadocs += ['pam_lastlog2/man/pam_lastlog2.8.adoc'] - - pkg.generate( - pam_lastlog2, - description : 'pam library to manage last login data with lastlog2', - subdirs : 'lastlog2', - version : pc_version - ) endif diff --git a/pam_lastlog2/src/Makemodule.am b/pam_lastlog2/src/Makemodule.am index 988441676f7..a2becac8891 100644 --- a/pam_lastlog2/src/Makemodule.am +++ b/pam_lastlog2/src/Makemodule.am @@ -1,5 +1,4 @@ -securelibdir = $(libdir)/security -securelib_LTLIBRARIES = pam_lastlog2.la +securelib_exec_LTLIBRARIES += pam_lastlog2.la pam_lastlog2_la_SOURCES = \ pam_lastlog2/src/pam_lastlog2.c @@ -10,8 +9,9 @@ EXTRA_pam_lastlog2_la_DEPENDENCIES = \ pam_lastlog2_la_CFLAGS = \ $(AM_CFLAGS) \ $(SOLIB_CFLAGS) \ - -I$(ul_liblastlog2_incdir) \ - -Iliblastlog2/src + -I$(ul_liblastlog2_incdir) + +pam_lastlog2_la_LIBADD = liblastlog2.la pam_lastlog2_la_LDFLAGS = $(SOLIB_LDFLAGS) -module -avoid-version -shared if HAVE_VSCRIPT diff --git a/po-man/.gitignore b/po-man/.gitignore index 0866f520d3d..a019ebdcb1f 100644 --- a/po-man/.gitignore +++ b/po-man/.gitignore @@ -2,6 +2,9 @@ cs/ de/ es/ fr/ +ko/ +po/ pt_BR/ +ro/ sr/ uk/ diff --git a/po-man/README.md b/po-man/README.md index d76c39e9da8..bfff7468a13 100644 --- a/po-man/README.md +++ b/po-man/README.md @@ -10,6 +10,8 @@ the first line of po4a.cfg: It is not crucial to sort the entries alphabetically, but do it anyway for better readability. +Also, add the "lang/" directory to the .gitignore file. + ## Update the template and create translated files This is done in one step using the following simple command: diff --git a/po-man/cs.po b/po-man/cs.po index 3a629ba7282..9b3d8fc82b0 100644 --- a/po-man/cs.po +++ b/po-man/cs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: util-linux-man 2.38-rc4\n" "Report-Msgid-Bugs-To: util-linux@vger.kernel.org\n" -"POT-Creation-Date: 2024-01-24 10:55+0100\n" +"POT-Creation-Date: 2025-01-09 12:31+0100\n" "PO-Revision-Date: 2022-03-19 16:33+01:00\n" "Last-Translator: Petr Písař \n" "Language-Team: Czech \n" @@ -94,9 +94,18 @@ msgstr "TIRÁŽ" #. TRANSLATORS: Keep *{configfile}* untranslated, it will be replaced with the name of the configuration file. #. type: Plain text #: ../man-common/footer-config.adoc:4 -#, no-wrap -msgid "*{configfile}* is part of the util-linux package which can be downloaded from https://www.kernel.org/pub/linux/utils/util-linux/[Linux Kernel Archive].\n" -msgstr "*{configfile}* je součástí balíku util-linux, který lze stáhnout z https://www.kernel.org/pub/linux/utils/util-linux/[archivu jádra Linuxu].\n" +#, fuzzy +#| msgid "" +#| "*{configfile}* is part of the util-linux package which can be downloaded " +#| "from https://www.kernel.org/pub/linux/utils/util-linux/[Linux Kernel " +#| "Archive].\n" +msgid "" +"*{configfile}* is part of the util-linux package which can be downloaded " +"from https://www.kernel.org/pub/linux/utils/util-linux/[Linux Kernel " +"Archive]." +msgstr "" +"*{configfile}* je součástí balíku util-linux, který lze stáhnout z https://" +"www.kernel.org/pub/linux/utils/util-linux/[archivu jádra Linuxu].\n" #. TRANSLATORS: Keep *{lib}* and {firstversion} untranslated, will be replaced with the library name and the version of util-linux where the library appeared for the first time. #. type: Plain text @@ -241,7 +250,6 @@ msgstr "" #: ../sys-utils/tunelp.8.adoc:4 ../sys-utils/umount.8.adoc:29 #: ../sys-utils/wdctl.8.adoc:4 ../sys-utils/zramctl.8.adoc:4 #: ../term-utils/agetty.8.adoc:4 -#, no-wrap msgid "System Administration" msgstr "" @@ -264,7 +272,7 @@ msgstr "" #: ../libuuid/man/uuid_unparse.3.adoc:41 ../login-utils/chfn.1.adoc:17 #: ../login-utils/chsh.1.adoc:17 ../login-utils/last.1.adoc:26 #: ../login-utils/login.1.adoc:13 ../login-utils/lslogins.1.adoc:11 -#: ../login-utils/newgrp.1.adoc:11 ../login-utils/nologin.8.adoc:9 +#: ../login-utils/newgrp.1.adoc:15 ../login-utils/nologin.8.adoc:9 #: ../login-utils/runuser.1.adoc:9 ../login-utils/su.1.adoc:10 #: ../login-utils/sulogin.8.adoc:28 ../login-utils/utmpdump.1.adoc:26 #: ../login-utils/vipw.8.adoc:43 ../misc-utils/blkid.8.adoc:12 @@ -277,7 +285,7 @@ msgstr "" #: ../misc-utils/lsblk.8.adoc:9 ../misc-utils/lsclocks.1.adoc:9 #: ../misc-utils/lsfd.1.adoc:15 ../misc-utils/lslocks.8.adoc:20 #: ../misc-utils/mcookie.1.adoc:11 ../misc-utils/namei.1.adoc:9 -#: ../misc-utils/pipesz.1.adoc:9 ../misc-utils/rename.1.adoc:11 +#: ../misc-utils/pipesz.1.adoc:9 ../misc-utils/rename.1.adoc:15 #: ../misc-utils/uuidd.8.adoc:13 ../misc-utils/uuidgen.1.adoc:13 #: ../misc-utils/uuidparse.1.adoc:11 ../misc-utils/waitpid.1.adoc:9 #: ../misc-utils/whereis.1.adoc:43 ../misc-utils/wipefs.8.adoc:11 @@ -312,7 +320,7 @@ msgstr "" #: ../term-utils/wall.1.adoc:44 ../term-utils/write.1.adoc:46 #: ../text-utils/col.1.adoc:46 ../text-utils/colcrt.1.adoc:44 #: ../text-utils/colrm.1.adoc:43 ../text-utils/column.1.adoc:43 -#: ../text-utils/hexdump.1.adoc:45 ../text-utils/line.1.adoc:10 +#: ../text-utils/hexdump.1.adoc:45 ../text-utils/line.1.adoc:14 #: ../text-utils/more.1.adoc:46 ../text-utils/pg.1.adoc:10 #: ../text-utils/rev.1.adoc:43 ../text-utils/ul.1.adoc:43 #, no-wrap @@ -343,7 +351,7 @@ msgstr "" #: ../libuuid/man/uuid_unparse.3.adoc:45 ../login-utils/chfn.1.adoc:21 #: ../login-utils/chsh.1.adoc:21 ../login-utils/last.1.adoc:30 #: ../login-utils/login.1.adoc:17 ../login-utils/lslogins.1.adoc:15 -#: ../login-utils/newgrp.1.adoc:15 ../login-utils/nologin.8.adoc:13 +#: ../login-utils/newgrp.1.adoc:19 ../login-utils/nologin.8.adoc:13 #: ../login-utils/runuser.1.adoc:13 ../login-utils/su.1.adoc:14 #: ../login-utils/sulogin.8.adoc:32 ../login-utils/utmpdump.1.adoc:30 #: ../login-utils/vipw.8.adoc:47 ../misc-utils/blkid.8.adoc:16 @@ -356,7 +364,7 @@ msgstr "" #: ../misc-utils/lsblk.8.adoc:13 ../misc-utils/lsclocks.1.adoc:13 #: ../misc-utils/lsfd.1.adoc:19 ../misc-utils/lslocks.8.adoc:24 #: ../misc-utils/mcookie.1.adoc:15 ../misc-utils/namei.1.adoc:13 -#: ../misc-utils/pipesz.1.adoc:13 ../misc-utils/rename.1.adoc:15 +#: ../misc-utils/pipesz.1.adoc:13 ../misc-utils/rename.1.adoc:19 #: ../misc-utils/uuidd.8.adoc:17 ../misc-utils/uuidgen.1.adoc:17 #: ../misc-utils/uuidparse.1.adoc:15 ../misc-utils/waitpid.1.adoc:13 #: ../misc-utils/whereis.1.adoc:47 ../misc-utils/wipefs.8.adoc:15 @@ -390,7 +398,7 @@ msgstr "" #: ../term-utils/wall.1.adoc:48 ../term-utils/write.1.adoc:50 #: ../text-utils/col.1.adoc:50 ../text-utils/colcrt.1.adoc:48 #: ../text-utils/colrm.1.adoc:47 ../text-utils/column.1.adoc:47 -#: ../text-utils/hexdump.1.adoc:49 ../text-utils/line.1.adoc:14 +#: ../text-utils/hexdump.1.adoc:49 ../text-utils/line.1.adoc:18 #: ../text-utils/more.1.adoc:50 ../text-utils/pg.1.adoc:14 #: ../text-utils/rev.1.adoc:47 ../text-utils/ul.1.adoc:47 #, no-wrap @@ -399,8 +407,7 @@ msgstr "POUŽITÍ" #. type: Plain text #: ../disk-utils/addpart.8.adoc:22 -#, no-wrap -msgid "*addpart* _device partition start length_\n" +msgid "*addpart* _device partition start length_" msgstr "" #. type: Title == @@ -422,7 +429,7 @@ msgstr "" #: ../libuuid/man/uuid_unparse.3.adoc:53 ../login-utils/chfn.1.adoc:25 #: ../login-utils/chsh.1.adoc:25 ../login-utils/last.1.adoc:36 #: ../login-utils/login.1.adoc:21 ../login-utils/lslogins.1.adoc:19 -#: ../login-utils/newgrp.1.adoc:19 ../login-utils/nologin.8.adoc:17 +#: ../login-utils/newgrp.1.adoc:23 ../login-utils/nologin.8.adoc:17 #: ../login-utils/runuser.1.adoc:19 ../login-utils/su.1.adoc:18 #: ../login-utils/sulogin.8.adoc:36 ../login-utils/utmpdump.1.adoc:34 #: ../login-utils/vipw.8.adoc:53 ../misc-utils/blkid.8.adoc:26 @@ -435,7 +442,7 @@ msgstr "" #: ../misc-utils/lsblk.8.adoc:17 ../misc-utils/lsclocks.1.adoc:17 #: ../misc-utils/lsfd.1.adoc:23 ../misc-utils/lslocks.8.adoc:28 #: ../misc-utils/mcookie.1.adoc:19 ../misc-utils/namei.1.adoc:17 -#: ../misc-utils/pipesz.1.adoc:19 ../misc-utils/rename.1.adoc:19 +#: ../misc-utils/pipesz.1.adoc:19 ../misc-utils/rename.1.adoc:23 #: ../misc-utils/uuidd.8.adoc:21 ../misc-utils/uuidgen.1.adoc:21 #: ../misc-utils/uuidparse.1.adoc:19 ../misc-utils/waitpid.1.adoc:17 #: ../misc-utils/whereis.1.adoc:51 ../misc-utils/wipefs.8.adoc:24 @@ -470,7 +477,7 @@ msgstr "" #: ../term-utils/wall.1.adoc:52 ../term-utils/write.1.adoc:54 #: ../text-utils/col.1.adoc:54 ../text-utils/colcrt.1.adoc:52 #: ../text-utils/colrm.1.adoc:51 ../text-utils/column.1.adoc:51 -#: ../text-utils/hexdump.1.adoc:55 ../text-utils/line.1.adoc:18 +#: ../text-utils/hexdump.1.adoc:55 ../text-utils/line.1.adoc:22 #: ../text-utils/more.1.adoc:54 ../text-utils/pg.1.adoc:18 #: ../text-utils/rev.1.adoc:51 ../text-utils/ul.1.adoc:51 #, no-wrap @@ -479,8 +486,10 @@ msgstr "POPIS" #. type: Plain text #: ../disk-utils/addpart.8.adoc:26 -#, no-wrap -msgid "*addpart* tells the Linux kernel about the existence of the specified partition. The command is a simple wrapper around the \"add partition\" ioctl.\n" +msgid "" +"*addpart* tells the Linux kernel about the existence of the specified " +"partition. The command is a simple wrapper around the \"add partition\" " +"ioctl." msgstr "" #. type: Plain text @@ -543,7 +552,7 @@ msgstr "" #. type: Title == #: ../disk-utils/addpart.8.adoc:45 ../disk-utils/cfdisk.8.adoc:145 #: ../disk-utils/delpart.8.adoc:33 ../disk-utils/fdformat.8.adoc:74 -#: ../disk-utils/fdisk.8.adoc:220 ../disk-utils/fsck.8.adoc:159 +#: ../disk-utils/fdisk.8.adoc:220 ../disk-utils/fsck.8.adoc:164 #: ../disk-utils/fsck.cramfs.8.adoc:51 ../disk-utils/fsck.minix.8.adoc:98 #: ../disk-utils/mkfs.8.adoc:53 ../disk-utils/mkfs.bfs.8.adoc:57 #: ../disk-utils/mkfs.cramfs.8.adoc:82 ../disk-utils/mkfs.minix.8.adoc:86 @@ -557,50 +566,50 @@ msgstr "" #: ../libuuid/man/uuid_unparse.3.adoc:67 ../login-utils/chfn.1.adoc:80 #: ../login-utils/chsh.1.adoc:63 ../login-utils/last.1.adoc:129 #: ../login-utils/login.1.adoc:169 ../login-utils/lslogins.1.adoc:144 -#: ../login-utils/newgrp.1.adoc:38 ../login-utils/nologin.8.adoc:67 -#: ../login-utils/runuser.1.adoc:133 ../login-utils/su.1.adoc:149 +#: ../login-utils/newgrp.1.adoc:42 ../login-utils/nologin.8.adoc:67 +#: ../login-utils/runuser.1.adoc:136 ../login-utils/su.1.adoc:156 #: ../login-utils/utmpdump.1.adoc:75 ../login-utils/vipw.8.adoc:72 #: ../misc-utils/blkid.8.adoc:179 ../misc-utils/cal.1.adoc:183 #: ../misc-utils/enosys.1.adoc:56 ../misc-utils/exch.1.adoc:41 #: ../misc-utils/fadvise.1.adoc:57 ../misc-utils/fincore.1.adoc:56 -#: ../misc-utils/findfs.8.adoc:67 ../misc-utils/findmnt.8.adoc:245 +#: ../misc-utils/findfs.8.adoc:67 ../misc-utils/findmnt.8.adoc:242 #: ../misc-utils/getopt.1.adoc:151 ../misc-utils/kill.1.adoc:109 #: ../misc-utils/logger.1.adoc:246 ../misc-utils/look.1.adoc:101 #: ../misc-utils/lsblk.8.adoc:225 ../misc-utils/lsclocks.1.adoc:104 -#: ../misc-utils/lsfd.1.adoc:706 ../misc-utils/lslocks.8.adoc:127 +#: ../misc-utils/lsfd.1.adoc:701 ../misc-utils/lslocks.8.adoc:127 #: ../misc-utils/mcookie.1.adoc:54 ../misc-utils/namei.1.adoc:75 -#: ../misc-utils/pipesz.1.adoc:99 ../misc-utils/rename.1.adoc:106 +#: ../misc-utils/pipesz.1.adoc:99 ../misc-utils/rename.1.adoc:110 #: ../misc-utils/uuidd.8.adoc:88 ../misc-utils/uuidgen.1.adoc:69 #: ../misc-utils/uuidparse.1.adoc:68 ../misc-utils/waitpid.1.adoc:57 #: ../misc-utils/wipefs.8.adoc:103 ../schedutils/chrt.1.adoc:148 #: ../schedutils/ionice.1.adoc:91 ../schedutils/taskset.1.adoc:145 #: ../schedutils/uclampset.1.adoc:130 ../sys-utils/adjtime_config.5.adoc:54 #: ../sys-utils/blkdiscard.8.adoc:75 ../sys-utils/blkzone.8.adoc:108 -#: ../sys-utils/blkpr.8.adoc:52 ../sys-utils/chcpu.8.adoc:76 +#: ../sys-utils/blkpr.8.adoc:52 ../sys-utils/chcpu.8.adoc:80 #: ../sys-utils/chmem.8.adoc:81 ../sys-utils/choom.1.adoc:51 #: ../sys-utils/ctrlaltdel.8.adoc:47 ../sys-utils/dmesg.1.adoc:198 #: ../sys-utils/eject.1.adoc:117 ../sys-utils/fallocate.1.adoc:86 #: ../sys-utils/flock.1.adoc:131 ../sys-utils/fsfreeze.8.adoc:53 -#: ../sys-utils/fstab.5.adoc:139 ../sys-utils/fstrim.8.adoc:91 +#: ../sys-utils/fstab.5.adoc:143 ../sys-utils/fstrim.8.adoc:91 #: ../sys-utils/hwclock.8.adoc:378 ../sys-utils/ipcmk.1.adoc:49 #: ../sys-utils/ipcrm.1.adoc:68 ../sys-utils/ipcs.1.adoc:88 #: ../sys-utils/ldattach.8.adoc:118 ../sys-utils/lscpu.1.adoc:109 #: ../sys-utils/lsipc.1.adoc:106 ../sys-utils/lsmem.1.adoc:72 -#: ../sys-utils/lsns.8.adoc:90 ../sys-utils/mount.8.adoc:1688 +#: ../sys-utils/lsns.8.adoc:90 ../sys-utils/mount.8.adoc:1685 #: ../sys-utils/mountpoint.1.adoc:65 ../sys-utils/nsenter.1.adoc:158 #: ../sys-utils/pivot_root.8.adoc:63 ../sys-utils/prlimit.1.adoc:135 #: ../sys-utils/renice.1.adoc:102 ../sys-utils/rfkill.8.adoc:78 #: ../sys-utils/rtcwake.8.adoc:130 ../sys-utils/setarch.8.adoc:95 #: ../sys-utils/setpriv.1.adoc:140 ../sys-utils/setsid.1.adoc:44 #: ../sys-utils/swapon.8.adoc:167 ../sys-utils/switch_root.8.adoc:47 -#: ../sys-utils/umount.8.adoc:173 ../sys-utils/unshare.1.adoc:261 +#: ../sys-utils/umount.8.adoc:175 ../sys-utils/unshare.1.adoc:261 #: ../sys-utils/zramctl.8.adoc:102 ../term-utils/mesg.1.adoc:96 #: ../term-utils/script.1.adoc:161 ../term-utils/scriptlive.1.adoc:75 -#: ../term-utils/scriptreplay.1.adoc:95 ../term-utils/setterm.1.adoc:167 +#: ../term-utils/scriptreplay.1.adoc:95 ../term-utils/setterm.1.adoc:171 #: ../term-utils/wall.1.adoc:81 ../term-utils/write.1.adoc:82 #: ../text-utils/col.1.adoc:127 ../text-utils/colcrt.1.adoc:92 #: ../text-utils/colrm.1.adoc:67 ../text-utils/column.1.adoc:234 -#: ../text-utils/line.1.adoc:22 ../text-utils/more.1.adoc:198 +#: ../text-utils/line.1.adoc:26 ../text-utils/more.1.adoc:198 #: ../text-utils/pg.1.adoc:142 ../text-utils/rev.1.adoc:64 #: ../text-utils/ul.1.adoc:80 #, no-wrap @@ -609,19 +618,14 @@ msgstr "DALŠÍ INFORMACE" #. type: Plain text #: ../disk-utils/addpart.8.adoc:52 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*getmntent*(3),\n" #| "*fs*(5),\n" #| "*findmnt*(8),\n" #| "*mount*(8),\n" #| "*swapon*(8)\n" -msgid "" -"*delpart*(8),\n" -"*fdisk*(8),\n" -"*parted*(8),\n" -"*partprobe*(8),\n" -"*partx*(8)\n" +msgid "*delpart*(8), *fdisk*(8), *parted*(8), *partprobe*(8), *partx*(8)" msgstr "" "*getmntent*(3),\n" "*fs*(5),\n" @@ -646,20 +650,20 @@ msgstr "" #. type: Plain text #: ../disk-utils/blockdev.8.adoc:22 -#, no-wrap -msgid "*blockdev* [*-q*] [*-v*] _command_ [_command_...] _device_ [_device_...]\n" +msgid "" +"*blockdev* [*-q*] [*-v*] _command_ [_command_...] _device_ [_device_...]" msgstr "" #. type: Plain text #: ../disk-utils/blockdev.8.adoc:24 -#, no-wrap -msgid "*blockdev* *--report* [_device_...]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*blockdev* *--report* [_device_...]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/blockdev.8.adoc:26 -#, no-wrap -msgid "*blockdev* *-h*|*-V*\n" +msgid "*blockdev* *-h*|*-V*" msgstr "" #. type: Plain text @@ -681,7 +685,7 @@ msgstr "" #: ../disk-utils/sfdisk.8.adoc:139 ../disk-utils/swaplabel.8.adoc:29 #: ../login-utils/chfn.1.adoc:35 ../login-utils/chsh.1.adoc:31 #: ../login-utils/last.1.adoc:46 ../login-utils/login.1.adoc:39 -#: ../login-utils/lslogins.1.adoc:27 ../login-utils/newgrp.1.adoc:25 +#: ../login-utils/lslogins.1.adoc:27 ../login-utils/newgrp.1.adoc:29 #: ../login-utils/nologin.8.adoc:25 ../login-utils/runuser.1.adoc:33 #: ../login-utils/su.1.adoc:34 ../login-utils/sulogin.8.adoc:50 #: ../login-utils/utmpdump.1.adoc:38 ../login-utils/vipw.8.adoc:57 @@ -694,7 +698,7 @@ msgstr "" #: ../misc-utils/lsblk.8.adoc:33 ../misc-utils/lsclocks.1.adoc:24 #: ../misc-utils/lsfd.1.adoc:39 ../misc-utils/lslocks.8.adoc:32 #: ../misc-utils/mcookie.1.adoc:29 ../misc-utils/namei.1.adoc:39 -#: ../misc-utils/pipesz.1.adoc:35 ../misc-utils/rename.1.adoc:23 +#: ../misc-utils/pipesz.1.adoc:35 ../misc-utils/rename.1.adoc:27 #: ../misc-utils/uuidd.8.adoc:25 ../misc-utils/uuidgen.1.adoc:29 #: ../misc-utils/uuidparse.1.adoc:48 ../misc-utils/waitpid.1.adoc:24 #: ../misc-utils/whereis.1.adoc:71 ../misc-utils/wipefs.8.adoc:38 @@ -1057,7 +1061,7 @@ msgstr "" #. type: Title == #: ../disk-utils/blockdev.8.adoc:117 ../disk-utils/cfdisk.8.adoc:139 #: ../disk-utils/fdformat.8.adoc:70 ../disk-utils/fdisk.8.adoc:213 -#: ../disk-utils/fsck.8.adoc:154 ../disk-utils/fsck.minix.8.adoc:94 +#: ../disk-utils/fsck.8.adoc:159 ../disk-utils/fsck.minix.8.adoc:94 #: ../disk-utils/mkfs.8.adoc:45 ../disk-utils/partx.8.adoc:128 #: ../disk-utils/raw.8.adoc:57 ../disk-utils/sfdisk.8.adoc:449 #: ../disk-utils/swaplabel.8.adoc:44 ../libblkid/libblkid.3.adoc:123 @@ -1068,14 +1072,14 @@ msgstr "" #: ../libuuid/man/uuid_unparse.3.adoc:63 ../login-utils/chfn.1.adoc:76 #: ../login-utils/chsh.1.adoc:59 ../login-utils/last.1.adoc:125 #: ../login-utils/login.1.adoc:165 ../login-utils/lslogins.1.adoc:139 -#: ../login-utils/newgrp.1.adoc:34 ../login-utils/nologin.8.adoc:63 +#: ../login-utils/newgrp.1.adoc:38 ../login-utils/nologin.8.adoc:63 #: ../login-utils/sulogin.8.adoc:70 ../login-utils/utmpdump.1.adoc:71 #: ../misc-utils/blkid.8.adoc:175 ../misc-utils/enosys.1.adoc:52 #: ../misc-utils/exch.1.adoc:37 ../misc-utils/fadvise.1.adoc:53 #: ../misc-utils/fincore.1.adoc:52 ../misc-utils/findfs.8.adoc:63 -#: ../misc-utils/findmnt.8.adoc:241 ../misc-utils/kill.1.adoc:102 +#: ../misc-utils/findmnt.8.adoc:238 ../misc-utils/kill.1.adoc:102 #: ../misc-utils/logger.1.adoc:242 ../misc-utils/lsblk.8.adoc:220 -#: ../misc-utils/lsclocks.1.adoc:100 ../misc-utils/lsfd.1.adoc:701 +#: ../misc-utils/lsclocks.1.adoc:100 ../misc-utils/lsfd.1.adoc:696 #: ../misc-utils/lslocks.8.adoc:123 ../misc-utils/namei.1.adoc:69 #: ../misc-utils/pipesz.1.adoc:95 ../misc-utils/uuidgen.1.adoc:65 #: ../misc-utils/uuidparse.1.adoc:64 ../misc-utils/waitpid.1.adoc:53 @@ -1083,7 +1087,7 @@ msgstr "" #: ../schedutils/ionice.1.adoc:86 ../schedutils/taskset.1.adoc:136 #: ../schedutils/uclampset.1.adoc:126 ../sys-utils/blkdiscard.8.adoc:70 #: ../sys-utils/blkzone.8.adoc:103 ../sys-utils/blkpr.8.adoc:48 -#: ../sys-utils/chcpu.8.adoc:68 ../sys-utils/choom.1.adoc:47 +#: ../sys-utils/chcpu.8.adoc:72 ../sys-utils/choom.1.adoc:47 #: ../sys-utils/ctrlaltdel.8.adoc:43 ../sys-utils/dmesg.1.adoc:192 #: ../sys-utils/eject.1.adoc:113 ../sys-utils/fallocate.1.adoc:81 #: ../sys-utils/flock.1.adoc:122 ../sys-utils/fsfreeze.8.adoc:49 @@ -1093,7 +1097,7 @@ msgstr "" #: ../sys-utils/losetup.8.adoc:157 ../sys-utils/lscpu.1.adoc:103 #: ../sys-utils/lsipc.1.adoc:101 ../sys-utils/lsirq.1.adoc:45 #: ../sys-utils/lsmem.1.adoc:68 ../sys-utils/lsns.8.adoc:86 -#: ../sys-utils/mount.8.adoc:1684 ../sys-utils/mountpoint.1.adoc:61 +#: ../sys-utils/mount.8.adoc:1681 ../sys-utils/mountpoint.1.adoc:61 #: ../sys-utils/nsenter.1.adoc:153 ../sys-utils/prlimit.1.adoc:131 #: ../sys-utils/rfkill.8.adoc:72 ../sys-utils/rtcwake.8.adoc:122 #: ../sys-utils/setarch.8.adoc:89 ../sys-utils/setpriv.1.adoc:136 @@ -1108,8 +1112,8 @@ msgstr "" #. type: Plain text #: ../disk-utils/blockdev.8.adoc:120 -#, no-wrap -msgid "*blockdev* was written by Andries E. Brouwer and rewritten by Karel Zak.\n" +msgid "" +"*blockdev* was written by Andries E. Brouwer and rewritten by Karel Zak." msgstr "" # @@ -1137,14 +1141,16 @@ msgstr "" #. type: Plain text #: ../disk-utils/cfdisk.8.adoc:30 -#, no-wrap -msgid "*cfdisk* [options] [_device_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*cfdisk* [options] [_device_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/cfdisk.8.adoc:34 -#, no-wrap -msgid "*cfdisk* is a curses-based program for partitioning any block device. The default device is _/dev/sda_.\n" +msgid "" +"*cfdisk* is a curses-based program for partitioning any block device. The " +"default device is _/dev/sda_." msgstr "" #. type: Plain text @@ -1225,7 +1231,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/cfdisk.8.adoc:55 ../sys-utils/losetup.8.adoc:92 -#: ../sys-utils/mount.8.adoc:408 ../sys-utils/umount.8.adoc:105 +#: ../sys-utils/mount.8.adoc:404 ../sys-utils/umount.8.adoc:105 #, fuzzy, no-wrap #| msgid "*-h*, *--help*" msgid "*-r*, *--read-only*" @@ -1355,8 +1361,9 @@ msgstr "" #. type: Plain text #: ../disk-utils/cfdisk.8.adoc:86 -#, no-wrap -msgid "*Note that reducing the size of a partition might destroy data on that partition.*\n" +msgid "" +"*Note that reducing the size of a partition might destroy data on that " +"partition.*" msgstr "" #. type: Labeled list @@ -1489,8 +1496,7 @@ msgstr "" #. type: Plain text #: ../disk-utils/cfdisk.8.adoc:118 -#, no-wrap -msgid "*cfdisk* does not support color customization with a color-scheme file.\n" +msgid "*cfdisk* does not support color customization with a color-scheme file." msgstr "" #. type: Title == @@ -1500,13 +1506,13 @@ msgstr "" #: ../disk-utils/sfdisk.8.adoc:407 ../disk-utils/swaplabel.8.adoc:39 #: ../lib/terminal-colors.d.5.adoc:129 ../login-utils/sulogin.8.adoc:66 #: ../login-utils/vipw.8.adoc:61 ../misc-utils/blkid.8.adoc:171 -#: ../misc-utils/findfs.8.adoc:58 ../misc-utils/findmnt.8.adoc:198 +#: ../misc-utils/findfs.8.adoc:58 ../misc-utils/findmnt.8.adoc:195 #: ../misc-utils/getopt.1.adoc:133 ../misc-utils/look.1.adoc:77 #: ../misc-utils/lsblk.8.adoc:197 ../misc-utils/whereis.1.adoc:112 #: ../misc-utils/wipefs.8.adoc:80 ../sys-utils/hwclock.8.adoc:357 -#: ../sys-utils/losetup.8.adoc:131 ../sys-utils/mount.8.adoc:1627 +#: ../sys-utils/losetup.8.adoc:131 ../sys-utils/mount.8.adoc:1624 #: ../sys-utils/mountpoint.1.adoc:52 ../sys-utils/swapon.8.adoc:123 -#: ../sys-utils/umount.8.adoc:150 ../term-utils/script.1.adoc:127 +#: ../sys-utils/umount.8.adoc:152 ../term-utils/script.1.adoc:127 #: ../text-utils/column.1.adoc:177 ../text-utils/more.1.adoc:164 #: ../text-utils/pg.1.adoc:117 ../text-utils/ul.1.adoc:65 #, no-wrap @@ -1540,7 +1546,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/cfdisk.8.adoc:127 ../disk-utils/fdisk.8.adoc:201 #: ../disk-utils/sfdisk.8.adoc:413 ../misc-utils/lsblk.8.adoc:202 -#: ../sys-utils/mount.8.adoc:1638 ../sys-utils/swapon.8.adoc:128 +#: ../sys-utils/mount.8.adoc:1635 ../sys-utils/swapon.8.adoc:128 #, no-wrap msgid "*LIBBLKID_DEBUG*=all" msgstr "" @@ -1555,7 +1561,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/cfdisk.8.adoc:130 ../disk-utils/fdisk.8.adoc:204 -#: ../disk-utils/sfdisk.8.adoc:415 ../misc-utils/findmnt.8.adoc:209 +#: ../disk-utils/sfdisk.8.adoc:415 ../misc-utils/findmnt.8.adoc:206 #: ../misc-utils/lsblk.8.adoc:208 #, no-wrap msgid "*LIBSMARTCOLS_DEBUG*=all" @@ -1569,7 +1575,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/cfdisk.8.adoc:133 ../disk-utils/fdisk.8.adoc:207 -#: ../misc-utils/findmnt.8.adoc:212 ../misc-utils/lsblk.8.adoc:211 +#: ../misc-utils/findmnt.8.adoc:209 ../misc-utils/lsblk.8.adoc:211 #, no-wrap msgid "*LIBSMARTCOLS_DEBUG_PADDING*=on" msgstr "" @@ -1597,10 +1603,10 @@ msgstr "" #. type: Plain text #: ../disk-utils/cfdisk.8.adoc:142 ../disk-utils/sfdisk.8.adoc:452 -#: ../login-utils/nologin.8.adoc:66 ../misc-utils/findmnt.8.adoc:244 +#: ../login-utils/nologin.8.adoc:66 ../misc-utils/findmnt.8.adoc:241 #: ../misc-utils/wipefs.8.adoc:102 ../sys-utils/choom.1.adoc:50 #: ../sys-utils/dmesg.1.adoc:195 ../sys-utils/lsns.8.adoc:89 -#: ../sys-utils/mount.8.adoc:1687 ../sys-utils/mountpoint.1.adoc:64 +#: ../sys-utils/mount.8.adoc:1684 ../sys-utils/mountpoint.1.adoc:64 #: ../term-utils/scriptlive.1.adoc:65 msgid "mailto:kzak@redhat.com[Karel Zak]" msgstr "" @@ -1614,14 +1620,20 @@ msgstr "" #. type: Plain text #: ../disk-utils/cfdisk.8.adoc:152 -#, no-wrap -msgid "" -"*fdisk*(8),\n" -"*parted*(8),\n" -"*partprobe*(8),\n" -"*partx*(8),\n" -"*sfdisk*(8)\n" +#, fuzzy +#| msgid "" +#| "*getmntent*(3),\n" +#| "*fs*(5),\n" +#| "*findmnt*(8),\n" +#| "*mount*(8),\n" +#| "*swapon*(8)\n" +msgid "*fdisk*(8), *parted*(8), *partprobe*(8), *partx*(8), *sfdisk*(8)" msgstr "" +"*getmntent*(3),\n" +"*fs*(5),\n" +"*findmnt*(8),\n" +"*mount*(8),\n" +"*swapon*(8)\n" #. delpart.8 -- man page for delpart #. Copyright 2007 Karel Zak @@ -1640,26 +1652,33 @@ msgstr "" #. type: Plain text #: ../disk-utils/delpart.8.adoc:22 -#, no-wrap -msgid "*delpart* _device partition_\n" +msgid "*delpart* _device partition_" msgstr "" #. type: Plain text #: ../disk-utils/delpart.8.adoc:26 -#, no-wrap -msgid "*delpart* asks the Linux kernel to forget about the specified _partition_ (a number) on the specified _device_. The command is a simple wrapper around the \"del partition\" ioctl.\n" +msgid "" +"*delpart* asks the Linux kernel to forget about the specified _partition_ (a " +"number) on the specified _device_. The command is a simple wrapper around " +"the \"del partition\" ioctl." msgstr "" #. type: Plain text #: ../disk-utils/delpart.8.adoc:40 -#, no-wrap -msgid "" -"*addpart*(8),\n" -"*fdisk*(8),\n" -"*parted*(8),\n" -"*partprobe*(8),\n" -"*partx*(8)\n" +#, fuzzy +#| msgid "" +#| "*getmntent*(3),\n" +#| "*fs*(5),\n" +#| "*findmnt*(8),\n" +#| "*mount*(8),\n" +#| "*swapon*(8)\n" +msgid "*addpart*(8), *fdisk*(8), *parted*(8), *partprobe*(8), *partx*(8)" msgstr "" +"*getmntent*(3),\n" +"*fs*(5),\n" +"*findmnt*(8),\n" +"*mount*(8),\n" +"*swapon*(8)\n" #. Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu) #. May be distributed under the GNU General Public License @@ -1676,14 +1695,17 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdformat.8.adoc:20 -#, no-wrap -msgid "*fdformat* [options] _device_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*fdformat* [options] _device_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/fdformat.8.adoc:24 -#, no-wrap -msgid "*fdformat* does a low-level format on a floppy disk. _device_ is usually one of the following (for floppy devices the major = 2, and the minor is shown for informational purposes only):\n" +msgid "" +"*fdformat* does a low-level format on a floppy disk. _device_ is usually one " +"of the following (for floppy devices the major = 2, and the minor is shown " +"for informational purposes only):" msgstr "" #. type: delimited block . @@ -1774,26 +1796,27 @@ msgid "Skip the verification that is normally performed after the formatting." msgstr "" #. type: Title == -#: ../disk-utils/fdformat.8.adoc:66 ../disk-utils/mkswap.8.adoc:103 -#: ../disk-utils/raw.8.adoc:47 ../disk-utils/sfdisk.8.adoc:420 -#: ../login-utils/last.1.adoc:117 ../login-utils/lslogins.1.adoc:118 -#: ../login-utils/nologin.8.adoc:53 ../login-utils/su.1.adoc:137 -#: ../login-utils/utmpdump.1.adoc:51 ../misc-utils/cal.1.adoc:144 -#: ../misc-utils/kill.1.adoc:96 ../misc-utils/lsblk.8.adoc:214 -#: ../misc-utils/lslocks.8.adoc:112 ../misc-utils/pipesz.1.adoc:83 -#: ../schedutils/chrt.1.adoc:137 ../schedutils/ionice.1.adoc:68 -#: ../schedutils/uclampset.1.adoc:114 ../sys-utils/choom.1.adoc:33 -#: ../sys-utils/eject.1.adoc:97 ../sys-utils/flock.1.adoc:94 -#: ../sys-utils/fsfreeze.8.adoc:45 ../sys-utils/fstab.5.adoc:129 -#: ../sys-utils/hwclock.8.adoc:176 ../sys-utils/ipcrm.1.adoc:63 -#: ../sys-utils/ipcs.1.adoc:80 ../sys-utils/losetup.8.adoc:127 -#: ../sys-utils/mountpoint.1.adoc:57 ../sys-utils/nsenter.1.adoc:149 -#: ../sys-utils/prlimit.1.adoc:110 ../sys-utils/renice.1.adoc:84 -#: ../sys-utils/rtcwake.8.adoc:110 ../sys-utils/setpriv.1.adoc:120 -#: ../sys-utils/swapon.8.adoc:139 ../sys-utils/switch_root.8.adoc:33 -#: ../sys-utils/tunelp.8.adoc:64 ../sys-utils/unshare.1.adoc:146 -#: ../term-utils/script.1.adoc:134 ../term-utils/wall.1.adoc:73 -#: ../text-utils/col.1.adoc:90 ../text-utils/pg.1.adoc:136 +#: ../disk-utils/fdformat.8.adoc:66 ../disk-utils/fsck.8.adoc:154 +#: ../disk-utils/mkswap.8.adoc:103 ../disk-utils/raw.8.adoc:47 +#: ../disk-utils/sfdisk.8.adoc:420 ../login-utils/last.1.adoc:117 +#: ../login-utils/lslogins.1.adoc:118 ../login-utils/nologin.8.adoc:53 +#: ../login-utils/su.1.adoc:144 ../login-utils/utmpdump.1.adoc:51 +#: ../misc-utils/cal.1.adoc:144 ../misc-utils/kill.1.adoc:96 +#: ../misc-utils/lsblk.8.adoc:214 ../misc-utils/lslocks.8.adoc:112 +#: ../misc-utils/pipesz.1.adoc:83 ../schedutils/chrt.1.adoc:137 +#: ../schedutils/ionice.1.adoc:68 ../schedutils/uclampset.1.adoc:114 +#: ../sys-utils/choom.1.adoc:33 ../sys-utils/eject.1.adoc:97 +#: ../sys-utils/flock.1.adoc:94 ../sys-utils/fsfreeze.8.adoc:45 +#: ../sys-utils/fstab.5.adoc:131 ../sys-utils/hwclock.8.adoc:176 +#: ../sys-utils/ipcrm.1.adoc:63 ../sys-utils/ipcs.1.adoc:80 +#: ../sys-utils/losetup.8.adoc:127 ../sys-utils/mountpoint.1.adoc:57 +#: ../sys-utils/nsenter.1.adoc:149 ../sys-utils/prlimit.1.adoc:110 +#: ../sys-utils/renice.1.adoc:84 ../sys-utils/rtcwake.8.adoc:110 +#: ../sys-utils/setpriv.1.adoc:120 ../sys-utils/swapon.8.adoc:139 +#: ../sys-utils/switch_root.8.adoc:33 ../sys-utils/tunelp.8.adoc:64 +#: ../sys-utils/unshare.1.adoc:146 ../term-utils/script.1.adoc:134 +#: ../term-utils/wall.1.adoc:73 ../text-utils/col.1.adoc:90 +#: ../text-utils/pg.1.adoc:136 #, no-wrap msgid "NOTES" msgstr "POZNÁMKY" @@ -1812,13 +1835,7 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdformat.8.adoc:81 -#, no-wrap -msgid "" -"*fd*(4),\n" -"*emkfs*(8),\n" -"*mkfs*(8),\n" -"*setfdprm*(8),\n" -"*ufiformat*(8)\n" +msgid "*fd*(4), *emkfs*(8), *mkfs*(8), *setfdprm*(8), *ufiformat*(8)" msgstr "" #. Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu) @@ -1839,20 +1856,23 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:24 -#, no-wrap -msgid "*fdisk* [options] _device_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*fdisk* [options] _device_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:26 -#, no-wrap -msgid "*fdisk* *-l* [_device_...]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*fdisk* *-l* [_device_...]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:30 -#, no-wrap -msgid "*fdisk* is a dialog-driven program for creation and manipulation of partition tables. It understands GPT, MBR, Sun, SGI and BSD partition tables.\n" +msgid "" +"*fdisk* is a dialog-driven program for creation and manipulation of " +"partition tables. It understands GPT, MBR, Sun, SGI and BSD partition tables." msgstr "" #. type: Plain text @@ -1903,10 +1923,11 @@ msgstr "" #: ../disk-utils/fdisk.8.adoc:44 msgid "" "Specify the sector size of the disk. Valid values are 512, 1024, 2048, and " -"4096. (Recent kernels know the sector size. Use this option only on old " -"kernels or to override the kernel's ideas.) Since util-linux-2.17, *fdisk* " -"differentiates between logical and physical sector size. This option changes " -"both sector sizes to _sectorsize_." +"4096. The kernel is aware of the sector size for regular block devices. Use " +"this option only on very old kernels, when working with disk images, or to " +"override the kernel's default sector size. Since util-linux-2.17, *fdisk* " +"distinguishes between logical and physical sector size. This option changes " +"both sector sizes to the specified _sectorsize_." msgstr "" #. type: Labeled list @@ -1960,7 +1981,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/fdisk.8.adoc:56 ../disk-utils/fsck.minix.8.adoc:47 #: ../disk-utils/partx.8.adoc:54 ../misc-utils/enosys.1.adoc:33 -#: ../misc-utils/findmnt.8.adoc:84 ../misc-utils/lsblk.8.adoc:73 +#: ../misc-utils/findmnt.8.adoc:81 ../misc-utils/lsblk.8.adoc:73 #: ../sys-utils/losetup.8.adoc:101 ../sys-utils/lsipc.1.adoc:53 #: ../sys-utils/lsns.8.adoc:37 #, fuzzy, no-wrap @@ -2012,7 +2033,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/fdisk.8.adoc:70 ../disk-utils/partx.8.adoc:69 #: ../disk-utils/sfdisk.8.adoc:195 ../login-utils/lslogins.1.adoc:69 -#: ../misc-utils/fincore.1.adoc:37 ../misc-utils/findmnt.8.adoc:103 +#: ../misc-utils/fincore.1.adoc:37 ../misc-utils/findmnt.8.adoc:100 #: ../misc-utils/lsblk.8.adoc:91 ../misc-utils/lsclocks.1.adoc:32 #: ../misc-utils/lsfd.1.adoc:50 ../misc-utils/lslocks.8.adoc:49 #: ../sys-utils/irqtop.1.adoc:25 ../sys-utils/lsipc.1.adoc:65 @@ -2226,10 +2247,10 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:120 msgid "" -"In the case the size is specified in bytes than the number may be followed " -"by the multiplicative suffixes KiB=1024, MiB=1024*1024, and so on for GiB, " -"TiB, PiB, EiB, ZiB and YiB. The \"iB\" is optional, e.g., \"K\" has the same " -"meaning as \"KiB\"." +"In the case the size is specified in bytes, then the number may be followed " +"by the multiplicative suffixes KiB (1024 bytes), MiB (1024*1024 bytes), and " +"so on for GiB, TiB, PiB, EiB, ZiB and YiB. The \"iB\" is optional, e.g., " +"\"K\" has the same meaning as \"KiB\"." msgstr "" #. TRANSLATORS: Keep {plus} untranslated. @@ -2243,9 +2264,9 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:126 msgid "" -"For backward compatibility *fdisk* also accepts the suffixes KB=1000, " -"MB=1000*1000, and so on for GB, TB, PB, EB, ZB and YB. These 10^N suffixes " -"are deprecated." +"For backward compatibility *fdisk* also accepts the suffixes KB (1000 " +"bytes), MB (1000*1000 bytes), and so on for GB, TB, PB, EB, ZB and YB. These " +"10^N suffixes are deprecated." msgstr "" #. type: Title == @@ -2257,8 +2278,10 @@ msgstr "KONFIGURAČNÍ SOUBORY" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:130 -#, no-wrap -msgid "*fdisk* allows reading (by 'I' command) *sfdisk*(8) compatible script files. The script is applied to in-memory partition table, and then it is possible to modify the partition table before you write it to the device.\n" +msgid "" +"*fdisk* allows reading (by 'I' command) *sfdisk*(8) compatible script files. " +"The script is applied to in-memory partition table, and then it is possible " +"to modify the partition table before you write it to the device." msgstr "" #. type: Plain text @@ -2347,8 +2370,9 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:151 -#, no-wrap -msgid "*Please, read the DOS-mode section if you want DOS-compatible partitions.* *fdisk* does not care about cylinder boundaries by default.\n" +msgid "" +"*Please, read the DOS-mode section if you want DOS-compatible partitions.* " +"*fdisk* does not care about cylinder boundaries by default." msgstr "" #. type: Labeled list @@ -2402,8 +2426,11 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:163 -#, no-wrap -msgid "*Note that all this is deprecated. You don't have to care about things like* *geometry and cylinders on modern operating systems. If you really want* *DOS-compatible partitioning then you have to enable DOS mode and cylinder* *units by using the '-c=dos -u=cylinders' fdisk command-line options.*\n" +msgid "" +"*Note that all this is deprecated. You don't have to care about things like* " +"*geometry and cylinders on modern operating systems. If you really want* " +"*DOS-compatible partitioning then you have to enable DOS mode and cylinder* " +"*units by using the '-c=dos -u=cylinders' fdisk command-line options.*" msgstr "" #. type: Plain text @@ -2432,8 +2459,12 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:169 -#, no-wrap -msgid "*fdisk* usually obtains the disk geometry automatically. This is not necessarily the physical disk geometry (indeed, modern disks do not really have anything like a physical geometry, certainly not something that can be described in the simplistic Cylinders/Heads/Sectors form), but it is the disk geometry that MS-DOS uses for the partition table.\n" +msgid "" +"*fdisk* usually obtains the disk geometry automatically. This is not " +"necessarily the physical disk geometry (indeed, modern disks do not really " +"have anything like a physical geometry, certainly not something that can be " +"described in the simplistic Cylinders/Heads/Sectors form), but it is the " +"disk geometry that MS-DOS uses for the partition table." msgstr "" #. type: Plain text @@ -2538,7 +2569,7 @@ msgid "enables fdisk debug output." msgstr "" #. type: Plain text -#: ../disk-utils/fdisk.8.adoc:209 ../misc-utils/findmnt.8.adoc:214 +#: ../disk-utils/fdisk.8.adoc:209 ../misc-utils/findmnt.8.adoc:211 #: ../misc-utils/lsblk.8.adoc:213 msgid "use visible padding characters." msgstr "" @@ -2557,16 +2588,19 @@ msgstr "" #. type: Plain text #: ../disk-utils/fdisk.8.adoc:226 -#, no-wrap -msgid "" -"*cfdisk*(8),\n" -"*mkfs*(8),\n" -"*partx*(8),\n" -"*sfdisk*(8)\n" +#, fuzzy +#| msgid "" +#| "*mesg*(1),\n" +#| "*talk*(1),\n" +#| "*who*(1)\n" +msgid "*cfdisk*(8), *mkfs*(8), *partx*(8), *sfdisk*(8)" msgstr "" +"*mesg*(1),\n" +"*talk*(1),\n" +"*who*(1)\n" #. Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../disk-utils/fsck.8.adoc:6 #, no-wrap @@ -2580,14 +2614,21 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.8.adoc:20 -#, no-wrap -msgid "*fsck* [*-lsAVRTMNP*] [*-r* [_fd_]] [*-C* [_fd_]] [*-t* _fstype_] [_filesystem_...] [*--*] [_fs-specific-options_]\n" +msgid "" +"*fsck* [*-lsAVRTMNP*] [*-r* [_fd_]] [*-C* [_fd_]] [*-t* _fstype_] " +"[_filesystem_...] [*--*] [_fs-specific-options_]" msgstr "" #. type: Plain text #: ../disk-utils/fsck.8.adoc:24 -#, no-wrap -msgid "*fsck* is used to check and optionally repair one or more Linux filesystems. _filesystem_ can be a device name (e.g., _/dev/hdc1_, _/dev/sdb2_), a mount point (e.g., _/_, _/usr_, _/home_), or a filesystem label or UUID specifier (e.g., UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd or LABEL=root). Normally, the *fsck* program will try to handle filesystems on different physical disk drives in parallel to reduce the total amount of time needed to check all of them.\n" +msgid "" +"*fsck* is used to check and optionally repair one or more Linux filesystems. " +"_filesystem_ can be a device name (e.g., _/dev/hdc1_, _/dev/sdb2_), a mount " +"point (e.g., _/_, _/usr_, _/home_), or a filesystem label or UUID specifier " +"(e.g., UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd or LABEL=root). Normally, " +"the *fsck* program will try to handle filesystems on different physical disk " +"drives in parallel to reduce the total amount of time needed to check all of " +"them." msgstr "" #. type: Plain text @@ -2610,10 +2651,10 @@ msgstr "" #: ../disk-utils/mkfs.cramfs.8.adoc:77 ../misc-utils/exch.1.adoc:32 #: ../misc-utils/fadvise.1.adoc:48 ../misc-utils/findfs.8.adoc:51 #: ../misc-utils/kill.1.adoc:43 ../misc-utils/kill.1.adoc:89 -#: ../misc-utils/rename.1.adoc:68 ../misc-utils/waitpid.1.adoc:44 -#: ../sys-utils/blkdiscard.8.adoc:61 ../sys-utils/chcpu.8.adoc:59 +#: ../misc-utils/rename.1.adoc:72 ../misc-utils/waitpid.1.adoc:44 +#: ../sys-utils/blkdiscard.8.adoc:61 ../sys-utils/chcpu.8.adoc:63 #: ../sys-utils/chmem.8.adoc:58 ../sys-utils/lsns.8.adoc:79 -#: ../sys-utils/mount.8.adoc:1591 ../sys-utils/mountpoint.1.adoc:43 +#: ../sys-utils/mount.8.adoc:1588 ../sys-utils/mountpoint.1.adoc:43 #: ../sys-utils/swapon.8.adoc:98 ../term-utils/mesg.1.adoc:80 #, no-wrap msgid "*0*" @@ -2629,10 +2670,10 @@ msgstr "" #: ../disk-utils/fsck.8.adoc:31 ../disk-utils/isosize.8.adoc:37 #: ../misc-utils/enosys.1.adoc:46 ../misc-utils/exch.1.adoc:34 #: ../misc-utils/fadvise.1.adoc:50 ../misc-utils/findfs.8.adoc:53 -#: ../misc-utils/kill.1.adoc:91 ../misc-utils/rename.1.adoc:71 +#: ../misc-utils/kill.1.adoc:91 ../misc-utils/rename.1.adoc:75 #: ../misc-utils/waitpid.1.adoc:46 ../sys-utils/blkdiscard.8.adoc:64 -#: ../sys-utils/chcpu.8.adoc:62 ../sys-utils/chmem.8.adoc:61 -#: ../sys-utils/lsns.8.adoc:81 ../sys-utils/mount.8.adoc:1594 +#: ../sys-utils/chcpu.8.adoc:66 ../sys-utils/chmem.8.adoc:61 +#: ../sys-utils/lsns.8.adoc:81 ../sys-utils/mount.8.adoc:1591 #: ../sys-utils/mountpoint.1.adoc:46 ../term-utils/mesg.1.adoc:82 #, no-wrap msgid "*1*" @@ -2645,10 +2686,10 @@ msgstr "" #. type: Labeled list #: ../disk-utils/fsck.8.adoc:33 ../misc-utils/enosys.1.adoc:49 -#: ../misc-utils/findfs.8.adoc:55 ../misc-utils/rename.1.adoc:74 +#: ../misc-utils/findfs.8.adoc:55 ../misc-utils/rename.1.adoc:78 #: ../misc-utils/waitpid.1.adoc:48 ../sys-utils/blkdiscard.8.adoc:67 -#: ../sys-utils/lsns.8.adoc:83 ../sys-utils/mount.8.adoc:893 -#: ../sys-utils/mount.8.adoc:1597 ../sys-utils/swapon.8.adoc:101 +#: ../sys-utils/lsns.8.adoc:83 ../sys-utils/mount.8.adoc:890 +#: ../sys-utils/mount.8.adoc:1594 ../sys-utils/swapon.8.adoc:101 #, no-wrap msgid "*2*" msgstr "" @@ -2660,8 +2701,8 @@ msgstr "" #. type: Labeled list #: ../disk-utils/fsck.8.adoc:35 ../disk-utils/fsck.cramfs.8.adoc:44 -#: ../disk-utils/fsck.minix.8.adoc:84 ../misc-utils/rename.1.adoc:77 -#: ../sys-utils/mount.8.adoc:1600 ../sys-utils/swapon.8.adoc:104 +#: ../disk-utils/fsck.minix.8.adoc:84 ../misc-utils/rename.1.adoc:81 +#: ../sys-utils/mount.8.adoc:1597 ../sys-utils/swapon.8.adoc:104 #, no-wrap msgid "*4*" msgstr "" @@ -2674,7 +2715,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/fsck.8.adoc:37 ../disk-utils/fsck.cramfs.8.adoc:46 #: ../disk-utils/fsck.minix.8.adoc:88 ../disk-utils/mkfs.cramfs.8.adoc:79 -#: ../sys-utils/mount.8.adoc:1603 ../sys-utils/swapon.8.adoc:107 +#: ../sys-utils/mount.8.adoc:1600 ../sys-utils/swapon.8.adoc:107 #, no-wrap msgid "*8*" msgstr "" @@ -2687,7 +2728,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/fsck.8.adoc:39 ../disk-utils/fsck.cramfs.8.adoc:48 -#: ../disk-utils/fsck.minix.8.adoc:90 ../sys-utils/mount.8.adoc:1606 +#: ../disk-utils/fsck.minix.8.adoc:90 ../sys-utils/mount.8.adoc:1603 #: ../sys-utils/swapon.8.adoc:110 #, no-wrap msgid "*16*" @@ -2701,7 +2742,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/fsck.8.adoc:41 ../disk-utils/isosize.8.adoc:39 -#: ../sys-utils/mount.8.adoc:1609 ../sys-utils/mountpoint.1.adoc:49 +#: ../sys-utils/mount.8.adoc:1606 ../sys-utils/mountpoint.1.adoc:49 #: ../sys-utils/swapon.8.adoc:113 #, no-wrap msgid "*32*" @@ -2781,8 +2822,8 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.8.adoc:61 -#, no-wrap -msgid "*/dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186*\n" +msgid "" +"*/dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186*" msgstr "" #. type: Plain text @@ -2795,13 +2836,12 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.8.adoc:65 -#, no-wrap -msgid "*/dev/sda1 0 92828 4.002804 2.677592 0.86186*\n" +msgid "*/dev/sda1 0 92828 4.002804 2.677592 0.86186*" msgstr "" #. type: Labeled list #: ../disk-utils/fsck.8.adoc:66 ../disk-utils/mkfs.cramfs.8.adoc:59 -#: ../misc-utils/whereis.1.adoc:79 ../sys-utils/mount.8.adoc:413 +#: ../misc-utils/whereis.1.adoc:79 ../sys-utils/mount.8.adoc:409 #: ../text-utils/pg.1.adoc:59 #, no-wrap msgid "*-s*" @@ -2905,8 +2945,10 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.8.adoc:86 -#, no-wrap -msgid "*fsck* does not check stacked devices (RAIDs, dm-crypt, ...) in parallel with any other device. See below for *FSCK_FORCE_ALL_PARALLEL* setting. The _/sys_ filesystem is used to determine dependencies between devices.\n" +msgid "" +"*fsck* does not check stacked devices (RAIDs, dm-crypt, ...) in parallel " +"with any other device. See below for *FSCK_FORCE_ALL_PARALLEL* setting. The " +"_/sys_ filesystem is used to determine dependencies between devices." msgstr "" #. type: Plain text @@ -2924,8 +2966,13 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.8.adoc:90 -#, no-wrap -msgid "*fsck* normally does not check whether the device actually exists before calling a filesystem specific checker. Therefore non-existing devices may cause the system to enter filesystem repair mode during boot if the filesystem specific checker returns a fatal error. The _/etc/fstab_ mount option *nofail* may be used to have *fsck* skip non-existing devices. *fsck* also skips non-existing devices that have the special filesystem type *auto*.\n" +msgid "" +"*fsck* normally does not check whether the device actually exists before " +"calling a filesystem specific checker. Therefore non-existing devices may " +"cause the system to enter filesystem repair mode during boot if the " +"filesystem specific checker returns a fatal error. The _/etc/fstab_ mount " +"option *nofail* may be used to have *fsck* skip non-existing devices. *fsck* " +"also skips non-existing devices that have the special filesystem type *auto*." msgstr "" #. type: Labeled list @@ -3045,8 +3092,9 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.8.adoc:121 -#, no-wrap -msgid "*Options which are not understood by fsck are passed to the filesystem-specific checker!*\n" +msgid "" +"*Options which are not understood by fsck are passed to the filesystem-" +"specific checker!*" msgstr "" #. type: Plain text @@ -3162,15 +3210,15 @@ msgstr "" #. type: Title == #: ../disk-utils/fsck.8.adoc:150 ../lib/terminal-colors.d.5.adoc:134 #: ../login-utils/last.1.adoc:112 ../login-utils/login.1.adoc:137 -#: ../login-utils/newgrp.1.adoc:29 ../login-utils/runuser.1.adoc:115 -#: ../login-utils/su.1.adoc:123 ../misc-utils/look.1.adoc:82 +#: ../login-utils/newgrp.1.adoc:33 ../login-utils/runuser.1.adoc:118 +#: ../login-utils/su.1.adoc:130 ../misc-utils/look.1.adoc:82 #: ../misc-utils/mcookie.1.adoc:44 ../sys-utils/adjtime_config.5.adoc:50 -#: ../sys-utils/ctrlaltdel.8.adoc:39 ../sys-utils/fstab.5.adoc:124 +#: ../sys-utils/ctrlaltdel.8.adoc:39 ../sys-utils/fstab.5.adoc:126 #: ../sys-utils/hwclock.8.adoc:365 ../sys-utils/losetup.8.adoc:136 -#: ../sys-utils/mount.8.adoc:1644 ../sys-utils/readprofile.8.adoc:56 +#: ../sys-utils/mount.8.adoc:1641 ../sys-utils/readprofile.8.adoc:56 #: ../sys-utils/renice.1.adoc:79 ../sys-utils/rtcwake.8.adoc:114 #: ../sys-utils/swapon.8.adoc:131 ../sys-utils/tunelp.8.adoc:59 -#: ../sys-utils/umount.8.adoc:158 ../sys-utils/zramctl.8.adoc:78 +#: ../sys-utils/umount.8.adoc:160 ../sys-utils/zramctl.8.adoc:78 #: ../term-utils/agetty.8.adoc:305 ../term-utils/mesg.1.adoc:87 #, no-wrap msgid "FILES" @@ -3178,32 +3226,32 @@ msgstr "SOUBORY" #. type: Labeled list #: ../disk-utils/fsck.8.adoc:153 ../sys-utils/fstab.5.adoc:50 -#: ../sys-utils/mount.8.adoc:1648 ../sys-utils/swapon.8.adoc:136 -#: ../sys-utils/umount.8.adoc:163 +#: ../sys-utils/mount.8.adoc:1645 ../sys-utils/swapon.8.adoc:136 +#: ../sys-utils/umount.8.adoc:165 #, no-wrap msgid "_/etc/fstab_" msgstr "_/etc/fstab_" #. type: Plain text #: ../disk-utils/fsck.8.adoc:158 -msgid "mailto:tytso@mit.edu>[Theodore Ts'o], mailto:kzak@redhat.com[Karel Zak]" +msgid "" +"During boot, *systemd* does not invoke *fsck -A*. Instead, it schedules the " +"activation of mounts individually, taking into account dependencies on " +"backing devices, networking, and other factors. Consequently, *fsck* is " +"called individually for each device." msgstr "" #. type: Plain text -#: ../disk-utils/fsck.8.adoc:172 -#, no-wrap +#: ../disk-utils/fsck.8.adoc:163 +msgid "mailto:tytso@mit.edu[Theodore Ts'o], mailto:kzak@redhat.com[Karel Zak]" +msgstr "" + +#. type: Plain text +#: ../disk-utils/fsck.8.adoc:177 msgid "" -"*fstab*(5),\n" -"*mkfs*(8),\n" -"*fsck.ext2*(8) or *fsck.ext3*(8) or *e2fsck*(8),\n" -"*fsck.cramfs*(8),\n" -"*fsck.jfs*(8),\n" -"*fsck.nfs*(8),\n" -"*fsck.minix*(8),\n" -"*fsck.msdos*(8),\n" -"*fsck.vfat*(8),\n" -"*fsck.xfs*(8),\n" -"*reiserfsck*(8)\n" +"*fstab*(5), *mkfs*(8), *fsck.ext2*(8) or *fsck.ext3*(8) or *e2fsck*(8), " +"*fsck.cramfs*(8), *fsck.jfs*(8), *fsck.nfs*(8), *fsck.minix*(8), *fsck." +"msdos*(8), *fsck.vfat*(8), *fsck.xfs*(8), *reiserfsck*(8)" msgstr "" #. type: Title = @@ -3219,27 +3267,27 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.cramfs.8.adoc:16 -#, no-wrap -msgid "*fsck.cramfs* [options] _file_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*fsck.cramfs* [options] _file_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/fsck.cramfs.8.adoc:20 -#, no-wrap -msgid "*fsck.cramfs* is used to check the cramfs file system.\n" +msgid "*fsck.cramfs* is used to check the cramfs file system." msgstr "" #. type: Labeled list #: ../disk-utils/fsck.cramfs.8.adoc:23 ../disk-utils/fsck.minix.8.adoc:56 #: ../disk-utils/mkfs.bfs.8.adoc:41 ../disk-utils/partx.8.adoc:96 #: ../misc-utils/hardlink.1.adoc:102 ../misc-utils/mcookie.1.adoc:39 -#: ../misc-utils/pipesz.1.adoc:64 ../misc-utils/rename.1.adoc:28 +#: ../misc-utils/pipesz.1.adoc:64 ../misc-utils/rename.1.adoc:32 #: ../misc-utils/waitpid.1.adoc:26 ../schedutils/chrt.1.adoc:101 #: ../schedutils/uclampset.1.adoc:87 ../sys-utils/blkdiscard.8.adoc:52 #: ../sys-utils/blkzone.8.adoc:98 ../sys-utils/chmem.8.adoc:49 #: ../sys-utils/eject.1.adoc:84 ../sys-utils/fallocate.1.adoc:64 #: ../sys-utils/hwclock.8.adoc:173 ../sys-utils/losetup.8.adoc:98 -#: ../sys-utils/mount.8.adoc:457 ../sys-utils/readprofile.8.adoc:51 +#: ../sys-utils/mount.8.adoc:453 ../sys-utils/readprofile.8.adoc:51 #: ../sys-utils/rtcwake.8.adoc:105 ../sys-utils/setarch.8.adoc:42 #: ../sys-utils/swapon.8.adoc:89 ../sys-utils/umount.8.adoc:111 #: ../term-utils/mesg.1.adoc:71 @@ -3302,19 +3350,19 @@ msgstr "" #: ../disk-utils/isosize.8.adoc:33 ../disk-utils/mkfs.bfs.8.adoc:53 #: ../disk-utils/mkfs.cramfs.8.adoc:75 ../disk-utils/mkfs.minix.8.adoc:75 #: ../login-utils/chfn.1.adoc:72 ../login-utils/chsh.1.adoc:55 -#: ../login-utils/lslogins.1.adoc:107 ../login-utils/runuser.1.adoc:101 -#: ../login-utils/su.1.adoc:110 ../misc-utils/blkid.8.adoc:148 +#: ../login-utils/lslogins.1.adoc:107 ../login-utils/runuser.1.adoc:104 +#: ../login-utils/su.1.adoc:117 ../misc-utils/blkid.8.adoc:148 #: ../misc-utils/enosys.1.adoc:41 ../misc-utils/exch.1.adoc:28 #: ../misc-utils/fadvise.1.adoc:44 ../misc-utils/findfs.8.adoc:49 -#: ../misc-utils/findmnt.8.adoc:192 ../misc-utils/kill.1.adoc:85 +#: ../misc-utils/findmnt.8.adoc:189 ../misc-utils/kill.1.adoc:85 #: ../misc-utils/logger.1.adoc:186 ../misc-utils/lsblk.8.adoc:183 -#: ../misc-utils/rename.1.adoc:66 ../misc-utils/waitpid.1.adoc:40 -#: ../sys-utils/blkdiscard.8.adoc:57 ../sys-utils/chcpu.8.adoc:55 +#: ../misc-utils/rename.1.adoc:70 ../misc-utils/waitpid.1.adoc:40 +#: ../sys-utils/blkdiscard.8.adoc:57 ../sys-utils/chcpu.8.adoc:59 #: ../sys-utils/chmem.8.adoc:54 ../sys-utils/dmesg.1.adoc:188 #: ../sys-utils/eject.1.adoc:93 ../sys-utils/flock.1.adoc:88 #: ../sys-utils/fstrim.8.adoc:74 ../sys-utils/hwclock.8.adoc:347 #: ../sys-utils/losetup.8.adoc:123 ../sys-utils/lsipc.1.adoc:86 -#: ../sys-utils/lsns.8.adoc:75 ../sys-utils/mount.8.adoc:1587 +#: ../sys-utils/lsns.8.adoc:75 ../sys-utils/mount.8.adoc:1584 #: ../sys-utils/mountpoint.1.adoc:39 ../sys-utils/swapon.8.adoc:94 #: ../sys-utils/switch_root.8.adoc:29 ../sys-utils/zramctl.8.adoc:74 #: ../term-utils/mesg.1.adoc:76 ../text-utils/hexdump.1.adoc:224 @@ -3328,8 +3376,8 @@ msgstr "NÁVRATOVÁ HODNOTA" #: ../misc-utils/fadvise.1.adoc:50 ../misc-utils/findfs.8.adoc:53 #: ../misc-utils/kill.1.adoc:91 ../misc-utils/lsblk.8.adoc:187 #: ../misc-utils/waitpid.1.adoc:46 ../sys-utils/blkdiscard.8.adoc:63 -#: ../sys-utils/chcpu.8.adoc:61 ../sys-utils/chmem.8.adoc:60 -#: ../sys-utils/fstrim.8.adoc:78 ../sys-utils/mount.8.adoc:1593 +#: ../sys-utils/chcpu.8.adoc:65 ../sys-utils/chmem.8.adoc:60 +#: ../sys-utils/fstrim.8.adoc:78 ../sys-utils/mount.8.adoc:1590 #: ../sys-utils/swapon.8.adoc:100 msgid "success" msgstr "" @@ -3351,10 +3399,7 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.cramfs.8.adoc:55 -#, no-wrap -msgid "" -"*mount*(8),\n" -"*mkfs.cramfs*(8)\n" +msgid "*mount*(8), *mkfs.cramfs*(8)" msgstr "" #. Copyright 1992, 1993, 1994 Rickard E. Faith (faith@cs.unc.edu) @@ -3372,14 +3417,15 @@ msgstr "" #. type: Plain text #: ../disk-utils/fsck.minix.8.adoc:20 -#, no-wrap -msgid "*fsck.minix* [options] _device_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*fsck.minix* [options] _device_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/fsck.minix.8.adoc:24 -#, no-wrap -msgid "*fsck.minix* performs a consistency check for the Linux MINIX filesystem.\n" +msgid "" +"*fsck.minix* performs a consistency check for the Linux MINIX filesystem." msgstr "" #. type: Plain text @@ -3415,15 +3461,20 @@ msgstr "" #. type: Title == #: ../disk-utils/fsck.minix.8.adoc:41 ../disk-utils/mkswap.8.adoc:33 -#: ../misc-utils/rename.1.adoc:48 +#: ../misc-utils/rename.1.adoc:52 ../term-utils/setterm.1.adoc:159 #, no-wrap msgid "WARNING" msgstr "" #. type: delimited block _ #: ../disk-utils/fsck.minix.8.adoc:44 -#, no-wrap -msgid "*fsck.minix* should *not* be used on a mounted filesystem. Using *fsck.minix* on a mounted filesystem is very dangerous, due to the possibility that deleted files are still in use, and can seriously damage a perfectly good filesystem! If you absolutely have to run *fsck.minix* on a mounted filesystem, such as the root filesystem, make sure nothing is writing to the disk, and that no files are \"zombies\" waiting for deletion.\n" +msgid "" +"*fsck.minix* should *not* be used on a mounted filesystem. Using *fsck." +"minix* on a mounted filesystem is very dangerous, due to the possibility " +"that deleted files are still in use, and can seriously damage a perfectly " +"good filesystem! If you absolutely have to run *fsck.minix* on a mounted " +"filesystem, such as the root filesystem, make sure nothing is writing to the " +"disk, and that no files are \"zombies\" waiting for deletion." msgstr "" #. type: delimited block _ @@ -3563,14 +3614,9 @@ msgstr "" #. type: delimited block _ #: ../disk-utils/fsck.minix.8.adoc:106 -#, no-wrap msgid "" -"*fsck*(8),\n" -"*fsck.ext2*(8),\n" -"*mkfs*(8),\n" -"*mkfs.ext2*(8),\n" -"*mkfs.minix*(8),\n" -"*reboot*(8)\n" +"*fsck*(8), *fsck.ext2*(8), *mkfs*(8), *mkfs.ext2*(8), *mkfs.minix*(8), " +"*reboot*(8)" msgstr "" #. type: Title = @@ -3586,9 +3632,10 @@ msgstr "" #. type: Plain text #: ../disk-utils/isosize.8.adoc:16 -#, no-wrap -msgid "*isosize* [options] _iso9660_image_file_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*isosize* [options] _iso9660_image_file_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/isosize.8.adoc:20 @@ -3650,8 +3697,8 @@ msgstr "" #. type: Labeled list #: ../disk-utils/isosize.8.adoc:41 ../misc-utils/kill.1.adoc:93 -#: ../misc-utils/rename.1.adoc:80 ../sys-utils/chcpu.8.adoc:65 -#: ../sys-utils/chmem.8.adoc:64 ../sys-utils/mount.8.adoc:1612 +#: ../misc-utils/rename.1.adoc:84 ../sys-utils/chcpu.8.adoc:69 +#: ../sys-utils/chmem.8.adoc:64 ../sys-utils/mount.8.adoc:1609 #: ../sys-utils/swapon.8.adoc:116 #, no-wrap msgid "*64*" @@ -3675,20 +3722,25 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkfs.8.adoc:16 -#, no-wrap -msgid "*mkfs* [options] [*-t* _type_] [_fs-options_] _device_ [_size_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*mkfs* [options] [*-t* _type_] [_fs-options_] _device_ [_size_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/mkfs.8.adoc:20 -#, no-wrap -msgid "*This mkfs frontend is deprecated in favour of filesystem specific mkfs. utils.*\n" +msgid "" +"*This mkfs frontend is deprecated in favour of filesystem specific mkfs." +" utils.*" msgstr "" #. type: Plain text #: ../disk-utils/mkfs.8.adoc:22 -#, no-wrap -msgid "*mkfs* is used to build a Linux filesystem on a device, usually a hard disk partition. The _device_ argument is either the device name (e.g., _/dev/hda1_, _/dev/sdb2_), or a regular file that shall contain the filesystem. The _size_ argument is the number of blocks to be used for the filesystem.\n" +msgid "" +"*mkfs* is used to build a Linux filesystem on a device, usually a hard disk " +"partition. The _device_ argument is either the device name (e.g., _/dev/" +"hda1_, _/dev/sdb2_), or a regular file that shall contain the filesystem. " +"The _size_ argument is the number of blocks to be used for the filesystem." msgstr "" #. type: Plain text @@ -3752,9 +3804,9 @@ msgstr "" #: ../misc-utils/cal.1.adoc:177 ../misc-utils/getopt.1.adoc:141 #: ../misc-utils/hardlink.1.adoc:138 ../misc-utils/mcookie.1.adoc:50 #: ../misc-utils/namei.1.adoc:65 ../misc-utils/pipesz.1.adoc:91 -#: ../sys-utils/lscpu.1.adoc:95 ../sys-utils/mount.8.adoc:1670 +#: ../sys-utils/lscpu.1.adoc:95 ../sys-utils/mount.8.adoc:1667 #: ../sys-utils/readprofile.8.adoc:67 ../term-utils/agetty.8.adoc:330 -#: ../term-utils/script.1.adoc:155 ../term-utils/setterm.1.adoc:163 +#: ../term-utils/script.1.adoc:155 ../term-utils/setterm.1.adoc:167 #: ../text-utils/colcrt.1.adoc:70 ../text-utils/column.1.adoc:185 #: ../text-utils/ul.1.adoc:76 #, no-wrap @@ -3785,21 +3837,10 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkfs.8.adoc:68 -#, no-wrap msgid "" -"*fs*(5),\n" -"*badblocks*(8),\n" -"*fsck*(8),\n" -"*mkdosfs*(8),\n" -"*mke2fs*(8),\n" -"*mkfs.bfs*(8),\n" -"*mkfs.ext2*(8),\n" -"*mkfs.ext3*(8),\n" -"*mkfs.ext4*(8),\n" -"*mkfs.minix*(8),\n" -"*mkfs.msdos*(8),\n" -"*mkfs.vfat*(8),\n" -"*mkfs.xfs*(8)\n" +"*fs*(5), *badblocks*(8), *fsck*(8), *mkdosfs*(8), *mke2fs*(8), *mkfs." +"bfs*(8), *mkfs.ext2*(8), *mkfs.ext3*(8), *mkfs.ext4*(8), *mkfs.minix*(8), " +"*mkfs.msdos*(8), *mkfs.vfat*(8), *mkfs.xfs*(8)" msgstr "" #. Copyright 1999 Andries E. Brouwer (aeb@cwi.nl) @@ -3817,14 +3858,16 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkfs.bfs.8.adoc:20 -#, no-wrap -msgid "*mkfs.bfs* [options] _device_ [_block-count_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*mkfs.bfs* [options] _device_ [_block-count_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/mkfs.bfs.8.adoc:24 -#, no-wrap -msgid "*mkfs.bfs* creates an SCO bfs filesystem on a block device (usually a disk partition or a file accessed via the loop device).\n" +msgid "" +"*mkfs.bfs* creates an SCO bfs filesystem on a block device (usually a disk " +"partition or a file accessed via the loop device)." msgstr "" #. type: Plain text @@ -3897,8 +3940,7 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkfs.bfs.8.adoc:60 -#, no-wrap -msgid "*mkfs*(8)\n" +msgid "*mkfs*(8)" msgstr "" #. type: Title = @@ -3914,9 +3956,10 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkfs.cramfs.8.adoc:16 -#, no-wrap -msgid "*mkfs.cramfs* [options] _directory file_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*mkfs.cramfs* [options] _directory file_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/mkfs.cramfs.8.adoc:20 @@ -4083,11 +4126,16 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkfs.cramfs.8.adoc:86 -#, no-wrap -msgid "" -"*fsck.cramfs*(8),\n" -"*mount*(8)\n" +#, fuzzy +#| msgid "" +#| "*mesg*(1),\n" +#| "*talk*(1),\n" +#| "*who*(1)\n" +msgid "*fsck.cramfs*(8), *mount*(8)" msgstr "" +"*mesg*(1),\n" +"*talk*(1),\n" +"*who*(1)\n" #. Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu) #. Copyright 1998 Andries E. Brouwer (aeb@cwi.nl) @@ -4107,14 +4155,16 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkfs.minix.8.adoc:23 -#, no-wrap -msgid "*mkfs.minix* [options] _device_ [_size-in-blocks_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*mkfs.minix* [options] _device_ [_size-in-blocks_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/mkfs.minix.8.adoc:27 -#, no-wrap -msgid "*mkfs.minix* creates a Linux MINIX filesystem on a device (usually a disk partition).\n" +msgid "" +"*mkfs.minix* creates a Linux MINIX filesystem on a device (usually a disk " +"partition)." msgstr "" #. type: Plain text @@ -4275,15 +4325,12 @@ msgstr "126" #. type: Plain text #: ../disk-utils/mkfs.minix.8.adoc:91 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*mesg*(1),\n" #| "*talk*(1),\n" #| "*who*(1)\n" -msgid "" -"*fsck*(8),\n" -"*mkfs*(8),\n" -"*reboot*(8)\n" +msgid "*fsck*(8), *mkfs*(8), *reboot*(8)" msgstr "" "*mesg*(1),\n" "*talk*(1),\n" @@ -4304,22 +4351,21 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkswap.8.adoc:20 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*mkswap* [options] _device_ [_blocks_]\n" +msgid "*mkswap* [options] _device_ [_blocks_]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/mkswap.8.adoc:22 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*mkswap* [options] --size _size_ --file _file_\n" +msgid "*mkswap* [options] --size _size_ --file _file_" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/mkswap.8.adoc:26 -#, no-wrap -msgid "*mkswap* sets up a Linux swap area on a device or in a file.\n" +msgid "*mkswap* sets up a Linux swap area on a device or in a file." msgstr "" #. type: Plain text @@ -4359,8 +4405,9 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkswap.8.adoc:38 -#, no-wrap -msgid "*mkswap*, like many others mkfs-like utils, *erases the first partition block to make any previous filesystem invisible.*\n" +msgid "" +"*mkswap*, like many others mkfs-like utils, *erases the first partition " +"block to make any previous filesystem invisible.*" msgstr "" #. type: Plain text @@ -4424,7 +4471,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/mkswap.8.adoc:57 ../disk-utils/swaplabel.8.adoc:33 -#: ../misc-utils/blkid.8.adoc:74 ../sys-utils/mount.8.adoc:341 +#: ../misc-utils/blkid.8.adoc:74 ../sys-utils/mount.8.adoc:337 #, fuzzy, no-wrap #| msgid "*-s*, **--shell**=__shell__" msgid "*-L*, *--label* _label_" @@ -4558,7 +4605,7 @@ msgid "" msgstr "" #. type: Labeled list -#: ../disk-utils/mkswap.8.adoc:90 ../misc-utils/findmnt.8.adoc:181 +#: ../disk-utils/mkswap.8.adoc:90 ../misc-utils/findmnt.8.adoc:178 #: ../misc-utils/kill.1.adoc:67 ../sys-utils/flock.1.adoc:83 #: ../sys-utils/prlimit.1.adoc:55 #, no-wrap @@ -4604,8 +4651,7 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkswap.8.adoc:112 -#, no-wrap -msgid "*mkswap* refuses areas smaller than 10 pages.\n" +msgid "*mkswap* refuses areas smaller than 10 pages." msgstr "" #. type: Plain text @@ -4618,8 +4664,8 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkswap.8.adoc:116 msgid "" -"To set up a swap file, it is necessary to create that file before " -"initializing it with *mkswap*, e.g. using a command like" +"Aside from *mkswap --file*, it is also possible to create the swapfile " +"manually before initializing it with *mkswap*, e.g. using a command like" msgstr "" #. type: delimited block . @@ -4636,17 +4682,22 @@ msgstr "" #. type: Plain text #: ../disk-utils/mkswap.8.adoc:124 msgid "" -"Please read notes from *swapon*(8) about *the swap file use restrictions* " -"(holes, preallocation and copy-on-write issues)." +"In such a case, please read notes from *swapon*(8) about *the swap file use " +"restrictions* (holes, preallocation and copy-on-write issues)." msgstr "" #. type: Plain text #: ../disk-utils/mkswap.8.adoc:129 -#, no-wrap -msgid "" -"*fdisk*(8),\n" -"*swapon*(8)\n" +#, fuzzy +#| msgid "" +#| "*mesg*(1),\n" +#| "*talk*(1),\n" +#| "*who*(1)\n" +msgid "*fdisk*(8), *swapon*(8)" msgstr "" +"*mesg*(1),\n" +"*talk*(1),\n" +"*who*(1)\n" #. partx.8 -- man page for partx #. Copyright 2007 Karel Zak @@ -4668,14 +4719,15 @@ msgstr "" #. type: Plain text #: ../disk-utils/partx.8.adoc:23 -#, no-wrap -msgid "*partx* [*-a*|*-d*|*-P*|*-r*|*-s*|*-u*] [*-t* _type_] [*-n* _M_:_N_] [-] _disk_\n" +msgid "" +"*partx* [*-a*|*-d*|*-P*|*-r*|*-s*|*-u*] [*-t* _type_] [*-n* _M_:_N_] [-] " +"_disk_" msgstr "" #. type: Plain text #: ../disk-utils/partx.8.adoc:25 -#, no-wrap -msgid "*partx* [*-a*|*-d*|*-P*|*-r*|*-s*|*-u*] [*-t* _type_] _partition_ [_disk_]\n" +msgid "" +"*partx* [*-a*|*-d*|*-P*|*-r*|*-s*|*-u*] [*-t* _type_] _partition_ [_disk_]" msgstr "" #. type: Plain text @@ -4706,8 +4758,10 @@ msgstr "" #. type: Plain text #: ../disk-utils/partx.8.adoc:39 -#, no-wrap -msgid "*partx is not an fdisk program* - adding and removing partitions does not change the disk, it just tells the kernel about the presence and numbering of on-disk partitions.\n" +msgid "" +"*partx is not an fdisk program* - adding and removing partitions does not " +"change the disk, it just tells the kernel about the presence and numbering " +"of on-disk partitions." msgstr "" #. type: Labeled list @@ -4838,7 +4892,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/partx.8.adoc:72 ../login-utils/lslogins.1.adoc:72 -#: ../misc-utils/fincore.1.adoc:41 ../misc-utils/findmnt.8.adoc:109 +#: ../misc-utils/fincore.1.adoc:41 ../misc-utils/findmnt.8.adoc:106 #: ../misc-utils/lsclocks.1.adoc:36 ../misc-utils/lslocks.8.adoc:55 #: ../sys-utils/losetup.8.adoc:107 ../sys-utils/lscpu.1.adoc:92 #: ../sys-utils/lsmem.1.adoc:48 ../sys-utils/lsns.8.adoc:48 @@ -4858,7 +4912,7 @@ msgid "Output all available columns." msgstr "" #. type: Labeled list -#: ../disk-utils/partx.8.adoc:75 ../misc-utils/findmnt.8.adoc:112 +#: ../disk-utils/partx.8.adoc:75 ../misc-utils/findmnt.8.adoc:109 #: ../misc-utils/lsblk.8.adoc:99 ../sys-utils/lsirq.1.adoc:37 #: ../sys-utils/lsmem.1.adoc:51 #, fuzzy, no-wrap @@ -4873,7 +4927,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/partx.8.adoc:78 ../login-utils/lslogins.1.adoc:78 -#: ../misc-utils/fincore.1.adoc:44 ../misc-utils/findmnt.8.adoc:140 +#: ../misc-utils/fincore.1.adoc:44 ../misc-utils/findmnt.8.adoc:137 #: ../misc-utils/lsblk.8.adoc:149 ../misc-utils/lsclocks.1.adoc:39 #: ../misc-utils/lsfd.1.adoc:57 ../misc-utils/lslocks.8.adoc:61 #: ../misc-utils/uuidparse.1.adoc:59 ../sys-utils/dmesg.1.adoc:113 @@ -4945,7 +4999,7 @@ msgstr "" #. type: Plain text #: ../disk-utils/partx.8.adoc:98 ../sys-utils/losetup.8.adoc:100 -#: ../sys-utils/mount.8.adoc:459 ../sys-utils/prlimit.1.adoc:57 +#: ../sys-utils/mount.8.adoc:455 ../sys-utils/prlimit.1.adoc:57 #: ../sys-utils/umount.8.adoc:113 msgid "Verbose mode." msgstr "" @@ -5034,7 +5088,7 @@ msgstr "" #. type: Labeled list #: ../disk-utils/partx.8.adoc:125 #, no-wrap -msgid "partx -d --nr :-1 /dev/sdd" +msgid "partx -d --nr -1: /dev/sdd" msgstr "" #. type: Plain text @@ -5055,14 +5109,20 @@ msgstr "" #. type: Plain text #: ../disk-utils/partx.8.adoc:142 -#, no-wrap -msgid "" -"*addpart*(8),\n" -"*delpart*(8),\n" -"*fdisk*(8),\n" -"*parted*(8),\n" -"*partprobe*(8)\n" +#, fuzzy +#| msgid "" +#| "*getmntent*(3),\n" +#| "*fs*(5),\n" +#| "*findmnt*(8),\n" +#| "*mount*(8),\n" +#| "*swapon*(8)\n" +msgid "*addpart*(8), *delpart*(8), *fdisk*(8), *parted*(8), *partprobe*(8)" msgstr "" +"*getmntent*(3),\n" +"*fs*(5),\n" +"*findmnt*(8),\n" +"*mount*(8),\n" +"*swapon*(8)\n" #. type: Title = #: ../disk-utils/raw.8.adoc:2 @@ -5077,38 +5137,44 @@ msgstr "" #. type: Plain text #: ../disk-utils/raw.8.adoc:16 -#, no-wrap -msgid "*raw* _/dev/raw/raw_ __ __\n" +msgid "*raw* _/dev/raw/raw_ __ __" msgstr "" #. type: Plain text #: ../disk-utils/raw.8.adoc:18 -#, no-wrap -msgid "*raw* _/dev/raw/raw_ _/dev/_\n" +msgid "*raw* _/dev/raw/raw_ _/dev/_" msgstr "" #. type: Plain text #: ../disk-utils/raw.8.adoc:20 -#, no-wrap -msgid "*raw* *-q* _/dev/raw/raw_\n" +msgid "*raw* *-q* _/dev/raw/raw_" msgstr "" #. type: Plain text #: ../disk-utils/raw.8.adoc:22 -#, no-wrap -msgid "*raw* *-qa*\n" -msgstr "" +#, fuzzy +#| msgid "*-f*, *--fast*" +msgid "*raw* *-qa*" +msgstr "*-f*, *--fast*" #. type: Plain text #: ../disk-utils/raw.8.adoc:26 -#, no-wrap -msgid "*raw* is used to bind a Linux raw character device to a block device. Any block device may be used: at the time of binding, the device driver does not even have to be accessible (it may be loaded on demand as a kernel module later).\n" +msgid "" +"*raw* is used to bind a Linux raw character device to a block device. Any " +"block device may be used: at the time of binding, the device driver does not " +"even have to be accessible (it may be loaded on demand as a kernel module " +"later)." msgstr "" #. type: Plain text #: ../disk-utils/raw.8.adoc:28 -#, no-wrap -msgid "*raw* is used in two modes: it either sets raw device bindings, or it queries existing bindings. When setting a raw device, _/dev/raw/raw_ is the device name of an existing raw device node in the filesystem. The block device to which it is to be bound can be specified either in terms of its _major_ and _minor_ device numbers, or as a path name _/dev/_ to an existing block device file.\n" +msgid "" +"*raw* is used in two modes: it either sets raw device bindings, or it " +"queries existing bindings. When setting a raw device, _/dev/raw/raw_ is " +"the device name of an existing raw device node in the filesystem. The block " +"device to which it is to be bound can be specified either in terms of its " +"_major_ and _minor_ device numbers, or as a path name _/dev/_ to " +"an existing block device file." msgstr "" #. type: Plain text @@ -5163,10 +5229,10 @@ msgstr "" #. type: Labeled list #: ../disk-utils/raw.8.adoc:42 ../misc-utils/kill.1.adoc:61 -#: ../misc-utils/lsblk.8.adoc:38 ../misc-utils/rename.1.adoc:34 +#: ../misc-utils/lsblk.8.adoc:38 ../misc-utils/rename.1.adoc:38 #: ../misc-utils/wipefs.8.adoc:40 ../sys-utils/ipcs.1.adoc:43 #: ../sys-utils/losetup.8.adoc:53 ../sys-utils/lscpu.1.adoc:33 -#: ../sys-utils/lsmem.1.adoc:33 ../sys-utils/mount.8.adoc:307 +#: ../sys-utils/lsmem.1.adoc:33 ../sys-utils/mount.8.adoc:305 #: ../sys-utils/nsenter.1.adoc:53 ../sys-utils/readprofile.8.adoc:27 #: ../sys-utils/swapon.8.adoc:31 ../sys-utils/umount.8.adoc:54 #, fuzzy, no-wrap @@ -5227,14 +5293,15 @@ msgstr "" #. type: Plain text #: ../disk-utils/resizepart.8.adoc:22 -#, no-wrap -msgid "*resizepart* _device partition length_\n" +msgid "*resizepart* _device partition length_" msgstr "" #. type: Plain text #: ../disk-utils/resizepart.8.adoc:26 -#, no-wrap -msgid "*resizepart* tells the Linux kernel about the new size of the specified partition. The command is a simple wrapper around the \"resize partition\" ioctl.\n" +msgid "" +"*resizepart* tells the Linux kernel about the new size of the specified " +"partition. The command is a simple wrapper around the \"resize partition\" " +"ioctl." msgstr "" #. type: Plain text @@ -5244,15 +5311,22 @@ msgstr "" #. type: Plain text #: ../disk-utils/resizepart.8.adoc:50 -#, no-wrap +#, fuzzy +#| msgid "" +#| "*getmntent*(3),\n" +#| "*fs*(5),\n" +#| "*findmnt*(8),\n" +#| "*mount*(8),\n" +#| "*swapon*(8)\n" msgid "" -"*addpart*(8),\n" -"*delpart*(8),\n" -"*fdisk*(8),\n" -"*parted*(8),\n" -"*partprobe*(8),\n" -"*partx*(8)\n" +"*addpart*(8), *delpart*(8), *fdisk*(8), *parted*(8), *partprobe*(8), " +"*partx*(8)" msgstr "" +"*getmntent*(3),\n" +"*fs*(5),\n" +"*findmnt*(8),\n" +"*mount*(8),\n" +"*swapon*(8)\n" # # @@ -5278,20 +5352,24 @@ msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:31 -#, no-wrap -msgid "*sfdisk* [options] _device_ [*-N* _partition-number_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*sfdisk* [options] _device_ [*-N* _partition-number_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:33 -#, no-wrap -msgid "*sfdisk* [options] _command_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*sfdisk* [options] _command_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:37 -#, no-wrap -msgid "*sfdisk* is a script-oriented tool for partitioning any block device. It runs in interactive mode if executed on a terminal (stdin refers to a terminal).\n" +msgid "" +"*sfdisk* is a script-oriented tool for partitioning any block device. It " +"runs in interactive mode if executed on a terminal (stdin refers to a " +"terminal)." msgstr "" #. type: Plain text @@ -5305,14 +5383,21 @@ msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:41 -#, no-wrap -msgid "*sfdisk* protects the first disk sector when create a new disk label. The option *--wipe always* disables this protection. Note that *fdisk*(8) and *cfdisk*(8) completely erase this area by default.\n" +msgid "" +"*sfdisk* protects the first disk sector when create a new disk label. The " +"option *--wipe always* disables this protection. Note that *fdisk*(8) and " +"*cfdisk*(8) completely erase this area by default." msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:43 -#, no-wrap -msgid "*sfdisk* (since version 2.26) *aligns the start and end of partitions* to block-device I/O limits when relative sizes are specified, when the default values are used or when multiplicative suffixes (e.g., MiB) are used for sizes. It is possible that partition size will be optimized (reduced or enlarged) due to alignment if the start offset is specified exactly in sectors and partition size relative or by multiplicative suffixes.\n" +msgid "" +"*sfdisk* (since version 2.26) *aligns the start and end of partitions* to " +"block-device I/O limits when relative sizes are specified, when the default " +"values are used or when multiplicative suffixes (e.g., MiB) are used for " +"sizes. It is possible that partition size will be optimized (reduced or " +"enlarged) due to alignment if the start offset is specified exactly in " +"sectors and partition size relative or by multiplicative suffixes." msgstr "" #. type: Plain text @@ -5329,14 +5414,21 @@ msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:47 -#, no-wrap -msgid "*sfdisk* does not create the standard system partitions for SGI and SUN disk labels like *fdisk*(8) does. It is necessary to explicitly create all partitions including whole-disk system partitions.\n" +msgid "" +"*sfdisk* does not create the standard system partitions for SGI and SUN disk " +"labels like *fdisk*(8) does. It is necessary to explicitly create all " +"partitions including whole-disk system partitions." msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:49 -#, no-wrap -msgid "*sfdisk* uses *BLKRRPART* (reread partition table) ioctl to make sure that the device is not used by system or other tools (see also *--no-reread*). It's possible that this feature or another *sfdisk* activity races with *systemd-udevd*(8). The recommended way how to avoid possible collisions is to use *--lock* option. The exclusive lock will cause *systemd-udevd* to skip the event handling on the device.\n" +msgid "" +"*sfdisk* uses *BLKRRPART* (reread partition table) ioctl to make sure that " +"the device is not used by system or other tools (see also *--no-reread*). " +"It's possible that this feature or another *sfdisk* activity races with " +"*systemd-udevd*(8). The recommended way how to avoid possible collisions is " +"to use *--lock* option. The exclusive lock will cause *systemd-udevd* to " +"skip the event handling on the device." msgstr "" #. type: Plain text @@ -5798,7 +5890,7 @@ msgid "" msgstr "" #. type: Labeled list -#: ../disk-utils/sfdisk.8.adoc:161 ../misc-utils/rename.1.adoc:31 +#: ../disk-utils/sfdisk.8.adoc:161 ../misc-utils/rename.1.adoc:35 #: ../misc-utils/wipefs.8.adoc:61 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" @@ -5898,20 +5990,17 @@ msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:186 -#, no-wrap -msgid "*echo '+100M,' | sfdisk --move-data /dev/sdc -N 1*\n" +msgid "*echo '+100M,' | sfdisk --move-data /dev/sdc -N 1*" msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:188 -#, no-wrap -msgid "*echo '2048,' | sfdisk /dev/sdc --append*\n" +msgid "*echo '2048,' | sfdisk /dev/sdc --append*" msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:190 -#, no-wrap -msgid "*sfdisk /dev/sdc --reorder*\n" +msgid "*sfdisk /dev/sdc --reorder*" msgstr "" #. type: Labeled list @@ -6028,8 +6117,7 @@ msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:228 -#, no-wrap -msgid "*sfdisk* supports two input formats and generic header lines.\n" +msgid "*sfdisk* supports two input formats and generic header lines." msgstr "" #. type: Title === @@ -6047,8 +6135,7 @@ msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:234 -#, no-wrap -msgid "*: *\n" +msgid "*: *" msgstr "" #. type: Plain text @@ -6497,14 +6584,16 @@ msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:345 -#, no-wrap -msgid "*sfdisk* does not create partition table without partitions by default. The lines with partitions are expected in the script by default. The empty partition table has to be explicitly requested by \"label: \" script header line without any partitions lines. For example:\n" +msgid "" +"*sfdisk* does not create partition table without partitions by default. The " +"lines with partitions are expected in the script by default. The empty " +"partition table has to be explicitly requested by \"label: \" script " +"header line without any partitions lines. For example:" msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:348 -#, no-wrap -msgid "*echo 'label: gpt' | sfdisk /dev/sdb*\n" +msgid "*echo 'label: gpt' | sfdisk /dev/sdb*" msgstr "" #. type: Plain text @@ -6543,8 +6632,7 @@ msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:362 -#, no-wrap -msgid "*sfdisk --dump /dev/sda > sda.dump*\n" +msgid "*sfdisk --dump /dev/sda > sda.dump*" msgstr "" #. type: Plain text @@ -6554,8 +6642,7 @@ msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:367 -#, no-wrap -msgid "*sfdisk /dev/sda < sda.dump*\n" +msgid "*sfdisk /dev/sda < sda.dump*" msgstr "" #. type: Plain text @@ -6584,8 +6671,7 @@ msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:377 -#, no-wrap -msgid "*sfdisk --backup-pt-sectors /dev/sda*\n" +msgid "*sfdisk --backup-pt-sectors /dev/sda*" msgstr "" #. type: Plain text @@ -6595,8 +6681,9 @@ msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:383 -#, no-wrap -msgid "*dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda seek=$\\((0x00000200)) bs=1 conv=notrunc*\n" +msgid "" +"*dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda seek=$\\((0x00000200)) bs=1 " +"conv=notrunc*" msgstr "" #. type: Plain text @@ -6609,8 +6696,7 @@ msgstr "" #. type: delimited block _ #: ../disk-utils/sfdisk.8.adoc:389 -#, no-wrap -msgid "*sfdisk --backup --delete /dev/sda*\n" +msgid "*sfdisk --backup --delete /dev/sda*" msgstr "" #. type: Plain text @@ -6658,10 +6744,10 @@ msgid "" msgstr "" #. type: Title == -#: ../disk-utils/sfdisk.8.adoc:426 ../misc-utils/findmnt.8.adoc:215 +#: ../disk-utils/sfdisk.8.adoc:426 ../misc-utils/findmnt.8.adoc:212 #: ../misc-utils/getopt.1.adoc:128 ../misc-utils/logger.1.adoc:233 #: ../misc-utils/look.1.adoc:94 ../misc-utils/pipesz.1.adoc:69 -#: ../misc-utils/rename.1.adoc:83 ../misc-utils/uuidgen.1.adoc:61 +#: ../misc-utils/rename.1.adoc:87 ../misc-utils/uuidgen.1.adoc:61 #: ../misc-utils/whereis.1.adoc:117 ../misc-utils/wipefs.8.adoc:88 #: ../schedutils/chrt.1.adoc:106 ../schedutils/ionice.1.adoc:72 #: ../sys-utils/flock.1.adoc:100 ../sys-utils/prlimit.1.adoc:114 @@ -6765,17 +6851,23 @@ msgstr "" #. type: Plain text #: ../disk-utils/sfdisk.8.adoc:462 -#, no-wrap -msgid "" -"*fdisk*(8),\n" -"*cfdisk*(8),\n" -"*parted*(8),\n" -"*partprobe*(8),\n" -"*partx*(8)\n" +#, fuzzy +#| msgid "" +#| "*getmntent*(3),\n" +#| "*fs*(5),\n" +#| "*findmnt*(8),\n" +#| "*mount*(8),\n" +#| "*swapon*(8)\n" +msgid "*fdisk*(8), *cfdisk*(8), *parted*(8), *partprobe*(8), *partx*(8)" msgstr "" +"*getmntent*(3),\n" +"*fs*(5),\n" +"*findmnt*(8),\n" +"*mount*(8),\n" +"*swapon*(8)\n" #. Copyright 2010 Jason Borden -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../disk-utils/swaplabel.8.adoc:6 #, no-wrap @@ -6789,14 +6881,14 @@ msgstr "" #. type: Plain text #: ../disk-utils/swaplabel.8.adoc:20 -#, no-wrap -msgid "*swaplabel* [*-L* _label_] [*-U* _UUID_] _device_\n" +msgid "*swaplabel* [*-L* _label_] [*-U* _UUID_] _device_" msgstr "" #. type: Plain text #: ../disk-utils/swaplabel.8.adoc:24 -#, no-wrap -msgid "*swaplabel* will display or change the label or UUID of a swap partition located on _device_ (or regular file).\n" +msgid "" +"*swaplabel* will display or change the label or UUID of a swap partition " +"located on _device_ (or regular file)." msgstr "" #. type: Plain text @@ -6832,21 +6924,19 @@ msgstr "" #. type: Plain text #: ../disk-utils/swaplabel.8.adoc:47 -#, no-wrap -msgid "*swaplabel* was written by mailto:jborden@bluehost.com[Jason Borden] and mailto:kzak@redhat.com[Karel Zak].\n" +msgid "" +"*swaplabel* was written by mailto:jborden@bluehost.com[Jason Borden] and " +"mailto:kzak@redhat.com[Karel Zak]." msgstr "" #. type: Plain text #: ../disk-utils/swaplabel.8.adoc:53 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*mesg*(1),\n" #| "*talk*(1),\n" #| "*who*(1)\n" -msgid "" -"*uuidgen*(1),\n" -"*mkswap*(8),\n" -"*swapon*(8)\n" +msgid "*uuidgen*(1), *mkswap*(8), *swapon*(8)" msgstr "" "*mesg*(1),\n" "*talk*(1),\n" @@ -6967,8 +7057,7 @@ msgstr "" #. type: delimited block _ #: ../lib/terminal-colors.d.5.adoc:54 -#, no-wrap -msgid "*name color-sequence*\n" +msgid "*name color-sequence*" msgstr "" #. type: Plain text @@ -7088,9 +7177,10 @@ msgstr "" #. type: Plain text #: ../lib/terminal-colors.d.5.adoc:123 -#, no-wrap -msgid "*echo 'alert 37;41' >> /etc/terminal-colors.d/dmesg.scheme*\n" -msgstr "" +#, fuzzy +#| msgid "_/etc/terminal-colors.d/disable_" +msgid "*echo 'alert 37;41' >> /etc/terminal-colors.d/dmesg.scheme*" +msgstr "_/etc/terminal-colors.d/disable_" #. type: Title === #: ../lib/terminal-colors.d.5.adoc:125 @@ -7144,9 +7234,9 @@ msgstr "" #. type: Plain text #: ../lib/terminal-colors.d.5.adoc:148 ../lib/terminal-colors.d.5.adoc:160 -#, fuzzy, no-wrap +#, fuzzy #| msgid "_/etc/terminal-colors.d/disable_" -msgid "*touch /etc/terminal-colors.d/disable*\n" +msgid "*touch /etc/terminal-colors.d/disable*" msgstr "_/etc/terminal-colors.d/disable_" #. type: delimited block _ @@ -7156,9 +7246,9 @@ msgstr "" #. type: Plain text #: ../lib/terminal-colors.d.5.adoc:154 -#, fuzzy, no-wrap +#, fuzzy #| msgid "_/etc/terminal-colors.d/disable_" -msgid "*touch /etc/terminal-colors.d/@vt100.disable*\n" +msgid "*touch /etc/terminal-colors.d/@vt100.disable*" msgstr "_/etc/terminal-colors.d/disable_" #. type: delimited block _ @@ -7168,14 +7258,14 @@ msgstr "" #. type: Plain text #: ../lib/terminal-colors.d.5.adoc:162 -#, fuzzy, no-wrap +#, fuzzy #| msgid "_/etc/terminal-colors.d/disable_" -msgid "*touch /etc/terminal-colors.d/dmesg.enable*\n" +msgid "*touch /etc/terminal-colors.d/dmesg.enable*" msgstr "_/etc/terminal-colors.d/disable_" #. type: Title == #: ../lib/terminal-colors.d.5.adoc:164 ../misc-utils/getopt.1.adoc:112 -#: ../term-utils/setterm.1.adoc:159 +#: ../term-utils/setterm.1.adoc:163 #, fuzzy, no-wrap #| msgid "AVAILABILITY" msgid "COMPATIBILITY" @@ -7205,7 +7295,6 @@ msgstr "" #: ../libuuid/man/uuid_copy.3.adoc:35 ../libuuid/man/uuid_generate.3.adoc:37 #: ../libuuid/man/uuid_is_null.3.adoc:35 ../libuuid/man/uuid_parse.3.adoc:35 #: ../libuuid/man/uuid_time.3.adoc:35 ../libuuid/man/uuid_unparse.3.adoc:35 -#, no-wrap msgid "Programmer's Manual" msgstr "" @@ -7216,14 +7305,12 @@ msgstr "" #. type: Plain text #: ../libblkid/libblkid.3.adoc:23 -#, no-wrap -msgid "*#include *\n" +msgid "*#include *" msgstr "" #. type: Plain text #: ../libblkid/libblkid.3.adoc:25 -#, no-wrap -msgid "*cc* _file.c_ *-lblkid*\n" +msgid "*cc* _file.c_ *-lblkid*" msgstr "" #. type: Plain text @@ -7511,8 +7598,10 @@ msgstr "" #. type: Plain text #: ../libblkid/libblkid.3.adoc:126 -#, no-wrap -msgid "*libblkid* was written by Andreas Dilger for the ext2 filesystem utilities, with input from Ted Ts'o. The library was subsequently heavily modified by Ted Ts'o.\n" +msgid "" +"*libblkid* was written by Andreas Dilger for the ext2 filesystem utilities, " +"with input from Ted Ts'o. The library was subsequently heavily modified by " +"Ted Ts'o." msgstr "" #. type: Plain text @@ -7528,17 +7617,23 @@ msgstr "" #. type: Plain text #: ../libblkid/libblkid.3.adoc:132 -#, no-wrap -msgid "*libblkid* is available under the terms of the GNU Library General Public License (LGPL), version 2 (or at your discretion any later version).\n" +msgid "" +"*libblkid* is available under the terms of the GNU Library General Public " +"License (LGPL), version 2 (or at your discretion any later version)." msgstr "" #. type: Plain text #: ../libblkid/libblkid.3.adoc:137 ../misc-utils/wipefs.8.adoc:107 -#, no-wrap -msgid "" -"*blkid*(8),\n" -"*findfs*(8)\n" +#, fuzzy +#| msgid "" +#| "*mesg*(1),\n" +#| "*talk*(1),\n" +#| "*who*(1)\n" +msgid "*blkid*(8), *findfs*(8)" msgstr "" +"*mesg*(1),\n" +"*talk*(1),\n" +"*who*(1)\n" # # @@ -7586,8 +7681,7 @@ msgstr "" #: ../libuuid/man/uuid_generate.3.adoc:50 ../libuuid/man/uuid_is_null.3.adoc:48 #: ../libuuid/man/uuid_parse.3.adoc:48 ../libuuid/man/uuid_time.3.adoc:48 #: ../libuuid/man/uuid_unparse.3.adoc:48 -#, no-wrap -msgid "*#include *\n" +msgid "*#include *" msgstr "" #. type: Plain text @@ -7637,16 +7731,9 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid.3.adoc:73 -#, no-wrap msgid "" -"*uuid_clear*(3),\n" -"*uuid_compare*(3),\n" -"*uuid_copy*(3),\n" -"*uuid_generate*(3),\n" -"*uuid_is_null*(3),\n" -"*uuid_parse*(3),\n" -"*uuid_time*(3),\n" -"*uuid_unparse*(3)\n" +"*uuid_clear*(3), *uuid_compare*(3), *uuid_copy*(3), *uuid_generate*(3), " +"*uuid_is_null*(3), *uuid_parse*(3), *uuid_time*(3), *uuid_unparse*(3)" msgstr "" # @@ -7691,8 +7778,7 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_clear.3.adoc:50 -#, no-wrap -msgid "*void uuid_clear(uuid_t __uu__);*\n" +msgid "*void uuid_clear(uuid_t __uu__);*" msgstr "" #. type: Plain text @@ -7704,15 +7790,9 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_clear.3.adoc:68 -#, no-wrap msgid "" -"*uuid*(3),\n" -"*uuid_compare*(3),\n" -"*uuid_copy*(3),\n" -"*uuid_generate*(3),\n" -"*uuid_is_null*(3),\n" -"*uuid_parse*(3),\n" -"*uuid_unparse*(3)\n" +"*uuid*(3), *uuid_compare*(3), *uuid_copy*(3), *uuid_generate*(3), " +"*uuid_is_null*(3), *uuid_parse*(3), *uuid_unparse*(3)" msgstr "" # @@ -7757,8 +7837,7 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_compare.3.adoc:50 -#, no-wrap -msgid "*int uuid_compare(uuid_t __uu1__, uuid_t __uu2__)*\n" +msgid "*int uuid_compare(const uuid_t __uu1__, const uuid_t __uu2__)*" msgstr "" #. type: Plain text @@ -7786,15 +7865,9 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_compare.3.adoc:72 -#, no-wrap msgid "" -"*uuid*(3),\n" -"*uuid_clear*(3),\n" -"*uuid_copy*(3),\n" -"*uuid_generate*(3),\n" -"*uuid_is_null*(3),\n" -"*uuid_parse*(3),\n" -"*uuid_unparse*(3)\n" +"*uuid*(3), *uuid_clear*(3), *uuid_copy*(3), *uuid_generate*(3), " +"*uuid_is_null*(3), *uuid_parse*(3), *uuid_unparse*(3)" msgstr "" # @@ -7839,8 +7912,7 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_copy.3.adoc:50 -#, no-wrap -msgid "*void uuid_copy(uuid_t __dst__, uuid_t __src__);*\n" +msgid "*void uuid_copy(uuid_t __dst__, const uuid_t __src__);*" msgstr "" #. type: Plain text @@ -7855,15 +7927,9 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_copy.3.adoc:72 -#, no-wrap msgid "" -"*uuid*(3),\n" -"*uuid_clear*(3),\n" -"*uuid_compare*(3),\n" -"*uuid_generate*(3),\n" -"*uuid_is_null*(3),\n" -"*uuid_parse*(3),\n" -"*uuid_unparse*(3)\n" +"*uuid*(3), *uuid_clear*(3), *uuid_compare*(3), *uuid_generate*(3), " +"*uuid_is_null*(3), *uuid_parse*(3), *uuid_unparse*(3)" msgstr "" # @@ -7914,12 +7980,12 @@ msgstr "" #: ../libuuid/man/uuid_generate.3.adoc:57 #, no-wrap msgid "" -"*void uuid_generate(uuid_t __out__);* +\n" -"*void uuid_generate_random(uuid_t __out__);* +\n" -"*void uuid_generate_time(uuid_t __out__);* +\n" -"*int uuid_generate_time_safe(uuid_t __out__);* +\n" -"*void uuid_generate_md5(uuid_t __out__, const uuid_t __ns__, const char __*name__, size_t __len__);* +\n" -"*void uuid_generate_sha1(uuid_t __out__, const uuid_t __ns__, const char __*name__, size_t __len__);*\n" +"*void uuid_generate(uuid_t __out__);*\n" +"*void uuid_generate_random(uuid_t __out__);*\n" +"*void uuid_generate_time(uuid_t __out__);*\n" +"*int uuid_generate_time_safe(uuid_t __out__);*\n" +"*void uuid_generate_md5(uuid_t __out__, const uuid_t __ns__, const char __*name__, size_t __len__);*\n" +"*void uuid_generate_sha1(uuid_t __out__, const uuid_t __ns__, const char __*name__, size_t __len__);*" msgstr "" #. type: Plain text @@ -8001,18 +8067,10 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_generate.3.adoc:96 -#, no-wrap msgid "" -"*uuidgen*(1),\n" -"*uuid*(3),\n" -"*uuid_clear*(3),\n" -"*uuid_compare*(3),\n" -"*uuid_copy*(3),\n" -"*uuid_is_null*(3),\n" -"*uuid_parse*(3),\n" -"*uuid_time*(3),\n" -"*uuid_unparse*(3),\n" -"*uuidd*(8)\n" +"*uuidgen*(1), *uuid*(3), *uuid_clear*(3), *uuid_compare*(3), *uuid_copy*(3), " +"*uuid_is_null*(3), *uuid_parse*(3), *uuid_time*(3), *uuid_unparse*(3), " +"*uuidd*(8)" msgstr "" # @@ -8057,8 +8115,7 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_is_null.3.adoc:50 -#, no-wrap -msgid "*int uuid_is_null(uuid_t __uu__);*\n" +msgid "*int uuid_is_null(const uuid_t __uu__);*" msgstr "" #. type: Plain text @@ -8071,16 +8128,9 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_is_null.3.adoc:69 -#, no-wrap msgid "" -"*uuid*(3),\n" -"*uuid_clear*(3),\n" -"*uuid_compare*(3),\n" -"*uuid_copy*(3),\n" -"*uuid_generate*(3),\n" -"*uuid_time*(3),\n" -"*uuid_parse*(3),\n" -"*uuid_unparse*(3)\n" +"*uuid*(3), *uuid_clear*(3), *uuid_compare*(3), *uuid_copy*(3), " +"*uuid_generate*(3), *uuid_time*(3), *uuid_parse*(3), *uuid_unparse*(3)" msgstr "" # @@ -8127,8 +8177,8 @@ msgstr "" #: ../libuuid/man/uuid_parse.3.adoc:51 #, no-wrap msgid "" -"*int uuid_parse(char *__in__, uuid_t __uu__);* +\n" -"*int uuid_parse_range(char *__in_start__, char *__in_end__, uuid_t __uu__);*\n" +"*int uuid_parse(const char *__in__, uuid_t __uu__);*\n" +"*int uuid_parse_range(const char *__in_start__, const char *__in_end__, uuid_t __uu__);*" msgstr "" #. type: Plain text @@ -8163,16 +8213,9 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_parse.3.adoc:80 -#, no-wrap msgid "" -"*uuid*(3),\n" -"*uuid_clear*(3),\n" -"*uuid_compare*(3),\n" -"*uuid_copy*(3),\n" -"*uuid_generate*(3),\n" -"*uuid_is_null*(3),\n" -"*uuid_time*(3),\n" -"*uuid_unparse*(3)\n" +"*uuid*(3), *uuid_clear*(3), *uuid_compare*(3), *uuid_copy*(3), " +"*uuid_generate*(3), *uuid_is_null*(3), *uuid_time*(3), *uuid_unparse*(3)" msgstr "" # @@ -8217,8 +8260,7 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_time.3.adoc:50 -#, no-wrap -msgid "*time_t uuid_time(uuid_t __uu__, struct timeval *__ret_tv__)*\n" +msgid "*time_t uuid_time(const uuid_t __uu__, struct timeval *__ret_tv__)*" msgstr "" #. type: Plain text @@ -8243,16 +8285,9 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_time.3.adoc:73 -#, no-wrap msgid "" -"*uuid*(3),\n" -"*uuid_clear*(3),\n" -"*uuid_compare*(3),\n" -"*uuid_copy*(3),\n" -"*uuid_generate*(3),\n" -"*uuid_is_null*(3),\n" -"*uuid_parse*(3),\n" -"*uuid_unparse*(3)\n" +"*uuid*(3), *uuid_clear*(3), *uuid_compare*(3), *uuid_copy*(3), " +"*uuid_generate*(3), *uuid_is_null*(3), *uuid_parse*(3), *uuid_unparse*(3)" msgstr "" # @@ -8299,9 +8334,9 @@ msgstr "" #: ../libuuid/man/uuid_unparse.3.adoc:52 #, no-wrap msgid "" -"*void uuid_unparse(uuid_t __uu__, char *__out__);* +\n" -"*void uuid_unparse_upper(uuid_t __uu__, char *__out__);* +\n" -"*void uuid_unparse_lower(uuid_t __uu__, char *__out__);*\n" +"*void uuid_unparse(const uuid_t __uu__, char *__out__);*\n" +"*void uuid_unparse_upper(const uuid_t __uu__, char *__out__);*\n" +"*void uuid_unparse_lower(const uuid_t __uu__, char *__out__);*" msgstr "" #. type: Plain text @@ -8329,16 +8364,9 @@ msgstr "" #. type: Plain text #: ../libuuid/man/uuid_unparse.3.adoc:77 -#, no-wrap msgid "" -"*uuid*(3),\n" -"*uuid_clear*(3),\n" -"*uuid_compare*(3),\n" -"*uuid_copy*(3),\n" -"*uuid_generate*(3),\n" -"*uuid_time*(3),\n" -"*uuid_is_null*(3),\n" -"*uuid_parse*(3)\n" +"*uuid*(3), *uuid_clear*(3), *uuid_compare*(3), *uuid_copy*(3), " +"*uuid_generate*(3), *uuid_time*(3), *uuid_is_null*(3), *uuid_parse*(3)" msgstr "" # @@ -8356,17 +8384,16 @@ msgstr "" #. type: Attribute :man manual: #: ../login-utils/chfn.1.adoc:12 ../login-utils/chsh.1.adoc:12 #: ../login-utils/last.1.adoc:21 ../login-utils/login.1.adoc:8 -#: ../login-utils/lslogins.1.adoc:6 ../login-utils/newgrp.1.adoc:6 -#: ../login-utils/runuser.1.adoc:4 ../login-utils/su.1.adoc:4 -#: ../login-utils/utmpdump.1.adoc:21 ../misc-utils/cal.1.adoc:41 -#: ../misc-utils/enosys.1.adoc:4 ../misc-utils/exch.1.adoc:4 -#: ../misc-utils/fadvise.1.adoc:4 ../misc-utils/fincore.1.adoc:9 -#: ../misc-utils/getopt.1.adoc:4 ../misc-utils/hardlink.1.adoc:10 -#: ../misc-utils/kill.1.adoc:9 ../misc-utils/logger.1.adoc:38 -#: ../misc-utils/look.1.adoc:38 ../misc-utils/lsclocks.1.adoc:4 -#: ../misc-utils/lsfd.1.adoc:9 ../misc-utils/mcookie.1.adoc:6 -#: ../misc-utils/namei.1.adoc:4 ../misc-utils/pipesz.1.adoc:4 -#: ../misc-utils/rename.1.adoc:6 ../misc-utils/uuidgen.1.adoc:8 +#: ../login-utils/lslogins.1.adoc:6 ../login-utils/runuser.1.adoc:4 +#: ../login-utils/su.1.adoc:4 ../login-utils/utmpdump.1.adoc:21 +#: ../misc-utils/cal.1.adoc:41 ../misc-utils/enosys.1.adoc:4 +#: ../misc-utils/exch.1.adoc:4 ../misc-utils/fadvise.1.adoc:4 +#: ../misc-utils/fincore.1.adoc:9 ../misc-utils/getopt.1.adoc:4 +#: ../misc-utils/hardlink.1.adoc:10 ../misc-utils/kill.1.adoc:9 +#: ../misc-utils/logger.1.adoc:38 ../misc-utils/look.1.adoc:38 +#: ../misc-utils/lsclocks.1.adoc:4 ../misc-utils/lsfd.1.adoc:9 +#: ../misc-utils/mcookie.1.adoc:6 ../misc-utils/namei.1.adoc:4 +#: ../misc-utils/pipesz.1.adoc:4 ../misc-utils/uuidgen.1.adoc:8 #: ../misc-utils/uuidparse.1.adoc:6 ../misc-utils/waitpid.1.adoc:4 #: ../misc-utils/whereis.1.adoc:38 ../schedutils/chrt.1.adoc:28 #: ../schedutils/ionice.1.adoc:4 ../schedutils/taskset.1.adoc:26 @@ -8386,10 +8413,9 @@ msgstr "" #: ../term-utils/wall.1.adoc:39 ../term-utils/write.1.adoc:41 #: ../text-utils/col.1.adoc:41 ../text-utils/colcrt.1.adoc:38 #: ../text-utils/colrm.1.adoc:38 ../text-utils/column.1.adoc:38 -#: ../text-utils/hexdump.1.adoc:38 ../text-utils/line.1.adoc:5 -#: ../text-utils/more.1.adoc:41 ../text-utils/pg.1.adoc:5 -#: ../text-utils/rev.1.adoc:38 ../text-utils/ul.1.adoc:38 -#, no-wrap +#: ../text-utils/hexdump.1.adoc:38 ../text-utils/more.1.adoc:41 +#: ../text-utils/pg.1.adoc:5 ../text-utils/rev.1.adoc:38 +#: ../text-utils/ul.1.adoc:38 msgid "User Commands" msgstr "Příručka uživatele" @@ -8400,14 +8426,19 @@ msgstr "" #. type: Plain text #: ../login-utils/chfn.1.adoc:24 -#, no-wrap -msgid "*chfn* [*-f* _full-name_] [*-o* _office_] [*-p* _office-phone_] [*-h* _home-phone_] [*-u*] [*-V*] [_username_]\n" +msgid "" +"*chfn* [*-f* _full-name_] [*-o* _office_] [*-p* _office-phone_] [*-h* _home-" +"phone_] [*-u*] [*-V*] [_username_]" msgstr "" #. type: Plain text #: ../login-utils/chfn.1.adoc:28 -#, no-wrap -msgid "*chfn* is used to change your finger information. This information is stored in the _/etc/passwd_ file, and is displayed by the *finger* program. The Linux *finger* command will display four pieces of information that can be changed by *chfn*: your real name, your work room and phone, and your home phone.\n" +msgid "" +"*chfn* is used to change your finger information. This information is stored " +"in the _/etc/passwd_ file, and is displayed by the *finger* program. The " +"Linux *finger* command will display four pieces of information that can be " +"changed by *chfn*: your real name, your work room and phone, and your home " +"phone." msgstr "" #. type: Plain text @@ -8428,8 +8459,10 @@ msgstr "" #. type: Plain text #: ../login-utils/chfn.1.adoc:34 -#, no-wrap -msgid "*chfn* supports non-local entries (kerberos, LDAP, etc.) if linked with libuser, otherwise use *ypchfn*(1), *lchfn*(1) or any other implementation for non-local entries.\n" +msgid "" +"*chfn* supports non-local entries (kerberos, LDAP, etc.) if linked with " +"libuser, otherwise use *ypchfn*(1), *lchfn*(1) or any other implementation " +"for non-local entries." msgstr "" #. type: Labeled list @@ -8500,10 +8533,18 @@ msgstr "KONFIGURAČNÍ SOUBORY" #. type: Plain text #: ../login-utils/chfn.1.adoc:61 -#, fuzzy, no-wrap -#| msgid "*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration files. The following configuration items are relevant for *su*{colon}\n" -msgid "*chfn* reads the _/etc/login.defs_ configuration file (see *login.defs*(5)). Note that the configuration file could be distributed with another package (e.g., shadow-utils). The following configuration items are relevant for *chfn*:\n" -msgstr "*su* čte konfigurační soubory _/etc/default/su_ a _/etc/login.defs_. Následující konfigurační položky jsou relevantní pro *su*{colon}\n" +#, fuzzy +#| msgid "" +#| "*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration " +#| "files. The following configuration items are relevant for *su*{colon}\n" +msgid "" +"*chfn* reads the _/etc/login.defs_ configuration file (see *login.defs*(5)). " +"Note that the configuration file could be distributed with another package " +"(e.g., shadow-utils). The following configuration items are relevant for " +"*chfn*:" +msgstr "" +"*su* čte konfigurační soubory _/etc/default/su_ a _/etc/login.defs_. " +"Následující konfigurační položky jsou relevantní pro *su*{colon}\n" #. type: Labeled list #: ../login-utils/chfn.1.adoc:62 @@ -8554,13 +8595,20 @@ msgstr "" #. type: Plain text #: ../login-utils/chfn.1.adoc:86 -#, no-wrap -msgid "" -"*chsh*(1),\n" -"*finger*(1),\n" -"*login.defs*(5),\n" -"*passwd*(5)\n" +#, fuzzy +#| msgid "" +#| "*setpriv*(1),\n" +#| "*login.defs*(5),\n" +#| "*shells*(5),\n" +#| "*pam*(8),\n" +#| "*runuser*(1)\n" +msgid "*chsh*(1), *finger*(1), *login.defs*(5), *passwd*(5)" msgstr "" +"*setpriv*(1),\n" +"*login.defs*(5),\n" +"*shells*(5),\n" +"*pam*(8),\n" +"*runuser*(1)\n" # #. chsh.1 -- change your login shell @@ -8581,20 +8629,22 @@ msgstr "" #. type: Plain text #: ../login-utils/chsh.1.adoc:24 -#, no-wrap -msgid "*chsh* [*-s* _shell_] [*-l*] [*-h*] [*-V*] [_username_]\n" +msgid "*chsh* [*-s* _shell_] [*-l*] [*-h*] [*-V*] [_username_]" msgstr "" #. type: Plain text #: ../login-utils/chsh.1.adoc:28 -#, no-wrap -msgid "*chsh* is used to change your login shell. If a shell is not given on the command line, *chsh* prompts for one.\n" +msgid "" +"*chsh* is used to change your login shell. If a shell is not given on the " +"command line, *chsh* prompts for one." msgstr "" #. type: Plain text #: ../login-utils/chsh.1.adoc:30 -#, no-wrap -msgid "*chsh* supports non-local entries (kerberos, LDAP, etc.) if linked with libuser, otherwise use *ypchsh*(1), *lchsh*(1) or any other implementation for non-local entries.\n" +msgid "" +"*chsh* supports non-local entries (kerberos, LDAP, etc.) if linked with " +"libuser, otherwise use *ypchsh*(1), *lchsh*(1) or any other implementation " +"for non-local entries." msgstr "" #. type: Labeled list @@ -8628,6 +8678,7 @@ msgid "" "version 2.30; old versions use deprecated *-u*." msgstr "" +#. Do not include::man-common/help-version.adoc[] as both -h and -V were already explicitly given above in more detail. #. type: Title == #: ../login-utils/chsh.1.adoc:49 #, no-wrap @@ -8636,8 +8687,8 @@ msgstr "" #. type: Plain text #: ../login-utils/chsh.1.adoc:52 -#, no-wrap -msgid "*chsh* will accept the full pathname of any executable file on the system.\n" +msgid "" +"*chsh* will accept the full pathname of any executable file on the system." msgstr "" #. type: Plain text @@ -8650,18 +8701,14 @@ msgstr "" #. type: Plain text #: ../login-utils/chsh.1.adoc:69 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*setpriv*(1),\n" #| "*login.defs*(5),\n" #| "*shells*(5),\n" #| "*pam*(8),\n" #| "*runuser*(1)\n" -msgid "" -"*login*(1),\n" -"*login.defs*(5),\n" -"*passwd*(5),\n" -"*shells*(5)\n" +msgid "*login*(1), *login.defs*(5), *passwd*(5), *shells*(5)" msgstr "" "*setpriv*(1),\n" "*login.defs*(5),\n" @@ -8697,22 +8744,27 @@ msgstr "" #. type: Plain text #: ../login-utils/last.1.adoc:33 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*last* [options] [_username_...] [_tty_...]\n" +msgid "*last* [options] [_username_...] [_tty_...]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/last.1.adoc:35 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*lastb* [options] [_username_...] [_tty_...]\n" +msgid "*lastb* [options] [_username_...] [_tty_...]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/last.1.adoc:39 -#, no-wrap -msgid "*last* searches back through the _/var/log/wtmp_ file (or the file designated by the *-f* option) and displays a list of all users logged in (and out) since that file was created. One or more _usernames_ and/or _ttys_ can be given, in which case *last* will show only the entries matching those arguments. Names of _ttys_ can be abbreviated, thus *last 0* is the same as *last tty0*.\n" +msgid "" +"*last* searches back through the _/var/log/wtmp_ file (or the file " +"designated by the *-f* option) and displays a list of all users logged in " +"(and out) since that file was created. One or more _usernames_ and/or _ttys_ " +"can be given, in which case *last* will show only the entries matching those " +"arguments. Names of _ttys_ can be abbreviated, thus *last 0* is the same as " +"*last tty0*." msgstr "" #. type: Plain text @@ -8734,8 +8786,9 @@ msgstr "" #. type: Plain text #: ../login-utils/last.1.adoc:45 -#, no-wrap -msgid "*lastb* is the same as *last*, except that by default it shows a log of the _/var/log/btmp_ file, which contains all the bad login attempts.\n" +msgid "" +"*lastb* is the same as *last*, except that by default it shows a log of the " +"_/var/log/btmp_ file, which contains all the bad login attempts." msgstr "" #. type: Labeled list @@ -8992,18 +9045,14 @@ msgstr "" #. type: Plain text #: ../login-utils/last.1.adoc:135 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*getmntent*(3),\n" #| "*fs*(5),\n" #| "*findmnt*(8),\n" #| "*mount*(8),\n" #| "*swapon*(8)\n" -msgid "" -"*login*(1),\n" -"*wtmp*(5),\n" -"*init*(8),\n" -"*shutdown*(8)\n" +msgid "*login*(1), *wtmp*(5), *init*(8), *shutdown*(8)" msgstr "" "*getmntent*(3),\n" "*fs*(5),\n" @@ -9026,14 +9075,14 @@ msgstr "" #. type: Plain text #: ../login-utils/login.1.adoc:20 -#, no-wrap -msgid "*login* [*-p*] [*-h* _host_] [*-H*] [*-f* _username_|_username_]\n" +msgid "*login* [*-p*] [*-h* _host_] [*-H*] [*-f* _username_|_username_]" msgstr "" #. type: Plain text #: ../login-utils/login.1.adoc:24 -#, no-wrap -msgid "*login* is used when signing onto a system. If no argument is given, *login* prompts for the username.\n" +msgid "" +"*login* is used when signing onto a system. If no argument is given, *login* " +"prompts for the username." msgstr "" #. type: Plain text @@ -9158,10 +9207,18 @@ msgstr "" #. type: Plain text #: ../login-utils/login.1.adoc:60 -#, fuzzy, no-wrap -#| msgid "*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration files. The following configuration items are relevant for *su*{colon}\n" -msgid "*login* reads the _/etc/login.defs_ configuration file (see *login.defs*(5)). Note that the configuration file could be distributed with another package (usually shadow-utils). The following configuration items are relevant for *login*:\n" -msgstr "*su* čte konfigurační soubory _/etc/default/su_ a _/etc/login.defs_. Následující konfigurační položky jsou relevantní pro *su*{colon}\n" +#, fuzzy +#| msgid "" +#| "*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration " +#| "files. The following configuration items are relevant for *su*{colon}\n" +msgid "" +"*login* reads the _/etc/login.defs_ configuration file (see *login." +"defs*(5)). Note that the configuration file could be distributed with " +"another package (usually shadow-utils). The following configuration items " +"are relevant for *login*:" +msgstr "" +"*su* čte konfigurační soubory _/etc/default/su_ a _/etc/login.defs_. " +"Následující konfigurační položky jsou relevantní pro *su*{colon}\n" #. type: Labeled list #: ../login-utils/login.1.adoc:61 @@ -9272,7 +9329,7 @@ msgid "" msgstr "" #. type: Labeled list -#: ../login-utils/login.1.adoc:90 ../login-utils/su.1.adoc:95 +#: ../login-utils/login.1.adoc:90 ../login-utils/su.1.adoc:102 #, no-wrap msgid "*FAIL_DELAY* (number)" msgstr "*FAIL_DELAY* (číslo)" @@ -9411,8 +9468,8 @@ msgid "" msgstr "" #. type: Labeled list -#: ../login-utils/login.1.adoc:128 ../login-utils/runuser.1.adoc:89 -#: ../login-utils/su.1.adoc:98 +#: ../login-utils/login.1.adoc:128 ../login-utils/runuser.1.adoc:92 +#: ../login-utils/su.1.adoc:105 #, no-wrap msgid "*ENV_PATH* (string)" msgstr "*ENV_PATH* (řetězec)" @@ -9431,15 +9488,15 @@ msgstr "" "usr/local/bin:/bin:/usr/bin_." #. type: Labeled list -#: ../login-utils/login.1.adoc:132 ../login-utils/runuser.1.adoc:92 -#: ../login-utils/su.1.adoc:101 +#: ../login-utils/login.1.adoc:132 ../login-utils/runuser.1.adoc:95 +#: ../login-utils/su.1.adoc:108 #, no-wrap msgid "*ENV_ROOTPATH* (string)" msgstr "*ENV_ROOTPATH* (řetězec)" #. type: Labeled list -#: ../login-utils/login.1.adoc:133 ../login-utils/runuser.1.adoc:93 -#: ../login-utils/su.1.adoc:102 +#: ../login-utils/login.1.adoc:133 ../login-utils/runuser.1.adoc:96 +#: ../login-utils/su.1.adoc:109 #, no-wrap msgid "*ENV_SUPATH* (string)" msgstr "*ENV_SUPATH* (řetězec)" @@ -9476,8 +9533,9 @@ msgstr "" #. type: Plain text #: ../login-utils/login.1.adoc:154 -#, no-wrap -msgid "*login* supports configuration via systemd credentials (see https://systemd.io/CREDENTIALS/). *login* reads the following systemd credentials:\n" +msgid "" +"*login* supports configuration via systemd credentials (see https://systemd." +"io/CREDENTIALS/). *login* reads the following systemd credentials:" msgstr "" #. type: Labeled list @@ -9522,17 +9580,9 @@ msgstr "" #. type: Plain text #: ../login-utils/login.1.adoc:180 -#, no-wrap msgid "" -"*mail*(1),\n" -"*passwd*(1),\n" -"*passwd*(5),\n" -"*utmp*(5),\n" -"*environ*(7),\n" -"*getty*(8),\n" -"*init*(8),\n" -"*lastlog*(8),\n" -"*shutdown*(8)\n" +"*mail*(1), *passwd*(1), *passwd*(5), *utmp*(5), *environ*(7), *getty*(8), " +"*init*(8), *lastlog*(8), *shutdown*(8)" msgstr "" #. Copyright 2014 Ondrej Oprala (ondrej.oprala@gmail.com) @@ -9552,8 +9602,9 @@ msgstr "fstab - statická informace o souborových systémech" #. type: Plain text #: ../login-utils/lslogins.1.adoc:18 -#, no-wrap -msgid "*lslogins* [options] [*-s*|*-u*[=_UID_]] [*-g* _groups_] [*-l* _logins_] [_username_]\n" +msgid "" +"*lslogins* [options] [*-s*|*-u*[=_UID_]] [*-g* _groups_] [*-l* _logins_] " +"[_username_]" msgstr "" #. type: Plain text @@ -9728,7 +9779,7 @@ msgid "*--noheadings*" msgstr "" #. type: Plain text -#: ../login-utils/lslogins.1.adoc:65 ../misc-utils/findmnt.8.adoc:98 +#: ../login-utils/lslogins.1.adoc:65 ../misc-utils/findmnt.8.adoc:95 #: ../misc-utils/lsblk.8.adoc:90 ../misc-utils/lslocks.8.adoc:48 #: ../misc-utils/uuidparse.1.adoc:55 ../misc-utils/wipefs.8.adoc:57 #: ../sys-utils/lsipc.1.adoc:61 ../sys-utils/lsmem.1.adoc:44 @@ -9848,7 +9899,7 @@ msgid "Alternate path for *lastlog*(8)." msgstr "" #. type: Labeled list -#: ../login-utils/lslogins.1.adoc:98 ../misc-utils/findmnt.8.adoc:187 +#: ../login-utils/lslogins.1.adoc:98 ../misc-utils/findmnt.8.adoc:184 #: ../misc-utils/lsblk.8.adoc:174 ../sys-utils/lsipc.1.adoc:83 #, fuzzy, no-wrap #| msgid "*-h*, *--help*" @@ -9897,8 +9948,8 @@ msgid "if OK," msgstr "" #. type: Labeled list -#: ../login-utils/lslogins.1.adoc:112 ../login-utils/runuser.1.adoc:107 -#: ../login-utils/su.1.adoc:116 ../misc-utils/lsblk.8.adoc:188 +#: ../login-utils/lslogins.1.adoc:112 ../login-utils/runuser.1.adoc:110 +#: ../login-utils/su.1.adoc:123 ../misc-utils/lsblk.8.adoc:188 #: ../sys-utils/fstrim.8.adoc:78 ../sys-utils/hwclock.8.adoc:295 #: ../sys-utils/lsipc.1.adoc:91 #, no-wrap @@ -9981,13 +10032,13 @@ msgstr "" #. type: Title == #: ../login-utils/lslogins.1.adoc:135 ../login-utils/nologin.8.adoc:59 -#: ../login-utils/runuser.1.adoc:129 ../login-utils/su.1.adoc:145 +#: ../login-utils/runuser.1.adoc:132 ../login-utils/su.1.adoc:152 #: ../login-utils/vipw.8.adoc:68 ../misc-utils/cal.1.adoc:173 -#: ../misc-utils/look.1.adoc:90 ../misc-utils/lsfd.1.adoc:697 -#: ../sys-utils/fstab.5.adoc:135 ../sys-utils/lsipc.1.adoc:97 -#: ../sys-utils/mount.8.adoc:1666 ../sys-utils/renice.1.adoc:92 +#: ../misc-utils/look.1.adoc:90 ../misc-utils/lsfd.1.adoc:692 +#: ../sys-utils/fstab.5.adoc:139 ../sys-utils/lsipc.1.adoc:97 +#: ../sys-utils/mount.8.adoc:1663 ../sys-utils/renice.1.adoc:92 #: ../sys-utils/rtcwake.8.adoc:118 ../sys-utils/swapon.8.adoc:163 -#: ../sys-utils/umount.8.adoc:169 ../term-utils/mesg.1.adoc:91 +#: ../sys-utils/umount.8.adoc:171 ../term-utils/mesg.1.adoc:91 #: ../term-utils/script.1.adoc:151 ../term-utils/wall.1.adoc:77 #: ../term-utils/write.1.adoc:78 ../text-utils/col.1.adoc:123 #: ../text-utils/colcrt.1.adoc:66 ../text-utils/colrm.1.adoc:63 @@ -10012,62 +10063,69 @@ msgstr "" #. type: Plain text #: ../login-utils/lslogins.1.adoc:150 -#, no-wrap -msgid "" -"*group*(5),\n" -"*passwd*(5),\n" -"*shadow*(5),\n" -"*utmp*(5)\n" +#, fuzzy +#| msgid "" +#| "*mesg*(1),\n" +#| "*talk*(1),\n" +#| "*who*(1)\n" +msgid "*group*(5), *passwd*(5), *shadow*(5), *utmp*(5)" msgstr "" +"*mesg*(1),\n" +"*talk*(1),\n" +"*who*(1)\n" +#. No copyright is claimed. This code is in the public domain; do with +#. it what you wish. +#. po4a: entry man manual #. Original author unknown. This man page is in the public domain. #. Modified Sat Oct 9 17:46:48 1993 by faith@cs.unc.edu #. type: Title = -#: ../login-utils/newgrp.1.adoc:4 +#: ../login-utils/newgrp.1.adoc:8 #, no-wrap msgid "newgrp(1)" msgstr "" #. type: Plain text -#: ../login-utils/newgrp.1.adoc:14 +#: ../login-utils/newgrp.1.adoc:18 msgid "newgrp - log in to a new group" msgstr "" #. type: Plain text -#: ../login-utils/newgrp.1.adoc:18 -#, no-wrap -msgid "*newgrp* [_group_]\n" -msgstr "" +#: ../login-utils/newgrp.1.adoc:22 +#, fuzzy +#| msgid "*-g*, **--group**=__group__" +msgid "*newgrp* [_group_]" +msgstr "*-g*, **--group**=__skupina__" #. type: Plain text -#: ../login-utils/newgrp.1.adoc:22 -#, no-wrap -msgid "*newgrp* changes the group identification of its caller, analogously to *login*(1). The same person remains logged in, and the current directory is unchanged, but calculations of access permissions to files are performed with respect to the new group ID.\n" +#: ../login-utils/newgrp.1.adoc:26 +msgid "" +"*newgrp* changes the group identification of its caller, analogously to " +"*login*(1). The same person remains logged in, and the current directory is " +"unchanged, but calculations of access permissions to files are performed " +"with respect to the new group ID." msgstr "" #. type: Plain text -#: ../login-utils/newgrp.1.adoc:24 +#: ../login-utils/newgrp.1.adoc:28 msgid "If no group is specified, the GID is changed to the login GID." msgstr "" #. type: Plain text -#: ../login-utils/newgrp.1.adoc:33 +#: ../login-utils/newgrp.1.adoc:37 msgid "_/etc/group_, _/etc/passwd_" msgstr "" #. type: Plain text -#: ../login-utils/newgrp.1.adoc:37 +#: ../login-utils/newgrp.1.adoc:41 msgid "" "Originally by Michael Haardt. Currently maintained by mailto:poe@daimi.aau." "dk[Peter Orbaek]." msgstr "" #. type: Plain text -#: ../login-utils/newgrp.1.adoc:42 -#, no-wrap -msgid "" -"*login*(1),\n" -"*group*(5)\n" +#: ../login-utils/newgrp.1.adoc:46 +msgid "*login*(1), *group*(5)" msgstr "" #. type: Title = @@ -10083,14 +10141,15 @@ msgstr "" #. type: Plain text #: ../login-utils/nologin.8.adoc:16 -#, no-wrap -msgid "*nologin* [*-V*] [*-h*]\n" +msgid "*nologin* [*-V*] [*-h*]" msgstr "" #. type: Plain text #: ../login-utils/nologin.8.adoc:20 -#, no-wrap -msgid "*nologin* displays a message that an account is not available and exits non-zero. It is intended as a replacement shell field to deny login access to an account.\n" +msgid "" +"*nologin* displays a message that an account is not available and exits non-" +"zero. It is intended as a replacement shell field to deny login access to an " +"account." msgstr "" #. type: Plain text @@ -10105,74 +10164,78 @@ msgstr "" msgid "The exit status returned by *nologin* is always 1." msgstr "" -#. type: Plain text -#: ../login-utils/nologin.8.adoc:28 +#. type: Labeled list +#: ../login-utils/nologin.8.adoc:28 ../sys-utils/blkpr.8.adoc:25 +#: ../sys-utils/flock.1.adoc:56 ../term-utils/script.1.adoc:69 #, fuzzy, no-wrap #| msgid "*-c*, **--command**=__command__" -msgid "*-c*, *--command* _command_\n" +msgid "*-c*, *--command* _command_" msgstr "*-c*, **--command**=__příkaz__" #. type: Plain text #: ../login-utils/nologin.8.adoc:30 -#, no-wrap -msgid "*--init-file*\n" -msgstr "" +#, fuzzy +#| msgid "*-f*, *--fast*" +msgid "*--init-file*" +msgstr "*-f*, *--fast*" #. type: Plain text #: ../login-utils/nologin.8.adoc:32 -#, no-wrap -msgid "*-i* *--interactive*\n" -msgstr "" +#, fuzzy +#| msgid "*-V*, *--version*" +msgid "*-i* *--interactive*" +msgstr "*-V*, *--version*" #. type: Plain text #: ../login-utils/nologin.8.adoc:34 -#, no-wrap -msgid "*--init-file* _file_\n" -msgstr "" +#, fuzzy +#| msgid "*-f*, *--fast*" +msgid "*--init-file* _file_" +msgstr "*-f*, *--fast*" -#. type: Plain text -#: ../login-utils/nologin.8.adoc:36 +#. type: Labeled list +#: ../login-utils/nologin.8.adoc:36 ../misc-utils/rename.1.adoc:47 #, fuzzy, no-wrap #| msgid "*-V*, *--version*" -msgid "*-i*, *--interactive*\n" +msgid "*-i*, *--interactive*" msgstr "*-V*, *--version*" #. type: Plain text #: ../login-utils/nologin.8.adoc:38 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*-*, *-l*, *--login*" -msgid "*-l*, *--login*\n" +msgid "*-l*, *--login*" msgstr "*-*, *-l*, *--login*" #. type: Plain text #: ../login-utils/nologin.8.adoc:40 -#, no-wrap -msgid "*--noprofile*\n" +msgid "*--noprofile*" msgstr "" #. type: Plain text #: ../login-utils/nologin.8.adoc:42 -#, no-wrap -msgid "*--norc*\n" +msgid "*--norc*" msgstr "" #. type: Plain text #: ../login-utils/nologin.8.adoc:44 -#, no-wrap -msgid "*--posix*\n" -msgstr "" +#, fuzzy +#| msgid "*-P*, *--pty*" +msgid "*--posix*" +msgstr "*-P*, *--pty*" #. type: Plain text #: ../login-utils/nologin.8.adoc:46 -#, no-wrap -msgid "*--rcfile* _file_\n" -msgstr "" +#, fuzzy +#| msgid "*-f*, *--fast*" +msgid "*--rcfile* _file_" +msgstr "*-f*, *--fast*" #. type: Plain text #: ../login-utils/nologin.8.adoc:48 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*-V*, *--version*" -msgid "*-r*, *--restricted*\n" +msgid "*-r*, *--restricted*" msgstr "*-V*, *--version*" #. type: Plain text @@ -10182,14 +10245,19 @@ msgstr "" #. type: Plain text #: ../login-utils/nologin.8.adoc:56 -#, no-wrap -msgid "*nologin* is a per-account way to disable login (usually used for system accounts like http or ftp). *nologin* uses _/etc/nologin.txt_ as an optional source for a non-default message, the login access is always refused independently of the file.\n" +msgid "" +"*nologin* is a per-account way to disable login (usually used for system " +"accounts like http or ftp). *nologin* uses _/etc/nologin.txt_ as an optional " +"source for a non-default message, the login access is always refused " +"independently of the file." msgstr "" #. type: Plain text #: ../login-utils/nologin.8.adoc:58 -#, no-wrap -msgid "*pam_nologin*(8) PAM module usually prevents all non-root users from logging into the system. *pam_nologin*(8) functionality is controlled by _/var/run/nologin_ or the _/etc/nologin_ file.\n" +msgid "" +"*pam_nologin*(8) PAM module usually prevents all non-root users from logging " +"into the system. *pam_nologin*(8) functionality is controlled by _/var/run/" +"nologin_ or the _/etc/nologin_ file." msgstr "" #. type: Plain text @@ -10201,11 +10269,7 @@ msgstr "Předchůdce formátu souboru *fstab* se objevil v 4.0BSD." #. type: Plain text #: ../login-utils/nologin.8.adoc:72 -#, no-wrap -msgid "" -"*login*(1),\n" -"*passwd*(5),\n" -"*pam_nologin*(8)\n" +msgid "*login*(1), *passwd*(5), *pam_nologin*(8)" msgstr "" #. type: Title = @@ -10223,22 +10287,28 @@ msgstr "su - spustí shell pod jiným uživatelským a skupinovým ID" #. type: Plain text #: ../login-utils/runuser.1.adoc:16 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*runuser* [options] *-u* _user_ [[--] _command_ [_argument_...]]\n" +msgid "*runuser* [options] *-u* _user_ [[--] _command_ [_argument_...]]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/runuser.1.adoc:18 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*runuser* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*runuser* [options] [*-*] [_user_ [_argument_...]]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/runuser.1.adoc:22 -#, no-wrap -msgid "*runuser* can be used to run commands with a substitute user and group ID. If the option *-u* is not given, *runuser* falls back to *su*-compatible semantics and a shell is executed. The difference between the commands *runuser* and *su* is that *runuser* does not ask for a password (because it may be executed by the root user only) and it uses a different PAM configuration. The command *runuser* does not have to be installed with set-user-ID permissions.\n" +msgid "" +"*runuser* can be used to run commands with a substitute user and group ID. " +"If the option *-u* is not given, *runuser* falls back to *su*-compatible " +"semantics and a shell is executed. The difference between the commands " +"*runuser* and *su* is that *runuser* does not ask for a password (because it " +"may be executed by the root user only) and it uses a different PAM " +"configuration. The command *runuser* does not have to be installed with set-" +"user-ID permissions." msgstr "" #. type: Plain text @@ -10375,7 +10445,7 @@ msgid "*-*, *-l*, *--login*" msgstr "*-*, *-l*, *--login*" #. type: Plain text -#: ../login-utils/runuser.1.adoc:49 ../login-utils/su.1.adoc:50 +#: ../login-utils/runuser.1.adoc:49 msgid "" "Start the shell as a login shell with an environment similar to a real login:" msgstr "" @@ -10396,7 +10466,7 @@ msgstr "" "whitelist-environment*" #. type: Plain text -#: ../login-utils/runuser.1.adoc:52 ../login-utils/su.1.adoc:53 +#: ../login-utils/runuser.1.adoc:52 ../login-utils/su.1.adoc:60 msgid "" "initializes the environment variables *HOME*, *SHELL*, *USER*, *LOGNAME*, " "and *PATH*" @@ -10404,19 +10474,19 @@ msgstr "" "inicializuje proměnné prostředí *HOME*, *SHELL*, *USER*, *LOGNAME* a *PATH*" #. type: Plain text -#: ../login-utils/runuser.1.adoc:53 ../login-utils/su.1.adoc:54 +#: ../login-utils/runuser.1.adoc:53 ../login-utils/su.1.adoc:61 msgid "changes to the target user's home directory" msgstr "přejde do domovského adresáře cílového uživatele" #. type: Plain text -#: ../login-utils/runuser.1.adoc:54 ../login-utils/su.1.adoc:55 +#: ../login-utils/runuser.1.adoc:54 ../login-utils/su.1.adoc:62 msgid "" "sets argv[0] of the shell to '*-*' in order to make the shell a login shell" msgstr "" "nastaví argv[0] shellu na '*-*', aby se shell stal shellem přihlašovacím" #. type: Labeled list -#: ../login-utils/runuser.1.adoc:55 ../login-utils/su.1.adoc:56 +#: ../login-utils/runuser.1.adoc:55 ../login-utils/su.1.adoc:63 #, no-wrap msgid "*-m*, *-p*, *--preserve-environment*" msgstr "*-m*, *-p*, *--preserve-environment*" @@ -10435,7 +10505,7 @@ msgstr "" "*LOGNAME*. Tento přepínač se ignoruje, byl-li uveden přepínač *--login*." #. type: Labeled list -#: ../login-utils/runuser.1.adoc:58 ../login-utils/su.1.adoc:59 +#: ../login-utils/runuser.1.adoc:58 ../login-utils/su.1.adoc:66 #, no-wrap msgid "*-P*, *--pty*" msgstr "*-P*, *--pty*" @@ -10457,9 +10527,9 @@ msgid "" "better security as the user does not share a terminal with the original " "session. This can be used to avoid TIOCSTI ioctl terminal injection and " "other security attacks against terminal file descriptors. The entire session " -"can also be moved to the background (e.g., *runuser --pty* *-u* _username_ " -"*--* _command_ *&*). If the pseudo-terminal is enabled, then *runuser* works " -"as a proxy between the sessions (sync stdin and stdout)." +"can also be moved to the background (e.g., *runuser --pty* *-u* _user_ *--* " +"_command_ *&*). If the pseudo-terminal is enabled, then *runuser* works as a " +"proxy between the sessions (sync stdin and stdout)." msgstr "" "Pro relaci vytvoří pseudoterminál. Nezávislý terminál poskytuje větší " "bezpečí, neboť uživatel nesdílí terminál s původní relací. Toho lze využít " @@ -10496,7 +10566,7 @@ msgid "*-s*, *--shell*=_shell_" msgstr "*-s*, **--shell**=__shell__" #. type: Plain text -#: ../login-utils/runuser.1.adoc:65 ../login-utils/su.1.adoc:66 +#: ../login-utils/runuser.1.adoc:65 msgid "" "Run the specified _shell_ instead of the default. The shell to run is " "selected according to the following rules, in order:" @@ -10505,7 +10575,7 @@ msgstr "" "vybírá na základě následujících pravidel v tomto pořadí:" #. type: Plain text -#: ../login-utils/runuser.1.adoc:67 ../login-utils/su.1.adoc:68 +#: ../login-utils/runuser.1.adoc:67 ../login-utils/su.1.adoc:77 msgid "the shell specified with *--shell*" msgstr "shell zadaný pomocí *--shell*" @@ -10523,12 +10593,12 @@ msgstr "" "environment*" #. type: Plain text -#: ../login-utils/runuser.1.adoc:69 ../login-utils/su.1.adoc:70 +#: ../login-utils/runuser.1.adoc:69 ../login-utils/su.1.adoc:79 msgid "the shell listed in the passwd entry of the target user" msgstr "shell uvedený v záznamu passwd cílového uživatele" #. type: Plain text -#: ../login-utils/runuser.1.adoc:70 ../login-utils/su.1.adoc:71 +#: ../login-utils/runuser.1.adoc:70 ../login-utils/su.1.adoc:80 msgid "/bin/sh" msgstr "/bin/sh" @@ -10549,25 +10619,25 @@ msgstr "" "volajícím není root." #. type: Labeled list -#: ../login-utils/runuser.1.adoc:73 ../login-utils/su.1.adoc:74 +#: ../login-utils/runuser.1.adoc:73 ../login-utils/su.1.adoc:81 #, no-wrap msgid "**--session-command=**__command__" msgstr "**--session-command=**__příkaz__" #. type: Plain text -#: ../login-utils/runuser.1.adoc:75 ../login-utils/su.1.adoc:76 +#: ../login-utils/runuser.1.adoc:75 ../login-utils/su.1.adoc:83 msgid "Same as *-c*, but do not create a new session. (Discouraged.)" msgstr "Stejné jako *-c*, ale nevytvoří novou relaci. (Nedoporučuje se.)" #. type: Labeled list -#: ../login-utils/runuser.1.adoc:76 ../login-utils/su.1.adoc:77 +#: ../login-utils/runuser.1.adoc:76 ../login-utils/su.1.adoc:84 #, fuzzy, no-wrap #| msgid "*-P*, *--pty*" msgid "*-T*, *--no-pty**" msgstr "*-P*, *--pty*" #. type: Plain text -#: ../login-utils/runuser.1.adoc:79 ../login-utils/su.1.adoc:80 +#: ../login-utils/runuser.1.adoc:79 ../login-utils/su.1.adoc:87 msgid "" "Do not create a pseudo-terminal, opposite of *--pty* and *-P*. Note that " "running without a pseudo-terminal opens the security risk of privilege " @@ -10577,12 +10647,26 @@ msgstr "" #. type: Labeled list #: ../login-utils/runuser.1.adoc:80 #, fuzzy, no-wrap +#| msgid "*-h*, *--help*" +msgid "*-u*, *--user*=_user_" +msgstr "*-h*, *--help*" + +#. type: Plain text +#: ../login-utils/runuser.1.adoc:82 +msgid "" +"Run _command_ with the effective user ID and group ID of the user name " +"_user_." +msgstr "" + +#. type: Labeled list +#: ../login-utils/runuser.1.adoc:83 +#, fuzzy, no-wrap #| msgid "*-w*, **--whitelist-environment**=__list__" msgid "*-w*, *--whitelist-environment*=_list_" msgstr "*-w*, **--whitelist-environment**=__seznam__" #. type: Plain text -#: ../login-utils/runuser.1.adoc:82 ../login-utils/su.1.adoc:83 +#: ../login-utils/runuser.1.adoc:85 ../login-utils/su.1.adoc:90 msgid "" "Don't reset the environment variables specified in the comma-separated " "_list_ when clearing the environment for *--login*. The whitelist is ignored " @@ -10593,20 +10677,27 @@ msgstr "" "prostředí *HOME*, *SHELL*, *USER*, *LOGNAME* a *PATH*." #. type: Title == -#: ../login-utils/runuser.1.adoc:85 ../login-utils/su.1.adoc:90 +#: ../login-utils/runuser.1.adoc:88 ../login-utils/su.1.adoc:97 #, no-wrap msgid "CONFIG FILES" msgstr "KONFIGURAČNÍ SOUBORY" #. type: Plain text -#: ../login-utils/runuser.1.adoc:88 -#, fuzzy, no-wrap -#| msgid "*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration files. The following configuration items are relevant for *su*{colon}\n" -msgid "*runuser* reads the _/etc/default/runuser_ and _/etc/login.defs_ configuration files. The following configuration items are relevant for *runuser*:\n" -msgstr "*su* čte konfigurační soubory _/etc/default/su_ a _/etc/login.defs_. Následující konfigurační položky jsou relevantní pro *su*{colon}\n" +#: ../login-utils/runuser.1.adoc:91 +#, fuzzy +#| msgid "" +#| "*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration " +#| "files. The following configuration items are relevant for *su*{colon}\n" +msgid "" +"*runuser* reads the _/etc/default/runuser_ and _/etc/login.defs_ " +"configuration files. The following configuration items are relevant for " +"*runuser*:" +msgstr "" +"*su* čte konfigurační soubory _/etc/default/su_ a _/etc/login.defs_. " +"Následující konfigurační položky jsou relevantní pro *su*{colon}\n" #. type: Plain text -#: ../login-utils/runuser.1.adoc:91 +#: ../login-utils/runuser.1.adoc:94 #, fuzzy #| msgid "" #| "Defines the *PATH* environment variable for a regular user. The default " @@ -10619,7 +10710,7 @@ msgstr "" "usr/local/bin:/bin:/usr/bin_." #. type: Plain text -#: ../login-utils/runuser.1.adoc:95 ../login-utils/su.1.adoc:104 +#: ../login-utils/runuser.1.adoc:98 ../login-utils/su.1.adoc:111 msgid "" "Defines the *PATH* environment variable for root. *ENV_SUPATH* takes " "precedence. The default value is _/usr/local/sbin:/usr/local/bin:/sbin:/bin:/" @@ -10630,13 +10721,13 @@ msgstr "" "sbin:/usr/bin_." #. type: Labeled list -#: ../login-utils/runuser.1.adoc:96 ../login-utils/su.1.adoc:105 +#: ../login-utils/runuser.1.adoc:99 ../login-utils/su.1.adoc:112 #, no-wrap msgid "*ALWAYS_SET_PATH* (boolean)" msgstr "*ALWAYS_SET_PATH* (pravdivostní hodnota)" #. type: Plain text -#: ../login-utils/runuser.1.adoc:98 +#: ../login-utils/runuser.1.adoc:101 #, fuzzy #| msgid "" #| "If set to _yes_ and *--login* and *--preserve-environment* were not " @@ -10649,7 +10740,7 @@ msgstr "" "zadány, *su* inicializuje *PATH*." #. type: Plain text -#: ../login-utils/runuser.1.adoc:100 ../login-utils/su.1.adoc:109 +#: ../login-utils/runuser.1.adoc:103 ../login-utils/su.1.adoc:116 msgid "" "The environment variable *PATH* may be different on systems where _/bin_ and " "_/sbin_ are merged into _/usr_; this variable is also affected by the *--" @@ -10660,97 +10751,105 @@ msgstr "" "příkazové řádky *--login* a nastavením systému PAM (např. *pam_env*(8))." #. type: Plain text -#: ../login-utils/runuser.1.adoc:104 -#, fuzzy, no-wrap -#| msgid "*su* normally returns the exit status of the command it executed. If the command was killed by a signal, *su* returns the number of the signal plus 128.\n" -msgid "*runuser* normally returns the exit status of the command it executed. If the command was killed by a signal, *runuser* returns the number of the signal plus 128.\n" -msgstr "Nástroj *su* běžně vrací návratovou hodnotu příkazu, který spustil. Byl-li příkaz zabit signálem, *su* vrátí číslo signálu plus 128.\n" +#: ../login-utils/runuser.1.adoc:107 +#, fuzzy +#| msgid "" +#| "*su* normally returns the exit status of the command it executed. If the " +#| "command was killed by a signal, *su* returns the number of the signal " +#| "plus 128.\n" +msgid "" +"*runuser* normally returns the exit status of the command it executed. If " +"the command was killed by a signal, *runuser* returns the number of the " +"signal plus 128." +msgstr "" +"Nástroj *su* běžně vrací návratovou hodnotu příkazu, který spustil. Byl-li " +"příkaz zabit signálem, *su* vrátí číslo signálu plus 128.\n" #. type: Plain text -#: ../login-utils/runuser.1.adoc:106 +#: ../login-utils/runuser.1.adoc:109 #, fuzzy #| msgid "Exit status generated by *su* itself:" msgid "Exit status generated by *runuser* itself:" msgstr "Návratová hodnota vyrobená nástrojem *su* samotným:" #. type: Plain text -#: ../login-utils/runuser.1.adoc:109 ../login-utils/su.1.adoc:118 +#: ../login-utils/runuser.1.adoc:112 ../login-utils/su.1.adoc:125 msgid "Generic error before executing the requested command" msgstr "Obecná chyba před spuštěním požadovaného příkazu" #. type: Labeled list -#: ../login-utils/runuser.1.adoc:109 ../login-utils/su.1.adoc:118 +#: ../login-utils/runuser.1.adoc:112 ../login-utils/su.1.adoc:125 #, no-wrap msgid "126" msgstr "126" #. type: Plain text -#: ../login-utils/runuser.1.adoc:111 ../login-utils/su.1.adoc:120 +#: ../login-utils/runuser.1.adoc:114 ../login-utils/su.1.adoc:127 msgid "The requested command could not be executed" msgstr "Požadovaný příkaz nebylo možné spustit" #. type: Labeled list -#: ../login-utils/runuser.1.adoc:111 ../login-utils/su.1.adoc:120 +#: ../login-utils/runuser.1.adoc:114 ../login-utils/su.1.adoc:127 #, no-wrap msgid "127" msgstr "127" #. type: Plain text -#: ../login-utils/runuser.1.adoc:113 ../login-utils/su.1.adoc:122 +#: ../login-utils/runuser.1.adoc:116 ../login-utils/su.1.adoc:129 msgid "The requested command was not found" msgstr "Požadovaný příkaz nebyl nalezen" #. type: Labeled list -#: ../login-utils/runuser.1.adoc:117 +#: ../login-utils/runuser.1.adoc:120 #, fuzzy, no-wrap #| msgid "_/etc/pam.d/su_" msgid "_/etc/pam.d/runuser_" msgstr "_/etc/pam.d/su_" #. type: Plain text -#: ../login-utils/runuser.1.adoc:119 ../login-utils/su.1.adoc:127 +#: ../login-utils/runuser.1.adoc:122 ../login-utils/su.1.adoc:134 msgid "default PAM configuration file" msgstr "výchozí konfigurační soubor PAM" #. type: Labeled list -#: ../login-utils/runuser.1.adoc:120 +#: ../login-utils/runuser.1.adoc:123 #, fuzzy, no-wrap #| msgid "_/etc/pam.d/su-l_" msgid "_/etc/pam.d/runuser-l_" msgstr "_/etc/pam.d/su-l_" #. type: Plain text -#: ../login-utils/runuser.1.adoc:122 ../login-utils/su.1.adoc:130 +#: ../login-utils/runuser.1.adoc:125 ../login-utils/su.1.adoc:137 msgid "PAM configuration file if *--login* is specified" msgstr "konfigurační soubor PAM, byl-li zadán *--login*" #. type: Labeled list -#: ../login-utils/runuser.1.adoc:123 +#: ../login-utils/runuser.1.adoc:126 #, fuzzy, no-wrap #| msgid "_/etc/default/su_" msgid "_/etc/default/runuser_" msgstr "_/etc/default/su_" #. type: Plain text -#: ../login-utils/runuser.1.adoc:125 +#: ../login-utils/runuser.1.adoc:128 #, fuzzy #| msgid "command specific logindef config file" msgid "runuser specific logindef config file" msgstr "konfigurační soubor logindef určený tento nástroj" #. type: Labeled list -#: ../login-utils/runuser.1.adoc:126 ../login-utils/su.1.adoc:134 +#: ../login-utils/runuser.1.adoc:129 ../login-utils/su.1.adoc:141 #, no-wrap msgid "_/etc/login.defs_" msgstr "_/etc/login.defs_" #. type: Plain text -#: ../login-utils/runuser.1.adoc:128 ../login-utils/su.1.adoc:136 +#: ../login-utils/runuser.1.adoc:131 ../login-utils/su.1.adoc:143 msgid "global logindef config file" msgstr "globální konfigurační soubor logindef" #. type: Plain text -#: ../login-utils/runuser.1.adoc:132 +#: ../login-utils/runuser.1.adoc:135 #, fuzzy #| msgid "" #| "This *su* command was derived from coreutils' *su*, which was based on an " @@ -10766,20 +10865,15 @@ msgstr "" "Žákem." #. type: Plain text -#: ../login-utils/runuser.1.adoc:140 -#, fuzzy, no-wrap +#: ../login-utils/runuser.1.adoc:143 +#, fuzzy #| msgid "" #| "*setpriv*(1),\n" #| "*login.defs*(5),\n" #| "*shells*(5),\n" #| "*pam*(8),\n" #| "*runuser*(1)\n" -msgid "" -"*setpriv*(1),\n" -"*su*(1),\n" -"*login.defs*(5),\n" -"*shells*(5),\n" -"*pam*(8)\n" +msgid "*setpriv*(1), *su*(1), *login.defs*(5), *shells*(5), *pam*(8)" msgstr "" "*setpriv*(1),\n" "*login.defs*(5),\n" @@ -10800,14 +10894,17 @@ msgstr "su - spustí shell pod jiným uživatelským a skupinovým ID" #. type: Plain text #: ../login-utils/su.1.adoc:17 -#, no-wrap -msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*su* [options] [*-*] [_user_ [_argument_...]]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/su.1.adoc:21 -#, no-wrap -msgid "*su* allows commands to be run with a substitute user and group ID.\n" +#, fuzzy +#| msgid "" +#| "*su* allows commands to be run with a substitute user and group ID.\n" +msgid "*su* allows commands to be run with a substitute user and group ID." msgstr "*su* dovoluje příkazům běžet se změněným ID uživatele a skupiny.\n" #. type: Plain text @@ -10849,9 +10946,25 @@ msgstr "" #. type: Plain text #: ../login-utils/su.1.adoc:29 -#, no-wrap -msgid "*su* is mostly designed for unprivileged users, the recommended solution for privileged users (e.g., scripts executed by root) is to use non-set-user-ID command *runuser*(1) that does not require authentication and provides separate PAM configuration. If the PAM session is not required at all then the recommended solution is to use command *setpriv*(1).\n" -msgstr "*su* je navrženo pro neprivilegované uživatele. Doporučené řešení pro privilegované uživatele (např. skripty spouštěné rootem) je použít program bez SUID *runuser*(1), který nepotřebuje autentizaci a přitom poskytuje samostatné nastavení PAM. Není-li relace PAM vůbec potřeba, pak doporučeným řešením je příkaz *setpriv*(1).\n" +#, fuzzy +#| msgid "" +#| "*su* is mostly designed for unprivileged users, the recommended solution " +#| "for privileged users (e.g., scripts executed by root) is to use non-set-" +#| "user-ID command *runuser*(1) that does not require authentication and " +#| "provides separate PAM configuration. If the PAM session is not required " +#| "at all then the recommended solution is to use command *setpriv*(1).\n" +msgid "" +"*su* is mostly designed for unprivileged users, the recommended solution for " +"privileged users (e.g., scripts executed by root) is to use non-set-user-ID " +"command *runuser*(1) that does not require authentication and provides " +"separate PAM configuration. If the PAM session is not required at all then " +"the recommended solution is to use command *setpriv*(1)." +msgstr "" +"*su* je navrženo pro neprivilegované uživatele. Doporučené řešení pro " +"privilegované uživatele (např. skripty spouštěné rootem) je použít program " +"bez SUID *runuser*(1), který nepotřebuje autentizaci a přitom poskytuje " +"samostatné nastavení PAM. Není-li relace PAM vůbec potřeba, pak doporučeným " +"řešením je příkaz *setpriv*(1).\n" #. type: Plain text #: ../login-utils/su.1.adoc:31 @@ -10900,7 +11013,33 @@ msgid "*-G*, **--supp-group**=__group__" msgstr "*-G*, **--supp-group**=__skupina__" #. type: Plain text -#: ../login-utils/su.1.adoc:52 +#: ../login-utils/su.1.adoc:50 +#, fuzzy +#| msgid "" +#| "Start the shell as a login shell with an environment similar to a real " +#| "login:" +msgid "" +"Start the shell as a login shell with an environment similar to a real login." +msgstr "" +"Spustí shell jako přihlašovací shell s prostředím podobným skutečnému " +"přihlášení:" + +#. type: Plain text +#: ../login-utils/su.1.adoc:55 +msgid "" +"Note that on systemd-based systems, a new session may be defined as a real " +"entry point to the system. However, *su* does not create a real session (by " +"PAM) from this point of view. You need to use tools like *systemd-run* or " +"*machinectl* to initiate a complete, real session." +msgstr "" + +#. type: Plain text +#: ../login-utils/su.1.adoc:57 +msgid "*su* does:" +msgstr "" + +#. type: Plain text +#: ../login-utils/su.1.adoc:59 msgid "" "clears all the environment variables except *TERM* and variables specified " "by *--whitelist-environment*" @@ -10909,7 +11048,7 @@ msgstr "" "whitelist-environment*" #. type: Plain text -#: ../login-utils/su.1.adoc:58 +#: ../login-utils/su.1.adoc:65 msgid "" "Preserve the entire environment, i.e., do not set *HOME*, *SHELL*, *USER* or " "*LOGNAME*. This option is ignored if the option *--login* is specified." @@ -10918,15 +11057,25 @@ msgstr "" "*LOGNAME*. Tento přepínač se ignoruje, byl-li uveden přepínač *--login*." #. type: Plain text -#: ../login-utils/su.1.adoc:61 +#: ../login-utils/su.1.adoc:68 +#, fuzzy +#| msgid "" +#| "Create a pseudo-terminal for the session. The independent terminal " +#| "provides better security as the user does not share a terminal with the " +#| "original session. This can be used to avoid *TIOCSTI* ioctl terminal " +#| "injection and other security attacks against terminal file descriptors. " +#| "The entire session can also be moved to the background (e.g., *su --pty* " +#| "**-** __username__ *-c* _application_ *&*). If the pseudo-terminal is " +#| "enabled, then *su* works as a proxy between the sessions (sync stdin and " +#| "stdout)." msgid "" "Create a pseudo-terminal for the session. The independent terminal provides " "better security as the user does not share a terminal with the original " "session. This can be used to avoid *TIOCSTI* ioctl terminal injection and " "other security attacks against terminal file descriptors. The entire session " -"can also be moved to the background (e.g., *su --pty* **-** __username__ *-" -"c* _application_ *&*). If the pseudo-terminal is enabled, then *su* works as " -"a proxy between the sessions (sync stdin and stdout)." +"can also be moved to the background (e.g., *su --pty* **-** __user__ *-c* " +"_application_ *&*). If the pseudo-terminal is enabled, then *su* works as a " +"proxy between the sessions (sync stdin and stdout)." msgstr "" "Pro relaci vytvoří pseudoterminál. Nezávislý terminál poskytuje větší " "bezpečí, neboť uživatel nesdílí terminál s původní relací. Toho lze využít " @@ -10937,7 +11086,7 @@ msgstr "" "prostředník mezi relacemi (synchronizovat standardní vstup a výstup)." #. type: Plain text -#: ../login-utils/su.1.adoc:63 +#: ../login-utils/su.1.adoc:70 msgid "" "This feature is mostly designed for interactive sessions. If the standard " "input is not a terminal, but for example a pipe (e.g., *echo \"date\" | su --" @@ -10950,45 +11099,63 @@ msgstr "" "výstupu." #. type: Labeled list -#: ../login-utils/su.1.adoc:64 +#: ../login-utils/su.1.adoc:71 #, no-wrap msgid "*-s*, **--shell**=__shell__" msgstr "*-s*, **--shell**=__shell__" -#. type: Plain text -#: ../login-utils/su.1.adoc:69 -msgid "" -"the shell specified in the environment variable *SHELL*, if the *--preserve-" -"environment* option is used" -msgstr "" -"shell určený proměnnou prostředí *SHELL*, je-li použit přepínač *--preserve-" -"environment*" - #. type: Plain text #: ../login-utils/su.1.adoc:73 +#, fuzzy +#| msgid "" +#| "If the target user has a restricted shell (i.e., not listed in _/etc/" +#| "shells_), the *--shell* option and the *SHELL* environment variables are " +#| "ignored unless the calling user is root." msgid "" -"If the target user has a restricted shell (i.e., not listed in _/etc/" -"shells_), the *--shell* option and the *SHELL* environment variables are " -"ignored unless the calling user is root." +"Run the specified _shell_ instead of the default. If the target user has a " +"restricted shell (i.e., not listed in _/etc/shells_), the *--shell* option " +"and the *SHELL* environment variables are ignored unless the calling user is " +"root." msgstr "" "Je-li shell cílového uživatele omezený (tj. neuvedený v _/etc/shells_), " "přepínač *--shell* a proměnná prostředí *SHELL* jsou ignorovány, pokud " "volajícím není root." +#. type: Plain text +#: ../login-utils/su.1.adoc:75 +#, fuzzy +#| msgid "" +#| "Run the specified _shell_ instead of the default. The shell to run is " +#| "selected according to the following rules, in order:" +msgid "" +"The shell to run is selected according to the following rules, in order:" +msgstr "" +"Spustí zadaný _shell_ namísto výchozího. Který shell by se měl spustit, se " +"vybírá na základě následujících pravidel v tomto pořadí:" + +#. type: Plain text +#: ../login-utils/su.1.adoc:78 +msgid "" +"the shell specified in the environment variable *SHELL*, if the *--preserve-" +"environment* option is used" +msgstr "" +"shell určený proměnnou prostředí *SHELL*, je-li použit přepínač *--preserve-" +"environment*" + #. type: Labeled list -#: ../login-utils/su.1.adoc:81 +#: ../login-utils/su.1.adoc:88 #, no-wrap msgid "*-w*, **--whitelist-environment**=__list__" msgstr "*-w*, **--whitelist-environment**=__seznam__" #. type: Title == -#: ../login-utils/su.1.adoc:86 ../term-utils/script.1.adoc:123 +#: ../login-utils/su.1.adoc:93 ../term-utils/script.1.adoc:123 #, no-wrap msgid "SIGNALS" msgstr "SIGNÁLY" #. type: Plain text -#: ../login-utils/su.1.adoc:89 +#: ../login-utils/su.1.adoc:96 msgid "" "Upon receiving either *SIGINT*, *SIGQUIT* or *SIGTERM*, *su* terminates its " "child and afterwards terminates itself with the received signal. The child " @@ -11002,13 +11169,20 @@ msgstr "" #. TRANSLATORS: Keep {colon} untranslated #. type: Plain text -#: ../login-utils/su.1.adoc:94 -#, no-wrap -msgid "*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration files. The following configuration items are relevant for *su*{colon}\n" -msgstr "*su* čte konfigurační soubory _/etc/default/su_ a _/etc/login.defs_. Následující konfigurační položky jsou relevantní pro *su*{colon}\n" +#: ../login-utils/su.1.adoc:101 +#, fuzzy +#| msgid "" +#| "*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration " +#| "files. The following configuration items are relevant for *su*{colon}\n" +msgid "" +"*su* reads the _/etc/default/su_ and _/etc/login.defs_ configuration files. " +"The following configuration items are relevant for *su*{colon}" +msgstr "" +"*su* čte konfigurační soubory _/etc/default/su_ a _/etc/login.defs_. " +"Následující konfigurační položky jsou relevantní pro *su*{colon}\n" #. type: Plain text -#: ../login-utils/su.1.adoc:97 +#: ../login-utils/su.1.adoc:104 msgid "" "Delay in seconds in case of an authentication failure. The number must be a " "non-negative integer." @@ -11017,7 +11191,7 @@ msgstr "" "nezáporné celé číslo." #. type: Plain text -#: ../login-utils/su.1.adoc:100 +#: ../login-utils/su.1.adoc:107 msgid "" "Defines the *PATH* environment variable for a regular user. The default " "value is _/usr/local/bin:/bin:/usr/bin_." @@ -11026,7 +11200,7 @@ msgstr "" "usr/local/bin:/bin:/usr/bin_." #. type: Plain text -#: ../login-utils/su.1.adoc:107 +#: ../login-utils/su.1.adoc:114 msgid "" "If set to _yes_ and *--login* and *--preserve-environment* were not " "specified *su* initializes *PATH*." @@ -11035,41 +11209,50 @@ msgstr "" "zadány, *su* inicializuje *PATH*." #. type: Plain text -#: ../login-utils/su.1.adoc:113 -#, no-wrap -msgid "*su* normally returns the exit status of the command it executed. If the command was killed by a signal, *su* returns the number of the signal plus 128.\n" -msgstr "Nástroj *su* běžně vrací návratovou hodnotu příkazu, který spustil. Byl-li příkaz zabit signálem, *su* vrátí číslo signálu plus 128.\n" +#: ../login-utils/su.1.adoc:120 +#, fuzzy +#| msgid "" +#| "*su* normally returns the exit status of the command it executed. If the " +#| "command was killed by a signal, *su* returns the number of the signal " +#| "plus 128.\n" +msgid "" +"*su* normally returns the exit status of the command it executed. If the " +"command was killed by a signal, *su* returns the number of the signal plus " +"128." +msgstr "" +"Nástroj *su* běžně vrací návratovou hodnotu příkazu, který spustil. Byl-li " +"příkaz zabit signálem, *su* vrátí číslo signálu plus 128.\n" #. type: Plain text -#: ../login-utils/su.1.adoc:115 +#: ../login-utils/su.1.adoc:122 msgid "Exit status generated by *su* itself:" msgstr "Návratová hodnota vyrobená nástrojem *su* samotným:" #. type: Labeled list -#: ../login-utils/su.1.adoc:125 +#: ../login-utils/su.1.adoc:132 #, no-wrap msgid "_/etc/pam.d/su_" msgstr "_/etc/pam.d/su_" #. type: Labeled list -#: ../login-utils/su.1.adoc:128 +#: ../login-utils/su.1.adoc:135 #, no-wrap msgid "_/etc/pam.d/su-l_" msgstr "_/etc/pam.d/su-l_" #. type: Labeled list -#: ../login-utils/su.1.adoc:131 +#: ../login-utils/su.1.adoc:138 #, no-wrap msgid "_/etc/default/su_" msgstr "_/etc/default/su_" #. type: Plain text -#: ../login-utils/su.1.adoc:133 +#: ../login-utils/su.1.adoc:140 msgid "command specific logindef config file" msgstr "konfigurační soubor logindef určený tento nástroj" #. type: Plain text -#: ../login-utils/su.1.adoc:140 +#: ../login-utils/su.1.adoc:147 msgid "" "For security reasons, *su* always logs failed log-in attempts to the _btmp_ " "file, but it does not write to the _lastlog_ file at all. This solution can " @@ -11086,12 +11269,12 @@ msgstr "" "rovněž aktualizoval soubor _lastlog_. Například:" #. type: delimited block _ -#: ../login-utils/su.1.adoc:143 +#: ../login-utils/su.1.adoc:150 msgid "session required pam_lastlog.so nowtmp" msgstr "session required pam_lastlog.so nowtmp" #. type: Plain text -#: ../login-utils/su.1.adoc:148 +#: ../login-utils/su.1.adoc:155 msgid "" "This *su* command was derived from coreutils' *su*, which was based on an " "implementation by David MacKenzie. The util-linux version has been " @@ -11102,14 +11285,15 @@ msgstr "" "Žákem." #. type: Plain text -#: ../login-utils/su.1.adoc:156 -#, no-wrap -msgid "" -"*setpriv*(1),\n" -"*login.defs*(5),\n" -"*shells*(5),\n" -"*pam*(8),\n" -"*runuser*(1)\n" +#: ../login-utils/su.1.adoc:163 +#, fuzzy +#| msgid "" +#| "*setpriv*(1),\n" +#| "*login.defs*(5),\n" +#| "*shells*(5),\n" +#| "*pam*(8),\n" +#| "*runuser*(1)\n" +msgid "*setpriv*(1), *login.defs*(5), *shells*(5), *pam*(8), *runuser*(1)" msgstr "" "*setpriv*(1),\n" "*login.defs*(5),\n" @@ -11146,14 +11330,15 @@ msgstr "" #. type: Plain text #: ../login-utils/sulogin.8.adoc:35 -#, no-wrap -msgid "*sulogin* [options] [_tty_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*sulogin* [options] [_tty_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/sulogin.8.adoc:39 -#, no-wrap -msgid "*sulogin* is invoked by *init* when the system goes into single-user mode.\n" +msgid "" +"*sulogin* is invoked by *init* when the system goes into single-user mode." msgstr "" #. type: Plain text @@ -11177,8 +11362,10 @@ msgstr "" #. type: Plain text #: ../login-utils/sulogin.8.adoc:47 -#, no-wrap -msgid "*sulogin* will be connected to the current terminal, or to the optional _tty_ device that can be specified on the command line (typically _/dev/console_).\n" +msgid "" +"*sulogin* will be connected to the current terminal, or to the optional " +"_tty_ device that can be specified on the command line (typically _/dev/" +"console_)." msgstr "" #. type: Plain text @@ -11242,14 +11429,18 @@ msgstr "" #. type: Plain text #: ../login-utils/sulogin.8.adoc:69 -#, no-wrap -msgid "*sulogin* looks for the environment variable *SUSHELL* or *sushell* to determine what shell to start. If the environment variable is not set, it will try to execute root's shell from _/etc/passwd_. If that fails, it will fall back to _/bin/sh_.\n" +msgid "" +"*sulogin* looks for the environment variable *SUSHELL* or *sushell* to " +"determine what shell to start. If the environment variable is not set, it " +"will try to execute root's shell from _/etc/passwd_. If that fails, it will " +"fall back to _/bin/sh_." msgstr "" #. type: Plain text #: ../login-utils/sulogin.8.adoc:73 -#, no-wrap -msgid "*sulogin* was written by Miquel van Smoorenburg for sysvinit and later ported to util-linux by Dave Reisner and Karel Zak.\n" +msgid "" +"*sulogin* was written by Miquel van Smoorenburg for sysvinit and later " +"ported to util-linux by Dave Reisner and Karel Zak." msgstr "" # @@ -11280,14 +11471,17 @@ msgstr "" #. type: Plain text #: ../login-utils/utmpdump.1.adoc:33 -#, no-wrap -msgid "*utmpdump* [options] _filename_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*utmpdump* [options] _filename_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/utmpdump.1.adoc:37 -#, no-wrap -msgid "*utmpdump* is a simple program to dump UTMP and WTMP files in raw format, so they can be examined. *utmpdump* reads from stdin unless a _filename_ is passed.\n" +msgid "" +"*utmpdump* is a simple program to dump UTMP and WTMP files in raw format, so " +"they can be examined. *utmpdump* reads from stdin unless a _filename_ is " +"passed." msgstr "" #. type: Labeled list @@ -11329,14 +11523,15 @@ msgstr "" #. type: Plain text #: ../login-utils/utmpdump.1.adoc:54 -#, no-wrap -msgid "*utmpdump* can be useful in cases of corrupted utmp or wtmp entries. It can dump out utmp/wtmp to an ASCII file, which can then be edited to remove bogus entries, and reintegrated using:\n" +msgid "" +"*utmpdump* can be useful in cases of corrupted utmp or wtmp entries. It can " +"dump out utmp/wtmp to an ASCII file, which can then be edited to remove " +"bogus entries, and reintegrated using:" msgstr "" #. type: delimited block _ #: ../login-utils/utmpdump.1.adoc:57 -#, no-wrap -msgid "*utmpdump -r < ascii_file > wtmp*\n" +msgid "*utmpdump -r < ascii_file > wtmp*" msgstr "" #. type: Plain text @@ -11376,16 +11571,12 @@ msgstr "" #. type: Plain text #: ../login-utils/utmpdump.1.adoc:81 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*mesg*(1),\n" #| "*talk*(1),\n" #| "*who*(1)\n" -msgid "" -"*last*(1),\n" -"*w*(1),\n" -"*who*(1),\n" -"*utmp*(5)\n" +msgid "*last*(1), *w*(1), *who*(1), *utmp*(5)" msgstr "" "*mesg*(1),\n" "*talk*(1),\n" @@ -11436,20 +11627,27 @@ msgstr "" #. type: Plain text #: ../login-utils/vipw.8.adoc:50 -#, no-wrap -msgid "*vipw* [options]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*vipw* [options]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/vipw.8.adoc:52 -#, no-wrap -msgid "*vigr* [options]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*vigr* [options]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../login-utils/vipw.8.adoc:56 -#, no-wrap -msgid "*vipw* edits the password file after setting the appropriate locks, and does any necessary processing after the password file is unlocked. If the password file is already locked for editing by another user, *vipw* will ask you to try again later. The default editor for *vipw* and *vigr* is *vi*(1). *vigr* edits the group file in the same manner as *vipw* does the passwd file.\n" +msgid "" +"*vipw* edits the password file after setting the appropriate locks, and does " +"any necessary processing after the password file is unlocked. If the " +"password file is already locked for editing by another user, *vipw* will ask " +"you to try again later. The default editor for *vipw* and *vigr* is *vi*(1). " +"*vigr* edits the group file in the same manner as *vipw* does the passwd " +"file." msgstr "" #. type: Plain text @@ -11481,12 +11679,7 @@ msgstr "" #. type: Plain text #: ../login-utils/vipw.8.adoc:78 -#, no-wrap -msgid "" -"*vi*(1),\n" -"*passwd*(1),\n" -"*flock*(2),\n" -"*passwd*(5)\n" +msgid "*vi*(1), *passwd*(1), *flock*(2), *passwd*(5)" msgstr "" #. type: Plain text @@ -11505,7 +11698,7 @@ msgstr "" "z https://www.kernel.org/pub/linux/utils/util-linux/[archivu jádra Linuxu]." #. Copyright 2000 Andreas Dilger (adilger@turbolinux.com) -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../misc-utils/blkid.8.adoc:4 #, no-wrap @@ -11519,26 +11712,30 @@ msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:19 -#, no-wrap -msgid "*blkid* *--label* _label_ | *--uuid* _uuid_\n" -msgstr "" +#, fuzzy +#| msgid "*-s*, **--shell**=__shell__" +msgid "*blkid* *--label* _label_ | *--uuid* _uuid_" +msgstr "*-s*, **--shell**=__shell__" #. type: Plain text #: ../misc-utils/blkid.8.adoc:21 -#, no-wrap -msgid "*blkid* [*--no-encoding* *--garbage-collect* *--list-one* *--cache-file* _file_] [*--output* _format_] [*--match-tag* _tag_] [*--match-token* _NAME=value_] [_device_...]\n" +msgid "" +"*blkid* [*--no-encoding* *--garbage-collect* *--list-one* *--cache-file* " +"_file_] [*--output* _format_] [*--match-tag* _tag_] [*--match-token* " +"_NAME=value_] [_device_...]" msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:23 -#, no-wrap -msgid "*blkid* *--probe* [*--offset* _offset_] [*--output* _format_] [*--size* _size_] [*--match-tag* _tag_] [*--match-types* _list_] [*--usages* _list_] [*--no-part-details*] _device_...\n" +msgid "" +"*blkid* *--probe* [*--offset* _offset_] [*--output* _format_] [*--size* " +"_size_] [*--match-tag* _tag_] [*--match-types* _list_] [*--usages* _list_] " +"[*--no-part-details*] _device_..." msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:25 -#, no-wrap -msgid "*blkid* *--info* [*--output format*] [*--match-tag* _tag_] _device_...\n" +msgid "*blkid* *--info* [*--output format*] [*--match-tag* _tag_] _device_..." msgstr "" #. type: Plain text @@ -11553,14 +11750,20 @@ msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:31 -#, no-wrap -msgid "*It is recommended to use* *lsblk*(8) *command to get information about block devices, or lsblk --fs to get an overview of filesystems, or* *findmnt*(8) *to search in already mounted filesystems.*\n" +msgid "" +"*It is recommended to use* *lsblk*(8) *command to get information about " +"block devices, or lsblk --fs to get an overview of filesystems, or* " +"*findmnt*(8) *to search in already mounted filesystems.*" msgstr "" #. type: delimited block _ #: ../misc-utils/blkid.8.adoc:34 -#, no-wrap -msgid "*lsblk*(8) provides more information, better control on output formatting, easy to use in scripts and it does not require root permissions to get actual information. *blkid* reads information directly from devices and for non-root users it returns cached unverified information. *blkid* is mostly designed for system services and to test *libblkid*(3) functionality.\n" +msgid "" +"*lsblk*(8) provides more information, better control on output formatting, " +"easy to use in scripts and it does not require root permissions to get " +"actual information. *blkid* reads information directly from devices and for " +"non-root users it returns cached unverified information. *blkid* is mostly " +"designed for system services and to test *libblkid*(3) functionality." msgstr "" #. type: Plain text @@ -11574,8 +11777,10 @@ msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:39 -#, no-wrap -msgid "*blkid* has two main forms of operation: either searching for a device with a specific NAME=value pair, or displaying NAME=value pairs for one or more specified devices.\n" +msgid "" +"*blkid* has two main forms of operation: either searching for a device with " +"a specific NAME=value pair, or displaying NAME=value pairs for one or more " +"specified devices." msgstr "" #. type: Plain text @@ -11759,8 +11964,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:83 -#, no-wrap -msgid "*blkid --probe --match-types vfat,ext3,ext4 /dev/sda1*\n" +msgid "*blkid --probe --match-types vfat,ext3,ext4 /dev/sda1*" msgstr "" #. type: Plain text @@ -11770,8 +11974,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:87 -#, no-wrap -msgid "*blkid --probe --match-types nominix /dev/sda1*\n" +msgid "*blkid --probe --match-types nominix /dev/sda1*" msgstr "" #. type: Plain text @@ -11996,8 +12199,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:136 -#, no-wrap -msgid "*blkid --probe --usages filesystem,other /dev/sda1*\n" +msgid "*blkid --probe --usages filesystem,other /dev/sda1*" msgstr "" #. type: Plain text @@ -12007,8 +12209,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:140 -#, no-wrap -msgid "*blkid --probe --usages noraid /dev/sda1*\n" +msgid "*blkid --probe --usages noraid /dev/sda1*" msgstr "" #. type: Plain text @@ -12019,7 +12220,7 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/blkid.8.adoc:143 ../sys-utils/mount.8.adoc:454 +#: ../misc-utils/blkid.8.adoc:143 ../sys-utils/mount.8.adoc:450 #, no-wrap msgid "*-U*, *--uuid* _uuid_" msgstr "" @@ -12119,19 +12320,27 @@ msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:178 -#, no-wrap -msgid "*blkid* was written by Andreas Dilger for libblkid and improved by Theodore Ts'o and Karel Zak.\n" +msgid "" +"*blkid* was written by Andreas Dilger for libblkid and improved by Theodore " +"Ts'o and Karel Zak." msgstr "" #. type: Plain text #: ../misc-utils/blkid.8.adoc:185 -#, no-wrap -msgid "" -"*libblkid*(3),\n" -"*findfs*(8),\n" -"*lsblk*(8),\n" -"*wipefs*(8)\n" +#, fuzzy +#| msgid "" +#| "*setpriv*(1),\n" +#| "*login.defs*(5),\n" +#| "*shells*(5),\n" +#| "*pam*(8),\n" +#| "*runuser*(1)\n" +msgid "*libblkid*(3), *findfs*(8), *lsblk*(8), *wipefs*(8)" msgstr "" +"*setpriv*(1),\n" +"*login.defs*(5),\n" +"*shells*(5),\n" +"*pam*(8),\n" +"*runuser*(1)\n" # # @@ -12181,20 +12390,19 @@ msgstr "" #. type: Plain text #: ../misc-utils/cal.1.adoc:54 -#, no-wrap -msgid "*cal* [options] [[[_day_] _month_] _year_]\n" +msgid "*cal* [options] [[[_day_] _month_] _year_]" msgstr "" #. type: Plain text #: ../misc-utils/cal.1.adoc:56 -#, no-wrap -msgid "*cal* [options] [_timestamp_|_monthname_]\n" +msgid "*cal* [options] [_timestamp_|_monthname_]" msgstr "" #. type: Plain text #: ../misc-utils/cal.1.adoc:60 -#, no-wrap -msgid "*cal* displays a simple calendar. If no arguments are specified, the current month is displayed.\n" +msgid "" +"*cal* displays a simple calendar. If no arguments are specified, the current " +"month is displayed." msgstr "" #. type: Plain text @@ -12603,7 +12811,7 @@ msgid "Days that fall outside the work-week." msgstr "" #. type: Plain text -#: ../misc-utils/cal.1.adoc:169 ../sys-utils/mount.8.adoc:286 +#: ../misc-utils/cal.1.adoc:169 ../sys-utils/mount.8.adoc:284 msgid "For example:" msgstr "" @@ -12638,9 +12846,9 @@ msgstr "" #. type: Plain text #: ../misc-utils/cal.1.adoc:186 -#, fuzzy, no-wrap +#, fuzzy #| msgid "_/etc/terminal-colors.d/disable_" -msgid "*terminal-colors.d*(5)\n" +msgid "*terminal-colors.d*(5)" msgstr "_/etc/terminal-colors.d/disable_" #. type: Title = @@ -12656,16 +12864,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/enosys.1.adoc:16 -#, no-wrap -msgid "*enosys* [*--syscall*|*-s* _syscall_] command\n" +msgid "*enosys* [*--syscall*|*-s* _syscall_] command" msgstr "" #. type: Plain text #: ../misc-utils/enosys.1.adoc:21 -#, no-wrap msgid "" -"*enosys* is a simple command to execute a child process for which certain\n" -"syscalls fail with errno ENOSYS.\n" +"*enosys* is a simple command to execute a child process for which certain " +"syscalls fail with errno ENOSYS." msgstr "" #. type: Plain text @@ -12718,10 +12924,9 @@ msgstr "" #. type: Plain text #: ../misc-utils/enosys.1.adoc:45 -#, no-wrap msgid "" -"*enosys* exits with the status code of the executed process.\n" -"The following values have special meanings:\n" +"*enosys* exits with the status code of the executed process. The following " +"values have special meanings:" msgstr "" #. type: Plain text @@ -12737,14 +12942,15 @@ msgstr "" #. type: Plain text #: ../misc-utils/enosys.1.adoc:55 ../misc-utils/lsclocks.1.adoc:103 #: ../misc-utils/waitpid.1.adoc:56 -msgid "mailto:thomas@t-8ch.de[Thomas Weißschuh]" +msgid "mailto:thomas@t-8ch.de[Thomas Weißschuh]" msgstr "" #. type: Plain text #: ../misc-utils/enosys.1.adoc:59 -#, no-wrap -msgid "*syscall*(2)\n" -msgstr "" +#, fuzzy +#| msgid "*-h*, *--help*" +msgid "*syscall*(2)" +msgstr "*-h*, *--help*" #. type: Title = #: ../misc-utils/exch.1.adoc:2 @@ -12759,23 +12965,19 @@ msgstr "" #. type: Plain text #: ../misc-utils/exch.1.adoc:16 -#, no-wrap -msgid "*exch* _oldpath_ _newpath_\n" +msgid "*exch* _oldpath_ _newpath_" msgstr "" #. type: Plain text #: ../misc-utils/exch.1.adoc:22 -#, no-wrap msgid "" -"*exch* atomically exchanges oldpath and newpath.\n" -"*exch* is a simple command wrapping *RENAME_EXCHANGE* of *renameat2*\n" -"system call.\n" +"*exch* atomically exchanges oldpath and newpath. *exch* is a simple command " +"wrapping *RENAME_EXCHANGE* of *renameat2* system call." msgstr "" #. type: Plain text #: ../misc-utils/exch.1.adoc:31 -#, no-wrap -msgid "*exch* has the following exit status values:\n" +msgid "*exch* has the following exit status values:" msgstr "" #. type: Plain text @@ -12792,8 +12994,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/exch.1.adoc:44 -#, no-wrap -msgid "*renameat2*(2)\n" +msgid "*renameat2*(2)" msgstr "" #. type: Title = @@ -12809,22 +13010,21 @@ msgstr "" #. type: Plain text #: ../misc-utils/fadvise.1.adoc:16 -#, no-wrap -msgid "*fadvise* [*-a* _advice_] [*-o* _offset_] [*-l* _length_] _filename_\n" +msgid "*fadvise* [*-a* _advice_] [*-o* _offset_] [*-l* _length_] _filename_" msgstr "" #. type: Plain text #: ../misc-utils/fadvise.1.adoc:18 -#, no-wrap -msgid "*fadvise* [*-a* _advice_] [*-o* _offset_] [*-l* _length_] -d _file-descriptor_\n" +msgid "" +"*fadvise* [*-a* _advice_] [*-o* _offset_] [*-l* _length_] -d _file-" +"descriptor_" msgstr "" #. type: Plain text #: ../misc-utils/fadvise.1.adoc:23 -#, no-wrap msgid "" -"*fadvise* is a simple command wrapping *posix_fadvise*(2) system call\n" -"that is for predeclaring an access pattern for file data.\n" +"*fadvise* is a simple command wrapping *posix_fadvise*(2) system call that " +"is for predeclaring an access pattern for file data." msgstr "" #. type: Labeled list @@ -12878,19 +13078,17 @@ msgstr "" #. type: Plain text #: ../misc-utils/fadvise.1.adoc:47 -#, no-wrap -msgid "*fadvise* has the following exit status values:\n" +msgid "*fadvise* has the following exit status values:" msgstr "" #. type: Plain text #: ../misc-utils/fadvise.1.adoc:60 -#, no-wrap -msgid "*posix_fadvise*(2)\n" +msgid "*posix_fadvise*(2)" msgstr "" # #. Copyright 2017 Red Hat, Inc. -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../misc-utils/fincore.1.adoc:7 #, no-wrap @@ -12904,14 +13102,18 @@ msgstr "" #. type: Plain text #: ../misc-utils/fincore.1.adoc:22 -#, no-wrap -msgid "*fincore* [options] _file_...\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*fincore* [options] _file_..." +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/fincore.1.adoc:26 -#, no-wrap -msgid "*fincore* counts pages of file contents being resident in memory (in core), and reports the numbers. If an error occurs during counting, then an error message is printed to the stderr and *fincore* continues processing the rest of files listed in a command line.\n" +msgid "" +"*fincore* counts pages of file contents being resident in memory (in core), " +"and reports the numbers. If an error occurs during counting, then an error " +"message is printed to the stderr and *fincore* continues processing the rest " +"of files listed in a command line." msgstr "" #. type: Plain text @@ -12924,7 +13126,7 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/fincore.1.adoc:31 ../misc-utils/findmnt.8.adoc:96 +#: ../misc-utils/fincore.1.adoc:31 ../misc-utils/findmnt.8.adoc:93 #: ../misc-utils/lsblk.8.adoc:88 ../misc-utils/lsclocks.1.adoc:29 #: ../misc-utils/lsfd.1.adoc:47 ../misc-utils/lslocks.8.adoc:46 #: ../misc-utils/uuidparse.1.adoc:53 ../sys-utils/losetup.8.adoc:110 @@ -12958,7 +13160,7 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/fincore.1.adoc:47 ../misc-utils/findmnt.8.adoc:78 +#: ../misc-utils/fincore.1.adoc:47 ../misc-utils/findmnt.8.adoc:75 #: ../misc-utils/lsblk.8.adoc:70 ../misc-utils/lsclocks.1.adoc:26 #: ../misc-utils/lsfd.1.adoc:44 ../misc-utils/lslocks.8.adoc:43 #: ../misc-utils/uuidparse.1.adoc:50 ../misc-utils/wipefs.8.adoc:49 @@ -12972,7 +13174,7 @@ msgid "*-J*, *--json*" msgstr "*-V*, *--version*" #. type: Plain text -#: ../misc-utils/fincore.1.adoc:49 ../misc-utils/findmnt.8.adoc:80 +#: ../misc-utils/fincore.1.adoc:49 ../misc-utils/findmnt.8.adoc:77 #: ../misc-utils/lsclocks.1.adoc:28 ../misc-utils/lsfd.1.adoc:46 #: ../misc-utils/lslocks.8.adoc:45 ../misc-utils/uuidparse.1.adoc:52 #: ../misc-utils/wipefs.8.adoc:51 ../sys-utils/lsirq.1.adoc:36 @@ -12983,23 +13185,19 @@ msgstr "" #. type: Plain text #: ../misc-utils/fincore.1.adoc:62 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*mesg*(1),\n" #| "*talk*(1),\n" #| "*who*(1)\n" -msgid "" -"*mincore*(2),\n" -"*getpagesize*(2),\n" -"*getconf*(1p)\n" -"*cachestat*(2)\n" +msgid "*mincore*(2), *getpagesize*(2), *getconf*(1p) *cachestat*(2)" msgstr "" "*mesg*(1),\n" "*talk*(1),\n" "*who*(1)\n" #. Copyright 1993, 1994, 1995 by Theodore Ts'o. All Rights Reserved. -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../misc-utils/findfs.8.adoc:4 #, no-wrap @@ -13013,14 +13211,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/findfs.8.adoc:18 -#, no-wrap -msgid "*findfs* *NAME*=_value_\n" +msgid "*findfs* *NAME*=_value_" msgstr "" #. type: Plain text #: ../misc-utils/findfs.8.adoc:22 -#, no-wrap -msgid "*findfs* will search the block devices in the system looking for a filesystem or partition with specified tag. The currently supported tags are:\n" +msgid "" +"*findfs* will search the block devices in the system looking for a " +"filesystem or partition with specified tag. The currently supported tags are:" msgstr "" #. type: Labeled list @@ -13099,20 +13297,17 @@ msgstr "" #. type: delimited block _ #: ../misc-utils/findfs.8.adoc:41 -#, no-wrap -msgid "*lsblk --fs*\n" +msgid "*lsblk --fs*" msgstr "" #. type: delimited block _ #: ../misc-utils/findfs.8.adoc:43 -#, no-wrap -msgid "*partx --show *\n" +msgid "*partx --show *" msgstr "" #. type: delimited block _ #: ../misc-utils/findfs.8.adoc:45 -#, no-wrap -msgid "*blkid*\n" +msgid "*blkid*" msgstr "" #. type: Plain text @@ -13127,18 +13322,23 @@ msgstr "" #. type: Plain text #: ../misc-utils/findfs.8.adoc:66 -#, no-wrap -msgid "*findfs* was originally written by mailto:tytso@mit.edu[Theodore Ts'o] and re-written for the util-linux package by mailto:kzak@redhat.com[Karel Zak].\n" +msgid "" +"*findfs* was originally written by mailto:tytso@mit.edu[Theodore Ts'o] and " +"re-written for the util-linux package by mailto:kzak@redhat.com[Karel Zak]." msgstr "" #. type: Plain text #: ../misc-utils/findfs.8.adoc:72 -#, no-wrap -msgid "" -"*blkid*(8),\n" -"*lsblk*(8),\n" -"*partx*(8)\n" +#, fuzzy +#| msgid "" +#| "*mesg*(1),\n" +#| "*talk*(1),\n" +#| "*who*(1)\n" +msgid "*blkid*(8), *lsblk*(8), *partx*(8)" msgstr "" +"*mesg*(1),\n" +"*talk*(1),\n" +"*who*(1)\n" #. type: Title = #: ../misc-utils/findmnt.8.adoc:2 @@ -13153,26 +13353,30 @@ msgstr "" #. type: Plain text #: ../misc-utils/findmnt.8.adoc:17 -#, no-wrap -msgid "*findmnt* [options]\n" +msgid "*findmnt* [options]" msgstr "" #. type: Plain text #: ../misc-utils/findmnt.8.adoc:19 -#, no-wrap -msgid "*findmnt* [options] _device_|_mountpoint_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*findmnt* [options] _device_|_mountpoint_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/findmnt.8.adoc:21 -#, no-wrap -msgid "*findmnt* [options] [*--source*] _device_ [*--target* _path_|*--mountpoint* _mountpoint_]\n" +msgid "" +"*findmnt* [options] [*--source*] _device_ [*--target* _path_|*--mountpoint* " +"_mountpoint_]" msgstr "" #. type: Plain text #: ../misc-utils/findmnt.8.adoc:25 -#, no-wrap -msgid "*findmnt* will list all mounted filesystems or search for a filesystem. The *findmnt* command is able to search in _/etc/fstab_, _/etc/mtab_ or _/proc/self/mountinfo_. If _device_ or _mountpoint_ is not given, all filesystems are shown.\n" +msgid "" +"*findmnt* will list all mounted filesystems or search for a filesystem. The " +"*findmnt* command is able to search in _/etc/fstab_, _/etc/mtab_ or _/proc/" +"self/mountinfo_. If _device_ or _mountpoint_ is not given, all filesystems " +"are shown." msgstr "" #. type: Plain text @@ -13262,25 +13466,13 @@ msgstr "" #. type: Labeled list #: ../misc-utils/findmnt.8.adoc:51 -#, no-wrap -msgid "*--deleted*" -msgstr "" - -#. type: Plain text -#: ../misc-utils/findmnt.8.adoc:53 -msgid "" -"Print filesystems where target (mountpoint) is marked as deleted by kernel." -msgstr "" - -#. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:54 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" msgid "*-D*, *--df*" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:56 +#: ../misc-utils/findmnt.8.adoc:53 msgid "" "Imitate the output of *df*(1). This option is equivalent to *-o SOURCE," "FSTYPE,SIZE,USED,AVAIL,USE%,TARGET* but excludes all pseudo filesystems. Use " @@ -13288,26 +13480,26 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:57 +#: ../misc-utils/findmnt.8.adoc:54 #, fuzzy, no-wrap #| msgid "*-V*, *--version*" msgid "*-d*, *--direction* _word_" msgstr "*-V*, *--version*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:59 +#: ../misc-utils/findmnt.8.adoc:56 msgid "The search direction, either *forward* or *backward*." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:60 +#: ../misc-utils/findmnt.8.adoc:57 #, fuzzy, no-wrap #| msgid "*-h*, *--help*" msgid "*-e*, *--evaluate*" msgstr "*-h*, *--help*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:62 +#: ../misc-utils/findmnt.8.adoc:59 msgid "" "Convert all tags (LABEL, UUID, PARTUUID, or PARTLABEL) to the corresponding " "device names for the SOURCE column. It's an unusual situation, but the same " @@ -13318,13 +13510,13 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:63 +#: ../misc-utils/findmnt.8.adoc:60 #, no-wrap msgid "*-F*, *--tab-file* _path_" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:65 +#: ../misc-utils/findmnt.8.adoc:62 msgid "" "Search in an alternative file. If used with *--fstab*, *--mtab* or *--" "kernel*, then it overrides the default paths. If specified more than once, " @@ -13332,19 +13524,19 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:66 +#: ../misc-utils/findmnt.8.adoc:63 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" msgid "*-f*, *--first-only*" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:68 +#: ../misc-utils/findmnt.8.adoc:65 msgid "Print the first matching filesystem only." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:69 ../misc-utils/lsblk.8.adoc:44 +#: ../misc-utils/findmnt.8.adoc:66 ../misc-utils/lsblk.8.adoc:44 #: ../misc-utils/lsfd.1.adoc:113 ../misc-utils/lslocks.8.adoc:37 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" @@ -13352,7 +13544,7 @@ msgid "*-H*, *--list-columns*" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:71 ../misc-utils/lsblk.8.adoc:46 +#: ../misc-utils/findmnt.8.adoc:68 ../misc-utils/lsblk.8.adoc:46 #: ../misc-utils/lslocks.8.adoc:39 msgid "" "List the available columns, use with *--json* or *--raw* to get output in " @@ -13360,14 +13552,14 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:72 +#: ../misc-utils/findmnt.8.adoc:69 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" msgid "*-I*, *--dfi*" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:74 +#: ../misc-utils/findmnt.8.adoc:71 msgid "" "Imitate the output of *df*(1) with its *-i* option. This option is " "equivalent to *-o SOURCE,FSTYPE,INO.TOTAL,INO.USED,INO.AVAIL,INO.USE%," @@ -13376,26 +13568,26 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:75 +#: ../misc-utils/findmnt.8.adoc:72 #, fuzzy, no-wrap #| msgid "*-V*, *--version*" msgid "*-i*, *--invert*" msgstr "*-V*, *--version*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:77 +#: ../misc-utils/findmnt.8.adoc:74 msgid "Invert the sense of matching." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:81 ../sys-utils/dmesg.1.adoc:78 +#: ../misc-utils/findmnt.8.adoc:78 ../sys-utils/dmesg.1.adoc:78 #, fuzzy, no-wrap #| msgid "*-h*, *--help*" msgid "*-k*, *--kernel*" msgstr "*-h*, *--help*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:83 +#: ../misc-utils/findmnt.8.adoc:80 msgid "" "Search in _/proc/self/mountinfo_. The output is in the tree-like format. " "This is the default. The output contains only mount options maintained by " @@ -13403,7 +13595,7 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:86 +#: ../misc-utils/findmnt.8.adoc:83 msgid "" "Use the list output format. This output format is automatically enabled if " "the output is restricted by the *-t*, *-O*, *-S* or *-T* option and the " @@ -13412,40 +13604,40 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:87 +#: ../misc-utils/findmnt.8.adoc:84 #, no-wrap msgid "*-M*, *--mountpoint* _path_" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:89 +#: ../misc-utils/findmnt.8.adoc:86 msgid "" "Explicitly define the mountpoint file or directory. See also *--target*." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:90 +#: ../misc-utils/findmnt.8.adoc:87 #, fuzzy, no-wrap #| msgid "*-P*, *--pty*" msgid "*-m*, *--mtab*" msgstr "*-P*, *--pty*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:92 +#: ../misc-utils/findmnt.8.adoc:89 msgid "" "Search in _/etc/mtab_. The output is in the list format by default (see *--" "tree*). The output may include user space mount options." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:93 +#: ../misc-utils/findmnt.8.adoc:90 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" msgid "*-N*, *--task* _tid_" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:95 +#: ../misc-utils/findmnt.8.adoc:92 msgid "" "Use alternative namespace _/proc//mountinfo_ rather than the default _/" "proc/self/mountinfo_. If the option is specified more than once, then tree-" @@ -13454,14 +13646,14 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:99 +#: ../misc-utils/findmnt.8.adoc:96 #, no-wrap msgid "*-O*, *--options* _list_" msgstr "" #. TRANSLATORS: Keep {plus} untranslated. #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:101 +#: ../misc-utils/findmnt.8.adoc:98 msgid "" "Limit the set of printed filesystems. More than one option may be specified " "in a comma-separated list. The *-t* and *-O* options are cumulative in " @@ -13472,7 +13664,7 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:105 +#: ../misc-utils/findmnt.8.adoc:102 msgid "" "Define output columns. See the *--help* output to get a list of the " "currently supported columns. The *TARGET* column contains tree formatting if " @@ -13481,28 +13673,28 @@ msgstr "" #. TRANSLATORS: Keep {plus} untranslated. #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:107 +#: ../misc-utils/findmnt.8.adoc:104 msgid "" "The default list of columns may be extended if _list_ is specified in the " "format _{plus}list_ (e.g., *findmnt -o {plus}PROPAGATION*)." msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:111 +#: ../misc-utils/findmnt.8.adoc:108 msgid "" "Output almost all available columns. The columns that require *--poll* are " "not included." msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:114 ../sys-utils/lsipc.1.adoc:49 +#: ../misc-utils/findmnt.8.adoc:111 ../sys-utils/lsipc.1.adoc:49 msgid "" "Produce output in the form of key=\"value\" pairs. All potentially unsafe " "value characters are hex-escaped (\\x). See also option *--shell*." msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:116 +#: ../misc-utils/findmnt.8.adoc:113 msgid "" "Note that SOURCES column, use multi-line cells. In these cases, the column " "use an array-like formatting in the output, for example *name=(\"aaa\" " @@ -13510,13 +13702,13 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:117 +#: ../misc-utils/findmnt.8.adoc:114 #, no-wrap msgid "*-p*, *--poll*[_=list_]" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:119 +#: ../misc-utils/findmnt.8.adoc:116 msgid "" "Monitor changes in the _/proc/self/mountinfo_ file. Supported actions are: " "mount, umount, remount and move. More than one action may be specified in a " @@ -13524,14 +13716,14 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:121 +#: ../misc-utils/findmnt.8.adoc:118 msgid "" "The time for which *--poll* will block can be restricted with the *--" "timeout* or *--first-only* options." msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:123 +#: ../misc-utils/findmnt.8.adoc:120 msgid "" "The standard columns always use the new version of the information from the " "mountinfo file, except the umount action which is based on the original " @@ -13539,71 +13731,71 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:124 +#: ../misc-utils/findmnt.8.adoc:121 #, no-wrap msgid "*ACTION*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:126 +#: ../misc-utils/findmnt.8.adoc:123 msgid "" "mount, umount, move or remount action name; this column is enabled by default" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:126 +#: ../misc-utils/findmnt.8.adoc:123 #, no-wrap msgid "*OLD-TARGET*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:128 +#: ../misc-utils/findmnt.8.adoc:125 msgid "available for umount and move actions" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:128 +#: ../misc-utils/findmnt.8.adoc:125 #, fuzzy, no-wrap #| msgid "OPTIONS" msgid "*OLD-OPTIONS*" msgstr "VOLBY" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:130 +#: ../misc-utils/findmnt.8.adoc:127 msgid "available for umount and remount actions" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:131 +#: ../misc-utils/findmnt.8.adoc:128 #, no-wrap msgid "*--pseudo*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:133 +#: ../misc-utils/findmnt.8.adoc:130 msgid "Print only pseudo filesystems." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:134 +#: ../misc-utils/findmnt.8.adoc:131 #, no-wrap msgid "*--shadow*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:136 ../misc-utils/findmnt.8.adoc:165 +#: ../misc-utils/findmnt.8.adoc:133 ../misc-utils/findmnt.8.adoc:162 msgid "Print only filesystems over-mounted by another filesystem." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:137 +#: ../misc-utils/findmnt.8.adoc:134 #, fuzzy, no-wrap #| msgid "*-V*, *--version*" msgid "*-R*, *--submounts*" msgstr "*-V*, *--version*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:139 +#: ../misc-utils/findmnt.8.adoc:136 msgid "" "Print recursively all submounts for the selected filesystems. The " "restrictions defined by options *-t*, *-O*, *-S*, *-T* and *--direction* are " @@ -13613,39 +13805,39 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:142 +#: ../misc-utils/findmnt.8.adoc:139 msgid "" "Use raw output format. All potentially unsafe characters are hex-escaped " "(\\x)." msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:144 +#: ../misc-utils/findmnt.8.adoc:141 msgid "" "Note that column SOURCES, use multi-line cells. In these cases, the column " "may produce more strings on the same line." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:145 +#: ../misc-utils/findmnt.8.adoc:142 #, no-wrap msgid "*--real*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:147 +#: ../misc-utils/findmnt.8.adoc:144 msgid "Print only real filesystems." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:148 +#: ../misc-utils/findmnt.8.adoc:145 #, fuzzy, no-wrap #| msgid "*-s*, **--shell**=__shell__" msgid "*-S*, *--source* _spec_" msgstr "*-s*, **--shell**=__shell__" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:150 +#: ../misc-utils/findmnt.8.adoc:147 msgid "" "Explicitly define the mount source. Supported specifications are _device_, " "__maj__**:**_min_, **LABEL=**__label__, **UUID=**__uuid__, " @@ -13653,26 +13845,26 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:151 +#: ../misc-utils/findmnt.8.adoc:148 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" msgid "*-s*, *--fstab*" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:153 +#: ../misc-utils/findmnt.8.adoc:150 msgid "" "Search in _/etc/fstab_. The output is in the list format (see *--list*)." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:154 +#: ../misc-utils/findmnt.8.adoc:151 #, no-wrap msgid "*-T*, *--target* _path_" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:156 +#: ../misc-utils/findmnt.8.adoc:153 msgid "" "Define the mount target. If _path_ is not a mountpoint file or directory, " "then *findmnt* checks the _path_ elements in reverse order to get the " @@ -13683,7 +13875,7 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:157 ../misc-utils/wipefs.8.adoc:75 +#: ../misc-utils/findmnt.8.adoc:154 ../misc-utils/wipefs.8.adoc:75 #: ../sys-utils/fstrim.8.adoc:56 #, fuzzy, no-wrap #| msgid "*-P*, *--pty*" @@ -13691,7 +13883,7 @@ msgid "*-t*, *--types* _list_" msgstr "*-P*, *--pty*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:159 +#: ../misc-utils/findmnt.8.adoc:156 msgid "" "Limit the set of printed filesystems. More than one type may be specified in " "a comma-separated list. The list of filesystem types can be prefixed with " @@ -13700,40 +13892,40 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:160 +#: ../misc-utils/findmnt.8.adoc:157 #, no-wrap msgid "*--tree*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:162 +#: ../misc-utils/findmnt.8.adoc:159 msgid "" "Enable tree-like output if possible. The options is silently ignored for " "tables where is missing child-parent relation (e.g., _fstab_)." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:163 +#: ../misc-utils/findmnt.8.adoc:160 #, no-wrap msgid "*--shadowed*" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:166 +#: ../misc-utils/findmnt.8.adoc:163 #, fuzzy, no-wrap #| msgid "*-P*, *--pty*" msgid "*-U*, *--uniq*" msgstr "*-P*, *--pty*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:168 +#: ../misc-utils/findmnt.8.adoc:165 msgid "" "Ignore filesystems with duplicate mount targets, thus effectively skipping " "over-mounted mount points." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:169 ../misc-utils/lslocks.8.adoc:64 +#: ../misc-utils/findmnt.8.adoc:166 ../misc-utils/lslocks.8.adoc:64 #: ../sys-utils/lsns.8.adoc:64 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" @@ -13741,7 +13933,7 @@ msgid "*-u*, *--notruncate*" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:171 +#: ../misc-utils/findmnt.8.adoc:168 msgid "" "Do not truncate text in columns. The default is to not truncate the " "*TARGET*, *SOURCE*, *UUID*, *LABEL*, *PARTUUID*, *PARTLABEL* columns. This " @@ -13749,41 +13941,41 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:172 +#: ../misc-utils/findmnt.8.adoc:169 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" msgid "*-v*, *--nofsroot*" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:174 +#: ../misc-utils/findmnt.8.adoc:171 msgid "" "Do not print a [/dir] in the SOURCE column for bind mounts or btrfs " "subvolumes." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:175 +#: ../misc-utils/findmnt.8.adoc:172 #, no-wrap msgid "*-w*, *--timeout* _milliseconds_" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:177 +#: ../misc-utils/findmnt.8.adoc:174 msgid "" "Specify an upper limit on the time for which *--poll* will block, in " "milliseconds." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:178 +#: ../misc-utils/findmnt.8.adoc:175 #, fuzzy, no-wrap #| msgid "*-V*, *--version*" msgid "*-x*, *--verify*" msgstr "*-V*, *--version*" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:180 +#: ../misc-utils/findmnt.8.adoc:177 msgid "" "Check mount table content. The default is to verify _/etc/fstab_ parsability " "and usability. It's possible to use this option also with *--tab-file*. It's " @@ -13792,18 +13984,18 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:183 +#: ../misc-utils/findmnt.8.adoc:180 msgid "Force *findmnt* to print more information (*--verify* only for now)." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:184 +#: ../misc-utils/findmnt.8.adoc:181 #, no-wrap msgid "*--vfs-all*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:186 +#: ../misc-utils/findmnt.8.adoc:183 msgid "" "When used with *VFS-OPTIONS* column, print all VFS (fs-independent) flags. " "This option is designed for auditing purposes to list also default VFS " @@ -13811,7 +14003,7 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:189 +#: ../misc-utils/findmnt.8.adoc:186 msgid "" "The column name will be modified to contain only characters allowed for " "shell variable identifiers. This is usable, for example, with *--pairs*. " @@ -13821,7 +14013,7 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:197 +#: ../misc-utils/findmnt.8.adoc:194 msgid "" "The exit value is 0 if there is something to display, or 1 on any error (for " "example if no filesystem is found based on the user's filter specification, " @@ -13829,148 +14021,145 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:200 ../sys-utils/mount.8.adoc:1632 -#: ../sys-utils/umount.8.adoc:152 +#: ../misc-utils/findmnt.8.adoc:197 ../sys-utils/mount.8.adoc:1629 +#: ../sys-utils/umount.8.adoc:154 #, no-wrap msgid "*LIBMOUNT_FSTAB*=" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:202 +#: ../misc-utils/findmnt.8.adoc:199 msgid "overrides the default location of the _fstab_ file" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:203 +#: ../misc-utils/findmnt.8.adoc:200 #, no-wrap msgid "*LIBMOUNT_MTAB*=" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:205 +#: ../misc-utils/findmnt.8.adoc:202 msgid "overrides the default location of the _mtab_ file" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:206 ../misc-utils/lsblk.8.adoc:205 -#: ../sys-utils/mount.8.adoc:1635 ../sys-utils/mountpoint.1.adoc:54 -#: ../sys-utils/swapon.8.adoc:125 ../sys-utils/umount.8.adoc:155 +#: ../misc-utils/findmnt.8.adoc:203 ../misc-utils/lsblk.8.adoc:205 +#: ../sys-utils/mount.8.adoc:1632 ../sys-utils/mountpoint.1.adoc:54 +#: ../sys-utils/swapon.8.adoc:125 ../sys-utils/umount.8.adoc:157 #, no-wrap msgid "*LIBMOUNT_DEBUG*=all" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:208 ../sys-utils/mount.8.adoc:1637 +#: ../misc-utils/findmnt.8.adoc:205 ../sys-utils/mount.8.adoc:1634 msgid "enables libmount debug output" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:211 +#: ../misc-utils/findmnt.8.adoc:208 msgid "enables libsmartcols debug output" msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:217 +#: ../misc-utils/findmnt.8.adoc:214 #, no-wrap msgid "*findmnt --fstab -t nfs*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:219 +#: ../misc-utils/findmnt.8.adoc:216 msgid "Prints all NFS filesystems defined in _/etc/fstab_." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:220 +#: ../misc-utils/findmnt.8.adoc:217 #, no-wrap msgid "*findmnt --fstab /mnt/foo*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:222 +#: ../misc-utils/findmnt.8.adoc:219 msgid "" "Prints all _/etc/fstab_ filesystems where the mountpoint directory is _/mnt/" "foo_. It also prints bind mounts where _/mnt/foo_ is a source." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:223 +#: ../misc-utils/findmnt.8.adoc:220 #, no-wrap msgid "*findmnt --fstab --target /mnt/foo*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:225 +#: ../misc-utils/findmnt.8.adoc:222 msgid "" "Prints all _/etc/fstab_ filesystems where the mountpoint directory is _/mnt/" "foo_." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:226 +#: ../misc-utils/findmnt.8.adoc:223 #, no-wrap msgid "*findmnt --fstab --evaluate*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:228 +#: ../misc-utils/findmnt.8.adoc:225 msgid "" "Prints all _/etc/fstab_ filesystems and converts LABEL= and UUID= tags to " "the real device names." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:229 +#: ../misc-utils/findmnt.8.adoc:226 #, no-wrap msgid "*findmnt -n --raw --evaluate --output=target LABEL=/boot*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:231 +#: ../misc-utils/findmnt.8.adoc:228 msgid "" "Prints only the mountpoint where the filesystem with label \"/boot\" is " "mounted." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:232 +#: ../misc-utils/findmnt.8.adoc:229 #, no-wrap msgid "*findmnt --poll --mountpoint /mnt/foo*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:234 +#: ../misc-utils/findmnt.8.adoc:231 msgid "Monitors mount, unmount, remount and move on _/mnt/foo_." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:235 +#: ../misc-utils/findmnt.8.adoc:232 #, no-wrap msgid "*findmnt --poll=umount --first-only --mountpoint /mnt/foo*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:237 +#: ../misc-utils/findmnt.8.adoc:234 msgid "Waits for _/mnt/foo_ unmount." msgstr "" #. type: Labeled list -#: ../misc-utils/findmnt.8.adoc:238 +#: ../misc-utils/findmnt.8.adoc:235 #, no-wrap msgid "*findmnt --poll=remount -t ext3 -O ro*" msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:240 +#: ../misc-utils/findmnt.8.adoc:237 msgid "Monitors remounts to read-only mode on all ext3 filesystems." msgstr "" #. type: Plain text -#: ../misc-utils/findmnt.8.adoc:249 -#, no-wrap -msgid "" -"*fstab*(5),\n" -"*mount*(8)\n" +#: ../misc-utils/findmnt.8.adoc:246 +msgid "*fstab*(5), *mount*(8)" msgstr "" #. type: Title = @@ -13986,27 +14175,32 @@ msgstr "" #. type: Plain text #: ../misc-utils/getopt.1.adoc:17 -#, no-wrap -msgid "*getopt* _optstring_ _parameters_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*getopt* _optstring_ _parameters_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/getopt.1.adoc:19 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*getopt* [options] [*--*] _optstring_ _parameters_\n" +msgid "*getopt* [options] [*--*] _optstring_ _parameters_" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/getopt.1.adoc:21 -#, no-wrap -msgid "*getopt* [options] *-o*|*--options* _optstring_ [options] [*--*] _parameters_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "" +"*getopt* [options] *-o*|*--options* _optstring_ [options] [*--*] _parameters_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/getopt.1.adoc:25 -#, no-wrap -msgid "*getopt* is used to break up (_parse_) options in command lines for easy parsing by shell procedures, and to check for valid options. It uses the GNU *getopt*(3) routines to do this.\n" +msgid "" +"*getopt* is used to break up (_parse_) options in command lines for easy " +"parsing by shell procedures, and to check for valid options. It uses the GNU " +"*getopt*(3) routines to do this." msgstr "" #. type: Plain text @@ -14429,8 +14623,10 @@ msgstr "" #. type: Plain text #: ../misc-utils/getopt.1.adoc:127 -#, no-wrap -msgid "*getopt* returns error code *0* for successful parsing, *1* if *getopt*(3) returns errors, *2* if it does not understand its own parameters, *3* if an internal error occurs like out-of-memory, and *4* if it is called with *-T*.\n" +msgid "" +"*getopt* returns error code *0* for successful parsing, *1* if *getopt*(3) " +"returns errors, *2* if it does not understand its own parameters, *3* if an " +"internal error occurs like out-of-memory, and *4* if it is called with *-T*." msgstr "" #. TRANSLATORS: Don't translate _{package-docdir}_. @@ -14471,8 +14667,11 @@ msgstr "" #. type: Plain text #: ../misc-utils/getopt.1.adoc:144 -#, no-wrap -msgid "*getopt*(3) can parse long options with optional arguments that are given an empty optional argument (but cannot do this for short options). This *getopt*(1) treats optional arguments that are empty as if they were not present.\n" +msgid "" +"*getopt*(3) can parse long options with optional arguments that are given an " +"empty optional argument (but cannot do this for short options). This " +"*getopt*(1) treats optional arguments that are empty as if they were not " +"present." msgstr "" #. type: Plain text @@ -14496,15 +14695,12 @@ msgstr "" #. type: Plain text #: ../misc-utils/getopt.1.adoc:156 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*mesg*(1),\n" #| "*talk*(1),\n" #| "*who*(1)\n" -msgid "" -"*bash*(1),\n" -"*tcsh*(1),\n" -"*getopt*(3)\n" +msgid "*bash*(1), *tcsh*(1), *getopt*(3)" msgstr "" "*mesg*(1),\n" "*talk*(1),\n" @@ -14527,29 +14723,28 @@ msgstr "" #. type: Plain text #: ../misc-utils/hardlink.1.adoc:22 -#, no-wrap -msgid "*hardlink* [options] [_directory_|_file_]...\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*hardlink* [options] _directory_|_file_..." +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/hardlink.1.adoc:27 -#, no-wrap msgid "" -"*hardlink* is a tool that replaces copies of a file with either hardlinks\n" -"or copy-on-write clones, thus saving space.\n" +"*hardlink* is a tool that replaces copies of a file with either hardlinks or " +"copy-on-write clones, thus saving space." msgstr "" #. type: Plain text #: ../misc-utils/hardlink.1.adoc:35 -#, no-wrap msgid "" -"*hardlink* first creates a binary tree of file sizes and then compares\n" -"the content of files that have the same size. There are two basic content\n" -"comparison methods. The *memcmp* method directly reads data blocks from\n" -"files and compares them. The other method is based on checksums (like SHA256);\n" -"in this case for each data block a checksum is calculated by the Linux kernel\n" -"crypto API, and this checksum is stored in userspace and used for file\n" -"comparisons.\n" +"*hardlink* first creates a binary tree of file sizes and then compares the " +"content of files that have the same size. There are two basic content " +"comparison methods. The *memcmp* method directly reads data blocks from " +"files and compares them. The other method is based on checksums (like " +"SHA256); in this case for each data block a checksum is calculated by the " +"Linux kernel crypto API, and this checksum is stored in userspace and used " +"for file comparisons." msgstr "" #. type: Plain text @@ -14873,8 +15068,9 @@ msgstr "" #. type: Plain text #: ../misc-utils/hardlink.1.adoc:137 -#, no-wrap -msgid "*hardlink* takes one or more directories which will be searched for files to be linked.\n" +msgid "" +"*hardlink* takes one or more directories which will be searched for files to " +"be linked." msgstr "" #. type: Plain text @@ -14887,8 +15083,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/hardlink.1.adoc:143 -#, no-wrap -msgid "*hardlink* assumes that the trees it operates on do not change during operation. If a tree does change, the result is undefined and potentially dangerous. For example, if a regular file is replaced by a device, *hardlink* may start reading from the device. If a component of a path is replaced by a symbolic link or file permissions change, security may be compromised. Do not run *hardlink* on a changing tree or on a tree controlled by another user.\n" +msgid "" +"*hardlink* assumes that the trees it operates on do not change during " +"operation. If a tree does change, the result is undefined and potentially " +"dangerous. For example, if a regular file is replaced by a device, " +"*hardlink* may start reading from the device. If a component of a path is " +"replaced by a symbolic link or file permissions change, security may be " +"compromised. Do not run *hardlink* on a changing tree or on a tree " +"controlled by another user." msgstr "" #. type: Plain text @@ -14916,14 +15118,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/kill.1.adoc:21 -#, no-wrap -msgid "*kill* [**-**_signal_|*-s* _signal_|*-p*] [*-q* _value_] [*-a*] [*--timeout* _milliseconds_ _signal_] [*--*] _pid_|_name_...\n" +msgid "" +"*kill* [**-**_signal_|*-s* _signal_|*-p*] [*-q* _value_] [*-a*] [*--timeout* " +"_milliseconds_ _signal_] [*--*] _pid_|_name_..." msgstr "" #. type: Plain text #: ../misc-utils/kill.1.adoc:23 -#, no-wrap -msgid "*kill* *-l* [_number_] | *-L*\n" +msgid "*kill* *-l* [_number_] | *-L*" msgstr "" #. type: Plain text @@ -15178,13 +15380,12 @@ msgstr "" #. type: Plain text #: ../misc-utils/kill.1.adoc:88 -#, no-wrap -msgid "*kill* has the following exit status values:\n" +msgid "*kill* has the following exit status values:" msgstr "" #. type: Plain text #: ../misc-utils/kill.1.adoc:93 ../misc-utils/lsblk.8.adoc:190 -#: ../sys-utils/chcpu.8.adoc:64 ../sys-utils/chmem.8.adoc:63 +#: ../sys-utils/chcpu.8.adoc:68 ../sys-utils/chmem.8.adoc:63 #: ../sys-utils/fstrim.8.adoc:80 msgid "failure" msgstr "" @@ -15229,14 +15430,8 @@ msgstr "" #. type: Plain text #: ../misc-utils/kill.1.adoc:117 -#, no-wrap msgid "" -"*bash*(1),\n" -"*tcsh*(1),\n" -"*sigaction*(2),\n" -"*kill*(2),\n" -"*sigqueue*(3),\n" -"*signal*(7)\n" +"*bash*(1), *tcsh*(1), *sigaction*(2), *kill*(2), *sigqueue*(3), *signal*(7)" msgstr "" # @@ -15284,14 +15479,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/logger.1.adoc:50 -#, no-wrap -msgid "*logger* [options] _message_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*logger* [options] _message_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/logger.1.adoc:54 -#, no-wrap -msgid "*logger* makes entries in the system log.\n" +msgid "*logger* makes entries in the system log." msgstr "" #. type: Plain text @@ -15640,8 +15835,12 @@ msgstr "" #. type: Plain text #: ../misc-utils/logger.1.adoc:142 -#, no-wrap -msgid "*logger* currently generates the *timeQuality* standardized element only. RFC 5424 also describes the elements *origin* (with parameters *ip*, *enterpriseId*, *software* and *swVersion*) and *meta* (with parameters *sequenceId*, *sysUpTime* and *language*). These element IDs may be specified without the **@**__digits__ suffix.\n" +msgid "" +"*logger* currently generates the *timeQuality* standardized element only. " +"RFC 5424 also describes the elements *origin* (with parameters *ip*, " +"*enterpriseId*, *software* and *swVersion*) and *meta* (with parameters " +"*sequenceId*, *sysUpTime* and *language*). These element IDs may be " +"specified without the **@**__digits__ suffix." msgstr "" #. type: Labeled list @@ -15678,8 +15877,11 @@ msgstr "" #. type: Plain text #: ../misc-utils/logger.1.adoc:157 -#, no-wrap -msgid "*<13>1 2015-10-01T14:07:59.168662+02:00 ws kzak - - [timeQuality tzKnown=\"1\" isSynced=\"1\" syncAccuracy=\"218616\"][zoo@123 tiger=\"hungry\" zebra=\"running\"][manager@123 onMeeting=\"yes\"] this is message*\n" +msgid "" +"*<13>1 2015-10-01T14:07:59.168662+02:00 ws kzak - - [timeQuality " +"tzKnown=\"1\" isSynced=\"1\" syncAccuracy=\"218616\"][zoo@123 " +"tiger=\"hungry\" zebra=\"running\"][manager@123 onMeeting=\"yes\"] this is " +"message*" msgstr "" #. type: Plain text @@ -15809,18 +16011,18 @@ msgstr "" #: ../misc-utils/logger.1.adoc:197 #, no-wrap msgid "" -"*auth* +\n" -"*authpriv* for security information of a sensitive nature +\n" -"*cron* +\n" +"*auth*\n" +"*authpriv* for security information of a sensitive nature\n" +"*cron* +" msgstr "" #. type: Plain text #: ../misc-utils/logger.1.adoc:201 #, no-wrap msgid "" -"*daemon* +\n" -"*ftp* +\n" -"*kern* cannot be generated from userspace process, automatically converted to *user* +\n" +"*daemon*\n" +"*ftp*\n" +"*kern* cannot be generated from userspace process, automatically converted to *user* +" msgstr "" #. type: Plain text @@ -15848,17 +16050,17 @@ msgstr "" #: ../misc-utils/logger.1.adoc:226 #, no-wrap msgid "" -"*emerg* +\n" -"*alert* +\n" -"*crit* +\n" -"*err* +\n" -"*warning* +\n" -"*notice* +\n" -"*info* +\n" -"*debug* +\n" -"*panic* deprecated synonym for *emerg* +\n" -"*error* deprecated synonym for *err* +\n" -"*warn* deprecated synonym for *warning* +\n" +"*emerg*\n" +"*alert*\n" +"*crit*\n" +"*err*\n" +"*warning*\n" +"*notice*\n" +"*info*\n" +"*debug*\n" +"*panic* deprecated synonym for *emerg*\n" +"*error* deprecated synonym for *err*\n" +"*warn* deprecated synonym for *warning* +" msgstr "" #. type: Plain text @@ -15901,11 +16103,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/logger.1.adoc:251 -#, no-wrap -msgid "" -"*journalctl*(1),\n" -"*syslog*(3),\n" -"*systemd.journal-fields*(7)\n" +msgid "*journalctl*(1), *syslog*(3), *systemd.journal-fields*(7)" msgstr "" # @@ -15953,9 +16151,10 @@ msgstr "" #. type: Plain text #: ../misc-utils/look.1.adoc:50 -#, no-wrap -msgid "*look* [options] _string_ [_file_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*look* [options] _string_ [_file_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/look.1.adoc:54 @@ -16088,11 +16287,16 @@ msgstr "" #. type: Plain text #: ../misc-utils/look.1.adoc:105 -#, no-wrap -msgid "" -"*grep*(1),\n" -"*sort*(1)\n" +#, fuzzy +#| msgid "" +#| "*mesg*(1),\n" +#| "*talk*(1),\n" +#| "*who*(1)\n" +msgid "*grep*(1), *sort*(1)" msgstr "" +"*mesg*(1),\n" +"*talk*(1),\n" +"*who*(1)\n" #. type: Title = #: ../misc-utils/lsblk.8.adoc:2 @@ -16107,15 +16311,19 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsblk.8.adoc:16 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*lsblk* [options] [_device_...]\n" +msgid "*lsblk* [options] [_device_...]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/lsblk.8.adoc:20 -#, no-wrap -msgid "*lsblk* lists information about all available or the specified block devices. The *lsblk* command reads the *sysfs* filesystem and *udev db* to gather information. If the udev db is not available or *lsblk* is compiled without udev support, then it tries to read LABELs, UUIDs and filesystem types from the block device. In this case root permissions are necessary.\n" +msgid "" +"*lsblk* lists information about all available or the specified block " +"devices. The *lsblk* command reads the *sysfs* filesystem and *udev db* to " +"gather information. If the udev db is not available or *lsblk* is compiled " +"without udev support, then it tries to read LABELs, UUIDs and filesystem " +"types from the block device. In this case root permissions are necessary." msgstr "" #. type: Plain text @@ -16720,18 +16928,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsblk.8.adoc:231 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*setpriv*(1),\n" #| "*login.defs*(5),\n" #| "*shells*(5),\n" #| "*pam*(8),\n" #| "*runuser*(1)\n" -msgid "" -"*blkid*(8),\n" -"*findmnt*(8)\n" -"*ls*(1),\n" -"*scols-filter*(5)\n" +msgid "*blkid*(8), *findmnt*(8) *ls*(1), *scols-filter*(5)" msgstr "" "*setpriv*(1),\n" "*login.defs*(5),\n" @@ -16752,15 +16956,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsclocks.1.adoc:16 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*lsclocks* [option]\n" +msgid "*lsclocks* [option]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/lsclocks.1.adoc:20 -#, no-wrap -msgid "*lsclocks* is a simple command to display system clocks.\n" +msgid "*lsclocks* is a simple command to display system clocks." msgstr "" #. type: Plain text @@ -16979,8 +17182,7 @@ msgstr "*ENV_PATH* (řetězec)" #. type: Plain text #: ../misc-utils/lsclocks.1.adoc:95 -#, no-wrap -msgid "*TIME* time formatted as time range.\n" +msgid "*TIME* time formatted as time range." msgstr "" #. type: Labeled list @@ -16998,13 +17200,12 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsclocks.1.adoc:107 -#, no-wrap -msgid "*clock_getres*(2) *clock_gettime*(2)\n" +msgid "*clock_getres*(2) *clock_gettime*(2)" msgstr "" # #. Copyright 2021 Red Hat, Inc. -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../misc-utils/lsfd.1.adoc:7 #, no-wrap @@ -17018,28 +17219,28 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:22 -#, no-wrap -msgid "*lsfd* [option]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*lsfd* [option]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:30 -#, no-wrap msgid "" -"*lsfd* is intended to be a modern replacement for *lsof*(8) on Linux systems.\n" -"Unlike *lsof*, *lsfd* is specialized to Linux kernel; it supports Linux\n" -"specific features like namespaces with simpler code. *lsfd* is not a\n" -"drop-in replacement for *lsof*; they are different in the command line\n" -"interface and output formats.\n" +"*lsfd* is intended to be a modern replacement for *lsof*(8) on Linux " +"systems. Unlike *lsof*, *lsfd* is specialized to Linux kernel; it supports " +"Linux specific features like namespaces with simpler code. *lsfd* is not a " +"drop-in replacement for *lsof*; they are different in the command line " +"interface and output formats." msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:38 -#, no-wrap msgid "" -"*lsfd* uses Libsmartcols for output formatting and filtering. See the description of *--output*\n" -"option for customizing the output format, and *--filter* option for filtering. Use *lsfd --list-columns*\n" -"to get a list of all available columns.\n" +"*lsfd* uses Libsmartcols for output formatting and filtering. See the " +"description of *--output* option for customizing the output format, and *--" +"filter* option for filtering. Use *lsfd --list-columns* to get a list of all " +"available columns." msgstr "" #. type: Labeled list @@ -17387,11 +17588,9 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:177 -#, no-wrap msgid "" -"*lsfd* collects endpoints within the processes that\n" -"*lsfd* scans; *lsfd* may miss some endpoints\n" -"if you limits the processes with *-p* option.\n" +"*lsfd* collects endpoints within the processes that *lsfd* scans; *lsfd* may " +"miss some endpoints if you limits the processes with *-p* option." msgstr "" #. type: Plain text @@ -17593,8 +17792,8 @@ msgstr "*ENV_PATH* (řetězec)" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:236 msgid "" -"List of monitoring inodes. The format of the element is _inode-number_," -"_device-major_:_device-minor_." +"List of monitoring inodes. The format of the element is _inode-number_``," +"``_device-major_``:``_device-minor_." msgstr "" #. type: Labeled list @@ -17798,10 +17997,9 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:301 -#, no-wrap msgid "" -"*lsfd* extracts _TARGET-PID_ and _TARGET-NSPIDS_ from\n" -"``/proc/``_pid_``/fdinfo/``_fd_.\n" +"*lsfd* extracts _TARGET-PID_ and _TARGET-NSPIDS_ from ``/proc/``_pid_``/" +"fdinfo/``_fd_." msgstr "" #. type: Labeled list @@ -17842,10 +18040,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:313 -#, no-wrap -msgid "" -"*lsfd* extracts _PTMX.TTY-INDEX_ from\n" -"``/proc/``_pid_``/fdinfo/``_fd_.\n" +msgid "*lsfd* extracts _PTMX.TTY-INDEX_ from ``/proc/``_pid_``/fdinfo/``_fd_." msgstr "" #. type: Labeled list @@ -17934,8 +18129,8 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:335 -#, no-wrap -msgid "*lsfd* hides ``raddr=`` if _UDP.RADDR_ is ``0.0.0.0`` and _UDP.RPORT_ is 0.\n" +msgid "" +"*lsfd* hides ``raddr=`` if _UDP.RADDR_ is ``0.0.0.0`` and _UDP.RPORT_ is 0." msgstr "" #. type: Labeled list @@ -18387,7 +18582,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:472 -msgid "Local L3 (INET.LADDR or INET6.LADDR) address and local TCP port." +msgid "Local L3 (_INET.LADDR_ or _INET6.LADDR_) address and local TCP port." msgstr "" #. type: Labeled list @@ -18409,7 +18604,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:478 -msgid "Remote L3 (INET.RADDR or INET6.RADDR) address and remote TCP port." +msgid "Remote L3 (_INET.RADDR_ or _INET6.RADDR_) address and remote TCP port." msgstr "" #. type: Labeled list @@ -18494,9 +18689,9 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:504 msgid "" -"Cooked version of STTYPE. It is same as STTYPE with exceptions. For SOCK, " -"print the value for SOCK.PROTONAME. For UNKN, print the value for " -"AINODECLASS if SOURCE is anon_inodefs." +"Cooked version of _STTYPE_. It is same as _STTYPE_ with exceptions. For " +"_SOCK_, print the value for _SOCK.PROTONAME_. For _UNKN_, print the value " +"for _AINODECLASS_ if _SOURCE_ is `anon_inodefs`." msgstr "" #. type: Labeled list @@ -18708,11 +18903,10 @@ msgstr "" #. type: Plain text #: ../misc-utils/lsfd.1.adoc:574 -#, no-wrap msgid "" -"*lsfd* has few options for filtering. In most of cases, what you should\n" -"know is *-Q* (or *--filter*) option. Combined with *-o* (or\n" -"*--output*) option, you can customize the output as you want.\n" +"*lsfd* has few options for filtering. In most of cases, what you should know " +"is *-Q* (or *--filter*) option. Combined with *-o* (or *--output*) option, " +"you can customize the output as you want." msgstr "" #. TRANSLATORS: In the following messages, don't forget to add whitespace at the end! @@ -18900,41 +19094,29 @@ msgstr "" #. type: Labeled list #: ../misc-utils/lsfd.1.adoc:656 #, no-wrap -msgid "Hide files associated to kernel threads: " -msgstr "" - -#. type: delimited block . -#: ../misc-utils/lsfd.1.adoc:659 -#, no-wrap -msgid "# lsfd -Q '!KTHREAD'\n" -msgstr "" - -#. type: Labeled list -#: ../misc-utils/lsfd.1.adoc:661 -#, no-wrap msgid "List timerfd files expired within 0.5 seconds: " msgstr "" #. type: delimited block . -#: ../misc-utils/lsfd.1.adoc:664 +#: ../misc-utils/lsfd.1.adoc:659 #, no-wrap msgid "# lsfd -Q '(TIMERFD.remaining < 0.5) and (TIMERFD.remaining > 0.0)'\n" msgstr "" #. type: Title == -#: ../misc-utils/lsfd.1.adoc:666 +#: ../misc-utils/lsfd.1.adoc:661 #, no-wrap msgid "COUNTER EXAMPLES" msgstr "" #. type: Labeled list -#: ../misc-utils/lsfd.1.adoc:668 +#: ../misc-utils/lsfd.1.adoc:663 #, no-wrap msgid "Report the numbers of netlink socket descriptors and unix socket descriptors: " msgstr "" #. type: delimited block . -#: ../misc-utils/lsfd.1.adoc:676 +#: ../misc-utils/lsfd.1.adoc:671 #, no-wrap msgid "" "# lsfd --summary=only \\\n" @@ -18946,13 +19128,13 @@ msgid "" msgstr "" #. type: Labeled list -#: ../misc-utils/lsfd.1.adoc:678 +#: ../misc-utils/lsfd.1.adoc:673 #, no-wrap msgid "Do the same but print in JSON format: " msgstr "" #. type: delimited block . -#: ../misc-utils/lsfd.1.adoc:694 +#: ../misc-utils/lsfd.1.adoc:689 #, no-wrap msgid "" "# lsfd --summary=only --json \\\n" @@ -18972,30 +19154,21 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/lsfd.1.adoc:700 +#: ../misc-utils/lsfd.1.adoc:695 msgid "The *lsfd* command is part of the util-linux package since v2.38." msgstr "" #. type: Plain text -#: ../misc-utils/lsfd.1.adoc:705 +#: ../misc-utils/lsfd.1.adoc:700 msgid "" "mailto:yamato@redhat.com[Masatake YAMATO], mailto:kzak@redhat.com[Karel Zak]" msgstr "" #. type: Plain text -#: ../misc-utils/lsfd.1.adoc:717 -#, no-wrap +#: ../misc-utils/lsfd.1.adoc:712 msgid "" -"*bpftool*(8)\n" -"*bps*(8)\n" -"*lslocks*(8)\n" -"*lsof*(8)\n" -"*pidof*(1)\n" -"*proc*(5)\n" -"*scols-filter*(5)\n" -"*socket*(2)\n" -"*ss*(8)\n" -"*stat*(2)\n" +"*bpftool*(8) *bps*(8) *lslocks*(8) *lsof*(8) *pidof*(1) *proc*(5) " +"*scols-filter*(5) *socket*(2) *ss*(8) *stat*(2)" msgstr "" #. Man page for the lslocks command. @@ -19017,14 +19190,16 @@ msgstr "" #. type: Plain text #: ../misc-utils/lslocks.8.adoc:27 -#, no-wrap -msgid "*lslocks* [options]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*lslocks* [options]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/lslocks.8.adoc:31 -#, no-wrap -msgid "*lslocks* lists information about all the currently held file locks in a Linux system.\n" +msgid "" +"*lslocks* lists information about all the currently held file locks in a " +"Linux system." msgstr "" #. type: Labeled list @@ -19253,15 +19428,12 @@ msgstr "" #. type: Plain text #: ../misc-utils/lslocks.8.adoc:132 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*mesg*(1),\n" #| "*talk*(1),\n" #| "*who*(1)\n" -msgid "" -"*flock*(1),\n" -"*fcntl*(2),\n" -"*lockf*(3)\n" +msgid "*flock*(1), *fcntl*(2), *lockf*(3)" msgstr "" "*mesg*(1),\n" "*talk*(1),\n" @@ -19282,20 +19454,21 @@ msgstr "" #. type: Plain text #: ../misc-utils/mcookie.1.adoc:18 -#, no-wrap -msgid "*mcookie* [options]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*mcookie* [options]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/mcookie.1.adoc:22 -#, no-wrap -msgid "*mcookie* generates a 128-bit random hexadecimal number for use with the X authority system. Typical usage:\n" +msgid "" +"*mcookie* generates a 128-bit random hexadecimal number for use with the X " +"authority system. Typical usage:" msgstr "" #. type: delimited block _ #: ../misc-utils/mcookie.1.adoc:25 -#, no-wrap -msgid "*xauth add :0 . `mcookie`*\n" +msgid "*xauth add :0 . `mcookie`*" msgstr "" #. type: Plain text @@ -19360,12 +19533,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/mcookie.1.adoc:60 -#, no-wrap -msgid "" -"*md5sum*(1),\n" -"*X*(7),\n" -"*xauth*(1),\n" -"*rand*(3)\n" +msgid "*md5sum*(1), *X*(7), *xauth*(1), *rand*(3)" msgstr "" #. type: Title = @@ -19381,14 +19549,19 @@ msgstr "" #. type: Plain text #: ../misc-utils/namei.1.adoc:16 -#, no-wrap -msgid "*namei* [options] _pathname_...\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*namei* [options] _pathname_..." +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/namei.1.adoc:20 -#, no-wrap -msgid "*namei* interprets its arguments as pathnames to any type of Unix file (symlinks, files, directories, and so forth). *namei* then follows each pathname until an endpoint is found (a file, a directory, a device node, etc). If it finds a symbolic link, it shows the link, and starts following it, indenting the output to show the context.\n" +msgid "" +"*namei* interprets its arguments as pathnames to any type of Unix file " +"(symlinks, files, directories, and so forth). *namei* then follows each " +"pathname until an endpoint is found (a file, a directory, a device node, " +"etc). If it finds a symbolic link, it shows the link, and starts following " +"it, indenting the output to show the context." msgstr "" #. type: Plain text @@ -19422,8 +19595,9 @@ msgstr "" #. type: Plain text #: ../misc-utils/namei.1.adoc:38 -#, no-wrap -msgid "*namei* prints an informative message when the maximum number of symbolic links this system can have has been exceeded.\n" +msgid "" +"*namei* prints an informative message when the maximum number of symbolic " +"links this system can have has been exceeded." msgstr "" #. type: Labeled list @@ -19515,21 +19689,17 @@ msgstr "" #. type: Plain text #: ../misc-utils/namei.1.adoc:74 -msgid "" -"The program was rewritten by Karel Zak mailto:kzak@redhat.com[Karel Zak]." +msgid "The program was rewritten by mailto:kzak@redhat.com[Karel Zak]." msgstr "" #. type: Plain text #: ../misc-utils/namei.1.adoc:80 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*mesg*(1),\n" #| "*talk*(1),\n" #| "*who*(1)\n" -msgid "" -"*ls*(1),\n" -"*stat*(1),\n" -"*symlink*(7)\n" +msgid "*ls*(1), *stat*(1), *symlink*(7)" msgstr "" "*mesg*(1),\n" "*talk*(1),\n" @@ -19548,15 +19718,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/pipesz.1.adoc:16 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*pipesz* [options] [--set _size_] [--] [_command_ [argument] ...]\n" +msgid "*pipesz* [options] [--set _size_] [--] [_command_ [argument] ...]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/pipesz.1.adoc:18 -#, no-wrap -msgid "*pipesz* [options] --get\n" +msgid "*pipesz* [options] --get" msgstr "" #. type: Plain text @@ -19620,8 +19789,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/pipesz.1.adoc:34 -#, no-wrap -msgid "*pipesz* supports specifying multiple short options consecutively, in the usual *getopt*(3) fashion. The first non-option argument is interpreted as _command_. If _command_ might begin with '-', use '--' to separate it from arguments to *pipesz*. In shell scripts, it is good practice to use '--' when parameter expansion is involved. *pipesz* itself does not read from standard input and does not write to standard output unless *--get*, *--help*, or *--version* are specified.\n" +msgid "" +"*pipesz* supports specifying multiple short options consecutively, in the " +"usual *getopt*(3) fashion. The first non-option argument is interpreted as " +"_command_. If _command_ might begin with '-', use '--' to separate it from " +"arguments to *pipesz*. In shell scripts, it is good practice to use '--' " +"when parameter expansion is involved. *pipesz* itself does not read from " +"standard input and does not write to standard output unless *--get*, *--" +"help*, or *--version* are specified." msgstr "" #. type: Labeled list @@ -19844,102 +20019,99 @@ msgstr "" #. type: Plain text #: ../misc-utils/pipesz.1.adoc:102 -#, no-wrap -msgid "*pipe*(7)\n" +msgid "*pipe*(7)" msgstr "" +#. No copyright is claimed. This code is in the public domain; do with +#. it what you wish. +#. po4a: entry man manual #. Written by Andries E. Brouwer (aeb@cwi.nl) #. Placed in the public domain #. type: Title = -#: ../misc-utils/rename.1.adoc:4 +#: ../misc-utils/rename.1.adoc:8 #, no-wrap msgid "rename(1)" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:14 +#: ../misc-utils/rename.1.adoc:18 msgid "rename - rename files" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:18 -#, no-wrap -msgid "*rename* [options] _expression replacement file_...\n" -msgstr "" +#: ../misc-utils/rename.1.adoc:22 +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*rename* [options] _expression replacement file_..." +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text -#: ../misc-utils/rename.1.adoc:22 -#, no-wrap -msgid "*rename* will rename the specified files by replacing the first occurrence of _expression_ in their name by _replacement_.\n" +#: ../misc-utils/rename.1.adoc:26 +msgid "" +"*rename* will rename the specified files by replacing the first occurrence " +"of _expression_ in their name by _replacement_." msgstr "" #. type: Labeled list -#: ../misc-utils/rename.1.adoc:25 +#: ../misc-utils/rename.1.adoc:29 #, fuzzy, no-wrap #| msgid "*-V*, *--version*" msgid "*-s*, *--symlink*" msgstr "*-V*, *--version*" #. type: Plain text -#: ../misc-utils/rename.1.adoc:27 +#: ../misc-utils/rename.1.adoc:31 msgid "Do not rename a symlink but change where it points." msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:30 +#: ../misc-utils/rename.1.adoc:34 msgid "Show which files were renamed, if any." msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:33 +#: ../misc-utils/rename.1.adoc:37 msgid "Do not make any changes; add *--verbose* to see what would be made." msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:36 +#: ../misc-utils/rename.1.adoc:40 msgid "Replace all occurrences of _expression_ rather than only the first one." msgstr "" #. type: Labeled list -#: ../misc-utils/rename.1.adoc:37 +#: ../misc-utils/rename.1.adoc:41 #, fuzzy, no-wrap #| msgid "*-f*, *--fast*" msgid "*-l*, *--last*" msgstr "*-f*, *--fast*" #. type: Plain text -#: ../misc-utils/rename.1.adoc:39 +#: ../misc-utils/rename.1.adoc:43 msgid "Replace the last occurrence of _expression_ rather than the first one." msgstr "" #. type: Labeled list -#: ../misc-utils/rename.1.adoc:40 +#: ../misc-utils/rename.1.adoc:44 #, fuzzy, no-wrap #| msgid "*-V*, *--version*" msgid "*-o*, *--no-overwrite*" msgstr "*-V*, *--version*" #. type: Plain text -#: ../misc-utils/rename.1.adoc:42 +#: ../misc-utils/rename.1.adoc:46 msgid "" "Do not overwrite existing files. When *--symlink* is active, do not " "overwrite symlinks pointing to existing targets." msgstr "" -#. type: Labeled list -#: ../misc-utils/rename.1.adoc:43 -#, fuzzy, no-wrap -#| msgid "*-V*, *--version*" -msgid "*-i*, *--interactive*" -msgstr "*-V*, *--version*" - #. type: Plain text -#: ../misc-utils/rename.1.adoc:45 +#: ../misc-utils/rename.1.adoc:49 msgid "Ask before overwriting existing files." msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:51 +#: ../misc-utils/rename.1.adoc:55 msgid "" "The renaming has no safeguards by default or without any one of the options " "*--no-overwrite*, *--interactive* or *--no-act*. If the user has permission " @@ -19950,13 +20122,13 @@ msgid "" msgstr "" #. type: Title == -#: ../misc-utils/rename.1.adoc:52 +#: ../misc-utils/rename.1.adoc:56 #, no-wrap msgid "EDGE CASES" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:55 +#: ../misc-utils/rename.1.adoc:59 msgid "" "If the _expression_ is empty, then by default _replacement_ will be added to " "the start of the filename. With *--all*, _replacement_ will be inserted in " @@ -19965,7 +20137,7 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:57 +#: ../misc-utils/rename.1.adoc:61 msgid "" "Normally, only the final path component of a filename is updated. (Or with " "*--symlink*, only the final path component of the link.) But if either " @@ -19975,13 +20147,13 @@ msgid "" msgstr "" #. type: Title == -#: ../misc-utils/rename.1.adoc:58 +#: ../misc-utils/rename.1.adoc:62 #, no-wrap msgid "INTERACTIVE MODE" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:61 +#: ../misc-utils/rename.1.adoc:65 msgid "" "As most standard utilities rename can be used with a terminal device (tty in " "short) in canonical mode, where the line is buffered by the tty and you " @@ -19991,44 +20163,44 @@ msgid "" msgstr "" #. type: delimited block . -#: ../misc-utils/rename.1.adoc:64 +#: ../misc-utils/rename.1.adoc:68 #, no-wrap msgid "sh -c 'stty -icanon min 1; \"$0\" \"$@\"; stty icanon' rename -i from to files\n" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:70 +#: ../misc-utils/rename.1.adoc:74 msgid "all requested rename operations were successful" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:73 +#: ../misc-utils/rename.1.adoc:77 msgid "all rename operations failed" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:76 +#: ../misc-utils/rename.1.adoc:80 msgid "some rename operations failed" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:79 +#: ../misc-utils/rename.1.adoc:83 msgid "nothing was renamed" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:82 +#: ../misc-utils/rename.1.adoc:86 msgid "unanticipated error occurred" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:86 +#: ../misc-utils/rename.1.adoc:90 msgid "" "Given the files _foo1_, ..., _foo9_, _foo10_, ..., _foo278_, the commands" msgstr "" #. type: delimited block . -#: ../misc-utils/rename.1.adoc:90 +#: ../misc-utils/rename.1.adoc:94 #, no-wrap msgid "" "rename foo foo00 foo?\n" @@ -20036,43 +20208,42 @@ msgid "" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:93 +#: ../misc-utils/rename.1.adoc:97 msgid "" "will turn them into _foo001_, ..., _foo009_, _foo010_, ..., _foo278_. And" msgstr "" #. type: delimited block . -#: ../misc-utils/rename.1.adoc:96 +#: ../misc-utils/rename.1.adoc:100 #, no-wrap msgid "rename .htm .html *.htm\n" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:99 +#: ../misc-utils/rename.1.adoc:103 msgid "" "will fix the extension of your html files. Provide an empty string for " "shortening:" msgstr "" #. type: delimited block . -#: ../misc-utils/rename.1.adoc:102 +#: ../misc-utils/rename.1.adoc:106 #, no-wrap msgid "rename '_with_long_name' '' file_with_long_name.*\n" msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:105 +#: ../misc-utils/rename.1.adoc:109 msgid "will remove the substring in the filenames." msgstr "" #. type: Plain text -#: ../misc-utils/rename.1.adoc:109 -#, no-wrap -msgid "*mv*(1)\n" +#: ../misc-utils/rename.1.adoc:113 +msgid "*mv*(1)" msgstr "" #. Copyright 2007 by Theodore Ts'o. All Rights Reserved. -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../misc-utils/uuidd.8.adoc:6 #, no-wrap @@ -20086,8 +20257,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/uuidd.8.adoc:20 -#, no-wrap -msgid "*uuidd* [options]\n" +msgid "*uuidd* [options]" msgstr "" #. type: Plain text @@ -20309,14 +20479,11 @@ msgstr "" #. type: Plain text #: ../misc-utils/uuidd.8.adoc:92 -#, no-wrap -msgid "" -"*uuid*(3),\n" -"*uuidgen*(1)\n" +msgid "*uuid*(3), *uuidgen*(1)" msgstr "" #. Copyright 1999 Andreas Dilger (adilger@enel.ucalgary.ca) -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../misc-utils/uuidgen.1.adoc:6 #, no-wrap @@ -20330,8 +20497,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/uuidgen.1.adoc:20 -#, no-wrap -msgid "*uuidgen* [options]\n" +msgid "*uuidgen* [options]" msgstr "" #. type: Plain text @@ -20472,17 +20638,14 @@ msgstr "" #. type: Plain text #: ../misc-utils/uuidgen.1.adoc:68 -#, no-wrap -msgid "*uuidgen* was written by Andreas Dilger for *libuuid*(3).\n" +msgid "*uuidgen* was written by Andreas Dilger for *libuuid*(3)." msgstr "" #. type: Plain text #: ../misc-utils/uuidgen.1.adoc:74 -#, no-wrap msgid "" -"*uuidparse*(1),\n" -"*libuuid*(3),\n" -"link:https://tools.ietf.org/html/rfc4122[RFC 4122]\n" +"*uuidparse*(1), *libuuid*(3), link:https://tools.ietf.org/html/rfc4122[RFC " +"4122]" msgstr "" #. Copyright (c) 2017 Sami Kerola @@ -20500,9 +20663,10 @@ msgstr "" #. type: Plain text #: ../misc-utils/uuidparse.1.adoc:18 -#, no-wrap -msgid "*uuidparse* [options] _uuid_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*uuidparse* [options] _uuid_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/uuidparse.1.adoc:22 @@ -20560,11 +20724,8 @@ msgstr "" #. type: Plain text #: ../misc-utils/uuidparse.1.adoc:73 -#, no-wrap msgid "" -"*uuidgen*(1),\n" -"*libuuid*(3),\n" -"https://tools.ietf.org/html/rfc4122[RFC 4122]\n" +"*uuidgen*(1), *libuuid*(3), https://tools.ietf.org/html/rfc4122[RFC 4122]" msgstr "" #. type: Title = @@ -20580,14 +20741,13 @@ msgstr "" #. type: Plain text #: ../misc-utils/waitpid.1.adoc:16 -#, no-wrap -msgid "*waitpid* [-v] [*--timeout*|*-t* _seconds_] pid...\n" +msgid "*waitpid* [-v] [*--timeout*|*-t* _seconds_] pid..." msgstr "" #. type: Plain text #: ../misc-utils/waitpid.1.adoc:20 -#, no-wrap -msgid "*waitpid* is a simple command to wait for arbitrary non-child processes.\n" +msgid "" +"*waitpid* is a simple command to wait for arbitrary non-child processes." msgstr "" #. type: Plain text @@ -20633,8 +20793,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/waitpid.1.adoc:43 -#, no-wrap -msgid "*waitpid* has the following exit status values:\n" +msgid "*waitpid* has the following exit status values:" msgstr "" #. type: Plain text @@ -20649,8 +20808,7 @@ msgstr "" #. type: Plain text #: ../misc-utils/waitpid.1.adoc:60 -#, no-wrap -msgid "*waitpid*(2) *wait*(1P)\n" +msgid "*waitpid*(2) *wait*(1P)" msgstr "" # @@ -20699,15 +20857,20 @@ msgstr "" #. type: Plain text #: ../misc-utils/whereis.1.adoc:50 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*whereis* [options] [*-BMS* _directory_... *-f*] _name_...\n" +msgid "*whereis* [options] [*-BMS* _directory_... *-f*] _name_..." msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/whereis.1.adoc:54 -#, no-wrap -msgid "*whereis* locates the binary, source and manual files for the specified command names. The supplied names are *first stripped of leading pathname components*. Prefixes of *s.* resulting from use of source code control are also dealt with. *whereis* then attempts to locate the desired program in the standard Linux places, and in the places specified by *$PATH* and *$MANPATH*.\n" +msgid "" +"*whereis* locates the binary, source and manual files for the specified " +"command names. The supplied names are *first stripped of leading pathname " +"components*. Prefixes of *s.* resulting from use of source code control are " +"also dealt with. *whereis* then attempts to locate the desired program in " +"the standard Linux places, and in the places specified by *$PATH* and " +"*$MANPATH*." msgstr "" #. type: Plain text @@ -20720,8 +20883,7 @@ msgstr "" #. type: delimited block _ #: ../misc-utils/whereis.1.adoc:59 -#, no-wrap -msgid "*whereis -bm ls tr -m gcc*\n" +msgid "*whereis -bm ls tr -m gcc*" msgstr "" #. type: Plain text @@ -20740,8 +20902,7 @@ msgstr "" #. type: delimited block _ #: ../misc-utils/whereis.1.adoc:67 -#, no-wrap -msgid "*whereis -m ls -M /usr/share/man/man1 -f cal*\n" +msgid "*whereis -m ls -M /usr/share/man/man1 -f cal*" msgstr "" #. type: Plain text @@ -20858,8 +21019,8 @@ msgstr "" msgid "" "Interpret the next names as a *glob(7)* patterns. *whereis* always compares " "only filenames (aka basename) and never complete path. Using directory names " -"in the pattern has no effect. Don’t forget that the shell interprets the " -"pattern when specified on the command line without quotes. It’s necessary to " +"in the pattern has no effect. Don’t forget that the shell interprets the " +"pattern when specified on the command line without quotes. It’s necessary to " "use quotes for the _name_, for example:" msgstr "" @@ -20902,12 +21063,12 @@ msgstr "" #: ../misc-utils/whereis.1.adoc:123 #, no-wrap msgid "" -"*cd /usr/bin* +\n" -"*whereis -u -ms -M /usr/man/man1 -S /usr/src -f **\n" +"*cd /usr/bin*\n" +"*whereis -u -ms -M /usr/man/man1 -S /usr/src -f **" msgstr "" #. Copyright 2009 by Karel Zak. All Rights Reserved. -#. This file may be copied under the terms of the GNU Public License. +#. This file may be copied under the terms of the GNU General Public License. #. type: Title = #: ../misc-utils/wipefs.8.adoc:4 #, no-wrap @@ -20921,26 +21082,28 @@ msgstr "" #. type: Plain text #: ../misc-utils/wipefs.8.adoc:18 -#, no-wrap -msgid "*wipefs* [options] _device_...\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*wipefs* [options] _device_..." +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../misc-utils/wipefs.8.adoc:20 -#, no-wrap -msgid "*wipefs* [*--backup*] *-o* _offset device_...\n" +msgid "*wipefs* [*--backup*] *-o* _offset device_..." msgstr "" #. type: Plain text #: ../misc-utils/wipefs.8.adoc:22 -#, no-wrap -msgid "*wipefs* [*--backup*] *-a* _device_...\n" +msgid "*wipefs* [*--backup*] *-a* _device_..." msgstr "" #. type: Plain text #: ../misc-utils/wipefs.8.adoc:27 -#, no-wrap -msgid "*wipefs* can erase filesystem, raid or partition-table signatures (magic strings) from the specified _device_ to make the signatures invisible for libblkid. *wipefs* does not erase the filesystem itself nor any other data from the device.\n" +msgid "" +"*wipefs* can erase filesystem, raid or partition-table signatures (magic " +"strings) from the specified _device_ to make the signatures invisible for " +"libblkid. *wipefs* does not erase the filesystem itself nor any other data " +"from the device." msgstr "" #. type: Plain text @@ -20955,8 +21118,13 @@ msgstr "" #. type: Plain text #: ../misc-utils/wipefs.8.adoc:31 -#, no-wrap -msgid "*wipefs* calls the *BLKRRPART* ioctl when it has erased a partition-table signature to inform the kernel about the change. The ioctl is called as the last step and when all specified signatures from all specified devices are already erased. This feature can be used to wipe content on partition devices as well as a partition table on a disk device, for example by *wipefs -a /dev/sdc1 /dev/sdc2 /dev/sdc*.\n" +msgid "" +"*wipefs* calls the *BLKRRPART* ioctl when it has erased a partition-table " +"signature to inform the kernel about the change. The ioctl is called as the " +"last step and when all specified signatures from all specified devices are " +"already erased. This feature can be used to wipe content on partition " +"devices as well as a partition table on a disk device, for example by " +"*wipefs -a /dev/sdc1 /dev/sdc2 /dev/sdc*." msgstr "" #. type: Plain text @@ -21165,21 +21333,23 @@ msgstr "" #. type: Plain text #: ../schedutils/chrt.1.adoc:41 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*chrt* [options] _priority command argument_ ...\n" +msgid "*chrt* [options] _priority command argument_ ..." msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../schedutils/chrt.1.adoc:43 -#, no-wrap -msgid "*chrt* [options] *-p* [_priority_] _PID_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*chrt* [options] *-p* [_priority_] _PID_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../schedutils/chrt.1.adoc:47 -#, no-wrap -msgid "*chrt* sets or retrieves the real-time scheduling attributes of an existing _PID_, or runs _command_ with the given attributes.\n" +msgid "" +"*chrt* sets or retrieves the real-time scheduling attributes of an existing " +"_PID_, or runs _command_ with the given attributes." msgstr "" #. type: Title == @@ -21413,9 +21583,10 @@ msgstr "" #. type: delimited block _ #: ../schedutils/chrt.1.adoc:112 -#, no-wrap -msgid "*chrt* _priority_ _command_ [_arguments_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*chrt* _priority_ _command_ [_arguments_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. TRANSLATORS: Keep {colon} untranslated #. type: Labeled list @@ -21426,8 +21597,7 @@ msgstr "" #. type: delimited block _ #: ../schedutils/chrt.1.adoc:117 -#, no-wrap -msgid "*chrt -p* _PID_\n" +msgid "*chrt -p* _PID_" msgstr "" #. TRANSLATORS: Keep {colon} untranslated. @@ -21439,9 +21609,10 @@ msgstr "" #. type: delimited block _ #: ../schedutils/chrt.1.adoc:122 -#, no-wrap -msgid "*chrt -r -p* _priority PID_\n" -msgstr "" +#, fuzzy +#| msgid "*-P*, *--pty*" +msgid "*chrt -r -p* _priority PID_" +msgstr "*-P*, *--pty*" #. type: Labeled list #: ../schedutils/chrt.1.adoc:123 @@ -21451,8 +21622,7 @@ msgstr "" #. type: delimited block _ #: ../schedutils/chrt.1.adoc:126 -#, no-wrap -msgid "*chrt -r -p 30* _PID_\n" +msgid "*chrt -r -p 30* _PID_" msgstr "" #. type: Labeled list @@ -21463,8 +21633,7 @@ msgstr "" #. type: delimited block _ #: ../schedutils/chrt.1.adoc:130 -#, no-wrap -msgid "*chrt -o -p 0* _PID_\n" +msgid "*chrt -o -p 0* _PID_" msgstr "" #. type: Plain text @@ -21508,16 +21677,12 @@ msgstr "" #. type: Plain text #: ../schedutils/chrt.1.adoc:154 ../schedutils/uclampset.1.adoc:136 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*mesg*(1),\n" #| "*talk*(1),\n" #| "*who*(1)\n" -msgid "" -"*nice*(1),\n" -"*renice*(1),\n" -"*taskset*(1),\n" -"*sched*(7)\n" +msgid "*nice*(1), *renice*(1), *taskset*(1), *sched*(7)" msgstr "" "*mesg*(1),\n" "*talk*(1),\n" @@ -21542,27 +21707,25 @@ msgstr "" #. type: Plain text #: ../schedutils/ionice.1.adoc:17 -#, no-wrap -msgid "*ionice* [*-c* _class_] [*-n* _level_] [*-t*] *-p* _PID_\n" +msgid "*ionice* [*-c* _class_] [*-n* _level_] [*-t*] *-p* _PID_" msgstr "" #. type: Plain text #: ../schedutils/ionice.1.adoc:19 -#, no-wrap -msgid "*ionice* [*-c* _class_] [*-n* _level_] [*-t*] *-P* _PGID_\n" +msgid "*ionice* [*-c* _class_] [*-n* _level_] [*-t*] *-P* _PGID_" msgstr "" #. type: Plain text #: ../schedutils/ionice.1.adoc:21 -#, no-wrap -msgid "*ionice* [*-c* _class_] [*-n* _level_] [*-t*] *-u* _UID_\n" +msgid "*ionice* [*-c* _class_] [*-n* _level_] [*-t*] *-u* _UID_" msgstr "" #. type: Plain text #: ../schedutils/ionice.1.adoc:23 -#, no-wrap -msgid "*ionice* [*-c* _class_] [*-n* _level_] [*-t*] _command_ [argument] ...\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*ionice* [*-c* _class_] [*-n* _level_] [*-t*] _command_ [argument] ..." +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../schedutils/ionice.1.adoc:27 @@ -21780,8 +21943,7 @@ msgstr "" #. type: Plain text #: ../schedutils/ionice.1.adoc:94 -#, no-wrap -msgid "*ioprio_set*(2)\n" +msgid "*ioprio_set*(2)" msgstr "" # @@ -21817,22 +21979,31 @@ msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:40 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*taskset* [options] _mask command_ [_argument_...]\n" +msgid "*taskset* [options] _mask command_ [_argument_...]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../schedutils/taskset.1.adoc:42 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*taskset* [options] *-p* [_mask_] _pid_\n" +msgid "*taskset* [options] *-p* [_mask_] _pid_" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../schedutils/taskset.1.adoc:46 -#, no-wrap -msgid "The *taskset* command is used to set or retrieve the CPU affinity of a running process given its _pid_, or to launch a new _command_ with a given CPU affinity. CPU affinity is a scheduler property that \"bonds\" a process to a given set of CPUs on the system. The Linux scheduler will honor the given CPU affinity and the process will not run on any other CPUs. Note that the Linux scheduler also supports natural CPU affinity: the scheduler attempts to keep processes on the same CPU as long as practical for performance reasons. Therefore, forcing a specific CPU affinity is useful only in certain applications. The affinity of some processes like kernel per-CPU threads cannot be set.\n" +msgid "" +"The *taskset* command is used to set or retrieve the CPU affinity of a " +"running process given its _pid_, or to launch a new _command_ with a given " +"CPU affinity. CPU affinity is a scheduler property that \"bonds\" a process " +"to a given set of CPUs on the system. The Linux scheduler will honor the " +"given CPU affinity and the process will not run on any other CPUs. Note that " +"the Linux scheduler also supports natural CPU affinity: the scheduler " +"attempts to keep processes on the same CPU as long as practical for " +"performance reasons. Therefore, forcing a specific CPU affinity is useful " +"only in certain applications. The affinity of some processes like kernel " +"per-CPU threads cannot be set." msgstr "" #. type: Plain text @@ -21960,9 +22131,10 @@ msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:87 -#, no-wrap -msgid "*taskset* _mask_ _command_ [_arguments_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*taskset* _mask_ _command_ [_arguments_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. TRANSLATORS: Keep {colon} untranslated. #. type: Labeled list @@ -21973,9 +22145,10 @@ msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:91 -#, no-wrap -msgid "*taskset -p* _pid_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*taskset -p* _pid_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. TRANSLATORS: Keep {colon} untranslated. #. type: Labeled list @@ -21986,9 +22159,10 @@ msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:95 -#, no-wrap -msgid "*taskset -p* _mask pid_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*taskset -p* _mask pid_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. TRANSLATORS: Keep {colon} untranslated. #. type: Labeled list @@ -21999,9 +22173,9 @@ msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:99 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*taskset -pc* _cpu-list pid_\n" +msgid "*taskset -pc* _cpu-list pid_" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. TRANSLATORS: Keep {colon} untranslated. @@ -22013,9 +22187,10 @@ msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:103 -#, no-wrap -msgid "*taskset --cpu-list* _cpu-list command_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*taskset --cpu-list* _cpu-list command_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../schedutils/taskset.1.adoc:107 @@ -22028,31 +22203,38 @@ msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:111 -#, no-wrap -msgid "*taskset* returns 0 in its affinity-getting mode as long as the provided PID exists.\n" +msgid "" +"*taskset* returns 0 in its affinity-getting mode as long as the provided PID " +"exists." msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:113 -#, no-wrap -msgid "*taskset* returns 0 in its affinity-setting mode as long as the underlying *sched_setaffinity*(2) system call does. The success of the command does not guarantee that the specified thread has actually migrated to the indicated CPU(s), but only that the thread will not migrate to a CPU outside the new affinity mask. For example, the affinity of the kernel thread kswapd can be set, but the thread may not immediately migrate and is not guaranteed to ever do so:\n" +msgid "" +"*taskset* returns 0 in its affinity-setting mode as long as the underlying " +"*sched_setaffinity*(2) system call does. The success of the command does " +"not guarantee that the specified thread has actually migrated to the " +"indicated CPU(s), but only that the thread will not migrate to a CPU outside " +"the new affinity mask. For example, the affinity of the kernel thread " +"kswapd can be set, but the thread may not immediately migrate and is not " +"guaranteed to ever do so:" msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:125 #, no-wrap msgid "" -"$ ps ax -o comm,psr,pid | grep kswapd +\n" -"kswapd0 4 82 +\n" -"$ sudo taskset -p 1 82 +\n" -"pid 82's current affinity mask: 1 +\n" -"pid 82's new affinity mask: 1 +\n" -"$ echo $? +\n" -"0 +\n" -"$ ps ax -o comm,psr,pid | grep kswapd +\n" -"kswapd0 4 82 +\n" -"$ taskset -p 82 +\n" -"pid 82's current affinity mask: 1 +\n" +"$ ps ax -o comm,psr,pid | grep kswapd\n" +"kswapd0 4 82\n" +"$ sudo taskset -p 1 82\n" +"pid 82's current affinity mask: 1\n" +"pid 82's new affinity mask: 1\n" +"$ echo $?\n" +"0\n" +"$ ps ax -o comm,psr,pid | grep kswapd\n" +"kswapd0 4 82\n" +"$ taskset -p 82\n" +"pid 82's current affinity mask: 1 +" msgstr "" #. type: Plain text @@ -22066,13 +22248,13 @@ msgstr "" #: ../schedutils/taskset.1.adoc:135 #, no-wrap msgid "" -"$ ps ax -o comm,psr,pid | grep ksoftirqd/0 +\n" -"ksoftirqd/0 0 14 +\n" -"$ sudo taskset -p 1 14 +\n" -"pid 14's current affinity mask: 1 +\n" -"taskset: failed to set pid 14's affinity: Invalid argument +\n" -"$ echo $? +\n" -"1 +\n" +"$ ps ax -o comm,psr,pid | grep ksoftirqd/0\n" +"ksoftirqd/0 0 14\n" +"$ sudo taskset -p 1 14\n" +"pid 14's current affinity mask: 1\n" +"taskset: failed to set pid 14's affinity: Invalid argument\n" +"$ echo $?\n" +"1 +" msgstr "" #. type: Plain text @@ -22081,7 +22263,7 @@ msgid "Written by Robert M. Love." msgstr "" #. type: Title == -#: ../schedutils/taskset.1.adoc:140 ../sys-utils/chcpu.8.adoc:72 +#: ../schedutils/taskset.1.adoc:140 ../sys-utils/chcpu.8.adoc:76 #: ../sys-utils/flock.1.adoc:126 ../sys-utils/rtcwake.8.adoc:126 #: ../term-utils/scriptlive.1.adoc:66 ../term-utils/scriptreplay.1.adoc:83 #, no-wrap @@ -22099,14 +22281,18 @@ msgstr "" #. type: Plain text #: ../schedutils/taskset.1.adoc:152 -#, no-wrap +#, fuzzy +#| msgid "" +#| "*mesg*(1),\n" +#| "*talk*(1),\n" +#| "*who*(1)\n" msgid "" -"*chrt*(1),\n" -"*nice*(1),\n" -"*renice*(1),\n" -"*sched_getaffinity*(2),\n" -"*sched_setaffinity*(2)\n" +"*chrt*(1), *nice*(1), *renice*(1), *sched_getaffinity*(2), " +"*sched_setaffinity*(2)" msgstr "" +"*mesg*(1),\n" +"*talk*(1),\n" +"*who*(1)\n" #. type: Plain text #: ../schedutils/taskset.1.adoc:154 @@ -22150,20 +22336,24 @@ msgstr "" #. type: Plain text #: ../schedutils/uclampset.1.adoc:42 -#, no-wrap -msgid "*uclampset* [options] [*-m* _uclamp_min_] [*-M* _uclamp_max] _command argument_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "" +"*uclampset* [options] [*-m* _uclamp_min_] [*-M* _uclamp_max] _command " +"argument_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../schedutils/uclampset.1.adoc:44 -#, no-wrap -msgid "*uclampset* [options] [*-m* _uclamp_min_] [*-M* _uclamp_max_] *-p* _PID_\n" +msgid "" +"*uclampset* [options] [*-m* _uclamp_min_] [*-M* _uclamp_max_] *-p* _PID_" msgstr "" #. type: Plain text #: ../schedutils/uclampset.1.adoc:48 -#, no-wrap -msgid "*uclampset* sets or retrieves the utilization clamping attributes of an existing _PID_, or runs _command_ with the given attributes.\n" +msgid "" +"*uclampset* sets or retrieves the utilization clamping attributes of an " +"existing _PID_, or runs _command_ with the given attributes." msgstr "" #. type: Plain text @@ -22268,9 +22458,10 @@ msgstr "" #. type: Plain text #: ../schedutils/uclampset.1.adoc:97 -#, no-wrap -msgid "*uclampset* _[-m uclamp_min]_ _[-M uclamp_max]_ _command_ [_arguments_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*uclampset* _[-m uclamp_min]_ _[-M uclamp_max]_ _command_ [_arguments_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. TRANSLATORS: Keep {colon} untranslated. #. type: Labeled list @@ -22281,14 +22472,12 @@ msgstr "" #. type: Plain text #: ../schedutils/uclampset.1.adoc:101 -#, no-wrap -msgid "*uclampset -p* _PID_\n" +msgid "*uclampset -p* _PID_" msgstr "" #. type: Plain text #: ../schedutils/uclampset.1.adoc:105 -#, no-wrap -msgid "*uclampset -p* _PID_ _[-m uclamp_min]_ _[-M uclamp_max]_\n" +msgid "*uclampset -p* _PID_ _[-m uclamp_min]_ _[-M uclamp_max]_" msgstr "" #. TRANSLATORS: Keep {colon} untranslated. @@ -22300,8 +22489,7 @@ msgstr "" #. type: Plain text #: ../schedutils/uclampset.1.adoc:109 -#, no-wrap -msgid "*uclampset -s* _[-m uclamp_min]_ _[-M uclamp_max]_\n" +msgid "*uclampset -s* _[-m uclamp_min]_ _[-M uclamp_max]_" msgstr "" #. type: Plain text @@ -22322,8 +22510,7 @@ msgstr "" #. type: Plain text #: ../schedutils/uclampset.1.adoc:121 -#, no-wrap -msgid "*uclampset -s* `-m 512` `-M 700`\n" +msgid "*uclampset -s* `-m 512` `-M 700`" msgstr "" #. type: Plain text @@ -22494,10 +22681,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/adjtime_config.5.adoc:58 -#, no-wrap -msgid "" -"*hwclock*(8),\n" -"*rtcwake*(8)\n" +msgid "*hwclock*(8), *rtcwake*(8)" msgstr "" #. type: Title = @@ -22513,14 +22697,15 @@ msgstr "" #. type: Plain text #: ../sys-utils/blkdiscard.8.adoc:16 -#, no-wrap -msgid "*blkdiscard* [options] [*-o* _offset_] [*-l* _length_] _device_\n" +msgid "*blkdiscard* [options] [*-o* _offset_] [*-l* _length_] _device_" msgstr "" #. type: Plain text #: ../sys-utils/blkdiscard.8.adoc:20 -#, no-wrap -msgid "*blkdiscard* is used to discard device sectors. This is useful for solid-state drivers (SSDs) and thinly-provisioned storage. Unlike *fstrim*(8), this command is used directly on the block device.\n" +msgid "" +"*blkdiscard* is used to discard device sectors. This is useful for solid-" +"state drivers (SSDs) and thinly-provisioned storage. Unlike *fstrim*(8), " +"this command is used directly on the block device." msgstr "" #. type: Plain text @@ -22538,8 +22723,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/blkdiscard.8.adoc:26 -#, no-wrap -msgid "*WARNING: All data in the discarded region on the device will be lost!*\n" +msgid "*WARNING: All data in the discarded region on the device will be lost!*" msgstr "" #. type: Plain text @@ -22631,8 +22815,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/blkdiscard.8.adoc:60 -#, no-wrap -msgid "*blkdiscard* has the following exit status values:\n" +msgid "*blkdiscard* has the following exit status values:" msgstr "" #. type: Plain text @@ -22653,8 +22836,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/blkdiscard.8.adoc:78 -#, no-wrap -msgid "*fstrim*(8)\n" +msgid "*fstrim*(8)" msgstr "" #. type: Title = @@ -22670,14 +22852,17 @@ msgstr "" #. type: Plain text #: ../sys-utils/blkzone.8.adoc:16 -#, no-wrap -msgid "*blkzone* _command_ [options] _device_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*blkzone* _command_ [options] _device_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../sys-utils/blkzone.8.adoc:20 -#, no-wrap -msgid "*blkzone* is used to run zone command on device that support the Zoned Block Commands (ZBC) or Zoned-device ATA Commands (ZAC). The zones to operate on can be specified using the offset, count and length options.\n" +msgid "" +"*blkzone* is used to run zone command on device that support the Zoned Block " +"Commands (ZBC) or Zoned-device ATA Commands (ZAC). The zones to operate on " +"can be specified using the offset, count and length options." msgstr "" #. type: Title === @@ -22891,9 +23076,10 @@ msgstr "" #. type: Plain text #: ../sys-utils/blkzone.8.adoc:111 -#, no-wrap -msgid "*sg_rep_zones*(8)\n" -msgstr "" +#, fuzzy +#| msgid "*-P*, *--pty*" +msgid "*sg_rep_zones*(8)" +msgstr "*-P*, *--pty*" #. type: Title = #: ../sys-utils/blkpr.8.adoc:2 @@ -22908,25 +23094,18 @@ msgstr "" #. type: Plain text #: ../sys-utils/blkpr.8.adoc:16 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*blkpr* [options] _device_\n" +msgid "*blkpr* [options] _device_" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../sys-utils/blkpr.8.adoc:20 -#, no-wrap -msgid "*blkpr* is used to run persistent reservations command on device that supports Persistent Reservations feature.\n" +msgid "" +"*blkpr* is used to run persistent reservations command on device that " +"supports Persistent Reservations feature." msgstr "" -#. type: Labeled list -#: ../sys-utils/blkpr.8.adoc:25 ../sys-utils/flock.1.adoc:56 -#: ../term-utils/script.1.adoc:69 -#, fuzzy, no-wrap -#| msgid "*-c*, **--command**=__command__" -msgid "*-c*, *--command* _command_" -msgstr "*-c*, **--command**=__příkaz__" - #. type: Plain text #: ../sys-utils/blkpr.8.adoc:28 msgid "" @@ -22987,8 +23166,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/blkpr.8.adoc:55 -#, no-wrap -msgid "*sg_persist*(8)\n" +msgid "*sg_persist*(8)" msgstr "" #. type: Plain text @@ -23012,26 +23190,28 @@ msgstr "" #. type: Plain text #: ../sys-utils/chcpu.8.adoc:16 -#, no-wrap -msgid "*chcpu* *-c*|*-d*|*-e*|*-g* _cpu-list_\n" +msgid "*chcpu* *-c*|*-d*|*-e*|*-g* _cpu-list_" msgstr "" #. type: Plain text #: ../sys-utils/chcpu.8.adoc:18 -#, no-wrap -msgid "*chcpu* *-p* _mode_\n" -msgstr "" +#, fuzzy +#| msgid "*-c*, **--command**=__command__" +msgid "*chcpu* *-p* _mode_" +msgstr "*-c*, **--command**=__příkaz__" #. type: Plain text #: ../sys-utils/chcpu.8.adoc:20 -#, no-wrap -msgid "*chcpu* *-r*|*-h*|*-V*\n" +msgid "*chcpu* *-r*|*-h*|*-V*" msgstr "" #. type: Plain text #: ../sys-utils/chcpu.8.adoc:24 -#, no-wrap -msgid "*chcpu* can modify the state of CPUs. It can enable or disable CPUs, scan for new CPUs, change the CPU dispatching _mode_ of the underlying hypervisor, and request CPUs from the hypervisor (configure) or return CPUs to the hypervisor (deconfigure).\n" +msgid "" +"*chcpu* can modify the state of CPUs. It can enable or disable CPUs, scan " +"for new CPUs, change the CPU dispatching _mode_ of the underlying " +"hypervisor, and request CPUs from the hypervisor (configure) or return CPUs " +"to the hypervisor (deconfigure)." msgstr "" #. type: Plain text @@ -23098,14 +23278,29 @@ msgid "" "d*, before it can be deconfigured." msgstr "" +#. type: Plain text +#: ../sys-utils/chcpu.8.adoc:42 +msgid "" +"*chcpu -g* is not supported on IBM z/VM, CPUs are always in a configured " +"state." +msgstr "" + +#. type: Plain text +#: ../sys-utils/chcpu.8.adoc:44 +msgid "" +"if *chcpu -g* is supported, any *disabled* CPUs should be *deconfigured* to " +"inform the hypervisor that these CPUs won't be used, avoiding potential " +"performance penalties." +msgstr "" + #. type: Labeled list -#: ../sys-utils/chcpu.8.adoc:41 +#: ../sys-utils/chcpu.8.adoc:45 #, no-wrap msgid "*-p*, *--dispatch* _mode_" msgstr "" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:43 +#: ../sys-utils/chcpu.8.adoc:47 msgid "" "Set the CPU dispatching _mode_ (polarization). This option has an effect " "only if your hardware architecture and hypervisor support CPU polarization. " @@ -23113,36 +23308,36 @@ msgid "" msgstr "" #. type: Labeled list -#: ../sys-utils/chcpu.8.adoc:44 +#: ../sys-utils/chcpu.8.adoc:48 #, no-wrap msgid "*horizontal*" msgstr "" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:46 +#: ../sys-utils/chcpu.8.adoc:50 msgid "The workload is spread across all available CPUs." msgstr "" #. type: Labeled list -#: ../sys-utils/chcpu.8.adoc:47 +#: ../sys-utils/chcpu.8.adoc:51 #, no-wrap msgid "*vertical*" msgstr "" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:49 +#: ../sys-utils/chcpu.8.adoc:53 msgid "The workload is concentrated on few CPUs." msgstr "" #. type: Labeled list -#: ../sys-utils/chcpu.8.adoc:50 +#: ../sys-utils/chcpu.8.adoc:54 #, fuzzy, no-wrap #| msgid "*-V*, *--version*" msgid "*-r*, *--rescan*" msgstr "*-V*, *--version*" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:52 +#: ../sys-utils/chcpu.8.adoc:56 msgid "" "Trigger a rescan of CPUs. After a rescan, the Linux kernel recognizes the " "new CPUs. Use this option on systems that do not automatically detect newly " @@ -23150,31 +23345,31 @@ msgid "" msgstr "" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:58 -#, no-wrap -msgid "*chcpu* has the following exit status values:\n" +#: ../sys-utils/chcpu.8.adoc:62 +msgid "*chcpu* has the following exit status values:" msgstr "" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:67 ../sys-utils/chmem.8.adoc:66 +#: ../sys-utils/chcpu.8.adoc:71 ../sys-utils/chmem.8.adoc:66 msgid "partial success" msgstr "" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:71 +#: ../sys-utils/chcpu.8.adoc:75 msgid "mailto:heiko.carstens@de.ibm.com[Heiko Carstens]" msgstr "" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:75 +#: ../sys-utils/chcpu.8.adoc:79 msgid "Copyright IBM Corp. 2011" msgstr "" #. type: Plain text -#: ../sys-utils/chcpu.8.adoc:79 -#, no-wrap -msgid "*lscpu*(1)\n" -msgstr "" +#: ../sys-utils/chcpu.8.adoc:83 +#, fuzzy +#| msgid "su(1)" +msgid "*lscpu*(1)" +msgstr "su(1)" #. type: Title = #: ../sys-utils/chmem.8.adoc:2 @@ -23189,8 +23384,9 @@ msgstr "" #. type: Plain text #: ../sys-utils/chmem.8.adoc:16 -#, no-wrap -msgid "*chmem* [*-h] [*-V*] [*-v*] [*-e*|*-d*] [_SIZE_|_RANGE_ *-b* _BLOCKRANGE_] [*-z* _ZONE_]\n" +msgid "" +"*chmem* [*-h] [*-V*] [*-v*] [*-e*|*-d*] [_SIZE_|_RANGE_ *-b* _BLOCKRANGE_] " +"[*-z* _ZONE_]" msgstr "" #. type: Plain text @@ -23329,8 +23525,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/chmem.8.adoc:57 -#, no-wrap -msgid "*chmem* has the following exit status values:\n" +msgid "*chmem* has the following exit status values:" msgstr "" #. type: Labeled list @@ -23381,8 +23576,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/chmem.8.adoc:84 -#, no-wrap -msgid "*lsmem*(1)\n" +msgid "*lsmem*(1)" msgstr "" #. type: Title = @@ -23398,21 +23592,21 @@ msgstr "" #. type: Plain text #: ../sys-utils/choom.1.adoc:14 -#, no-wrap -msgid "*choom* *-p* _PID_\n" -msgstr "" +#, fuzzy +#| msgid "*-f*, *--fast*" +msgid "*choom* *-p* _PID_" +msgstr "*-f*, *--fast*" #. type: Plain text #: ../sys-utils/choom.1.adoc:16 -#, no-wrap -msgid "*choom* *-p* _PID_ *-n* _number_\n" +msgid "*choom* *-p* _PID_ *-n* _number_" msgstr "" #. type: Plain text #: ../sys-utils/choom.1.adoc:18 -#, fuzzy, no-wrap +#, fuzzy #| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" -msgid "*choom* *-n* _number_ [--] _command_ [_argument_ ...]\n" +msgid "*choom* *-n* _number_ [--] _command_ [_argument_ ...]" msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text @@ -23500,8 +23694,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/choom.1.adoc:54 -#, no-wrap -msgid "*proc*(5)\n" +msgid "*proc*(5)" msgstr "" #. Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu) @@ -23519,8 +23712,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/ctrlaltdel.8.adoc:20 -#, no-wrap -msgid "*ctrlaltdel* *hard*|*soft*\n" +msgid "*ctrlaltdel* *hard*|*soft*" msgstr "" #. type: Plain text @@ -23585,11 +23777,10 @@ msgstr "" #. type: Plain text #: ../sys-utils/ctrlaltdel.8.adoc:51 -#, no-wrap -msgid "" -"*init*(8),\n" -"*systemd*(1)\n" -msgstr "" +#, fuzzy +#| msgid "*-f*, *--fast*" +msgid "*init*(8), *systemd*(1)" +msgstr "*-f*, *--fast*" #. Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) #. May be distributed under the GNU General Public License @@ -23606,44 +23797,49 @@ msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:20 -#, no-wrap -msgid "*dmesg* [options]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*dmesg* [options]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:22 -#, no-wrap -msgid "*dmesg* *--clear*\n" -msgstr "" +#, fuzzy +#| msgid "*-h*, *--help*" +msgid "*dmesg* *--clear*" +msgstr "*-h*, *--help*" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:24 -#, no-wrap -msgid "*dmesg* *--read-clear* [options]\n" -msgstr "" +#, fuzzy +#| msgid "*-h*, *--help*" +msgid "*dmesg* *--read-clear* [options]" +msgstr "*-h*, *--help*" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:26 -#, no-wrap -msgid "*dmesg* *--console-level* _level_\n" -msgstr "" +#, fuzzy +#| msgid "*-s*, **--shell**=__shell__" +msgid "*dmesg* *--console-level* _level_" +msgstr "*-s*, **--shell**=__shell__" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:28 -#, no-wrap -msgid "*dmesg* *--console-on*\n" -msgstr "" +#, fuzzy +#| msgid "*-V*, *--version*" +msgid "*dmesg* *--console-on*" +msgstr "*-V*, *--version*" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:30 -#, no-wrap -msgid "*dmesg* *--console-off*\n" -msgstr "" +#, fuzzy +#| msgid "*-V*, *--version*" +msgid "*dmesg* *--console-off*" +msgstr "*-V*, *--version*" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:34 -#, no-wrap -msgid "*dmesg* is used to examine or control the kernel ring buffer.\n" +msgid "*dmesg* is used to examine or control the kernel ring buffer." msgstr "" #. type: Plain text @@ -23764,8 +23960,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:66 -#, no-wrap -msgid "*dmesg --facility=daemon*\n" +msgid "*dmesg --facility=daemon*" msgstr "" #. type: Plain text @@ -23841,8 +24036,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:88 -#, no-wrap -msgid "*dmesg --level=err,warn*\n" +msgid "*dmesg --level=err,warn*" msgstr "" #. type: Plain text @@ -23861,8 +24055,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:94 -#, no-wrap -msgid "*dmesg --level=err+*\n" +msgid "*dmesg --level=err+*" msgstr "" #. type: Plain text @@ -24005,8 +24198,11 @@ msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:128 -#, no-wrap -msgid "*Be aware that the timestamp could be inaccurate!* The *time* source used for the logs is *not updated after* system *SUSPEND*/*RESUME*. Timestamps are adjusted according to current delta between boottime and monotonic clocks, this works only for messages printed after last resume.\n" +msgid "" +"*Be aware that the timestamp could be inaccurate!* The *time* source used " +"for the logs is *not updated after* system *SUSPEND*/*RESUME*. Timestamps " +"are adjusted according to current delta between boottime and monotonic " +"clocks, this works only for messages printed after last resume." msgstr "" #. type: Labeled list @@ -24073,8 +24269,9 @@ msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:144 -#, no-wrap -msgid "*--time-format* may be used multiple times with different values for _format_ to output each specified format.\n" +msgid "" +"*--time-format* may be used multiple times with different values for " +"_format_ to output each specified format." msgstr "" #. type: Plain text @@ -24219,28 +24416,28 @@ msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:191 -#, no-wrap -msgid "*dmesg* can fail reporting permission denied error. This is usually caused by *dmesg_restrict* kernel setting, please see *syslog*(2) for more details.\n" +msgid "" +"*dmesg* can fail reporting permission denied error. This is usually caused " +"by *dmesg_restrict* kernel setting, please see *syslog*(2) for more details." msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:197 -#, no-wrap -msgid "*dmesg* was originally written by mailto:tytso@athena.mit.edu[Theodore Ts'o].\n" +msgid "" +"*dmesg* was originally written by mailto:tytso@athena.mit.edu[Theodore Ts'o]." msgstr "" #. type: Plain text #: ../sys-utils/dmesg.1.adoc:202 -#, no-wrap -msgid "" -"*terminal-colors.d*(5),\n" -"*syslogd*(8)\n" -msgstr "" +#, fuzzy +#| msgid "_/etc/terminal-colors.d/disable_" +msgid "*terminal-colors.d*(5), *syslogd*(8)" +msgstr "_/etc/terminal-colors.d/disable_" # #. Copyright (C) 1994-2005 Jeff Tranter (tranter@pobox.com) #. Copyright (C) 2012 Karel Zak . -#. It may be distributed under the GNU Public License, version 2, or +#. It may be distributed under the GNU General Public License, version 2, or #. any higher version. See section COPYING of the GNU Public license #. for conditions under which this file may be redistributed. #. type: Title = @@ -24256,14 +24453,18 @@ msgstr "" #. type: Plain text #: ../sys-utils/eject.1.adoc:22 -#, no-wrap -msgid "*eject* [options] _device_|_mountpoint_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*eject* [options] _device_|_mountpoint_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../sys-utils/eject.1.adoc:26 -#, no-wrap -msgid "*eject* allows removable media (typically a CD-ROM, floppy disk, tape, JAZ, ZIP or USB disk) to be ejected under software control. The command can also control some multi-disc CD-ROM changers, the auto-eject feature supported by some devices, and close the disc tray of some CD-ROM drives.\n" +msgid "" +"*eject* allows removable media (typically a CD-ROM, floppy disk, tape, JAZ, " +"ZIP or USB disk) to be ejected under software control. The command can also " +"control some multi-disc CD-ROM changers, the auto-eject feature supported by " +"some devices, and close the disc tray of some CD-ROM drives." msgstr "" #. type: Plain text @@ -24550,8 +24751,14 @@ msgstr "" #. type: Plain text #: ../sys-utils/eject.1.adoc:100 -#, no-wrap -msgid "*eject* only works with devices that support one or more of the four methods of ejecting. This includes most CD-ROM drives (IDE, SCSI, and proprietary), some SCSI tape drives, JAZ drives, ZIP drives (parallel port, SCSI, and IDE versions), and LS120 removable floppies. Users have also reported success with floppy drives on Sun SPARC and Apple Macintosh systems. If *eject* does not work, it is most likely a limitation of the kernel driver for the device and not the *eject* program itself.\n" +msgid "" +"*eject* only works with devices that support one or more of the four methods " +"of ejecting. This includes most CD-ROM drives (IDE, SCSI, and proprietary), " +"some SCSI tape drives, JAZ drives, ZIP drives (parallel port, SCSI, and IDE " +"versions), and LS120 removable floppies. Users have also reported success " +"with floppy drives on Sun SPARC and Apple Macintosh systems. If *eject* does " +"not work, it is most likely a limitation of the kernel driver for the device " +"and not the *eject* program itself." msgstr "" #. type: Plain text @@ -24564,8 +24771,10 @@ msgstr "" #. type: Plain text #: ../sys-utils/eject.1.adoc:104 -#, no-wrap -msgid "*eject* may not always be able to determine if the device is mounted (e.g., if it has several names). If the device name is a symbolic link, *eject* will follow the link and use the device that it points to.\n" +msgid "" +"*eject* may not always be able to determine if the device is mounted (e.g., " +"if it has several names). If the device name is a symbolic link, *eject* " +"will follow the link and use the device that it points to." msgstr "" #. type: Plain text @@ -24610,18 +24819,14 @@ msgstr "" #. type: Plain text #: ../sys-utils/eject.1.adoc:123 -#, fuzzy, no-wrap +#, fuzzy #| msgid "" #| "*getmntent*(3),\n" #| "*fs*(5),\n" #| "*findmnt*(8),\n" #| "*mount*(8),\n" #| "*swapon*(8)\n" -msgid "" -"*findmnt*(8),\n" -"*lsblk*(8),\n" -"*mount*(8),\n" -"*umount*(8)\n" +msgid "*findmnt*(8), *lsblk*(8), *mount*(8), *umount*(8)" msgstr "" "*getmntent*(3),\n" "*fs*(5),\n" @@ -24642,26 +24847,28 @@ msgstr "" #. type: Plain text #: ../sys-utils/fallocate.1.adoc:16 -#, no-wrap -msgid "*fallocate* [*-c*|*-p*|*-z*] [*-o* _offset_] *-l* _length_ [*-n*] _filename_\n" +msgid "" +"*fallocate* [*-c*|*-p*|*-z*] [*-o* _offset_] *-l* _length_ [*-n*] _filename_" msgstr "" #. type: Plain text #: ../sys-utils/fallocate.1.adoc:18 -#, no-wrap -msgid "*fallocate* *-d* [*-o* _offset_] [*-l* _length_] _filename_\n" +msgid "*fallocate* *-d* [*-o* _offset_] [*-l* _length_] _filename_" msgstr "" #. type: Plain text #: ../sys-utils/fallocate.1.adoc:20 -#, no-wrap -msgid "*fallocate* *-x* [*-o* _offset_] *-l* _length filename_\n" +msgid "*fallocate* *-x* [*-o* _offset_] *-l* _length filename_" msgstr "" #. type: Plain text #: ../sys-utils/fallocate.1.adoc:24 -#, no-wrap -msgid "*fallocate* is used to manipulate the allocated disk space for a file, either to deallocate or preallocate it. For filesystems which support the *fallocate*(2) system call, preallocation is done quickly by allocating blocks and marking them as uninitialized, requiring no IO to the data blocks. This is much faster than creating a file by filling it with zeroes.\n" +msgid "" +"*fallocate* is used to manipulate the allocated disk space for a file, " +"either to deallocate or preallocate it. For filesystems which support the " +"*fallocate*(2) system call, preallocation is done quickly by allocating " +"blocks and marking them as uninitialized, requiring no IO to the data " +"blocks. This is much faster than creating a file by filling it with zeroes." msgstr "" #. type: Plain text @@ -24878,11 +25085,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/fallocate.1.adoc:91 -#, no-wrap -msgid "" -"*truncate*(1),\n" -"*fallocate*(2),\n" -"*posix_fallocate*(3)\n" +msgid "*truncate*(1), *fallocate*(2), *posix_fallocate*(3)" msgstr "" # @@ -24920,21 +25123,22 @@ msgstr "" #. type: Plain text #: ../sys-utils/flock.1.adoc:41 -#, no-wrap -msgid "*flock* [options] _file_|_directory_ _command_ [_arguments_]\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*flock* [options] _file_|_directory_ _command_ [_arguments_]" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../sys-utils/flock.1.adoc:43 -#, no-wrap -msgid "*flock* [options] _file_|_directory_ *-c* _command_\n" +msgid "*flock* [options] _file_|_directory_ *-c* _command_" msgstr "" #. type: Plain text #: ../sys-utils/flock.1.adoc:45 -#, no-wrap -msgid "*flock* [options] _number_\n" -msgstr "" +#, fuzzy +#| msgid "*su* [options] [*-*] [_user_ [_argument_...]]\n" +msgid "*flock* [options] _number_" +msgstr "*su* [přepínače] [*-*] [_uživatel_ [_argument_…]]\n" #. type: Plain text #: ../sys-utils/flock.1.adoc:49 @@ -25099,8 +25303,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/flock.1.adoc:97 -#, no-wrap -msgid "*flock* does not detect deadlock. See *flock*(2) for details.\n" +msgid "*flock* does not detect deadlock. See *flock*(2) for details." msgstr "" #. type: Plain text @@ -25217,8 +25420,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/flock.1.adoc:134 -#, no-wrap -msgid "*flock*(2)\n" +msgid "*flock*(2)" msgstr "" #. type: Title = @@ -25234,26 +25436,28 @@ msgstr "" #. type: Plain text #: ../sys-utils/fsfreeze.8.adoc:16 -#, no-wrap -msgid "*fsfreeze* *--freeze*|*--unfreeze* _mountpoint_\n" +msgid "*fsfreeze* *--freeze*|*--unfreeze* _mountpoint_" msgstr "" #. type: Plain text #: ../sys-utils/fsfreeze.8.adoc:20 -#, no-wrap -msgid "*fsfreeze* suspends or resumes access to a filesystem.\n" +msgid "*fsfreeze* suspends or resumes access to a filesystem." msgstr "" #. type: Plain text #: ../sys-utils/fsfreeze.8.adoc:22 -#, no-wrap -msgid "*fsfreeze* halts any new access to the filesystem and creates a stable image on disk. *fsfreeze* is intended to be used with hardware RAID devices that support the creation of snapshots.\n" +msgid "" +"*fsfreeze* halts any new access to the filesystem and creates a stable image " +"on disk. *fsfreeze* is intended to be used with hardware RAID devices that " +"support the creation of snapshots." msgstr "" #. type: Plain text #: ../sys-utils/fsfreeze.8.adoc:24 -#, no-wrap -msgid "*fsfreeze* is unnecessary for *device-mapper* devices. The device-mapper (and LVM) automatically freezes a filesystem on the device when a snapshot creation is requested. For more details see the *dmsetup*(8) man page.\n" +msgid "" +"*fsfreeze* is unnecessary for *device-mapper* devices. The device-mapper " +"(and LVM) automatically freezes a filesystem on the device when a snapshot " +"creation is requested. For more details see the *dmsetup*(8) man page." msgstr "" #. type: Plain text @@ -25343,8 +25547,7 @@ msgstr "" #. type: Plain text #: ../sys-utils/fsfreeze.8.adoc:56 ../sys-utils/mountpoint.1.adoc:68 -#, no-wrap -msgid "*mount*(8)\n" +msgid "*mount*(8)" msgstr "" # @@ -25418,33 +25621,36 @@ msgstr "" #. type: Plain text #: ../sys-utils/fstab.5.adoc:58 msgid "" -"Each filesystem is described on a separate line. Fields on each line are " -"separated by tabs or spaces. Lines starting with '#' are comments. Blank " -"lines are ignored." +"Each filesystem is described on a separate line, with fields separated by " +"tabs or spaces. The line is split into fields before being parsed. This " +"means that any spaces or tabs within the fields must be escaped using \\040 " +"or \\011, even within quoted strings (e.g. LABEL=\"foo\\040bar\")." msgstr "" -"Každý souborový systém je popsán na samostatném řádku. Jednotlivá pole " -"každého řádku jsou oddělena tabulátory nebo mezerami. Řádky začínající " -"znakem „#“ jsou komentáře. Prázdné řádky jsou ignorovány." #. type: Plain text #: ../sys-utils/fstab.5.adoc:60 +msgid "Lines starting with '#' are comments. Blank lines are ignored." +msgstr "" + +#. type: Plain text +#: ../sys-utils/fstab.5.adoc:62 msgid "The following is a typical example of an *fstab* entry:" msgstr "Následuje typická ukázka záznamu *fstab*:" #. type: delimited block . -#: ../sys-utils/fstab.5.adoc:63 +#: ../sys-utils/fstab.5.adoc:65 #, no-wrap msgid "LABEL=t-home2 /home ext4 defaults,auto_da_alloc 0 2\n" msgstr "LABEL=t-home2 /home ext4 defaults,auto_da_alloc 0 2\n" #. type: Title === -#: ../sys-utils/fstab.5.adoc:65 +#: ../sys-utils/fstab.5.adoc:67 #, no-wrap msgid "The first field (_fs_spec_)." msgstr "První položka (_fs_spec_)." #. type: Plain text -#: ../sys-utils/fstab.5.adoc:68 +#: ../sys-utils/fstab.5.adoc:70 #, fuzzy #| msgid "" #| "This field describes the block special device, remote filesystem or " @@ -25460,7 +25666,7 @@ msgstr "" "nebo odkládací soubor či oddíl, který má být zapnut." #. type: Plain text -#: ../sys-utils/fstab.5.adoc:70 +#: ../sys-utils/fstab.5.adoc:72 msgid "" "For ordinary mounts, it will hold (a link to) a block special device node " "(as created by *mknod*(2)) for the device to be mounted, like _/dev/cdrom_ " @@ -25480,7 +25686,7 @@ msgstr "" "*udev* nebo *sysfs*, se do *fstab* obvykle neuvádějí." #. type: Plain text -#: ../sys-utils/fstab.5.adoc:72 +#: ../sys-utils/fstab.5.adoc:74 msgid "" "LABEL=