Compare commits

...

8 Commits

Author SHA1 Message Date
b14e52133d Marged lint and automation fixes
All checks were successful
Archlinux build / build-arch (push) Successful in 3m5s
Debian build / build-ubuntu (push) Successful in 3m47s
2025-04-15 00:36:39 +03:00
07edf66b72 Fixed some lint errors from cppcheck
All checks were successful
Debian build / build-ubuntu (push) Successful in 3m39s
Archlinux build / build-arch (push) Successful in 3m1s
2025-04-15 00:25:59 +03:00
8261016c7e README.md fix
All checks were successful
Archlinux build / build-arch (push) Successful in 3m0s
Debian build / build-ubuntu (push) Successful in 3m41s
2025-04-14 21:28:49 +03:00
4d48c2abe9 fx version.h for years
Some checks failed
Debian build / build-ubuntu (push) Has been cancelled
Archlinux build / build-arch (push) Has been cancelled
2025-04-14 21:26:17 +03:00
7f7e420b13 Fix arch workflow to download only master version of PKGBUILD.ci
All checks were successful
Archlinux build / build-arch (push) Successful in 2m56s
Debian build / build-ubuntu (push) Successful in 3m42s
2025-04-13 23:01:37 +03:00
52b3b230b9 Fix PKGBUILD.ci - reverse naming, artifact collection
All checks were successful
Archlinux build / build-arch (push) Successful in 4m3s
Debian build / build-ubuntu (push) Successful in 3m41s
2025-04-13 22:44:38 +03:00
416795159f Fix PKGBUILD.ci - if-fi
Some checks failed
Archlinux build / build-arch (push) Failing after 2m48s
Debian build / build-ubuntu (push) Successful in 3m39s
2025-04-13 22:30:27 +03:00
04f62c7725 Fix PKGBUILD.ci for CI workflow, added manual action start
Some checks failed
Debian build / build-ubuntu (push) Has been cancelled
Archlinux build / build-arch (push) Successful in 2m52s
2025-04-13 22:26:47 +03:00
10 changed files with 55 additions and 31 deletions

View File

@ -3,14 +3,14 @@ run-name: Deploy to ${{ inputs.deploy_target }} by @${{ github.actor }} 🚀
on: on:
- push - push
- workflow_dispatch - workflow_dispatch
if: ${{ github.ref }} == 'refs/head/master'
jobs: jobs:
build-arch: build-arch:
runs-on: arch-latest runs-on: arch-latest
if: ${{ github.ref }} == 'refs/head/master'
branches: branches:
- 'master' - 'master'
- 'zx'
steps: steps:
- name: Checking environment - name: Checking environment
continue-on-error: true continue-on-error: true
@ -24,8 +24,8 @@ jobs:
run: useradd -d /builder -g users -m builder run: useradd -d /builder -g users -m builder
- name: Downloading PKGBUILD - name: Downloading PKGBUILD
run: | run: |
su - builder -c "curl -O http://zxprj:3001/zx/bforce/raw/branch/${GITHUB_REF_NAME}/archlinux/bforce.install" su - builder -c "curl -O http://zxprj:3001/zx/bforce/raw/branch/master/archlinux/bforce.install"
su - builder -c "curl -o PKGBUILD http://zxprj:3001/zx/bforce/raw/branch/${GITHUB_REF_NAME}/archlinux/PKGBUILD.ci" su - builder -c "curl -o PKGBUILD http://zxprj:3001/zx/bforce/raw/branch/master/archlinux/PKGBUILD.ci"
- name: Building archlinux package - name: Building archlinux package
run: | run: |
su -w GITHUB_SHA,GITHUB_REF_NAME,GITHUB_REF_TYPE - builder -c makepkg su -w GITHUB_SHA,GITHUB_REF_NAME,GITHUB_REF_TYPE - builder -c makepkg
@ -34,7 +34,7 @@ jobs:
run: | run: |
echo "BFORCE_VER=$(cat /builder/src/bforce/source/.version)-$(date +%Y%M%d)" >> $GITHUB_ENV echo "BFORCE_VER=$(cat /builder/src/bforce/source/.version)-$(date +%Y%M%d)" >> $GITHUB_ENV
- name: Retrieving artifact files - name: Retrieving artifact files
run: mkdir bforce && cp /builder/bforce-r*.pkg.tar.zst bforce run: mkdir bforce && cp /builder/bforce-*.pkg.tar.zst bforce
- name: Try to upload artifacts - name: Try to upload artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:

