Skip to content

Conversation

@MarcelGraf0710
Copy link

@MarcelGraf0710 MarcelGraf0710 commented Dec 7, 2025

GitLab username

grafml

Completed tasks

I completed all mandatory and all optional tasks.

  • The runtime Debian package (see remark below) does indeed contain libyaml-cpp as a dependency in the unpacked .deb file under <unpacked_debian>/DEBIAN/control.

  • There is a significant difference in memory consumption between stripped and unstripped files, see table below.

  • The development Debian package is fully lintian compliant, that is, neither errors nor warnings occur.

  • I use an entry point shell file such that the Docker container automatically creates the packages once started.

Debian file Unstripped size in Bytes Stripped size in Bytes
libcpackexample1_0.1.0_amd64.deb 2,627,478 193,134
libcpackexample-libcpackexample1_0.1.0_amd64.deb 706 706
libcpackexample-dev_0.1.0_amd64.deb 2,310 2,308

I was only able to satisfy everything lintian demanded by embracing a split into a development package (libcpackexample-dev_0.1.0_amd64.deb) and a runtime package (libcpackexample1_0.1.0_amd64.deb).

Reproducing the results

Since the Docker container contains the entry point shell script, the following instructions suffice to reproduce the results. Inside the root folder of my fork, please execute:

sudo docker build -t cpack-exercise .
sudo docker run --rm -it --mount type=bind,source="$(pwd)",target=/mnt/cpack-exercise cpack-exercise

If you want to install the packages and run cpackexample in the subsequent bash session, please enter

cd out
apt install ./libcpackexample-dev_0.1.0_amd64.deb ./libcpackexample1_0.1.0_amd64.deb
cpackexample

Use of AI

Especially for figuring out how to achieve lintian compliance, I used ChatGPT. This included

  • The idea to split into a development and a runtime package, which was a structure I already knew from other packages
  • A template Debian changelog file, which I had to adapt, however, such that lintian is fine with it
  • A template manpage file

…at lintian is happy; adaptions to CPackConfig.cmake; adapted Dockerfile such that packages are automatically setup when entering container
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant