GNU ccd2cue - CCD sheet to CUE sheet converter
Manifesto: On the internet there is a gigantic quantity of optical disc image
files in numerous formats. Countless times we need to burn some of
them. Some time ago I needed it, but I came across a file format
extremely irritating for a Free Software user like me: a CD layout
descriptor file, with .ccd suffix, generated by a proprietary
software called CloneCD. I searched the internet for a way to burn
that file on the GNU+Linux-Libre system, but I only found a lot of
people asking for a solution in a lot of forums, and getting the
unanimous answer: no way! At first I could not believe that at that
point there was no option. Then, with a little bit of patience and
research, I wrote some code to convert those files into a format much
more common and accessible, an ad-hoc standard in the GNU operating
system: the CUE sheet format. So I could burn a lot of what I wanted!
I wondered whether it would be useful for others… and here is
— Bruno Félix Rezende Ribeiro (oitofelix)
GNU ccd2cue is a CCD sheet to CUE sheet converter. It supports the
full extent of CUE sheet format expressiveness, including mixed-mode
discs and CD-Text meta-data. It plays an important role for those who
need to use optical disc data which is only available in the
proprietary sheet format CCD, but don’t want to surrender their
freedom. It fills an important gap in the free software world because
before its conception it was impossible to use complex forms of
optical disc data laid out by CCD sheets in a whole/holy free
|The GNU ccd2cue software is free software; you can redistribute
it and/or modify it under the terms of the GNU
GPL (General Public Licence) as
published by the FSF (Free Software Foundation); either
version 3, or (at your option) any later version.|
The GNU ccd2cue documentation is also intended to be a reference
documentation for both sheet format specifications. That way we can
reverse engineer the secret CCD sheet proprietary format only once and
then make the information available for developers in order to benefit
all free software users that want their software to be interoperable.
The CUE sheet format is not a secret, but with this package we take
the opportunity to ensure that its specification is available under a
free documentation license for the sake of the whole free software
|The GNU ccd2cue documentation is free documentation; you can
redistribute it and/or modify it under the terms of the GNU
FDL (Free Documentation Licence)
as published by the FSF — with no Invariant Sections; either version
1.3, or (at your option) any later version.|
The current stable release is 0.3 (released
January 23, 2014). You can download it here:
You can find that and earlier releases at a nearby
GNU ftp mirror; or if automatic
redirection does not work use the GNU main ftp server.
This release is signed by Bruno Félix Rezende Ribeiro. His key ID is
0x28D618AF. You can retrieve that key from a key server
using the command
gpg --recv-keys 0x28D618AF --keyserver hkp://keys.gnupg.net
Check the key’s authenticity with the command
gpg --fingerprint 0x28D618AF | sed -n '/^[[:blank:]]\+Key/s/^.*= //p'
It must print the following fingerprint:
7CB1 208C 7336 56B7 5962 2500 27B9 C6FD 28D6 18AF
Otherwise something is wrong! In that case don’t use the downloaded
tarball and contact the developers as described in Contact.
A CVS repository, where the development takes place, is also
available. To stay up to date with the latest developments in the
source tree, you can anonymously checkout the repository with the
cvs -z9 -d:pserver:email@example.com:/sources/ccd2cue co ccd2cue
You can get in touch with other users and the developers of this
program subscribing to the mailing list. Anyone is welcome to join
the list; to do so, visit the bug-ccd2cue web interface. You can use this list for all
discussion, including asking for help and bug reporting, although the
preferred method for reporting bugs is the dedicated bug tracking web
interface described in Bug reporting. To post a message to all
the list members, send email to firstname.lastname@example.org. To see
the collection of prior postings to the list, visit the
If you feel somewhat chatty, eager for a somewhat more instantaneous
response from community, you can join us on our friendly IRC channel:
If you come across some problem and need help you can contact the
community as described in Contact. If you think you found a
bug, but is not quite sure about it, you can instead ask for support
on our support tracker. We will revise
your post, advise you and take the appropriate measures. If you are
confident you have found a bug, you can submit a bug report directly
at our bug tracker. Please, when reporting a
bug include enough information for the maintainers to reproduce the
problem. Generally speaking, that means:
- The contents of any input files necessary to reproduce the bug and
command line invocations of the program(s) involved (crucial!).
- A description of the problem and any samples of the erroneous output.
- The version number of the program(s) involved (use
- Hardware, operating system, and compiler versions (
- Unusual options you gave to configure, if any (see
- Anything else that you think would be helpful.
This program is a collaborative effort and we encourage contributions
from anyone and everyone — your help is very much appreciated. You
can help in many ways:
- Donate to developers in order to support their work. See
- Write documentation. We are specially in need to complete the CCD
sheet format specification.
- Help users in the mailing list and IRC channel.
- Find and report bugs. See Bug reporting.
- Fix reported bugs.
- Implement new feature ideas.
- Write test cases.
- Check the documentation against the implementation.
- Translate the program strings to other languages.
You can join the development team to contribute code and documentation
at the development page. Patches are most
welcome, but contributed code should follow the GNU Coding Standards. If it doesn’t, we’ll need to find someone to
fix the code before we can use it. It is also necessary that the
contributor be willing to assign their copyright to the FSF, since the
developers plan to make it officially part of the GNU operating system
and they want FSF to enforce the program’s license. To get started
hacking see how to
If you find this program useful, please send a donation to
its developers to support their work. If you use this program at your
workplace, please suggest that the company make a donation. We
appreciate contributions of any size – donations enable us to spend
more time working on this package, and help cover our infrastructure
If you’d like to make a donation of any value, please send it to the
following Bitcoin address:
Since we aren’t a tax-exempt organization, we can’t offer you a tax
deduction, but for all donations over 0.05 BTC, we’d be happy to
recognize your contribution on the donors page
and on DONORS file for the next release.
We are also happy to consider making particular improvements or
changes, or giving specific technical assistance, in return for a
substantial donation over 0.5 BTC. If you would like to discuss
this possibility, write to us at email@example.com.
Another possibility is to pay a software maintenance fee. Again,
write to us about this at firstname.lastname@example.org to discuss how
much you want to pay and how much maintenance we can offer in return.
Thanks for your support!
The development sources are available through CVS at Savannah:
If you are getting the sources from CVS (or change
configure.ac), you’ll need to have Automake, Autoconf and
Gettext installed to (re)build. You’ll also need help2man. All of
these programs are available from https://ftp.gnu.org/gnu/.
After getting the CVS sources, and installing the tools above, you can
./bootstrap to do a fresh build. After that first time,
make should suffice. See file INSTALL.
When modifying the sources, or making a distribution, more is needed,
- This distribution also uses Gnulib to share common files, stored as a submodule in git.
- When updating gettext, besides the normal installation on the system,
it is necessary to run
gettextize -f in this hierarchy to
update the po/ infrastructure. After doing so, rerun
gnulib-tool --import since otherwise older files will have been
imported. See Gnulib Manual, for more information.