From ca75b91498c71b6558bd6befa3ad1510e00cf5fa Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Mon, 8 Jun 2020 15:06:02 +0900
Subject: [PATCH] Move frontend-side archive APIs to src/fe_utils/

---
 .../{common/fe_archive.h => fe_utils/archive.h}        |  4 ++--
 src/common/Makefile                                    |  1 -
 src/fe_utils/Makefile                                  |  1 +
 src/{common/fe_archive.c => fe_utils/archive.c}        | 10 +++-------
 src/bin/pg_rewind/parsexlog.c                          |  2 +-
 src/tools/msvc/Mkvcbuild.pm                            |  8 ++++----
 6 files changed, 11 insertions(+), 15 deletions(-)
 rename src/include/{common/fe_archive.h => fe_utils/archive.h} (91%)
 rename src/{common/fe_archive.c => fe_utils/archive.c} (94%)

diff --git a/src/include/common/fe_archive.h b/src/include/fe_utils/archive.h
similarity index 91%
rename from src/include/common/fe_archive.h
rename to src/include/fe_utils/archive.h
index 495b560d24..a6beaf04ea 100644
--- a/src/include/common/fe_archive.h
+++ b/src/include/fe_utils/archive.h
@@ -1,12 +1,12 @@
 /*-------------------------------------------------------------------------
  *
- * fe_archive.h
+ * archive.h
  *	  Routines to access WAL archives from frontend
  *
  * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * src/include/common/fe_archive.h
+ * src/include/fe_utils/archive.h
  *
  *-------------------------------------------------------------------------
  */
diff --git a/src/common/Makefile b/src/common/Makefile
index d0be882cca..16619e4ba8 100644
--- a/src/common/Makefile
+++ b/src/common/Makefile
@@ -89,7 +89,6 @@ endif
 # (Mkvcbuild.pm has a copy of this list, too)
 OBJS_FRONTEND = \
 	$(OBJS_COMMON) \
-	fe_archive.o \
 	fe_memutils.o \
 	file_utils.o \
 	logging.o \
diff --git a/src/fe_utils/Makefile b/src/fe_utils/Makefile
index 9eb4417690..dd20663604 100644
--- a/src/fe_utils/Makefile
+++ b/src/fe_utils/Makefile
@@ -20,6 +20,7 @@ include $(top_builddir)/src/Makefile.global
 override CPPFLAGS := -DFRONTEND -I$(libpq_srcdir) $(CPPFLAGS)
 
 OBJS = \
+	archive.o \
 	cancel.o \
 	conditional.o \
 	mbprint.o \
diff --git a/src/common/fe_archive.c b/src/fe_utils/archive.c
similarity index 94%
rename from src/common/fe_archive.c
rename to src/fe_utils/archive.c
index b0d68870db..c4cb213198 100644
--- a/src/common/fe_archive.c
+++ b/src/fe_utils/archive.c
@@ -1,6 +1,6 @@
 /*-------------------------------------------------------------------------
  *
- * fe_archive.c
+ * archive.c
  *	  Routines to access WAL archives from frontend
  *
  * Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
@@ -8,15 +8,11 @@
  *
  *
  * IDENTIFICATION
- *	  src/common/fe_archive.c
+ *	  src/fe_utils/archive.c
  *
  *-------------------------------------------------------------------------
  */
 
-#ifndef FRONTEND
-#error "This file is not expected to be compiled for backend code"
-#endif
-
 #include "postgres_fe.h"
 
 #include <unistd.h>
@@ -24,8 +20,8 @@
 
 #include "access/xlog_internal.h"
 #include "common/archive.h"
-#include "common/fe_archive.h"
 #include "common/logging.h"
+#include "fe_utils/archive.h"
 
 
 /*
diff --git a/src/bin/pg_rewind/parsexlog.c b/src/bin/pg_rewind/parsexlog.c
index d637f5eb77..bc6f976994 100644
--- a/src/bin/pg_rewind/parsexlog.c
+++ b/src/bin/pg_rewind/parsexlog.c
@@ -19,7 +19,7 @@
 #include "catalog/pg_control.h"
 #include "catalog/storage_xlog.h"
 #include "commands/dbcommands_xlog.h"
-#include "common/fe_archive.h"
+#include "fe_utils/archive.h"
 #include "filemap.h"
 #include "pg_rewind.h"
 
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index c21c94dc1f..82d7d2c0e8 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -138,14 +138,14 @@ sub mkvcbuild
 	}
 
 	our @pgcommonfrontendfiles = (
-		@pgcommonallfiles, qw(fe_archive.c fe_memutils.c
-		  file_utils.c logging.c restricted_token.c));
+		@pgcommonallfiles, qw(fe_memutils.c file_utils.c
+			logging.c restricted_token.c));
 
 	our @pgcommonbkndfiles = @pgcommonallfiles;
 
 	our @pgfeutilsfiles = qw(
-	  cancel.c conditional.c mbprint.c print.c psqlscan.l psqlscan.c
-	  simple_list.c string_utils.c recovery_gen.c);
+	  archive.c cancel.c conditional.c mbprint.c print.c psqlscan.l
+	  psqlscan.c simple_list.c string_utils.c recovery_gen.c);
 
 	$libpgport = $solution->AddProject('libpgport', 'lib', 'misc');
 	$libpgport->AddDefine('FRONTEND');
-- 
2.27.0.rc0

