diff --git a/.builds/archlinux.yml b/.builds/archlinux.yml index 2cb379899..5ea48c5ba 100644 --- a/.builds/archlinux.yml +++ b/.builds/archlinux.yml @@ -116,7 +116,7 @@ tasks: cd zrythm DESTDIR=/tmp ninja -C build install glib-compile-schemas /tmp/usr/local/share/glib-2.0/schemas - /tmp/usr/local/bin/zrythm_launch --version | grep "built with" + GSETTINGS_SCHEMA_DIR=/tmp/usr/local/share/glib-2.0/schemas /tmp/usr/local/bin/zrythm_launch --version | grep "built with" - install-sudo: | cd zrythm sudo ninja -C build install diff --git a/data/meson.build b/data/meson.build index dad6b0ace..5322581b5 100644 --- a/data/meson.build +++ b/data/meson.build @@ -1,4 +1,4 @@ -# Copyright (C) 2019-2021 Alexandros Theodotou +# Copyright (C) 2019-2022 Alexandros Theodotou # # This file is part of Zrythm # @@ -15,12 +15,13 @@ # You should have received a copy of the GNU Affero General Public License # along with Zrythm. If not, see . -gschema_top = 'org.' + prog_name_lowercase + '.' + prog_name +app_id = 'org.zrythm.Zrythm' + gschema = configure_file ( input: gen_gschema_wrap, - output: gschema_top + '.gschema.xml', + output: app_id + '.gschema.xml', command: [ - '@INPUT0@', '@OUTPUT@', gschema_top, + '@INPUT0@', '@OUTPUT@', app_id, ], install: true, install_dir: schemasdir) @@ -80,13 +81,14 @@ if os_gnu or os_freebsd install_dir: bindir, install_mode: 'r-xr-xr-x') + # desktop entry desktop_file = configure_file ( input: 'zrythm.desktop.in', output: 'zrythm.desktop.in', configuration: zrythm_launcher_config) localized_desktop_file = i18n.merge_file ( input: desktop_file, - output: gschema_top + '.desktop', + output: app_id + '.desktop', type: 'desktop', po_dir: '../po', install: true, @@ -95,11 +97,52 @@ if os_gnu or os_freebsd desktop_utils = find_program ( 'desktop-file-validate', required: false) if desktop_utils.found() - test('Validate desktop file', desktop_utils, + test ('Validate desktop file', desktop_utils, args: [localized_desktop_file] ) endif -elif os_darwin + + # appdata + # TODO generate based on CHANGELOG.md + appdata_config = configuration_data ({ + 'HOMEPAGE_URL': 'https://www.zrythm.org/en/index.html', + 'DONATION_URL': 'https://www.zrythm.org/en/community.html', + 'BUG_REPORT_URL': 'https://todo.sr.ht/~alextee/zrythm-bug', + 'USER_MANUAL_URL': 'https://manual.zrythm.org/en/index.html', + 'PIANO_ROLL_SCREENSHOT_URL': 'https://www.zrythm.org/static/images/screenshots/Screenshot_20220110_152402.png', + 'MIXER_SCREENSHOT_URL': 'https://www.zrythm.org/static/images/screenshots/Screenshot_20220110_152001.png', + 'APP_ID': app_id, + }) + appdata_file_in = configure_file ( + input: '@0@.appdata.xml.in'.format (app_id), + output: '@0@.appdata.xml.in'.format (app_id), + configuration: appdata_config) + appdata_file = i18n.merge_file ( + input: appdata_file_in, + output: '@0@.appdata.xml'.format (app_id), + type: 'xml', + po_dir: '../po', + install: true, + install_dir: datadir / 'metainfo', + ) +# Validate the appdata file + appstream_util = find_program ( + 'appstream-util', required: false) + if appstream_util.found () + test ('validate-appdata', appstream_util, + suite: 'data', + args: [ + 'validate-relax', '--nonet', + appdata_file.full_path() + ], + depends: [ + appdata_file, + ], + ) + endif +endif # gnu or freebsd + +if os_darwin zrythm_gdb = configure_file ( input: 'zrythm_lldb.in', output: prog_name_lowercase + '_lldb', diff --git a/data/org.zrythm.Zrythm.appdata.xml.in b/data/org.zrythm.Zrythm.appdata.xml.in new file mode 100644 index 000000000..eea574fe9 --- /dev/null +++ b/data/org.zrythm.Zrythm.appdata.xml.in @@ -0,0 +1,63 @@ + + + org.zrythm.Zrythm + + CC0-1.0 + AGPL-3.0-or-later + The Zrythm contributors + Zrythm DAW + A highly automated and intuitive digital audio workstation + +

