Re: git vs dfsg tarballs

2018-12-07 Thread Paul Wise
On Fri, Dec 7, 2018 at 7:48 PM Enrico Weigelt wrote:

> Have there been any cases where those files have been in the
> upstream VCS ? I don't recall any such case.

I assume most of the rejects from NEW would have this issue.

> For the case where certain parts shouldn't be built/shipped due to
> policy, this can - and IMHO should - be handled with changes within
> the VCS, instead of having tarballs laying around w/o any clear
> history and no indication how exactly it was created from upstream.

See Files-Excluded in Debian policy.

> Actually, since about a decade, I'm not doing any code changes outside
> git, and I'm building packages only directly from git. Frankly, I don't
> see any reason why that can't be the standard case.

The world is much less simple than that. There are people who don't
use version control systems, there are people who don't use git, there
are people who use version control systems that git cannot interface
with and there are people who invent new version control systems that
are meant to be better than git.

--
bye,
pabs

https://wiki.debian.org/PaulWise



Re: git vs dfsg tarballs

2018-12-07 Thread Wookey
On 2018-12-07 12:48 +0100, Enrico Weigelt, metux IT consult wrote:
> On 21.11.18 04:22, Paul Wise wrote:
> 
> Actually, since about a decade, I'm not doing any code changes outside
> git, and I'm building packages only directly from git. Frankly, I don't
> see any reason why that can't be the standard case.

Just because you like a tool doesn't mean everyone does. I know I
understand patches and tarballs much better than I understand git, so
I prefer to use the former.

To answer your original question about DFSG differences, the
difference between upstream and the DFSG is normally defined by
'Files-Excluded' in the copyright file and compression/name
transformations in the watch file. It is for my packages, anyway.

Wookey
-- 
Principal hats:  Linaro, Debian, Wookware, ARM
http://wookware.org/


signature.asc
Description: PGP signature


Re: git vs dfsg tarballs

2018-12-07 Thread Enrico Weigelt, metux IT consult
On 21.11.18 04:22, Paul Wise wrote:

> I don't think Andreas was talking about applying the DFSG but about
> files we don't have permission to distribute at all.

Have there been any cases where those files have been in the
upstream VCS ? I don't recall any such case.

For the case where certain parts shouldn't be built/shipped due to
policy, this can - and IMHO should - be handled with changes within
the VCS, instead of having tarballs laying around w/o any clear
history and no indication how exactly it was created from upstream.

Actually, since about a decade, I'm not doing any code changes outside
git, and I'm building packages only directly from git. Frankly, I don't
see any reason why that can't be the standard case.


--mtx

-- 
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
i...@metux.net -- +49-151-27565287



Re: git vs dfsg tarballs

2018-11-20 Thread Paul Wise
On Tue, Nov 20, 2018 at 6:50 PM Jonathan Dowland wrote:

> It was widely done on alioth (by pulling in upstream branches to git
> repos) and I imagine is common on Salsa, too. In practise we are not
> applying the DFSG to the content of the VCS, the wiki, or really much
> except the archive.

I don't think Andreas was talking about applying the DFSG but about
files we don't have permission to distribute at all.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise



Re: git vs dfsg tarballs

2018-11-20 Thread Jonathan Dowland

On Mon, Nov 19, 2018 at 08:17:03PM +0100, Andreas Metzler wrote:

the main reason for having +dfsg versions is that non-distributable
stuff is removed. Distributing these files in a Debian hosted GIT
repository would not be workable, would it?


It was widely done on alioth (by pulling in upstream branches to git
repos) and I imagine is common on Salsa, too. In practise we are not
applying the DFSG to the content of the VCS, the wiki, or really much
except the archive.

--

⢀⣴⠾⠻⢶⣦⠀
⣾⠁⢠⠒⠀⣿⡁ Jonathan Dowland
⢿⡄⠘⠷⠚⠋⠀ https://jmtd.net
⠈⠳⣄ Please do not CC me, I am subscribed to the list.



Re: git vs dfsg tarballs

