Archive for August, 2011

* Sigil User Study

Posted on August 31st, 2011 by John. Filed under articles, Opinion, Sigil.


Introduction

Since taking over as the maintainer of Sigil I have spent some time reaching out to specific people in the ebook community to ask them about Sigil. Specifically if they use Sigil? Why or why not? What do they see as Sigil’s shortcomings? How do they use Sigil in their work flow? Why doesn’t Sigil work in their work flow. Basically, their thoughts and opinions on Sigil.

I asked specific people privately because I didn’t want to be inundated with responses. The people can be broken down into three different groups: self publishers, power users, and professionals. After talking to professionals I’ve come to realize that they can be broken down into small and large. The size relating to the size of the company and production volume. I spoke with about 8 people total and I tried to keep it even between the various groups.

I wanted to find out who is using Sigil, who isn’t using Sigil and why so I can determine where I want to take Sigil in the future. The only ebook editing I do is cleaning up a few books here and there. Learning how people use Sigil will help me to determine the best direction to take the project.

Self Publishers

Self publishers are authors. These are people who write their book and then want to sell it as an ebook themselves. Typically these people are using Word for writing. they export their work as HTML, then import into an ebook editor for final adjustments and savings as an ebook file. The two biggest things self publishers are looking for are easy and high quality .doc or .docx import and one click send to store functionality.

Self publishers are also interested in WYSIWYG editing and don’t want to know about the internals of ebooks. They are primarily writers who see ebooks one of many distribution methods. They don’t care about the intricacies of EPUB for instance, they just want their work to look good and be readable by their audience.

The typical tools I hear being used by self publishers are calibre for format shifting. Atlantis Word Processor and Jutoh for formatting and base ebook creation. Atlantis and Jutoh both provide very easy to use WYSIWYG interaction and you can use these without ever seeing a line of code.

Power Users

These are people who prepare works in their spare time as a hobby. They are not motivated by money and do not sell the works they publish. Typically the works power users deal with are public domain such as Shakespeare. This group also encompasses people who do not distribute works covered by copyright but spend their time cleaning and reformatting their favorite books strictly for their own enjoyment and personal use.

Power users are comfortable using either WYSIWYG and code editors. The biggest feature requested and talked about by power users is robust regular expression support for search and replace. Many of the books power users work with have terrible and often non-existant formatting. These works typically started life as either a scanned copy of a print book or a PDF file. Both of which typically leave broken paragraphs and misspellings thought the document. Which leads to spell check being the next most common request from this group. They are trying to take a jumble of half sentences and put them back together into a visually appealing layout.

The tools used by power users are Sigil, calibre, Word or Open Office macros, and many custom scripts. Also an advanced text editor like BBEdit and Notepad++ are must have tools.

Professionals

Professionals format ebooks for one purpose, money. This is what they do for a living. An author comes to them and pays to have the company turn their work into an ebook. For a modest fee an author can have a beautiful ebook produced without any headaches or hassle. Many authors prefer paying someone to do this portion of publishing for them just like they will pay an editor to edit, a print house to print, cover artist to design a cover and so forth. Authors write and typically want to concentrate solely on writing. Many self publishers format their own ebooks out of necessity because of the cost of hiring a professional.

With both small and large professionals I’m specifically talking about ebook publishing and digitization services. I’m not talking about huge publishers like Macmillan that do everything. However, the larger publishers I talked to makes me believe their process is the same as the huge publishers. The big difference between small and large professionals are the tools they use.

 Small

Small professionals tend to use either Sigil or Adobe’s InDesign for a good portion of their work. Both fill a very similar role in ebook creation. The big draw of InDesign over Sigil is InDesign supports print book layout creation. It’s an all in one tool. This type of professional tends to use off the shelf tools that are readily available. Sigil and InDesign are not the only exclusive tools they use but one or the other tends to be a heavily used tool in their tool box.

Large

Large professionals tend to use custom tools. They staff people who’s sole job is to develop and maintain ebook creation and formatting tools. They can afford to have custom tools that integration directly into their process. They don’t use off the shelf or vanilla tools. This group is all about custom everything. This allows them to quickly adapt to changes.

Professional Tools

Sigil or InDesign and custom tools are all I know. Many professionals are vague about their process and tools. Some even declined to talk to me at all. They use tools in some way that works for them but their methods and implementation are proprietary.

What Does This Mean For Sigil?

Out of all of these groups I have little desire to target self publishers. There are existing tools that do a great job of meeting this groups needs. Sigil has a WYSIWYG editor and it can certainly be improved but I don’t want to tie Sigil to a particular store or stores like Amazon or B&N. Also, I want to keep Sigil as an EPUB editor and not a generic ebook editor. I believe that Sigil’s strength lies in being able to manipulate the internals of the EPUB format itself. I want to target this aspect more.

