frescobaldi: new recipe (#6924)

This commit is contained in:
Joachim Mairböck
2022-10-19 19:27:33 +02:00
committed by GitHub
parent cd1370fc95
commit f5b9df01cb
3 changed files with 270 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
resource app_flags B_MULTIPLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "LilyPond Music Editor",
long_info = "Frescobaldi is an advanced text editor to edit LilyPond sheet music files."
};
resource app_signature "application/x-vnd.frescobaldi";
resource("QT:QPA_FLAGS") "Q_REF_TO_ARGV";
resource vector_icon {
$"6E6369660903395A400500020106020000003CC603BDF1CC0000004A02A94A5B"
$"DC0069FFCDFF008357020106020000003CA2ECBD05040000004A021949A02A00"
$"FFFFFFFFFD256702010602BB34DB3C303EBC72C8BB96594A3FE44853CE00F7F7"
$"F7FFFF3E8A020106023679F139FD85BC0FDB388F2A49C0764945A600FFFFFFFF"
$"FF89B5020106020000003BC5B9BBCB9F00000049C21D490B5300FFFFFFFFFFC3"
$"D3020106033452A43A29CDBA554534815049E75D499E1000FF8C0086FFC500FF"
$"FFFF0003FFE60C0B0608FF7FCC63C2D3CC63C2D3CC63C5FCC61ACA7BC9FEC8E7"
$"C236CC0FB987CA7BBD6BCC0FB5A3C8E7B33EC2D3B33EC5FCB33EBFAAB987BB2B"
$"B5A3BCBFBD6BB997C61ABB2BC236B997C9FEBCBFCC63C2D3CC63BFAACC63C2D3"
$"C2D30608FF7FCC63C2D3CC63C2D3CC63C5FCC61ACA7BC9FEC8E7C236CC0FB987"
$"CA7BBD6BCC0FB5A3C8E7B33EC2D3B33EC5FCB33EBFAAB987BB2BB5A3BCBFBD6B"
$"B997C61ABB2BC236B997C9FEBCBFCC63C2D3CC63BFAACC63C2D3C2D30608FF7F"
$"CC63C209CC63C209CC63C532C61AC9B1C9FEC81DC236CB45B987C9B1BD6BCB45"
$"B5A3C81DB33EC209B33EC532B33EBEE1B987BA61B5A3BBF5BD6BB8CDC61ABA61"
$"C236B8CDC9FEBBF5CC63C209CC63BEE1CC63C209C2090608FF7FCC63C209CC63"
$"C209CC63C532C61AC9B1C9FEC81DC236CB45B987C9B1BD6BCB45B5A3C81DB33E"
$"C209B33EC532B33EBEE1B987BA61B5A3BBF5BD6BB8CDC61ABA61C236B8CDC9FE"
$"BBF5CC63C209CC63BEE1CC63C209C2090218C1C7B79EC1C7B79EC128B799BED4"
$"BB2EBFD3B9BCBEC1BB23BE9ABB0EBEAEBB19BDB5BA0FBC66B957BCD7B931BC41"
$"B963BC0EB9BBBC25B987BB02B93EB9FDB940BA34B8FBB9A0B9B5B9D6BC75B9AD"
$"BB0DB816BC61B648BCBAB667BC57B61EBD3CB868BFDFB728BE86B76AC032B69A"
$"C0EDB693C088B6A2C162B8A6C27FB781C1F2B73CC3ECB61BC647B58FC590B6B1"
$"C70BBCD4C536BA7FC585BD10C62CBDC9C7F4BD59C7DDBE2DC809C0E1C5ADBFB3"
$"C65BC2E0C6ACC505C8B5C48AC94EC58DC80AC5BDC3E0C5F1C59EC76FC31FC98E"
$"C180C96EC202C9A5C122C756BF97C8A2C070C8A1BE2FC978BC58CA0DBCB3C886"
$"BBC5C3BFBD07C576BCB2C348BBF2C1D1B79FC29EB7CAC1CDB79FC1C7B79EC1CA"
$"B79EC1C7B79EC1C7B79EC1C7B79EC1C7B79E020AC5DFC6C9C5DFC6C9C534C7C7"
$"BE92C410BFB7C42FBD3BC3ECB64BC4C5B717C5D7B557C37DBA57BE01BA77BF2E"
$"BA34BCB6B9B3B647B8F7B75EBA5EB54AC2D9BA44C1A0BA63C431BA22C948B92C"
$"C827B878CA50B9D1C58EBF9EC56EBE71C5B1C0E9C5DFC6C9C69BC5B2C5DFC6C9"
$"C5DFC6C9C5DFC6C9C5DFC6C9020ABE08C65CBE08C65CBD2BC631BC49C1CDBCC7"
$"47BBCBC110B61EBA3DB5CBBB83B65630BD9FB9ADBCE5BA2DBE59B92DC175B43A"
$"C099B40FC252B465C3AFBA4EC331B991C42DBB0BC9B1BEFDC9DBBE1DC987BFDE"
$"C3DEC2ABC498C22BC324C32CBE08C65CBEE5C687BE08C65CBE08C65CBE08C65C"
$"BE08C65C020AC26CC487C26CC487C181C4E7BE42C2B5BF2DC318BD58C252B698"
$"BEDAB6BAC041B67FBDDDBB5FBC21BAFCBD0BBBC2BB36BC1CB64CBB30B6ADBD07"
$"B5ECC0FEBAEBC013BA88C1E8BB4EC74DBA4C5230C7ADBB37C329BFBDC38CBED2"
$"C2C6C0A8C26CC487C358C427C26CC487C26CC487C26CC487C26CC487020AC4EC"
$"BFC9C4ECBFC9C498C07FC095C081C151C03BBFD9C0C7BE04C29CBEBAC2EFBD4E"
$"C248BBC3BFF2BC09C0AEBB7DBF36B907BB25B8B4BBDBB95ABA6FBE22BA25BD66"
$"BA6BBEDEB9DFC337B6C9C281B675C3EDB71CC2BFBD38C279BC7CC305BDF3C4EC"
$"BFC9C53FBF12C4ECBFC9C4ECBFC9C4ECBFC9C4ECBFC9020EC299BE26C299BE26"
$"C28CBE8CC280BF9EC2CCBF51C218C00AC06DC063C0FBC028C005C08EBEFDC113"
$"BF6BC127BE65C0F8BD45BFD3BDC1C025BCEBBF97BBEEBF0ABC10BF6CBBBFBE84"
$"BC49BD06BC37BD93BC56BC9FBC62BB8DBC16BBDBBCCABB21BE75BAC8BDE7BB04"
$"BEDCBA9EBFE5BA18BF77BA05C07CBA33C19DBB58C121BB06C1F7BB94C2F4BC21"
$"C2D2BBC0C323BCA7C299BE26C2ABBD98C299BE26C299BE26C299BE26C299BE26"
$"020EC299BE26C299BE26C28CBE8CC280BF9EC2CCBF51C218C00AC06DC063C0FB"
$"C028C005C08EBEFDC113BF6BC127BE65C0F8BD45BFD3BDC1C025BCEBBF97BBEE"
$"BF0ABC10BF6CBBBFBE84BC49BD06BC37BD93BC56BC9FBC62BB8DBC16BBDBBCCA"
$"BB21BE75BAC8BDE7BB04BEDCBA9EBFE5BA18BF77BA05C07CBA33C19DBB58C121"
$"BB06C1F7BB94C2F4BC21C2D2BBC0C323BCA7C299BE26C2ABBD98C299BE26C299"
$"BE26C299BE26C299BE260B0A000100000A0101011001178002040A020102000A"
$"0101031001178002040A000104000A030105000A040106000A050107000A0601"
$"08000A070109000A08010A100117800004"
};

