[packages/Firebird] - up to 3.0.1.32609; patches from FC and Debian

arekm arekm at pld-linux.org
Thu Feb 2 12:46:25 CET 2017


commit 8f47d69b00b6c3b422924c807a7f11bf6f237e81
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Thu Feb 2 12:46:13 2017 +0100

    - up to 3.0.1.32609; patches from FC and Debian

 Firebird-noroot.patch                              |  14 --
 Firebird.spec                                      |  18 ++-
 ...nerated-code-compatible-with-gcc-6-in-C-1.patch |  29 ++++
 ...zed-global-delete-operators-when-compiled.patch |  36 +++++
 no-copy-from-icu.patch                             |  52 +++++++
 parallel-build.patch                               | 169 +++++++++++++++++++++
 6 files changed, 300 insertions(+), 18 deletions(-)
---
diff --git a/Firebird.spec b/Firebird.spec
index eddf9b7..8103acd 100644
--- a/Firebird.spec
+++ b/Firebird.spec
@@ -17,12 +17,12 @@ Summary(de.UTF-8):	Firebird - relationalen Open-Source- Datenbankmanagementsyste
 Summary(pl.UTF-8):	Firebird - serwer baz danych SQL oraz narzędzia klienckie
 Name:		Firebird
 # FirebirdCS/FirebirdSS (Classic Server/Super Server)?
-Version:	3.0.0.32483
+Version:	3.0.1.32609
 Release:	0.1
 License:	Interbase Public License 1.0, Initial Developer's Public License 1.0
 Group:		Applications/Databases
 Source0:	http://downloads.sourceforge.net/firebird/%{name}-%{version}-0.tar.bz2
-# Source0-md5:	821260b61dafc22899d1464d4e91ee6a
+# Source0-md5:	85e2ace3d6950793d4c6917473e00c74
 Source1:	http://www.firebirdsql.org/file/documentation/reference_manuals/user_manuals/Firebird-3-QuickStart.pdf
 # Source1-md5:	8e029d449e9cb3e1da8213ac6c11ad02
 # distfiles refuses this, would require some audit to allow '('/')' chars
@@ -52,7 +52,10 @@ Patch3:		%{name}-FHS.patch
 Patch4:		%{name}-opt.patch
 Patch5:		%{name}-gcc-icu.patch
 Patch6:		%{name}-libpath.patch
-Patch7:		%{name}-noroot.patch
+Patch7:		Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch
+Patch8:		Provide-sized-global-delete-operators-when-compiled.patch
+Patch9:		parallel-build.patch
+Patch10:	no-copy-from-icu.patch
 URL:		http://www.firebirdsql.org/
 BuildRequires:	autoconf >= 2.67
 BuildRequires:	automake
@@ -63,6 +66,8 @@ BuildRequires:	libicu-devel
 BuildRequires:	libstdc++-devel
 BuildRequires:	libtommath-devel
 BuildRequires:	libtool >= 2:2
+# for lockfile
+BuildRequires:	procmail
 BuildRequires:	rpmbuild(macros) >= 1.268
 BuildRequires:	sed >= 4.0
 BuildRequires:	zlib-devel
@@ -163,6 +168,9 @@ Obszerna dokumentacja do baz InterBase i Firebird.
 %patch5 -p0
 %patch6 -p1
 %patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
 
 mkdir docs
 cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8} %{SOURCE9} docs
@@ -177,8 +185,9 @@ cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8}
 %{__autoconf}
 
 %configure \
+	CFLAGS="%{rpmcflags} -fno-delete-null-pointer-checks" \
 	--prefix=%{ibdir} \
-	--with-editline \
+	--with-system-editline \
 	--with-fbconf=%{_sysconfdir}/firebird \
 	--with-fbinclude=%{_includedir} \
 	--with-fblib=%{_libdir} \
@@ -190,6 +199,7 @@ cp %{SOURCE1} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8}
 	--with-system-editline \
 	%{?debug:--enable-debug} \
 	--disable-rpath \
+	--disable-binreloc \
 	%{?with_ss:--enable-superserver} \
 
 %{__make} -j1
