summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-10 04:25:59 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-10 04:25:59 +0000
commite94c93bf8925810388962346552ddd236061729b (patch)
treed9b9cddde3c3c678b0a9c15d251b3fb98028389c
parent655e092f476baba9c291f6779f029157edcdfa85 (diff)
automatic import of python-fdtopeneuler20.03
-rw-r--r--.gitignore1
-rw-r--r--python-fdt.spec741
-rw-r--r--sources1
3 files changed, 743 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..ae9aa35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/fdt-0.3.3.tar.gz
diff --git a/python-fdt.spec b/python-fdt.spec
new file mode 100644
index 0000000..a2fcda7
--- /dev/null
+++ b/python-fdt.spec
@@ -0,0 +1,741 @@
+%global _empty_manifest_terminate_build 0
+Name: python-fdt
+Version: 0.3.3
+Release: 1
+Summary: Flattened Device Tree Python Module
+License: Apache 2.0
+URL: https://github.com/molejar/pyFDT
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/0b/69/ab0f63a898c7b8c9d350416222a20dffc8f9b8798830b3c0a2cf155e6bac/fdt-0.3.3.tar.gz
+BuildArch: noarch
+
+
+%description
+# Flattened Device Tree Python Module
+
+[![Build Status](https://travis-ci.org/molejar/pyFDT.svg?branch=master)](https://travis-ci.org/molejar/pyFDT)
+[![Coverage Status](https://coveralls.io/repos/github/molejar/pyFDT/badge.svg)](https://coveralls.io/github/molejar/pyFDT)
+[![PyPI Status](https://img.shields.io/pypi/v/fdt.svg)](https://pypi.python.org/pypi/fdt)
+[![Python Version](https://img.shields.io/pypi/pyversions/fdt.svg)](https://www.python.org)
+
+This python module is usable for manipulation with [Device Tree Data](https://www.devicetree.org/) and primary was
+created for [imxsb tool](https://github.com/molejar/imxsb)
+
+> Some parts in this module have been inspired from: https://github.com/superna9999/pyfdt project.
+
+## Installation
+
+```bash
+pip install fdt
+```
+
+To install the latest version from master branch execute in shell following command:
+
+```bash
+pip install -U https://github.com/molejar/pyFDT/archive/master.zip
+```
+
+In case of development, install it from cloned sources:
+
+```bash
+git clone https://github.com/molejar/pyFDT.git
+cd pyFDT
+pip install -U -e .
+```
+
+**NOTE:** You may run into a permissions issues running these commands. Here are a few options how to fix it:
+
+1. Run with `sudo` to install `fdt` and dependencies globally
+2. Specify the `--user` option to install locally into your home directory (export "~/.local/bin" into PATH variable if haven't).
+3. Run the command in a [virtualenv](https://virtualenv.pypa.io/en/latest/) local to a specific project working set.
+
+## Usage
+
+**fdt** module has intuitive and self describing API, what is presented in following example. Many of general requirements
+for manipulation with FDT Nodes, Properties and dts/dtb files are already implemented.
+
+```python
+ import fdt
+
+ #-----------------------------------------------
+ # convert *.dtb to *.dts
+ # ----------------------------------------------
+ with open("example.dtb", "rb") as f:
+ dtb_data = f.read()
+
+ dt1 = fdt.parse_dtb(dtb_data)
+
+ with open("example.dts", "w") as f:
+ f.write(dt1.to_dts())
+
+ #-----------------------------------------------
+ # convert *.dts to *.dtb
+ # ----------------------------------------------
+ with open("example.dts", "r") as f:
+ dts_text = f.read()
+
+ dt2 = fdt.parse_dts(dts_text)
+
+ with open("example.dtb", "wb") as f:
+ f.write(dt2.to_dtb(version=17))
+
+ #-----------------------------------------------
+ # add new Node into dt2
+ # ----------------------------------------------
+ # create node instance
+ node = fdt.Node('test_node1')
+
+ # add properties
+ node.append(fdt.Property('basic_property'))
+ node.append(fdt.PropStrings('string_property', 'value1', 'value2'))
+ node.append(fdt.PropWords('words_property', 0x80000000))
+ node.append(fdt.PropBytes('bytes_property', 0x00, 0x01, 0x02))
+
+ # PropBytes constructor take also complex data object as bytes() or bytearray()
+ node.append(fdt.PropBytes('bytes_property2', data=b"\x00\x01\x02"))
+
+ # add created node into root path of dt2
+ dt2.add_item(node)
+
+ # use set_property method to update or create new property
+ dt2.set_property('words_property', [0, 1], path='/test_node1')
+ dt2.set_property('bytes_property', b"\x00\x01", path='/test_node1')
+ dt2.set_property('string_property', ['value1', 'value2', 'value3'], path='/test_node1')
+
+ # use search method for find all string properties and then update it
+ items = dt2.search("", itype=fdt.ItemType.PROP_STRINGS, path="/test_node1")
+ for item in items:
+ item.data = ['value1', 'value2']
+
+ #-----------------------------------------------
+ # merge dt2 into dt1
+ # ----------------------------------------------
+ dt1.merge(dt2)
+
+ with open("merged.dtb", "wb") as f:
+ f.write(dt1.to_dtb(version=17))
+
+ #-----------------------------------------------
+ # diff two fdt objects
+ # ----------------------------------------------
+ out = fdt.diff(dt1, dt2)
+
+ print(out[0]) # same in dt1 and dt2
+ print(out[1]) # specific for dt1
+ print(out[2]) # specific for dt2
+```
+
+## [ pydtc ] Tool
+
+The python device tree converter **pydtc** is a tool for conversion *.dts to *.dtb and vice versa. Is distributed
+together with **fdt** module. This tool can be in some cases used as replacement of [device tree compiler](https://git.kernel.org/pub/scm/utils/dtc/dtc.git).
+
+```bash
+ $ pydtc -h
+
+usage: pydtc [-h] [-v] {pack,unpack,merge,diff} ...
+
+Flat Device Tree (FDT) tool for manipulation with *.dtb and *.dts files
+
+positional arguments:
+ {pack,unpack,merge,diff}
+ pack Pack *.dts into binary blob (*.dtb)
+ unpack Unpack *.dtb into readable format (*.dts)
+ merge Merge more files in *.dtb or *.dts format
+ diff Compare two files in *.dtb or *.dts format
+
+optional arguments:
+ -h, --help show this help message and exit
+ -v, --version show program's version number and exit
+
+```
+
+#### $ pydtc unpack [-h] [-s TAB_SIZE] [-o DTS_FILE] dtb_file
+
+Unpack Device Tree from binary blob *.dtb into readable text file *.dts
+
+**dtb_file** - Single DTB file with `dtb` extension
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-s TAB_SIZE** - Tabulator Size
+* **-o DTS_FILE** - Output path/file name (*.dts)
+
+##### Example:
+
+```bash
+pydtc unpack test.dtb
+
+DTS saved as: test.dts
+```
+
+#### $ pydtc pack [-h] [-v VERSION] [-l LC_VERSION] [-c CPU_ID] [-p] [-o DTB_FILE] dts_file
+
+
+Pack Device Tree from readable text file *.dts into binary blob *.dtb
+
+**dts_file** - Single DTS file as *.dts
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-v VERSION** - DTB Version
+* **-l LC_VERSION** - DTB Last Compatible Version
+* **-c CPU_ID** - Boot CPU ID
+* **-p** - Update phandle
+* **-o DTB_FILE** - Output path/file name (*.dtb)
+
+##### Example:
+
+``` bash
+pydtc pack -v 17 test.dts
+
+DTB saved as: test.dtb
+```
+
+#### $ pydtc merge [-h] [-t {auto,dts,dtb}] [-s TAB_SIZE] out_file in_files [in_files ...]
+
+
+Merge two and more *.dtb or *.dts files into one *.dts file
+
+**out_file** - The output file name with *.dts extension <br>
+**in_files** - Two or more input files with *.dtb or *.dts extension
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-t {auto,dts,dtb}** - Input file type: 'auto', 'dts', 'dtb' (default: auto)
+* **-s TAB_SIZE** - Tabulator Size
+
+##### Example:
+
+```bash
+pydtc merge out.dts test1.dtb test2.dtb
+
+Output saved as: out.dts
+```
+
+#### $ pydtc diff [-h] [-t {auto,dts,dtb}] [-o OUT_DIR] in_file1 in_file2
+
+Compare two dtb/dts files and generate 3 dts files (same in 1 and 2, specific for 1, specific for 2)
+
+**in_file1** - Input file 1 <br>
+**in_file2** - Input file 2
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-t {auto,dts,dtb}** - Input file type: 'auto', 'dts', 'dtb' (default: auto)
+* **-o OUT_DIR** - Output directory (default: diff_out)
+
+##### Example:
+
+```bash
+pydtc diff test1.dtb test2.dtb
+
+Output saved into: diff_out
+```
+
+
+
+
+%package -n python3-fdt
+Summary: Flattened Device Tree Python Module
+Provides: python-fdt
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-fdt
+# Flattened Device Tree Python Module
+
+[![Build Status](https://travis-ci.org/molejar/pyFDT.svg?branch=master)](https://travis-ci.org/molejar/pyFDT)
+[![Coverage Status](https://coveralls.io/repos/github/molejar/pyFDT/badge.svg)](https://coveralls.io/github/molejar/pyFDT)
+[![PyPI Status](https://img.shields.io/pypi/v/fdt.svg)](https://pypi.python.org/pypi/fdt)
+[![Python Version](https://img.shields.io/pypi/pyversions/fdt.svg)](https://www.python.org)
+
+This python module is usable for manipulation with [Device Tree Data](https://www.devicetree.org/) and primary was
+created for [imxsb tool](https://github.com/molejar/imxsb)
+
+> Some parts in this module have been inspired from: https://github.com/superna9999/pyfdt project.
+
+## Installation
+
+```bash
+pip install fdt
+```
+
+To install the latest version from master branch execute in shell following command:
+
+```bash
+pip install -U https://github.com/molejar/pyFDT/archive/master.zip
+```
+
+In case of development, install it from cloned sources:
+
+```bash
+git clone https://github.com/molejar/pyFDT.git
+cd pyFDT
+pip install -U -e .
+```
+
+**NOTE:** You may run into a permissions issues running these commands. Here are a few options how to fix it:
+
+1. Run with `sudo` to install `fdt` and dependencies globally
+2. Specify the `--user` option to install locally into your home directory (export "~/.local/bin" into PATH variable if haven't).
+3. Run the command in a [virtualenv](https://virtualenv.pypa.io/en/latest/) local to a specific project working set.
+
+## Usage
+
+**fdt** module has intuitive and self describing API, what is presented in following example. Many of general requirements
+for manipulation with FDT Nodes, Properties and dts/dtb files are already implemented.
+
+```python
+ import fdt
+
+ #-----------------------------------------------
+ # convert *.dtb to *.dts
+ # ----------------------------------------------
+ with open("example.dtb", "rb") as f:
+ dtb_data = f.read()
+
+ dt1 = fdt.parse_dtb(dtb_data)
+
+ with open("example.dts", "w") as f:
+ f.write(dt1.to_dts())
+
+ #-----------------------------------------------
+ # convert *.dts to *.dtb
+ # ----------------------------------------------
+ with open("example.dts", "r") as f:
+ dts_text = f.read()
+
+ dt2 = fdt.parse_dts(dts_text)
+
+ with open("example.dtb", "wb") as f:
+ f.write(dt2.to_dtb(version=17))
+
+ #-----------------------------------------------
+ # add new Node into dt2
+ # ----------------------------------------------
+ # create node instance
+ node = fdt.Node('test_node1')
+
+ # add properties
+ node.append(fdt.Property('basic_property'))
+ node.append(fdt.PropStrings('string_property', 'value1', 'value2'))
+ node.append(fdt.PropWords('words_property', 0x80000000))
+ node.append(fdt.PropBytes('bytes_property', 0x00, 0x01, 0x02))
+
+ # PropBytes constructor take also complex data object as bytes() or bytearray()
+ node.append(fdt.PropBytes('bytes_property2', data=b"\x00\x01\x02"))
+
+ # add created node into root path of dt2
+ dt2.add_item(node)
+
+ # use set_property method to update or create new property
+ dt2.set_property('words_property', [0, 1], path='/test_node1')
+ dt2.set_property('bytes_property', b"\x00\x01", path='/test_node1')
+ dt2.set_property('string_property', ['value1', 'value2', 'value3'], path='/test_node1')
+
+ # use search method for find all string properties and then update it
+ items = dt2.search("", itype=fdt.ItemType.PROP_STRINGS, path="/test_node1")
+ for item in items:
+ item.data = ['value1', 'value2']
+
+ #-----------------------------------------------
+ # merge dt2 into dt1
+ # ----------------------------------------------
+ dt1.merge(dt2)
+
+ with open("merged.dtb", "wb") as f:
+ f.write(dt1.to_dtb(version=17))
+
+ #-----------------------------------------------
+ # diff two fdt objects
+ # ----------------------------------------------
+ out = fdt.diff(dt1, dt2)
+
+ print(out[0]) # same in dt1 and dt2
+ print(out[1]) # specific for dt1
+ print(out[2]) # specific for dt2
+```
+
+## [ pydtc ] Tool
+
+The python device tree converter **pydtc** is a tool for conversion *.dts to *.dtb and vice versa. Is distributed
+together with **fdt** module. This tool can be in some cases used as replacement of [device tree compiler](https://git.kernel.org/pub/scm/utils/dtc/dtc.git).
+
+```bash
+ $ pydtc -h
+
+usage: pydtc [-h] [-v] {pack,unpack,merge,diff} ...
+
+Flat Device Tree (FDT) tool for manipulation with *.dtb and *.dts files
+
+positional arguments:
+ {pack,unpack,merge,diff}
+ pack Pack *.dts into binary blob (*.dtb)
+ unpack Unpack *.dtb into readable format (*.dts)
+ merge Merge more files in *.dtb or *.dts format
+ diff Compare two files in *.dtb or *.dts format
+
+optional arguments:
+ -h, --help show this help message and exit
+ -v, --version show program's version number and exit
+
+```
+
+#### $ pydtc unpack [-h] [-s TAB_SIZE] [-o DTS_FILE] dtb_file
+
+Unpack Device Tree from binary blob *.dtb into readable text file *.dts
+
+**dtb_file** - Single DTB file with `dtb` extension
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-s TAB_SIZE** - Tabulator Size
+* **-o DTS_FILE** - Output path/file name (*.dts)
+
+##### Example:
+
+```bash
+pydtc unpack test.dtb
+
+DTS saved as: test.dts
+```
+
+#### $ pydtc pack [-h] [-v VERSION] [-l LC_VERSION] [-c CPU_ID] [-p] [-o DTB_FILE] dts_file
+
+
+Pack Device Tree from readable text file *.dts into binary blob *.dtb
+
+**dts_file** - Single DTS file as *.dts
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-v VERSION** - DTB Version
+* **-l LC_VERSION** - DTB Last Compatible Version
+* **-c CPU_ID** - Boot CPU ID
+* **-p** - Update phandle
+* **-o DTB_FILE** - Output path/file name (*.dtb)
+
+##### Example:
+
+``` bash
+pydtc pack -v 17 test.dts
+
+DTB saved as: test.dtb
+```
+
+#### $ pydtc merge [-h] [-t {auto,dts,dtb}] [-s TAB_SIZE] out_file in_files [in_files ...]
+
+
+Merge two and more *.dtb or *.dts files into one *.dts file
+
+**out_file** - The output file name with *.dts extension <br>
+**in_files** - Two or more input files with *.dtb or *.dts extension
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-t {auto,dts,dtb}** - Input file type: 'auto', 'dts', 'dtb' (default: auto)
+* **-s TAB_SIZE** - Tabulator Size
+
+##### Example:
+
+```bash
+pydtc merge out.dts test1.dtb test2.dtb
+
+Output saved as: out.dts
+```
+
+#### $ pydtc diff [-h] [-t {auto,dts,dtb}] [-o OUT_DIR] in_file1 in_file2
+
+Compare two dtb/dts files and generate 3 dts files (same in 1 and 2, specific for 1, specific for 2)
+
+**in_file1** - Input file 1 <br>
+**in_file2** - Input file 2
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-t {auto,dts,dtb}** - Input file type: 'auto', 'dts', 'dtb' (default: auto)
+* **-o OUT_DIR** - Output directory (default: diff_out)
+
+##### Example:
+
+```bash
+pydtc diff test1.dtb test2.dtb
+
+Output saved into: diff_out
+```
+
+
+
+
+%package help
+Summary: Development documents and examples for fdt
+Provides: python3-fdt-doc
+%description help
+# Flattened Device Tree Python Module
+
+[![Build Status](https://travis-ci.org/molejar/pyFDT.svg?branch=master)](https://travis-ci.org/molejar/pyFDT)
+[![Coverage Status](https://coveralls.io/repos/github/molejar/pyFDT/badge.svg)](https://coveralls.io/github/molejar/pyFDT)
+[![PyPI Status](https://img.shields.io/pypi/v/fdt.svg)](https://pypi.python.org/pypi/fdt)
+[![Python Version](https://img.shields.io/pypi/pyversions/fdt.svg)](https://www.python.org)
+
+This python module is usable for manipulation with [Device Tree Data](https://www.devicetree.org/) and primary was
+created for [imxsb tool](https://github.com/molejar/imxsb)
+
+> Some parts in this module have been inspired from: https://github.com/superna9999/pyfdt project.
+
+## Installation
+
+```bash
+pip install fdt
+```
+
+To install the latest version from master branch execute in shell following command:
+
+```bash
+pip install -U https://github.com/molejar/pyFDT/archive/master.zip
+```
+
+In case of development, install it from cloned sources:
+
+```bash
+git clone https://github.com/molejar/pyFDT.git
+cd pyFDT
+pip install -U -e .
+```
+
+**NOTE:** You may run into a permissions issues running these commands. Here are a few options how to fix it:
+
+1. Run with `sudo` to install `fdt` and dependencies globally
+2. Specify the `--user` option to install locally into your home directory (export "~/.local/bin" into PATH variable if haven't).
+3. Run the command in a [virtualenv](https://virtualenv.pypa.io/en/latest/) local to a specific project working set.
+
+## Usage
+
+**fdt** module has intuitive and self describing API, what is presented in following example. Many of general requirements
+for manipulation with FDT Nodes, Properties and dts/dtb files are already implemented.
+
+```python
+ import fdt
+
+ #-----------------------------------------------
+ # convert *.dtb to *.dts
+ # ----------------------------------------------
+ with open("example.dtb", "rb") as f:
+ dtb_data = f.read()
+
+ dt1 = fdt.parse_dtb(dtb_data)
+
+ with open("example.dts", "w") as f:
+ f.write(dt1.to_dts())
+
+ #-----------------------------------------------
+ # convert *.dts to *.dtb
+ # ----------------------------------------------
+ with open("example.dts", "r") as f:
+ dts_text = f.read()
+
+ dt2 = fdt.parse_dts(dts_text)
+
+ with open("example.dtb", "wb") as f:
+ f.write(dt2.to_dtb(version=17))
+
+ #-----------------------------------------------
+ # add new Node into dt2
+ # ----------------------------------------------
+ # create node instance
+ node = fdt.Node('test_node1')
+
+ # add properties
+ node.append(fdt.Property('basic_property'))
+ node.append(fdt.PropStrings('string_property', 'value1', 'value2'))
+ node.append(fdt.PropWords('words_property', 0x80000000))
+ node.append(fdt.PropBytes('bytes_property', 0x00, 0x01, 0x02))
+
+ # PropBytes constructor take also complex data object as bytes() or bytearray()
+ node.append(fdt.PropBytes('bytes_property2', data=b"\x00\x01\x02"))
+
+ # add created node into root path of dt2
+ dt2.add_item(node)
+
+ # use set_property method to update or create new property
+ dt2.set_property('words_property', [0, 1], path='/test_node1')
+ dt2.set_property('bytes_property', b"\x00\x01", path='/test_node1')
+ dt2.set_property('string_property', ['value1', 'value2', 'value3'], path='/test_node1')
+
+ # use search method for find all string properties and then update it
+ items = dt2.search("", itype=fdt.ItemType.PROP_STRINGS, path="/test_node1")
+ for item in items:
+ item.data = ['value1', 'value2']
+
+ #-----------------------------------------------
+ # merge dt2 into dt1
+ # ----------------------------------------------
+ dt1.merge(dt2)
+
+ with open("merged.dtb", "wb") as f:
+ f.write(dt1.to_dtb(version=17))
+
+ #-----------------------------------------------
+ # diff two fdt objects
+ # ----------------------------------------------
+ out = fdt.diff(dt1, dt2)
+
+ print(out[0]) # same in dt1 and dt2
+ print(out[1]) # specific for dt1
+ print(out[2]) # specific for dt2
+```
+
+## [ pydtc ] Tool
+
+The python device tree converter **pydtc** is a tool for conversion *.dts to *.dtb and vice versa. Is distributed
+together with **fdt** module. This tool can be in some cases used as replacement of [device tree compiler](https://git.kernel.org/pub/scm/utils/dtc/dtc.git).
+
+```bash
+ $ pydtc -h
+
+usage: pydtc [-h] [-v] {pack,unpack,merge,diff} ...
+
+Flat Device Tree (FDT) tool for manipulation with *.dtb and *.dts files
+
+positional arguments:
+ {pack,unpack,merge,diff}
+ pack Pack *.dts into binary blob (*.dtb)
+ unpack Unpack *.dtb into readable format (*.dts)
+ merge Merge more files in *.dtb or *.dts format
+ diff Compare two files in *.dtb or *.dts format
+
+optional arguments:
+ -h, --help show this help message and exit
+ -v, --version show program's version number and exit
+
+```
+
+#### $ pydtc unpack [-h] [-s TAB_SIZE] [-o DTS_FILE] dtb_file
+
+Unpack Device Tree from binary blob *.dtb into readable text file *.dts
+
+**dtb_file** - Single DTB file with `dtb` extension
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-s TAB_SIZE** - Tabulator Size
+* **-o DTS_FILE** - Output path/file name (*.dts)
+
+##### Example:
+
+```bash
+pydtc unpack test.dtb
+
+DTS saved as: test.dts
+```
+
+#### $ pydtc pack [-h] [-v VERSION] [-l LC_VERSION] [-c CPU_ID] [-p] [-o DTB_FILE] dts_file
+
+
+Pack Device Tree from readable text file *.dts into binary blob *.dtb
+
+**dts_file** - Single DTS file as *.dts
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-v VERSION** - DTB Version
+* **-l LC_VERSION** - DTB Last Compatible Version
+* **-c CPU_ID** - Boot CPU ID
+* **-p** - Update phandle
+* **-o DTB_FILE** - Output path/file name (*.dtb)
+
+##### Example:
+
+``` bash
+pydtc pack -v 17 test.dts
+
+DTB saved as: test.dtb
+```
+
+#### $ pydtc merge [-h] [-t {auto,dts,dtb}] [-s TAB_SIZE] out_file in_files [in_files ...]
+
+
+Merge two and more *.dtb or *.dts files into one *.dts file
+
+**out_file** - The output file name with *.dts extension <br>
+**in_files** - Two or more input files with *.dtb or *.dts extension
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-t {auto,dts,dtb}** - Input file type: 'auto', 'dts', 'dtb' (default: auto)
+* **-s TAB_SIZE** - Tabulator Size
+
+##### Example:
+
+```bash
+pydtc merge out.dts test1.dtb test2.dtb
+
+Output saved as: out.dts
+```
+
+#### $ pydtc diff [-h] [-t {auto,dts,dtb}] [-o OUT_DIR] in_file1 in_file2
+
+Compare two dtb/dts files and generate 3 dts files (same in 1 and 2, specific for 1, specific for 2)
+
+**in_file1** - Input file 1 <br>
+**in_file2** - Input file 2
+
+##### optional arguments:
+* **-h, --help** - Show this help message and exit
+* **-t {auto,dts,dtb}** - Input file type: 'auto', 'dts', 'dtb' (default: auto)
+* **-o OUT_DIR** - Output directory (default: diff_out)
+
+##### Example:
+
+```bash
+pydtc diff test1.dtb test2.dtb
+
+Output saved into: diff_out
+```
+
+
+
+
+%prep
+%autosetup -n fdt-0.3.3
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-fdt -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.3-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..71fabe5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+27013c5ebe43a9a47fe5273901961d47 fdt-0.3.3.tar.gz