Skip to Content.
Sympa Menu

sm-discuss - [SM-Discuss] libpng 1.4 devel branch

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: Remko van der Vossen <wich AT yuugen.jp>
  • To: Source Mage Discuss <sm-discuss AT lists.ibiblio.org>
  • Subject: [SM-Discuss] libpng 1.4 devel branch
  • Date: Wed, 11 Aug 2010 16:57:36 +0200

Hi everyone,

SHORT VERSION

Please test libpng 1.4:
- scribe add libpng from
git://download.sourcemage.org/smgl/grimoire.git:libpng:devel-libpng
- cast libpng
- report success and failure on the wiki page

For more info see: http://sourcemage.org/Grimoire/libpng14

LONG VERSION

libpng 1.4 has been out for a while now, but upgrading to 1.4 isn't as
easy as any old version bump. The problem is that 1.4 is both API as
well as ABI incompatible with 1.2. This means that we need to develop a
seemless upgrade path where all spells that need a recast will be recast
upon a libpng upgrade. Additionally we need to find and fix any spells
that are incompatible with libpng 1.4.

The libpng spell was made multiversion for both 1.2 and 1.4 in master.
This has been reverted in lieu of a devel-libpng git branch for several
reasons, (disclaimer; this is just my opinion, feel free to disagree):

1. The spell didn't include any upgrade path, if a user simply did a
cast libpng all dependees of libpng (even indirect ones due to the
lovely libtool mess) would break because they can't link to
libpng12.so.0 which is suddenly gone. Users can't be expected to
run a cast -B -c for a simple spell upgrade. And of course even if
they were it wouldn't happen on a sorcery -s and then still our
dependency tree isn't as complete as it should be, so a cast -B
could easily miss spells that need to be recast.

2. libpng 1.4 should not go to stable grimoire as long as there are
spells that fail on it. Meaning that the libpng commit, as well as
all related fix commits of other spells would need to be reverted
each time a stable-rc is branched off as long as we aren't done
with libpng testing.

3. By making the libpng spell multiversion we need to support both
version 1.2 and 1.4. So instead of just making sure the other
spells work with 1.4 we need to also have it keep working with
1.2. By moving the libpng development to a git branch and simply
doing a straight upgrade instead of a multiversion we sidestep
this issue.

4. Test grimoire ins't a dumping ground for new developments, yes,
test can from time to time contain things that don't work,
especially compatibiluty problems between upgraded spells and
other spells, that is what test is for. But we shouldn't knowingly
put broken spells, or spells with known collateral damage into
test. This is such a case; this is an ABI and API incompatible
upgrade of a package which a lot of other packages depend on
directly or indirectly, we expect major breakage here. We need to
flesh out most of the problems we expect to see before we shoot it
out to a larger audience.

So, I made a devel-libpng branch, and in it updated the libpng spell to
version 1.4.3 and included an UP_TRIGGERS script that checks all
installed spells for ELF dynamic objects that link to libpng and
triggers a cast self on those that do.

I tested it on my home box, and found a few spells incompatible with
libpng 1.4 and fixed as much as I could. The current status can be found
on the libpng 1.4 wiki project page:

http://sourcemage.org/Grimoire/libpng14

Please help out and test the devel-libpng14 branch, let's prove we can
work with branches effectively. All you need to do is install a grimoire
based on the devel-libpng branch as described in the short version above
and cast libpng. Naturally if you already have a git based repo you can
also just switch it to the libpng branch.

Please report any success and failure on the wiki page. And if you can
and have the time, please commit any libpng 1.4 related fixes to the
devel-libpng branch. see http://sourcemage.org/Git_Guide for info on
working with git branches.

Regards,

Remko van der Vossen




Archive powered by MHonArc 2.6.24.

Top of Page