SVN on Synology

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

SVN on Synology

Alan Fry
Hello.  

I'm interested in building a package for Synology.  Apparently the Synology version was abandoned (I did email them, they would not share who was maintaining it... so I couldn't get what was already done and move it forward).

That said, I'm a software developer... however all my experience is in the Windows world.  

I'd like to take on building SVN and creating the Synology package, but I'm completely lost on the linux tribal knowledge needed to do this.

That said, I had posted in the user list, and someone mentioned that there was a need for some Windows help?  Maybe I could take that on first, to learn enough about the build process for SVN?

Thank you in advance, Terry.
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Nathan Hartman
On Mon, Aug 17, 2020 at 2:21 PM Alan Fry <[hidden email]> wrote:

>
> Hello.
>
> I'm interested in building a package for Synology.  Apparently the Synology version was abandoned (I did email them, they would not share who was maintaining it... so I couldn't get what was already done and move it forward).
>
> That said, I'm a software developer... however all my experience is in the Windows world.
>
> I'd like to take on building SVN and creating the Synology package, but I'm completely lost on the linux tribal knowledge needed to do this.
>
> That said, I had posted in the user list, and someone mentioned that there was a need for some Windows help?  Maybe I could take that on first, to learn enough about the build process for SVN?

Hi Terry,

Based on some quick searches, it looks like the Synology NAS is an
ARM-based machine and runs a Linux distro which is Debian-based and
customized by Synology. Assuming I'm correct (let me know if not),
that tells me that the build should be done on an ARM-based machine
(which might be the NAS itself).

Does Synology provide any documentation or examples to help software
packagers? One thing you'll need to know in particular is whether a
package for Synology is really just a Debian ".deb" package for APT,
perhaps with some special sauce added to provide a one-click install
icon or something. If it is, then a package for another Debian-based
distro might be a starting point.

If you're not comfortable with Linux yet, you might want to experiment
with it on a virtual machine first, to reduce the risk of messing up
your NAS with a wrong administrative command. With a virtual machine,
you could also practice building SVN on Linux.

Regarding Windows, yes, we are rather low on Windows developers, and
any help is very much appreciated. If you're looking for specifics,
just ask; there's plenty to do around here. We're all volunteers, so
obviously you choose how little or how much involvement you'd like.

Since you're a Windows developer, getting SVN building on Windows
might be a good first step to get acquainted in an environment you
know. If later on you wish to hack on SVN on Windows, having a working
build environment will be helpful for that too. :-)

The canonical documentation of how to build SVN is in the INSTALL
file. You can read the latest revision online at [1] or find it in any
SVN release zip file or tarball. Unfortunately the Windows sections
are a little dated, so there's a collection of Windows build notes in
the email thread archived at [2]. I think I gave you that second link
before; it documents manual steps to build SVN's dependencies on
Windows but stops just before building SVN itself. I recommend using
the email thread to build the dependencies as it's more current, and
follow INSTALL for the build of SVN itself.

Hope this is helpful... Feel free to ask questions anytime.

Cheers,
Nathan

[1] https://svn.apache.org/repos/asf/subversion/trunk/INSTALL

[2] https://lists.apache.org/thread.html/r59a30aabaab7bf69effa909b331eaa177418325280ea25859e8fa294%40%3Cdev.subversion.apache.org%3E
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Johan Corveleyn-3
On Tue, Aug 18, 2020 at 5:19 AM Nathan Hartman <[hidden email]> wrote:

>
> On Mon, Aug 17, 2020 at 2:21 PM Alan Fry <[hidden email]> wrote:
> >
> > Hello.
> >
> > I'm interested in building a package for Synology.  Apparently the Synology version was abandoned (I did email them, they would not share who was maintaining it... so I couldn't get what was already done and move it forward).
> >
> > That said, I'm a software developer... however all my experience is in the Windows world.
> >
> > I'd like to take on building SVN and creating the Synology package, but I'm completely lost on the linux tribal knowledge needed to do this.
> >
> > That said, I had posted in the user list, and someone mentioned that there was a need for some Windows help?  Maybe I could take that on first, to learn enough about the build process for SVN?
>
> Hi Terry,
>
> Based on some quick searches, it looks like the Synology NAS is an
> ARM-based machine and runs a Linux distro which is Debian-based and
> customized by Synology. Assuming I'm correct (let me know if not),
> that tells me that the build should be done on an ARM-based machine
> (which might be the NAS itself).
>
> Does Synology provide any documentation or examples to help software
> packagers? One thing you'll need to know in particular is whether a
> package for Synology is really just a Debian ".deb" package for APT,
> perhaps with some special sauce added to provide a one-click install
> icon or something. If it is, then a package for another Debian-based
> distro might be a starting point.
>
> If you're not comfortable with Linux yet, you might want to experiment
> with it on a virtual machine first, to reduce the risk of messing up
> your NAS with a wrong administrative command. With a virtual machine,
> you could also practice building SVN on Linux.
>
> Regarding Windows, yes, we are rather low on Windows developers, and
> any help is very much appreciated. If you're looking for specifics,
> just ask; there's plenty to do around here. We're all volunteers, so
> obviously you choose how little or how much involvement you'd like.
>
> Since you're a Windows developer, getting SVN building on Windows
> might be a good first step to get acquainted in an environment you
> know. If later on you wish to hack on SVN on Windows, having a working
> build environment will be helpful for that too. :-)
>
> The canonical documentation of how to build SVN is in the INSTALL
> file. You can read the latest revision online at [1] or find it in any
> SVN release zip file or tarball. Unfortunately the Windows sections
> are a little dated, so there's a collection of Windows build notes in
> the email thread archived at [2]. I think I gave you that second link
> before; it documents manual steps to build SVN's dependencies on
> Windows but stops just before building SVN itself. I recommend using
> the email thread to build the dependencies as it's more current, and
> follow INSTALL for the build of SVN itself.
>
> Hope this is helpful... Feel free to ask questions anytime.
>
> Cheers,
> Nathan
>
> [1] https://svn.apache.org/repos/asf/subversion/trunk/INSTALL
>
> [2] https://lists.apache.org/thread.html/r59a30aabaab7bf69effa909b331eaa177418325280ea25859e8fa294%40%3Cdev.subversion.apache.org%3E

There was another tangent from that last mail-thread, that for some
reason isn't shown together with the original thread (neither in my
gmail client nor in lists.aparche.org when you open the threaded view
of that post). Referencing it here for completeness:

https://lists.apache.org/thread.html/r9792f252fb45ec94eb188689ea76d3594224c228a595aae4ddb592a7%40%3Cdev.subversion.apache.org%3E

I'm afraid I have lost momentum a bit, so these bits and pieces are
the most recent information about the Windows build (mainly of the
dependencies) we have right now AFAIK. I think a first step might be
to go through these notes again, test them on a new setup, and
consolidate them in our documentation (and from there maybe work on an
updated script that can do part of the work for you, like [3] used to
do at some point).

BTW: since that thread I've started another build of the dependencies,
for 64-bit building on Windows (starting with httpd etc). I have some
scrappy notes, but the gist is that I started with a CMake build for
httpd (after googling a bit), which went very well, but then ran
aground because the SVN build expects some apr and apr-util artifacts
in other places ... so I had to repeat the apr and apr-util builds
with the VS "sln" or "vcxproj" files (after jumping through some
hoops) to get the needed artifacts for the SVN build. This was quite
tragic because the cmake build of httpd was so easy. It might be
worthwhile to investigate making the SVN build on Windows more
flexible so that it can link with a cmake-only-built httpd (with apr
and apr-util). Anyway, I don't have time right now to dig into it
myself, so I'm just throwing it out here as a suggestion.

All help is very welcome :-). Be it with the Windows build, building
on Synology, or something else.

[3] http://svn.apache.org/repos/asf/subversion/trunk/tools/dev/build-svn-deps-win.pl

