Bug 247161

Summary: devel/viewvc: Changed to always use devel/subversion-lts?
Product: Ports & Packages Reporter: Robert William Vesterman <bob>
Component: Individual Port(s)Assignee: Dan Langille <dvl>
Status: Closed FIXED    
Severity: Affects Some People CC: douglas, dvl, freebsd-bug-report-yf, lwhsu
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Description Flags
A patch for devel/viewvc to add experimental option "ALTSVN"
add new port for viewvc trunk snapshot, devel/viewvc-devel
add to pkg-plist of 2020-10-07 06:22 UTC patch
patch with fixed pkg-plist and mention of GNU diff in .conf file none

Description Robert William Vesterman 2020-06-11 09:41:52 UTC
It looks to me like a week or so ago, in ports r537567, viewvc was changed so that it always uses devel/subversion-lts rather than having some logic to decide whether it should use devel/subversion-lts or devel/subversion. This is causing problems for me, because I use devel/subversion, and that conflicts with devel/subversion-lts.

So, unless I'm missing something here, I have to either not use viewvc anymore (which I do not want to do) or else switch from devel/subversion to devel/subversion-lts (which I very much do not want to do).

Is there some reason why it can no longer be used with devel/subversion?

In any case, I did not see anything in /usr/ports/UPDATING about this change, so I think at the very least something about it should be mentioned there.
Comment 1 Yasuhito FUTATSUKI 2020-06-12 06:42:28 UTC
(In reply to Robert William Vesterman from comment #0)
> Is there some reason why it can no longer be used with devel/subversion?

As far as I know, the reason is that the maintainer of devel/subversion decided that devel/py-subversion no longer provide py27-subversion, and devel/viewvc is depend on Subversion Python bindings for Python 2.7. (See the "FreeBSD Port: devel/py-subversion - Python 3 flavor?" thread on FreeBSD-ports list on Apr 2020 [1] for more detail.)

[1] https://lists.freebsd.org/pipermail/freebsd-ports/2020-April/thread.html#118334

Note: upstream Subversion 1.14.0 still support SWIG Python bindings for Python 2.7, although it does not contain pre-genetated (intermediate) source files for Python 2.7. Actually, OpenBSD port for subversion 1.14.0 support Python bindings both for Python 2.7 and Python 3.x, though they are exclusive.

I make a patch against subversion-1.14.0 to enable build and install Python 2 and Python 3 bindings without conflict [2], because I need both of them in my environment for development (of ViewVC, Python scripts in tools sub directory in the subversion source tree, etc). It is need extra dependency to autoconf and swig3, and it need to run 'sh ./autogen.sh', configure (with --with-swig=/path/to/swig3 option), 'make swig-py2', and 'make install-swig-py2'.

[2] https://github.com/apache/subversion/compare/1.14.0...futatuki:1.14.0-separate-swig-py2.diff
(Note: last 3 new files are actually symbolic links, and it is need to make new directory subversion/bindings/swig/python2. See also the commit message on https://github.com/futatuki/subversion/commit/5ee2b0ff04ba08cd9300575336a78759233a6304)

> In any case, I did not see anything in /usr/ports/UPDATING about this change, so I think at the very least something about it should be mentioned there.

I also think so.
Comment 2 Yasuhito FUTATSUKI 2020-07-02 08:28:15 UTC
As devel/swig3 moved to devel/swig and updated to SWIG 4, subversion Python bindings for Python 2 can't built without pre-generated SWIG binding source for Python 2.

To build SWIG Python 2 bindings for Subversion 1.14.0, 2.0.0 <= SWIG < 4.0 is needed.
Comment 3 Olli Hauer freebsd_committer 2020-07-02 09:40:29 UTC
Hello Yasuhito FUTATSUKI,

just a question:
 It seems you have verry good knowledge in svn and viewvc 
 are you interested to become the maintainer of viewvc?

 If yes, drop me a short note and I will set you as maintainer
Comment 4 Yasuhito FUTATSUKI 2020-07-02 10:45:53 UTC
(In reply to Olli Hauer from comment #3)
Thank you offer me to the maintainer, however I'm sorry I don't have enough knowledge of FreeBSD ports nowadays, and enough resources (I couldn't build a poudriere environment... yet).
Comment 5 Olli Hauer freebsd_committer 2020-07-02 11:26:20 UTC
(In reply to Yasuhito FUTATSUKI from comment #4)
Many thanks for the answer!
Comment 6 Yasuhito FUTATSUKI 2020-07-06 13:13:38 UTC
Created attachment 216250 [details]
A patch for devel/viewvc to add experimental option "ALTSVN"
Comment 7 Yasuhito FUTATSUKI 2020-07-06 13:14:46 UTC
I made a patch against ViewVC 1.2.1 to add Subversion access module without Subversion SWIG Python bindings. The module was originally wrote to port ViewVC on Python 3, before I participated in development of SWIG Python 3 bindings on Apache Subversion project. Please see https://github.com/futatuki/viewvc/blob/1.2.1-cython-svnlib/src/lib/README-altsvn.txt for detail.

The diff can be seen on https://github.com/viewvc/viewvc/compare/1.2.1...futatuki:1.2.1-cython-svnlib on GitHub, however it is not easy to use a filename 1.2.1...futatuki:1.2.1-cython-svnlib.diff for the ports. So I put a patch file on my personal web page as http://home.bsdclub.org/~futatuki/UNIX/archives/viewvc-1.2.1-altsvn.patch, with two minor modifications.
(An add a comment to zero sized file src/lib/cython/capi/apr_1/__init__.pxd for the patch utility, and enable altsvn module by default in conf/viewvc.conf.dist).

Then I made a patch for the port to enable to run with Subversion 1.14.0 if new ALTSVN option is enabled.

I checked on FreeBSD 12.1, with subversion 1.14.0.

I think this is a experimental quality, so I don't recommend to use it positively....
Comment 8 Yasuhito FUTATSUKI 2020-10-07 06:22:22 UTC
Created attachment 218583 [details]
add new port for viewvc trunk snapshot, devel/viewvc-devel

Here is a port for snapshot of viewvc trunk branch.
I think it works almost all feature except database query.
(DB feature might not work with existing DBs because of differences of encoding in table columns and the difference of transcoding process.)

At least I used it without problems, however I think ViewVC developpers need more users' feedback. So I propose to make a '-devel' port.
Comment 9 Dan Langille freebsd_committer 2020-11-25 18:36:34 UTC
Created attachment 219974 [details]
add to pkg-plist of 2020-10-07 06:22 UTC patch

I have uploaded a patch based on the '2020-10-07 06:22 UTC' patch.  It adds to the pkg-plist file based on `poudriere testport` results.

I am happy to commit devel/viewvc-devel
Comment 10 Dan Langille freebsd_committer 2020-11-25 18:44:02 UTC
Created attachment 219975 [details]
patch with fixed pkg-plist and mention of GNU diff in .conf file

Add the .conf patch from 247804
Comment 11 commit-hook freebsd_committer 2020-11-25 19:29:48 UTC
A commit references this bug:

Author: dvl
Date: Wed Nov 25 19:29:37 UTC 2020
New revision: 556303
URL: https://svnweb.freebsd.org/changeset/ports/556303

  Add devel/viewvc-devel which uses Python 3

  The original PR is from Robert William Vesterman but the bulk of this patch
  comes from Yasuhito FUTATSUKI <freebsd-bug-report-yf@yf.bsdclub.org>

  PR:		247161,247804
  Submitted by:	Robert William Vesterman <bob@vesterman.com>,Yasuhito FUTATSUKI <freebsd-bug-report-yf@yf.bsdclub.org>
  Approved by:	maintainer timeout (7 weeks)

Comment 12 Dan Langille freebsd_committer 2020-11-25 19:32:21 UTC
Thank you all.