I used the free, open-source layout program Scribus to design the interior of The Ethics of Anarcho-Capitalism. It took several hours to learn but, after that, it was a pleasure to use.
There are already good tutorials available for how to do book layout with Scribus, but I thought it would be helpful to describe the solution to one of the bigger challenges that I faced in producing a print-ready PDF.
The difficulty was not due to Scribus itself, but rather that I chose to use IngramSpark as the manufacturer for my hardcover books. When I was comparing them to Lulu.com, it seemed that the main difference was that IngramSpark makes slightly nicer books but is harder to use. Quality seemed worth a little extra effort, but I did not realize how much harder it would be.
The default PDF produced by Scribus was readily accepted by KDP, so when IngramSpark rejected it, I was surprised. What was more surprising was that the error was “internal error.” Wow. As a bonus, this error is only returned after a few days of “processing”.

IngramSpark’s customer support was not very helpful. The first few times I contacted them they just said, “try again.” After a week, I convinced them to open a case with their technical support. After a few more days of failed attempts, a new error message appeared. Even better, it only took about 15 minutes to fail.

Now that I could make 4 attempts per hour, I was able to narrow things down quickly. The problem was that IngramSpark requires all fonts to be embedded, as opposed to outlined. I used Minion Regular, Minion Bold, and Minion Italic in the book body and Scribus would only embed the latter two if the output format was PDF/x-1a. To get the option to output PDF/x-1a, I needed to enable color management as described in this forum post.
Unfortunately, after submitting the new PDF/x-1a file, IngramSpark rejected it because it contained ICC profiles (which I added to get the option to export PDF/x-1a in the first place).
Fortunately, I found a helpful comment on Stack Overflow, which enabled me to “fix” the PDF produced by Scribus so that IngramSpark would accept it. It uses GhostScript to remove the ICC profiles:
gs -o interior_no_icc.pdf -sDEVICE=pdfwrite -sColorCoversionStrategy=Gray -sProcessColorModel=DeviceGray -dCompatibilityLevel1.4 -dOverrideICC interior.pdf
Finally, the file was accepted. A few days later I was able to order hardcover copies and, a few days after that, the hardcover version automatically appeared on amazon.com alongside the KDP paperback and ebook.