Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
I can't find any good reason. Case closed. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-187211753___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
Closed #55. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#event-559738017___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
I am inclined to reject this patch. The danger of missing patches unrecognised outweighs the benefit of using a svn for applying the patches in my opinion. Are there any use cases where using svn really gives a substantial improvement over other tools? --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-185607062___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
That's not for me to address. SVN doesn't report an error in applying patches when invoked with the `-q`option. You can invoke `%autosetup` with its `-v` option to ad 'verbosity'. See also [this post](http://mail-archives.apache.org/mod_mbox/subversion-dev/201602.mbox/%3C4451361.UxCNakeCms%40komputer%3E). --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-182863063___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
It can be applied also without support for compressed patches but it would be nice at least to show some error and fail build when somebody will try to use compressed patches with svn. Now no error is showed an build continues without applying patches. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-182856435___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
I suggest to stick with `%{1}` (for both `%__scm_apply_svn` and `%__scm_apply_quilt`) and go without compressed patches (well, `quilt` _does_ this internally). --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176660977___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
Another try with `<(cat)` instead of `%{1}`: Set **bash** as executing shell in the specfile ``` %prep %define _buildshell /bin/shell %autosetup -S svn ``` This produces the correct commands ``` + /bin/cat /home/andreas/Programming/RPM/SOURCES/0001-Fix-intermediate-bugs.patch + /usr/bin/svn patch -q /dev/fd/63 ``` but results in the error message ``` svn: E29: Can't set position pointer in file '/dev/fd/63': Illegal seek ``` --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176659948___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
Replacing `%__scm_apply_quilt(qp:m:)` according to http://mywiki.wooledge.org/Bashism from ``` %{__quilt} import %{-p:-p%{-p*}} %{1} && %{__quilt} push %{-q} ``` to ``` mkfifo debbuild.fifo; cat >debbuild.fifo &\ %{__quilt} import %{-p:-p%{-p*}} -P %{-m*} debbuild.fifo && %{__quilt} push %{-q}\ rm -f debbuild.fifo ``` works just fine (despite the horrible housekeeping). However, doing the same with `%__scm_apply_svn(qp:m:)` results in the error message "svn: E29: `/homr/andreas/.../debbuild.fifo` is not a file". --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176648616___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
Keyword "process substitution": http://mywiki.wooledge.org/Bashism --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176393161___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
@lkardos Thanks for the hint; that syntax was new to me. In a first attempt, it indeed works from the console with `quilt` and `.zip`ped patches. However, `<(cat)` seems to be **bash** syntax. Both **debbuild** and **rpmbuild** use `#!/bin/sh` as the executing shell interpreter, which – at least on my two systems – resolves to **dash** and results in a 'syntax error' at the opening parenthesis, when used in the `%__scm_apply_{quilt|svn}` macros. Manually running the scripts with **bash** works OK. Although I _could_ modify the script generation in **debbuild** to use `#!/bin/bash`, I don't know how easily **rpmbuild** could be modified accordingly. And, of course, using **bash** as executing shell would totally defeat the purpose of **dash** in the first place. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176278885___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
Also following works too: cat test.patch | svn patch /proc/self/fd/0 --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176227507___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
Are you really tried that because I tried following command in my test svn repository: cat test.patch | svn patch <(cat) and it worked. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176226064___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
No, `svn patch` _requires_ a genuine file as input argument. If it _would_ accept input from `STDIN`, the `%{uncompress:...}` macro already takes care of choosing the right programme, including `cat` for uncompressed patches. Just as with `quilt`, the pipe stream of `%{uncompress:...}` is simply thrown away. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176212875___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
Maybe instead of %{1} you can try <(cat) and maybe this will work also for compressed patches but I didn't tried that, just an idea. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55#issuecomment-176209706___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
> @@ -1120,6 +1122,23 @@ done \ > %{__patch} %{-p:-p%{-p*}} %{-q:-s}\ > %{__bzr} commit %{-q} -m %{-m*} > > +# Subversion > +%__scm_setup_svn(q)\ > +%{__svnadmin} create .svnrepos\ > +%{__svn} mkdir %{-q} -m "Create directory structure." > file://`pwd`/.svnrepos/trunk\ > +%{__svn} checkout %{-q} file://`pwd`/.svnrepos/trunk ./\ > +%{__svn} add %{-q} --force ./\ > +%{__svn} commit %{-q} -m "Initial import." && %{__svn} update %{-q} > + > +# Subversion 1.6 doesn't have its own command to apply patches > +#%__scm_apply_svn(qp:m:)\ Just added another commit that removes the 'old' version of `%__scm_apply_patch`. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55/files#r51121662___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
> @@ -1120,6 +1122,23 @@ done \ > %{__patch} %{-p:-p%{-p*}} %{-q:-s}\ > %{__bzr} commit %{-q} -m %{-m*} > > +# Subversion > +%__scm_setup_svn(q)\ > +%{__svnadmin} create .svnrepos\ > +%{__svn} mkdir %{-q} -m "Create directory structure." > file://`pwd`/.svnrepos/trunk\ > +%{__svn} checkout %{-q} file://`pwd`/.svnrepos/trunk ./\ > +%{__svn} add %{-q} --force ./\ > +%{__svn} commit %{-q} -m "Initial import." && %{__svn} update %{-q} > + > +# Subversion 1.6 doesn't have its own command to apply patches > +#%__scm_apply_svn(qp:m:)\ Then we really should be relying on `svn patch`, because that ensures all the available information in a patch produced by SVN would be able to be properly applied. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55/files#r51121051___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
> @@ -1120,6 +1122,23 @@ done \ > %{__patch} %{-p:-p%{-p*}} %{-q:-s}\ > %{__bzr} commit %{-q} -m %{-m*} > > +# Subversion > +%__scm_setup_svn(q)\ > +%{__svnadmin} create .svnrepos\ > +%{__svn} mkdir %{-q} -m "Create directory structure." > file://`pwd`/.svnrepos/trunk\ > +%{__svn} checkout %{-q} file://`pwd`/.svnrepos/trunk ./\ > +%{__svn} add %{-q} --force ./\ > +%{__svn} commit %{-q} -m "Initial import." && %{__svn} update %{-q} > + > +# Subversion 1.6 doesn't have its own command to apply patches > +#%__scm_apply_svn(qp:m:)\ Lacking a decent life example, I have to [look at the code](https://github.com/apache/subversion/blob/trunk/subversion/libsvn_client/patch.c#L254). So, it seems that `svn patch` indeed does 'special things' to files and their 'properties'. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55/files#r51120450___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
> @@ -1120,6 +1122,23 @@ done \ > %{__patch} %{-p:-p%{-p*}} %{-q:-s}\ > %{__bzr} commit %{-q} -m %{-m*} > > +# Subversion > +%__scm_setup_svn(q)\ > +%{__svnadmin} create .svnrepos\ > +%{__svn} mkdir %{-q} -m "Create directory structure." > file://`pwd`/.svnrepos/trunk\ > +%{__svn} checkout %{-q} file://`pwd`/.svnrepos/trunk ./\ > +%{__svn} add %{-q} --force ./\ > +%{__svn} commit %{-q} -m "Initial import." && %{__svn} update %{-q} > + > +# Subversion 1.6 doesn't have its own command to apply patches > +#%__scm_apply_svn(qp:m:)\ @ascherer Do patches generated by SVN support extended operations not supported by patch (such as changing permissions, ownership, etc.) like git-am patches do? If it does, then we probably want to use `svn patch`. If not, then I'd be okay with using standard `patch` instead. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55/files#r51117414___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
> @@ -1120,6 +1122,23 @@ done \ > %{__patch} %{-p:-p%{-p*}} %{-q:-s}\ > %{__bzr} commit %{-q} -m %{-m*} > > +# Subversion > +%__scm_setup_svn(q)\ > +%{__svnadmin} create .svnrepos\ > +%{__svn} mkdir %{-q} -m "Create directory structure." > file://`pwd`/.svnrepos/trunk\ > +%{__svn} checkout %{-q} file://`pwd`/.svnrepos/trunk ./\ > +%{__svn} add %{-q} --force ./\ > +%{__svn} commit %{-q} -m "Initial import." && %{__svn} update %{-q} > + > +# Subversion 1.6 doesn't have its own command to apply patches > +#%__scm_apply_svn(qp:m:)\ Personally, I'ld vote for including the 'old' version of `%__scm_apply_svn` for _all_ versions of subversion (using standard `patch` instead of `svn patch`). `svn patch` does _not_ support pipe input, so compressed patches – rare as they might be – are completely unsupported by the 'new' version of `%__scm_apply_svn`. (I have no idea if the AS project is willing to extend `svn patch` for piped input; the [relevant source code](https://github.com/apache/subversion/blob/trunk/subversion/libsvn_client/patch.c#L3725) looks quite inflexible in this respect.) --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55/files#r51117087___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
> @@ -1120,6 +1122,23 @@ done \ > %{__patch} %{-p:-p%{-p*}} %{-q:-s}\ > %{__bzr} commit %{-q} -m %{-m*} > > +# Subversion > +%__scm_setup_svn(q)\ > +%{__svnadmin} create .svnrepos\ > +%{__svn} mkdir %{-q} -m "Create directory structure." > file://`pwd`/.svnrepos/trunk\ > +%{__svn} checkout %{-q} file://`pwd`/.svnrepos/trunk ./\ > +%{__svn} add %{-q} --force ./\ > +%{__svn} commit %{-q} -m "Initial import." && %{__svn} update %{-q} > + > +# Subversion 1.6 doesn't have its own command to apply patches > +#%__scm_apply_svn(qp:m:)\ It might just be better to take out the stuff for SVN < 1.7, then. The vast majority of RPM based systems that have this macro improvement are unlikely to have older SVN binaries installed systemwide. A check in the autoconf script for SVN 1.7 or newer could probably be sufficient for this. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55/files#r51116182___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
> @@ -1120,6 +1122,23 @@ done \ > %{__patch} %{-p:-p%{-p*}} %{-q:-s}\ > %{__bzr} commit %{-q} -m %{-m*} > > +# Subversion > +%__scm_setup_svn(q)\ > +%{__svnadmin} create .svnrepos\ > +%{__svn} mkdir %{-q} -m "Create directory structure." > file://`pwd`/.svnrepos/trunk\ > +%{__svn} checkout %{-q} file://`pwd`/.svnrepos/trunk ./\ > +%{__svn} add %{-q} --force ./\ > +%{__svn} commit %{-q} -m "Initial import." && %{__svn} update %{-q} > + > +# Subversion 1.6 doesn't have its own command to apply patches > +#%__scm_apply_svn(qp:m:)\ The 'old' version is used on my standard computer with Kubuntu 12.04 and subversion 1.6.17, which has no `svn patch`. I have no idea how to check the version of subversion at this point. --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55/files#r51113657___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
Re: [Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
> @@ -1120,6 +1122,23 @@ done \ > %{__patch} %{-p:-p%{-p*}} %{-q:-s}\ > %{__bzr} commit %{-q} -m %{-m*} > > +# Subversion > +%__scm_setup_svn(q)\ > +%{__svnadmin} create .svnrepos\ > +%{__svn} mkdir %{-q} -m "Create directory structure." > file://`pwd`/.svnrepos/trunk\ > +%{__svn} checkout %{-q} file://`pwd`/.svnrepos/trunk ./\ > +%{__svn} add %{-q} --force ./\ > +%{__svn} commit %{-q} -m "Initial import." && %{__svn} update %{-q} > + > +# Subversion 1.6 doesn't have its own command to apply patches > +#%__scm_apply_svn(qp:m:)\ Why is this still here, just commented out? Do you plan to fix it in a way that would let it pick the correct set of commands based on the SVN version or something? --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55/files#r51106944___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint
[Rpm-maint] [rpm] Support Apache Subversion as SCM in the BUILD arena. (#55)
These macros were developed and tested with debbuild 16.1.7. See https://github.com/ascherer/debbuild for information. You can view, comment on, or merge this pull request online at: https://github.com/rpm-software-management/rpm/pull/55 -- Commit Summary -- * Support Apache Subversion as SCM in the BUILD arena. -- File Changes -- M macros.in (21) -- Patch Links -- https://github.com/rpm-software-management/rpm/pull/55.patch https://github.com/rpm-software-management/rpm/pull/55.diff --- Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/pull/55 ___ Rpm-maint mailing list Rpm-maint@lists.rpm.org http://lists.rpm.org/mailman/listinfo/rpm-maint