diff --git a/.ceph-common.metadata b/.ceph-common.metadata new file mode 100644 index 0000000..17a70e1 --- /dev/null +++ b/.ceph-common.metadata @@ -0,0 +1 @@ +3a36569eabea17f780ffc4ecc2222e6431130673 SOURCES/ceph-10.2.5.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..acfc2aa --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/ceph-10.2.5.tar.gz diff --git a/SOURCES/0001-Makefile-Fix-dencoder-build.patch b/SOURCES/0001-Makefile-Fix-dencoder-build.patch new file mode 100644 index 0000000..b46516b --- /dev/null +++ b/SOURCES/0001-Makefile-Fix-dencoder-build.patch @@ -0,0 +1,70 @@ +From 2009a966d779240bc62f0877201aabd0cd59ac6f Mon Sep 17 00:00:00 2001 +From: Boris Ranto +Date: Tue, 21 Feb 2017 13:49:01 +0100 +Subject: [PATCH] Makefile: Fix dencoder build + +Signed-off-by: Boris Ranto +--- + src/rgw/Makefile.am | 26 ++++---------------------- + 1 file changed, 4 insertions(+), 22 deletions(-) + +diff --git a/src/rgw/Makefile.am b/src/rgw/Makefile.am +index b083dd1..a94e4e2 100644 +--- a/src/rgw/Makefile.am ++++ b/src/rgw/Makefile.am +@@ -1,25 +1,5 @@ + if ENABLE_CLIENT +- +-# inject rgw stuff in the decoder testcase +-DENCODER_SOURCES += \ +- rgw/rgw_dencoder.cc \ +- rgw/rgw_acl.cc \ +- rgw/rgw_basic_types.cc \ +- rgw/rgw_common.cc \ +- rgw/rgw_env.cc \ +- rgw/rgw_json_enc.cc \ +- rgw/rgw_keystone.cc +- +-DENCODER_DEPS += -lcurl -lexpat \ +- libcls_version_client.la \ +- libcls_log_client.la \ +- libcls_refcount_client.la \ +- libcls_user_client.la \ +- libcls_timeindex_client.la \ +- libcls_statelog_client.la +- + if WITH_RADOS +-if WITH_RADOSGW + + librgw_la_SOURCES = \ + rgw/rgw_acl.cc \ +@@ -122,8 +102,9 @@ librgw_la_LIBADD = $(LIBRGW_DEPS) \ + + librgw_la_LDFLAGS = ${AM_LDFLAGS} -version-info 2:0:0 + +-lib_LTLIBRARIES += librgw.la ++noinst_LTLIBRARIES += librgw.la + ++if WITH_RADOSGW + CIVETWEB_INCLUDE = --include $(srcdir)/civetweb/include/civetweb_conf.h + + libcivetweb_la_SOURCES = \ +@@ -176,6 +157,8 @@ ceph_rgw_jsonparser_SOURCES = \ + ceph_rgw_jsonparser_LDADD = $(LIBRGW) $(LIBRGW_DEPS) $(CEPH_GLOBAL) + bin_DEBUGPROGRAMS += ceph_rgw_jsonparser + ++endif # WITH_RADOSGW ++ + noinst_HEADERS += \ + rgw/rgw_acl.h \ + rgw/rgw_acl_s3.h \ +@@ -262,6 +245,5 @@ noinst_HEADERS += \ + civetweb/include/civetweb_conf.h \ + civetweb/src/md5.h + +-endif # WITH_RADOSGW + endif # WITH_RADOS + endif # ENABLE_CLIENT +-- +2.9.3 + diff --git a/SOURCES/0002-Add-fake-fcgiapp.h-for-rgw.patch b/SOURCES/0002-Add-fake-fcgiapp.h-for-rgw.patch new file mode 100644 index 0000000..a5d6d0d --- /dev/null +++ b/SOURCES/0002-Add-fake-fcgiapp.h-for-rgw.patch @@ -0,0 +1,657 @@ +From c0ea79151d25c2e2e486cbc86cbdf9f375c13e34 Mon Sep 17 00:00:00 2001 +From: Boris Ranto +Date: Tue, 21 Feb 2017 13:46:59 +0100 +Subject: [PATCH] Add fake fcgiapp.h for rgw + +- do not link against fcgi + +Signed-off-by: Boris Ranto +--- + src/rgw/Makefile.am | 1 - + src/rgw/fcgiapp.h | 622 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 622 insertions(+), 1 deletion(-) + create mode 100644 src/rgw/fcgiapp.h + +diff --git a/src/rgw/Makefile.am b/src/rgw/Makefile.am +index a94e4e2..d4c5ad8 100644 +--- a/src/rgw/Makefile.am ++++ b/src/rgw/Makefile.am +@@ -93,7 +93,6 @@ LIBRGW_DEPS += \ + -lcurl \ + -lexpat \ + -lm \ +- -lfcgi \ + -ldl + + librgw_la_LIBADD = $(LIBRGW_DEPS) \ +diff --git a/src/rgw/fcgiapp.h b/src/rgw/fcgiapp.h +new file mode 100644 +index 0000000..41852f9 +--- /dev/null ++++ b/src/rgw/fcgiapp.h +@@ -0,0 +1,622 @@ ++/* ++ * fcgiapp.h -- ++ * ++ * Definitions for FastCGI application server programs ++ * ++ * ++ * Copyright (c) 1996 Open Market, Inc. ++ * ++ * See the file "LICENSE.TERMS" for information on usage and redistribution ++ * of this file, and for a DISCLAIMER OF ALL WARRANTIES. ++ * ++ * $Id: fcgiapp.h,v 1.12 2001/11/21 21:10:11 robs Exp $ ++ */ ++ ++#ifndef _FCGIAPP_H ++#define _FCGIAPP_H ++ ++/* Hack to see if we are building TCL - TCL needs varargs not stdarg */ ++#ifndef TCL_LIBRARY ++#include ++#else ++#include ++#endif ++ ++#ifndef DLLAPI ++#ifdef _WIN32 ++#define DLLAPI __declspec(dllimport) ++#else ++#define DLLAPI ++#endif ++#endif ++ ++#if defined (c_plusplus) || defined (__cplusplus) ++extern "C" { ++#endif ++ ++/* ++ * Error codes. Assigned to avoid conflict with EOF and errno(2). ++ */ ++#define FCGX_UNSUPPORTED_VERSION -2 ++#define FCGX_PROTOCOL_ERROR -3 ++#define FCGX_PARAMS_ERROR -4 ++#define FCGX_CALL_SEQ_ERROR -5 ++ ++/* ++ * This structure defines the state of a FastCGI stream. ++ * Streams are modeled after the FILE type defined in stdio.h. ++ * (We wouldn't need our own if platform vendors provided a ++ * standard way to subclass theirs.) ++ * The state of a stream is private and should only be accessed ++ * by the procedures defined below. ++ */ ++typedef struct FCGX_Stream { ++ unsigned char *rdNext; /* reader: first valid byte ++ * writer: equals stop */ ++ unsigned char *wrNext; /* writer: first free byte ++ * reader: equals stop */ ++ unsigned char *stop; /* reader: last valid byte + 1 ++ * writer: last free byte + 1 */ ++ unsigned char *stopUnget; /* reader: first byte of current buffer ++ * fragment, for ungetc ++ * writer: undefined */ ++ int isReader; ++ int isClosed; ++ int wasFCloseCalled; ++ int FCGI_errno; /* error status */ ++ void (*fillBuffProc) (struct FCGX_Stream *stream); ++ void (*emptyBuffProc) (struct FCGX_Stream *stream, int doClose); ++ void *data; ++} FCGX_Stream; ++ ++/* ++ * An environment (as defined by environ(7)): A NULL-terminated array ++ * of strings, each string having the form name=value. ++ */ ++typedef char **FCGX_ParamArray; ++ ++/* ++ * FCGX_Request Flags ++ * ++ * Setting FCGI_FAIL_ACCEPT_ON_INTR prevents FCGX_Accept() from ++ * restarting upon being interrupted. ++ */ ++#define FCGI_FAIL_ACCEPT_ON_INTR 1 ++ ++/* ++ * FCGX_Request -- State associated with a request. ++ * ++ * Its exposed for API simplicity, I expect parts of it to change! ++ */ ++typedef struct FCGX_Request { ++ int requestId; /* valid if isBeginProcessed */ ++ int role; ++ FCGX_Stream *in; ++ FCGX_Stream *out; ++ FCGX_Stream *err; ++ char **envp; ++ ++ /* Don't use anything below here */ ++ ++ struct Params *paramsPtr; ++ int ipcFd; /* < 0 means no connection */ ++ int isBeginProcessed; /* FCGI_BEGIN_REQUEST seen */ ++ int keepConnection; /* don't close ipcFd at end of request */ ++ int appStatus; ++ int nWriters; /* number of open writers (0..2) */ ++ int flags; ++ int listen_sock; ++} FCGX_Request; ++ ++ ++/* ++ *====================================================================== ++ * Control ++ *====================================================================== ++ */ ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_IsCGI -- ++ * ++ * Returns TRUE iff this process appears to be a CGI process ++ * rather than a FastCGI process. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_IsCGI(void) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_Init -- ++ * ++ * Initialize the FCGX library. Call in multi-threaded apps ++ * before calling FCGX_Accept_r(). ++ * ++ * Returns 0 upon success. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_Init(void) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_OpenSocket -- ++ * ++ * Create a FastCGI listen socket. ++ * ++ * path is the Unix domain socket (named pipe for WinNT), or a colon ++ * followed by a port number. e.g. "/tmp/fastcgi/mysocket", ":5000" ++ * ++ * backlog is the listen queue depth used in the listen() call. ++ * ++ * Returns the socket's file descriptor or -1 on error. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_OpenSocket(const char *path, int backlog) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_InitRequest -- ++ * ++ * Initialize a FCGX_Request for use with FCGX_Accept_r(). ++ * ++ * sock is a file descriptor returned by FCGX_OpenSocket() or 0 (default). ++ * The only supported flag at this time is FCGI_FAIL_ON_INTR. ++ * ++ * Returns 0 upon success. ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_InitRequest(FCGX_Request *request, int sock, int flags) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_Accept_r -- ++ * ++ * Accept a new request (multi-thread safe). Be sure to call ++ * FCGX_Init() first. ++ * ++ * Results: ++ * 0 for successful call, -1 for error. ++ * ++ * Side effects: ++ * ++ * Finishes the request accepted by (and frees any ++ * storage allocated by) the previous call to FCGX_Accept. ++ * Creates input, output, and error streams and ++ * assigns them to *in, *out, and *err respectively. ++ * Creates a parameters data structure to be accessed ++ * via getenv(3) (if assigned to environ) or by FCGX_GetParam ++ * and assigns it to *envp. ++ * ++ * DO NOT retain pointers to the envp array or any strings ++ * contained in it (e.g. to the result of calling FCGX_GetParam), ++ * since these will be freed by the next call to FCGX_Finish ++ * or FCGX_Accept. ++ * ++ * DON'T use the FCGX_Request, its structure WILL change. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_Accept_r(FCGX_Request *request) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_Finish_r -- ++ * ++ * Finish the request (multi-thread safe). ++ * ++ * Side effects: ++ * ++ * Finishes the request accepted by (and frees any ++ * storage allocated by) the previous call to FCGX_Accept. ++ * ++ * DO NOT retain pointers to the envp array or any strings ++ * contained in it (e.g. to the result of calling FCGX_GetParam), ++ * since these will be freed by the next call to FCGX_Finish ++ * or FCGX_Accept. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI void FCGX_Finish_r(FCGX_Request *request) {}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_Free -- ++ * ++ * Free the memory and, if close is true, ++ * IPC FD associated with the request (multi-thread safe). ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI void FCGX_Free(FCGX_Request * request, int close) {}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_Accept -- ++ * ++ * Accept a new request (NOT multi-thread safe). ++ * ++ * Results: ++ * 0 for successful call, -1 for error. ++ * ++ * Side effects: ++ * ++ * Finishes the request accepted by (and frees any ++ * storage allocated by) the previous call to FCGX_Accept. ++ * Creates input, output, and error streams and ++ * assigns them to *in, *out, and *err respectively. ++ * Creates a parameters data structure to be accessed ++ * via getenv(3) (if assigned to environ) or by FCGX_GetParam ++ * and assigns it to *envp. ++ * ++ * DO NOT retain pointers to the envp array or any strings ++ * contained in it (e.g. to the result of calling FCGX_GetParam), ++ * since these will be freed by the next call to FCGX_Finish ++ * or FCGX_Accept. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_Accept( ++ FCGX_Stream **in, ++ FCGX_Stream **out, ++ FCGX_Stream **err, ++ FCGX_ParamArray *envp) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_Finish -- ++ * ++ * Finish the current request (NOT multi-thread safe). ++ * ++ * Side effects: ++ * ++ * Finishes the request accepted by (and frees any ++ * storage allocated by) the previous call to FCGX_Accept. ++ * ++ * DO NOT retain pointers to the envp array or any strings ++ * contained in it (e.g. to the result of calling FCGX_GetParam), ++ * since these will be freed by the next call to FCGX_Finish ++ * or FCGX_Accept. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI void FCGX_Finish(void) {}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_StartFilterData -- ++ * ++ * stream is an input stream for a FCGI_FILTER request. ++ * stream is positioned at EOF on FCGI_STDIN. ++ * Repositions stream to the start of FCGI_DATA. ++ * If the preconditions are not met (e.g. FCGI_STDIN has not ++ * been read to EOF) sets the stream error code to ++ * FCGX_CALL_SEQ_ERROR. ++ * ++ * Results: ++ * 0 for a normal return, < 0 for error ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_StartFilterData(FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_SetExitStatus -- ++ * ++ * Sets the exit status for stream's request. The exit status ++ * is the status code the request would have exited with, had ++ * the request been run as a CGI program. You can call ++ * SetExitStatus several times during a request; the last call ++ * before the request ends determines the value. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI void FCGX_SetExitStatus(int status, FCGX_Stream *stream) {}; ++ ++/* ++ *====================================================================== ++ * Parameters ++ *====================================================================== ++ */ ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_GetParam -- obtain value of FCGI parameter in environment ++ * ++ * ++ * Results: ++ * Value bound to name, NULL if name not present in the ++ * environment envp. Caller must not mutate the result ++ * or retain it past the end of this request. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI char *FCGX_GetParam(const char *name, FCGX_ParamArray envp) {return 0;}; ++ ++/* ++ *====================================================================== ++ * Readers ++ *====================================================================== ++ */ ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_GetChar -- ++ * ++ * Reads a byte from the input stream and returns it. ++ * ++ * Results: ++ * The byte, or EOF (-1) if the end of input has been reached. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_GetChar(FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_UnGetChar -- ++ * ++ * Pushes back the character c onto the input stream. One ++ * character of pushback is guaranteed once a character ++ * has been read. No pushback is possible for EOF. ++ * ++ * Results: ++ * Returns c if the pushback succeeded, EOF if not. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_UnGetChar(int c, FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_GetStr -- ++ * ++ * Reads up to n consecutive bytes from the input stream ++ * into the character array str. Performs no interpretation ++ * of the input bytes. ++ * ++ * Results: ++ * Number of bytes read. If result is smaller than n, ++ * the end of input has been reached. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_GetStr(char *str, int n, FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_GetLine -- ++ * ++ * Reads up to n-1 consecutive bytes from the input stream ++ * into the character array str. Stops before n-1 bytes ++ * have been read if '\n' or EOF is read. The terminating '\n' ++ * is copied to str. After copying the last byte into str, ++ * stores a '\0' terminator. ++ * ++ * Results: ++ * NULL if EOF is the first thing read from the input stream, ++ * str otherwise. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI char *FCGX_GetLine(char *str, int n, FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_HasSeenEOF -- ++ * ++ * Returns EOF if end-of-file has been detected while reading ++ * from stream; otherwise returns 0. ++ * ++ * Note that FCGX_HasSeenEOF(s) may return 0, yet an immediately ++ * following FCGX_GetChar(s) may return EOF. This function, like ++ * the standard C stdio function feof, does not provide the ++ * ability to peek ahead. ++ * ++ * Results: ++ * EOF if end-of-file has been detected, 0 if not. ++ * ++ *---------------------------------------------------------------------- ++ */ ++ ++DLLAPI int FCGX_HasSeenEOF(FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *====================================================================== ++ * Writers ++ *====================================================================== ++ */ ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_PutChar -- ++ * ++ * Writes a byte to the output stream. ++ * ++ * Results: ++ * The byte, or EOF (-1) if an error occurred. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_PutChar(int c, FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_PutStr -- ++ * ++ * Writes n consecutive bytes from the character array str ++ * into the output stream. Performs no interpretation ++ * of the output bytes. ++ * ++ * Results: ++ * Number of bytes written (n) for normal return, ++ * EOF (-1) if an error occurred. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_PutStr(const char *str, int n, FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_PutS -- ++ * ++ * Writes a null-terminated character string to the output stream. ++ * ++ * Results: ++ * number of bytes written for normal return, ++ * EOF (-1) if an error occurred. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_PutS(const char *str, FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_FPrintF, FCGX_VFPrintF -- ++ * ++ * Performs printf-style output formatting and writes the results ++ * to the output stream. ++ * ++ * Results: ++ * number of bytes written for normal return, ++ * EOF (-1) if an error occurred. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_FPrintF(FCGX_Stream *stream, const char *format, ...) {return 0;}; ++ ++DLLAPI int FCGX_VFPrintF(FCGX_Stream *stream, const char *format, va_list arg) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_FFlush -- ++ * ++ * Flushes any buffered output. ++ * ++ * Server-push is a legitimate application of FCGX_FFlush. ++ * Otherwise, FCGX_FFlush is not very useful, since FCGX_Accept ++ * does it implicitly. Calling FCGX_FFlush in non-push applications ++ * results in extra writes and therefore reduces performance. ++ * ++ * Results: ++ * EOF (-1) if an error occurred. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_FFlush(FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *====================================================================== ++ * Both Readers and Writers ++ *====================================================================== ++ */ ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_FClose -- ++ * ++ * Closes the stream. For writers, flushes any buffered ++ * output. ++ * ++ * Close is not a very useful operation since FCGX_Accept ++ * does it implicitly. Closing the out stream before the ++ * err stream results in an extra write if there's nothing ++ * in the err stream, and therefore reduces performance. ++ * ++ * Results: ++ * EOF (-1) if an error occurred. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_FClose(FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_GetError -- ++ * ++ * Return the stream error code. 0 means no error, > 0 ++ * is an errno(2) error, < 0 is an FastCGI error. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI int FCGX_GetError(FCGX_Stream *stream) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_ClearError -- ++ * ++ * Clear the stream error code and end-of-file indication. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI void FCGX_ClearError(FCGX_Stream *stream) {}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_CreateWriter -- ++ * ++ * Create a FCGX_Stream (used by cgi-fcgi). This shouldn't ++ * be needed by a FastCGI applictaion. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI FCGX_Stream *FCGX_CreateWriter( ++ int socket, ++ int requestId, ++ int bufflen, ++ int streamType) {return 0;}; ++ ++/* ++ *---------------------------------------------------------------------- ++ * ++ * FCGX_FreeStream -- ++ * ++ * Free a FCGX_Stream (used by cgi-fcgi). This shouldn't ++ * be needed by a FastCGI applictaion. ++ * ++ *---------------------------------------------------------------------- ++ */ ++DLLAPI void FCGX_FreeStream(FCGX_Stream **stream) {}; ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Prevent the lib from accepting any new requests. Signal handler safe. ++ * ++ * ---------------------------------------------------------------------- ++ */ ++DLLAPI void FCGX_ShutdownPending(void) {}; ++ ++#if defined (__cplusplus) || defined (c_plusplus) ++} /* terminate extern "C" { */ ++#endif ++ ++#endif /* _FCGIAPP_H */ +-- +2.9.3 + diff --git a/SOURCES/0003-common-Build-more-files-of-libcommon-in-client.patch b/SOURCES/0003-common-Build-more-files-of-libcommon-in-client.patch new file mode 100644 index 0000000..bfdd853 --- /dev/null +++ b/SOURCES/0003-common-Build-more-files-of-libcommon-in-client.patch @@ -0,0 +1,39 @@ +From 19d71786dfc63b4dcde744d4a0b3bfcc69617ebb Mon Sep 17 00:00:00 2001 +From: Boris Ranto +Date: Tue, 21 Feb 2017 15:10:34 +0100 +Subject: [PATCH] common: Build more files of libcommon in client + +Signed-off-by: Boris Ranto +--- + src/common/Makefile.am | 10 +++------- + 1 file changed, 3 insertions(+), 7 deletions(-) + +diff --git a/src/common/Makefile.am b/src/common/Makefile.am +index 86df75d..79c5df7 100644 +--- a/src/common/Makefile.am ++++ b/src/common/Makefile.am +@@ -78,18 +78,14 @@ libcommon_internal_la_SOURCES = \ + common/TracepointProvider.cc \ + common/PluginRegistry.cc \ + common/scrub_types.cc \ +- common/blkdev.cc +- +-common/PluginRegistry.cc: ./ceph_ver.h +- +-if ENABLE_SERVER +-libcommon_internal_la_SOURCES += \ ++ common/blkdev.cc \ + common/xattr.c \ + common/ipaddr.cc \ + common/ceph_json.cc \ + common/util.cc \ + common/pick_address.cc +-endif ++ ++common/PluginRegistry.cc: ./ceph_ver.h + + if LINUX + libcommon_internal_la_SOURCES += \ +-- +2.9.3 + diff --git a/SOURCES/0004-libradosstripper-Build-libradostripper-for-rados-as-.patch b/SOURCES/0004-libradosstripper-Build-libradostripper-for-rados-as-.patch new file mode 100644 index 0000000..7e3924f --- /dev/null +++ b/SOURCES/0004-libradosstripper-Build-libradostripper-for-rados-as-.patch @@ -0,0 +1,38 @@ +From f616bc4eae5f28946a1730bbcdf543a4996730d9 Mon Sep 17 00:00:00 2001 +From: Boris Ranto +Date: Tue, 21 Feb 2017 15:11:13 +0100 +Subject: [PATCH] libradosstripper: Build libradostripper for rados as noinst + +--- + src/libradosstriper/Makefile.am | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/src/libradosstriper/Makefile.am b/src/libradosstriper/Makefile.am +index 293c8a5..9ec1e83 100644 +--- a/src/libradosstriper/Makefile.am ++++ b/src/libradosstriper/Makefile.am +@@ -1,6 +1,5 @@ + if ENABLE_CLIENT + if WITH_RADOS +-if WITH_RADOSSTRIPER + + libradosstriper_la_SOURCES = \ + libradosstriper/libradosstriper.cc \ +@@ -16,13 +15,12 @@ libradosstriper_la_LDFLAGS = ${AM_LDFLAGS} -version-info 1:0:0 + if LINUX + libradosstriper_la_LDFLAGS += -export-symbols-regex '^radosstriper_.*' + endif +-lib_LTLIBRARIES += libradosstriper.la ++noinst_LTLIBRARIES += libradosstriper.la + + noinst_HEADERS += \ + libradosstriper/RadosStriperImpl.h \ + libradosstriper/MultiAioCompletionImpl.h + +-endif # WITH_RADOSSTRIPER + endif # WITH_RADOS + endif # ENABLE_CLIENT + +-- +2.9.3 + diff --git a/SOURCES/0005-A-compile-patch-for-s390.patch b/SOURCES/0005-A-compile-patch-for-s390.patch new file mode 100644 index 0000000..5217615 --- /dev/null +++ b/SOURCES/0005-A-compile-patch-for-s390.patch @@ -0,0 +1,28 @@ +From 14b0f450b47c8dac895d49f3cda4ebb7a798fbb1 Mon Sep 17 00:00:00 2001 +From: Boris Ranto +Date: Mon, 24 Apr 2017 16:01:17 -0700 +Subject: [PATCH] A compile patch for s390 + +Signed-off-by: Boris Ranto +--- + src/include/encoding.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/include/encoding.h b/src/include/encoding.h +index 2657c62..0d4a54f 100644 +--- a/src/include/encoding.h ++++ b/src/include/encoding.h +@@ -106,6 +106,10 @@ WRITE_INTTYPE_ENCODER(uint32_t, le32) + WRITE_INTTYPE_ENCODER(int32_t, le32) + WRITE_INTTYPE_ENCODER(uint16_t, le16) + WRITE_INTTYPE_ENCODER(int16_t, le16) ++#if defined(__s390__) && !defined(__s390x__) ++WRITE_INTTYPE_ENCODER(size_t, le32) ++#endif ++ + + #ifdef ENCODE_DUMP + # include +-- +2.9.3 + diff --git a/SPECS/ceph-common.spec b/SPECS/ceph-common.spec new file mode 100644 index 0000000..d59052c --- /dev/null +++ b/SPECS/ceph-common.spec @@ -0,0 +1,698 @@ +%if ! (0%{?fedora} > 12 || 0%{?rhel} > 5) +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} +%endif + +################################################################################# +# common +################################################################################# +Name: ceph-common +Version: 10.2.5 +Release: 4%{?dist} +Epoch: 1 +Summary: Ceph Common +License: GPLv2 +Group: System Environment/Base +URL: http://ceph.com/ +Source0: http://ceph.com/download/ceph-%{version}.tar.gz +Patch1: 0001-Makefile-Fix-dencoder-build.patch +Patch2: 0002-Add-fake-fcgiapp.h-for-rgw.patch +Patch3: 0003-common-Build-more-files-of-libcommon-in-client.patch +Patch4: 0004-libradosstripper-Build-libradostripper-for-rados-as-.patch +Patch5: 0005-A-compile-patch-for-s390.patch +Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: librados2 = %{epoch}:%{version}-%{release} +Requires: python-rbd = %{epoch}:%{version}-%{release} +Requires: python-rados = %{epoch}:%{version}-%{release} +Requires: python +Requires: python-argparse +Requires: python-requests +%if ! ( 0%{?rhel} && 0%{?rhel} <= 6 ) +Requires: xfsprogs +%endif +Requires: cryptsetup +Requires: parted +Requires: util-linux +%ifnarch s390 s390x +Requires: hdparm +%endif +# For initscript +Requires: redhat-lsb-core +Requires(post): binutils +BuildRequires: make +BuildRequires: gcc-c++ +BuildRequires: libtool +BuildRequires: boost-devel +BuildRequires: bzip2-devel +BuildRequires: libedit-devel +BuildRequires: perl +BuildRequires: gdbm +BuildRequires: pkgconfig +BuildRequires: python +BuildRequires: python-nose +BuildRequires: python-argparse +BuildRequires: libaio-devel +BuildRequires: libcurl-devel +BuildRequires: libxml2-devel +BuildRequires: libuuid-devel +BuildRequires: libblkid-devel >= 2.17 +BuildRequires: libudev-devel +BuildRequires: expat-devel +BuildRequires: Cython +BuildRequires: python-devel +BuildRequires: python-virtualenv +BuildRequires: python-sphinx +BuildRequires: openldap-devel +BuildRequires: snappy-devel +BuildRequires: redhat-lsb-core +%if ! ( 0%{?rhel} && 0%{?rhel} <= 6 ) +BuildRequires: xfsprogs-devel +%endif +# No yasm dependency for now, it causes selinux issues +#BuildRequires: yasm + +################################################################################# +# specific +################################################################################# +%if ! 0%{?rhel} +BuildRequires: sharutils +%endif + +Requires: gdisk +BuildRequires: nss-devel +BuildRequires: keyutils-libs-devel +Requires: gdisk +Requires(post): chkconfig +Requires(preun):chkconfig +Requires(preun):initscripts + +################################################################################# +# obsoletes +################################################################################# +# We need to obsolete and provide python-ceph with this package +# We moved ceph_argparse.py from python-ceph to ceph-common when +# we split python-ceph, ceph-common needs to obsolete python-ceph +# as well, it also provides python-ceph via dependencies +Obsoletes: python-ceph +Provides: python-ceph + +%description +Common utilities to mount and interact with a ceph storage cluster. + + +################################################################################# +# packages +################################################################################# +%package -n librados2 +Summary: RADOS distributed object store client library +Group: System Environment/Libraries +License: LGPL-2.0 +Obsoletes: ceph-libs +%description -n librados2 +RADOS is a reliable, autonomic distributed object storage cluster +developed as part of the Ceph distributed storage system. This is a +shared library allowing applications to access the distributed object +store using a simple file-like interface. + +%package -n librados2-devel +Summary: RADOS headers +Group: Development/Libraries +License: LGPL-2.0 +Requires: librados2 = %{epoch}:%{version}-%{release} +Obsoletes: ceph-devel +%description -n librados2-devel +This package contains libraries and headers needed to develop programs +that use RADOS object store. + +%package -n python-rados +Summary: Python libraries for the RADOS object store +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librados2 = %{epoch}:%{version}-%{release} +Obsoletes: python-ceph +%description -n python-rados +This package contains Python libraries for interacting with Cephs RADOS +object store. + +%package -n librbd1 +Summary: RADOS block device client library +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librados2 = %{epoch}:%{version}-%{release} +Obsoletes: ceph-libs +%description -n librbd1 +RBD is a block device striped across multiple distributed objects in +RADOS, a reliable, autonomic distributed object storage cluster +developed as part of the Ceph distributed storage system. This is a +shared library allowing applications to manage these block devices. + +%package -n librbd1-devel +Summary: RADOS block device headers +Group: Development/Libraries +License: LGPL-2.0 +Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: librados2-devel = %{epoch}:%{version}-%{release} +Obsoletes: ceph-devel +%description -n librbd1-devel +This package contains libraries and headers needed to develop programs +that use RADOS block device. + +%package -n python-rbd +Summary: Python libraries for the RADOS block device +Group: System Environment/Libraries +License: LGPL-2.0 +Requires: librbd1 = %{epoch}:%{version}-%{release} +Requires: python-rados = %{epoch}:%{version}-%{release} +Obsoletes: python-ceph +%description -n python-rbd +This package contains Python libraries for interacting with Cephs RADOS +block device. + +################################################################################# +# common +################################################################################# +%prep +%setup -q -n ceph-%{version} +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 + +%build +./autogen.sh + +%if ( 0%{?rhel} && 0%{?rhel} <= 6) +MY_CONF_OPT="--without-libxfs" +%else +MY_CONF_OPT="" +%endif + +# Do not build server part of the project +# Do not use gperftools (tcmalloc) on rhel +# No need to build fuse, rest-bench radosgw and ocf pkgs so far +# Use nss instead of cryptopp library +MY_CONF_OPT="$MY_CONF_OPT --disable-server --without-libatomic-ops --without-tcmalloc --without-radosgw --without-rest-bench --without-fuse --without-ocf --without-cryptopp --with-nss --without-radosstriper --without-cephfs" + +export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` + +%{configure} --prefix=/usr \ + --libexecdir=%{_libexecdir} \ + --localstatedir=%{_localstatedir} \ + --sysconfdir=%{_sysconfdir} \ + --docdir=%{_docdir}/ceph \ + --with-man-pages \ + --mandir="%_mandir" \ + $MY_CONF_OPT \ + CFLAGS="$RPM_OPT_FLAGS $EXTRA_CFLAGS" \ + CXXFLAGS="$RPM_OPT_FLAGS $EXTRA_CFLAGS" \ + LDFLAGS="$EXTRA_LDFLAGS" + +make %{_smp_mflags} + +%install +make DESTDIR=$RPM_BUILD_ROOT install +find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' +find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';' +install -D src/rbdmap $RPM_BUILD_ROOT%{_sysconfdir}/ceph/rbdmap +rm -f $RPM_BUILD_ROOT%{_docdir}/ceph/sample.ceph.conf +rm -f $RPM_BUILD_ROOT%{_docdir}/ceph/sample.fetch_config +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/erasure-code/libec_*.so* +rm -f $RPM_BUILD_ROOT%{_libexecdir}/ceph/ceph-osd-prestart.sh +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/radosgw-admin +rm -f $RPM_BUILD_ROOT%{_bindir}/crushtool +rm -f $RPM_BUILD_ROOT%{_bindir}/monmaptool +rm -f $RPM_BUILD_ROOT%{_bindir}/osdmaptool +rm -f $RPM_BUILD_ROOT%{_bindir}/ceph-detect-init +rm -f $RPM_BUILD_ROOT%{_bindir}/rbd-mirror +rm -f $RPM_BUILD_ROOT%{_bindir}/rbd-nbd +rm -f $RPM_BUILD_ROOT%{_sbindir}/ceph-disk +rm -f $RPM_BUILD_ROOT%{_libdir}/ceph/ceph_common.sh +rm -f $RPM_BUILD_ROOT%{_libexecdir}/ceph/ceph-osd-prestart.sh +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rbd-mirror.8* +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rbd-nbd.8* +rm -f $RPM_BUILD_ROOT%{_unitdir}/ceph* +rm -f $RPM_BUILD_ROOT%{_libexecdir}/ceph/ceph_common.sh +rm -rf $RPM_BUILD_ROOT%{python_sitelib}/ceph_detect_init* +rm -rf $RPM_BUILD_ROOT%{python_sitelib}/ceph_disk* +rm -rf $RPM_BUILD_ROOT%{_libdir}/ceph/compressor + +# udev rules +%if 0%{?rhel} >= 7 || 0%{?fedora} +install -m 0644 -D udev/50-rbd.rules $RPM_BUILD_ROOT/usr/lib/udev/rules.d/50-rbd.rules +%else +install -m 0644 -D udev/50-rbd.rules $RPM_BUILD_ROOT/lib/udev/rules.d/50-rbd.rules +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + + +################################################################################# +# files +################################################################################# +%files +%defattr(-,root,root,-) +%{_bindir}/ceph +%{_bindir}/ceph-authtool +%{_bindir}/ceph-conf +%{_bindir}/ceph-dencoder +%{_bindir}/ceph-rbdnamer +%{_bindir}/ceph-syn +%{_bindir}/rados +%{_bindir}/rbd +%{_bindir}/rbd-replay +%{_bindir}/rbd-replay-many +%{_bindir}/rbdmap +%{_bindir}/ceph-post-file +%{_bindir}/ceph-brag +%{_mandir}/man8/ceph-authtool.8* +%{_mandir}/man8/ceph-conf.8* +%{_mandir}/man8/ceph-dencoder.8* +%{_mandir}/man8/ceph-rbdnamer.8* +%{_mandir}/man8/ceph-syn.8* +%{_mandir}/man8/ceph-post-file.8* +%{_mandir}/man8/ceph.8* +%{_mandir}/man8/rados.8* +%{_mandir}/man8/rbd.8* +%{_mandir}/man8/rbdmap.8* +%{_mandir}/man8/rbd-replay.8* +%{_mandir}/man8/rbd-replay-many.8* +%{_mandir}/man8/rbd-replay-prep.8* +%dir %{_datadir}/ceph/ +%{_datadir}/ceph/known_hosts_drop.ceph.com +%{_datadir}/ceph/id_rsa_drop.ceph.com +%{_datadir}/ceph/id_rsa_drop.ceph.com.pub +%dir %{_sysconfdir}/ceph/ +%config %{_sysconfdir}/bash_completion.d/ceph +%config %{_sysconfdir}/bash_completion.d/rados +%config %{_sysconfdir}/bash_completion.d/rbd +%config(noreplace) %{_sysconfdir}/ceph/rbdmap +%{_unitdir}/rbdmap.service +%{python_sitelib}/ceph_argparse.py* +%{python_sitelib}/ceph_daemon.py* +%{_udevrulesdir}/50-rbd.rules +%dir %{_localstatedir}/log/ceph/ + +%postun +# Package removal cleanup +if [ "$1" -eq "0" ] ; then + rm -rf /var/log/ceph + rm -rf /etc/ceph +fi + +################################################################################# +%files -n librados2 +%defattr(-,root,root,-) +%{_libdir}/librados.so.* + +%post -n librados2 +/sbin/ldconfig + +%postun -n librados2 +/sbin/ldconfig + +################################################################################# +%files -n librados2-devel +%defattr(-,root,root,-) +%dir %{_includedir}/rados +%{_includedir}/rados/librados.h +%{_includedir}/rados/librados.hpp +%{_includedir}/rados/buffer.h +%{_includedir}/rados/buffer_fwd.h +%{_includedir}/rados/page.h +%{_includedir}/rados/crc32c.h +%{_includedir}/rados/rados_types.h +%{_includedir}/rados/rados_types.hpp +%{_includedir}/rados/memory.h +%{_libdir}/librados.so +%{_bindir}/librados-config +%{_mandir}/man8/librados-config.8* + +################################################################################# +%files -n librbd1 +%defattr(-,root,root,-) +%{_libdir}/librbd.so.* +%if 0%{?rhel} >= 7 || 0%{?fedora} +/usr/lib/udev/rules.d/50-rbd.rules +%else +/lib/udev/rules.d/50-rbd.rules +%endif + +%post -n librbd1 +/sbin/ldconfig + +%postun -n librbd1 +/sbin/ldconfig + +################################################################################# +%files -n librbd1-devel +%defattr(-,root,root,-) +%dir %{_includedir}/rbd +%{_includedir}/rbd/librbd.h +%{_includedir}/rbd/librbd.hpp +%{_includedir}/rbd/features.h +%{_libdir}/librbd.so + +################################################################################# +%files -n python-rados +%defattr(-,root,root,-) +%{python_sitearch}/rados.so +%{python_sitearch}/rados-*.egg-info + +################################################################################# +%files -n python-rbd +%defattr(-,root,root,-) +%{python_sitearch}/rbd.so +%{python_sitearch}/rbd-*.egg-info + +%changelog +* Fri Jun 08 2018 Boris Ranto - 1:10.2.5-4 +- rebase the package to 10.2.5 + +* Tue Jun 20 2017 Boris Ranto - 1:0.94.5-2 +- drop the rebase + +* Thu Jun 01 2017 Boris Ranto - 1:10.2.5-3 +- Strip away ceph user (errata complains after rebase) + +* Mon Apr 24 2017 Boris Ranto - 1:10.2.5-2 +- New release (1:10.2.5-2) +- A compile patch for s390 +- Build on all the platforms + +* Wed Feb 22 2017 Boris Ranto - 1:10.2.5-1 +- New version (1:10.2.5-1) +- Makefile: Fix dencoder build +- Add fake fcgiapp.h for rgw +- common: Build more files of libcommon in client +- libradosstripper: Build libradostripper for rados as noinst + +* Wed Jun 22 2016 Boris Ranto - 1:0.94.5-1 +- New version (1:0.94.5-1) + +* Wed Jun 17 2015 Boris Ranto - 1:0.80.7-3 +- Fix librbd: aio calls may block (1225188) + +* Fri Nov 21 2014 Boris Ranto - 1:0.80.7-2 +- We need to obsolete and provide python-ceph by ceph-common + +* Thu Oct 16 2014 Boris Ranto - 1:0.80.7-1 +- Rebase to latest upstream version + +* Mon Oct 13 2014 Boris Ranto - 1:0.80.6-4 +- fix the typo in librados-devel vs librados2-devel dependency + +* Thu Oct 9 2014 Boris Ranto - 1:0.80.6-3 +- split the python-ceph and ceph-devel packages to properly fix the + 'disable cephfs' issue + +* Wed Oct 8 2014 Boris Ranto - 1:0.80.6-2 +- Do not package cephfs files + +* Tue Oct 7 2014 Boris Ranto - 1:0.80.6-1 +- Rebase to latest stable upstream version +- Remove libatomic_ops dependency + +* Wed Oct 1 2014 Boris Ranto - 1:0.80.5-13 +- Remove python-flask dependency + +* Wed Sep 24 2014 Boris Ranto - 1:0.80.5-12 +- Fix the license field + +* Wed Sep 24 2014 Boris Ranto - 1:0.80.5-11 +- First attempt to build rhel 7 ceph packages + +* Tue Sep 9 2014 Dan Horák - 1:0.80.5-10 +- update Requires for s390(x) + +* Wed Sep 3 2014 Boris Ranto - 1:0.80.5-9 +- Symlink librd.so.1 to /usr/lib64/qemu only on rhel6+ x86_64 (1136811) + +* Thu Aug 21 2014 Boris Ranto - 1:0.80.5-8 +- Revert the previous change +- Fix bz 1118504, second attempt (yasm appears to be the package that caused this + +* Wed Aug 20 2014 Boris Ranto - 1:0.80.5-7 +- Several more merges from file to try to fix the selinux issue (1118504) + +* Sun Aug 17 2014 Kalev Lember - 1:0.80.5-6 +- Obsolete ceph-libcephfs + +* Sat Aug 16 2014 Boris Ranto - 1:0.80.5-5 +- Do not require xfsprogs/xfsprogs-devel for el6 +- Require gperftools-devel for non-ppc*/s390* architectures only +- Do not require junit -- no need to build libcephfs-test.jar +- Build without libxfs for el6 +- Build without tcmalloc for ppc*/s390* architectures +- Location of mkcephfs must depend on a rhel release +- Use epoch in the Requires fields [1130700] + +* Sat Aug 16 2014 Boris Ranto - 1:0.80.5-4 +- Use the proper version name in Obsoletes + +* Fri Aug 15 2014 Fedora Release Engineering - 1:0.80.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Aug 15 2014 Boris Ranto - 1:0.80.5-2 +- Add the arm pthread hack + +* Fri Aug 15 2014 Boris Ranto - 1:0.80.5-1 +- Bump the Epoch, we need to keep the latest stable, not development, + ceph version in fedora +- Use the upstream spec file with the ceph-libs split +- Add libs-compat subpackage [1116546] +- use fedora in rhel 7 checks +- obsolete libcephfs [1116614] +- depend on redhat-lsb-core for the initscript [1108696] + +* Wed Aug 13 2014 Kalev Lember - 0.81.0-6 +- Add obsoletes to keep the upgrade path working (#1118510) + +* Mon Jul 7 2014 Kaleb S. KEITHLEY - 0.81.0-5 +- revert to old spec until after f21 branch + +* Fri Jul 4 2014 Kaleb S. KEITHLEY +- temporary exclude f21/armv7hl. N.B. it builds fine on f20/armv7hl. + +* Fri Jul 4 2014 Kaleb S. KEITHLEY - 0.81.0-4 +- upstream ceph.spec file + +* Tue Jul 1 2014 Kaleb S. KEITHLEY - 0.81.0-3 +- upstream ceph.spec file + +* Sat Jun 07 2014 Fedora Release Engineering - 0.81.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Jun 5 2014 Kaleb S. KEITHLEY +- el6 ppc64 likewise for tcmalloc, merge from origin/el6 + +* Thu Jun 5 2014 Kaleb S. KEITHLEY +- el6 ppc64 does not have gperftools, merge from origin/el6 + +* Thu Jun 5 2014 Kaleb S. KEITHLEY - 0.81.0-1 +- ceph-0.81.0 + +* Wed Jun 4 2014 Peter Robinson 0.80.1-5 +- gperftools now available on aarch64/ppc64 + +* Fri May 23 2014 Petr Machata - 0.80.1-4 +- Rebuild for boost 1.55.0 + +* Fri May 23 2014 David Tardon - 0.80.1-3 +- rebuild for boost 1.55.0 + +* Wed May 14 2014 Kaleb S. KEITHLEY - 0.80.1-2 +- build epel-6 +- exclude %%{_libdir}/ceph/erasure-code in base package + +* Tue May 13 2014 Kaleb S. KEITHLEY - 0.80.1-1 +- Update to latest stable upstream release, BZ 1095201 +- PIE, _hardened_build, BZ 955174 + +* Thu Feb 06 2014 Ken Dreyer - 0.72.2-2 +- Move plugins from -devel into -libs package (#891993). Thanks Michael + Schwendt. + +* Mon Jan 06 2014 Ken Dreyer 0.72.2-1 +- Update to latest stable upstream release +- Use HTTPS for URLs +- Submit Automake 1.12 patch upstream +- Move unversioned shared libs from ceph-libs into ceph-devel + +* Wed Dec 18 2013 Marcin Juszkiewicz 0.67.3-4 +- build without tcmalloc on aarch64 (no gperftools) + +* Sat Nov 30 2013 Peter Robinson 0.67.3-3 +- gperftools not currently available on aarch64 + +* Mon Oct 07 2013 Dan Horák - 0.67.3-2 +- fix build on non-x86_64 64-bit arches + +* Wed Sep 11 2013 Josef Bacik - 0.67.3-1 +- update to 0.67.3 + +* Wed Sep 11 2013 Michael Schwendt - 0.61.7-3 +- let base package include all its documentation files via %%doc magic, + so for Fedora 20 Unversioned Docdirs no files are included accidentally +- include the sample config files again (instead of just an empty docdir + that has been added for #846735) +- don't include librbd.so.1 also in -devel package (#1003202) +- move one misplaced rados plugin from -devel into -libs package (#891993) +- include missing directories in -devel and -libs packages +- move librados-config into the -devel pkg where its manual page is, too +- add %%_isa to subpackage dependencies +- don't use %%defattr anymore +- add V=1 to make invocation for verbose build output + +* Wed Jul 31 2013 Peter Robinson 0.61.7-2 +- re-enable tmalloc on arm now gperftools is fixed + +* Mon Jul 29 2013 Josef Bacik - 0.61.7-1 +- Update to 0.61.7 + +* Sat Jul 27 2013 pmachata@redhat.com - 0.56.4-2 +- Rebuild for boost 1.54.0 + +* Fri Mar 29 2013 Josef Bacik - 0.56.4-1 +- Update to 0.56.4 +- Add upstream d02340d90c9d30d44c962bea7171db3fe3bfba8e to fix logrotate + +* Wed Feb 20 2013 Josef Bacik - 0.56.3-1 +- Update to 0.56.3 + +* Mon Feb 11 2013 Richard W.M. Jones - 0.53-2 +- Rebuilt to try to fix boost dependency problem in Rawhide. + +* Thu Nov 1 2012 Josef Bacik - 0.53-1 +- Update to 0.53 + +* Mon Sep 24 2012 Jonathan Dieter - 0.51-3 +- Fix automake 1.12 error +- Rebuild after buildroot was messed up + +* Tue Sep 18 2012 Jonathan Dieter - 0.51-2 +- Use system leveldb + +* Fri Sep 07 2012 David Nalley - 0.51-1 +- Updating to 0.51 +- Updated url and source url. + +* Wed Jul 18 2012 Fedora Release Engineering - 0.46-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed May 9 2012 Josef Bacik - 0.46-1 +- updated to upstream 0.46 +- broke out libcephfs (rhbz# 812975) + +* Mon Apr 23 2012 Dan Horák - 0.45-2 +- fix detection of C++11 atomic header + +* Thu Apr 12 2012 Josef Bacik - 0.45-1 +- updating to upstream 0.45 + +* Wed Apr 4 2012 Niels de Vos - 0.44-5 +- Add LDFLAGS=-lpthread on any ARM architecture +- Add CFLAGS=-DAO_USE_PTHREAD_DEFS on ARMv5tel + +* Mon Mar 26 2012 Dan Horák 0.44-4 +- gperftools not available also on ppc + +* Mon Mar 26 2012 Jonathan Dieter - 0.44-3 +- Remove unneeded patch + +* Sun Mar 25 2012 Jonathan Dieter - 0.44-2 +- Update to 0.44 +- Fix build problems + +* Mon Mar 5 2012 Jonathan Dieter - 0.43-1 +- Update to 0.43 +- Remove upstreamed compile fixes patch +- Remove obsoleted dump_pop patch + +* Tue Feb 28 2012 Fedora Release Engineering - 0.41-2 +- Rebuilt for c++ ABI breakage + +* Thu Feb 16 2012 Tom Callaway 0.41-1 +- update to 0.41 +- fix issues preventing build +- rebuild against gperftools + +* Sat Dec 03 2011 David Nalley 0.38-1 +- updating to upstream 0.39 + +* Sat Nov 05 2011 David Nalley 0.37-1 +- create /etc/ceph - bug 745462 +- upgrading to 0.37, fixing 745460, 691033 +- fixing various logrotate bugs 748930, 747101 + +* Fri Aug 19 2011 Dan Horák 0.31-4 +- google-perftools not available also on s390(x) + +* Mon Jul 25 2011 Karsten Hopp 0.31-3 +- build without tcmalloc on ppc64, BR google-perftools is not available there + +* Tue Jul 12 2011 Josef Bacik 0.31-2 +- Remove curl/types.h include since we don't use it anymore + +* Tue Jul 12 2011 Josef Bacik 0.31-1 +- Update to 0.31 + +* Tue Apr 5 2011 Josef Bacik 0.26-2 +- Add the compile fix patch + +* Tue Apr 5 2011 Josef Bacik 0.26 +- Update to 0.26 + +* Tue Mar 22 2011 Josef Bacik 0.25.1-1 +- Update to 0.25.1 + +* Tue Feb 08 2011 Fedora Release Engineering - 0.21.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Sep 29 2010 Steven Pritchard 0.21.3-1 +- Update to 0.21.3. + +* Mon Aug 30 2010 Steven Pritchard 0.21.2-1 +- Update to 0.21.2. + +* Thu Aug 26 2010 Steven Pritchard 0.21.1-1 +- Update to 0.21.1. +- Sample configs moved to /usr/share/doc/ceph/. +- Added cclass, rbd, and cclsinfo. +- Dropped mkmonfs and rbdtool. +- mkcephfs moved to /sbin. +- Add libcls_rbd.so. + +* Tue Jul 6 2010 Josef Bacik 0.20.2-1 +- update to 0.20.2 + +* Wed May 5 2010 Josef Bacik 0.20-1 +- update to 0.20 +- disable hadoop building +- remove all the test binaries properly + +* Fri Apr 30 2010 Sage Weil 0.19.1-5 +- Remove java deps (no need to build hadoop by default) +- Include all required librados helpers +- Include fetch_config sample +- Include rbdtool +- Remove misc debugging, test binaries + +* Fri Apr 30 2010 Josef Bacik 0.19.1-4 +- Add java-devel and java tricks to get hadoop to build + +* Mon Apr 26 2010 Josef Bacik 0.19.1-3 +- Move the rados and cauthtool man pages into the base package + +* Sun Apr 25 2010 Jonathan Dieter 0.19.1-2 +- Add missing libhadoopcephfs.so* to file list +- Add COPYING to all subpackages +- Fix ownership of /usr/lib[64]/ceph +- Enhance description of fuse client + +* Tue Apr 20 2010 Josef Bacik 0.19.1-1 +- Update to 0.19.1 + +* Mon Feb 8 2010 Josef Bacik 0.18-1 +- Initial spec file creation, based on the template provided in the ceph src