Hello community,
here is the log from the commit of package cdemu-client for openSUSE:Factory checked in at 2019-07-11 13:18:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cdemu-client (Old)
and /work/SRC/openSUSE:Factory/.cdemu-client.new.4615 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cdemu-client"
Thu Jul 11 13:18:40 2019 rev:14 rq:714424 version:3.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/cdemu-client/cdemu-client.changes 2017-08-08 11:59:49.903019942 +0200
+++ /work/SRC/openSUSE:Factory/.cdemu-client.new.4615/cdemu-client.changes 2019-07-11 13:18:55.178757445 +0200
@@ -1,0 +2,9 @@
+Wed Jul 3 11:49:44 UTC 2019 - Jan Engelhardt
+
+- Update to new upstream release 3.2.0
+ * Switched to python3.
+ * Added "bdr" as valid blank medium type.
+ * Implemented "dvd-report-css" ad device option instead of
+ image-loading parameter.
+
+-------------------------------------------------------------------
Old:
----
cdemu-client-3.1.0.tar.bz2
New:
----
cdemu-client-3.2.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cdemu-client.spec ++++++
--- /var/tmp/diff_new_pack.LAlmDc/_old 2019-07-11 13:18:55.746757267 +0200
+++ /var/tmp/diff_new_pack.LAlmDc/_new 2019-07-11 13:18:55.750757265 +0200
@@ -1,7 +1,7 @@
#
# spec file for package cdemu-client
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,15 +12,15 @@
# 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/
#
Name: cdemu-client
-Version: 3.1.0
+Version: 3.2.0
Release: 0
Summary: Command-line client to control cdemu-daemon
-License: GPL-2.0+
+License: GPL-2.0-or-later
Group: System/Filesystems
Url: http://cdemu.sf.net/about/client/
@@ -29,9 +29,13 @@
BuildRequires: cmake >= 2.8.5
BuildRequires: gettext-tools >= 0.15
BuildRequires: intltool >= 0.21
-BuildRequires: python >= 2.6
-Requires: dbus-1-python
-Requires: python >= 2.6
+BuildRequires: python3 >= 3.4
+BuildRequires: pkgconfig(bash-completion)
+Requires: python3 >= 3.4
+Requires: python3-dbus-python
+Requires: python3-gobject
+Requires: typelib(GLib)
+Requires: typelib(Gio)
BuildArch: noarch
%description
@@ -59,11 +63,10 @@
%files
%defattr(-,root,root)
%doc AUTHORS COPYING NEWS README
-%dir %_sysconfdir/bash_completion.d/
-%config %_sysconfdir/bash_completion.d/cdemu-bash-completion.sh
%_bindir/cdemu
%_datadir/applications/%name.desktop
%_datadir/pixmaps/%name.svg
+%_datadir/bash-completion/
%_mandir/man1/cdemu.1*
%files lang -f cdemu.lang
++++++ cdemu-client-3.1.0.tar.bz2 -> cdemu-client-3.2.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.1.0/CMakeLists.txt new/cdemu-client-3.2.0/CMakeLists.txt
--- old/cdemu-client-3.1.0/CMakeLists.txt 2017-06-10 23:29:17.000000000 +0200
+++ new/cdemu-client-3.2.0/CMakeLists.txt 2018-07-07 21:55:02.000000000 +0200
@@ -19,6 +19,7 @@
# Dependencies
find_package (IntlTool 0.21 REQUIRED)
find_package (Gettext 0.15 REQUIRED)
+find_package (PkgConfig REQUIRED)
if (POST_INSTALL_HOOKS)
find_program (UPDATE_DESKTOP_DATABASE_EXECUTABLE NAMES update-desktop-database)
@@ -36,9 +37,33 @@
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1
)
+# determine the bash-completion install path
+pkg_check_modules(BASH_COMPLETION bash-completion)
+if (BASH_COMPLETION_FOUND)
+ # pkg_get_variable() was introduced in CMake 3.4, but for now, we
+ # need to support older versions as well.
+ if (${CMAKE_VERSION} VERSION_LESS "3.4.0")
+ execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=completionsdir bash-completion
+ OUTPUT_VARIABLE def_completionsdir
+ ERROR_QUIET
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ else()
+ pkg_get_variable(def_completionsdir bash-completion completionsdir)
+ endif()
+else()
+ # Fall back to the old path
+ set(def_completionsdir ${CMAKE_INSTALL_SYSCONFDIR}/bash_completion.d)
+endif()
+
+set(CMAKE_INSTALL_COMPLETIONSDIR "${def_completionsdir}"
+ CACHE PATH "bash shell completions (${def_completionsdir})")
+
install (
FILES data/cdemu-bash-completion.sh
- DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/bash_completion.d
+ DESTINATION ${CMAKE_INSTALL_COMPLETIONSDIR}
+ # the completion filename must match executable name for autoloading
+ # to work (bash-completion 2.0)
+ RENAME cdemu
)
install (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.1.0/README new/cdemu-client-3.2.0/README
--- old/cdemu-client-3.1.0/README 2017-06-10 23:29:17.000000000 +0200
+++ new/cdemu-client-3.2.0/README 2018-07-07 21:55:02.000000000 +0200
@@ -1,5 +1,5 @@
CDEmu client
-3.1.0
+3.2.0
~~~~~
Table of Contents:
@@ -26,11 +26,16 @@
2. Requirements:
~~~~~~~~~~~~~~~~
- - Python >= 2.6
- - PyGObject >= 3.0.0 (glib and gio modules are required)
+
+ - CMake >= 2.8.5
- IntlTool >= 0.21
- GetText >= 0.15
+ - Python3 >= 3.4 (default) or Python2 >= 2.7
+ - PyGObject >= 3.0.0
+
+ - GLib, GIO >= 2.28 GIR
+
3. Installation:
~~~~~~~~~~~~~~~~
@@ -60,7 +65,8 @@
the password using standard input without echo)
Loading a raw image of a CSS-encrypted DVD created by 'dd', so it can be played by mplayer:
- cdemu load 0 ~/image.iso --dvd-report-css=true
+ cdemu load 0 ~/image.iso
+ cdemu dvd-report-css 0 1
Creating a blank recordable disc: DVD+R SL with ISO image writer:
cdemu create-blank --writer-id=WRITER-ISO --medium-type=dvd+r 0 ~/output-image.iso
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.1.0/data/cdemu-bash-completion.sh new/cdemu-client-3.2.0/data/cdemu-bash-completion.sh
--- old/cdemu-client-3.1.0/data/cdemu-bash-completion.sh 2017-06-10 23:29:17.000000000 +0200
+++ new/cdemu-client-3.2.0/data/cdemu-bash-completion.sh 2018-07-07 21:55:02.000000000 +0200
@@ -112,7 +112,7 @@
return 0
;;
"--medium-type")
- local medium_types="cdr74 cdr80 cdr90 cdr99 dvd+r"
+ local medium_types="cdr74 cdr80 cdr90 cdr99 dvd+r bdr"
COMPREPLY=( $(compgen -W "${medium_types}" -- ${cur}) )
return 0
;;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.1.0/debian/changelog new/cdemu-client-3.2.0/debian/changelog
--- old/cdemu-client-3.1.0/debian/changelog 2017-06-10 23:29:17.000000000 +0200
+++ new/cdemu-client-3.2.0/debian/changelog 2018-07-07 21:55:02.000000000 +0200
@@ -1,3 +1,3 @@
-cdemu-client (3.1.0-1) debian; urgency=low
+cdemu-client (3.2.0-1) debian; urgency=low
* Initial Release. Closes: #705409
-- Henrik Stokseth Sat, 05 Apr 2014 12:00:00 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.1.0/debian/control new/cdemu-client-3.2.0/debian/control
--- old/cdemu-client-3.1.0/debian/control 2017-06-10 23:29:17.000000000 +0200
+++ new/cdemu-client-3.2.0/debian/control 2018-07-07 21:55:02.000000000 +0200
@@ -4,14 +4,14 @@
Homepage: http://cdemu.sourceforge.net/
Maintainer: Henrik Stokseth
Build-Depends: debhelper (>= 9)
-Build-Depends-Indep: python (>= 2.6.6-3), intltool, cmake (>= 2.8.5), dh-python
-X-Python-Version: >= 2.6.6
+Build-Depends-Indep: python3 (>= 3.4.0), intltool, cmake (>= 2.8.5), dh-python, bash-completion
+X-Python3-Version: >= 3.4.0
Standards-Version: 3.9.7
Package: cdemu-client
Architecture: all
-Depends: python (>= 2.6.6-3), python-gi (>= 3.0.0), gir1.2-glib-2.0, cdemu-daemon (>= 3.0.0), ${python:Depends}, ${misc:Depends}
+Depends: python3 (>= 3.4.0), python3-gi (>= 3.0.0), gir1.2-glib-2.0, cdemu-daemon (>= 3.0.0), ${python3:Depends}, ${misc:Depends}
Recommends: bash-completion, gcdemu (>= 3.0.0)
Description: Command-line client to control CDEmu daemon
This is cdemu-client, a command-line client for controlling the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.1.0/debian/rules new/cdemu-client-3.2.0/debian/rules
--- old/cdemu-client-3.1.0/debian/rules 2017-06-10 23:29:17.000000000 +0200
+++ new/cdemu-client-3.2.0/debian/rules 2018-07-07 21:55:02.000000000 +0200
@@ -9,5 +9,5 @@
dh_auto_configure -- "-DPOST_INSTALL_HOOKS:BOOL=OFF"
%:
- dh $@ --with python2
+ dh $@ --with python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.1.0/man/cdemu.1 new/cdemu-client-3.2.0/man/cdemu.1
--- old/cdemu-client-3.1.0/man/cdemu.1 2017-06-10 23:29:17.000000000 +0200
+++ new/cdemu-client-3.2.0/man/cdemu.1 2018-07-07 21:55:02.000000000 +0200
@@ -62,14 +62,6 @@
Allows an encoding for text-based image format (such as CUE) to be specified. This
might be needed if the image descriptor file contains non-ASCII characters and does
not use Unicode.
-
-.B --dvd-report-css
-Mark the DVD image as CSS-encrypted. This influences the generation of fake
-Disc Structure 0x01, and as such works only with images of DVD videos that do
-not provide this information (most images, with exception of perhaps mds/mdf, don't).
-Enabling this option allows images of CSS-encrypted DVDs (e.g. created using 'dd'
-or 'readcd' without running through a CSS decryption step when creating the image)
-to be played by a deCSS-enabled Linux media player.
.TP
.B create-blank [options] --writer_id=<writer-id> <device>
Creates blank recordable disc in the specified device. \fBdevice\fR is the number
@@ -131,6 +123,18 @@
desired device, or \fIall\fR. \fBnew-value\fR is the new value to be set.
If this argument is omitted, currently set value is displayed.
.TP
+.B dvd-report-css <device> [new-value]
+Report the loaded DVD as CSS-encrypted. \fBdevice\fR is the number of the
+desired device, or \fIall\fR. \fBnew-value\fR is the new value to be set.
+If this argument is omitted, currently set value is displayed.
+
+This flag influences the generation of fake Disc Structure 0x01, and as
+such works only with images of DVD videos that do not provide this
+information (most images, with exception of perhaps mds/mdf, don't).
+Enabling this option allows images of CSS-encrypted DVDs (e.g. created using 'dd'
+or 'readcd' without running through a CSS decryption step when creating the image)
+to be played by a deCSS-enabled Linux media player.
+.TP
.B device-id <device> [new-vendor-id] [new-product-id] [new-revision] [new-vendor-specific]
Displays/sets device ID. \fBdevice\fR is the number of the desired device.
\fBnew-vendor-id\fR is the new vendor ID string to be set (8 characters max).
@@ -174,7 +178,8 @@
cdemu load 0 ~/image.daa --password=seeninplain
.TP
.B Loading a raw image of a CSS-encrypted DVD created by 'dd', so it can be played by mplayer:
- cdemu load 0 ~/image.iso --dvd-report-css=true
+ cdemu load 0 ~/image.iso
+ cdemu dvd-report-css 0 1
.TP
.B Creating a blank recordable disc: DVD+R SL with ISO image writer:
cdemu create-blank --writer-id=WRITER-ISO --medium-type=dvd+r 0 ~/output-image.iso
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cdemu-client-3.1.0/src/cdemu new/cdemu-client-3.2.0/src/cdemu
--- old/cdemu-client-3.1.0/src/cdemu 2017-06-10 23:29:17.000000000 +0200
+++ new/cdemu-client-3.2.0/src/cdemu 2018-07-07 21:55:02.000000000 +0200
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# cdemu: command-line CDEmu client
@@ -41,7 +41,7 @@
# *** Globals ***
app_name = "cdemu"
-app_version = "3.1.0"
+app_version = "3.2.0"
supported_daemon_interface_version = [ 7, 0 ]
# I18n
@@ -53,12 +53,18 @@
# Set process name
-if sys.platform == "linux2":
- # Set process name. Only works on Linux >= 2.1.57.
+# "linux2" is for python2, "linux" is for python3
+if sys.platform == "linux" or sys.platform == "linux2":
+ # Process name must be a byte string...
+ if isinstance(app_name, bytes):
+ app_name_bytes = app_name
+ else:
+ app_name_bytes = app_name.encode('utf-8')
+
try:
import ctypes
libc = ctypes.CDLL("libc.so.6")
- libc.prctl(15, app_name, 0, 0, 0) # 15 = PR_SET_NAME
+ libc.prctl(15, app_name_bytes, 0, 0, 0) # 15 = PR_SET_NAME
except Exception:
pass
@@ -115,7 +121,6 @@
parser.add_argument("image_file", type=str, nargs="+", help=_("image file(s)"))
parser.add_argument("--password", type=str, help=_("password for encrypted images"))
parser.add_argument("--encoding", type=str, help=_("encoding for text-based images"))
- parser.add_argument("--dvd-report-css", action="store_true", help=_("flag the DVD disc as CSS-encoded"))
def __call__ (self, proxy, arguments):
# We need to pass absolute filenames to daemon
@@ -127,8 +132,6 @@
parser_params["encoding"] = GLib.Variant("s", arguments.encoding)
if hasattr(arguments, "password"):
parser_params["password"] = GLib.Variant("s", arguments.password)
- if hasattr(arguments, "dvd_report_css"):
- parser_params["dvd-report-css"] = GLib.Variant("b", arguments.dvd_report_css)
# Particular device vs. any device
if arguments.device == "any":
@@ -192,7 +195,7 @@
parser.add_argument("device", type=str, help=_("device"))
parser.add_argument("image_file", type=str, help=_("image filename/basename"))
parser.add_argument("--writer-id", type=str, nargs="?", required=True, help=_("ID of image writer to use"))
- parser.add_argument("--medium-type", type=str, nargs="?", choices=['cdr74', 'cdr80', 'cdr90', 'cdr99', 'dvd+r'], help=_("medium type"))
+ parser.add_argument("--medium-type", type=str, nargs="?", choices=['cdr74', 'cdr80', 'cdr90', 'cdr99', 'dvd+r', 'bdr'], help=_("medium type"))
parser.add_argument("--param", type=str, nargs="?", action='append', help=_("additional writer parameter(s)"))
def __call__ (self, proxy, arguments):
@@ -290,7 +293,10 @@
valid_parameters[parameter_entry[0]] = parameter_entry
# Now, go over given parameters and validate them
- for key,value in parameters.items():
+ # NOTE: we need to use list(parameters.items()) because we may
+ # change the dictionary (pop() call during validation), and that
+ # raises error in python3
+ for key,value in list(parameters.items()):
try:
parameter_entry = valid_parameters[key]
except KeyError as e:
@@ -834,6 +840,86 @@
########################################################################
+# DVD report CSS #
+########################################################################
+class cmd_dvd_report_css (object):
+ def __init__ (self, subparsers):
+ name = "dvd-report-css"
+ description_msg = _("")
+ help_msg = _("displays/sets DVD report CSS/CPPM flag")
+
+ parser = subparsers.add_parser(name, description=description_msg, help=help_msg, formatter_class=argparse.ArgumentDefaultsHelpFormatter, argument_default=argparse.SUPPRESS)
+ parser.set_defaults(command_function=self)
+
+ parser.add_argument("device", type=str, help=_("device"))
+ parser.add_argument("new_value", nargs="?", type=str, help=_("new value"))
+
+ def __call__ (self, proxy, arguments):
+ # Set DVD report CSS flag
+ if hasattr(arguments, "new_value"):
+ try:
+ enabled = str2bool(arguments.new_value)
+ except ValueError:
+ raise CDEmuError(_("String '%s' is not a number") % (arguments[1]))
+
+ if arguments.device == "all":
+ try:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
+ raise CDEmuError(_("Failed to get number of devices: %s") % (e))
+
+ print(_("Setting DVD report CSS/CPPM flag of all devices to %i.") % (enabled))
+ for device in range(0, num_devices):
+ try:
+ proxy.DeviceSetOption(device, "dvd-report-css", GLib.Variant("b", enabled))
+ except GLib.Error as e:
+ print_warning(_("Failed to set DVD report CSS/CPPM flag of device %i to %i: %s") % (device, enabled, e))
+ continue
+ else:
+ try:
+ device = int(arguments.device, 0)
+ except ValueError:
+ raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
+
+ print(_("Setting DVD report CSS/CPPM flag of device %i to %i.") % (device, enabled))
+ try:
+ proxy.DeviceSetOption(device, "dvd-report-css", GLib.Variant("b", enabled))
+ except GLib.Error as e:
+ raise CDEmuError(_("Failed to set DVD report CSS/CPPM flag of device %i to %i: %s") % (device, enabled, e))
+
+ # Get DVD report CSS flag
+ else:
+ # Particular device vs. all devices
+ if arguments.device == "all":
+ try:
+ num_devices = proxy.GetNumberOfDevices()
+ except GLib.Error as e:
+ raise CDEmuError(_("Failed to get number of devices: %s") % (e))
+
+ print_header(_("Devices' DVD report CSS/CPPM flag:"))
+ print("%-5s %-10s" % (_("DEV"), _("ENABLED")))
+
+ for device in range(0, num_devices):
+ try:
+ enabled = proxy.DeviceGetOption(device, "dvd-report-css")
+ except GLib.Error as e:
+ print_warning(_("Failed to get DVD report CSS/CPPM flag of device %i: %s") % (device, e))
+ continue
+
+ print("%-5s %i" % (device, enabled))
+ else:
+ try:
+ device = int(arguments.device, 0)
+ enabled = proxy.DeviceGetOption(device, "dvd-report-css")
+ except GLib.Error as e:
+ raise CDEmuError(_("Failed to get DVD report CSS/CPPM flag of device %i: %s") % (device, e))
+ except ValueError:
+ raise CDEmuError(_("String '%s' is not a number") % (arguments.device))
+
+ print(_("DVD report CSS/CPPM flag of device %i: %i") % (device, enabled))
+
+
+########################################################################
# Device ID #
########################################################################
class cmd_device_id (object):
@@ -897,7 +983,7 @@
for device in range(0, num_devices):
try:
values = proxy.DeviceGetOption(device, "device-id")
- device_id = map(str, values)
+ device_id = list(map(str, values))
except GLib.Error as e:
print_warning(_("Failed to get device ID of device %i: %s") % (device, e))
continue
@@ -907,7 +993,7 @@
try:
device = int(arguments.device, 0)
values = proxy.DeviceGetOption(device, "device-id")
- device_id = map (str, values)
+ device_id = list(map(str, values))
except GLib.Error as e:
raise CDEmuError(_("Failed to get device ID of device %i: %s") % (device, e))
except ValueError:
@@ -1223,6 +1309,7 @@
cmd_dpm_emulation(subparsers) # DPM emulation
cmd_tr_emulation(subparsers) # TR emulation
cmd_bad_sector_emulation(subparsers) # Bad sector emulation
+ cmd_dvd_report_css(subparsers) # DVD report CSS/CPPM
cmd_device_id(subparsers) # Device ID
cmd_enum_parsers(subparsers) # Enumerate parsers
cmd_enum_writers(subparsers) # Enumerate writers