--
Johan
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Daniel Sahlberg
Den tis 18 aug. 2020 kl 10:27 skrev Johan Corveleyn <[hidden email]>:
On Tue, Aug 18, 2020 at 5:19 AM Nathan Hartman <[hidden email]> wrote:
>
> On Mon, Aug 17, 2020 at 2:21 PM Alan Fry <[hidden email]> wrote:
> >
> > Hello.
> >
> > I'm interested in building a package for Synology.  Apparently the Synology version was abandoned (I did email them, they would not share who was maintaining it... so I couldn't get what was already done and move it forward).
> >
> > That said, I'm a software developer... however all my experience is in the Windows world.
> >
> > I'd like to take on building SVN and creating the Synology package, but I'm completely lost on the linux tribal knowledge needed to do this.
> >
> > That said, I had posted in the user list, and someone mentioned that there was a need for some Windows help?  Maybe I could take that on first, to learn enough about the build process for SVN?
>
> Hi Terry,
>
> Based on some quick searches, it looks like the Synology NAS is an
> ARM-based machine and runs a Linux distro which is Debian-based and
> customized by Synology. Assuming I'm correct (let me know if not),
> that tells me that the build should be done on an ARM-based machine
> (which might be the NAS itself).
>
> Does Synology provide any documentation or examples to help software
> packagers? One thing you'll need to know in particular is whether a
> package for Synology is really just a Debian ".deb" package for APT,
> perhaps with some special sauce added to provide a one-click install
> icon or something. If it is, then a package for another Debian-based
> distro might be a starting point.
>
> If you're not comfortable with Linux yet, you might want to experiment
> with it on a virtual machine first, to reduce the risk of messing up
> your NAS with a wrong administrative command. With a virtual machine,
> you could also practice building SVN on Linux.
>
> Regarding Windows, yes, we are rather low on Windows developers, and
> any help is very much appreciated. If you're looking for specifics,
> just ask; there's plenty to do around here. We're all volunteers, so
> obviously you choose how little or how much involvement you'd like.
>
> Since you're a Windows developer, getting SVN building on Windows
> might be a good first step to get acquainted in an environment you
> know. If later on you wish to hack on SVN on Windows, having a working
> build environment will be helpful for that too. :-)
>
> The canonical documentation of how to build SVN is in the INSTALL
> file. You can read the latest revision online at [1] or find it in any
> SVN release zip file or tarball. Unfortunately the Windows sections
> are a little dated, so there's a collection of Windows build notes in
> the email thread archived at [2]. I think I gave you that second link
> before; it documents manual steps to build SVN's dependencies on
> Windows but stops just before building SVN itself. I recommend using
> the email thread to build the dependencies as it's more current, and
> follow INSTALL for the build of SVN itself.
>
> Hope this is helpful... Feel free to ask questions anytime.
>
> Cheers,
> Nathan
>
> [1] https://svn.apache.org/repos/asf/subversion/trunk/INSTALL
>
> [2] https://lists.apache.org/thread.html/r59a30aabaab7bf69effa909b331eaa177418325280ea25859e8fa294%40%3Cdev.subversion.apache.org%3E

There was another tangent from that last mail-thread, that for some
reason isn't shown together with the original thread (neither in my
gmail client nor in lists.aparche.org when you open the threaded view
of that post). Referencing it here for completeness:

https://lists.apache.org/thread.html/r9792f252fb45ec94eb188689ea76d3594224c228a595aae4ddb592a7%40%3Cdev.subversion.apache.org%3E

I'm afraid I have lost momentum a bit, so these bits and pieces are
the most recent information about the Windows build (mainly of the
dependencies) we have right now AFAIK. I think a first step might be
to go through these notes again, test them on a new setup, and
consolidate them in our documentation (and from there maybe work on an
updated script that can do part of the work for you, like [3] used to
do at some point).

BTW: since that thread I've started another build of the dependencies,
for 64-bit building on Windows (starting with httpd etc). I have some
scrappy notes, but the gist is that I started with a CMake build for
httpd (after googling a bit), which went very well, but then ran
aground because the SVN build expects some apr and apr-util artifacts
in other places ... so I had to repeat the apr and apr-util builds
with the VS "sln" or "vcxproj" files (after jumping through some
hoops) to get the needed artifacts for the SVN build. This was quite
tragic because the cmake build of httpd was so easy. It might be
worthwhile to investigate making the SVN build on Windows more
flexible so that it can link with a cmake-only-built httpd (with apr
and apr-util). Anyway, I don't have time right now to dig into it
myself, so I'm just throwing it out here as a suggestion.

