Import Debian changes 0.0~git20221212.5e19d2f-ok1

generate-ninja (0.0~git20221212.5e19d2f-ok1) yangtze; urgency=medium

  * Build for openKylin.
This commit is contained in:
zhouganqing 2023-02-13 14:45:10 +08:00
parent d816a8e1ea
commit 43e65d4a6b
14 changed files with 212 additions and 0 deletions

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
generate-ninja (0.0~git20221212.5e19d2f-ok1) yangtze; urgency=medium
* Build for openKylin.
-- zhouganqing <zhouganqing@kylinos.cn> Mon, 13 Feb 2023 14:45:10 +0800

25
debian/control vendored Normal file
View File

@ -0,0 +1,25 @@
Source: generate-ninja
Section: utils
Priority: optional
Maintainer: OpenKylin Developers <packaging@lists.openkylin.top>
Build-Depends: clang [linux-any],
debhelper-compat (= 13),
git,
help2man,
ninja-build,
python3
Standards-Version: 4.6.2
Homepage: https://gn.googlesource.com/gn/
Vcs-Browser: https://gitee.com/openkylin/generate-ninja
Vcs-Git: https://gitee.com/openkylin/generate-ninja.git
Rules-Requires-Root: no
Package: generate-ninja
Architecture: amd64 arm64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 mips64el mipsel ppc64 ppc64el riscv64 s390x
Depends: ${misc:Depends}, ${shlibs:Depends}
Provides: gn
Description: meta-build system for ninja
Generate-Ninja, or GN, is a meta-build system that generates Ninja
build files so that you can build your project with Ninja. GN was,
originally, part of the Chromium source tree, and has since been
extracted into its own standalone repo.

96
debian/copyright vendored Normal file
View File

@ -0,0 +1,96 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: gn
Upstream-Contact: gn-dev@googlegroups.com
Source: https://gn.googlesource.com/gn
Files: *
Copyright: 2013-2020 Google Inc
2013-2020 scottmg@chromium.org
2013-2020 brettw@chromium.org
2013-2020 phosek@chromium.org
License: BSD-3-Clause
Files: debian/*
Copyright: 2020-2023 qinxialei <xialeiqin@gmail.com>
2013-2020 Ricardo Ribalda Delgado <ricardo@ribalda.com>
License: BSD-3-Clause
Files: infra/recipes.py
Copyright: Copyright 2017 The LUCI Authors.
License: Apache-2.0
Files: infra/recipes/gn.py
Copyright: Copyright 2018 The Chromium Authors.
License: Apache-2.0
Files: src/util/test/gn_test.cc
Copyright: Copyright 2017 The LUCI Authors.
License: Apache-2.0
Files: src/base/third_party/icu/*
Copyright: Copyright 1999-2015 International Business Machines
License: ICU
License: BSD-3-Clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: ICU
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, and/or sell
copies of the Software, and to permit persons
to whom the Software is furnished to do so, provided that the above
copyright notice(s) and this permission notice appear in all copies
of the Software and that both the above copyright notice(s) and this
permission notice appear in supporting documentation.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL
THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM,
OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
USE OR PERFORMANCE OF THIS SOFTWARE.
.
Except as contained in this notice, the name of a copyright holder shall not be
used in advertising or otherwise to promote the sale, use or other dealings in
this Software without prior written authorization of the copyright holder.
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
.
On Debian systems, the complete text of the Apache License, Version 2.0, can be
found in "/usr/share/common-licenses/Apache-2.0".

2
debian/generate-ninja.examples vendored Normal file
View File

@ -0,0 +1,2 @@
examples/simple_build/*
examples/simple_build/.gn

1
debian/generate-ninja.install vendored Normal file
View File

@ -0,0 +1 @@
out/gn /usr/bin

1
debian/generate-ninja.manpages vendored Normal file
View File

@ -0,0 +1 @@
out/gn.1

12
debian/gn-describe vendored Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
set -e
if git rev-parse --git-dir &>/dev/null ; then
git fetch --tags &>/dev/null || true
upstream_tag=$(dpkg-parsechangelog --show-field Version | sed 's#-.*##' | tr '~' '_')
git describe upstream/${upstream_tag} --abbrev=12 --match initial-commit
exit 0
fi
echo $DEB_VERSION_UPSTREAM | sed 's#^.*\.#initial-commit-1000-g#'

View File

@ -0,0 +1,14 @@
Unbundling version from git
diff --git a/build/gen.py b/build/gen.py
index fa23266c..794b4357 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -218,7 +218,7 @@ def main(argv):
def GenerateLastCommitPosition(host, header):
ROOT_TAG = 'initial-commit'
describe_output = subprocess.check_output(
- ['git', 'describe', 'HEAD', '--abbrev=12', '--match', ROOT_TAG],
+ ['debian/gn-describe'],
shell=host.is_windows(), cwd=REPO_ROOT)
mo = re.match(ROOT_TAG + '-(\d+)-g([0-9a-f]+)', describe_output.decode())
if not mo:

1
debian/patches/series vendored Normal file
View File

@ -0,0 +1 @@
Unbundling-version-from-git.patch

40
debian/rules vendored Executable file
View File

@ -0,0 +1,40 @@
#!/usr/bin/make -f
include /usr/share/dpkg/buildflags.mk
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
CXXFLAGS += $(CPPFLAGS) -fPIE
LDFLAGS += -pie
include /usr/share/dpkg/architecture.mk
ifeq "$(DEB_HOST_ARCH)" "armel"
LDFLAGS += -latomic
endif
#Needed by gn-describe when building outside git tree
include /usr/share/dpkg/pkg-info.mk
export DEB_VERSION_UPSTREAM
#Fallback to c++ if clang is not available
ifeq (, $(shell which clang++))
export CXX = c++
endif
%:
dh $@ --buildsystem=ninja --builddirectory=out
override_dh_auto_configure:
python3 $(CURDIR)/build/gen.py
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
$(CURDIR)/out/gn_unittests
endif
override_dh_auto_install:
#noop
override_dh_dwz:
#Clang-14 does not seem to play nice with dwz #1016563
VERSION = $(shell out/gn --version)
execute_before_dh_installdocs:
help2man --version-string="gn $(VERSION)" --name="Meta-build system that generates build files for Ninja" -N -o out/gn.1 out/gn

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (quilt)

2
debian/tests/control vendored Normal file
View File

@ -0,0 +1,2 @@
Tests: upstream-test-suite
Depends: g++, generate-ninja, ninja-build

8
debian/tests/upstream-test-suite vendored Normal file
View File

@ -0,0 +1,8 @@
#!/bin/sh
set -e
cd examples/simple_build
gn gen /tmp/out
cd /tmp/out
ninja
./hello

4
debian/watch vendored Normal file
View File

@ -0,0 +1,4 @@
version=4
opts="mode=git, pgpmode=none, pretty=0.0~git%cd.%h, repack, compression=xz" \
https://gn.googlesource.com/gn \
HEAD