@@ -158,6 +158,31 @@ def build_package(rpm_tags, datasource_id, package_type, package_namespace=None,
158158 except Exception as e :
159159 raise Exception (value , converted ) from e
160160 converted .update (handled )
161+
162+ # Combine version, release, and epoch into EVR format
163+ version = converted .get ('version' )
164+ release = converted .get ('release' )
165+ epoch = converted .get ('epoch' )
166+
167+ if version :
168+ # Combine version and release
169+ if release :
170+ vr = f'{ version } -{ release } '
171+ else :
172+ vr = version
173+
174+ # Prepend epoch if present and non-zero
175+ if epoch :
176+ try :
177+ epoch_int = int (epoch )
178+ if epoch_int :
179+ vr = f'{ epoch } :{ vr } '
180+ except (ValueError , TypeError ):
181+ pass
182+
183+ converted ['version' ] = vr
184+ converted .pop ('release' , None )
185+ converted .pop ('epoch' , None )
161186
162187 current_filerefs = converted .get ("current_filerefs" , None )
163188 if current_filerefs :
@@ -298,9 +323,8 @@ def dirname_handler(value, **kwargs):
298323 ############################################################################
299324
300325 'Name' : name_value_str_handler ('name' ),
301- # TODO: add these
302- # 'Epoch'
303- # 'Release' 11.3.2
326+ 'Epoch' : name_value_str_handler ('epoch' ),
327+ 'Release' : name_value_str_handler ('release' ),
304328 'Version' : name_value_str_handler ('version' ),
305329 'Description' : name_value_str_handler ('description' ),
306330 'Sha1header' : name_value_str_handler ('sha1' ),
0 commit comments