Code Monkey home page Code Monkey logo

glibmm-feedstock's Introduction

About glibmm-feedstock

Feedstock license: BSD-3-Clause

Home: http://www.gtkmm.org

Package license: LGPL-2.1-or-later

Summary: This is glibmm, a C++ API for parts of glib that are useful for C++.

Current build status

Travis linux
Azure
VariantStatus
linux_64 variant
linux_aarch64 variant
linux_ppc64le variant
osx_64 variant
osx_arm64 variant
win_64 variant

Current release info

Name Downloads Version Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms

Installing glibmm

Installing glibmm from the conda-forge channel can be achieved by adding conda-forge to your channels with:

conda config --add channels conda-forge
conda config --set channel_priority strict

Once the conda-forge channel has been enabled, glibmm, glibmm-2.68 can be installed with conda:

conda install glibmm glibmm-2.68

or with mamba:

mamba install glibmm glibmm-2.68

It is possible to list all of the versions of glibmm available on your platform with conda:

conda search glibmm --channel conda-forge

or with mamba:

mamba search glibmm --channel conda-forge

Alternatively, mamba repoquery may provide more information:

# Search all versions available on your platform:
mamba repoquery search glibmm --channel conda-forge

# List packages depending on `glibmm`:
mamba repoquery whoneeds glibmm --channel conda-forge

# List dependencies of `glibmm`:
mamba repoquery depends glibmm --channel conda-forge

About conda-forge

Powered by NumFOCUS

conda-forge is a community-led conda channel of installable packages. In order to provide high-quality builds, the process has been automated into the conda-forge GitHub organization. The conda-forge organization contains one repository for each of the installable packages. Such a repository is known as a feedstock.

A feedstock is made up of a conda recipe (the instructions on what and how to build the package) and the necessary configurations for automatic building using freely available continuous integration services. Thanks to the awesome service provided by Azure, GitHub, CircleCI, AppVeyor, Drone, and TravisCI it is possible to build and upload installable packages to the conda-forge anaconda.org channel for Linux, Windows and OSX respectively.

To manage the continuous integration and simplify feedstock maintenance conda-smithy has been developed. Using the conda-forge.yml within this repository, it is possible to re-render all of this feedstock's supporting files (e.g. the CI configuration files) with conda smithy rerender.

For more information please check the conda-forge documentation.

Terminology

feedstock - the conda recipe (raw material), supporting scripts and CI configuration.

conda-smithy - the tool which helps orchestrate the feedstock. Its primary use is in the construction of the CI .yml files and simplify the management of many feedstocks.

conda-forge - the place where the feedstock and smithy live and work to produce the finished article (built conda distributions)

Updating glibmm-feedstock

If you would like to improve the glibmm recipe or build a new package version, please fork this repository and submit a PR. Upon submission, your changes will be run on the appropriate platforms to give the reviewer an opportunity to confirm that the changes result in a successful build. Once merged, the recipe will be re-built and uploaded automatically to the conda-forge channel, whereupon the built conda packages will be available for everybody to install and use from the conda-forge channel. Note that all branches in the conda-forge/glibmm-feedstock are immediately built and any created packages are uploaded, so PRs should be based on branches in forks and branches in the main repository should only be used to build distinct package versions.

In order to produce a uniquely identifiable distribution:

  • If the version of a package is not being increased, please add or increase the build/number.
  • If the version of a package is being increased, please remember to return the build/number back to 0.

Feedstock Maintainers

glibmm-feedstock's People

Contributors

beckermr avatar chrisburr avatar conda-forge-admin avatar conda-forge-curator[bot] avatar github-actions[bot] avatar isuruf avatar regro-cf-autotick-bot avatar scopatz avatar tschoonj avatar xhochy avatar

Watchers

 avatar  avatar  avatar

glibmm-feedstock's Issues

Possible ABI incompatilbility with glibmm>=2.52 ?

Howdy glibmm maintainers. There is a good chance that I am doing something wrong, as I have limited knowledge of these things, but I am running into linking errors, which I think are related to an ABI incompatibility, when trying to compile a simple program against glibmm 2.52.1 or 2.58.1, installed from conda-forge. Downgrading to glibmm 2.48.1 resolves the problem.

I've managed to come up with a minimal failing example, which I demonstrate below. I came across this problem while trying to compile some code against libxml++ - I actually have no experience working with glib/glibmm.

In full, I am creating an environment like so:

➜  conda create -y -c conda-forge -p ./env "cxx-compiler"
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /.../env

  added / updated specs:
    - cxx-compiler


