[Date Prev][Date Next] [Thread Prev][Thread Next]
Re: Request permission to break always use system libs rule for asc-2.0
- From: Toshio Kuratomi <a badger gmail com>
- To: Development discussions related to Fedora <fedora-devel-list redhat com>
- Subject: Re: Request permission to break always use system libs rule for asc-2.0
- Date: Wed, 24 Oct 2007 22:32:30 -0700
Hans de Goede wrote:
But I also say in the next few paragraphs that it depends on whether the
codebases are separate or not. Extracting a piece of code from a
program is not a separate codebase. Building a library from a library
which is merely being distributed inside of another project's tarball is
a different story.
Toshio Kuratomi wrote:
Hans de Goede wrote:
That's not great reasoning. If asc maintained those libraries out of
tree and made releases as separate tarballs, you'd continue to make
separate packages, right? It's not a question of how many consumers
there are but of how useful the library is outside of the program.
2) Create paragui/paragui-devel and SDL-mm/SDL-mm-devel packages
from the asc source tarball.
To what purpose? There are no other users, if you can name one
package out there which could be packaged for Fedora which uses
either of them I would fully agree, which is why I created a seperate
package for SDLmm in the first place. But there are _no_ other users.
Try googling for paragui, the first 2 links are dead upstream
websites then a domain squater, then some old mailinglist posts and
then we go into rpmsearch hits.
SDLmm, the same the last mailinglist post is from dec 2005!
So I challenge you, give my another (potential) package that needs
them and I agree.
Thats not great reasoning either, if we follow that reasoning then all
pieces of code in applications which may be useful outside of an
application should be converted into libraries before those programs may
pass review. See, this kind of "reasoning" is what you get if you insist
on stubbornly and blindly following the theory of the rules without
looking at the practical situation at hand.
Okay. So that sounds un-promising. Does this cripple the ability to
build shared libraries?
Since these libraries were released outside of the program before and
you haven't said anything about the build scripts being changed just
bugfixes and code-formatting I have the impression that they would be
useful outside of asc.
I didn't say anything about buildscript changes because that seemed
irrelvant, to be honest I didn't expect anyone to object. But no that
you ask, the SDLmm and paragui configure scripts and config.h have been
removed and now the asc scripts and config.h get used.
You could correct me on that by letting me know that the asc fixes
have made the two code bases dependent on each other or some other
technical reason that they aren't two separate codebases that happen
to be maintained in the same tree.
I keep repeating myself, what is the practical use of splitting them?
I keep telling you, being able to reuse the code.
upstream is maintaining them as if they are one code base, there are no
known other applications which them, not in Fedora, nor outside. All you
are doing is bringing theoretical arguments, not practical ones.
I took a highly superficial look at the layout of the source. Upstream
is not quite to the point where they are maintaining them as one
codebase. They have a libs directory in which they have all of these
third party libraries tucked. I didn't look at the separately packaged
paragui or SDLmm so I don't know how crippled their buildsystems are;
I'm depending on you as the maintainer to tell me that.
Why should I have to find out what changed, generate patches, maintain
seperate buildscripts, etc. For 2 additional packages, each time asc
does a new release? Where is the sense in that? What is the added value
for fellow Fedora developers or Fedora users? And since there is no
added value I would much rather spend my time in some other more usefull
Either you're misreading me or I'm misreading you. I've never asked you
to find out what changed or generate patches. I've never asked you to
maintain separate buildscripts although I have asked you whether the
libraries were still buildable as separate entities. I'm not asking you
to continue maintaining three source packages for asc, paragui, and
SDLmm. I'm asking you to:
1) Ask the asc maintainers if they'd like to maintain paragui or SDLmm
upstream. This is a benefit to the opensource community as a whole if
they want to do that since someone who needs that functionality won't
come along later and find that it's no longer possible to separate asc
from these libraries. This is not something that requires any long term
effort on your part. You ask, they refuse, you proceed to package
everything from the asc tarball.
2) make a quick estimate of whether the paragui and SDLmm sources have
been so integrated with the asc sources that it's not feasible to build
multiple rpms from the asc srpm for those libraries. If it is possible,
you stop having to maintain three separate spec files. You stop having
to push three srpms through the buildsystem. You stop having to
generate diffs between the fixed source in the asc source tree and the
old-never-to-be-updated tarballs from the "official" download
repository. These are the benefits of doing this over the state that
you're in now. You would still have three binary rpms and the separate
%files section inside the [single] spec file to manage that so it's not
as easy as your proposal but it removes the gripes you had with the
Further note that I am not demanding that you follow this plan. I am
asking you to tell me if you've considered it and whether it is
workable. If you say "the source is all thrown into one directory where
it's impossible to separate" or "patching the buildscripts to cleanly
build dynamic libraries will take as long as porting to separate specs
would have" then I'll know that you had a look at this possibility and
decided it wasn't worthwhile.
If it's hard to split out the libraries now because upstream decided
that it was extraneous to have separate build scripts, how easy is it
going to be to split them out three releases from now when the
maintainers have decided they don't need two versions of a function to
copy memory or two logging functions or two variables that turn on
debugging? If you ask upstream if they would like to maintain the
packages separately and they say yes, you halt that process and keep
these libraries alive. If you don't and those libraries end up
integrated into the main app then the community loses the ability to
reuse the code.
If a problem is serious enough we do deviate from upstream. For
instance, changing a package to build against system libraries is
certainly something that we do whether or not upstream. We also will
take the time to help upstream do the right thing rather than blindly
packaging what they hand us. In this case, it sure looks best to me
to build those libraries from upstream's tarball as system libraries
and then have the asc programs use those.
3) Use a private copy of SDL-mm and paragui inside the asc binary rpm.
Which would be the least work, not deviating from what upstream does
(wasn't our mantra upstream upstream upstream?) and has no downsides.
* if you make these private libraries of asc you then have all the
problems of static libraries should another program be created in the
future that makes use of their own copy of those libraries.
Notice the ".. if .. in the future" in your reasoning, still
theoretical. I would like to be given some more credit here, I have no
problem with splitting out the libraries again once another using app
turns up. But lets wait till then.
And yes, in one respect you can't know what the future will bring but
it's also not something that can "wait till then." to find out. The act
of asking upstream asc if they are willing to become the maintainers of
the paraguia nad SDLmm libraries will let them know that the
separability of the libraries is valuable even if they are unwilling to
actually do the work of packaging them separately.
I'm very much in favor of the use system libs rule. For example AFAIK
Fedora is the only distro that has quake3 and tremulous use the system
libjpeg use the system libjpeg instead of a ptivate copy. Also I'm
trying to find the time to work on ripping all patent encumbered stuff
out of SDL_sound so that can move to Fedora, as the new asc release can
use a system SDL_sound if present (and will use a stripped down, patent
free included copy if not present). But unfortunately as my time gets
sunk into useless discussions like these, sofar I haven't found the time
to work on SDL-sound.
It's not. But it's within the realm of your responsibilities to try and
shift the burden onto someone else :-). asc is plainly maintaining the
code. Find out if they're willing to go one step further and maintain
the code as libraries rather than just a piece of asc.
* There's no attempt to coordinate work on the libraries. Should
another developer decide they want to build something that uses
functionality that could be provided by SDl-mm or paragui they'll be
unaware that there is active maintenance of these libraries occurring
and will either fork their own copy or reinvent the wheel.
And since when is it my task as maintainer to take care of coordination
of dead upstream packages? If FESco / the FPC start demanding that I'm
going to have to drop a whole shitload of packages, as quite a few of my
packages have a dead upstream.
Anyways I'm totally fed up with having discussions like this with the
bureaucratic powers that control Fedora (woa I feel like I'm Ralf now)
either the powers that be give me permission to use SDLmm and paragui as
included and maintained within upstream asc release, or I'll just orphan
all 3 of them. I refuse to become upstream for 2 libraries backporting
fixes from asc each release just because some people want to follow the
rules as if they are something holy. orphaning asc would be a shame as
its a great and quite popular game, but if that is want the powers that
be want, then that is what they will get.
I'd be fed up too if I was standing in your shoes and saw things that
way. But the way I see it, 1) you gave an outline of a plan for
dealing with a dead upstream, 2) I proposed two alternative plans that
had most of the benefits of your plan, 3) you jump on my case and accuse
me of forcing you to do something unreasonable.
Once again, I've made no requirements of you. I've asked you to find
out if upstream would be willing to do more work. I've asked you to
evaluate whether continuing to package the code as libraries but from
within the asc srpm is feasible.
If you've done the first and the results of the second are that it's an
unreasonable amount of work then I have no complaints. If you refuse to
do the first and don't look into the second I still won't have a
bugzilla-worthy grievance with your plan (your first message was
perfectly clear on how dead the upstreams were). I will just be slightly
peeved that people request comments on their ideas without the
expectation that they'll have to reevaluate their ideas rather than just
blindly defending them.
[Date Prev][Date Next] [Thread Prev][Thread Next]