John Cupitt
5569022dbd
use G_GNUC_* attribute system
...
Instead of our own compiler attr thing.
see https://github.com/libvips/libvips/issues/2871
2022-09-23 14:37:35 +01:00
Kleis Auke Wolthuizen
07edfe37b1
Improve symbol visibility ( #2688 )
...
* Improve symbol visibility
* Decorate required internal symbols with VIPS_API
* Remove a couple of stray header decls
* Incorporate review comment
- Ensure symbol visibility is also set on static libraries.
- Prefer to use `cc.has_function_attribute('visibility:hidden')`.
* Don't export internal deprecated symbols
* Move deprecated symbols to vips7compat.h
* `IM_FORMAT_H` -> `VIPS_FORMAT_H`
* Move `vips_window_ref` compat stub to `vips7compat.c`
* Disable deprecation warnings internally
* `vips_image_get_kill` -> `vips_image_iskilled`
* Ensure API compatibility
* Add missing include directives
* Move `vips__init` decl to vips7compat
* Move `vips__get_sizeof_vipsobject` to vips7compat
* Fix introspection build
* Fix 2 introspection warnings
* Ensure compatibility with vipsdisp
/usr/bin/ld: tilesource.o: in function `tile_source_new_from_source':
vipsdisp/tilesource.c:1627: undefined reference to `vips__region_no_ownership'
2022-04-16 10:58:55 +01:00
John Cupitt
eba9ec0dd7
Add a way to disable less well tested operations ( #2636 )
...
* quick proposal
warn on startup if untrusted operations might run
use vips_block_untrusted_set() to block untrusted operations, set an env
var or make a file to stop the warning
* mark fits, nifti and svg as untrusted
* remove the annoying "untrusted" warning message
better to warn on the download page
leave vips_block_untrusted_set() since it's obviously useful
* separate UNTRUSTED and BLOCKED
* typos
* add VIPS_BLOCK_UNTRUSTED env var
* move BLOCK_UNTRUSTED after plugin load
obviously, ooops
* add a test, disable *magick
although *magick is fuzzed, it's probably safer to disable it in
untrusted environments
* mark some more operations as untrusted
2022-04-11 11:32:32 +01:00
Kleis Auke Wolthuizen
517089fb4b
Meson: don't install deprecated headers when `-Ddeprecated=false` ( #2693 )
2022-02-27 13:44:09 +00:00
John Cupitt
eca400e953
don't set g_set_prgname()
...
this should be set in the app layer, not by libraries
2021-06-01 10:29:54 +01:00
Kleis Auke Wolthuizen
221a5f7e8b
Remove remnant of gmic
...
This was moved to a plugin with commit 927b2d7
.
2021-04-22 12:01:42 +02:00
John Cupitt
cfe50903df
don't put glib includes inside extern "C" blocks
...
see https://github.com/libvips/libvips/issues/1987
2021-02-09 16:07:51 +00:00
Lovell Fuller
3ca21ee2e8
Increase minimum glib-2.0 dependency to v2.15 (released March 2012)
2020-03-26 19:13:21 +00:00
John Cupitt
d4f12a9999
move VipsGInputStream to public API
...
Since we will need it for pdfload as well.
2020-03-11 17:17:45 +00:00
John Cupitt
be3775e868
fix up i18n
...
POTFILES etc. needed updating for the recent class renames.
2020-01-01 18:24:13 +00:00
John Cupitt
4c5873809f
experiment with renaming stream
...
rename as VipsConnection, VipsSource, VipsTarget etc.
see https://github.com/libvips/libvips/issues/1494#issuecomment-569498619
renamed with this script:
```
set -e
edit() {
sed -i -E "$1" rename
}
for i in $*; do
cp $i rename
edit s/VIPS_STREAMOU/VIPS_TARGET_CUSTOM/g
edit s/VIPS_STREAMO/VIPS_TARGET/g
edit s/VIPS_STREAMIU/VIPS_SOURCE_CUSTOM/g
edit s/VIPS_STREAMI/VIPS_SOURCE/g
edit s/VIPS_STREAM/VIPS_CONNECTION/g
edit s/vips_streamou/vips_target_custom/g
edit s/vips_streamo/vips_target/g
edit s/vips_streamiu/vips_source_custom/g
edit s/vips_streami/vips_source/g
edit s/vips_stream/vips_connection/g
edit s/VipsStreamou/VipsTargetCustom/g
edit s/VipsStreamo/VipsTarget/g
edit s/VipsStreamiu/VipsSourceCustom/g
edit s/VipsStreami/VipsSource/g
edit s/VipsStream/VipsConnection/g
# eg. VIPS_TYPE_STREAM or VIPS_IS_STREAM
edit "s/VIPS_([A-Z]+)_STREAMOU/VIPS_\1_TARGET_CUSTOM/g"
edit "s/VIPS_([A-Z]+)_STREAMO/VIPS_\1_TARGET/g"
edit "s/VIPS_([A-Z]+)_STREAMIU/VIPS_\1_SOURCE_CUSTOM/g"
edit "s/VIPS_([A-Z]+)_STREAMI/VIPS_\1_SOURCE/g"
edit "s/VIPS_([A-Z]+)_STREAM/VIPS_\1_CONNECTION/g"
edit s/streamou/target_custom/g
edit s/streamo/target/g
edit s/streamiu/source_custom/g
edit s/streami/source/g
# various identifiers which also change
edit s/is_a_stream/is_a_source/g
edit s/find_load_stream/find_load_source/g
edit s/find_save_stream/find_save_target/g
edit s/new_from_stream/new_from_source/g
edit s/write_to_stream/write_to_target/g
edit s/vips_thumbnail_stream/vips_thumbnail_source/g
# eg. vips_webpload_stream
edit "s/vips_([a-z]+)load_stream/vips_\1load_source/g"
# eg. vips_webpsave_stream
edit "s/vips_([a-z]+)save_stream/vips_\1save_target/g"
mv rename $i
done
```
2019-12-29 21:40:21 +00:00
John Cupitt
9a193f6f4c
test for gio
...
It seems glib added gio in 2.15, though I don't know if svgload will
actually work with a glib that old.
2019-11-19 17:05:12 +00:00
John Cupitt
09325600ee
rename VipsStreamib as VipsBufis
...
The VipsStreamib (stream input buffered) was misleading -- it was
implemented on top of VipsStreami, but was not a subclass.
Rename as VipsBufis (buffered input stream). It's a silly name, but
easy to remember and reflects the purpose better,
2019-11-18 13:09:04 +00:00
John Cupitt
441f61f3ff
svgload from a stream
2019-11-10 17:23:28 +00:00
John Cupitt
372bbc8020
paste stream.c back in
...
revise stream.h, implement it next
2019-10-08 17:52:30 +01:00
John Cupitt
b085908558
remove vips7 stuff from API
...
You must now include vips7 support explicitly with
#include <vips/vips7compat.h>
in your code just after including `vips.h`.
The old vips7 names, such as `Rect`, were starting to cause problems
with other packages like opencv.
2018-05-16 15:08:21 +01:00
John Cupitt
e1b9c789cb
add dbuf object
...
dynamically expanding buffer
also, escape "<>& appropriately when we write xml
2017-02-26 17:37:46 +00:00
John Cupitt
784c7c0669
don't enable structured logging by default
2017-01-04 14:53:45 +00:00
John Cupitt
07e6ac1994
support --vips-info
...
now turns on glib g_info() output
2017-01-04 07:23:50 +00:00
John Cupitt
2be0b97dce
switch to g_warning()_/g_info()
...
we had vips_warn() and vips_info(), but they are a bit crappy ... switch
to g_warning() and g_info() instead
see https://github.com/jcupitt/libvips/issues/544
2017-01-03 15:52:27 +00:00
John Cupitt
c31f4ec2d7
add VIPS_SONAME etc.
...
helps check ABI and php-vips-ext lock the right library
2016-12-31 17:58:33 +00:00
Eric Corriel
630f8bb02b
fixing typo, should be IFDEF
2015-12-27 20:39:55 -05:00
John Cupitt
044bdf38d1
more doc tweaks
2015-02-18 16:32:30 +00:00
John Cupitt
dda412c85f
add command-line option parsing to python
2014-11-18 11:29:32 +00:00
John Cupitt
7608524f61
fix up gtk-doc comments
...
fewer warnings now, phew
2014-09-03 14:32:55 +01:00
John Cupitt
f8f288c1a6
vips_init() comes back
...
we need a public function for bindings
2014-08-29 13:51:03 +01:00
John Cupitt
a70da5b2d9
Merge remote-tracking branch 'origin/7.40'
2014-08-18 17:41:17 +01:00
John Cupitt
7c8ec68448
more vips_check_init() out of API
...
now private
2014-08-18 15:53:17 +01:00
John Cupitt
1abcc1eae4
rename vips_init() as VIPS_INIT()
...
stops a deprecation warning from gtk-doc
vips_init() is now a compat macro
2014-08-18 15:27:10 +01:00
John Cupitt
32a8fe117e
start working on --disable-deprecated
...
need to move im_conv() etc to classes to finish this
2014-07-25 18:06:52 +01:00
John Cupitt
44f8b0d8ac
better gcc attr() detect
2014-05-06 09:55:41 +01:00
John Cupitt
54f2ea772c
almost compiling
2014-02-04 08:49:17 +00:00
John Cupitt
bbd5cbfb44
add vips_thread_shutdown()
...
You now need to call vips_thread_shutdown() from all threads you create
yourself just before they exit. This gives vips a chance to free any
thread-private memory and to write out profiling data. libvips will
complain noisily if you fail to do this. You can harmlessly call
vips_thread_shutdown() more than once if you wish.
libvips will call vips_thread_shutdown for you automatically for the main
thread (the one that calls vips_shutdown()) and for threads it creates
directly itself.
2014-01-15 14:07:13 +00:00
John Cupitt
9f150e3063
rename freq_filt package as freqfilt
2014-01-03 17:19:45 +00:00
John Cupitt
693ed09edd
add --vips-profile
...
only added a few gates so far, try a visualiser next
2013-11-18 18:31:49 +00:00
John Cupitt
7463edb783
remove _() from vips_init
...
since it will be compiled by clients and they may not be using i18n
2013-11-08 21:12:24 +00:00
John Cupitt
f7f061d265
vips_init() does ABI checking
...
just checks sizeof(VipsObject) for now
2013-10-20 16:46:55 +01:00
John Cupitt
9cc8204ce1
vips_buildlut() works, removing old im_buildlut()
2013-07-03 14:01:46 +01:00
John Cupitt
4436e370c7
make a "create" package
...
the old "other" package, plus move some of conversion in there
2013-06-13 10:12:22 +01:00
Benjamin Gilbert
8cc76a6ba3
Update address for Free Software Foundation
...
Also update LGPLv2.1 license text from the copy currently on the GNU
website.
2013-03-07 00:40:19 -05:00
John Cupitt
2ce7bc9618
started moving disp funcs
2012-09-21 14:47:50 +01:00
John Cupitt
7ae919e4f4
more hacking on gio warnings
...
all the serious ones seem to be fixed now
2012-01-01 12:04:46 +00:00
John Cupitt
56fb2126b8
rename VipsFile as VipsForeign
2011-11-29 11:43:08 +00:00
John Cupitt
2c641c6644
sync
2011-11-24 14:53:30 +00:00
John Cupitt
9cb602baa1
more new format stuff to VipsFile
2011-11-23 17:38:19 +00:00
John Cupitt
5b133145a7
move im_shift*( to a class, remove bool package
2011-11-12 17:18:13 +00:00
John Cupitt
550b914fa6
remove vipspool
...
vips_object_local_array() is much better ... get embed using this as
well
2011-11-01 14:45:56 +00:00
John Cupitt
c1f1957e88
break out libvip gtypes
...
all libvips gtype definitions broken out and renamed for consistency
2011-10-28 10:28:31 +01:00
John Cupitt
7dcda5c0c9
starting to factor out VipsArea
2011-10-27 22:13:21 +01:00
John Cupitt
13e354e869
add vips_shutdown()
...
vips_shutdown() flushes caches, closes plugins and does a leak check
2011-09-24 10:17:32 +01:00