v0.0.5: Fix Windows cross-compile, clean Makefile
All checks were successful
Build & Release Plugin / build (push) Successful in 9s

- Makefile: platform-specific unit paths — Linux uses FCL source with
  -fPIC, FreeBSD/Windows use pre-compiled units from /opt/fpcup/fpc/units
- CI: delete existing release before creating (handles re-runs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-23 15:58:34 -07:00
parent 67a242c35d
commit 995cc86433
4 changed files with 40 additions and 22 deletions

View File

@@ -68,6 +68,13 @@ jobs:
REPO="${{ github.repository }}"
API="https://kjgr.io/api/v1/repos/${REPO}/releases"
# Delete existing release for this tag (handles re-tags/re-runs)
EXISTING=$(curl -s "$API/tags/$TAG" -H "Authorization: token $GITEA_TOKEN" | jq -r '.id // empty')
if [ -n "$EXISTING" ] && [ "$EXISTING" != "null" ]; then
echo "Deleting existing release $EXISTING for tag $TAG"
curl -s -X DELETE "$API/$EXISTING" -H "Authorization: token $GITEA_TOKEN"
fi
RELEASE=$(curl -s -X POST "$API" \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \

View File

@@ -14,42 +14,53 @@ FPC ?= fpc
TARGET = libechomail.so
SOURCE = echomail.pp
PLATFORM ?= linux-x86_64
VERSION = 0.0.4
VERSION = 0.0.5
# ---- fpcup paths ----
FPCUP = /opt/fpcup
FPCSRC = $(FPCUP)/fpcsrc/packages
FPCUNITS = $(FPCUP)/fpc/units
FPCFLAGS = -Mobjfpc -Sh -CX -XXs -O2 -fPIC \
# Common flags (all platforms)
FPCFLAGS = -Mobjfpc -Sh -CX -XXs -O2 \
-Fubuild -FUbuild \
-Fu. \
-Fu/tmp/paszlib_fpic \
-Fu$(FPCSRC)/fcl-json/src \
-Fu$(FPCSRC)/fcl-base/src \
-Fu$(FPCSRC)/fcl-base/src/unix \
-Fu$(FPCSRC)/fcl-extra/src \
-Fu$(FPCSRC)/fcl-extra/src/unix \
-Fu$(FPCSRC)/fcl-net/src \
-Fu$(FPCSRC)/fcl-net/src/unix \
-Fu$(FPCSRC)/fcl-process/src \
-Fu$(FPCSRC)/fcl-process/src/unix \
-Fi$(FPCSRC)/fcl-process/src/unix \
-Fi$(FPCSRC)/fcl-base/src/unix \
-Fi$(FPCSRC)/fcl-extra/src/unix \
-Fi$(FPCSRC)/fcl-net/src/unix \
-o$(TARGET)
-Fu.
ifeq ($(PLATFORM),linux-x86_64)
# Native Linux: compile FCL from source with -fPIC for .so linking
FPCFLAGS += -fPIC \
-Fu/tmp/paszlib_fpic \
-Fu$(FPCSRC)/fcl-json/src \
-Fu$(FPCSRC)/fcl-base/src \
-Fu$(FPCSRC)/fcl-base/src/unix \
-Fu$(FPCSRC)/fcl-extra/src \
-Fu$(FPCSRC)/fcl-extra/src/unix \
-Fu$(FPCSRC)/fcl-net/src \
-Fu$(FPCSRC)/fcl-net/src/unix \
-Fu$(FPCSRC)/fcl-process/src \
-Fu$(FPCSRC)/fcl-process/src/unix \
-Fi$(FPCSRC)/fcl-process/src/unix \
-Fi$(FPCSRC)/fcl-base/src/unix \
-Fi$(FPCSRC)/fcl-extra/src/unix \
-Fi$(FPCSRC)/fcl-net/src/unix
endif
ifeq ($(PLATFORM),freebsd-x86_64)
FPC = ppcrossx64
FPCFLAGS += -Tfreebsd
TARGET = libechomail.so
FPCFLAGS += -Tfreebsd \
-Fu$(FPCUNITS)/x86_64-freebsd/*
endif
ifeq ($(PLATFORM),win64)
FPC = ppcrossx64
TARGET = echomail.dll
FPCFLAGS += -Twin64 -o$(TARGET)
FPCFLAGS += -Twin64 \
-Fu$(FPCUNITS)/x86_64-win64/*
endif
FPCFLAGS += -o$(TARGET)
INSTALL_DIR ?= ../../Fastway-Server/src/plugins
.PHONY: all clean install package

View File

@@ -13,7 +13,7 @@ uses
fw_fido_outbound;
const
ECHOMAIL_VERSION = '0.0.4';
ECHOMAIL_VERSION = '0.0.5';
type
TEchomailPlugin = class;

View File

@@ -1,6 +1,6 @@
{
"name": "echomail",
"version": "0.0.4",
"version": "0.0.5",
"api_version": 1,
"description": "Echomail Processor - Tosser, scanner, packer, AreaFix, netmail routing",
"short_description": "FidoNet echomail tosser and scanner (like FastEcho/Squish)",