All help is very welcome :-). Be it with the Windows build, building
on Synology, or something else.

[3] http://svn.apache.org/repos/asf/subversion/trunk/tools/dev/build-svn-deps-win.pl

--
Johan 

I'm also mostly Windows-based although so far I've only built Subversion on Linux, but it's on my todo list to build on Windows as well. In the past I've built TortoiseSVN, which also builds all Subversion client tools, and that's both well documented and quite easy. Maybe that could be a starting point (even if licenses might prevent a direct copy).

Kind regards,
Daniel
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Daniel Shahaf-2
In reply to this post by Nathan Hartman
Nathan Hartman wrote on Mon, 17 Aug 2020 23:19 -0400:
> Since you're a Windows developer, getting SVN building on Windows
> might be a good first step to get acquainted in an environment you
> know.

I'm not so sure about this, actually.  The Windows and non-Windows build
processes have little in common beyond the names of dependency packages
that should be installed.  Furthermore, the non-Windows build should
usually take advantage of $distro's facilities, which only makes it more
different to the Windows build.  (E.g., there's no Windows equivalent of
«apt-get build-dep subversion».)

Operationally, I second Nathan's idea of first getting a Linux VM and
building on that for practice.  The distro should ideally be Synology,
or failing that, whatever Synology is based on (check /etc/os-release
and /etc/apt/sources.list* (sic) on the NAS).

We _would_ welcome help with the Windows build, of course; it's just
that knowing how to build on Windows isn't going to acquaint you with
building on Linux.  For that, you'll learn more from building some
random package with few dependencies — say, rsync — on Linux.

Separately: What problem are you trying to solve?  Why are you
looking into building your own packages?

Cheers,

Daniel
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Alan Fry
In reply to this post by Nathan Hartman
This time, to the whole group.

On Wed, Aug 19, 2020 at 1:45 PM Alan Fry <[hidden email]> wrote:


On Mon, Aug 17, 2020 at 11:19 PM Nathan Hartman <[hidden email]> wrote:

Hi Terry,

Based on some quick searches, it looks like the Synology NAS is an
ARM-based machine and runs a Linux distro which is Debian-based and
customized by Synology. Assuming I'm correct (let me know if not),
that tells me that the build should be done on an ARM-based machine
(which might be the NAS itself).

Hello Nathan (yes email says Alan, I use this account for lists).

I did some research on this.  I assumed the same as you did, I'd build on the NAS itself, but Synology has a toolkit which describes how to make the various targets (ARM and some others they use, including intel) for the Synology package.  This is done with cross compiling from what I have read.
 

Does Synology provide any documentation or examples to help software
packagers? One thing you'll need to know in particular is whether a
package for Synology is really just a Debian ".deb" package for APT,
perhaps with some special sauce added to provide a one-click install
icon or something. If it is, then a package for another Debian-based
distro might be a starting point.

Good question, I'll see if I can get some answers on this.  Again, not from the Linux world :). 

If you're not comfortable with Linux yet, you might want to experiment
with it on a virtual machine first, to reduce the risk of messing up
your NAS with a wrong administrative command. With a virtual machine,
you could also practice building SVN on Linux.

Yes, I built a VM with Ubuntu installed into it.  I've used linux off/on over the years, but nothing more than very simple work.  I actually tried to build SVN, pulled the tarball down and followed the directions ... but I came to a point where I decided to stop and regroup. 

Regarding Windows, yes, we are rather low on Windows developers, and
any help is very much appreciated. If you're looking for specifics,
just ask; there's plenty to do around here. We're all volunteers, so
obviously you choose how little or how much involvement you'd like.

I'm thinking that's a great way to learn the concepts of the build first, then I can learn the Linux pieces after.  
 

