Pull request #61 is trying to delete bake_debian_files.sh (seemingly without checking where it is used or why since it would leave make deb and make debfiles targets).
If CDBS is going away and the shellscript already doesn't work, this might be the right thing to do, if it wasn't for CDBS actually not being extremely required. It's helping, but it is not a necessity for creating the source packages for Debian.
Let's modernize make deb / make debfiles or just bake_debian_files.sh so it can be used once again in quickly creating Debian package chain.
I previously had this, which still looks like it could be dropped into a CI system and produce both source tarballs and binary .debs.
00-ubuntu-deps.sh
05-vcs-checkout.sh
10-build-llvm.sh
15-build-libobjc2.sh
16-pack-libobjc2.sh
20-build-gnustep-make.sh
21-pack-gnustep-make.sh
22-finalize-gnustep-make.sh
25-build-gnustep-base.sh
26-pack-gnustep-base.sh
30-build-gnustep-gui.sh
31-pack-gnustep-gui.sh
35-build-gnustep-back.sh
36-pack-gnustep-back.sh
40-build-gnustep-corebase.sh
45-patch-gnustep-opal.sh
46-build-gnustep-opal.sh
50-build-gnustep-quartzcore.sh
60-build-app-systempreferences.sh
65-build-app-ink.sh
70-build-app-calculator.sh
75-build-app-simpleagenda.sh
It worked in the past for some versions of Ubuntu to produce a PPA built on Canonical's builders; it could be adapted to do the work on other CI systems.
This is so especially since I did some work on doing this inside Docker (but I do not remember how usable it is):
build-gsbuilder.sh build.sh debsettings.sh docker-extra-environment.sh Dockerfile Dockerfile.updater docker-produce.sh docker-update-builder-container-image.sh README.md run-build.sh single-dockerfile.sh
pam:
Dockerfile pam.sh
prep:
Dockerfile prep-gsbuilder.sh prep.sh
prereq:
Dockerfile prereq.sh
Therefore, the first step would be to make sure that modern Debian stable can produce a working GNUstep Make and a working GNUstep Base, with or without libobjc2, using this chain.
Note: even when I was working on this, it was never meant to be a replacement for the actual, properly provided Debian packages, but an alternative package set, focusing on using libobjc2 instead of GCC runtime, building with clang, and possibly providing fresher packages -- less tested, less certain to fit into a Debian system, less adhering to the FHS and such, less verifying long-term binary compatibility; but fresher.
Back then, I was also targeting Ubuntu LTS simply because of how easy PPAs were to add. Today, some goals could be similar (fresher; alternative FS layout), but also a demo of how easy it is to package a GNUstep program or library without it being aware Debian packaging is happening.
$ cat 36-pack-gnustep-back.sh
#!/bin/bash
if [ "x$WITH_DEB" == "x1" ] ; then
######
cd "$GSU_BUILD_ROOT"/
echo "Packaging gnustep-back"
echo "================="
cd gnustep/core/back
# Double-include of deb.make is bad.
# sed 's,\(include $(GNUSTEP_MAKEFILES)/aggregate.make\),\1\ninclude $(GNUSTEP_MAKEFILES)/Master/deb.make,' < GNUmakefile > GNUmakefile_deb
cp GNUmakefile GNUmakefile_deb
# GNUmakefile refers to svn+ssh://svn.gna.org... which we cannot expect to work for everyone.
sed -i 's_svn.ssh://_svn://_g' GNUmakefile_deb
if make -f GNUmakefile_deb GNUSTEP_INSTALLATION_DOMAIN=SYSTEM svn-export ; then
echo "Producing source code for packaging done"
else
echo "Producing source code for packaging failed"
fi
if make -f GNUmakefile_deb GNUSTEP_INSTALLATION_DOMAIN=SYSTEM debfiles ; then
echo "Preparation for packaging done"
else
echo "Preparation for packaging failed"
fi
if [[ ! -z "${DEB_URGENCY}" ]] ; then
sed -i 's/low/'${DEB_URGENCY}'/' debian_dist/gnustep-back-*/debian/changelog
fi
if make -f GNUmakefile_deb GNUSTEP_INSTALLATION_DOMAIN=SYSTEM deb debsign=yes ; then
echo "Package built"
cp *.deb "$GSU_BUILD_ROOT"/
else
echo "Packaging failed"
exit 1
fi
if sudo dpkg -i obj/debian_dist/*.deb ; then
echo "Installing gnustep-back deb done."
else
echo "Installing gnustep-back deb failed."
exit 1
fi
######
fi
Pull request #61 is trying to delete
bake_debian_files.sh(seemingly without checking where it is used or why since it would leavemake debandmake debfilestargets).If CDBS is going away and the shellscript already doesn't work, this might be the right thing to do, if it wasn't for CDBS actually not being extremely required. It's helping, but it is not a necessity for creating the source packages for Debian.
Let's modernize
make deb/make debfilesor justbake_debian_files.shso it can be used once again in quickly creating Debian package chain.I previously had this, which still looks like it could be dropped into a CI system and produce both source tarballs and binary .debs.
It worked in the past for some versions of Ubuntu to produce a PPA built on Canonical's builders; it could be adapted to do the work on other CI systems.
This is so especially since I did some work on doing this inside Docker (but I do not remember how usable it is):
Therefore, the first step would be to make sure that modern Debian stable can produce a working GNUstep Make and a working GNUstep Base, with or without libobjc2, using this chain.
Note: even when I was working on this, it was never meant to be a replacement for the actual, properly provided Debian packages, but an alternative package set, focusing on using libobjc2 instead of GCC runtime, building with clang, and possibly providing fresher packages -- less tested, less certain to fit into a Debian system, less adhering to the FHS and such, less verifying long-term binary compatibility; but fresher.
Back then, I was also targeting Ubuntu LTS simply because of how easy PPAs were to add. Today, some goals could be similar (fresher; alternative FS layout), but also a demo of how easy it is to package a GNUstep program or library without it being aware Debian packaging is happening.