If you are thinking of creating a Software Definition File for updating your software, this page shows you how.
The layout
; Example Software Definition File ; Last updated [date] [Software] Software=My Product Site=http://www.MyWebsite.com/ Dir=C:\DefaultDir DirContains=file1.ext,file2.ext,folder\file3.ext,folder2\file4.ext DirEndWith=\DefaultDir DirReg=[HKLM|HKCU]>Path\To>RegistryKey DirRegAppend=\DefaultDir [Server] Server=My update database server title Site=http://www.MyServerWebsite.com/ UpdateListURL=http://www.MyServerWebsite.com/UpdateListFile.php UserCounter=http://www.MyServerWebsite.com/UserCounter.php URLServer=http://www.MyServerWebsite.com/UpdateURLQuery.php?updateid= URLForward=http://www.MyServerWebsite.com/DownloadCounter.php?url= URLReport=http://www.MyServerWebsite.com/ReportBrokenURL.php?url= [SDF] UpdateURL=http://www.MyWebsite.com/example.sdf
Attribute information
Some of the below attributes are required (must always be present), which are marked with (Required).
Also some of the attributes are ignored by SwUpdata Lite, which are marked with (SwUpdata Lite).
Heading | Attribute | Value |
---|---|---|
[Software] | Software | (Required) The title of the product. |
Site | (SwUpdata Lite) The software's website address, e.g. http://www.planetquake.com/quake2/, or http://www.planethalflife.com/. | |
Dir | (SwUpdata Lite) The default software's installation path. This is to give the user an idea of where it is (or it could be the actual one if it's a fixed path). | |
DirEndWith |
(SwUpdata Lite) The end of the entered software directory path must end with this value. If it doesn't then the user cannot continue. |
|
DirContains |
(SwUpdata Lite) A list of files seperated by commas (,) which must exist inside the software's installation path. If they do not exist, then the user is not allowed to continue. This is useful if you want to check if the user really does have a copy of your software installed. |
|
DirReg |
(SwUpdata Lite) Accesses software installation path stored in the Windows registry. Format must be of: [HKLM|HKCU]>Path\To>RegistryKey For example (for Half-Life 1): HKCU>Software\Valve\Steam>ModInstallPath |
|
DirRegAppend |
(SwUpdata Lite) Appends this value to the end of the path from the registry. Ideal for game modifications if they are installed in a sub-folder of the game's install location. |
|
BitmapURL | URL to an online copy of your software's bitmap branding image (.bmp files only). | |
BitmapFit |
true | false If true, resizes the bitmap image to fit the branding image area. Note that the resizing is poor and you might find that image quality is lost. |
|
KillProcs |
List of full process file names seperated by commas. These processes will be killed before the user attempts to perform an update. If they are killed unsuccessfully then an error message occurs asking the user to close the program or kill the process manually. |
|
UpdatesPage |
true | false Disables the updates list page where the user can select which updates to download and install. The updates page is enabled by default (without this setting). |
|
[Server] | Server | (SwUpdata Lite) The title of your update server database website. |
Site | (SwUpdata Lite) Your update server's database website address. | |
UpdateListURL | (Required) The full URL to your update server's list/query file. This can be a plain text file or a server executable (e.g. PHP or Perl). | |
URLServer |
The full URL to the update server's URL query executable. This is queried to get an update's download URL. Leave blank ("") and URL's will be read directly from the UpdateListURL file instead. |
|
BaseDownloadURL |
This is applied to the start of a download URL if that download URL does not start with "http:" or "ftp:/". This can be used to cut down on the size of your updates list if most of your downloads are on the same webspace. |
|
URLForward |
The full URL to a server executable which will be executed everytime a download is requested.
The script will be executed with the download URL as the query string. This could be used to increase the download count for a particular download. See the Download statistics section on the servers page for more information. |
|
URLReport |
The full URL to a server executable which will be executed when a broken download link is found. The script will be executed with the download URL as the query string. |
|
UserCounter |
The full URL to a server executable which will be executed when someone updates your product with Software Updata for the first time. The initial purpose of this is to add to a users count to show how many people are using Software Updata with your software. |
|
[SDF] | UpdateURL | (SwUpdata Lite) The full URL to your SDF file on a remote (Internet) location. This can be used for updating your SDF file (see below). |
OnlineURL |
The full URL to an online Software Definition File containing other (all or not all) SDF attributes. This can be used for security purposes as the file is downloaded, attributes read, and then quickly deleted. This is also useful if you need to update SDF attributes very often. With this value set, you do not have to use the UpdateListURL attribute in the main (local user) SDF. The only other requirement for a local SDF to be accepted by SwUpdata is the software's product name. The 'UpdateURL' [SDF] attribute can still be used to update the local user's SDF file. |
As you can see, there are currently only two attributes that are actually required (require a value of some kind). All the other attributes are completely optional.
Example #1 (basic)
; Non-working SDF for game Quake II "Blobby" mod ; Last updated 1st October 2004 [Software] Software=Quake II: Blobby Site=http://www.geoshities.com/blobbymod/ Dir=C:\Quake2\blobby DirEndWith=\blobby DirReg=HKLM>Software\Quake2>InstallDir DirRegAppend=\blobby [Server] Server=Blobby Updates Database Site=http://www.geoshities.com/blobbymodupdates/ UpdateListURL=http://www.geoshities.com/blobbymodupdates/updates.txt [SDF] UpdateURL=http://www.geoshities.com/blobbymod/blobby.sdf
Example #2 (secure)
Local SDF to be downloaded by Jeff's users:
; jefficonedit.sdf :: Jeff's Icon Editor SDF [Software] Software=Jeff's Icon Editor [SDF] OnlineURL=http://members.bipod.com/jeff/iconedit/online_iconedit.sdf
Remote SDF on Jeff's webspace (so users cannot modify it):
[Software] Site=http://members.bipod.com/jeff/ Dir=C:\Program Files\IconEditor DirReg=HKLM>Software\IconEditor>InstallLocation DirContains=iconedit.exe,iconedit.dll,logo.bmp,manual\manual.htm [Server] UpdateListURL=http://members.bipod.com/jeff/iconedit/updates.txt UserCounter=http://members.bipod.com/jeff/iconedit/downloads.php [SDF] UpdateURL=http://members.bipod.com/jeff/iconedit/iconedit.sdf
Releasing SDF updates
The 'UpdateURL' attribute must be set to a SDF file on the Internet (URL).
If changes are made to the SDF file, the new SDF file must be uploaded to this URL and thus made available for Software Updata to download directly.
Software Updata will check for MD5 value differences for an update, so no definate change has to be made to the SDF file for an update to be triggered (1 character change is enough to make an update occur).
Built in SDF updating is not supported by Software Updata Lite. All updates (including Software Updata Lite itself) must be done through the server updates list for that server.
Adding a branding image
You can add a branding bitmap image to your software on the left of Software Updata.
The image must be in bitmap format in the Software folder with the same name as your SDF file (except with a .bmp file extension rather than .sdf). The size should be 90 pixels wide by around 170 in height.
You can get the bitmap to fit the branding image area by adding BitmapFit=true to the Software section of your SDF.
Notes
- You can have more than one SDF file for the same product name.
- Non-required attributes can be omitted from SDF's completely.
- Keep product names exactly the same. E.g. always use Quake II not Quake2 or Quake 2, and Half-Life not HalfLife or Half Life for similar product SDF's. A product's installation directory is stored in the registry under that product name (e.g. "Quake II" -> "C:\Quake2"). If you all use the same product names for the same product, you will be able to share the same directory path value (user's won't have to re-enter / browse for their software installation directory more than once for SDF's for the same products.)
- You may have noticed that the example shows a .txt file being used as the updates list. And you would be correct to think "can I use a plain text file as a updates database/list?"
Check out the server page...
Software Updata Lite
Software Updata will only use one SDF file, which must be called default.sdf.