v0.4.2 - Implement NIP-11 Relay Information Document with event-based configuration - make relay info dynamically configurable via admin API
This commit is contained in:
118
Makefile
118
Makefile
@@ -36,10 +36,10 @@ $(NOSTR_CORE_LIB):
|
||||
@echo "Building nostr_core_lib..."
|
||||
cd nostr_core_lib && ./build.sh
|
||||
|
||||
# Generate version.h from git tags
|
||||
src/version.h:
|
||||
# Generate main.h from git tags
|
||||
src/main.h:
|
||||
@if [ -d .git ]; then \
|
||||
echo "Generating version.h from git tags..."; \
|
||||
echo "Generating main.h from git tags..."; \
|
||||
RAW_VERSION=$$(git describe --tags --always 2>/dev/null || echo "unknown"); \
|
||||
if echo "$$RAW_VERSION" | grep -q "^v[0-9]"; then \
|
||||
CLEAN_VERSION=$$(echo "$$RAW_VERSION" | sed 's/^v//' | cut -d- -f1); \
|
||||
@@ -51,54 +51,98 @@ src/version.h:
|
||||
VERSION="v0.0.0"; \
|
||||
MAJOR=0; MINOR=0; PATCH=0; \
|
||||
fi; \
|
||||
echo "/* Auto-generated version information */" > src/version.h; \
|
||||
echo "#ifndef VERSION_H" >> src/version.h; \
|
||||
echo "#define VERSION_H" >> src/version.h; \
|
||||
echo "" >> src/version.h; \
|
||||
echo "#define VERSION \"$$VERSION\"" >> src/version.h; \
|
||||
echo "#define VERSION_MAJOR $$MAJOR" >> src/version.h; \
|
||||
echo "#define VERSION_MINOR $$MINOR" >> src/version.h; \
|
||||
echo "#define VERSION_PATCH $$PATCH" >> src/version.h; \
|
||||
echo "" >> src/version.h; \
|
||||
echo "#endif /* VERSION_H */" >> src/version.h; \
|
||||
echo "Generated version.h with clean version: $$VERSION"; \
|
||||
elif [ ! -f src/version.h ]; then \
|
||||
echo "Git not available and version.h missing, creating fallback version.h..."; \
|
||||
echo "/*" > src/main.h; \
|
||||
echo " * C-Relay Main Header - Version and Metadata Information" >> src/main.h; \
|
||||
echo " *" >> src/main.h; \
|
||||
echo " * This header contains version information and relay metadata that is" >> src/main.h; \
|
||||
echo " * automatically updated by the build system (build_and_push.sh)." >> src/main.h; \
|
||||
echo " *" >> src/main.h; \
|
||||
echo " * The build_and_push.sh script updates VERSION and related macros when" >> src/main.h; \
|
||||
echo " * creating new releases." >> src/main.h; \
|
||||
echo " */" >> src/main.h; \
|
||||
echo "" >> src/main.h; \
|
||||
echo "#ifndef MAIN_H" >> src/main.h; \
|
||||
echo "#define MAIN_H" >> src/main.h; \
|
||||
echo "" >> src/main.h; \
|
||||
echo "// Version information (auto-updated by build_and_push.sh)" >> src/main.h; \
|
||||
echo "#define VERSION \"$$VERSION\"" >> src/main.h; \
|
||||
echo "#define VERSION_MAJOR $$MAJOR" >> src/main.h; \
|
||||
echo "#define VERSION_MINOR $$MINOR" >> src/main.h; \
|
||||
echo "#define VERSION_PATCH $$PATCH" >> src/main.h; \
|
||||
echo "" >> src/main.h; \
|
||||
echo "// Relay metadata (authoritative source for NIP-11 information)" >> src/main.h; \
|
||||
echo "#define RELAY_NAME \"C-Relay\"" >> src/main.h; \
|
||||
echo "#define RELAY_DESCRIPTION \"High-performance C Nostr relay with SQLite storage\"" >> src/main.h; \
|
||||
echo "#define RELAY_CONTACT \"\"" >> src/main.h; \
|
||||
echo "#define RELAY_SOFTWARE \"https://git.laantungir.net/laantungir/c-relay.git\"" >> src/main.h; \
|
||||
echo "#define RELAY_VERSION VERSION // Use the same version as the build" >> src/main.h; \
|
||||
echo "#define SUPPORTED_NIPS \"1,2,4,9,11,12,13,15,16,20,22,33,40,42\"" >> src/main.h; \
|
||||
echo "#define LANGUAGE_TAGS \"\"" >> src/main.h; \
|
||||
echo "#define RELAY_COUNTRIES \"\"" >> src/main.h; \
|
||||
echo "#define POSTING_POLICY \"\"" >> src/main.h; \
|
||||
echo "#define PAYMENTS_URL \"\"" >> src/main.h; \
|
||||
echo "" >> src/main.h; \
|
||||
echo "#endif /* MAIN_H */" >> src/main.h; \
|
||||
echo "Generated main.h with clean version: $$VERSION"; \
|
||||
elif [ ! -f src/main.h ]; then \
|
||||
echo "Git not available and main.h missing, creating fallback main.h..."; \
|
||||
VERSION="v0.0.0"; \
|
||||
echo "/* Auto-generated version information */" > src/version.h; \
|
||||
echo "#ifndef VERSION_H" >> src/version.h; \
|
||||
echo "#define VERSION_H" >> src/version.h; \
|
||||
echo "" >> src/version.h; \
|
||||
echo "#define VERSION \"$$VERSION\"" >> src/version.h; \
|
||||
echo "#define VERSION_MAJOR 0" >> src/version.h; \
|
||||
echo "#define VERSION_MINOR 0" >> src/version.h; \
|
||||
echo "#define VERSION_PATCH 0" >> src/version.h; \
|
||||
echo "" >> src/version.h; \
|
||||
echo "#endif /* VERSION_H */" >> src/version.h; \
|
||||
echo "Created fallback version.h with version: $$VERSION"; \
|
||||
echo "/*" > src/main.h; \
|
||||
echo " * C-Relay Main Header - Version and Metadata Information" >> src/main.h; \
|
||||
echo " *" >> src/main.h; \
|
||||
echo " * This header contains version information and relay metadata that is" >> src/main.h; \
|
||||
echo " * automatically updated by the build system (build_and_push.sh)." >> src/main.h; \
|
||||
echo " *" >> src/main.h; \
|
||||
echo " * The build_and_push.sh script updates VERSION and related macros when" >> src/main.h; \
|
||||
echo " * creating new releases." >> src/main.h; \
|
||||
echo " */" >> src/main.h; \
|
||||
echo "" >> src/main.h; \
|
||||
echo "#ifndef MAIN_H" >> src/main.h; \
|
||||
echo "#define MAIN_H" >> src/main.h; \
|
||||
echo "" >> src/main.h; \
|
||||
echo "// Version information (auto-updated by build_and_push.sh)" >> src/main.h; \
|
||||
echo "#define VERSION \"$$VERSION\"" >> src/main.h; \
|
||||
echo "#define VERSION_MAJOR 0" >> src/main.h; \
|
||||
echo "#define VERSION_MINOR 0" >> src/main.h; \
|
||||
echo "#define VERSION_PATCH 0" >> src/main.h; \
|
||||
echo "" >> src/main.h; \
|
||||
echo "// Relay metadata (authoritative source for NIP-11 information)" >> src/main.h; \
|
||||
echo "#define RELAY_NAME \"C-Relay\"" >> src/main.h; \
|
||||
echo "#define RELAY_DESCRIPTION \"High-performance C Nostr relay with SQLite storage\"" >> src/main.h; \
|
||||
echo "#define RELAY_CONTACT \"\"" >> src/main.h; \
|
||||
echo "#define RELAY_SOFTWARE \"https://git.laantungir.net/laantungir/c-relay.git\"" >> src/main.h; \
|
||||
echo "#define RELAY_VERSION VERSION // Use the same version as the build" >> src/main.h; \
|
||||
echo "#define SUPPORTED_NIPS \"1,2,4,9,11,12,13,15,16,20,22,33,40,42\"" >> src/main.h; \
|
||||
echo "#define LANGUAGE_TAGS \"\"" >> src/main.h; \
|
||||
echo "#define RELAY_COUNTRIES \"\"" >> src/main.h; \
|
||||
echo "#define POSTING_POLICY \"\"" >> src/main.h; \
|
||||
echo "#define PAYMENTS_URL \"\"" >> src/main.h; \
|
||||
echo "" >> src/main.h; \
|
||||
echo "#endif /* MAIN_H */" >> src/main.h; \
|
||||
echo "Created fallback main.h with version: $$VERSION"; \
|
||||
else \
|
||||
echo "Git not available, preserving existing version.h"; \
|
||||
echo "Git not available, preserving existing main.h"; \
|
||||
fi
|
||||
|
||||
# Force version.h regeneration (useful for development)
|
||||
# Force main.h regeneration (useful for development)
|
||||
force-version:
|
||||
@echo "Force regenerating version.h..."
|
||||
@rm -f src/version.h
|
||||
@$(MAKE) src/version.h
|
||||
@echo "Force regenerating main.h..."
|
||||
@rm -f src/main.h
|
||||
@$(MAKE) src/main.h
|
||||
|
||||
# Build the relay
|
||||
$(TARGET): $(BUILD_DIR) src/version.h src/sql_schema.h $(MAIN_SRC) $(NOSTR_CORE_LIB)
|
||||
$(TARGET): $(BUILD_DIR) src/main.h src/sql_schema.h $(MAIN_SRC) $(NOSTR_CORE_LIB)
|
||||
@echo "Compiling C-Relay for architecture: $(ARCH)"
|
||||
$(CC) $(CFLAGS) $(INCLUDES) $(MAIN_SRC) -o $(TARGET) $(NOSTR_CORE_LIB) $(LIBS)
|
||||
@echo "Build complete: $(TARGET)"
|
||||
|
||||
# Build for specific architectures
|
||||
x86: $(BUILD_DIR) src/version.h src/sql_schema.h $(MAIN_SRC) $(NOSTR_CORE_LIB)
|
||||
x86: $(BUILD_DIR) src/main.h src/sql_schema.h $(MAIN_SRC) $(NOSTR_CORE_LIB)
|
||||
@echo "Building C-Relay for x86_64..."
|
||||
$(CC) $(CFLAGS) $(INCLUDES) $(MAIN_SRC) -o $(BUILD_DIR)/c_relay_x86 $(NOSTR_CORE_LIB) $(LIBS)
|
||||
@echo "Build complete: $(BUILD_DIR)/c_relay_x86"
|
||||
|
||||
arm64: $(BUILD_DIR) src/version.h src/sql_schema.h $(MAIN_SRC) $(NOSTR_CORE_LIB)
|
||||
arm64: $(BUILD_DIR) src/main.h src/sql_schema.h $(MAIN_SRC) $(NOSTR_CORE_LIB)
|
||||
@echo "Cross-compiling C-Relay for ARM64..."
|
||||
@if ! command -v aarch64-linux-gnu-gcc >/dev/null 2>&1; then \
|
||||
echo "ERROR: ARM64 cross-compiler not found."; \
|
||||
@@ -171,7 +215,7 @@ init-db:
|
||||
# Clean build artifacts
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
rm -f src/version.h
|
||||
rm -f src/main.h
|
||||
@echo "Clean complete"
|
||||
|
||||
# Clean everything including nostr_core_lib
|
||||
@@ -210,6 +254,6 @@ help:
|
||||
@echo " make check-toolchain # Check what compilers are available"
|
||||
@echo " make test # Run tests"
|
||||
@echo " make init-db # Set up database"
|
||||
@echo " make force-version # Force regenerate version.h from git"
|
||||
@echo " make force-version # Force regenerate main.h from git"
|
||||
|
||||
.PHONY: all x86 arm64 test init-db clean clean-all install-deps install-cross-tools install-arm64-deps check-toolchain help force-version
|
||||
Reference in New Issue
Block a user