Why do you not make the code available under a 'source code repository'?
live555.com
live555.com
Anyone who is serious about any open source project today has a repository.
Your bogus rationalizations sound like you haven't held a software job working with other developers in twenty-five years, if ever. Hey, putting tarballs on the sunsite.unc.edu FTP site worked in 1990---why change a process that works?
Exposing a version history doesn't imply that you're supporting old baselines. What is or is not supported is declared separately from version control.
You cannot stop people from merging their local changes to your upstream by not having a repository. Linux didn't have a repository for years, yet people maintained and shared complex patches outside of the official tree anyway. (And with tools like Quilt, refined that to an art form.) People will take your snapshots, import them on into an upstream branch and do their own ad-hoc version control on your code.
Video codec people are kind of weird as developers. Consider ffmpeg and libav. They're certainly competent, just weird.
Carrying that notion of isolating components too far, such that you don't consider human cooperation as part of the system? It happens often, but we also often distinguish this with statements about EQ versus IQ rather than summing it all up as competence.
(Yes, you used the word indicator. I'm speaking to the community more than you specifically.)
Either that or he's using VSS and is mortally embarrassed.
This is still the way that NetHack development works. :-)
It feels like something of an anachronism now, but it highlights the existence of a distinction between free and open source code (you can exercise certain freedoms with respect to any release) and collaborative development (you can potentially help create the release without having a formal relationship with the developers). I know Google has also been criticized around AOSP for being less transparent and collaborative than the present-day norm. Maybe they should defend themselves by comparing themselves to the NetHack Dev Team!
Having a repository where many people can come and open issues puts a burden on my shoulders - I'll look at the page and see that I need to fix <some number> of issues, otherwise I'll look bad, or people will stop using my code.
Releasing my code in releases (so that everyone is on one release, or not on any release at all) means that I don't have to deal with people who've cloned the code half-way through the implementation of something large and complained that it won't run, or that it's full of bugs.
Releasing releases has been a solid model for me, especially as I work alone, or with a maximum of two or three other people at once.
If I was going to use a public repository, I think I'd end up using CVS.
I just like to comment that having public repo doesn't necessarily mean you suddenly have to deal with issues piled up by others, although in recent trend repo providers do encourage that kind of open communication (On github, I can turn off issue tracker but I don't know how to turn off pull requests).
Even using private repo, you still get bug reports, feature requests and patches via email, or (worse) stumble upon a blog or tweet complaining something isn't working for somebody. The reason I moved to public repo for my projects was that I got tired of dealing with patches manually - sometimes people sent patches against the release which was already fixed in my repo or had conflict with HEAD; sometimes I couldn't reproduce the problem so I had to send provisional patches to the user reported a bug to check out if that would address the issue. With public repo, I could just say "give me a patch against HEAD" or "I push a potential fix on a branch so check it out". It's so much easier. But again, this all depends on what kind of feedback you're getting, or how often your releases are, etc.
A source code repository can help someone find a bug more easily, and "preprocess" the bug report with more info for you, like "Hey, you broke such back on December 3, 2014---all you have to do is revert that commit's change to foo.c, and keep the other changes."
Users can run "blame" to find out which commit touched what line of any file.
Of course, you can debug a flat tarball, but it's sometimes better with the history. Particularly in cases when something previously used to work (users are running into a regression). If all they have is the previous release tarball and the new one, there are too many changes which could be responsible for the breakage.
> then I upload tar.xz's of the project for each "release".
All I do is push the release's git tag to my public repo, and the CGIT web front end automatically creates .tar.gz, .tar.bz2 and .zip download links for that tag:
$ git tag frumly-widgets-2.3
$ git push --tags
Done! Users can now download frumly-widgets-2.3.tar.gz straight out of the web front end.> If I was going to use a public repository, I think I'd end up using CVS.
Thus, exposing a public version control repo is too uncool for old school, but if you use some unfashionably crappy old version control system, then it's acceptable.
Result? Nice discussion. Opportunity for folks to learn something new.
And yet, your comment is gray from down votes. Since it would look bad for you to complain about that, I will: That sucks.
Heck git allows you to edit the history pretty widely, right (I have only limited experience with git myself)? So in this case he could maintain a separate upstream repository which only contains the releases, with all the intermediate commits sanitized.
http://git-scm.com/docs/git-svn
The svn plugin to git let's have a git repo that is a clone /client of an svn repo. Very handy if you have an svn upstream but need to work offline.
"Hmm, it still worked in 2.2.13, but not in 2.2.37. Let's try 2.2.25."
On another topic, did anyone see the license section?
---
If you distribute a product (whether software or hardware; whether free or for pay) that uses the LIVE555 library code, then you must - when requested by either a customer, or Live Networks, Inc. - upgrade it as soon as possible to use the latest version of the LIVE555 library code (or else provide a way for your customers to perform this upgrade themselves). Similarly, you must allow any of your customers to - at their discretion - replace the LIVE555 libraries used by your product with their own version (that uses the same API). (Note that in particular, because Apple restricts which iOS apps are made available on their 'App Store', you cannot use the LIVE555 library code in an iOS app that's distributed through Apple's 'App Store'.)
---
Does the LGPL enforce this, or is this some extra requirement?
That depends on your job. If you are a software developer, -engineer or similar, I would argue that you should. There are good arguments for version control.
- divide & conquer for bugfinding - reconstruction of history - being able to revert back to an older version if/while operations require it - it allows tracking of changes over time - it is the best way of understanding what changed since the last version (for people actually using the library) - finding complex faults - branching and merging (but the author is opposed to this)
So, well, what concerns live555, IMHO it's a huge red flag for people considering to actually use the library. When it comes to "not seeing an issue with not using source control", I believe that one can state without a doubt that it is a good and proven practice.
(With a touch more work, you can also maintain your own changes, and have them 3-way merged in automatically.)
As for not using source control - if they don't use it internally, that's a bit weird, but maybe there's just one person working on the code, and they take a backup every hour, and they're happy. (It's their time, not mine.) But not exposing their source control to the outside world is absolutely standard. I worked as a programmer for software companies for ten years and never once saw 3rd-party code distributed any way other than zipped up source drops. (And this includes times where we were working with the 3rd party on the same project! - we just did the thing I mentioned at the start when they sent us updates, and they did the same thing at their end. It's much less of a bother than you'd think, though the first couple of merges can be a bit painful.)
If you want to claim they're being unhelpful, the insistence that you upgrade at a moment's notice is much worse. Upgrading 3rd party libraries is one thing you never, ever want to do, unless your hands are absolutely tied!
Conversely, GitHub is full of low quality software.
None of this is to claim that he's a bad cryptographer, or even a bad software engineer. But pure code output is far from the only important metric for software. GitHub makes it easy to do release engineering well, or to let other people help you with that if it's not your forte. (libsodium, for instance, is on GitHub.)
Now go on, make it another -10; it will be the only thing in your day that makes you feel that you have any influence.
>If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.
That is, dependency injection for your extensions, not alterations to the core.
The whole project reeks of anachronistic development practices, though.
The LGPL doesn't require the developer to use a new version or provide updates at anyone's request.
> If you distribute a product (whether software or hardware; whether free or for pay) that uses the LIVE555 library code, then you must - when requested by either a customer, or Live Networks, Inc. - upgrade it as soon as possible to use the latest version of the LIVE555 library code (or else provide a way for your customers to perform this upgrade themselves).
That's a very strained reading of the LGPL, but the way the LGPL is written, they must provide a way for customers to updgrade the LIVE555 code used to whatever version they want to, including the latest version. It doesn't have to WORK, necessarily, but the ability to replace LGPL code in a work with one's own code is part of the license.
TL;DR: I think they're wrong but not so far wrong as to be crazy, and what they insist on happening is a consequence of following the terms of the LGPL (customers being able to upgrade to the latest version).
I know a lot of folks don't (because i do M&A due diligence), but that's a very clear license violation if you don't.
(also note that IOS 8+ allows dynamic linking, but replacement may still be an issue).
http://foscam.us/forum/a-reported-problem-with-your-fi9821w-...
This is not a requirement of the LGPL, the rest is. A user must be able to replace a LGPL portion of a program. Dynamic linking is the way this is usually accomplished.
I was reading about SCCS at the time, and wanted to convince my management to use that, but couldn't get them away from the "directory tree per release version" method.
My next job in the mid 90s used RCS, and I've never worked at a job since that didn't use some kind of version control / archive software. Hard to fathom that some organizations still avoid version/revision control. How do you "undo" to yesterday when you change your mind about something???
One might argue that developer time is valuable enough to ensure that it's spent on things that won't be "undone".
They are still offering the library as open source in an easily-downloadable form. It is a gift. You can take a gift or you can leave a gift, but you don't whine about how the gift isn't the one you wanted.
Example: https://github.com/hackeron/live555
https://github.com/hackeron/live555/blob/master/genMakefiles
It should be more like:
os=$1
modules="liveMedia groupsock ..."
for module in $modules
do
/bin/rm -f $module/Makefile
cat $module/Makefile.head config.$os $module/Makefile.tail > $module/Makefile
chmod a-w $module/Makefile
doneBecause autoconf is a huge disgusting mess and if you can generate your Makefiles as simply as that, for the love of God DO IT!
I wonder if the classic excuse for not open sourcing software applies here - that the developer is ashamed of their source, that they think it is messy and no one will like it, applies here?
Either way, one shouldn't really overtly negatively criticize - it probably wouldn't encourage such a developer if they do have that thought.
They didn't bother to set up a for loop, for only 8 iterations. Their version is still perfectly legible, and you don't have to worry as much about shell argument expansion, which nobody really understands fully.
2. They might not use one internally or using something old that does not expose to the internet well.
Still, I'm not sure of the value in doing this kind of thing. The licensing schemes where you can't use the projects name in derivatives made sense: poor knockoffs can hurt image and adoption. Yet, people not wanting code to be used so easily probably shouldn't be open licensing it in the first place. These people are weird lol...
Time for old guy rant that in the bad old days I just had a box I could ssh into and that was enough, or should I say, that was better than subversion. Don't forget to init the remote repo before pushing into it, as I forgot seemingly every single time. There was life before gitolite, gitlab, and github.
Makes sense.
Nobody with a clue waste hours setting up their own email server when gmail can do it for you in a few minutes.
Having my own domain avoids problems like, oh, Google going mad about true names with Google+ and shutting down my Gmail account.
Edit to add: My point not withstanding, yeah, that's an arbitrary "cluefullness" test.
I know my gut reaction when I get a (semi-)professional email from a gmail account is "ok.. what's the scam angle on this one?"
But before the Gmail days it was weird and unprofessional for even a 1 person operation to have a Webmail address.