Power users are the major group I want to target. Out of all of the people I spoke with power users use Sigil the most and get the most out of it. Advanced editing of an EPUB’s structure and code is where I want to take Sigil. That along with advanced text manipulation. Think expansion of calibre’s heuristic processing.

Small professionals are major users of Sigil and I do not want to discount them. I believe that their use of Sigil overlaps with power users enough that targeting power users will also target small publishers. I do not want to alienate small professionals and will continue to take their needs seriously. From what I’ve learned about small professionals tools that make code manipulation easier will be a benefit and hopefully reduce their need for other formatting tools.

The last group, large professionals, do not use Sigil. I don’t believe that changing Sigil to accommodate this group will get them to use Sigil. They use their own custom tools and Sigil doesn’t fit into their work flow and I don’t see it ever doing so. Thus I don’t see it being worth while to work toward making Sigil “the tool” for this group.

Tags: , , .



* Formatting Tips: Markdown, Textile and calibre

Posted on August 30th, 2011 by John. Filed under Formatting Tips.


About Formatting Tips.

Up to this point Formatting Tips have been focused on the EPUB format and working directly with the underlying XHTML and CSS. Not everyone wants or needs this level of control over the layout of their book. Often times a book only needs basic formatting such as headings, bold, and italic. There are other easier ways to format an ebook. However, in this case simpler does mean basic.

A very easy way to format an ebook is to start with a plain text file (TXT). Then use either Markdown or Textile to add the formatting. Both Markdown and Textile allow for simple text formatting and they are designed to be converted to HTML.

By using TXT with a formatting syntax you can use pretty much any text editor you want. Markdown and Textile are very simple formats that are much easier to learn than XHTML and CSS. Adding things like *bold* is as easy as putting a * before and after a segment of text.

I recommend looking at both Markdown and Textile. There are differences in what formatting they support but they both support the basics like bold, italic, and headings. I’ve found Markdown to be easier to use but Textile offers more options.

After adding your formatting to the text it’s very easy to turn the TXT file into your desired final format (EPUB or MOBI most likely). calibre supports TXT formatted with either Markdown or Textile. However, the Textile support is more robust. Simply convert to the output format of your choosing.

Tags: , , , , , , , , , , .



* Sigil 0.4.1 Released

Posted on August 26th, 2011 by John. Filed under Sigil.


Sigil 0.4.1 is complete and available. This is mainly a maintenance release and fixes a number of bugs. There are a few new features mostly around the code view. As always see the changelog for a complete list of changes.

Tags: , .

    Comments Off


* Formatting Tips: Calibre as a First Step

Posted on August 23rd, 2011 by John. Filed under Formatting Tips.


About Formatting Tips.

Calibre’s robust conversion engine can be leveraged to help with formatting tasks. Converting with calibre helps when you are dealing with a format you cannot easily edit, or a format you aren’t very familiar. It’s also helpful in situations where the insides of the file is such as mess it’s hard to understand.

Many of these tasks are geared toward people who already have an ebook in an existing format that they need to clean up. A common case is a book from Project Gutenberg. Ebooks from Project Gutenberg are in no way poor quality. However, a TXT file is not going to have any formatting because the format doesn’t support it. There is a large number of people who want to add fancy formatting to classic titles. Another reason for conversion first is HTML documents produced by Microsoft Word. While Word is a great text editor its HTML output is atrocious. There is often lots of extra formatting information that is unnecessary and unused. Conversion can reduce the amount of time they need to spend adding formatting by using calibre as a first step.

Some common ebook formats MOBI (used by Amazon) and eReader PDB are compiled. They are not easily edited and one of the easiest ways to make changes is to convert to a format that has robust editing tools.

There have been many ebook formats over the decades that ebooks have been around. I’m not going to go into why there are so many ebook formats but know that many of them are not widely used any more. It’s easier to take a format like an ebook in the Plucker format from Project Gutenberg and convert it to an easy to edit format than working in the Plucker format.

Now that the whys are out of the way let’s move on to the hows.

When converting from any format there are a few output formats I recommend. EPUB is of course easy to edit using Sigil. If you want to use HTML as your base format I would commend looking into calibre’s HTMLZ output. HTMLZ is really a ZIP file with a single HTML file inside of it. One major advantage of HTMLZ over EPUB is HTMLZ output has some options that can be used to clean up the output. For instance HTMLZ can condense CSS styling to a basic set and produce a CSS HTML file inside of the archive.

Another option for conversion is TXT output. TXT by itself will remove all formatting. If the file is so poorly formatted it could be easier to start from scratch and add all formatting back yourself. TXT output also has the advantage of being able to produce Markdown or Textile formatted output. Both of these give basic formatting while removing extraneous formatting information.

