platform/hal/backend/rootstrap-checker.git
8 weeks agoFix style of function local variables 64/317364/4 accepted/tizen_9.0_base accepted/tizen_base accepted/tizen_base_asan accepted/tizen_base_toolchain accepted/tizen_base_x accepted/tizen_base_x_asan tizen_9.0_base tizen_base accepted/tizen/9.0/base/20241030.075842 accepted/tizen/base/20240913.042530 accepted/tizen/base/asan/20241029.053919 accepted/tizen/base/toolchain/20241004.030038 accepted/tizen/base/x/20240913.063732 accepted/tizen/base/x/asan/20241010.014058 tizen_9.0_m2_release
Youngjae Cho [Mon, 9 Sep 2024 11:06:39 +0000 (20:06 +0900)]
Fix style of function local variables

Fix it to be lowercase, prefixed with local keyword.

Change-Id: Ib4769d191444a27bd17549ddf729554fcf7f211a
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
8 weeks agoAdd configuration for group filtering 63/317363/4
Youngjae Cho [Mon, 9 Sep 2024 10:17:29 +0000 (19:17 +0900)]
Add configuration for group filtering

To be operational with group information, new attributes below have
been added.
 - target_group_name
   : Similar to target_package_name, but it specifies groups that
     are subject to hal-rootstrap-checker instead of package name.

 - allowed_buildrequires_group_name:
   : Similar to allowed_buildrequires_package_name, but it works
     based on group name instead of package name. The effective allowed
     set is made up of the below two set.
       (allowed_buildrequires_package_name
                             || allowed_buildrequires_group_name)

To be clearly distinguished from the above attributes, several attributes
have been renamed.
 - allowed_buildrequires -> allowed_buildrequires_package_name
 - allowed_buildconflicts -> allowed_buildconflicts_package_name

Change-Id: I9d6fa4e1d73b63db76ee273f9c85b655fa347438
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
8 weeks agoExtract repeated code into a function 27/317327/5
Youngjae Cho [Wed, 4 Sep 2024 02:55:25 +0000 (11:55 +0900)]
Extract repeated code into a function

Those code has been changed to a function, pattern matching and
collecting not allowed dependencies.

Change-Id: I641a7fa974c9a6b29492f09a2ed3dc2a29f8f5ee
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
8 weeks agoPrint success log if there are no violations 37/317037/4
Youngjae Cho [Tue, 3 Sep 2024 04:55:19 +0000 (13:55 +0900)]
Print success log if there are no violations

It prevents the checker from silently terminated on success.

Change-Id: Ia2359f3f018f790634ccf0d306d1a3554ed5b8b3
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
8 weeks agoAdd option action_on_violation for controlling rpmbuild 36/317036/4
Youngjae Cho [Tue, 3 Sep 2024 04:48:33 +0000 (13:48 +0900)]
Add option action_on_violation for controlling rpmbuild

The option can have value 'error' or 'warning' or 'ignore'. It defines
how hal-rootstrap-checker should act on detecting not allowed build
dependency. The meanings of each value are
 - error
   : Print error log, and cease rpmbuild with build error
 - warning
   : Print warning log, and continue rpmbuild
 - ignore
   : Keep silent, and continue rpmbuild

Change-Id: Ifbb42efa9ca6bb689a25246c08f5767b15b39ce7
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
2 months agoDisable check for allowed_requires 97/316697/2 accepted/tizen/base/20240903.011331 accepted/tizen/base/x/20240903.013230
Youngjae Cho [Wed, 28 Aug 2024 02:02:55 +0000 (11:02 +0900)]
Disable check for allowed_requires

It is hardly configurable that which packages could be an allowed_requires.
For example, /sbin/ldconfig for %post scriptlet could be specified as
Requires(post), but technically, it is not related to the source ABI
compatibility. That is, it is difficult to set allowed_requires considering
every packages that could be used as Requires. Of course, there could be a
package specified as Requires dependency that matters in ABI compatibility
though, we cannot specify all the other exceptions like /sbin/ldconfig.
Therefore, temporarily disabled allowed_requires.

