Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
0
sources/poky/bitbake/lib/toaster/orm/__init__.py
Normal file
0
sources/poky/bitbake/lib/toaster/orm/__init__.py
Normal file
30
sources/poky/bitbake/lib/toaster/orm/fixtures/README
Normal file
30
sources/poky/bitbake/lib/toaster/orm/fixtures/README
Normal file
@@ -0,0 +1,30 @@
|
||||
# Fixtures directory
|
||||
|
||||
Fixtures are data dumps that can be loaded into Toaster's database to provide
|
||||
configuration and data.
|
||||
|
||||
In this directory we have the fixtures which are loaded the first time you start Toaster.
|
||||
This is to provide useful default values and metadata to Toaster.
|
||||
|
||||
- settings.xml This Contains Toaster wide settings, such as the default values for
|
||||
certain bitbake variables.
|
||||
|
||||
- poky.xml This is the default release data for supported poky based setup
|
||||
|
||||
- oe-core.xml This is the default release data for supported oe-core based setups
|
||||
|
||||
# Custom data/configuration
|
||||
|
||||
- custom.xml
|
||||
|
||||
To add custom initial data/configuration to Toaster place a file called
|
||||
"custom.xml" in this directory. If present it will be loaded into the database.
|
||||
We suggest that this is used to overlay any configuration already done.
|
||||
All objects loaded with the same primary keys overwrite the existing data.
|
||||
Data can be provided in XML, JSON and if installed YAML formats.
|
||||
|
||||
# To load data at any point in time
|
||||
|
||||
Use the django management command manage.py loaddata <your fixture file>
|
||||
For further information see the Django command documentation at:
|
||||
https://docs.djangoproject.com/en/3.2/ref/django-admin/#django-admin-loaddata
|
||||
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (C) 2017 Intel Corp.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License version 2 as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# This is sample software. Rename it to 'custom_toaster_append.sh' and
|
||||
# enable the respective custom sections.
|
||||
|
||||
verbose=0
|
||||
if [ $verbose -ne 0 ] ; then
|
||||
echo "custom_toaster_append.sh:$*"
|
||||
fi
|
||||
|
||||
if [ "toaster_prepend" = "$1" ] ; then
|
||||
echo "Add custom actions here when Toaster script is started"
|
||||
fi
|
||||
|
||||
if [ "web_start_postpend" = "$1" ] ; then
|
||||
echo "Add custom actions here after Toaster web service is started"
|
||||
fi
|
||||
|
||||
if [ "web_stop_postpend" = "$1" ] ; then
|
||||
echo "Add custom actions here after Toaster web service is stopped"
|
||||
fi
|
||||
|
||||
if [ "noweb_start_postpend" = "$1" ] ; then
|
||||
echo "Add custom actions here after Toaster (no web) service is started"
|
||||
fi
|
||||
|
||||
if [ "noweb_stop_postpend" = "$1" ] ; then
|
||||
echo "Add custom actions here after Toaster (no web) service is stopped"
|
||||
fi
|
||||
|
||||
if [ "toaster_postpend" = "$1" ] ; then
|
||||
echo "Add custom actions here after Toaster script is done"
|
||||
fi
|
||||
|
||||
447
sources/poky/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py
Executable file
447
sources/poky/bitbake/lib/toaster/orm/fixtures/gen_fixtures.py
Executable file
@@ -0,0 +1,447 @@
|
||||
#!/usr/bin/env python3
|
||||
# ex:ts=4:sw=4:sts=4:et
|
||||
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
||||
#
|
||||
# Generate Toaster Fixtures for 'poky.xml' and 'oe-core.xml'
|
||||
#
|
||||
# Copyright (C) 2022 Wind River Systems
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# Edit the 'current_releases' table for each new release cycle
|
||||
#
|
||||
# Usage: ./get_fixtures all
|
||||
#
|
||||
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
verbose = False
|
||||
|
||||
####################################
|
||||
# Releases
|
||||
#
|
||||
# https://wiki.yoctoproject.org/wiki/Releases
|
||||
#
|
||||
# NOTE: for the current releases table, it helps to keep continuing releases
|
||||
# in the same table positions since this minimizes the patch diff for review.
|
||||
# The order of the table does not matter since Toaster presents them sorted.
|
||||
#
|
||||
# Traditionally, the two most current releases are included in addition to the
|
||||
# 'master' branch and the local installation's 'HEAD'.
|
||||
# It is also policy to include all active LTS releases.
|
||||
#
|
||||
|
||||
# [Codename, Yocto Project Version, Release Date, Current Version, Support Level, Poky Version, BitBake branch]
|
||||
current_releases = [
|
||||
# Release slot #1
|
||||
['Kirkstone','4.0','April 2022','4.0.8 (March 2023)','Stable - Long Term Support (until Apr. 2024)','','2.0'],
|
||||
# Release slot #2 'local'
|
||||
['HEAD','HEAD','','Local Yocto Project','HEAD','','HEAD'],
|
||||
# Release slot #3 'master'
|
||||
['Master','master','','Yocto Project master','master','','master'],
|
||||
# Release slot #4
|
||||
['Mickledore','4.2','April 2023','4.2.0 (April 2023)','Support for 7 months (until October 2023)','','2.4'],
|
||||
# ['Langdale','4.1','October 2022','4.1.2 (January 2023)','Support for 7 months (until May 2023)','','2.2'],
|
||||
# ['Honister','3.4','October 2021','3.4.2 (February 2022)','Support for 7 months (until May 2022)','26.0','1.52'],
|
||||
# ['Hardknott','3.3','April 2021','3.3.5 (March 2022)','Stable - Support for 13 months (until Apr. 2022)','25.0','1.50'],
|
||||
# ['Gatesgarth','3.2','Oct 2020','3.2.4 (May 2021)','EOL','24.0','1.48'],
|
||||
# Optional Release slot #5
|
||||
['Dunfell','3.1','April 2020','3.1.23 (February 2023)','Stable - Long Term Support (until Apr. 2024)','23.0','1.46'],
|
||||
]
|
||||
|
||||
default_poky_layers = [
|
||||
'openembedded-core',
|
||||
'meta-poky',
|
||||
'meta-yocto-bsp',
|
||||
]
|
||||
|
||||
default_oe_core_layers = [
|
||||
'openembedded-core',
|
||||
]
|
||||
|
||||
####################################
|
||||
# Templates
|
||||
|
||||
prolog_template = '''\
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<django-objects version="1.0">
|
||||
<!-- Set the project default value for DISTRO -->
|
||||
<object model="orm.toastersetting" pk="1">
|
||||
<field type="CharField" name="name">DEFCONF_DISTRO</field>
|
||||
<field type="CharField" name="value">{{distro}}</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
#<!-- Bitbake versions which correspond to the metadata release -->')
|
||||
bitbakeversion_poky_template = '''\
|
||||
<object model="orm.bitbakeversion" pk="{{bitbake_id}}">
|
||||
<field type="CharField" name="name">{{name}}</field>
|
||||
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="branch">{{branch}}</field>
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
'''
|
||||
bitbakeversion_oecore_template = '''\
|
||||
<object model="orm.bitbakeversion" pk="{{bitbake_id}}">
|
||||
<field type="CharField" name="name">{{name}}</field>
|
||||
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
|
||||
<field type="CharField" name="branch">{{bitbakeversion}}</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
# <!-- Releases available -->
|
||||
releases_available_template = '''\
|
||||
<object model="orm.release" pk="{{ra_count}}">
|
||||
<field type="CharField" name="name">{{name}}</field>
|
||||
<field type="CharField" name="description">{{description}}</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">{{ra_count}}</field>
|
||||
<field type="CharField" name="branch_name">{{release}}</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds {{help_source}}.</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
# <!-- Default project layers for each release -->
|
||||
default_layers_template = '''\
|
||||
<object model="orm.releasedefaultlayer" pk="{{rdl_count}}">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">{{release_id}}</field>
|
||||
<field type="CharField" name="layer_name">{{layer}}</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
default_layers_preface = '''\
|
||||
<!-- Default layers provided by poky
|
||||
openembedded-core
|
||||
meta-poky
|
||||
meta-yocto-bsp
|
||||
-->
|
||||
'''
|
||||
|
||||
layer_poky_template = '''\
|
||||
<object model="orm.layer" pk="{{layer_id}}">
|
||||
<field type="CharField" name="name">{{layer}}</field>
|
||||
<field type="CharField" name="layer_index_url"></field>
|
||||
<field type="CharField" name="vcs_url">{{vcs_url}}</field>
|
||||
<field type="CharField" name="vcs_web_url">{{vcs_web_url}}</field>
|
||||
<field type="CharField" name="vcs_web_tree_base_url">{{vcs_web_tree_base_url}}</field>
|
||||
<field type="CharField" name="vcs_web_file_base_url">{{vcs_web_file_base_url}}</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
layer_oe_core_template = '''\
|
||||
<object model="orm.layer" pk="{{layer_id}}">
|
||||
<field type="CharField" name="name">{{layer}}</field>
|
||||
<field type="CharField" name="vcs_url">{{vcs_url}}</field>
|
||||
<field type="CharField" name="vcs_web_url">{{vcs_web_url}}</field>
|
||||
<field type="CharField" name="vcs_web_tree_base_url">{{vcs_web_tree_base_url}}</field>
|
||||
<field type="CharField" name="vcs_web_file_base_url">{{vcs_web_file_base_url}}</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
layer_version_template = '''\
|
||||
<object model="orm.layer_version" pk="{{lv_count}}">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">{{layer_id}}</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">{{release_id}}</field>
|
||||
<field type="CharField" name="branch">{{branch}}</field>
|
||||
<field type="CharField" name="dirpath">{{dirpath}}</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
layer_version_HEAD_template = '''\
|
||||
<object model="orm.layer_version" pk="{{lv_count}}">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">{{layer_id}}</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">{{release_id}}</field>
|
||||
<field type="CharField" name="branch">{{branch}}</field>
|
||||
<field type="CharField" name="commit">{{commit}}</field>
|
||||
<field type="CharField" name="dirpath">{{dirpath}}</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
layer_version_oe_core_template = '''\
|
||||
<object model="orm.layer_version" pk="1">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="local_path">OE-CORE-LAYER-DIR</field>
|
||||
<field type="CharField" name="branch">HEAD</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
</object>
|
||||
'''
|
||||
|
||||
epilog_template = '''\
|
||||
</django-objects>
|
||||
'''
|
||||
|
||||
#################################
|
||||
# Helper Routines
|
||||
#
|
||||
|
||||
def print_str(str,fd):
|
||||
# Avoid extra newline at end
|
||||
if str and (str[-1] == '\n'):
|
||||
str = str[0:-1]
|
||||
print(str,file=fd)
|
||||
|
||||
def print_template(template,params,fd):
|
||||
for line in template.split('\n'):
|
||||
p = line.find('{{')
|
||||
while p > 0:
|
||||
q = line.find('}}')
|
||||
key = line[p+2:q]
|
||||
if key in params:
|
||||
line = line[0:p] + params[key] + line[q+2:]
|
||||
else:
|
||||
line = line[0:p] + '?' + key + '?' + line[q+2:]
|
||||
p = line.find('{{')
|
||||
if line:
|
||||
print(line,file=fd)
|
||||
|
||||
#################################
|
||||
# Generate poky.xml
|
||||
#
|
||||
|
||||
def generate_poky():
|
||||
fd = open('poky.xml','w')
|
||||
|
||||
params = {}
|
||||
params['distro'] = 'poky'
|
||||
print_template(prolog_template,params,fd)
|
||||
print_str('',fd)
|
||||
|
||||
print_str(' <!-- Bitbake versions which correspond to the metadata release -->',fd)
|
||||
for i,release in enumerate(current_releases):
|
||||
params = {}
|
||||
params['release'] = release[0]
|
||||
params['Release'] = release[0]
|
||||
params['release_version'] = release[1]
|
||||
if not (params['release'] in ('HEAD')): # 'master',
|
||||
params['release'] = params['release'][0].lower() + params['release'][1:]
|
||||
params['name'] = params['release']
|
||||
params['bitbake_id'] = str(i+1)
|
||||
params['branch'] = params['release']
|
||||
print_template(bitbakeversion_poky_template,params,fd)
|
||||
print_str('',fd)
|
||||
|
||||
print_str('',fd)
|
||||
print_str(' <!-- Releases available -->',fd)
|
||||
for i,release in enumerate(current_releases):
|
||||
params = {}
|
||||
params['release'] = release[0]
|
||||
params['Release'] = release[0]
|
||||
params['release_version'] = release[1]
|
||||
if not (params['release'] in ('HEAD')): #'master',
|
||||
params['release'] = params['release'][0].lower() + params['release'][1:]
|
||||
params['h_release'] = '?h={{release}}'
|
||||
params['name'] = params['release']
|
||||
params['ra_count'] = str(i+1)
|
||||
params['branch'] = params['release']
|
||||
|
||||
if 'HEAD' == params['release']:
|
||||
params['help_source'] = 'with the version of the Yocto Project you have cloned or downloaded to your computer'
|
||||
params['description'] = 'Local Yocto Project'
|
||||
params['name'] = 'local'
|
||||
else:
|
||||
params['help_source'] = 'using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/{{h_release}}">Yocto Project {{Release}} branch</a>'
|
||||
params['description'] = 'Yocto Project {{release_version}} "{{Release}}"'
|
||||
if 'master' == params['release']:
|
||||
params['h_release'] = ''
|
||||
params['description'] = 'Yocto Project master'
|
||||
|
||||
print_template(releases_available_template,params,fd)
|
||||
print_str('',fd)
|
||||
|
||||
print_str(' <!-- Default project layers for each release -->',fd)
|
||||
rdl_count = 1
|
||||
for i,release in enumerate(current_releases):
|
||||
for j,layer in enumerate(default_poky_layers):
|
||||
params = {}
|
||||
params['layer'] = layer
|
||||
params['release'] = release[0]
|
||||
params['Release'] = release[0]
|
||||
params['release_version'] = release[1]
|
||||
if not (params['release'] in ('master','HEAD')):
|
||||
params['release'] = params['release'][0].lower() + params['release'][1:]
|
||||
params['release_id'] = str(i+1)
|
||||
params['rdl_count'] = str(rdl_count)
|
||||
params['branch'] = params['release']
|
||||
print_template(default_layers_template,params,fd)
|
||||
rdl_count += 1
|
||||
print_str('',fd)
|
||||
|
||||
print_str(default_layers_preface,fd)
|
||||
lv_count = 1
|
||||
for i,layer in enumerate(default_poky_layers):
|
||||
params = {}
|
||||
params['layer'] = layer
|
||||
params['layer_id'] = str(i+1)
|
||||
params['vcs_url'] = 'git://git.yoctoproject.org/poky'
|
||||
params['vcs_web_url'] = 'https://git.yoctoproject.org/cgit/cgit.cgi/poky'
|
||||
params['vcs_web_tree_base_url'] = 'https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%'
|
||||
params['vcs_web_file_base_url'] = 'https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%'
|
||||
|
||||
if i:
|
||||
print_str('',fd)
|
||||
print_template(layer_poky_template,params,fd)
|
||||
for j,release in enumerate(current_releases):
|
||||
params['release'] = release[0]
|
||||
params['Release'] = release[0]
|
||||
params['release_version'] = release[1]
|
||||
if not (params['release'] in ('master','HEAD')):
|
||||
params['release'] = params['release'][0].lower() + params['release'][1:]
|
||||
params['release_id'] = str(j+1)
|
||||
params['lv_count'] = str(lv_count)
|
||||
params['branch'] = params['release']
|
||||
params['commit'] = params['release']
|
||||
|
||||
params['dirpath'] = params['layer']
|
||||
if params['layer'] in ('openembedded-core'): #'openembedded-core',
|
||||
params['dirpath'] = 'meta'
|
||||
|
||||
if 'HEAD' == params['release']:
|
||||
print_template(layer_version_HEAD_template,params,fd)
|
||||
else:
|
||||
print_template(layer_version_template,params,fd)
|
||||
lv_count += 1
|
||||
|
||||
print_str(epilog_template,fd)
|
||||
fd.close()
|
||||
|
||||
#################################
|
||||
# Generate oe-core.xml
|
||||
#
|
||||
|
||||
def generate_oe_core():
|
||||
fd = open('oe-core.xml','w')
|
||||
|
||||
params = {}
|
||||
params['distro'] = 'nodistro'
|
||||
print_template(prolog_template,params,fd)
|
||||
print_str('',fd)
|
||||
|
||||
print_str(' <!-- Bitbake versions which correspond to the metadata release -->',fd)
|
||||
for i,release in enumerate(current_releases):
|
||||
params = {}
|
||||
params['release'] = release[0]
|
||||
params['Release'] = release[0]
|
||||
params['bitbakeversion'] = release[6]
|
||||
params['release_version'] = release[1]
|
||||
if not (params['release'] in ('HEAD')): # 'master',
|
||||
params['release'] = params['release'][0].lower() + params['release'][1:]
|
||||
params['name'] = params['release']
|
||||
params['bitbake_id'] = str(i+1)
|
||||
params['branch'] = params['release']
|
||||
print_template(bitbakeversion_oecore_template,params,fd)
|
||||
print_str('',fd)
|
||||
|
||||
print_str(' <!-- Releases available -->',fd)
|
||||
for i,release in enumerate(current_releases):
|
||||
params = {}
|
||||
params['release'] = release[0]
|
||||
params['Release'] = release[0]
|
||||
params['release_version'] = release[1]
|
||||
if not (params['release'] in ('HEAD')): #'master',
|
||||
params['release'] = params['release'][0].lower() + params['release'][1:]
|
||||
params['h_release'] = '?h={{release}}'
|
||||
params['name'] = params['release']
|
||||
params['ra_count'] = str(i+1)
|
||||
params['branch'] = params['release']
|
||||
|
||||
if 'HEAD' == params['release']:
|
||||
params['help_source'] = 'with the version of OpenEmbedded that you have cloned or downloaded to your computer'
|
||||
params['description'] = 'Local Openembedded'
|
||||
params['name'] = 'local'
|
||||
else:
|
||||
params['help_source'] = 'using the tip of the <a href=\\"https://cgit.openembedded.org/openembedded-core/log/{{h_release}}\\">OpenEmbedded {{Release}}</a> branch'
|
||||
params['description'] = 'Openembedded {{Release}}'
|
||||
if 'master' == params['release']:
|
||||
params['h_release'] = ''
|
||||
params['description'] = 'OpenEmbedded core master'
|
||||
params['Release'] = params['release']
|
||||
|
||||
print_template(releases_available_template,params,fd)
|
||||
print_str('',fd)
|
||||
|
||||
print_str(' <!-- Default layers for each release -->',fd)
|
||||
rdl_count = 1
|
||||
for i,release in enumerate(current_releases):
|
||||
for j,layer in enumerate(default_oe_core_layers):
|
||||
params = {}
|
||||
params['layer'] = layer
|
||||
params['release'] = release[0]
|
||||
params['Release'] = release[0]
|
||||
params['release_version'] = release[1]
|
||||
if not (params['release'] in ('master','HEAD')):
|
||||
params['release'] = params['release'][0].lower() + params['release'][1:]
|
||||
params['release_id'] = str(i+1)
|
||||
params['rdl_count'] = str(rdl_count)
|
||||
params['branch'] = params['release']
|
||||
print_template(default_layers_template,params,fd)
|
||||
rdl_count += 1
|
||||
print_str('',fd)
|
||||
|
||||
print_str('',fd)
|
||||
print_str(' <!-- Layer for the Local release -->',fd)
|
||||
lv_count = 1
|
||||
for i,layer in enumerate(default_oe_core_layers):
|
||||
params = {}
|
||||
params['layer'] = layer
|
||||
params['layer_id'] = str(i+1)
|
||||
params['vcs_url'] = 'git://git.openembedded.org/openembedded-core'
|
||||
params['vcs_web_url'] = 'https://cgit.openembedded.org/openembedded-core'
|
||||
params['vcs_web_tree_base_url'] = 'https://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%'
|
||||
params['vcs_web_file_base_url'] = 'https://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%'
|
||||
if i:
|
||||
print_str('',fd)
|
||||
print_template(layer_oe_core_template,params,fd)
|
||||
|
||||
print_template(layer_version_oe_core_template,params,fd)
|
||||
print_str('',fd)
|
||||
|
||||
print_str(epilog_template,fd)
|
||||
fd.close()
|
||||
|
||||
#################################
|
||||
# Help
|
||||
#
|
||||
|
||||
def list_releases():
|
||||
print("Release ReleaseVer BitbakeVer Support Level")
|
||||
print("========== =========== ========== ==============================================")
|
||||
for release in current_releases:
|
||||
print("%10s %10s %11s %s" % (release[0],release[1],release[6],release[4]))
|
||||
|
||||
#################################
|
||||
# main
|
||||
#
|
||||
|
||||
def main(argv):
|
||||
global verbose
|
||||
|
||||
parser = argparse.ArgumentParser(description='gen_fixtures.py: table generate the fixture files')
|
||||
parser.add_argument('--poky', '-p', action='store_const', const='poky', dest='command', help='Generate the poky.xml file')
|
||||
parser.add_argument('--oe-core', '-o', action='store_const', const='oe_core', dest='command', help='Generate the oe-core.xml file')
|
||||
parser.add_argument('--all', '-a', action='store_const', const='all', dest='command', help='Generate all fixture files')
|
||||
parser.add_argument('--list', '-l', action='store_const', const='list', dest='command', help='List the release table')
|
||||
parser.add_argument('--verbose', '-v', action='store_true', dest='verbose', help='Enable verbose debugging output')
|
||||
args = parser.parse_args()
|
||||
|
||||
verbose = args.verbose
|
||||
if 'poky' == args.command:
|
||||
generate_poky()
|
||||
elif 'oe_core' == args.command:
|
||||
generate_oe_core()
|
||||
elif 'all' == args.command:
|
||||
generate_poky()
|
||||
generate_oe_core()
|
||||
elif 'all' == args.command:
|
||||
list_releases()
|
||||
elif 'list' == args.command:
|
||||
list_releases()
|
||||
|
||||
else:
|
||||
print("No command for 'gen_fixtures.py' selected")
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv[1:])
|
||||
113
sources/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
Normal file
113
sources/poky/bitbake/lib/toaster/orm/fixtures/oe-core.xml
Normal file
@@ -0,0 +1,113 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<django-objects version="1.0">
|
||||
<!-- Set the project default value for DISTRO -->
|
||||
<object model="orm.toastersetting" pk="1">
|
||||
<field type="CharField" name="name">DEFCONF_DISTRO</field>
|
||||
<field type="CharField" name="value">nodistro</field>
|
||||
</object>
|
||||
|
||||
<!-- Bitbake versions which correspond to the metadata release -->
|
||||
<object model="orm.bitbakeversion" pk="1">
|
||||
<field type="CharField" name="name">kirkstone</field>
|
||||
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
|
||||
<field type="CharField" name="branch">2.0</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="2">
|
||||
<field type="CharField" name="name">HEAD</field>
|
||||
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
|
||||
<field type="CharField" name="branch">HEAD</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="3">
|
||||
<field type="CharField" name="name">master</field>
|
||||
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
|
||||
<field type="CharField" name="branch">master</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="4">
|
||||
<field type="CharField" name="name">mickledore</field>
|
||||
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
|
||||
<field type="CharField" name="branch">2.4</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="5">
|
||||
<field type="CharField" name="name">dunfell</field>
|
||||
<field type="CharField" name="giturl">git://git.openembedded.org/bitbake</field>
|
||||
<field type="CharField" name="branch">1.46</field>
|
||||
</object>
|
||||
|
||||
<!-- Releases available -->
|
||||
<object model="orm.release" pk="1">
|
||||
<field type="CharField" name="name">kirkstone</field>
|
||||
<field type="CharField" name="description">Openembedded Kirkstone</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
|
||||
<field type="CharField" name="branch_name">kirkstone</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=kirkstone\">OpenEmbedded Kirkstone</a> branch.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="2">
|
||||
<field type="CharField" name="name">local</field>
|
||||
<field type="CharField" name="description">Local Openembedded</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">2</field>
|
||||
<field type="CharField" name="branch_name">HEAD</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds with the version of OpenEmbedded that you have cloned or downloaded to your computer.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="3">
|
||||
<field type="CharField" name="name">master</field>
|
||||
<field type="CharField" name="description">OpenEmbedded core master</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">3</field>
|
||||
<field type="CharField" name="branch_name">master</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/\">OpenEmbedded master</a> branch.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="4">
|
||||
<field type="CharField" name="name">mickledore</field>
|
||||
<field type="CharField" name="description">Openembedded Mickledore</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field>
|
||||
<field type="CharField" name="branch_name">mickledore</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=mickledore\">OpenEmbedded Mickledore</a> branch.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="5">
|
||||
<field type="CharField" name="name">dunfell</field>
|
||||
<field type="CharField" name="description">Openembedded Dunfell</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">5</field>
|
||||
<field type="CharField" name="branch_name">dunfell</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href=\"https://cgit.openembedded.org/openembedded-core/log/?h=dunfell\">OpenEmbedded Dunfell</a> branch.</field>
|
||||
</object>
|
||||
|
||||
<!-- Default layers for each release -->
|
||||
<object model="orm.releasedefaultlayer" pk="1">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="2">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="3">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="4">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="5">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Layer for the Local release -->
|
||||
<object model="orm.layer" pk="1">
|
||||
<field type="CharField" name="name">openembedded-core</field>
|
||||
<field type="CharField" name="vcs_url">git://git.openembedded.org/openembedded-core</field>
|
||||
<field type="CharField" name="vcs_web_url">https://cgit.openembedded.org/openembedded-core</field>
|
||||
<field type="CharField" name="vcs_web_tree_base_url">https://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%</field>
|
||||
<field type="CharField" name="vcs_web_file_base_url">https://cgit.openembedded.org/openembedded-core/tree/%path%?h=%branch%</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="1">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="local_path">OE-CORE-LAYER-DIR</field>
|
||||
<field type="CharField" name="branch">HEAD</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
</object>
|
||||
|
||||
</django-objects>
|
||||
280
sources/poky/bitbake/lib/toaster/orm/fixtures/poky.xml
Normal file
280
sources/poky/bitbake/lib/toaster/orm/fixtures/poky.xml
Normal file
@@ -0,0 +1,280 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<django-objects version="1.0">
|
||||
<!-- Set the project default value for DISTRO -->
|
||||
<object model="orm.toastersetting" pk="1">
|
||||
<field type="CharField" name="name">DEFCONF_DISTRO</field>
|
||||
<field type="CharField" name="value">poky</field>
|
||||
</object>
|
||||
|
||||
<!-- Bitbake versions which correspond to the metadata release -->
|
||||
<object model="orm.bitbakeversion" pk="1">
|
||||
<field type="CharField" name="name">kirkstone</field>
|
||||
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="branch">kirkstone</field>
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="2">
|
||||
<field type="CharField" name="name">HEAD</field>
|
||||
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="branch">HEAD</field>
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="3">
|
||||
<field type="CharField" name="name">master</field>
|
||||
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="branch">master</field>
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="4">
|
||||
<field type="CharField" name="name">mickledore</field>
|
||||
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="branch">mickledore</field>
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
<object model="orm.bitbakeversion" pk="5">
|
||||
<field type="CharField" name="name">dunfell</field>
|
||||
<field type="CharField" name="giturl">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="branch">dunfell</field>
|
||||
<field type="CharField" name="dirpath">bitbake</field>
|
||||
</object>
|
||||
|
||||
|
||||
<!-- Releases available -->
|
||||
<object model="orm.release" pk="1">
|
||||
<field type="CharField" name="name">kirkstone</field>
|
||||
<field type="CharField" name="description">Yocto Project 4.0 "Kirkstone"</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">1</field>
|
||||
<field type="CharField" name="branch_name">kirkstone</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=kirkstone">Yocto Project Kirkstone branch</a>.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="2">
|
||||
<field type="CharField" name="name">local</field>
|
||||
<field type="CharField" name="description">Local Yocto Project</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">2</field>
|
||||
<field type="CharField" name="branch_name">HEAD</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds with the version of the Yocto Project you have cloned or downloaded to your computer.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="3">
|
||||
<field type="CharField" name="name">master</field>
|
||||
<field type="CharField" name="description">Yocto Project master</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">3</field>
|
||||
<field type="CharField" name="branch_name">master</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/">Yocto Project Master branch</a>.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="4">
|
||||
<field type="CharField" name="name">mickledore</field>
|
||||
<field type="CharField" name="description">Yocto Project 4.2 "Mickledore"</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">4</field>
|
||||
<field type="CharField" name="branch_name">mickledore</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=mickledore">Yocto Project Mickledore branch</a>.</field>
|
||||
</object>
|
||||
<object model="orm.release" pk="5">
|
||||
<field type="CharField" name="name">dunfell</field>
|
||||
<field type="CharField" name="description">Yocto Project 3.1 "Dunfell"</field>
|
||||
<field rel="ManyToOneRel" to="orm.bitbakeversion" name="bitbake_version">5</field>
|
||||
<field type="CharField" name="branch_name">dunfell</field>
|
||||
<field type="TextField" name="helptext">Toaster will run your builds using the tip of the <a href="https://git.yoctoproject.org/cgit/cgit.cgi/poky/log/?h=dunfell">Yocto Project Dunfell branch</a>.</field>
|
||||
</object>
|
||||
|
||||
<!-- Default project layers for each release -->
|
||||
<object model="orm.releasedefaultlayer" pk="1">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="2">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="layer_name">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="3">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="layer_name">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="4">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="5">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="layer_name">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="6">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="layer_name">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="7">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="8">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="layer_name">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="9">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="layer_name">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="10">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="11">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="layer_name">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="12">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="layer_name">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="13">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="layer_name">openembedded-core</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="14">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="layer_name">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.releasedefaultlayer" pk="15">
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="layer_name">meta-yocto-bsp</field>
|
||||
</object>
|
||||
|
||||
<!-- Default layers provided by poky
|
||||
openembedded-core
|
||||
meta-poky
|
||||
meta-yocto-bsp
|
||||
-->
|
||||
<object model="orm.layer" pk="1">
|
||||
<field type="CharField" name="name">openembedded-core</field>
|
||||
<field type="CharField" name="layer_index_url"></field>
|
||||
<field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="vcs_web_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky</field>
|
||||
<field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
<field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="1">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="branch">kirkstone</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="2">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="branch">HEAD</field>
|
||||
<field type="CharField" name="commit">HEAD</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="3">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="branch">master</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="4">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="branch">mickledore</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="5">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">1</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="branch">dunfell</field>
|
||||
<field type="CharField" name="dirpath">meta</field>
|
||||
</object>
|
||||
|
||||
<object model="orm.layer" pk="2">
|
||||
<field type="CharField" name="name">meta-poky</field>
|
||||
<field type="CharField" name="layer_index_url"></field>
|
||||
<field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="vcs_web_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky</field>
|
||||
<field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
<field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="6">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="branch">kirkstone</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="7">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="branch">HEAD</field>
|
||||
<field type="CharField" name="commit">HEAD</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="8">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="branch">master</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="9">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="branch">mickledore</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="10">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">2</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="branch">dunfell</field>
|
||||
<field type="CharField" name="dirpath">meta-poky</field>
|
||||
</object>
|
||||
|
||||
<object model="orm.layer" pk="3">
|
||||
<field type="CharField" name="name">meta-yocto-bsp</field>
|
||||
<field type="CharField" name="layer_index_url"></field>
|
||||
<field type="CharField" name="vcs_url">git://git.yoctoproject.org/poky</field>
|
||||
<field type="CharField" name="vcs_web_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky</field>
|
||||
<field type="CharField" name="vcs_web_tree_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
<field type="CharField" name="vcs_web_file_base_url">https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/%path%?h=%branch%</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="11">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">1</field>
|
||||
<field type="CharField" name="branch">kirkstone</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="12">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">2</field>
|
||||
<field type="CharField" name="branch">HEAD</field>
|
||||
<field type="CharField" name="commit">HEAD</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="13">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">3</field>
|
||||
<field type="CharField" name="branch">master</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="14">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">4</field>
|
||||
<field type="CharField" name="branch">mickledore</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
<object model="orm.layer_version" pk="15">
|
||||
<field rel="ManyToOneRel" to="orm.layer" name="layer">3</field>
|
||||
<field type="IntegerField" name="layer_source">0</field>
|
||||
<field rel="ManyToOneRel" to="orm.release" name="release">5</field>
|
||||
<field type="CharField" name="branch">dunfell</field>
|
||||
<field type="CharField" name="dirpath">meta-yocto-bsp</field>
|
||||
</object>
|
||||
</django-objects>
|
||||
33
sources/poky/bitbake/lib/toaster/orm/fixtures/settings.xml
Normal file
33
sources/poky/bitbake/lib/toaster/orm/fixtures/settings.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<django-objects version="1.0">
|
||||
<!-- Default project settings -->
|
||||
<!-- pk=1 is DISTRO -->
|
||||
<object model="orm.toastersetting" pk="2">
|
||||
<field type="CharField" name="name">DEFAULT_RELEASE</field>
|
||||
<field type="CharField" name="value">master</field>
|
||||
</object>
|
||||
<object model="orm.toastersetting" pk="3">
|
||||
<field type="CharField" name="name">DEFCONF_PACKAGE_CLASSES</field>
|
||||
<field type="CharField" name="value">package_rpm</field>
|
||||
</object>
|
||||
<object model="orm.toastersetting" pk="4">
|
||||
<field type="CharField" name="name">DEFCONF_MACHINE</field>
|
||||
<field type="CharField" name="value">qemux86-64</field>
|
||||
</object>
|
||||
<object model="orm.toastersetting" pk="5">
|
||||
<field type="CharField" name="name">DEFCONF_SSTATE_DIR</field>
|
||||
<field type="CharField" name="value">${TOPDIR}/../sstate-cache</field>
|
||||
</object>
|
||||
<object model="orm.toastersetting" pk="6">
|
||||
<field type="CharField" name="name">DEFCONF_IMAGE_INSTALL:append</field>
|
||||
<field type="CharField" name="value"></field>
|
||||
</object>
|
||||
<object model="orm.toastersetting" pk="7">
|
||||
<field type="CharField" name="name">DEFCONF_IMAGE_FSTYPES</field>
|
||||
<field type="CharField" name="value">ext3 jffs2 tar.bz2</field>
|
||||
</object>
|
||||
<object model="orm.toastersetting" pk="8">
|
||||
<field type="CharField" name="name">DEFCONF_DL_DIR</field>
|
||||
<field type="CharField" name="value">${TOPDIR}/../downloads</field>
|
||||
</object>
|
||||
</django-objects>
|
||||
@@ -0,0 +1,290 @@
|
||||
#
|
||||
# BitBake Toaster Implementation
|
||||
#
|
||||
# Copyright (C) 2016-2017 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from orm.models import Layer, Release, Layer_Version
|
||||
from orm.models import LayerVersionDependency, Machine, Recipe
|
||||
from orm.models import Distro
|
||||
from orm.models import ToasterSetting
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
import logging
|
||||
import threading
|
||||
import time
|
||||
logger = logging.getLogger("toaster")
|
||||
|
||||
DEFAULT_LAYERINDEX_SERVER = "https://layers.openembedded.org/layerindex/api/"
|
||||
|
||||
# Add path to bitbake modules for layerindexlib
|
||||
# lib/toaster/orm/management/commands/lsupdates.py (abspath)
|
||||
# lib/toaster/orm/management/commands (dirname)
|
||||
# lib/toaster/orm/management (dirname)
|
||||
# lib/toaster/orm (dirname)
|
||||
# lib/toaster/ (dirname)
|
||||
# lib/ (dirname)
|
||||
path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))))
|
||||
sys.path.insert(0, path)
|
||||
|
||||
import layerindexlib
|
||||
|
||||
|
||||
class Spinner(threading.Thread):
|
||||
""" A simple progress spinner to indicate download/parsing is happening"""
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(Spinner, self).__init__(*args, **kwargs)
|
||||
self.daemon = True
|
||||
self.signal = True
|
||||
|
||||
def run(self):
|
||||
os.system('setterm -cursor off')
|
||||
while self.signal:
|
||||
for char in ["/", "-", "\\", "|"]:
|
||||
sys.stdout.write("\r" + char)
|
||||
sys.stdout.flush()
|
||||
time.sleep(0.25)
|
||||
os.system('setterm -cursor on')
|
||||
|
||||
def stop(self):
|
||||
self.signal = False
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
args = ""
|
||||
help = "Updates locally cached information from a layerindex server"
|
||||
|
||||
def mini_progress(self, what, i, total):
|
||||
i = i + 1
|
||||
pec = (float(i)/float(total))*100
|
||||
|
||||
sys.stdout.write("\rUpdating %s %d%%" %
|
||||
(what,
|
||||
pec))
|
||||
sys.stdout.flush()
|
||||
if int(pec) == 100:
|
||||
sys.stdout.write("\n")
|
||||
sys.stdout.flush()
|
||||
|
||||
def update(self):
|
||||
"""
|
||||
Fetches layer, recipe and machine information from a layerindex
|
||||
server
|
||||
"""
|
||||
os.system('setterm -cursor off')
|
||||
|
||||
self.apiurl = DEFAULT_LAYERINDEX_SERVER
|
||||
if ToasterSetting.objects.filter(name='CUSTOM_LAYERINDEX_SERVER').count() == 1:
|
||||
self.apiurl = ToasterSetting.objects.get(name = 'CUSTOM_LAYERINDEX_SERVER').value
|
||||
|
||||
assert self.apiurl is not None
|
||||
|
||||
# update branches; only those that we already have names listed in the
|
||||
# Releases table
|
||||
allowed_branch_names = [rel.branch_name
|
||||
for rel in Release.objects.all()]
|
||||
if len(allowed_branch_names) == 0:
|
||||
raise Exception("Failed to make list of branches to fetch")
|
||||
|
||||
logger.info("Fetching metadata for %s",
|
||||
" ".join(allowed_branch_names))
|
||||
|
||||
# We require a non-empty bb.data, but we can fake it with a dictionary
|
||||
layerindex = layerindexlib.LayerIndex({"DUMMY" : "VALUE"})
|
||||
|
||||
http_progress = Spinner()
|
||||
http_progress.start()
|
||||
|
||||
if allowed_branch_names:
|
||||
url_branches = ";branch=%s" % ','.join(allowed_branch_names)
|
||||
else:
|
||||
url_branches = ""
|
||||
layerindex.load_layerindex("%s%s" % (self.apiurl, url_branches))
|
||||
|
||||
http_progress.stop()
|
||||
|
||||
# We know we're only processing one entry, so we reference it here
|
||||
# (this is cheating...)
|
||||
index = layerindex.indexes[0]
|
||||
|
||||
# Map the layer index branches to toaster releases
|
||||
li_branch_id_to_toaster_release = {}
|
||||
|
||||
logger.info("Processing releases")
|
||||
|
||||
total = len(index.branches)
|
||||
for i, id in enumerate(index.branches):
|
||||
li_branch_id_to_toaster_release[id] = \
|
||||
Release.objects.get(name=index.branches[id].name)
|
||||
self.mini_progress("Releases", i, total)
|
||||
|
||||
# keep a track of the layerindex (li) id mappings so that
|
||||
# layer_versions can be created for these layers later on
|
||||
li_layer_id_to_toaster_layer_id = {}
|
||||
|
||||
logger.info("Processing layers")
|
||||
|
||||
total = len(index.layerItems)
|
||||
for i, id in enumerate(index.layerItems):
|
||||
try:
|
||||
l, created = Layer.objects.get_or_create(name=index.layerItems[id].name)
|
||||
l.up_date = index.layerItems[id].updated
|
||||
l.summary = index.layerItems[id].summary
|
||||
l.description = index.layerItems[id].description
|
||||
|
||||
if created:
|
||||
# predefined layers in the fixtures (for example poky.xml)
|
||||
# always preempt the Layer Index for these values
|
||||
l.vcs_url = index.layerItems[id].vcs_url
|
||||
l.vcs_web_url = index.layerItems[id].vcs_web_url
|
||||
l.vcs_web_tree_base_url = index.layerItems[id].vcs_web_tree_base_url
|
||||
l.vcs_web_file_base_url = index.layerItems[id].vcs_web_file_base_url
|
||||
l.save()
|
||||
except Layer.MultipleObjectsReturned:
|
||||
logger.info("Skipped %s as we found multiple layers and "
|
||||
"don't know which to update" %
|
||||
index.layerItems[id].name)
|
||||
|
||||
li_layer_id_to_toaster_layer_id[id] = l.pk
|
||||
|
||||
self.mini_progress("layers", i, total)
|
||||
|
||||
# update layer_versions
|
||||
logger.info("Processing layer versions")
|
||||
|
||||
# Map Layer index layer_branch object id to
|
||||
# layer_version toaster object id
|
||||
li_layer_branch_id_to_toaster_lv_id = {}
|
||||
|
||||
total = len(index.layerBranches)
|
||||
for i, id in enumerate(index.layerBranches):
|
||||
# release as defined by toaster map to layerindex branch
|
||||
release = li_branch_id_to_toaster_release[index.layerBranches[id].branch_id]
|
||||
|
||||
try:
|
||||
lv, created = Layer_Version.objects.get_or_create(
|
||||
layer=Layer.objects.get(
|
||||
pk=li_layer_id_to_toaster_layer_id[index.layerBranches[id].layer_id]),
|
||||
release=release
|
||||
)
|
||||
except KeyError:
|
||||
logger.warning(
|
||||
"No such layerindex layer referenced by layerbranch %d" %
|
||||
index.layerBranches[id].layer_id)
|
||||
continue
|
||||
|
||||
if created:
|
||||
lv.release = li_branch_id_to_toaster_release[index.layerBranches[id].branch_id]
|
||||
lv.up_date = index.layerBranches[id].updated
|
||||
lv.commit = index.layerBranches[id].actual_branch
|
||||
lv.dirpath = index.layerBranches[id].vcs_subdir
|
||||
lv.save()
|
||||
|
||||
li_layer_branch_id_to_toaster_lv_id[index.layerBranches[id].id] =\
|
||||
lv.pk
|
||||
self.mini_progress("layer versions", i, total)
|
||||
|
||||
logger.info("Processing layer version dependencies")
|
||||
|
||||
dependlist = {}
|
||||
for id in index.layerDependencies:
|
||||
try:
|
||||
lv = Layer_Version.objects.get(
|
||||
pk=li_layer_branch_id_to_toaster_lv_id[index.layerDependencies[id].layerbranch_id])
|
||||
except Layer_Version.DoesNotExist as e:
|
||||
continue
|
||||
|
||||
if lv not in dependlist:
|
||||
dependlist[lv] = []
|
||||
try:
|
||||
layer_id = li_layer_id_to_toaster_layer_id[index.layerDependencies[id].dependency_id]
|
||||
|
||||
dependlist[lv].append(
|
||||
Layer_Version.objects.get(layer__pk=layer_id,
|
||||
release=lv.release))
|
||||
|
||||
except Layer_Version.DoesNotExist:
|
||||
logger.warning("Cannot find layer version (ls:%s),"
|
||||
"up_id:%s lv:%s" %
|
||||
(self, index.layerDependencies[id].dependency_id, lv))
|
||||
|
||||
total = len(dependlist)
|
||||
for i, lv in enumerate(dependlist):
|
||||
LayerVersionDependency.objects.filter(layer_version=lv).delete()
|
||||
for lvd in dependlist[lv]:
|
||||
LayerVersionDependency.objects.get_or_create(layer_version=lv,
|
||||
depends_on=lvd)
|
||||
self.mini_progress("Layer version dependencies", i, total)
|
||||
|
||||
# update Distros
|
||||
logger.info("Processing distro information")
|
||||
|
||||
total = len(index.distros)
|
||||
for i, id in enumerate(index.distros):
|
||||
distro, created = Distro.objects.get_or_create(
|
||||
name=index.distros[id].name,
|
||||
layer_version=Layer_Version.objects.get(
|
||||
pk=li_layer_branch_id_to_toaster_lv_id[index.distros[id].layerbranch_id]))
|
||||
distro.up_date = index.distros[id].updated
|
||||
distro.name = index.distros[id].name
|
||||
distro.description = index.distros[id].description
|
||||
distro.save()
|
||||
self.mini_progress("distros", i, total)
|
||||
|
||||
# update machines
|
||||
logger.info("Processing machine information")
|
||||
|
||||
total = len(index.machines)
|
||||
for i, id in enumerate(index.machines):
|
||||
mo, created = Machine.objects.get_or_create(
|
||||
name=index.machines[id].name,
|
||||
layer_version=Layer_Version.objects.get(
|
||||
pk=li_layer_branch_id_to_toaster_lv_id[index.machines[id].layerbranch_id]))
|
||||
mo.up_date = index.machines[id].updated
|
||||
mo.name = index.machines[id].name
|
||||
mo.description = index.machines[id].description
|
||||
mo.save()
|
||||
self.mini_progress("machines", i, total)
|
||||
|
||||
# update recipes; paginate by layer version / layer branch
|
||||
logger.info("Processing recipe information")
|
||||
|
||||
total = len(index.recipes)
|
||||
for i, id in enumerate(index.recipes):
|
||||
try:
|
||||
lv_id = li_layer_branch_id_to_toaster_lv_id[index.recipes[id].layerbranch_id]
|
||||
lv = Layer_Version.objects.get(pk=lv_id)
|
||||
|
||||
ro, created = Recipe.objects.get_or_create(
|
||||
layer_version=lv,
|
||||
name=index.recipes[id].pn
|
||||
)
|
||||
|
||||
ro.layer_version = lv
|
||||
ro.up_date = index.recipes[id].updated
|
||||
ro.name = index.recipes[id].pn
|
||||
ro.version = index.recipes[id].pv
|
||||
ro.summary = index.recipes[id].summary
|
||||
ro.description = index.recipes[id].description
|
||||
ro.section = index.recipes[id].section
|
||||
ro.license = index.recipes[id].license
|
||||
ro.homepage = index.recipes[id].homepage
|
||||
ro.bugtracker = index.recipes[id].bugtracker
|
||||
ro.file_path = index.recipes[id].fullpath
|
||||
ro.is_image = 'image' in index.recipes[id].inherits.split()
|
||||
ro.save()
|
||||
except Exception as e:
|
||||
logger.warning("Failed saving recipe %s", e)
|
||||
|
||||
self.mini_progress("recipes", i, total)
|
||||
|
||||
os.system('setterm -cursor on')
|
||||
|
||||
def handle(self, **options):
|
||||
self.update()
|
||||
504
sources/poky/bitbake/lib/toaster/orm/migrations/0001_initial.py
Normal file
504
sources/poky/bitbake/lib/toaster/orm/migrations/0001_initial.py
Normal file
@@ -0,0 +1,504 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='BitbakeVersion',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(unique=True, max_length=32)),
|
||||
('giturl', models.URLField()),
|
||||
('branch', models.CharField(max_length=32)),
|
||||
('dirpath', models.CharField(max_length=255)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Branch',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('up_id', models.IntegerField(default=None, null=True)),
|
||||
('up_date', models.DateTimeField(default=None, null=True)),
|
||||
('name', models.CharField(max_length=50)),
|
||||
('short_description', models.CharField(max_length=50, blank=True)),
|
||||
],
|
||||
options={
|
||||
'verbose_name_plural': 'Branches',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Build',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('machine', models.CharField(max_length=100)),
|
||||
('distro', models.CharField(max_length=100)),
|
||||
('distro_version', models.CharField(max_length=100)),
|
||||
('started_on', models.DateTimeField()),
|
||||
('completed_on', models.DateTimeField()),
|
||||
('outcome', models.IntegerField(default=2, choices=[(0, b'Succeeded'), (1, b'Failed'), (2, b'In Progress')])),
|
||||
('cooker_log_path', models.CharField(max_length=500)),
|
||||
('build_name', models.CharField(max_length=100)),
|
||||
('bitbake_version', models.CharField(max_length=50)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='BuildArtifact',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('file_name', models.FilePathField()),
|
||||
('file_size', models.IntegerField()),
|
||||
('build', models.ForeignKey(to='orm.Build', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='HelpText',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('area', models.IntegerField(choices=[(0, b'variable')])),
|
||||
('key', models.CharField(max_length=100)),
|
||||
('text', models.TextField()),
|
||||
('build', models.ForeignKey(related_name='helptext_build', to='orm.Build', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Layer',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('up_id', models.IntegerField(default=None, null=True)),
|
||||
('up_date', models.DateTimeField(default=None, null=True)),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('layer_index_url', models.URLField()),
|
||||
('vcs_url', models.URLField(default=None, null=True)),
|
||||
('vcs_web_url', models.URLField(default=None, null=True)),
|
||||
('vcs_web_tree_base_url', models.URLField(default=None, null=True)),
|
||||
('vcs_web_file_base_url', models.URLField(default=None, null=True)),
|
||||
('summary', models.TextField(default=None, help_text=b'One-line description of the layer', null=True)),
|
||||
('description', models.TextField(default=None, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Layer_Version',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('up_id', models.IntegerField(default=None, null=True)),
|
||||
('up_date', models.DateTimeField(default=None, null=True)),
|
||||
('branch', models.CharField(max_length=80)),
|
||||
('commit', models.CharField(max_length=100)),
|
||||
('dirpath', models.CharField(default=None, max_length=255, null=True)),
|
||||
('priority', models.IntegerField(default=0)),
|
||||
('local_path', models.FilePathField(default=b'/', max_length=1024)),
|
||||
('build', models.ForeignKey(related_name='layer_version_build', default=None, to='orm.Build', null=True, on_delete=models.CASCADE)),
|
||||
('layer', models.ForeignKey(related_name='layer_version_layer', to='orm.Layer', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LayerSource',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(unique=True, max_length=63)),
|
||||
('sourcetype', models.IntegerField(choices=[(0, b'local'), (1, b'layerindex'), (2, b'imported')])),
|
||||
('apiurl', models.CharField(default=None, max_length=255, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LayerVersionDependency',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('up_id', models.IntegerField(default=None, null=True)),
|
||||
('depends_on', models.ForeignKey(related_name='dependees', to='orm.Layer_Version', on_delete=models.CASCADE)),
|
||||
('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE)),
|
||||
('layer_version', models.ForeignKey(related_name='dependencies', to='orm.Layer_Version', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LogMessage',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('level', models.IntegerField(default=0, choices=[(0, b'info'), (1, b'warn'), (2, b'error'), (3, b'critical'), (-1, b'toaster exception')])),
|
||||
('message', models.TextField(null=True, blank=True)),
|
||||
('pathname', models.FilePathField(max_length=255, blank=True)),
|
||||
('lineno', models.IntegerField(null=True)),
|
||||
('build', models.ForeignKey(to='orm.Build', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Machine',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('up_id', models.IntegerField(default=None, null=True)),
|
||||
('up_date', models.DateTimeField(default=None, null=True)),
|
||||
('name', models.CharField(max_length=255)),
|
||||
('description', models.CharField(max_length=255)),
|
||||
('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE)),
|
||||
('layer_version', models.ForeignKey(to='orm.Layer_Version', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Package',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('installed_name', models.CharField(default=b'', max_length=100)),
|
||||
('version', models.CharField(max_length=100, blank=True)),
|
||||
('revision', models.CharField(max_length=32, blank=True)),
|
||||
('summary', models.TextField(blank=True)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('size', models.IntegerField(default=0)),
|
||||
('installed_size', models.IntegerField(default=0)),
|
||||
('section', models.CharField(max_length=80, blank=True)),
|
||||
('license', models.CharField(max_length=80, blank=True)),
|
||||
('build', models.ForeignKey(to='orm.Build', null=True, on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Package_Dependency',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('dep_type', models.IntegerField(choices=[(0, b'depends'), (1, b'depends'), (3, b'recommends'), (2, b'recommends'), (4, b'suggests'), (5, b'provides'), (6, b'replaces'), (7, b'conflicts')])),
|
||||
('depends_on', models.ForeignKey(related_name='package_dependencies_target', to='orm.Package', on_delete=models.CASCADE)),
|
||||
('package', models.ForeignKey(related_name='package_dependencies_source', to='orm.Package', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Package_File',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('path', models.FilePathField(max_length=255, blank=True)),
|
||||
('size', models.IntegerField()),
|
||||
('package', models.ForeignKey(related_name='buildfilelist_package', to='orm.Package', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Project',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('short_description', models.CharField(max_length=50, blank=True)),
|
||||
('created', models.DateTimeField(auto_now_add=True)),
|
||||
('updated', models.DateTimeField(auto_now=True)),
|
||||
('user_id', models.IntegerField(null=True)),
|
||||
('is_default', models.BooleanField(default=False)),
|
||||
('bitbake_version', models.ForeignKey(to='orm.BitbakeVersion', null=True, on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProjectLayer',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('optional', models.BooleanField(default=True)),
|
||||
('layercommit', models.ForeignKey(to='orm.Layer_Version', null=True, on_delete=models.CASCADE)),
|
||||
('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProjectTarget',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('target', models.CharField(max_length=100)),
|
||||
('task', models.CharField(max_length=100, null=True)),
|
||||
('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProjectVariable',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('value', models.TextField(blank=True)),
|
||||
('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Recipe',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('up_id', models.IntegerField(default=None, null=True)),
|
||||
('up_date', models.DateTimeField(default=None, null=True)),
|
||||
('name', models.CharField(max_length=100, blank=True)),
|
||||
('version', models.CharField(max_length=100, blank=True)),
|
||||
('summary', models.TextField(blank=True)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('section', models.CharField(max_length=100, blank=True)),
|
||||
('license', models.CharField(max_length=200, blank=True)),
|
||||
('homepage', models.URLField(blank=True)),
|
||||
('bugtracker', models.URLField(blank=True)),
|
||||
('file_path', models.FilePathField(max_length=255)),
|
||||
('pathflags', models.CharField(max_length=200, blank=True)),
|
||||
('is_image', models.BooleanField(default=False)),
|
||||
('layer_source', models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE)),
|
||||
('layer_version', models.ForeignKey(related_name='recipe_layer_version', to='orm.Layer_Version', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Recipe_Dependency',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('dep_type', models.IntegerField(choices=[(0, b'depends'), (1, b'rdepends')])),
|
||||
('depends_on', models.ForeignKey(related_name='r_dependencies_depends', to='orm.Recipe', on_delete=models.CASCADE)),
|
||||
('recipe', models.ForeignKey(related_name='r_dependencies_recipe', to='orm.Recipe', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Release',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(unique=True, max_length=32)),
|
||||
('description', models.CharField(max_length=255)),
|
||||
('branch_name', models.CharField(default=b'', max_length=50)),
|
||||
('helptext', models.TextField(null=True)),
|
||||
('bitbake_version', models.ForeignKey(to='orm.BitbakeVersion', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ReleaseDefaultLayer',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('layer_name', models.CharField(default=b'', max_length=100)),
|
||||
('release', models.ForeignKey(to='orm.Release', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ReleaseLayerSourcePriority',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('priority', models.IntegerField(default=0)),
|
||||
('layer_source', models.ForeignKey(to='orm.LayerSource', on_delete=models.CASCADE)),
|
||||
('release', models.ForeignKey(to='orm.Release', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Target',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('target', models.CharField(max_length=100)),
|
||||
('task', models.CharField(max_length=100, null=True)),
|
||||
('is_image', models.BooleanField(default=False)),
|
||||
('image_size', models.IntegerField(default=0)),
|
||||
('license_manifest_path', models.CharField(max_length=500, null=True)),
|
||||
('build', models.ForeignKey(to='orm.Build', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Target_File',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('path', models.FilePathField()),
|
||||
('size', models.IntegerField()),
|
||||
('inodetype', models.IntegerField(choices=[(1, b'regular'), (2, b'directory'), (3, b'symlink'), (4, b'socket'), (5, b'fifo'), (6, b'character'), (7, b'block')])),
|
||||
('permission', models.CharField(max_length=16)),
|
||||
('owner', models.CharField(max_length=128)),
|
||||
('group', models.CharField(max_length=128)),
|
||||
('directory', models.ForeignKey(related_name='directory_set', to='orm.Target_File', null=True, on_delete=models.CASCADE)),
|
||||
('sym_target', models.ForeignKey(related_name='symlink_set', to='orm.Target_File', null=True, on_delete=models.CASCADE)),
|
||||
('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Target_Image_File',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('file_name', models.FilePathField(max_length=254)),
|
||||
('file_size', models.IntegerField()),
|
||||
('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Target_Installed_Package',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('package', models.ForeignKey(related_name='buildtargetlist_package', to='orm.Package', on_delete=models.CASCADE)),
|
||||
('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Task',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('order', models.IntegerField(null=True)),
|
||||
('task_executed', models.BooleanField(default=False)),
|
||||
('outcome', models.IntegerField(default=-1, choices=[(-1, b'Not Available'), (0, b'Succeeded'), (1, b'Covered'), (2, b'Cached'), (3, b'Prebuilt'), (4, b'Failed'), (5, b'Empty')])),
|
||||
('sstate_checksum', models.CharField(max_length=100, blank=True)),
|
||||
('path_to_sstate_obj', models.FilePathField(max_length=500, blank=True)),
|
||||
('task_name', models.CharField(max_length=100)),
|
||||
('source_url', models.FilePathField(max_length=255, blank=True)),
|
||||
('work_directory', models.FilePathField(max_length=255, blank=True)),
|
||||
('script_type', models.IntegerField(default=0, choices=[(0, b'N/A'), (2, b'Python'), (3, b'Shell')])),
|
||||
('line_number', models.IntegerField(default=0)),
|
||||
('disk_io', models.IntegerField(null=True)),
|
||||
('cpu_usage', models.DecimalField(null=True, max_digits=8, decimal_places=2)),
|
||||
('elapsed_time', models.DecimalField(null=True, max_digits=8, decimal_places=2)),
|
||||
('sstate_result', models.IntegerField(default=0, choices=[(0, b'Not Applicable'), (1, b'File not in cache'), (2, b'Failed'), (3, b'Succeeded')])),
|
||||
('message', models.CharField(max_length=240)),
|
||||
('logfile', models.FilePathField(max_length=255, blank=True)),
|
||||
('build', models.ForeignKey(related_name='task_build', to='orm.Build', on_delete=models.CASCADE)),
|
||||
('recipe', models.ForeignKey(related_name='tasks', to='orm.Recipe', on_delete=models.CASCADE)),
|
||||
],
|
||||
options={
|
||||
'ordering': ('order', 'recipe'),
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Task_Dependency',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('depends_on', models.ForeignKey(related_name='task_dependencies_depends', to='orm.Task', on_delete=models.CASCADE)),
|
||||
('task', models.ForeignKey(related_name='task_dependencies_task', to='orm.Task', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ToasterSetting',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(max_length=63)),
|
||||
('helptext', models.TextField()),
|
||||
('value', models.CharField(max_length=255)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Variable',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('variable_name', models.CharField(max_length=100)),
|
||||
('variable_value', models.TextField(blank=True)),
|
||||
('changed', models.BooleanField(default=False)),
|
||||
('human_readable_name', models.CharField(max_length=200)),
|
||||
('description', models.TextField(blank=True)),
|
||||
('build', models.ForeignKey(related_name='variable_build', to='orm.Build', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='VariableHistory',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('value', models.TextField(blank=True)),
|
||||
('file_name', models.FilePathField(max_length=255)),
|
||||
('line_number', models.IntegerField(null=True)),
|
||||
('operation', models.CharField(max_length=64)),
|
||||
('variable', models.ForeignKey(related_name='vhistory', to='orm.Variable', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='project',
|
||||
name='release',
|
||||
field=models.ForeignKey(to='orm.Release', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='package_dependency',
|
||||
name='target',
|
||||
field=models.ForeignKey(to='orm.Target', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='package',
|
||||
name='recipe',
|
||||
field=models.ForeignKey(to='orm.Recipe', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='logmessage',
|
||||
name='task',
|
||||
field=models.ForeignKey(blank=True, to='orm.Task', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='layersource',
|
||||
unique_together=set([('sourcetype', 'apiurl')]),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='layer_version',
|
||||
name='layer_source',
|
||||
field=models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='layer_version',
|
||||
name='project',
|
||||
field=models.ForeignKey(default=None, to='orm.Project', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='layer_version',
|
||||
name='up_branch',
|
||||
field=models.ForeignKey(default=None, to='orm.Branch', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='layer',
|
||||
name='layer_source',
|
||||
field=models.ForeignKey(default=None, to='orm.LayerSource', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='build',
|
||||
name='project',
|
||||
field=models.ForeignKey(to='orm.Project', on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='branch',
|
||||
name='layer_source',
|
||||
field=models.ForeignKey(default=True, to='orm.LayerSource', null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ImportedLayerSource',
|
||||
fields=[
|
||||
],
|
||||
options={
|
||||
'proxy': True,
|
||||
},
|
||||
bases=('orm.layersource',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LayerIndexLayerSource',
|
||||
fields=[
|
||||
],
|
||||
options={
|
||||
'proxy': True,
|
||||
},
|
||||
bases=('orm.layersource',),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LocalLayerSource',
|
||||
fields=[
|
||||
],
|
||||
options={
|
||||
'proxy': True,
|
||||
},
|
||||
bases=('orm.layersource',),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='task',
|
||||
unique_together=set([('build', 'recipe', 'task_name')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='releaselayersourcepriority',
|
||||
unique_together=set([('release', 'layer_source')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='recipe',
|
||||
unique_together=set([('layer_version', 'file_path', 'pathflags')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='projectlayer',
|
||||
unique_together=set([('project', 'layercommit')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='machine',
|
||||
unique_together=set([('layer_source', 'up_id')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='layerversiondependency',
|
||||
unique_together=set([('layer_source', 'up_id')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='layer_version',
|
||||
unique_together=set([('layer_source', 'up_id')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='layer',
|
||||
unique_together=set([('layer_source', 'up_id'), ('layer_source', 'name')]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='branch',
|
||||
unique_together=set([('layer_source', 'up_id'), ('layer_source', 'name')]),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='CustomImageRecipe',
|
||||
fields=[
|
||||
('recipe_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='orm.Recipe', on_delete=models.CASCADE)),
|
||||
('last_updated', models.DateTimeField(default=None, null=True)),
|
||||
('base_recipe', models.ForeignKey(related_name='based_on_recipe', to='orm.Recipe', on_delete=models.CASCADE)),
|
||||
('project', models.ForeignKey(to='orm.Project', on_delete=models.CASCADE)),
|
||||
],
|
||||
bases=('orm.recipe',),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0002_customimagerecipe'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='CustomImagePackage',
|
||||
fields=[
|
||||
('package_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='orm.Package', on_delete=models.CASCADE)),
|
||||
('recipe_appends', models.ManyToManyField(related_name='appends_set', to='orm.CustomImageRecipe')),
|
||||
('recipe_excludes', models.ManyToManyField(related_name='excludes_set', to='orm.CustomImageRecipe')),
|
||||
('recipe_includes', models.ManyToManyField(related_name='includes_set', to='orm.CustomImageRecipe')),
|
||||
],
|
||||
bases=('orm.package',),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0003_customimagepackage'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Provides',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('name', models.CharField(max_length=100)),
|
||||
('recipe', models.ForeignKey(to='orm.Recipe', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='recipe_dependency',
|
||||
name='via',
|
||||
field=models.ForeignKey(null=True, default=None, to='orm.Provides', on_delete=models.CASCADE),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0004_provides'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='task',
|
||||
name='cpu_usage',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='task',
|
||||
name='cpu_time_system',
|
||||
field=models.DecimalField(null=True, max_digits=8, decimal_places=2),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='task',
|
||||
name='cpu_time_user',
|
||||
field=models.DecimalField(null=True, max_digits=8, decimal_places=2),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='task',
|
||||
name='disk_io_read',
|
||||
field=models.IntegerField(null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='task',
|
||||
name='disk_io_write',
|
||||
field=models.IntegerField(null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='task',
|
||||
name='ended',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='task',
|
||||
name='started',
|
||||
field=models.DateTimeField(null=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0005_task_field_separation'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='build',
|
||||
name='outcome',
|
||||
field=models.IntegerField(default=2, choices=[(0, b'Succeeded'), (1, b'Failed'), (2, b'In Progress'), (3, b'Cancelled')]),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,89 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0006_add_cancelled_state'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='build',
|
||||
name='outcome',
|
||||
field=models.IntegerField(default=2, choices=[(0, 'Succeeded'), (1, 'Failed'), (2, 'In Progress'), (3, 'Cancelled')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='helptext',
|
||||
name='area',
|
||||
field=models.IntegerField(choices=[(0, 'variable')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layer',
|
||||
name='summary',
|
||||
field=models.TextField(default=None, null=True, help_text='One-line description of the layer'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layer_version',
|
||||
name='local_path',
|
||||
field=models.FilePathField(default='/', max_length=1024),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layersource',
|
||||
name='sourcetype',
|
||||
field=models.IntegerField(choices=[(0, 'local'), (1, 'layerindex'), (2, 'imported')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='logmessage',
|
||||
name='level',
|
||||
field=models.IntegerField(default=0, choices=[(0, 'info'), (1, 'warn'), (2, 'error'), (3, 'critical'), (-1, 'toaster exception')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='package',
|
||||
name='installed_name',
|
||||
field=models.CharField(default='', max_length=100),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='package_dependency',
|
||||
name='dep_type',
|
||||
field=models.IntegerField(choices=[(0, 'depends'), (1, 'depends'), (3, 'recommends'), (2, 'recommends'), (4, 'suggests'), (5, 'provides'), (6, 'replaces'), (7, 'conflicts')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='recipe_dependency',
|
||||
name='dep_type',
|
||||
field=models.IntegerField(choices=[(0, 'depends'), (1, 'rdepends')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='release',
|
||||
name='branch_name',
|
||||
field=models.CharField(default='', max_length=50),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='releasedefaultlayer',
|
||||
name='layer_name',
|
||||
field=models.CharField(default='', max_length=100),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='target_file',
|
||||
name='inodetype',
|
||||
field=models.IntegerField(choices=[(1, 'regular'), (2, 'directory'), (3, 'symlink'), (4, 'socket'), (5, 'fifo'), (6, 'character'), (7, 'block')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='task',
|
||||
name='outcome',
|
||||
field=models.IntegerField(default=-1, choices=[(-1, 'Not Available'), (0, 'Succeeded'), (1, 'Covered'), (2, 'Cached'), (3, 'Prebuilt'), (4, 'Failed'), (5, 'Empty')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='task',
|
||||
name='script_type',
|
||||
field=models.IntegerField(default=0, choices=[(0, 'N/A'), (2, 'Python'), (3, 'Shell')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='task',
|
||||
name='sstate_result',
|
||||
field=models.IntegerField(default=0, choices=[(0, 'Not Applicable'), (1, 'File not in cache'), (2, 'Failed'), (3, 'Succeeded')]),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,39 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0007_auto_20160523_1446'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='TargetKernelFile',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, verbose_name='ID', serialize=False)),
|
||||
('file_name', models.FilePathField()),
|
||||
('file_size', models.IntegerField()),
|
||||
('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TargetSDKFile',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, verbose_name='ID', serialize=False)),
|
||||
('file_name', models.FilePathField()),
|
||||
('file_size', models.IntegerField()),
|
||||
('target', models.ForeignKey(to='orm.Target', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='buildartifact',
|
||||
name='build',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='BuildArtifact',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0008_refactor_artifact_models'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='target',
|
||||
name='package_manifest_path',
|
||||
field=models.CharField(null=True, max_length=500),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,118 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0009_target_package_manifest_path'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name='releaselayersourcepriority',
|
||||
unique_together=set([]),
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='releaselayersourcepriority',
|
||||
name='layer_source',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='releaselayersourcepriority',
|
||||
name='release',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='ImportedLayerSource',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='LayerIndexLayerSource',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='LocalLayerSource',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='recipe',
|
||||
name='layer_source',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='recipe',
|
||||
name='up_id',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layer',
|
||||
name='up_date',
|
||||
field=models.DateTimeField(default=django.utils.timezone.now, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layer_version',
|
||||
name='layer_source',
|
||||
field=models.IntegerField(default=0, choices=[(0, 'local'), (1, 'layerindex'), (2, 'imported'), (3, 'build')]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layer_version',
|
||||
name='up_date',
|
||||
field=models.DateTimeField(default=django.utils.timezone.now, null=True),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='branch',
|
||||
unique_together=set([]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='layer',
|
||||
unique_together=set([]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='layer_version',
|
||||
unique_together=set([]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='layerversiondependency',
|
||||
unique_together=set([]),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='machine',
|
||||
unique_together=set([]),
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='ReleaseLayerSourcePriority',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='branch',
|
||||
name='layer_source',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='branch',
|
||||
name='up_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='layer',
|
||||
name='layer_source',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='layer',
|
||||
name='up_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='layer_version',
|
||||
name='up_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='layerversiondependency',
|
||||
name='layer_source',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='layerversiondependency',
|
||||
name='up_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='machine',
|
||||
name='layer_source',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='machine',
|
||||
name='up_id',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0010_delete_layer_source_references'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.DeleteModel(
|
||||
name='LayerSource',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,62 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
from django.db.models import Q
|
||||
|
||||
|
||||
def branch_to_release(apps, schema_editor):
|
||||
Layer_Version = apps.get_model('orm', 'Layer_Version')
|
||||
Release = apps.get_model('orm', 'Release')
|
||||
|
||||
print("Converting all layer version up_branches to releases")
|
||||
# Find all the layer versions which have an upbranch and convert them to
|
||||
# the release that they're for.
|
||||
for layer_version in Layer_Version.objects.filter(
|
||||
Q(release=None) & ~Q(up_branch=None)):
|
||||
try:
|
||||
# HEAD and local are equivalent
|
||||
if "HEAD" in layer_version.up_branch.name:
|
||||
release = Release.objects.get(name="local")
|
||||
layer_version.commit = "HEAD"
|
||||
layer_version.branch = "HEAD"
|
||||
else:
|
||||
release = Release.objects.get(
|
||||
name=layer_version.up_branch.name)
|
||||
|
||||
layer_version.release = release
|
||||
layer_version.save()
|
||||
except Exception as e:
|
||||
print("Couldn't work out an appropriate release for %s "
|
||||
"the up_branch was %s "
|
||||
"user the django admin interface to correct it" %
|
||||
(layer_version.layer.name, layer_version.up_branch.name))
|
||||
print(e)
|
||||
|
||||
continue
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0011_delete_layersource'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='layer_version',
|
||||
name='release',
|
||||
field=models.ForeignKey(to='orm.Release', default=None, null=True, on_delete=models.CASCADE),
|
||||
),
|
||||
migrations.RunPython(branch_to_release,
|
||||
reverse_code=migrations.RunPython.noop),
|
||||
|
||||
migrations.RemoveField(
|
||||
model_name='layer_version',
|
||||
name='up_branch',
|
||||
),
|
||||
|
||||
migrations.DeleteModel(
|
||||
name='Branch',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0012_use_release_instead_of_up_branch'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='build',
|
||||
name='recipes_parsed',
|
||||
field=models.IntegerField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='build',
|
||||
name='recipes_to_parse',
|
||||
field=models.IntegerField(default=1),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0013_recipe_parse_progress_fields'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='build',
|
||||
name='build_name',
|
||||
field=models.CharField(default='', max_length=100),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0014_allow_empty_buildname'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='layer',
|
||||
name='local_source_dir',
|
||||
field=models.TextField(null=True, default=None),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0015_layer_local_source_dir'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='build',
|
||||
name='repos_cloned',
|
||||
field=models.IntegerField(default=1),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='build',
|
||||
name='repos_to_clone',
|
||||
field=models.IntegerField(default=1), # (default off)
|
||||
),
|
||||
]
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0016_clone_progress'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Distro',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('up_id', models.IntegerField(default=None, null=True)),
|
||||
('up_date', models.DateTimeField(default=None, null=True)),
|
||||
('name', models.CharField(max_length=255)),
|
||||
('description', models.CharField(max_length=255)),
|
||||
('layer_version', models.ForeignKey(to='orm.Layer_Version', on_delete=models.CASCADE)),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0017_distro_clone'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='Project',
|
||||
name='builddir',
|
||||
field=models.TextField(),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='Project',
|
||||
name='merged_attr',
|
||||
field=models.BooleanField(default=False)
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='Build',
|
||||
name='progress_item',
|
||||
field=models.CharField(max_length=40)
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 2.2.7 on 2019-11-19 03:38
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0018_project_specific'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='distro',
|
||||
name='up_id',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='build',
|
||||
name='recipes_parsed',
|
||||
field=models.IntegerField(default=1),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,173 @@
|
||||
# Generated by Django 3.2.12 on 2022-03-06 03:28
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0019_django_2_2'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='bitbakeversion',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='build',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='distro',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='helptext',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layer',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layer_version',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='layerversiondependency',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='logmessage',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='machine',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='package',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='package_dependency',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='package_file',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='project',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='projectlayer',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='projecttarget',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='projectvariable',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='provides',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='recipe',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='recipe_dependency',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='release',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='releasedefaultlayer',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='target',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='target_file',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='target_image_file',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='target_installed_package',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='targetkernelfile',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='targetsdkfile',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='task',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='task_dependency',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='toastersetting',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='variable',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='variablehistory',
|
||||
name='id',
|
||||
field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 4.2.5 on 2023-11-23 18:44
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orm', '0020_models_bigautofield'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='EventLogsImports',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=255)),
|
||||
('imported', models.BooleanField(default=False)),
|
||||
('build_id', models.IntegerField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
]
|
||||
1882
sources/poky/bitbake/lib/toaster/orm/models.py
Normal file
1882
sources/poky/bitbake/lib/toaster/orm/models.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user