diff --git a/.ceph-common.metadata b/.ceph-common.metadata index a9e6f76..17a70e1 100644 --- a/.ceph-common.metadata +++ b/.ceph-common.metadata @@ -1 +1 @@ -54be00f01559dbb2c04671b2c288edba6537de42 SOURCES/ceph-0.94.5.tar.bz2 +3a36569eabea17f780ffc4ecc2222e6431130673 SOURCES/ceph-10.2.5.tar.gz diff --git a/.gitignore b/.gitignore index 0906788..acfc2aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/ceph-0.94.5.tar.bz2 +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 index 08c1e03..d59052c 100644 --- a/SPECS/ceph-common.spec +++ b/SPECS/ceph-common.spec @@ -7,14 +7,19 @@ # common ################################################################################# Name: ceph-common -Version: 0.94.5 -Release: 2%{?dist} +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.bz2 +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} @@ -53,6 +58,13 @@ 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 @@ -161,6 +173,11 @@ block device. ################################################################################# %prep %setup -q -n ceph-%{version} +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build ./autogen.sh @@ -180,9 +197,12 @@ MY_CONF_OPT="$MY_CONF_OPT --disable-server --without-libatomic-ops --without-tcm export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed -e 's/i386/i486/'` %{configure} --prefix=/usr \ - --localstatedir=/var \ - --sysconfdir=/etc \ + --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" \ @@ -194,7 +214,6 @@ make %{_smp_mflags} 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/init-rbdmap $RPM_BUILD_ROOT%{_initrddir}/rbdmap 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 @@ -204,13 +223,19 @@ 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}/rbd-replay -rm -f $RPM_BUILD_ROOT%{_bindir}/rbd-replay-many +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-replay.8* -rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rbd-replay-many.8* -rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rbd-replay-prep.8* +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} @@ -236,6 +261,9 @@ rm -rf $RPM_BUILD_ROOT %{_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* @@ -247,18 +275,24 @@ rm -rf $RPM_BUILD_ROOT %{_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_dsa_drop.ceph.com -%{_datadir}/ceph/id_dsa_drop.ceph.com.pub +%{_datadir}/ceph/id_rsa_drop.ceph.com +%{_datadir}/ceph/id_rsa_drop.ceph.com.pub %dir %{_sysconfdir}/ceph/ -%dir %{_localstatedir}/log/ceph/ %config %{_sysconfdir}/bash_completion.d/ceph %config %{_sysconfdir}/bash_completion.d/rados %config %{_sysconfdir}/bash_completion.d/rbd %config(noreplace) %{_sysconfdir}/ceph/rbdmap -%{_initrddir}/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 @@ -285,6 +319,7 @@ fi %{_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 @@ -322,14 +357,19 @@ fi ################################################################################# %files -n python-rados %defattr(-,root,root,-) -%{python_sitelib}/rados.py* +%{python_sitearch}/rados.so +%{python_sitearch}/rados-*.egg-info ################################################################################# %files -n python-rbd %defattr(-,root,root,-) -%{python_sitelib}/rbd.py* +%{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