Since you're a Windows developer, getting SVN building on Windows
might be a good first step to get acquainted in an environment you
know. If later on you wish to hack on SVN on Windows, having a working
build environment will be helpful for that too. :-)

I've always found that the setup/config so you can actually develop something is the harder part :).
 

The canonical documentation of how to build SVN is in the INSTALL
file. You can read the latest revision online at [1] or find it in any
SVN release zip file or tarball. Unfortunately the Windows sections
are a little dated, so there's a collection of Windows build notes in
the email thread archived at [2]. I think I gave you that second link
before; it documents manual steps to build SVN's dependencies on
Windows but stops just before building SVN itself. I recommend using
the email thread to build the dependencies as it's more current, and
follow INSTALL for the build of SVN itself.

Hope this is helpful... Feel free to ask questions anytime.

Thanks Nathan, I'll pull the INSTALL file, you had sent me the thread about Windows development as well, I have that.

A couple basic questions:

For windows, I've been in the Visual Studio world for a while.  I can do the build work in VS if that provides value, or I can do it in gcc and whatever tools that are prefered.  It's basically irrelevant to me, I don't know enough to know which dev platform would be helpful.
 

Cheers,
Nathan

[1] https://svn.apache.org/repos/asf/subversion/trunk/INSTALL

[2] https://lists.apache.org/thread.html/r59a30aabaab7bf69effa909b331eaa177418325280ea25859e8fa294%40%3Cdev.subversion.apache.org%3E
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Alan Fry
In reply to this post by Daniel Shahaf-2

Alan Fry wrote on Wed, 19 Aug 2020 13:52 -0400:
> On Tue, Aug 18, 2020 at 7:28 AM Daniel Shahaf <[hidden email]>
> wrote:
>
> > Nathan Hartman wrote on Mon, 17 Aug 2020 23:19 -0400: 
> > > Since you're a Windows developer, getting SVN building on Windows
> > > might be a good first step to get acquainted in an environment you
> > > know. 
> >
> > I'm not so sure about this, actually.  The Windows and non-Windows build
> > processes have little in common beyond the names of dependency packages
> > that should be installed.  Furthermore, the non-Windows build should
> > usually take advantage of $distro's facilities, which only makes it more
> > different to the Windows build.  (E.g., there's no Windows equivalent of
> > «apt-get build-dep subversion».)
> > 
>
> Synology has a package toolkit, which I'm diving into.  It's interesting,
> it seems they cross-compile to create their packages.
>
>
> >
> > Operationally, I second Nathan's idea of first getting a Linux VM and
> > building on that for practice.  The distro should ideally be Synology,
> > or failing that, whatever Synology is based on (check /etc/os-release
> > and /etc/apt/sources.list* (sic) on the NAS).
> > 
>
> Got that, I built a Ubuntu machine in VirtualBox and I can get around
> fairly easily.  I did try to build SVN, but... didn't get far.
>
>
> >
> > We _would_ welcome help with the Windows build, of course; it's just
> > that knowing how to build on Windows isn't going to acquaint you with
> > building on Linux.  For that, you'll learn more from building some
> > random package with few dependencies — say, rsync — on Linux.
> > 
>
> I think the big challenge for myself is just learning enough to build the
> targets.  Synology has various processors, ARM etc, and I'd have to build
> (effectively) SVN for all of Synology's hardware.  I'm assuming the install
> package when run figures out which one to actually install.  Synology has a
> SDK for all this, which again, I'm looking into.
>
>
> >
> > Separately: What problem are you trying to solve?  Why are you
> > looking into building your own packages?
> > 
>
> Honestly... I have SVN on my NAS... and I upgraded, and happen to notice
> that the SVN pkg was rather old.  I reached out to Synology and they
> confirmed that the third party that created those packages wasn't producing
> anymore.
>
> I probably could take the intel version (since my new Synology NAS is intel
> based) and hack it, but that fixes just my NAS.  I could do other methods,
> but I like the idea that the NAS has SVN running 24x7.
>
>
> >
> > Cheers,
> >
> > Daniel
> > 

Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Alan Fry
In reply to this post by Johan Corveleyn-3
Hello Johan.