Finally, when converting with calibre look at the Heuristic formatting options. They are disabled by default and should be used with care (Except with non-Markdown and non-Textile TXT input). There are heuristics for many common formatting needs such as detecting and formatting chapters and chapter subtitles. There are heuristics for italicizing common cases, removing unnecessary hyphens, and fixing broken lines. There are more options than these and it’s a good idea to go though them all and enable the ones that apply to the ebook your working on.

My recommendation is if you’re starting with a poorly formatted starting point use conversion to do some of the basic work for you. Conversion is an automated process and can take care of some tedious tasks for you but it’s not a replacement for human editing.

Tags: , , , , , , , .

    Comments Off


* Nook Covers Not Showing Up

Posted on August 21st, 2011 by John. Filed under articles.


The Barnes and Noble (B&N) Nook has issues reading covers for EPUB files. Not all Nooks have this issue it’s only the Color and Touch because the original Nook supported reading the cover from an external image file. The Color and Touch will only read covers from the EPUB files themselves (no cover thumbnails unfortunately). This issue with the Nook is caused by B&N not properly implementing the EPUB specification in their device.

Covers are defined by a meta element in the EPUB’s OPF file within the metadata section. The meta element needs to have two attributes, “name” which needs to be cover and “content” which points to the id of the cover item (needs to be an image) in the manifest section.

According to the OPF spec the OPF must be valid XML and conform to the OPF Package Schema. In XML the order of attributes does not matter. You can use any order for elements and they will conform to the schema.

This is where the issue with the Nook comes in. The Nook requires the attributes to be in a specific order. Namely, name followed by content. E.G.

<meta name="cover" content="id5" />

Again, the order according to the spec does not matter. Many reading device and software implement the spec correctly and do not have an issue with reading covers from EPUB files. It is only the Nook that has this peculiar requirement.

Sigil, 0.4.0, writes the attributes for elmenets in the OPF in alphabetical order. This is correct and why EPUBs created with this version of Sigil will not show a cover on the Nook. Version 0.4.1 of Sigil will include a fix for this issue.

The easiest way to deal with broken covers on the Nook is to use Sigil 0.4.1. First open the EPUB with Sigil and make sure the cover is properly set. Right click on the image in the Book Browser and under Add Semantics choose Cover Image if it is not already checked. This will add the meta element defining the cover to the OPF. Save and quit Sigil. That’s it, your done. However, be sure you’re not using Sigil version 0.4.0. You need to be using 0.4.1 or greater.

If you don’t want to use Sigil you can manually verify and if necessary add the above meta fragment to the manifest section. Remember name needs to be “cover” and content needs to be the id of the corresponding image in in the manifest section.

Next you need to edit the OPF file and change the attribute order for the meta element relating to the cover. If you’re on Windows you can use tweak_epub which is provided for free by the Atlantis Word Processor people. This allows tool will show you a list of all files within the EPUB and let you open the OPF for editing. If you’re on OS X or Linux change the .epub extension to .zip and unzip the file. This will create a folder with all of the files within the EPUB. Find the OPF, open and edit it.

You can unzip an EPUB because they are really just ZIP archives but they have some special requirements. You can’t just compress a folder and change the extension to EPUB. If you’re on OS X pdurrant on MobileRead has created an AppleScript application for rebuilding EPUBs from extracted content.

Finally, for command line people (Linux) pdurrant also provided these command line instructions for creating the archive with the zip command.

$ zip -X0 "full path to new epub file" mimetype
$ zip -rDX9 "full path to new epub file" * -x "*.DS_Store" -x mimetype

Once you have rebuilt your edited EPUB it should now have its cover appear on your Nook. If it’s not displaying properly reboot your Nook. Sometimes the Nook will not update the cover in it’s internal cache if you change it. Even if you deleted the book and put it back on the device it may not display correctly without a reboot.

Tags: , , , , .



* Sigil SCM Move to Git Completed Sucessfully

Posted on August 20th, 2011 by John. Filed under Sigil.


Last night I moved Sigil’s SCM from Mercurial (hg) to Git (git). The change was completed successfully and without any issues. 0.4.0 had locations for things like the user manual pointing to the git locations. These are now live and working again. These links are now broken in any release before 0.4.0. This is unfortunate but unavoidable.

Tags: , , , .



* Calibre and HamsterSoft Conclusion

Posted on August 18th, 2011 by John. Filed under calibre.


Previously I posted about an instance of copyright infringement. It was found that a company called HamsterSoft was using portions of calibre in their proprietary and closed source ebook conversion program. The good news is the situation has been resolved.

On August 15th I was contacted by Pavel, one of the founders of HamsterSoft. He said that they are committed to their Hamster Free eBook Converter (HFEC) program and they feel compliance with calibre’s license (the GNU GPL v3) is their only option. He also informed me that they had stopped distribution of HFEC. Pavel ask if I could give them a few weeks to prepare the source code for release. He also wanted me to know that their support email address was posted in error and it is not checked.

