public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [ITA] babl
@ 2020-05-25 22:18 Ken Brown
  2020-05-26 15:33 ` Marco Atzeri
  0 siblings, 1 reply; 2+ messages in thread
From: Ken Brown @ 2020-05-25 22:18 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 647 bytes --]

cygport file and patches attached.

The build system has changed from autotools to meson.  The former is no longer 
supported.

I have disabled gobject introspection for reasons explained here:

   https://sourceware.org/pipermail/cygwin-apps/2020-May/040093.html

This represents no change, because Yaakov disabled it (for different reasons) 
several years ago.  I'm hoping to be able to re-enable it at some point.

I went to some trouble, with the help of Jon Turney, to make the html docs 
build, so I packaged them in a (new) libbabl-doc package.  Is there any reason 
not to do this?

Fedora packages the docs also, in babl-devel-docs.

Ken

[-- Attachment #2: 0.1.74-cygwin.patch --]
[-- Type: text/plain, Size: 2132 bytes --]

--- origsrc/babl-0.1.74/babl/meson.build	2020-01-12 18:26:51.000000000 -0500
+++ src/babl-0.1.74/babl/meson.build	2020-05-25 10:05:54.387799000 -0400
@@ -38,7 +38,7 @@ elif host_machine.system() == 'darwin' a
 else
   error('Linker doesn\'t support --version-script or -exported_symbols_list')
 endif
-if platform_win32
+if platform_win32 or platform_cygwin
   babl_link_args += '-Wl,--no-undefined'
 endif
 
--- origsrc/babl-0.1.74/extensions/meson.build	2020-01-12 18:26:51.000000000 -0500
+++ src/babl-0.1.74/extensions/meson.build	2020-05-25 10:05:54.391822000 -0400
@@ -15,7 +15,7 @@ babl_ext_inc = [
 # Linker arguments
 babl_ext_link_args = [
 ]
-if platform_win32
+if platform_win32 or platform_cygwin
   babl_ext_link_args += '-Wl,--no-undefined'
 endif
 
--- origsrc/babl-0.1.74/meson.build	2020-01-12 18:26:51.000000000 -0500
+++ src/babl-0.1.74/meson.build	2020-05-25 10:08:03.005964600 -0400
@@ -79,6 +79,7 @@ conf.set_quoted('BABL_LIBRARY',
 platform_android = false
 platform_osx = false
 platform_win32 = false
+platform_cygwin = false
 
 host_cpu_family = host_machine.cpu_family()
 message('Host machine cpu family: ' + host_cpu_family)
@@ -104,9 +105,10 @@ host_os = host_machine.system()
 message('Host os: ' + host_os)
 
 platform_win32 = (host_os.startswith('mingw') or
-                  host_os.startswith('cygwin') or
                   host_os.startswith('windows'))
 
+platform_cygwin = host_os.startswith('cygwin')
+
 platform_osx = host_os.startswith('darwin')
 if platform_osx
   if cc.get_id() != 'clang'
@@ -118,7 +120,7 @@ platform_android = host_os.contains('and
 
 path_sep = ( platform_win32 ? ';'     : ':' )
 dirs_sep = ( platform_win32 ? '\\\\'  : '/' )
-if platform_win32
+if platform_win32 or platform_cygwin
   lib_ext = '.dll'
 elif platform_osx
   lib_ext = '.dylib'
@@ -145,7 +147,6 @@ build_os = build_machine.system()
 message('Build os: ' + build_os)
 
 build_platform_win32 = (build_os.startswith('mingw') or
-                        build_os.startswith('cygwin') or
                         build_os.startswith('windows'))
 
 # Only run cross compile objects if we have exe wrapper

[-- Attachment #3: 0.1.74-docs.patch --]
[-- Type: text/plain, Size: 1588 bytes --]

--- origsrc/babl-0.1.74/docs/meson.build	2020-01-12 18:26:51.000000000 -0500
+++ src/babl-0.1.74/docs/meson.build	2020-05-24 22:10:24.081359400 -0400
@@ -54,22 +54,26 @@ index_html = custom_target('index.html',
   build_by_default: true,
 )
 
-Reference_html = custom_target('Reference.html',
+Reference_html_tmp = custom_target('Reference.html.tmp',
   input : [
     'Reference-static.html',
     'toc',
-    index_html_tmp,
   ],
-  output: [ 'Reference.html', ],
+  output: [ 'Reference.html.tmp', ],
   command: [
     env_bin,
     'cp', '@INPUT0@', '@OUTPUT@',
     '&&', xml_insert, '@OUTPUT@', 'TOC', '@INPUT1@',
-    '&&', xml_insert, '@OUTPUT@', 'BablBase', '@INPUT2@',
   ],
-  build_by_default: true,
 )
 
+Reference_html = custom_target('Reference.html',
+  input : [ Reference_html_tmp, index_html_tmp, ],
+  output: [ 'Reference.html', ],
+  command: [ xml_insert, '@INPUT0@', 'BablBase', '@INPUT1@', 'cat_result' ],
+  build_by_default: true,
+  capture: true,
+)
 
 CMYK_html = custom_target('CMYK.html',
   input : [
--- origsrc/babl-0.1.74/docs/tools/xml_insert.sh	2020-01-12 18:26:51.000000000 -0500
+++ src/babl-0.1.74/docs/tools/xml_insert.sh	2020-05-25 07:54:31.875472500 -0400
@@ -7,6 +7,9 @@
 #
 # xml_insert.sh bar.xml foo foo.inc
 #
+# If there's a fourth argument, cat the final result.
+#
+#
 # 2005 © Øyvind Kolås
 #
 # FIXME: add argument checking / error handling
@@ -97,6 +100,9 @@ tailno=`expr $numlines - $splitno`
 head -$splitno $tmp_file > $1
 cat $3 >> $1
 tail -$tailno $tmp_file >> $1
+if test -n "$4"; then
+  cat $1
+fi
 
 rm -rf $tmp_dir
 

[-- Attachment #4: babl.cygport --]
[-- Type: text/plain, Size: 4171 bytes --]

inherit meson

NAME="babl"
VERSION=0.1.74
RELEASE=1
CATEGORY="Libs"
SUMMARY="Any-to-any pixel format conversion library"
DESCRIPTION="Babl is a dynamic, any to any, pixel format conversion library.
It provides conversions between the myriad of buffer types images can be
stored in. Babl doesn't only help with existing pixel formats, but also
facilitates creation of new and uncommon ones."
HOMEPAGE="http://www.gegl.org/babl/"
SRC_URI="http://download.gimp.org/pub/babl/${VERSION%.*}/babl-${VERSION}.tar.xz"

PATCH_URI="0.1.74-cygwin.patch 0.1.74-docs.patch"

PKG_NAMES="libbabl0.1_0 libbabl-devel" # girepository-Babl0.1 vala-babl0.1"
PKG_NAMES+=" libbabl-doc"
libbabl0_1_0_SUMMARY="${SUMMARY} (runtime)"
libbabl0_1_0_CONTENTS="--exclude=usr/share/doc/babl/html
	usr/bin/*-0.1-0.dll
	usr/lib/babl-0.1/
	usr/share/doc/"
libbabl_devel_SUMMARY="${SUMMARY} (development)"
libbabl_devel_CONTENTS="usr/include/ usr/lib/lib* usr/lib/pkgconfig/"
libbabl_devel_SUMMARY="${SUMMARY} (development)"
libbabl_devel_CONTENTS="usr/include/ usr/lib/lib* usr/lib/pkgconfig/"
libbabl_doc_SUMMARY="${SUMMARY} (documentation)"
libbabl_doc_CONTENTS="usr/share/doc/babl/html/"
girepository_Babl0_1_SUMMARY="${SUMMARY} (GObject Introspection)"
girepository_Babl0_1_CONTENTS="usr/*/gir*/Babl-0.1.*"
vala_babl0_1_SUMMARY="${SUMMARY} (Vala bindings)"
vala_babl0_1_CONTENTS="usr/share/vala/"

src_install() {
	cd ${S}
	meson_install
	docinto html
	cd ${CHOST}/docs
	dodoc graphics *.html *.css
	rm ${D}/usr/share/doc/babl/html/index-static.html
}

CYGMESON_ARGS="-Denable-gir=false"

# Attempting to build with gobject-introspection fails as follows:
# FAILED: babl/Babl-0.1.gir
# /usr/bin/g-ir-scanner -I/usr/include/gobject-introspection-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_REENTRANT --no-libtool --namespace=Babl --nsversion=0.1 --warn-all --output babl/Babl-0.1.gir --c-include=babl.h '--identifier-filter-cmd=/usr/bin/python3 /home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/babl/identfilter.py' -DBABL_IS_BEING_COMPILED -I/home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/babl -I/home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/x86_64-pc-cygwin/babl -I./. -I../. -I./babl/base/. -I../babl/base/. --filelist=/home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/x86_64-pc-cygwin/babl/4170c83@@babl-0.1@sha/Babl_0.1_gir_filelist --cflags-begin -fno-unsafe-math-optimizations -Wdeclaration-after-statement -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wold-style-definition -Wpointer-arith -mmmx -msse -mfpmath=sse -I./. -I../. -I./babl/base/. -I../babl/base/. --cflags-end --library babl-0.1 -L/home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/x86_64-pc-cygwin/babl --extra-library=m --extra-library=dl --extra-library=lcms2
# g-ir-scanner: link: gcc -o /home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/x86_64-pc-cygwin/tmp-introspectG0o9nF/Babl-0.1.exe -ggdb -O2 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -fdebug-prefix-map=/home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/build=/usr/src/debug/babl-0.1.74-1 -fdebug-prefix-map=/home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74=/usr/src/debug/babl-0.1.74-1 /home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/x86_64-pc-cygwin/tmp-introspectG0o9nF/Babl-0.1.o -L. -lbabl-0.1 -lm -ldl -llcms2 -L/home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/x86_64-pc-cygwin/babl -Wl,-rpath,/home/kbrown/src/cygpackages/babl/babl-0.1.74-1.x86_64/src/babl-0.1.74/x86_64-pc-cygwin/babl -lgio-2.0 -lgobject-2.0 -Wl,--export-all-symbols -lgmodule-2.0 -lglib-2.0 -lintl
# ERROR: can't resolve libraries to shared libraries: babl-0.1

# The problem is that the executable generated by the above link
# command doesn't depend on the cygbabl DLL b/c the babl library
# doesn't contain any GObject-based types.  See
#
#   https://github.com/mesonbuild/meson/pull/2880/commits/8a27c08b05e4537d5061d30ddd8aad9dc52cf1c4

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [ITA] babl
  2020-05-25 22:18 [ITA] babl Ken Brown
@ 2020-05-26 15:33 ` Marco Atzeri
  0 siblings, 0 replies; 2+ messages in thread
From: Marco Atzeri @ 2020-05-26 15:33 UTC (permalink / raw)
  To: cygwin-apps

On 26.05.2020 00:18, Ken Brown via Cygwin-apps wrote:
> cygport file and patches attached.
> 
> The build system has changed from autotools to meson.  The former is no 
> longer supported.
> 
> I have disabled gobject introspection for reasons explained here:
> 
>    https://sourceware.org/pipermail/cygwin-apps/2020-May/040093.html
> 
> This represents no change, because Yaakov disabled it (for different 
> reasons) several years ago.  I'm hoping to be able to re-enable it at 
> some point.
> 
> I went to some trouble, with the help of Jon Turney, to make the html 
> docs build, so I packaged them in a (new) libbabl-doc package.  Is there 
> any reason not to do this?
> 
> Fedora packages the docs also, in babl-devel-docs.
> 
> Ken

changed maintainer

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-05-26 15:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-25 22:18 [ITA] babl Ken Brown
2020-05-26 15:33 ` Marco Atzeri

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).