Bug 206840 - x11-fm/doublecmd: Update to 0.7.0, Mark Un'BROKEN
Summary: x11-fm/doublecmd: Update to 0.7.0, Mark Un'BROKEN
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Thomas Zander
URL:
Keywords: easy, needs-qa, patch, patch-ready
Depends on:
Blocks:
 
Reported: 2016-02-02 10:11 UTC by Beñat Gonzalez Etxepare
Modified: 2016-03-14 10:11 UTC (History)
3 users (show)

See Also:
koobs: maintainer-feedback+
riggs: merge-quarterly+


Attachments
Patch to version 0.7 (revision 6569) (8.79 KB, patch)
2016-02-02 10:11 UTC, Beñat Gonzalez Etxepare
no flags Details | Diff
Patch to version 0.7.0 alpha 6569 (8.80 KB, patch)
2016-02-02 16:54 UTC, Beñat Gonzalez Etxepare
bbtruk: maintainer-approval+
Details | Diff
Patch to version 0.7.0 (9.04 KB, patch)
2016-03-13 18:32 UTC, Beñat Gonzalez Etxepare
bbtruk: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Beñat Gonzalez Etxepare 2016-02-02 10:11:21 UTC
Created attachment 166426 [details]
Patch to version 0.7 (revision 6569)

Since the update of lang/fpc to version 3, x11-fm/doublecmd has been broken. The latest stable version (0.6.6) is not compatible with latest version of lang/fpc.

The required changes have been made in the development version of Double Commander, but there is no release as of yet. So I am temporary updating the port to an alpha version until the new version compatible with FPC 3 is released.


Changes:
- Update to development version 0.7 (revision 6569)
- Fix build with latest lang/fpc


Renamed files (modified):
- files/patch-plugins__wlx__WlxMplayer__src__wlxMplayer.lpr to files/patch-plugins_wlx_WlxMplayer_src_wlxMplayer.lpr
- files/patch-src__dmhelpmanager.pas to files/patch-src_dmhelpmanager.pas
- files/patch-src__uGlobsPaths.pas to files/patch-src_uGlobsPaths.pas


Tested using Poudriere.
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2016-02-02 10:36:29 UTC
Thank you Beñat

I believe that DISTVERSION should be used for this particular version string, otherwise it looks like the port will require incrementing PORTEPOCH for the next normal version, which is undesirable.

On every update, PORTVERSION should go forward (up), not backward (down).

Please check that that PORTVERSION calculated from DISTVERSION is correct and expected, for this, and future versions.

That is, in this change:

That this PORTVERSION > current PORTVERSION
That this PORTVERSION < future PORTVERSION (say, 0.7 or 0.8)

You can check these with:

# make -V DISTVERSION
# make -V PORTVERSION
# pkg --test-version <version1> <version2> (see man pkg-version)
Comment 2 Beñat Gonzalez Etxepare 2016-02-02 14:55:52 UTC
Hi Kubilay,

Thanks for your help!

If I understand you correctly and also what I have read about DISTVERSION, I think it would be enough to change the PORTVERSION to 0.7.0.R6569 (pkg version returns 0.7.0.R6569 < 0.7.0, which would be the future release version) and rename the distfile accordingly (note that the distfile has been set up by me, as there is no official release for this version). Is that right?

