Debian package builder (#876)
* Add debian build files * Add debian package build code to setup script * Update the licenses in debian/copyright * Fix a typo in windows setup docs * Remove duplicate files * Add missing fallback icons to assets
@@ -1,13 +1,14 @@
|
||||
# Setup/Install
|
||||
/MANIFEST
|
||||
/dist/
|
||||
/build/
|
||||
/deploy/
|
||||
/dist/
|
||||
/dist_deb/
|
||||
*.spec
|
||||
*.egg-info
|
||||
setup.iss
|
||||
novelwriter.desktop
|
||||
novelWriter.pyw
|
||||
/novelwriter.desktop
|
||||
/novelWriter.pyw
|
||||
|
||||
# Translations
|
||||
/novelwriter/assets/i18n/*.qm
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
include setup.py
|
||||
include LICENSE.md
|
||||
include CREDITS.md
|
||||
include CHANGELOG.md
|
||||
recursive-include setup *
|
||||
recursive-include novelwriter/assets *
|
||||
|
||||
@@ -115,7 +115,7 @@ The above steps can be reverted by running:
|
||||
.. code-block:: console
|
||||
|
||||
python setup.py win-uninstall
|
||||
pip uninstall -r pywin32
|
||||
pip uninstall pywin32
|
||||
pip uninstall -r requirements.txt
|
||||
|
||||
.. _Python Package Index: https://pypi.org/
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg14474"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata14480">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs14478" />
|
||||
<path
|
||||
style="fill:#aeaeae;fill-opacity:1"
|
||||
id="path14472"
|
||||
d="M21 6.879l-3.879-3.879c-.293-.293-.678-.439-1.061-.439-.384 0-.767.146-1.06.439l-10.939 10.939c-.293.293-.558.727-.75 1.188-.192.463-.311.959-.311 1.373v4.5h4.5c.414 0 .908-.119 1.371-.311.463-.192.896-.457 1.189-.75l10.94-10.939c.293-.293.439-.678.439-1.061 0-.384-.146-.767-.439-1.06zm-15.232 8.182l8.293-8.293 1.232 1.232-8.293 8.293-1.232-1.232zm1.732 3.939h-1.5l-1-1v-1.5c0-.077.033-.305.158-.605.01-.02 2.967 2.938 2.967 2.938-.322.134-.548.167-.625.167zm1.439-.768l-1.232-1.232 8.293-8.293 1.232 1.232-8.293 8.293zm9-9l-3.172-3.172 1.293-1.293 3.17 3.172-1.291 1.293z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg14474">
|
||||
<metadata
|
||||
id="metadata14480">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs14478" />
|
||||
<path
|
||||
d="M21 6.879l-3.879-3.879c-.293-.293-.678-.439-1.061-.439-.384 0-.767.146-1.06.439l-10.939 10.939c-.293.293-.558.727-.75 1.188-.192.463-.311.959-.311 1.373v4.5h4.5c.414 0 .908-.119 1.371-.311.463-.192.896-.457 1.189-.75l10.94-10.939c.293-.293.439-.678.439-1.061 0-.384-.146-.767-.439-1.06zm-15.232 8.182l8.293-8.293 1.232 1.232-8.293 8.293-1.232-1.232zm1.732 3.939h-1.5l-1-1v-1.5c0-.077.033-.305.158-.605.01-.02 2.967 2.938 2.967 2.938-.322.134-.548.167-.625.167zm1.439-.768l-1.232-1.232 8.293-8.293 1.232 1.232-8.293 8.293zm9-9l-3.172-3.172 1.293-1.293 3.17 3.172-1.291 1.293z"
|
||||
id="path14472"
|
||||
style="fill:#000000;fill-opacity:0.77999997" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -534,7 +534,7 @@ class GuiIcons:
|
||||
"cls_entity": (QStyle.SP_DriveHDIcon, "drive-harddisk"),
|
||||
"cls_custom": (QStyle.SP_DriveHDIcon, "drive-harddisk"),
|
||||
"cls_archive": (QStyle.SP_DriveHDIcon, "drive-harddisk"),
|
||||
"cls_trash": (QStyle.SP_DriveHDIcon, "drive-harddisk"),
|
||||
"cls_trash": (QStyle.SP_TrashIcon, "user-trash"),
|
||||
"proj_document": (QStyle.SP_FileIcon, "x-office-document"),
|
||||
"proj_title": (QStyle.SP_FileIcon, "x-office-document"),
|
||||
"proj_chapter": (QStyle.SP_FileIcon, "x-office-document"),
|
||||
|
||||
@@ -27,7 +27,9 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
import os
|
||||
import sys
|
||||
import shutil
|
||||
import datetime
|
||||
import subprocess
|
||||
import email.utils
|
||||
|
||||
OS_NONE = 0
|
||||
OS_LINUX = 1
|
||||
@@ -49,6 +51,7 @@ def extractVersion():
|
||||
|
||||
numVers = "Unknown"
|
||||
hexVers = "Unknown"
|
||||
relDate = "Unknown"
|
||||
initFile = os.path.join("novelwriter", "__init__.py")
|
||||
try:
|
||||
with open(initFile, mode="r", encoding="utf-8") as inFile:
|
||||
@@ -57,14 +60,24 @@ def extractVersion():
|
||||
numVers = getValue((aLine))
|
||||
if aLine.startswith("__hexversion__"):
|
||||
hexVers = getValue((aLine))
|
||||
if aLine.startswith("__date__"):
|
||||
relDate = getValue((aLine))
|
||||
except Exception as e:
|
||||
print("Could not read file: %s" % initFile)
|
||||
print(str(e))
|
||||
|
||||
print("novelWriter version is: %s (%s)" % (numVers, hexVers))
|
||||
print("novelWriter version is: %s (%s) at %s" % (numVers, hexVers, relDate))
|
||||
print("")
|
||||
|
||||
return numVers, hexVers
|
||||
return numVers, hexVers, relDate
|
||||
|
||||
|
||||
def compactVersion(numVers):
|
||||
"""Make the version number more compact."""
|
||||
numVers = numVers.replace("-alpha", "a")
|
||||
numVers = numVers.replace("-beta", "b")
|
||||
numVers = numVers.replace("-rc", "rc")
|
||||
return numVers
|
||||
|
||||
|
||||
def sysCall(callArgs):
|
||||
@@ -75,6 +88,20 @@ def sysCall(callArgs):
|
||||
return stdOut.decode("utf-8"), stdErr.decode("utf-8"), sysP.returncode
|
||||
|
||||
|
||||
def createLauncher(execName, writePath):
|
||||
"""Generate a novelwriter.desktop file with a given exec name.
|
||||
"""
|
||||
desktopData = ""
|
||||
with open(os.path.join("setup", "data", "novelwriter.desktop"), mode="r") as inFile:
|
||||
desktopData = inFile.read()
|
||||
|
||||
desktopData = desktopData.replace("Exec=novelwriter", f"Exec={execName}")
|
||||
with open(os.path.join(writePath, "novelwriter.desktop"), mode="w+") as outFile:
|
||||
outFile.write(desktopData)
|
||||
|
||||
return
|
||||
|
||||
|
||||
# =============================================================================================== #
|
||||
# General
|
||||
# =============================================================================================== #
|
||||
@@ -390,7 +417,7 @@ def makeMinimalPackage(targetOS):
|
||||
from zipfile import ZipFile, ZIP_DEFLATED
|
||||
|
||||
# Get the version
|
||||
numVers, _ = extractVersion()
|
||||
numVers, _, _ = extractVersion()
|
||||
|
||||
# Make sample.zip first
|
||||
try:
|
||||
@@ -506,7 +533,151 @@ def makeMinimalPackage(targetOS):
|
||||
|
||||
|
||||
##
|
||||
# Make Simple Package (pack-pyz)
|
||||
# Make Debian Package (build-deb)
|
||||
##
|
||||
|
||||
def makeDebianPackage():
|
||||
"""Build a Debian package.
|
||||
"""
|
||||
print("")
|
||||
print("Build Debian Package")
|
||||
print("====================")
|
||||
print("")
|
||||
|
||||
# Version Info
|
||||
# ============
|
||||
|
||||
numVers, _, relDate = extractVersion()
|
||||
pkgVers = compactVersion(numVers)
|
||||
relDate = datetime.datetime.strptime(relDate, "%Y-%m-%d")
|
||||
pkgDate = email.utils.format_datetime(relDate.replace(hour=12, tzinfo=None))
|
||||
|
||||
# Set Up Folder
|
||||
# =============
|
||||
|
||||
bldDir = "dist_deb"
|
||||
pkgDir = f"novelWriter-{pkgVers}"
|
||||
outDir = f"{bldDir}/{pkgDir}"
|
||||
debDir = f"{outDir}/debian"
|
||||
datDir = f"{outDir}/data"
|
||||
|
||||
if not os.path.isdir(bldDir):
|
||||
os.mkdir(bldDir)
|
||||
|
||||
if os.path.isdir(outDir):
|
||||
print("Removing old build files ...")
|
||||
print("")
|
||||
shutil.rmtree(outDir)
|
||||
|
||||
os.mkdir(outDir)
|
||||
|
||||
# Build Additional Assets
|
||||
# =======================
|
||||
|
||||
buildQtI18n()
|
||||
buildSampleZip()
|
||||
buildPdfManual()
|
||||
|
||||
# Copy novelWriter Source
|
||||
# =======================
|
||||
|
||||
print("Copying novelWriter source ...")
|
||||
print("")
|
||||
|
||||
for nPath, _, nFiles in os.walk("novelwriter"):
|
||||
if nPath.endswith("__pycache__"):
|
||||
print("Skipped: %s" % nPath)
|
||||
continue
|
||||
|
||||
pPath = f"{outDir}/{nPath}"
|
||||
if not os.path.isdir(pPath):
|
||||
os.mkdir(pPath)
|
||||
|
||||
fCount = 0
|
||||
for fFile in nFiles:
|
||||
nFile = f"{nPath}/{fFile}"
|
||||
pFile = f"{pPath}/{fFile}"
|
||||
|
||||
if fFile.endswith(".pyc"):
|
||||
print("Skipped: %s" % nFile)
|
||||
continue
|
||||
|
||||
shutil.copyfile(nFile, pFile)
|
||||
fCount += 1
|
||||
|
||||
print("Copied: %s/* [Files: %d]" % (nPath, fCount))
|
||||
|
||||
print("")
|
||||
print("Copying or generating additional files ...")
|
||||
print("")
|
||||
|
||||
# Root Files
|
||||
|
||||
copyFiles = [
|
||||
"setup.cfg",
|
||||
"pyproject.toml",
|
||||
"LICENSE.md",
|
||||
"CREDITS.md",
|
||||
"CHANGELOG.md",
|
||||
]
|
||||
for copyFile in copyFiles:
|
||||
shutil.copyfile(copyFile, f"{outDir}/{copyFile}")
|
||||
print("Copied: %s" % copyFile)
|
||||
|
||||
with open(f"{outDir}/MANIFEST.in", mode="w") as outFile:
|
||||
outFile.write(
|
||||
"include LICENSE.md\n"
|
||||
"include CREDITS.md\n"
|
||||
"include CHANGELOG.md\n"
|
||||
"include data/*\n"
|
||||
"recursive-include novelwriter/assets *\n"
|
||||
)
|
||||
print("Wrote: MANIFEST.in")
|
||||
|
||||
with open(f"{outDir}/setup.py", mode="w") as outFile:
|
||||
outFile.write(
|
||||
"import setuptools\n"
|
||||
"setuptools.setup()\n"
|
||||
)
|
||||
print("Wrote: setup.py")
|
||||
|
||||
# Copy Debian and Data Folders
|
||||
|
||||
shutil.copytree("setup/debian", debDir)
|
||||
print("Copied: debian/*")
|
||||
shutil.copytree("setup/data", datDir)
|
||||
print("Copied: data/*")
|
||||
|
||||
# Generate debian/changelog File
|
||||
|
||||
with open(f"{debDir}/changelog", mode="w") as outFile:
|
||||
outFile.write(
|
||||
f"novelwriter ({pkgVers}) unstable; urgency=medium\n\n"
|
||||
f" * Update to version {pkgVers}\n\n"
|
||||
f" -- Veronica Berglyd Olsen <code@vkbo.net> {pkgDate}\n"
|
||||
)
|
||||
print("Wrote: debian/changelog")
|
||||
|
||||
# Build Package
|
||||
|
||||
print("")
|
||||
print("Running dpkg-buildpackage ...")
|
||||
print("")
|
||||
|
||||
currDir = os.curdir
|
||||
os.chdir(outDir)
|
||||
subprocess.call(["dpkg-buildpackage", "-us", "-ui", "-uc"])
|
||||
os.chdir(currDir)
|
||||
|
||||
print("")
|
||||
print("Done!")
|
||||
print("")
|
||||
|
||||
return
|
||||
|
||||
|
||||
##
|
||||
# Make Simple Package (build-pyz)
|
||||
##
|
||||
|
||||
def makeSimplePackage(embedPython):
|
||||
@@ -745,13 +916,8 @@ def xdgInstall():
|
||||
# Create and Install Launcher
|
||||
# ===========================
|
||||
|
||||
desktopData = ""
|
||||
with open("./setup/novelwriter.desktop", mode="r") as inFile:
|
||||
desktopData = inFile.read()
|
||||
|
||||
desktopData = desktopData.replace(r"%%exec%%", useExec)
|
||||
with open("./novelwriter.desktop", mode="w+") as outFile:
|
||||
outFile.write(desktopData)
|
||||
# Generate launcher
|
||||
createLauncher(useExec, ".")
|
||||
|
||||
# Remove old desktop icon
|
||||
exCode = subprocess.call(
|
||||
@@ -760,7 +926,7 @@ def xdgInstall():
|
||||
|
||||
# Install application launcher
|
||||
exCode = subprocess.call(
|
||||
["xdg-desktop-menu", "install", "--novendor", "./novelwriter.desktop"]
|
||||
["xdg-desktop-menu", "install", "--novendor", "novelwriter.desktop"]
|
||||
)
|
||||
if exCode == 0:
|
||||
print("Installed menu launcher file")
|
||||
@@ -771,8 +937,7 @@ def xdgInstall():
|
||||
# ================
|
||||
|
||||
exCode = subprocess.call([
|
||||
"xdg-mime", "install",
|
||||
"./setup/mime/x-novelwriter-project.xml"
|
||||
"xdg-mime", "install", "setup/data/x-novelwriter-project.xml"
|
||||
])
|
||||
if exCode == 0:
|
||||
print("Installed mimetype")
|
||||
@@ -782,16 +947,15 @@ def xdgInstall():
|
||||
# Install Icons
|
||||
# =============
|
||||
|
||||
sizeArr = ["16", "22", "24", "32", "48", "64", "96", "128", "256", "512"]
|
||||
iconRoot = "setup/data/hicolor"
|
||||
sizeArr = ["16", "24", "32", "48", "64", "128", "256"]
|
||||
|
||||
# App Icon
|
||||
for aSize in sizeArr:
|
||||
exCode = subprocess.call([
|
||||
"xdg-icon-resource", "install",
|
||||
"--novendor", "--noupdate",
|
||||
"--context", "apps",
|
||||
"--size", aSize,
|
||||
f"./setup/icons/scaled/icon-novelwriter-{aSize}.png",
|
||||
"xdg-icon-resource", "install", "--novendor", "--noupdate",
|
||||
"--context", "apps", "--size", aSize,
|
||||
f"{iconRoot}/{aSize}x{aSize}/apps/novelwriter.png",
|
||||
"novelwriter"
|
||||
])
|
||||
if exCode == 0:
|
||||
@@ -802,11 +966,9 @@ def xdgInstall():
|
||||
# Mimetype
|
||||
for aSize in sizeArr:
|
||||
exCode = subprocess.call([
|
||||
"xdg-icon-resource", "install",
|
||||
"--noupdate",
|
||||
"--context", "mimetypes",
|
||||
"--size", aSize,
|
||||
f"./setup/icons/scaled/mime-novelwriter-{aSize}.png",
|
||||
"xdg-icon-resource", "install", "--noupdate",
|
||||
"--context", "mimetypes", "--size", aSize,
|
||||
f"{iconRoot}/{aSize}x{aSize}/mimetypes/application-x-novelwriter-project.png",
|
||||
"application-x-novelwriter-project"
|
||||
])
|
||||
if exCode == 0:
|
||||
@@ -863,6 +1025,7 @@ def xdgUninstall():
|
||||
else:
|
||||
print(f"Error {exCode}: Could not uninstall desktop launcher file")
|
||||
|
||||
# Also include no longer used sizes
|
||||
sizeArr = ["16", "22", "24", "32", "48", "64", "96", "128", "256", "512"]
|
||||
|
||||
# App Icons
|
||||
@@ -925,7 +1088,7 @@ def winInstall():
|
||||
print("===============")
|
||||
print("")
|
||||
|
||||
numVers, hexVers = extractVersion()
|
||||
numVers, hexVers, _ = extractVersion()
|
||||
nwTesting = not hexVers[-2] == "f"
|
||||
wShell = win32com.client.Dispatch("WScript.Shell")
|
||||
|
||||
@@ -1051,7 +1214,7 @@ def winUninstall():
|
||||
print("=================")
|
||||
print("")
|
||||
|
||||
numVers, hexVers = extractVersion()
|
||||
numVers, hexVers, _ = extractVersion()
|
||||
nwTesting = not hexVers[-2] == "f"
|
||||
wShell = win32com.client.Dispatch("WScript.Shell")
|
||||
|
||||
@@ -1137,7 +1300,7 @@ def innoSetup():
|
||||
with open(os.path.join("setup", "win_setup_pyz.iss"), mode="r") as inFile:
|
||||
issData = inFile.read()
|
||||
|
||||
numVers, _ = extractVersion()
|
||||
numVers, _, _ = extractVersion()
|
||||
issData = issData.replace(r"%%version%%", numVers)
|
||||
issData = issData.replace(r"%%dir%%", os.getcwd())
|
||||
|
||||
@@ -1219,11 +1382,12 @@ if __name__ == "__main__":
|
||||
" all the other source files. Defaults to tailor the zip file",
|
||||
" for the current OS, but accepts a target OS flag to build",
|
||||
" for another OS.",
|
||||
" pack-pyz Creates a .pyz package in a folder with all dependencies",
|
||||
" build-deb Buiild a .deb package for Debian and Ubuntu.",
|
||||
" build-pyz Buiild a .pyz package in a folder with all dependencies",
|
||||
" using the zipapp tool. On Windows, python embeddable is",
|
||||
" added to the folder.",
|
||||
" setup-pyz Build a Windows executable installer from a zipapp package",
|
||||
" using Inno Setup. Must run 'pack-pyz' first.",
|
||||
" using Inno Setup. Must run 'build-pyz' first.",
|
||||
"",
|
||||
"System Install:",
|
||||
"",
|
||||
@@ -1258,7 +1422,7 @@ if __name__ == "__main__":
|
||||
|
||||
if "version" in sys.argv:
|
||||
sys.argv.remove("version")
|
||||
numVers, hexVers = extractVersion()
|
||||
numVers, hexVers, _ = extractVersion()
|
||||
print("Semantic Version: %s" % numVers)
|
||||
print("Hexadecimal Version: %s" % hexVers)
|
||||
sys.exit(0)
|
||||
@@ -1301,8 +1465,16 @@ if __name__ == "__main__":
|
||||
sys.argv.remove("minimal-zip")
|
||||
makeMinimalPackage(targetOS)
|
||||
|
||||
if "pack-pyz" in sys.argv:
|
||||
sys.argv.remove("pack-pyz")
|
||||
if "build-deb" in sys.argv:
|
||||
sys.argv.remove("build-deb")
|
||||
if hostOS == OS_LINUX:
|
||||
makeDebianPackage()
|
||||
else:
|
||||
print("ERROR: Command 'build-deb' can only be used on Linux")
|
||||
sys.exit(1)
|
||||
|
||||
if "build-pyz" in sys.argv:
|
||||
sys.argv.remove("build-pyz")
|
||||
simplePack = True
|
||||
if hostOS == OS_WIN:
|
||||
embedPython = True
|
||||
|
||||
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 683 B After Width: | Height: | Size: 683 B |
|
Before Width: | Height: | Size: 660 B After Width: | Height: | Size: 660 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
@@ -0,0 +1,184 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 270.93333 270.93334"
|
||||
height="1024"
|
||||
width="1024">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient1470">
|
||||
<stop
|
||||
style="stop-color:#7a9cb8;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop1466" />
|
||||
<stop
|
||||
style="stop-color:#5978a6;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop1468" />
|
||||
</linearGradient>
|
||||
<rect
|
||||
x="60.484347"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785888"
|
||||
id="rect852" />
|
||||
<rect
|
||||
id="rect1474"
|
||||
height="28.631245"
|
||||
width="177.70083"
|
||||
y="18.019813"
|
||||
x="13.463703" />
|
||||
<rect
|
||||
id="rect852-7"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
id="rect1544"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
x="60.484348"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785889"
|
||||
id="rect1570" />
|
||||
<rect
|
||||
x="13.463703"
|
||||
y="18.019813"
|
||||
width="177.70083"
|
||||
height="28.631245"
|
||||
id="rect1587" />
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter1444">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood1434" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite1436" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
result="blur"
|
||||
id="feGaussianBlur1438" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset1440" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite1442" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter1456">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood1446" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite1448" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
result="blur"
|
||||
id="feGaussianBlur1450" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset1452" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite1454" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient1470"
|
||||
id="radialGradient1474"
|
||||
cx="111.19364"
|
||||
cy="67.111206"
|
||||
fx="111.19364"
|
||||
fy="67.111206"
|
||||
r="130.96873"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.2584252,1.5089457,-0.74487144,1.1148423,-169.6027,-163.93817)" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:inline"
|
||||
id="layer1">
|
||||
<rect
|
||||
ry="21.166666"
|
||||
rx="21.166666"
|
||||
y="5.8208332"
|
||||
x="5.8208332"
|
||||
height="259.29166"
|
||||
width="259.29166"
|
||||
id="rect1467"
|
||||
style="display:inline;fill:url(#radialGradient1474);fill-opacity:1;stroke:#517995;stroke-width:2.64583;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="layer2"
|
||||
style="display:inline">
|
||||
<path
|
||||
id="rect1406"
|
||||
style="fill:#a11212;fill-opacity:1;stroke:#7e1b1b;stroke-width:9.99999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1444)"
|
||||
d="m 312,200 c -44.32,0 -80,35.68 -80,80 v 199.99805 a 279.99999,279.99999 0 0 0 0,0.002 279.99999,279.99999 0 0 0 0,0.0195 v 199.98242 c 0,44.31999 35.68,80 80,80 44.32,0 80,-35.68001 80,-80 v -200 a 120,120 0 0 1 120,-120 120,120 0 0 1 120,120 V 762.83789 H 792 V 480.00195 a 279.99999,279.99999 0 0 0 -280,-280 279.99999,279.99999 0 0 0 -0.81055,0 279.99999,279.99999 0 0 0 -133.46484,34.29688 C 363.30011,213.54621 339.29632,200 312,200 Z m 231.46094,563.22656 c -0.62174,0.0972 -1.2172,0.22317 -1.7793,0.37696 0.5621,-0.15379 1.15756,-0.27973 1.7793,-0.37696 z m -1.7793,0.37696 c -0.5621,0.15378 -1.09071,0.33534 -1.58008,0.53906 0.48937,-0.20372 1.01798,-0.38528 1.58008,-0.53906 z m 338.85742,-0.37696 c 0.62174,0.0972 1.2172,0.22317 1.7793,0.37696 -0.5621,-0.15379 -1.15756,-0.27973 -1.7793,-0.37696 z m 1.7793,0.37696 c 0.5621,0.15378 1.09071,0.33534 1.58008,0.53906 -0.48938,-0.20372 -1.01798,-0.38528 -1.58008,-0.53906 z"
|
||||
transform="scale(0.26458333)" />
|
||||
<path
|
||||
id="path897"
|
||||
style="display:inline;fill:#730d0d;fill-opacity:1;stroke:#590d0d;stroke-width:9.99999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1456)"
|
||||
d="m 632,762.83789 v 0.16406 h -85.58398 c -5.49302,0 -9.91602,2.2329 -9.91602,5.00586 0,0.52294 0.15913,1.02696 0.45117,1.5 h -0.44531 c 0.30916,2.03607 1.24102,3.99791 2.81641,5.57227 l 165.59961,165.49414 c 3.92061,3.91808 10.23371,3.91812 14.15429,0 L 884.67773,775.08008 c 1.57569,-1.57463 2.50725,-3.53578 2.81641,-5.57227 h -0.44531 c 0.29216,-0.47304 0.45117,-0.97706 0.45117,-1.5 0,-2.77296 -4.42304,-5.00586 -9.91602,-5.00586 H 792 v -0.16406 z"
|
||||
transform="scale(0.26458333)" />
|
||||
<rect
|
||||
style="fill:#c32222;fill-opacity:1;stroke:none;stroke-width:2.64583;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect914"
|
||||
width="10.583333"
|
||||
height="119.0625"
|
||||
x="69.849998"
|
||||
y="67.997917"
|
||||
rx="5.2916665"
|
||||
ry="5.2916665" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
@@ -0,0 +1,207 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 270.93333 270.93334"
|
||||
height="1024"
|
||||
width="1024">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient2515">
|
||||
<stop
|
||||
style="stop-color:#f7f7f7;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop2511" />
|
||||
<stop
|
||||
style="stop-color:#e5e5e5;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop2513" />
|
||||
</linearGradient>
|
||||
<rect
|
||||
x="60.484347"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785888"
|
||||
id="rect852" />
|
||||
<rect
|
||||
id="rect1474"
|
||||
height="28.631245"
|
||||
width="177.70083"
|
||||
y="18.019813"
|
||||
x="13.463703" />
|
||||
<rect
|
||||
id="rect852-7"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
id="rect1544"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
x="60.484348"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785889"
|
||||
id="rect1570" />
|
||||
<rect
|
||||
x="13.463703"
|
||||
y="18.019813"
|
||||
width="177.70083"
|
||||
height="28.631245"
|
||||
id="rect1587" />
|
||||
<filter
|
||||
id="filter1444"
|
||||
style="color-interpolation-filters:sRGB">
|
||||
<feFlood
|
||||
id="feFlood1434"
|
||||
result="flood"
|
||||
flood-color="rgb(0,0,0)"
|
||||
flood-opacity="0.498039" />
|
||||
<feComposite
|
||||
id="feComposite1436"
|
||||
result="composite1"
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
in="flood" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur1438"
|
||||
result="blur"
|
||||
stdDeviation="3"
|
||||
in="composite1" />
|
||||
<feOffset
|
||||
id="feOffset1440"
|
||||
result="offset"
|
||||
dy="6"
|
||||
dx="6" />
|
||||
<feComposite
|
||||
id="feComposite1442"
|
||||
result="composite2"
|
||||
operator="over"
|
||||
in2="offset"
|
||||
in="SourceGraphic" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter1456"
|
||||
style="color-interpolation-filters:sRGB">
|
||||
<feFlood
|
||||
id="feFlood1446"
|
||||
result="flood"
|
||||
flood-color="rgb(0,0,0)"
|
||||
flood-opacity="0.498039" />
|
||||
<feComposite
|
||||
id="feComposite1448"
|
||||
result="composite1"
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
in="flood" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur1450"
|
||||
result="blur"
|
||||
stdDeviation="3"
|
||||
in="composite1" />
|
||||
<feOffset
|
||||
id="feOffset1452"
|
||||
result="offset"
|
||||
dy="6"
|
||||
dx="6" />
|
||||
<feComposite
|
||||
id="feComposite1454"
|
||||
result="composite2"
|
||||
operator="over"
|
||||
in2="offset"
|
||||
in="SourceGraphic" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient2515"
|
||||
id="radialGradient2517"
|
||||
cx="605.42725"
|
||||
cy="623.97186"
|
||||
fx="605.42725"
|
||||
fy="623.97186"
|
||||
r="410"
|
||||
gradientTransform="matrix(2.4110274,1.7617596,-0.719517,0.98463462,-776.23441,-1372.7537)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer3"
|
||||
style="display:inline">
|
||||
<path
|
||||
clip-path="none"
|
||||
transform="scale(0.26458333)"
|
||||
d="m 192,22 c -44.32,0 -80,35.680002 -80,80 v 820 c 0,44.32002 35.68,80 80,80 h 640 c 44.31999,0 80,-35.67998 80,-80 V 213.44727 L 720.55469,22 Z"
|
||||
style="fill:url(#radialGradient2517);fill-opacity:1;stroke:#999999;stroke-width:20;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect1481" />
|
||||
<path
|
||||
id="path1490"
|
||||
style="display:inline;fill:#e0e0e0;fill-opacity:1;stroke:#999999;stroke-width:5.29167;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 241.30037,56.474215 190.64713,5.8204593 V 35.307549 c 0,11.726333 9.44034,21.166666 21.16667,21.166666 z" />
|
||||
<g
|
||||
aria-label=".nwx"
|
||||
transform="matrix(1.7893481,0,0,1.782571,-45.41919,-191.90571)"
|
||||
id="text850"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans, Normal';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect852);display:inline;fill:#666666;fill-opacity:1">
|
||||
<path
|
||||
d="m 63.088865,241.76928 q 0,-1.36426 0.909505,-2.27376 0.930175,-0.93018 2.480467,-0.93018 1.550291,0 2.459796,0.93018 0.909504,0.9095 0.909504,2.27376 0,1.34359 -0.909504,2.27376 -0.909505,0.9095 -2.459796,0.9095 -1.550292,0 -2.480467,-0.9095 -0.909505,-0.93017 -0.909505,-2.27376 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:42.3333px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#666666;fill-opacity:1"
|
||||
id="path856" />
|
||||
<path
|
||||
d="m 84.75161,226.78312 q -2.542479,0 -3.782712,2.14974 v 15.79231 h -5.973791 v -22.36554 h 5.601721 l 0.206705,2.56314 q 2.397785,-2.97656 6.428544,-2.97656 3.162595,0 5.105627,1.88103 1.943033,1.88102 1.963703,6.55256 v 14.34537 h -5.994461 v -14.26269 q 0,-2.14973 -0.930175,-2.91454 -0.909505,-0.76482 -2.625161,-0.76482 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:42.3333px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#666666;fill-opacity:1"
|
||||
id="path858" />
|
||||
<path
|
||||
d="m 126.96089,222.35963 -5.68441,22.36554 h -5.00227 l -4.25814,-14.07665 -4.23746,14.07665 h -4.9816 l -5.705078,-22.36554 h 5.767088 l 2.95589,14.22134 4.05143,-14.22134 h 4.32014 l 4.09277,14.20067 2.91455,-14.20067 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:42.3333px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#666666;fill-opacity:1"
|
||||
id="path860" />
|
||||
<path
|
||||
d="m 134.77436,222.35963 3.65869,6.65592 3.76204,-6.65592 h 6.3872 l -6.36653,10.93472 6.63525,11.43082 h -6.3872 l -4.01009,-7.04866 -3.94808,7.04866 h -6.42854 l 6.63525,-11.43082 -6.36654,-10.93472 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:42.3333px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#666666;fill-opacity:1"
|
||||
id="path862" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2509"
|
||||
transform="matrix(1.2371037,0,0,1.2371037,206.3182,37.341857)">
|
||||
<path
|
||||
transform="matrix(0.16895991,0,0,0.18329422,-134.6942,-19.491243)"
|
||||
id="rect1406-1"
|
||||
style="display:inline;fill:#a11212;fill-opacity:1;stroke:#7e1b1b;stroke-width:9.99999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1444)"
|
||||
d="m 145.18984,56.414257 c -44.32,0 -79.999998,35.68 -79.999998,80.000003 v 199.99805 a 279.99999,279.99999 0 0 0 0,0.002 279.99999,279.99999 0 0 0 0,0.0195 v 199.98242 c 0,44.31999 35.679998,80 79.999998,80 44.32,0 80,-35.68001 80,-80 v -200 a 120,120 0 0 1 120,-120 120,120 0 0 1 120,120 v 282.83592 h 160 V 336.41621 a 279.99999,279.99999 0 0 0 -280,-280.000003 279.99999,279.99999 0 0 0 -0.81055,0 279.99999,279.99999 0 0 0 -133.46484,34.29688 c -14.4245,-20.75262 -38.42829,-34.29883 -65.72461,-34.29883 z M 376.65078,619.64082 c -0.62174,0.0972 -1.2172,0.22317 -1.7793,0.37696 0.5621,-0.15379 1.15756,-0.27973 1.7793,-0.37696 z m -1.7793,0.37696 c -0.5621,0.15378 -1.09071,0.33534 -1.58008,0.53906 0.48937,-0.20372 1.01798,-0.38528 1.58008,-0.53906 z m 338.85742,-0.37696 c 0.62174,0.0972 1.2172,0.22317 1.7793,0.37696 -0.5621,-0.15379 -1.15756,-0.27973 -1.7793,-0.37696 z m 1.7793,0.37696 c 0.5621,0.15378 1.09071,0.33534 1.58008,0.53906 -0.48938,-0.20372 -1.01798,-0.38528 -1.58008,-0.53906 z" />
|
||||
<path
|
||||
transform="matrix(0.16895991,0,0,0.18329422,-134.6942,-19.491243)"
|
||||
id="path897"
|
||||
style="display:inline;fill:#730d0d;fill-opacity:1;stroke:#590d0d;stroke-width:9.99999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1456)"
|
||||
d="m 465.18984,619.25215 v 0.16406 h -85.58398 c -5.49302,0 -9.91602,2.2329 -9.91602,5.00586 0,0.52294 0.15913,1.02696 0.45117,1.5 h -0.44531 c 0.30916,2.03607 1.24102,3.99791 2.81641,5.57227 l 165.59961,165.49414 c 3.92061,3.91808 10.23371,3.91812 14.15429,0 L 717.86757,631.49434 c 1.57569,-1.57463 2.50725,-3.53578 2.81641,-5.57227 h -0.44531 c 0.29216,-0.47304 0.45117,-0.97706 0.45117,-1.5 0,-2.77296 -4.42304,-5.00586 -9.91602,-5.00586 h -85.58398 v -0.16406 z" />
|
||||
<rect
|
||||
style="display:inline;fill:#c32222;fill-opacity:1;stroke:none;stroke-width:1.75982;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect914"
|
||||
width="6.7583966"
|
||||
height="82.482399"
|
||||
x="-118.27303"
|
||||
y="1.2969339"
|
||||
rx="3.3791983"
|
||||
ry="3.6658845" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 9.7 KiB |
@@ -2,8 +2,8 @@
|
||||
Type=Application
|
||||
Encoding=UTF-8
|
||||
Name=novelWriter
|
||||
Comment=Multi-document markdown-like editor for novels
|
||||
Exec=%%exec%% %f
|
||||
Comment=A markdown-like text editor for planning and writing novels
|
||||
Exec=novelwriter %f
|
||||
Icon=novelwriter
|
||||
Categories=Qt;Office;WordProcessor;
|
||||
Terminal=false
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1 @@
|
||||
10
|
||||
@@ -0,0 +1,19 @@
|
||||
Source: novelwriter
|
||||
Maintainer: Veronica Berglyd Olsen <code@vkbo.net>
|
||||
Section: text
|
||||
Priority: optional
|
||||
Build-Depends: dh-python, python3-setuptools, python3-all, debhelper (>= 9)
|
||||
Standards-Version: 4.5.1
|
||||
Homepage: https://novelwriter.io
|
||||
X-Python3-Version: >= 3.6
|
||||
|
||||
Package: novelwriter
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, ${python3:Depends}, python3 (>=3.6), python3-pyqt5 (>= 5.3), python3-lxml (>= 4.0), python3-enchant (>= 2.0)
|
||||
Description: A markdown-like text editor for planning and writing novels
|
||||
novelWriter is a plain text editor designed for writing novels assembled from
|
||||
many smaller text documents. It uses a minimal formatting syntax inspired by
|
||||
Markdown, and adds a meta data syntax for comments, synopsis, and
|
||||
cross-referencing. It's designed to be a simple text editor that allows for
|
||||
easy organisation of text and notes, using human readable text files as
|
||||
storage for robustness.
|
||||
@@ -0,0 +1,16 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: novelWriter
|
||||
Upstream-Contact: Veronica Berglyd Olsen <code@vkbo.net>
|
||||
Source: https://github.com/vkbo/novelWriter
|
||||
|
||||
Files: novelwriter/assets/fonts/Cantarell/*
|
||||
Copyright: 2009-2010, Understanding Limited
|
||||
License: OFL-1.1
|
||||
|
||||
Files: novelwriter/assets/icons/typicons_*.svg
|
||||
Copyright: 2019, Stephen Hutchings
|
||||
License: CC-BY-SA-4.0
|
||||
|
||||
Files: novelwriter/*
|
||||
Copyright: 2018-2021, Veronica Berglyd Olsen
|
||||
License: GPL-3.0-or-later
|
||||
@@ -0,0 +1,4 @@
|
||||
data/hicolor usr/share/icons
|
||||
data/novelwriter.desktop usr/share/applications
|
||||
data/novelwriter.png usr/share/pixmaps
|
||||
data/x-novelwriter-project.xml usr/share/mime/packages
|
||||
@@ -0,0 +1 @@
|
||||
pyqt5 python3-pyqt5
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
export PYBUILD_NAME=novelwriter
|
||||
%:
|
||||
dh $@ --with python3 --buildsystem=pybuild
|
||||
@@ -0,0 +1 @@
|
||||
3.0 (native)
|
||||
|
Before Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 985 B |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 986 B |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |