Change RocksDB License
This commit is contained in:
parent
4b9e4da474
commit
834f25ed32
@ -12,8 +12,3 @@ Complete your CLA here: <https://code.facebook.com/cla>
|
|||||||
|
|
||||||
If you prefer to sign a paper copy, we can send you a PDF. Send us an
|
If you prefer to sign a paper copy, we can send you a PDF. Send us an
|
||||||
e-mail or create a new github issue to request the CLA in PDF format.
|
e-mail or create a new github issue to request the CLA in PDF format.
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
By contributing to RocksDB, you agree that your contributions will be
|
|
||||||
licensed under the [BSD License](LICENSE).
|
|
||||||
|
339
COPYING
Normal file
339
COPYING
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License.
|
202
LICENSE.Apache
Normal file
202
LICENSE.Apache
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
@ -1,10 +1,4 @@
|
|||||||
BSD License
|
This contains code that is from LevelDB, and that code is under the following license:
|
||||||
|
|
||||||
For rocksdb software
|
|
||||||
|
|
||||||
Copyright (c) 2011-present, Facebook, Inc.
|
|
||||||
All rights reserved.
|
|
||||||
---------------------------------------------------------------------
|
|
||||||
|
|
||||||
Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
|
|
33
PATENTS
33
PATENTS
@ -1,33 +0,0 @@
|
|||||||
Additional Grant of Patent Rights Version 2
|
|
||||||
|
|
||||||
"Software" means the RocksDB software distributed by Facebook, Inc.
|
|
||||||
|
|
||||||
Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software
|
|
||||||
("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable
|
|
||||||
(subject to the termination provision below) license under any Necessary
|
|
||||||
Claims, to make, have made, use, sell, offer to sell, import, and otherwise
|
|
||||||
transfer the Software. For avoidance of doubt, no license is granted under
|
|
||||||
Facebook’s rights in any patent claims that are infringed by (i) modifications
|
|
||||||
to the Software made by you or any third party or (ii) the Software in
|
|
||||||
combination with any software or other technology.
|
|
||||||
|
|
||||||
The license granted hereunder will terminate, automatically and without notice,
|
|
||||||
if you (or any of your subsidiaries, corporate affiliates or agents) initiate
|
|
||||||
directly or indirectly, or take a direct financial interest in, any Patent
|
|
||||||
Assertion: (i) against Facebook or any of its subsidiaries or corporate
|
|
||||||
affiliates, (ii) against any party if such Patent Assertion arises in whole or
|
|
||||||
in part from any software, technology, product or service of Facebook or any of
|
|
||||||
its subsidiaries or corporate affiliates, or (iii) against any party relating
|
|
||||||
to the Software. Notwithstanding the foregoing, if Facebook or any of its
|
|
||||||
subsidiaries or corporate affiliates files a lawsuit alleging patent
|
|
||||||
infringement against you in the first instance, and you respond by filing a
|
|
||||||
patent infringement counterclaim in that lawsuit against that party that is
|
|
||||||
unrelated to the Software, the license granted hereunder will not terminate
|
|
||||||
under section (i) of this paragraph due to such counterclaim.
|
|
||||||
|
|
||||||
A "Necessary Claim" is a claim of a patent owned by Facebook that is
|
|
||||||
necessarily infringed by the Software standing alone.
|
|
||||||
|
|
||||||
A "Patent Assertion" is any lawsuit or other action alleging direct, indirect,
|
|
||||||
or contributory infringement or inducement to infringe any patent, including a
|
|
||||||
cross-claim or counterclaim.
|
|
@ -1,3 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
phutil_register_library('arcanist_util', __FILE__);
|
|
@ -1,71 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This file is automatically generated. Use 'arc liberate' to rebuild it.
|
|
||||||
* @generated
|
|
||||||
* @phutil-library-version 2
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (class_exists('ArcanistWorkflow')) {
|
|
||||||
phutil_register_library_map(array(
|
|
||||||
'__library_version__' => 2,
|
|
||||||
'class' =>
|
|
||||||
array(
|
|
||||||
'ArcanistCpplintLinter' => 'cpp_linter/ArcanistCpplintLinter.php',
|
|
||||||
'BaseDirectoryScopedFormatLinter' => 'cpp_linter/BaseDirectoryScopedFormatLinter.php',
|
|
||||||
'FacebookArcanistConfiguration' => 'config/FacebookArcanistConfiguration.php',
|
|
||||||
'FacebookFbcodeLintEngine' => 'lint_engine/FacebookFbcodeLintEngine.php',
|
|
||||||
'FacebookFbcodeUnitTestEngine' => 'unit_engine/FacebookFbcodeUnitTestEngine.php',
|
|
||||||
'FacebookHowtoevenLintEngine' => 'lint_engine/FacebookHowtoevenLintEngine.php',
|
|
||||||
'FacebookHowtoevenLinter' => 'cpp_linter/FacebookHowtoevenLinter.php',
|
|
||||||
'FbcodeClangFormatLinter' => 'cpp_linter/FbcodeClangFormatLinter.php',
|
|
||||||
'FbcodeCppLinter' => 'cpp_linter/FbcodeCppLinter.php',
|
|
||||||
),
|
|
||||||
'function' =>
|
|
||||||
array(
|
|
||||||
),
|
|
||||||
'xmap' =>
|
|
||||||
array(
|
|
||||||
'ArcanistCpplintLinter' => 'ArcanistLinter',
|
|
||||||
'BaseDirectoryScopedFormatLinter' => 'ArcanistLinter',
|
|
||||||
'FacebookArcanistConfiguration' => 'ArcanistConfiguration',
|
|
||||||
'FacebookFbcodeLintEngine' => 'ArcanistLintEngine',
|
|
||||||
'FacebookFbcodeUnitTestEngine' => 'ArcanistBaseUnitTestEngine',
|
|
||||||
'FacebookHowtoevenLintEngine' => 'ArcanistLintEngine',
|
|
||||||
'FacebookHowtoevenLinter' => 'ArcanistLinter',
|
|
||||||
'FbcodeClangFormatLinter' => 'BaseDirectoryScopedFormatLinter',
|
|
||||||
'FbcodeCppLinter' => 'ArcanistLinter',
|
|
||||||
),
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
phutil_register_library_map(array(
|
|
||||||
'__library_version__' => 2,
|
|
||||||
'class' =>
|
|
||||||
array(
|
|
||||||
'ArcanistCpplintLinter' => 'cpp_linter/ArcanistCpplintLinter.php',
|
|
||||||
'BaseDirectoryScopedFormatLinter' => 'cpp_linter/BaseDirectoryScopedFormatLinter.php',
|
|
||||||
'FacebookArcanistConfiguration' => 'config/FacebookOldArcanistConfiguration.php',
|
|
||||||
'FacebookFbcodeLintEngine' => 'lint_engine/FacebookFbcodeLintEngine.php',
|
|
||||||
'FacebookFbcodeUnitTestEngine' => 'unit_engine/FacebookOldFbcodeUnitTestEngine.php',
|
|
||||||
'FacebookHowtoevenLintEngine' => 'lint_engine/FacebookHowtoevenLintEngine.php',
|
|
||||||
'FacebookHowtoevenLinter' => 'cpp_linter/FacebookHowtoevenLinter.php',
|
|
||||||
'FbcodeClangFormatLinter' => 'cpp_linter/FbcodeClangFormatLinter.php',
|
|
||||||
'FbcodeCppLinter' => 'cpp_linter/FbcodeCppLinter.php',
|
|
||||||
),
|
|
||||||
'function' =>
|
|
||||||
array(
|
|
||||||
),
|
|
||||||
'xmap' =>
|
|
||||||
array(
|
|
||||||
'ArcanistCpplintLinter' => 'ArcanistLinter',
|
|
||||||
'BaseDirectoryScopedFormatLinter' => 'ArcanistLinter',
|
|
||||||
'FacebookArcanistConfiguration' => 'ArcanistConfiguration',
|
|
||||||
'FacebookFbcodeLintEngine' => 'ArcanistLintEngine',
|
|
||||||
'FacebookFbcodeUnitTestEngine' => 'ArcanistBaseUnitTestEngine',
|
|
||||||
'FacebookHowtoevenLintEngine' => 'ArcanistLintEngine',
|
|
||||||
'FacebookHowtoevenLinter' => 'ArcanistLinter',
|
|
||||||
'FbcodeClangFormatLinter' => 'BaseDirectoryScopedFormatLinter',
|
|
||||||
'FbcodeCppLinter' => 'ArcanistLinter',
|
|
||||||
),
|
|
||||||
));
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
require('RocksDBCommonHelper.php');
|
|
||||||
|
|
||||||
define("DIFF_COMMAND", "diff");
|
|
||||||
|
|
||||||
class FacebookArcanistConfiguration extends ArcanistConfiguration {
|
|
||||||
public function getCustomArgumentsForCommand($command) {
|
|
||||||
if ($command == "land") {
|
|
||||||
return array(
|
|
||||||
'async' => array('help' => 'Just to make tools happy'));
|
|
||||||
}
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function didRunWorkflow($command,
|
|
||||||
ArcanistWorkflow $workflow,
|
|
||||||
$error_code) {
|
|
||||||
// Default options don't terminate on failure, but that's what we want. In
|
|
||||||
// the current case we use assertions intentionally as "terminate on failure
|
|
||||||
// invariants".
|
|
||||||
assert_options(ASSERT_BAIL, true);
|
|
||||||
|
|
||||||
assert($workflow);
|
|
||||||
assert(strlen($command) > 0);
|
|
||||||
|
|
||||||
if ($command == DIFF_COMMAND && !$workflow->isRawDiffSource()) {
|
|
||||||
$diffID = $workflow->getDiffId();
|
|
||||||
|
|
||||||
// When submitting a diff this code path gets executed multiple times in
|
|
||||||
// a row. We only care about the case when ID for the diff is provided
|
|
||||||
// because that's what we need to apply the diff and trigger the tests.
|
|
||||||
if (strlen($diffID) > 0) {
|
|
||||||
assert(is_numeric($diffID));
|
|
||||||
startTestsInSandcastle(true /* $applyDiff */, $workflow, $diffID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
require('RocksDBCommonHelper.php');
|
|
||||||
|
|
||||||
define("DIFF_COMMAND", "diff");
|
|
||||||
|
|
||||||
class FacebookArcanistConfiguration extends ArcanistConfiguration {
|
|
||||||
public function getCustomArgumentsForCommand($command) {
|
|
||||||
if ($command == "land") {
|
|
||||||
return array(
|
|
||||||
'async' => array('help' => 'Just to make tools happy'));
|
|
||||||
}
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function didRunWorkflow($command,
|
|
||||||
ArcanistBaseWorkflow $workflow,
|
|
||||||
$error_code) {
|
|
||||||
// Default options don't terminate on failure, but that's what we want. In
|
|
||||||
// the current case we use assertions intentionally as "terminate on failure
|
|
||||||
// invariants".
|
|
||||||
assert_options(ASSERT_BAIL, true);
|
|
||||||
|
|
||||||
assert($workflow);
|
|
||||||
assert(strlen($command) > 0);
|
|
||||||
|
|
||||||
if ($command == DIFF_COMMAND && !$workflow->isRawDiffSource()) {
|
|
||||||
$diffID = $workflow->getDiffId();
|
|
||||||
|
|
||||||
// When submitting a diff this code path gets executed multiple times in
|
|
||||||
// a row. We only care about the case when ID for the diff is provided
|
|
||||||
// because that's what we need to apply the diff and trigger the tests.
|
|
||||||
if (strlen($diffID) > 0) {
|
|
||||||
assert(is_numeric($diffID));
|
|
||||||
startTestsInSandcastle(true /* $applyDiff */, $workflow, $diffID);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,355 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
// Name of the environment variables which need to be set by the entity which
|
|
||||||
// triggers continuous runs so that code at the end of the file gets executed
|
|
||||||
// and Sandcastle run starts.
|
|
||||||
define("ENV_POST_RECEIVE_HOOK", "POST_RECEIVE_HOOK");
|
|
||||||
define("ENV_HTTPS_APP_VALUE", "HTTPS_APP_VALUE");
|
|
||||||
define("ENV_HTTPS_TOKEN_VALUE", "HTTPS_TOKEN_VALUE");
|
|
||||||
|
|
||||||
define("PRIMARY_TOKEN_FILE", '/home/krad/.sandcastle');
|
|
||||||
define("CONT_RUN_ALIAS", "leveldb");
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
/* Run tests in sandcastle */
|
|
||||||
function postURL($diffID, $url) {
|
|
||||||
assert(strlen($diffID) > 0);
|
|
||||||
assert(is_numeric($diffID));
|
|
||||||
assert(strlen($url) > 0);
|
|
||||||
|
|
||||||
$cmd = 'echo \'{"diff_id": ' . $diffID . ', '
|
|
||||||
. '"name":"click here for sandcastle tests for D' . $diffID . '", '
|
|
||||||
. '"link":"' . $url . '"}\' | '
|
|
||||||
. 'arc call-conduit '
|
|
||||||
. 'differential.updateunitresults';
|
|
||||||
shell_exec($cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
function buildUpdateTestStatusCmd($diffID, $test, $status) {
|
|
||||||
assert(strlen($diffID) > 0);
|
|
||||||
assert(is_numeric($diffID));
|
|
||||||
assert(strlen($test) > 0);
|
|
||||||
assert(strlen($status) > 0);
|
|
||||||
|
|
||||||
$cmd = 'echo \'{"diff_id": ' . $diffID . ', '
|
|
||||||
. '"name":"' . $test . '", '
|
|
||||||
. '"result":"' . $status . '"}\' | '
|
|
||||||
. 'arc call-conduit '
|
|
||||||
. 'differential.updateunitresults';
|
|
||||||
return $cmd;
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateTestStatus($diffID, $test) {
|
|
||||||
assert(strlen($diffID) > 0);
|
|
||||||
assert(is_numeric($diffID));
|
|
||||||
assert(strlen($test) > 0);
|
|
||||||
|
|
||||||
shell_exec(buildUpdateTestStatusCmd($diffID, $test, "waiting"));
|
|
||||||
}
|
|
||||||
|
|
||||||
function getSteps($applyDiff, $diffID, $username, $test) {
|
|
||||||
assert(strlen($username) > 0);
|
|
||||||
assert(strlen($test) > 0);
|
|
||||||
|
|
||||||
if ($applyDiff) {
|
|
||||||
assert(strlen($diffID) > 0);
|
|
||||||
assert(is_numeric($diffID));
|
|
||||||
|
|
||||||
$arcrc_content = (PHP_OS == "Darwin" ?
|
|
||||||
exec("cat ~/.arcrc | gzip -f | base64") :
|
|
||||||
exec("cat ~/.arcrc | gzip -f | base64 -w0"));
|
|
||||||
assert(strlen($arcrc_content) > 0);
|
|
||||||
|
|
||||||
// Sandcastle machines don't have arc setup. We copy the user certificate
|
|
||||||
// and authenticate using that in Sandcastle.
|
|
||||||
$setup = array(
|
|
||||||
"name" => "Setup arcrc",
|
|
||||||
"shell" => "echo " . $arcrc_content . " | base64 --decode"
|
|
||||||
. " | gzip -d > ~/.arcrc",
|
|
||||||
"user" => "root"
|
|
||||||
);
|
|
||||||
|
|
||||||
// arc demands certain permission on its config.
|
|
||||||
// also fix the sticky bit issue in sandcastle
|
|
||||||
$fix_permission = array(
|
|
||||||
"name" => "Fix environment",
|
|
||||||
"shell" => "chmod 600 ~/.arcrc && chmod +t /dev/shm",
|
|
||||||
"user" => "root"
|
|
||||||
);
|
|
||||||
|
|
||||||
// Construct the steps in the order of execution.
|
|
||||||
$steps[] = $setup;
|
|
||||||
$steps[] = $fix_permission;
|
|
||||||
}
|
|
||||||
|
|
||||||
// fbcode is a sub-repo. We cannot patch until we add it to ignore otherwise
|
|
||||||
// Git thinks it is an uncommited change.
|
|
||||||
$fix_git_ignore = array(
|
|
||||||
"name" => "Fix git ignore",
|
|
||||||
"shell" => "echo fbcode >> .git/info/exclude",
|
|
||||||
"user" => "root"
|
|
||||||
);
|
|
||||||
|
|
||||||
$steps[] = $fix_git_ignore;
|
|
||||||
|
|
||||||
// This will be the command used to execute particular type of tests.
|
|
||||||
$cmd = "";
|
|
||||||
|
|
||||||
if ($applyDiff) {
|
|
||||||
// Patch the code (keep your fingures crossed).
|
|
||||||
$patch = array(
|
|
||||||
"name" => "Patch " . $diffID,
|
|
||||||
"shell" => "arc --arcrc-file ~/.arcrc "
|
|
||||||
. "patch --nocommit --diff " . $diffID,
|
|
||||||
"user" => "root"
|
|
||||||
);
|
|
||||||
|
|
||||||
$steps[] = $patch;
|
|
||||||
|
|
||||||
updateTestStatus($diffID, $test);
|
|
||||||
$cmd = buildUpdateTestStatusCmd($diffID, $test, "running") . "; ";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run the actual command.
|
|
||||||
$cmd = $cmd . "J=$(nproc) ./build_tools/precommit_checker.py " . $test
|
|
||||||
. "; exit_code=$?; ";
|
|
||||||
|
|
||||||
if ($applyDiff) {
|
|
||||||
$cmd = $cmd . "([[ \$exit_code -eq 0 ]] &&"
|
|
||||||
. buildUpdateTestStatusCmd($diffID, $test, "pass") . ")"
|
|
||||||
. "||" . buildUpdateTestStatusCmd($diffID, $test, "fail")
|
|
||||||
. "; ";
|
|
||||||
}
|
|
||||||
|
|
||||||
// shell command to sort the tests based on exit code and print
|
|
||||||
// the output of the log files.
|
|
||||||
$cat_sorted_logs = "
|
|
||||||
while read code log_file;
|
|
||||||
do echo \"################ cat \$log_file [exit_code : \$code] ################\";
|
|
||||||
cat \$log_file;
|
|
||||||
done < <(tail -n +2 LOG | sort -k7,7n -k4,4gr | awk '{print \$7,\$NF}')";
|
|
||||||
|
|
||||||
// Shell command to cat all log files
|
|
||||||
$cat_all_logs = "for f in `ls t/!(run-*)`; do echo \$f;cat \$f; done";
|
|
||||||
|
|
||||||
// If LOG file exist use it to cat log files sorted by exit code, otherwise
|
|
||||||
// cat everything
|
|
||||||
$logs_cmd = "if [ -f LOG ]; then {$cat_sorted_logs}; else {$cat_all_logs}; fi";
|
|
||||||
|
|
||||||
$cmd = $cmd . " cat /tmp/precommit-check.log"
|
|
||||||
. "; shopt -s extglob; {$logs_cmd}"
|
|
||||||
. "; shopt -u extglob; [[ \$exit_code -eq 0 ]]";
|
|
||||||
assert(strlen($cmd) > 0);
|
|
||||||
|
|
||||||
$run_test = array(
|
|
||||||
"name" => "Run " . $test,
|
|
||||||
"shell" => $cmd,
|
|
||||||
"user" => "root",
|
|
||||||
"parser" => "python build_tools/error_filter.py " . $test,
|
|
||||||
);
|
|
||||||
|
|
||||||
$steps[] = $run_test;
|
|
||||||
|
|
||||||
if ($applyDiff) {
|
|
||||||
// Clean up the user arc config we are using.
|
|
||||||
$cleanup = array(
|
|
||||||
"name" => "Arc cleanup",
|
|
||||||
"shell" => "rm -f ~/.arcrc",
|
|
||||||
"user" => "root"
|
|
||||||
);
|
|
||||||
|
|
||||||
$steps[] = $cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(count($steps) > 0);
|
|
||||||
return $steps;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getSandcastleConfig() {
|
|
||||||
$sandcastle_config = array();
|
|
||||||
|
|
||||||
$cwd = getcwd();
|
|
||||||
$cwd_token_file = "{$cwd}/.sandcastle";
|
|
||||||
// This is a case when we're executed from a continuous run. Fetch the values
|
|
||||||
// from the environment.
|
|
||||||
if (getenv(ENV_POST_RECEIVE_HOOK)) {
|
|
||||||
$sandcastle_config[0] = getenv(ENV_HTTPS_APP_VALUE);
|
|
||||||
$sandcastle_config[1] = getenv(ENV_HTTPS_TOKEN_VALUE);
|
|
||||||
} else {
|
|
||||||
// This is a typical `[p]arc diff` case. Fetch the values from the specific
|
|
||||||
// configuration files.
|
|
||||||
for ($i = 0; $i < 50; $i++) {
|
|
||||||
if (file_exists(PRIMARY_TOKEN_FILE) ||
|
|
||||||
file_exists($cwd_token_file)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// If we failed to fetch the tokens, sleep for 0.2 second and try again
|
|
||||||
usleep(200000);
|
|
||||||
}
|
|
||||||
assert(file_exists(PRIMARY_TOKEN_FILE) ||
|
|
||||||
file_exists($cwd_token_file));
|
|
||||||
|
|
||||||
// Try the primary location first, followed by a secondary.
|
|
||||||
if (file_exists(PRIMARY_TOKEN_FILE)) {
|
|
||||||
$cmd = 'cat ' . PRIMARY_TOKEN_FILE;
|
|
||||||
} else {
|
|
||||||
$cmd = 'cat ' . $cwd_token_file;
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(strlen($cmd) > 0);
|
|
||||||
$sandcastle_config = explode(':', rtrim(shell_exec($cmd)));
|
|
||||||
}
|
|
||||||
|
|
||||||
// In this case be very explicit about the implications.
|
|
||||||
if (count($sandcastle_config) != 2) {
|
|
||||||
echo "Sandcastle configuration files don't contain valid information " .
|
|
||||||
"or the necessary environment variables aren't defined. Unable " .
|
|
||||||
"to validate the code changes.";
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
assert(strlen($sandcastle_config[0]) > 0);
|
|
||||||
assert(strlen($sandcastle_config[1]) > 0);
|
|
||||||
assert(count($sandcastle_config) > 0);
|
|
||||||
|
|
||||||
return $sandcastle_config;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This function can be called either from `[p]arc diff` command or during
|
|
||||||
// the Git post-receive hook.
|
|
||||||
function startTestsInSandcastle($applyDiff, $workflow, $diffID) {
|
|
||||||
// Default options don't terminate on failure, but that's what we want. In
|
|
||||||
// the current case we use assertions intentionally as "terminate on failure
|
|
||||||
// invariants".
|
|
||||||
assert_options(ASSERT_BAIL, true);
|
|
||||||
|
|
||||||
// In case of a diff we'll send notificatios to the author. Else it'll go to
|
|
||||||
// the entire team because failures indicate that build quality has regressed.
|
|
||||||
$username = $applyDiff ? exec("whoami") : CONT_RUN_ALIAS;
|
|
||||||
assert(strlen($username) > 0);
|
|
||||||
|
|
||||||
if ($applyDiff) {
|
|
||||||
assert($workflow);
|
|
||||||
assert(strlen($diffID) > 0);
|
|
||||||
assert(is_numeric($diffID));
|
|
||||||
}
|
|
||||||
|
|
||||||
// List of tests we want to run in Sandcastle.
|
|
||||||
$tests = array("unit", "unit_non_shm", "unit_481", "clang_unit", "tsan",
|
|
||||||
"asan", "lite_test", "valgrind", "release", "release_481",
|
|
||||||
"clang_release", "punit", "clang_analyze", "code_cov",
|
|
||||||
"java_build", "no_compression", "unity", "ubsan");
|
|
||||||
|
|
||||||
$send_email_template = array(
|
|
||||||
'type' => 'email',
|
|
||||||
'triggers' => array('fail'),
|
|
||||||
'emails' => array($username . '@fb.com'),
|
|
||||||
);
|
|
||||||
|
|
||||||
// Construct a job definition for each test and add it to the master plan.
|
|
||||||
foreach ($tests as $test) {
|
|
||||||
$stepName = "RocksDB diff " . $diffID . " test " . $test;
|
|
||||||
|
|
||||||
if (!$applyDiff) {
|
|
||||||
$stepName = "RocksDB continuous integration test " . $test;
|
|
||||||
}
|
|
||||||
|
|
||||||
$arg[] = array(
|
|
||||||
"name" => $stepName,
|
|
||||||
"report" => array($send_email_template),
|
|
||||||
"steps" => getSteps($applyDiff, $diffID, $username, $test)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// We cannot submit the parallel execution master plan to Sandcastle and
|
|
||||||
// need supply the job plan as a determinator. So we construct a small job
|
|
||||||
// that will spit out the master job plan which Sandcastle will parse and
|
|
||||||
// execute. Why compress the job definitions? Otherwise we run over the max
|
|
||||||
// string size.
|
|
||||||
$cmd = "echo " . base64_encode(json_encode($arg))
|
|
||||||
. (PHP_OS == "Darwin" ?
|
|
||||||
" | gzip -f | base64" :
|
|
||||||
" | gzip -f | base64 -w0");
|
|
||||||
assert(strlen($cmd) > 0);
|
|
||||||
|
|
||||||
$arg_encoded = shell_exec($cmd);
|
|
||||||
assert(strlen($arg_encoded) > 0);
|
|
||||||
|
|
||||||
$runName = "Run diff " . $diffID . "for user " . $username;
|
|
||||||
|
|
||||||
if (!$applyDiff) {
|
|
||||||
$runName = "RocksDB continuous integration build and test run";
|
|
||||||
}
|
|
||||||
|
|
||||||
$command = array(
|
|
||||||
"name" => $runName,
|
|
||||||
"steps" => array()
|
|
||||||
);
|
|
||||||
|
|
||||||
$command["steps"][] = array(
|
|
||||||
"name" => "Generate determinator",
|
|
||||||
"shell" => "echo " . $arg_encoded . " | base64 --decode | gzip -d"
|
|
||||||
. " | base64 --decode",
|
|
||||||
"determinator" => true,
|
|
||||||
"user" => "root"
|
|
||||||
);
|
|
||||||
|
|
||||||
// Submit to Sandcastle.
|
|
||||||
$url = 'https://interngraph.intern.facebook.com/sandcastle/create';
|
|
||||||
|
|
||||||
$job = array(
|
|
||||||
'command' => 'SandcastleUniversalCommand',
|
|
||||||
'args' => $command,
|
|
||||||
'capabilities' => array(
|
|
||||||
'vcs' => 'rocksdb-int-git',
|
|
||||||
'type' => 'lego',
|
|
||||||
),
|
|
||||||
'hash' => 'origin/master',
|
|
||||||
'user' => $username,
|
|
||||||
'alias' => 'rocksdb-precommit',
|
|
||||||
'tags' => array('rocksdb'),
|
|
||||||
'description' => 'Rocksdb precommit job',
|
|
||||||
);
|
|
||||||
|
|
||||||
// Fetch the configuration necessary to submit a successful HTTPS request.
|
|
||||||
$sandcastle_config = getSandcastleConfig();
|
|
||||||
|
|
||||||
$app = $sandcastle_config[0];
|
|
||||||
$token = $sandcastle_config[1];
|
|
||||||
|
|
||||||
$cmd = 'curl -s -k -F app=' . $app . ' '
|
|
||||||
. '-F token=' . $token . ' -F job=\'' . json_encode($job)
|
|
||||||
.'\' "' . $url . '"';
|
|
||||||
|
|
||||||
$output = shell_exec($cmd);
|
|
||||||
assert(strlen($output) > 0);
|
|
||||||
|
|
||||||
// Extract Sandcastle URL from the response.
|
|
||||||
preg_match('/url": "(.+)"/', $output, $sandcastle_url);
|
|
||||||
|
|
||||||
assert(count($sandcastle_url) > 0, "Unable to submit Sandcastle request.");
|
|
||||||
assert(strlen($sandcastle_url[1]) > 0, "Unable to extract Sandcastle URL.");
|
|
||||||
|
|
||||||
if ($applyDiff) {
|
|
||||||
echo "\nSandcastle URL: " . $sandcastle_url[1] . "\n";
|
|
||||||
// Ask Phabricator to display it on the diff UI.
|
|
||||||
postURL($diffID, $sandcastle_url[1]);
|
|
||||||
} else {
|
|
||||||
echo "Continuous integration started Sandcastle tests. You can look at ";
|
|
||||||
echo "the progress at:\n" . $sandcastle_url[1] . "\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Continuous run cript will set the environment variable and based on that
|
|
||||||
// we'll trigger the execution of tests in Sandcastle. In that case we don't
|
|
||||||
// need to apply any diffs and there's no associated workflow either.
|
|
||||||
if (getenv(ENV_POST_RECEIVE_HOOK)) {
|
|
||||||
startTestsInSandcastle(
|
|
||||||
false /* $applyDiff */,
|
|
||||||
NULL /* $workflow */,
|
|
||||||
NULL /* $diffID */);
|
|
||||||
}
|
|
@ -1,88 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Uses google's cpplint.py to check code. RocksDB team forked this file from
|
|
||||||
* phabricator's /src/lint/linter/ArcanistCpplintLinter.php, and customized it
|
|
||||||
* for its own use.
|
|
||||||
*
|
|
||||||
* You can get it here:
|
|
||||||
* http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py
|
|
||||||
* @group linter
|
|
||||||
*/
|
|
||||||
final class ArcanistCpplintLinter extends ArcanistLinter {
|
|
||||||
|
|
||||||
public function willLintPaths(array $paths) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLinterName() {
|
|
||||||
return 'cpplint.py';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLintPath() {
|
|
||||||
$bin = 'cpplint.py';
|
|
||||||
// Search under current dir
|
|
||||||
list($err) = exec_manual('which %s/%s', $this->linterDir(), $bin);
|
|
||||||
if (!$err) {
|
|
||||||
return $this->linterDir().'/'.$bin;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Look for globally installed cpplint.py
|
|
||||||
list($err) = exec_manual('which %s', $bin);
|
|
||||||
if ($err) {
|
|
||||||
throw new ArcanistUsageException(
|
|
||||||
"cpplint.py does not appear to be installed on this system. Install ".
|
|
||||||
"it (e.g., with 'wget \"http://google-styleguide.googlecode.com/".
|
|
||||||
"svn/trunk/cpplint/cpplint.py\"') ".
|
|
||||||
"in your .arcconfig to point to the directory where it resides. ".
|
|
||||||
"Also don't forget to chmod a+x cpplint.py!");
|
|
||||||
}
|
|
||||||
|
|
||||||
return $bin;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function lintPath($path) {
|
|
||||||
$bin = $this->getLintPath();
|
|
||||||
$path = $this->rocksdbDir().'/'.$path;
|
|
||||||
|
|
||||||
$f = new ExecFuture("%C $path", $bin);
|
|
||||||
|
|
||||||
list($err, $stdout, $stderr) = $f->resolve();
|
|
||||||
|
|
||||||
if ($err === 2) {
|
|
||||||
throw new Exception("cpplint failed to run correctly:\n".$stderr);
|
|
||||||
}
|
|
||||||
|
|
||||||
$lines = explode("\n", $stderr);
|
|
||||||
$messages = array();
|
|
||||||
foreach ($lines as $line) {
|
|
||||||
$line = trim($line);
|
|
||||||
$matches = null;
|
|
||||||
$regex = '/^[^:]+:(\d+):\s*(.*)\s*\[(.*)\] \[(\d+)\]$/';
|
|
||||||
if (!preg_match($regex, $line, $matches)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
foreach ($matches as $key => $match) {
|
|
||||||
$matches[$key] = trim($match);
|
|
||||||
}
|
|
||||||
$message = new ArcanistLintMessage();
|
|
||||||
$message->setPath($path);
|
|
||||||
$message->setLine($matches[1]);
|
|
||||||
$message->setCode($matches[3]);
|
|
||||||
$message->setName($matches[3]);
|
|
||||||
$message->setDescription($matches[2]);
|
|
||||||
$message->setSeverity(ArcanistLintSeverity::SEVERITY_WARNING);
|
|
||||||
$this->addLintMessage($message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// The path of this linter
|
|
||||||
private function linterDir() {
|
|
||||||
return dirname(__FILE__);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO(kaili) a quick and dirty way to figure out rocksdb's root dir.
|
|
||||||
private function rocksdbDir() {
|
|
||||||
return $this->linterDir()."/../..";
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,74 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
abstract class BaseDirectoryScopedFormatLinter extends ArcanistLinter {
|
|
||||||
|
|
||||||
const LINT_FORMATTING = 1;
|
|
||||||
|
|
||||||
private $changedLines = array();
|
|
||||||
private $rawLintOutput = array();
|
|
||||||
|
|
||||||
abstract protected function getPathsToLint();
|
|
||||||
|
|
||||||
protected function shouldLintPath($path) {
|
|
||||||
foreach ($this->getPathsToLint() as $p) {
|
|
||||||
// check if $path starts with $p
|
|
||||||
if (strncmp($path, $p, strlen($p)) === 0) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// API to tell this linter which lines were changed
|
|
||||||
final public function setPathChangedLines($path, $changed) {
|
|
||||||
$this->changedLines[$path] = $changed;
|
|
||||||
}
|
|
||||||
|
|
||||||
final public function willLintPaths(array $paths) {
|
|
||||||
$futures = array();
|
|
||||||
foreach ($paths as $path) {
|
|
||||||
if (!$this->shouldLintPath($path)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$changed = $this->changedLines[$path];
|
|
||||||
if (!isset($changed)) {
|
|
||||||
// do not run linter if there are no changes
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$futures[$path] = $this->getFormatFuture($path, $changed);
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (id(new FutureIterator($futures))->limit(8) as $p => $f) {
|
|
||||||
$this->rawLintOutput[$p] = $f->resolvex();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract protected function getFormatFuture($path, array $changed);
|
|
||||||
abstract protected function getLintMessage($diff);
|
|
||||||
|
|
||||||
final public function lintPath($path) {
|
|
||||||
if (!isset($this->rawLintOutput[$path])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
list($new_content) = $this->rawLintOutput[$path];
|
|
||||||
$old_content = $this->getData($path);
|
|
||||||
|
|
||||||
if ($new_content != $old_content) {
|
|
||||||
$diff = ArcanistDiffUtils::renderDifferences($old_content, $new_content);
|
|
||||||
$this->raiseLintAtOffset(
|
|
||||||
0,
|
|
||||||
self::LINT_FORMATTING,
|
|
||||||
$this->getLintMessage($diff),
|
|
||||||
$old_content,
|
|
||||||
$new_content);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,223 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2015-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
final class FacebookHowtoevenLinter extends ArcanistLinter {
|
|
||||||
|
|
||||||
const VERSION = 'fd9192f324c36d28136d14380f0b552a1385b59b';
|
|
||||||
|
|
||||||
private $parsedTargets = array();
|
|
||||||
|
|
||||||
public function getLinterName() {
|
|
||||||
return 'Howtoeven';
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getSeverity($code) {
|
|
||||||
$severities = array(
|
|
||||||
ArcanistLintSeverity::SEVERITY_DISABLED,
|
|
||||||
ArcanistLintSeverity::SEVERITY_ADVICE,
|
|
||||||
ArcanistLintSeverity::SEVERITY_WARNING,
|
|
||||||
ArcanistLintSeverity::SEVERITY_ERROR,
|
|
||||||
);
|
|
||||||
return idx($severities, $code, ArcanistLintSeverity::SEVERITY_WARNING);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function willLintPaths(array $paths) {
|
|
||||||
// Cleanup previous runs.
|
|
||||||
$this->localExecx("rm -rf _build/_lint");
|
|
||||||
|
|
||||||
// Build compilation database.
|
|
||||||
$lintable_paths = $this->getLintablePaths($paths);
|
|
||||||
$interesting_paths = $this->getInterestingPaths($lintable_paths);
|
|
||||||
|
|
||||||
if (!$lintable_paths) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Run lint.
|
|
||||||
try {
|
|
||||||
$this->localExecx(
|
|
||||||
"%C %C -p _build/dev/ %Ls",
|
|
||||||
$this->getBinaryPath(),
|
|
||||||
$this->getFilteredIssues(),
|
|
||||||
$lintable_paths);
|
|
||||||
} catch (CommandException $exception) {
|
|
||||||
PhutilConsole::getConsole()->writeErr($exception->getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load results.
|
|
||||||
$result = id(
|
|
||||||
new SQLite3(
|
|
||||||
$this->getProjectRoot().'/_build/_lint/lint.db',
|
|
||||||
SQLITE3_OPEN_READONLY))
|
|
||||||
->query("SELECT * FROM raised_issues");
|
|
||||||
|
|
||||||
while ($issue = $result->fetchArray(SQLITE3_ASSOC)) {
|
|
||||||
// Skip issues not part of the linted file.
|
|
||||||
if (in_array($issue['file'], $interesting_paths)) {
|
|
||||||
$this->addLintMessage(id(new ArcanistLintMessage())
|
|
||||||
->setPath($issue['file'])
|
|
||||||
->setLine($issue['line'])
|
|
||||||
->setChar($issue['column'])
|
|
||||||
->setCode('Howtoeven')
|
|
||||||
->setSeverity($this->getSeverity($issue['severity']))
|
|
||||||
->setName('Hte-'.$issue['name'])
|
|
||||||
->setDescription(
|
|
||||||
sprintf(
|
|
||||||
"%s\n\n%s",
|
|
||||||
($issue['message']) ? $issue['message'] : $issue['description'],
|
|
||||||
$issue['explanation']))
|
|
||||||
->setOriginalText(idx($issue, 'original', ''))
|
|
||||||
->setReplacementText(idx($issue, 'replacement', '')));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function lintPath($path) {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the paths that we know how to lint.
|
|
||||||
*
|
|
||||||
* The strategy is to first look whether there's an existing compilation
|
|
||||||
* database and use that if it's exhaustive. We generate our own only if
|
|
||||||
* necessary.
|
|
||||||
*/
|
|
||||||
private function getLintablePaths($paths) {
|
|
||||||
// Replace headers with existing sources.
|
|
||||||
for ($i = 0; $i < count($paths); $i++) {
|
|
||||||
if (preg_match("/\.h$/", $paths[$i])) {
|
|
||||||
$header = preg_replace("/\.h$/", ".cpp", $paths[$i]);
|
|
||||||
if (file_exists($header)) {
|
|
||||||
$paths[$i] = $header;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if database exists and is exhaustive.
|
|
||||||
$available_paths = $this->getAvailablePaths();
|
|
||||||
$lintable_paths = array_intersect($paths, $available_paths);
|
|
||||||
if ($paths === $lintable_paths) {
|
|
||||||
return $lintable_paths;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate our own database.
|
|
||||||
$targets = $this->getTargetsFor($paths);
|
|
||||||
if (!$targets) {
|
|
||||||
PhutilConsole::getConsole()->writeErr(
|
|
||||||
"No build targets found for %s\n",
|
|
||||||
implode(', ', $paths));
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->localExecx("./tools/build/bin/fbconfig.par -r %Ls", $targets);
|
|
||||||
$this->localExecx("./tools/build/bin/fbmake.par gen_cdb");
|
|
||||||
|
|
||||||
$available_paths = $this->getAvailablePaths();
|
|
||||||
$lintable_paths = array_intersect($paths, $available_paths);
|
|
||||||
if ($paths != $lintable_paths) {
|
|
||||||
PhutilConsole::getConsole()->writeErr(
|
|
||||||
"Can't lint %s\n",
|
|
||||||
implode(', ', array_diff($paths, $available_paths)));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return what we know how to lint.
|
|
||||||
return $lintable_paths;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the available paths in the current compilation database.
|
|
||||||
*/
|
|
||||||
private function getAvailablePaths() {
|
|
||||||
$database_path = $this->getProjectRoot()
|
|
||||||
.'/_build/dev/compile_commands.json';
|
|
||||||
if (!file_exists($database_path)) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
$entries = json_decode(file_get_contents($database_path), true);
|
|
||||||
$paths = array();
|
|
||||||
foreach ($entries as $entry) {
|
|
||||||
$paths[] = $entry['file'];
|
|
||||||
}
|
|
||||||
return $paths;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Search for the targets directories for the given files.
|
|
||||||
*/
|
|
||||||
private static function getTargetsFor($paths) {
|
|
||||||
$targets = array();
|
|
||||||
foreach ($paths as $path) {
|
|
||||||
while (($path = dirname($path)) !== '.') {
|
|
||||||
if (in_array('TARGETS', scandir($path))) {
|
|
||||||
$contents = file_get_contents($path.'/TARGETS');
|
|
||||||
if (strpos($contents, 'cpp_binary') !== false) {
|
|
||||||
$targets[] = $path;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return array_unique($targets);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The paths that we actually want to report on.
|
|
||||||
*/
|
|
||||||
private function getInterestingPaths($paths) {
|
|
||||||
$headers = array();
|
|
||||||
foreach ($paths as $path) {
|
|
||||||
$headers[] = preg_replace("/\.cpp$/", ".h", $path);
|
|
||||||
}
|
|
||||||
return array_merge($paths, $headers);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The path where the binary is located. Will return the current dewey binary
|
|
||||||
* unless the `HOWTOEVEN_BUILD` environment variable is set.
|
|
||||||
*/
|
|
||||||
private function getBinaryPath() {
|
|
||||||
$path = sprintf(
|
|
||||||
"/mnt/dewey/fbcode/.commits/%s/builds/howtoeven/client",
|
|
||||||
self::VERSION);
|
|
||||||
|
|
||||||
$build = getenv('HOWTOEVEN_BUILD');
|
|
||||||
if ($build) {
|
|
||||||
$path = sprintf(
|
|
||||||
"./_build/%s/tools/howtoeven/client",
|
|
||||||
$build);
|
|
||||||
if (!file_exists($path)) {
|
|
||||||
PhutilConsole::getConsole()->writeErr(">> %s does not exist\n", $path);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $path;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Execute the command in the root directory.
|
|
||||||
*/
|
|
||||||
private function localExecx($command /* , ... */) {
|
|
||||||
$arguments = func_get_args();
|
|
||||||
return newv('ExecFuture', $arguments)
|
|
||||||
->setCWD($this->getProjectRoot())
|
|
||||||
->resolvex();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The root of the project.
|
|
||||||
*/
|
|
||||||
private function getProjectRoot() {
|
|
||||||
return $this->getEngine()->getWorkingCopy()->getProjectRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getFilteredIssues() {
|
|
||||||
$issues = getenv('HOWTOEVEN_ISSUES');
|
|
||||||
return ($issues) ? csprintf('-issues %s', $issues) : '';
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
final class FbcodeClangFormatLinter extends BaseDirectoryScopedFormatLinter {
|
|
||||||
|
|
||||||
const LINT_FORMATTING = 1;
|
|
||||||
const CLANG_FORMAT_BINARY = '/mnt/vol/engshare/admin/scripts/clang-format';
|
|
||||||
|
|
||||||
protected function getPathsToLint() {
|
|
||||||
return array('');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLinterName() {
|
|
||||||
return 'CLANG_FORMAT';
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLintSeverityMap() {
|
|
||||||
return array(
|
|
||||||
self::LINT_FORMATTING => ArcanistLintSeverity::SEVERITY_ADVICE,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLintNameMap() {
|
|
||||||
return array(
|
|
||||||
self::LINT_FORMATTING => pht('Changes are not clang-formatted'),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getFormatFuture($path, array $changed) {
|
|
||||||
$args = "";
|
|
||||||
foreach ($changed as $key => $value) {
|
|
||||||
$args .= " --lines=$key:$key";
|
|
||||||
}
|
|
||||||
|
|
||||||
$binary = self::CLANG_FORMAT_BINARY;
|
|
||||||
if (!file_exists($binary)) {
|
|
||||||
// trust the $PATH
|
|
||||||
$binary = "clang-format";
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ExecFuture(
|
|
||||||
"%s %s $args",
|
|
||||||
$binary,
|
|
||||||
$this->getEngine()->getFilePathOnDisk($path));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getLintMessage($diff) {
|
|
||||||
$link_to_clang_format =
|
|
||||||
"[[ http://fburl.com/clang-format | clang-format ]]";
|
|
||||||
return <<<LINT_MSG
|
|
||||||
Changes in this file were not formatted using $link_to_clang_format.
|
|
||||||
Please run build_tools/format-diff.sh or `make format`
|
|
||||||
LINT_MSG;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,126 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All rights reserved.
|
|
||||||
|
|
||||||
class FbcodeCppLinter extends ArcanistLinter {
|
|
||||||
const FLINT = "/home/engshare/tools/flint";
|
|
||||||
const LINT_ERROR = 1;
|
|
||||||
const LINT_WARNING = 2;
|
|
||||||
const LINT_ADVICE = 3;
|
|
||||||
const C_FLAG = "--c_mode=true";
|
|
||||||
|
|
||||||
private $rawLintOutput = array();
|
|
||||||
|
|
||||||
public function willLintPaths(array $paths) {
|
|
||||||
if (!file_exists(self::FLINT)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$futures = array();
|
|
||||||
foreach ($paths as $p) {
|
|
||||||
$lpath = $this->getEngine()->getFilePathOnDisk($p);
|
|
||||||
$lpath_file = file($lpath);
|
|
||||||
if (preg_match('/\.(c)$/', $lpath) ||
|
|
||||||
preg_match('/-\*-.*Mode: C[; ].*-\*-/', $lpath_file[0]) ||
|
|
||||||
preg_match('/vim(:.*)*:\s*(set\s+)?filetype=c\s*:/', $lpath_file[0])
|
|
||||||
) {
|
|
||||||
$futures[$p] = new ExecFuture("%s %s %s 2>&1",
|
|
||||||
self::FLINT, self::C_FLAG,
|
|
||||||
$this->getEngine()->getFilePathOnDisk($p));
|
|
||||||
} else {
|
|
||||||
$futures[$p] = new ExecFuture("%s %s 2>&1",
|
|
||||||
self::FLINT, $this->getEngine()->getFilePathOnDisk($p));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (Futures($futures)->limit(8) as $p => $f) {
|
|
||||||
$this->rawLintOutput[$p] = $f->resolvex();
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLinterName() {
|
|
||||||
return "FBCPP";
|
|
||||||
}
|
|
||||||
|
|
||||||
public function lintPath($path) {
|
|
||||||
$this->runCppLint($path);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function runCppLint($path) {
|
|
||||||
$msgs = $this->getCppLintOutput($path);
|
|
||||||
foreach ($msgs as $m) {
|
|
||||||
$this->raiseLintAtLine($m['line'], 0, $m['severity'], $m['msg']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function adviseOnEachPattern(
|
|
||||||
$path,
|
|
||||||
$regex,
|
|
||||||
$message,
|
|
||||||
$lint_type = self::LINT_ADVICE,
|
|
||||||
$match_idx = 0) {
|
|
||||||
$file_data = $this->getData($path);
|
|
||||||
$matches = array();
|
|
||||||
if (!preg_match_all($regex, $file_data, $matches, PREG_OFFSET_CAPTURE)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($matches[$match_idx] as $match) {
|
|
||||||
list($match_str, $offset) = $match;
|
|
||||||
$this->raiseLintAtOffset($offset, $lint_type, $message, $match_str);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLintSeverityMap() {
|
|
||||||
return array(
|
|
||||||
self::LINT_WARNING => ArcanistLintSeverity::SEVERITY_WARNING,
|
|
||||||
self::LINT_ADVICE => ArcanistLintSeverity::SEVERITY_ADVICE,
|
|
||||||
self::LINT_ERROR => ArcanistLintSeverity::SEVERITY_ERROR
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getLintNameMap() {
|
|
||||||
return array(
|
|
||||||
self::LINT_ADVICE => "CppLint Advice",
|
|
||||||
self::LINT_WARNING => "CppLint Warning",
|
|
||||||
self::LINT_ERROR => "CppLint Error"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getCppLintOutput($path) {
|
|
||||||
if (!array_key_exists($path, $this->rawLintOutput)) {
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
list($output) = $this->rawLintOutput[$path];
|
|
||||||
|
|
||||||
$msgs = array();
|
|
||||||
$current = null;
|
|
||||||
$matches = array();
|
|
||||||
foreach (explode("\n", $output) as $line) {
|
|
||||||
if (preg_match('/.*?:(\d+):(.*)/', $line, $matches)) {
|
|
||||||
if ($current) {
|
|
||||||
$msgs[] = $current;
|
|
||||||
}
|
|
||||||
$line = $matches[1];
|
|
||||||
$text = $matches[2];
|
|
||||||
if (preg_match('/.*Warning.*/', $text)) {
|
|
||||||
$sev = self::LINT_WARNING;
|
|
||||||
} else if (preg_match('/.*Advice.*/', $text)) {
|
|
||||||
$sev = self::LINT_ADVICE;
|
|
||||||
} else {
|
|
||||||
$sev = self::LINT_ERROR;
|
|
||||||
}
|
|
||||||
$current = array('line' => $line,
|
|
||||||
'msg' => $text,
|
|
||||||
'severity' => $sev);
|
|
||||||
} else if ($current) {
|
|
||||||
$current['msg'] .= ' ' . $line;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($current) {
|
|
||||||
$msgs[] = $current;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $msgs;
|
|
||||||
}
|
|
||||||
}
|
|
4767
arcanist_util/cpp_linter/cpplint.py
vendored
4767
arcanist_util/cpp_linter/cpplint.py
vendored
File diff suppressed because it is too large
Load Diff
@ -1,138 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All rights reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
class FacebookFbcodeLintEngine extends ArcanistLintEngine {
|
|
||||||
|
|
||||||
public function buildLinters() {
|
|
||||||
$linters = array();
|
|
||||||
$paths = $this->getPaths();
|
|
||||||
|
|
||||||
// Remove all deleted files, which are not checked by the
|
|
||||||
// following linters.
|
|
||||||
foreach ($paths as $key => $path) {
|
|
||||||
if (!Filesystem::pathExists($this->getFilePathOnDisk($path))) {
|
|
||||||
unset($paths[$key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$generated_linter = new ArcanistGeneratedLinter();
|
|
||||||
$linters[] = $generated_linter;
|
|
||||||
|
|
||||||
$nolint_linter = new ArcanistNoLintLinter();
|
|
||||||
$linters[] = $nolint_linter;
|
|
||||||
|
|
||||||
$text_linter = new ArcanistTextLinter();
|
|
||||||
$text_linter->setCustomSeverityMap(array(
|
|
||||||
ArcanistTextLinter::LINT_LINE_WRAP
|
|
||||||
=> ArcanistLintSeverity::SEVERITY_ADVICE,
|
|
||||||
));
|
|
||||||
$linters[] = $text_linter;
|
|
||||||
|
|
||||||
$java_text_linter = new ArcanistTextLinter();
|
|
||||||
$java_text_linter->setMaxLineLength(100);
|
|
||||||
$java_text_linter->setCustomSeverityMap(array(
|
|
||||||
ArcanistTextLinter::LINT_LINE_WRAP
|
|
||||||
=> ArcanistLintSeverity::SEVERITY_ADVICE,
|
|
||||||
));
|
|
||||||
$linters[] = $java_text_linter;
|
|
||||||
|
|
||||||
$python_linter = new ArcanistPEP8Linter();
|
|
||||||
$linters[] = $python_linter;
|
|
||||||
|
|
||||||
$cpp_linters = array();
|
|
||||||
$cpp_linters[] = $linters[] = new ArcanistCpplintLinter();
|
|
||||||
$cpp_linters[] = $linters[] = new FbcodeCppLinter();
|
|
||||||
|
|
||||||
$clang_format_linter = new FbcodeClangFormatLinter();
|
|
||||||
$linters[] = $clang_format_linter;
|
|
||||||
|
|
||||||
$spelling_linter = new ArcanistSpellingLinter();
|
|
||||||
$linters[] = $spelling_linter;
|
|
||||||
|
|
||||||
foreach ($paths as $path) {
|
|
||||||
$is_text = false;
|
|
||||||
|
|
||||||
$text_extensions = (
|
|
||||||
'/\.('.
|
|
||||||
'cpp|cxx|c|cc|h|hpp|hxx|tcc|'.
|
|
||||||
'py|rb|hs|pl|pm|tw|'.
|
|
||||||
'php|phpt|css|js|'.
|
|
||||||
'java|'.
|
|
||||||
'thrift|'.
|
|
||||||
'lua|'.
|
|
||||||
'siv|'.
|
|
||||||
'txt'.
|
|
||||||
')$/'
|
|
||||||
);
|
|
||||||
if (preg_match($text_extensions, $path)) {
|
|
||||||
$is_text = true;
|
|
||||||
}
|
|
||||||
if ($is_text) {
|
|
||||||
$nolint_linter->addPath($path);
|
|
||||||
|
|
||||||
$generated_linter->addPath($path);
|
|
||||||
$generated_linter->addData($path, $this->loadData($path));
|
|
||||||
|
|
||||||
if (preg_match('/\.java$/', $path)) {
|
|
||||||
$java_text_linter->addPath($path);
|
|
||||||
$java_text_linter->addData($path, $this->loadData($path));
|
|
||||||
} else {
|
|
||||||
$text_linter->addPath($path);
|
|
||||||
$text_linter->addData($path, $this->loadData($path));
|
|
||||||
}
|
|
||||||
|
|
||||||
$spelling_linter->addPath($path);
|
|
||||||
$spelling_linter->addData($path, $this->loadData($path));
|
|
||||||
}
|
|
||||||
if (preg_match('/\.(cpp|c|cc|cxx|h|hh|hpp|hxx|tcc)$/', $path)
|
|
||||||
&& !preg_match('/third-party/', $path)) {
|
|
||||||
foreach ($cpp_linters as &$linter) {
|
|
||||||
$linter->addPath($path);
|
|
||||||
$linter->addData($path, $this->loadData($path));
|
|
||||||
}
|
|
||||||
|
|
||||||
$clang_format_linter->addPath($path);
|
|
||||||
$clang_format_linter->addData($path, $this->loadData($path));
|
|
||||||
$clang_format_linter->setPathChangedLines(
|
|
||||||
$path, $this->getPathChangedLines($path));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Match *.py and contbuild config files
|
|
||||||
if (preg_match('/(\.(py|tw|smcprops)|^contbuild\/configs\/[^\/]*)$/',
|
|
||||||
$path)) {
|
|
||||||
$space_count = 4;
|
|
||||||
$real_path = $this->getFilePathOnDisk($path);
|
|
||||||
$dir = dirname($real_path);
|
|
||||||
do {
|
|
||||||
if (file_exists($dir.'/.python2space')) {
|
|
||||||
$space_count = 2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$dir = dirname($dir);
|
|
||||||
} while ($dir != '/' && $dir != '.');
|
|
||||||
|
|
||||||
$cur_path_linter = $python_linter;
|
|
||||||
$cur_path_linter->addPath($path);
|
|
||||||
$cur_path_linter->addData($path, $this->loadData($path));
|
|
||||||
|
|
||||||
if (preg_match('/\.tw$/', $path)) {
|
|
||||||
$cur_path_linter->setCustomSeverityMap(array(
|
|
||||||
'E251' => ArcanistLintSeverity::SEVERITY_DISABLED,
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$name_linter = new ArcanistFilenameLinter();
|
|
||||||
$linters[] = $name_linter;
|
|
||||||
foreach ($paths as $path) {
|
|
||||||
$name_linter->addPath($path);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $linters;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2015-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
final class FacebookHowtoevenLintEngine extends ArcanistLintEngine {
|
|
||||||
|
|
||||||
public function buildLinters() {
|
|
||||||
$paths = array();
|
|
||||||
|
|
||||||
foreach ($this->getPaths() as $path) {
|
|
||||||
// Don't try to lint deleted files or changed directories.
|
|
||||||
if (!Filesystem::pathExists($path) || is_dir($path)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (preg_match('/\.(cpp|c|cc|cxx|h|hh|hpp|hxx|tcc)$/', $path)) {
|
|
||||||
$paths[] = $path;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$howtoeven = new FacebookHowtoevenLinter();
|
|
||||||
$howtoeven->setPaths($paths);
|
|
||||||
return array($howtoeven);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
class FacebookFbcodeUnitTestEngine extends ArcanistUnitTestEngine {
|
|
||||||
|
|
||||||
public function run() {
|
|
||||||
// For a call to `arc call-conduit differential.updateunitresults` to
|
|
||||||
// succeed we need at least one entry here.
|
|
||||||
$result = new ArcanistUnitTestResult();
|
|
||||||
$result->setName("dummy_placeholder_entry");
|
|
||||||
$result->setResult(ArcanistUnitTestResult::RESULT_PASS);
|
|
||||||
return array($result);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
<?php
|
|
||||||
// Copyright 2004-present Facebook. All Rights Reserved.
|
|
||||||
// This source code is licensed under the BSD-style license found in the
|
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
class FacebookFbcodeUnitTestEngine extends ArcanistBaseUnitTestEngine {
|
|
||||||
|
|
||||||
public function run() {
|
|
||||||
// For a call to `arc call-conduit differential.updateunitresults` to
|
|
||||||
// succeed we need at least one entry here.
|
|
||||||
$result = new ArcanistUnitTestResult();
|
|
||||||
$result->setName("dummy_placeholder_entry");
|
|
||||||
$result->setResult(ArcanistUnitTestResult::RESULT_PASS);
|
|
||||||
return array($result);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,7 @@
|
|||||||
# Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
|
# Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
# This source code is licensed under the BSD-style license found in the
|
# This source code is licensed under both the GPLv2 (found in the
|
||||||
# LICENSE file in the root directory of this source tree. An additional grant
|
# COPYING file in the root directory) and Apache 2.0 License
|
||||||
# of patent rights can be found in the PATENTS file in the same directory.
|
# (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
'''Filter for error messages in test output:
|
'''Filter for error messages in test output:
|
||||||
- Receives merged stdout/stderr from test on stdin
|
- Receives merged stdout/stderr from test on stdin
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
||||||
# This source code is licensed under the BSD-style license found in the
|
|
||||||
# LICENSE file in the root directory of this source tree. An additional grant
|
|
||||||
# of patent rights can be found in the PATENTS file in the same directory.
|
|
||||||
|
|
||||||
set -e
|
|
||||||
if [ -z "$GIT" ]
|
|
||||||
then
|
|
||||||
GIT="git"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Print out the colored progress info so that it can be brainlessly
|
|
||||||
# distinguished by users.
|
|
||||||
function title() {
|
|
||||||
echo -e "\033[1;32m$*\033[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
usage="Create new RocksDB version and prepare it for the release process\n"
|
|
||||||
usage+="USAGE: ./make_new_version.sh <version>"
|
|
||||||
|
|
||||||
# -- Pre-check
|
|
||||||
if [[ $# < 1 ]]; then
|
|
||||||
echo -e $usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
ROCKSDB_VERSION=$1
|
|
||||||
|
|
||||||
GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
|
|
||||||
echo $GIT_BRANCH
|
|
||||||
|
|
||||||
if [ $GIT_BRANCH != "master" ]; then
|
|
||||||
echo "Error: Current branch is '$GIT_BRANCH', Please switch to master branch."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
title "Adding new tag for this release ..."
|
|
||||||
BRANCH="$ROCKSDB_VERSION.fb"
|
|
||||||
$GIT checkout -b $BRANCH
|
|
||||||
|
|
||||||
# Setting up the proxy for remote repo access
|
|
||||||
title "Pushing new branch to remote repo ..."
|
|
||||||
git push origin --set-upstream $BRANCH
|
|
||||||
|
|
||||||
title "Branch $BRANCH is pushed to github;"
|
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
#include "db/auto_roll_logger.h"
|
#include "db/auto_roll_logger.h"
|
||||||
#include "util/mutexlock.h"
|
#include "util/mutexlock.h"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Logger implementation that can be shared by all environments
|
// Logger implementation that can be shared by all environments
|
||||||
// where enough posix functionality is available.
|
// where enough posix functionality is available.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||||
|
6
db/c.cc
6
db/c.cc
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// the LICENSE file in the root directory of this source tree. An
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// additional grant of patent rights can be found in the PATENTS file
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
// in the same directory.
|
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
#include "db/compacted_db_impl.h"
|
#include "db/compacted_db_impl.h"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include "db/compaction_iterator.h"
|
#include "db/compaction_iterator.h"
|
||||||
#include "table/internal_iterator.h"
|
#include "table/internal_iterator.h"
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include "db/compaction_iterator.h"
|
#include "db/compaction_iterator.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include "db/compaction.h"
|
#include "db/compaction.h"
|
||||||
#include "db/compaction_picker.h"
|
#include "db/compaction_picker.h"
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2012 Facebook.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2012 Facebook.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file.
|
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
|
|
||||||
#include "db/db_impl_readonly.h"
|
#include "db/db_impl_readonly.h"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#ifndef __STDC_FORMAT_MACROS
|
#ifndef __STDC_FORMAT_MACROS
|
||||||
#define __STDC_FORMAT_MACROS
|
#define __STDC_FORMAT_MACROS
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include "db/db_test_util.h"
|
#include "db/db_test_util.h"
|
||||||
#include "port/stack_trace.h"
|
#include "port/stack_trace.h"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include "db/event_helpers.h"
|
#include "db/event_helpers.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include "rocksdb/experimental.h"
|
#include "rocksdb/experimental.h"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
#ifndef ROCKSDB_LITE
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||||
// This source code is licensed under the BSD-style license found in the
|
// This source code is licensed under both the GPLv2 (found in the
|
||||||
// LICENSE file in the root directory of this source tree. An additional grant
|
// COPYING file in the root directory) and Apache 2.0 License
|
||||||
// of patent rights can be found in the PATENTS file in the same directory.
|
// (found in the LICENSE.Apache file in the root directory).
|
||||||
//
|
//
|
||||||
// Copyright 2014 The LevelDB Authors. All rights reserved.
|
// Copyright 2014 The LevelDB Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user