diff --git a/Firebird-noroot.patch b/Firebird-noroot.patch
deleted file mode 100644
index afbd4ad..0000000
--- a/Firebird-noroot.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- Firebird-3.0.0.32483-0/builds/install/arch-specific/linux/makeInstallImage.sh.in.orig	2016-04-14 16:07:29.000000000 +0200
-+++ Firebird-3.0.0.32483-0/builds/install/arch-specific/linux/makeInstallImage.sh.in	2016-08-31 21:15:58.897726690 +0200
-@@ -28,11 +28,6 @@
- # This script builds an image of the installed system into
- # the gen/buildroot directory.
- 
--if [ "`whoami`" != "root" ]; then
--	echo 'You must be root to build package'
--	exit 1
--fi
--
- # Making an assumption that this program is being run in the gen directory
- BuildRootDir=..
- BuiltFBDir=Release/firebird  # Where the just build fb exists.
diff --git a/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch b/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch
new file mode 100644
index 0000000..981b09b
--- /dev/null
+++ b/Make-the-generated-code-compatible-with-gcc-6-in-C-1.patch
@@ -0,0 +1,29 @@
+From: asfernandes <asfernandes at users.sourceforge.net>
+Date: Sat, 5 Mar 2016 03:39:36 +0000
+Subject: Make the generated code compatible with gcc 6 in C++-14 mode.
+ (cherry picked from commit 3618aa2171674babf79ef935aa049c40a3db1321)
+Patch-mainline: 
+Git-commit: 3618aa2171674babf79ef935aa049c40a3db1321
+References: bsc#964466 CORE-5099
+
+---
+ src/gpre/c_cxx.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/gpre/c_cxx.cpp b/src/gpre/c_cxx.cpp
+index df175dca9465..bafce8f282bf 100644
+--- a/src/gpre/c_cxx.cpp
++++ b/src/gpre/c_cxx.cpp
+@@ -2820,7 +2820,7 @@ static void gen_request(const gpre_req* request)
+ 		printa(0, "static %sshort\n   isc_%dl = %d;",
+ 			   (request->req_flags & REQ_extend_dpb) ? "" : CONST_STR,
+ 			   request->req_ident, request->req_length);
+-		printa(0, "static %schar\n   isc_%d [] = {", CONST_STR, request->req_ident);
++		printa(0, "static %sunsigned char\n   isc_%d [] = {", CONST_STR, request->req_ident);
+ 
+ 		const TEXT* string_type = "blr";
+ 		if (gpreGlob.sw_raw)
+-- 
+2.8.2
+
+
diff --git a/Provide-sized-global-delete-operators-when-compiled.patch b/Provide-sized-global-delete-operators-when-compiled.patch
new file mode 100644
index 0000000..1302d1d
--- /dev/null
+++ b/Provide-sized-global-delete-operators-when-compiled.patch
@@ -0,0 +1,36 @@
+From: Michal Kubecek <mkubecek at suse.cz>
+Date: Mon, 25 Apr 2016 08:55:36 +0200
+Subject: Provide sized global delete operators when compiled in C++14 mode
+Patch-mainline: submitted
+Git-commit: 038f9fbf559e56032e4cb49eb7ce4c3ead23fda9
+References: bsc#964466 CORE-5099
+
+---
+ src/common/classes/alloc.h | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/common/classes/alloc.h b/src/common/classes/alloc.h
+index b1026ce2aac4..fda5bfebb0cc 100644
+--- a/src/common/classes/alloc.h
++++ b/src/common/classes/alloc.h
+@@ -331,6 +331,16 @@ inline void operator delete[](void* mem, Firebird::MemoryPool& pool ALLOC_PARAMS
+ 	MemoryPool::globalFree(mem);
+ }
+ 
++#if __cplusplus >= 201402L
++inline void operator delete(void* mem, std::size_t s ALLOC_PARAMS) throw()
++{
++	MemoryPool::globalFree(mem);
++}
++inline void operator delete[](void* mem, std::size_t s ALLOC_PARAMS) throw()
++{
++	MemoryPool::globalFree(mem);
++}
++#endif
+ #ifdef DEBUG_GDS_ALLOC
+ 
+ #ifdef __clang__
+-- 
+2.8.2
+
+
diff --git a/no-copy-from-icu.patch b/no-copy-from-icu.patch
new file mode 100644
index 0000000..42ef318
--- /dev/null
+++ b/no-copy-from-icu.patch
@@ -0,0 +1,52 @@
+Description: Link isql with ICU instead of embedding part of it in the source
+Author: Damyan Ivanov <dmn at debian.org>
+
+--- a/src/isql/isql.epp
++++ b/src/isql/isql.epp
+@@ -173,34 +173,6 @@ const char* UNKNOWN = "*unknown*";
+ 
+ namespace IcuUtil
+ {
+-	// Duplicate from ICU to not need to link ISQL with it. It's used by U8_NEXT_UNSAFE.
+-	static const uint8_t utf8_countTrailBytes[256] = {
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+-
+-		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+-
+-		2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+-		3, 3, 3, 3, 3,
+-		3, 3, 3,    /* illegal in Unicode */
+-		4, 4, 4, 4, /* illegal in Unicode */
+-		5, 5,       /* illegal in Unicode */
+-		0, 0        /* illegal bytes 0xfe and 0xff */
+-	};
+-
+ 	// Return the number of characters of a string.
+ 	static unsigned charLength(SSHORT charset, unsigned len, const char* str)
+ 	{
+--- a/builds/posix/Makefile.in
++++ b/builds/posix/Makefile.in
+@@ -454,7 +454,8 @@ $(GSTAT):		$(GSTAT_Objects) $(COMMON_LIB
+ isql:			$(ISQL)
+ 
+ $(ISQL):		$(ISQL_Objects) $(COMMON_LIB)
+-	$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LIBEDITLINE) $(LINK_LIBS)
++	$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) \
++	    $(LIBEDITLINE) $(LINK_LIBS) $(ICU_LIBS)
+ 
+ nbackup:		$(NBACKUP)
+ 
diff --git a/parallel-build.patch b/parallel-build.patch
new file mode 100644
index 0000000..dc43df9
--- /dev/null
+++ b/parallel-build.patch
@@ -0,0 +1,169 @@
+Description: allow building with make -jN
+ without this there are sporadic segmentation faults
+ .
+ it seems that when gpre opens a database, it clashes with other gpre
+ processes that have the database open. perhaps this is because at
+ this stage of the build the compiled firebird engine lacks ability for
+ synchronisation. So, wrap all engine-using calls with a lock file
+Author: Damyan Ivanov <dmn at debian.org>
+Forwarded: no
+
+--- a/builds/posix/Makefile.in
++++ b/builds/posix/Makefile.in
+@@ -329,8 +329,8 @@ yachts.lnk:		metadata.fdb
+ 
+ metadata.fdb:	$(RUN_ISQL) $(SRC_ROOT)/dbs/metadata.sql
+ 	-$(RM) $@
+-	$(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql
+-	$(RUN_GFIX) -mode read_only $@
++	$(call LOCK_RUN,$(RUN_ISQL) -q -i $(SRC_ROOT)/dbs/metadata.sql)
++	$(call LOCK_RUN,$(RUN_GFIX) -mode read_only $@)
+ 	$(CHMOD) 0444 $@
+ 
+ $(HELP_FDB):	help.fdb
+@@ -339,7 +339,7 @@ $(HELP_FDB):	help.fdb
+ 	$(CHMOD) 0444 $@
+ 
+ help.fdb:	$(BLD_ROOT)/misc/help.gbak
+-	$(RUN_GBAK) -MODE read_only -R $< $@
++	$(call LOCK_RUN,$(RUN_GBAK) -MODE read_only -R $< $@)
+ 	$(CHMOD) 0444 $@
+ 
+ $(SECURITY_FDB):	security.fdb
+@@ -349,18 +349,18 @@ $(SECURITY_FDB):	security.fdb
+ security.fdb:	$(SRC_ROOT)/dbs/security.sql
+ 	-$(RM) $@
+ 	-$(RM) $(SECURITY_TMP)
+-	echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL)
+-	$(RUN_GFIX) -write async $(SECURITY_TMP)
+-	$(RUN_ISQL) -i $^ $(SECURITY_TMP)
++	$(call LOCK_RUN,echo create database \'$(SECURITY_TMP)\'\; | $(RUN_ISQL))
++	$(call LOCK_RUN,$(RUN_GFIX) -write async $(SECURITY_TMP))
++	$(call LOCK_RUN,$(RUN_ISQL) -i $^ $(SECURITY_TMP))
+ 	$(CHMOD) a=rw $(SECURITY_TMP)
+ 	$(CP) $(SECURITY_TMP) $@
+-	$(RUN_GFIX) -write sync $@
++	$(call LOCK_RUN,$(RUN_GFIX) -write sync $@)
+ 
+ msg.timestamp:	$(MSG_FILES)
+ 	-$(RM) msg.fdb
+-	echo create database \'msg.fdb\'\; | $(RUN_ISQL)
+-	$(RUN_GFIX) -write async msg.fdb
+-	for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done
++	$(call LOCK_RUN,echo create database \'msg.fdb\'\; | $(RUN_ISQL))
++	$(call LOCK_RUN,$(RUN_GFIX) -write async msg.fdb)
++	$(call LOCK_RUN,for sql in $(MSG_FILES); do (echo $$sql; $(RUN_ISQL) -i $$sql msg.fdb) || exit; done)
+ 	$(TOUCH) $@
+ 
+ 
+@@ -528,7 +528,7 @@ codes:	gen_codes
+ ids:	$(IDS)
+ 
+ gen_codes:	$(CODES) msg.timestamp
+-	$(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT)
++	$(call LOCK_RUN,$(CODES) $(SRC_ROOT)/include/gen $(LNG_ROOT))
+ 
+ $(CODES):	$(CODES_Objects) $(COMMON_LIB)
+ 	$(EXE_LINK) $(EXE_LINK_OPTIONS) $^ -o $@ $(FIREBIRD_LIBRARY_LINK) $(LINK_LIBS)
+@@ -564,7 +564,7 @@ examples: include_generic
+ message_file:	$(FIREBIRD_MSG)
+ 
+ $(FIREBIRD_MSG):	$(BUILD_FILE) msg.timestamp
+-	$(BUILD_FILE) -d msg.fdb -f $@
++	$(call LOCK_RUN,$(BUILD_FILE) -d msg.fdb -f $@)
+ 	$(CHMOD_6) $@
+ 
+ $(BUILD_FILE):	$(BUILD_Objects) $(COMMON_LIB)
+--- a/builds/posix/make.defaults
++++ b/builds/posix/make.defaults
+@@ -378,6 +378,7 @@ GPRE_BOOT       = $(RBIN)/gpre_boot$(EXE
+ GPRE            = $(BIN)/gpre$(EXEC_EXT)
+ RUN_GPRE        = $(RBIN)/gpre$(EXEC_EXT)
+ GPRE_CURRENT    = $(RBIN)/gpre_current$(EXEC_EXT)
++LOCK_RUN        = sh -x -c "lockfile -1 $(BIN)/build-db.lock && $(subst $$,\$$,$(1)); res=\$$?; rm -f $(BIN)/build-db.lock; exit \$$res"
+ 
+ 
+ # From msgs
+--- a/builds/posix/make.rules
++++ b/builds/posix/make.rules
+@@ -72,17 +72,17 @@ ISQL_GPRE_FLAGS = -m -z -n -ocxx
+ .SUFFIXES: .c .e .epp .cpp
+ 
+ .e.c:
+-	$(GPRE_CURRENT) $(GPRE_FLAGS) $< $@
++	$(call LOCK_RUN,$(GPRE_CURRENT) $(GPRE_FLAGS) $< $@)
+ 
+ 
+ $(OBJ)/jrd/%.cpp: $(SRC_ROOT)/jrd/%.epp
+-	$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@
++	$(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $(firstword $<) $@)
+ 
+ $(OBJ)/isql/%.cpp: $(SRC_ROOT)/isql/%.epp
+-	$(GPRE_CURRENT) $(ISQL_GPRE_FLAGS) $< $@
++	$(call LOCK_RUN,$(GPRE_CURRENT) $(ISQL_GPRE_FLAGS) $< $@)
+ 
+ $(OBJ)/%.cpp: $(SRC_ROOT)/%.epp
+-	$(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@
++	$(call LOCK_RUN,$(GPRE_CURRENT) $(GPRE_FLAGS) $(firstword $<) $@)
+ 
+ 
+ .SUFFIXES: .lo .o .cpp .c
+--- a/builds/posix/make.shared.targets
++++ b/builds/posix/make.shared.targets
+@@ -65,13 +65,13 @@ $(OBJ)/dsql/Parser.o $(OBJ)/yvalve/keywo
+ 
+ # Special cases for building cpp from epp
+ $(OBJ)/dsql/metd.cpp: $(SRC_ROOT)/dsql/metd.epp
+-	$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
++	$(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
+ 
+ $(OBJ)/dsql/DdlNodes.cpp: $(SRC_ROOT)/dsql/DdlNodes.epp
+-	$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
++	$(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
+ 
+ $(OBJ)/dsql/PackageNodes.cpp: $(SRC_ROOT)/dsql/PackageNodes.epp
+-	$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@
++	$(call LOCK_RUN,$(GPRE_CURRENT) $(JRD_GPRE_FLAGS) $< $@)
+ 
+ # Adding resources as prerequisite for some files
+ 
+--- a/builds/posix/Makefile.in.examples
++++ b/builds/posix/Makefile.in.examples
+@@ -123,8 +123,8 @@ $(EXAMPLES_DEST)% : $(EXAMPLES_SRC)%
+ 
+ $(EMPLOYEE_DB):	$(EXAMPLES_DEST)/empbuild$(EXEC_EXT) $(INPUT_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+ 	-$(RM) $(EMPLOYEE_DB)
+-	./empbuild $(EMPLOYEE_DB)
+-	$(GFIX) -write sync $(EMPLOYEE_DB)
++	$(call LOCK_RUN,./empbuild $(EMPLOYEE_DB))
++	$(call LOCK_RUN,$(GFIX) -write sync $(EMPLOYEE_DB))
+ 	-$(CHMOD_6) $(EMPLOYEE_DB)
+ 
+ # To get past the fact isql is called from the programs, we create a local link in this directory
+@@ -140,7 +140,7 @@ $(EXAMPLES_DEST)/empbuild.c:	$(EXAMPLES_
+ 
+ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPLES_DEST)/empddl.sql $(EXAMPLES_DEST)/empbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+ 	-$(RM) $(EXAMPLES_DEST)/empbuild.fdb
+-	$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql
++	$(call LOCK_RUN,$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i empbld.sql)
+ 
+ # The chain for intlemp.fdb is the same a script file to create an empty database
+ # to allow a .e program to be compiled, to then create and populate with data
+@@ -148,7 +148,7 @@ $(EXAMPLES_DEST)/empbuild.fdb : $(EXAMPL
+ 
+ $(EXAMPLES_DEST)/intlemp.fdb:	$(EXAMPLES_DEST)/intlbld$(EXEC_EXT) $(INTL_Sources) $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+ 	-$(RM) intlemp.fdb
+-	./intlbld intlemp.fdb
++	$(call LOCK_RUN,./intlbld intlemp.fdb)
+ 	-$(CHMOD_6) intlemp.fdb
+ 
+ $(EXAMPLES_DEST)/intlbld$(EXEC_EXT): $(INTLBLD_Objects) $(COMMON_LIB)
+@@ -158,7 +158,7 @@ $(EXAMPLES_DEST)/intlbld.c:	$(EXAMPLES_D
+ 
+ $(EXAMPLES_DEST)/intlbuild.fdb : $(EXAMPLES_DEST)/intlddl.sql $(EXAMPLES_DEST)/intlbld.sql $(EXAMPLES_DEST)/isql$(EXEC_EXT)
+ 	-$(RM) intlbuild.fdb
+-	$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql
++	$(call LOCK_RUN,$(EXAMPLES_DEST)/isql$(EXEC_EXT) -i intlbld.sql)
+ 
+ 
+ $(EXAMPLES_DEST)/%.sql: $(EXAMPLES_SRC)/empbuild/%.sql
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/Firebird.git/commitdiff/8f47d69b00b6c3b422924c807a7f11bf6f237e81



More information about the pld-cvs-commit mailing list