Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

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
deb-src http://mirrors.kernel.org/debian/ bullseye-updates main contrib non-free
deb-src http://mirrors.kernel.org/debian/ bullseye-proposed-updates main contrib non-free
deb-src http://mirrors.kernel.org/debian/ bullseye-backports main contrib non-free
deb-src http://mirrors.kernel.org/debian/ bullseye 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

  • Build for DilOS.

-- 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.

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.

  • No labels