======================================================================== * linux-5.14.0-611.24.1.el9_7/arch/m68k/fpsp040/README ======================================================================== MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP M68000 Hi-Performance Microprocessor Division M68040 Software Package M68040 Software Package Copyright (c) 1993, 1994 Motorola Inc. All rights reserved. THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. To the maximum extent permitted by applicable law, IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. Motorola assumes no responsibility for the maintenance and support of the SOFTWARE. You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE so long as this entire notice is retained without alteration in any modified and/or redistributed versions, and that such modified versions are clearly identified as such. No licenses are granted by implication, estoppel or otherwise under any patents or trademarks of Motorola, Inc. ======================================================================== * linux-5.14.0-611.24.1.el9_7/arch/m68k/ifpsp060/README ======================================================================== ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP M68000 Hi-Performance Microprocessor Division M68060 Software Package Production Release P1.00 -- October 10, 1994 M68060 Software Package Copyright © 1993, 1994 Motorola Inc. All rights reserved. THE SOFTWARE is provided on an "AS IS" basis and without warranty. To the maximum extent permitted by applicable law, MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE and any warranty against infringement with regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. To the maximum extent permitted by applicable law, IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. Motorola assumes no responsibility for the maintenance and support of the SOFTWARE. You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE so long as this entire notice is retained without alteration in any modified and/or redistributed versions, and that such modified versions are clearly identified as such. No licenses are granted by implication, estoppel or otherwise under any patents or trademarks of Motorola, Inc. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Files in this directory: ------------------------- fpsp.sa Full FP Kernel Module - hex image fpsp.s Full FP Kernel Module - source code fpsp.doc Full FP Kernel Module - on-line documentation pfpsp.sa Partial FP Kernel Module - hex image pfpsp.s Partial FP Kernel Module - source code fplsp.sa FP Library Module - hex image fplsp.s FP Library Module - source code fplsp.doc FP Library Module - on-line documentation isp.sa Integer Unimplemented Kernel Module - hex image isp.s Integer Unimplemented Kernel Module - source code isp.doc Integer Unimplemented Kernel Module - on-line doc ilsp.sa Integer Unimplemented Library Module - hex image ilsp.s Integer Unimplemented Library Module - source code ilsp.doc Integer Unimplemented Library Module - on-line doc fskeleton.s Sample Call-outs needed by fpsp.sa and pfpsp.sa iskeleton.s Sample Call-outs needed by isp.sa os.s Sample Call-outs needed by fpsp.sa, pfpsp.sa, and isp.sa ftest.sa Simple test program to test that {p}fpsp.sa was connected properly; hex image ftest.s above test; source code itest.sa Simple test program to test that isp.sa was connected properly; hex image itest.s above test; source code test.doc on-line documentation for {i,f}test.sa README This file ERRATA Known errata for this release MISC Release file version numbers ======================================================================== * linux-5.14.0-611.24.1.el9_7/arch/x86/math-emu/README ======================================================================== +---------------------------------------------------------------------------+ | wm-FPU-emu an FPU emulator for 80386 and 80486SX microprocessors. | | | | Copyright (C) 1992,1993,1994,1995,1996,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | This program is free software; you can redistribute it and/or modify | | it under the terms of the GNU General Public License version 2 as | | published by the Free Software Foundation. | | | | 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., 675 Mass Ave, Cambridge, MA 02139, USA. | | | +---------------------------------------------------------------------------+ wm-FPU-emu is an FPU emulator for Linux. It is derived from wm-emu387 which was my 80387 emulator for early versions of djgpp (gcc under msdos); wm-emu387 was in turn based upon emu387 which was written by DJ Delorie for djgpp. The interface to the Linux kernel is based upon the original Linux math emulator by Linus Torvalds. My target FPU for wm-FPU-emu is that described in the Intel486 Programmer's Reference Manual (1992 edition). Unfortunately, numerous facets of the functioning of the FPU are not well covered in the Reference Manual. The information in the manual has been supplemented with measurements on real 80486's. Unfortunately, it is simply not possible to be sure that all of the peculiarities of the 80486 have been discovered, so there is always likely to be obscure differences in the detailed behaviour of the emulator and a real 80486. wm-FPU-emu does not implement all of the behaviour of the 80486 FPU, but is very close. See "Limitations" later in this file for a list of some differences. Please report bugs, etc to me at: billm@melbpc.org.au or b.metzenthen@medoto.unimelb.edu.au For more information on the emulator and on floating point topics, see my web pages, currently at http://www.suburbia.net/~billm/ --Bill Metzenthen December 1999 ----------------------- Internals of wm-FPU-emu ----------------------- Numeric algorithms: (1) Add, subtract, and multiply. Nothing remarkable in these. (2) Divide has been tuned to get reasonable performance. The algorithm is not the obvious one which most people seem to use, but is designed to take advantage of the characteristics of the 80386. I expect that it has been invented many times before I discovered it, but I have not seen it. It is based upon one of those ideas which one carries around for years without ever bothering to check it out. (3) The sqrt function has been tuned to get good performance. It is based upon Newton's classic method. Performance was improved by capitalizing upon the properties of Newton's method, and the code is once again structured taking account of the 80386 characteristics. (4) The trig, log, and exp functions are based in each case upon quasi- "optimal" polynomial approximations. My definition of "optimal" was based upon getting good accuracy with reasonable speed. (5) The argument reducing code for the trig function effectively uses a value of pi which is accurate to more than 128 bits. As a consequence, the reduced argument is accurate to more than 64 bits for arguments up to a few pi, and accurate to more than 64 bits for most arguments, even for arguments approaching 2^63. This is far superior to an 80486, which uses a value of pi which is accurate to 66 bits. The code of the emulator is complicated slightly by the need to account for a limited form of re-entrancy. Normally, the emulator will emulate each FPU instruction to completion without interruption. However, it may happen that when the emulator is accessing the user memory space, swapping may be needed. In this case the emulator may be temporarily suspended while disk i/o takes place. During this time another process may use the emulator, thereby perhaps changing static variables. The code which accesses user memory is confined to five files: fpu_entry.c reg_ld_str.c load_store.c get_address.c errors.c As from version 1.12 of the emulator, no static variables are used (apart from those in the kernel's per-process tables). The emulator is therefore now fully re-entrant, rather than having just the restricted form of re-entrancy which is required by the Linux kernel. ----------------------- Limitations of wm-FPU-emu ----------------------- There are a number of differences between the current wm-FPU-emu (version 2.01) and the 80486 FPU (apart from bugs). The differences are fewer than those which applied to the 1.xx series of the emulator. Some of the more important differences are listed below: The Roundup flag does not have much meaning for the transcendental functions and its 80486 value with these functions is likely to differ from its emulator value. In a few rare cases the Underflow flag obtained with the emulator will be different from that obtained with an 80486. This occurs when the following conditions apply simultaneously: (a) the operands have a higher precision than the current setting of the precision control (PC) flags. (b) the underflow exception is masked. (c) the magnitude of the exact result (before rounding) is less than 2^-16382. (d) the magnitude of the final result (after rounding) is exactly 2^-16382. (e) the magnitude of the exact result would be exactly 2^-16382 if the operands were rounded to the current precision before the arithmetic operation was performed. If all of these apply, the emulator will set the Underflow flag but a real 80486 will not. NOTE: Certain formats of Extended Real are UNSUPPORTED. They are unsupported by the 80486. They are the Pseudo-NaNs, Pseudoinfinities, and Unnormals. None of these will be generated by an 80486 or by the emulator. Do not use them. The emulator treats them differently in detail from the way an 80486 does. Self modifying code can cause the emulator to fail. An example of such code is: movl %esp,[%ebx] fld1 The FPU instruction may be (usually will be) loaded into the pre-fetch queue of the CPU before the mov instruction is executed. If the destination of the 'movl' overlaps the FPU instruction then the bytes in the prefetch queue and memory will be inconsistent when the FPU instruction is executed. The emulator will be invoked but will not be able to find the instruction which caused the device-not-present exception. For this case, the emulator cannot emulate the behaviour of an 80486DX. Handling of the address size override prefix byte (0x67) has not been extensively tested yet. A major problem exists because using it in vm86 mode can cause a general protection fault. Address offsets greater than 0xffff appear to be illegal in vm86 mode but are quite acceptable (and work) in real mode. A small test program developed to check the addressing, and which runs successfully in real mode, crashes dosemu under Linux and also brings Windows down with a general protection fault message when run under the MS-DOS prompt of Windows 3.1. (The program simply reads data from a valid address). The emulator supports 16-bit protected mode, with one difference from an 80486DX. A 80486DX will allow some floating point instructions to write a few bytes below the lowest address of the stack. The emulator will not allow this in 16-bit protected mode: no instructions are allowed to write outside the bounds set by the protection. ----------------------- Performance of wm-FPU-emu ----------------------- Speed. ----- The speed of floating point computation with the emulator will depend upon instruction mix. Relative performance is best for the instructions which require most computation. The simple instructions are adversely affected by the FPU instruction trap overhead. Timing: Some simple timing tests have been made on the emulator functions. The times include load/store instructions. All times are in microseconds measured on a 33MHz 386 with 64k cache. The Turbo C tests were under ms-dos, the next two columns are for emulators running with the djgpp ms-dos extender. The final column is for wm-FPU-emu in Linux 0.97, using libm4.0 (hard). function Turbo C djgpp 1.06 WM-emu387 wm-FPU-emu + 60.5 154.8 76.5 139.4 - 61.1-65.5 157.3-160.8 76.2-79.5 142.9-144.7 * 71.0 190.8 79.6 146.6 / 61.2-75.0 261.4-266.9 75.3-91.6 142.2-158.1 sin() 310.8 4692.0 319.0 398.5 cos() 284.4 4855.2 308.0 388.7 tan() 495.0 8807.1 394.9 504.7 atan() 328.9 4866.4 601.1 419.5-491.9 sqrt() 128.7 crashed 145.2 227.0 log() 413.1-419.1 5103.4-5354.21 254.7-282.2 409.4-437.1 exp() 479.1 6619.2 469.1 850.8 The performance under Linux is improved by the use of look-ahead code. The following results show the improvement which is obtained under Linux due to the look-ahead code. Also given are the times for the original Linux emulator with the 4.1 'soft' lib. [ Linus' note: I changed look-ahead to be the default under linux, as there was no reason not to use it after I had edited it to be disabled during tracing ] wm-FPU-emu w original w look-ahead 'soft' lib + 106.4 190.2 - 108.6-111.6 192.4-216.2 * 113.4 193.1 / 108.8-124.4 700.1-706.2 sin() 390.5 2642.0 cos() 381.5 2767.4 tan() 496.5 3153.3 atan() 367.2-435.5 2439.4-3396.8 sqrt() 195.1 4732.5 log() 358.0-387.5 3359.2-3390.3 exp() 619.3 4046.4 These figures are now somewhat out-of-date. The emulator has become progressively slower for most functions as more of the 80486 features have been implemented. ----------------------- Accuracy of wm-FPU-emu ----------------------- The accuracy of the emulator is in almost all cases equal to or better than that of an Intel 80486 FPU. The results of the basic arithmetic functions (+,-,*,/), and fsqrt match those of an 80486 FPU. They are the best possible; the error for these never exceeds 1/2 an lsb. The fprem and fprem1 instructions return exact results; they have no error. The following table compares the emulator accuracy for the sqrt(), trig and log functions against the Turbo C "emulator". For this table, each function was tested at about 400 points. Ideal worst-case results would be 64 bits. The reduced Turbo C accuracy of cos() and tan() for arguments greater than pi/4 can be thought of as being related to the precision of the argument x; e.g. an argument of pi/2-(1e-10) which is accurate to 64 bits can result in a relative accuracy in cos() of about 64 + log2(cos(x)) = 31 bits. Function Tested x range Worst result Turbo C (relative bits) sqrt(x) 1 .. 2 64.1 63.2 atan(x) 1e-10 .. 200 64.2 62.8 cos(x) 0 .. pi/2-(1e-10) 64.4 (x <= pi/4) 62.4 64.1 (x = pi/2-(1e-10)) 31.9 sin(x) 1e-10 .. pi/2 64.0 62.8 tan(x) 1e-10 .. pi/2-(1e-10) 64.0 (x <= pi/4) 62.1 64.1 (x = pi/2-(1e-10)) 31.9 exp(x) 0 .. 1 63.1 ** 62.9 log(x) 1+1e-6 .. 2 63.8 ** 62.1 ** The accuracy for exp() and log() is low because the FPU (emulator) does not compute them directly; two operations are required. The emulator passes the "paranoia" tests (compiled with gcc 2.3.3 or later) for 'float' variables (24 bit precision numbers) when precision control is set to 24, 53 or 64 bits, and for 'double' variables (53 bit precision numbers) when precision control is set to 53 bits (a properly performing FPU cannot pass the 'paranoia' tests for 'double' variables when precision control is set to 64 bits). The code for reducing the argument for the trig functions (fsin, fcos, fptan and fsincos) has been improved and now effectively uses a value for pi which is accurate to more than 128 bits precision. As a consequence, the accuracy of these functions for large arguments has been dramatically improved (and is now very much better than an 80486 FPU). There is also now no degradation of accuracy for fcos and fptan for operands close to pi/2. Measured results are (note that the definition of accuracy has changed slightly from that used for the above table): Function Tested x range Worst result (absolute bits) cos(x) 0 .. 9.22e+18 62.0 sin(x) 1e-16 .. 9.22e+18 62.1 tan(x) 1e-16 .. 9.22e+18 61.8 It is possible with some effort to find very large arguments which give much degraded precision. For example, the integer number 8227740058411162616.0 is within about 10e-7 of a multiple of pi. To find the tan (for example) of this number to 64 bits precision it would be necessary to have a value of pi which had about 150 bits precision. The FPU emulator computes the result to about 42.6 bits precision (the correct result is about -9.739715e-8). On the other hand, an 80486 FPU returns 0.01059, which in relative terms is hopelessly inaccurate. For arguments close to critical angles (which occur at multiples of pi/2) the emulator is more accurate than an 80486 FPU. For very large arguments, the emulator is far more accurate. Prior to version 1.20 of the emulator, the accuracy of the results for the transcendental functions (in their principal range) was not as good as the results from an 80486 FPU. From version 1.20, the accuracy has been considerably improved and these functions now give measured worst-case results which are better than the worst-case results given by an 80486 FPU. The following table gives the measured results for the emulator. The number of randomly selected arguments in each case is about half a million. The group of three columns gives the frequency of the given accuracy in number of times per million, thus the second of these columns shows that an accuracy of between 63.80 and 63.89 bits was found at a rate of 133 times per one million measurements for fsin. The results show that the fsin, fcos and fptan instructions return results which are in error (i.e. less accurate than the best possible result (which is 64 bits)) for about one per cent of all arguments between -pi/2 and +pi/2. The other instructions have a lower frequency of results which are in error. The last two columns give the worst accuracy which was found (in bits) and the approximate value of the argument which produced it. frequency (per M) ------------------- --------------- instr arg range # tests 63.7 63.8 63.9 worst at arg bits bits bits bits ----- ------------ ------- ---- ---- ----- ----- -------- fsin (0,pi/2) 547756 0 133 10673 63.89 0.451317 fcos (0,pi/2) 547563 0 126 10532 63.85 0.700801 fptan (0,pi/2) 536274 11 267 10059 63.74 0.784876 fpatan 4 quadrants 517087 0 8 1855 63.88 0.435121 (4q) fyl2x (0,20) 541861 0 0 1323 63.94 1.40923 (x) fyl2xp1 (-.293,.414) 520256 0 0 5678 63.93 0.408542 (x) f2xm1 (-1,1) 538847 4 481 6488 63.79 0.167709 Tests performed on an 80486 FPU showed results of lower accuracy. The following table gives the results which were obtained with an AMD 486DX2/66 (other tests indicate that an Intel 486DX produces identical results). The tests were basically the same as those used to measure the emulator (the values, being random, were in general not the same). The total number of tests for each instruction are given at the end of the table, in case each about 100k tests were performed. Another line of figures at the end of the table shows that most of the instructions return results which are in error for more than 10 percent of the arguments tested. The numbers in the body of the table give the approx number of times a result of the given accuracy in bits (given in the left-most column) was obtained per one million arguments. For three of the instructions, two columns of results are given: * The second column for f2xm1 gives the number cases where the results of the first column were for a positive argument, this shows that this instruction gives better results for positive arguments than it does for negative. * In the cases of fcos and fptan, the first column gives the results when all cases where arguments greater than 1.5 were removed from the results given in the second column. Unlike the emulator, an 80486 FPU returns results of relatively poor accuracy for these instructions when the argument approaches pi/2. The table does not show those cases when the accuracy of the results were less than 62 bits, which occurs quite often for fsin and fptan when the argument approaches pi/2. This poor accuracy is discussed above in relation to the Turbo C "emulator", and the accuracy of the value of pi. bits f2xm1 f2xm1 fpatan fcos fcos fyl2x fyl2xp1 fsin fptan fptan 62.0 0 0 0 0 437 0 0 0 0 925 62.1 0 0 10 0 894 0 0 0 0 1023 62.2 14 0 0 0 1033 0 0 0 0 945 62.3 57 0 0 0 1202 0 0 0 0 1023 62.4 385 0 0 10 1292 0 23 0 0 1178 62.5 1140 0 0 119 1649 0 39 0 0 1149 62.6 2037 0 0 189 1620 0 16 0 0 1169 62.7 5086 14 0 646 2315 10 101 35 39 1402 62.8 8818 86 0 984 3050 59 287 131 224 2036 62.9 11340 1355 0 2126 4153 79 605 357 321 1948 63.0 15557 4750 0 3319 5376 246 1281 862 808 2688 63.1 20016 8288 0 4620 6628 511 2569 1723 1510 3302 63.2 24945 11127 10 6588 8098 1120 4470 2968 2990 4724 63.3 25686 12382 69 8774 10682 1906 6775 4482 5474 7236 63.4 29219 14722 79 11109 12311 3094 9414 7259 8912 10587 63.5 30458 14936 393 13802 15014 5874 12666 9609 13762 15262 63.6 32439 16448 1277 17945 19028 10226 15537 14657 19158 20346 63.7 35031 16805 4067 23003 23947 18910 20116 21333 25001 26209 63.8 33251 15820 7673 24781 25675 24617 25354 24440 29433 30329 63.9 33293 16833 18529 28318 29233 31267 31470 27748 29676 30601 Per cent with error: 30.9 3.2 18.5 9.8 13.1 11.6 17.4 Total arguments tested: 70194 70099 101784 100641 100641 101799 128853 114893 102675 102675 ------------------------- Contributors ------------------------------- A number of people have contributed to the development of the emulator, often by just reporting bugs, sometimes with suggested fixes, and a few kind people have provided me with access in one way or another to an 80486 machine. Contributors include (to those people who I may have forgotten, please forgive me): Linus Torvalds Tommy.Thorn@daimi.aau.dk Andrew.Tridgell@anu.edu.au Nick Holloway, alfie@dcs.warwick.ac.uk Hermano Moura, moura@dcs.gla.ac.uk Jon Jagger, J.Jagger@scp.ac.uk Lennart Benschop Brian Gallew, geek+@CMU.EDU Thomas Staniszewski, ts3v+@andrew.cmu.edu Martin Howell, mph@plasma.apana.org.au M Saggaf, alsaggaf@athena.mit.edu Peter Barker, PETER@socpsy.sci.fau.edu tom@vlsivie.tuwien.ac.at Dan Russel, russed@rpi.edu Daniel Carosone, danielce@ee.mu.oz.au cae@jpmorgan.com Hamish Coleman, t933093@minyos.xx.rmit.oz.au Bruce Evans, bde@kralizec.zeta.org.au Timo Korvola, Timo.Korvola@hut.fi Rick Lyons, rick@razorback.brisnet.org.au Rick, jrs@world.std.com ...and numerous others who responded to my request for help with a real 80486. ======================================================================== * linux-5.14.0-611.24.1.el9_7/drivers/net/wireless/marvell/libertas/README ======================================================================== ================================================================================ README for Libertas (c) Copyright © 2003-2006, Marvell International Ltd. All Rights Reserved This software file (the "File") is distributed by Marvell International Ltd. under the terms of the GNU General Public License Version 2, June 1991 (the "License"). You may use, redistribute and/or modify this File in accordance with the terms and conditions of the License, a copy of which is available along with the File in the license.txt file or on the worldwide web at http://www.gnu.org/licenses/gpl.txt. THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY DISCLAIMED. The License provides additional details about this warranty disclaimer. ================================================================================ ===================== DRIVER LOADING ===================== o. Copy the firmware image (e.g. usb8388.bin) to /lib/firmware/ o. Load driver by using the following command: insmod usb8388.ko [fw_name=usb8388.bin] ========================= ETHTOOL ========================= Use the -i option to retrieve version information from the driver. # ethtool -i eth0 driver: libertas version: COMM-USB8388-318.p4 firmware-version: 5.110.7 bus-info: Use the -e option to read the EEPROM contents of the card. Usage: ethtool -e ethX [raw on|off] [offset N] [length N] -e retrieves and prints an EEPROM dump for the specified ethernet device. When raw is enabled, then it dumps the raw EEPROM data to stdout. The length and offset parameters allow dumping cer- tain portions of the EEPROM. Default is to dump the entire EEP- ROM. # ethtool -e eth0 offset 0 length 16 Offset Values ------ ------ 0x0000 38 33 30 58 00 00 34 f4 00 00 10 00 00 c4 17 00 ======================== DEBUGFS COMMANDS ======================== those commands are used via debugfs interface =========== rdmac rdbbp rdrf These commands are used to read the MAC, BBP and RF registers from the card. These commands take one parameter that specifies the offset location that is to be read. This parameter must be specified in hexadecimal (its possible to precede preceding the number with a "0x"). Path: /sys/kernel/debug/libertas_wireless/ethX/registers/ Usage: echo "0xa123" > rdmac ; cat rdmac echo "0xa123" > rdbbp ; cat rdbbp echo "0xa123" > rdrf ; cat rdrf wrmac wrbbp wrrf These commands are used to write the MAC, BBP and RF registers in the card. These commands take two parameters that specify the offset location and the value that is to be written. This parameters must be specified in hexadecimal (its possible to precede the number with a "0x"). Usage: echo "0xa123 0xaa" > wrmac echo "0xa123 0xaa" > wrbbp echo "0xa123 0xaa" > wrrf sleepparams This command is used to set the sleepclock configurations Path: /sys/kernel/debug/libertas_wireless/ethX/ Usage: cat sleepparams: reads the current sleepclock configuration echo "p1 p2 p3 p4 p5 p6" > sleepparams: writes the sleepclock configuration. where: p1 is Sleep clock error in ppm (0-65535) p2 is Wakeup offset in usec (0-65535) p3 is Clock stabilization time in usec (0-65535) p4 is Control periodic calibration (0-2) p5 is Control the use of external sleep clock (0-2) p6 is reserved for debug (0-65535) subscribed_events The subscribed_events directory contains the interface for the subscribed events API. Path: /sys/kernel/debug/libertas_wireless/ethX/subscribed_events/ Each event is represented by a filename. Each filename consists of the following three fields: Value Frequency Subscribed To read the current values for a given event, do: cat event To set the current values, do: echo "60 2 1" > event Frequency field specifies the reporting frequency for this event. If it is set to 0, then the event is reported only once, and then automatically unsubscribed. If it is set to 1, then the event is reported every time it occurs. If it is set to N, then the event is reported every Nth time it occurs. beacon_missed Value field specifies the number of consecutive missing beacons which triggers the LINK_LOSS event. This event is generated only once after which the firmware resets its state. At initialization, the LINK_LOSS event is subscribed by default. The default value of MissedBeacons is 60. failure_count Value field specifies the consecutive failure count threshold which triggers the generation of the MAX_FAIL event. Once this event is generated, the consecutive failure count is reset to 0. At initialization, the MAX_FAIL event is NOT subscribed by default. high_rssi This event is generated when the average received RSSI in beacons goes above a threshold, specified by Value. low_rssi This event is generated when the average received RSSI in beacons goes below a threshold, specified by Value. high_snr This event is generated when the average received SNR in beacons goes above a threshold, specified by Value. low_snr This event is generated when the average received SNR in beacons goes below a threshold, specified by Value. extscan This command is used to do a specific scan. Path: /sys/kernel/debug/libertas_wireless/ethX/ Usage: echo "SSID" > extscan Example: echo "LINKSYS-AP" > extscan To see the results of use getscantable command. getscantable Display the current contents of the driver scan table (ie. get the scan results). Path: /sys/kernel/debug/libertas_wireless/ethX/ Usage: cat getscantable setuserscan Initiate a customized scan and retrieve the results Path: /sys/kernel/debug/libertas_wireless/ethX/ Usage: echo "[ARGS]" > setuserscan where [ARGS]: bssid=xx:xx:xx:xx:xx:xx specify a BSSID filter for the scan ssid="[SSID]" specify a SSID filter for the scan keep=[0 or 1] keep the previous scan results (1), discard (0) dur=[scan time] time to scan for each channel in milliseconds type=[1,2,3] BSS type: 1 (Infra), 2(Adhoc), 3(Any) Any combination of the above arguments can be supplied on the command line. If dur tokens are absent, the driver default setting will be used. The bssid and ssid fields, if blank, will produce an unfiltered scan. The type field will default to 3 (Any) and the keep field will default to 0 (Discard). Examples: 1) Perform a passive scan on all channels for 20 ms per channel: echo "dur=20" > setuserscan 2) Perform an active scan for a specific SSID: echo "ssid="TestAP"" > setuserscan 3) Scan all available channels (B/G, A bands) for a specific BSSID, keep the current scan table intact, update existing or append new scan data: echo "bssid=00:50:43:20:12:82 keep=1" > setuserscan 4) Scan for all infrastructure networks. Keep the previous scan table intact. Update any duplicate BSSID/SSID matches with the new scan data: echo "type=1 keep=1" > setuserscan All entries in the scan table (not just the new scan data when keep=1) will be displayed upon completion by use of the getscantable ioctl. hostsleep This command is used to enable/disable host sleep. Note: Host sleep parameters should be configured using "ethtool -s ethX wol X" command before enabling host sleep. Path: /sys/kernel/debug/libertas_wireless/ethX/ Usage: cat hostsleep: reads the current hostsleep state echo "1" > hostsleep : enable host sleep. echo "0" > hostsleep : disable host sleep ======================================================================== * linux-5.14.0-611.24.1.el9_7/drivers/net/wireless/marvell/mwifiex/README ======================================================================== # # Copyright 2011-2020 NXP # # This software file (the "File") is distributed by NXP # under the terms of the GNU General Public License Version 2, June 1991 # (the "License"). You may use, redistribute and/or modify this File in # accordance with the terms and conditions of the License, a copy of which # is available by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the # worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. # # THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE # IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE # ARE EXPRESSLY DISCLAIMED. The License provides additional details about # this warranty disclaimer. =============================================================================== U S E R M A N U A L 1) FOR DRIVER INSTALL a) Copy sd8787.bin to /lib/firmware/mrvl/ directory, create the directory if it doesn't exist. b) Install WLAN driver, insmod mwifiex.ko c) Uninstall WLAN driver, ifconfig mlanX down rmmod mwifiex 2) FOR DRIVER CONFIGURATION AND INFO The configurations can be done either using the 'iw' user space utility or debugfs. a) 'iw' utility commands Following are some useful iw commands:- iw dev mlan0 scan This command will trigger a scan. The command will then display the scan table entries iw dev mlan0 connect -w [] [] [key 0:abcde d:1123456789a] The above command can be used to connect to an AP with a particular SSID. Ap's operating frequency can be specified or even the bssid. If the AP is using WEP encryption, wep keys can be specified in the command. Note: Every time before connecting to an AP scan command (iw dev mlan0 scan) should be used by user. iw dev mlan0 disconnect This command will be used to disconnect from an AP. iw dev mlan0 ibss join [fixed-freq] [fixed-bssid] [key 0:abcde] The command will be used to join or create an ibss. Optionally, operating frequency, bssid and the security related parameters can be specified while joining/creating and ibss. iw dev mlan0 ibss leave The command will be used to leave an ibss network. iw dev mlan0 link The command will be used to get the connection status. The command will return parameters such as SSID, operating frequency, rx/tx packets, signal strength, tx bitrate. Apart from the iw utility all standard configurations using the 'iwconfig' utility are also supported. b) Debugfs interface The debugfs interface can be used for configurations and for getting some useful information from the driver. The section below explains the configurations that can be done. Mount debugfs to /debugfs mount point: mkdir /debugfs mount -t debugfs debugfs /debugfs The information is provided in /debugfs/mwifiex/mlanX/: iw reg set The command will be used to change the regulatory domain. iw reg get The command will be used to get current regulatory domain. info This command is used to get driver info. Usage: cat info driver_name = "mwifiex" driver_version = interface_name = "mlanX" bss_mode = "Ad-hoc" | "Managed" | "Auto" | "Unknown" media_state = "Disconnected" | "Connected" mac_address = <6-byte adapter MAC address> multicase_count = essid = bssid = channel = region_code = multicasr_address[n] = num_tx_bytes = num_rx_bytes = num_tx_pkts = num_rx_pkts = num_tx_pkts_dropped = num_rx_pkts_dropped = num_tx_pkts_err = num_rx_pkts_err = carrier "on" | "off" tx queue "stopped" | "started" The following debug info are provided in /debugfs/mwifiex/mlanX/debug: int_counter = wmm_ac_vo = wmm_ac_vi = wmm_ac_be = wmm_ac_bk = tx_buf_size = curr_tx_buf_size = ps_mode = <0/1, CAM mode/PS mode> ps_state = <0/1/2/3, full power state/awake state/pre-sleep state/sleep state> is_deep_sleep = <0/1, not deep sleep state/deep sleep state> wakeup_dev_req = <0/1, wakeup device not required/required> wakeup_tries = hs_configured = <0/1, host sleep not configured/configured> hs_activated = <0/1, extended host sleep not activated/activated> num_tx_timeout = is_cmd_timedout = <0/1 command timeout not occurred/occurred> timeout_cmd_id = timeout_cmd_act = last_cmd_id = last_cmd_act = last_cmd_index = <0 based last command index> last_cmd_resp_id = last_cmd_resp_index = <0 based last command response index> last_event = last_event_index = <0 based last event index> num_cmd_h2c_fail = num_cmd_sleep_cfm_fail = num_tx_h2c_fail = num_evt_deauth = num_evt_disassoc = num_evt_link_lost = num_cmd_deauth = num_cmd_assoc_ok = num_cmd_assoc_fail = cmd_sent = <0/1, send command resources available/sending command to device> data_sent = <0/1, send data resources available/sending data to device> mp_rd_bitmap = mp_wr_bitmap = cmd_resp_received = <0/1, no cmd response to process/response received and yet to process> event_received = <0/1, no event to process/event received and yet to process> cmd_pending = tx_pending = rx_pending = 3) FOR DRIVER CONFIGURATION regrdwr This command is used to read/write the adapter register. Usage: echo " [value]" > regrdwr cat regrdwr where the parameters are, : 1:MAC/SOC, 2:BBP, 3:RF, 4:PMIC, 5:CAU : offset of register [value]: value to be written Examples: echo "1 0xa060" > regrdwr : Read the MAC register echo "1 0xa060 0x12" > regrdwr : Write the MAC register echo "1 0xa794 0x80000000" > regrdwr : Write 0x80000000 to MAC register memrw This command is used to read/write the firmware memory. Usage: 1) For reading firmware memory location. echo r
0 > /sys/kernel/debug/mwifiex/mlan0/memrw cat /sys/kernel/debug/mwifiex/mlan0/memrw 2) For writing value to firmware memory location. echo w
[value] > /sys/kernel/debug/mwifiex/mlan0/memrw where the parameters are,
: memory address [value]: value to be written Examples: echo r 0x4cf70 0 > /sys/kernel/debug/mwifiex/mlan0/memrw cat /sys/kernel/debug/mwifiex/mlan0/memrw : Read memory address 0x4cf70 iwpriv mlan0 memrdwr -0x7fff6000 -0x40000000 echo w 0x8000a000 0xc0000000 > /sys/kernel/debug/mwifiex/mlan0/memrw : Write 0xc0000000 to memory address 0x8000a000 rdeeprom This command is used to read the EEPROM contents of the card. Usage: echo " " > rdeeprom cat rdeeprom where the parameters are, : multiples of 4 : 4-20, multiples of 4 Example: echo "0 20" > rdeeprom : Read 20 bytes of EEPROM data from offset 0 hscfg This command is used to debug/simulate host sleep feature using different configuration parameters. Usage: echo " [GPIO# [gap]]]" > hscfg cat hscfg where the parameters are, : bit 0 = 1 -- broadcast data bit 1 = 1 -- unicast data bit 2 = 1 -- mac event bit 3 = 1 -- multicast data [GPIO#]: pin number of GPIO used to wakeup the host. GPIO pin# (e.g. 0-7) or 0xff (interface, e.g. SDIO will be used instead). [gap]: the gap in milliseconds between wakeup signal and wakeup event or 0xff for special setting (host acknowledge required) when GPIO is used to wakeup host. Examples: echo "-1" > hscfg : Cancel host sleep mode echo "3" > hscfg : Broadcast and unicast data; Use GPIO and gap set previously echo "2 3" > hscfg : Unicast data and GPIO 3; Use gap set previously echo "2 1 160" > hscfg : Unicast data, GPIO 1 and gap 160 ms echo "2 1 0xff" > hscfg : Unicast data, GPIO 1; Wait for host to ack before sending wakeup event getlog This command is used to get the statistics available in the station. Usage: cat getlog device_dump This command is used to dump driver information and firmware memory segments. Usage: cat fw_dump verext This command is used to get extended firmware version string using different configuration parameters. Usage: echo "[version_str_sel]" > verext cat verext [version_str_sel]: firmware support several extend version string cases, include 0/1/10/20/21/99 =============================================================================== ======================================================================== * linux-5.14.0-611.24.1.el9_7/fs/reiserfs/README ======================================================================== [LICENSING] ReiserFS is hereby licensed under the GNU General Public License version 2. Source code files that contain the phrase "licensing governed by reiserfs/README" are "governed files" throughout this file. Governed files are licensed under the GPL. The portions of them owned by Hans Reiser, or authorized to be licensed by him, have been in the past, and likely will be in the future, licensed to other parties under other licenses. If you add your code to governed files, and don't want it to be owned by Hans Reiser, put your copyright label on that code so the poor blight and his customers can keep things straight. All portions of governed files not labeled otherwise are owned by Hans Reiser, and by adding your code to it, widely distributing it to others or sending us a patch, and leaving the sentence in stating that licensing is governed by the statement in this file, you accept this. It will be a kindness if you identify whether Hans Reiser is allowed to license code labeled as owned by you on your behalf other than under the GPL, because he wants to know if it is okay to do so and put a check in the mail to you (for non-trivial improvements) when he makes his next sale. He makes no guarantees as to the amount if any, though he feels motivated to motivate contributors, and you can surely discuss this with him before or after contributing. You have the right to decline to allow him to license your code contribution other than under the GPL. Further licensing options are available for commercial and/or other interests directly from Hans Reiser: hans@reiser.to. If you interpret the GPL as not allowing those additional licensing options, you read it wrongly, and Richard Stallman agrees with me, when carefully read you can see that those restrictions on additional terms do not apply to the owner of the copyright, and my interpretation of this shall govern for this license. Finally, nothing in this license shall be interpreted to allow you to fail to fairly credit me, or to remove my credits, without my permission, unless you are an end user not redistributing to others. If you have doubts about how to properly do that, or about what is fair, ask. (Last I spoke with him Richard was contemplating how best to address the fair crediting issue in the next GPL version.) [END LICENSING] Reiserfs is a file system based on balanced tree algorithms, which is described at https://reiser4.wiki.kernel.org/index.php/Main_Page Stop reading here. Go there, then return. Send bug reports to yura@namesys.botik.ru. mkreiserfs and other utilities are in reiserfs/utils, or wherever your Linux provider put them. There is some disagreement about how useful it is for users to get their fsck and mkreiserfs out of sync with the version of reiserfs that is in their kernel, with many important distributors wanting them out of sync.:-) Please try to remember to recompile and reinstall fsck and mkreiserfs with every update of reiserfs, this is a common source of confusion. Note that some of the utilities cannot be compiled without accessing the balancing code which is in the kernel code, and relocating the utilities may require you to specify where that code can be found. Yes, if you update your reiserfs kernel module you do have to recompile your kernel, most of the time. The errors you get will be quite cryptic if your forget to do so. Real users, as opposed to folks who want to hack and then understand what went wrong, will want REISERFS_CHECK off. Hideous Commercial Pitch: Spread your development costs across other OS vendors. Select from the best in the world, not the best in your building, by buying from third party OS component suppliers. Leverage the software component development power of the internet. Be the most aggressive in taking advantage of the commercial possibilities of decentralized internet development, and add value through your branded integration that you sell as an operating system. Let your competitors be the ones to compete against the entire internet by themselves. Be hip, get with the new economic trend, before your competitors do. Send email to hans@reiser.to. To understand the code, after reading the website, start reading the code by reading reiserfs_fs.h first. Hans Reiser was the project initiator, primary architect, source of all funding for the first 5.5 years, and one of the programmers. He owns the copyright. Vladimir Saveljev was one of the programmers, and he worked long hours writing the cleanest code. He always made the effort to be the best he could be, and to make his code the best that it could be. What resulted was quite remarkable. I don't think that money can ever motivate someone to work the way he did, he is one of the most selfless men I know. Yura helps with benchmarking, coding hashes, and block pre-allocation code. Anatoly Pinchuk is a former member of our team who worked closely with Vladimir throughout the project's development. He wrote a quite substantial portion of the total code. He realized that there was a space problem with packing tails of files for files larger than a node that start on a node aligned boundary (there are reasons to want to node align files), and he invented and implemented indirect items and unformatted nodes as the solution. Konstantin Shvachko, with the help of the Russian version of a VC, tried to put me in a position where I was forced into giving control of the project to him. (Fortunately, as the person paying the money for all salaries from my dayjob I owned all copyrights, and you can't really force takeovers of sole proprietorships.) This was something curious, because he never really understood the value of our project, why we should do what we do, or why innovation was possible in general, but he was sure that he ought to be controlling it. Every innovation had to be forced past him while he was with us. He added two years to the time required to complete reiserfs, and was a net loss for me. Mikhail Gilula was a brilliant innovator who also left in a destructive way that erased the value of his contributions, and that he was shown much generosity just makes it more painful. Grigory Zaigralin was an extremely effective system administrator for our group. Igor Krasheninnikov was wonderful at hardware procurement, repair, and network installation. Jeremy Fitzhardinge wrote the teahash.c code, and he gives credit to a textbook he got the algorithm from in the code. Note that his analysis of how we could use the hashing code in making 32 bit NFS cookies work was probably more important than the actual algorithm. Colin Plumb also contributed to it. Chris Mason dived right into our code, and in just a few months produced the journaling code that dramatically increased the value of ReiserFS. He is just an amazing programmer. Igor Zagorovsky is writing much of the new item handler and extent code for our next major release. Alexander Zarochentcev (sometimes known as zam, or sasha), wrote the resizer, and is hard at work on implementing allocate on flush. SGI implemented allocate on flush before us for XFS, and generously took the time to convince me we should do it also. They are great people, and a great company. Yuri Shevchuk and Nikita Danilov are doing squid cache optimization. Vitaly Fertman is doing fsck. Jeff Mahoney, of SuSE, contributed a few cleanup fixes, most notably the endian safe patches which allow ReiserFS to run on any platform supported by the Linux kernel. SuSE, IntegratedLinux.com, Ecila, MP3.com, bigstorage.com, and the Alpha PC Company made it possible for me to not have a day job anymore, and to dramatically increase our staffing. Ecila funded hypertext feature development, MP3.com funded journaling, SuSE funded core development, IntegratedLinux.com funded squid web cache appliances, bigstorage.com funded HSM, and the alpha PC company funded the alpha port. Many of these tasks were helped by sponsors other than the ones just named. SuSE has helped in much more than just funding.... ======================================================================== * linux-5.14.0-611.24.1.el9_7/tools/perf/scripts/perl/Perf-Trace-Util/README ======================================================================== Perf-Trace-Util version 0.01 ============================ This module contains utility functions for use with perf script. Core.pm and Util.pm are pure Perl modules; Core.pm contains routines that the core perf support for Perl calls on and should always be 'used', while Util.pm contains useful but optional utility functions that scripts may want to use. Context.pm contains the Perl->C interface that allows scripts to access data in the embedding perf executable; scripts wishing to do that should 'use Context.pm'. The Perl->C perf interface is completely driven by Context.xs. If you want to add new Perl functions that end up accessing C data in the perf executable, you add desciptions of the new functions here. scripting_context is a pointer to the perf data in the perf executable that you want to access - it's passed as the second parameter, $context, to all handler functions. After you do that: perl Makefile.PL # to create a Makefile for the next step make # to create Context.c edit Context.c to add const to the char* file = __FILE__ line in XS(boot_Perf__Trace__Context) to silence a warning/error. You can delete the Makefile, object files and anything else that was generated e.g. blib and shared library, etc, except for of course Context.c You should then be able to run the normal perf make as usual. INSTALLATION Building perf with perf script Perl scripting should install this module in the right place. You should make sure libperl and ExtUtils/Embed.pm are installed first e.g. apt-get install libperl-dev or yum install perl-ExtUtils-Embed. DEPENDENCIES This module requires these other modules and libraries: None COPYRIGHT AND LICENCE Copyright (C) 2009 by Tom Zanussi This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available. Alternatively, this software may be distributed under the terms of the GNU General Public License ("GPL") version 2 as published by the Free Software Foundation. ======================================================================== * linux-5.14.0-611.24.1.el9_7/tools/power/cpupower/bindings/python/README ======================================================================== This folder contains the necessary files to build the Python bindings for libcpupower (aside from the libcpupower object files). requirements ------------ * You need the object files in the libcpupower directory compiled by cpupower's makefile. * The SWIG program must be installed. * The Python's development libraries installed. Please check that your version of SWIG is compatible with the version of Python installed on your machine by checking the SWIG changelog on their website. https://swig.org/ Note that while SWIG itself is GPL v3+ licensed; the resulting output, the bindings code: is permissively licensed + the license of libcpupower's .o files. For these bindings that means GPL v2. Please see https://swig.org/legal.html and the discussion [1] for more details. [1] https://lore.kernel.org/linux-pm/Zqv9BOjxLAgyNP5B@hatbackup/ build ----- Install SWIG and the Python development files provided by your distribution. Build the object files for libcpupower by running make in the cpupower directory. Return to the directory this README is in to run: $ make testing ------- Please verify the _raw_pylibcpupower.so and raw_pylibcpupower.py files have been created. To run the test script: $ python test_raw_pylibcpupower.py developing/using the bindings directly -------------------------------------- You need to add the Python bindings directory to your $PYTHONPATH. You would set the path in the Bash terminal or in the Bash profile: PYTHONPATH=~/linux/tools/power/cpupower/bindings/python:$PYTHONPATH This allows you to set a specific repo of the bindings to use. installing/uninstalling ----------------------- Python uses a system specific site-packages folder to look up modules to import by default. You do not need to install cpupower to use the SWIG bindings. You can install and uninstall the bindings to the site-packages with: sudo make install sudo make uninstall credits ------- Original Bindings Author: John B. Wyatt IV jwyatt@redhat.com sageofredondo@gmail.com Copyright (C) 2024 Red Hat ======================================================================== * linux-5.14.0-611.24.1.el9_7/tools/usb/usbip/README ======================================================================== # # README for usbip-utils # # Copyright (C) 2011 matt mooney # 2005-2008 Takahiro Hirofuchi [Overview] USB/IP protocol allows to pass USB device from server to client over the network. Server is a machine which provides (shares) a USB device. Client is a machine which uses USB device provided by server over the network. The USB device may be either physical device connected to a server or software entity created on a server using USB gadget subsystem. Whole project consists of four parts: - usbip-vhci A client side kernel module which provides a virtual USB Host Controller and allows to import a USB device from a remote machine. - usbip-host (stub driver) A server side module which provides a USB device driver which can be bound to a physical USB device to make it exportable. - usbip-vudc A server side module which provides a virtual USB Device Controller and allows to export a USB device created using USB Gadget Subsystem. - usbip-utils A set of userspace tools used to handle connection and management. Used on both sides. [Requirements] - USB/IP device drivers Found in the drivers/usb/usbip/ directory of the Linux kernel tree. - libudev >= 2.0 libudev library - libwrap0-dev tcp wrapper library - gcc >= 4.0 - libtool, automake >= 1.9, autoconf >= 2.5.0, pkg-config [Optional] - hwdata Contains USB device identification data. [Install] 0. Generate configuration scripts. $ ./autogen.sh 1. Compile & install the userspace utilities. $ ./configure [--with-tcp-wrappers=no] [--with-usbids-dir=] $ make install 2. Compile & install USB/IP drivers. [Usage] On a server side there are two entities which can be shared. First of them is physical usb device connected to the machine. To make it available below steps should be executed: server:# (Physically attach your USB device.) server:# insmod usbip-core.ko server:# insmod usbip-host.ko server:# usbipd -D - Start usbip daemon. server:# usbip list -l - List driver assignments for USB devices. server:# usbip bind --busid 1-2 - Bind usbip-host.ko to the device with busid 1-2. - The USB device 1-2 is now exportable to other hosts! - Use `usbip unbind --busid 1-2' to stop exporting the device. Second of shareable entities is USB Gadget created using USB Gadget Subsystem on a server machine. To make it available below steps should be executed: server:# (Create your USB gadget) - Currently the most preferable way of creating a new USB gadget is ConfigFS Composite Gadget. Please refer to its documentation for details. - See vudc_server_example.sh for a short example of USB gadget creation server:# insmod usbip-core.ko server:# insmod usbip-vudc.ko - To create more than one instance of vudc use num module param server:# (Bind gadget to one of available vudc) - Assign your new gadget to USB/IP UDC - Using ConfigFS interface you may do this simply by: server:# cd /sys/kernel/config/usb_gadget/ server:# echo "usbip-vudc.0" > UDC server:# usbipd -D --device - Start usbip daemon. To attach new device to client machine below commands should be used: client:# insmod usbip-core.ko client:# insmod vhci-hcd.ko client:# usbip list --remote - List exported USB devices on the . client:# usbip attach --remote --busid 1-2 - Connect the remote USB device. - When using vudc on a server side busid is really vudc instance name. For example: usbip-vudc.0 client:# usbip port - Show virtual port status. client:# usbip detach --port - Detach the USB device. [Example] --------------------------- SERVER SIDE --------------------------- Physically attach your USB devices to this host. trois:# insmod path/to/usbip-core.ko trois:# insmod path/to/usbip-host.ko trois:# usbipd -D In another terminal, let's look up what USB devices are physically attached to this host. trois:# usbip list -l Local USB devices ================= - busid 1-1 (05a9:a511) 1-1:1.0 - busid 3-2 (0711:0902) 3-2:1.0 - busid 3-3.1 (08bb:2702) 3-3.1:1.0 3-3.1:1.1 - busid 3-3.2 (04bb:0206) 3-3.2:1.0 - busid 3-3 (0409:0058) 3-3:1.0 - busid 4-1 (046d:08b2) 4-1:1.0 4-1:1.1 4-1:1.2 - busid 5-2 (058f:9254) 5-2:1.0 A USB storage device of busid 3-3.2 is now bound to the usb-storage driver. To export this device, we first mark the device as "exportable"; the device is bound to the usbip-host driver. Please remember you can not export a USB hub. Mark the device of busid 3-3.2 as exportable: trois:# usbip --debug bind --busid 3-3.2 ... usbip debug: usbip_bind.c:162:[unbind_other] 3-3.2:1.0 -> usb-storage ... bind device on busid 3-3.2: complete trois:# usbip list -l Local USB devices ================= ... - busid 3-3.2 (04bb:0206) 3-3.2:1.0 ... --------------------------- CLIENT SIDE --------------------------- First, let's list available remote devices that are marked as exportable on the host. deux:# insmod path/to/usbip-core.ko deux:# insmod path/to/vhci-hcd.ko deux:# usbip list --remote 10.0.0.3 Exportable USB devices ====================== - 10.0.0.3 1-1: Prolific Technology, Inc. : unknown product (067b:3507) : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-1 : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00) : 0 - Mass Storage / SCSI / Bulk (Zip) (08/06/50) 1-2.2.1: Apple Computer, Inc. : unknown product (05ac:0203) : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-2/1-2.2/1-2.2.1 : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00) : 0 - Human Interface Devices / Boot Interface Subclass / Keyboard (03/01/01) 1-2.2.3: OmniVision Technologies, Inc. : OV511+ WebCam (05a9:a511) : /sys/devices/pci0000:00/0000:00:1f.2/usb1/1-2/1-2.2/1-2.2.3 : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00) : 0 - Vendor Specific Class / unknown subclass / unknown protocol (ff/00/00) 3-1: Logitech, Inc. : QuickCam Pro 4000 (046d:08b2) : /sys/devices/pci0000:00/0000:00:1e.0/0000:02:0a.0/usb3/3-1 : (Defined at Interface level) / unknown subclass / unknown protocol (00/00/00) : 0 - Data / unknown subclass / unknown protocol (0a/ff/00) : 1 - Audio / Control Device / unknown protocol (01/01/00) : 2 - Audio / Streaming / unknown protocol (01/02/00) Attach a remote USB device: deux:# usbip attach --remote 10.0.0.3 --busid 1-1 port 0 attached Show the devices attached to this client: deux:# usbip port Port 00: at Full Speed(12Mbps) Prolific Technology, Inc. : unknown product (067b:3507) 6-1 -> usbip://10.0.0.3:3240/1-1 (remote bus/dev 001/004) 6-1:1.0 used by usb-storage /sys/class/scsi_device/0:0:0:0/device /sys/class/scsi_host/host0/device /sys/block/sda/device Detach the imported device: deux:# usbip detach --port 0 port 0 detached [Checklist] - See 'Debug Tips' on the project wiki. - http://usbip.wiki.sourceforge.net/how-to-debug-usbip - usbip-host.ko must be bound to the target device. - See /sys/kernel/debug/usb/devices and find "Driver=..." lines of the device. - Target USB gadget must be bound to vudc (using USB gadget susbsys, not usbip bind command) - Shutdown firewall. - usbip now uses TCP port 3240. - Disable SELinux. - Check the kernel and daemon messages. [Contact] Mailing List: linux-usb@vger.kernel.org ======================================================================== * linux-5.14.0-611.24.1.el9_7/COPYING ======================================================================== The Linux Kernel is provided under: SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note Being under the terms of the GNU General Public License version 2 only, according with: LICENSES/preferred/GPL-2.0 With an explicit syscall exception, as stated at: LICENSES/exceptions/Linux-syscall-note In addition, other licenses may also apply. Please see: Documentation/process/license-rules.rst for more details. All contributions to the Linux Kernel are subject to this COPYING file. ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/COPYING-logo ======================================================================== This is the full-colour version of the currently unofficial Linux logo ("currently unofficial" just means that there has been no paperwork and that I have not really announced it yet). It was created by Larry Ewing, and is freely usable as long as you acknowledge Larry as the original artist. Note that there are black-and-white versions of this available that scale down to smaller sizes and are better for letterheads or whatever you want to use it for: for the full range of logos take a look at Larry's web-page: https://www.isc.tamu.edu/~lewing/linux/ ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/process/license-rules.rst ======================================================================== .. SPDX-License-Identifier: GPL-2.0 .. _kernel_licensing: Linux kernel licensing rules ============================ The Linux Kernel is provided under the terms of the GNU General Public License version 2 only (GPL-2.0), as provided in LICENSES/preferred/GPL-2.0, with an explicit syscall exception described in LICENSES/exceptions/Linux-syscall-note, as described in the COPYING file. This documentation file provides a description of how each source file should be annotated to make its license clear and unambiguous. It doesn't replace the Kernel's license. The license described in the COPYING file applies to the kernel source as a whole, though individual source files can have a different license which is required to be compatible with the GPL-2.0:: GPL-1.0+ : GNU General Public License v1.0 or later GPL-2.0+ : GNU General Public License v2.0 or later LGPL-2.0 : GNU Library General Public License v2 only LGPL-2.0+ : GNU Library General Public License v2 or later LGPL-2.1 : GNU Lesser General Public License v2.1 only LGPL-2.1+ : GNU Lesser General Public License v2.1 or later Aside from that, individual files can be provided under a dual license, e.g. one of the compatible GPL variants and alternatively under a permissive license like BSD, MIT etc. The User-space API (UAPI) header files, which describe the interface of user-space programs to the kernel are a special case. According to the note in the kernel COPYING file, the syscall interface is a clear boundary, which does not extend the GPL requirements to any software which uses it to communicate with the kernel. Because the UAPI headers must be includable into any source files which create an executable running on the Linux kernel, the exception must be documented by a special license expression. The common way of expressing the license of a source file is to add the matching boilerplate text into the top comment of the file. Due to formatting, typos etc. these "boilerplates" are hard to validate for tools which are used in the context of license compliance. An alternative to boilerplate text is the use of Software Package Data Exchange (SPDX) license identifiers in each source file. SPDX license identifiers are machine parsable and precise shorthands for the license under which the content of the file is contributed. SPDX license identifiers are managed by the SPDX Workgroup at the Linux Foundation and have been agreed on by partners throughout the industry, tool vendors, and legal teams. For further information see https://spdx.org/ The Linux kernel requires the precise SPDX identifier in all source files. The valid identifiers used in the kernel are explained in the section `License identifiers`_ and have been retrieved from the official SPDX license list at https://spdx.org/licenses/ along with the license texts. License identifier syntax ------------------------- 1. Placement: The SPDX license identifier in kernel files shall be added at the first possible line in a file which can contain a comment. For the majority of files this is the first line, except for scripts which require the '#!PATH_TO_INTERPRETER' in the first line. For those scripts the SPDX identifier goes into the second line. | 2. Style: The SPDX license identifier is added in form of a comment. The comment style depends on the file type:: C source: // SPDX-License-Identifier: C header: /* SPDX-License-Identifier: */ ASM: /* SPDX-License-Identifier: */ scripts: # SPDX-License-Identifier: .rst: .. SPDX-License-Identifier: .dts{i}: // SPDX-License-Identifier: If a specific tool cannot handle the standard comment style, then the appropriate comment mechanism which the tool accepts shall be used. This is the reason for having the "/\* \*/" style comment in C header files. There was build breakage observed with generated .lds files where 'ld' failed to parse the C++ comment. This has been fixed by now, but there are still older assembler tools which cannot handle C++ style comments. | 3. Syntax: A is either an SPDX short form license identifier found on the SPDX License List, or the combination of two SPDX short form license identifiers separated by "WITH" when a license exception applies. When multiple licenses apply, an expression consists of keywords "AND", "OR" separating sub-expressions and surrounded by "(", ")" . License identifiers for licenses like [L]GPL with the 'or later' option are constructed by using a "+" for indicating the 'or later' option.:: // SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: LGPL-2.1+ WITH should be used when there is a modifier to a license needed. For example, the linux kernel UAPI files use the expression:: // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note Other examples using WITH exceptions found in the kernel are:: // SPDX-License-Identifier: GPL-2.0 WITH mif-exception // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 Exceptions can only be used with particular License identifiers. The valid License identifiers are listed in the tags of the exception text file. For details see the point `Exceptions`_ in the chapter `License identifiers`_. OR should be used if the file is dual licensed and only one license is to be selected. For example, some dtsi files are available under dual licenses:: // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause Examples from the kernel for license expressions in dual licensed files:: // SPDX-License-Identifier: GPL-2.0 OR MIT // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL AND should be used if the file has multiple licenses whose terms all apply to use the file. For example, if code is inherited from another project and permission has been given to put it in the kernel, but the original license terms need to remain in effect:: // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT Another other example where both sets of license terms need to be adhered to is:: // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+ License identifiers ------------------- The licenses currently used, as well as the licenses for code added to the kernel, can be broken down into: 1. _`Preferred licenses`: Whenever possible these licenses should be used as they are known to be fully compatible and widely used. These licenses are available from the directory:: LICENSES/preferred/ in the kernel source tree. The files in this directory contain the full license text and `Metatags`_. The file names are identical to the SPDX license identifier which shall be used for the license in source files. Examples:: LICENSES/preferred/GPL-2.0 Contains the GPL version 2 license text and the required metatags:: LICENSES/preferred/MIT Contains the MIT license text and the required metatags _`Metatags`: The following meta tags must be available in a license file: - Valid-License-Identifier: One or more lines which declare which License Identifiers are valid inside the project to reference this particular license text. Usually this is a single valid identifier, but e.g. for licenses with the 'or later' options two identifiers are valid. - SPDX-URL: The URL of the SPDX page which contains additional information related to the license. - Usage-Guidance: Freeform text for usage advice. The text must include correct examples for the SPDX license identifiers as they should be put into source files according to the `License identifier syntax`_ guidelines. - License-Text: All text after this tag is treated as the original license text File format examples:: Valid-License-Identifier: GPL-2.0 Valid-License-Identifier: GPL-2.0+ SPDX-URL: https://spdx.org/licenses/GPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU General Public License (GPL) version 2 only' use: SPDX-License-Identifier: GPL-2.0 For 'GNU General Public License (GPL) version 2 or any later version' use: SPDX-License-Identifier: GPL-2.0+ License-Text: Full license text :: SPDX-License-Identifier: MIT SPDX-URL: https://spdx.org/licenses/MIT.html Usage-Guide: To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: MIT License-Text: Full license text | 2. Deprecated licenses: These licenses should only be used for existing code or for importing code from a different project. These licenses are available from the directory:: LICENSES/deprecated/ in the kernel source tree. The files in this directory contain the full license text and `Metatags`_. The file names are identical to the SPDX license identifier which shall be used for the license in source files. Examples:: LICENSES/deprecated/ISC Contains the Internet Systems Consortium license text and the required metatags:: LICENSES/deprecated/GPL-1.0 Contains the GPL version 1 license text and the required metatags. Metatags: The metatag requirements for 'other' licenses are identical to the requirements of the `Preferred licenses`_. File format example:: Valid-License-Identifier: ISC SPDX-URL: https://spdx.org/licenses/ISC.html Usage-Guide: Usage of this license in the kernel for new code is discouraged and it should solely be used for importing code from an already existing project. To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: ISC License-Text: Full license text | 3. Dual Licensing Only These licenses should only be used to dual license code with another license in addition to a preferred license. These licenses are available from the directory:: LICENSES/dual/ in the kernel source tree. The files in this directory contain the full license text and `Metatags`_. The file names are identical to the SPDX license identifier which shall be used for the license in source files. Examples:: LICENSES/dual/MPL-1.1 Contains the Mozilla Public License version 1.1 license text and the required metatags:: LICENSES/dual/Apache-2.0 Contains the Apache License version 2.0 license text and the required metatags. Metatags: The metatag requirements for 'other' licenses are identical to the requirements of the `Preferred licenses`_. File format example:: Valid-License-Identifier: MPL-1.1 SPDX-URL: https://spdx.org/licenses/MPL-1.1.html Usage-Guide: Do NOT use. The MPL-1.1 is not GPL2 compatible. It may only be used for dual-licensed files where the other license is GPL2 compatible. If you end up using this it MUST be used together with a GPL2 compatible license using "OR". To use the Mozilla Public License version 1.1 put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation: SPDX-License-Identifier: MPL-1.1 License-Text: Full license text | 4. _`Exceptions`: Some licenses can be amended with exceptions which grant certain rights which the original license does not. These exceptions are available from the directory:: LICENSES/exceptions/ in the kernel source tree. The files in this directory contain the full exception text and the required `Exception Metatags`_. Examples:: LICENSES/exceptions/Linux-syscall-note Contains the Linux syscall exception as documented in the COPYING file of the Linux kernel, which is used for UAPI header files. e.g. /\* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note \*/:: LICENSES/exceptions/GCC-exception-2.0 Contains the GCC 'linking exception' which allows to link any binary independent of its license against the compiled version of a file marked with this exception. This is required for creating runnable executables from source code which is not compatible with the GPL. _`Exception Metatags`: The following meta tags must be available in an exception file: - SPDX-Exception-Identifier: One exception identifier which can be used with SPDX license identifiers. - SPDX-URL: The URL of the SPDX page which contains additional information related to the exception. - SPDX-Licenses: A comma separated list of SPDX license identifiers for which the exception can be used. - Usage-Guidance: Freeform text for usage advice. The text must be followed by correct examples for the SPDX license identifiers as they should be put into source files according to the `License identifier syntax`_ guidelines. - Exception-Text: All text after this tag is treated as the original exception text File format examples:: SPDX-Exception-Identifier: Linux-syscall-note SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ Usage-Guidance: This exception is used together with one of the above SPDX-Licenses to mark user-space API (uapi) header files so they can be included into non GPL compliant user-space application code. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH Linux-syscall-note Exception-Text: Full exception text :: SPDX-Exception-Identifier: GCC-exception-2.0 SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html SPDX-Licenses: GPL-2.0, GPL-2.0+ Usage-Guidance: The "GCC Runtime Library exception 2.0" is used together with one of the above SPDX-Licenses for code imported from the GCC runtime library. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH GCC-exception-2.0 Exception-Text: Full exception text All SPDX license identifiers and exceptions must have a corresponding file in the LICENSES subdirectories. This is required to allow tool verification (e.g. checkpatch.pl) and to have the licenses ready to read and extract right from the source, which is recommended by various FOSS organizations, e.g. the `FSFE REUSE initiative `_. _`MODULE_LICENSE` ----------------- Loadable kernel modules also require a MODULE_LICENSE() tag. This tag is neither a replacement for proper source code license information (SPDX-License-Identifier) nor in any way relevant for expressing or determining the exact license under which the source code of the module is provided. The sole purpose of this tag is to provide sufficient information whether the module is free software or proprietary for the kernel module loader and for user space tools. The valid license strings for MODULE_LICENSE() are: ============================= ============================================= "GPL" Module is licensed under GPL version 2. This does not express any distinction between GPL-2.0-only or GPL-2.0-or-later. The exact license information can only be determined via the license information in the corresponding source files. "GPL v2" Same as "GPL". It exists for historic reasons. "GPL and additional rights" Historical variant of expressing that the module source is dual licensed under a GPL v2 variant and MIT license. Please do not use in new code. "Dual MIT/GPL" The correct way of expressing that the module is dual licensed under a GPL v2 variant or MIT license choice. "Dual BSD/GPL" The module is dual licensed under a GPL v2 variant or BSD license choice. The exact variant of the BSD license can only be determined via the license information in the corresponding source files. "Dual MPL/GPL" The module is dual licensed under a GPL v2 variant or Mozilla Public License (MPL) choice. The exact variant of the MPL license can only be determined via the license information in the corresponding source files. "Proprietary" The module is under a proprietary license. This string is solely for proprietary third party modules and cannot be used for modules which have their source code in the kernel tree. Modules tagged that way are tainting the kernel with the 'P' flag when loaded and the kernel module loader refuses to link such modules against symbols which are exported with EXPORT_SYMBOL_GPL(). ============================= ============================================= ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/scsi/LICENSE.FlashPoint ======================================================================== FlashPoint Driver Developer's Kit Version 1.0 Copyright 1995-1996 by Mylex Corporation All Rights Reserved This program is free software; you may redistribute and/or modify it under the terms of either: a) the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version, or b) the "BSD-style License" included below. 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 either the GNU General Public License or the BSD-style License below 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., 675 Mass Ave, Cambridge, MA 02139, USA. The BSD-style License is as follows: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain this LICENSE.FlashPoint file, without modification, this list of conditions, and the following disclaimer. The following copyright notice must appear immediately at the beginning of all source files: Copyright 1995-1996 by Mylex Corporation. All Rights Reserved This file is available under both the GNU General Public License and a BSD-style copyright; see LICENSE.FlashPoint for details. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of Mylex Corporation may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY MYLEX CORP. ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/translations/it_IT/disclaimer-ita.rst ======================================================================== :orphan: .. warning:: In caso di dubbi sulla correttezza del contenuto di questa traduzione, l'unico riferimento valido è la documentazione ufficiale in inglese. Per maggiori informazioni consultate le :ref:`avvertenze `. ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/translations/it_IT/process/license-rules.rst ======================================================================== .. SPDX-License-Identifier: GPL-2.0 .. include:: ../disclaimer-ita.rst :Original: :ref:`Documentation/process/license-rules.rst ` :Translator: Federico Vaga .. _it_kernel_licensing: Regole per licenziare il kernel Linux ===================================== Il kernel Linux viene rilasciato sotto i termini definiti dalla seconda versione della licenza *GNU General Public License* (GPL-2.0), di cui una copia è disponibile nel file LICENSES/preferred/GPL-2.0; a questo si aggiunge eccezione per le chiamate di sistema come descritto in LICENSES/exceptions/Linux-syscall-note; tutto ciò è descritto nel file COPYING. Questo documento fornisce una descrizione su come ogni singolo file sorgente debba essere licenziato per far si che sia chiaro e non ambiguo. Questo non sostituisce la licenza del kernel. La licenza descritta nel file COPYING si applica ai sorgenti del kernel nella loro interezza, quindi i singoli file sorgenti possono avere diverse licenze ma devono essere compatibili con la GPL-2.0:: GPL-1.0+ : GNU General Public License v1.0 o successiva GPL-2.0+ : GNU General Public License v2.0 o successiva LGPL-2.0 : GNU Library General Public License v2 LGPL-2.0+ : GNU Library General Public License v2 o successiva LGPL-2.1 : GNU Lesser General Public License v2.1 LGPL-2.1+ : GNU Lesser General Public License v2.1 o successiva A parte questo, i singolo file possono essere forniti con una doppia licenza, per esempio con una delle varianti compatibili della GPL e alternativamente con una licenza permissiva come BSD, MIT eccetera. I file d'intestazione per l'API verso lo spazio utente (UAPI) descrivono le interfacce usate dai programmi, e per questo sono un caso speciale. Secondo le note nel file COPYING, le chiamate di sistema sono un chiaro confine oltre il quale non si estendono i requisiti della GPL per quei programmi che le usano per comunicare con il kernel. Dato che i file d'intestazione UAPI devono poter essere inclusi nei sorgenti di un qualsiasi programma eseguibile sul kernel Linux, questi meritano un'eccezione documentata da una clausola speciale. Il modo più comune per indicare la licenza dei file sorgenti è quello di aggiungere il corrispondente blocco di testo come commento in testa a detto file. Per via della formattazione, dei refusi, eccetera, questi blocchi di testo sono difficili da identificare dagli strumenti usati per verificare il rispetto delle licenze. Un'alternativa ai blocchi di testo è data dall'uso degli identificatori *Software Package Data Exchange* (SPDX) in ogni file sorgente. Gli identificatori di licenza SPDX sono analizzabili dalle macchine e sono precisi simboli stenografici che identificano la licenza sotto la quale viene licenziato il file che lo include. Gli identificatori di licenza SPDX sono gestiti del gruppo di lavoro SPDX presso la Linux Foundation e sono stati concordati fra i soci nell'industria, gli sviluppatori di strumenti, e i rispettivi gruppi legali. Per maggiori informazioni, consultate https://spdx.org/ Il kernel Linux richiede un preciso identificatore SPDX in tutti i file sorgenti. Gli identificatori validi verranno spiegati nella sezione `Identificatori di licenza`_ e sono stati copiati dalla lista ufficiale di licenze SPDX assieme al rispettivo testo come mostrato in https://spdx.org/licenses/. Sintassi degli identificatori di licenza ---------------------------------------- 1. Posizionamento: L'identificativo di licenza SPDX dev'essere posizionato come prima riga possibile di un file che possa contenere commenti. Per la maggior parte dei file questa è la prima riga, fanno eccezione gli script che richiedono come prima riga '#!PATH_TO_INTERPRETER'. Per questi script l'identificativo SPDX finisce nella seconda riga. | 2. Stile: L'identificativo di licenza SPDX viene aggiunto sotto forma di commento. Lo stile del commento dipende dal tipo di file:: sorgenti C: // SPDX-License-Identifier: intestazioni C: /* SPDX-License-Identifier: */ ASM: /* SPDX-License-Identifier: */ scripts: # SPDX-License-Identifier: .rst: .. SPDX-License-Identifier: .dts{i}: // SPDX-License-Identifier: Se un particolare programma non dovesse riuscire a gestire lo stile principale per i commenti, allora dev'essere usato il meccanismo accettato dal programma. Questo è il motivo per cui si ha "/\* \*/" nei file d'intestazione C. Notammo che 'ld' falliva nell'analizzare i commenti del C++ nei file .lds che venivano prodotti. Oggi questo è stato corretto, ma ci sono in giro ancora vecchi programmi che non sono in grado di gestire lo stile dei commenti del C++. | 3. Sintassi: Una può essere scritta usando l'identificatore SPDX della licenza come indicato nella lista di licenze SPDX, oppure la combinazione di due identificatori SPDX separati da "WITH" per i casi eccezionali. Quando si usano più licenze l'espressione viene formata da sottoespressioni separate dalle parole chiave "AND", "OR" e racchiuse fra parentesi tonde "(", ")". Gli identificativi di licenza per licenze come la [L]GPL che si avvalgono dell'opzione 'o successive' si formano aggiungendo alla fine il simbolo "+" per indicare l'opzione 'o successive'.:: // SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: LGPL-2.1+ WITH dovrebbe essere usato quando sono necessarie delle modifiche alla licenza. Per esempio, la UAPI del kernel linux usa l'espressione:: // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note Altri esempi di usi di WITH all'interno del kernel sono:: // SPDX-License-Identifier: GPL-2.0 WITH mif-exception // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 Le eccezioni si possono usare solo in combinazione con identificatori di licenza. Gli identificatori di licenza riconosciuti sono elencati nei corrispondenti file d'eccezione. Per maggiori dettagli consultate `Eccezioni`_ nel capitolo `Identificatori di licenza`_ La parola chiave OR dovrebbe essere usata solo quando si usa una doppia licenza e solo una dev'essere scelta. Per esempio, alcuni file dtsi sono disponibili con doppia licenza:: // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause Esempi dal kernel di espressioni per file licenziati con doppia licenza sono:: // SPDX-License-Identifier: GPL-2.0 OR MIT // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL La parola chiave AND dovrebbe essere usata quando i termini di più licenze si applicano ad un file. Per esempio, quando il codice viene preso da un altro progetto il quale da i permessi per aggiungerlo nel kernel ma richiede che i termini originali della licenza rimangano intatti:: // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT Di seguito, un altro esempio dove entrambe i termini di licenza devono essere rispettati:: // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+ Identificatori di licenza ------------------------- Le licenze attualmente in uso, così come le licenze aggiunte al kernel, possono essere categorizzate in: 1. _`Licenze raccomandate`: Ovunque possibile le licenze qui indicate dovrebbero essere usate perché pienamente compatibili e molto usate. Queste licenze sono disponibile nei sorgenti del kernel, nella cartella:: LICENSES/preferred/ I file in questa cartella contengono il testo completo della licenza e i `Metatag`_. Il nome di questi file è lo stesso usato come identificatore di licenza SPDX e che deve essere usato nei file sorgenti. Esempi:: LICENSES/preferred/GPL-2.0 Contiene il testo della seconda versione della licenza GPL e i metatag necessari:: LICENSES/preferred/MIT Contiene il testo della licenza MIT e i metatag necessari. _`Metatag`: I seguenti metatag devono essere presenti in un file di licenza: - Valid-License-Identifier: Una o più righe che dichiarano quali identificatori di licenza sono validi all'interno del progetto per far riferimento alla licenza in questione. Solitamente, questo è un unico identificatore valido, ma per esempio le licenze che permettono l'opzione 'o successive' hanno due identificatori validi. - SPDX-URL: L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti la licenza. - Usage-Guidance: Testo in formato libero per dare suggerimenti agli utenti. Il testo deve includere degli esempi su come usare gli identificatori di licenza SPDX in un file sorgente in conformità con le linea guida in `Sintassi degli identificatori di licenza`_. - License-Text: Tutto il testo che compare dopo questa etichetta viene trattato come se fosse parte del testo originale della licenza. Esempi:: Valid-License-Identifier: GPL-2.0 Valid-License-Identifier: GPL-2.0+ SPDX-URL: https://spdx.org/licenses/GPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU General Public License (GPL) version 2 only' use: SPDX-License-Identifier: GPL-2.0 For 'GNU General Public License (GPL) version 2 or any later version' use: SPDX-License-Identifier: GPL-2.0+ License-Text: Full license text :: SPDX-License-Identifier: MIT SPDX-URL: https://spdx.org/licenses/MIT.html Usage-Guide: To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: MIT License-Text: Full license text | 2. Licenze deprecate: Questo tipo di licenze dovrebbero essere usate solo per codice già esistente o quando si prende codice da altri progetti. Le licenze sono disponibili nei sorgenti del kernel nella cartella:: LICENSES/deprecated/ I file in questa cartella contengono il testo completo della licenza e i `Metatag`_. Il nome di questi file è lo stesso usato come identificatore di licenza SPDX e che deve essere usato nei file sorgenti. Esempi:: LICENSES/deprecated/ISC Contiene il testo della licenza Internet System Consortium e i suoi metatag:: LICENSES/deprecated/GPL-1.0 Contiene il testo della versione 1 della licenza GPL e i suoi metatag. Metatag: I metatag necessari per le 'altre' ('other') licenze sono gli stessi di usati per le `Licenze raccomandate`_. Esempio del formato del file:: Valid-License-Identifier: ISC SPDX-URL: https://spdx.org/licenses/ISC.html Usage-Guide: Usage of this license in the kernel for new code is discouraged and it should solely be used for importing code from an already existing project. To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: ISC License-Text: Full license text | 3. Solo per doppie licenze Queste licenze dovrebbero essere usate solamente per codice licenziato in combinazione con un'altra licenza che solitamente è quella preferita. Queste licenze sono disponibili nei sorgenti del kernel nella cartella:: LICENSES/dual I file in questa cartella contengono il testo completo della rispettiva licenza e i suoi `Metatag`_. I nomi dei file sono identici agli identificatori di licenza SPDX che dovrebbero essere usati nei file sorgenti. Esempi:: LICENSES/dual/MPL-1.1 Questo file contiene il testo della versione 1.1 della licenza *Mozilla Pulic License* e i metatag necessari:: LICENSES/dual/Apache-2.0 Questo file contiene il testo della versione 2.0 della licenza Apache e i metatag necessari. Metatag: I requisiti per le 'altre' ('*other*') licenze sono identici a quelli per le `Licenze raccomandate`_. Esempio del formato del file:: Valid-License-Identifier: MPL-1.1 SPDX-URL: https://spdx.org/licenses/MPL-1.1.html Usage-Guide: Do NOT use. The MPL-1.1 is not GPL2 compatible. It may only be used for dual-licensed files where the other license is GPL2 compatible. If you end up using this it MUST be used together with a GPL2 compatible license using "OR". To use the Mozilla Public License version 1.1 put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation: SPDX-License-Identifier: MPL-1.1 License-Text: Full license text | 4. _`Eccezioni`: Alcune licenze possono essere corrette con delle eccezioni che forniscono diritti aggiuntivi. Queste eccezioni sono disponibili nei sorgenti del kernel nella cartella:: LICENSES/exceptions/ I file in questa cartella contengono il testo completo dell'eccezione e i `Metatag per le eccezioni`_. Esempi:: LICENSES/exceptions/Linux-syscall-note Contiene la descrizione dell'eccezione per le chiamate di sistema Linux così come documentato nel file COPYING del kernel Linux; questo viene usato per i file d'intestazione per la UAPI. Per esempio /\* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note \*/:: LICENSES/exceptions/GCC-exception-2.0 Contiene la 'eccezione di linking' che permette di collegare qualsiasi binario, indipendentemente dalla sua licenza, con un compilato il cui file sorgente è marchiato con questa eccezione. Questo è necessario per creare eseguibili dai sorgenti che non sono compatibili con la GPL. _`Metatag per le eccezioni`: Un file contenente un'eccezione deve avere i seguenti metatag: - SPDX-Exception-Identifier: Un identificatore d'eccezione che possa essere usato in combinazione con un identificatore di licenza SPDX. - SPDX-URL: L'URL della pagina SPDX che contiene informazioni aggiuntive riguardanti l'eccezione. - SPDX-Licenses: Una lista di licenze SPDX separate da virgola, che possono essere usate con l'eccezione. - Usage-Guidance: Testo in formato libero per dare suggerimenti agli utenti. Il testo deve includere degli esempi su come usare gli identificatori di licenza SPDX in un file sorgente in conformità con le linea guida in `Sintassi degli identificatori di licenza`_. - Exception-Text: Tutto il testo che compare dopo questa etichetta viene trattato come se fosse parte del testo originale della licenza. Esempi:: SPDX-Exception-Identifier: Linux-syscall-note SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ Usage-Guidance: This exception is used together with one of the above SPDX-Licenses to mark user-space API (uapi) header files so they can be included into non GPL compliant user-space application code. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH Linux-syscall-note Exception-Text: Full exception text :: SPDX-Exception-Identifier: GCC-exception-2.0 SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html SPDX-Licenses: GPL-2.0, GPL-2.0+ Usage-Guidance: The "GCC Runtime Library exception 2.0" is used together with one of the above SPDX-Licenses for code imported from the GCC runtime library. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH GCC-exception-2.0 Exception-Text: Full exception text Per ogni identificatore di licenza SPDX e per le eccezioni dev'esserci un file nella sotto-cartella LICENSES. Questo è necessario per permettere agli strumenti di effettuare verifiche (come checkpatch.pl), per avere le licenze disponibili per la lettura e per estrarre i diritti dai sorgenti, così come raccomandato da diverse organizzazioni FOSS, per esempio l'`iniziativa FSFE REUSE `_. _`MODULE_LICENSE` ----------------- I moduli del kernel necessitano di un'etichetta MODULE_LICENSE(). Questa etichetta non sostituisce le informazioni sulla licenza del codice sorgente (SPDX-License-Identifier) né fornisce informazioni che esprimono o determinano l'esatta licenza sotto la quale viene rilasciato. Il solo scopo di questa etichetta è quello di fornire sufficienti informazioni al caricatore di moduli del kernel, o agli strumenti in spazio utente, per capire se il modulo è libero o proprietario. Le stringe di licenza valide per MODULE_LICENSE() sono: ============================= ============================================= "GPL" Il modulo è licenziato con la GPL versione 2. Questo non fa distinzione fra GPL'2.0-only o GPL-2.0-or-later. L'esatta licenza può essere determinata solo leggendo i corrispondenti file sorgenti. "GPL v2" Stesso significato di "GPL". Esiste per motivi storici. "GPL and additional rights" Questa è una variante che esiste per motivi storici che indica che i sorgenti di un modulo sono rilasciati sotto una variante della licenza GPL v2 e quella MIT. Per favore non utilizzatela per codice nuovo. "Dual MIT/GPL" Questo è il modo corretto per esprimere il il fatto che il modulo è rilasciato con doppia licenza a scelta fra: una variante della GPL v2 o la licenza MIT. "Dual BSD/GPL" Questo modulo è rilasciato con doppia licenza a scelta fra: una variante della GPL v2 o la licenza BSD. La variante esatta della licenza BSD può essere determinata solo attraverso i corrispondenti file sorgenti. "Dual MPL/GPL" Questo modulo è rilasciato con doppia licenza a scelta fra: una variante della GPL v2 o la Mozilla Public License (MPL). La variante esatta della licenza MPL può essere determinata solo attraverso i corrispondenti file sorgenti. "Proprietary" Questo modulo è rilasciato con licenza proprietaria. Questa stringa è solo per i moduli proprietari di terze parti e non può essere usata per quelli che risiedono nei sorgenti del kernel. I moduli etichettati in questo modo stanno contaminando il kernel e gli viene assegnato un flag 'P'; quando vengono caricati, il caricatore di moduli del kernel si rifiuterà di collegare questi moduli ai simboli che sono stati esportati con EXPORT_SYMBOL_GPL(). ============================= ============================================= ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/translations/zh_CN/disclaimer-zh_CN.rst ======================================================================== :orphan: .. warning:: 此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 .. note:: 如果您发现本文档与原始文件有任何不同或者有翻译问题,请联系该文件的译者, 或者请求时奎亮的帮助:。 ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/translations/zh_CN/process/license-rules.rst ======================================================================== .. SPDX-License-Identifier: GPL-2.0 .. include:: ../disclaimer-zh_CN.rst :Original: :ref:`Documentation/process/license-rules.rst ` :Translator: Alex Shi .. _cn_kernel_licensing: Linux内核许可规则 ================= Linux内核根据LICENSES/preferred/GPL-2.0中提供的GNU通用公共许可证版本2 (GPL-2.0)的条款提供,并在LICENSES/exceptions/Linux-syscall-note中显式 描述了例外的系统调用,如COPYING文件中所述。 此文档文件提供了如何对每个源文件进行注释以使其许可证清晰明确的说明。 它不会取代内核的许可证。 内核源代码作为一个整体适用于COPYING文件中描述的许可证,但是单个源文件可以 具有不同的与GPL-20兼容的许可证:: GPL-1.0+ : GNU通用公共许可证v1.0或更高版本 GPL-2.0+ : GNU通用公共许可证v2.0或更高版本 LGPL-2.0 : 仅限GNU库通用公共许可证v2 LGPL-2.0+: GNU 库通用公共许可证v2或更高版本 LGPL-2.1 : 仅限GNU宽通用公共许可证v2.1 LGPL-2.1+: GNU宽通用公共许可证v2.1或更高版本 除此之外,个人文件可以在双重许可下提供,例如一个兼容的GPL变体,或者BSD, MIT等许可。 用户空间API(UAPI)头文件描述了用户空间程序与内核的接口,这是一种特殊情况。 根据内核COPYING文件中的注释,syscall接口是一个明确的边界,它不会将GPL要求 扩展到任何使用它与内核通信的软件。由于UAPI头文件必须包含在创建在Linux内核 上运行的可执行文件的任何源文件中,因此此例外必须记录在特别的许可证表述中。 表达源文件许可证的常用方法是将匹配的样板文本添加到文件的顶部注释中。由于 格式,拼写错误等,这些“样板”很难通过那些在上下文中使用的验证许可证合规性 的工具。 样板文本的替代方法是在每个源文件中使用软件包数据交换(SPDX)许可证标识符。 SPDX许可证标识符是机器可解析的,并且是用于提供文件内容的许可证的精确缩写。 SPDX许可证标识符由Linux 基金会的SPDX 工作组管理,并得到了整个行业,工具 供应商和法律团队的合作伙伴的一致同意。有关详细信息,请参阅 https://spdx.org/ Linux内核需要所有源文件中的精确SPDX标识符。内核中使用的有效标识符在 `许可标识符`_ 一节中进行了解释,并且已可以在 https://spdx.org/licenses/ 上的官方SPDX许可证列表中检索,并附带许可证 文本。 许可标识符语法 -------------- 1.安置:    内核文件中的SPDX许可证标识符应添加到可包含注释的文件中的第一行。对于大多 数文件,这是第一行,除了那些在第一行中需要'#!PATH_TO_INTERPRETER'的脚本。 对于这些脚本,SPDX标识符进入第二行。 | 2. 风格: SPDX许可证标识符以注释的形式添加。注释样式取决于文件类型:: C source: // SPDX-License-Identifier: C header: /* SPDX-License-Identifier: */ ASM: /* SPDX-License-Identifier: */ scripts: # SPDX-License-Identifier: .rst: .. SPDX-License-Identifier: .dts{i}: // SPDX-License-Identifier: 如果特定工具无法处理标准注释样式,则应使用工具接受的相应注释机制。这是在 C 头文件中使用“/\*\*/”样式注释的原因。过去在使用生成的.lds文件中观察到 构建被破坏,其中'ld'无法解析C++注释。现在已经解决了这个问题,但仍然有较 旧的汇编程序工具无法处理C++样式的注释。 | 3. 句法: 是SPDX许可证列表中的SPDX短格式许可证标识符,或者在许可 证例外适用时由“WITH”分隔的两个SPDX短格式许可证标识符的组合。当应用多个许 可证时,表达式由分隔子表达式的关键字“AND”,“OR”组成,并由“(”,“)”包围。 带有“或更高”选项的[L]GPL等许可证的许可证标识符通过使用“+”来表示“或更高” 选项来构建。:: // SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: LGPL-2.1+ 当需要修正的许可证时,应使用WITH。 例如,linux内核UAPI文件使用表达式:: // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 其它在内核中使用WITH例外的事例如下:: // SPDX-License-Identifier: GPL-2.0 WITH mif-exception // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 例外只能与特定的许可证标识符一起使用。有效的许可证标识符列在异常文本文件 的标记中。有关详细信息,请参阅 `许可标识符`_ 一章中的 `例外`_ 。 如果文件是双重许可且只选择一个许可证,则应使用OR。例如,一些dtsi文件在双 许可下可用:: // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 内核中双许可文件中许可表达式的示例:: // SPDX-License-Identifier: GPL-2.0 OR MIT // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL 如果文件具有多个许可证,其条款全部适用于使用该文件,则应使用AND。例如, 如果代码是从另一个项目继承的,并且已经授予了将其放入内核的权限,但原始 许可条款需要保持有效:: // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT 另一个需要遵守两套许可条款的例子是:: // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+ 许可标识符 ---------- 当前使用的许可证以及添加到内核的代码许可证可以分解为: 1. _`优先许可`: 应尽可能使用这些许可证,因为它们已知完全兼容并广泛使用。这些许可证在内核 目录:: LICENSES/preferred/ 此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识 符相同,后者应用于源文件中的许可证。 例如:: LICENSES/preferred/GPL-2.0 包含GPLv2许可证文本和所需的元标签:: LICENSES/preferred/MIT 包含MIT许可证文本和所需的元标记 _`元标记`: 许可证文件中必须包含以下元标记: - Valid-License-Identifier:   一行或多行, 声明那些许可标识符在项目内有效, 以引用此特定许可的文本。通 常这是一个有效的标识符,但是例如对于带有'或更高'选项的许可证,两个标识 符都有效。 - SPDX-URL: SPDX页面的URL,其中包含与许可证相关的其他信息. - Usage-Guidance: 使用建议的自由格式文本。该文本必须包含SPDX许可证标识符的正确示例,因为 它们应根据 `许可标识符语法`_ 指南放入源文件中。 - License-Text: 此标记之后的所有文本都被视为原始许可文本 文件格式示例:: Valid-License-Identifier: GPL-2.0 Valid-License-Identifier: GPL-2.0+ SPDX-URL: https://spdx.org/licenses/GPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU General Public License (GPL) version 2 only' use: SPDX-License-Identifier: GPL-2.0 For 'GNU General Public License (GPL) version 2 or any later version' use: SPDX-License-Identifier: GPL-2.0+ License-Text: Full license text :: SPDX-License-Identifier: MIT SPDX-URL: https://spdx.org/licenses/MIT.html Usage-Guide: To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: MIT License-Text: Full license text | 2. 不推荐的许可证: 这些许可证只应用于现有代码或从其他项目导入代码。这些许可证在内核目录:: LICENSES/other/ 此目录中的文件包含完整的许可证文本和 `元标记`_ 。文件名与SPDX许可证标识 符相同,后者应用于源文件中的许可证。 例如:: LICENSES/other/ISC 包含国际系统联合许可文本和所需的元标签:: LICENSES/other/ZLib 包含ZLIB许可文本和所需的元标签. 元标签: “其他”许可证的元标签要求与 `优先许可`_ 的要求相同。 文件格式示例:: Valid-License-Identifier: ISC SPDX-URL: https://spdx.org/licenses/ISC.html Usage-Guide: Usage of this license in the kernel for new code is discouraged and it should solely be used for importing code from an already existing project. To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: ISC License-Text: Full license text | 3. _`例外`: 某些许可证可以修改,并允许原始许可证不具有的某些例外权利。这些例外在 内核目录:: LICENSES/exceptions/ 此目录中的文件包含完整的例外文本和所需的 `例外元标记`_ 。 例如:: LICENSES/exceptions/Linux-syscall-note 包含Linux内核的COPYING文件中记录的Linux系统调用例外,该文件用于UAPI 头文件。例如:: LICENSES/exceptions/GCC-exception-2.0 包含GCC'链接例外',它允许独立于其许可证的任何二进制文件与标记有此例外的 文件的编译版本链接。这是从GPL不兼容源代码创建可运行的可执行文件所必需的。 _`例外元标记`: 以下元标记必须在例外文件中可用: - SPDX-Exception-Identifier:   一个可与SPDX许可证标识符一起使用的例外标识符。 - SPDX-URL: SPDX页面的URL,其中包含与例外相关的其他信息。 - SPDX-Licenses:   以逗号分隔的例外可用的SPDX许可证标识符列表。 - Usage-Guidance: 使用建议的自由格式文本。必须在文本后面加上SPDX许可证标识符的正确示例, 因为它们应根据 `许可标识符语法`_ 指南放入源文件中。 - Exception-Text: 此标记之后的所有文本都被视为原始异常文本 文件格式示例:: SPDX-Exception-Identifier: Linux-syscall-note SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ Usage-Guidance: This exception is used together with one of the above SPDX-Licenses to mark user-space API (uapi) header files so they can be included into non GPL compliant user-space application code. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH Linux-syscall-note Exception-Text: Full exception text :: SPDX-Exception-Identifier: GCC-exception-2.0 SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html SPDX-Licenses: GPL-2.0, GPL-2.0+ Usage-Guidance: The "GCC Runtime Library exception 2.0" is used together with one of the above SPDX-Licenses for code imported from the GCC runtime library. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH GCC-exception-2.0 Exception-Text: Full exception text 所有SPDX许可证标识符和例外都必须在LICENSES子目录中具有相应的文件。这是允许 工具验证(例如checkpatch.pl)以及准备好从源读取和提取许可证所必需的, 这是 各种FOSS组织推荐的,例如 `FSFE REUSE initiative `_. _`模块许可` ----------------- 可加载内核模块还需要MODULE_LICENSE()标记。此标记既不替代正确的源代码 许可证信息(SPDX-License-Identifier),也不以任何方式表示或确定提供模块 源代码的确切许可证。 此标记的唯一目的是提供足够的信息,该模块是否是自由软件或者是内核模块加 载器和用户空间工具的专有模块。 MODULE_LICENSE()的有效许可证字符串是: ============================= ============================================= "GPL" 模块是根据GPL版本2许可的。这并不表示仅限于 GPL-2.0或GPL-2.0或更高版本之间的任何区别。 最正确许可证信息只能通过相应源文件中的许可证 信息来确定 "GPL v2" 和"GPL"相同,它的存在是因为历史原因。 "GPL and additional rights" 表示模块源在GPL v2变体和MIT许可下双重许可的 历史变体。请不要在新代码中使用。 "Dual MIT/GPL" 表达该模块在GPL v2变体或MIT许可证选择下双重 许可的正确方式。 "Dual BSD/GPL" 该模块根据GPL v2变体或BSD许可证选择进行双重 许可。 BSD许可证的确切变体只能通过相应源文件 中的许可证信息来确定。 "Dual MPL/GPL" 该模块根据GPL v2变体或Mozilla Public License (MPL)选项进行双重许可。 MPL许可证的确切变体 只能通过相应的源文件中的许可证信息来确定。 "Proprietary" 该模块属于专有许可。此字符串仅用于专有的第三 方模块,不能用于在内核树中具有源代码的模块。 以这种方式标记的模块在加载时会使用'P'标记污 染内核,并且内核模块加载器拒绝将这些模块链接 到使用EXPORT_SYMBOL_GPL()导出的符号。 ============================= ============================================= ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/translations/zh_TW/disclaimer-zh_TW.rst ======================================================================== :orphan: .. warning:: 此文件的目的是爲讓中文讀者更容易閱讀和理解,而不是作爲一個分支。因此, 如果您對此文件有任何意見或改動,請先嘗試更新原始英文文件。如果要更改或 修正某處翻譯文件,請將意見或補丁發送給維護者(聯繫方式見下)。 .. note:: 如果您發現本文檔與原始文件有任何不同或者有翻譯問題,請聯繫該文件的譯者, 或者發送電子郵件給胡皓文以獲取幫助:。 ======================================================================== * linux-5.14.0-611.24.1.el9_7/Documentation/translations/zh_TW/process/license-rules.rst ======================================================================== .. SPDX-License-Identifier: GPL-2.0 .. SPDX-License-Identifier: GPL-2.0 .. include:: ../disclaimer-zh_TW.rst :Original: :ref:`Documentation/process/license-rules.rst ` :Translator: Alex Shi Hu Haowen .. _tw_kernel_licensing: Linux內核許可規則 ================= Linux內核根據LICENSES/preferred/GPL-2.0中提供的GNU通用公共許可證版本2 (GPL-2.0)的條款提供,並在LICENSES/exceptions/Linux-syscall-note中顯式 描述了例外的系統調用,如COPYING文件中所述。 此文檔文件提供了如何對每個源文件進行注釋以使其許可證清晰明確的說明。 它不會取代內核的許可證。 內核原始碼作爲一個整體適用於COPYING文件中描述的許可證,但是單個源文件可以 具有不同的與GPL-20兼容的許可證:: GPL-1.0+ : GNU通用公共許可證v1.0或更高版本 GPL-2.0+ : GNU通用公共許可證v2.0或更高版本 LGPL-2.0 : 僅限GNU庫通用公共許可證v2 LGPL-2.0+: GNU 庫通用公共許可證v2或更高版本 LGPL-2.1 : 僅限GNU寬通用公共許可證v2.1 LGPL-2.1+: GNU寬通用公共許可證v2.1或更高版本 除此之外,個人文件可以在雙重許可下提供,例如一個兼容的GPL變體,或者BSD, MIT等許可。 用戶空間API(UAPI)頭文件描述了用戶空間程序與內核的接口,這是一種特殊情況。 根據內核COPYING文件中的注釋,syscall接口是一個明確的邊界,它不會將GPL要求 擴展到任何使用它與內核通信的軟體。由於UAPI頭文件必須包含在創建在Linux內核 上運行的可執行文件的任何源文件中,因此此例外必須記錄在特別的許可證表述中。 表達源文件許可證的常用方法是將匹配的樣板文本添加到文件的頂部注釋中。由於 格式,拼寫錯誤等,這些「樣板」很難通過那些在上下文中使用的驗證許可證合規性 的工具。 樣板文本的替代方法是在每個源文件中使用軟體包數據交換(SPDX)許可證標識符。 SPDX許可證標識符是機器可解析的,並且是用於提供文件內容的許可證的精確縮寫。 SPDX許可證標識符由Linux 基金會的SPDX 工作組管理,並得到了整個行業,工具 供應商和法律團隊的合作夥伴的一致同意。有關詳細信息,請參閱 https://spdx.org/ Linux內核需要所有源文件中的精確SPDX標識符。內核中使用的有效標識符在 `許可標識符`_ 一節中進行了解釋,並且已可以在 https://spdx.org/licenses/ 上的官方SPDX許可證列表中檢索,並附帶許可證 文本。 許可標識符語法 -------------- 1.安置:    內核文件中的SPDX許可證標識符應添加到可包含注釋的文件中的第一行。對於大多 數文件,這是第一行,除了那些在第一行中需要'#!PATH_TO_INTERPRETER'的腳本。 對於這些腳本,SPDX標識符進入第二行。 | 2. 風格: SPDX許可證標識符以注釋的形式添加。注釋樣式取決於文件類型:: C source: // SPDX-License-Identifier: C header: /* SPDX-License-Identifier: */ ASM: /* SPDX-License-Identifier: */ scripts: # SPDX-License-Identifier: .rst: .. SPDX-License-Identifier: .dts{i}: // SPDX-License-Identifier: 如果特定工具無法處理標準注釋樣式,則應使用工具接受的相應注釋機制。這是在 C 頭文件中使用「/\*\*/」樣式注釋的原因。過去在使用生成的.lds文件中觀察到 構建被破壞,其中'ld'無法解析C++注釋。現在已經解決了這個問題,但仍然有較 舊的彙編程序工具無法處理C++樣式的注釋。 | 3. 句法: 是SPDX許可證列表中的SPDX短格式許可證標識符,或者在許可 證例外適用時由「WITH」分隔的兩個SPDX短格式許可證標識符的組合。當應用多個許 可證時,表達式由分隔子表達式的關鍵字「AND」,「OR」組成,並由「(」,「)」包圍。 帶有「或更高」選項的[L]GPL等許可證的許可證標識符通過使用「+」來表示「或更高」 選項來構建。:: // SPDX-License-Identifier: GPL-2.0+ // SPDX-License-Identifier: LGPL-2.1+ 當需要修正的許可證時,應使用WITH。 例如,linux內核UAPI文件使用表達式:: // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 其它在內核中使用WITH例外的事例如下:: // SPDX-License-Identifier: GPL-2.0 WITH mif-exception // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 例外只能與特定的許可證標識符一起使用。有效的許可證標識符列在異常文本文件 的標記中。有關詳細信息,請參閱 `許可標識符`_ 一章中的 `例外`_ 。 如果文件是雙重許可且只選擇一個許可證,則應使用OR。例如,一些dtsi文件在雙 許可下可用:: // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 內核中雙許可文件中許可表達式的示例:: // SPDX-License-Identifier: GPL-2.0 OR MIT // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL 如果文件具有多個許可證,其條款全部適用於使用該文件,則應使用AND。例如, 如果代碼是從另一個項目繼承的,並且已經授予了將其放入內核的權限,但原始 許可條款需要保持有效:: // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT 另一個需要遵守兩套許可條款的例子是:: // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+ 許可標識符 ---------- 當前使用的許可證以及添加到內核的代碼許可證可以分解爲: 1. _`優先許可`: 應儘可能使用這些許可證,因爲它們已知完全兼容並廣泛使用。這些許可證在內核 目錄:: LICENSES/preferred/ 此目錄中的文件包含完整的許可證文本和 `元標記`_ 。文件名與SPDX許可證標識 符相同,後者應用於源文件中的許可證。 例如:: LICENSES/preferred/GPL-2.0 包含GPLv2許可證文本和所需的元標籤:: LICENSES/preferred/MIT 包含MIT許可證文本和所需的元標記 _`元標記`: 許可證文件中必須包含以下元標記: - Valid-License-Identifier:   一行或多行, 聲明那些許可標識符在項目內有效, 以引用此特定許可的文本。通 常這是一個有效的標識符,但是例如對於帶有'或更高'選項的許可證,兩個標識 符都有效。 - SPDX-URL: SPDX頁面的URL,其中包含與許可證相關的其他信息. - Usage-Guidance: 使用建議的自由格式文本。該文本必須包含SPDX許可證標識符的正確示例,因爲 它們應根據 `許可標識符語法`_ 指南放入源文件中。 - License-Text: 此標記之後的所有文本都被視爲原始許可文本 文件格式示例:: Valid-License-Identifier: GPL-2.0 Valid-License-Identifier: GPL-2.0+ SPDX-URL: https://spdx.org/licenses/GPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU General Public License (GPL) version 2 only' use: SPDX-License-Identifier: GPL-2.0 For 'GNU General Public License (GPL) version 2 or any later version' use: SPDX-License-Identifier: GPL-2.0+ License-Text: Full license text :: SPDX-License-Identifier: MIT SPDX-URL: https://spdx.org/licenses/MIT.html Usage-Guide: To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: MIT License-Text: Full license text | 2. 不推薦的許可證: 這些許可證只應用於現有代碼或從其他項目導入代碼。這些許可證在內核目錄:: LICENSES/other/ 此目錄中的文件包含完整的許可證文本和 `元標記`_ 。文件名與SPDX許可證標識 符相同,後者應用於源文件中的許可證。 例如:: LICENSES/other/ISC 包含國際系統聯合許可文本和所需的元標籤:: LICENSES/other/ZLib 包含ZLIB許可文本和所需的元標籤. 元標籤: 「其他」許可證的元標籤要求與 `優先許可`_ 的要求相同。 文件格式示例:: Valid-License-Identifier: ISC SPDX-URL: https://spdx.org/licenses/ISC.html Usage-Guide: Usage of this license in the kernel for new code is discouraged and it should solely be used for importing code from an already existing project. To use this license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation. SPDX-License-Identifier: ISC License-Text: Full license text | 3. _`例外`: 某些許可證可以修改,並允許原始許可證不具有的某些例外權利。這些例外在 內核目錄:: LICENSES/exceptions/ 此目錄中的文件包含完整的例外文本和所需的 `例外元標記`_ 。 例如:: LICENSES/exceptions/Linux-syscall-note 包含Linux內核的COPYING文件中記錄的Linux系統調用例外,該文件用於UAPI 頭文件。例如:: LICENSES/exceptions/GCC-exception-2.0 包含GCC'連結例外',它允許獨立於其許可證的任何二進位文件與標記有此例外的 文件的編譯版本連結。這是從GPL不兼容原始碼創建可運行的可執行文件所必需的。 _`例外元標記`: 以下元標記必須在例外文件中可用: - SPDX-Exception-Identifier:   一個可與SPDX許可證標識符一起使用的例外標識符。 - SPDX-URL: SPDX頁面的URL,其中包含與例外相關的其他信息。 - SPDX-Licenses:   以逗號分隔的例外可用的SPDX許可證標識符列表。 - Usage-Guidance: 使用建議的自由格式文本。必須在文本後面加上SPDX許可證標識符的正確示例, 因爲它們應根據 `許可標識符語法`_ 指南放入源文件中。 - Exception-Text: 此標記之後的所有文本都被視爲原始異常文本 文件格式示例:: SPDX-Exception-Identifier: Linux-syscall-note SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+ Usage-Guidance: This exception is used together with one of the above SPDX-Licenses to mark user-space API (uapi) header files so they can be included into non GPL compliant user-space application code. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH Linux-syscall-note Exception-Text: Full exception text :: SPDX-Exception-Identifier: GCC-exception-2.0 SPDX-URL: https://spdx.org/licenses/GCC-exception-2.0.html SPDX-Licenses: GPL-2.0, GPL-2.0+ Usage-Guidance: The "GCC Runtime Library exception 2.0" is used together with one of the above SPDX-Licenses for code imported from the GCC runtime library. To use this exception add it with the keyword WITH to one of the identifiers in the SPDX-Licenses tag: SPDX-License-Identifier: WITH GCC-exception-2.0 Exception-Text: Full exception text 所有SPDX許可證標識符和例外都必須在LICENSES子目錄中具有相應的文件。這是允許 工具驗證(例如checkpatch.pl)以及準備好從源讀取和提取許可證所必需的, 這是 各種FOSS組織推薦的,例如 `FSFE REUSE initiative `_. _`模塊許可` ----------------- 可加載內核模塊還需要MODULE_LICENSE()標記。此標記既不替代正確的原始碼 許可證信息(SPDX-License-Identifier),也不以任何方式表示或確定提供模塊 原始碼的確切許可證。 此標記的唯一目的是提供足夠的信息,該模塊是否是自由軟體或者是內核模塊加 載器和用戶空間工具的專有模塊。 MODULE_LICENSE()的有效許可證字符串是: ============================= ============================================= "GPL" 模塊是根據GPL版本2許可的。這並不表示僅限於 GPL-2.0或GPL-2.0或更高版本之間的任何區別。 最正確許可證信息只能通過相應源文件中的許可證 信息來確定 "GPL v2" 和"GPL"相同,它的存在是因爲歷史原因。 "GPL and additional rights" 表示模塊源在GPL v2變體和MIT許可下雙重許可的 歷史變體。請不要在新代碼中使用。 "Dual MIT/GPL" 表達該模塊在GPL v2變體或MIT許可證選擇下雙重 許可的正確方式。 "Dual BSD/GPL" 該模塊根據GPL v2變體或BSD許可證選擇進行雙重 許可。 BSD許可證的確切變體只能通過相應源文件 中的許可證信息來確定。 "Dual MPL/GPL" 該模塊根據GPL v2變體或Mozilla Public License (MPL)選項進行雙重許可。 MPL許可證的確切變體 只能通過相應的源文件中的許可證信息來確定。 "Proprietary" 該模塊屬於專有許可。此字符串僅用於專有的第三 方模塊,不能用於在內核樹中具有原始碼的模塊。 以這種方式標記的模塊在加載時會使用'P'標記汙 染內核,並且內核模塊加載器拒絕將這些模塊連結 到使用EXPORT_SYMBOL_GPL()導出的符號。 ============================= ============================================= ======================================================================== * linux-5.14.0-611.24.1.el9_7/LICENSES/deprecated/GPL-1.0 ======================================================================== Valid-License-Identifier: GPL-1.0+ SPDX-URL: https://spdx.org/licenses/GPL-1.0.html Usage-Guide: The GNU General Public License (GPL) version 1 should not be used in new code. For existing kernel code the 'or any later version' option is required to be compatible with the general license of the project: GPLv2. To use the license in source code, put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation: SPDX-License-Identifier: GPL-1.0+ License-Text: GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our 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. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, 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 a 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 tell them 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. 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 Agreement 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 work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 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 General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual 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 General Public License. d) 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. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 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 Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying 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. 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. 7. 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 the 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 the license, you may choose any version ever published by the Free Software Foundation. 8. 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 9. 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. 10. 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 Appendix: 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 humanity, 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) 19yy 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 1, 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., 675 Mass Ave, Cambridge, MA 02139, 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) 19xx 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 a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! ======================================================================== * linux-5.14.0-611.24.1.el9_7/LICENSES/dual/CC-BY-4.0 ======================================================================== Valid-License-Identifier: CC-BY-4.0 SPDX-URL: https://spdx.org/licenses/CC-BY-4.0 Usage-Guide: Do NOT use this license for code, but it's acceptable for content like artwork or documentation. When using it for the latter, it's best to use it together with a GPL2 compatible license using "OR", as CC-BY-4.0 texts processed by the kernel's build system might combine it with content taken from more restrictive licenses. To use the Creative Commons Attribution 4.0 International license put the following SPDX tag/value pair into a comment according to the placement guidelines in the licensing rules documentation: SPDX-License-Identifier: CC-BY-4.0 License-Text: Creative Commons Attribution 4.0 International ======================================================================= Creative Commons Corporation ("Creative Commons") is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an "as-is" basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. Using Creative Commons Public Licenses Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC- licensed material, or material used under an exception or limitation to copyright. More considerations for licensors: wiki.creativecommons.org/Considerations_for_licensors Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor's permission is not necessary for any reason--for example, because of any applicable exception or limitation to copyright--then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public: wiki.creativecommons.org/Considerations_for_licensees ======================================================================= Creative Commons Attribution 4.0 International Public License By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. Section 1 -- Definitions. a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. h. Licensor means the individual(s) or entity(ies) granting rights under this Public License. i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. Section 2 -- Scope. a. License grant. 1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: a. reproduce and Share the Licensed Material, in whole or in part; and b. produce, reproduce, and Share Adapted Material. 2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 3. Term. The term of this Public License is specified in Section 6(a). 4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a) (4) never produces Adapted Material. 5. Downstream recipients. a. Offer from the Licensor -- Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. b. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). b. Other rights. 1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 2. Patent and trademark rights are not licensed under this Public License. 3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. Section 3 -- License Conditions. Your exercise of the Licensed Rights is expressly made subject to the following conditions. a. Attribution. 1. If You Share the Licensed Material (including in modified form), You must: a. retain the following if it is supplied by the Licensor with the Licensed Material: i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); ii. a copyright notice; iii. a notice that refers to this Public License; iv. a notice that refers to the disclaimer of warranties; v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; b. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and c. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. 4. If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. Section 4 -- Sui Generis Database Rights. Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. Section 5 -- Disclaimer of Warranties and Limitation of Liability. a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. Section 6 -- Term and Termination. a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 2. upon express reinstatement by the Licensor. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License. Section 7 -- Other Terms and Conditions. a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. Section 8 -- Interpretation. a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. ======================================================================= Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the "Licensor." The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark "Creative Commons" or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org. ======================================================================== * linux-5.14.0-611.24.1.el9_7/LICENSES/preferred/GPL-2.0 ======================================================================== Valid-License-Identifier: GPL-2.0 Valid-License-Identifier: GPL-2.0-only Valid-License-Identifier: GPL-2.0+ Valid-License-Identifier: GPL-2.0-or-later SPDX-URL: https://spdx.org/licenses/GPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU General Public License (GPL) version 2 only' use: SPDX-License-Identifier: GPL-2.0 or SPDX-License-Identifier: GPL-2.0-only For 'GNU General Public License (GPL) version 2 or any later version' use: SPDX-License-Identifier: GPL-2.0+ or SPDX-License-Identifier: GPL-2.0-or-later License-Text: GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, 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 Library 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 St, 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 Library General Public License instead of this License. ======================================================================== * linux-5.14.0-611.24.1.el9_7/LICENSES/preferred/LGPL-2.0 ======================================================================== Valid-License-Identifier: LGPL-2.0 Valid-License-Identifier: LGPL-2.0+ SPDX-URL: https://spdx.org/licenses/LGPL-2.0.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU Library General Public License (LGPL) version 2.0 only' use: SPDX-License-Identifier: LGPL-2.0 For 'GNU Library General Public License (LGPL) version 2.0 or any later version' use: SPDX-License-Identifier: LGPL-2.0+ License-Text: GNU LIBRARY GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1991 Free Software Foundation, Inc. 51 Franklin St, 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. [This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, 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 library, or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights. Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library. Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, 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 companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license. The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such. Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better. However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library. Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, 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 library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete 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 distribute a copy of this License along with the Library. 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 Library or any portion of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, 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 Library, 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 Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you 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. If distribution of 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 satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. 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. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library 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. 9. 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 Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library 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. 11. 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 Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library 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 Library. 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. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library 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. 13. The Free Software Foundation may publish revised and/or new versions of the Library 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 Library 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 Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, 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 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. 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 LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. 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. one line to give the library's name and an idea of what it does. Copyright (C) year name of author This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. signature of Ty Coon, 1 April 1990 Ty Coon, President of Vice That's all there is to it! ======================================================================== * linux-5.14.0-611.24.1.el9_7/LICENSES/preferred/LGPL-2.1 ======================================================================== Valid-License-Identifier: LGPL-2.1 Valid-License-Identifier: LGPL-2.1+ SPDX-URL: https://spdx.org/licenses/LGPL-2.1.html Usage-Guide: To use this license in source code, put one of the following SPDX tag/value pairs into a comment according to the placement guidelines in the licensing rules documentation. For 'GNU Lesser General Public License (LGPL) version 2.1 only' use: SPDX-License-Identifier: LGPL-2.1 For 'GNU Lesser General Public License (LGPL) version 2.1 or any later version' use: SPDX-License-Identifier: LGPL-2.1+ License-Text: GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 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. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, 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 and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, 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 library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete 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 distribute a copy of this License along with the Library. 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 Library or any portion of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, 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 Library, 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 Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you 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. If distribution of 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 satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be 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. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library 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. 9. 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 Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library 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 with this License. 11. 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 Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library 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 Library. 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. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library 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. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser 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 Library 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 Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, 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 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "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 LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. 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 LIBRARY 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 LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. 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. one line to give the library's name and an idea of what it does. Copyright (C) year name of author This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; 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. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. signature of Ty Coon, 1 April 1990 Ty Coon, President of Vice That's all there is to it! ======================================================================== * linux-5.14.0-611.24.1.el9_7/drivers/atm/nicstarmac.copyright ======================================================================== /* nicstar.c v0.22 Jawaid Bazyar (bazyar@hypermall.com) * nicstar.c, M. Welsh (matt.welsh@cl.cam.ac.uk) * * Hacked October, 1997 by Jawaid Bazyar, Interlink Advertising Services Inc. * http://www.hypermall.com/ * 10/1/97 - commented out CFG_PHYIE bit - we don't care when the PHY * interrupts us (except possibly for removal/insertion of the cable?) * 10/4/97 - began heavy inline documentation of the code. Corrected typos * and spelling mistakes. * 10/5/97 - added code to handle PHY interrupts, disable PHY on * loss of link, and correctly re-enable PHY when link is * re-established. (put back CFG_PHYIE) * * Modified to work with the IDT7721 nicstar -- AAL5 (tested) only. * * R. D. Rechenmacher , Aug. 6, 1997 * * Linux driver for the IDT77201 NICStAR PCI ATM controller. * PHY component is expected to be 155 Mbps S/UNI-Lite or IDT 77155; * see init_nicstar() for PHY initialization to change this. This driver * expects the Linux ATM stack to support scatter-gather lists * (skb->atm.iovcnt != 0) for Rx skb's passed to vcc->push. * * Implementing minimal-copy of received data: * IDT always receives data into a small buffer, then large buffers * as needed. This means that data must always be copied to create * the linear buffer needed by most non-ATM protocol stacks (e.g. IP) * Fix is simple: make large buffers large enough to hold entire * SDU, and leave bytes empty at the start. Then * copy small buffer contents to head of large buffer. * Trick is to avoid fragmenting Linux, due to need for a lot of large * buffers. This is done by 2 things: * 1) skb->destructor / skb->atm.recycle_buffer * combined, allow nicstar_free_rx_skb to be called to * recycle large data buffers * 2) skb_clone of received buffers * See nicstar_free_rx_skb and linearize_buffer for implementation * details. * * * * Copyright (c) 1996 University of Cambridge Computer Laboratory * * 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., 675 Mass Ave, Cambridge, MA 02139, USA. * * M. Welsh, 6 July 1996 * * */ ======================================================================== * linux-5.14.0-611.24.1.el9_7/drivers/net/LICENSE.SRC ======================================================================== Code in this directory written at the IDA Supercomputing Research Center carries the following copyright and license. Copyright 1993 United States Government as represented by the Director, National Security Agency. This software may be used and distributed according to the terms of the GNU General Public License, incorporated herein by reference. In addition to the disclaimers in the GPL, SRC expressly disclaims any and all warranties, expressed or implied, concerning the enclosed software. This software was developed at SRC for use in internal research, and the intent in sharing this software is to promote the productive interchange of ideas throughout the research community. All software is furnished on an "as-is" basis. No further updates to this software should be expected. Although updates may occur, no commitment exists. ======================================================================== * linux-5.14.0-611.24.1.el9_7/drivers/net/wireless/marvell/libertas/LICENSE ======================================================================== Copyright (c) 2003-2006, Marvell International Ltd. All Rights Reserved This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ======================================================================== * linux-5.14.0-611.24.1.el9_7/fs/jffs2/LICENCE ======================================================================== The files in this directory and elsewhere which refer to this LICENCE file are part of JFFS2, the Journalling Flash File System v2. Copyright © 2001-2007 Red Hat, Inc. and others JFFS2 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 or (at your option) any later version. JFFS2 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 JFFS2; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. As a special exception, if other files instantiate templates or use macros or inline functions from these files, or you compile these files and link them with other works to produce a work based on these files, these files do not by themselves cause the resulting work to be covered by the GNU General Public License. However the source code for these files must still be made available in accordance with section (3) of the GNU General Public License. This exception does not invalidate any other reasons why a work based on this file might be covered by the GNU General Public License. ======================================================================== * linux-5.14.0-611.24.1.el9_7/tools/usb/usbip/COPYING ======================================================================== 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 Library 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 Library General Public License instead of this License.