Page MenuHomePhabricator

Provide Jessie package to fullfil Mediawiki::Packages requirement
Closed, ResolvedPublic

Description

For continous integration purposes, I have pooled a Jenkins slave running Jessie and applied the puppet class role::ci::slave::labs which brings the MediaWiki packages defined in Mediawiki::Packages puppet class and others.

There are lot of packages missing, would be nice to start doing the grunt work of backporting them from unstable, verify whether they are still needed or use a different version. Might be appropriate to fill sub tasks as needed.

My instance is integration-slave-jessie-1001.eqiad.wmflabs.

Packages failures:

PackageDetailsChange
ffmpegPTS Missing from jessie though in testing. More details on lwn.net. Forked to libav which Debian has chosenhttps://gerrit.wikimedia.org/r/222999
libvips15PTS Jessie has libvips38T103322
libmemcached10PTS Jessie has libmemcached11T103315
php-luasandboxwmf package
php5-fsswmf package

A bunch of fonts virtual packages. They are in Debian but for some reason cant be installed, that spurts out the list of packages to install instead :(

ttf-tamil-fonts?
ttf-ubuntu-font-family?
ttf-punjabi-fonts?
ttf-malayalam-fonts?
ttf-gujarati-fonts?
ttf-telugu-fonts?
ttf-kannada-fonts?
ttf-oriya-fonts?
ttf-bengali-fonts?
ttf-devanagari-fonts?

Debian has some meta packages such as fonts-indic.

There will be probably much more missing since puppet skips installing other packages due to missing dependencies.

See @faidon comment T95002#1178354 for a preliminary investigation.

Related Objects

Event Timeline

hashar raised the priority of this task from to Needs Triage.
hashar updated the task description. (Show Details)
hashar subscribed.
hashar set Security to None.

Preliminary analysis:

  • The libvips/libmemcached are puppet bugs. These are libraries with a SONAME suffix and we shouldn't hardcode their SONAME in puppet. We shouldn't be bringing them in directly anyway; if they're needed, apt-get will bring them.
  • The ttf-* prefix has been replaced by fonts-* in Debian (and subsequently, Ubuntu) and has been rolled out gradually. The way this works is that one release leaves the old package name but with an empty package depending on the corresponding replacement (a so-called transitional package). The transitional packages stay for a release, then get dropped. wheezy had some of those, as you can e.g. see here.
  • That said, ttf-indic-fonts (or fonts-indic) in Ubuntu seems forked :( We should examine the differences to reach parity.
  • ttf-ubuntu-font-family does not exist in Debian, as its license was considered non-free and after that, traction was lost (and hence was never uploaded even to non-free). Why do we need it, though? This is a very Ubuntu-specific font.
  • ffmpeg is not in jessie, as Debian had gone the libav way. It's now in unstable and would expect to see it in jessie-backports soon (or we could do it, of course; it should be easy enough). However, I think we depend on libav in other parts of the MW infrastructure and depending on both sounds like a bad idea. We should investigate further.
Andrew triaged this task as Medium priority.Apr 6 2015, 4:32 PM

Thanks @faidon for the preliminary investigation. Should I fill subtasks for the 5 points you mentioned? It seems that each will reach out to different group of persons, might be easier to track this way.

hashar updated the task description. (Show Details)

Change 218640 had a related patch set uploaded (by Dzahn):
mediawiki: update font packages for jessie

https://gerrit.wikimedia.org/r/218640

Should I fill subtasks for the 5 points you mentioned?

Yes, i started with one for the font packages and a patch for that:

https://gerrit.wikimedia.org/r/#/c/218640/

Change 222999 had a related patch set uploaded (by Hashar):
Use libav instead of ffmpeg on Jessie

https://gerrit.wikimedia.org/r/222999

Change 222999 abandoned by Hashar:
Use libav instead of ffmpeg on Jessie

Reason:
Per Moritz: ffmpeg will be backported.

https://gerrit.wikimedia.org/r/222999

looks like all blocking subtasks are fixed now, @hashar how can we try this again? I tried accessing integration-slave-jessie-1001.eqiad.wmflabs with no luck

integration-slave-jessie-1001.integration.eqiad.wmflabs but you are denied somehow:

pam_access(sshd:account): access denied for user `filippo' from `bastion-restricted-01.bastion.eqiad.wmflabs'

Seems some patch has been cherry picked on integration-puppetmaster (I can't ssh to it right now) or landed in puppet.git. The instance last failure is unrelated to fonts:

Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install php5-fss' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package php5-fss
Error: /Stage[main]/Mediawiki::Packages::Php5/Package[php5-fss]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install php5-fss' returned 100: Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package php5-fss

That sounds promising!

promising indeed! we don't need php5-fss I think if we no longer need to run zend php, if we do need it we'll need to compile it on jessie and the current version of hhvm

If php5-fss is solely Zend, yeah I guess we can phase it out from mediawiki::packages::php5 when running on Jessie. I think Joe added logic for that.

For CI purposes the Zend 5.5 and HHVM jobs are going to run on Trusty. Until we switch prod HHVM to Jessie, but then Zend 5.5 will be keep on Trusty anyway.

sounds good, thanks @hashar, see also T131749: Make all role::mediawiki::* classes compatible with debian jessie which seems to have some overlap with this (general theme, mediawiki/appservers to jessie)

php5-fss shouldn't be needed even on Zend nowadays — Zend >= 5.5's native strtr() was made fast enough to make fss redundant.

@hashar: This bug can be closed, right? It seems T131749 fixed the remaining dependency problems.

We still ship php5-fss on Jessie (and Trusty) via mediawiki::packages::php5. Apparently it is not needed anymore.

It is probably all about removing that package from the puppet class.

Beside that, everything else has been sorted out from pinned lib versions to fonts and others PHP extensions.

Change 287603 had a related patch set uploaded (by Faidon Liambotis):
mediawiki: remove all php5-fss references

https://gerrit.wikimedia.org/r/287603

Change 287603 merged by Faidon Liambotis:
mediawiki: remove all php5-fss references

https://gerrit.wikimedia.org/r/287603

faidon claimed this task.

Puppet looks fine on the CI slave integration-slave-jessie-1001 :-}