Having the architecture in the package name (or the version string) isn't a great solution unless you have a really good reason to do so.
You got the version error because Launchpad sees the source package as hello
and tries to update the hello
package that is in your PPA. However, the package in your PPA has a greater version string than the one you're uploading ('i' is greater than 'a'). I think Launchpad also checks the version in the main repos, so you can't upload an older version of a package for a series that has a newer package in the main repos.
As far as I know, Launchpad doesn't allow you to upload binaries (even for closed-source applications). You have to only upload the source tarball and debian folder tarball, and Launchpad will build it for all applicable architectures. This is determined by what is in the debian/control file. For each package
- If there is a line that says
Architecture: any
, then Launchpad will build the package for (at least) amd64 and i386. This generally applies to any libraries and executables. - If there is a line that says
Architecture: all
, then Launchpad will build this just one, in an i386 chroot, and share that build for all architectures. This generally applies to data files that are the same in any computer (even OS).
Other values are allowed, but these are the common ones.