> [1] https://svn.apache.org/repos/asf/subversion/trunk/INSTALL
>
> [2] https://lists.apache.org/thread.html/r59a30aabaab7bf69effa909b331eaa177418325280ea25859e8fa294%40%3Cdev.subversion.apache.org%3E

There was another tangent from that last mail-thread, that for some
reason isn't shown together with the original thread (neither in my
gmail client nor in lists.aparche.org when you open the threaded view
of that post). Referencing it here for completeness:

https://lists.apache.org/thread.html/r9792f252fb45ec94eb188689ea76d3594224c228a595aae4ddb592a7%40%3Cdev.subversion.apache.org%3E

I'm afraid I have lost momentum a bit, so these bits and pieces are
the most recent information about the Windows build (mainly of the
dependencies) we have right now AFAIK. I think a first step might be
to go through these notes again, test them on a new setup, and
consolidate them in our documentation (and from there maybe work on an
updated script that can do part of the work for you, like [3] used to
do at some point).

That's exactly where I am.  Starting from a clean Windows box, I can go through all this and get a list of manual instructions, document those, and that becomes the template to automate.  Justcurious, for windows development, is it Visual Studio, or ported Gnu compliers etc?
 

BTW: since that thread I've started another build of the dependencies,
for 64-bit building on Windows (starting with httpd etc). I have some
scrappy notes, but the gist is that I started with a CMake build for
httpd (after googling a bit), which went very well, but then ran
aground because the SVN build expects some apr and apr-util artifacts
in other places ... so I had to repeat the apr and apr-util builds
with the VS "sln" or "vcxproj" files (after jumping through some
hoops) to get the needed artifacts for the SVN build. This was quite
tragic because the cmake build of httpd was so easy. It might be
worthwhile to investigate making the SVN build on Windows more
flexible so that it can link with a cmake-only-built httpd (with apr
and apr-util). Anyway, I don't have time right now to dig into it
myself, so I'm just throwing it out here as a suggestion.

All help is very welcome :-). Be it with the Windows build, building
on Synology, or something else.

[3] http://svn.apache.org/repos/asf/subversion/trunk/tools/dev/build-svn-deps-win.pl

Thanks so much.  Work is insanely busy for Covid, but I foresee some time coming.  RIght now, I'm cycle-stealing time... trying to read all this.
 


--
Johan
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Johan Corveleyn-3
On Mon, Aug 24, 2020 at 9:54 PM Alan Fry <[hidden email]> wrote:

>
> Hello Johan.
>>
>>
>> > [1] https://svn.apache.org/repos/asf/subversion/trunk/INSTALL
>> >
>> > [2] https://lists.apache.org/thread.html/r59a30aabaab7bf69effa909b331eaa177418325280ea25859e8fa294%40%3Cdev.subversion.apache.org%3E
>>
>> There was another tangent from that last mail-thread, that for some
>> reason isn't shown together with the original thread (neither in my
>> gmail client nor in lists.aparche.org when you open the threaded view
>> of that post). Referencing it here for completeness:
>>
>> https://lists.apache.org/thread.html/r9792f252fb45ec94eb188689ea76d3594224c228a595aae4ddb592a7%40%3Cdev.subversion.apache.org%3E
>>
>> I'm afraid I have lost momentum a bit, so these bits and pieces are
>> the most recent information about the Windows build (mainly of the
>> dependencies) we have right now AFAIK. I think a first step might be
>> to go through these notes again, test them on a new setup, and
>> consolidate them in our documentation (and from there maybe work on an
>> updated script that can do part of the work for you, like [3] used to
>> do at some point).
>
>
> That's exactly where I am.  Starting from a clean Windows box, I can go through all this and get a list of manual instructions, document those, and that becomes the template to automate.  Justcurious, for windows development, is it Visual Studio, or ported Gnu compliers etc?

It's all Visual Studio. The most difficult part of the SVN build on
Windows is not the build of Subversion itself (which is quite
straightforward), but building all its dependencies (as I tried to
describe in the above mail threads).

