Skip to content

Commit

Permalink
bump release version to 4.0.0, and skip release of 3.0.0 version
Browse files Browse the repository at this point in the history
At present, there is a difference between library major version (2) and
gir version (3). Due to the version mismatch, this commit skips release
of 3.0 version and bump release version to 4.0.

Signed-off-by: Takashi Sakamoto <[email protected]>
  • Loading branch information
takaswie committed Oct 29, 2023
1 parent 67c139c commit 1b93a53
Show file tree
Hide file tree
Showing 22 changed files with 53 additions and 46 deletions.
20 changes: 11 additions & 9 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
The libhinawa project
=====================

2023/10/07
2023/10/29
Takashi Sakamoto

Instruction
Expand All @@ -19,9 +19,11 @@ been already obsoleted and deligated the functions to
`libhitaki <https://github.com/alsa-project/libhitaki>`_, while are still kept for backward
compatibility. They should not be used for applications written newly.

The latest release is `2.6.1 <https://git.kernel.org/pub/scm/libs/ieee1394/libhinawa.git/tag/?h=2.6.1>`_.
The latest release is `4.0.0 <https://git.kernel.org/pub/scm/libs/ieee1394/libhinawa.git/tag/?h=4.0.0>`_.
The package archive is available in `<https://kernel.org/pub/linux/libs/ieee1394/>`_ with detached
signature created by `my GnuPG key <https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/tree/keys/B5A586C7D66FD341.asc>`_.
I note that version 3 release is skipped to use the same major version in library itself and
GObject Introspection (g-i) metadata.

License
=======
Expand Down Expand Up @@ -65,9 +67,9 @@ How to build
$ meson install -C build
($ meson test -C build)

When working with gobject-introspection, ``Hinawa-3.0.typelib`` should be
When working with gobject-introspection, ``Hinawa-4.0.typelib`` should be
installed in your system girepository so that ``libgirepository`` can find
it. Of course, your system LD should find ELF shared object for libhinawa2.
it. Of course, your system LD should find ELF shared object for libhinawa4.
Before installing, it's good to check path of the above and configure
'--prefix' meson option appropriately. The environment variables,
``GI_TYPELIB_PATH`` and ``LD_LIBRARY_PATH`` are available for ad-hoc settings
Expand Down Expand Up @@ -110,7 +112,7 @@ Example of Python3 with PyGobject

import gi
gi.require_version('GLib', '2.0')
gi.require_version('Hinawa', '3.0')
gi.require_version('Hinawa', '4.0')
from gi.repository import GLib, Hinawa

from threading import Thread
Expand Down Expand Up @@ -166,7 +168,7 @@ This is a sample of wrap file to satisfy dependency on libhinawa by
[wrap-git]
directory = hinawa
url = https://git.kernel.org/pub/scm/libs/ieee1394/libhinawa.git
revision = 2.6.1
revision = 4.0.0
depth = 1
[provide]
Expand All @@ -180,7 +182,7 @@ available.

$ cat meson.build
hinawa_dependency = dependency('hinawa',
version: '>=2.6.1'
version: '>=4.0.0'
)

Loss of backward compatibility with version 1 and version 2 releases
Expand All @@ -207,15 +209,15 @@ for processing it using ``GLib.MainContext``. Additionally, ``Hinawa.FwNode`` wa
obsolete ``Hinawa.FwUnit`` in an aspect of topology in IEEE 1394 bus. Consequently,
``Hinawa.SndUnit`` directly derived from GObject.

Before releasing the version 3 of library, `libhitaki <https://github.com/alsa-project/libhitaki>`_
Before releasing the version 4 of library, `libhitaki <https://github.com/alsa-project/libhitaki>`_
was released. The library provides ``Hitaki.SndUnit`` and its derived object classes to obsolete
equivalent features in the version 2 of library. Furthermore, with the release of Linux kernel
version 6.5, new events were introduced to deliver hardware time stamp for asynchronous
communication. To accommodate this, ``Hinawa.CycleTime`` was added, along with some methods of
``Hinawa.FwReq``, ``Hinawa.FwResp``, and ``Hinawa.FwFcp``, to facilitating user application
processing of the hardware time stamp.

