Cdemu and gcdemu

For developer discussion on package requests
Post Reply
Message
Author
preterive
Posts: 24
Joined: Sun Feb 11, 2018 6:10 am

Cdemu and gcdemu

#1 Post by preterive »

Hello,
please add Cdemu and gcdemu : https://wiki.ubuntuusers.de/CDEmu/ because this programm is really good for iso, bin and other.

User avatar
c4os
Posts: 29
Joined: Tue Jun 19, 2018 12:28 pm

Re: Cdemu and gcdemu

#2 Post by c4os »

You can install it over Ubuntu sources.

Create a apt source with:

Code: Select all

sudo nano /etc/apt/sources.list.d/cdemu.list
with the contend:

Code: Select all

# cdemu source
deb http://ppa.launchpad.net/cdemu/ppa/ubuntu/ bionic main  
deb-src http://ppa.launchpad.net/cdemu/ppa/ubuntu/ bionic main
Add the key with:

Code: Select all

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AFDF4CC6A4F32AA9395FAE8F423A2125D782A00F
Make a update:

Code: Select all

sudo apt-get update
Then you can install cdemu from synaptic.
Works with mx-17. I have tested it:

Code: Select all

$ cdemu --version
cdemu 3.2.0 - (C) 2006-2018 Rok Mandeljc
Powered on: MX 17 Horizon x86_64
Hardware: Dell Latitude E4300 - CPU: Intel Core 2 Duo P9600 (2) @ 2.535GHz - Memory: 4GB
Style: Resolution: 1280x800 - WM Theme: Balou - Theme: Blackbird [GTK2/3] - Icons: Papirus-Dark [GTK2]

rambo919
Posts: 102
Joined: Sat Sep 24, 2022 1:32 pm

Re: Cdemu and gcdemu

#3 Post by rambo919 »

This seems to have been discontinued for Debian and only is supported for Ubuntu and Fedora.

Given that PPA's are discouraged it would be better to have MXL versions.

It has Gnome and KDE managers

https://cdemu.sourceforge.io/debian
https://cdemu.sourceforge.io/about/gcdemu/
https://sourceforge.net/projects/kde-cdemu-manager/

The edge it has over other image mounters is it can mount referrer formats like cue for when converting to iso or mounting bin's directly is simply not a solution.

So please, I repeat OP's request for this to be added.

rambo919
Posts: 102
Joined: Sat Sep 24, 2022 1:32 pm

Re: Cdemu and gcdemu

#4 Post by rambo919 »

Given that this is clearly not happening I once again attempted manual build and it kept failing.... so I started rooting around in it's git and happily came upon this.

https://github.com/cdemu/cdemu/issues/23

Which not only updated a bunch of other packages but got the required software installed but then it failed to load so i found this

https://github.com/cdemu/cdemu/issues/22

Basically you add the deb-multimedia repo, install the dependencies and then the four required packages. Then you can either enable the daemon to autostart or start it separately each time you need to use the program. And you might need to reinstall vhba-dkms manually.

0x6A7232
Posts: 27
Joined: Sat Aug 20, 2022 12:42 am

Re: Cdemu and gcdemu

#5 Post by 0x6A7232 »

Adding another request for this. cdemu does not use systemd and the daemon isn't auto-starting.

Error given at system start is

Code: Select all

Daemon autostart faled. Error:
g-io-error-quark: Error calling StartServiceByName for
net.sf.cdemu.CDEmuDaemon: Timeout was reached (24)
Trying to figure out a way to convert the systemd init script to a sysv init script and sysv init scripts look arcane. I mean,

Systemd:

Code: Select all

[Unit]
Description=CDEmu daemon

[Service]
Type=dbus
BusName=net.sf.cdemu.CDEmuDaemon
ExecStart=/usr/bin/cdemu-daemon --config-file "%h/.config/cdemu-daemon"
Restart=no
vs

SysV Init:

Code: Select all

#!/bin/sh
# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
    set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