View File

@@ -0,0 +1,85 @@
SUMMARY="LilyPond Music Editor"
DESCRIPTION="Frescobaldi is an advanced text editor to edit LilyPond sheet music files.
Features include an integrated PDF preview and a powerful Score Wizard."
HOMEPAGE="https://www.frescobaldi.org/"
COPYRIGHT="2008-2020 by Wilbert Berendsen"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://github.com/frescobaldi/frescobaldi/releases/download/v$portVersion/frescobaldi-$portVersion.tar.gz"
CHECKSUM_SHA256="4d707b5b35392f84d904d1cc7ecc36992f8e85f6868fdc5a4983c78a0e850acf"
PATCHES="frescobaldi-$portVersion.patchset"
ADDITIONAL_FILES="frescobaldi.rdef.in"
PYTHON3_VERSION="3.8"
ARCHITECTURES="any"
PROVIDES="
frescobaldi = $portVersion
app:Frescobaldi = $portVersion
"
REQUIRES="
haiku
myspell
pyqt5_python38
python_ly_python38
python_poppler_qt5_python38
qpageview_python38
cmd:python$PYTHON3_VERSION
"
BUILD_REQUIRES="
haiku_devel
pyqt5_python38
python_ly_python38
python_poppler_qt5_python38
qpageview_python38
setuptools_python38
"
BUILD_PREREQUIRES="
cmd:python$PYTHON3_VERSION
"
INSTALL()
{
OLDPYTHONPATH=$PYTHONPATH
local packageLinksDir=$(dirname $portPackageLinksDir)
local packageName="${portName}-$portFullVersion"
# GENERIC: all python_setuptools-based installs need this
python=$packageLinksDir/$packageName/cmd~python$PYTHON3_VERSION/bin/python$PYTHON3_VERSION
pythonVersion=$($python --version 2>&1 | sed 's/Python //' | head -c3)
installLocation=lib/python$pythonVersion/vendor-packages/
export PYTHONPATH=$installLocation:$OLDPYTHONPATH
$python setup.py install --prefix=$prefix --root=/
# remove unneeded hyphenation dictionaries, we depend on myspell instead
rm $prefix/${installLocation}frescobaldi_app/hyphdicts/*.dic
mkdir -p $appsDir
mv $binDir/frescobaldi $appsDir/Frescobaldi
# Preparing the attributes
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
sed \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|${MINOR:-0}|" \
$portDir/additional-files/frescobaldi.rdef.in \
> frescobaldi.rdef
# Installing extra-attribs
rc frescobaldi.rdef
settype -t application/x-vnd.Be-elfexecutable $appsDir/Frescobaldi
resattr -o $appsDir/Frescobaldi frescobaldi.rsrc
addAppDeskbarSymlink $appsDir/Frescobaldi
### PACKAGING HACK ###
rm -rf $prefix/packages
### PACKAGING HACK ###
}

View File

@@ -0,0 +1,111 @@
From 9509296eb7c0cf7d685e31f44ea61b96d8785f73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joachim=20Mairb=C3=B6ck?= <j.mairboeck@gmail.com>
Date: Sat, 14 May 2022 18:05:48 +0200
Subject: Haiku additions
diff --git a/frescobaldi_app/helpers.py b/frescobaldi_app/helpers.py
index be28f0f..9f84788 100644
--- a/frescobaldi_app/helpers.py
+++ b/frescobaldi_app/helpers.py
@@ -119,6 +119,8 @@ def terminalCommands():
yield ['cmd.exe']
elif sys.platform == 'darwin':
yield ['open', '-a', 'Terminal', '$f']
+ elif sys.platform == 'haiku1':
+ yield ['Terminal', '--working-directory', '$f']
else:
# find a default linux terminal
paths = os.environ.get('PATH', os.defpath).split(os.pathsep)
diff --git a/frescobaldi_app/hyphendialog.py b/frescobaldi_app/hyphendialog.py
index 58119a1..69da12d 100644
--- a/frescobaldi_app/hyphendialog.py
+++ b/frescobaldi_app/hyphendialog.py
@@ -56,6 +56,7 @@ default_paths = [
"share/scribus/dicts",
"share/scribus-ng/dicts",
"share/hunspell",
+ "data/hunspell",
]
@@ -68,7 +69,14 @@ def settings():
def directories():
""" Yields a list of existing paths based on config """
# prefixes to look in for relative paths
- prefixes = ['/usr/', '/usr/local/']
+ prefixes = [
+ '/usr/',
+ '/usr/local/',
+ '/boot/system/',
+ '/boot/home/config/',
+ '/boot/system/non-packaged/',
+ '/boot/home/config/non-packaged/',
+ ]
def gen():
# if the path is not absolute, add it to all prefixes.
diff --git a/frescobaldi_app/lilydoc/manager.py b/frescobaldi_app/lilydoc/manager.py
index 9bb39df..2a25c6c 100644
--- a/frescobaldi_app/lilydoc/manager.py
+++ b/frescobaldi_app/lilydoc/manager.py
@@ -123,6 +123,10 @@ def urls():
'/usr/local',
'/usr/share/doc',
'/usr/doc',
+ '/boot/system',
+ '/boot/home/config',
+ '/boot/system/non-packaged',
+ '/boot/home/config/non-packaged',
) if os.path.isdir(p)]
# split in local and non-local ones (local are preferred)
user_prefixes = []
@@ -136,9 +140,14 @@ def urls():
def paths(path):
"""Yields possible places where LilyPond documentation could live."""
yield path
+ origpath = path
path = os.path.join(path, 'share', 'doc', 'lilypond', 'html')
yield path
yield os.path.join(path, 'offline-root')
+ # Haiku case
+ path = os.path.join(origpath, 'documentation', 'packages', 'lilypond', 'html')
+ yield path
+ yield os.path.join(path, 'offline-root')
def find(path):
"""Finds LilyPond documentation."""
diff --git a/frescobaldi_app/lilypondinfo.py b/frescobaldi_app/lilypondinfo.py
index a0e9bbc..c9779b6 100644
--- a/frescobaldi_app/lilypondinfo.py
+++ b/frescobaldi_app/lilypondinfo.py
@@ -311,6 +311,11 @@ class LilyPondInfo(object):
if os.path.isdir(d):
self.datadir = d
return
+ # Haiku case
+ d = os.path.join(self.prefix(), 'data', 'lilypond', suffix)
+ if os.path.isdir(d):
+ self.datadir = d
+ return
self.datadir = False
app.job_queue().add_job(j, 'generic')
diff --git a/setup.py b/setup.py
index 7edb3f8..bf5d4af 100644
--- a/setup.py
+++ b/setup.py
@@ -53,6 +53,10 @@ if sys.platform.startswith('win'):
'bitmap': 'windows/frescobaldi-wininst.bmp',
}
data_files = []
+elif sys.platform.startswith('haiku'):
+ data_files = [
+ ('documentation/man/man1', ['frescobaldi.1']),
+ ]
else:
data_files = [
('share/icons/hicolor/scalable/apps', ['frescobaldi_app/icons/org.frescobaldi.Frescobaldi.svg']),
--
2.36.1