+ Zrythm is a digital audio workstation designed to + be featureful and easy to use. It allows + limitless automation through curves, LFOs and + envelopes, supports multiple plugin formats + including LV2, VST2 and VST3, works with + multiple backends including JACK, RtAudio/RtMidi + and SDL2, assists with chord progressions via a + special Chord Track and chord pads, and can be + used in multiple languages including English, + French, Portuguese, Japanese and German. +

+

+ Zrythm can be extended using GNU Guile. +

+
+ @BUG_REPORT_URL@ + @DONATION_URL@ + @USER_MANUAL_URL@ + @HOMEPAGE_URL@ + + + @PIANO_ROLL_SCREENSHOT_URL@ + Composing MIDI in Zrythm + + + @MIXER_SCREENSHOT_URL@ + Mixer view + + + alex_at_zrythm.org + + Zrythm + DAW + + + HiDpiIcon + ModernToolkit + + Zrythm + zrythm + + @APP_ID@.desktop + + zrythm_launch + @APP_ID@ + + + +
diff --git a/data/zrythm.desktop.in b/data/zrythm.desktop.in index d07b841a9..e1b448bf7 100644 --- a/data/zrythm.desktop.in +++ b/data/zrythm.desktop.in @@ -1,4 +1,4 @@ -# Copyright (C) 2019-2020 Alexandros Theodotou +# Copyright (C) 2019-2020, 2022 Alexandros Theodotou # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright @@ -10,6 +10,8 @@ Name=Zrythm GenericName=Digital Audio Workstation Version=1.0 Comment=highly automated and intuitive digital audio workstation +# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! +Keywords=daw;audio;midi;music; Exec=@BIN_DIR@/zrythm_launch # Translators: Do NOT translate or transliterate this text (this is an icon file name)! Icon=zrythm diff --git a/doc/dev/windows-build.md b/doc/dev/windows-build.md index 29995e751..6390a92cc 100644 --- a/doc/dev/windows-build.md +++ b/doc/dev/windows-build.md @@ -103,35 +103,18 @@ To open the terminal hit `ctrl`+`` ` `` ### ASIO -Because of licensing issues, you cannot distribute a build of ASIO. However, you can build one for yourself. +Zrythm uses the RtAudio library on Windows, which +can be built with ASIO support, however, +ASIO is proprietary and Zrythm uses code under the +GPL so distribution of Zrythm with ASIO support is +illegal. For more information on why this is not +allowed by the GPL, consider: -## Building rtaudio with ASIO support + -Download and install visual studio community edition and cmake. Make sure cmake is available in your path. -Start a windows cmd. - -``` -# Clone the rt audio repository -git clone https://github.com/thestk/rtaudio.git --single-branch -cd rtaudio -mkdir build -cd build -# Configure with asio enabled, and point the prefix to your mingw64 install dir (no trailing slash!) -cmake .. -DRTAUDIO_API_ASIO=ON -DCMAKE_INSTALL_PREFIX="C:/msys64/mingw64" -# Build and install -cmake --build . --config Release -cmake --install . -``` - -## Activate rtaudio from meson -Then from msys2 mingw64, you can build with: -``` -# non empty output means install was successful -pkg-config --list-all | grep rtaudio -meson build -Denable_rtaudio=auto -``` ---- +Copyright (C) 2022 Alexandros Theodotou Copyright (C) 2020 Sidar Talei, Matthieu Talbot Copying and distribution of this file, with or without modification, diff --git a/meson.build b/meson.build index d904eae93..16d093f19 100644 --- a/meson.build +++ b/meson.build @@ -1159,7 +1159,9 @@ rtaudio_dep = dependency ( # TODO use shared in the future so .dll can be # replaced on windows 'default_library=static', - # ASIO disabled for legal reasons + # distribution of Zrythm with ASIO support is + # illegal. see the discussion in + # https://gitlab.com/gnu-clisp/clisp/blob/dd313099db351c90431c1c90332192edce2bb5c9/doc/Why-CLISP-is-under-GPL 'asio=disabled',]) if rtaudio_dep.found () cdata.set('HAVE_RTAUDIO', 1) diff --git a/scripts/collect_translatables.sh b/scripts/collect_translatables.sh index 70b0ad737..bd871f0e7 100755 --- a/scripts/collect_translatables.sh +++ b/scripts/collect_translatables.sh @@ -35,6 +35,7 @@ for path in ['inc', 'src', 'resources', 'data']: f for f in filenames if f.endswith('.c') or f.endswith('.h') or f.endswith('.ui') or f.endswith('.gschema.xml') or + f.endswith('.appdata.xml.in') or f.endswith('.desktop.in')]: str = os.path.join(dirpath, filename) potfiles.write (str + '\n')