The source code is not published for commercial or proprietary apps submitted to My Apps. You choose an application to be commercial by specifying a price, and proprietary by choosing a non-open-source license.
Regarding the Python question, my guess is that you're asking because Python app packages generally install the source files. You could distribute a bundle with the bytecode instead of the source files, but with the caveat that it can be decompiled. You could also try obfuscating the code, but while it seems that obfuscating Python code is not hard to do, also the efectiveness might be limited. You can learn more here, for example.
In any case, only users who have purchased your app will be able to access whatever it installs, but you should decide which type of license to use before submitting the app. You could even make it a commercial open source app!
On the page you link to it says:
Canonical provides this packaging service to you free of charge.
and goes on to explain how to lay out the tarball containing your binaries.
If you create such a tarball and submit it via MyApps then all the packaging will be done for you. As it says at the bottom you can provide a source package if you like, but it's not required. Note that this is specific to closed-source or for-pay apps, anything that is libre and gratis has a different process currently.
As for your other questions:
How is the 32-vs-64 bit thing handled?
You can just upload 32-bit if you like as that works on 64-bit too. If you want to upload 32-bit and 64-bit then build it twice and put the results in "i386" and "amd64" subdirectories.
How is supporting different versions of Ubuntu handled -- 10.04, 10.10, 11.04, 11.10, etc?
You can specify which versions of Ubuntu your uploaded binaries work for as part of the submission process.
How are dependencies handled. If, for instance, my app depends on SDL, how do I specify that?
That will be added as part of the packaging process. If you want to add a comment specifying the dependencies then it will likely speed things up.
If I don't want to distribute source code for my application (which is a proprietary license), is there a clean way to indicate that source shouldn't go with the app?
As stated you don't have to provide the source at all.
If I'm not using autoconf/automake, does my Makefile need to be set up in a particular way, or are the autotools required?
Any build system supported in Ubuntu is allowed. If you are using plain Makefiles then that's fine. However, if you're only uploading binaries that's not an issue.
Best Answer
I'll also point you to Uploading your app.
Ideally, you should submit a Debian source package. A Debian source package consists of 3 files (with extensions
.dsc
,diff.gz
,orig.tar.gz
), which you should put in a compressed archive (a tarball, zip file, rar...) and upload into My Apps. This will allow reviewers to easily test and publish your app.However, there are some important caveats:
If your app is commercial or proprietary software: we still recommend uploading a Debian source package, but if you are not experienced in packaging you can also upload either a binary Debian package (
.deb
), your source code in a compressed archive, your binary executables and all files needed to run your app in a compressed archive, and the commercial packagers will package and publish it for you.If your app is Free Software and gratis: we recommend using a Personal Packaging Archive (PPA). You can specify the location of your PPA in the 'Any additional notes for the application reviewer' text box in the Overview tab of your app's entry in My Apps. You can also learn more about PPAs in the packaging section of the Ubuntu App Developer Site (*)
(*) Sorry for the confusion here, we've recently switched to recommending PPAs for Free Software gratis apps, and the web UI might be a it confusing.