Otherwise, I don't understand how I am supposed to use DISTVERSION in this case, as I can't find much information about it (the only information I have found is the "5.4. The Distribution Files" chapter in the Porter's Handbook, and seems only related to distfiles).
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2016-02-02 15:33:57 UTC
(In reply to Beñat Gonzalez Etxepare from comment #2)

You're welcome Beñat

Basically DISTVERSION can be used to convert incompatible version strings into PORTVERSION compatible ones. That is to say, setting DISTVERSION *automatically* calculates a PORTVERSION value.

See Table 5.2 in https://www.freebsd.org/doc/en/books/porters-handbook/makefile-distfiles.html

In this case,

DISTVERSION=0.7R6569 make -V PORTVERSION

results in:

PORTVERSION = 0.7.r6569

Testing this value:

pkg version -t 0.7.r6569 0.7.0
<

^--- good (0.7.r6569 is less than future 0.7.0 (true))

Whereas:

pkg version -t 0.7R6569 0.7.0
>

^--- not good (0.7R6569 is greater than future 0.7.0 (false))

So you see why we need to use DISTVERSION, otherwise PORTEPOCH will be needed in the future.

Since we'll be setting DISTVERSION, you may also need to override DISTFILES in order to derive the correct distribution file filename.

Hope that helps explain things :)
Comment 4 Kubilay Kocak freebsd_committer freebsd_triage 2016-02-02 15:36:52 UTC
(In reply to Beñat Gonzalez Etxepare from comment #2)

But yes, 0.7.0.R6569 is OK as well. Personally (having read the upstream page on the 0.7.0 alpha, I'd opt for:

PORTVERSION= 0.7.0.a<build> or

DISTVERSION=0.7.0alpha<build>

As these are closer to the upstream designation of 'alpha', rather than R<build to denote a revision.

As long as a PORTEPOCH bump is avoided, and future versions will be > than this one, we're good.
Comment 5 Beñat Gonzalez Etxepare 2016-02-02 16:54:41 UTC
Created attachment 166443 [details]
Patch to version 0.7.0 alpha 6569

Thanks a lot, your explanations were really useful.

I have changed PORTVERSION as you have suggested in the new patch:

PORTVERSION= 0.7.0.a<build>

Hope everything is ok now.

Best regards.
Comment 6 Kubilay Kocak freebsd_committer freebsd_triage 2016-02-02 17:04:32 UTC
Please re-check QA (portlint, poudriere) after these changes and confirm :)
Comment 7 Beñat Gonzalez Etxepare 2016-02-02 17:09:35 UTC
Sorry, I didn't mention. The new patch has also been tested using Poudriere :)
Comment 8 Kubilay Kocak freebsd_committer freebsd_triage 2016-02-02 17:13:57 UTC
@Beñat Great! 

All you need to do now is set maintainer-approval to "+"

You can do this by doing to Attachment -> Details -> maintainer-approval [+]

Please do that for all future issues for attachments of ports you are maintainer of :)

Prior to future updates, it's probably worth asking upstream to start distributing nightly (or per commit) source tarballs. 

Users (and us) prefer to see things distributed from the official upstream (trust, security, etc)
Comment 9 Beñat Gonzalez Etxepare 2016-02-02 18:07:30 UTC
> All you need to do now is set maintainer-approval to "+"
Done. I will keep this in mind for future attachments also :)

> it's probably worth asking upstream to start distributing nightly [..]
I think this will be an isolated version until the new release is available, so I didn't want to bother upstream developers with setting up new things. But I am aware this isn't best practice (and quite untrusty).

That being said, if any new updates are to be made from development version, I will take your advice.

