Loading...
 

Blog

Lenovo: Review your Ideapad Flex 4

admin Friday June 30, 2017

After I worked around the issue with Lenovo's Yoga Mode Control, my Flex 4 worked fine. But now that it was stable, it was time for me to proceed to the storage drive change I had planned.

The easy part should have been to physically switch the drives, right? Well, if you have ever opened a Lenovo Ideapad Flex 4, you will remember that is not the case with these laptops which are physically anything but flexible.

If you want to replace any part of your Flex 4-1570, sorry, but your weekly nightmare is coming. Unless you are reasonable and just give up.

Replacing anything will require you to remove the whole motherboard case. As Lenovo's Hardware Maintenance Manual shows, opening is possible. After removing 10+ screws, your are supposed to simply lift the case. As discussed in this forum thread, this apparently trivial step is in fact incredibly difficult and costly (both in time and risk of damaging the notebook).

Thanks to the instructions on the forum, I managed to open mine, but it took me an insane amount of time, and I still broke the case.

If you are extremely determined, secure:

  • A good starting mood, a worthy objective and much patience.
  • at least 1 hour
  • at least 1 sufficiently long nail
  • Several tools. I used screwdrivers with flat and very sharp heads (in addition to the electronic screwdrivers which will remove the screws).
  • A surface where your laptop won't move despite great force. It should not move back nor on any side.
  • Ideally, an anti-static device (of course)
  • The new parts you want to install. No, really, all the new parts. You will not want to do this twice.


I managed by starting with my nails, then using a small (electronic) flat-head screwdriver, and then a regular flat-head screwdriver. In general, your should start at the front and progress towards the back, except the most difficult part is the rear half of the Ethernet port's side. I broke my case when I got to the USB ports there. It was necessary to open the back before opening the rear half of the left side.

Good luck, seriously. And if you read this before buying, buy something else.

Wikimedia Foundation Board of Trustees Elections 2017

admin Saturday May 6, 2017

I voted in the Wikimedia Foundation Board of Trustees Elections 2017. I had interacted with no candidate and was neutral for most candidates, but I supported:

  • María Sefidari, for her work on transparency.
  • Dariusz Jemielniak, for his huge knowledge of Wikimedia, his work on transparency, and his past stance against bureaucracy
  • James Heilman (general impression)
  • Peter Gallert, for his goal of improving transparency


As in the 2015 elections, there is no way to modify our vote (submitting a new vote would require to fill a new vote form from scratch).

As in the 2015 elections, I hit an important issue voting. But I managed to report it this time.

SPID: 16259
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1

hQEMAwo8OE3GoWgLAQgAh5sc46RslDOPXDgnlOP71fCfi1nNS5rG4X8IAiPzCrKY
vx0CMPoWbBuyk6E3f7TXqCIgtv1xIkL2D3JzDscUtk9APWzwYvra4mXDg3Qh6eYD
k1/ssWwkTiLEbK3xDMNl5/semr2psQiz+aWC9J6rFuRJS5/gPRHXBg7cT9u9dKhs
CBGx5MkUjE15LsBMOoAq6e3NsjnBHqq5m05BgerCAiXpnphgcIwhh1+0mrqc5/Ov
bqM1hmCPKHwzQwGdAaQOrZhFTBspZJ3mOl/qdfvoKxU4nP0IIBdbR5Veo1gCLaQF
NtBiroZflt4Ds3OUDTL7q7NyYgh0B5rAVmu8qbSirtLpATsta2lXobbfcsW+0ySZ
XJN73GjwoPi1hCSMFBMAquose4V7xkHASwN+YzPS7FdMt3kwSzgorpzlqu7Knakk
FjNVUcbyW6NuYmiH8O0xQfio4pXRRJR5uGV2HHrG/InMWfwHkCPXTtGUg3vVDjWK
OTiujdQycnls1bHsIJZH3Cf7c0z2/yg7EGGwtPkecWBe6O2lGydr0cKxwVHYeD0v
DWf3IbPxGGR2WgoIAWKiKTvfziOv00ClW0Qbt/lsuUzeUaqfK1IMUrThcOGLhv8h
p18KA5jnbPeXv3OKl6UO7Pwerf9ryJk7fCs8Pe7IGlkLHYX3KbIKpyJeJ5J+0KAx
m45AR03sqNqGHa17y8FAgZZDpc5JeTfJMOTuf7rrTgtKjLal01qGWPAm63uKtD6F
Ktso/3P0pOzfe9/0ED/9vW+nm099Erp79+J1KhNSJthF+hnCIpm/XhFs0yZa8B5a
g/Y7Davt9OA7gWmoik92JPjh/943k/5zX+mXoKcjFJBdXsFOOxU6xUVP63dWpJh/
YunN44iEI6czA+Z6oampILvD5IPyUZB5eUFnfR6LOCcFEWJ2PDsLBff5anYVsn9L
CtQ/qK/XPSfFZoOOP6qOqu1xTv6eJSKCgJUb9CXrfTcYRn8sq/I+QzTmAQf9EBD8
eGoY0Br/D0dmCShf/PY8gTyYQ40id6E37WD2YNG4mK0eKDOyHd8F2DURTD/70SNW
y9fNiZksukNMSiJMqbLuYPtow+ukuuCTqIwaYkM9uJtQCDhogaXvBbnWrtSAahal
jKZXksODQT6zRch6AwGo3vs1317+7tXb3skBYi+JFhcNAvwsuVgiT2eKp1h1cNR/
HC2f/pqscyRbRgYNpP6QPuxBoALtgF8GneA=
=J3Aw
-----END PGP MESSAGE-----

Pour boire, manger... et toute autre ingestion

admin Sunday April 23, 2017

Ma mère est d'une générosité extraordinaire, c'est bien connu. À preuve, suffit de rappeler le cadeau à l'humanité qu'elle fit en lui donnant son fils.

Mais en regardant sa facture le lendemain d'un souper dans un nouveau restaurant de Sillery, elle est néanmoins restée étonnée de mesurer la générosité dont elle avait elle-même fait preuve la veille :

Générosité maternelle débridée («POURB» pour «pourboire»)
Générosité maternelle débridée («POURB» pour «pourboire»)

On ne peut certainement pas reprocher aux concepteurs du terminal de paiement électronique utilisé aux délices tandoori de freiner les élans les plus altruistes.

P.S. Le restaurant a bien sûr accepté une révision de la générosité de ma mère à son égard.

Liberal Party of Canada responds to petition e-616

admin Saturday April 22, 2017

After the liberals announced they would break their promise to get rid of FPTP, some 130 452 Canadians protested by signing petition e-616 (thanks to my readers for having grown that number). Perhaps the fact that no other online petition to the Canadian government had gathered that many signatures compelled the government to respond.

Unfortunately, it seems the government preferred a lengthy response to a concise and focused response. If "The Government of Canada is pleased to respond to this petition.", rather than listing over a page of measures supposed to "enhance public trust in the integrity of the electoral process", it would have helped to provide a more convincing apology than...

The Minister of Democratic Institutions wrote:
Furthermore, without a clear preference or a clear question, a referendum would not be in Canada’s interest.

…in particular since petition e-616 never asked for a referendum. E-616 merely requested to honor the party's promise:

Liberal Party of Canada wrote:
ensuring that 2015 will be the last federal election conducted under the first-past-the-post voting system.


In fact, the Minister's response has little to qualify it as an apology. While it may contain many excuses, it does not contain the words "apology", "apologize", "sorry", or really any terminology characteristic of apologies.