Anyway, I do think Daniel Shahaf is right: learning how to build SVN
on Windows will probably not help you much for learning how to build
it on Linux / Synology. As he says: "We _would_ welcome help with the
Windows build, of course; it's just that knowing how to build on
Windows isn't going to acquaint you with building on Linux."

But feel free to approach this any way you see fit of course :-).

--
Johan
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Daniel Shahaf-2
In reply to this post by Alan Fry
Alan Fry wrote on Mon, 24 Aug 2020 15:46 -0400:

> This time, to the whole group.
>
> On Wed, Aug 19, 2020 at 1:45 PM Alan Fry <[hidden email]> wrote:
>
> >
> >
> > On Mon, Aug 17, 2020 at 11:19 PM Nathan Hartman <[hidden email]>
> > wrote:
> >  
> >>
> >> Hi Terry,
> >>
> >> Based on some quick searches, it looks like the Synology NAS is an
> >> ARM-based machine and runs a Linux distro which is Debian-based and
> >> customized by Synology. Assuming I'm correct (let me know if not),
> >> that tells me that the build should be done on an ARM-based machine
> >> (which might be the NAS itself).
> >>  
> >
> > Hello Nathan (yes email says Alan, I use this account for lists).
> >
> > I did some research on this.  I assumed the same as you did, I'd build on
> > the NAS itself, but Synology has a toolkit which describes how to make the
> > various targets (ARM and some others they use, including intel) for the
> > Synology package.  This is done with cross compiling from what I have read.
> >
> >  
> >>
> >> Does Synology provide any documentation or examples to help software
> >> packagers? One thing you'll need to know in particular is whether a
> >> package for Synology is really just a Debian ".deb" package for APT,
> >> perhaps with some special sauce added to provide a one-click install
> >> icon or something. If it is, then a package for another Debian-based
> >> distro might be a starting point.
> >>  
> >
> > Good question, I'll see if I can get some answers on this.  Again, not
> > from the Linux world :).

I disagree with the recommendation to check whether Synology's packages
are .deb packages.  .deb files are just ar(1) archives, but in order to
build a package there is a lot more to know than just what file format
to use.  For example, .deb files embed executable code that runs at
installation time, and a distro may have its .deb packages do
distro-specific things in those hooks.  Therefore, I recommend that you
focus on finding the documentation for packagers, as Nathan wrote at
the start.

.deb files are in general not portable to distro versions other than
the one they were built for: something built for Debian 9 can't be
assumed to be installable even on Debian 10.  They _might_ work in
other cases, but then again, they might not.

> >>
> >> If you're not comfortable with Linux yet, you might want to experiment
> >> with it on a virtual machine first, to reduce the risk of messing up
> >> your NAS with a wrong administrative command. With a virtual machine,
> >> you could also practice building SVN on Linux.
> >>  
> >
> > Yes, I built a VM with Ubuntu installed into it.  I've used linux off/on
> > over the years, but nothing more than very simple work.  I actually tried
> > to build SVN, pulled the tarball down and followed the directions ... but I
> > came to a point where I decided to stop and regroup.

You might want to post more details (what exactly you did, what the
output was, and what you don't understand about it).

> >> Since you're a Windows developer, getting SVN building on Windows
> >> might be a good first step to get acquainted in an environment you
> >> know. If later on you wish to hack on SVN on Windows, having a working
> >> build environment will be helpful for that too. :-)
> >>  
> >
> > I've always found that the setup/config so you can actually develop
> > something is the harder part :).

That's called writing a hello world program.
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Nathan Hartman
On Wed, Aug 26, 2020 at 6:21 AM Daniel Shahaf <[hidden email]> wrote:

> I disagree with the recommendation to check whether Synology's packages
> are .deb packages.  .deb files are just ar(1) archives, but in order to
> build a package there is a lot more to know than just what file format
> to use.  For example, .deb files embed executable code that runs at
> installation time, and a distro may have its .deb packages do
> distro-specific things in those hooks.  Therefore, I recommend that you
> focus on finding the documentation for packagers, as Nathan wrote at
> the start.
>
> .deb files are in general not portable to distro versions other than
> the one they were built for: something built for Debian 9 can't be
> assumed to be installable even on Debian 10.  They _might_ work in
> other cases, but then again, they might not.

