Ovidiu Panait a2201f192a libparted: Use read only when probing devices on linux
When a device is opened for RW closing it can trigger other actions,
like udev scanning it for partition changes. Use read only for the
init_* methods and RW for actual changes to the device.

This adds _device_open which takes mode flags as an argument and turns
linux_open into a wrapper for it with RW_MODE.

_device_open_ro is added to open the device with RD_MODE and increment
the open_counter. This is used in the init_* functions.

_device_close is a wrapper around linux_close that decrements the
open_counter and is used in the init_* functions.

All of these changes are self-contained with no external API changes.
The only visible change in behavior is that when a new PedDevice is
created the device is opened in RO_MODE instead of RW_MODE.

Resolves: rhbz#1245144

Reference:
https://bugzilla.redhat.com/show_bug.cgi?id=1283112

Upstream patch:
http://git.savannah.gnu.org/cgit/parted.git/commit/?id=44d5ae0115c4ecfe3158748309e9912c5aede92d

(From OE-Core rev: f68fca4776a38a1bdf7ed37ce87cddbb21ff74f8)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-10-07 23:20:39 +01:00

51 lines
1.8 KiB
BlitzBasic

SUMMARY = "Disk partition editing/resizing utility"
HOMEPAGE = "http://www.gnu.org/software/parted/parted.html"
LICENSE = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
SECTION = "console/tools"
DEPENDS = "ncurses readline util-linux virtual/libiconv"
PR = "r1"
SRC_URI = "${GNU_MIRROR}/parted/parted-${PV}.tar.xz \
file://no_check.patch \
file://syscalls.patch \
file://fix-doc-mandir.patch \
file://fix-compile-failure-while-dis.patch \
file://0001-Include-fcntl.h-in-platform_defs.h.patch \
file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
file://0002-libparted_fs_resize-link-against-libuuid-explicitly-.patch \
file://0001-Move-python-helper-scripts-used-only-in-tests-to-Pyt.patch \
file://parted-3.2-sysmacros.patch \
file://run-ptest \
file://Makefile \
file://0001-libparted-Use-read-only-when-probing-devices-on-linu.patch \
"
SRC_URI[md5sum] = "0247b6a7b314f8edeb618159fa95f9cb"
SRC_URI[sha256sum] = "858b589c22297cacdf437f3baff6f04b333087521ab274f7ab677cb8c6bb78e4"
EXTRA_OECONF = "--disable-device-mapper"
inherit autotools pkgconfig gettext texinfo ptest
BBCLASSEXTEND = "native"
do_compile_ptest() {
oe_runmake -C tests print-align print-max dup-clobber duplicate fs-resize
}
do_install_ptest() {
t=${D}${PTEST_PATH}
mkdir $t/build-aux
cp ${S}/build-aux/test-driver $t/build-aux/
cp -r ${S}/tests $t
cp ${WORKDIR}/Makefile $t/tests/
sed -i "s|^VERSION.*|VERSION = ${PV}|g" $t/tests/Makefile
for i in print-align print-max dup-clobber duplicate fs-resize; \
do cp ${B}/tests/.libs/$i $t/tests/; \
done
sed -e 's| ../parted||' -i $t/tests/*.sh
}
RDEPENDS_${PN}-ptest = "bash coreutils perl util-linux-losetup python3"