From de35066b1faae4a0067769b293f031a7d2c7239002b70b78a27f786be9757818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Thu, 12 Mar 2020 10:28:39 +0000 Subject: [PATCH] - Update to 2.1.0: * Add new plist_get_data_ptr() and plist_get_string_ptr() for direct access to underlying buffer * Increase precision when converting PLIST_REAL nodes to XML * Fix several issues in libcnary (UaF, segfault, memory leak) * Fix copying of hash table entries when cloning array/dict nodes * cython: Implement load()/loads() and dump()/dumps() to match up with plistlib (Python 3.4) * Add new plist_dict_item_get_key() for retrieving key node of a dict item * Add new plist_array_item_remove() to allow removing an array's child node without relying on the index * Make plist_array_get_item_index() return UINT_MAX instead of 0 when node can't be found * Add index lookup table for large PLIST_ARRAY nodes * Add iterator for array nodes: plist_array_new_iter(), plist_array_next_item() * Improve performance of plist_dict_next_item() drastically * Improve performance and memory usage when writing XML plists * Improve performance and memory usage when writing binary plists * Allow building with sanitizers (without fuzzers) * Prevent store to misaligned address when writing real/date nodes * Work around misaligned reads in binary plist parser * Integrate fuzzing targets (libFuzzer) into project * Add sanitizers (ASAN, UBSAN) when building fuzzers (--with-fuzzers) OBS-URL: https://build.opensuse.org/package/show/hardware/libplist?expand=0&rev=9 --- 2.1.0.tar.gz | 3 ++ libplist-2.0.0.tar.bz2 | 3 -- libplist.changes | 23 +++++++++++ libplist.spec | 86 ++++++++++++++++++------------------------ 4 files changed, 62 insertions(+), 53 deletions(-) create mode 100644 2.1.0.tar.gz delete mode 100644 libplist-2.0.0.tar.bz2 diff --git a/2.1.0.tar.gz b/2.1.0.tar.gz new file mode 100644 index 0000000..c42ae35 --- /dev/null +++ b/2.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b33f9af3f9208d54a3c3e1a8c149932513f451c98d1dd696fe42c06e30b7f03 +size 175912 diff --git a/libplist-2.0.0.tar.bz2 b/libplist-2.0.0.tar.bz2 deleted file mode 100644 index e3a997a..0000000 --- a/libplist-2.0.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3a7e9694c2d9a85174ba1fa92417cfabaea7f6d19631e544948dc7e17e82f602 -size 421405 diff --git a/libplist.changes b/libplist.changes index b1cba1a..d34c07a 100644 --- a/libplist.changes +++ b/libplist.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Thu Mar 12 10:18:43 UTC 2020 - Tomáš Chvátal + +- Update to 2.1.0: + * Add new plist_get_data_ptr() and plist_get_string_ptr() for direct access to underlying buffer + * Increase precision when converting PLIST_REAL nodes to XML + * Fix several issues in libcnary (UaF, segfault, memory leak) + * Fix copying of hash table entries when cloning array/dict nodes + * cython: Implement load()/loads() and dump()/dumps() to match up with plistlib (Python 3.4) + * Add new plist_dict_item_get_key() for retrieving key node of a dict item + * Add new plist_array_item_remove() to allow removing an array's child node without relying on the index + * Make plist_array_get_item_index() return UINT_MAX instead of 0 when node can't be found + * Add index lookup table for large PLIST_ARRAY nodes + * Add iterator for array nodes: plist_array_new_iter(), plist_array_next_item() + * Improve performance of plist_dict_next_item() drastically + * Improve performance and memory usage when writing XML plists + * Improve performance and memory usage when writing binary plists + * Allow building with sanitizers (without fuzzers) + * Prevent store to misaligned address when writing real/date nodes + * Work around misaligned reads in binary plist parser + * Integrate fuzzing targets (libFuzzer) into project + * Add sanitizers (ASAN, UBSAN) when building fuzzers (--with-fuzzers) + ------------------------------------------------------------------- Mon May 1 20:48:19 UTC 2017 - mgorse@suse.com diff --git a/libplist.spec b/libplist.spec index f2229bd..16bedb0 100644 --- a/libplist.spec +++ b/libplist.spec @@ -1,7 +1,7 @@ # # spec file for package libplist # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,49 +12,46 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # +%define cname libplist3 +%define cppname libplist++3 Name: libplist -Version: 2.0.0 +Version: 2.1.0 Release: 0 Summary: Library for handling Apple Binary and XML Property Lists -License: GPL-2.0 and LGPL-2.1+ -Group: Development/Libraries/C and C++ -Url: https://cgit.libimobiledevice.org/libplist.git -Source: http://www.libimobiledevice.org/downloads/%{name}-%{version}.tar.bz2 +License: GPL-2.0-only AND LGPL-2.1-or-later +URL: https://github.com/libimobiledevice/libplist +Source: https://github.com/libimobiledevice/libplist/archive/%{version}.tar.gz Source99: baselibs.conf -BuildRequires: gcc-c++ +BuildRequires: gcc-c++ autoconf automake libtool BuildRequires: pkgconfig -BuildRequires: python-cython -BuildRequires: python-devel -BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: python3-Cython >= 0.17 +BuildRequires: pkgconfig(python3) %description libplist is a library for handling Apple Binary and XML Property Lists. -%package -n libplist3 +%package -n %{cname} Summary: Library for handling Apple Binary and XML Property Lists -Group: System/Libraries Provides: libplist = %{version} Obsoletes: libplist < %{version} -%description -n libplist3 +%description -n %{cname} libplist is a library for handling Apple Binary and XML Property Lists. -%package -n libplist++3 +%package -n %{cppname} Summary: Library for handling Apple Binary and XML Property Lists -Group: System/Libraries Provides: libplist++ = %{version} Obsoletes: libplist++ < %{version} -%description -n libplist++3 +%description -n %{cppname} libplist is a library for handling Apple Binary and XML Property Lists. %package -n plistutil Summary: Library for handling Apple Binary and XML Property Lists -Group: Hardware/Other Requires: libplist = %{version} Provides: plutil = %{version} Obsoletes: plutil < %{version} @@ -67,7 +64,6 @@ from XML to binary. %package devel Summary: Library for handling Apple Binary and XML Property Lists -- Development Files -Group: Development/Libraries/C and C++ Requires: libplist = %{version} %description devel @@ -77,77 +73,68 @@ This package contains the development files for C. %package -n libplist++-devel Summary: Library for handling Apple Binary and XML Property Lists -- Development Files -Group: Development/Libraries/C and C++ Requires: libplist++ = %{version} -Requires: libplist-devel +Requires: pkgconfig(libplist) %description -n libplist++-devel libplist is a library for handling Apple Binary and XML Property Lists. This package contains the development files for C++. -%package -n python-plist +%package -n python3-plist Summary: Library for handling Apple Binary and XML Property Lists -- Python Bindings -Group: Development/Languages/Python -Requires: libplist3 = %{version} -Requires: python-cython >= 0.13 +Requires: %{cname} = %{version} +Requires: python3-Cython >= 0.17 -%description -n python-plist +%description -n python3-plist libplist is a library for handling Apple Binary and XML Property Lists. This package contains the python bindings. %prep %setup -q + %build +autoreconf -fvi %configure --disable-static -make %{?_smp_mflags} +%make_build %check TZ=Europe/Vienna make check VERBOSE=1 %install -make %{?_smp_mflags} DESTDIR=%{buildroot} install +%make_install find %{buildroot} -type f -name "*.la" -delete -print -rm -rf %{buildroot}%{python_sitearch}/*.la # needed by python-imobiledevice build mkdir -p %{buildroot}%{_includedir}/plist/cython install -m 0644 cython/plist.pxd %{buildroot}%{_includedir}/plist/cython/plist.pxd -%if 0%{?_crossbuild} -cp -a %{buildroot}%{?_sysroot}/* %{buildroot}/ -rm -fr %{buildroot}%{?_sysroot} -%endif +%post -n %{cname} -p /sbin/ldconfig +%postun -n %{cname} -p /sbin/ldconfig +%post -n %{cppname} -p /sbin/ldconfig +%postun -n %{cppname} -p /sbin/ldconfig -%post -n libplist3 -p /sbin/ldconfig -%postun -n libplist3 -p /sbin/ldconfig -%post -n libplist++3 -p /sbin/ldconfig -%postun -n libplist++3 -p /sbin/ldconfig - -%files -n libplist3 -%defattr(-,root,root) -%doc AUTHORS COPYING COPYING.LESSER README NEWS +%files -n %{cname} +%license COPYING COPYING.LESSER +%doc AUTHORS README.md NEWS %{_libdir}/libplist.so.* -%files -n libplist++3 -%defattr(-,root,root) -%doc AUTHORS COPYING COPYING.LESSER README NEWS +%files -n %{cppname} +%license COPYING COPYING.LESSER +%doc AUTHORS README.md NEWS %{_libdir}/libplist++.so.* %files -n plistutil -%defattr(-,root,root) %{_bindir}/plistutil %files devel -%defattr(-,root,root,-) %dir %{_includedir}/plist %{_includedir}/plist/plist.h %{_libdir}/libplist.so %{_libdir}/pkgconfig/libplist.pc %files -n libplist++-devel -%defattr(-,root,root,-) %dir %{_includedir}/plist %{_includedir}/plist/plist++.h %{_includedir}/plist/Array.h @@ -165,10 +152,9 @@ rm -fr %{buildroot}%{?_sysroot} %{_libdir}/libplist++.so %{_libdir}/pkgconfig/libplist++.pc -%files -n python-plist -%defattr(-,root,root,-) +%files -n python3-plist %dir %{_includedir}/plist/cython %{_includedir}/plist/cython/plist.pxd -%{python_sitearch}/plist.so +%{python3_sitearch}/plist.so %changelog