I took the fact that they had stopped distribution and wanted to comply with the GPL as a sign of good faith. I told him that we’re happy to see people using calibre in new and interesting ways as long as it’s in compliance with the GPL. I also told him that as long as they’ve stopped distribution they can take as much time as they need to prepare the source code for release.

On August 17th I received another email from Pavel. He said that they are not experienced with the GPL and would like for me to look at the source package they have prepared. He also asked for me to confirm that it would comply with the GPL and they would not restart distribution until I approved the package or a subsequent version if this one was not in compliance.

I looked at the package and replied that as long as all source is included that it is in compliance. From looking though the package it appeared that everything was included. The binary component that was missing from the first package was included in source form in this one. I also suggested that that a license.txt file with information about the code licensing be included so there is no confusion.

As of August 18th HamsterSoft posted the following apology letter:

PUBLIC APOLOGY

2011-08-18

HamsterSoft, on behalf of all its members, would like to apologize to Kovid Goyal and John Schember for the fact that since the launch of the Hamster Free eBook Converter program our company has not satisfied all of the GPL v.3 license conditions.

Our Company developers realize that the creators of Calibre have made enormous efforts during the past few years, and we respect the labor of other programmers. It was distressing for us to discover that we, either directly or indirectly, have impeded the work of others – that we have not supported their idea of development of the new software on the basis of open code.

Over the last few days we have conducted a lot of work in order to eliminate the existing defects. We hope that Kovid, John, and the other Calibre developers will consider the license agreement met and community interests complied with, and that they will accept our sincere apologies so that our company can continue to efficiently and easily create new free software for forty world languages.

Also, as of August 18th they have posted the complete source code for HFEC. At this time they have not yet fully restored their website (it’s only partly) for easily downloading HFEC as an installable Windows program.

I’m willing to accept that any past dealings in regard to this matter are a result of a misunderstanding. I’m also willing to accept from communication with Pavel and HamserSoft’s actions that they genuinely wanted to comply with the GPL. I accept HamsterSoft’s apology and I am reinstating all rights afforded to them under the GPL to my work that is part of calibre. They are now in compliance with the GPL and no longer violating my copyright.

Tags: , , , , , .



* Formatting Tip: Poetry

Posted on August 16th, 2011 by John. Filed under Formatting Tips.


About Formatting Tips.

Poetry is one of the hardest elements to get right when formatting an ebook. The biggest issue is poems visually use a fixed width. Each line needs to be easily distinguishable. If they run together the rhyming and meter can easily be thrown off. Ebooks typically allow for reflowable text. This is where the text on screen changes to accommodate the users selected font, font size, and the screen size. This is exactly what happens on a web page how each line changes length when the browser window is resized.

When dealing with a poem do not put it in a pre tag. Do not use a single p tag and separate each line with a br tag. Do use an ul tag and hide the bullet. All of these methods will end up looking terrible.

When dealing with a poem there are two parts: the poem’s text and the attribution. Each of these parts will be in p tags. Lets start by setting a base p style with CSS. We want to remove the empty space between paragraphs.

p {
    margin-bottom: 0;
    margin-top: 0;
}

There are a few special things we want to do with the poem’s text. First, we want it pushed to the right so it is clear to the reader that they have entered a poem. One way to do this is to put the entire poem in a blockquote tag. I don’t like this because this affect can be achieved with CSS. Second, the text should be smaller than the regular text. Third, we want each line to not be indented. However we do want each line to be distinguishable even if the text is wrapped. The trick is to indent the portion of the line that wraps. Think of this like a reverse paragraph indent. We can make this happen by using a negative value for the text indent. Here is the CSS block to make all this happen.

.poem-text {
    margin-left: 3em;
    font-size: small;
    text-indent: -1em;
}

With many poems there are often breaks ever few lines. Handles these by putting in an almost empty paragraph. It’s necessary to put a non-breaking space in the empty paragraph because completely empty paragraphs are often ignored by devices and reading software.

<p>&nbsp;</p>

For the title we want to have it appear italicized. We also want to force a little space between the poem’s text and the title. The author we want to force some blank space after it so it doesn’t run into a paragraph below. Both the title and author need to be right justified. Finally, I like to use small caps with the title and author. However, there is one major issue with small caps. Many reading devices and software (one’s using Adobe’s software) do not support small caps. Sometimes you can get away with using a CSS transformation to uppercase. Check your targeted reading platform / device to make sure this will come through. If it doesn’t you will need to make the title and author uppercase in the text itself.

.poem-title {
    font-style: italic;
    text-align: right;
    margin-top: 2em;
    /* Pick one or neither */
    font-variant: small-caps;
    text-transform: uppercase;
}
 
