Commit Graph

41 Commits

Author SHA1 Message Date
Kefu Chai
fb93d6e032 cmake: update FindPython3 module
* use the one shiped by the latest CMake (ab379e5054aa792df9572078dcf95bddd75f7661)
* use the new policy to use the new find strategy.
* accomodate the vanilla FindPython3 module to Ceph by:
  - dropping the `cmake_policy()` calls which set the policy not supported
    by 3.16.
  - `include (FindPackageHandleStandardArgs)` without specifying the
    relative path.
  - dropping the `HANDLE_VERSION_RANGE` from `FindPackageHandleStandardArgs()` call.
    this option was introduced by CMake v3.19, see
    https://cmake.org/cmake/help/latest/module/FindPackageHandleStandardArgs.html
    but Ubuntu focal comes with CMake 3.16, which is our minimal required CMake version.

the new FindPython3 module from CMake:

* enables us to find the recent Python intepreter and development files up to
  CPython 3.13.
* finds intepreter with the new `Python_FIND_STRATEGY`. the old and default
  strategy always finds the most recent version with all specified name
  and in all locations. so, if /usr/bin/python exists, it would accept, even
  if it is  a symlink to python3.9 and what we want is python3.6. while
  the new policy stops at the one which satisfies the constraints.
  simpler this way and less error prone.

Fixes: https://tracker.ceph.com/issues/62428
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
2023-08-17 10:16:45 +08:00
Nathan Cutler
10ee677e9b COPYING: add entries for backport scripts
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2021-01-14 17:42:56 +01:00
Kefu Chai
1130bf32cf COPYING: note cmake/modules/FindPython* license and copyright
these files were copied from CMake project for better python3 support

Signed-off-by: Kefu Chai <kchai@redhat.com>
2020-11-11 16:12:04 +08:00
Sage Weil
fa5d9f8846 include: ceph_stable_mod in public domain
Signed-off-by: Sage Weil <sage@newdream.net>
2020-10-06 08:30:08 -05:00
Adam C. Emerson
9bab68c0f4 common: Add bind_allocator template
Bind an allocator to a completion, analogously to
boost::async::bind_executor.

Based on bind_executor.hpp which is copyright 2003-2019
Christopher M. Kohlhoff <chris@kohlhoff.com> and under
the Boost Software License, Version 1.0

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2020-09-08 22:09:40 -04:00
Adam C. Emerson
ab729f0194 include: Add expected.hpp
Not worth making a submodule since it's a single-file include.

Originally from https://github.com/TartanLlama/expected and released
under CC0

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2020-05-15 10:55:10 -04:00
Sage Weil
2f361a6eee relicense LGPL-2.1 code as LGPL-2.1 or LGPL-3.0
The primary motivation to relicense is a desire to integrate with projects
that are licensed under the Apache License version 2.0.  Although opinions
vary, there are some who argue the the LGPL-2.1 and Apache-2.0 licenses
are not fully compatible.  We would like to avoid the ambiguity and
potential for controversy.

Projects we would like to consume that are Apache-2.0 licensed include
Seastar, OpenSSL (which is in the process of relicensing to Apache-2.0),
and Swagger (swagger.io).  Note that some of these are dynamically linked
or consumed via a high-level language and may or may not require a change
to LGPL-3.0, but providing the option for LGPL-3.0 certainly avoids any
uncertainty.

A few other source files are already incorporated into Ceph that claim an
Apache-2.0 license:

    src/common/deleter.h
    src/common/sstring.h
    src/include/cpp-btree

The Ceph developers would further like to provide a license option that is
more modern than the current LGPL-2.1.  LGPL-3.0 includes updated,
clarified language around several issues and is widely considered
more modern, superior license.

Signed-off-by: Sage Weil <sage@redhat.com>
2019-04-22 11:22:55 -05:00
Sage Weil
3f06108320 COPYING: add reference to a few Apache-2.0 licensed source files
Signed-off-by: Sage Weil <sage@redhat.com>
2019-04-22 11:22:55 -05:00
Sage Weil
c9ee32bc4e COPYING: LGPL2.1 -> LGPL-2.1
Signed-off-by: Sage Weil <sage@redhat.com>
2019-04-22 11:22:55 -05:00
Sage Weil
efc80e576e COPYING: extra bits from debian/copyright
Signed-off-by: Sage Weil <sage@redhat.com>
2019-04-22 11:22:55 -05:00
Adam C. Emerson
4771a4cb1e Add function2 header
From https://github.com/Naios/function2/

This provides unique_function, a move-only, type-erased function
wrapper.

I copied the file in rather than using a submodule because it's only
one file, and a submodule seems rather like killing a mosquito with an
anti-tank gun.