Acknowledged. Thanks for pointing this out.

Terry, having given it further thought, I agree with Daniel and Johan
that my earlier suggestion to try a Windows build won't be much help
for this endeavor. My thinking was to get familiar with the codebase
and dependencies on the platform you know best, but the build process
is too different.

> > > I've always found that the setup/config so you can actually develop
> > > something is the harder part :).
>
> That's called writing a hello world program.

That's a good reminder. It's easy to get ahead of ourselves, but
perhaps the path to getting Subversion on the NAS should begin by
taking a step back and getting the classic "hello world" program
running on the NAS. Once it works, you'll know that many things have
gone right. From there, perhaps try to package the "hello world"
program for the NAS, the idea being to learn the basics of packaging,
without distractions from a complex codebase and dependencies.

Nathan
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Alan Fry
In reply to this post by Johan Corveleyn-3
Thanks Johan,

I'm going to dig into those threads after some vacation time I have and then decide what the first start is. 

At this point, I think I will split the two efforts:  helping with the windows platform builds (where I can provide value faster .. hopefully) and then the Synology packaging effort (where I'm just starting).

Last quick question, and forgive me since I don't know anything about open source development processes, would it be helpful to create and maintain a Visual Studio project, or do you just want the setup instructions on how to make that VS project?

On Tue, Aug 25, 2020 at 3:05 AM Johan Corveleyn <[hidden email]> wrote:


It's all Visual Studio. The most difficult part of the SVN build on
Windows is not the build of Subversion itself (which is quite
straightforward), but building all its dependencies (as I tried to
describe in the above mail threads).

Anyway, I do think Daniel Shahaf is right: learning how to build SVN
on Windows will probably not help you much for learning how to build
it on Linux / Synology. As he says: "We _would_ welcome help with the
Windows build, of course; it's just that knowing how to build on
Windows isn't going to acquaint you with building on Linux."

But feel free to approach this any way you see fit of course :-).

--
Johan
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Alan Fry
In reply to this post by Nathan Hartman


Terry, having given it further thought, I agree with Daniel and Johan
that my earlier suggestion to try a Windows build won't be much help
for this endeavor. My thinking was to get familiar with the codebase
and dependencies on the platform you know best, but the build process
is too different.

Agreed.  I'm going to split it into two efforts: Synology pkg & build a windows SVN to help with that effort. 
 

> > > I've always found that the setup/config so you can actually develop
> > > something is the harder part :).
>
> That's called writing a hello world program.

That's a good reminder. It's easy to get ahead of ourselves, but
perhaps the path to getting Subversion on the NAS should begin by
taking a step back and getting the classic "hello world" program
running on the NAS. Once it works, you'll know that many things have
gone right. From there, perhaps try to package the "hello world"
program for the NAS, the idea being to learn the basics of packaging,
without distractions from a complex codebase and dependencies.



Also agreed, that's the next step.   
Reply | Threaded
Open this post in threaded view
|

Re: SVN on Synology

Daniel Shahaf-2
In reply to this post by Alan Fry
Alan Fry wrote on Fri, 28 Aug 2020 12:18 -0400:
> Last quick question, and forgive me since I don't know anything about open
> source development processes,

See https://www.producingoss.com/, then.  The book draws on the
author's experience on this very mailing list.

Another standard reference is https://www.chiark.greenend.org.uk/~sgtatham/bugs.html.

> would it be helpful to create and maintain a
> Visual Studio project, or do you just want the setup instructions on how to
> make that VS project?

The gen-make.py script generates VS projects.  That should be
documented in INSTALL.  Patches welcome ☺ (both to INSTALL and to the
script)

Cheers,

Daniel

P.S.  For orientation, gen-make.py is actually used by the Unix-like
build as well, though it's not generally run directly.  (I only ever
run it directly when I've created a new C file.  Running it manually
regenerates build-outputs.mk, which in turn allows the build to succeed.
Is this trick documented in INSTALL or HACKING?)