Change-Id: I963a4e0aa283cfe1cce0e9967d6a5ce9da810c50
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
2 months agoAdd obs directive #!BuildIgnore 51/316651/1 accepted/tizen/base/20240827.034555 accepted/tizen/base/20240828.010439 accepted/tizen/base/x/20240827.041914
Youngjae Cho [Mon, 26 Aug 2024 07:41:32 +0000 (16:41 +0900)]
Add obs directive #!BuildIgnore

Change-Id: I8d33f57fecd0e7d9254d7c3e675ded092a932098
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
2 months agoAdd hal-rootstrap-checker 07/316407/4 accepted/tizen/base/20240823.063039 accepted/tizen/base/x/20240826.005822
Youngjae Cho [Wed, 21 Aug 2024 02:28:46 +0000 (11:28 +0900)]
Add hal-rootstrap-checker

The hal-rootstrap-checker is mainly for screening packages out from
build that have dependencies to unmanaged, especially ABI incompatible,
packages. It operates after every %install stage of rpmbuild, aided by
rpm macro. Those managed/unmanaged packages can be configured by yaml
file described below.

The rpm-tizen_macros(defined at platform/upstream/rpm) has anchor point
    %{?__hal_rootstrap_checker_install_post}
and this repository provides definition of that macro. And it leads
hal-rootstrap-checker.sh to be executed when rpmbuild confronts the
macro. See macros.hal-rootstrap-checker.

Note that, when the gbs build is triggered, the installation of this
repository is always followed by the execution of rpmbuild. Therefore,
it is guaranted for the rpmbuild to find hal-rootstrap-checker.sh and
its related stuffs such as configuration file and macro file. This
is possible because there are several packages preinstalled by build
system before running rpmbuild. And this hal-rootstrap-checker has
become one of that packages. See scm/meta/qb for the details.

The hal-rootstrap-checker.sh can be configured by yaml file with the
same name. The default one is
 /etc/hal/rootstrap/hal-rootstrap-checker.yaml.

And there can be another one,
 /etc/hal/rootstrap/rules.d/hal-rootstrap-checker.yaml,
which shades the default configuration, and it gives a way for applying
custom defined configuration.

For those details about configuration attributes, see the yaml file.

Overview:
> Triggering gbs build
   |
   |--> Preinstalling [...]
   |--> Preinstalling hal-rootstrap-checker
   |     |-- /etc/hal/rootstrap/hal-rootstrap-checker.sh
   |     |-- /etc/hal/rootstrap/hal-rootstrap-checker.yaml
   |     |-- /etc/rpm/macros.hal-roostrap-checker
   |
   |--> Preinstalling rpm
   |--> Preinstalling [...]
   |
   |--> Exec rpmbuild
         |
         |--> %prep
 |--> %build
 |--> [...]
 |
 |--> %install
 |
 |--> %{__spec_install_post}
 |     |--> %{?__hal_rootstrap_checker_install_post}
 |          (Overwritten by /etc/rpm/macros.hal-rootstrap-checker)
 |            |--> /etc/hal/rootstrap/hal-rootstrap-checker.sh
 |                   |--> Stop rpmbuild if hal-rootstrap-checker
 |                        blames that something not allowed dependencies
 |                        have been specified. Otherwise, continue the
 |                        remaining procedure.
 |
 |--> [...]

Change-Id: I2ae618dc82d8d2eb71cc675888833d94795337aa
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
2 months agopackaging: Initialize prerequisites for packaging 45/316345/1 accepted/tizen/base/20240822.000044 accepted/tizen/base/asan/20240822.230604 accepted/tizen/base/x/20240822.004144
Youngjae Cho [Tue, 20 Aug 2024 02:10:44 +0000 (11:10 +0900)]
packaging: Initialize prerequisites for packaging

Change-Id: Ib3aa6282603b0df236ac54b6174ca5a243644951
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
2 months agoInitial empty repository master
Jinkun Jang [Tue, 20 Aug 2024 00:03:55 +0000 (00:03 +0000)]
Initial empty repository