Bug 247161 - devel/viewvc: Changed to always use devel/subversion-lts?
Summary: devel/viewvc: Changed to always use devel/subversion-lts?
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Olli Hauer
Depends on:
Reported: 2020-06-11 09:41 UTC by Robert William Vesterman
Modified: 2020-07-06 13:14 UTC (History)
3 users (show)

See Also:

A patch for devel/viewvc to add experimental option "ALTSVN" (4.11 KB, patch)
2020-07-06 13:13 UTC, Yasuhito FUTATSUKI
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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....