Chosen over the slightly more capable cxx_function because that
version fails its basic contract.

Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
2019-04-08 12:45:41 -04:00
hsiang41
5581577c83 Separate diskprediction local plugin from the diskprediction plugin
Separate diskprediction local plugin from the diskprediction plugin.
Devicehealth invoke device prediction function related on the global
 configuration "device_failure_prediction_mode".

Signed-off-by: Rick Chen <rick.chen@prophetstor.com>
2018-11-05 14:09:10 +08:00
Willem Jan Withagen
d37d8e2b10 ceph-volume: zfs, the inital first submit.
Does nothing other than invoce the ceph-volume-zfs modules when
called with 'ceph-volume zfs

Like:
> ceph-volume zfs list

Use ZFS as the underlying technology for OSDs

--verbose   Increase the verbosity level

['list']
-->  TypeError: main() takes exactly 2 arguments (1 given)
Exit 1

Signed-off-by: Willem Jan Withagen <wjw@digiware.nl>
2018-10-01 17:39:45 +02:00
Rick Chen
4abb79f159 mgr/diskprediction: add prototype diskprediction module
This module is written by Rick Chen <rick.chen@prophetstor.com> and
provides both a built-in local predictor and a cloud mode that queries
a cloud service (provided by ProphetStor) to predict device failures.

Signed-off-by: Rick Chen <rick.chen@prophetstor.com>
Signed-off-by: Sage Weil <sage@redhat.com>
2018-09-17 08:20:57 -05:00
Nathan Cutler
e294dd5910 legal: remove doc license ambiguity
The license applicable to the files under doc/ was originally declared (in the
top-level file COPYING) to be "Creative Commons Attribution-ShareAlike (CC
BY-SA)" by ed0653b493

This license declaration omitted a version number.

Some time later ef7418421b was merged, mentioning
CC-BY-SA-1.0 as one of the Ceph source code licenses. Although the purpose of that
commit was only to summarize the canonical license information from COPYING, it
unintentionally became the only place in the source code where the doc license
version was specified.

In March 2018, the Debian project warned that CC-BY-SA-1.0 does not meet its
criteria for inclusion in the "free" section of the Debian distribution. (For
that, at least version 3.0 must be used.)

This new commit removes the doc license ambiguity by setting it to CC-BY-SA-3.0
in all places where the license is mentioned.

The exact spelling of the license name is taken from https://spdx.org/licenses/

Fixes: http://tracker.ceph.com/issues/23336
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2018-03-13 18:59:02 +01:00
Greg Farnum
21bdb73093 Revert "SIGPIPE suppression for platforms without SO_NOSIGPIPE or MSG_NOSIGNAL"
This reverts commit 131deb3976. It added
code that shouldn't have entered the project repo.

Conflicts:
	src/msg/async/AsyncConnection.cc
	src/msg/async/AsyncConnection.h
	src/msg/simple/Pipe.cc
	src/msg/simple/Pipe.h

Signed-off-by: Greg Farnum <gfarnum@redhat.com>
2017-10-04 07:10:23 -07:00
Nathan Cutler
0f2f7d60a2 build/ops: rpm, COPYING: drop GPL 2.0 with Autoconf Exception
This license is no longer used.

Fixes: http://tracker.ceph.com/issues/20091
Signed-off-by: Nathan Cutler <ncutler@suse.com>
2017-06-14 12:15:47 +02:00
Rohan Mars
131deb3976 SIGPIPE suppression for platforms without SO_NOSIGPIPE or MSG_NOSIGNAL
Signed-off-by: Rohan Mars <code@rohanmars.com>
2015-11-13 08:18:35 -08:00
Rohan Mars
fc02a8adfb added boost timegm impl for cross platform support
Signed-off-by: Rohan Mars <code@rohanmars.com>
2015-08-25 10:01:03 -07:00
Sage Weil
7d6bef7cbe COPYING: note git-archive-all.sh license
Signed-off-by: Sage Weil <sage@redhat.com>
2015-05-31 18:25:59 -04:00
Ken Dreyer
6f31458729 Add GPLv2 text file
Most of the ceph tree is LGPLv2.1, but there are some files that are
under the full GPLv2.

Add a copy of the GNU General Public License (version 2) to the
distribution. This file was copied verbatim from
https://www.gnu.org/licenses/gpl-2.0.txt

Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
2015-02-27 10:43:26 -07:00
Loic Dachary
8363a94a60 erasure-code: HTML display of benchmark results
The ceph_erasure_code_benchmark output is converted into a JSON series
suitable to display in HTML with the http://www.flotcharts.org/
library. A self contained copy of the HTML,JS,CSS files is included for
durability and can be used from the source tree with:

    CEPH_ERASURE_CODE_BENCHMARK=src/ceph_erasure_code_benchmark  \
    PLUGIN_DIRECTORY=src/.libs \
        qa/workunits/erasure-code/bench.sh fplot jerasure |
        tee qa/workunits/erasure-code/bench.js

