mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 03:30:05 +02:00
frescobaldi: new recipe (#6924)
This commit is contained in:
74
media-sound/frescobaldi/additional-files/frescobaldi.rdef.in
Normal file
74
media-sound/frescobaldi/additional-files/frescobaldi.rdef.in
Normal 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"
|
||||
};
|
||||
85
media-sound/frescobaldi/frescobaldi-3.2.recipe
Normal file
85
media-sound/frescobaldi/frescobaldi-3.2.recipe
Normal 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 ###
|
||||
}
|
||||
111
media-sound/frescobaldi/patches/frescobaldi-3.2.patchset
Normal file
111
media-sound/frescobaldi/patches/frescobaldi-3.2.patchset
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user