fi
### BEGIN INIT INFO
# Provides:          iscsid
# Required-Start:    $network $local_fs
# Required-Stop:     $network $local_fs sendsigs
# Default-Start:     S
# Default-Stop:      0 1 6
# Short-Description: iSCSI initiator daemon (iscsid)
# Description:       The iSCSI initiator daemon takes care of
#                    monitoring iSCSI connections to targets. It is
#                    also the daemon providing the interface for the
#                    iscisadm tool to talk to when administering iSCSI
#                    connections.
### END INIT INFO

# Author: Christian Seiler <christian@iwakd.de>

DESC="iSCSI initiator daemon"
DAEMON=/sbin/iscsid
PIDFILE=/run/iscsid.pid
OMITDIR=/run/sendsigs.omit.d

do_start_prepare() {
	if ! /lib/open-iscsi/startup-checks.sh ; then
		exit 1
	fi
}

do_start_cleanup() {
	ln -sf $PIDFILE $OMITDIR
}

do_stop_override() {
	# Don't stop iscsid if we're on initramfs or we had some
	# excluded sessions. We could actually stop it, it's not
	# required for the kernel to continue working with active
	# sessions, but it also doesn't hurt to leave it running.
	if [ -f /etc/iscsi/iscsi.initramfs ] ||
		( [ -f /run/open-iscsi/shutdown-keep-sessions ] && [ -n "$(cat /run/open-iscsi/shutdown-keep-sessions)" ] )
	then
		return
	fi
	do_stop "$@"
}
There's no way of guessing the correct syntax for an init script, I'd basically have to know how to program them from scratch.

Can we please (oh pretty please) get cdemu added by someone who knows this stuff like the back of their hand?

Tried starting the cdemu daemon manually and:

Code: Select all

$ cdemu-daemon
Starting CDEmu daemon with following parameters:
 - config file: (null) (exists: 0)
 - num devices: 1
 - control device: /dev/vhba_ctl
 - audio driver: null
 - bus type: session
 - default CDEmu debug mask: 0x0
 - default libMirage debug mask: 0x0

Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
Looks like a deadlock. Can't find GDBus package, guess that's my next rabbit hole to jump down, since MX uses a systemd shim for compatibility, it *should* be working, right? So maybe it's GDBus?

Looks like we're using DBus instead? Found these:

https://docs.gtk.org/gio/

https://docs.gtk.org/gio/migrating-gdbus.html

In hopes that the daemon was running successfully despite not returning control to the terminal window, I tried running gCDemu, it won't open.

Code: Select all

cdemu status
locks up then displays:

Code: Select all

$ cdemu status
ERROR: Failed to connect to CDEmu daemon: g-io-error-quark: Error calling StartServiceByName for net.sf.cdemu.CDEmuDaemon: Timeout was reached (24)
EDIT to add:
Poked around and here's the net.sf.cdemu.CDEmuDaemon.service file

Code: Select all

[D-BUS Service]
Name=net.sf.cdemu.CDEmuDaemon
SystemdService=cdemu-daemon.service
Exec=/bin/true
/bin/true "does nothing and exits successfully" so...??