and display with:

    firefox qa/workunits/erasure-code/bench.html

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 11:42:05 +02:00
Loic Dachary
3cc723450a COPYING: Cloudwatt copyright is inline
Remove partial list of contributions since Cloudwatt copyright has been
placed in the copyright notices of the files where works covered by
copyright have been included.

Signed-off-by: Loic Dachary <loic@dachary.org>
2014-08-04 11:42:03 +02:00
Loic Dachary
739696ef0a Merge pull request #638 from ceph/wip-bloom
bloom filter cleanups, encodability, and unit tests
2013-10-03 12:13:41 -07:00
Sage Weil
65ae9b8aeb COPYING: fix URL
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-02 14:30:19 -07:00
Sage Weil
1a56fe9935 COPYING: add Packaging: section
Again, debian-specific, but who cares.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-02 14:16:19 -07:00
Sage Weil
e70ea84cb9 COPYING: add debian-style headers
This may not be necessary here, but it makes this identical to the
debian/copyright file, which is a win.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-02 14:15:13 -07:00
Sage Weil
fea12e21e8 COPYING: fix formatting
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-02 14:14:48 -07:00
Sage Weil
a2e175bf10 COPYING: make note of common/bloom_filer.hpp (boost) license
Signed-off-by: Sage Weil <sage@inktank.com>
2013-10-02 14:09:13 -07:00
Gregory Farnum
4930ccb8a2 Merge pull request #597 from ceph/remove-hadoop-shim
This branch built fine on the gitbuilders and the list of removed files looks good to me.

Reviewed-by: Greg Farnum <greg@inktank.com>
2013-09-16 13:57:47 -07:00
Noah Watkins
b86c068669 hadoop: remove hadoop shim
The in-tree Hadoop shim was a combination of libcephfs wrapper, and the
bits to support Hadoop. This has been replaced by src/java that
implements generic libcephfs wrappers, and externally, the hadoop shim
(see docs).

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
2013-09-13 13:39:48 -07:00
Loic Dachary
8ab29e951f ErasureCodeJerasure: import jerasure-1.2A
The files are copied verbatim from
http://web.eecs.utk.edu/~plank/plank/papers/Jerasure-1.2A.tar and a
section is added to the top level COPYING file to reflect the BSD
license.

https://github.com/dachary/ceph/tree/wip-5879 refs #5879

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-09-10 02:01:21 +02:00
Sage Weil
33783e5f4b crc32c: note intel crc code copyrights
It's a BSD 3-clause.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-21 08:31:12 -07:00
Sage Weil
2206f55761 rbd.cc: relicense as LGPL2
All past authors for rbd.cc have consented to relicensing from GPL to
LGPL2 via email:

---

Date: Sat, 27 Jul 2013 01:59:36 +0200
From: Sylvain Munaut <s.munaut@whatever-company.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I hereby consent to the relicensing of any contribution I made to the
aforementioned rbd.cc file from GPL to LGPL2.1.

