Dear Tizen Platform Developers,
This is RFC for prototyping of unified Tizen build project. We have been prototyping the possibility of unifying package names and Tizen build projects so that we can 1. Remove duplicated build processes in the build infra 2. Guarantee that "PKGNAME-VERSION-RELEASE.ARCH.rpm" is unique so that we can forget its origin (profile) and its installation target (profile). (ultimately, we will be able to use yum/zypper/DNF more effectively) 3. (with 1/2) Generate platform images on-the-fly with any configurations With (2) guaranteed, we can have a unique RPM repo for all Tizen profiles, allowing us to configure any profiles or devices. However, we do not intend to remove the current profiles, especially for app / device developers although such concept will be weakened for platform developers. There will be "standard" configurations for each profile, which will act as the conventional Tizen profiles for app / device developers. I have been updating some packages that do have different build (normally by using profile macro in spec file) for each profile, which make other build-depending packages to be built differently as well. (Most of my recent commits are such: https://review.tizen.org/gerrit/#/q/owner:%22MyungJoo+Ham%22 ) So far, about 330 packages are being unified from lower layer in my personal OBS server, which allows those 330 packages (git repos. not RPM files) to be built only once for every profile. It would be ideal if packages behave according to runtime/boottime information of profile; but that might sacrifice the performance and size besides unacceptable developer effort for now. Thus, I have been creating per-profile subpackages that has per-profile differences; e.g., PKG.rpm / PKG-devel.rpm : provides the common part and interfaces. (sometimes we needed to clean up devel packages, which accidently comes with .so) PKG-profile_tv.rpm: provides the "extended" part for TV profile (.so replacements) PKG-profile_wearable.rpm: provides the "extended" part for wearable profile (.so replacements) You can see such examples at: https://review.tizen.org/gerrit/#/c/89772/1/packaging/libsoup.spec https://review.tizen.org/gerrit/#/c/89783/1/packaging/gumd.spec https://review.tizen.org/gerrit/#/c/87290/1/packaging/vconf-internal-keys.spec In order to keep this moving, besides those trivial commits that I've been submitting, we need to address packages that -- Generates headers / interfaces differently for each profile -- The packages requires significant attention for that reason include (not complete): - xkb-tizen-data, xkbcommon, ... (thanks to Window/Wayland guys, it seems to be being resolved) (with this resolved, I expected about additional 200 packages might be unified soon.) - model-build-features: (I've started removing it) - efl-extension: (most serious, not even touched yet) - there will be more... There are some proposed rules to be discussed for future: - No more additional profile RPM macros are added. (%profile) - No more additional usage of model-build-features. EXCEPT for adaptation packages (devices drivers without creating build dependencies) and KS file generating meta packages. Others: please determine at boot/run-time (vconf/buxton?) or create per-profile sub packages. - NEVER EVER make headers/interfaces differently for profiles/devices. As we are in prototyping stage (the unified OBS project is not pushed to build.tizen.org, yet), we'd like to hear ideas and comments from platform developers. Cheers, MyungJoo -- MyungJoo Ham (함명주), Ph.D. Developer eXperience Lab, S/W Platform Team, Software R&D Center Samsung Electronics Cell: +82-10-6714-2858
_______________________________________________ Dev mailing list Dev@lists.tizen.org https://lists.tizen.org/listinfo/dev