.poem-author {
    margin-bottom: 2em;
    text-align: right;
    /* Pick one or neither */
    font-variant: small-caps;
    text-transform: uppercase;
}

The best way to illustrate this concept is with an example. Download ft-poetry.epub. Opening the file with Sigil you will see the example chapters and the external CSS that is referenced by each XHTML file.

Tags: , , , , , , .

    Comments Off


* Sigil 0.4.0 and FlightCrew 0.7.2 Released

Posted on August 15th, 2011 by John. Filed under Sigil.


The long awaited Sigil 0.4.0 release is now out. Along with Sigil is a new release of FlightCrew. FlightCrew version 0.7.2 is the latest version bundled with Sigil.

If you’re an OS X user then one thing need to be aware of is these two releases bump the minimum OS X version to 10.6 (Snow Leopard). The Linux builds (x86 and x64) are built on Ubuntu 11.04.

A lot of work went into 0.4.0. New features and bug fixes galore. See the ChangeLog for full details. I have to thank Strahinja Marković (the original creator) for leaving the 0.4.0 in a nearly finished state. Also, Charles King for being a bug fixing monster and helping make this release great.

One major change that is going to take place next week is, I am switching the source code management (SCM) system from Mercurial (hg) to Git. This will break the update checker in previous versions. Hence waiting a week before making the change. I have already converted FlightCrew (needed to test) so FlightCrew’s updater in previous version won’t inform you of an update. This is unfortunate but unavoidable.

Due to the change to Git the links for the manual in Sigil are not going to work for a week. This is because I’ve updated the locations in Sigil to point to the new locations that won’t be available until the switch to Git.

Tags: , .

    Comments Off


* Dealing With Copyright Infringement – Calibre Being Ripped Off

Posted on August 13th, 2011 by John. Filed under articles, calibre.


*** Update: HamsterSoft has fixed the issue and is now in compliance with the GPL. They are no longer in violation of my copyright in regard to calibre ***

Introduction

Copyright infringement is something many creators come face to face with. Over the past two months it has been something I’ve been dealing with. A third party is using portions of calibre in their proprietary application in violation of the GNU GPL version 3 (GPL v3) that calibre is licensed under. I have been helping deal with this violation.

In early July it was brought to my attention that a new ebook conversion utility, the Hamster Free eBook Converter (HFEC) made by HamsterSoft, was released. Since I work on calibre, looking at other ebook conversion tools is of interest to me. I’ve worked with other people on developing conversion tools and I’ve found that collaboration typically helps everyone.

About the Company

When I started looking into HFEC the fist thing I found was an announcement on the calibre Facebook page that the HFEC is using calibre for conversion in a non-compliant manner. Again, calibre is open source and licensed under the GPL v3. Using calibre’s source code in other programs is fine. We want people to do that and I’ve even helped people with doing so. However, the choice of license was deliberate. Kovid Goyal (the original creator of calibre) chose the GPL v3 because he believes in what the license stands for. Calibre using the GPL v3 is a major factor in why I started contributing to the project. All we ask is that if someone uses portions of calibre in their own project is that they abide by the copyright terms calibre is licensed under (GPL v3).

I looked at HamsterSoft’s website and they offer a variety of products; HFEC is their fourth application. What I noticed is two of their earlier products are very similar in design to HFEC. HamsterSoft use open source projects as the basis of these products. They create a custom interface around an open source base and release their program under a closed source, highly restrictive, proprietary license. In the case of the previous two products the open source projects they used are licensed under weak copyleft licenses. In the case of these two applications there is a good chance that they have not done anything wrong and have properly complied with those projects licenses.

Calibre however, uses a strong copyleft license. While investigating HamsterSoft I noticed that they had calibre listed as being licensed under the LGPL. The big difference between the LGPL and the GPL is the LGPL allows for incorporation in a proprietary application. The GPL does not. Under section 5 subsection C of the GPL v3 it states, “You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy.” Meaning HamsterSoft must release their entire work that incorporates calibre under the GPL v3 and the GPL v3 also requires access to source code.

Initial Contact

The announcement about the GPL violation was made on July 7th. That same day HamsterSoft responded in a a comment. They said, “@Calibre Got it! . We will fix this issues and ask you for your own acception. Thank you! Seems we mess much. Thank you!” I believe that by acception they mean exception. Kovid responded to them asking for an exception with, “@Hamster: Fix your GPL compliance. That means you have to make your product open source or stop using calibre. That much is required by the law.” It’s clear that Kovid has denied granting HamsterSoft a copyright exception to use calibre in HFCE without complying with the GPL v3. Also, even if Kovid had wanted to grant them an exception he cannot. Calibre does not practice copyright assignment. Each contributor retains the copyright on the work they contribute. To grant a copyright exception every contributor would need to agree and I for one would not agree to granting one. I purposely and knowingly put my work on calibre under the GPL v3 because that’s how I want my work licensed.