View File

@ -1,6 +1,8 @@
name: Debian build name: Debian build
run-name: Deploy to ${{ inputs.deploy_target }} by @${{ github.actor }} 🚀 run-name: Deploy to ${{ inputs.deploy_target }} by @${{ github.actor }} 🚀
on: [push] on:
- push
- workflow_dispatch
jobs: jobs:
build-ubuntu: build-ubuntu:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@ -1,4 +1,5 @@
![zx branch](https://prj.zxalexis.ru/gitea/zx/bforce/actions/workflows/arch.yaml/badge.svg?branch=zx) ![master branch](https://prj.zxalexis.ru/gitea/zx/bforce/actions/workflows/debpkg.yaml/badge.svg?branch=master)
![master branch](https://prj.zxalexis.ru/gitea/zx/bforce/actions/workflows/arch.yaml/badge.svg?branch=master)
BinkleyForce FTN mailer BinkleyForce FTN mailer
----------------------- -----------------------
@ -45,6 +46,10 @@ New Versions
https://prj.zxalexis.ru/gitea/zx/bforce https://prj.zxalexis.ru/gitea/zx/bforce
SAST Tools
----------
[PVS-Studio](https://pvs-studio.com/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source) - static analyzer for C, C++, C#, and Java code.
Older Sources Older Sources
------------- -------------
https://github.com/zotrix/binkleyforce/ https://github.com/zotrix/binkleyforce/

View File

@ -6,7 +6,7 @@ arch=('i686' 'x86_64' 'aarch64')
url="https://prj.zxalexis.ru/gitea/zx/bforce/" url="https://prj.zxalexis.ru/gitea/zx/bforce/"
license=('GPL2') license=('GPL2')
source=( source=(
"${pkgname}::git+https://prj.zxalexis.ru/gitea/${GITHUB_REF_NAME}/bforce.git" "${pkgname}::git+https://prj.zxalexis.ru/gitea/zx/bforce.git"
) )
makedepends=('git' 'gcc' 'make' 'glibc') makedepends=('git' 'gcc' 'make' 'glibc')
provides=('bforce') provides=('bforce')
@ -25,7 +25,11 @@ prepare() {
pkgver() { pkgver() {
cd "$pkgname" cd "$pkgname"
printf "r%s.%s.%s" "$(git rev-list --count ${GITHUB_SHA})" "$(git rev-parse --short ${GITHUB_SHA})" "${GITHUB_REF_NAME}" if [ "${GITHUB_REF_TYPE}" = "tags" ]; then
printf "v%s" "${GITHUB_REF_NAME}"
else
printf "r%s.%s.%s" "$(git rev-list --count ${GITHUB_SHA})" "$(git rev-parse --short ${GITHUB_SHA})" "${GITHUB_REF_NAME}"
fi
} }
package() { package() {

View File

@ -950,7 +950,7 @@ int yydebug;
`-----------------------------------------------*/ `-----------------------------------------------*/
static void static void
yydestruct (const char *yymsg, yydestruct (char *yymsg,
yysymbol_kind_t yykind, YYSTYPE *yyvaluep) yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
{ {
YY_USE (yyvaluep); YY_USE (yyvaluep);
@ -1059,6 +1059,7 @@ yysetstate:
/* Give user a chance to reallocate the stack. Use copies of /* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into these so that the &'s don't force the real ones into
memory. */ memory. */
YYSTYPE *yyls1 = yyls;
yy_state_t *yyss1 = yyss; yy_state_t *yyss1 = yyss;
YYSTYPE *yyvs1 = yyvs; YYSTYPE *yyvs1 = yyvs;
@ -1069,7 +1070,9 @@ yysetstate:
yyoverflow (YY_("memory exhausted"), yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * YYSIZEOF (*yyssp), &yyss1, yysize * YYSIZEOF (*yyssp),
&yyvs1, yysize * YYSIZEOF (*yyvsp), &yyvs1, yysize * YYSIZEOF (*yyvsp),
&yyls1, yysize * YYSIZEOF (*yylsp),
&yystacksize); &yystacksize);
yyls = yyls1;
yyss = yyss1; yyss = yyss1;
yyvs = yyvs1; yyvs = yyvs1;
} }

View File

@ -360,7 +360,8 @@ static int expr_check_mailer(const char *str)
static int expr_check_addr(const char *str) static int expr_check_addr(const char *str)
{ {
s_faddr addr; s_faddr addr = { 0, 0, 0, 0, 0, '\0' };
#ifdef DEBUG #ifdef DEBUG
char abuf1[BF_MAXADDRSTR+1]; char abuf1[BF_MAXADDRSTR+1];
char abuf2[BF_MAXADDRSTR+1]; char abuf2[BF_MAXADDRSTR+1];
@ -368,6 +369,7 @@ static int expr_check_addr(const char *str)
DEB((D_EVENT, "[yacc] addr: \"%s\" (session with \"%s\")", DEB((D_EVENT, "[yacc] addr: \"%s\" (session with \"%s\")",
ftn_addrstr(abuf1, addr), ftn_addrstr(abuf1, addr),
ftn_addrstr(abuf2, state.node.addr))); ftn_addrstr(abuf2, state.node.addr)));
#endif #endif
if( !state.valid ) if( !state.valid )

View File

@ -172,7 +172,7 @@ int log_reopen(const char *logname, const char *ext, const char *tty)
} }
int log(const char *s, ...) void log(const char *s, ...)
{ {
char timestr[40]; char timestr[40];
@ -212,10 +212,10 @@ int log(const char *s, ...)
va_end(args); va_end(args);
return 0; //return 0;
} }
int logerr(const char *s, ...) void logerr(const char *s, ...)
{ {
char timestr[40]; char timestr[40];
va_list args; va_list args;
@ -281,7 +281,7 @@ int logerr(const char *s, ...)
va_end(args); va_end(args);
return 0; //return 0;
} }
#endif /* USE_SYSLOG */ #endif /* USE_SYSLOG */
@ -308,7 +308,7 @@ int log_open(const char *logname, const char *ext, const char *tty)
p = xstrcat(p, BF_VERSION); p = xstrcat(p, BF_VERSION);
int fac = conf_number(cf_syslog_facility); int fac = conf_number(cf_syslog_facility);
if( tty && *tty ) if( tty && *tty )
strncpy(p, tty, sizeof(p)); strncpy(p, tty, strlen(p));
openlog(p, LOG_PID, fac); openlog(p, LOG_PID, fac);
slog_active = TRUE; slog_active = TRUE;
return 0; return 0;
@ -330,7 +330,7 @@ int log_close(void)
} }
int log(const char *s, ...) void log(const char *s, ...)
{ {
char timestr[40]; char timestr[40];
@ -357,10 +357,10 @@ int log(const char *s, ...)
va_end(args); va_end(args);
return 0; //return 0;
} }
int logerr(const char *s, ...) void logerr(const char *s, ...)
{ {
char timestr[40]; char timestr[40];
@ -379,7 +379,7 @@ int logerr(const char *s, ...)
va_end(args); va_end(args);
return 0; // return 0;
} }
#endif /* USE_SYSLOG */ #endif /* USE_SYSLOG */
@ -530,7 +530,7 @@ int debug_close(void)
return rc; return rc;
} }
int debug(unsigned long what, const char *str, ...) void debug(unsigned long what, const char *str, ...)
{ {
char buf[40]; char buf[40];
va_list args; va_list args;
@ -554,7 +554,7 @@ int debug(unsigned long what, const char *str, ...)
} }
} }
return 0; //return 0;
} }
#endif /* DEBUG */ #endif /* DEBUG */