The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-0_gnu
  binutils           conda-forge/linux-64::binutils-2.34-h2122c62_9
  binutils_impl_lin~ conda-forge/linux-64::binutils_impl_linux-64-2.34-h53a641e_7
  binutils_linux-64  conda-forge/linux-64::binutils_linux-64-2.34-hc952b39_20
  c-compiler         conda-forge/linux-64::c-compiler-1.1.1-h516909a_0
  cxx-compiler       conda-forge/linux-64::cxx-compiler-1.1.1-hc9558a2_0
  gcc_impl_linux-64  conda-forge/linux-64::gcc_impl_linux-64-7.5.0-hd420e75_6
  gcc_linux-64       conda-forge/linux-64::gcc_linux-64-7.5.0-h09487f9_20
  gxx_impl_linux-64  conda-forge/linux-64::gxx_impl_linux-64-7.5.0-hdf63c60_6
  gxx_linux-64       conda-forge/linux-64::gxx_linux-64-7.5.0-h09487f9_20
  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.34-h53a641e_7
  libgcc-ng          conda-forge/linux-64::libgcc-ng-9.3.0-h24d8f2e_11
  libgomp            conda-forge/linux-64::libgomp-9.3.0-h24d8f2e_11
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-9.3.0-hdf63c60_11


Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate /.../env
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Activating the environment and installing some additional packages:

Note that the library I am trying to compiler requires sigcpp-2.0, so I am explicitly installing that, otherwise I will end up with sigcpp-3.0.

➜  source activate ./env
(/.../env) ➜ conda install -y -c conda-forge sigcpp-2.0 glib "glibmm=2.52.*"
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /.../env

  added / updated specs:
    - glib
    - glibmm=2.52
    - sigcpp-2.0


The following NEW packages will be INSTALLED:

  gettext            conda-forge/linux-64::gettext-0.19.8.1-hc5be6a0_1002
  glib               conda-forge/linux-64::glib-2.56.2-had28632_1001
  glibmm             conda-forge/linux-64::glibmm-2.52.1-h9fafe60_1000
  libffi             conda-forge/linux-64::libffi-3.2.1-he1b5a44_1007
  libiconv           conda-forge/linux-64::libiconv-1.15-h516909a_1006
  libsigcpp          conda-forge/linux-64::libsigcpp-2.10.3-0
  pcre               conda-forge/linux-64::pcre-8.44-he1b5a44_0
  sigcpp-2.0         conda-forge/linux-64::sigcpp-2.0-2.10.3-he1b5a44_0
  xz                 conda-forge/linux-64::xz-5.2.5-h516909a_1
  zlib               conda-forge/linux-64::zlib-1.2.11-h516909a_1006


Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(/.../env) ➜ 

Now I'm using this test program:

#include "glibmm.h"

#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {

  string        s  = "hello!";
  Glib::ustring gs = Glib::locale_to_utf8(s);

  cout << s << endl;
  cout << gs << endl;

  return 0;
}

and trying to compile it like so:

(/.../env) ➜  g++ -o main main.cxx \
  -D_GLIBCXX_USE_CXX11_ABI=0 \
  -I$CONDA_PREFIX/include/sigc++-2.0 \
  -I$CONDA_PREFIX/include/glib-2.0 \
  -I$CONDA_PREFIX/include/glibmm-2.4 \
  -I$CONDA_PREFIX/lib/sigc++-2.0/include/ \
  -I$CONDA_PREFIX/lib/glib-2.0/include/ \
  -I$CONDA_PREFIX/lib/glibmm-2.4/include/ \
  -L$CONDA_PREFIX/lib \
  -lglibmm-2.4 \
  -lglib-2.0

/.../env/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.5.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: /tmp/ccCgAlWo.o: in function `main':
main.cxx:(.text+0x4e): undefined reference to `Glib::locale_to_utf8(std::string const&)'
collect2: error: ld returned 1 exit status
(/.../env) ➜  

Now, if I downgrade glibmm to 2.48.1:

(/.../env) ➜  conda install -y -c conda-forge "glibmm=2.48.*"
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /.../env

  added / updated specs:
    - glibmm=2.48


The following packages will be DOWNGRADED:

  glibmm                               2.52.1-h9fafe60_1000 --> 2.48.1-3


Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(/.../env) ➜ 

compilation now succeeds:

(/.../env) ➜  g++ -o main main.cxx \
  -D_GLIBCXX_USE_CXX11_ABI=0 \
  -I$CONDA_PREFIX/include/sigc++-2.0 \
  -I$CONDA_PREFIX/include/glib-2.0 \
  -I$CONDA_PREFIX/include/glibmm-2.4 \
  -I$CONDA_PREFIX/lib/sigc++-2.0/include/ \
  -I$CONDA_PREFIX/lib/glib-2.0/include/ \
  -I$CONDA_PREFIX/lib/glibmm-2.4/include/ \
  -L$CONDA_PREFIX/lib \
  -lglibmm-2.4 \
  -lglib-2.0

In file included from /.../env/include/glibmm-2.4/glibmm/containerhandle_shared.h:24:0,
                 from /.../env/include/glibmm-2.4/glibmm/arrayhandle.h:23,
                 from /.../env/include/glibmm-2.4/glibmm.h:93,
                 from main.cxx:2:
/.../env/include/glibmm-2.4/glibmm/variant.h:582:55: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
    static V_CastTo cast_dynamic(const VariantBase& v) throw(std::bad_cast);
                                                       ^~~~~
/.../env/include/glibmm-2.4/glibmm/variant.h:629:1: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 throw(std::bad_cast)
 ^~~~~
/.../env/include/glibmm-2.4/glibmm/variant.h:885:1: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 throw(std::bad_cast);
 ^~~~~
/.../env/include/glibmm-2.4/glibmm/variant.h:1068:1: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 throw(std::bad_cast);
 ^~~~~
/.../env/include/glibmm-2.4/glibmm/variant.h:1125:1: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
 throw(std::bad_cast);
 ^~~~~
(/.../env) ➜  ./main
hello!
hello!
(/.../env) ➜ 

Here is the output of conda info (with no environment activated):

     active environment : None
            shell level : 0
       user config file : /home/paulmc/.condarc
 populated config files :
          conda version : 4.8.3
    conda-build version : 3.19.2
         python version : 3.7.6.final.0
       virtual packages : __glibc=2.27
       base environment : /home/paulmc/miniconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /home/paulmc/miniconda3/pkgs
                          /home/paulmc/.conda/pkgs
       envs directories : /home/paulmc/miniconda3/envs
                          /home/paulmc/.conda/envs
               platform : linux-64
             user-agent : conda/4.8.3 requests/2.24.0 CPython/3.7.6 Linux/4.15.0-1091-oem ubuntu/18.04.4 glibc/2.27
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Here is the output of conda list, with glibmm 2.52.1 installed (with which I cannot compile my program):

# packages in environment at /.../env:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       0_gnu    conda-forge
binutils                  2.34                 h2122c62_9    conda-forge
binutils_impl_linux-64    2.34                 h53a641e_7    conda-forge
binutils_linux-64         2.34                hc952b39_20    conda-forge
c-compiler                1.1.1                h516909a_0    conda-forge
cxx-compiler              1.1.1                hc9558a2_0    conda-forge
gcc_impl_linux-64         7.5.0                hd420e75_6    conda-forge
gcc_linux-64              7.5.0               h09487f9_20    conda-forge
gettext                   0.19.8.1          hc5be6a0_1002    conda-forge
glib                      2.56.2            had28632_1001    conda-forge
glibmm                    2.52.1            h9fafe60_1000    conda-forge
gxx_impl_linux-64         7.5.0                hdf63c60_6    conda-forge
gxx_linux-64              7.5.0               h09487f9_20    conda-forge
ld_impl_linux-64          2.34                 h53a641e_7    conda-forge
libffi                    3.2.1             he1b5a44_1007    conda-forge
libgcc-ng                 9.3.0               h24d8f2e_11    conda-forge
libgomp                   9.3.0               h24d8f2e_11    conda-forge
libiconv                  1.15              h516909a_1006    conda-forge
libsigcpp                 2.10.3                        0    conda-forge
libstdcxx-ng              9.3.0               hdf63c60_11    conda-forge
pcre                      8.44                 he1b5a44_0    conda-forge
sigcpp-2.0                2.10.3               he1b5a44_0    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
zlib                      1.2.11            h516909a_1006    conda-forge

And here is the output of conda list with glibmm 2.48.1 installed (with which I can compile my program):

# packages in environment at /.../env:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       0_gnu    conda-forge
binutils                  2.34                 h2122c62_9    conda-forge
binutils_impl_linux-64    2.34                 h53a641e_7    conda-forge
binutils_linux-64         2.34                hc952b39_20    conda-forge
c-compiler                1.1.1                h516909a_0    conda-forge
cxx-compiler              1.1.1                hc9558a2_0    conda-forge
gcc_impl_linux-64         7.5.0                hd420e75_6    conda-forge
gcc_linux-64              7.5.0               h09487f9_20    conda-forge
gettext                   0.19.8.1          hc5be6a0_1002    conda-forge
glib                      2.56.2            had28632_1001    conda-forge
glibmm                    2.48.1                        3    conda-forge
gxx_impl_linux-64         7.5.0                hdf63c60_6    conda-forge
gxx_linux-64              7.5.0               h09487f9_20    conda-forge
ld_impl_linux-64          2.34                 h53a641e_7    conda-forge
libffi                    3.2.1             he1b5a44_1007    conda-forge
libgcc-ng                 9.3.0               h24d8f2e_11    conda-forge
libgomp                   9.3.0               h24d8f2e_11    conda-forge
libiconv                  1.15              h516909a_1006    conda-forge
libsigcpp                 2.10.3                        0    conda-forge
libstdcxx-ng              9.3.0               hdf63c60_11    conda-forge
pcre                      8.44                 he1b5a44_0    conda-forge
sigcpp-2.0                2.10.3               he1b5a44_0    conda-forge
xz                        5.2.5                h516909a_1    conda-forge
zlib                      1.2.11            h516909a_1006    conda-forge

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.