And as if this treason and this non-apology weren't enough, they didn't even take the time to fill the response form properly ("Prepare in English and French marking ‘Original Text’ or ‘Translation’" at the very top? Oh please, better stay silent if you can't help!)

CVE-2017-5638, the Heartbleed Virus and Quality at CBC

admin Sunday March 26, 2017

Taxes are very important. So much so that I learned about 2 critical security vulnerabilities in important free software components, namely CVE-2014-0160 (Heartbleed) and more recently CVE-2017-5638, by watching CBC, because both affected the CRA's website during the income tax returns filing period.

I confess that learning about Heartbleed on The National was exciting in a sense - because I was learning of free software usage by the federal government on TV, because I was learning about free software in a national broadcast, because I had never heard about a free software bug on TV before, and because I was discovering the first named free software bug (it is after watching the report that I discovered Heartbleed had its Wikipedia article).

Unfortunately, I was less excited when a similar scenario repeated with CVE-2017-5638 and The National broadcast this report. In part because CVE-2017-5638 is much less interesting than Heartbleed, in part because I do not use Apache Struts, and in part because the report did not mention the vulnerability anyway. But mostly because the report refers to what is possibly the world's most known bug as "the Heartbleed virus".

My ears are almost done bleeding from hearing the report. It was broadcast nearly 2 weeks ago, and still features uncorrected. How can Canada's public broadcaster make such a flagrant error and fail to correct it for weeks? A 2014 article from CBC itself asks "What is Heartbleed?" and describes it as a bug or software vulnerability, obviously never as a virus.

Margo McDiarmid is a parliamentary reporter, and surely cannot be expected to know each field deeply. For the first part of the question, one could think that having to publish each news story first, CBC put the story out quickly, before having the time to have it reviewed by someone knowledgeable about information security. This hypothesis breaks down when we see that the report was broadcast on 2017-03-13, more than 2 days after a story with no major error was written by the CBC, and even after private media had published articles identifying the vulnerability more specifically (the Globe and Mail and MoneySense, the latter specifically mentioning Apache Struts). Less than 12 hours later, even the CBC had written a quality story with all the necessary details. That story was written by CBC's Matthew Braga, Senior Technology Reporter, who should have been able to catch such an error. The rush hypothesis seems even invalidated by the fact that the CBC could have requested the report to be reviewed by the very expert interviewed in the report.

As for the second part, the webpage which contains the report has a "Report Typo or Error" link. Should I feel guilty for not having reported the error instead of complaining? Not a chance; click on it, and you find a simple form, without any indication of previous reports. Does the CBC really expect me to send a benevolent report without even being sure that the problem has not been reported already?!

There is probably no simple answer. The conservative government's 2012 cuts may still mean CBC's information sector is unable to guarantee a minimal level of quality. I sincerely hope that budget restoration will make the CBC a source of information which can be trusted.

I do not frequently notice gross errors from our public broadcaster, but then I am ignorant about the vast majority of the world. Most of the serious errors I hear from the CBC and from the media in general are about computer science, my own field of "expertise". At these times, I ask myself how such a lack of rigor is possible, but also how bad the problem is. How specific to computer science are errors in media coverage? Is health coverage also unreliable? If our public broadcaster can't tell software viruses and vulnerabilities apart, can it distinguish biological viruses from genetic diseases? Looking at the efforts (or lack thereof) it makes to fix errors post-publication, I doubt it; the issue with quality is systemic. If this has to do with budget, here is one more confirmation that taxes are very important.

TP-Link Archer C8 Wi-Fi router review

admin Sunday March 19, 2017

I replaced my 6-year-old TP-Link TL-WR1043ND with a Gigabit Ethernet 802.11ac router bought for 105 CAD (shipping included) from Dell this week.

Wireless range seems to solve the connectivity problem of one of the clients I was experiencing with the previous router. For reasons I never understood well, at times the client would have huge packet loss and even disconnect, even though it is 1 decameter from the router, no other wireless device was active and other houses a several meters away from ours. With the Archer, the worst path has a 0.01% packet loss.

The interface is satisfying (although English-only until you install the May 2016 firmware update, since the router came with the 2015 firmware!). It is simple and the feature set includes everything I need.

I accidentally pressed the reset button while relocating the router. As noted in this TechHive review, this button could easily cause an inadvertent reset, but I did not push it long enough for that.

I chose this router partly because of its comparatively long warranty (2 years rather than the usual 1 year). I am mostly surprised to find no specification of warranty in the box. The box contains 2 quick installation guides (1 multilingual, 1 English-only), 3 prints of the GNU General Public License (versions 1, 2 and 3), a copy of the GNU LGPL, a superfluous "Resource CD", but no mention of warranty.

There are a few issues with the firmware. In the first month of usage, I once lost access to the interface until I rebooted.
The firmware features "NAT Boost", which allows to collect bandwidth usage statistics for each device. While this is quite useful, it needs refinement (in particular, the total bytes column is unreliable due to a 32-bit overflow after 4 GiB of transfer).
While the firmware has some support for Dynamic DNS, it does not support my provider (DNSEXIT).

Smart Indian mechanics nail profitable ways to slow down climate change...

admin Sunday March 12, 2017

...as well as many vehicles circulating in these streets of Bangalore. In fact, their solution completely stops many vehicles on the streets which benefit from their ecological treatment.

Unfortunately, due to the side effect nails on a road have on pedestrians and other self-propelling travelers, their plan is being fought by opposant Benedict Jebakumar and other nearby workers, frustrated by the environmental tax it also imposes on commuters like themselves whose tires are puncturing more frequently. But even with police getting involved and arresting innovator Ranganath and Chand Pasha, the fight continues, with police now closing repair shops.

While the strategy is not new, it has not yet managed to make a hole in the inflating number of motorists. But this is at least one more proof of how the tenacious altruistic efforts of individuals can benefit an entire city, and, step by step, or puncture by puncture, perhaps eventually bring back more air for citizens of the whole world.

Disclaimer: having had at least 5 punctures on his bicycle last summer, the author of this sarcastic article has in fact much sympathy for the victims of this awful scheme.

Victory for the Liberals, Defeat for Governance; Disgust for Canadian Politics

admin Saturday February 4, 2017



During the last federal election, an unprecedented share of political parties favored electoral reform. In a bad position, with a mere 10% of the seats, Canada's most popular party - and therefore the one most favored by the flaws of First-past-the-post voting, the Liberal Party - made the unthinkable: a unequivocal promise to get rid of FPTP, by 2019 (presumably because they considered a majority victory equally unthinkable anyway).

Unfortunately, the 2015 elections doubled the popular vote of the Liberal Party, which brought the liberals back from the parties disadvantaged by FPTP to the parties advantaged by FPTP - so much so, that their 39% popular vote granted the liberals not only the government, but a majority government. Surely, at this point the liberals would break their promise.

But the hope survived. It might have been too selfish to break their main promise right after benefiting from the status quo, but instead of becoming silent on the issue, the government renewed its commitment to electoral reform in its December 2015 Speech from the Throne. Yours truly - despite all his knowledge of politics and cynicism - was still enthusiastically wondering what would happen in 2016. Even in June 2016, the liberals weren't ready to break their promise and constituted the ERRE special committee on electoral reform,and yours truly went to an ERRE hearing last autumn wondering if change could still happen; after all, a strong majority of voters chose a party promising electoral reform.

Unsurprisingly, the experts and the public urged the government to abandon FPTP. It wasn't before October that it became difficult to stay hopeful. After millions had been spent, the Minister of democratic institutions then criticized the committee she had formed and dismissed its recommendation to adopt a more proportional electoral system. The liberals then designed their own biased survey on electoral reform.

And only after that much more money was wasted were the liberals willing to admit no reform would take place under their government. This week, after the Minister of Democratic Institutions was changed, electoral reform was removed from the mandate of the new Minister.

In more than a year, the liberals could not find better than an insulting bunch of misleading and pitiful excuses, served just one week after a certain candidate was elected president of a certain neighbor of Canada despite the will of its citizens, thanks to that country's broken electoral system.

I would like to thank those who contributed to this battle, despite the difficulty and high risk of failure, notably Fair Vote Canada and its Anita Nickerson and Executive Director Kelly Carmichael, which is outraged by this abandonment, as well as Quebec's MDN, which is also denouncing and calling for protests.

It is hard to accept defeat when a victory seemed so much more likely than ever. Although I signed petition e-616, I consider this battle lost. But if advocates of decent governance have lost one battle, the war is far from over. As for the liberals, they may have won another election, but they permanently lost any credibility (the one thing won permanently being a place in a certain activist's Political Party Blacklist).

See also
Why we broke our electoral reform promise. Signed, a Liberal MP.

Losing your cool with Lenovo's Ideapad Flex? Get rid of Yoga Mode Control

admin Saturday December 31, 2016

I gave a new laptop with Microsoft Windows to my parents in October. Unfortunately, the best deal I found, Lenovo's Ideapad Flex 4, was not a Signature Edition. But it was my first time buying Lenovo, and I thought they may not be so bad.

Things went rather smoothly initially, but I did not realize there were sometimes processes monopolizing a whole CPU core. This became hard to ignore the day there were 4 such rundll32.exe processes running simultaneously, each using up 25% of the CPU, causing fans to spin at maximum speed and incredible unresponsiveness.

Sometimes, Windows 10 even refused to let any user "login" because there was a lack of unspecified resources. Windows says it won't let you open new sessions until you free resources. The only issue being that even the sessions already opened cannot be used, so you cannot go investigate the problem, and are only left able to restart Windows.

This unspecific symptom was difficult to research. I uninstalled several useless pre-installed Lenovo packages unsuccessfully. We endured this problem for more than a month on a fully up-to-date system, even following Lenovo's upgrade recommendations, without obtaining a solution. I then uninstalled every pre-installed Lenovo package, again without solving the issue. I was about to reformat this morning when I found this Lenovo forum thread reporting the issue, at the last minute. The culprit is ymc.exe, Lenovo's "Yoga Mode Control", which manages the switch between classic laptop usage and tablet usage. I had noticed a "Yoga Mode Control" running, and since my parents have not practiced yoga in decades, had considered the possibility it was malware which had infected Windows, but I had verified it was just a strangely-named Lenovo application which was not supposed to be harmful.

The proposed workaround works. Apparently, the only downside of disabling ymc is that the visual keyboard is no longer managed automatically, which is not a problem if you do not use the Ideapad as a tablet. Disabling the service seems to kill the processes, but they apparently reappear right away. You need to make the service Manual and restart Windows to really get rid of the processes.

Congratulations, Lenovo, for leaving software you pre-install go out of control for months. Next time you want to keep your computers and their users in a cool mode, try fixing your serious bugs before deploying Yoga Mode Control.

ManageEngine NetFlow Analyzer on Debian 8

admin Monday December 19, 2016

ManageEngine's NetFlow Analyzer is probably the best NetFlow analysis software. It supports GNU/Linux and is even free for a maximum of 2 network interfaces.

NetFlow Analyzer 12.1 can be installed on Debian 8, but that does not mean there are no issues. The software is heavyweight. Once the service was started with # /etc/init.d/OpManagerServer start; you still need to give a some time before the service is usable.

The init scripts unfortunately lack LSB headers. While that apparently does not prevent proper functioning nor even pollute logs in general, it seems to cause much confusion when dpkg has to upgrade a service. Therefore, upgrading Samba brought a pretty scary output:

Préconfiguration des paquets...
(Lecture de la base de données... 83617 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../libnss-winbind_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de libnss-winbind:i386 (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../libpam-winbind_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de libpam-winbind:i386 (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../samba-vfs-modules_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de samba-vfs-modules (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../samba-dsdb-modules_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de samba-dsdb-modules (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../python-samba_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de python-samba (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../libwbclient0_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de libwbclient0:i386 (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../winbind_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de winbind (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../smbclient_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de smbclient (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../libsmbclient_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de libsmbclient:i386 (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../samba-libs_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de samba-libs:i386 (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../samba_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de samba (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../samba-common-bin_2%3a4.2.14+dfsg-0+deb8u2_i386.deb ...
Dépaquetage de samba-common-bin (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Préparation du dépaquetage de .../samba-common_2%3a4.2.14+dfsg-0+deb8u2_all.deb ...
Dépaquetage de samba-common (2:4.2.14+dfsg-0+deb8u2) sur (2:4.2.10+dfsg-0+deb8u3) ...
Traitement des actions différées (« triggers ») pour man-db (2.7.0.2-5) ...
Traitement des actions différées (« triggers ») pour systemd (215-17+deb8u5) ...
Paramétrage de samba-common (2:4.2.14+dfsg-0+deb8u2) ...
debconf: Impossible d'initialiser l'interface : Gnome
debconf: (Can't locate Gtk2.pm in @INC (you may need to install the Gtk2 module) (@INC contains: /etc/perl /usr/local/lib/i386-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/i386-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/i386-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at /usr/share/perl5/Debconf/FrontEnd/Gnome.pm line 91.)
debconf: Utilisation de l'interface Dialog en remplacement
Paramétrage de libwbclient0:i386 (2:4.2.14+dfsg-0+deb8u2) ...
Paramétrage de samba-libs:i386 (2:4.2.14+dfsg-0+deb8u2) ...
Paramétrage de python-samba (2:4.2.14+dfsg-0+deb8u2) ...
Paramétrage de samba-common-bin (2:4.2.14+dfsg-0+deb8u2) ...
Paramétrage de samba-dsdb-modules (2:4.2.14+dfsg-0+deb8u2) ...
Paramétrage de samba (2:4.2.14+dfsg-0+deb8u2) ...
insserv: warning: script 'K98OpManagerServer' missing LSB tags and overrides
insserv: warning: script 'OpManagerServer' missing LSB tags and overrides
insserv: There is a loop at service rmnologin if started
insserv: There is a loop between service OpManagerServer and mountnfs if started
insserv:  loop involving service mountnfs at depth 10
insserv:  loop involving service nfs-common at depth 9
insserv: There is a loop between service OpManagerServer and networking if started
insserv:  loop involving service networking at depth 7
insserv:  loop involving service urandom at depth 6
insserv:  loop involving service mountnfs-bootclean at depth 12
insserv:  loop involving service rpcbind at depth 9
insserv: There is a loop between service OpManagerServer and mountall-bootclean if started
insserv:  loop involving service mountall-bootclean at depth 6
insserv:  loop involving service mountall at depth 5
insserv: There is a loop between service rmnologin and checkroot if started
insserv:  loop involving service checkroot at depth 3
insserv:  loop involving service keyboard-setup at depth 2
insserv:  loop involving service hwclock at depth 3
insserv: There is a loop between service rmnologin and udev if started
insserv:  loop involving service udev at depth 1
insserv:  loop involving service checkfs at depth 5
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Max recursions depth 99 reached
insserv:  loop involving service irqbalance at depth 2
insserv: There is a loop at service OpManagerServer if started
insserv:  loop involving service rsyslog at depth 13
insserv:  loop involving service OpManagerServer at depth 1
insserv:  loop involving service mountkernfs at depth 1
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: erreur de traitement du paquet samba (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1
dpkg: des problèmes de dépendances empêchent la configuration de winbind :
 winbind dépend de samba (= 2:4.2.14+dfsg-0+deb8u2) ; cependant :
 Le paquet samba n'est pas encore configuré.

dpkg: erreur de traitement du paquet winbind (--configure) :
 problèmes de dépendances - laissé non configuré
dpkg: des problèmes de dépendances empêchent la configuration de libnss-winbind:i386 :
 libnss-winbind:i386 dépend de winbind (= 2:4.2.14+dfsg-0+deb8u2) ; cependant :
 Le paquet winbind n'est pas encore configuré.

dpkg: erreur de traitement du paquet libnss-winbind:i386 (--configure) :
 problèmes de dépendances - laissé non configuré
dpkg: des problèmes de dépendances empêchent la configuration de libpam-winbind:i386 :
 libpam-winbind:i386 dépend de winbind (= 2:4.2.14+dfsg-0+deb8u2) ; cependant :
 Le paquet winbind n'est pas encore configuré.

dpkg: erreur de traitement du paquet libpam-winbind:i386 (--configure) :
 problèmes de dépendances - laissé non configuré
Paramétrage de samba-vfs-modules (2:4.2.14+dfsg-0+deb8u2) ...
Paramétrage de libsmbclient:i386 (2:4.2.14+dfsg-0+deb8u2) ...
Paramétrage de smbclient (2:4.2.14+dfsg-0+deb8u2) ...
Traitement des actions différées (« triggers ») pour libc-bin (2.19-18+deb8u6) ...
Des erreurs ont été rencontrées pendant l'exécution :
 samba
 winbind
 libnss-winbind:i386
 libpam-winbind:i386
E: Sub-process /usr/bin/dpkg returned an error code (1)
Échec de l'installation d'un paquet. Tentative de récupération :
Paramétrage de samba (2:4.2.14+dfsg-0+deb8u2) ...
insserv: warning: script 'K98OpManagerServer' missing LSB tags and overrides
insserv: warning: script 'OpManagerServer' missing LSB tags and overrides
insserv: There is a loop at service rmnologin if started
insserv: There is a loop between service OpManagerServer and mountnfs if started
insserv:  loop involving service mountnfs at depth 10
insserv:  loop involving service nfs-common at depth 9
insserv: There is a loop between service OpManagerServer and networking if started
insserv:  loop involving service networking at depth 7
insserv:  loop involving service urandom at depth 6
insserv:  loop involving service mountnfs-bootclean at depth 12
insserv:  loop involving service rpcbind at depth 9
insserv: There is a loop between service OpManagerServer and mountall-bootclean if started
insserv:  loop involving service mountall-bootclean at depth 6
insserv:  loop involving service mountall at depth 5
insserv: There is a loop between service rmnologin and checkroot if started
insserv:  loop involving service checkroot at depth 3
insserv:  loop involving service keyboard-setup at depth 2
insserv:  loop involving service hwclock at depth 3
insserv: There is a loop between service rmnologin and udev if started
insserv:  loop involving service udev at depth 1
insserv:  loop involving service checkfs at depth 5
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting OpManagerServer depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Max recursions depth 99 reached
insserv:  loop involving service irqbalance at depth 2
insserv: There is a loop at service OpManagerServer if started
insserv:  loop involving service rsyslog at depth 13
insserv:  loop involving service OpManagerServer at depth 1
insserv:  loop involving service mountkernfs at depth 1
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: erreur de traitement du paquet samba (--configure) :
 le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1
dpkg: des problèmes de dépendances empêchent la configuration de winbind :
 winbind dépend de samba (= 2:4.2.14+dfsg-0+deb8u2) ; cependant :
 Le paquet samba n'est pas encore configuré.

dpkg: erreur de traitement du paquet winbind (--configure) :
 problèmes de dépendances - laissé non configuré
dpkg: des problèmes de dépendances empêchent la configuration de libpam-winbind:i386 :
 libpam-winbind:i386 dépend de winbind (= 2:4.2.14+dfsg-0+deb8u2) ; cependant :
 Le paquet winbind n'est pas encore configuré.

dpkg: erreur de traitement du paquet libpam-winbind:i386 (--configure) :
 problèmes de dépendances - laissé non configuré
dpkg: des problèmes de dépendances empêchent la configuration de libnss-winbind:i386 :
 libnss-winbind:i386 dépend de winbind (= 2:4.2.14+dfsg-0+deb8u2) ; cependant :
 Le paquet winbind n'est pas encore configuré.

dpkg: erreur de traitement du paquet libnss-winbind:i386 (--configure) :
 problèmes de dépendances - laissé non configuré
Des erreurs ont été rencontrées pendant l'exécution :
 samba
 winbind
 libpam-winbind:i386
 libnss-winbind:i386


Thankfully, Samba and everything other than dpkg seemed to work perfectly, but to get rid of this nastiness, I had to add a dummy LSB header to /etc/init.d/OpManagerServer:

### BEGIN INIT INFO
# Dummy LSB header
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start or stop ManageEngine NetFlow Analyzer
### END INIT INFO

And then run

# insserv /etc/init.d/OpManagerServer


This is apparently the result of Debian bug #587587.