Fix debian build

This commit is contained in:
Veronica Berglyd Olsen
2025-09-14 18:37:23 +02:00
parent b61aec9212
commit bb01d0e5ae
5 changed files with 22 additions and 21 deletions
+8 -7
View File
@@ -36,7 +36,7 @@ SIGN_KEY = "D6A9F6B8F227CF7C6F6D1EE84DBBE4B734B0BD08"
def makeDebianPackage(
signKey: str | None = None, sourceBuild: bool = False, distName: str = "unstable",
buildName: str = "", forLaunchpad: bool = False
buildName: str = "", forLaunchpad: bool = False, oldLicense: bool = False,
) -> str:
"""Build a Debian package."""
print("")
@@ -96,7 +96,7 @@ def makeDebianPackage(
print("Copying or generating additional files ...")
print("")
copyPackageFiles(outDir, setupPy=True)
copyPackageFiles(outDir, oldLicense=oldLicense)
# Copy/Write Debian Files
# =======================
@@ -181,14 +181,14 @@ def launchpad(args: argparse.Namespace) -> None:
bldNum = "0"
distLoop = [
("24.04", "noble"),
("25.04", "plucky"),
("25.10", "questing"),
("24.04", "noble", True),
("25.04", "plucky", True),
("25.10", "questing", False),
]
print("Building Ubuntu packages for:")
print("")
for distNum, codeName in distLoop:
for distNum, codeName, _ in distLoop:
print(f" * Ubuntu {distNum} {codeName.title()}")
print("")
@@ -198,7 +198,7 @@ def launchpad(args: argparse.Namespace) -> None:
print("")
dputCmd = []
for distNum, codeName in distLoop:
for distNum, codeName, oldLicense in distLoop:
buildName = f"ubuntu{distNum}.{bldNum}"
dCmd = makeDebianPackage(
signKey=signKey,
@@ -206,6 +206,7 @@ def launchpad(args: argparse.Namespace) -> None:
distName=codeName,
buildName=buildName,
forLaunchpad=True,
oldLicense=oldLicense,
)
dputCmd.append(dCmd)
+12 -8
View File
@@ -91,27 +91,31 @@ def copySourceCode(dst: Path) -> None:
return
def copyPackageFiles(dst: Path, setupPy: bool = False) -> None:
def copyPackageFiles(dst: Path, oldLicense: bool = False) -> None:
"""Copy files needed for packaging."""
copyFiles = ["LICENSE.md", "CREDITS.md", "pyproject.toml"]
copyFiles = ["LICENSE.md", "LICENSE-Apache-2.0.txt", "CREDITS.md", "pyproject.toml"]
for copyFile in copyFiles:
shutil.copyfile(copyFile, dst / copyFile)
print("Copied:", copyFile, flush=True)
writeFile(dst / "MANIFEST.in", (
"include LICENSE.md\n"
"include LICENSE-Apache-2.0.txt\n"
"include CREDITS.md\n"
"recursive-include novelwriter/assets *\n"
))
if setupPy:
writeFile(dst / "setup.py", (
"import setuptools\n"
"setuptools.setup()\n"
))
text = readFile(ROOT_DIR / "pyproject.toml")
text = text.replace("setup/description_pypi.md", "data/description_short.txt")
if oldLicense:
new = []
for line in text.splitlines():
if line.startswith("license = "):
line = 'license = {text = "GPL-3.0-or-later AND Apache-2.0 AND CC-BY-4.0"}'
if line.startswith("license-files = "):
continue
new.append(line)
text = "\n".join(new)
writeFile(dst / "pyproject.toml", text)
return