Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Package metadata is outdated #127

Closed
ghost opened this issue Sep 20, 2016 · 4 comments
Closed

Package metadata is outdated #127

ghost opened this issue Sep 20, 2016 · 4 comments
Labels
Milestone

Comments

@ghost
Copy link

ghost commented Sep 20, 2016

This is another old issue that I had noticed, which is at least two years to this date. The version shown in package manager i.e. dpkg and synaptic has always been 4.1.0 even though the actual version noted in ChangeLog and GitHub have been updated over the years.

The following output is showing the version by Dpkg and APT package manager:

$ dpkg-query -W | grep customizer
customizer  4.1.0

$ apt-cache show customizer | grep Version
Version: 4.1.0

The following screenshot is showing the version in Synaptic package manager:

deb-package-version

I think I can be solve this by introducing a new variable in Makefile to complement existing variable @VERSION@ and implement similarly. Then, add another line of $(SED) -e command under core block. As a result, a new variable i.e. @XYZ@ will be replaced by appropriate version number automatically when creating Debian package.

Correction

As hinted in earlier comment below, the package version is based on debian/changelog file from the newest version at top, followed by older versions that shall be preserved. The format is important to follow, such as timestamp in RFC 2822 format (run date --rfc-2822 in Terminal).

This must be fixed in future release 4.2.0.

I hope to implement this beginning from patch release 4.1.3.

@ghost ghost added this to the 4.2.0 milestone Sep 20, 2016
@fluxer
Copy link
Collaborator

fluxer commented Sep 20, 2016

@ghost
Copy link
Author

ghost commented Sep 23, 2016

Based on the manpages, I figured out that make deb actually runs dpkg-buildpackage to build the Debian package, which is followed by dpkg-genchanges that will read the information from the source tree. As a result, the version is actually determined by the content of debian/changelog file.

Example content of modified debian/changelog:

$ cat Customizer-master/debian/changelog 
customizer (4.1.0-test3) UNRELEASED; urgency=medium

  * Trial package to ensure this version is used

 -- Mubiin Kimura <[email protected]>  Fri, 23 Sep 2016 12:46:08 +0800

customizer (4.1.0) unstable; urgency=medium

  * Initial package

 -- Ivailo Monev <[email protected]>  Fri, 08 Aug 2014 01:40:44 +0200

Example output when running make deb (shown only first and last few lines):

$ cd Customizer-master/ && make deb && cd ..
DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -us -uc -b
dpkg-buildpackage: source package customizer
dpkg-buildpackage: source version 4.1.0-test3
dpkg-buildpackage: source distribution UNRELEASED
dpkg-buildpackage: source changed by Mubiin Kimura <[email protected]>
dpkg-buildpackage: host architecture i386
 dpkg-source --before-build Customizer-master
 fakeroot debian/rules clean
...
dpkg-deb: building package `customizer' in `../customizer_4.1.0-test3_all.deb'.
make[1]: Leaving directory `/home/trusty/test/debug412-2/Customizer-master'
 dpkg-genchanges -b >../customizer_4.1.0-test3_i386.changes
dpkg-genchanges: binary-only upload - not including any source code
 dpkg-source --after-build Customizer-master
dpkg-buildpackage: binary only upload (no source included)

Anyway, this will be fixed in patch release 4.1.3.

@fluxer
This section of Debian Policy Manual says "The most recent version of the standards (the policy manual and associated texts) with which the package complies." Not sure what that actually means; I guess the line in debian/control is for reference only, not for package versioning.

@kamilion
Mentioned for your reference to solve #9 at fork repository. As side note, user may be confused between old stable and forked releases, since both are having similar version. This versioning is a related issue with the duplicate Wiki, which I might discuss in #2 later.

@ghost ghost added the Fixed label Sep 23, 2016
@ghost ghost modified the milestones: 4.1.3, 4.2.0 Sep 23, 2016
@fluxer
Copy link
Collaborator

fluxer commented Sep 23, 2016

@clearkimura You are right, I forgot how this works.

@ghost
Copy link
Author

ghost commented Oct 30, 2016

Fixed in branch repository: ./../blob/pre413/debian/changelog

The link is valid until the branch is removed and merged to master.

@ghost ghost closed this as completed Oct 30, 2016
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant