patchupdate.py: Introduce categories for 'stable' patchsets.

Based on the discussion in bug 202, this patch adds support for categories
to patchupdate.py.
This commit is contained in:
Sebastian Lackner 2015-04-28 00:57:29 +02:00
parent 040fd28c00
commit a1c7c48e57
39 changed files with 215 additions and 0 deletions

View File

@ -230,6 +230,7 @@ def read_patchset(revision = None):
all_patches = {}
name_to_id = {}
all_bugids = set()
categories = {}
# Read in sorted order (to ensure created Makefile doesn't change too much)
for name, directory in sorted(enum_directories(revision, config.path_patches)):
@ -294,6 +295,14 @@ def read_patchset(revision = None):
if i != j and any([fnmatch.fnmatch(f, val) for f in other_patch.modified_files]):
patch.auto_depends.add(j)
elif key == "category":
val = "category-%s" % val
if name_to_id.has_key(val):
raise PatchUpdaterError("Category name in definition file %s collides with patchset %s" % (filename, val))
if not categories.has_key(val):
categories[val] = set()
categories[val].add(i)
elif key == "fixes":
r = re.match("^[0-9]+$", val)
if r:
@ -318,6 +327,15 @@ def read_patchset(revision = None):
elif revision is None:
print "WARNING: Ignoring unknown command in definition file %s: %s" % (filename, line)
# Add virtual targets for all the categories
for category, indices in categories.iteritems():
patch = PatchSet(category, directory)
patch.depends = indices
i = next(unique_id)
all_patches[i] = patch
name_to_id[name] = i
# To simplify the task of keeping the bug list up-to-date, list all bugs
# which might require attention.
if revision is None:
@ -628,6 +646,11 @@ def generate_script(all_patches):
# Generate code for applying all patchsets
lines = []
for i, patch in [(i, all_patches[i]) for i in resolved]:
# Categories do not have any files associated, so just skip over
if len(patch.files) == 0:
continue
lines.append("# Patchset %s\n" % patch.name)
lines.append("# |\n")

View File

@ -0,0 +1 @@
Category: stable

View File

@ -1 +1,2 @@
Fixes: [26256] Support for setcap on wine-preloader
Category: stable

View File

@ -1 +1,2 @@
Fixes: [18477] Avoid crashing when broken app tries to release surface although refcount is zero
Category: stable

View File

@ -2,3 +2,4 @@ Fixes: [31984] Add stub for D3DXComputeTangentFrameEx
Fixes: Add stub for D3DXIntersect
Fixes: [26379] Support for D3DXComputeNormals
Fixes: Add stub for D3DXComputeNormalMap
Category: stable

View File

@ -0,0 +1 @@
Category: stable

View File

@ -1,2 +1,3 @@
Fixes: [8854] Ensure X11 input events are handled even without explicit message loop
Fixes: [34559] Scrolling causes mouse and screen to lock in Call to Power II
Category: stable

View File

@ -1,2 +1,3 @@
Fixes: [32323] Implement an Arial replacement font
Fixes: [13829] Implement a Microsoft Yahei replacement font
Category: stable

View File

@ -1 +1,2 @@
Fixes: [32163] Add stub for gdiplus.GdipCreateEffect
Category: stable

View File

@ -1 +1,2 @@
Fixes: [37759] Fix access violation when calling GetStringTypeW with NULL src.
Category: stable

View File

@ -1,2 +1,3 @@
Fixes: [10767] Fix comparison of punctuation characters in lstrcmp
Fixes: [32490] Graphical issues in Inquisitor
Category: stable

View File

@ -1 +1,2 @@
Fixes: Process APC calls before starting process
Category: stable

View File

@ -1,2 +1,3 @@
Fixes: Support for Dynamic DST (daylight saving time) information in registry
Fixes: [36374] Add Dynamic DST exceptions for Israel Standard Time
Category: stable

View File

@ -1 +1,2 @@
Fixes: Improvement for heap allocation performance
Category: stable

View File

@ -1 +1,2 @@
Fixes: [26268] Add stub for NtSetLdtEntries/ZwSetLdtEntries
Category: stable

View File

@ -1 +1,2 @@
Fixes: [28995] Allow special characters in pipe names
Category: stable

View File

@ -1 +1,2 @@
Fixes: Fix race-condition when threads are killed during shutdown
Category: stable

View File

@ -1 +1,2 @@
Fixes: [38480] Fix regression caused by blacklisting supported OpenGL extensions
Category: stable

View File

@ -68,6 +68,7 @@ patch_enable_all ()
enable_Staging="$1"
enable_advapi32_LsaLookupSids="$1"
enable_browseui_Progress_Dialog="$1"
enable_category_stable="$1"
enable_combase_String="$1"
enable_comctl32_LoadIconMetric="$1"
enable_configure_Absolute_RPATH="$1"
@ -280,6 +281,9 @@ patch_enable ()
browseui-Progress_Dialog)
enable_browseui_Progress_Dialog="$2"
;;
category-stable)
enable_category_stable="$2"
;;
combase-String)
enable_combase_String="$2"
;;
@ -1061,6 +1065,157 @@ patch_apply ()
}
if test "$enable_category_stable" -eq 1; then
if test "$enable_Staging" -gt 1; then
abort "Patchset Staging disabled, but category-stable depends on that."
fi
if test "$enable_configure_Absolute_RPATH" -gt 1; then
abort "Patchset configure-Absolute_RPATH disabled, but category-stable depends on that."
fi
if test "$enable_d3d9_Surface_Refcount" -gt 1; then
abort "Patchset d3d9-Surface_Refcount disabled, but category-stable depends on that."
fi
if test "$enable_d3dx9_36_D3DXStubs" -gt 1; then
abort "Patchset d3dx9_36-D3DXStubs disabled, but category-stable depends on that."
fi
if test "$enable_dbghelp_Debug_Symbols" -gt 1; then
abort "Patchset dbghelp-Debug_Symbols disabled, but category-stable depends on that."
fi
if test "$enable_dinput_Events" -gt 1; then
abort "Patchset dinput-Events disabled, but category-stable depends on that."
fi
if test "$enable_fonts_Missing_Fonts" -gt 1; then
abort "Patchset fonts-Missing_Fonts disabled, but category-stable depends on that."
fi
if test "$enable_gdiplus_GdipCreateEffect" -gt 1; then
abort "Patchset gdiplus-GdipCreateEffect disabled, but category-stable depends on that."
fi
if test "$enable_kernel32_GetStringTypeW" -gt 1; then
abort "Patchset kernel32-GetStringTypeW disabled, but category-stable depends on that."
fi
if test "$enable_libs_Unicode_Collation" -gt 1; then
abort "Patchset libs-Unicode_Collation disabled, but category-stable depends on that."
fi
if test "$enable_ntdll_APC_Start_Process" -gt 1; then
abort "Patchset ntdll-APC_Start_Process disabled, but category-stable depends on that."
fi
if test "$enable_ntdll_Dynamic_DST" -gt 1; then
abort "Patchset ntdll-Dynamic_DST disabled, but category-stable depends on that."
fi
if test "$enable_ntdll_Heap_FreeLists" -gt 1; then
abort "Patchset ntdll-Heap_FreeLists disabled, but category-stable depends on that."
fi
if test "$enable_ntdll_NtSetLdtEntries" -gt 1; then
abort "Patchset ntdll-NtSetLdtEntries disabled, but category-stable depends on that."
fi
if test "$enable_ntdll_Pipe_SpecialCharacters" -gt 1; then
abort "Patchset ntdll-Pipe_SpecialCharacters disabled, but category-stable depends on that."
fi
if test "$enable_ntdll_Threading" -gt 1; then
abort "Patchset ntdll-Threading disabled, but category-stable depends on that."
fi
if test "$enable_opengl32_Revert_Disable_Ext" -gt 1; then
abort "Patchset opengl32-Revert_Disable_Ext disabled, but category-stable depends on that."
fi
if test "$enable_regedit_String_Termination" -gt 1; then
abort "Patchset regedit-String_Termination disabled, but category-stable depends on that."
fi
if test "$enable_server_Address_List_Change" -gt 1; then
abort "Patchset server-Address_List_Change disabled, but category-stable depends on that."
fi
if test "$enable_setupapi_SetupDiSetDeviceInstallParamsW" -gt 1; then
abort "Patchset setupapi-SetupDiSetDeviceInstallParamsW disabled, but category-stable depends on that."
fi
if test "$enable_shell32_SHFileOperation" -gt 1; then
abort "Patchset shell32-SHFileOperation disabled, but category-stable depends on that."
fi
if test "$enable_urlmon_CoInternetSetFeatureEnabled" -gt 1; then
abort "Patchset urlmon-CoInternetSetFeatureEnabled disabled, but category-stable depends on that."
fi
if test "$enable_user32_GetRawInputDeviceList" -gt 1; then
abort "Patchset user32-GetRawInputDeviceList disabled, but category-stable depends on that."
fi
if test "$enable_user32_WndProc" -gt 1; then
abort "Patchset user32-WndProc disabled, but category-stable depends on that."
fi
if test "$enable_version_VersionInfoEx" -gt 1; then
abort "Patchset version-VersionInfoEx disabled, but category-stable depends on that."
fi
if test "$enable_wine_inf_Performance" -gt 1; then
abort "Patchset wine.inf-Performance disabled, but category-stable depends on that."
fi
if test "$enable_wine_inf_ProfileList_UserSID" -gt 1; then
abort "Patchset wine.inf-ProfileList_UserSID disabled, but category-stable depends on that."
fi
if test "$enable_winebuild_LinkerVersion" -gt 1; then
abort "Patchset winebuild-LinkerVersion disabled, but category-stable depends on that."
fi
if test "$enable_winecfg_Libraries" -gt 1; then
abort "Patchset winecfg-Libraries disabled, but category-stable depends on that."
fi
if test "$enable_wined3d_Multisampling" -gt 1; then
abort "Patchset wined3d-Multisampling disabled, but category-stable depends on that."
fi
if test "$enable_wined3d_Revert_PixelFormat" -gt 1; then
abort "Patchset wined3d-Revert_PixelFormat disabled, but category-stable depends on that."
fi
if test "$enable_winemenubuilder_Desktop_Icon_Path" -gt 1; then
abort "Patchset winemenubuilder-Desktop_Icon_Path disabled, but category-stable depends on that."
fi
if test "$enable_winex11_Thread_Data" -gt 1; then
abort "Patchset winex11-Thread_Data disabled, but category-stable depends on that."
fi
if test "$enable_wininet_ParseX509EncodedCertificateForListBoxEntry" -gt 1; then
abort "Patchset wininet-ParseX509EncodedCertificateForListBoxEntry disabled, but category-stable depends on that."
fi
if test "$enable_winmm_Delay_Import_Depends" -gt 1; then
abort "Patchset winmm-Delay_Import_Depends disabled, but category-stable depends on that."
fi
if test "$enable_ws2_32_Connect_Time" -gt 1; then
abort "Patchset ws2_32-Connect_Time disabled, but category-stable depends on that."
fi
if test "$enable_ws2_32_Select" -gt 1; then
abort "Patchset ws2_32-Select disabled, but category-stable depends on that."
fi
enable_Staging=1
enable_configure_Absolute_RPATH=1
enable_d3d9_Surface_Refcount=1
enable_d3dx9_36_D3DXStubs=1
enable_dbghelp_Debug_Symbols=1
enable_dinput_Events=1
enable_fonts_Missing_Fonts=1
enable_gdiplus_GdipCreateEffect=1
enable_kernel32_GetStringTypeW=1
enable_libs_Unicode_Collation=1
enable_ntdll_APC_Start_Process=1
enable_ntdll_Dynamic_DST=1
enable_ntdll_Heap_FreeLists=1
enable_ntdll_NtSetLdtEntries=1
enable_ntdll_Pipe_SpecialCharacters=1
enable_ntdll_Threading=1
enable_opengl32_Revert_Disable_Ext=1
enable_regedit_String_Termination=1
enable_server_Address_List_Change=1
enable_setupapi_SetupDiSetDeviceInstallParamsW=1
enable_shell32_SHFileOperation=1
enable_urlmon_CoInternetSetFeatureEnabled=1
enable_user32_GetRawInputDeviceList=1
enable_user32_WndProc=1
enable_version_VersionInfoEx=1
enable_wine_inf_Performance=1
enable_wine_inf_ProfileList_UserSID=1
enable_winebuild_LinkerVersion=1
enable_winecfg_Libraries=1
enable_wined3d_Multisampling=1
enable_wined3d_Revert_PixelFormat=1
enable_winemenubuilder_Desktop_Icon_Path=1
enable_winex11_Thread_Data=1
enable_wininet_ParseX509EncodedCertificateForListBoxEntry=1
enable_winmm_Delay_Import_Depends=1
enable_ws2_32_Connect_Time=1
enable_ws2_32_Select=1
fi
if test "$enable_shell32_SHFileOperation" -eq 1; then
if test "$enable_shell32_Progress_Dialog" -gt 1; then
abort "Patchset shell32-Progress_Dialog disabled, but shell32-SHFileOperation depends on that."

