[SRU] Update to vala 0.48.18 in focal

Bug #1891318 reported by Rico Tzschichholz
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
vala (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

The 0.48.x series is maintained as LTS release and will receive further bug fix releases in the future. See https://wiki.gnome.org/Projects/Vala

Upstream changes since 0.48.6:

Vala 0.48.18
============
 * Various improvements and bug fixes:
  - codegen:
    + GArray, GByteArray and GPtrArray are reference counted
    + Replace wrongly hard coded usage of G_OBJECT_GET_CLASS
    + Mark entry point method implementation "_vala_main" as static
    + Improve check for GLib.Source derived classes
  - vala: Parameter following params-array parameter is not allowed

 * Bindings:
  - Update GLib bindings to 2.66 - Sync GLib symbol additions with 0.50.9
  - glib-2.0: Add missing has_typedef attributes on SourceFuncs delegates
  - pango: Mark language parameter of AttrIterator.get_font() as out

 * Various improvements and bug fixes:
  - codegen:
    + Apply gconstpointer to gpointer cast to GenericType only
    + Fix access to captured generics in async method of interfaces (2)
    + Use if-clause for is_in_destructor() condition to be more clear
    + Add missing "_return" label and "_inner_error*_" declaration in dtors
    + Don't use G_GNUC_INTERNAL on implicit type specific fields
  - vala:
    + length-type of arrays must not be nullable
    + Report a warning for unhandled errors in destructors
  - parser:
    + Minor semantic checks to improve error messages
    + Allow empty member-initializer and accept trailing comma
    + Include INTERR token in source_reference of parsed types

Vala 0.48.17
============
 * Regression and bug fixes:
  - codegen:
    + Don't free temp-var for element-access to array with boxed structs [#1174]
    + Don't free unowned heap allocated struct

 * Bindings:
  - glib-2.0: Add simple_generics attribute to GenericArray.find_custom()

Vala 0.48.16
============
 * Various improvements and bug fixes:
  - codegen:
    + Improve handling of ellipsis parameter in get_ccode_name()
    + Fix default value of get_ccode_destroy_notify_pos()
    + Don't override valid target/destroy of previous lambda argument [#59]
    + Don't call *_instance_init() in compact class chainup
  - vala: Mark tranformed static member-access as qualified [#270]
  - girwriter: namespace expects "c:symbol-prefixes" attribute [#1038]
  - girwriter: Don't use instance-parameter inside callback [#1167]
  - girparser,libvaladoc/girimporter: Don't guess length of xml header, iterate
    forward to <repository>
  - libvaladoc/girimporter: parse_constant() use "c:identifier" attribute first

 * Bindings:
  - rest-0.7: Fix OAuthProxyAuthCallback binding
  - gtk+-3.0: Fix ModuleInitFunc binding
  - gio-2.0: Fix TlsPassword.get_value() binding
  - Fix several bindings which lead to invalid code by using them in:
    javascriptcoregtk-4.0, libusb, libusb-1.0, pixman-1,
    webkit2gtk-web-extension-4.0, x11, zlib,

Vala 0.48.15
============
 * Various improvements and bug fixes:
  - codegen:
    + More use of get_ccode_type_name()
    + "_first_array" parameter for params-array is variadic too
    + Inherit GType from base struct of SimpleType structs
    + Error for missing type-arguments of HashTable (de)serialization [#1147]
    + Free intermediate temp-variables of postcondition expression [#80]
    + Use the one available source_reference for internal error [#436]
    + Fix access to captured generics in async method of interfaces [#537]
    + Don't ever create null-aware free macro for GenericType
    + Don't add generics arguments/parameters to async finish method
    + Drop inner casts before converting between generics and integers
    + Include "glib.h" for deprecated symbols (GOBJECT) [#1155]
  - vala:
    + Report warning if --target-glib=auto was not evaluated successfully
    + Fix ownership inheritance of "unowned var" in foreach statement
    + Add missing null-check in DataType.get_type_signature()
    + Check array type of declarations for errornous type-arguments
    + Check (optional) type-arguments of array creation expression
    + Replace all type parameter occurances in parameters for signal delegate
    + Improve error for incompatible expressions in conditional expression
  - gdbus: Don't leak memory of deserialized arguments on error in wrapper method
  - girparser:
    + Reuse populated Node.gtype_struct_for instead of resolving again
    + Evaluate "glib:type-struct" twice to pick up reparented structs
    + Allow overriding of "Compact" attribute for classes
    + Handle empty "<type/>" element and report an error
    + Add support for NoWrapper metadata for methods
  - testrunner: Include Gio-2.0/gio-2.0 for GIR tests too

 * Bindings:
  - glib-2.0,gio-2.0: Add some missing type-arguments
  - gio-2.0: Add some missing NoWrapper and CCode.has_typedef attributes
  - gnutls: Fix some binding errors
  - gsl: Fix some binding errors
  - gtk4: Add Gtk.INVALID_LIST_POSITION [#1151]
  - gtk4-unix-print: Switch to gir
  - gtk4: Update to 4.1.2
  - libwnck-3.0: Update to 3.36.0
  - linux: Provide Input.Event.input_event_sec/input_event_usec fields [#1152]
  - vapi: Fix a couple of attribute typos
  - webkit2gtk-4.0: Update to 2.31.91

Vala 0.48.14
============
 * Highlights:
  - Add further support for params arrays in constructors [#128]

 * Various improvements and bug fixes:
  - codegen:
    + Improve support of SimpleType struct constructors
    + Improve handling of "NoWrapper" attribute
    + Allow CCode.type_cname for classes and use get_ccode_type_name()
    + Always use G_TYPE_INSTANCE_GET_CLASS/INTERFACE for external symbols
    + Also check array type of variable argument for ref parameters
    + Don't leak array memory after it was implicitly copied
    + Use g_boxed_free in free-wrapper for heap-allocated GLib.Value
    + Don't leak GLib.Value when implicitly unboxing it
    + Don't leak memory moving heap-allocated struct to stack
    + Chain up to base struct destroy function
    + Correctly retrieve symbol_reference of nested cast expressions [#1134]
    + Strip all nested occurances of CCodeCastExpression [#1134]
    + Don't wrongly emit declaration for default-handler of signals
    + Include "string.h" for strcmp() (POSIX)
  - vala:
    + Improve detection of duplicate package source files
    + Apply stricter condition for lambda to delegate assignment
    + Don't allow disposable SimpleType structs
    + GLib.Value unboxing returns unowned value
    + Don't allow GLib.Value casting to nullable struct/simple types
    + Check type-arguments in base-types/prerequisites of class/interface [#404]
    + Capturing va_list parameters/variables is not allowed [#1136]
    + Generics value holding struct pointer requires casting on access [#347]
    + Infer needle type for "in" expression on enum [#1138]
    + Improve context check whether property is writeable on assignments
    + Include "stdlib.h" for Enum.to_string() (POSIX) [#1143]
    + Set proper source_reference for implicit "this" and "result" variables
    + Report error for invalid inner operand of unary expressions
  - codewriter: Don't write trailing ";" after body of WithStatement
  - girparser:
    + Apply "delegate_target" metadata for methods and parameters
    + Apply "destroy_notify_cname" metadata for fields
    + Apply "type_get_function" metadata for classes and inferfaces
    + Set CCode.type_cname for classes if it doesn't match our default
  - girwriter: Write instance-parameter elements [#1128]
  - girwriter: Output default handler of signals
  - libvaladoc/html: Don't sort struct fields to keep their original order
  - libvaladoc: Correctly retrieve value for Api.Class.is_compact
  - libvaladoc: Add wrapper for "agedge" of graphviz

 * Bindings:
  - Fix several bindings which lead to invalid code by using them in:
    cairo, gobject-2.0, pango, goocanvas-2.0, curses, alsa, bzlib, sqlite3,
    libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4,
    fuse, libxml-2.0
  - gdk-pixbuf-2.0: Fix Pixbuf.save_to_streamv_async()
  - gio-2.0: Fix binding of PollableOutputStream.write*_nonblocking()
  - gio-2.0,gtk+-3.0,gtk4: Drop explicit c-type attributes of va_list parameters
  - gio-2.0: Pick up missing invoker for some AppInfo/File.*() methods
  - gstreamer-1.0: Set CCode.type_id of MiniObject to G_TYPE_BOXED [#1133]
  - gtk+-2.0,javascriptcoregtk-4.0: Wrong usage of CCode.type_cname attribute
  - gtk+-3.0,gtk4: Fix some delegate return values and parameters
  - gtk4: Update to 4.0.2

Vala 0.48.13
============
 * Various improvements and bug fixes:
  - codegen:
    + Use CCodeInvalidExpression instead of place holders
    + Don't leak memory of already assigned out-parameter on error [#1123]
    + Don't leak memory on internal value comparison of property setter
    + Fix assignment of casted struct value to property [#1126]
  - vala:
    + Report an error if gio-2.0 is missing for DBus support
    + Add missing TraverseVisitor.visit_addressof_expression()
    + value_type of PointerIndirection expressions must not be owned [#1118]
    + SliceExpression need to return heap-allocated or unowned references [#1120]
    + Accept "unowned var" as type for foreach variable declaration [#152]
    + Ownership transfer of inline-allocated array is not allowed [#931]
  - tests: Use Automake’s parallel test driver to speed up running tests [#1094]
  - testrunner: A lot of simplifications

 * Bindings:
  - gio-2.0: Fix DBusSubtreeIntrospectFunc binding
  - gstreamer-1.0: Fix direction of GLib.Value typed parameters [#1014]
  - gtk4: Use correct cheader_include for wayland/x11 gdk backend [#1112]
  - gtk4: Don't rename binding for gtk_css_provider_load_from_data [#1117]
  - gtk4: Update to 4.0.1
  - webkit2gtk-4.0: Update to 2.30.3

Vala 0.48.12
============
 * Various improvements and bug fixes:
  - codegen:
    + More use of delegate_target_type and delegate_target_destroy_type
    + Reduce get_delegate_target/get_delegate_target_destroy_notify calls
    + Don't use inferred type for temp-value to access generic property [#1088]
    + Update outdated array _size_ variable of captured local-variable [#1090]
    + Report internal error for unsupported collection type in foreach
  - vala:
    + Issue an error on void initializer for local-variable
    + Allow markup-reader to accept spaces around '=' of attribute assignment
    + CodeNode.source_reference is optional, so let the API respect that
    + Use DataType.compatible() to check for string concatenation [#1100]
  - valadoc: Don't call CodeContext.pop() on empty stack [#1064]
  - libvaladoc: Don't filter-out generic type-parameters of delegates
  - libvaladoc/girimporter: Skip "docsection" elements in <namespace>
  - testrunner: Add "-Werror=return-local-addr" flag
  - manual: Update from wiki.gnome.org

 * Bindings:
  - alsa: Fix PcmDevice.set_poll_descriptors_revents() binding [#1092]
  - curses: Add Terminfo API set, function keycodes F(n) and minor changes
  - curses: Correctly use [PrintfFormat] attribute
  - glib-2.0: Add return codes to FileStream.putc/puts(), like posix
  - glib-2.0: Add GenericArray.find_custom(), variant of find_with_equal_func()
  - glib-2.0: Improve GenericArray.length property
  - gio-2.0: Fix binding of Resolver.lookup_service*()
  - gtk4: Attribute Gsk.ShaderArgsBuilder.free_to_args with DestroysInstance
  - gtk4: Update to 3.99.4+7551f85d [#1089]
  - linux: Add missing struct in cname for Spi.IocTransfer
  - posix: Declare fstat, stat, lstat and fstatat as public [#1086]
  - posix: Add freopen binding, as FILE.reopen()
  - rest-0.7: Fix ParamsIter.next() binding
  - vapi: Update GIR-based bindings

Vala 0.48.11
============
 * Various improvements and bug fixes:
  - codegen:
    + The actual struct size is required for calloc (POSIX) [#1068]
    + Don't pass CCodeFunctionCall to NULL-aware free macro
  - g-i: Fix a couple of C compiler warnings
  - libvaladoc: Fix a couple of C compiler warnings
  - testrunner: Pass --enable-checking to increase coverage, Filter external
    -0X flags to preserve current default -O0

 * Bindings:
  - gstreamer: Update from 1.18.0+ git master
  - gtk4: Don't skip LayoutManager.create_layout_child() [#1071]
  - gtk4: Update to 3.99.1+15b635d7
  - poppler-glib: Update to 20.09.0
  - vapi: Update GIR-based bindings
  - webkit2gtk-4.0: Update to 2.30.1

Vala 0.48.10
============
 * Various improvements and bug fixes:
  - tests: Don't rely on undefined use-after-free behaviour of glibc
  - Add TraverseVisitor for traversing the tree with a callback
  - Force usage of temporary variables for "tainted" member accesses [#1061]
  - vala: Move transformation of unary increment/decrement to codegen
  - vala: Set parent_node for child nodes of lambda-expression [#1062]
  - codegen: Don't append unreachable clean-up section of Block [#169] [#838]
  - codegen: Always include base_struct declaration if available [#464]
  - vala: Additionally break on ObjectCreationExpression in "tainted" check
  - vala: Add ObjectCreationExpression.to_string()
  - manual: Update from wiki.gnome.org
  - Don't use locale dependent string functions on syntax strings [#1067]
  - girparser: Additionally fallback to "glib:type-name" to retrieve the cname
  - libvaladoc/girimporter:
    + Fallback to "name" for callback
    + Fallback to "glib:type-name" for class, interface and record
    + Improve parse_symbol_doc() and don't use parse_doc()
    + Skip "attribute" elements
  - libvaladoc/gtkdoc-importer:
    + Correctly retrieve "url" from "ulink" elements
    + Don't let parse_block_taglet() return null

 * Bindings:
  - gstreamer: Update from 1.17.2+ git master
  - gtk4: Update to 3.99.1
  - gtk4: Resolve a few conflicts of methods with virtual-methods
  - pango: Update from 1.46.0
  - webkit2gtk-4.0: Update to 2.29.91

Vala 0.48.9
===========
 * Regression and bug fixes:
  - codegen: Include header for base-symbols when connecting vfuncs
  - vala:
    + Inherit CCode.returns_floating_reference attribute from base [#1053]
    + Mark tranformed member-access as qualified [#57]
  - girparser: Add support for string "feature_test_macro" metadata
  - Revert "girwriter: Use appropriate get_ccode_* functions" [#1059]

 * Bindings:
  - gio-unix-2.0: Fix "g_unix_mount_for" binding [#1052]
  - gio-2.0: Include "gio/gsettingsbackend.h" for GLib.SettingsBackend
    members [#1054]
  - goocanvas-2.0: Fix some field ownerships and types [#1057]
  - gstreamer: Update from 1.17.2+ git master
  - gtk4: Update to 3.99.0+358b698e
  - pango: Update from 1.45.4+
  - posix: Add missing "has_typedef" attribute for some delegates
  - posix: Declare WRDE_APPEND constant as public

Vala 0.48.8
===========
 * Various improvements and bug fixes:
  - codegen:
    + Handle "gtk_param_spec_expression" in get_param_spec()
    + Properly compare string if binary-expression contains string-literal
    + Inline allocated and constant arrays are never NULL
    + Check param for null before using it
    + Properly destroy elements of an inline struct array [#365]
  - vala:
    + Avoid subsequent critical caused by invalid array type for constant
    + Improve error handling of nested initializer lists
    + Don't allow "resize" invocation on variable with unowned array type [#928]
    + Property must be writable when invoking ReturnsModifiedPointer method [#1023]
    + Recursive check of assignment target to recognize constants [#944]
    + Return copy of constant type in get_value_type_for_symbol()
    + Handle parameter initializer without value-type
    + Fully qualify member-access when using-directive was used to resolve [#57]
    + Tranform instance member-access to a static one if possible [#270]
    + Improve check of expression passed to yield
    + Allow prototype access to signal with emitter
    + Check error-type accessibility of creation methods and delegates
  - girparser: Warn about conflicting signals and properties
  - girparser: Skip 'docsection' elements in <namespace>
  - girwriter:
    + Add c:identifier-prefixes to <namespace>
    + Write c:type="void" when name="none"
    + Write c:symbol-prefix on supported elements
    + Don't include symbols outside of a namespace [#241]
    + Use appropriate get_ccode_* functions
  - libvaladoc: Support exporting the `class` modifier on methods and fields
  - Disable deprecation warnings when checking bindings
  - tests: Fix "methods/extern" test with -Werror=address and gcc 5.4.0

 * Bindings:
   - glib-2.0: Add AtomicUint, an alternation of AtomicInt for uint [#915]
   - gstreamer: Update from 1.17.2+ git master
   - gtk+-3.0: Update to 3.24.21+ffe2df7b
   - gtk+-3.0: Resolve conflicts of signals with properties
   - gtk4: Resolve conflict of DropTarget.drop signal with property [#1033]
   - gtk4: Improve Gtk.ParamSpecExpression binding
   - gtk4: Fix binding of CClosureExpression ctor [#1024]
   - gtk4,gtk4-unix-print: Update to 3.98.5+23dcf36e
   - webkit2gtk-4.0: Update to 2.29.4

Vala 0.48.7
===========
 * Various improvements and bug fixes:
  - codegen:
    + Improve array-dup-wrapper for empty arrays [#999]
    + Don't call get_ccode_finish_instance() with non-async methods
    + Cast initializer-list to struct for non-constant/-array assignment [#1013]
    + Consistently use get_ccode_lower_case_prefix() for function names [#1008]
  - vala:
    + Correctly handle qualified struct type in initializer list [#1004]
    + Reduce calls of CodeContext.get()
    + Fix value-type for ArrayCreationExpression used as argument [#1009]
    + Improve parameter check of "get" method used for foreach [#1017]
    + Don't carry floating reference into unknown target type expression [#1018]
  - girparser: Actually respect given cprefix metadata for enumerations
  - girwriter: Append symbol-attributes to callback field [#1006]
  - parser: Avoid mitigation for missing token if it follows DOT or
    DOUBLE_COLON [#987]
  - libvaladoc/girimporter: Skip "function-macro" elements
  - build: Update git-version-gen to latest upstream
  - tests: Build typelib if g-ir-compiler is available

 * Bindings:
  - gstreamer-audio-1.0: Adjustments for Gst.Audio.Sink class extension
  - gstreamer: Update from 1.17.1+ git master
  - gtk+-3.0: Deprecated abstract methods are not required to be implemented
  - gtk4: Prefix value names of PaintableFlags with "STATIC_" [#1011]
  - gtk4: Mark optional methods of Gdk.Paintable interface as virtual [#1021]
  - gtk4: Update to 3.98.5+fca2ba96
  - harfbuzz-gobject: Update to 2.6.8
  - pango: Update from 1.45.2
  - webkit2gtk-4.0: Update to 2.29.2
  - vapi: Update GIR-based bindings

Revision history for this message
Rico Tzschichholz (ricotz) wrote :

Source package for sponsoring is located here:
https://people.ubuntu.com/~ricotz/sponsoring/vala_0.48.9-0ubuntu1.dsc

Plain repack of 0.48.9-1 with adjusted version and maintainer field.

Built binary packages available at https://launchpad.net/~ricotz/+archive/ubuntu/vala-sru/+sourcepub/11522985/+listing-archive-extra

Revision history for this message
Robie Basak (racb) wrote :

Thank you for preparing this update.

The SRU team is currently looking to clarify what is and isn't included in the standing GNOME microrelease exception.

What bothers me about vala is that its nature means that regressions may remain latent until reverse build dependencies are updated, so the cost of a regression in vala is higher than normal.

The SRU team will need to get back to you on this.

Removing the ~ubuntu-sponsors subscription as I see this is in the SRU queue now.

Revision history for this message
Robie Basak (racb) wrote :

Discussion here: https://discourse.ubuntu.com/t/scope-of-gnome-mru/18041

I consider this SRU blocked until that discussion is concluded.

Revision history for this message
Robie Basak (racb) wrote :

Following discussion, the SRU team has concluded that Vala is not considered part of the standing GNOME microrelease exception. If you'd still like to update Vala in Focal, please justify this request on its own merits instead of relying on GNOME's standing exception. I'd also expect a plan to rebuild reverse dependencies, since without that a Vala update is mostly useless, and we risk latent regressions in case those reverse dependencies are ever rebuilt in the future.

Changed in vala (Ubuntu):
status: New → Incomplete
Revision history for this message
Rico Tzschichholz (ricotz) wrote :

I see, I going to use a PPA for rebuilding reverse dependencies to provide this kind of feedback.

Doing so has shown all kind of build issues *not* related to vala in the past, while updating 0.40.x in 18.04/Bionic.

I am going to update this bug to target the 0.48.10 release soon.

description: updated
summary: - [SRU] Update to vala 0.48.9 in focal
+ [SRU] Update to vala 0.48.10 in focal
summary: - [SRU] Update to vala 0.48.10 in focal
+ [SRU] Update to vala 0.48.11 in focal
description: updated
description: updated
summary: - [SRU] Update to vala 0.48.11 in focal
+ [SRU] Update to vala 0.48.12 in focal
description: updated
description: updated
summary: - [SRU] Update to vala 0.48.12 in focal
+ [SRU] Update to vala 0.48.13 in focal
summary: - [SRU] Update to vala 0.48.13 in focal
+ [SRU] Update to vala 0.48.14 in focal
description: updated
summary: - [SRU] Update to vala 0.48.14 in focal
+ [SRU] Update to vala 0.48.16 in focal
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote : Re: [SRU] Update to vala 0.48.16 in focal

[Expired for vala (Ubuntu) because there has been no activity for 60 days.]

Changed in vala (Ubuntu):
status: Incomplete → Expired
Changed in vala (Ubuntu):
status: Expired → Incomplete
Revision history for this message
Princeton Ferro (prince781) wrote :

Just chiming in here that tools like the Vala Language Server (https://github.com/Prince781/vala-language-server) depend on recent bugfixes in Vala. Going through with this proposal would allow people to develop Vala software on Focal without having to rely on PPAs.

summary: - [SRU] Update to vala 0.48.16 in focal
+ [SRU] Update to vala 0.48.17 in focal
summary: - [SRU] Update to vala 0.48.17 in focal
+ [SRU] Update to vala 0.48.18 in focal
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for vala (Ubuntu) because there has been no activity for 60 days.]

Changed in vala (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.