id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,mlocked 2544,Move mythfilldatabase cleanup tasks to the housekeeper,sphery ,cpinkham,"The attached patches move cleanup functionality from mythfilldatabase to the housekeeper. Previously, we made the assumption that all users would run mythfilldatabase. However, now that EIT data has become a valid alternative for some, many users do not need to run mythfilldatabase. Currently, they must run mythfilldatabase at least occasionally to clean expired recording rules, the oldrecorded table, and program listings. After these patches, running mythfilldatabase will no longer be necessary for EIT-only users and database cleanup will be performed on a daily basis. The patch mythtv-cleanup_recording_rules_and_oldrecorded_in_housekeeper.patch moves the non-program-listings cleanup tasks from mythfilldatabase to the housekeeper. It's a very straightforward patch making use of the new !DailyCleanup tag. The patch mythtv-cleanup_program_listings_through_housekeeper.patch modifies the housekeeper to ensure program listings data get cleaned up as part of the housekeeper's !DailyCleanup. Rather than move the cleanup code to the housekeeper, the code was left in mythfilldatabase and mythfilldatabase was modified to allow running a ""--do-cleanup-only"" task which simply performs the cleanup tasks. Then, the housekeeper was modified to run mythfilldatabase with the ""--do-cleanup-only"" argument if !MythFillEnabled is 0 (if Myth doesn't automatically run mythfilldatabase) using the already in-place MFDThread code modified to allow specifying mythfilldatabase program and arguments through an MFDStruct argument (also allows specifying log since it seemed wrong to specify 2 out of 3 and in case we decide to forego logging of cleanup tasks). The reasoning behind leaving the listings data cleanup in mythfilldatabase is that the program that populates the tables should clean them up. The ""--do-cleanup-only"" argument is unadvertised (it's ""--help"" output is #if'ed out and can be either left as is, enabled, or removed) since its functionality is a normal part of mythfilldatabase's data grabbing and advertising it is likely to cause people to think they need to run it manually. Because mythfilldatabase supports a ""--no-delete"" argument, which allows keeping listings data for a week (rather than expiring all listings data whose starttime was on or before the previous day), the housekeeper calls ""mythfilldatabase --do-cleanup-only --no-delete"". The code in mythfilldatabase that calls clearOldDBEntries() was left intact. That way, users who run mythfilldatabase on their own may decide to allow ""immediate"" expiration of listings data or may specify ""--no-delete"". (This is why the housekeeper checks to see if it even needs to run a ""--do-cleanup-only"" task.) In addition, mythtv-cleanup_program_listings_through_housekeeper.patch also changes the housekeeper to find mythfilldatabase the same way we find other external myth apps--using GetInstallPrefix() and also modifies the setting label, default value, and help text, removing the focus on the path. (This additional change was put in the same patch because of the amount of conflicts a separate patch would create.) After one patch is applied, one of the *-after* patches should be used to apply the second patch. Because of conflicts the patch without the ""after"" won't apply after the other ""after""-less patch. You'll get some fuzz, but they apply correctly. ",patch,closed,minor,unknown,mythtv,0.20,medium,fixed,,,0