So, as of July 7th HamsterSoft was contacted in regard to the GPL violation in their HFEC program. Also, on July 7th they responded saying they undertand the issue and will fix it. Under the GPL v3 section 8 HamsterSoft has 30 days from receiving a notice of violation to cure the violation.

On July 11th HamsterSoft responded to their GPL violation via a FaceBook post. In this post they said, “Guys … seems we are much closer to the end of misunderstanding.” Closer is not fixed. Kovid responded to them with what needed to be done to come into compliance with calibre’s licensing (the GPL v3). This was the last communication from HamsterSoft that I am aware of.

Analysis of Steps Taken Toward Compliance

HamsterSoft appeared to make some effort to comply with the GPL v3. I cannot comment on motivations as they could be considered libel so I am only going to state facts as to the action HamsterSoft took. They clarified their licensed (EULA) that GPL components are not subject to their added restrictions such as disassembly, decompilation and reverse engineering. They modified their installer, website and Facebook page to make it clear that their product uses calibre. They uploaded some source code to their web site.

The source code that HamsterSoft uploaded was far from complete. It contains two non-complete binary builds of calibre. No mention if there are or not modifications. It is not clear if they modified calibre because the binary builds are only part of calibre not the entire program as it is officially distributed. No calibre source code, which they must supply (it’s not enough to point to the calibre project’s download page), was present.

Only a small amount of wrapper code that interfaces between calibre and their program was present. I found the following reference in the visual studio project file included in their source archive:

<HintPath>..\..\..\Bin\HamsterEbookConverterUI.dll</HintPath>

This is a reference to a linked, binary component. I’m assuming from the name that this is the actual graphical user interface (GUI). I will note that the GUI portions of HFEC are missing from the source archive. This component is clearly part of their application and was not included. Only portions that directly interact with calibre had their source included in the archive. The majority of the program was not released in a way that complies with the GPL v3.

No Answer Messages

With no response from HamsterSoft after July 11th Kovid sent an email to HamsterSofts support email address. Their support email is their only non-social network contact information.

On July 20th I sent them the following email and received no response:

Your web site says that the Hamster ebook converter program is based
on calibre which is licensed under the GNU GPL v3. This is request for
the all source code for the hamster ebook converter application. As
stated by you “Hamster Free eBook Converter made by HamsterSoft and
based on Calibre-engine created by Kovid Goyal and inherits all GNU
GPL 3.0 restrictions.” Under the GPL using part of a GPL application
in another application that application must be released under the
GPL. As such section 6 of the GPL requires that the corresponding
source code of a conveyed GPL application must be conveyed.

John Schember

With no response I sent another email on July 28th and again I received no response:

Hello HamsterSoft,

I am one of the copyright holders of calibre.

I noticed that you released the source code to the Hamster ebook
converter. While you did release some source code you did not release
all of the source code that links to the project. Specifically the
HamsterEbookConverterUI in by the .csproj file referenced by:

<HintPath>..\..\..\Bin\HamsterEbookConverterUI.dll</HintPath>

As of July 7th you said you would fix this situation. The above does
not fix the GPL compliance of the Hamster ebook converter. Under the
GPL all parts that link or create effectively a single program must be
licensed under a compatible license. The Hamster ebook converter is
effectively a single program and uses calibre (licensed under GPL) you
have released source code but only part of the source code. Other
parts are linked and used the HamsterEbookConverterUI. This needs to
be released in source form as well. The GPL does not permit the use of
a “wrapper” module that intefaces between GPL and non-GPL components.

I want to point out that under the GPL you have 30 days from the first
time you have received notice of violation to fix the issue. As of now
you have approximately 10 days until the deadline where all rights
granted to you under the GPL to use calibre will be terminated. The
deadline is Sunday August 7th.

Also, I want to point out that calibre is developed primarily by Kovid
Goyal but he is supported by a number of other developers around the
world. Due to the way calibre is licensed each individual developer
retains their own copyright. As such each individual developer can
claim copyright infringement if this situation is not rectified in the
allotted time.

John Schember

After having been given 30 days (as required by the GPL v3) from notification HamsterSoft has not brought themselves into compliance with calibre’s licensing. So, on August 8th I sent them the following email informing them that I am, as a copyright holder, permanently terminating any all all rights granted to them under the GPL v3 in regard to my work in calibre due to non-compliance of copyright terms.

Dear HamsterSoft,

You are using a work that I own the copyright of. The name of the work
involved is “Hamster Free eBook Converter”. It appears on a site
operated by you at http://ebook.hamstersoft.com/en/home,
http://ebook.hamstersoft.com/en/download, and via direct download at