View File

@ -152,6 +152,7 @@ int exec_redirect_descriptor(int desc, const char *fname, int flags)
{ {
log("exec error: cannot open \"%s\" <--> %d (got %d)", log("exec error: cannot open \"%s\" <--> %d (got %d)",
fname, desc, fd); fname, desc, fd);
close(fd);
return -1; return -1;
} }
@ -329,7 +330,8 @@ int xsystem(const char *command, const char *p_input, const char *p_output)
{ {
pid_t pid; pid_t pid;
int status; int status;
int fd;
ASSERT(command != NULL); ASSERT(command != NULL);
DEB((D_INFO, "xsystem: command \"%s\", input \"%s\", output \"%s\"", DEB((D_INFO, "xsystem: command \"%s\", input \"%s\", output \"%s\"",
@ -342,27 +344,33 @@ int xsystem(const char *command, const char *p_input, const char *p_output)
if( p_input ) if( p_input )
{ {
close(0); close(0);
if( open(p_input, O_RDONLY) != 0 ) fd = open(p_input, O_RDONLY);
if( fd != 0 )
{ {
logerr("can't open stdin \"%s\"", p_input); logerr("can't open stdin \"%s\"", p_input);
close(fd);
exit(-1); exit(-1);
} }
} }
if( p_output ) if( p_output )
{ {
close(1); close(1);
if( open(p_output, O_WRONLY|O_APPEND|O_CREAT, 0600) != 1 ) fd = open(p_output, O_WRONLY|O_APPEND|O_CREAT, 0600);
if( fd != 1 )
{ {
logerr("can't open stdout \"%s\"", p_output); logerr("can't open stdout \"%s\"", p_output);
close(fd);
exit(-1); exit(-1);
} }
} }
if( p_output ) if( p_output )
{ {
close(2); close(2);
if( open(p_output, O_WRONLY|O_APPEND|O_CREAT, 0600) != 2 ) fd = open(p_output, O_WRONLY|O_APPEND|O_CREAT, 0600);
if( fd != 2 )
{ {
logerr("can't open stderr \"%s\"", p_output); logerr("can't open stderr \"%s\"", p_output);
close(fd);
exit(-1); exit(-1);
} }
} }

View File

@ -65,8 +65,8 @@ void log_setident(const char *ident);
int log_open(const char *logname, const char *ext, const char *tty); int log_open(const char *logname, const char *ext, const char *tty);
int log_close(void); int log_close(void);
int log_reopen(const char *logname, const char *ext, const char *tty); int log_reopen(const char *logname, const char *ext, const char *tty);
int log(const char *s, ...); void log(const char *s, ...);
int logerr(const char *s, ...); void logerr(const char *s, ...);
#ifdef DEBUG #ifdef DEBUG
//void debug_setlevel(long newlevel, bool logit); //void debug_setlevel(long newlevel, bool logit);
@ -75,7 +75,7 @@ bool debug_isopened(void);
//int debug_parsestring(char *str, unsigned long *deblevel); //int debug_parsestring(char *str, unsigned long *deblevel);
int debug_open(); int debug_open();
int debug_close(); int debug_close();
int debug(unsigned long what, const char *str, ...); void debug(unsigned long what, const char *str, ...);
void debug_configure(); void debug_configure();
#endif #endif

View File

@ -21,7 +21,7 @@
#define BF_VERSION RELEASE_VERSION #define BF_VERSION RELEASE_VERSION
#define BF_CDATE __DATE__ __TIME__ #define BF_CDATE __DATE__ __TIME__
#define BF_REG "free software" #define BF_REG "free software"
#define BF_COPYRIGHT "(c) 1997-2000 by Alexander Belkin" #define BF_COPYRIGHT "(c) 1997-2000 by Alexander Belkin, 2004-2025 fidonet members"
#define BF_BANNERVER BF_NAME" "BF_VERSION"/"BF_OS #define BF_BANNERVER BF_NAME" "BF_VERSION"/"BF_OS