From ff98d2c5c21ebad975f30174f393b4b3ca9f49de Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sun, 27 Sep 2020 16:57:39 +0200 Subject: [PATCH] protected against distributing file with non-LGPL3 content --- src/basic/assets/str_nolgpl3_warn.s | 15 +++++++++++++++ src/basic/init/initmsg_m65.s | 13 ------------- src/basic/init/initmsg_real.s | 2 +- tools/release.cc | 13 ++++++++++++- 4 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 src/basic/assets/str_nolgpl3_warn.s diff --git a/src/basic/assets/str_nolgpl3_warn.s b/src/basic/assets/str_nolgpl3_warn.s new file mode 100644 index 00000000..88bf8fa9 --- /dev/null +++ b/src/basic/assets/str_nolgpl3_warn.s @@ -0,0 +1,15 @@ +;; #LAYOUT# M65 BASIC_1 #TAKE +;; #LAYOUT# * * #IGNORE + + + +!ifdef HAS_NOLGPL3_WARN { + +str_nonlgpl3_warn: + + !byte $0D, $0D, $0D, $0D + !pet "build contains non-lgpl3 code" + !byte $0D + !pet " *** do not distribute ***" + !byte $0D, $0D, $00 +} diff --git a/src/basic/init/initmsg_m65.s b/src/basic/init/initmsg_m65.s index 40d9a782..f0fa4b64 100644 --- a/src/basic/init/initmsg_m65.s +++ b/src/basic/init/initmsg_m65.s @@ -108,16 +108,3 @@ INITMSG_revision: lda #rom_revision_basic_string jmp STROUT - - - -!ifdef HAS_NOLGPL3_WARN { - -str_nonlgpl3_warn: - - !byte $0D, $0D, $0D, $0D - !pet "build contains non-lgpl3 code" - !byte $0D - !pet " *** do not distribute ***" - !byte $0D, $0D, $00 -} diff --git a/src/basic/init/initmsg_real.s b/src/basic/init/initmsg_real.s index 2fea1804..d3f53ac8 100644 --- a/src/basic/init/initmsg_real.s +++ b/src/basic/init/initmsg_real.s @@ -107,4 +107,4 @@ initmsg_real: } -!ifdef HAS_NOLGPL3_WARN { !error "HAS_NOLGPL3_WARN not implemented" +!ifdef HAS_NOLGPL3_WARN { !error "HAS_NOLGPL3_WARN not implemented" } diff --git a/tools/release.cc b/tools/release.cc index 76fdd1e0..3bf52b82 100644 --- a/tools/release.cc +++ b/tools/release.cc @@ -70,7 +70,8 @@ const std::vector STR_SNAPSHOT = { 0x28, 0x44, 0x45, 0x56, 0x45, 0x4C, 0x00 }; const std::vector STR_DOSDATE = { 0x4F, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58 }; -const std::string STR_DEV = "DEV."; +const std::string STR_DEV = "DEV."; +const std::string STR_BLOCK = "DO NOT DISTRIBUTE"; // // Command and enviroment line settings @@ -357,6 +358,16 @@ void ROMFile::readSrcFile() if (!srcFile.good()) ERROR(std::string("unable to read ROM file '") + srcFileNamePath + "'"); srcFile.close(); + + // Check if it is OK to distribute the file + + for (size_t idx = 0; idx < srcFileContent.size() - STR_BLOCK.size(); idx++) + { + if (memcmp(&srcFileContent[idx], STR_BLOCK.c_str(), STR_BLOCK.size()) == 0) + { + ERROR(std::string("not allowed to distribute ROM file '") + srcFileNamePath + "'"); + } + } } void ROMFile::readDstFile()