You are not logged in.
I'll add Section sometime later. For now survive with control_fields . Look how many they are, i plan on adding directly what people truly use, for the rest you'll be using control_fields.
Thanks, I think adding both "Section" and also "Priority" would be quite useful as these two are used and displayed by the Synaptic Package Manager for each package ("Section" to categorize the package and "Priority" is displayed in the Common tab of each package).
But yes, in the meantime the control_fields are good enough.
You use easydeb inside the chroot/container to build the package. Why is that a problem?
How in practice do you do that with easydeb in an easy semi-automated way?
To explain what I mean by "easy semi-automated way":
When you have a standard debian source package it's very easy to do a semi-automated build in a chroot.
It's basically just two commands, one for updating the chroot tarball of the base system (if it hasn't been updated recently already) and then launch 'sbuild' which will take care of creating the initial chroot, downloading the dependencies, building the binary packages and then cleaning up everything again.
To set up such a semi-automated chroot build environment I followed this guide which only needed a couple minor adaptations to work with Devuan:
https://stephan.lachnit.xyz/posts/2023- … cacher-ng/
As far as I see it there are two types of people to whom easydeb is aimed at:
- the simple user who just downloads a DEBBUILD file and then uses easydeb to build the package on his local machine with the aim to install and use it. This person has no need for a chroot build environment.
- the developer who want to create a DEBBUILD file that he wants to share with other users (for example via your git repo or the future DUR). When creating a DEBBUILD file meant to be shared with others the main issue (like with every package creation for any distro) is to ensure that the list of dependencies is correct and complete.
To make sure that the list of build dependencies is correct and complete AFAIK there really only is one way: by building the binary packages in a clean chroot freshly set up for each build with a minimal base system.
So IMHO it would be very useful for easydeb to create a standard deb source package in order to be able to take advantage of the mostly automated chroot build process that already exists for deb packaging.
Of course if there is an alternative similarly automated way to do such a chroot build directly with DEBBUILD files then there would be no need for easydeb to be able to create a standard deb source package, but if this doesn't exist yet then IMHO it would be easier to use the already existing sbuild chroot process rather than reinventing the wheel for easydeb.
Thanks for the clarifications. I managed to add the "Section" field using the method you described. The control fields are described here:
https://www.debian.org/doc/debian-polic … fieldslist
"Section" is quite useful and could be worth adding to the DEBBUILD as a directly supported parameter.
I also managed to add a multiline description as you described.
With regards to only creating a source package I thought this would have been viable as you said in an earlier post:
No automatic chroot. You'll need to launch that your self, it should work just fine.
But now I realise that easydeb is not quite there yet to create a full source package that the standard debian tools would accept to build the binary package(s) in a chroot. IMHO this would be a very useful addition since building the binary package(s) in a chroot is very much preferable.
That said I tried building the binary packages directly with easydeb (so without chroot) and that worked fine.
You also give them source packages or you are just experimenting?
I was experimenting with a DEBBUILD that I converted from a PKGBUILD from Arch. The package I was working on is RSSguard which is very old in Debian/Devuan, it hasn't been updated in over 5 years (apparently the maintainer left Debian and nobody has taken over the package).
This is the Arch PKGBUILD that was my starting point: https://gitlab.archlinux.org/archlinux/ … type=heads
Here is the current Debian package which is way behind: https://packages.debian.org/source/stable/rssguard
And here is my DEBBUILD that I created, it builds and works fine:
# Maintainer: LinuxTECH.NET <deb-packager{at}linuxtech.net>
pkgbase=rssguard
pkgname=(rssguard{,-lite})
pkgver=4.8.6
pkgrel=1
pkgdesc='simple, light and easy-to-use RSS/ATOM feed aggregator
RSS Guard is simple, light and easy-to-use RSS/ATOM feed aggregator
developed using Qt framework which supports online feed synchronization
with these services:
- [Tiny Tiny RSS](https://tt-rss.org)
- [Inoreader](https://www.inoreader.com)
- [Nextcloud News](https://apps.nextcloud.com/apps/news)
- [Gmail API](https://developers.google.com/gmail/api)
.'
arch=(amd64)
control_fields+=('Section: contrib/web')
url='https://github.com/martinrotter/rssguard'
license=(GPL-3.0-only)
depends=(libqt6widgets6
libqt6gui6
libqt6core6t64
libqt6sql6
libqt6xml6
libqt6concurrent6
libqt6core5compat6
libqt6multimedia6
libqt6multimediawidgets6
libqt6qml6
libqt6network6
libqt6dbus6
libstdc++6
libgcc-s1
libc6
libsqlite3-0)
builddepends=(qt6-5compat-dev
qt6-declarative-dev
qt6-multimedia-dev
qt6-tools-dev
qt6-base-dev
linguist-qt6
qt6-webengine-dev
libsqlite3-dev
'cmake>=3.14.0')
#suggests=('clang: Support for beautification of message filter scripts'
# 'mariadb-libs: Support for MariaDB-based data storage')
source=(${pkgbase}_${pkgver}.orig.tar.gz::https://github.com/martinrotter/rssguard/archive/refs/tags/${pkgver}.tar.gz)
sha256sums=('c29bdda08ece8de113dbdb87e8e23491221ba9ddbacd26141d6a00e04888972e')
prepare(){
cd "${srcdir}"
mv ${pkgbase}-${pkgver} rssguard
}
build() {
cmake -B build -S $pkgname \
-DCMAKE_INSTALL_PREFIX=/usr \
-DREVISION_FROM_GIT=OFF \
-DNO_UPDATE_CHECK=ON \
-DENABLE_MEDIAPLAYER_QTMULTIMEDIA=ON \
-DENABLE_MEDIAPLAYER_LIBMPV=OFF
cmake --build build
cmake -B build-lite -S $pkgname \
-DCMAKE_INSTALL_PREFIX=/usr \
-DREVISION_FROM_GIT=OFF \
-DNO_UPDATE_CHECK=ON \
-DENABLE_MEDIAPLAYER_QTMULTIMEDIA=ON \
-DENABLE_MEDIAPLAYER_LIBMPV=OFF \
-DNO_LITE=OFF
cmake --build build-lite
}
package_rssguard() {
depends+=(libqt6webenginecore6
libqt6webenginewidgets6)
DESTDIR="$pkgdir" cmake --install build
}
package_rssguard-lite() {
pkgdesc+=' without WebEngine support'
conflicts=(rssguard)
provides=(rssguard=$pkgver)
replaces=(rssguard-nowebengine)
DESTDIR="$pkgdir" cmake --install build-lite
}@exponentialmatrix
After some experimenting with easydeb I have the following questions:
how do I set the "Section" (like in the debian control file) a package belongs to in the DEBBUILD file?
how do I add a long description of the package in the DEBBUILD file?
I did read the man pages but couldn't find the above info, maybe I missed it.
Also there seems to be a small bug in the generated .dsc file, the lines with the shasums and files aren't indented. When I feed the generated .dsc file into 'sbuild' it throws and error because of this. After manually indenting the lines with one space the error disappears.
sbuild or rather dpkg-source called by sbuild also complains about the format name (easydeb):
dpkg-source: error: source package format '3.0 (easydeb)' is not supported: Can't locate Dpkg/Source/Package/V3/Easydeb.pm in @INC (you may need to install the Dpkg::Source::Package::V3::Easydeb module) (@INC entr
ies checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.40.1 /usr/local/share/perl/5.40.1 /usr/lib/x86_64-linux-gnu/perl5/5.40 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/p
erl/5.40 /usr/share/perl/5.40 /usr/local/lib/site_perl) at (eval 16) line 2.If I change that to 'quilt' I get the following error instead:
dpkg-source: error: cannot write /build/reproducible-path/rssguard-4.8.6/debian/source/format: No such file or directory
E: FAILED [dpkg-source died]Maybe easydeb needs to also generate the debian/source/format file?
Maybe I'm missing something here but IMHO the Devuan devs have done a great job in configuring Excalibur to by default remove CSD and the autohiding scrollbars from GTK3, therefore I don't see any need for myself to avoid GTK3.
All the GTK3 apps look normal (no CSD, no other Gnome style weirdness) to me in XFCE on Excalibur.
Or are there other issues related to GTK3 that I'm not aware of?
Seriously, it would be VERY helpful if folks could point out the best direct repo in general for each of the geographic areas
It doesn't work like that, it's not geography but rather peering agreements between network providers and available bandwidth between networks that determine which repo is best.
I.e. in the same exact physical location the "best" repo will likely differ depending on which network provider you use.
Smart people don't use smart devices.
gcalculator is probably a typo, the correct name is galculator without the 'c' after the initial 'g'.
@stultumanto yes the MIDI functionality is great, I've been using it for many years with some synthesizers, in fact I wrote some scripts (very specific for my needs so not released) and a few applications that make use of it (for the apps see linuxtech.net), it's the ALSA audio functionality that I don't know a lot about (other than the basics).
For documentation of the ALSA MIDI commands the man pages are quite good, no need to search online.
Ok, thanks for the info, I had never heard of this ALSA plugin (libasound2-plugin-equal) before, have to read up about it.
I was wondering what EQ is being controlled by your app, I assume a software EQ as sound chips don't often have a built in hardware EQ, so is this a software EQ provided by ALSA or is it built into your program (i.e. your program is doing the frequency manipulation to EQ the sound)?
Well said, since it's inception I have almost always only used ALSA directly, PA is one of those things I disable right after installation (except in VMs, as I can't be bothered) and I still haven't understood what the purpose of PA or Pipewire is, i.e. what do they offer that ALSA doesn't offer already.
But ALSA it not without blame, while it works well it has really awful/cryptic documentation which probably is the main reason why most people don't understand all of it's capabilities (myself included).
@stargate-sg1-cheyenne-mtn Can you please make a more straight-forward question? Despite reading your post twice I have no idea what your concern is.
So I installed opensysusers as suggested by fsmithred instead of systemd-standalone-users and tested it by creating a testuser.conf file and then running opensysusers:
# cat /usr/lib/sysusers.d/test.conf
u testtest99 - "testtest99 user"
# systemd-sysusers test.conf
# grep testtest /etc/passwd /etc/group
/etc/passwd:testtest99:x:498:498:testtest99 user:/:/sbin/nologin
/etc/group:testtest99:x:498:And we have a winner, opensysusers respects the settings in /etc/login.defs since it's simply a shell script that calls useradd and groupadd to actually create the users (and useradd and groupadd obviously follow the settings in /etc/login.defs ).
So I guess the problem is solved, but I would suggest that Devuan should default to opensysusers even during the initial installation rather than systemd-standalone-users.
opensysusers is an easy to understand shell script that relies on the standard useradd and groupadd binaries, i.e. it's a typical tool following the Unix philosophy unlike systemd-standalone-users, therefore opensysusers seems much better suited as default for Devuan.
systemd-standalone-users should really be blacklisted in Devuan as it ignores the settings in /etc/login.defs and therefore potentially creates users and groups with unwanted UIDs and GIDs.
There is even a 3 year old open bug report about this missing compile flag for systemd in debians bugtracker but nobody seems to have done anything about it: https://bugs.debian.org/cgi-bin/bugrepo … ug=1029785
Guess where the Debian systemd maintainer that seems unwilling to fix this bug works:
Software engineer at Microsoft by day, open source developer involved in various projects by night (systemd maintainer, DPDK LTS maintainer, ZeroMQ project co-lead, Debian Developer)
https://archive.fosdem.org/2023/schedul … _boccassi/
I'm starting to realize more and more that Debian is no longer an independent community distro at all, not only is it full of Canonical (understandable) and IBM/Redhat Devs (less understandable), there are even Microsoft Employees involved with core packages of Debian...
Installing opensysusers instead will remove systemd-standalone-sysusers without removing cron or ssh.
Thanks for the suggestion, I will try that and see whether "opensysusers" takes into account the custom UID/GID ranges configured in /etc/login.defs.
On the systemd webpage says:
Some older systems placed the boundary at 499/500, or even 99/100, and some distributions allow the boundary between system and regular users to be changed via local configuration. In systemd, the boundary is configurable during compilation time and is also queried from /etc/login.defs at runtime, if the -Dcompat-mutable-uid-boundaries=true compile-time setting is used.
I checked the debian/rules file of the source package for systemd-standalone-sysusers and didn't find this compile time flag (-Dcompat-mutable-uid-boundaries=true) so it appears an omission of the Debian systemd source package (that generates the binary package systemd-standalone-sysusers).
On the other hand it would be better if the polkitd package didn't use this systemd tool but rather adduser, especially since it seems to be already set up to use adduser but it gives preference to systemd-sysusers if it finds it, see debian/polkitd.postinst (policykit-1-126 source):
if command -v systemd-sysusers >/dev/null; then
systemd-sysusers ${DPKG_ROOT:+--root="$DPKG_ROOT"} polkit.conf
else
adduser --group --system --quiet --gecos 'polkit' \
--no-create-home --home /nonexistent polkitd
addgroup --system --quiet polkitd
fiIMHO the above should be changed to always use adduser and since this is a Devuan package it would be easier to fix rather than getting Debian to add the compile time flag to the systemd package.
There is even a 3 year old open bug report about this missing compile flag for systemd in debians bugtracker but nobody seems to have done anything about it:
https://bugs.debian.org/cgi-bin/bugrepo … ug=1029785
Therefore I really think it would be better for Devuan to remove this systemd dependency from the Devuan polkit package (which is forked already) and use exclusively 'adduser' in the postinst script of polkitd.
Actually the bug (or rather missbehaviour) seems to be coming from /usr/bin/systemd-sysusers (which the polkitd package seems to prefer over adduser to create the polkitd user/group) from the package systemd-standalone-sysusers which completely ignores any settings in /etc/login.defs and in /etc/adduser.conf.
Why does Devuan prefer systemd-sysusers to create system users during installation rather than adduser?
Why do we even have this disrespectful (of the user configuration) systemd derived package in Devuan?
There seems to be a bug in the polkitd package. On my Devuan Excalibur install it created the polkitd user with UID 999 and GID 999, despite me having configured /etc/login.defs to assign the range 101 to 499 to system users and 500 to 60000 to normal users.
In other words it looks like the polkitd package creates the polkitd user ignoring the settings in /etc/login.defs.
All other system packages that during installation create users and/or groups that I installed so far have respected my settings in /etc/login.defs and in /etc/adduser.conf as expected.
Here are the settings I have in /etc/login.defs:
UID_MIN 500
UID_MAX 60000
SYS_UID_MIN 101
SYS_UID_MAX 499
GID_MIN 500
GID_MAX 60000
SYS_GID_MIN 101
SYS_GID_MAX 499And in /etc/adduser.conf I have:
$ more /etc/adduser.conf |grep ID|grep -v ^#
LAST_SYSTEM_UID=499
LAST_SYSTEM_GID=499
FIRST_UID=500
FIRST_GID=500And this is what my /etc/passwd and /etc/group contains after installation of the polkitd package:
$ grep polkit /etc/passwd /etc/group
/etc/passwd:polkitd:x:999:999:User for polkitd:/:/usr/sbin/nologin
/etc/group:polkitd:x:999:It appears to me that this is a forked Devuan package, not a Debian package (the version string says so:126-2devuan1+excalibur1 ).
Where should I report this to?
@abower thanks for the suggestion regarding the newer version in backports, I installed it straightaway.
BTW, are you one of the authors of sysv-rc-conf (the manpage lists an Andrew Bower)?
If yes thanks for this neat tool, before discovering it I had considered porting the 'chkconfig' from Centos 6 (last one before systemd) to Devuan as I was missing chkconfig, so sysv-rc-conf saved me from this effort.
fixed the bug, new release:
Thanks, I can confirm the error is gone.
BTW, do I understand this right that I could simply take a pkgbuild file from Arch AUR, rename it to debbuild and adapt the dependencies if necessary and then build it on devuan?
In other words, is the file format specification of the debbuild files 100% compatible with the pkgbuild file format?
You can run sudo dmesg in a terminal window after startup is completed to see these messages again and then copy them here exactly.
@g4sra yes, I find the debian packaging world confusing too (as should have transpired from my previous messages in this thread), but my impression is that for some reason the debian devs find it easier to describe the current process in their own personal blog rather than to go through whatever (presumably complicated) process to update the official debian documentation.
That 'sbuild' is the current "right way" to build debian packages is also stated in this blog by another debian dev (but his how-to is too vague, the one from Stephan Lachnit is much more detailed and therefore easier to follow for a newbie like myself):
https://www.linux.it/~ema/posts/buildin … right-way/
@g4sra can you please rephrase that, I don't understand what you are trying to say.
I have to say sbuild is really where it is at in Debian today: it's the go-to tool for this
Thanks for the confirmation, that's the impression I got too, the guide from Stephan Lachnit that I linked in my previous message is based on sbuild and is fairly recent and he's an official Debian developer/packager.
pbuilder seems to have been superseded by sbuild, pbuilder seems to be older and no longer state of the art (although probably still usable).
I think the best way to go about it is to ignore most other documentation and stick to the Debian Maintainers Guide
That was my initial way of thinking too, but it appears that a lot of official guides are not kept up-to-date and therefore don't really teach the current best practices.
I haven't actually tried building a package with this setup yet but I followed the following guide that seems to setup a chroot environment for building deb packages comparable to "mock" for rpms: https://stephan.lachnit.xyz/posts/2023- … cacher-ng/
Can somebody with experience please confirm that this guide at the above link is correct and makes sense?
@golinux thanks for that link, it's a well written guide and there is certainly some interesting info but all those methods described are geared towards someone who just wants to install some not already packaged software on his on PC, not to produce redistributable packages.
If easydeb does a clean chroot build as I hope it does then for me that's far more useful than the methods described in your link.