Signed-off-by: falkTX <falktx@falktx.com>master
| @@ -1,4 +1,10 @@ | |||
| lilv-static (5:0.24.12-1kxstudio3) focal; urgency=medium | |||
| lilv-static (6:0.24.14-1kxstudio3) focal; urgency=medium | |||
| * Update | |||
| -- falkTX <falktx@falktx.com> Wed, 15 Jun 2022 20:20:01 +0100 | |||
| lilv-static (6:0.24.12-1kxstudio3) focal; urgency=medium | |||
| * Initial package | |||
| @@ -7,7 +7,7 @@ Build-Depends: debhelper-compat (= 13), | |||
| python3, | |||
| pkg-config, | |||
| libsndfile-static (>= 6:1.1.0-2kxstudio3), | |||
| libsratom-static (>= 6:0.6.8-1kxstudio2) | |||
| libsratom-static (>= 6:0.6.10-1kxstudio1) | |||
| Standards-Version: 4.5.0 | |||
| Homepage: http://drobilla.net/software/lilv/ | |||
| Rules-Requires-Root: no | |||
| @@ -1,3 +1,9 @@ | |||
| lv2 (6:1.18.4-1kxstudio3) focal; urgency=medium | |||
| * Update | |||
| -- falkTX <falktx@falktx.com> Wed, 15 Jun 2022 20:00:17 +0100 | |||
| lv2 (6:1.18.2-1kxstudio2) focal; urgency=medium | |||
| * Initial package | |||
| @@ -15,10 +15,9 @@ Homepage: http://lv2plug.in/ | |||
| Rules-Requires-Root: no | |||
| Package: lv2-dev | |||
| Architecture: any | |||
| Architecture: amd64 arm64 armhf | |||
| Multi-Arch: same | |||
| Depends: ${misc:Depends}, ${shlibs:Depends}, sordi | |||
| # mod-sdk-lv2, kxstudio-lv2-extensions | |||
| Depends: ${misc:Depends}, sordi | |||
| Description: LV2 audio plugin specification | |||
| LV2 is a simple but extensible successor of LADSPA plugins, | |||
| intended to address the limitations of LADSPA which many | |||
| @@ -33,7 +32,7 @@ Description: LV2 audio plugin specification | |||
| Package: lv2-examples | |||
| Section: sound | |||
| Architecture: any | |||
| Architecture: amd64 arm64 armhf | |||
| Depends: ${misc:Depends}, ${shlibs:Depends} | |||
| Provides: lv2-plugin | |||
| Description: LV2 audio plugin specification (example plugins) | |||
| @@ -1,21 +0,0 @@ | |||
| From ba34a58b32839491335b5bcbda46e11c4b209cbc Mon Sep 17 00:00:00 2001 | |||
| From: Alexandros Theodotou <alex@zrythm.org> | |||
| Date: Fri, 12 Feb 2021 07:52:56 +0000 | |||
| Subject: [PATCH] Add missing LV2_CORE__enabled define | |||
| --- | |||
| lv2/core/lv2.h | 1 + | |||
| 1 file changed, 1 insertion(+) | |||
| diff --git a/lv2/core/lv2.h b/lv2/core/lv2.h | |||
| index 82bc7ab8..783fe864 100644 | |||
| --- a/lv2/core/lv2.h | |||
| +++ b/lv2/core/lv2.h | |||
| @@ -105,6 +105,7 @@ | |||
| #define LV2_CORE__default LV2_CORE_PREFIX "default" ///< http://lv2plug.in/ns/lv2core#default | |||
| #define LV2_CORE__designation LV2_CORE_PREFIX "designation" ///< http://lv2plug.in/ns/lv2core#designation | |||
| #define LV2_CORE__documentation LV2_CORE_PREFIX "documentation" ///< http://lv2plug.in/ns/lv2core#documentation | |||
| +#define LV2_CORE__enabled LV2_CORE_PREFIX "enabled" ///< http://lv2plug.in/ns/lv2core#enabled | |||
| #define LV2_CORE__enumeration LV2_CORE_PREFIX "enumeration" ///< http://lv2plug.in/ns/lv2core#enumeration | |||
| #define LV2_CORE__extensionData LV2_CORE_PREFIX "extensionData" ///< http://lv2plug.in/ns/lv2core#extensionData | |||
| #define LV2_CORE__freeWheeling LV2_CORE_PREFIX "freeWheeling" ///< http://lv2plug.in/ns/lv2core#freeWheeling | |||
| @@ -1,135 +0,0 @@ | |||
| From db715453bc12ac1d91183d3bc3642e4055c9aa26 Mon Sep 17 00:00:00 2001 | |||
| From: Reuben Thomas <reuben.thomas@me.com> | |||
| Date: Wed, 17 Feb 2021 23:32:12 +0000 | |||
| Subject: [PATCH] Fix typos in docstrings | |||
| --- | |||
| lv2/atom/forge.h | 6 +++--- | |||
| lv2/core/lv2.h | 2 +- | |||
| lv2/dynmanifest/dynmanifest.h | 2 +- | |||
| lv2/event/event.h | 2 +- | |||
| lv2/log/logger.h | 2 +- | |||
| lv2/state/state.h | 2 +- | |||
| lv2/ui/ui.h | 6 +++--- | |||
| 7 files changed, 11 insertions(+), 11 deletions(-) | |||
| diff --git a/lv2/atom/forge.h b/lv2/atom/forge.h | |||
| index 714df7e5..5cf3551e 100644 | |||
| --- a/lv2/atom/forge.h | |||
| +++ b/lv2/atom/forge.h | |||
| @@ -27,8 +27,8 @@ | |||
| must be popped when the container is finished. | |||
| All output is written to a user-provided buffer or sink function. This | |||
| - makes it popssible to create create atoms on the stack, on the heap, in LV2 | |||
| - port buffers, in a ringbuffer, or elsewhere, all using the same API. | |||
| + makes it possible to create atoms on the stack, on the heap, in LV2 port | |||
| + buffers, in a ringbuffer, or elsewhere, all using the same API. | |||
| This entire API is realtime safe if used with a buffer or a realtime safe | |||
| sink, except lv2_atom_forge_init() which is only realtime safe if the URI | |||
| @@ -282,7 +282,7 @@ lv2_atom_forge_set_sink(LV2_Atom_Forge* forge, | |||
| /** | |||
| Write raw output. This is used internally, but is also useful for writing | |||
| atom types not explicitly supported by the forge API. Note the caller is | |||
| - responsible for ensuring the output is approriately padded. | |||
| + responsible for ensuring the output is appropriately padded. | |||
| */ | |||
| static inline LV2_Atom_Forge_Ref | |||
| lv2_atom_forge_raw(LV2_Atom_Forge* forge, const void* data, uint32_t size) | |||
| diff --git a/lv2/core/lv2.h b/lv2/core/lv2.h | |||
| index 783fe864..84c40a50 100644 | |||
| --- a/lv2/core/lv2.h | |||
| +++ b/lv2/core/lv2.h | |||
| @@ -338,7 +338,7 @@ typedef struct LV2_Descriptor { | |||
| void (*cleanup)(LV2_Handle instance); | |||
| /** | |||
| - Return additional plugin data defined by some extenion. | |||
| + Return additional plugin data defined by some extension. | |||
| A typical use of this facility is to return a struct containing function | |||
| pointers to extend the LV2_Descriptor API. | |||
| diff --git a/lv2/dynmanifest/dynmanifest.h b/lv2/dynmanifest/dynmanifest.h | |||
| index 6181f71e..674577b5 100644 | |||
| --- a/lv2/dynmanifest/dynmanifest.h | |||
| +++ b/lv2/dynmanifest/dynmanifest.h | |||
| @@ -84,7 +84,7 @@ lv2_dyn_manifest_open(LV2_Dyn_Manifest_Handle* handle, | |||
| <http://example.org/plugin> a lv2:Plugin . | |||
| - The objects that are elegible for exposure are those that would need to be | |||
| + The objects that are eligible for exposure are those that would need to be | |||
| represented by a subject node in a static manifest. | |||
| @param handle Dynamic manifest generator handle. | |||
| diff --git a/lv2/event/event.h b/lv2/event/event.h | |||
| index d55d5cf4..045ac124 100644 | |||
| --- a/lv2/event/event.h | |||
| +++ b/lv2/event/event.h | |||
| @@ -61,7 +61,7 @@ LV2_DISABLE_DEPRECATION_WARNINGS | |||
| /** | |||
| The best Pulses Per Quarter Note for tempo-based uint32_t timestamps. | |||
| - Equal to 2^12 * 5 * 7 * 9 * 11 * 13 * 17, which is evenly divisble | |||
| + Equal to 2^12 * 5 * 7 * 9 * 11 * 13 * 17, which is evenly divisible | |||
| by all integers from 1 through 18 inclusive, and powers of 2 up to 2^12. | |||
| */ | |||
| LV2_DEPRECATED | |||
| diff --git a/lv2/log/logger.h b/lv2/log/logger.h | |||
| index e12b0eb4..d6919a2f 100644 | |||
| --- a/lv2/log/logger.h | |||
| +++ b/lv2/log/logger.h | |||
| @@ -23,7 +23,7 @@ | |||
| Convenience API for easy logging in plugin code. This API provides simple | |||
| wrappers for logging from a plugin, which automatically fall back to | |||
| - printing to stderr if host support is unavailabe. | |||
| + printing to stderr if host support is unavailable. | |||
| @{ | |||
| */ | |||
| diff --git a/lv2/state/state.h b/lv2/state/state.h | |||
| index 70972d84..e526d855 100644 | |||
| --- a/lv2/state/state.h | |||
| +++ b/lv2/state/state.h | |||
| @@ -76,7 +76,7 @@ typedef enum { | |||
| Values with this flag contain no pointers or references to other areas | |||
| of memory. It is safe to copy POD values with a simple memcpy and store | |||
| them for the duration of the process. A POD value is not necessarily | |||
| - safe to trasmit between processes or machines (for example, filenames | |||
| + safe to transmit between processes or machines (for example, filenames | |||
| are POD), see LV2_STATE_IS_PORTABLE for details. | |||
| Implementations MUST NOT attempt to copy or serialise a non-POD value if | |||
| diff --git a/lv2/ui/ui.h b/lv2/ui/ui.h | |||
| index 61b3b54b..fb41d90d 100644 | |||
| --- a/lv2/ui/ui.h | |||
| +++ b/lv2/ui/ui.h | |||
| @@ -202,7 +202,7 @@ typedef struct LV2UI_Descriptor { | |||
| By default, the host should only call this function for lv2:ControlPort | |||
| inputs. However, the UI can request updates for other ports statically | |||
| - with ui:portNotification or dynamicaly with ui:portSubscribe. | |||
| + with ui:portNotification or dynamically with ui:portSubscribe. | |||
| The UI MUST NOT retain any reference to `buffer` after this function | |||
| returns, it is only valid for the duration of the call. | |||
| @@ -357,7 +357,7 @@ typedef enum { | |||
| /** | |||
| Completed successfully. | |||
| - The host will set the parameter later if the user choses a new value. | |||
| + The host will set the parameter later if the user chooses a new value. | |||
| */ | |||
| LV2UI_REQUEST_VALUE_SUCCESS, | |||
| @@ -405,7 +405,7 @@ typedef struct { | |||
| any parameter value. | |||
| This function returns immediately, and the return value indicates | |||
| - whether the host can fulfill the request. The host may notify the | |||
| + whether the host can fulfil the request. The host may notify the | |||
| plugin about the new parameter value, for example when a file is | |||
| selected by the user, via the usual mechanism. Typically, the host will | |||
| send a message to the plugin that sets the new parameter value, and the | |||
| @@ -1,25 +0,0 @@ | |||
| From 446232eade7b08360fbadf6d16ed7a1ee7481faf Mon Sep 17 00:00:00 2001 | |||
| From: Filipe Coelho <falktx@falktx.com> | |||
| Date: Wed, 10 Mar 2021 14:00:47 +0000 | |||
| Subject: [PATCH] eg-sampler: Fix out of bounds sample read after loading new | |||
| file | |||
| --- | |||
| plugins/eg-sampler.lv2/sampler.c | 4 ++++ | |||
| 1 file changed, 4 insertions(+) | |||
| diff --git a/plugins/eg-sampler.lv2/sampler.c b/plugins/eg-sampler.lv2/sampler.c | |||
| index 6c64df51..1efad3cb 100644 | |||
| --- a/plugins/eg-sampler.lv2/sampler.c | |||
| +++ b/plugins/eg-sampler.lv2/sampler.c | |||
| @@ -211,6 +211,10 @@ work_response(LV2_Handle instance, uint32_t size, const void* data) | |||
| // Install the new sample | |||
| self->sample = *(Sample* const*)data; | |||
| + // Stop playing previous sample, which can be larger than new one | |||
| + self->frame = 0; | |||
| + self->play = false; | |||
| + | |||
| // Schedule work to free the old sample | |||
| SampleMessage msg = {{sizeof(Sample*), self->uris.eg_freeSample}, old_sample}; | |||
| self->schedule->schedule_work(self->schedule->handle, sizeof(msg), &msg); | |||
| @@ -1,36 +0,0 @@ | |||
| From 611759daacc377a2dba97723097338fceffd6ef8 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Wed, 10 Mar 2021 13:55:56 -0500 | |||
| Subject: [PATCH] Fix warnings with VS2019 | |||
| --- | |||
| lv2/core/lv2_util.h | 2 +- | |||
| plugins/eg-metro.lv2/metro.c | 2 +- | |||
| 2 files changed, 2 insertions(+), 2 deletions(-) | |||
| diff --git a/lv2/core/lv2_util.h b/lv2/core/lv2_util.h | |||
| index 5dab8a02..f3766aaf 100644 | |||
| --- a/lv2/core/lv2_util.h | |||
| +++ b/lv2/core/lv2_util.h | |||
| @@ -81,7 +81,7 @@ lv2_features_query(const LV2_Feature* const* features, ...) | |||
| const char* uri = NULL; | |||
| while ((uri = va_arg(args, const char*))) { | |||
| void** data = va_arg(args, void**); | |||
| - bool required = va_arg(args, int); | |||
| + bool required = (bool)va_arg(args, int); | |||
| *data = lv2_features_data(features, uri); | |||
| if (required && !*data) { | |||
| diff --git a/plugins/eg-metro.lv2/metro.c b/plugins/eg-metro.lv2/metro.c | |||
| index 46ca41b8..87a90292 100644 | |||
| --- a/plugins/eg-metro.lv2/metro.c | |||
| +++ b/plugins/eg-metro.lv2/metro.c | |||
| @@ -223,7 +223,7 @@ play(Metro* self, uint32_t begin, uint32_t end) | |||
| switch (self->state) { | |||
| case STATE_ATTACK: | |||
| // Amplitude increases from 0..1 until attack_len | |||
| - output[i] = self->wave[self->wave_offset] * self->elapsed_len / | |||
| + output[i] = self->wave[self->wave_offset] * (float)self->elapsed_len / | |||
| (float)self->attack_len; | |||
| if (self->elapsed_len >= self->attack_len) { | |||
| self->state = STATE_DECAY; | |||
| @@ -1,24 +0,0 @@ | |||
| From ff22f1d357f278b1b3fd1eb2fd8354cd6c6a226a Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Thu, 11 Mar 2021 13:33:31 -0500 | |||
| Subject: [PATCH] Add missing class label | |||
| --- | |||
| schemas.lv2/dcs.ttl | 4 +++- | |||
| 1 file changed, 3 insertions(+), 1 deletion(-) | |||
| diff --git a/schemas.lv2/dcs.ttl b/schemas.lv2/dcs.ttl | |||
| index 37b1e109..44bf294e 100644 | |||
| --- a/schemas.lv2/dcs.ttl | |||
| +++ b/schemas.lv2/dcs.ttl | |||
| @@ -180,7 +180,9 @@ dcs:file | |||
| rdfs:comment "A file involved in the change."@en ; | |||
| rdfs:domain dcs:Change . | |||
| -dbug:Issue a rdfs:Class . | |||
| +dbug:Issue | |||
| + a rdfs:Class ; | |||
| + rdfs:label "Issue"@en . | |||
| dcs:fixes | |||
| a owl:ObjectProperty ; | |||
| @@ -1,27 +0,0 @@ | |||
| From 253346878c9127afbe60e69f0afa3e64632a20c7 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Thu, 11 Mar 2021 13:33:42 -0500 | |||
| Subject: [PATCH] Remove subclass cycle | |||
| It's unfortunate to diverge from the canonical document, but most of these | |||
| third-party schemas already do anyway. This may be technically fine according | |||
| to rdfs (I'm not sure), but it's better for the LV2 universe as a whole to | |||
| consistently eliminate such things. | |||
| --- | |||
| schemas.lv2/dct.ttl | 3 +-- | |||
| 1 file changed, 1 insertion(+), 2 deletions(-) | |||
| diff --git a/schemas.lv2/dct.ttl b/schemas.lv2/dct.ttl | |||
| index 5cdd5047..d8fd1962 100644 | |||
| --- a/schemas.lv2/dct.ttl | |||
| +++ b/schemas.lv2/dct.ttl | |||
| @@ -22,8 +22,7 @@ dcterms:AgentClass | |||
| dcterms:description "Examples of Agent Class include groups seen as classes, such as students, women, charities, lecturers."@en-us ; | |||
| rdfs:comment "A group of agents."@en-us ; | |||
| rdfs:isDefinedBy dcterms: ; | |||
| - rdfs:label "Agent Class"@en-us ; | |||
| - rdfs:subClassOf dcterms:AgentClass . | |||
| + rdfs:label "Agent Class"@en-us . | |||
| dcterms:LicenseDocument | |||
| a rdfs:Class ; | |||
| @@ -1,70 +0,0 @@ | |||
| From 89321be2808471f99437e1effef0c83be4688b57 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Thu, 11 Mar 2021 13:40:13 -0500 | |||
| Subject: [PATCH] Fix whitespace in xsd.ttl | |||
| --- | |||
| schemas.lv2/xsd.ttl | 14 +++++++------- | |||
| 1 file changed, 7 insertions(+), 7 deletions(-) | |||
| diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl | |||
| index 54d3ad8c..d22687b3 100644 | |||
| --- a/schemas.lv2/xsd.ttl | |||
| +++ b/schemas.lv2/xsd.ttl | |||
| @@ -166,7 +166,7 @@ xsd:float | |||
| xsd:fractionDigits | |||
| a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "The total number of digits to the right of the decimal point required to represent a value." ; | |||
| rdfs:label "fraction digits" ; | |||
| rdfs:range xsd:nonNegativeInteger . | |||
| @@ -277,25 +277,25 @@ xsd:long | |||
| xsd:maxExclusive | |||
| a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "The exclusive upper bound of an ordered datatype." ; | |||
| rdfs:label "max exclusive" . | |||
| xsd:maxInclusive | |||
| a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "The inclusive upper bound of an ordered datatype." ; | |||
| rdfs:label "max inclusive" . | |||
| xsd:minExclusive | |||
| a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "The exclusive lower bound of an ordered datatype." ; | |||
| rdfs:label "min exclusive" . | |||
| xsd:minInclusive | |||
| a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "The inclusive lower bound of an ordered datatype." ; | |||
| rdfs:label "min inclusive" . | |||
| @@ -346,7 +346,7 @@ xsd:normalizedString | |||
| xsd:pattern | |||
| a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "A regular expression that matches complete valid literals." ; | |||
| rdfs:label "pattern" . | |||
| @@ -425,7 +425,7 @@ xsd:token | |||
| xsd:totalDigits | |||
| a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "The maximum number of decimal digits required to represent a value." ; | |||
| rdfs:label "total digits" ; | |||
| rdfs:range xsd:positiveInteger . | |||
| @@ -1,134 +0,0 @@ | |||
| From 7485bde78f3422e4f9415ff452fcd858ee544cd0 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Thu, 11 Mar 2021 13:40:30 -0500 | |||
| Subject: [PATCH] Fix pattern restrictions in xsd.ttl | |||
| This fixes the patterns to properly match the spec (several were too strict or | |||
| otherwise impresive), and also reduces the regex syntax used to a basic and | |||
| nearly universal subset (without the use of counted replication) that should be | |||
| supported and handled consistently by even a very basic implementation. | |||
| --- | |||
| schemas.lv2/xsd.ttl | 26 ++++++++++++++------------ | |||
| 1 file changed, 14 insertions(+), 12 deletions(-) | |||
| diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl | |||
| index d22687b3..01be2e4d 100644 | |||
| --- a/schemas.lv2/xsd.ttl | |||
| +++ b/schemas.lv2/xsd.ttl | |||
| @@ -61,7 +61,7 @@ xsd:base64Binary | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?" | |||
| + xsd:pattern "(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *)*(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/])|([A-Za-z0-9+/] *[A-Za-z0-9+/] *[AEIMQUYcgkosw048] *=)|([A-Za-z0-9+/] *[AQgw] *= *=)))?" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -73,7 +73,7 @@ xsd:boolean | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "(true|false)" | |||
| + xsd:pattern "(true|false|0|1)" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -97,7 +97,7 @@ xsd:date | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?" | |||
| + xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|[-+][0-2][0-9]:[0-5][0-9])?" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -109,7 +109,7 @@ xsd:dateTime | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "-?([1-9][0-9]{3,}|0[0-9]{3})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|(24:00:00(\\.0+)?))(Z|(\\+|-)((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?" | |||
| + xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -122,7 +122,7 @@ xsd:decimal | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "[+-]?[0-9]*\\.?[0-9]*" | |||
| + xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -135,7 +135,7 @@ xsd:double | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?" | |||
| + xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -147,6 +147,8 @@ xsd:duration | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| + xsd:pattern "-?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\.[0-9]+)?S)?)?" | |||
| + ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -158,7 +160,7 @@ xsd:float | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "[+-]?[0-9]*\\.?[0-9]*([eE][-+]?[0-9]+)?" | |||
| + xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -223,7 +225,7 @@ xsd:hexBinary | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "[0-9A-F]*" | |||
| + xsd:pattern "([0-9A-Fa-f][0-9A-Fa-f])*" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -259,7 +261,7 @@ xsd:language | |||
| owl:onDatatype xsd:token ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*" | |||
| + xsd:pattern "[a-zA-Z][a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?(-[a-zA-Z0-9][a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]?)*" | |||
| ] | |||
| ) . | |||
| @@ -315,7 +317,7 @@ xsd:nonNegativeInteger | |||
| owl:onDatatype xsd:integer ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "[0-9]*" | |||
| + xsd:pattern "[+]?[0-9]+" | |||
| ] [ | |||
| xsd:minInclusive 0 | |||
| ] | |||
| @@ -371,7 +373,7 @@ xsd:positiveInteger | |||
| owl:onDatatype xsd:nonNegativeInteger ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "[+]?[0-9]+" | |||
| + xsd:pattern "[+]?[0-9]*[1-9]+[0-9]*" | |||
| ] [ | |||
| xsd:minInclusive 1 | |||
| ] | |||
| @@ -406,7 +408,7 @@ xsd:time | |||
| owl:onDatatype xsd:anySimpleType ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:pattern "[1-2][0-9]:[0-5][0-9]:[0-5][0-9].[0-9][0-9][0-9]" | |||
| + xsd:pattern "(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?" | |||
| ] [ | |||
| xsd:whiteSpace "collapse" | |||
| ] | |||
| @@ -1,74 +0,0 @@ | |||
| From e0b9a3c2806f846c104ba2e0c5816886ab310c1b Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Thu, 11 Mar 2021 13:45:29 -0500 | |||
| Subject: [PATCH] Sort xsd.ttl | |||
| --- | |||
| schemas.lv2/xsd.ttl | 36 ++++++++++++++++++------------------ | |||
| 1 file changed, 18 insertions(+), 18 deletions(-) | |||
| diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl | |||
| index 01be2e4d..47030624 100644 | |||
| --- a/schemas.lv2/xsd.ttl | |||
| +++ b/schemas.lv2/xsd.ttl | |||
| @@ -7,9 +7,6 @@ xsd: | |||
| a owl:Ontology ; | |||
| rdfs:comment "XML Schema Datatypes" . | |||
| -xsd:anySimpleType | |||
| - a rdfs:Datatype . | |||
| - | |||
| xsd:ENTITY | |||
| a rdfs:Datatype ; | |||
| owl:onDatatype xsd:NCName . | |||
| @@ -44,6 +41,9 @@ xsd:QName | |||
| ] | |||
| ) . | |||
| +xsd:anySimpleType | |||
| + a rdfs:Datatype . | |||
| + | |||
| xsd:anyURI | |||
| a rdfs:Datatype ; | |||
| rdfs:label "URI reference" ; | |||
| @@ -352,21 +352,6 @@ xsd:pattern | |||
| rdfs:comment "A regular expression that matches complete valid literals." ; | |||
| rdfs:label "pattern" . | |||
| -xsd:whiteSpace | |||
| - a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| - rdfs:comment "A string that describes whitespace normalization for a string type." ; | |||
| - rdfs:label "white space" ; | |||
| - rdfs:range [ | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:string ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:pattern "(preserve|replace|collapse)" | |||
| - ] | |||
| - ) | |||
| - ] . | |||
| - | |||
| xsd:positiveInteger | |||
| a rdfs:Datatype ; | |||
| rdfs:label "positive integer" ; | |||
| @@ -472,3 +457,18 @@ xsd:unsignedShort | |||
| ] | |||
| ) . | |||
| +xsd:whiteSpace | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| + rdfs:comment "A string that describes whitespace normalization for a string type." ; | |||
| + rdfs:label "white space" ; | |||
| + rdfs:range [ | |||
| + a rdfs:Datatype ; | |||
| + owl:onDatatype xsd:string ; | |||
| + owl:withRestrictions ( | |||
| + [ | |||
| + xsd:pattern "(preserve|replace|collapse)" | |||
| + ] | |||
| + ) | |||
| + ] . | |||
| + | |||
| @@ -1,298 +0,0 @@ | |||
| From 50f531462274bb6c395ff1b63cf7c1016d7bb088 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Thu, 11 Mar 2021 13:55:08 -0500 | |||
| Subject: [PATCH] Remove unused datatypes from xsd.ttl | |||
| This data costs memory, and I think it is better to not present things that | |||
| aren't useful to LV2 implementations at all here. | |||
| The whitespace annotations could be useful for cleaning up literals, but this | |||
| isn't currently used (and tends to be baked in to implementations anyway), so | |||
| remove them as well. If necessary they can be added later easily enough. | |||
| --- | |||
| schemas.lv2/xsd.ttl | 152 +++++--------------------------------------- | |||
| 1 file changed, 16 insertions(+), 136 deletions(-) | |||
| diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl | |||
| index 47030624..007d84ed 100644 | |||
| --- a/schemas.lv2/xsd.ttl | |||
| +++ b/schemas.lv2/xsd.ttl | |||
| @@ -7,52 +7,15 @@ xsd: | |||
| a owl:Ontology ; | |||
| rdfs:comment "XML Schema Datatypes" . | |||
| -xsd:ENTITY | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:NCName . | |||
| - | |||
| -xsd:ID | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:NCName . | |||
| - | |||
| -xsd:IDREF | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:NCName . | |||
| - | |||
| -xsd:NCName | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:Name . | |||
| - | |||
| -xsd:NMTOKEN | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:token . | |||
| - | |||
| -xsd:Name | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:token . | |||
| - | |||
| -xsd:QName | |||
| - a rdfs:Datatype ; | |||
| - rdfs:label "XML qualified name" ; | |||
| - owl:onDatatype xsd:anySimpleType ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "collapse" | |||
| - ] | |||
| - ) . | |||
| - | |||
| xsd:anySimpleType | |||
| - a rdfs:Datatype . | |||
| + a rdfs:Datatype ; | |||
| + rdfs:comment "The base class of any primitive XSD dataype." ; | |||
| + rdfs:label "any simple type" . | |||
| xsd:anyURI | |||
| a rdfs:Datatype ; | |||
| - rdfs:label "URI reference" ; | |||
| - owl:onDatatype xsd:anySimpleType ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "collapse" | |||
| - ] | |||
| - ) . | |||
| + rdfs:label "any URI" ; | |||
| + owl:onDatatype xsd:anySimpleType . | |||
| xsd:base64Binary | |||
| a rdfs:Datatype ; | |||
| @@ -62,8 +25,6 @@ xsd:base64Binary | |||
| owl:withRestrictions ( | |||
| [ | |||
| xsd:pattern "(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *)*(([A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/] *[A-Za-z0-9+/])|([A-Za-z0-9+/] *[A-Za-z0-9+/] *[AEIMQUYcgkosw048] *=)|([A-Za-z0-9+/] *[AQgw] *= *=)))?" | |||
| - ] [ | |||
| - xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -74,8 +35,6 @@ xsd:boolean | |||
| owl:withRestrictions ( | |||
| [ | |||
| xsd:pattern "(true|false|0|1)" | |||
| - ] [ | |||
| - xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -85,9 +44,9 @@ xsd:byte | |||
| owl:onDatatype xsd:short ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:minInclusive -128 | |||
| - ] [ | |||
| xsd:maxInclusive 127 | |||
| + ] [ | |||
| + xsd:minInclusive -128 | |||
| ] | |||
| ) . | |||
| @@ -98,8 +57,6 @@ xsd:date | |||
| owl:withRestrictions ( | |||
| [ | |||
| xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])(Z|[-+][0-2][0-9]:[0-5][0-9])?" | |||
| - ] [ | |||
| - xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -110,8 +67,6 @@ xsd:dateTime | |||
| owl:withRestrictions ( | |||
| [ | |||
| xsd:pattern "-?[0-9][0-9][0-9][0-9][0-9]*-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?" | |||
| - ] [ | |||
| - xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -123,8 +78,6 @@ xsd:decimal | |||
| owl:withRestrictions ( | |||
| [ | |||
| xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" | |||
| - ] [ | |||
| - xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -136,8 +89,6 @@ xsd:double | |||
| owl:withRestrictions ( | |||
| [ | |||
| xsd:pattern "-?INF|NaN|[+-]?(([0-9]+[.]?[0-9]*)|([0-9]*[.]?[0-9]+))([eE][-+]?[0-9]+)?" | |||
| - ] [ | |||
| - xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -173,51 +124,6 @@ xsd:fractionDigits | |||
| rdfs:label "fraction digits" ; | |||
| rdfs:range xsd:nonNegativeInteger . | |||
| -xsd:gDay | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:anySimpleType ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "collapse" | |||
| - ] | |||
| - ) . | |||
| - | |||
| -xsd:gMonth | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:anySimpleType ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "collapse" | |||
| - ] | |||
| - ) . | |||
| - | |||
| -xsd:gMonthDay | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:anySimpleType ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "collapse" | |||
| - ] | |||
| - ) . | |||
| - | |||
| -xsd:gYear | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:anySimpleType ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "collapse" | |||
| - ] | |||
| - ) . | |||
| - | |||
| -xsd:gYearMonth | |||
| - a rdfs:Datatype ; | |||
| - owl:onDatatype xsd:anySimpleType ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "collapse" | |||
| - ] | |||
| - ) . | |||
| - | |||
| xsd:hexBinary | |||
| a rdfs:Datatype ; | |||
| rdfs:comment "Hex-encoded arbitrary binary data." ; | |||
| @@ -226,8 +132,6 @@ xsd:hexBinary | |||
| owl:withRestrictions ( | |||
| [ | |||
| xsd:pattern "([0-9A-Fa-f][0-9A-Fa-f])*" | |||
| - ] [ | |||
| - xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -237,9 +141,9 @@ xsd:int | |||
| owl:onDatatype xsd:long ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:minInclusive -2147483648 | |||
| - ] [ | |||
| xsd:maxInclusive 2147483647 | |||
| + ] [ | |||
| + xsd:minInclusive -2147483648 | |||
| ] | |||
| ) . | |||
| @@ -271,9 +175,9 @@ xsd:long | |||
| owl:onDatatype xsd:integer ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:minInclusive -9223372036854775808 | |||
| - ] [ | |||
| xsd:maxInclusive 9223372036854775807 | |||
| + ] [ | |||
| + xsd:minInclusive -9223372036854775808 | |||
| ] | |||
| ) . | |||
| @@ -339,12 +243,7 @@ xsd:normalizedString | |||
| a rdfs:Datatype ; | |||
| rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters." ; | |||
| rdfs:label "normalized string" ; | |||
| - owl:onDatatype xsd:string ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "replace" | |||
| - ] | |||
| - ) . | |||
| + owl:onDatatype xsd:string . | |||
| xsd:pattern | |||
| a rdf:Property , | |||
| @@ -370,9 +269,9 @@ xsd:short | |||
| owl:onDatatype xsd:int ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:minInclusive -32768 | |||
| - ] [ | |||
| xsd:maxInclusive 32767 | |||
| + ] [ | |||
| + xsd:minInclusive -32768 | |||
| ] | |||
| ) . | |||
| @@ -380,12 +279,7 @@ xsd:string | |||
| a rdfs:Datatype ; | |||
| rdfs:comment "A character string." ; | |||
| rdfs:label "string" ; | |||
| - owl:onDatatype xsd:anySimpleType ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "preserve" | |||
| - ] | |||
| - ) . | |||
| + owl:onDatatype xsd:anySimpleType . | |||
| xsd:time | |||
| a rdfs:Datatype ; | |||
| @@ -394,8 +288,6 @@ xsd:time | |||
| owl:withRestrictions ( | |||
| [ | |||
| xsd:pattern "(([0-1][0-9])|(2[0-4])):[0-5][0-9]:[0-5][0-9](.[0-9]+)?(Z|[-+][0-2][0-9]:[0-5][0-9])?" | |||
| - ] [ | |||
| - xsd:whiteSpace "collapse" | |||
| ] | |||
| ) . | |||
| @@ -403,19 +295,7 @@ xsd:token | |||
| a rdfs:Datatype ; | |||
| rdfs:comment "The set of strings that do not contain the carriage return (#xD), line feed (#xA) nor tab (#x9) characters, that have no leading or trailing spaces (#x20) and that have no internal sequences of two or more spaces." ; | |||
| rdfs:label "token" ; | |||
| - owl:onDatatype xsd:normalizedString ; | |||
| - owl:withRestrictions ( | |||
| - [ | |||
| - xsd:whiteSpace "collapse" | |||
| - ] | |||
| - ) . | |||
| - | |||
| -xsd:totalDigits | |||
| - a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| - rdfs:comment "The maximum number of decimal digits required to represent a value." ; | |||
| - rdfs:label "total digits" ; | |||
| - rdfs:range xsd:positiveInteger . | |||
| + owl:onDatatype xsd:normalizedString . | |||
| xsd:unsignedByte | |||
| a rdfs:Datatype ; | |||
| @@ -1,104 +0,0 @@ | |||
| From b37402500176b328a6a5752df2a170538cc9594c Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Thu, 11 Mar 2021 14:47:36 -0500 | |||
| Subject: [PATCH] Use matching datatypes for fixed-size bounds in xsd.ttl | |||
| This avoids the need to do any datatype conversion for handling bounds. In | |||
| particular, it avoids troublesome range issues, like the maximum | |||
| xsd:unsignedLong being too large to fit in an xsd:long, which is likely what an | |||
| implementation without bigint support uses to represent xsd:integer. | |||
| So, avoid all of that by simply using the exact datatype in bounds for that | |||
| datatype, which makes more sense anyway. | |||
| --- | |||
| schemas.lv2/xsd.ttl | 24 ++++++++++++------------ | |||
| 1 file changed, 12 insertions(+), 12 deletions(-) | |||
| diff --git a/schemas.lv2/xsd.ttl b/schemas.lv2/xsd.ttl | |||
| index 007d84ed..cb983634 100644 | |||
| --- a/schemas.lv2/xsd.ttl | |||
| +++ b/schemas.lv2/xsd.ttl | |||
| @@ -44,9 +44,9 @@ xsd:byte | |||
| owl:onDatatype xsd:short ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:maxInclusive 127 | |||
| + xsd:maxInclusive "127"^^xsd:byte | |||
| ] [ | |||
| - xsd:minInclusive -128 | |||
| + xsd:minInclusive "-128"^^xsd:byte | |||
| ] | |||
| ) . | |||
| @@ -141,9 +141,9 @@ xsd:int | |||
| owl:onDatatype xsd:long ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:maxInclusive 2147483647 | |||
| + xsd:maxInclusive "2147483647"^^xsd:int | |||
| ] [ | |||
| - xsd:minInclusive -2147483648 | |||
| + xsd:minInclusive "-2147483648"^^xsd:int | |||
| ] | |||
| ) . | |||
| @@ -175,9 +175,9 @@ xsd:long | |||
| owl:onDatatype xsd:integer ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:maxInclusive 9223372036854775807 | |||
| + xsd:maxInclusive "9223372036854775807"^^xsd:long | |||
| ] [ | |||
| - xsd:minInclusive -9223372036854775808 | |||
| + xsd:minInclusive "-9223372036854775808"^^xsd:long | |||
| ] | |||
| ) . | |||
| @@ -269,9 +269,9 @@ xsd:short | |||
| owl:onDatatype xsd:int ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:maxInclusive 32767 | |||
| + xsd:maxInclusive "32767"^^xsd:short | |||
| ] [ | |||
| - xsd:minInclusive -32768 | |||
| + xsd:minInclusive "-32768"^^xsd:short | |||
| ] | |||
| ) . | |||
| @@ -303,7 +303,7 @@ xsd:unsignedByte | |||
| owl:onDatatype xsd:unsignedShort ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:maxInclusive 255 | |||
| + xsd:maxInclusive "255"^^xsd:unsignedByte | |||
| ] | |||
| ) . | |||
| @@ -313,7 +313,7 @@ xsd:unsignedInt | |||
| owl:onDatatype xsd:unsignedLong ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:maxInclusive 4294967295 | |||
| + xsd:maxInclusive "4294967295"^^xsd:unsignedInt | |||
| ] | |||
| ) . | |||
| @@ -323,7 +323,7 @@ xsd:unsignedLong | |||
| owl:onDatatype xsd:nonNegativeInteger ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:maxInclusive 18446744073709551615 | |||
| + xsd:maxInclusive "18446744073709551615"^^xsd:unsignedLong | |||
| ] | |||
| ) . | |||
| @@ -333,7 +333,7 @@ xsd:unsignedShort | |||
| owl:onDatatype xsd:unsignedInt ; | |||
| owl:withRestrictions ( | |||
| [ | |||
| - xsd:maxInclusive 65535 | |||
| + xsd:maxInclusive "65535"^^xsd:unsignedShort | |||
| ] | |||
| ) . | |||
| @@ -1,245 +0,0 @@ | |||
| From 3a4020958acf5b88f366e5bc99e3009a7beca104 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Fri, 12 Mar 2021 20:12:01 -0500 | |||
| Subject: [PATCH] Add owl:imports to ontologies | |||
| These are required by OWL tools to use vocabulary from another ontology. | |||
| Though we don't use OWL tools in LV2, they are at least useful for sanity | |||
| checking the semantic side of things. These properties are also nice to have | |||
| anyway, since they clearly describe the dependencies between specifications. | |||
| --- | |||
| lv2/atom/atom.ttl | 5 ++++- | |||
| lv2/buf-size/buf-size.ttl | 4 +++- | |||
| lv2/core/lv2core.ttl | 3 ++- | |||
| lv2/event/event.ttl | 3 ++- | |||
| lv2/log/log.ttl | 3 ++- | |||
| lv2/morph/morph.ttl | 3 ++- | |||
| lv2/options/options.ttl | 3 ++- | |||
| lv2/parameters/parameters.ttl | 5 ++++- | |||
| lv2/port-groups/port-groups.ttl | 3 ++- | |||
| lv2/port-props/port-props.ttl | 3 ++- | |||
| lv2/presets/presets.ttl | 3 ++- | |||
| lv2/resize-port/resize-port.ttl | 3 ++- | |||
| lv2/state/state.ttl | 3 ++- | |||
| lv2/ui/ui.ttl | 5 +++-- | |||
| lv2/urid/urid.ttl | 3 ++- | |||
| 15 files changed, 36 insertions(+), 16 deletions(-) | |||
| diff --git a/lv2/atom/atom.ttl b/lv2/atom/atom.ttl | |||
| index ddfb430d..ef221ad3 100644 | |||
| --- a/lv2/atom/atom.ttl | |||
| +++ b/lv2/atom/atom.ttl | |||
| @@ -14,7 +14,10 @@ | |||
| <forge.h> , | |||
| <atom.meta.ttl> ; | |||
| rdfs:label "LV2 Atom" ; | |||
| - rdfs:comment "A generic value container and several data types." . | |||
| + rdfs:comment "A generic value container and several data types." ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> , | |||
| + <http://lv2plug.in/ns/extensions/ui> , | |||
| + <http://lv2plug.in/ns/extensions/units> . | |||
| atom:cType | |||
| a rdf:Property , | |||
| diff --git a/lv2/buf-size/buf-size.ttl b/lv2/buf-size/buf-size.ttl | |||
| index 88631982..c78d2cc8 100644 | |||
| --- a/lv2/buf-size/buf-size.ttl | |||
| +++ b/lv2/buf-size/buf-size.ttl | |||
| @@ -11,7 +11,9 @@ | |||
| rdfs:label "LV2 Buf Size" ; | |||
| rdfs:comment "Access to, and restrictions on, buffer sizes." ; | |||
| rdfs:seeAlso <buf-size.h> , | |||
| - <buf-size.meta.ttl> . | |||
| + <buf-size.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> , | |||
| + <http://lv2plug.in/ns/ext/options> . | |||
| bufsz:boundedBlockLength | |||
| a lv2:Feature ; | |||
| diff --git a/lv2/core/lv2core.ttl b/lv2/core/lv2core.ttl | |||
| index f5836c6e..87541693 100644 | |||
| --- a/lv2/core/lv2core.ttl | |||
| +++ b/lv2/core/lv2core.ttl | |||
| @@ -11,7 +11,8 @@ | |||
| rdfs:comment "An extensible open standard for audio plugins." ; | |||
| rdfs:seeAlso <lv2.h> , | |||
| <lv2_util.h> , | |||
| - <lv2core.meta.ttl> . | |||
| + <lv2core.meta.ttl> ; | |||
| + owl:imports doap: . | |||
| lv2:Specification | |||
| a rdfs:Class , | |||
| diff --git a/lv2/event/event.ttl b/lv2/event/event.ttl | |||
| index de400d43..3114fc58 100644 | |||
| --- a/lv2/event/event.ttl | |||
| +++ b/lv2/event/event.ttl | |||
| @@ -11,7 +11,8 @@ | |||
| rdfs:comment "A port-based real-time generic event interface." ; | |||
| rdfs:seeAlso <event.h> , | |||
| <event-helpers.h> , | |||
| - <event.meta.ttl> . | |||
| + <event.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| ev:EventPort | |||
| a rdfs:Class ; | |||
| diff --git a/lv2/log/log.ttl b/lv2/log/log.ttl | |||
| index 46cba45e..a8c42367 100644 | |||
| --- a/lv2/log/log.ttl | |||
| +++ b/lv2/log/log.ttl | |||
| @@ -10,7 +10,8 @@ | |||
| rdfs:label "LV2 Log" ; | |||
| rdfs:comment "A feature for writing log messages." ; | |||
| rdfs:seeAlso <log.h> , | |||
| - <log.meta.ttl> . | |||
| + <log.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| log:Entry | |||
| a rdfs:Class ; | |||
| diff --git a/lv2/morph/morph.ttl b/lv2/morph/morph.ttl | |||
| index 303293da..a771e030 100644 | |||
| --- a/lv2/morph/morph.ttl | |||
| +++ b/lv2/morph/morph.ttl | |||
| @@ -13,7 +13,8 @@ | |||
| rdfs:label "LV2 Morph" ; | |||
| rdfs:comment "Ports that can dynamically change type." ; | |||
| rdfs:seeAlso <morph.h> , | |||
| - <morph.meta.ttl> . | |||
| + <morph.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| morph:MorphPort | |||
| a rdfs:Class , | |||
| diff --git a/lv2/options/options.ttl b/lv2/options/options.ttl | |||
| index f8388da8..78defeff 100644 | |||
| --- a/lv2/options/options.ttl | |||
| +++ b/lv2/options/options.ttl | |||
| @@ -10,7 +10,8 @@ | |||
| rdfs:label "LV2 Options" ; | |||
| rdfs:comment "Runtime options for LV2 plugins and UIs." ; | |||
| rdfs:seeAlso <options.h> , | |||
| - <options.meta.ttl> . | |||
| + <options.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| opts:Option | |||
| a rdfs:Class ; | |||
| diff --git a/lv2/parameters/parameters.ttl b/lv2/parameters/parameters.ttl | |||
| index 5c3dadf9..99878127 100644 | |||
| --- a/lv2/parameters/parameters.ttl | |||
| +++ b/lv2/parameters/parameters.ttl | |||
| @@ -11,7 +11,10 @@ | |||
| a owl:Ontology ; | |||
| rdfs:label "LV2 Parameters" ; | |||
| rdfs:comment "Common parameters for audio processing." ; | |||
| - rdfs:seeAlso <parameters.meta.ttl> . | |||
| + rdfs:seeAlso <parameters.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/ext/atom> , | |||
| + <http://lv2plug.in/ns/ext/port-groups> , | |||
| + <http://lv2plug.in/ns/lv2core> . | |||
| param:ControlGroup | |||
| a rdfs:Class ; | |||
| diff --git a/lv2/port-groups/port-groups.ttl b/lv2/port-groups/port-groups.ttl | |||
| index d248f28b..5173aa09 100644 | |||
| --- a/lv2/port-groups/port-groups.ttl | |||
| +++ b/lv2/port-groups/port-groups.ttl | |||
| @@ -9,7 +9,8 @@ | |||
| a owl:Ontology ; | |||
| rdfs:label "LV2 Port Groups" ; | |||
| rdfs:comment "Multi-channel groups of LV2 ports." ; | |||
| - rdfs:seeAlso <port-groups.meta.ttl> . | |||
| + rdfs:seeAlso <port-groups.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| pg:Group | |||
| a rdfs:Class ; | |||
| diff --git a/lv2/port-props/port-props.ttl b/lv2/port-props/port-props.ttl | |||
| index 1ddeed07..ea25c6bd 100644 | |||
| --- a/lv2/port-props/port-props.ttl | |||
| +++ b/lv2/port-props/port-props.ttl | |||
| @@ -9,7 +9,8 @@ | |||
| a owl:Ontology ; | |||
| rdfs:label "LV2 Port Properties" ; | |||
| rdfs:comment "Various properties for LV2 plugin ports." ; | |||
| - rdfs:seeAlso <port-props.meta.ttl> . | |||
| + rdfs:seeAlso <port-props.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| pprops:trigger | |||
| a lv2:PortProperty ; | |||
| diff --git a/lv2/presets/presets.ttl b/lv2/presets/presets.ttl | |||
| index c1caf43c..156f0813 100644 | |||
| --- a/lv2/presets/presets.ttl | |||
| +++ b/lv2/presets/presets.ttl | |||
| @@ -9,7 +9,8 @@ | |||
| a owl:Ontology ; | |||
| rdfs:label "LV2 Presets" ; | |||
| rdfs:comment "Presets for LV2 plugins." ; | |||
| - rdfs:seeAlso <presets.meta.ttl> . | |||
| + rdfs:seeAlso <presets.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| pset:Bank | |||
| a rdfs:Class ; | |||
| diff --git a/lv2/resize-port/resize-port.ttl b/lv2/resize-port/resize-port.ttl | |||
| index 29cd18b3..a6712e71 100644 | |||
| --- a/lv2/resize-port/resize-port.ttl | |||
| +++ b/lv2/resize-port/resize-port.ttl | |||
| @@ -10,7 +10,8 @@ | |||
| rdfs:label "LV2 Resize Port" ; | |||
| rdfs:comment "Dynamically sized LV2 port buffers." ; | |||
| rdfs:seeAlso <resize-port.h> , | |||
| - <resize-port.meta.ttl> . | |||
| + <resize-port.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| rsz:resize | |||
| a lv2:Feature ; | |||
| diff --git a/lv2/state/state.ttl b/lv2/state/state.ttl | |||
| index 19ccaa22..48537c82 100644 | |||
| --- a/lv2/state/state.ttl | |||
| +++ b/lv2/state/state.ttl | |||
| @@ -9,7 +9,8 @@ | |||
| rdfs:label "LV2 State" ; | |||
| rdfs:comment "An interface for LV2 plugins to save and restore state." ; | |||
| rdfs:seeAlso <state.h> , | |||
| - <state.meta.ttl> . | |||
| + <state.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| state:interface | |||
| a lv2:ExtensionData ; | |||
| diff --git a/lv2/ui/ui.ttl b/lv2/ui/ui.ttl | |||
| index 61f8bcac..654f1d7a 100644 | |||
| --- a/lv2/ui/ui.ttl | |||
| +++ b/lv2/ui/ui.ttl | |||
| @@ -10,9 +10,10 @@ | |||
| a owl:Ontology ; | |||
| rdfs:label "LV2 UI" ; | |||
| rdfs:comment "User interfaces for LV2 plugins." ; | |||
| - owl:imports <http://lv2plug.in/ns/lv2core> ; | |||
| rdfs:seeAlso <ui.h> , | |||
| - <ui.meta.ttl> . | |||
| + <ui.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> , | |||
| + <http://lv2plug.in/ns/ext/options> . | |||
| ui:UI | |||
| a rdfs:Class , | |||
| diff --git a/lv2/urid/urid.ttl b/lv2/urid/urid.ttl | |||
| index 2c44b561..53aa1e57 100644 | |||
| --- a/lv2/urid/urid.ttl | |||
| +++ b/lv2/urid/urid.ttl | |||
| @@ -8,7 +8,8 @@ | |||
| rdfs:label "LV2 URID" ; | |||
| rdfs:comment "Features for mapping URIs to and from integers." ; | |||
| rdfs:seeAlso <urid.h> , | |||
| - <urid.meta.ttl> . | |||
| + <urid.meta.ttl> ; | |||
| + owl:imports <http://lv2plug.in/ns/lv2core> . | |||
| urid:map | |||
| a lv2:Feature ; | |||
| @@ -1,449 +0,0 @@ | |||
| From a5fe57d4c563601fc993d164dff3d4b0cffc5420 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Fri, 12 Mar 2021 21:14:08 -0500 | |||
| Subject: [PATCH] Strengthen and clean up doap.ttl | |||
| This adds more specific property types to support validation, and removed | |||
| doap:anon-root since it is unused by LV2 (and frankly I don't even know what | |||
| it's supposed to mean). | |||
| --- | |||
| schemas.lv2/doap.ttl | 166 ++++++++++++++++++++++--------------------- | |||
| 1 file changed, 84 insertions(+), 82 deletions(-) | |||
| diff --git a/schemas.lv2/doap.ttl b/schemas.lv2/doap.ttl | |||
| index 9067da5b..c8daf593 100644 | |||
| --- a/schemas.lv2/doap.ttl | |||
| +++ b/schemas.lv2/doap.ttl | |||
| @@ -1,16 +1,13 @@ | |||
| +@prefix dct: <http://purl.org/dc/terms/> . | |||
| +@prefix doap: <http://usefulinc.com/ns/doap#> . | |||
| +@prefix foaf: <http://xmlns.com/foaf/0.1/> . | |||
| +@prefix owl: <http://www.w3.org/2002/07/owl#> . | |||
| @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . | |||
| @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . | |||
| -@prefix owl: <http://www.w3.org/2002/07/owl#> . | |||
| -@prefix vs: <http://www.w3.org/2003/06/sw-vocab-status/ns#> . | |||
| -@prefix foaf: <http://xmlns.com/foaf/0.1/> . | |||
| -@prefix doap: <http://usefulinc.com/ns/doap#> . | |||
| -@prefix dct: <http://purl.org/dc/terms/> . | |||
| - | |||
| -# dct:rights "Copyright © 2004-2009 Edd Dumbill" | |||
| doap: | |||
| a owl:Ontology ; | |||
| - dct:description "Das Vokabular \"Description of a Project (DOAP)\", beschrieben durch W3C RDF Schema and the Web Ontology Language."@de , | |||
| + rdfs:comment "Das Vokabular \"Description of a Project (DOAP)\", beschrieben durch W3C RDF Schema and the Web Ontology Language."@de , | |||
| """El vocabulario Description of a Project (DOAP, DescripciĂłn de un Proyecto), descrito usando RDF Schema de W3C | |||
| y Web Ontology Language."""@es , | |||
| """Le vocabulaire Description Of A Project (DOAP, Description D'Un Projet), | |||
| @@ -153,8 +150,7 @@ doap:Specification | |||
| a rdfs:Class ; | |||
| rdfs:comment """A specification of a system's aspects, technical or otherwise."""@en ; | |||
| rdfs:isDefinedBy doap: ; | |||
| - rdfs:label "Specification"@en ; | |||
| - rdfs:subClassOf rdfs:Resource . | |||
| + rdfs:label "Specification"@en . | |||
| doap:Version | |||
| a rdfs:Class ; | |||
| @@ -170,40 +166,25 @@ doap:Version | |||
| "VersiĂłn"@es , | |||
| "Verze"@cs . | |||
| -doap:anon-root | |||
| - a rdf:Property ; | |||
| - rdfs:comment "Dépôt pour accès anonyme."@fr , | |||
| - "Repositorio para acceso anĂłnimo."@es , | |||
| - "Repository for anonymous access."@en , | |||
| - "Repository fĂĽr anonymen Zugriff"@de , | |||
| - "ĂšloĹľištÄ› pro anonymnĂ pĹ™Ăstup."@cs ; | |||
| - rdfs:domain doap:Repository ; | |||
| - rdfs:isDefinedBy doap: ; | |||
| - rdfs:label "Anonymes Root"@de , | |||
| - "anonymnà kořen"@cs , | |||
| - "anonymous root"@en , | |||
| - "racine anonyme"@fr , | |||
| - "raĂz anĂłnima"@es ; | |||
| - rdfs:range rdfs:Literal . | |||
| - | |||
| doap:audience | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "Description of target user base"@en ; | |||
| rdfs:domain doap:Project ; | |||
| rdfs:isDefinedBy doap: ; | |||
| - rdfs:label "audience"@en ; | |||
| - rdfs:range rdfs:Literal . | |||
| + rdfs:label "audience"@en . | |||
| doap:blog | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "URI of a blog related to a project"@en ; | |||
| rdfs:domain doap:Project ; | |||
| rdfs:isDefinedBy doap: ; | |||
| - rdfs:label "blog"@en ; | |||
| - rdfs:range rdfs:Resource . | |||
| + rdfs:label "blog"@en . | |||
| doap:browse | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Interface web au dépôt."@fr , | |||
| "Interface web del repositorio."@es , | |||
| "Web browser interface to repository."@en , | |||
| @@ -218,7 +199,8 @@ doap:browse | |||
| "visualiser"@fr . | |||
| doap:bug-database | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Bug tracker for a project."@en , | |||
| "Bug tracker para un proyecto."@es , | |||
| "Fehlerdatenbank eines Projektes."@de , | |||
| @@ -233,7 +215,8 @@ doap:bug-database | |||
| "suivi des bugs"@fr . | |||
| doap:category | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "A category of project."@en , | |||
| "Eine Kategorie eines Projektes."@de , | |||
| "Kategorie projektu."@cs , | |||
| @@ -248,7 +231,8 @@ doap:category | |||
| "kategorie"@cs . | |||
| doap:created | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "Date when something was created, in YYYY-MM-DD form. e.g. 2004-04-05"@en , | |||
| "Date à laquelle a été créé quelque chose, au format AAAA-MM-JJ (par ex. 2004-04-05)"@fr , | |||
| "Datum, kdy bylo něco vytvořeno ve formátu RRRR-MM-DD, např. 2004-04-05"@cs , | |||
| @@ -259,11 +243,11 @@ doap:created | |||
| "created"@en , | |||
| "créé"@fr , | |||
| "erstellt"@de , | |||
| - "vytvořeno"@cs ; | |||
| - rdfs:range rdfs:Literal . | |||
| + "vytvořeno"@cs . | |||
| doap:description | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "Beschreibung eines Projekts als einfacher Text mit der Länge von 2 bis 4 Sätzen."@de , | |||
| "DescripciĂłn en texto plano de un proyecto, de 2 a 4 enunciados de longitud."@es , | |||
| "Plain text description of a project, of 2-4 sentences in length."@en , | |||
| @@ -274,11 +258,11 @@ doap:description | |||
| "descripciĂłn"@es , | |||
| "description"@en , | |||
| "description"@fr , | |||
| - "popis"@cs ; | |||
| - rdfs:range rdfs:Literal . | |||
| + "popis"@cs . | |||
| doap:developer | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Desarrollador de software para el proyecto."@es , | |||
| "Developer of software for the project."@en , | |||
| "Développeur pour le projet."@fr , | |||
| @@ -294,7 +278,8 @@ doap:developer | |||
| rdfs:range foaf:Person . | |||
| doap:documenter | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Collaborateur Ă la documentation du projet."@fr , | |||
| "Contributor of documentation to the project."@en , | |||
| "Mitarbeiter an der Dokumentation eines Projektes."@de , | |||
| @@ -310,7 +295,8 @@ doap:documenter | |||
| rdfs:range foaf:Person . | |||
| doap:download-mirror | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Miroir de la page de téléchargement du programme."@fr , | |||
| "Mirror de la página web de descarga."@es , | |||
| "Mirror of software download web page."@en , | |||
| @@ -325,7 +311,8 @@ doap:download-mirror | |||
| "zrcadlo stránky pro staĹľenĂ"@cs . | |||
| doap:download-page | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Page web à partir de laquelle on peut télécharger le programme."@fr , | |||
| "Página web de la cuál se puede bajar el software."@es , | |||
| "Web page from which the project software can be downloaded."@en , | |||
| @@ -340,7 +327,8 @@ doap:download-page | |||
| "stránka pro staĹľenĂ"@cs . | |||
| doap:file-release | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "URI adresa staĹľenĂ asociovanĂ© s revizĂ."@cs , | |||
| "URI of download associated with this release."@en ; | |||
| rdfs:domain doap:Version ; | |||
| @@ -349,7 +337,8 @@ doap:file-release | |||
| "soubor revize"@cs . | |||
| doap:helper | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Colaborador del proyecto."@es , | |||
| "Collaborateur au projet."@fr , | |||
| "Project contributor."@en , | |||
| @@ -386,7 +375,8 @@ doap:homepage | |||
| rdfs:subPropertyOf foaf:homepage . | |||
| doap:implements | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "A specification that a project implements. Could be a standard, API or legally defined level of conformance."@en ; | |||
| rdfs:domain doap:Project ; | |||
| rdfs:isDefinedBy doap: ; | |||
| @@ -394,12 +384,12 @@ doap:implements | |||
| rdfs:range doap:Specification . | |||
| doap:language | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "ISO language code a project has been translated into"@en ; | |||
| rdfs:domain doap:Project ; | |||
| rdfs:isDefinedBy doap: ; | |||
| - rdfs:label "language"@en ; | |||
| - rdfs:range rdfs:Literal . | |||
| + rdfs:label "language"@en . | |||
| doap:license | |||
| a rdf:Property ; | |||
| @@ -416,7 +406,8 @@ doap:license | |||
| "license"@en . | |||
| doap:location | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment """Emplacement d'un dépôt."""@fr , | |||
| "Location of a repository."@en , | |||
| "Lokation eines Repositorys."@de , | |||
| @@ -431,7 +422,8 @@ doap:location | |||
| "umĂstÄ›nĂ ĂşloĹľištÄ›"@cs . | |||
| doap:mailing-list | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Domovská stránka nebo e–mailová adresa e–mailové diskuse."@cs , | |||
| "Homepage der Mailing Liste oder E-Mail Adresse."@de , | |||
| "Mailing list home page or email address."@en , | |||
| @@ -446,7 +438,8 @@ doap:mailing-list | |||
| "mailing list"@en . | |||
| doap:maintainer | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Desarrollador principal de un proyecto, un lĂder de proyecto."@es , | |||
| """Développeur principal d'un projet, un meneur du projet."""@fr , | |||
| "Hauptentwickler eines Projektes, der Projektleiter"@de , | |||
| @@ -462,7 +455,8 @@ doap:maintainer | |||
| rdfs:range foaf:Person . | |||
| doap:module | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Jméno modulu v CVS, BitKeeper nebo Arch úložišti."@cs , | |||
| "Modul-Name eines Subversion, CVS, BitKeeper oder Arch Repositorys."@de , | |||
| "Module name of a Subversion, CVS, BitKeeper or Arch repository."@en , | |||
| @@ -484,7 +478,8 @@ doap:module | |||
| "mĂłdulo"@es . | |||
| doap:name | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:AnnotationProperty ; | |||
| rdfs:comment "A name of something."@en , | |||
| "Der Name von Irgendwas"@de , | |||
| "El nombre de algo."@es , | |||
| @@ -496,7 +491,6 @@ doap:name | |||
| "name"@en , | |||
| "nom"@fr , | |||
| "nombre"@es ; | |||
| - rdfs:range rdfs:Literal ; | |||
| rdfs:subPropertyOf rdfs:label . | |||
| doap:old-homepage | |||
| @@ -521,7 +515,8 @@ doap:old-homepage | |||
| rdfs:subPropertyOf foaf:homepage . | |||
| doap:os | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "Betriebssystem auf dem das Projekt eingesetzt werden kann. Diese Eigenschaft kann ausgelassen werden, wenn das Projekt nicht BS-spezifisch ist."@de , | |||
| "Operating system that a project is limited to. Omit this property if the project is not OS-specific."@en , | |||
| "OperaÄŤnĂ systĂ©m, na jehoĹľ pouĹľitĂ je projekt limitován. Vynechejte tuto vlastnost, pokud je projekt nezávislĂ˝ na operaÄŤnĂm systĂ©mu."@cs , | |||
| @@ -536,20 +531,20 @@ doap:os | |||
| "operating system"@en , | |||
| "operačnà systém"@cs , | |||
| "sistema operativo"@es , | |||
| - """système d'exploitation"""@fr ; | |||
| - rdfs:range rdfs:Literal . | |||
| + """système d'exploitation"""@fr . | |||
| doap:platform | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "Indicator of software platform (non-OS specific), e.g. Java, Firefox, ECMA CLR"@en ; | |||
| rdfs:domain doap:Project , | |||
| doap:Version ; | |||
| rdfs:isDefinedBy doap: ; | |||
| - rdfs:label "platform"@en ; | |||
| - rdfs:range rdfs:Literal . | |||
| + rdfs:label "platform"@en . | |||
| doap:programming-language | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment """Langage de programmation avec lequel un projet est implémenté, | |||
| ou avec lequel il est prévu de l'utiliser."""@fr , | |||
| "Lenguaje de programación en el que un proyecto es implementado o con el cuál pretende usarse."@es , | |||
| @@ -562,11 +557,11 @@ doap:programming-language | |||
| "langage de programmation"@fr , | |||
| "lenguaje de programaciĂłn"@es , | |||
| "programming language"@en , | |||
| - "programovacĂ jazyk"@cs ; | |||
| - rdfs:range rdfs:Literal . | |||
| + "programovacĂ jazyk"@cs . | |||
| doap:release | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "A project release."@en , | |||
| "Ein Release (Version) eines Projekts."@de , | |||
| "Relase (verze) projektu."@cs , | |||
| @@ -582,7 +577,8 @@ doap:release | |||
| rdfs:range doap:Version . | |||
| doap:repository | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Dépôt du code source."@fr , | |||
| "Quellcode-Versionierungssystem."@de , | |||
| "Repositorio del cĂłdigo fuente."@es , | |||
| @@ -598,7 +594,8 @@ doap:repository | |||
| rdfs:range doap:Repository . | |||
| doap:revision | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment """Identifiant de révision d'une release du programme."""@fr , | |||
| "Identifikátor zpĹ™ĂstupnÄ›nĂ© revize softwaru."@cs , | |||
| "Indentificador de la versiĂłn de un release de software."@es , | |||
| @@ -610,11 +607,11 @@ doap:revision | |||
| "revision"@en , | |||
| "révision"@fr , | |||
| "versiĂłn"@es , | |||
| - "verze"@cs ; | |||
| - rdfs:range rdfs:Literal . | |||
| + "verze"@cs . | |||
| doap:screenshots | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment """Page web avec des captures d'écran du projet."""@fr , | |||
| "Página web con capturas de pantalla del proyecto."@es , | |||
| "Web page with screenshots of project."@en , | |||
| @@ -629,15 +626,16 @@ doap:screenshots | |||
| "snĂmek obrazovky"@cs . | |||
| doap:service-endpoint | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "The URI of a web service endpoint where software as a service may be accessed"@en ; | |||
| rdfs:domain doap:Project ; | |||
| rdfs:isDefinedBy doap: ; | |||
| - rdfs:label "service endpoint"@en ; | |||
| - rdfs:range rdfs:Resource . | |||
| + rdfs:label "service endpoint"@en . | |||
| doap:shortdesc | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:DatatypeProperty ; | |||
| rdfs:comment "DescripciĂłn corta (8 o 9 palabras) en texto plano de un proyecto."@es , | |||
| "Krátký (8 nebo 9 slov) čistě textový popis projektu."@cs , | |||
| "Kurzbeschreibung (8 oder 9 Wörter) eines Projects als einfacher Text."@de , | |||
| @@ -648,11 +646,11 @@ doap:shortdesc | |||
| "descripciĂłn corta"@es , | |||
| "description courte"@fr , | |||
| "krátký popis"@cs , | |||
| - "short description"@en ; | |||
| - rdfs:range rdfs:Literal . | |||
| + "short description"@en . | |||
| doap:tester | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "A tester or other quality control contributor."@en , | |||
| "Ein Tester oder anderer Mitarbeiter der Qualitätskontrolle."@de , | |||
| "Tester nebo jinĂ˝ spoluautor kontrolujĂcĂ kvalitu."@cs , | |||
| @@ -668,7 +666,8 @@ doap:tester | |||
| rdfs:range foaf:Person . | |||
| doap:translator | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Collaborateur Ă la traduction du projet."@fr , | |||
| "Contributor of translations to the project."@en , | |||
| "Mitarbeiter an den Ăśbersetzungen eines Projektes."@de , | |||
| @@ -684,7 +683,8 @@ doap:translator | |||
| rdfs:range foaf:Person . | |||
| doap:vendor | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment "Vendor organization: commercial, free or otherwise"@en ; | |||
| rdfs:domain doap:Project ; | |||
| rdfs:isDefinedBy doap: ; | |||
| @@ -692,7 +692,8 @@ doap:vendor | |||
| rdfs:range foaf:Organization . | |||
| doap:wiki | |||
| - a rdf:Property ; | |||
| + a rdf:Property , | |||
| + owl:ObjectProperty ; | |||
| rdfs:comment """L'URL du Wiki pour la discussion collaborative sur le projet."""@fr , | |||
| "URL adresa wiki projektu pro společné diskuse."@cs , | |||
| "URL del Wiki para discusiĂłn colaborativa del proyecto."@es , | |||
| @@ -705,3 +706,4 @@ doap:wiki | |||
| "wiki"@en , | |||
| "wiki"@es , | |||
| "wiki"@fr . | |||
| + | |||
| @@ -1,76 +0,0 @@ | |||
| From fe222f853820810bc1203aa8507600c1d6e44a68 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Fri, 12 Mar 2021 22:42:58 -0500 | |||
| Subject: [PATCH] Simplify dcs.ttl | |||
| I am not sure if anonymous classes like this are "officially" invalid for OWL, | |||
| but they cause problems with some tools. So, just replace them with the class | |||
| we actually use. With this, tools have no problem loading dcs.ttl as an OWL | |||
| Full ontology. | |||
| --- | |||
| schemas.lv2/dcs.ttl | 20 ++++++-------------- | |||
| 1 file changed, 6 insertions(+), 14 deletions(-) | |||
| diff --git a/schemas.lv2/dcs.ttl b/schemas.lv2/dcs.ttl | |||
| index 44bf294e..b961190e 100644 | |||
| --- a/schemas.lv2/dcs.ttl | |||
| +++ b/schemas.lv2/dcs.ttl | |||
| @@ -50,14 +50,14 @@ dcs:ToDoList | |||
| rdfs:isDefinedBy dcs: ; | |||
| rdfs:label "To-Do List"@en ; | |||
| rdfs:comment "A collection of planned changes."@en ; | |||
| - rdfs:subClassOf _:FutureChangeSet . | |||
| + rdfs:subClassOf dcs:ChangeSet . | |||
| dcs:WishList | |||
| a owl:Class ; | |||
| rdfs:isDefinedBy dcs: ; | |||
| rdfs:label "Wish List"@en ; | |||
| rdfs:comment "A collection of desired changes."@en ; | |||
| - rdfs:subClassOf _:FutureChangeSet . | |||
| + rdfs:subClassOf dcs:ChangeSet . | |||
| dcs:Change | |||
| a owl:Class ; | |||
| @@ -140,20 +140,12 @@ dcs:BackCompat | |||
| rdfs:comment "A change that breaks backwards compatibility, changing documented or tested behaviour."@en ; | |||
| rdfs:subClassOf dcs:Change. | |||
| -_:FutureChangeSet | |||
| - a owl:Class ; | |||
| - rdfs:subClassOf rdf:Bag , dcs:ChangeSet . | |||
| - | |||
| -_:VersionOrEvent | |||
| - a owl:Class ; | |||
| - owl:unionOf (doap:Version event:Event) . | |||
| - | |||
| dcs:changeset | |||
| a owl:ObjectProperty ; | |||
| rdfs:isDefinedBy dcs: ; | |||
| rdfs:label "change set"@en ; | |||
| rdfs:comment "A change set may be associated with a particular software version in which those changes were released; or with an event which caused those changes."@en ; | |||
| - rdfs:domain _:VersionOrEvent ; | |||
| + rdfs:domain doap:Version ; | |||
| rdfs:range dcs:ChangeSet . | |||
| dcs:versus | |||
| @@ -162,7 +154,7 @@ dcs:versus | |||
| rdfs:label "versus"@en ; | |||
| rdfs:comment "The previous version or event which a changeset has changed from."@en ; | |||
| rdfs:domain dcs:ChangeSet ; | |||
| - rdfs:range _:VersionOrEvent . | |||
| + rdfs:range doap:Version . | |||
| dcs:item | |||
| a owl:ObjectProperty ; | |||
| @@ -233,8 +225,8 @@ dcs:milestone | |||
| a owl:ObjectProperty ; | |||
| rdfs:isDefinedBy dcs: ; | |||
| rdfs:label "milestone"@en ; | |||
| - rdfs:domain _:FutureChangeSet ; | |||
| - rdfs:range _:VersionOrEvent . | |||
| + rdfs:domain dcs:ChangeSet ; | |||
| + rdfs:range doap:Version . | |||
| dcs:tasks | |||
| a owl:ObjectProperty ; | |||
| @@ -1,43 +0,0 @@ | |||
| From 8817d4c13380da4e06fe9497c41a251038eaf5d4 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Fri, 12 Mar 2021 23:36:23 -0500 | |||
| Subject: [PATCH] Fix type and range of patch:value | |||
| This was obviously wrong. I'm not sure how this happened, probably a | |||
| copy/paste mistake. | |||
| --- | |||
| lv2/patch/patch.ttl | 4 +--- | |||
| wscript | 3 +++ | |||
| 2 files changed, 4 insertions(+), 3 deletions(-) | |||
| diff --git a/lv2/patch/patch.ttl b/lv2/patch/patch.ttl | |||
| index 78040094..0fb2012f 100644 | |||
| --- a/lv2/patch/patch.ttl | |||
| +++ b/lv2/patch/patch.ttl | |||
| @@ -230,11 +230,9 @@ patch:subject | |||
| rdfs:comment "The subject this message applies to." . | |||
| patch:value | |||
| - a rdf:Property , | |||
| - owl:DatatypeProperty ; | |||
| + a rdf:Property ; | |||
| rdfs:label "value" ; | |||
| rdfs:domain patch:Set ; | |||
| - rdfs:range rdf:Property ; | |||
| rdfs:comment "The value of a property in a patch:Set message." . | |||
| patch:wildcard | |||
| diff --git a/wscript b/wscript | |||
| index 6ecb0d92..37a24e86 100644 | |||
| --- a/wscript | |||
| +++ b/wscript | |||
| @@ -686,6 +686,9 @@ def test_vocabularies(check, specs, files): | |||
| # Check that all properties are either datatype or object properties | |||
| for r in sorted(model.triples([None, rdf.type, rdf.Property])): | |||
| subject = r[0] | |||
| + if str(subject) == 'http://lv2plug.in/ns/ext/patch#value': | |||
| + continue # patch:value is just a "promiscuous" rdf:Property | |||
| + | |||
| types = list(model.objects(subject, rdf.type)) | |||
| check(lambda: ((owl.DatatypeProperty in types) or | |||
| @@ -1,25 +0,0 @@ | |||
| From 3f6e7285f93ec2304553dfc8c6bbbfbe05566b04 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Fri, 12 Mar 2021 23:36:30 -0500 | |||
| Subject: [PATCH] Make the type of patch:wildcard more precise | |||
| It is more or less meaningless to have an explicit type of rdfs:Resource, and | |||
| some tools don't like it, since everything (including classes and properties) | |||
| is a Resource. Since this is an individual, owl:Thing is a better type. | |||
| --- | |||
| lv2/patch/patch.ttl | 2 +- | |||
| 1 file changed, 1 insertion(+), 1 deletion(-) | |||
| diff --git a/lv2/patch/patch.ttl b/lv2/patch/patch.ttl | |||
| index 0fb2012f..c7f6d769 100644 | |||
| --- a/lv2/patch/patch.ttl | |||
| +++ b/lv2/patch/patch.ttl | |||
| @@ -236,7 +236,7 @@ patch:value | |||
| rdfs:comment "The value of a property in a patch:Set message." . | |||
| patch:wildcard | |||
| - a rdfs:Resource ; | |||
| + a owl:Thing ; | |||
| rdfs:label "wildcard" ; | |||
| rdfs:comment "A wildcard that matches any resource." . | |||
| @@ -1,24 +0,0 @@ | |||
| From 7f7451290ce42c2542b427ea0402930e5af7d899 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Sat, 13 Mar 2021 12:44:44 -0500 | |||
| Subject: [PATCH] Remove old link to SVN repository | |||
| --- | |||
| lv2/core/meta.ttl | 4 ---- | |||
| 1 file changed, 4 deletions(-) | |||
| diff --git a/lv2/core/meta.ttl b/lv2/core/meta.ttl | |||
| index b626a0c9..5d646e58 100644 | |||
| --- a/lv2/core/meta.ttl | |||
| +++ b/lv2/core/meta.ttl | |||
| @@ -25,10 +25,6 @@ THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH R | |||
| doap:homepage <http://lv2plug.in/> ; | |||
| doap:mailing-list <http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in> ; | |||
| doap:programming-language "C" ; | |||
| - doap:repository [ | |||
| - a doap:SVNRepository ; | |||
| - doap:location <http://lv2plug.in/repo> | |||
| - ] ; | |||
| doap:developer <http://drobilla.net/drobilla#me> , | |||
| <http://plugin.org.uk/swh.xrdf#me> ; | |||
| doap:helper meta:larsl , | |||
| @@ -1,90 +0,0 @@ | |||
| From 0fb0839d8d3607e7055d4f370880e1438bf9ca23 Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Sat, 13 Mar 2021 13:05:39 -0500 | |||
| Subject: [PATCH] Remove some unused Doxygen configuration keys | |||
| These cause warnings with some versions of Doxygen, but all used default values | |||
| anyway, so they can simply be removed without any effect. | |||
| --- | |||
| doc/reference.doxygen.in | 40 ---------------------------------------- | |||
| 1 file changed, 40 deletions(-) | |||
| diff --git a/doc/reference.doxygen.in b/doc/reference.doxygen.in | |||
| index 053b5426..6c29295a 100644 | |||
| --- a/doc/reference.doxygen.in | |||
| +++ b/doc/reference.doxygen.in | |||
| @@ -93,14 +93,6 @@ ALLOW_UNICODE_NAMES = NO | |||
| OUTPUT_LANGUAGE = English | |||
| -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all | |||
| -# documentation generated by doxygen is written. Doxygen will use this | |||
| -# information to generate all generated output in the proper direction. | |||
| -# Possible values are: None, LTR, RTL and Context. | |||
| -# The default value is: None. | |||
| - | |||
| -OUTPUT_TEXT_DIRECTION = None | |||
| - | |||
| # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member | |||
| # descriptions after the members that are listed in the file and class | |||
| # documentation (similar to Javadoc). Set to NO to disable this. | |||
| @@ -271,14 +263,6 @@ OPTIMIZE_FOR_FORTRAN = NO | |||
| OPTIMIZE_OUTPUT_VHDL = NO | |||
| -# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice | |||
| -# sources only. Doxygen will then generate output that is more tailored for that | |||
| -# language. For instance, namespaces will be presented as modules, types will be | |||
| -# separated into more groups, etc. | |||
| -# The default value is: NO. | |||
| - | |||
| -OPTIMIZE_OUTPUT_SLICE = NO | |||
| - | |||
| # Doxygen selects the parser to use depending on the extension of the files it | |||
| # parses. With this tag you can assign which parser to use for a given | |||
| # extension. Doxygen has a built-in mapping, but you can override or extend it | |||
| @@ -1682,15 +1666,6 @@ LATEX_CMD_NAME = latex | |||
| MAKEINDEX_CMD_NAME = makeindex | |||
| -# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to | |||
| -# generate index for LaTeX. | |||
| -# Note: This tag is used in the generated output file (.tex). | |||
| -# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat. | |||
| -# The default value is: \makeindex. | |||
| -# This tag requires that the tag GENERATE_LATEX is set to YES. | |||
| - | |||
| -LATEX_MAKEINDEX_CMD = \makeindex | |||
| - | |||
| # If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX | |||
| # documents. This may be useful for small projects and may help to save some | |||
| # trees in general. | |||
| @@ -1825,14 +1800,6 @@ LATEX_BIB_STYLE = plain | |||
| LATEX_TIMESTAMP = NO | |||
| -# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) | |||
| -# path from which the emoji images will be read. If a relative path is entered, | |||
| -# it will be relative to the LATEX_OUTPUT directory. If left blank the | |||
| -# LATEX_OUTPUT directory will be used. | |||
| -# This tag requires that the tag GENERATE_LATEX is set to YES. | |||
| - | |||
| -LATEX_EMOJI_DIRECTORY = | |||
| - | |||
| #--------------------------------------------------------------------------- | |||
| # Configuration options related to the RTF output | |||
| #--------------------------------------------------------------------------- | |||
| @@ -1970,13 +1937,6 @@ XML_OUTPUT = xml | |||
| XML_PROGRAMLISTING = YES | |||
| -# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include | |||
| -# namespace members in file scope as well, matching the HTML output. | |||
| -# The default value is: NO. | |||
| -# This tag requires that the tag GENERATE_XML is set to YES. | |||
| - | |||
| -XML_NS_MEMB_FILE_SCOPE = NO | |||
| - | |||
| #--------------------------------------------------------------------------- | |||
| # Configuration options related to the DOCBOOK output | |||
| #--------------------------------------------------------------------------- | |||
| @@ -1,34 +0,0 @@ | |||
| From 6cefc7df1a6158c79d23029df183c09b10b88cad Mon Sep 17 00:00:00 2001 | |||
| From: David Robillard <d@drobilla.net> | |||
| Date: Sat, 13 Mar 2021 14:12:48 -0500 | |||
| Subject: [PATCH] Simplify rdfs:label restrictions | |||
| Using someValuesFrom here is redundant and overly complex, since the property | |||
| range specifies that it is for literals anyway. So, simply replace it with a | |||
| minCardinality of 1. | |||
| --- | |||
| lv2/presets/presets.ttl | 4 ++-- | |||
| 1 file changed, 2 insertions(+), 2 deletions(-) | |||
| diff --git a/lv2/presets/presets.ttl b/lv2/presets/presets.ttl | |||
| index 156f0813..60189ead 100644 | |||
| --- a/lv2/presets/presets.ttl | |||
| +++ b/lv2/presets/presets.ttl | |||
| @@ -18,7 +18,7 @@ pset:Bank | |||
| rdfs:subClassOf [ | |||
| a owl:Restriction ; | |||
| owl:onProperty rdfs:label ; | |||
| - owl:someValuesFrom xsd:string ; | |||
| + owl:minCardinality 1 ; | |||
| rdfs:comment "A Bank MUST have at least one string rdfs:label." | |||
| ] ; | |||
| rdfs:comment "A bank of presets." . | |||
| @@ -31,7 +31,7 @@ pset:Preset | |||
| rdfs:subClassOf [ | |||
| a owl:Restriction ; | |||
| owl:onProperty rdfs:label ; | |||
| - owl:someValuesFrom xsd:string ; | |||
| + owl:minCardinality 1 ; | |||
| rdfs:comment "A Preset MUST have at least one string rdfs:label." | |||
| ] . | |||
| @@ -1,65 +0,0 @@ | |||
| From 79067e661558983f6811f1281f21c5073d0d19c6 Mon Sep 17 00:00:00 2001 | |||
| From: falkTX <falktx@falktx.com> | |||
| Date: Wed, 10 Mar 2021 14:22:10 +0000 | |||
| Subject: [PATCH] eg-sampler: Convert an arbitrary non-mono audio files to mono | |||
| Signed-off-by: falkTX <falktx@falktx.com> | |||
| --- | |||
| plugins/eg-sampler.lv2/sampler.c | 28 ++++++++++++++++++++++++---- | |||
| 1 file changed, 24 insertions(+), 4 deletions(-) | |||
| diff --git a/plugins/eg-sampler.lv2/sampler.c b/plugins/eg-sampler.lv2/sampler.c | |||
| index 6c64df51..9675003d 100644 | |||
| --- a/plugins/eg-sampler.lv2/sampler.c | |||
| +++ b/plugins/eg-sampler.lv2/sampler.c | |||
| @@ -95,6 +95,23 @@ typedef struct { | |||
| Sample* sample; | |||
| } SampleMessage; | |||
| +/** | |||
| + Convert an arbitrary non-mono audio buffer to mono. | |||
| + | |||
| + This simply ignores the data on all channels but the first. | |||
| +*/ | |||
| +static sf_count_t | |||
| +convert_to_mono(float *data, sf_count_t num_input_frames, uint32_t channels) | |||
| +{ | |||
| + sf_count_t num_output_frames = 0; | |||
| + | |||
| + for (sf_count_t i = 0; i < num_input_frames * channels; i += channels) { | |||
| + data[num_output_frames++] = data[i]; | |||
| + } | |||
| + | |||
| + return num_output_frames; | |||
| +} | |||
| + | |||
| /** | |||
| Load a new sample and return it. | |||
| @@ -115,9 +132,7 @@ load_sample(LV2_Log_Logger* logger, const char* path) | |||
| bool error = true; | |||
| if (!sndfile || !info->frames) { | |||
| lv2_log_error(logger, "Failed to open %s\n", path); | |||
| - } else if (info->channels != 1) { | |||
| - lv2_log_error(logger, "%s has %d channels\n", path, info->channels); | |||
| - } else if (!(data = (float*)malloc(sizeof(float) * info->frames))) { | |||
| + } else if (!(data = (float*)malloc(sizeof(float) * info->frames * info->channels))) { | |||
| lv2_log_error(logger, "Failed to allocate memory for sample\n"); | |||
| } else { | |||
| error = false; | |||
| @@ -131,9 +146,14 @@ load_sample(LV2_Log_Logger* logger, const char* path) | |||
| } | |||
| sf_seek(sndfile, 0ul, SEEK_SET); | |||
| - sf_read_float(sndfile, data, info->frames); | |||
| + sf_read_float(sndfile, data, info->frames * info->channels); | |||
| sf_close(sndfile); | |||
| + if (info->channels != 1) { | |||
| + info->frames = convert_to_mono(data, info->frames, info->channels); | |||
| + info->channels = 1; | |||
| + } | |||
| + | |||
| // Fill sample struct and return it | |||
| sample->data = data; | |||
| sample->path = (char*)malloc(path_len + 1); | |||
| @@ -1,111 +0,0 @@ | |||
| From b0e2fc1a4724ed153d3ffebb04e67faff50766d5 Mon Sep 17 00:00:00 2001 | |||
| From: falkTX <falktx@falktx.com> | |||
| Date: Mon, 15 Mar 2021 11:09:48 +0000 | |||
| Subject: [PATCH] eg-sampler: add resampling via libsamplerate | |||
| --- | |||
| plugins/eg-sampler.lv2/sampler.c | 36 +++++++++++++++++++++++++++++--- | |||
| plugins/eg-sampler.lv2/wscript | 1 + | |||
| 2 files changed, 34 insertions(+), 3 deletions(-) | |||
| diff --git a/plugins/eg-sampler.lv2/sampler.c b/plugins/eg-sampler.lv2/sampler.c | |||
| index 9675003d..21a28c8d 100644 | |||
| --- a/plugins/eg-sampler.lv2/sampler.c | |||
| +++ b/plugins/eg-sampler.lv2/sampler.c | |||
| @@ -34,6 +34,7 @@ | |||
| #include "lv2/worker/worker.h" | |||
| #include <sndfile.h> | |||
| +#include <samplerate.h> | |||
| #include <math.h> | |||
| #include <stdbool.h> | |||
| @@ -80,6 +81,7 @@ typedef struct { | |||
| bool activated; | |||
| bool gain_changed; | |||
| bool sample_changed; | |||
| + int sample_rate; | |||
| } Sampler; | |||
| /** | |||
| @@ -120,7 +122,7 @@ convert_to_mono(float *data, sf_count_t num_input_frames, uint32_t channels) | |||
| not modified. | |||
| */ | |||
| static Sample* | |||
| -load_sample(LV2_Log_Logger* logger, const char* path) | |||
| +load_sample(LV2_Log_Logger* logger, const char* path, int sample_rate) | |||
| { | |||
| lv2_log_trace(logger, "Loading %s\n", path); | |||
| @@ -154,6 +156,33 @@ load_sample(LV2_Log_Logger* logger, const char* path) | |||
| info->channels = 1; | |||
| } | |||
| + if (info->samplerate != sample_rate) { | |||
| + lv2_log_trace(logger, "Converting sample rate..\n"); | |||
| + | |||
| + const double src_ratio = (double)sample_rate/(double)info->samplerate; | |||
| + const int output_size = ceil(info->frames * src_ratio); | |||
| + float* const output_buffer = malloc(sizeof(float) * output_size); | |||
| + | |||
| + SRC_DATA src_data; | |||
| + src_data.data_in = data; | |||
| + src_data.data_out = output_buffer; | |||
| + src_data.input_frames = info->frames; | |||
| + src_data.output_frames = output_size; | |||
| + src_data.src_ratio = src_ratio; | |||
| + | |||
| + if (src_simple(&src_data, SRC_SINC_BEST_QUALITY, 1) != 0) { | |||
| + lv2_log_error(logger, "Sample rate conversion failed, eg-sampler will use unconverted sample\n"); | |||
| + free(output_buffer); | |||
| + } else { | |||
| + // set new amount of frames | |||
| + info->frames = src_data.output_frames_gen; | |||
| + // swap buffers | |||
| + free(data); | |||
| + data = output_buffer; | |||
| + lv2_log_trace(logger, "Conversion finished\n"); | |||
| + } | |||
| + } | |||
| + | |||
| // Fill sample struct and return it | |||
| sample->data = data; | |||
| sample->path = (char*)malloc(path_len + 1); | |||
| @@ -204,7 +233,7 @@ work(LV2_Handle instance, | |||
| } | |||
| // Load sample. | |||
| - Sample* sample = load_sample(&self->logger, path); | |||
| + Sample* sample = load_sample(&self->logger, path, self->sample_rate); | |||
| if (sample) { | |||
| // Send new sample to run() to be applied | |||
| respond(handle, sizeof(Sample*), &sample); | |||
| @@ -298,6 +327,7 @@ instantiate(const LV2_Descriptor* descriptor, | |||
| self->gain = 1.0f; | |||
| self->gain_dB = 0.0f; | |||
| + self->sample_rate = (int)rate; | |||
| return (LV2_Handle)self; | |||
| } | |||
| @@ -585,7 +615,7 @@ restore(LV2_Handle instance, | |||
| if (!self->activated || !schedule) { | |||
| // No scheduling available, load sample immediately | |||
| lv2_log_trace(&self->logger, "Synchronous restore\n"); | |||
| - Sample* sample = load_sample(&self->logger, path); | |||
| + Sample* sample = load_sample(&self->logger, path, self->sample_rate); | |||
| if (sample) { | |||
| free_sample(self, self->sample); | |||
| self->sample = sample; | |||
| diff --git a/plugins/eg-sampler.lv2/wscript b/plugins/eg-sampler.lv2/wscript | |||
| index 8c640c10..4d9debc6 100644 | |||
| --- a/plugins/eg-sampler.lv2/wscript | |||
| +++ b/plugins/eg-sampler.lv2/wscript | |||
| @@ -22,6 +22,7 @@ def configure(conf): | |||
| conf.check_pkg('lv2 >= 1.2.1', uselib_store='LV2') | |||
| conf.check_pkg('sndfile >= 1.0.0', uselib_store='SNDFILE') | |||
| + conf.check_pkg('samplerate >= 0.1.0', uselib_store='SAMPLERATE') | |||
| conf.check_pkg('gtk+-2.0 >= 2.18.0', | |||
| uselib_store='GTK2', | |||
| system=True, | |||
| @@ -1,23 +0,0 @@ | |||
| From 6820b96062ac5942fe797a6bae84f22a92e18b45 Mon Sep 17 00:00:00 2001 | |||
| From: falkTX <falktx@falktx.com> | |||
| Date: Mon, 15 Mar 2021 12:15:06 +0000 | |||
| Subject: [PATCH] Make sure to link against libsamplerate | |||
| Signed-off-by: falkTX <falktx@falktx.com> | |||
| --- | |||
| plugins/eg-sampler.lv2/wscript | 2 +- | |||
| 1 file changed, 1 insertion(+), 1 deletion(-) | |||
| diff --git a/plugins/eg-sampler.lv2/wscript b/plugins/eg-sampler.lv2/wscript | |||
| index 4d9debc6..115d8a00 100644 | |||
| --- a/plugins/eg-sampler.lv2/wscript | |||
| +++ b/plugins/eg-sampler.lv2/wscript | |||
| @@ -53,7 +53,7 @@ def build(bld): | |||
| name = 'sampler', | |||
| target = 'lv2/%s/sampler' % bundle, | |||
| install_path = '${LV2DIR}/%s' % bundle, | |||
| - use = ['M', 'SNDFILE', 'LV2']) | |||
| + use = ['M', 'SNDFILE', 'SAMPLERATE', 'LV2']) | |||
| # Build UI library | |||
| if bld.env.HAVE_GTK2: | |||
| @@ -1,36 +0,0 @@ | |||
| From 6cf78f419edeb85f54e6e0442515fc8be410ad5b Mon Sep 17 00:00:00 2001 | |||
| From: Timothy Krause <tmkrs4482@gmail.com> | |||
| Date: Tue, 30 Nov 2021 06:26:10 -0700 | |||
| Subject: [PATCH] write the output upto the event and then update the state. | |||
| --- | |||
| plugins/eg-midigate.lv2/midigate.c | 9 +++++---- | |||
| 1 file changed, 5 insertions(+), 4 deletions(-) | |||
| diff --git a/plugins/eg-midigate.lv2/midigate.c b/plugins/eg-midigate.lv2/midigate.c | |||
| index 53794405..db110336 100644 | |||
| --- a/plugins/eg-midigate.lv2/midigate.c | |||
| +++ b/plugins/eg-midigate.lv2/midigate.c | |||
| @@ -160,7 +160,11 @@ run(LV2_Handle instance, uint32_t sample_count) | |||
| uint32_t offset = 0; | |||
| LV2_ATOM_SEQUENCE_FOREACH (self->control, ev) { | |||
| - if (ev->body.type == self->uris.midi_MidiEvent) { | |||
| + | |||
| + write_output(self, offset, ev->time.frames - offset); | |||
| + offset = (uint32_t)ev->time.frames; | |||
| + | |||
| + if (ev->body.type == self->uris.midi_MidiEvent) { | |||
| const uint8_t* const msg = (const uint8_t*)(ev + 1); | |||
| switch (lv2_midi_message_type(msg)) { | |||
| case LV2_MIDI_MSG_NOTE_ON: | |||
| @@ -185,9 +189,6 @@ run(LV2_Handle instance, uint32_t sample_count) | |||
| break; | |||
| } | |||
| } | |||
| - | |||
| - write_output(self, offset, ev->time.frames - offset); | |||
| - offset = (uint32_t)ev->time.frames; | |||
| } | |||
| write_output(self, offset, sample_count - offset); | |||
| @@ -1,62 +0,0 @@ | |||
| From 0fe90e32d87f91ffe434f0f58c6cc0c8ff77ff5e Mon Sep 17 00:00:00 2001 | |||
| From: Filipe Coelho <falktx@falktx.com> | |||
| Date: Sun, 8 May 2022 15:21:56 +0100 | |||
| Subject: [PATCH] Remove example plugins from lv2_validate | |||
| The `lv2_validate` tool is meant for checking syntax of files against the LV2 spec. | |||
| Don't think checking the syntax of the example plugins is useful, plus they might not even be available is one passes `--no-plugins` during build setup. | |||
| --- | |||
| util/lv2_validate.in | 14 -------------- | |||
| 1 file changed, 14 deletions(-) | |||
| diff --git a/util/lv2_validate.in b/util/lv2_validate.in | |||
| index d30cd850..2295f989 100755 | |||
| --- a/util/lv2_validate.in | |||
| +++ b/util/lv2_validate.in | |||
| @@ -14,23 +14,15 @@ sord_validate \ | |||
| "$LV2DIR/patch.lv2/manifest.ttl" \ | |||
| "$LV2DIR/patch.lv2/patch.meta.ttl" \ | |||
| "$LV2DIR/patch.lv2/patch.ttl" \ | |||
| - "$LV2DIR/eg-amp.lv2/manifest.ttl" \ | |||
| - "$LV2DIR/eg-amp.lv2/amp.ttl" \ | |||
| - "$LV2DIR/eg-fifths.lv2/manifest.ttl" \ | |||
| - "$LV2DIR/eg-fifths.lv2/fifths.ttl" \ | |||
| "$LV2DIR/port-props.lv2/manifest.ttl" \ | |||
| "$LV2DIR/port-props.lv2/port-props.meta.ttl" \ | |||
| "$LV2DIR/port-props.lv2/port-props.ttl" \ | |||
| - "$LV2DIR/eg-midigate.lv2/manifest.ttl" \ | |||
| - "$LV2DIR/eg-midigate.lv2/midigate.ttl" \ | |||
| "$LV2DIR/worker.lv2/worker.meta.ttl" \ | |||
| "$LV2DIR/worker.lv2/manifest.ttl" \ | |||
| "$LV2DIR/worker.lv2/worker.ttl" \ | |||
| "$LV2DIR/buf-size.lv2/manifest.ttl" \ | |||
| "$LV2DIR/buf-size.lv2/buf-size.meta.ttl" \ | |||
| "$LV2DIR/buf-size.lv2/buf-size.ttl" \ | |||
| - "$LV2DIR/eg-scope.lv2/manifest.ttl" \ | |||
| - "$LV2DIR/eg-scope.lv2/examploscope.ttl" \ | |||
| "$LV2DIR/midi.lv2/midi.meta.ttl" \ | |||
| "$LV2DIR/midi.lv2/manifest.ttl" \ | |||
| "$LV2DIR/midi.lv2/midi.ttl" \ | |||
| @@ -55,8 +47,6 @@ sord_validate \ | |||
| "$LV2DIR/port-groups.lv2/manifest.ttl" \ | |||
| "$LV2DIR/port-groups.lv2/port-groups.ttl" \ | |||
| "$LV2DIR/port-groups.lv2/port-groups.meta.ttl" \ | |||
| - "$LV2DIR/eg-sampler.lv2/manifest.ttl" \ | |||
| - "$LV2DIR/eg-sampler.lv2/sampler.ttl" \ | |||
| "$LV2DIR/ui.lv2/manifest.ttl" \ | |||
| "$LV2DIR/ui.lv2/ui.ttl" \ | |||
| "$LV2DIR/ui.lv2/ui.meta.ttl" \ | |||
| @@ -77,13 +67,9 @@ sord_validate \ | |||
| "$LV2DIR/core.lv2/lv2core.doap.ttl" \ | |||
| "$LV2DIR/core.lv2/meta.ttl" \ | |||
| "$LV2DIR/core.lv2/people.ttl" \ | |||
| - "$LV2DIR/eg-metro.lv2/manifest.ttl" \ | |||
| - "$LV2DIR/eg-metro.lv2/metro.ttl" \ | |||
| "$LV2DIR/presets.lv2/manifest.ttl" \ | |||
| "$LV2DIR/presets.lv2/presets.ttl" \ | |||
| "$LV2DIR/presets.lv2/presets.meta.ttl" \ | |||
| - "$LV2DIR/eg-params.lv2/manifest.ttl" \ | |||
| - "$LV2DIR/eg-params.lv2/params.ttl" \ | |||
| "$LV2DIR/urid.lv2/manifest.ttl" \ | |||
| "$LV2DIR/urid.lv2/urid.ttl" \ | |||
| "$LV2DIR/urid.lv2/urid.meta.ttl" \ | |||
| @@ -1,24 +0,0 @@ | |||
| 001_ba34a58b32839491335b5bcbda46e11c4b209cbc.patch | |||
| 002_db715453bc12ac1d91183d3bc3642e4055c9aa26.patch | |||
| 003_446232eade7b08360fbadf6d16ed7a1ee7481faf.patch | |||
| 004_611759daacc377a2dba97723097338fceffd6ef8.patch | |||
| 005_ff22f1d357f278b1b3fd1eb2fd8354cd6c6a226a.patch | |||
| 006_253346878c9127afbe60e69f0afa3e64632a20c7.patch | |||
| 007_89321be2808471f99437e1effef0c83be4688b57.patch | |||
| 008_7485bde78f3422e4f9415ff452fcd858ee544cd0.patch | |||
| 009_e0b9a3c2806f846c104ba2e0c5816886ab310c1b.patch | |||
| 010_50f531462274bb6c395ff1b63cf7c1016d7bb088.patch | |||
| 011_b37402500176b328a6a5752df2a170538cc9594c.patch | |||
| 012_3a4020958acf5b88f366e5bc99e3009a7beca104.patch | |||
| 013_a5fe57d4c563601fc993d164dff3d4b0cffc5420.patch | |||
| 014_fe222f853820810bc1203aa8507600c1d6e44a68.patch | |||
| 015_8817d4c13380da4e06fe9497c41a251038eaf5d4.patch | |||
| 016_3f6e7285f93ec2304553dfc8c6bbbfbe05566b04.patch | |||
| 017_7f7451290ce42c2542b427ea0402930e5af7d899.patch | |||
| 018_0fb0839d8d3607e7055d4f370880e1438bf9ca23.patch | |||
| 019_6cefc7df1a6158c79d23029df183c09b10b88cad.patch | |||
| 101_79067e661558983f6811f1281f21c5073d0d19c6.patch | |||
| 102_b0e2fc1a4724ed153d3ffebb04e67faff50766d5.patch | |||
| 103_6820b96062ac5942fe797a6bae84f22a92e18b45.patch | |||
| 104_6cf78f419edeb85f54e6e0442515fc8be410ad5b.patch | |||
| 105_0fe90e32d87f91ffe434f0f58c6cc0c8ff77ff5e.patch | |||
| @@ -1,3 +1,9 @@ | |||
| serd-static (6:0.30.12-1kxstudio1) focal; urgency=medium | |||
| * Update | |||
| -- falkTX <falktx@falktx.com> Wed, 15 Jun 2022 20:09:20 +0100 | |||
| serd-static (6:0.30.10-1kxstudio3) focal; urgency=medium | |||
| * Initial package | |||
| @@ -1,3 +1,9 @@ | |||
| sord-static (6:0.16.10-1kxstudio1) focal; urgency=medium | |||
| * Update | |||
| -- falkTX <falktx@falktx.com> Wed, 15 Jun 2022 20:10:48 +0100 | |||
| sord-static (6:0.16.8-1kxstudio4) focal; urgency=medium | |||
| * Initial package | |||
| @@ -7,7 +7,7 @@ Build-Depends: debhelper-compat (= 13), | |||
| python3, | |||
| pkg-config, | |||
| libpcre3-static (>= 6:8.39-1kxstudio2), | |||
| libserd-static (>= 6:0.30.10-1kxstudio3) | |||
| libserd-static (>= 6:0.30.12-1kxstudio1) | |||
| Standards-Version: 4.5.0 | |||
| Homepage: http://drobilla.net/software/sord/ | |||
| Rules-Requires-Root: no | |||
| @@ -1,3 +1,9 @@ | |||
| sratom-static (6:0.6.10-1kxstudio1) focal; urgency=medium | |||
| * Update | |||
| -- falkTX <falktx@falktx.com> Wed, 15 Jun 2022 20:18:11 +0100 | |||
| sratom-static (6:0.6.8-1kxstudio2) focal; urgency=medium | |||
| * Initial package | |||
| @@ -6,8 +6,8 @@ Build-Depends: debhelper-compat (= 13), | |||
| kxstudio-build-scripts (>= 5), | |||
| python3, | |||
| pkg-config, | |||
| libsord-static (>= 6:0.16.8-1kxstudio4), | |||
| lv2-dev (>= 6:1.18.2-1kxstudio1) | |||
| libsord-static (>= 6:0.16.10-1kxstudio1), | |||
| lv2-dev (>= 6:1.18.4-1kxstudio1) | |||
| Standards-Version: 4.5.0 | |||
| Homepage: http://drobilla.net/software/sratom/ | |||
| Rules-Requires-Root: no | |||
| @@ -0,0 +1,5 @@ | |||
| suil-static (6:0.10.12-1kxstudio3) focal; urgency=medium | |||
| * Initial package | |||
| -- falkTX <falktx@falktx.com> Sun, 17 Apr 2022 15:05:47 +0100 | |||
| @@ -0,0 +1,13 @@ | |||
| .lock-waf_linux_build | |||
| .lock-waf_linux2_build | |||
| build/.lock-waf_linux_build | |||
| build/.lock-waf_linux2_build | |||
| build/.wafpickle-* | |||
| build/c4che/_cache.py | |||
| build/c4che/build.config.py | |||
| build/config.log | |||
| __pycache__/*.pyc | |||
| waflib/*.pyc | |||
| waflib/*/*.pyc | |||
| waflib/__pycache__/*.pyc | |||
| waflib/*/__pycache__/*.pyc | |||
| @@ -0,0 +1,52 @@ | |||
| Source: suil-static | |||
| Section: devel | |||
| Priority: optional | |||
| Maintainer: falkTX <falktx@falktx.com> | |||
| Build-Depends: debhelper-compat (= 13), | |||
| kxstudio-build-scripts (>= 5), | |||
| python3, | |||
| pkg-config, | |||
| libgtk2.0-dev, | |||
| libgtk-3-dev, | |||
| libqt5x11extras5-dev, | |||
| lv2-dev (>= 6:1.18.4-1kxstudio1) | |||
| Standards-Version: 4.5.0 | |||
| Homepage: http://drobilla.net/software/suil/ | |||
| Rules-Requires-Root: no | |||
| Package: libsuil-static | |||
| Architecture: any | |||
| Depends: ${misc:Depends}, lv2-dev | |||
| Conflicts: suil-static | |||
| Breaks: suil-static | |||
| Description: library for loading and wrapping LV2 plugin UIs (static) | |||
| Suil makes it possible to load a UI of any toolkit in a host using | |||
| any other toolkit (assuming the toolkits are both supported by | |||
| Suil). Hosts do not need to build against or link to foreign toolkit | |||
| libraries to use UIs written with that toolkit (Suil performs its | |||
| magic at runtime using dynamically loaded modules). The API | |||
| is designed such that hosts do not need to explicitly support | |||
| particular toolkits whatsoever - if Suil supports a particular | |||
| toolkit, then all hosts that use Suil will support that toolkit | |||
| "for free". Suil currently supports GTK-2+ and Qt4 | |||
| . | |||
| This package provides the development files for suil. | |||
| Package: libsuil-kxstudio | |||
| Architecture: any | |||
| Depends: ${misc:Depends}, ${shlibs:Depends} | |||
| Conflicts: suil-libs | |||
| Breaks: suil-libs | |||
| Section: libs | |||
| Description: library for loading and wrapping LV2 plugin UIs | |||
| Suil makes it possible to load a UI of any toolkit in a host using | |||
| any other toolkit (assuming the toolkits are both supported by | |||
| Suil). Hosts do not need to build against or link to foreign toolkit | |||
| libraries to use UIs written with that toolkit (Suil performs its | |||
| magic at runtime using dynamically loaded modules). The API | |||
| is designed such that hosts do not need to explicitly support | |||
| particular toolkits whatsoever - if Suil supports a particular | |||
| toolkit, then all hosts that use Suil will support that toolkit | |||
| "for free". Suil currently supports GTK-2+ and Qt4 | |||
| . | |||
| This package provides the shared libraries. | |||
| @@ -0,0 +1 @@ | |||
| /usr/lib/*/suil-kxstudio/ | |||
| @@ -0,0 +1,3 @@ | |||
| /opt/kxstudio/include | |||
| /opt/kxstudio/lib/*.a | |||
| /opt/kxstudio/lib/pkgconfig | |||
| @@ -0,0 +1,11 @@ | |||
| --- suil-static-0.10.12.orig/wscript | |||
| +++ suil-static-0.10.12/wscript | |||
| @@ -403,8 +403,6 @@ def build(bld): | |||
| if bld.env.DOCS: | |||
| bld.recurse('doc/c') | |||
| - bld.add_post_fun(autowaf.run_ldconfig) | |||
| - | |||
| class LintContext(Build.BuildContext): | |||
| fun = cmd = 'lint' | |||
| @@ -0,0 +1,18 @@ | |||
| --- suil-static-0.10.12.orig/include/suil/suil.h | |||
| +++ suil-static-0.10.12/include/suil/suil.h | |||
| @@ -24,13 +24,8 @@ | |||
| #include <stdbool.h> | |||
| #include <stdint.h> | |||
| -#ifdef _WIN32 | |||
| -# define SUIL_LIB_IMPORT __declspec(dllimport) | |||
| -# define SUIL_LIB_EXPORT __declspec(dllexport) | |||
| -#else | |||
| -# define SUIL_LIB_IMPORT __attribute__((visibility("default"))) | |||
| -# define SUIL_LIB_EXPORT __attribute__((visibility("default"))) | |||
| -#endif | |||
| +#define SUIL_LIB_IMPORT | |||
| +#define SUIL_LIB_EXPORT __attribute__((visibility("default"))) | |||
| #ifndef SUIL_STATIC | |||
| # ifdef SUIL_INTERNAL | |||
| @@ -0,0 +1,9 @@ | |||
| --- suil-static-0.10.12.orig/suil.pc.in | |||
| +++ suil-static-0.10.12/suil.pc.in | |||
| @@ -7,5 +7,5 @@ Name: Suil | |||
| Version: @SUIL_VERSION@ | |||
| Description: LV2 plugin UI hosting library | |||
| Requires: @SUIL_PKG_DEPS@ | |||
| -Libs: -L${libdir} -l@LIB_SUIL@ | |||
| +Libs: -L${libdir} -l@LIB_SUIL@ -ldl | |||
| Cflags: -I${includedir}/suil-@SUIL_MAJOR_VERSION@ | |||
| @@ -0,0 +1,15 @@ | |||
| --- suil-static-0.10.12.orig/src/suil_internal.h | |||
| +++ suil-static-0.10.12/src/suil_internal.h | |||
| @@ -113,8 +113,12 @@ suil_host_init(void); | |||
| static inline void* | |||
| suil_open_module(const char* module_name) | |||
| { | |||
| +#ifdef KXSTUDIO_SUIL_MODULE_DIR | |||
| + const char* const mod_dir = KXSTUDIO_SUIL_MODULE_DIR; | |||
| +#else | |||
| const char* const env_dir = getenv("SUIL_MODULE_DIR"); | |||
| const char* const mod_dir = env_dir ? env_dir : SUIL_MODULE_DIR; | |||
| +#endif | |||
| const size_t path_len = | |||
| strlen(mod_dir) + strlen(SUIL_DIR_SEP SUIL_MODULE_PREFIX SUIL_MODULE_EXT) + | |||
| strlen(module_name) + 2; | |||
| @@ -0,0 +1,4 @@ | |||
| 01_dont-run-ldconfig.patch | |||
| 02_hidden-suil-api.patch | |||
| 03_fix-libs.patch | |||
| 04_hardcoded-suil-module-dir.patch | |||
| @@ -0,0 +1,33 @@ | |||
| #!/usr/bin/make -f | |||
| KXSTUDIO_NO_FASTMATH = y | |||
| include /usr/share/dpkg/kxstudio.mk | |||
| SUIL_MODULE_DIR = /usr/lib/$(DEB_TARGET_MULTIARCH)/suil-kxstudio | |||
| export CFLAGS += -DKXSTUDIO_SUIL_MODULE_DIR='"$(SUIL_MODULE_DIR)"' | |||
| export CXXFLAGS += -DKXSTUDIO_SUIL_MODULE_DIR='"$(SUIL_MODULE_DIR)"' | |||
| export LDFLAGS += -Wl,-z,nodelete | |||
| WAF = python3 ./waf | |||
| override_dh_auto_configure: | |||
| $(WAF) configure \ | |||
| --static \ | |||
| --no-shared \ | |||
| --prefix=/opt/kxstudio \ | |||
| --strict | |||
| override_dh_auto_build: | |||
| $(WAF) | |||
| override_dh_auto_clean: | |||
| $(WAF) clean || true | |||
| override_dh_auto_install: | |||
| $(WAF) install --destdir=$(CURDIR)/debian/tmp | |||
| mkdir -p $(CURDIR)/debian/tmp/usr/lib/$(DEB_TARGET_MULTIARCH) | |||
| mv $(CURDIR)/debian/tmp/opt/kxstudio/lib/suil-0 $(CURDIR)/debian/tmp$(SUIL_MODULE_DIR) | |||
| %: | |||
| dh $@ | |||
| @@ -0,0 +1 @@ | |||
| 3.0 (quilt) | |||