(I hope that'll be impressive enough, I did my best :p)

btw, tnt@246tNt.com and s.munaut@whatever-company.com are both me.


Cheers,

    Sylvain

---

Date: Fri, 26 Jul 2013 17:00:48 -0700
From: Yehuda Sadeh <yehuda@inktank.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent.

---

Date: Fri, 26 Jul 2013 17:02:24 -0700
From: Josh Durgin <josh.durgin@inktank.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent.

---

Date: Fri, 26 Jul 2013 18:17:46 -0700
From: Stanislav Sedov <stas@freebsd.org>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent.

Thanks for taking care of it!

---

Date: Fri, 26 Jul 2013 18:24:15 -0700
From: Colin McCabe <cmccabe@alumni.cmu.edu>

I consent.

cheers,
Colin

---

Date: Sat, 27 Jul 2013 07:08:12 +0200
From: Christian Brunner <christian@brunner-muc.de>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent

Christian

---

Date: Sat, 27 Jul 2013 12:17:34 +0300
From: Stratos Psomadakis <psomas@grnet.gr>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

Hi,

I consent with the GPL -> LGL2.1 re-licensing.

Thanks
Stratos

---

Date: Sat, 27 Jul 2013 16:13:13 +0200
From: Wido den Hollander <wido@42on.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent!

You have my permission to re-license the code I wrote for rbd.cc to LGPL2.1

---

Date: Sun, 11 Aug 2013 10:40:32 +0200
From: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Subject: Re: btw

Hi Sage,

I agree to switch the license of ceph_argparse.py and rbd.cc from GPL2
to LGPL2.

Regards

Danny Al-Gaaf

---

Date: Tue, 13 Aug 2013 17:15:24 -0700
From: Dan Mick <dan.mick@inktank.com>
Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change

I consent to relicense any contributed code that I wrote under LGPL2.1 license.

---

...and I consent too.  Drop the exception from COPYING and debian/copyright
files.

Signed-off-by: Sage Weil <sage@inktank.com>
2013-08-13 17:16:08 -07:00
Sage Weil
14a3e2ddce remove unused fiemap code
Signed-off-by: Sage Weil <sage@inktank.com>
2013-07-26 16:58:14 -07:00
Loic Dachary
a62d519835 Unit tests for chain_xattr.cc
Create a new test file covering most (> 97%) of src/os/chain_xattr.{cc,h}
lines of code. The following functions are tested:

int chain_getxattr(const char *fn, const char *name, void *val, size_t size);
int chain_fgetxattr(int fd, const char *name, void *val, size_t size);
int chain_setxattr(const char *fn, const char *name, const void *val, size_t size);
int chain_fsetxattr(int fd, const char *name, const void *val, size_t size);
int chain_listxattr(const char *fn, char *names, size_t len);
int chain_flistxattr(int fd, char *names, size_t len);
int chain_removexattr(const char *fn, const char *name);
int chain_fremovexattr(int fd, const char *name);

The function translate_raw_name substitutes @@ into @. When the trailing
character is a @, it breaks. However, such an occurence cannot be created by
chain_setxattr because it always create pairs of @. Instead of silently
breaking the loop, the function should probably return on error so that the
caller can ignore it.

The function chain_fgetxattr_len may return on error if fgetxattr
returns on error. However, it is only called after another attr function
returned success and the tests cannot create the conditions under which
it would fail.

The function chain_fsetxattr may leak attributes when used to override
an existing attribute. This leak is not tested or fixed, it is just
discussed in http://marc.info/?l=ceph-devel&m=136027076615853&w=4

If the file system in which the tests are run does not support extended
attributes, the tests are not run. The detection uses the same logic as
the one implemented in FileStore::_detect_fs

The output of the tests are silenced to reduce the output when testing
assertions ( except for the dout_emergency function which cannot be
controlled).
2013-02-11 23:14:30 +01:00
Loic Dachary
64ded02c99 Relax Throttle::_reset_max conditions and associated unit tests
Removes a condition in Throttle::_reset_max by which the waiting queue is only
Signal()ed if the new maximum is lower than the current maximum.
There is no evidence of a use case where such a restriction would be
useful. In addition waking up a thread when the maximum increases
gives it a chance to immediately continue the suspended process
instead of waiting for the next put().

Create a new test file covering 100% of src/Throttle.{cc,h} lines of code.
The following methods are tested:

* Throttle::Throttle with and without a maximum
* Throttle::~Throttle when each pending Cond is deleted
* Throttle::take
* Throttle::get when updating the maximum ( lower or higher ),
  when going to sleep waiting for the count to lower under
  the maximum, when going to sleep because another thread is
  already asleep waiting
* Throttle::get_or_fail when there is no maximum,
  when requesting a count that is larger than the maximum, either
  when the current value is under the maximum or above the maximum.
* Throttle::wait when used to reset the maximum and wake up
  another thread asleep waiting

All asserts checking the arguments sanity are exercised ( negative argument
for Throttle::take etc. ).
Adds the LGPLv2+ licensing terms to COPYING along with the others.
Adds a Contributors section to the AUTHORS file.

Notes:
Testing asserts outputs verbose error messages that should be silenced
but it does not seem possible.

Signed-off-by: Loic Dachary <loic@dachary.org>
2013-02-05 20:06:04 +01:00
Sage Weil
ed0653b493 COPYING: doc/ CC BY-SA
Signed-off-by: Sage Weil <sage@newdream.net>
2012-04-11 12:35:12 -07:00
Sage Weil
2677c72fde add libjson_spirit.la
This is lightweight and relies on boost spirit, which we already use, so
there are no new dependencies.

There were some other libraries that also looked good, but they weren't
already packages for existing Debian distros like squeeze or even wheezy.

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
2012-02-24 11:24:44 -08:00
Sage Weil
71131371de COPYING: note licenses for all files, not just the default
This (mostly) copies debian/copyright for now, but there are format
restrictions for that file.  Suggestions for a cleaner way to handle this
are welcome.  In the meantime, this is better...

Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
2012-01-12 10:03:27 -08:00
Sage Weil
7469f26a33 first pass at autoconf and automake 2008-01-27 20:45:29 -08:00