The version 3 library is specifically tailored to features in Linux FireWire subsystem, with a
The version 4 library is specifically tailored to features in Linux FireWire subsystem, with a
sole focus on asynchronous communication in IEEE 1394 bus. For isochronous communication,
`libhinoko <https://git.kernel.org/pub/scm/libs/ieee1394/libhinoko.git/>`_ provides the
necessary features.
Expand Down
9 changes: 7 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
project('libhinawa', 'c',
version: '2.6.1',
project('hinawa', 'c',
version: '4.0.0',
license: 'LGPL-2.1+',
meson_version: '>= 0.60.0',
)

version = meson.project_version().split('.')
major_version = version[0].to_int()
minor_version = version[1].to_int()
micro_version = version[2].to_int()

# Detect support level in Linux sound subsystem.
cc = meson.get_compiler('c')

Expand Down
2 changes: 1 addition & 1 deletion samples/common/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from threading import Thread

import gi
gi.require_versions({'GLib': '2.0', 'Hinawa': '3.0'})
gi.require_versions({'GLib': '2.0', 'Hinawa': '4.0'})
from gi.repository import GLib, Hinawa

CLOCK_MONOTONIC_RAW = 4
Expand Down
4 changes: 2 additions & 2 deletions samples/gtk3
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ from struct import unpack
import common

import gi
gi.require_versions({'GLib': '2.0', 'Hinawa': '3.0', 'Gtk': '3.0'})
gi.require_versions({'GLib': '2.0', 'Hinawa': '4.0', 'Gtk': '3.0'})
from gi.repository import GLib, Hinawa, Gtk


Expand Down Expand Up @@ -45,7 +45,7 @@ def main() -> int:

class Sample(Gtk.Window):
def __init__(self, node):
Gtk.Window.__init__(self, title="Hinawa-3.0 gir sample")
Gtk.Window.__init__(self, title="Hinawa-4.0 gir sample")

self.node = node
self.req = Hinawa.FwReq.new()
Expand Down
4 changes: 2 additions & 2 deletions samples/gtk4
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ from struct import unpack
import common

import gi
gi.require_versions({'GLib': '2.0', 'Hinawa': '3.0', 'Gtk': '4.0'})
gi.require_versions({'GLib': '2.0', 'Hinawa': '4.0', 'Gtk': '4.0'})
from gi.repository import GLib, Hinawa, Gtk


Expand Down Expand Up @@ -48,7 +48,7 @@ def main() -> int:

class Sample(Gtk.Window):
def __init__(self, dispatcher, node):
Gtk.Window.__init__(self, title="Hinawa-3.0 gir sample")
Gtk.Window.__init__(self, title="Hinawa-4.0 gir sample")

self.node = node
self.req = Hinawa.FwReq.new()
Expand Down
4 changes: 2 additions & 2 deletions samples/qt5
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ from struct import unpack
import common

import gi
gi.require_versions({'GLib': '2.0', 'Hinawa': '3.0'})
gi.require_versions({'GLib': '2.0', 'Hinawa': '4.0'})
from gi.repository import GLib, Hinawa

# Qt5 python binding
Expand Down Expand Up @@ -64,7 +64,7 @@ class Sample(QWidget):
self.node = node
self.req = Hinawa.FwReq.new()

self.setWindowTitle("Hinawa-3.0 gir sample")
self.setWindowTitle("Hinawa-4.0 gir sample")

layout = QVBoxLayout()
self.setLayout(layout)
Expand Down
8 changes: 4 additions & 4 deletions src/fw_fcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ static void hinawa_fw_fcp_class_init(HinawaFwFcpClass *klass)
* If the version of kernel ABI for Linux FireWire subsystem is less than 6, the value of
* @tstamp argument has invalid value (=G_MAXUINT).
*
* Since: 3.0
* Since: 4.0
*/
fw_fcp_sigs[FW_FCP_SIG_TYPE_RESPONDED] =
g_signal_new("responded",
Expand Down Expand Up @@ -288,7 +288,7 @@ gboolean hinawa_fw_fcp_command_with_tstamp(HinawaFwFcp *self, const guint8 *cmd,
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_fcp_command(HinawaFwFcp *self, const guint8 *cmd, gsize cmd_size,
guint timeout_ms, GError **error)
Expand Down Expand Up @@ -498,7 +498,7 @@ gboolean hinawa_fw_fcp_avc_transaction_with_tstamp(HinawaFwFcp *self,
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_fcp_avc_transaction(HinawaFwFcp *self, const guint8 *cmd, gsize cmd_size,
guint8 **resp, gsize *resp_size, guint timeout_ms,
Expand Down Expand Up @@ -645,7 +645,7 @@ static HinawaFwRcode handle_requested_signal(HinawaFwResp *resp, HinawaFwTcode t
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_fcp_bind(HinawaFwFcp *self, HinawaFwNode *node, GError **error)
{
Expand Down
2 changes: 1 addition & 1 deletion src/fw_fcp.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ struct _HinawaFwFcpClass {
*
* Class closure for the [signal@FwFcp::responded] signal.
*
* Since: 3.0
* Since: 4.0
*/
void (*responded)(HinawaFwFcp *self, guint generation, guint tstamp, const guint8 *frame,
guint frame_size);
Expand Down
10 changes: 5 additions & 5 deletions src/fw_node.c
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ static void hinawa_fw_node_class_init(HinawaFwNodeClass *klass)
* The numeric index for 1394 OHCI hardware used for the communication with the node. The
* value is stable against bus generation.
*
* Since: 3.0
* Since: 4.0
*/
fw_node_props[FW_NODE_PROP_TYPE_CARD_ID] =
g_param_spec_uint("card-id", "card-id",
Expand Down Expand Up @@ -362,7 +362,7 @@ static int update_info(HinawaFwNode *self)
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_node_open(HinawaFwNode *self, const gchar *path, gint open_flag, GError **error)
{
Expand Down Expand Up @@ -423,7 +423,7 @@ gboolean hinawa_fw_node_open(HinawaFwNode *self, const gchar *path, gint open_fl
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_node_get_config_rom(HinawaFwNode *self, const guint8 **image, gsize *length,
GError **error)
Expand Down Expand Up @@ -464,7 +464,7 @@ gboolean hinawa_fw_node_get_config_rom(HinawaFwNode *self, const guint8 **image,
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_node_read_cycle_time(HinawaFwNode *self, gint clock_id,
HinawaCycleTime **cycle_time, GError **error)
Expand Down Expand Up @@ -603,7 +603,7 @@ static void finalize_src(GSource *gsrc)
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_node_create_source(HinawaFwNode *self, GSource **gsrc, GError **error)
{
Expand Down
6 changes: 3 additions & 3 deletions src/fw_req.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ static void hinawa_fw_req_class_init(HinawaFwReqClass *klass)
* If the version of kernel ABI for Linux FireWire subsystem is less than 6, the
* @request_tstamp and @response_tstamp argument has invalid value (=G_MAXUINT).
*
* Since: 3.0
* Since: 4.0
*/
fw_req_sigs[FW_REQ_SIG_TYPE_RESPONDED] =
g_signal_new("responded",
Expand Down Expand Up @@ -133,7 +133,7 @@ HinawaFwReq *hinawa_fw_req_new(void)
* response subaction arrives and running event dispatcher reads the contents,
* [signal@FwReq::responded] signal handler is called.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_req_request(HinawaFwReq *self, HinawaFwNode *node, HinawaFwTcode tcode,
guint64 addr, gsize length, guint8 **frame, gsize *frame_size,
Expand Down Expand Up @@ -371,7 +371,7 @@ gboolean hinawa_fw_req_transaction_with_tstamp(HinawaFwReq *self, HinawaFwNode *
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_req_transaction(HinawaFwReq *self, HinawaFwNode *node,
HinawaFwTcode tcode, guint64 addr, gsize length,
Expand Down
2 changes: 1 addition & 1 deletion src/fw_req.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ struct _HinawaFwReqClass {
*
* Class closure for the [signal@FwReq::responded] signal.
*
* Since: 3.0
* Since: 4.0
*/
void (*responded)(HinawaFwReq *self, HinawaFwRcode rcode, guint request_tstamp,
guint response_tstamp, const guint8 *frame, guint frame_size);
Expand Down
6 changes: 3 additions & 3 deletions src/fw_resp.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ static void hinawa_fw_resp_class_init(HinawaFwRespClass *klass)
*
* Returns: One of [enum@FwRcode] enumerations corresponding to rcodes defined in IEEE 1394
* specification.
* Since: 3.0
* Since: 4.0
*/
fw_resp_sigs[FW_RESP_SIG_TYPE_REQ] =
g_signal_new("requested",
Expand Down Expand Up @@ -231,7 +231,7 @@ HinawaFwResp *hinawa_fw_resp_new(void)
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_resp_reserve_within_region(HinawaFwResp *self, HinawaFwNode *node,
guint64 region_start, guint64 region_end,
Expand Down Expand Up @@ -299,7 +299,7 @@ gboolean hinawa_fw_resp_reserve_within_region(HinawaFwResp *self, HinawaFwNode *
*
* Returns: TRUE if the overall operation finishes successfully, otherwise FALSE.
*
* Since: 3.0
* Since: 4.0
*/
gboolean hinawa_fw_resp_reserve(HinawaFwResp *self, HinawaFwNode *node, guint64 addr, guint width,
GError **error)
Expand Down
2 changes: 1 addition & 1 deletion src/fw_resp.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ struct _HinawaFwRespClass {
* Returns: One of [enum@FwRcode enumerations corresponding to rcodes defined in IEEE 1394
* specification.
*
* Since: 3.0
* Since: 4.0
*/
HinawaFwRcode (*requested)(HinawaFwResp *self, HinawaFwTcode tcode, guint64 offset,
guint src_node_id, guint dst_node_id, guint card_id,
Expand Down
2 changes: 1 addition & 1 deletion src/hinawa.map
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ HINAWA_2_6_0 {
"hinawa_fw_fcp_avc_transaction_with_tstamp";
} HINAWA_2_5_0;

HINAWA_3_0_0 {
HINAWA_4_0_0 {
global:
"hinawa_fw_node_open";
"hinawa_fw_node_get_config_rom";
Expand Down
4 changes: 2 additions & 2 deletions src/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ vflag = '-Wl,--version-script,' + join_paths(meson.current_source_dir(), mapfile
myself = library('hinawa',
sources: sources + headers + privates + marshallers + enums,
version: meson.project_version(),
soversion: meson.project_version().split('.')[0],
soversion: major_version,
install: true,
include_directories: backport_header_dir + include_directories('.'),
dependencies: dependencies,
Expand All @@ -74,7 +74,7 @@ pkg.generate(myself,

hinawa_gir = gnome.generate_gir(myself,
sources: enums + headers + sources,
nsversion: '3.0',
nsversion: '@0@.0'.format(major_version),
namespace: 'Hinawa',
symbol_prefix: 'hinawa_',
identifier_prefix: 'Hinawa',
Expand Down
2 changes: 1 addition & 1 deletion tests/cycle-time
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ from errno import ENXIO
from helper import test_struct

import gi
gi.require_version('Hinawa', '3.0')
gi.require_version('Hinawa', '4.0')
from gi.repository import Hinawa

target_type = Hinawa.CycleTime
Expand Down
2 changes: 1 addition & 1 deletion tests/fw-fcp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ from errno import ENXIO
from helper import test_object

import gi
gi.require_version('Hinawa', '3.0')
gi.require_version('Hinawa', '4.0')
from gi.repository import Hinawa

target_type = Hinawa.FwFcp
Expand Down
2 changes: 1 addition & 1 deletion tests/fw-node
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ from errno import ENXIO
from helper import test_object

import gi
gi.require_version('Hinawa', '3.0')
gi.require_version('Hinawa', '4.0')
from gi.repository import Hinawa

target_type = Hinawa.FwNode
Expand Down
2 changes: 1 addition & 1 deletion tests/fw-req
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ from errno import ENXIO
from helper import test_object

import gi
gi.require_version('Hinawa', '3.0')
gi.require_version('Hinawa', '4.0')
from gi.repository import Hinawa

target_type = Hinawa.FwReq
Expand Down
2 changes: 1 addition & 1 deletion tests/fw-resp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ from errno import ENXIO
from helper import test_object

import gi
gi.require_version('Hinawa', '3.0')
gi.require_version('Hinawa', '4.0')
from gi.repository import Hinawa

target_type = Hinawa.FwResp
Expand Down
Loading

0 comments on commit 1b93a53

Please sign in to comment.