http://stuff.hamstersoft.com/software/hamsterfreeebookconverter.exe.

You have built your program on the open source ebook tool called
calibre. I am a copyright holder of portions of calibre. Specifically
I hold copyright on portions of calibre relating to ebook conversion
for the following formats: TXT, HTMLZ, PDB, PML, PDF, and FB2. This is
in addition to other components of calibre.

My work on these components is available at

http://bazaar.launchpad.net/~kovid/calibre/trunk/files/head:/src/calibre/ebooks/.

Many of the listed components first appeared as part of calibre as of
2009.

Your copying and or use of my work, which appear at the link above, is
unauthorized. You have not received permission to use the piece nor to
make or distribute copies of them in the manner you have. Calibre is
licensed under the GPL version 3 and you have failed to comply with
the terms of this license.

You cannot incorporate GPL-covered software in a proprietary system.
The GPL states that any extended version of a GPL covered work must
also be released under the GPL if it is released at all. By embedding
calibre in The Hamster Free eBook Converter you have effectively made
them a single program. Also, the GPL does not permit the use of a
“wrapper” module that interfaces between GPL and non-GPL components.

As of July 7th 2011 you said you would fix this situation. As of
August 8th 2011 you have not fixed. As of now any all all rights
afforded to you to use portions of calibre under the GPL v3 are
terminated due to non-compliance with the license. The following
issues remain:

1) The component
<HintPath>..\..\..\Bin\HamsterEbookConverterUI.dll</HintPath>
referenced by your application has not had it’s source code released
under the GPL.

2) The source code for calibre and any modifications you have made to
it are not available by you. By being a distributor of calibre in
binary form you are responsible for also distributing it in source
form including any changes you have made to calibre.

Therefore, I believe you have willfully infringed my rights under 17
USC §101, et seq. and could be liable for statutory damages as high as
$100,000. Further, such copyright infringement is a direct violation
of the Digital Millennium Copyright Act and International Copyright
Law.

I demand that you immediately cease the use and distribution of the
work and all copies of it, that you remove any further works you may
have stolen and that you desist from this or any other infringement of
my rights in the future. Furthermore, I demand that you post an
apology.

You have already been given 30 days as afforded by the GPL from the
time you were notified of infringement. At this time, I shall consider
taking the full legal remedies available to rectify this situation
including contacting my lawyer.

Sincerely,

John Schember

Termination of Rights

As of August 13th HamsterSoft has again not responded to any email I’ve sent them. They are also continuing illegally to distribute the application they have built (HFEC) using my copyrighted material. As of August 8th all rights to use my work were terminated by me per the terms of the license (GPL v3) I released my work under. Due to the way HamsterSoft handled this situation I have no intentions of reinstatement.

A Note About Copyright and the GPL

Copyright is copyright. It doesn’t matter if it’s software, a book, an article, or a magazine. The GPL is a copyright license granting rights under specific terms. Licensing a work under the GPL is not very different than an author giving a publisher distribution rights.

Just because calibre is open source does not mean it is freely available for everyone to abuse. As an author (including software) my work is still covered by copyright. The GPL is simply a way I have licensed certain works. If one does not comply with the license then they do not have the right to use or distribute my work.

Legal Research

Due to this entire situation being a copyright issue there are a number of legal options. These options apply to all authors (in the USA, I can’t speak for elsewhere) for any type of work that is covered by copyright.

Surprisingly I had an issue finding information on how to handle a GPL violation. The easy part is informing the party of the violation. I couldn’t find much information on what to do after. I tried reaching out to the Software Freedom Law Center for advice but I didn’t receive a response. Kovid reached out to GPL Violations and was told that our options are limited. Their research found that HamsterSoft is a Russian company and due to this there isn’t much they could do for us. They advised seeing about having HamserSoft delisted from Google.

The best resource I found is Plagiarism Today (PT). It is a website devoted to helping people deal with copyright issues. They provide some great resources including template letters. They have advice for all copyright issues not just ones dealing with software.

Really our options come down to filing a lawsuit or utilizing the takedown notice provisions of the Digital Millennium Copyright Act (DMCA). At this point I opted for using DMCA notices. They are easy and exercising your rights under the DMCA doesn’t cost anything. Filing a lawsuit would require hiring an attorney and paying potentially a large sum of money. If HamsterSoft really is in Russia there is a good chance that a lawsuit wouldn’t go anywhere. Utilizing the DMCA does not mean that a lawsuit cannot be filled; it is still an option.

Digital Millennium Copyright Act (DMCA) Takedown Provision