Thanks again for all your help!
Comment 10 Kubilay Kocak freebsd_committer freebsd_triage 2016-02-02 18:08:19 UTC
(In reply to Beñat Gonzalez Etxepare from comment #9)

You're more than welcome, keep up the good work
Comment 11 Thomas Zander freebsd_committer 2016-03-12 19:54:01 UTC
I am getting this build failure on 9.3/i386 in poudriere with default OPTIONs:

[...]
/wrkdirs/usr/ports/x11-fm/doublecmd/work/doublecmd-0.7.0.a6569/src/./platform/unix/ukeyfile.pas(74,15) Note: (3250) Virtual method "UpdateFile;" has a lower visibility (protected) than parent class TCustomIniFile (public)
/wrkdirs/usr/ports/x11-fm/doublecmd/work/doublecmd-0.7.0.a6569/src/./platform/unix/ukeyfile.pas(92,3) Warning: (5093) function result variable of a managed type does not seem to initialized
/wrkdirs/usr/ports/x11-fm/doublecmd/work/doublecmd-0.7.0.a6569/src/./platform/unix/ukeyfile.pas(150,1) Fatal: (3202) Procedure too complex, it requires too many registers
Fatal: (1018) Compilation aborted
Error: /usr/local/bin/ppc386 returned an error exitcode
Error: (lazarus) Compile Project, Mode: NoDebug Full Optimizations, Target: /wrkdirs/usr/ports/x11-fm/doublecmd/work/doublecmd-0.7.0.a6569/doublecmd: stopped with exit code 256
ERROR: failed compiling of project /wrkdirs/usr/ports/x11-fm/doublecmd/work/doublecmd-0.7.0.a6569/src/doublecmd.lpi
*** [do-build] Error code 2

Stop in /usr/ports/x11-fm/doublecmd.

Also there is this general warning in stage-qa:
====> Running Q/A tests (stage-qa)
Warning: you need USES=desktop-file-utils

Could you look into this?
Comment 12 Beñat Gonzalez Etxepare 2016-03-13 18:32:15 UTC
Created attachment 168100 [details]
Patch to version 0.7.0

Sorry, it seems there was an error with the i386 architecture in the submitted version.

In any case, the new version 0.7.0 has just been released today and this error seems to be fixed. The attached patch brings the official version 0.7.0.

I have also added desktop-file-utils to USES clause.

Tested with both i386 and amd64 architectures using Poudriere.
Comment 13 commit-hook freebsd_committer 2016-03-13 21:39:54 UTC
A commit references this bug:

Author: riggs
Date: Sun Mar 13 21:39:38 UTC 2016
New revision: 411032
URL: https://svnweb.freebsd.org/changeset/ports/411032

Log:
  Un-break port, update to upstream version 0.7.0

  While on it:
  - Pet portlint

  PR:		206840
  Submitted by:	bbtruk@users.sourceforge.net (maintainer)
  MFH:		2016Q1

Changes:
  head/x11-fm/doublecmd/Makefile
  head/x11-fm/doublecmd/distinfo
  head/x11-fm/doublecmd/files/patch-plugins__wlx__WlxMplayer__src__wlxMplayer.lpr
  head/x11-fm/doublecmd/files/patch-plugins_wlx_WlxMplayer_src_wlxMplayer.lpr
  head/x11-fm/doublecmd/files/patch-src__dmhelpmanager.pas
  head/x11-fm/doublecmd/files/patch-src__uGlobsPaths.pas
  head/x11-fm/doublecmd/files/patch-src_dmhelpmanager.pas
  head/x11-fm/doublecmd/files/patch-src_uGlobsPaths.pas
Comment 14 Thomas Zander freebsd_committer 2016-03-13 21:47:07 UTC
(In reply to Beñat Gonzalez Etxepare from comment #12)

Great, thanks for looking into it!
Comment 15 commit-hook freebsd_committer 2016-03-14 10:09:57 UTC
A commit references this bug:

Author: riggs
Date: Mon Mar 14 10:08:54 UTC 2016
New revision: 411053
URL: https://svnweb.freebsd.org/changeset/ports/411053

Log:
  MFH: r411032

  Un-break port, update to upstream version 0.7.0

  While on it:
  - Pet portlint

  PR:		206840
  Submitted by:	bbtruk@users.sourceforge.net (maintainer)
  Approved by:	ports-secteam (feld)

Changes:
_U  branches/2016Q1/
  branches/2016Q1/x11-fm/doublecmd/Makefile
  branches/2016Q1/x11-fm/doublecmd/distinfo
  branches/2016Q1/x11-fm/doublecmd/files/patch-plugins__wlx__WlxMplayer__src__wlxMplayer.lpr
  branches/2016Q1/x11-fm/doublecmd/files/patch-plugins_wlx_WlxMplayer_src_wlxMplayer.lpr
  branches/2016Q1/x11-fm/doublecmd/files/patch-src__dmhelpmanager.pas
  branches/2016Q1/x11-fm/doublecmd/files/patch-src__uGlobsPaths.pas
  branches/2016Q1/x11-fm/doublecmd/files/patch-src_dmhelpmanager.pas
  branches/2016Q1/x11-fm/doublecmd/files/patch-src_uGlobsPaths.pas