EDIT: Looks like I found the culprit for some of this. Missing the libmirage-plugin, which I had thought I saw get installed, but it was libmirage11 (see https://gist.github.com/Rudo2204/c61d8b ... 57d849f589 -- so I had to:

Code: Select all

sudo add-apt-repository deb https://www.deb-multimedia.org bookworm main non-free
then sudo apt update & sudo apt install libmirage-plugin
then edit the

Code: Select all

/etc/apt/sources.list.d/archive_uri-https_www_deb-multimedia_org-bookworm.list
and comment out all lines then sudo apt update again

Service still has the same error as before but now I can manually start it with

Code: Select all

cdemu-daemon --config-file ~/".config/cdemu-daemon"
It will still lock up that terminal window, but you can then seem to use cdemu. (If you Ctrl+C the terminal window it will close the daemon as well.)
I have not tested mounting anything, just the program can view device status.
For gCDEmu, you need to right-click the tray icon & quit, then start it back up from your menu and then it will see the devices properly.

0x6A7232
Posts: 27
Joined: Sat Aug 20, 2022 12:42 am

Re: Cdemu and gcdemu

#6 Post by 0x6A7232 »

Ok, loading .cue files is a success and I've successfully played the audio tracks on the mixed mode CD (.bin) it referenced (data / audio combined). VLC can play back successfully, Asunder can view / rip the tracks, but Audacious and DeadBeef can't see the drive (hard coded CD device location?). Hope this helps someone out there.

User avatar
Stevo
Developer
Posts: 12774
Joined: Fri Dec 15, 2006 8:07 pm

Re: Cdemu and gcdemu

#7 Post by Stevo »

cdemu and gcdemu have been ported over for the MX 19 through 23 test repositories, and should be available soon.
MXPI = MX Package Installer
QSI = Quick System Info from menu
The MX Test repository is mostly backports; not the same as Debian testing

0x6A7232
Posts: 27
Joined: Sat Aug 20, 2022 12:42 am

Re: Cdemu and gcdemu

#8 Post by 0x6A7232 »

Stevo wrote: Tue Mar 05, 2024 2:53 am cdemu and gcdemu have been ported over for the MX 19 through 23 test repositories, and should be available soon.
Awesome news!

What about lib-mirage? That wasn't available anywhere except deb-multimedia and I guess they cause problems if left enabled (mx-updater said like 120 updates available while that repo was active). Without it, cdemu refused to even manually start up, although for some reason it's not a dependency, it seems.

User avatar
Stevo
Developer
Posts: 12774
Joined: Fri Dec 15, 2006 8:07 pm

Re: Cdemu and gcdemu

#9 Post by Stevo »

It's libmirage-plugin (from memory), it is a dependency. and it's also been ported over from DMO: https://mxrepo.com/mx/testrepo/pool/tes ... libmirage/

Tim has also sent me an init script for cdemu-daemon, so I will do an update for that that includes it.

Code: Select all

#!/bin/sh
### BEGIN INIT INFO
# Provides: cdemu-daemon
# Required-Start:       $syslog $local_fs $remote_fs 
# Required-Stop:        $syslog $local_fs $remote_fs 
# Short-Description: CDEmu daemon
### END INIT INFO

. /lib/lsb/init-functions
prog=cdemu-daemon
PIDFILE=/var/run/$prog.pid
DESC="CDEmu daemon"
start() {
        log_daemon_msg "Starting $DESC" "$prog"
        start_daemon -p $PIDFILE /usr/bin/cdemu-daemon --config-file "%h/.config/cdemu-daemon"
        if [ $? -ne 0 ]; then
                log_end_msg 1
                exit 1
        fi
        if [ $? -eq 0 ]; then
                log_end_msg 0
        fi
        exit 0
}

stop() {
        log_daemon_msg "Stopping $DESC" "$prog"
        killproc -p $PIDFILE /usr/bin/cdemu-daemon
        if [ $? -ne 0 ]; then
                log_end_msg 1
                exit 1
        fi
        if [ $? -eq 0 ]; then
                log_end_msg 0
        fi
}

force_reload() {
        stop
        start

}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        force-reload)
                force_reload
                ;;
        restart)
                stop
                start
                ;;

        *)
                echo "$Usage: $prog {start|stop|force-reload|restart}"
                exit 2
esac
MXPI = MX Package Installer
QSI = Quick System Info from menu
The MX Test repository is mostly backports; not the same as Debian testing

User avatar
oops
Posts: 1602
Joined: Tue Apr 10, 2018 5:07 pm

Re: Cdemu and gcdemu

#10 Post by oops »

... Nice to have this tool into MX too.
Pour les nouveaux utilisateurs: Alt+F1 pour le manuel, ou FAQS, MX MANUEL, et Conseils Debian - Info. système “quick-system-info-mx” (QSI) ... Ici: System: MX-19_x64 & antiX19_x32

Post Reply

Return to “Package Requests / Status”