This series breaks apart the previously submitted block of debian/ changes into individual logical changes, which can be individually reviewed and discussed, and approved.
This series is however missing the change for d/clean and d/libloc1.symbols, which are both pending rework as discussed in the superseded patch.
Valters Jansons (8): debian: Add all temporary files to Gitignore debian: Move libloc1 to 'libs' section debian: Set 'Multi-Arch: foreign' hint for Python debian: Update copyright format link to use HTTPS debian: Add examples/python/ to documentation debian: Drop unintended files from location-python debian: Add watch configuration for uscan systemd: Add Documentation= to location-update
debian/.gitignore | 9 +++++---- debian/control | 5 +++-- debian/copyright | 2 +- debian/location-python.examples | 1 + debian/rules | 8 ++++++++ debian/watch | 3 +++ src/systemd/location-update.service.in | 1 + 7 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 debian/location-python.examples create mode 100644 debian/watch
New packages have been added since the inception of the .gitignore and as a result during build we see directories such as location-importer/ and files such as location-importer.debhelper.log.
This commit ensures all temporary subdirectories, and additional generic build artifact files, are ignored by Git.
The subdirectory exceptions to this rule are:
- d/patches/ which may be used by Quilt considering the source format is '3.0 (quilt)',
- d/source/ for the format file,
- d/tests/ which may be used by autopkgtest to specify what test suites exist for the source. See: https://salsa.debian.org/ci-team/autopkgtest/-/raw/debian/5.16/doc/README.pa...
Signed-off-by: Valters Jansons valter.jansons@gmail.com --- debian/.gitignore | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/debian/.gitignore b/debian/.gitignore index 0faf920..8190b92 100644 --- a/debian/.gitignore +++ b/debian/.gitignore @@ -2,9 +2,10 @@ /autoreconf.* /debhelper-build-stamp /files -/libloc/ -/libloc-dev/ -/libloc-perl/ -/tmp +/*/ *.debhelper +*.log *.substvars +!/patches/ +!/source/ +!/tests/
Hello,
On 16 Apr 2021, at 14:06, Valters Jansons valter.jansons@gmail.com wrote:
New packages have been added since the inception of the .gitignore and as a result during build we see directories such as location-importer/ and files such as location-importer.debhelper.log.
This commit ensures all temporary subdirectories, and additional generic build artifact files, are ignored by Git.
The subdirectory exceptions to this rule are:
- d/patches/ which may be used by Quilt
considering the source format is '3.0 (quilt)',
d/source/ for the format file,
d/tests/ which may be used by autopkgtest
to specify what test suites exist for the source. See: https://salsa.debian.org/ci-team/autopkgtest/-/raw/debian/5.16/doc/README.pa...
Signed-off-by: Valters Jansons valter.jansons@gmail.com
debian/.gitignore | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/debian/.gitignore b/debian/.gitignore index 0faf920..8190b92 100644 --- a/debian/.gitignore +++ b/debian/.gitignore @@ -2,9 +2,10 @@ /autoreconf.* /debhelper-build-stamp /files -/libloc/ -/libloc-dev/ -/libloc-perl/ -/tmp +/*/
What is /*/ for? Why would we ignore any directory that is created in the root directory.
It feels like a bit much to me.
-Michael
*.debhelper +*.log *.substvars +!/patches/ +!/source/
+!/tests/
2.31.1
On Mon, Apr 19, 2021 at 4:10 PM Michael Tremer michael.tremer@ipfire.org wrote:
What is /*/ for? Why would we ignore any directory that is created in the root directory.
It feels like a bit much to me.
As this is debian/.gitignore, then as a result all directories created in debian/ get ignored. From gitignore(5): "These patterns match relative to the location of the .gitignore file."
The added exceptions to that are debian/patches/, debian/source/ and debian/tests/ as described in the commit message.
This ensures that if a new package is added, it doesn't need to be manually added to the Gitignore. Similarly, if a package is removed, then it doesn't need to be removed from the Gitignore either.
--Valters
Resolves: lintian: wrong-section-according-to-package-name
Signed-off-by: Valters Jansons valter.jansons@gmail.com --- debian/control | 1 + 1 file changed, 1 insertion(+)
diff --git a/debian/control b/debian/control index 118a111..964a4a4 100644 --- a/debian/control +++ b/debian/control @@ -24,6 +24,7 @@ Vcs-Browser: https://git.ipfire.org/pub/git/location/libloc.git
Package: libloc1 Architecture: any +Section: libs Pre-Depends: ${misc:Pre-Depends} Depends:
Due to the invocation of py3compile (via dh-python) in location-importer and location-python packages, those packages have different bytecode for varying architectures, and as a result are not 'Multi-Arch: same'.
Resolves: lintian: multi-arch-same-package-calls-pycompile
Signed-off-by: Valters Jansons valter.jansons@gmail.com --- debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/debian/control b/debian/control index 964a4a4..4b1407a 100644 --- a/debian/control +++ b/debian/control @@ -69,7 +69,7 @@ Depends: location-python (= ${binary:Version}), ${misc:Depends}, ${python3:Depends} -Multi-Arch: same +Multi-Arch: foreign Description: Tools to author location databases This package contains tools that are required to build location databases
@@ -82,6 +82,6 @@ Depends: ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends} -Multi-Arch: same +Multi-Arch: foreign Description: Python modules for libloc This package contains Python bindings for libloc
Resolves: lintian: insecure-copyright-format-uri
Signed-off-by: Valters Jansons valter.jansons@gmail.com --- debian/copyright | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/debian/copyright b/debian/copyright index 636af48..3bd7654 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,4 +1,4 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: libloc Upstream-Contact: Michael Tremer michael.tremer@ipfire.org Source: https://location.ipfire.org/download
Resolves: lintian: package-does-not-install-examples
Signed-off-by: Valters Jansons valter.jansons@gmail.com --- debian/location-python.examples | 1 + 1 file changed, 1 insertion(+) create mode 100644 debian/location-python.examples
diff --git a/debian/location-python.examples b/debian/location-python.examples new file mode 100644 index 0000000..cf2a6ee --- /dev/null +++ b/debian/location-python.examples @@ -0,0 +1 @@ +examples/python/
_location.la gets built and installed to site-packages/, however an .la file is not expected to reside in the Python root. Additionally, the dependency library listed does not have its respective .la file installed. Further complicating the situation, dh-python moves the site-packages/ files to dist-packages/ silently which then results in a broken libdir left behind in the .la file.
The only reason the file is there is that it gets built inside the source directory, which gets copied entirely to location-python package as-is. Considering the situation, this commit ensures the .la files is not packaged by deleting it from the package files subdirectory.
location-importer package pulls in two Python (.py) files from the source directory. These files should not be included in the location-python package as a result.
Resolves: lintian: unknown-file-in-python-module-directory, incorrect-libdir-in-la-file, non-empty-dependency_libs-in-la-file, binaries-have-file-conflict
Signed-off-by: Valters Jansons valter.jansons@gmail.com --- debian/rules | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/debian/rules b/debian/rules index 8893b7b..05b88fd 100755 --- a/debian/rules +++ b/debian/rules @@ -18,3 +18,11 @@ override_dh_perl:
override_dh_systemd_enable: dh_systemd_enable location-update.timer + +override_dh_install: + dh_install + # lintian: unknown-file-in-python-module-directory + rm debian/location-python/usr/lib/python3*/site-packages/_location.la + # linitan: binaries-have-file-conflict (d/location-importer.install) + rm debian/location-python/usr/lib/python3*/site-packages/location/database.py + rm debian/location-python/usr/lib/python3*/site-packages/location/importer.py
Hello,
On 16 Apr 2021, at 14:06, Valters Jansons valter.jansons@gmail.com wrote:
_location.la gets built and installed to site-packages/, however an .la file is not expected to reside in the Python root. Additionally, the dependency library listed does not have its respective .la file installed. Further complicating the situation, dh-python moves the site-packages/ files to dist-packages/ silently which then results in a broken libdir left behind in the .la file.
Moving those files has indeed many bad consequences and I am not sure if Debian is doing something that is very logical.
However, I can live with simply deleting this file.
The only reason the file is there is that it gets built inside the source directory, which gets copied entirely to location-python package as-is. Considering the situation, this commit ensures the .la files is not packaged by deleting it from the package files subdirectory.
location-importer package pulls in two Python (.py) files from the source directory. These files should not be included in the location-python package as a result.
And how do they go there when they are just being deleted here?
-Michael
Resolves: lintian: unknown-file-in-python-module-directory, incorrect-libdir-in-la-file, non-empty-dependency_libs-in-la-file, binaries-have-file-conflict
Signed-off-by: Valters Jansons valter.jansons@gmail.com
debian/rules | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/debian/rules b/debian/rules index 8893b7b..05b88fd 100755 --- a/debian/rules +++ b/debian/rules @@ -18,3 +18,11 @@ override_dh_perl:
override_dh_systemd_enable: dh_systemd_enable location-update.timer
+override_dh_install:
- dh_install
- # lintian: unknown-file-in-python-module-directory
- rm debian/location-python/usr/lib/python3*/site-packages/_location.la
- # linitan: binaries-have-file-conflict (d/location-importer.install)
- rm debian/location-python/usr/lib/python3*/site-packages/location/database.py
- rm debian/location-python/usr/lib/python3*/site-packages/location/importer.py
-- 2.31.1
On Mon, Apr 19, 2021 at 4:14 PM Michael Tremer michael.tremer@ipfire.org wrote:
The only reason the file is there is that it gets built inside the source directory, which gets copied entirely to location-python package as-is. Considering the situation, this commit ensures the .la files is not packaged by deleting it from the package files subdirectory.
location-importer package pulls in two Python (.py) files from the source directory. These files should not be included in the location-python package as a result.
And how do they go there when they are just being deleted here?
dh_install copies files to separate subdirectories, from which packages are constructed.
d/location-python.install specifies: usr/lib/python3*/site-packages
d/location-importer.install specifies: usr/lib/python3*/site-packages/location/database.py usr/lib/python3*/site-packages/location/importer.py
As a result, those two particular .py files end up in both the location-python and location-importer package subtrees. After dh_install, before the next stage of packaging, we can get rid of the two files from the location-python directory.
--Valters
Packages defined as '3.0 (quilt)' are expected to provide information about how the latest upstream information can be obtained, as a special d/watch file. This can then get used by uscan(1).
To see how the metadata is utilized, and how the network requests are made behind the scenes, you can locally run: $ uscan --no-download --verbose --debug
Resolves: lintian: debian-watch-file-is-missing
Signed-off-by: Valters Jansons valter.jansons@gmail.com --- debian/watch | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 debian/watch
diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..19ace6d --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=4 +https://source.ipfire.org/releases/libloc/ \ + @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate
Hello,
This is actually quite a neat tool which might be helpful for us in other places.
Best, -Michael
On 16 Apr 2021, at 14:06, Valters Jansons valter.jansons@gmail.com wrote:
Packages defined as '3.0 (quilt)' are expected to provide information about how the latest upstream information can be obtained, as a special d/watch file. This can then get used by uscan(1).
To see how the metadata is utilized, and how the network requests are made behind the scenes, you can locally run: $ uscan --no-download --verbose --debug
Resolves: lintian: debian-watch-file-is-missing
Signed-off-by: Valters Jansons valter.jansons@gmail.com
debian/watch | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 debian/watch
diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..19ace6d --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=4 +https://source.ipfire.org/releases/libloc/ \
- @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate
-- 2.31.1
Systemd units are expected to provide some documentation information such as manpages, or direct links, which provide more details about that unit. This commit simply links location-update.service to the manual for location(8) followed by a fallback to the online manual.
See: https://manpages.debian.org/buster/systemd/systemd.unit.5.en.html#%5BUNIT%5D...
Resolves: lintian: systemd-service-file-missing-documentation-key
Signed-off-by: Valters Jansons valter.jansons@gmail.com --- src/systemd/location-update.service.in | 1 + 1 file changed, 1 insertion(+)
diff --git a/src/systemd/location-update.service.in b/src/systemd/location-update.service.in index daae2c5..1c8e116 100644 --- a/src/systemd/location-update.service.in +++ b/src/systemd/location-update.service.in @@ -1,5 +1,6 @@ [Unit] Description=Automatic Location Database Updater +Documentation=man:location(8) https://man-pages.ipfire.org/libloc/location.html Requires=network.target
[Service]
Hello Valters,
Thank you for splitting the big patch into many smaller ones.
I have a could of questions about some of them and I will merge some others straight away.
Best, -Michael
On 16 Apr 2021, at 14:06, Valters Jansons valter.jansons@gmail.com wrote:
This series breaks apart the previously submitted block of debian/ changes into individual logical changes, which can be individually reviewed and discussed, and approved.
This series is however missing the change for d/clean and d/libloc1.symbols, which are both pending rework as discussed in the superseded patch.
Valters Jansons (8): debian: Add all temporary files to Gitignore debian: Move libloc1 to 'libs' section debian: Set 'Multi-Arch: foreign' hint for Python debian: Update copyright format link to use HTTPS debian: Add examples/python/ to documentation debian: Drop unintended files from location-python debian: Add watch configuration for uscan systemd: Add Documentation= to location-update
debian/.gitignore | 9 +++++---- debian/control | 5 +++-- debian/copyright | 2 +- debian/location-python.examples | 1 + debian/rules | 8 ++++++++ debian/watch | 3 +++ src/systemd/location-update.service.in | 1 + 7 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 debian/location-python.examples create mode 100644 debian/watch
-- 2.31.1
On Mon, Apr 19, 2021 at 4:10 PM Michael Tremer michael.tremer@ipfire.org wrote:
I have a could of questions about some of them and I will merge some others straight away.
Is there anything else left unanswered, or causing doubt with [1/8] "Add all temporary files to Gitignore" and [6/8] "Drop unintended files from location-python" which have not been merged yet?
--Valters
Hello,
Yes, did you see my emails on those?
Best, -Michael
On 27 Apr 2021, at 10:28, Valters Jansons valter.jansons@gmail.com wrote:
On Mon, Apr 19, 2021 at 4:10 PM Michael Tremer michael.tremer@ipfire.org wrote:
I have a could of questions about some of them and I will merge some others straight away.
Is there anything else left unanswered, or causing doubt with [1/8] "Add all temporary files to Gitignore" and [6/8] "Drop unintended files from location-python" which have not been merged yet?
--Valters
On Tue, May 4, 2021 at 5:50 PM Michael Tremer michael.tremer@ipfire.org wrote:
Yes, did you see my emails on those?
Not sure if my emails got lost along the way to you, but they do appear to be listed in Patchwork: For 1/8, https://patchwork.ipfire.org/comment/4452/ For 6/8, https://patchwork.ipfire.org/comment/4453/
Or is something left unanswered following those?
--Valters
Hello,
All done. I merged them both.
Did you have time to have a look at the bug that location-importer is not being packaged or is that already fixed?
-Michael
On 4 May 2021, at 19:40, Valters Jansons valter.jansons@gmail.com wrote:
On Tue, May 4, 2021 at 5:50 PM Michael Tremer michael.tremer@ipfire.org wrote:
Yes, did you see my emails on those?
Not sure if my emails got lost along the way to you, but they do appear to be listed in Patchwork: For 1/8, https://patchwork.ipfire.org/comment/4452/ For 6/8, https://patchwork.ipfire.org/comment/4453/
Or is something left unanswered following those?
--Valters
On Thu, May 6, 2021 at 6:12 PM Michael Tremer michael.tremer@ipfire.org wrote:
All done. I merged them both.
Thank you!
Did you have time to have a look at the bug that location-importer is not being packaged or is that already fixed?
There are no changes so far that directly modify the packaging behavior when it comes to what files are being used for the location-importer package in particular.
I can confirm the problem with location-importer.deb from https://packages.ipfire.org/location/buster/ by running `dpkg -c location-importer_0.9.6-1_$ARCH.deb`. But nothing that pops out right away, causing this.
Would be interesting to see build logs from the server doing the packaging for this. Maybe they could shed some light.
--Valters
Hello Valters,
I have attached the log files of the build on my machine using the build scripts provided with the package.
Hopefully they have what you are looking for.
Best, -Michael
On 6 May 2021, at 18:37, Valters Jansons valter.jansons@gmail.com wrote:
On Thu, May 6, 2021 at 6:12 PM Michael Tremer michael.tremer@ipfire.org wrote:
All done. I merged them both.
Thank you!
Did you have time to have a look at the bug that location-importer is not being packaged or is that already fixed?
There are no changes so far that directly modify the packaging behavior when it comes to what files are being used for the location-importer package in particular.
I can confirm the problem with location-importer.deb from https://packages.ipfire.org/location/buster/ by running `dpkg -c location-importer_0.9.6-1_$ARCH.deb`. But nothing that pops out right away, causing this.
Would be interesting to see build logs from the server doing the packaging for this. Maybe they could shed some light.
--Valters
On Tue, May 11, 2021 at 12:41 PM Michael Tremer michael.tremer@ipfire.org wrote:
I have attached the log files of the build on my machine using the build scripts provided with the package.
Hopefully they have what you are looking for.
Regarding the 'no binaries'/empty location-importer package - that still seems to be a problem with the 0.9.7 release visible on packages.ipfire.org. They only contain changelog.Debian.gz and copyright for all architectures.
This doesn't feel like it should be environment specific, as it invokes a chroot. I am not able to reproduce this (running the debian/build.sh) on my Ubuntu Focal (20.04) installation, which runs the buster target, and produces a location-importer package with a usr/bin/location-importer and other files.
Is the build environment itself up-to-date? Any available updates for sbuild, or any other tooling on the host by any chance?
Will have to spin up a Debian Buster VM to test this out then. I have some sneaking suspicion that buster-backports might be beneficial to enable on the host.
--Valters
Hello,
On 11 Jul 2021, at 18:21, Valters Jansons valter.jansons@gmail.com wrote:
On Tue, May 11, 2021 at 12:41 PM Michael Tremer michael.tremer@ipfire.org wrote:
I have attached the log files of the build on my machine using the build scripts provided with the package.
Hopefully they have what you are looking for.
Regarding the 'no binaries'/empty location-importer package - that still seems to be a problem with the 0.9.7 release visible on packages.ipfire.org. They only contain changelog.Debian.gz and copyright for all architectures.
Yes, I can confirm that.
This doesn't feel like it should be environment specific, as it invokes a chroot. I am not able to reproduce this (running the debian/build.sh) on my Ubuntu Focal (20.04) installation, which runs the buster target, and produces a location-importer package with a usr/bin/location-importer and other files.
Is the build environment itself up-to-date? Any available updates for sbuild, or any other tooling on the host by any chance?
I am running “make debian” and I assumed this would always use the latest set of released packages.
Will have to spin up a Debian Buster VM to test this out then. I have some sneaking suspicion that buster-backports might be beneficial to enable on the host.
We should virtual environments for all releases and architectures, but please feel free to dig and find what is actually going wrong. I have no clue.
-Michael
--Valters