Porting from Debian 11 (bullseye)
Install two DU4 zones (see How to bootstrap a DU4 zone ):
Download zone
Append (add below) lines of debian’s sources into your local zone /etc/apt/sources.list |
---|
deb-src http://security.debian.org/debian-security bullseye-security/updates main contrib non-free |
add architecture: |
---|
sudo dpkg --add-architecture amd64 |
Then make it available:
update existing packages |
---|
sudo apt update |
Install git:
install packages |
---|
sudo apt install git |
Build zone
Install git, tools and make to start:
install packages |
---|
sudo apt install build-essential make git |
Build already ported package (DilOS procedure, could be used for port verification)
Prepare build directory:
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 |
Build the component:
you are ready to build your package from userland, for example: apt |
---|
cd apt gmake JOBS=4 deb (JOBS is the number of parallel build processes you want to use) |
After the building process is done, you find the built package(s) in <du4>/components/${component}/build directory
Port a new package (Debian procedure)
Preinstall necessary packages:
dpkg-dev |
---|
sudo apt install dpkg-dev |
Download source package from Debian:
porting gzip |
---|
apt source gzip |
cd gzip-1.10 |
dpkg-checkbuilddeps |
See output (for example):
dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper-compat …
Try to install necessary packages from DU4 repository into your build zone |
---|
sudo apt install debhelper-compat … |
If some package has not been found in DU4 repository it means this one shall be ported too.
When dpkg-checkbuilddeps return empty output it means all depends are installed and you can build the component.
Check if the component is correctly buildable:
Update debian/changelog:
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 |
If it has been built successfully:
Build source packages |
---|
sudo dpkg-buildpackage -d -S -us -uc -sa |
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 )
Add line of DU4 sources into your local zone /etc/apt/sources.list |
---|
deb-src http://10.20.60.188/dilos4 du4-unstable main contrib non-free |
Then make it available:
update existing packages |
---|
sudo apt update |
Now install git and make to start:
install packages |
---|
sudo apt install build-essential make git |
Preinstall necessary packages:
dpkg-dev |
---|
sudo apt install dpkg-dev |
Download source package from DU4:
porting gzip |
---|
apt source gzip |
cd gzip-1.10 |
dpkg-checkbuilddeps |
All next steps are the same as described above.
Using single build zone
Prepare build zone (see “Build zone”).
Download all necessary Debian sources manually:
Go to https://packages.debian.org/source/bullseye.
Enter <package-name> into “search package names“ edit box, enter the page.
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 |
Unpack them |
---|
dpkg-source -x gzip_1.10-4+deb11u1.dsc |
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:
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
Create/update patch:
quilt refresh
Committing the component
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
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:
# # 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) 2022 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:
git add --all
git commit -m “original apt_2.2.4 from bullseye“
git push --set-upstream origin d4-333-apt
After updating the debian/files upto DilOS:
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.