Packaging of Tree-sitter parsers

Macros

The macros in package tree-sitter-srpm-macros can do most of the work for you.

Specifying the build system

Declare that this is a Tree-sitter parser with:

BuildSystem: tree_sitter

The %prep, %conf, %generate_buildrequires, %build, %install and %check sections will all be provided for you.

This requires RPM version 4.20 (i.e., Fedora 41) or greater.

Defining packages and their contents

Generate %package and %files sections for the subpackages built from your package:

%{tree_sitter -l language-name}

Here, language-name is the human-friendly name(s) of the Language parser(s) provided by this package, to be mentioned in the package summaries and descriptions.

Example spec file

Name:           tree-sitter-typescript
Version:        0.21.2
Release:        %autorelease
License:        MIT
URL:            https://github.com/tree-sitter/%{name}
Source:         %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
BuildSystem:    tree_sitter

%{tree_sitter -l %{quote:TypeScript and TSX}}

%changelog
%autochangelog