GithubHelp home page GithubHelp logo

vala-extra-vapis's Introduction

This repository provides Vala bindings to various libraries which do not provide their own bindings, and for which valac does not provide bindings.

Rationale

In most cases it is preferable for libraries to ship their own bindings (some of the reasons why, as well as information on how to do so, are at Vala Binding's Upstream Guide. Some libraries, however, are unable or unwilling to do so. Other bindings are distributed with valac, but generally that is reserved for relatively popular libraries with well structured VAPIs and have a fairly strong aversion to breaking backwards compatibility.

Bindings included in this repository are meant to be copied into your project or used as a git submodule or subtree, and are not intended to be installed system-wide or packaged by distributions. This means that projects choose when to upgrade bindings instead of having the bindings upgraded for them when a new version of Vala is installed, which means backwards incompatible changes are allowed in this repository.

Unlike valac, where submissions are carefully screened before inclusion, the barrier to entry for this repository is quite low. Pretty much the only thing which would preclude inclusion is a licensing issue. Contributors need not commit to maintaining the bindings, preserving backwards compatibility, testing, etc. With that in mind, this repository provides a good stable, central location for bindings.

Usage

Because the bindings shipped in this repository provide no backwards-compatibility promises, it is designed to be used as a git submodule. If that is not acceptable (for example, if you don't use git), it is recommended you simply copy the bindings you need into your source tree.

Submitting Bindings For Inclusion

If you have bindings which you would like to see housed in this repository, simply submit an issue to Gitlab:

https://gitlab.gnome.org/GNOME/vala-extra-vapis

vala-extra-vapis's People

Contributors

arteymix avatar astavale avatar autumngray avatar benwaffle avatar desiderantes avatar dlech avatar edoput avatar fabricet avatar flobrosch avatar giuliopaci avatar grindhold avatar hannesschulze avatar hikawa avatar kosmolot avatar lgunsch avatar nemequ avatar nmelnick avatar ony avatar paroga avatar paulorjmx avatar richard-w avatar ricotz avatar robert-ancell avatar robinhellen avatar sre avatar void-995 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vala-extra-vapis's Issues

portaudio.vapi

I tried to use portaudio.vapi and found next problems:

  1. on my fedora package is named potraudio-2.0
  2. there was no constructor for PortAudio.Stream.Parameters and I made it struct
  3. HostApiInfo and DeviceInfo must be unowned

Pull request #7

Local install of repository workflow

The current README makes it clear this repository is not intended for packaging or a system wide install. Because Vala uses Environment.get_system_data_dirs () to find the search directories for VAPIs then it is possible to create a workflow with a local install like:

cd ~/.local/share
git clone https://github.com/nemequ/vala-extra-vapis vala/vapi
XDG_DATA_DIRS=~/.local/share/:/usr/local/share/:/usr/share/
export XDG_DATA_DIRS

Then the VAPIs in this repository are found by valac. The setting and export of XDG_DATA_DIRS can be added to .bash_profile to make it persist across re-boots.

I find this useful for editing the VAPIs. The local git clone is of my own GitHub clone. This makes it easy to branch locally, push changes back to my GitHub clone and then create a pull request to the main repository.

I'm hoping this might encourage more contributions back to the repository and think it should be in the README somewhere. Does anyone else think that is a good idea and are there any other uses for such a workflow?

build fails

1)build docs fail:

Running Sphinx v1.2.3
loading pickled environment... not yet created

Theme error:
no theme named 'sphinx_rtd_theme' found (missing theme.conf?)

Waf: Leaving directory `/opt/projects/valum/build'
Build failed
-> task in 'app' failed (exit status 1):
{task 140638660706192: valac app.vala -> app.c}
''
-> task in 'app' failed (exit status 1):
{task 140638660769040: valac app.vala -> app.c}
''
-> task in '' failed (exit status 1):
{task 140638660703632: ${SPHINXBUILD} -b html ../docs docs gnu-lgpl-v3.0.rst,application.rst,ctpl.rst,getting-started.rst,hacking.rst,index.rst,installation.rst,module.rst,configuration.rst,index.rst,json.rst,persistence.rst,scripting.rst,static-resource.rst,redirection-and-error.rst,route.rst,router.rst,connection.rst,converters.rst,cookies.rst,filters.rst,index.rst,request.rst,response.rst,cgi.rst,fastcgi.rst,index.rst,scgi.rst,soup.rst -> }
' /usr/bin/sphinx-build -b html ../docs docs '

2)build example fail:

In file included from examples/markdown/app.c:7:0:
/opt/projects/valum/build/static/valum.h:15:17: fatal error: gee.h: no such file or directory

Cairo XcbSurface constructor's VisualType parameter should be pointer

I tried using XcbSurface today but C compiler complained that could not convert VisualType to VisualType*.

So I'm now using a local vapi successfully and I have declared the constructor like this :
public XcbSurface (Xcb.Connection connection, Xcb.Drawable drawable, Xcb.VisualType* visual, int width, int height);

Possibly not the best workaround.
libcairo version : 1.13.0~20140204-0ubuntu1

Bindings for GLESv2 and GLFW3

I'm working on some project that needs GLESv2 on desktop/mobile OSes, and decided to use Vala. Unfortunately I've not found any kind of bindings for GLES and GLFW3, so I wrote some.

Here is the link for anyone who would like to use bindings for GLESv2 and GLFW3: https://github.com/void-995/vala-vapi

On the mailing list Steven Oliver suggested to contribute my VAPI files to this repository.

Any kind of participation is appreciated.

Thank you for your time, and keep Vala moving.

Double free/Segfault + false free_function in libcurl.vapi

Hi,

I encountered two problem when using the Curl.SList-object in libcurl.vapi.

  • The free_function for SList is false (patch 1)
  • When appending a string to a SList the SList gets freed (patch 2)

Links to patches:
Patch 1: https://cloud.adamanta.de/public.php?service=files&t=1e229c9e1604184eba4b153e1bc04f84
Patch 2: https://cloud.adamanta.de/public.php?service=files&t=2b5756ad571125418d74bc02aad33e68
Testcase: https://cloud.adamanta.de/public.php?service=files&t=0ad0453dfe0de92c1d410a790255d91f

Compile testcase with: "valac slist-testcase.vala libcurl.vapi -X -lcurl --pkg posix"

Change README to Markdown?

A Markdown readme is easier to read on GitHub. Is it a good idea to rename README to README.md or duplicate the README as README.md?

gcrypt failure

While trying to compile vala code which uses GCrypt.Hash.open and GCrypt.ErrorCode I got error that "unknown type name ‘gpg_error_code_t’"
Adding gpg-error.vapi in addition to gcrypt.vapi doesn't seem to have any effect.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.