I just solved a problem I was having with a package in a very strange way, and it prompted me to search for any technical details about what operations are performed when you click on 'distribute content.'
Briefly, the problem was with a package I was trying to deploy for Firefox. The content consisted of the Firefox installer and several text files for customizing it (using a .cmd script as the actual installer).
I had deployed this package for several older versions of Firefox, but when I came to do the latest one I kept getting the error "Failed to find ccm_SoftwareDistribution object for AdvertiD" during OSD (it also would not deploy directly to a collection, it was like it was invisible to the client).
After much trial and error, I determined that the five text files (.js, .css, .ini) were somehow not being distributed correctly since when I removed them from the package the OSD task sequence ran fine. I solved the problem by creating new text files with the same name as the originals and copy/pasting their contents.
Why did this work? What happens when you distribute content? All I can find from some searching is that the source files you specify in a package get copied to the distribution point (in this case, I have a single site with the site server acting as the distribution point). Does this mean the contents of the folder I keep all of my source files in gets replicated somewhere else on the hard drive?
When you distribute content, do the files get registered in the SQL database or is there an attribute store somewhere which would recognize copies of these files but not new files with the same name/permissions?
And one final question, are packages deployed to clients via HTTP? The properties of the distribution point seem to indicate that but I haven't actually come across any specific documentation stating it (though I haven't really looked).