libmypaint/libmypaint-1.3.0-versioning.patch

269 lines
11 KiB
Diff

Combines the following two patches adjusted to work with libmypaint 1.3
https://github.com/mypaint/libmypaint/commit/0b31421ffbfb5f4a1c68ceeafa292c6ff08e949c
https://github.com/mypaint/libmypaint/commit/08c4236d4c0e871bf6c29f2e42cafd55d1f361ce
This will allow side-by-side installations of different libmypaint builds
at the level of the minor version number.
diff -Naur ./libmypaint-1.3.0.orig/configure.ac ./libmypaint-1.3.0/configure.ac
--- ./libmypaint-1.3.0.orig/configure.ac 2016-12-01 17:47:14.000000000 -0500
+++ ./libmypaint-1.3.0/configure.ac 2017-07-24 10:54:57.297918118 -0400
@@ -1,27 +1,50 @@
# AC_OPENMP requires autoconf >= 2.62.
AC_PREREQ(2.62)
+
+## Canonical version number components ##
+
# API version: see https://github.com/mypaint/libmypaint/wiki/Versioning
+# See http://semver.org/ for what this means.
+
m4_define([libmypaint_api_major], [1])
m4_define([libmypaint_api_minor], [3])
m4_define([libmypaint_api_micro], [0])
m4_define([libmypaint_api_prerelease], []) # may be blank
-# The platform version is "major.minor" only.
-# The full version is "major.minor.micro[-prerelease]".
-# ABI version see: https://autotools.io/libtool/version.html
+# ABI version. Changes independently of API version.
+# See: https://autotools.io/libtool/version.html
# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+# The rules are fiddly, and are summarized here.
+
m4_define([libmypaint_abi_revision], [0]) # increment on every release
m4_define([libmypaint_abi_current], [0]) # inc when add/remove/change interfaces
m4_define([libmypaint_abi_age], [0]) # inc only if changes backward compat
-# Derivative version macros
+
+## Derivative version macros ##
+
+# The full version is "major.minor.micro[-prerelease]".
+
m4_define([libmypaint_version],
[libmypaint_api_major.libmypaint_api_minor.libmypaint_api_micro])
m4_define([libmypaint_version_full],
[libmypaint_api_major().libmypaint_api_minor().libmypaint_api_micro()m4_bpatsubst(libmypaint_api_prerelease(), [^\(.\)], [-\1])])
-# Dependencies.
+# The API "platform" or "intercompatibility" version.
+#
+# This one is used for library name prefixes, for introspection
+# namespace versions, for gettext domains, and basically anything that
+# needs to change when backwards or forwards API compatibility changes.
+# Another way of thinking about it: it allows meaningful side by side
+# installations of libmypaint.
+
+m4_define([libmypaint_api_platform_version],
+ [libmypaint_api_major.libmypaint_api_minor])
+
+
+## Dependencies ##
+
m4_define([gegl_required_version], [0.3])
m4_define([introspection_required_version], [1.32.0])
@@ -44,7 +67,8 @@
LIBMYPAINT_MICRO_VERSION=libmypaint_api_micro
LIBMYPAINT_VERSION=libmypaint_version
LIBMYPAINT_VERSION_FULL=libmypaint_version_full
-LIBMYPAINT_API_PLATFORM_VERSION=libmypaint_api_major.libmypaint_api_minor
+LIBMYPAINT_API_PLATFORM_VERSION=libmypaint_api_platform_version
+LIBMYPAINT_API_PLATFORM_VERSION_UL=m4_bpatsubst(libmypaint_api_platform_version(), [[^A-Za-z0-9]], [_])
LIBMYPAINT_ABI_VERSION_INFO=libmypaint_abi_current:libmypaint_abi_revision:libmypaint_abi_age
AC_SUBST(LIBMYPAINT_MAJOR_VERSION)
@@ -54,6 +78,7 @@
AC_SUBST(LIBMYPAINT_VERSION)
AC_SUBST(LIBMYPAINT_VERSION_FULL)
AC_SUBST(LIBMYPAINT_API_PLATFORM_VERSION)
+AC_SUBST(LIBMYPAINT_API_PLATFORM_VERSION_UL)
AC_SUBST(LIBMYPAINT_ABI_VERSION_INFO)
AC_PROG_CC
@@ -72,9 +97,8 @@
# Check for pkg-config
PKG_PROG_PKG_CONFIG(0.16)
-###########################
-# Check host architecture
-###########################
+
+## Check host and platform ##
AC_CANONICAL_HOST
@@ -273,7 +297,7 @@
if test "x$enable_i18n" != "xno"; then
enable_i18n="yes"
- GETTEXT_PACKAGE=libmypaint
+ GETTEXT_PACKAGE=libmypaint-libmypaint_api_platform_version
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
@@ -321,9 +345,9 @@
AC_CONFIG_FILES([
doc/Makefile
- gegl/libmypaint-gegl.pc:gegl/libmypaint-gegl.pc.in
+ gegl/libmypaint-gegl-]libmypaint_api_platform_version()[.pc:gegl/libmypaint-gegl.pc.in
gegl/Makefile
- libmypaint.pc:libmypaint.pc.in
+ libmypaint-]libmypaint_api_platform_version()[.pc:libmypaint.pc.in
m4macros/Makefile
Makefile
po/Makefile.in
diff -Naur ./libmypaint-1.3.0.orig/gegl/Makefile.am ./libmypaint-1.3.0/gegl/Makefile.am
--- ./libmypaint-1.3.0.orig/gegl/Makefile.am 2016-12-01 17:47:14.000000000 -0500
+++ ./libmypaint-1.3.0/gegl/Makefile.am 2017-07-24 10:54:57.297918118 -0400
@@ -37,10 +37,10 @@
../glib/mypaint-gegl-glib.c \
mypaint-gegl-surface.c
-MyPaintGegl-@LIBMYPAINT_MAJOR_VERSION@.@LIBMYPAINT_MINOR_VERSION@.gir: libmypaint-gegl.la Makefile
+MyPaintGegl-@LIBMYPAINT_MAJOR_VERSION@.@LIBMYPAINT_MINOR_VERSION@.gir: libmypaint-gegl-@LIBMYPAINT_API_PLATFORM_VERSION@.la Makefile
MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_INCLUDES = GObject-2.0 MyPaint-$(LIBMYPAINT_MAJOR_VERSION).$(LIBMYPAINT_MINOR_VERSION) Gegl-0.3
MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_CFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS) -I. -I..
-MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_LIBS = libmypaint-gegl.la ../libmypaint.la
+MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_LIBS = libmypaint-gegl-@LIBMYPAINT_API_PLATFORM_VERSION@.la ../libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@.la
MyPaintGegl_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_FILES = $(introspection_sources)
INTROSPECTION_GIRS += MyPaintGegl-@LIBMYPAINT_MAJOR_VERSION@.@LIBMYPAINT_MINOR_VERSION@.gir
@@ -56,10 +56,10 @@
## pkg-config file ##
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libmypaint-gegl.pc
+pkgconfig_DATA = libmypaint-gegl-@LIBMYPAINT_API_PLATFORM_VERSION@.pc
## libmypaint-gegl ##
-lib_LTLIBRARIES = libmypaint-gegl.la
+lib_LTLIBRARIES = libmypaint-gegl-@LIBMYPAINT_API_PLATFORM_VERSION@.la
libmypaint_gegl_publicdir = $(includedir)/libmypaint-gegl
@@ -70,9 +70,9 @@
../glib/mypaint-gegl-glib.c \
mypaint-gegl-surface.c
-libmypaint_gegl_la_SOURCES = $(libmypaint_gegl_public_HEADERS) $(LIBMYPAINT_GEGL_SOURCES)
+libmypaint_gegl_@LIBMYPAINT_API_PLATFORM_VERSION@_la_SOURCES = $(libmypaint_gegl_public_HEADERS) $(LIBMYPAINT_GEGL_SOURCES)
-libmypaint_gegl_la_CFLAGS = $(JSON_CFLAGS) $(GLIB_CFLAGS) $(GEGL_CFLAGS)
-libmypaint_gegl_la_LIBADD = $(top_builddir)/libmypaint.la $(GEGL_LIBS)
+libmypaint_gegl_@LIBMYPAINT_API_PLATFORM_VERSION@_la_CFLAGS = $(JSON_CFLAGS) $(GLIB_CFLAGS) $(GEGL_CFLAGS)
+libmypaint_gegl_@LIBMYPAINT_API_PLATFORM_VERSION@_la_LIBADD = $(top_builddir)/libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@.la $(GEGL_LIBS)
endif # enable_gegl
diff -Naur ./libmypaint-1.3.0.orig/.gitignore ./libmypaint-1.3.0/.gitignore
--- ./libmypaint-1.3.0.orig/.gitignore 2016-12-01 17:47:14.000000000 -0500
+++ ./libmypaint-1.3.0/.gitignore 2017-07-24 10:54:57.297918118 -0400
@@ -39,8 +39,8 @@
.libs/
*.lo
-libmypaint.la
-gegl/libmypaint-gegl.la
+libmypaint-*.la
+gegl/libmypaint-gegl-*.la
po/*.gmo
po/Makefile*
diff -Naur ./libmypaint-1.3.0.orig/libmypaint.pc.in ./libmypaint-1.3.0/libmypaint.pc.in
--- ./libmypaint-1.3.0.orig/libmypaint.pc.in 2016-12-01 17:47:14.000000000 -0500
+++ ./libmypaint-1.3.0/libmypaint.pc.in 2017-07-24 10:54:57.297918118 -0400
@@ -8,5 +8,5 @@
URL: @PACKAGE_URL@
Version: @LIBMYPAINT_VERSION@
Requires: @PKG_CONFIG_REQUIRES@
-Cflags: -I${includedir}/libmypaint
-Libs: -L${libdir} -lmypaint @OPENMP_CFLAGS@
+Cflags: -I${includedir}/libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@
+Libs: -L${libdir} -lmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@ @OPENMP_CFLAGS@
diff -Naur ./libmypaint-1.3.0.orig/Makefile.am ./libmypaint-1.3.0/Makefile.am
--- ./libmypaint-1.3.0.orig/Makefile.am 2016-12-01 17:47:14.000000000 -0500
+++ ./libmypaint-1.3.0/Makefile.am 2017-07-24 10:54:57.297918118 -0400
@@ -13,7 +13,7 @@
--warn-all \
--pkg="glib-2.0" \
--namespace="MyPaint" \
- --nsversion="$(LIBMYPAINT_MAJOR_VERSION).$(LIBMYPAINT_MINOR_VERSION)" \
+ --nsversion="$(LIBMYPAINT_API_PLATFORM_VERSION)" \
--identifier-prefix="MyPaint" \
--symbol-prefix="mypaint_" \
--add-include-path="$(srcdir)" \
@@ -54,12 +54,13 @@
mypaint-tiled-surface.c \
tilemap.c
-MyPaint-@LIBMYPAINT_MAJOR_VERSION@.@LIBMYPAINT_MINOR_VERSION@.gir: libmypaint.la Makefile
-MyPaint_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_INCLUDES = GObject-2.0 GLib-2.0
-MyPaint_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_CFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS)
-MyPaint_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_LIBS = libmypaint.la
-MyPaint_@LIBMYPAINT_MAJOR_VERSION@_@LIBMYPAINT_MINOR_VERSION@_gir_FILES = $(introspection_sources)
-INTROSPECTION_GIRS += MyPaint-@LIBMYPAINT_MAJOR_VERSION@.@LIBMYPAINT_MINOR_VERSION@.gir
+# CAUTION: some of these need to use the underscored API version string.
+MyPaint-@LIBMYPAINT_API_PLATFORM_VERSION@.gir: libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@.la Makefile
+MyPaint_@LIBMYPAINT_API_PLATFORM_VERSION_UL@_gir_INCLUDES = GObject-2.0 GLib-2.0
+MyPaint_@LIBMYPAINT_API_PLATFORM_VERSION_UL@_gir_CFLAGS = $(AM_CFLAGS) $(AM_CPPFLAGS)
+MyPaint_@LIBMYPAINT_API_PLATFORM_VERSION_UL@_gir_LIBS = libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@.la
+MyPaint_@LIBMYPAINT_API_PLATFORM_VERSION_UL@_gir_FILES = $(introspection_sources)
+INTROSPECTION_GIRS += MyPaint-@LIBMYPAINT_API_PLATFORM_VERSION@.gir
girdir = $(datadir)/gir-1.0
gir_DATA = $(INTROSPECTION_GIRS)
@@ -75,22 +76,23 @@
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libmypaint.pc
+pkgconfig_DATA = libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@.pc
-## libmypaint ##
+## libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@ ##
AM_CFLAGS = $(JSON_CFLAGS) $(GLIB_CFLAGS)
LIBS = $(JSON_LIBS) $(GLIB_LIBS) @LIBS@
-lib_LTLIBRARIES = libmypaint.la
+lib_LTLIBRARIES = libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@.la
-libmypaint_la_LDFLAGS = \
- -release @LIBMYPAINT_API_PLATFORM_VERSION@ \
+libmypaint_@LIBMYPAINT_API_PLATFORM_VERSION@_la_LDFLAGS = \
-version-info @LIBMYPAINT_ABI_VERSION_INFO@ \
-no-undefined
-libmypaint_publicdir = $(includedir)/libmypaint
+# -release @LIBMYPAINT_API_PLATFORM_VERSION@
+
+libmypaint_publicdir = $(includedir)/libmypaint-$(LIBMYPAINT_API_PLATFORM_VERSION)
nobase_libmypaint_public_HEADERS = \
mypaint-config.h \
@@ -117,9 +119,9 @@
tilemap.c \
utils.c
-libmypaint_la_SOURCES = $(libmypaint_public_HEADERS) $(LIBMYPAINT_SOURCES)
+libmypaint_@LIBMYPAINT_API_PLATFORM_VERSION@_la_SOURCES = $(libmypaint_public_HEADERS) $(LIBMYPAINT_SOURCES)
-DISTCLEANFILES = MyPaint-@LIBMYPAINT_MAJOR_VERSION@.@LIBMYPAINT_MINOR_VERSION@.gir.files
+DISTCLEANFILES = MyPaint-@LIBMYPAINT_API_PLATFORM_VERSION@.gir.files
EXTRA_DIST = \
brushsettings.json \
diff -Naur ./libmypaint-1.3.0.orig/tests/Makefile.am ./libmypaint-1.3.0/tests/Makefile.am
--- ./libmypaint-1.3.0.orig/tests/Makefile.am 2016-12-01 17:47:14.000000000 -0500
+++ ./libmypaint-1.3.0/tests/Makefile.am 2017-07-24 10:54:57.297918118 -0400
@@ -41,7 +41,7 @@
LDADD = \
$(DEPS) \
libmypaint-tests.a \
- $(top_builddir)/libmypaint.la
+ $(top_builddir)/libmypaint-@LIBMYPAINT_API_PLATFORM_VERSION@.la
EXTRA_DIST = \
brushes/bulk.myb \