2018-11-19 Thread Andreas Metzler
Enrico Weigelt, metux IT consult  wrote:
> I'm often seeing packagers directly putting dfsg'ed trees into their git
> repos, w/o any indication how the tree was actually created from the
> original releases.
[...]
> My preferred way (except for rare cases where upstream history is
> extremely huge - like mozilla stuff) would be just branching at the
> upstream's release tag and adding commits for removing the non-dfsg
> files ontop of that.
[...]

Hello,

the main reason for having +dfsg versions is that non-distributable
stuff is removed. Distributing these files in a Debian hosted GIT
repository would not be workable, would it?

cu Andreas
-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'



Re: git vs dfsg tarballs

2018-11-19 Thread Enrico Weigelt, metux IT consult
On 19.11.18 17:36, Ian Jackson wrote:

Hi,

> I am saying that for packages whose Debian maintainer follow those> 
> recommendations, much of what you want would be straightforward - or,>
anyway a lot easier.  So I was plugging my recommendations.
Unfortunately, those packages I'm coping w/ don't really follow that.

Kodi is an really unpleasant example:

* unclear orig<->dfsg relationship (I'll have to analyze them one by
  one and adapt my import scripts)
* very non-linear history (eg. new upstream trees, sometimes even
  completely unrelated branches, directly merged down into the deb
  branch)
* lot's of patches against non-existing files
* rules trying to touch missing source files/directories.

>> Here're some examples on how my deb branches look like:> > Not sure what you 
>> mean by `your deb branches',

Those who add the debian/* stuff, and possibly other patches.
In my model, they're always linear descendants of the corresponding
upstream release tag.

> but looking at what> Debian gives you:> >> * canonical ref names> > dgit 
> (dgit clone, dgit
fetch) will give you this, regardless of the> maintainer's behaviour.
hmm, looks like good start. But it doesn't really look easy to clone
from different distros and specific or yet unreleased versions.

and one of my main problems remains unresolved: linear history ontop
of the upstream's release tag.


--mtx

-- 
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
i...@metux.net -- +49-151-27565287



Re: git vs dfsg tarballs

2018-11-19 Thread Ian Jackson
Enrico Weigelt, metux IT consult writes ("Re: git vs dfsg tarballs"):
> On 19.11.18 13:52, Ian Jackson wrote:
> > I think that most of the workflows recommended in these manpages
> > 
> >   
> > https://manpages.debian.org/stretch-backports/dgit/dgit-maint-gbp.7.en.html
> >   
> > https://manpages.debian.org/stretch-backports/dgit/dgit-maint-merge.7.en.html
> >   
> > https://manpages.debian.org/stretch-backports/dgit/dgit-maint-debrebase.7.en.html
> 
> Yet complicated for me (especially regarding automating/CI).

I'm sorry, I think you have misunderstood my point.  I wasn't
suggesting that *you* should follow the recommendations in those
manpages.

I am saying that for packages whose Debian maintainer follow those
recommendations, much of what you want would be straightforward - or,
anyway a lot easier.  So I was plugging my recommendations.

I was also inviting comment from you as a downstream, if there are
ways recommendations (and tools such as dgit) could be improved.

> Here're some examples on how my deb branches look like:

Not sure what you mean by `your deb branches', but looking at what
Debian gives you:

> * canonical ref names

dgit (dgit clone, dgit fetch) will give you this, regardless of the
maintainer's behaviour.

> * always based on the corresponding upstream's release tag

A maintainer who uses dgit and follows the recommendations in the
dgit-maint-*(7) manpages will give you this.

So I think you should be plugging dgit to maintainers, like I am :-).

> * changes directly as git commits - no text-based patches whatsoever

dgit will pretty much give you this, regardless of the maintainer's
behavior, because it will automatically convert the `text based
patches' into git commits so the git commits are there.

> * generic changes below the deb-specific ones

Again, dgit will give you this.

> I'm currently helping myself w/ lots of mappings and import scripts,
> but I'd like to get rid of maintaining all these little pieces.

One of dgit's objectives is to make the work of downstreams easier.

Regards,
Ian.

-- 
Ian JacksonThese opinions are my own.

If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.



Re: git vs dfsg tarballs

2018-11-19 Thread Enrico Weigelt, metux IT consult
On 19.11.18 13:52, Ian Jackson wrote:

> Clearly the transformation on the *tree* can't be reversible because
> in the usual case it is deleting things.  So you'll need the history.

It certain can be, if you know the exact orig commit.
Maybe I wasn't really clear here: I wanna do a fully automatic import
into a git history (optimally, by just having package name and version).

> With most gitish workflows, the corresponding pre-dfsg upstream
> *commit* can be found with `git-merge-base', assuming you have some
> uploaded (or pushed) Debian commit and a suitable upstream branch.