The DMCA has provisions for notifying hosts and having copyrighted material removed. Basically what happens is a host cannot be found liable for distributing infringing material posted by third parties or customers if they follow the notice and takedown process. I decided to target Google, Yahoo, Bing and Facebook. I think the GPL Violations advice of having the delisted will be the most successful route I can take. It’s also the most affordable first step to take.

When sending a DMCA takedown notice there are a number of requirements that must be met. What I found was not required is an account of what action was previously taken to stop the infringement. I included it anyway when possible because many hosts (and search engines) forward the notice to various parties. Google for instance sends the notice to Chilling Effects as well as the accused.

Google and Facebook both have a web form for submitting notices. Bing (Microsoft) has a number of ways to send them a notice. I chose email. I sent the notices on August 8th. Here is the email I sent to both Microsoft and Yahoo:

To Whom It May Concern,

I am writing to you to avail myself of my rights under the Digital
Millennium Copyright Act (DMCA). This letter is a Notice of
Infringement as authorized in § 512(c) of the U.S. Copyright Law. I
wish to report an instance of what I feel in good faith is an instance
or Copyright Infringement. The infringing material appears on the
Service for which you are the designated agent.

You are registered with the U.S. Copyright Office as the Designated
Service Provider Agent to receive notifications of alleged Copyright
infringement with respect to users of the Service for which you are
the Designated Agent.

1. The material which I contend belongs to me, and appears illegally
on the Service is the following:

Hamster Free eBook Converter

2. The infringing material appears at the website addresses:

URLs Redacted

3. The original material appears at these addresses:

https://launchpad.net/calibre

http://calibre-ebook.com

4. The infringing material is available through the following search results

“hamster ebook”

URL Redacted

5. calibre is licensed under the GPL version 3. The Hamster Free eBook
Converter program uses portions of calibre in a way that is
incompatible with the GPL. As of July 7th 2011 Hamster was notified
and responded asking for an copyright exception. An exception was
promptly denied. It has now been more than 30 days and HamsterSoft has
not made the necessary changes to comply with calibre’s license. By
embedding calibre in The Hamster Free eBook Converter HamsterSoft has
effectively made them a single program. HamsterSoft released partial
source code for their program but neglected to release all parts.
HamsterSoft released portions of their program that constitute a
wrapper module that interfaces between the GPL and non-GPL components.
This is prohibited under the terms of the GPL.

6. My contact information is as follows:

John Schember

Address redacted

Phone number redacted

john@nachtimwald.com

7. I have a good faith belief that the use of the material that
appears on the service is not authorized by the copyright owner, its
agent, or by operation of law.

8. The information in this notice is accurate, and I am either the
copyright owner or I am authorized to act on behalf of the copyright
owner.

I declare under the perjury laws of the United States of America that
this notification is true and correct.

Signed: John Schember

DMCA Response

Yahoo was the first to respond. They said they get all of their search results from Microsoft via Bing and referred me to Microsoft. So no luck there.

Microsoft responded with a request for more information. After a week I haven’t heard back from them.

Google responded on August 11th and said they would remove the urls listed in my takedown notice. However, as of August 13th some of the listed urls are still returned by Google. Only a portion of them have been removed from their index.

Facebook was the most troublesome. They asked for clarification three times. I had to explain that on the HFEC Facebook info page there is a big button that says “Free Download”. When clicked it downloads the program which illegally (rights were terminated by me due to non-compliance with the GPL v3) uses my copyrighted work. I ended up having to take a screen shot of the page and put big red arrows pointing to the button. After this Facebook responded saying that they’ve removed the user generated content I reported as a copyright violation.

Conclusion

Having your hard work ripped off is not any fun. It’s even more of a slap in the face when you put your work out under a license that encourages and allows reuse and remixing. The GPL v3 was chosen because it’s restrictions are designed to keep a work from being taken and locked down. If HamsterSoft doesn’t want to abide by these terms then they cannot use calibre as the basis of their program.

Fortunately, there are options for us to peruse. As of now we’ve started taking the easiest and cheapest. I don’t agree with certain parts of the DMCA, specifically the anti-circumvention clauses. However, the notice and takedown provision are very helpful when dealing with copyright violations.

I wish I could end this account with news of a crushing victory but I cannot. HamsterSoft is still distributing their proprietary application based on calibre and they are still able to market their program. I’ve been able to make some progress into stopping them and hopefully I will be able to make more once Microsoft gets back to me about the DMCA notice. At this point it looks like I’m going to have to explore other legal options.

Notes

  1. I am very much against Digital Rights Management (DRM) and it would not have helped in this case.
  2. I am not a lawyer and this is not intended to be legal advice. It is an account a specific situation of copyright infringement.
  3. I purposely did not include any links to HamsterSoft’s website.

*** Update: HamsterSoft has fixed the issue and is now in compliance with the GPL. They are no longer in violation of my copyright in regard to calibre ***

Tags: , , , , , .