{"id":13420457,"url":"https://github.com/mypaint/libmypaint","last_synced_at":"2025-04-07T05:07:54.538Z","repository":{"id":50193541,"uuid":"20728367","full_name":"mypaint/libmypaint","owner":"mypaint","description":"libmypaint, a.k.a. \"brushlib\", is a library for making brushstrokes which is used by MyPaint and other projects.","archived":false,"fork":false,"pushed_at":"2024-09-11T22:29:58.000Z","size":3275,"stargazers_count":308,"open_issues_count":23,"forks_count":87,"subscribers_count":32,"default_branch":"master","last_synced_at":"2024-10-29T18:47:24.416Z","etag":null,"topics":["brush","c","graphics","libmypaint","library","mypaint","painting"],"latest_commit_sha":null,"homepage":"http://mypaint.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mypaint.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-06-11T14:31:54.000Z","updated_at":"2024-10-18T20:35:55.000Z","dependencies_parsed_at":"2022-07-30T19:08:13.326Z","dependency_job_id":"34c8c85b-5ffd-41ea-a0f9-ecc854d8b4cb","html_url":"https://github.com/mypaint/libmypaint","commit_stats":{"total_commits":1028,"total_committers":188,"mean_commits":5.468085106382978,"dds":0.7869649805447471,"last_synced_commit":"4d4c7f84ddbbc085f9d4ca47f2dab3247a57c5fb"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mypaint%2Flibmypaint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mypaint%2Flibmypaint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mypaint%2Flibmypaint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mypaint%2Flibmypaint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mypaint","download_url":"https://codeload.github.com/mypaint/libmypaint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294516,"owners_count":20915340,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brush","c","graphics","libmypaint","library","mypaint","painting"],"created_at":"2024-07-30T22:01:34.073Z","updated_at":"2025-04-07T05:07:54.510Z","avatar_url":"https://github.com/mypaint.png","language":"C","funding_links":[],"categories":["TODO scan for Android support in followings","C"],"sub_categories":[],"readme":"# libmypaint - MyPaint brush engine library\n\n[![Translation status](https://hosted.weblate.org/widgets/mypaint/-/libmypaint/svg-badge.svg)](https://hosted.weblate.org/engage/mypaint/?utm_source=widget)\n[![Travis Build Status](https://travis-ci.org/mypaint/libmypaint.svg?branch=master)](https://travis-ci.org/mypaint/libmypaint)\n[![Appveyor Build Status](https://ci.appveyor.com/api/projects/status/github/mypaint/libmypaint?branch=master\u0026svg=true)](https://ci.appveyor.com/project/jonnor/libmypaint)\n\nThis is the brush library used by MyPaint. A number of other painting\nprograms use it too.\n\nLicense: ISC, see [COPYING](./COPYING) for details.\n\n## Dependencies\n\n* All configurations and builds:\n  - [json-c](https://github.com/json-c/json-c/wiki) (\u003e= 0.11)\n  - C compiler, `make` etc.\n* Most configurations (all except `--disable-introspection --without-glib`):\n  - [GObject-Introspection](https://live.gnome.org/GObjectIntrospection)\n  - [GLib](https://wiki.gnome.org/Projects/GLib)\n* When building from `git` (developer package names vary by distribution):\n  - [Python](http://python.org/)\n  - [autotools](https://en.wikipedia.org/wiki/GNU_Build_System)\n  - [intltool](https://freedesktop.org/wiki/Software/intltool/)\n  - [gettext](https://www.gnu.org/software/gettext/gettext.html)\n* For `--enable-gegl` (GIMP *does not* require this):\n  - [GEGL + BABL](http://gegl.org/)\n\n### Install dependencies (Debian and derivatives)\n\nOn recent Debian-like systems, you can type the following\nto get started with a standard configuration:\n\n    # apt install -y build-essential\n    # apt install -y libjson-c-dev libgirepository1.0-dev libglib2.0-dev\n\nWhen building from git:\n\n    # apt install -y python autotools-dev intltool gettext libtool\n    \nYou might also try using your package manager:\n\n    # apt build-dep mypaint # will get additional deps for MyPaint (GUI)\n    # apt build-dep libmypaint  # may not exist; included in mypaint\n\n### Install dependencies (Red Hat and derivatives)\n\nThe following works on a minimal CentOS 7 installation:\n\n    # yum install -y gcc gobject-introspection-devel json-c-devel glib2-devel\n\nWhen building from git, you'll want to add:\n\n    # yum install -y git python autoconf intltool gettext libtool\n    \nYou might also try your package manager:\n\n    # yum builddep libmypaint\n\n### Install dependencies (OpenSUSE)\n\nWorks with a fresh OpenSUSE Tumbleweed Docker image:\n\n    # zypper install gcc13 gobject-introspection-devel libjson-c-devel glib2-devel\n\nWhen building from git:\n\n    # zypper install git python311 autoconf intltool gettext-tools libtool\n\nPackage manager:\n\n    # zypper install libmypaint0\n\n## Build and install\n\nMyPaint and libmypaint benefit dramatically from autovectorization and other compiler optimizations.\nYou may want to set your CFLAGS before compiling (for gcc):\n\n    $ export CFLAGS='-Ofast -ftree-vectorize -fopt-info-vec-optimized -march=native -mtune=native -funsafe-math-optimizations -funsafe-loop-optimizations'\n\nThe traditional setup works just fine.\n\n    $ ./autogen.sh    # Only needed when building from git.\n    $ ./configure\n    # make install\n    # ldconfig\n\n### Maintainer mode\n\nWe don't ship a `configure` script in our git repository. If you're\nbuilding from git, you have to kickstart the build environment with:\n\n    $ git clone https://github.com/mypaint/libmypaint.git\n    $ cd libmypaint\n    $ ./autogen.sh\n\nThis script generates `configure` from `configure.ac`, after running a\nfew checks to make sure your build environment is broadly OK. It also\nregenerates certain important generated headers if they need it.\n\nFolks building from a release tarball don't need to do this: they will\nhave a `configure` script from the start.\n\n### Configure\n\n    $ ./configure\n    $ ./configure --prefix=/tmp/junk/example\n\nThere are several MyPaint-specific options.\nThese can be shown by running\n\n    $ ./configure --help\n\n### Build\n\n    $ make\n\nOnce MyPaint is built, you can run the test suite and/or install it.\n\n### Test\n\n    $ make check\n\nThis runs all the unit tests.\n\n### Install\n\n    # make install\n\nUninstall libmypaint with `make uninstall`.\n\n### Check availability\n\nMake sure that pkg-config can see libmypaint before trying to build with it.\n\n    $ pkg-config --list-all | grep -i mypaint\n\nIf it's not found, you'll need to add the relevant pkgconfig directory to\nthe `pkg-config` search path. For example, on CentOS, with a default install:\n\n    # sh -c \"echo 'PKG_CONFIG_PATH=/usr/local/lib/pkgconfig' \u003e\u003e/etc/environment\"\n\nMake sure ldconfig can see libmypaint as well\n\n    # ldconfig -p |grep -i libmypaint\n\nIf it's not found, you'll need to add the relevant lib directory to\nthe LD_LIBRARY_PATH:\n    \n    $ export LD_LIBRARY_PATH=/usr/local/lib\n    # sh -c \"echo 'LD_LIBRARY_PATH=/usr/local/lib' \u003e\u003e/etc/environment\n\nAlternatively, you may want to enable /usr/local for libraries.  Arch and Redhat derivatives:\n\n    # sh -c \"echo '/usr/local/lib' \u003e /etc/ld.so.conf.d/usrlocal.conf\"\n    # ldconfig\n\n## Contributing\n\nThe MyPaint project welcomes and encourages participation by everyone.\nWe want our community to be skilled and diverse,\nand we want it to be a community that anybody can feel good about joining.\nNo matter who you are or what your background is, we welcome you.\n\nPlease note that MyPaint is released with a\n[Contributor Code of Conduct](CODE_OF_CONDUCT.md).\nBy participating in this project you agree to abide by its terms.\n\nPlease see the file [CONTRIBUTING.md](CONTRIBUTING.md)\nfor details of how you can begin contributing.\n\n## Making releases\n\nThe distribution release can be generated with:\n\n    $ make dist\n\nAnd it should be checked before public release with:\n\n    $ make distcheck\n\n## Localization\n\nContribute translations here: \u003chttps://hosted.weblate.org/engage/mypaint/\u003e.\n\nThe list of languages is maintained in [po/LINGUAS](po/LINGUAS).\nCurrently this file lists all the languages we have translations for.\nIt can be regenerated with:\n\n    $ ls po/*.po | sed 's$^.*po/\\([^.]*\\).po$\\1$' | sort \u003e po/LINGUAS\n\nYou can also disable languages by removing them from the list if needed.\n\nA list of files where localizable strings can be found is maintained\nin `po/POTFILES.in`.\n\n### Strings update\n\nYou can update the .po files when translated strings in the code change\nusing:\n\n    $ cd po \u0026\u0026 make update-po\n\nWhen the results of this are pushed, Weblate translators will see the\nnew strings immediately.\n\n## Documentation\n\nFurther documentation can be found in the libmypaint wiki:\n\u003chttps://github.com/mypaint/libmypaint/wiki\u003e.\n\n\n## Software using libmypaint\n\n* [MyPaint](https://github.com/mypaint/mypaint)\n* [GIMP](https://gitlab.gnome.org/GNOME/gimp/)\n* [OpenToonz](https://github.com/opentoonz/opentoonz/)\n* [enve](https://github.com/MaurycyLiebner/enve/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmypaint%2Flibmypaint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmypaint%2Flibmypaint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmypaint%2Flibmypaint/lists"}