View File

@ -1 +1,2 @@
Fixes: [37575] Do not append duplicate NULL characters when importing keys with regedit
Category: stable

View File

@ -1 +1,2 @@
Fixes: [38062] Support for non-blocking SIO_ADDRESS_LIST_CHANGE requests
Category: stable

View File

@ -1 +1,2 @@
Fixes: [29903] Add stub for setupapi.SetupDiSetDeviceInstallParamsW
Category: stable

View File

@ -1,2 +1,3 @@
Fixes: [37916] Anno 1602 installer depends on Windows 98 behavior of SHFileOperationW
Depends: shell32-Progress_Dialog
Category: stable

View File

@ -1 +1,2 @@
Fixes: [35197] Ignore unsupported flags for CoInternetSetFeatureEnabled
Category: stable

View File

@ -1 +1,2 @@
Fixes: [37667] Set last error when GetRawInputDeviceList fails
Category: stable

View File

@ -1 +1,2 @@
Fixes: [32451] Fix for programs leaking wndproc slots
Category: stable

View File

@ -1,2 +1,3 @@
Fixes: [38098] Add semi-stub for GetFileVersionInfoExA/W
Fixes: [38090] Add semi-stub for GetFileVersionInfoSizeExA/W
Category: stable

View File

@ -1 +1,2 @@
Fixes: [33661] Add performance library registry keys needed by MS SQL Server Management Studio Express 2008 R2
Category: stable

