mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 19:55:32 +00:00
releasing
Original commit message from CVS: releasing
This commit is contained in:
parent
d78c1bc319
commit
14595b0186
16 changed files with 291 additions and 197 deletions
|
@ -1,3 +1,11 @@
|
|||
|
||||
=== gstreamer 0.7.4 ===
|
||||
|
||||
2004-02-06 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* NEWS: GStreamer 0.7.4 "Wooden Eels" released
|
||||
* configure.ac: changed for release
|
||||
|
||||
2004-02-05 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* gst/gstcaps.h:
|
||||
|
|
11
Makefile.am
11
Makefile.am
|
@ -1,3 +1,5 @@
|
|||
AUTOMAKE_OPTIONS = dist-bzip2
|
||||
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
|
@ -45,12 +47,19 @@ DIST_SUBDIRS = include libs gst \
|
|||
|
||||
EXTRA_DIST = gstreamer.spec.in gst-element-check.m4 \
|
||||
configure.ac autogen.sh depcomp \
|
||||
REQUIREMENTS ABOUT-NLS RELEASE DOCBUILDING DEVEL \
|
||||
REQUIREMENTS ABOUT-NLS DOCBUILDING DEVEL \
|
||||
idiottest.mak common
|
||||
|
||||
CLEANFILES = gst-element-check-@GST_MAJORMINOR@.m4
|
||||
|
||||
|
||||
release: dist
|
||||
make @PACKAGE@-@VERSION@.tar.gz.md5
|
||||
make @PACKAGE@-@VERSION@.tar.bz2.md5
|
||||
|
||||
%.md5: %
|
||||
md5sum $< > $@
|
||||
|
||||
dist-hook:
|
||||
cp gstreamer.spec $(distdir)
|
||||
rm -rf `find $(distdir)/common -name CVS`
|
||||
|
|
95
NEWS
95
NEWS
|
@ -1,2 +1,93 @@
|
|||
2001-12-12
|
||||
* GStreamer 0.3.0 released, "Most Eventful Ever"
|
||||
Release notes for GStreamer 0.7.4 "Wooden Eels"
|
||||
|
||||
The GStreamer team is happy to announce a new release in the 0.7.x
|
||||
development series of the GStreamer streaming-media framework. The
|
||||
goal of this release series is to stabilize towards a 0.8 release
|
||||
series which will be part of the GNOME 2.6 releases and hopefully
|
||||
eventually KDE 4.x.
|
||||
|
||||
The 0.7 series is a development series and is aimed at developers. It
|
||||
is NOT API or ABI compatible with the stable 0.6.x series or with
|
||||
other releases in the series. This means you can not use this release
|
||||
to upgrade your current GStreamer installation and expect your
|
||||
GStreamer applications to keep working without a recompile. It is,
|
||||
however, parallel installable with the 0.6.x series.
|
||||
|
||||
Features of this release
|
||||
|
||||
* Merged the new caps system
|
||||
* Reworked pad negotiation
|
||||
* Internationalized core and elements
|
||||
* Reworked error notification with translated error messages and
|
||||
additional debug information for developer feedback
|
||||
* Updated Dutch and French translations
|
||||
* Reworked clocking
|
||||
* Serialization of GstValue
|
||||
* Documentation of GstCaps
|
||||
* Poisoning of GstCaps
|
||||
* Queues now flushed properly to fix seeking in playback
|
||||
* Memleak fixes in core elements
|
||||
* Largely rewritten Plugin Writer's Guide
|
||||
* Unversioned tools that wrap all present and future versioned tools
|
||||
to help packagers
|
||||
* Portability fixes for Solaris and OSX
|
||||
* Lots of bugfixes
|
||||
|
||||
Download
|
||||
|
||||
You find source releases of gstreamer in the [14]gstreamer download
|
||||
directory.
|
||||
|
||||
GStreamer Homepage
|
||||
|
||||
More details can be found on the project's website,
|
||||
[15]http://www.freedesktop.org/~gstreamer.
|
||||
|
||||
Support and Bugs
|
||||
|
||||
We use Gnome's bugzilla for [16]bug reports and feature requests.
|
||||
|
||||
Developers
|
||||
|
||||
CVS is hosted on cvs.freedesktop.org. You can [17]browse the gstreamer
|
||||
repository. All code is in CVS and can be checked out from there.
|
||||
Interested developers of the core library, plug-ins, and applications
|
||||
should subscribe to the gstreamer-devel list. If there is sufficient
|
||||
interest we will create more lists as necessary.
|
||||
|
||||
Applications
|
||||
|
||||
As mentioned there are some changes in API/ABI between the 0.6.x and
|
||||
0.7.x releases. Many applications will probably be source compatible
|
||||
between 0.6.x. and 0.7.x however. [18]Rhythmbox and [19]Sound Juicer
|
||||
for instance work very well when compiled on 0.7.x. GStreamer Player
|
||||
does not work across releases however, so we will make a separate
|
||||
release of gst-player with the needed fixes for it to work with 0.7.x.
|
||||
This release contains the core fixes we were waiting for to port the
|
||||
player over so expect a gst-player release in the near future.
|
||||
|
||||
Contributors to this release
|
||||
|
||||
* David Schleef
|
||||
* Benjamin Otte
|
||||
* Thomas Vander Stichele
|
||||
* Iain Holmes
|
||||
* Ronald Bultje
|
||||
* Colin Walters
|
||||
* Jan Schmidt
|
||||
* Jérémy Simon
|
||||
* Leif Morgan Johnson
|
||||
* Julien Moutte
|
||||
* Jon Trowbridge
|
||||
* Christian Fredrik Kalager Schaller
|
||||
* Laurent Vivier
|
||||
|
||||
References
|
||||
|
||||
Visible links
|
||||
14. http://www.freedesktop.org/~gstreamer/src/gstreamer/
|
||||
15. http://www.freedesktop.org/~gstreamer
|
||||
16. http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
|
||||
17. http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer//gstreamer/
|
||||
18. http://www.rhythmbox.org/
|
||||
19. http://www.burtonini.com/blog/computers/sound-juicer
|
||||
|
|
1
RELEASE
1
RELEASE
|
@ -1 +0,0 @@
|
|||
This is a CVS version of GStreamer.
|
|
@ -3,7 +3,7 @@ AC_CANONICAL_TARGET([])
|
|||
|
||||
dnl when going to/from release please set the nano (fourth number) right !
|
||||
dnl releases only do Wall, cvs and prerelease does Werror too
|
||||
AS_VERSION(gstreamer, GST_VERSION, 0, 7, 3, 2, GST_CVS="no", GST_CVS="yes")
|
||||
AS_VERSION(gstreamer, GST_VERSION, 0, 7, 4, 0, GST_CVS="no", GST_CVS="yes")
|
||||
|
||||
#if test x$program_suffix = xNONE ; then
|
||||
# program_suffix=-$GST_VERSION_MAJOR.$GST_VERSION_MINOR
|
||||
|
|
|
@ -72,6 +72,34 @@ The GstBin object
|
|||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstBin::element-added ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gstbin: the object which received the signal.
|
||||
@arg1: the element that was added to the bin
|
||||
|
||||
<!-- ##### SIGNAL GstBin::element-removed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gstbin: the object which received the signal.
|
||||
@arg1: the element that was removed from the bin
|
||||
|
||||
<!-- ##### SIGNAL GstBin::iterate ##### -->
|
||||
<para>
|
||||
This signal is emitted when a bin iterates, either automatically or
|
||||
due to a #gst_bin_iterate() call. The return value is used to
|
||||
determine if the object method handler processed any data.
|
||||
In most normal cases, a user-provided signal handler should return
|
||||
FALSE.
|
||||
</para>
|
||||
|
||||
@gstbin: the object which received the signal.
|
||||
@Returns: TRUE if the state of the bin was advanced.
|
||||
|
||||
<!-- ##### USER_FUNCTION GstBinPrePostIterateFunction ##### -->
|
||||
<para>
|
||||
The signature of the callback for the post and pre iterate function as set with
|
||||
|
@ -224,31 +252,3 @@ gst_bin_set_pre_iterate_function() and gst_bin_set_post_iterate_function().
|
|||
@clock:
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstBin::element-added ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gstbin: the object which received the signal.
|
||||
@arg1: the element that was added to the bin
|
||||
|
||||
<!-- ##### SIGNAL GstBin::element-removed ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gstbin: the object which received the signal.
|
||||
@arg1: the element that was removed from the bin
|
||||
|
||||
<!-- ##### SIGNAL GstBin::iterate ##### -->
|
||||
<para>
|
||||
This signal is emitted when a bin iterates, either automatically or
|
||||
due to a #gst_bin_iterate() call. The return value is used to
|
||||
determine if the object method handler processed any data.
|
||||
In most normal cases, a user-provided signal handler should return
|
||||
FALSE.
|
||||
</para>
|
||||
|
||||
@gstbin: the object which received the signal.
|
||||
@Returns: TRUE if the state of the bin was advanced.
|
||||
|
||||
|
|
|
@ -235,6 +235,21 @@ Get the clock flags
|
|||
</para>
|
||||
|
||||
|
||||
<!-- ##### ARG GstClock:event-diff ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GstClock:max-diff ##### -->
|
||||
<para>
|
||||
Maximum allowed diff for clock sync requests against the real time.
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GstClock:stats ##### -->
|
||||
<para>
|
||||
Boolean property to activate stat generation on the clock.
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gst_clock_set_speed ##### -->
|
||||
<para>
|
||||
|
||||
|
@ -402,18 +417,3 @@ Get the clock flags
|
|||
@id:
|
||||
|
||||
|
||||
<!-- ##### ARG GstClock:event-diff ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GstClock:max-diff ##### -->
|
||||
<para>
|
||||
Maximum allowed diff for clock sync requests against the real time.
|
||||
</para>
|
||||
|
||||
<!-- ##### ARG GstClock:stats ##### -->
|
||||
<para>
|
||||
Boolean property to activate stat generation on the clock.
|
||||
</para>
|
||||
|
||||
|
|
|
@ -71,6 +71,59 @@ The element object
|
|||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstElement::eos ##### -->
|
||||
<para>
|
||||
Signal emited when the element goes to PAUSED due to an end-of-stream
|
||||
condition.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
|
||||
<!-- ##### SIGNAL GstElement::error ##### -->
|
||||
<para>
|
||||
This signal is emitted when an element has encountered an error that caused
|
||||
it to fail performing its function.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1: the original #GstElement that generated the error.
|
||||
@arg2: a #GError containing the translated error message.
|
||||
@arg3: a debug string providing additional untranslated debug information, or NULL.
|
||||
|
||||
<!-- ##### SIGNAL GstElement::found-tag ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
|
||||
<!-- ##### SIGNAL GstElement::new-pad ##### -->
|
||||
<para>
|
||||
Is triggered whenever a new pad is added to an element.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1: the new pad that was added
|
||||
|
||||
<!-- ##### SIGNAL GstElement::pad-removed ##### -->
|
||||
<para>
|
||||
Is triggered whenever a pad has been removed from the element.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1: The pad that was removed.
|
||||
|
||||
<!-- ##### SIGNAL GstElement::state-change ##### -->
|
||||
<para>
|
||||
Is triggered whenever the state of an element changes.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1: the new state of the object
|
||||
@arg2:
|
||||
|
||||
<!-- ##### MACRO gst_element_get_name ##### -->
|
||||
<para>
|
||||
Gets the name of the element.
|
||||
|
@ -966,56 +1019,3 @@ Helper macro to create query type functions
|
|||
@...: list of query types.
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstElement::eos ##### -->
|
||||
<para>
|
||||
Signal emited when the element goes to PAUSED due to an end-of-stream
|
||||
condition.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
|
||||
<!-- ##### SIGNAL GstElement::error ##### -->
|
||||
<para>
|
||||
This signal is emitted when an element has encountered an error that caused
|
||||
it to fail performing its function.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1: the original #GstElement that generated the error.
|
||||
@arg2: a #GError containing the translated error message.
|
||||
@arg3: a debug string providing additional untranslated debug information, or NULL.
|
||||
|
||||
<!-- ##### SIGNAL GstElement::found-tag ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
|
||||
<!-- ##### SIGNAL GstElement::new-pad ##### -->
|
||||
<para>
|
||||
Is triggered whenever a new pad is added to an element.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1: the new pad that was added
|
||||
|
||||
<!-- ##### SIGNAL GstElement::pad-removed ##### -->
|
||||
<para>
|
||||
Is triggered whenever a pad has been removed from the element.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1: The pad that was removed.
|
||||
|
||||
<!-- ##### SIGNAL GstElement::state-change ##### -->
|
||||
<para>
|
||||
Is triggered whenever the state of an element changes.
|
||||
</para>
|
||||
|
||||
@gstelement: the object which received the signal.
|
||||
@arg1: the new state of the object
|
||||
@arg2:
|
||||
|
||||
|
|
|
@ -209,6 +209,19 @@ The GstIndex object
|
|||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstIndex::entry-added ##### -->
|
||||
<para>
|
||||
Is emited when a new entry is added to the index.
|
||||
</para>
|
||||
|
||||
@gstindex: the object which received the signal.
|
||||
@arg1: The entry added to the index.
|
||||
|
||||
<!-- ##### ARG GstIndex:resolver ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gst_index_new ##### -->
|
||||
<para>
|
||||
|
||||
|
@ -401,16 +414,3 @@ The GstIndex object
|
|||
@id:
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstIndex::entry-added ##### -->
|
||||
<para>
|
||||
Is emited when a new entry is added to the index.
|
||||
</para>
|
||||
|
||||
@gstindex: the object which received the signal.
|
||||
@arg1: The entry added to the index.
|
||||
|
||||
<!-- ##### ARG GstIndex:resolver ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
|
|
|
@ -40,6 +40,47 @@ The GstObject
|
|||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstObject::deep-notify ##### -->
|
||||
<para>
|
||||
The deep notify signal is used to be notified of property changes.
|
||||
it is typically attached to the toplevel bin to receive notifications
|
||||
from all the elements contained in that bin.
|
||||
</para>
|
||||
|
||||
@gstobject: the object which received the signal.
|
||||
@arg1: the object that originated the signal
|
||||
@arg2: the property that changed
|
||||
|
||||
<!-- ##### SIGNAL GstObject::object-saved ##### -->
|
||||
<para>
|
||||
Is trigered whenever a new object is saved to XML. You can connect to
|
||||
this signal to insert custom XML tags into the core XML.
|
||||
</para>
|
||||
|
||||
@gstobject: the object which received the signal.
|
||||
@arg1: the xmlNodePtr of the parent node
|
||||
|
||||
<!-- ##### SIGNAL GstObject::parent-set ##### -->
|
||||
<para>
|
||||
Is emitted when the parent of an object is set.
|
||||
</para>
|
||||
|
||||
@gstobject: the object which received the signal.
|
||||
@arg1: the new parent
|
||||
|
||||
<!-- ##### SIGNAL GstObject::parent-unset ##### -->
|
||||
<para>
|
||||
Is emitted when the parent of an object is unset.
|
||||
</para>
|
||||
|
||||
@gstobject: the object which received the signal.
|
||||
@arg1: the old parent
|
||||
|
||||
<!-- ##### ARG GstObject:name ##### -->
|
||||
<para>
|
||||
The name of the object
|
||||
</para>
|
||||
|
||||
<!-- ##### MACRO GST_FLAGS ##### -->
|
||||
<para>
|
||||
This macro returns the entire set of flags for the object.
|
||||
|
@ -290,44 +331,3 @@ Check if the object has been destroyed.
|
|||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstObject::deep-notify ##### -->
|
||||
<para>
|
||||
The deep notify signal is used to be notified of property changes.
|
||||
it is typically attached to the toplevel bin to receive notifications
|
||||
from all the elements contained in that bin.
|
||||
</para>
|
||||
|
||||
@gstobject: the object which received the signal.
|
||||
@arg1: the object that originated the signal
|
||||
@arg2: the property that changed
|
||||
|
||||
<!-- ##### SIGNAL GstObject::object-saved ##### -->
|
||||
<para>
|
||||
Is trigered whenever a new object is saved to XML. You can connect to
|
||||
this signal to insert custom XML tags into the core XML.
|
||||
</para>
|
||||
|
||||
@gstobject: the object which received the signal.
|
||||
@arg1: the xmlNodePtr of the parent node
|
||||
|
||||
<!-- ##### SIGNAL GstObject::parent-set ##### -->
|
||||
<para>
|
||||
Is emitted when the parent of an object is set.
|
||||
</para>
|
||||
|
||||
@gstobject: the object which received the signal.
|
||||
@arg1: the new parent
|
||||
|
||||
<!-- ##### SIGNAL GstObject::parent-unset ##### -->
|
||||
<para>
|
||||
Is emitted when the parent of an object is unset.
|
||||
</para>
|
||||
|
||||
@gstobject: the object which received the signal.
|
||||
@arg1: the old parent
|
||||
|
||||
<!-- ##### ARG GstObject:name ##### -->
|
||||
<para>
|
||||
The name of the object
|
||||
</para>
|
||||
|
||||
|
|
|
@ -87,6 +87,15 @@ The padtemplate object.
|
|||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstPadTemplate::pad-created ##### -->
|
||||
<para>
|
||||
This signal is fired when an element creates a pad from this
|
||||
template.
|
||||
</para>
|
||||
|
||||
@gstpadtemplate: the object which received the signal.
|
||||
@arg1: The pad that was created.
|
||||
|
||||
<!-- ##### ENUM GstPadTemplateFlags ##### -->
|
||||
<para>
|
||||
Flags for the padtemplate
|
||||
|
@ -168,12 +177,3 @@ Check if the properties of the padtemplate are fixed
|
|||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstPadTemplate::pad-created ##### -->
|
||||
<para>
|
||||
This signal is fired when an element creates a pad from this
|
||||
template.
|
||||
</para>
|
||||
|
||||
@gstpadtemplate: the object which received the signal.
|
||||
@arg1: The pad that was created.
|
||||
|
||||
|
|
|
@ -6023,6 +6023,15 @@ Query the element for the current mime type
|
|||
</para>
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstXML::object-loaded ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gstxml: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
|
||||
<!-- ##### USER_FUNCTION GstXMLRegistryAddPathList ##### -->
|
||||
<para>
|
||||
|
||||
|
|
|
@ -34,15 +34,6 @@ The GstThread object
|
|||
</para>
|
||||
|
||||
|
||||
<!-- ##### FUNCTION gst_thread_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@name:
|
||||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstThread::shutdown ##### -->
|
||||
<para>
|
||||
|
||||
|
@ -55,3 +46,12 @@ The GstThread object
|
|||
The thread priority
|
||||
</para>
|
||||
|
||||
<!-- ##### FUNCTION gst_thread_new ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@name:
|
||||
@Returns:
|
||||
|
||||
|
||||
|
|
|
@ -105,25 +105,3 @@ All GstElements can be serialized to an XML presentation and subsequently loaded
|
|||
@Returns:
|
||||
|
||||
|
||||
<!-- ##### SIGNAL GstXML::object-loaded ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@:
|
||||
@:
|
||||
@:
|
||||
|
||||
@gstxml: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
|
||||
<!-- ##### SIGNAL GstXML::object-loaded ##### -->
|
||||
<para>
|
||||
|
||||
</para>
|
||||
|
||||
@gstxml: the object which received the signal.
|
||||
@arg1:
|
||||
@arg2:
|
||||
|
||||
|
|
2
po/fr.po
2
po/fr.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: GStreamer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2004-02-05 19:44+0100\n"
|
||||
"POT-Creation-Date: 2004-02-05 19:13+0100\n"
|
||||
"PO-Revision-Date: 2004-01-13 16:52+0100\n"
|
||||
"Last-Translator: Julien Moutte <julien@moutte.net>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
|
|
2
po/nl.po
2
po/nl.po
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: GStreamer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2004-02-05 19:44+0100\n"
|
||||
"POT-Creation-Date: 2004-02-05 19:13+0100\n"
|
||||
"PO-Revision-Date: 2004-01-13 12:03+0100\n"
|
||||
"Last-Translator: Thomas Vander Stichele <thomas@apestaart.org>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
|
|
Loading…
Reference in a new issue