Porting from Debian 11 (bullseye)
...
install packages |
---|
sudo apt install git |
Now you can download in your home any sources from bullseye using:
apt source component-name
The combination of the sources in your /etc/apt/sources.list and apt search mechanism give us the most actual version of the component you want to port.
Build zone
Install git, tools and make to start:
...
cat changelog | less |
---|
gzip (1.10-4+deb11u1+dilos1) unstable; urgency=high
-- DilOS Team dilos@dilos.org Mon, 27 Jun 2022 21:34:00 +0300 gzip (1.10-4+deb11u1) bullseye-security; urgency=high |
Current date in necessary format could be gotten by:
date -R
Build binary DEB packages |
---|
sudo dpkg-buildpackage -b -uc -us |
...
After that you can provide result packages to Jenkins for integration.
If build failed you shall make all necessary fixes (using quilt tool), increment the +dilos<version> and add new line in debian/changelog with short description of the fix you made.
Bug fixing
Install DU4 zone (see How to bootstrap a DU4 zone )
...
Select “bullseye“, scroll down the page.
...
Copy one-by-one all source links and download using wget |
---|
wget http://deb.debian.org/debian/pool/main/g/gzip/gzip_1.10-4+deb11u1.dsc |
wget http://deb.debian.org/debian/pool/main/g/gzip/gzip_1.10.orig.tar.gz |
wget http://deb.debian.org/debian/pool/main/g/gzip/gzip_1.10-4+deb11u1.debian.tar.xz |
...
Done, you’ve downloaded and unpack original Debian 11 sources. Now you can compare the code and debian’s files with ours from DU4 sources or port them as described above.
Some notes and hints
Do not mix deb-src between DU4 and bullseye in one /etc/apt/sources.list! It will confuse apt when it shall download the sources.
Patching
Install quilt:
sudo apt install quilt
update the ~/.quiltrc:
Code Block |
---|
QUILT_PATCHES=debian/patches
#QUILT_NO_DIFF_INDEX=1
QUILT_NO_DIFF_TIMESTAMPS=1
QUILT_DIFF_OPTS="--show-c-function"
#QUILT_REFRESH_ARGS="-p ab"
QUILT_DIFF_ARGS="--color=auto" # If you want some color when using quilt diff.
QUILT_PATCH_OPTS="--reject-format=unified"
QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33" |
Create new patch (from sources root):
quilt new dilos.patch
Add file to patch:
quilt add dir-for-file/file.ext
Make all necessary updates with this file.
Create/update patch:
quilt refresh
Committing the component
As far as you start porting/fixing the component you shall take corresponded ticket in DU4 Jira to your owning:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Open corresponded ticket and move it to status Assigned (see DilOS 4 Development Workflow (English) ):
...
clone repo (do not forget add your public key into https://bitbucket.org/account/settings/ssh-keys)
git clone git@bitbucket.org:dilos/du4.git
go to components directory
cd du4/components
Move your Jira ticket into state “IN ANALYSYS“.
Create branch for the component (ticket name - component name):
git checkout -b d4-333-apt
Create folder for component (usually, it is name without version-revision):
mkdir apt
cd apt
Copy the original debian folder from the source (safe the attributes):
cp -a -r debian ../../du4/components/apt
Create Makefile here:
Code Block | ||
---|---|---|
| ||
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
#
# Copyright (c) 2023 DilOS Team <dilos@dilos.org>
#
include ../../make-rules/shared-macros.mk
COMPONENT_NAME= apt
include ../../make-rules/deb_src2.mk
#
build:
@echo "Nothing build"
install:
@echo "Nothing install"
clean:
$(RM) -r $(BUILD_DIR)
# $(RM) *.changes
# $(RM) *.deb
clobber: clean
test: $(NO_TESTS)
|
Add, commit and push the branch with original debian:
git add --all
git commit -m “original apt_2.2.4 from bullseye“
git push --set-upstream origin d4-333-apt
This step is important for reviewers and integrator, - they must know what exactly was changed relatively to origin!
Now you start porting process, so move your Jira ticket into “In Progress“ state selecting “Create fix” menu item.
After all necessary updating the debian/files into DilOS commit the changes:
git add --all
git commit -m “DilOS update for apt“
git push
In your browser go to https://bitbucket.org/dilos/du4/branches.
...
Push “Create” link in the “Pull request” column for your branch.
...
Check the “Delete branch“ checkbox.
Push “Create pull request“ button.
...
Add reviewers.
Integration (outers: without access to build server)
After getting successful build and generating source packages:
sudo dpkg-buildpackage -d -S -us -uc -sa
Copy result sources to your integrator:
scp zabbix_6.0.7+dfsg* alvano@10.20.50.182:integration
Password would be sent from integrator privately.
Integration (internals: with personal zone on build server)
Go to Jenkins VM:
ssh username@10.20.50.29
Go to Jenkins home (/ws/jenkins
) and create upload dir using ticket name:
cd ../jenkins
mkdir D4-188
cd D4-188
And copy sources from your VM into this dir:
scp alvano@10.20.50.182:work/build/zabbix_6.0.7+dfsg* .
Open browser and login to Jenkins (http://10.20.60.190:8080/ci):
...
Select your upload menu item (in my case “upload-src-dev1“), select “Build with Parameters“ and put your dir name into “COMPONENT_NAME“ edit box:
...
Click “Build“ button.