diff options
Diffstat (limited to 'debian/_buildscripts/local')
26 files changed, 326 insertions, 222 deletions
diff --git a/debian/_buildscripts/local/00_extradeps.sh b/debian/_buildscripts/local/00_pre_base.sh index 82edb1404..082c47224 100755 --- a/debian/_buildscripts/local/00_extradeps.sh +++ b/debian/_buildscripts/local/00_pre_base.sh @@ -5,20 +5,21 @@ #---------------------------- set_log_start +build_module "metapackages/tde-cdbs" +build_module "dependencies/tde-cmake" + if [[ "$USE_PREBUILD_EXTRA_DEPS" = "y" ]]; then echo -e "${CBrown}#### Use of pre-built extra dependency packages is currently configured. Nothing to do. ####\n${CNone}" echo "Use of pre-built extra dependency packages is currently configured. Nothing to do." >>"$LOG_BUILD_RESULT_FILENAME" else - build_module "$CFG_EXTRA_DEPS_DIR/uncrustify-trinity" # build_module "$CFG_EXTRA_DEPS_DIR/fireflies" + build_module "$CFG_EXTRA_DEPS_DIR/gettext-kde" build_module "$CFG_EXTRA_DEPS_DIR/htdig" build_module "$CFG_EXTRA_DEPS_DIR/imlib" build_module "$CFG_EXTRA_DEPS_DIR/jasper" build_module "$CFG_EXTRA_DEPS_DIR/lcms" - build_module "$CFG_EXTRA_DEPS_DIR/mp4v2" build_module "$CFG_EXTRA_DEPS_DIR/openslp-dfsg" - build_module "$CFG_EXTRA_DEPS_DIR/transcode" build_module "$CFG_EXTRA_DEPS_DIR/wv2" fi diff --git a/debian/_buildscripts/local/01_base_01.sh b/debian/_buildscripts/local/01_base_01.sh index e291ed8e5..ed8c46d62 100755 --- a/debian/_buildscripts/local/01_base_01.sh +++ b/debian/_buildscripts/local/01_base_01.sh @@ -5,22 +5,22 @@ #---------------------------- set_log_start -build_module "common/cmake" build_module "dependencies/libr" build_module "dependencies/akode" -build_module "dependencies/tqt3" -build_module "dependencies/tqtinterface" +build_module "dependencies/libart-lgpl" +build_module "dependencies/libcaldav" +build_module "dependencies/libcarddav" +build_module "dependencies/tqt" +if [[ "$DEFAULT_REPO_BRANCH" == "r14.1.x" ]]; then + build_module "dependencies/tqtinterface" +fi build_module "dependencies/arts" -build_module "dependencies/dbus-tqt" build_module "dependencies/dbus-1-tqt" build_module "dependencies/tqca" -build_module "dependencies/libart-lgpl" build_module "dependencies/avahi-tqt" -build_module "dependencies/libcaldav" -build_module "dependencies/libcarddav" +build_module "dependencies/polkit-tqt" if [[ "$USE_PREBUILD_EXTRA_DEPS" != "y" ]]; then - # needs cmake-trinity so must be build after common/cmake module - build_module "$CFG_EXTRA_DEPS_DIR/pcsc-lite-nodbus" + build_module "$CFG_EXTRA_DEPS_DIR/pcsc-lite-nodbus" fi build_module "core/tdelibs" build_module "libraries/libtdeldap" diff --git a/debian/_buildscripts/local/02_base_02.sh b/debian/_buildscripts/local/02_base_02.sh index 61c500d36..abe995014 100755 --- a/debian/_buildscripts/local/02_base_02.sh +++ b/debian/_buildscripts/local/02_base_02.sh @@ -7,8 +7,8 @@ set_log_start build_module "dependencies/sip4-tqt" build_module "dependencies/tqscintilla" -build_module "dependencies/python-tqt" -build_module "libraries/python-trinity" +build_module "dependencies/pytqt" +build_module "libraries/pytde" build_module "libraries/pytdeextensions" build_module "core/tdebindings" build_module "libraries/libtqt-perl" diff --git a/debian/_buildscripts/local/05_apps_system.sh b/debian/_buildscripts/local/05_apps_system.sh index fa3d861a6..4e851a121 100755 --- a/debian/_buildscripts/local/05_apps_system.sh +++ b/debian/_buildscripts/local/05_apps_system.sh @@ -19,10 +19,14 @@ build_module "applications/system/krusader" build_module "applications/system/kshutdown" build_module "applications/system/ksystemlog" build_module "applications/system/kvkbd" +build_module "applications/system/polkit-agent-tde" build_module "applications/system/smartcardauth" build_module "applications/system/tastymenu" +build_module "applications/system/tdebluez" build_module "applications/system/tdedocker" build_module "applications/system/tdepowersave" +build_module "applications/system/tdesshaskpass" +build_module "applications/system/xdg-desktop-portal-tde" build_module "applications/system/yakuake" set_log_end diff --git a/debian/_buildscripts/local/06_apps_utilities.sh b/debian/_buildscripts/local/06_apps_utilities.sh index c90ff66cc..eb3edc68e 100755 --- a/debian/_buildscripts/local/06_apps_utilities.sh +++ b/debian/_buildscripts/local/06_apps_utilities.sh @@ -13,6 +13,7 @@ build_module "applications/utilities/kcpuload" build_module "applications/utilities/kdirstat" build_module "applications/utilities/keep" build_module "applications/utilities/knutclient" +build_module "applications/utilities/kommando" build_module "applications/utilities/kompose" build_module "applications/utilities/krename" build_module "applications/utilities/ksensors" diff --git a/debian/_buildscripts/local/07_apps_settings.sh b/debian/_buildscripts/local/07_apps_settings.sh index f20a83bc6..065d45e40 100755 --- a/debian/_buildscripts/local/07_apps_settings.sh +++ b/debian/_buildscripts/local/07_apps_settings.sh @@ -12,9 +12,10 @@ build_module "applications/settings/kkbswitch" build_module "applications/settings/klcddimmer" build_module "applications/settings/kmyfirewall" build_module "applications/settings/tde-guidance" +build_module "applications/settings/tde-systemsettings" +build_module "applications/settings/tdealternatives" build_module "applications/settings/tdenetworkmanager" build_module "applications/settings/tdesudo" -build_module "applications/settings/tde-systemsettings" build_module "applications/settings/wlassistant" set_log_end diff --git a/debian/_buildscripts/local/09_apps_development.sh b/debian/_buildscripts/local/09_apps_development.sh index f5e41d1bf..1d913e4f2 100755 --- a/debian/_buildscripts/local/09_apps_development.sh +++ b/debian/_buildscripts/local/09_apps_development.sh @@ -13,5 +13,7 @@ build_module "applications/development/ktechlab" build_module "applications/development/kxmleditor" build_module "applications/development/piklab" build_module "applications/development/tdesvn" +build_module "applications/development/tdexsldbg" +build_module "applications/development/universal-indent-gui-tqt" set_log_end diff --git a/debian/_buildscripts/local/10_apps_games.sh b/debian/_buildscripts/local/10_apps_games.sh index 09290d0c0..72d3869f5 100755 --- a/debian/_buildscripts/local/10_apps_games.sh +++ b/debian/_buildscripts/local/10_apps_games.sh @@ -6,6 +6,7 @@ set_log_start build_module "applications/games/knights" +build_module "applications/games/tdeknighttour" build_module "applications/games/tdepacman" set_log_end diff --git a/debian/_buildscripts/local/12_apps_office.sh b/debian/_buildscripts/local/12_apps_office.sh index c9baaecd1..80f2cbd8f 100755 --- a/debian/_buildscripts/local/12_apps_office.sh +++ b/debian/_buildscripts/local/12_apps_office.sh @@ -14,6 +14,7 @@ build_module "applications/office/knowit" build_module "applications/office/koffice" build_module "applications/office/koffice-i18n" build_module "applications/office/keximdb" +build_module "applications/office/tde-ebook-reader" build_module "applications/office/tellico" if [[ "$USE_PREBUILD_EXTRA_DEPS" != "y" ]]; then diff --git a/debian/_buildscripts/local/13_apps_multimedia.sh b/debian/_buildscripts/local/13_apps_multimedia.sh index 3c3dc30d4..ae54294ec 100755 --- a/debian/_buildscripts/local/13_apps_multimedia.sh +++ b/debian/_buildscripts/local/13_apps_multimedia.sh @@ -11,8 +11,7 @@ build_module "applications/multimedia/k3b" build_module "applications/multimedia/k3b-i18n" build_module "applications/multimedia/k9copy" build_module "applications/multimedia/kaffeine" -build_module "applications/multimedia/kaffeine-mozilla" -build_module "applications/multimedia/kmplayer" # depends on koffice-trinity-dev +build_module "applications/multimedia/kmplayer" build_module "applications/multimedia/kplayer" build_module "applications/multimedia/mplayerthumbs" build_module "applications/multimedia/rosegarden" diff --git a/debian/_buildscripts/local/14_apps_tdeio.sh b/debian/_buildscripts/local/14_apps_tdeio.sh index ad588b66d..d50b03a5c 100755 --- a/debian/_buildscripts/local/14_apps_tdeio.sh +++ b/debian/_buildscripts/local/14_apps_tdeio.sh @@ -5,6 +5,7 @@ #---------------------------- set_log_start +build_module "applications/tdeio/tdeio-appinfo" build_module "applications/tdeio/tdeio-apt" build_module "applications/tdeio/tdeio-ftps" build_module "applications/tdeio/tdeio-gopher" diff --git a/debian/_buildscripts/local/15_apps_themes.sh b/debian/_buildscripts/local/15_apps_themes.sh index 8bffc9ab8..25bc06a34 100755 --- a/debian/_buildscripts/local/15_apps_themes.sh +++ b/debian/_buildscripts/local/15_apps_themes.sh @@ -9,15 +9,18 @@ build_module "applications/themes/gtk3-tqt-engine" build_module "applications/themes/gtk-qt-engine" build_module "applications/themes/kgtk-qt3" build_module "applications/themes/ksplash-engine-moodin" -# build_module "applications/themes/qt4-tqt-theme-engine" build_module "applications/themes/tde-style-baghira" build_module "applications/themes/tde-style-domino" build_module "applications/themes/tde-style-ia-ora" build_module "applications/themes/tde-style-lipstik" +build_module "applications/themes/tde-style-polyester" build_module "applications/themes/tde-style-qtcurve" build_module "applications/themes/tdmtheme" build_module "applications/themes/twin-style-crystal" build_module "applications/themes/twin-style-dekorator" +build_module "applications/themes/twin-style-fahrenheit" +build_module "applications/themes/twin-style-machbunt" +build_module "applications/themes/twin-style-mallory" build_module "applications/themes/twin-style-suse2" set_log_end diff --git a/debian/_buildscripts/local/16_apps_misc.sh b/debian/_buildscripts/local/16_apps_misc.sh index 2ffd8277e..f7f028ff3 100755 --- a/debian/_buildscripts/local/16_apps_misc.sh +++ b/debian/_buildscripts/local/16_apps_misc.sh @@ -7,7 +7,6 @@ set_log_start build_module "applications/misc/bibletime" build_module "applications/misc/desktop-effects-tde" -build_module "applications/misc/fusion-icon" build_module "applications/misc/kcmldap" build_module "applications/misc/kcmldapcontroller" build_module "applications/misc/kcmldapmanager" @@ -20,7 +19,6 @@ if [[ "$USE_PREBUILD_EXTRA_DEPS" != "y" ]]; then build_module "$CFG_EXTRA_DEPS_DIR/compiz-fusion-bcop-trinity" build_module "$CFG_EXTRA_DEPS_DIR/compiz-fusion-plugins-main-trinity" build_module "$CFG_EXTRA_DEPS_DIR/compiz-fusion-plugins-extra-trinity" - build_module "$CFG_EXTRA_DEPS_DIR/compizconfig-python-trinity" fi build_module "applications/misc/compizconfig-backend-tdeconfig" diff --git a/debian/_buildscripts/local/91_build_base.sh b/debian/_buildscripts/local/91_build_base.sh index b53ba9048..d83f9d544 100755 --- a/debian/_buildscripts/local/91_build_base.sh +++ b/debian/_buildscripts/local/91_build_base.sh @@ -1,8 +1,6 @@ #!/bin/bash -if [[ "$USE_PREBUILD_EXTRA_DEPS" != "y" ]]; then - ./00_extradeps.sh -fi +./00_pre_base.sh ./01_base_01.sh ./02_base_02.sh ./03_base_03.sh diff --git a/debian/_buildscripts/local/92_build_applications.sh b/debian/_buildscripts/local/92_build_applications.sh index d16b5cc54..b617bc311 100755 --- a/debian/_buildscripts/local/92_build_applications.sh +++ b/debian/_buildscripts/local/92_build_applications.sh @@ -12,3 +12,4 @@ ./14_apps_tdeio.sh ./15_apps_themes.sh ./16_apps_misc.sh +./17_meta_packages.sh diff --git a/debian/_buildscripts/local/99_build_TDE.sh b/debian/_buildscripts/local/99_build_TDE.sh index 1a80862a6..45e85f97e 100755 --- a/debian/_buildscripts/local/99_build_TDE.sh +++ b/debian/_buildscripts/local/99_build_TDE.sh @@ -50,6 +50,5 @@ set_log_start ./91_build_base.sh ./92_build_applications.sh -./17_meta_packages.sh set_log_end diff --git a/debian/_buildscripts/local/README.txt b/debian/_buildscripts/local/README.txt index 12044c7ae..500435c09 100644 --- a/debian/_buildscripts/local/README.txt +++ b/debian/_buildscripts/local/README.txt @@ -11,12 +11,24 @@ A) Environment preparation -------------------------- 0) Initial notes - this guide has been prepared based on a clean debian testing netinstall system without any other DE. - It should work for other debian/ubuntu distros as well, but eventually you may run into small differences + It should work for other debian/devuan/ubuntu distros as well, but eventually you may run into small differences here and there. - you can change folder names below, as long as you update the "_config.sh" file accordingly. - -1) Install following packages: bc, cdbs, git, pbuilder, rsync and required dependencies. - NOTE: sudo should already be installed. If not, install sudo as well. + - you need to choose whether to use standard git repository clones or use git worktrees. + Different instructions will be provided where necessary, based on the choice made. + - if you want to build a single module, you can choose to use prebuilt TDE packages to satisfy the missing + dependencies. More on this at point 8). + - you need to choose whether to use pre built extra dependency packages or build them yourself. + Different instructions will be provided where necessary, based on the choice made. + More on this at point 9). + +1) Install following packages: bc, build-essential, cdbs, debhelper, fakeroot, git, pbuilder, quilt, + rsync, sudo and required dependencies. + To build some python related packages, you will also need to install dh-python and python3-setuptools. + NOTE: + pytdeextensions requires some actions before you can build it (even in a clean environment) due to the current build scripts + used for it. You will need to first build tdelibs, pytqt and pytde, then install those packages on your system and then + you should be able to successfully build pytdeextensions. 2) Create a base folder for TDE, hereafter referred to as TDE_DIR (for example $HOME/tde_src) @@ -41,7 +53,7 @@ A) Environment preparation cd tde ./scripts/switch_all_submodules_to_head_and_clean anonymous - A.2) If you are not using pre-built extra dependencies: + A.2) If you are *not* using pre-built extra dependencies: cd "$TDE_DIR/1_git" git clone https://mirror.git.trinitydesktop.org/gitea/TDE/extra-dependencies.git edeps @@ -50,15 +62,16 @@ A) Environment preparation cd "$TDE_DIR/1_git" git clone --bare --config "remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*" https://mirror.git.trinitydesktop.org/gitea/TDE/tde.git repos/tde.git - B.2) If you are not using pre-built extra dependencies: + B.2) If you are *not* using pre-built extra dependencies: cd "$TDE_DIR/1_git" git clone --bare --config "remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*" https://mirror.git.trinitydesktop.org/gitea/TDE/extra-dependencies.git repos/edeps.git B.3) run the script "update_repositories.sh" once you have completed the setup as described later in this document. -5) Add your user to the sudo group (not required if you are root) - su -c "adduser <username> sudo" - Logout and login again to make sure the new settings are applied. +5) Add your user to the sudo group (not required if you are root). Mind the stand alone "-"! + su - -c "adduser <username> sudo" + Logout and login again to make sure the new settings are applied. If you forget this step, you will have build + errors when you first try to build a module. * Optionally, consider extending your sudo timeout interval to avoid having to type your password too often (this could be quite painful especially during long builds, which would not be able to complete if unattended). To do this, type "sudo visudo" and then add "Defaults timestamp_timeout=<new timeout>", where the value is in @@ -71,9 +84,11 @@ A) Environment preparation sudo pbuilder create If you wish to build for a different distro or architecture, use the command: sudo DISTRO_NAME=<target distro> ARCHITECTURE=<target architecture> pbuilder create + If all goes well there should be no errors reported and a file named "base-<distro name>@<architecture>.tgz" + should be found at location "/var/cache/pbuilder/". 8) Setup the build scripts locally: - - copy build scripts from "TDE_DIR/1_git/tde/packaging/debian/_buildscripts/local" to "TDE_DIR/buildscripts" + - copy the contents of "TDE_DIR/1_git/tde/packaging/debian/_buildscripts/local" to "TDE_DIR/buildscripts" and make sure all shell scripts are executable - cd "TDE_DIR/buildscripts" - cp ./internals/_config_template.sh _config.sh @@ -84,38 +99,48 @@ A) Environment preparation from your current setup. Otherwise the variables can be left empty and auto detection will be performed. * UPDATE_BRANCHES to the branches you want to keep updated from the main repositories. * DEFAULT_REPO_BRANCH to the branch to check out at the end of the repositories update process. + * USE_PREBUILD_PACKAGES to decide whether to use prebuilt TDE packages to safisty missing dependencies. + Setting this to "y" is useful if you intend to work on a specific module, because it allows you to + build it without having to previously build all the other TDE modules that it depends upon. + The prebuilt modules will be taken from the TDE prelimirary builds archive. -9) Some additional packages (referred to as extra dependencies) are required to build and install TDE in debian/ubuntu. - These modules can be built locally or alternatively Slavek Banko's pre-built binaries can be used. +9) Some additional packages (referred to as extra dependencies) are required to build and install TDE in + debian/devuan/ubuntu. These modules can be built locally or alternatively pre-built binaries from the + TDE prelimirary builds archive can be used. 9.1) Using pre-built extra dependencies - open "_config.sh" and set the variable USE_PREBUILD_EXTRA_DEPS to "y" (this is the default initial setting) - - add the following lines to the /etc/apt/sources.list file. This will setup Slavek's repositories in apt for - installing the extra dependency packages when TDE is installed. - * For R14.1.x series (repository branch "master") - # --- SLAVEK BANKO'S EXTRA DEPENDENCIES REPOSITORY --- + - create the file /etc/apt/sources.list.d/tde.list add the following lines to it. This will setup the + correct repository in apt for installing the required extra dependency packages. + * For R14.2.x series (repository branch "master") + # --- TDE EXTRA DEPENDENCIES REPOSITORY --- deb http://mirror.ppa.trinitydesktop.org/trinity-testing <YOUR DISTRO> deps - * For R14.0.x series (repository branch "r14.0.x") - # --- SLAVEK BANKO'S EXTRA DEPENDENCIES REPOSITORY --- + * For R14.1.x series (repository branch "r14.1.x") + # --- TDE EXTRA DEPENDENCIES REPOSITORY --- deb http://mirror.ppa.trinitydesktop.org/trinity-sb <YOUR DISTRO> deps-r14 For example: deb http://mirror.ppa.trinitydesktop.org/trinity-sb buster deps-r14 - install package dirmngr if required - - import TDE Archive Signing key into your apt keyring - sudo apt-key adv --keyserver pool.sks-keyservers.net --recv-key C93AF1698685AD8B + - import the TDE archive signing key into your apt keyring + sudo wget http://mirror.ppa.trinitydesktop.org/trinity/deb/trinity-keyring.deb + sudo dpkg -i trinity-keyring.deb 9.2) Building extra dependencies locally (recommended option) - open "_config.sh" and set the variables USE_PREBUILD_EXTRA_DEPS to "n" and CFG_EXTRA_DEPS_DIR to "edeps" - build the extra dependency as any other normal module -10) Add the following lines to the /etc/apt/sources.list file. This will setup your local repo in apt. +10) If needed, create the file /etc/apt/sources.list.d/tde.list. Then add the following lines to it. + This will setup your local repository in apt. # --- LOCAL TDE REPOSITORY --- - deb [trusted=yes] file:TDE_DIR/3_repo <YOUR DISTRO> main + deb [trusted=yes] file:$TDE_DIR/3_repo <YOUR DISTRO> main For example: deb [trusted=yes] file:/home/tde_src/3_repo buster main +11) Depending on your git version, you may have an error about a suspicious folder when trying to run the "create_repo.sh" script. + In such case follow the suggested command and add the "tde" folder to your git safe folders. + git config --global --add safe.directory TDE_DIR/1_git/tde ---------------------- @@ -181,18 +206,19 @@ When building sets of modules or the whole TDE, a global build summary is automa build_module.sh [options] [module_name] Options: -g (Git) : build from git repo sources. If missing, build from the local copy in build folder. - -l (Local) : build the module locally. If missing, build in a clean chroot environment - -p <folder> (Path): build from the specified folder. This option cannot be used together with -g. - The path must be a module in the git repository or in the local build folder. - This option is mostly intended to be used when using branches with git worktrees. + -l (Local) : build the module locally. If missing then + you should be able to successfully build pytdeextensions., build in a clean chroot environment + -p <folder> (Path): build from the specified folder. This option cannot be used together with -g. + The path must be a module in the git repository or in the local build folder. + This option is mostly intended to be used when using branches with git worktrees. -sl (Show Log) : output the building logs to terminal while the build is ongoing -lr (Log Result) : log (append) build result (OK, FAILED) to TDE_DIR/0_logs/build_result.log file -sh (Shell Hook) : use a shell hook for failing builds, only valid if building using pbuilder (clean chroot environment) -po (Prepare Only): only prepare the source folder but do not build the module. Useful to prepare the source code before doing local changes/development. The module can then be built from the modified local folder -d (Debug) : enable debug symbols if possible (debian/rules file must contain "RelWithDebInfo" for this to work) - module_name : the module to build. If '-p <folder>' is used, this parameter must not be specified since the module - is derived from the <folder> parameter. + module_name : the module to build. If '-p <folder>' is used, this parameter must not be specified since the module + is derived from the <folder> parameter. - <dd>_<set_name>.sh A number of scripts used to build sets of modules. Each script builds an individual set. @@ -204,11 +230,11 @@ When building sets of modules or the whole TDE, a global build summary is automa -s N: if specified, skip first N modules from the set of modules The sets are logically grouped as "base system", "applications" and "meta packages". - 00_extradeps.sh : extra dependencies modules + 00_pre_base.sh : prerequirements and extra dependencies modules 01_base_01.sh - 04_base_04.sh : base system 05_apps_system.sh - 16_apps_misc.sh : application modules 17_meta_packages.sh : meta package modules - 91_build_base.sh : whole TDE base system in 00_extradeps.sh - 04_base_04.sh + 91_build_base.sh : whole TDE base system in 00_pre_base.sh - 04_base_04.sh 92_build_applications.sh : all TDE applications in 05_apps_system.sh - 16_apps_misc.sh - 99_build_TDE.sh @@ -219,7 +245,7 @@ When building sets of modules or the whole TDE, a global build summary is automa - create_repo.sh Creates a local repository from the .deb files currently stored in TDE_DIR/2_build/debs. Usage: - [sudo] create_repo.sh [options] + sudo create_repo.sh [options] Options: -b (Backup) : create a backup of the existing repository in TDE_DIR/CFG_REPO_DIR.backup @@ -232,7 +258,6 @@ There are two type of hooks: To use a hook, create an executable script (pre_build.sh and/or post_build.sh) in the TDE_DIR/1_git/hooks/<MODULE NAME> folder. The scripts are executed in the build_module.sh environment, so have access to all the variables defined in that file. See the files in the "hook examples" folder for real usage samples. - ------------------------- C) How to use the scripts ------------------------- @@ -245,7 +270,7 @@ C) How to use the scripts 5) Build modules as per your needs. You don't need to use "sudo" directly since the scripts will do that automatically if required. Just type your sudo password when prompted to do so. 6) Create a local repository from the packages you have just built, to be used as installation repository. - [sudo] ./create_repo.sh + sudo ./create_repo.sh 7) Install TDE as you usually do. For example as follow: - sudo apt-get update - sudo aptitude install tdebase-trinity (for a minimalistic TDE environment) diff --git a/debian/_buildscripts/local/additional_files/etc/pbuilderrc b/debian/_buildscripts/local/additional_files/etc/pbuilderrc index 6c6dc6f25..7eff414db 100644 --- a/debian/_buildscripts/local/additional_files/etc/pbuilderrc +++ b/debian/_buildscripts/local/additional_files/etc/pbuilderrc @@ -45,25 +45,25 @@ BASETGZ="/var/cache/pbuilder/base-$DISTRIBUTION@$ARCHITECTURE.tgz" #-- select apt components case "$DISTRIBUTION" in # debian - sid|bookwork|bullseye|buster|stretch) + sid|forky|trixie|bookwork|bullseye) COMPONENTS="main contrib non-free" ;; # devuan - ceres|daedalus|chimaera|beowulf|ascii) + ceres|excalibur|daedalus|chimaera) COMPONENTS="main" DEBOOTSTRAPOPTS=(--variant=buildd --no-check-gpg) EXTRAPACKAGES="$EXTRAPACKAGES devuan-keyring" ;; # ubuntu - jammy|impish|hirsute|groovy|focal|bionic|xenial) + questing|plucky|oracular|noble|jammy|focal|bionic) COMPONENTS="main restricted universe multiverse" DEBOOTSTRAPOPTS=(--variant=buildd) ;; # raspbian - raspbian-bookworm|raspbian-bullseye|raspbian-buster|raspbian-stretch) + raspbian-trixie|raspbian-bookworm|raspbian-bullseye) COMPONENTS="main contrib non-free" DEBOOTSTRAPOPTS=(--variant=buildd --no-check-gpg) ;; @@ -73,17 +73,17 @@ EXTRAPACKAGES="$EXTRAPACKAGES fakeroot apt-transport-https ca-certificates" #-- select base apt sources case "$DISTRIBUTION" in # debian - sid|bookwork|bullseye|buster|stretch) + sid|forky|trixie|bookwork|bullseye) MIRRORSITE=http://deb.debian.org/debian ;; # devuan - ceres|daedalus|chimaera|beowulf|ascii) - MIRRORSITE=http://auto.mirror.devuan.org/merged + ceres|excalibur|daedalus|chimaera) + MIRRORSITE=https://pkgmaster.devuan.org/merged ;; # ubuntu - jammy|impish|hirsute|groovy|focal|bionic|xenial) + questing|plucky|oracular|noble|jammy|focal|bionic) if [ "$ARCHITECTURE" = "amd64" ] || [ "$ARCHITECTURE" = "i386" ]; then MIRRORSITE=http://archive.ubuntu.com/ubuntu else @@ -92,7 +92,7 @@ case "$DISTRIBUTION" in ;; # raspbian - raspbian-bookworm|raspbian-bullseye|raspbian-buster|raspbian-stretch) + raspbian-trixie|raspbian-bookworm|raspbian-bullseye) MIRRORSITE=http://ftp.fi.muni.cz/pub/linux/raspbian/raspbian ;; esac @@ -108,12 +108,7 @@ APTCACHE="/var/cache/pbuilder/aptcache/$DISTRO-$DISTRIBUTION/" if [ -n "$APTCACHE" ] && [ ! -d "$APTCACHE" ]; then mkdir $APTCACHE fi -if [ -z "$(stat -L --print "%d\n" $APTCACHE/. /var/cache/pbuilder/build/. | uniq -d)" ]; then - # apt cache for build on tmpfs is managed by hook scripts - BINDMOUNTS="${BINDMOUNTS} ${APTCACHE}" - APTCACHEHARDLINK=no - APTCACHE="" -fi +APTCACHEHARDLINK=no #-- extra options DEBBUILDOPTS="-b" @@ -122,19 +117,6 @@ if [ -z "$DEB_SIGN_KEYID" ]; then AUTO_DEBSIGN=${AUTO_DEBSIGN:-no} fi -#-- choose dependency solver -#-- apt is better if target distribution contains apt >= 1.4~beta3 -#-- aptitude is better if target distribution contains apt < 1.4~beta3 -case "$DISTRIBUTION" in - sid|bookwork|bullseye|buster|stretch|\ - ceres|daedalus|chimaera|beowulf|ascii|\ - raspbian-bookworm|raspbian-bullseye|raspbian-buster|raspbian-stretch|\ - jammy|impish|hirsute|groovy|focal|bionic) - PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-apt" - ;; - - xenial) - PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-aptitude" - ;; -esac - +#-- dependency solver +#PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-apt" +PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-classic" diff --git a/debian/_buildscripts/local/build_module.sh b/debian/_buildscripts/local/build_module.sh index 94fdab76a..09c80f2bf 100755 --- a/debian/_buildscripts/local/build_module.sh +++ b/debian/_buildscripts/local/build_module.sh @@ -69,54 +69,62 @@ function search_module() MODULE_FOUND="n" - # Search in GIT repository - LOC_MATCH=`sed -n "s|^\[submodule \"main/\([^\"]*\)\"\]$|\1|p" <"$REPO_TDE/.gitmodules" | grep "$LOC_MOD_NAME$"` + # Check if it is a metapackage + LOC_BASENAME=`echo "$LOC_MOD_NAME" | sed -r "s|^(metapackages/)?||"` + LOC_MATCH=`ls "$REPO_TDE_MAIN/metapackages" | grep "^$LOC_BASENAME\$"` if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then - # Unique module + # Unique metapackage found MODULE_FOUND="y" - MOD_NAME=$LOC_MATCH - if [ "${bool_BUILD_FROM_PATH}" = "y" ]; then - MOD_GIT_PATH="$MOD_PATH" - else - MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME" - fi - MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian" - MOD_BUILD_PATH="$TDE_BUILD_DIR/$MOD_NAME" + bool_METAPACKAGE_MOD="y" + MOD_NAME="metapackages/$LOC_MATCH" + MOD_GIT_PATH="$REPO_TDE_MAIN/metapackages/$LOC_BASENAME" + MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian" + MOD_BUILD_PATH="$TDE_BUILD_DIR/metapackages/$LOC_BASENAME" else - # Search for a unique folder with the same name - if [ -d "${REPO_TDE_MAIN}/$LOC_MOD_NAME" ]; then - # Folder found + # Search for unique GIT repository + if [[ "$str" == */* ]]; then + # Module name contains path too + LOC_MATCH=`sed -n "s|^\[submodule \"main/\([^\"]*\)\"\]$|\1|p" <"$REPO_TDE/.gitmodules" | grep "$LOC_MOD_NAME$"` + else + # Module name only, no path. Search for exact name match + LOC_MATCH=`sed -n "s|^\[submodule \"main/\([^\"]*\)\"\]$|\1|p" <"$REPO_TDE/.gitmodules" | grep "/$LOC_MOD_NAME$"` + fi + if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then + # Unique module MODULE_FOUND="y" - MOD_NAME=$LOC_MOD_NAME - MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME" + MOD_NAME=$LOC_MATCH + if [ "${bool_BUILD_FROM_PATH}" = "y" ]; then + MOD_GIT_PATH="$MOD_PATH" + else + MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME" + fi MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian" MOD_BUILD_PATH="$TDE_BUILD_DIR/$MOD_NAME" else - # Search in extra dependency folder - LOC_BASENAME=`echo "$LOC_MOD_NAME" | sed -r "s|^${CFG_EXTRA_DEPS_DIR}/(debian/)?||"` - LOC_MATCH=`ls "$REPO_EXTRA_DEPENDENCIES/debian" | grep "^$LOC_BASENAME\$"` - if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then - # Unique module found + # Search for a unique folder with the same name + if [ -d "${REPO_TDE_MAIN}/$LOC_MOD_NAME" ]; then + # Folder found MODULE_FOUND="y" - bool_EXTRADEP_MOD="y" - MOD_NAME="$CFG_EXTRA_DEPS_DIR/$LOC_MATCH" - MOD_GIT_PATH="$REPO_EXTRA_DEPENDENCIES/debian/$LOC_BASENAME" - MOD_BUILD_PATH="$TDE_BUILD_DIR/$CFG_EXTRA_DEPS_DIR/$LOC_BASENAME" + MOD_NAME=$LOC_MOD_NAME + MOD_GIT_PATH="$REPO_TDE_MAIN/$MOD_NAME" + MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian" + MOD_BUILD_PATH="$TDE_BUILD_DIR/$MOD_NAME" else - # Search in metapackages folder - LOC_BASENAME=`echo "$LOC_MOD_NAME" | sed -r "s|^(metapackages/)?||"` - LOC_MATCH=`ls "$REPO_TDE_MAIN/metapackages" | grep "^$LOC_BASENAME\$"` + # Search in extra dependency folder + LOC_BASENAME=`echo "$LOC_MOD_NAME" | sed -r "s|^${CFG_EXTRA_DEPS_DIR}/(debian/)?||"` + LOC_MATCH=`ls "$REPO_EXTRA_DEPENDENCIES/debian" | grep "^$LOC_BASENAME\$"` if [ "$LOC_MATCH" != "" -a "`echo $LOC_MATCH | wc -l`" = "1" ]; then # Unique module found MODULE_FOUND="y" - MOD_NAME="metapackages/$LOC_MATCH" - MOD_GIT_PATH="$REPO_TDE_MAIN/metapackages/$LOC_BASENAME" - MOD_GIT_PKGING_PATH="$REPO_TDE_PACKAGING/$MOD_NAME/debian" - MOD_BUILD_PATH="$TDE_BUILD_DIR/metapackages/$LOC_BASENAME" + bool_EXTRADEP_MOD="y" + MOD_NAME="$CFG_EXTRA_DEPS_DIR/$LOC_MATCH" + MOD_GIT_PATH="$REPO_EXTRA_DEPENDENCIES/debian/$LOC_BASENAME" + MOD_BUILD_PATH="$TDE_BUILD_DIR/$CFG_EXTRA_DEPS_DIR/$LOC_BASENAME" fi fi fi fi + export MOD_BUILD_PATH MOD_BUILD_PKGING_PATH="$MOD_BUILD_PATH/debian" IFS=$OLDIFS } @@ -130,6 +138,7 @@ bool_BUILD_FROM_GIT="n" bool_BUILD_FROM_PATH="n" bool_BUILD_LOCALLY="n" bool_EXTRADEP_MOD="n" +bool_METAPACKAGE_MOD="n" bool_SHOW_BUILD_LOGS="n" bool_LOG_RESULT="n" bool_SHELL_HOOK="n" @@ -150,15 +159,15 @@ while [ $# -gt 0 ]; do -lr) # Log build Result to file bool_LOG_RESULT="y" ;; - -p) # build from specific Path + -p) # build from specific Path if [ -z "$MOD_NAME" ]; then - shift + shift MOD_NAME="$1" - bool_BUILD_FROM_PATH="y" + bool_BUILD_FROM_PATH="y" else bool_INVALID_PARAMETERS="y" fi - ;; + ;; -po) # Prepare build folder Only but do not build bool_PREPARE_ONLY="y" ;; @@ -189,29 +198,29 @@ fi # If building from a given path, look up the module name if [ "${bool_BUILD_FROM_PATH}" = "y" ]; then - if [ -d "${MOD_NAME}" ]; then - cd "${MOD_NAME}" - MOD_PATH=`pwd` - if [ "${USE_GIT_WORKTREES}" = "y" ]; then - MOD_NAME=`git rev-parse --git-dir 2>/dev/null | sed "s|.*/\([^\/]\+\)\.git.*|\1|"` - else - MOD_NAME=`basename "${MOD_PATH}"` - fi - if [ "${MOD_NAME}" != "" -a "${MOD_NAME}" != "tde" -a "${MOD_NAME}" != ".git" ]; then - # Valid git module - if [[ "${MOD_PATH}" =~ ${TDE_BUILD_DIR} ]]; then - # Module from build folder - bool_BUILD_FROM_GIT="n" - else - # Module from git repo - bool_BUILD_FROM_GIT="y" - fi - else - MOD_NAME="" - fi - else - MOD_NAME="" - fi + if [ -d "${MOD_NAME}" ]; then + cd "${MOD_NAME}" + MOD_PATH=`pwd` + if [ "${USE_GIT_WORKTREES}" = "y" ]; then + MOD_NAME=`git rev-parse --git-dir 2>/dev/null | sed "s|.*/\([^\/]\+\)\.git.*|\1|"` + else + MOD_NAME=`basename "${MOD_PATH}"` + fi + if [ "${MOD_NAME}" != "" -a "${MOD_NAME}" != "tde" -a "${MOD_NAME}" != ".git" ]; then + # Valid git module + if [[ "${MOD_PATH}" =~ ${TDE_BUILD_DIR} ]]; then + # Module from build folder + bool_BUILD_FROM_GIT="n" + else + # Module from git repo + bool_BUILD_FROM_GIT="y" + fi + else + MOD_NAME="" + fi + else + MOD_NAME="" + fi fi echo -e "${CLightCyan}#### Processing module \"$MOD_NAME\" ####${CNone}" @@ -267,14 +276,14 @@ done #---------------------------- # Check if module is an extra dependency if [[ $MOD_NAME =~ ^$CFG_EXTRA_DEPS_DIR/ ]]; then - bool_EXTRADEP_MOD="y" + bool_EXTRADEP_MOD="y" fi # Make sure the module exists search_module $MOD_NAME if [ "$MODULE_FOUND" != "y" ]; then - echo "Module \"$MOD_NAME\" not found" - do_exit 5 + echo "Module \"$MOD_NAME\" not found" + do_exit 5 fi if [ "$bool_BUILD_FROM_GIT" = "y" ]; then @@ -309,6 +318,31 @@ if [ -d "$MOD_BUILD_PATH" ]; then $SUDO_CMD rm *.deb *.dsc *.changes *.tar.bz2 *.tar.gz *.tar.xz *.log *.buildinfo &>/dev/null fi +# calculate package version, if needed +if [ "$bool_EXTRADEP_MOD" != "y" ]; then + cd $MOD_GIT_PATH + branch=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"` + if [[ -z "$branch" ]]; then + branch=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-` + fi + target_tag=`git tag | grep -F "$TDE_RELEASE" | head -n1` + tag=`git tag | \ + sed "s|^\([^0-9]\)|\1.|" | sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr -k 5,5nr | sed "s|^\([^0-9]\)\.|\1|" | \ + while read t; do \ + git branch --contains $t | cut -c 3- | grep -x "$branch" >/dev/null && \ + echo "$t..HEAD" && break; done` + count=`git log $tag --pretty=oneline | wc -l` + pkgver=$TDE_RELEASE + if [[ "$count" -gt 0 ]] || [[ -z "$target_tag" ]]; then + pkgver=$pkgver~pre$count+$(git rev-parse HEAD | cut -c 1-8) + fi + MOD_BRANCH=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"` + if [[ -z "$MOD_BRANCH" ]]; then + MOD_BRANCH=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-` + fi + COMMIT_HASH=`git rev-parse HEAD` +fi + # copy main repo source files, if needed if [ "$bool_COPY_MOD_SRC" = "y" ]; then bool_COPY_PKGING_FILES="y" @@ -319,12 +353,7 @@ if [ "$bool_COPY_MOD_SRC" = "y" ]; then # Add GIT information echo "# TDE SCM module information" > "$MOD_BUILD_PATH/.tdescminfo" echo "Name: $MOD_NAME" >> "$MOD_BUILD_PATH/.tdescminfo" - cd "$MOD_GIT_PATH" - MOD_BRANCH=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"` - if [[ -z "$MOD_BRANCH" ]]; then - MOD_BRANCH=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-` - fi - COMMIT_HASH=`git rev-parse HEAD` + echo "Version: R$pkgver" >> "$MOD_BUILD_PATH/.tdescminfo" echo "Revision: $MOD_BRANCH-$COMMIT_HASH" >> "$MOD_BUILD_PATH/.tdescminfo" git log -1 --pretty=format:"DateTime: %cd%n" --date=format:"%m/%d/%Y %H:%M" >> "$MOD_BUILD_PATH/.tdescminfo" else @@ -338,7 +367,7 @@ if [ "$bool_COPY_MOD_SRC" = "y" ]; then QUILT_PATCHES="debian/patches" quilt push -a >/dev/null # Make sure patches are not reapplied in future local builds. This could stop pdebuild from working. if [ -f "$MOD_BUILD_PATH/debian/patches/series" ]; then - cp /dev/null "$MOD_BUILD_PATH/debian/patches/series" + rm "$MOD_BUILD_PATH/debian/patches/series" fi else echo "There must be one and only one module folder in \"$MOD_GIT_PATH\"" @@ -352,31 +381,25 @@ if [ "$bool_EXTRADEP_MOD" != "y" -a "$bool_COPY_PKGING_FILES" = "y" ]; then if [ -d "$MOD_BUILD_PKGING_PATH" ]; then $SUDO_CMD rm -R $MOD_BUILD_PKGING_PATH fi - cp -R "$MOD_GIT_PKGING_PATH" "$MOD_BUILD_PKGING_PATH" - - # Default package name - # Calculate package version - cd $MOD_GIT_PATH - branch=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"` - if [[ -z "$branch" ]]; then - branch=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-` + if [ "$bool_METAPACKAGE_MOD" = "y" ]; then + cp -R "$MOD_GIT_PKGING_PATH/.." "$MOD_BUILD_PATH" + else + cp -R "$MOD_GIT_PKGING_PATH" "$MOD_BUILD_PKGING_PATH" fi - target_tag=`git tag | grep -F "$TDE_RELEASE" | head -n1` - tag=`git tag | \ - sed "s|^\([^0-9]\)|\1.|" | sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr -k 5,5nr | sed "s|^\([^0-9]\)\.|\1|" | \ - while read t; do \ - git branch --contains $t | cut -c 3- | grep -x "$branch" >/dev/null && \ - echo "$t..HEAD" && break; done` - count=`git log $tag --pretty=oneline | wc -l` - package=$(basename $PWD)-trinity-$TDE_RELEASE - if [[ "$count" -gt 0 ]] || [[ -z "$target_tag" ]]; then - package=$package~pre$count+$(git rev-parse HEAD | cut -c 1-8) + if [[ -s "$MOD_BUILD_PKGING_PATH/patches/series" ]]; then + cd "$MOD_BUILD_PATH" + QUILT_PATCHES="debian/patches" quilt push -a + # Make sure patches are not reapplied in future local builds. This could stop pdebuild from working. + if [ -f "$MOD_BUILD_PKGING_PATH/patches/series" ]; then + rm "$MOD_BUILD_PKGING_PATH/patches/series" + fi fi + + # Default package name + package=$(basename $PWD)-trinity-$pkgver REL=4:$TDE_RELEASE${package#*$TDE_RELEASE} REL=${REL%+*} REL=${REL/4:14.0.0/4:14.0.0-s} - REL=${REL/4:14.0.0-s~pre/4:14.0.0-s~} - REL=${REL/.0~pre/.0~s} # Get package name and packaging release PKG_NAME=$(head -n1 $MOD_BUILD_PKGING_PATH/changelog) PKG_NAME=${PKG_NAME%% *} @@ -395,8 +418,18 @@ if [ "$bool_EXTRADEP_MOD" != "y" -a "$bool_COPY_PKGING_FILES" = "y" ]; then ADD_REL=0 # Update changelog + cd $MOD_GIT_PATH REPO_DATE=`git log -1 --pretty=format:"%cd%n" --date=rfc` - GITUSER="$(git config --get user.name) <$(git config --get user.email)>" + GITUSERNAME="$(git config --get user.name)" + GITUSEREMAIL="$(git config --get user.email)" + if [ -z "$GITUSERNAME" ]; then + GITUSERNAME="anonymous" + fi + if [ -z "$GITUSEREMAIL" ]; then + GITUSEREMAIL="anonymous@anonymous.org" + fi + GITUSER="$GITUSERNAME <$GITUSEREMAIL>" + cd $MOD_BUILD_PATH echo "$PKG_NAME ($REL-0$DISTRO$DISTRO_VERSION.$ADD_REL+$PKG_REL) $DISTRO_NAME; urgency=low" > "$MOD_BUILD_PKGING_PATH/changelog" echo -e "\n * Automated git build\n\n -- $GITUSER $REPO_DATE\n" >> "$MOD_BUILD_PKGING_PATH/changelog" cat "$REPO_TDE_PACKAGING/$MOD_NAME/debian/changelog" >> "$MOD_BUILD_PKGING_PATH/changelog" @@ -488,7 +521,7 @@ if [ "$bool_BUILD_LOCALLY" = "y" ]; then fi else ## Build module in a clean chroot environment using pbuilder - $SUDO_CMD . "$SCRIPT_DIR/internals/_pbuilder.sh" + $SUDO_CMD "$SCRIPT_DIR/internals/_pbuilder.sh" build_retval=$? if [ "`whoami`" != "root" ]; then cd "$MOD_DEB_PATH" diff --git a/debian/_buildscripts/local/create_repo.sh b/debian/_buildscripts/local/create_repo.sh index 222cb7740..524c4aecd 100755 --- a/debian/_buildscripts/local/create_repo.sh +++ b/debian/_buildscripts/local/create_repo.sh @@ -45,7 +45,7 @@ rsync -aHS --exclude="*/src/*.xz" --exclude="*/src/*.dsc" --exclude="*/src/*.cha # Create package index file echo -e "${CYellow}> Creating package index file${CNone}" cd "$REPO_DIR" -dpkg-scanpackages "./$ARCH_PATH" | gzip -9c > "./$ARCH_PATH/Packages.gz" +dpkg-scanpackages "./$ARCH_PATH" > "./$ARCH_PATH/Packages" #---------------------------- diff --git a/debian/_buildscripts/local/internals/_config_template.sh b/debian/_buildscripts/local/internals/_config_template.sh index 232d99799..ff506273c 100644 --- a/debian/_buildscripts/local/internals/_config_template.sh +++ b/debian/_buildscripts/local/internals/_config_template.sh @@ -5,21 +5,26 @@ set -a #---------------------------- # Repo information #---------------------------- -TDE_DIR="" # TDE root folder -UPDATE_BRANCHES="master" # Space separated list. Available choices: master, r14.0.x +TDE_DIR="$HOME/tde_src" # TDE root folder + +USE_GIT_WORKTREES="n" # If == "y", use git worktrees. Need consistent cloned repository to start. +UPDATE_BRANCHES="master r14.1.x" # Space separated list of branches to update. If using git worktrees, + # this list contains the branches for which worktrees will be created. DEFAULT_REPO_BRANCH="master" # After update in completed, switch repo to this branch. Must be # one of the branches specified in UPDATE_BRANCHES #---------------------------- # Build information #---------------------------- -TDE_RELEASE="14.1.0" # TDE release number -DISTRO="" # Distro family (leave empty for auto-detection). For ex. debian -DISTRO_NAME="" # Distro name of specific version (leave empty for auto-detection). For ex. buster -ARCHITECTURE="" # Build for this architecture (leave empty for auto-detection). For ex. amd64 +TDE_RELEASE="14.2.0" # TDE release number +DISTRO="" # Distro family (leave empty for auto-detection). For ex. debian +DISTRO_NAME="" # Distro name of specific version (leave empty for auto-detection). For ex. buster +ARCHITECTURE="" # Build for this architecture (leave empty for auto-detection). For ex. amd64 USE_PREBUILD_EXTRA_DEPS="y" # If == "y", use pre-built extra dependency packages +USE_PREBUILD_PACKAGES="n" # If == "y", use pre-built TDE packages to satisfy package dependencies + # This is useful to build individual packages without having to do a full TDE build BUILD_DEFAULT_OPTIONS="-g -lr" # Default building options (pbuilder) -GPG_SIGN_KEYID="" # Use this GPG key to sign packages. If null, packages will not be signed +GPG_SIGN_KEYID="" # Use this GPG key to sign packages. If null, packages will not be signed #---------------------------- # Base directories @@ -28,7 +33,7 @@ CFG_SCRIPT_LOG_DIR="0_logs" CFG_GIT_DIR="1_git" CFG_BUILD_DIR="2_build" CFG_REPO_DIR="3_repo" -CFG_EXTRA_DEPS_DIR="edeps" # Relative to CFG_GIT_DIR folder. Only required if USE_PREBUILD_EXTRA_DEPS != "y" -CFG_HOOKS_DIR="hooks" # Relative to CFG_GIT_DIR folder +CFG_EXTRA_DEPS_DIR="edeps" # Relative to CFG_GIT_DIR folder. Only required if USE_PREBUILD_EXTRA_DEPS != "y" +CFG_HOOKS_DIR="hooks" # Relative to CFG_GIT_DIR folder set +a diff --git a/debian/_buildscripts/local/internals/_pbuilder.sh b/debian/_buildscripts/local/internals/_pbuilder.sh index 5f00e718a..f8056de82 100755 --- a/debian/_buildscripts/local/internals/_pbuilder.sh +++ b/debian/_buildscripts/local/internals/_pbuilder.sh @@ -1,5 +1,7 @@ #!/bin/bash +source "$SCRIPT_DIR/internals/prebuilt_pkg_paths.txt" + function run_pdebuild() { # pbuilder absolute paths @@ -37,7 +39,9 @@ function run_pdebuild() (cd "$TDE_DEBS_DIR"; apt-ftparchive packages . > Packages) echo "deb [trusted=yes] file:$TDE_DEBS_DIR ./" >> /etc/apt/sources.list END_D05_01 - if [[ "$USE_PREBUILD_EXTRA_DEPS" = "y" ]]; then + + # -- prebuilt TDE packages + if [[ "$USE_PREBUILD_PACKAGES" = "y" ]]; then # Get building branch from .tdescminfo file if [[ -f "$MOD_BUILD_PATH/.tdescminfo" ]]; then BUILD_BRANCH=`sed -n -r "s/^Revision: ([^-]+)-.*/\1/p" "$MOD_BUILD_PATH/.tdescminfo"` @@ -51,25 +55,58 @@ echo "deb [trusted=yes] $l_repo $DISTRO_NAME $l_component" >> /etc/apt/sources.l END_D05_02 break fi - done <<< $(cat "$SCRIPT_DIR/internals/extra_deps.txt" | grep -E "^[[:space:]]*[^#[:space:]]+[[:space:]]+[^[:space:]]+.*$") + done <<< $(echo "$TDE_PREBUILT_PKGS" | grep -E "^[[:space:]]*[^#[:space:]]+[[:space:]]+[^[:space:]]+.*$") if [ "$bool_EDEPS_FOUND" != "y" ]; then # EDEPS repository not found, use default. This could happen when building from sub branches of the main package repo + while read l_branch l_repo l_component; do + if [ "$l_branch" = "default" ]; then + bool_EDEPS_FOUND="y" + cat <<END_D05_03 >> "$PBUILDER_DEPS_HOOK" +echo "deb [trusted=yes] $l_repo $DISTRO_NAME $l_component" >> /etc/apt/sources.list +END_D05_03 + break + fi + done <<< $(echo "$TDE_PREBUILT_PKGS" | grep -E "^[[:space:]]*[^#[:space:]]+[[:space:]]+[^[:space:]]+.*$") + fi + IFS=$OLD_IFS + fi + fi + + # -- prebuilt extra dependencies + if [[ "$USE_PREBUILD_EXTRA_DEPS" = "y" ]]; then + # Get building branch from .tdescminfo file + if [[ -f "$MOD_BUILD_PATH/.tdescminfo" ]]; then + BUILD_BRANCH=`sed -n -r "s/^Revision: ([^-]+)-.*/\1/p" "$MOD_BUILD_PATH/.tdescminfo"` + bool_EDEPS_FOUND="n" + OLD_IFS=$IFS && IFS=$' \t' while read l_branch l_repo l_component; do - if [ "$l_branch" = "default" ]; then + if [ "$l_branch" = "$BUILD_BRANCH" ]; then bool_EDEPS_FOUND="y" - cat <<END_D05_02 >> "$PBUILDER_DEPS_HOOK" + cat <<END_D05_04 >> "$PBUILDER_DEPS_HOOK" echo "deb [trusted=yes] $l_repo $DISTRO_NAME $l_component" >> /etc/apt/sources.list -END_D05_02 +END_D05_04 break fi - done <<< $(cat "$SCRIPT_DIR/internals/extra_deps.txt" | grep -E "^[[:space:]]*[^#[:space:]]+[[:space:]]+[^[:space:]]+.*$") + done <<< $(echo "$TDE_PREBUILT_EDEPS" | grep -E "^[[:space:]]*[^#[:space:]]+[[:space:]]+[^[:space:]]+.*$") + if [ "$bool_EDEPS_FOUND" != "y" ]; then + # EDEPS repository not found, use default. This could happen when building from sub branches of the main package repo + while read l_branch l_repo l_component; do + if [ "$l_branch" = "default" ]; then + bool_EDEPS_FOUND="y" + cat <<END_D05_05 >> "$PBUILDER_DEPS_HOOK" +echo "deb [trusted=yes] $l_repo $DISTRO_NAME $l_component" >> /etc/apt/sources.list +END_D05_05 + break + fi + done <<< $(echo "$TDE_PREBUILT_EDEPS" | grep -E "^[[:space:]]*[^#[:space:]]+[[:space:]]+[^[:space:]]+.*$") fi IFS=$OLD_IFS fi fi - cat <<END_D05_03 >> "$PBUILDER_DEPS_HOOK" + + cat <<END_D05_06 >> "$PBUILDER_DEPS_HOOK" apt-get update -END_D05_03 +END_D05_06 chmod a+x "$PBUILDER_DEPS_HOOK" # Build OPT_BUILD_PARALLEL="" diff --git a/debian/_buildscripts/local/internals/distro_list.txt b/debian/_buildscripts/local/internals/distro_list.txt index 0bcb3fe81..440b8bd94 100644 --- a/debian/_buildscripts/local/internals/distro_list.txt +++ b/debian/_buildscripts/local/internals/distro_list.txt @@ -10,30 +10,28 @@ # # debian -debian 9.0 stretch - - -debian 10.0 buster - - debian 11.0 bullseye - - -debian 12.0 bookworm ~a - -debian 13.0 sid ~b - +debian 12.0 bookworm - - +debian 13.0 trixie - - +debian 14.0 forky ~a - +debian 15.0 sid ~b - # devuan -devuan 2.0 ascii - debian/stretch -devuan 3.0 beowulf - debian/buster devuan 4.0 chimaera - debian/bullseye -devuan 5.0 daedalus ~a debian/bookwork -devuan 6.0 ceres ~b debian/sid +devuan 5.0 daedalus - debian/bookwork +devuan 6.0 excalibur ~a debian/trixie +devuan 7.0 ceres ~b debian/sid # raspbian -raspbian 9.0 raspbian-stretch - - -raspbian 10.0 raspbian-buster - - raspbian 11.0 raspbian-bullseye - - -raspbian 12.0 raspbian-bookworm ~a - +raspbian 12.0 raspbian-bookworm - - +raspbian 13.0 raspbian-trixie - - # ubuntu -ubuntu 16.04 xenial - - ubuntu 18.04 bionic - - ubuntu 20.04 focal - - -ubuntu 20.10 groovy - - -ubuntu 21.04 hirsute - - -ubuntu 21.10 impish - - -ubuntu 22.04 jammy ~a - +ubuntu 22.04 jammy - - +ubuntu 24.04 noble - - +ubuntu 24.10 oracular - - +ubuntu 25.04 plucky - - +ubuntu 25.10 questing ~a - diff --git a/debian/_buildscripts/local/internals/extra_deps.txt b/debian/_buildscripts/local/internals/extra_deps.txt deleted file mode 100644 index b19514d84..000000000 --- a/debian/_buildscripts/local/internals/extra_deps.txt +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# List of repositories for extra dependency packages. -# The "default" repo will be used in case a match can't be found. -EDEPS_REPO=" - default http://mirror.ppa.trinitydesktop.org/trinity-testing deps - master http://mirror.ppa.trinitydesktop.org/trinity-testing deps - r14.0.x http://mirror.ppa.trinitydesktop.org/trinity-sb deps-r14 -" diff --git a/debian/_buildscripts/local/internals/prebuilt_pkg_paths.txt b/debian/_buildscripts/local/internals/prebuilt_pkg_paths.txt new file mode 100644 index 000000000..ca3063a40 --- /dev/null +++ b/debian/_buildscripts/local/internals/prebuilt_pkg_paths.txt @@ -0,0 +1,17 @@ +#!/bin/bash + +# List of repositories for TDE prebuilt packages. +# The "default" repo will be used in case a match can't be found. +TDE_PREBUILT_PKGS=" + default http://mirror.ppa.trinitydesktop.org/trinity-testing main + master http://mirror.ppa.trinitydesktop.org/trinity-testing main + r14.1.x http://mirror.ppa.trinitydesktop.org/trinity-sb main-r14 +" + +# List of repositories for extra dependency packages. +# The "default" repo will be used in case a match can't be found. +TDE_PREBUILT_EDEPS=" + default http://mirror.ppa.trinitydesktop.org/trinity-testing deps + master http://mirror.ppa.trinitydesktop.org/trinity-testing deps + r14.1.x http://mirror.ppa.trinitydesktop.org/trinity-sb deps-r14 +" diff --git a/debian/_buildscripts/local/update_repositories.sh b/debian/_buildscripts/local/update_repositories.sh index 4286393ef..57305c59d 100755 --- a/debian/_buildscripts/local/update_repositories.sh +++ b/debian/_buildscripts/local/update_repositories.sh @@ -283,6 +283,12 @@ function _do_worktree_update() git branch -u "origin/${CURR_BR}" &>/dev/null #$ git reset --hard "origin/${CURR_BR}" &>/dev/null fi + # If this is a clone of a local repository, make sure to do a fetch + # operation first, otherwise this clone won't see the latest changes + if [ "`git config --get remote.origin.url`" = "${MOD_REPO_PATH}" ]; then + eval git fetch --all --prune $GIT_NO_RECURSE_SUBMODULES $OPT_VERBOSE_LOG + eval git worktree prune $OPT_VERBOSE_LOG + fi # Update eval git reset --hard HEAD $OPT_VERBOSE_LOG eval git clean -dxff $OPT_VERBOSE_LOG |