It's not entirely trivial, if the maintainers are doing wild merges.
(eg. w/ kodi). Even worse: reconstructing the change history ontop
of some given upstream release is pretty complicated and manual.
Merging down from upstream into packaging branch (instead of just
a simple rebase) turns out as bad idea here.

>> My preferred way (except for rare cases where upstream history is
>> extremely huge - like mozilla stuff) would be just branching at the
>> upstream's release tag and adding commits for removing the non-dfsg
>> files ontop of that. From that branching the debianized branch,
>> where all patches are directly applied in git.
> 
> I think that most of the workflows recommended in these manpages
> 
>   https://manpages.debian.org/stretch-backports/dgit/dgit-maint-gbp.7.en.html
>   
> https://manpages.debian.org/stretch-backports/dgit/dgit-maint-merge.7.en.html
>   
> https://manpages.debian.org/stretch-backports/dgit/dgit-maint-debrebase.7.en.html

Yet complicated for me (especially regarding automating/CI).

Here're some examples on how my deb branches look like:

https://github.com/oss-qm/flatbuffers/commits/debian/maint-1.9.0
https://github.com/oss-qm/go/commits/debian/maint-1.11.1

* canonical ref names
* always based on the corresponding upstream's release tag
* changes directly as git commits - no text-based patches whatsoever
* generic changes below the deb-specific ones

While gbp can help a bit here and there, it still far away from an
fully-automated process.

I'm currently helping myself w/ lots of mappings and import scripts,
but I'd like to get rid of maintaining all these little pieces.


--mtx
-- 
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
i...@metux.net -- +49-151-27565287



Re: git vs dfsg tarballs

2018-11-19 Thread Ian Jackson
Enrico Weigelt, metux IT consult writes ("git vs dfsg tarballs"):
> Can we agree on some auomatically reproducable (and inversable)
> transformation process from orig to dfsg tree

Clearly the transformation on the *tree* can't be reversible because
in the usual case it is deleting things.  So you'll need the history.
With most gitish workflows, the corresponding pre-dfsg upstream
*commit* can be found with `git-merge-base', assuming you have some
uploaded (or pushed) Debian commit and a suitable upstream branch.

> My preferred way (except for rare cases where upstream history is
> extremely huge - like mozilla stuff) would be just branching at the
> upstream's release tag and adding commits for removing the non-dfsg
> files ontop of that. From that branching the debianized branch,
> where all patches are directly applied in git.

I think that most of the workflows recommended in these manpages

  https://manpages.debian.org/stretch-backports/dgit/dgit-maint-gbp.7.en.html
  https://manpages.debian.org/stretch-backports/dgit/dgit-maint-merge.7.en.html
  
https://manpages.debian.org/stretch-backports/dgit/dgit-maint-debrebase.7.en.html

ought to have the property I describe above, which I think is
sufficient for you ?

Ian.

-- 
Ian JacksonThese opinions are my own.

If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.



git vs dfsg tarballs

2018-11-19 Thread Enrico Weigelt, metux IT consult
Hi folks,


I'm often seeing packagers directly putting dfsg'ed trees into their git
repos, w/o any indication how the tree was actually created from the
original releases.

As I'm doing all patching exclusively via git (no text-based patches
anymore - adding my changes ontop the upstream release tag and then
rebasing for new releases), this (amongst other problems like
wild merges) is quite a challenge for efficient (heavily automatic)
handling.

Can we agree on some auomatically reproducable (and inversable)
transformation process from orig to dfsg tree

My preferred way (except for rare cases where upstream history is
extremely huge - like mozilla stuff) would be just branching at the
upstream's release tag and adding commits for removing the non-dfsg
files ontop of that. From that branching the debianized branch,
where all patches are directly applied in git.


--mtx


-- 
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
i...@metux.net -- +49-151-27565287