View File

@ -1 +1,2 @@
Fixes: [15670] Add a ProfileList\<UserSID> registry subkey
Category: stable

View File

@ -1 +1,2 @@
Fixes: [28768] Games For Windows Live 1.x expects a valid linker version in the PE header
Category: stable

View File

@ -1 +1,2 @@
Fixes: Allow to edit winecfg library override by double clicking
Category: stable

View File

@ -1 +1,2 @@
Fixes: [12652] Allow to override number of quality levels for D3DMULTISAMPLE_NONMASKABLE.
Category: stable

View File

@ -3,3 +3,4 @@ Fixes: [35718] Fix flickering introduced by pixelformat changes.
Fixes: [35950] Fix black screen on startup introduced by pixelformat changes.
Fixes: [35975] Fix gray screen on startup introduced by pixelformat changes.
Fixes: [36900] Fix missing video introduced by pixelformat changes.
Category: stable

View File

@ -0,0 +1 @@
Category: stable

View File

@ -1 +1,2 @@
Fixes: [36915] Fix crash in clip_cursor_notify caused by uninitialized TLS
Category: stable

View File

@ -1 +1,2 @@
Fixes: [29842] Add stub for wininet.ParseX509EncodedCertificateForListBoxEntry
Category: stable

View File

@ -1 +1,2 @@
Fixes: [37983] Jedi Knight: Dark Forces II crashes with winmm set to native
Category: stable

View File

@ -1 +1,2 @@
Fixes: SO_CONNECT_TIME returns the appropriate time
Category: stable

View File

@ -1 +1,2 @@
Fixes: [38399] Properly handle closing sockets during a select call
Category: stable