Search Results: "will"

25 April 2008

Kartik Mistry: pyslide story


* Someday back, it was decided that python-xml is no longer updated in Debian and Ubuntu, so it will be removed and this bug #468610 was filed (with many similar bugs). Good enough. I was searching and looking into it with my limited knowledge of Python and so on. Accidentally, I found that this bug has been ‘fixed’ into Ubuntu LP: #199014. Nice. I tried that solution and it wasn’t really working. So, Onkar opened it quickly with confirmation. Thanks to him for quick work. So, I requested for ‘help’ of this bug. Nothing came from submitter. Now, it was closed again (9th April) with saying that python-xml dependency has been re-added. But, this diff is saying different story. It may be slipped in hurry of releasing Hardy! Moral of the story: Ubuntu needs more QA work. PS: Ubuntu users, please report grave bug if pyslide is not working without python-xml. PS II: pyslide is nice little package to create nice presentations :)

24 April 2008

Gunnar Wolf: Password security, data safety - A government perspective

One week ago, I went to a branch office of Servicio de Administraci n Tributaria, the government office in charge of processing taxes. This year, I plan on doing something quite bold, as my Mexican friends will acknowledge: I will prepare my (quite simple, I hope) tax declaration by myself. I do not want to be held hostage of the accountant guild - So I might end doing some fuckup which in the end costs me money or time. I hope it is not the case.
Anyway... Last week I went to this office, as I needed either a CIECF (Clave de Identificaci n Electr nica Confidencial Fortalecida - Strengthened Confidential Electronic Identification Key) or a FIEL (Firma Electr nica Avanzada - Advanced Electronic Signature). No, please don't believe it is a security token, a card with printed numbers, a one-time-pad or the sort - The CIECF is... A password. Why is it strengthened? Because it has the feature of including a question, in case you forget the key, to allow you to change it. I guess the FIEL is a more reliable device, but I prefer not to even request it.
And as far as the questions go, the emergency questions for CIECF suck. First, I was not even asked the meta-question - I was not told why this information was needed. So imagine the clerk saying: Full name? ... Date of birth? ... RFC (Tax ID)? ... Favorite color? I was there just... Stunned. Why do you need it? Oh, just in case you forget your password. Ok... Don't you have any other questions which I am not prone to answer a different thing, and that are not dead obvious for a casual passer-by? (I guess that at least 1/4 of the public will say blue. Feel like brute-forcing SAT to its knees?) Other questions include your fathers' second family name, your favorite soccer team, your pet's name... It seems they took the first "security dos and don'ts" book off the wall, and started reading backwards.
But anyway, that's the system, and I must play nice with it. So I get back home, and decide to start hacking up my declaration. No, Mr. Policeman, I'm not saying I would try to break into the SAT - I just say it is a complex and non-obvious task to do. Now please release me. Thanks.
And I enter the system. Of course, I tried first with Iceweasel, knowing it would fail (it is documented: MSIE 5.5 recommended). I tried again with Konqueror. I tried, sigh, with MSIE from inside Wine. No luck. Well, even from within qemu's Windows 2000. Wrong password. WTF?! Stranger: It worked with SAT's My portal, although it didn't with the declaration, which is what matters now.
I cannot take the time every day to come to the SAT and move my data - It was a full week until I came back again. I insisted on fully logging in to the system, to be sure the password I entered this time was right. As well as my ber-secret safety question, of course.
And it failed.
Twice.
Until the clerk noticed something strange in the way I typed...
Sir, excuse me..., he muttered, why are you typing such a long password? Well, basically because I value my tax declaration, and I know brute force is a powerful force. (explain it, of course, in simple terms) Oh... No, the password must be eight characters long.
No wonder.
So I entered the first eight characters of my password, which was a true work of prose for their standards, at around 20 characters. And it worked.
Now, for bonus points: What do we gather from the fact that the long password works fine in one system, but in another system it only the short version? Why, but of course! I guess the passwords for every economically active Mexican is stored in their master database in plain text. Isn't it just beautiful?
Anyway, it seems I have a lot of work to do. If all goes as planned, maybe next year I will be for hire as a public accountant? Hmh, does not sound too much like fun, does it?

Julian Andres Klode: April Updates


This is a summary of most of my activities since end of march. BTW, I’m still at the T&S step in NM since January (I completed P&P in about 3 days). Also, thank you Tolimar for being the second DD signing my key! GNOME 2.22 (Python) / Updated Packages At the end of march, I updated some GNOME packages. These packages were gnome-python and gnome-python-desktop. The upload of gnome-python-desktop was really important, because the old version depended on libtotem-plparser7, which was not available anymore, and FTBFS because the metacity API changed. This upload made other packages building and running again! That time, I also uploaded new releases of dir2ogg and ndisgtk, which fixed some bugs. On the first of April, I updated aufs to a new upstream snapshot, which fixed linux-modules-extra-2.6’s FTBFS on armel, removed bashism in shell scripts, added a hack for limited splice support, and enabled building on -rt kernel (if the required functions are exported). Packages To-Do In the next week, I will upload a new aufs snapshot with support for kernel 2.6.25 and re-added support for kernels < 2.6.23. I will also update app-install-data to the current state of the archive. Other stuff includes my ITA upload of gimmie and the upload of jockey, a tool to install drivers. Jockey will also be modified to provide the functionality from ndisgtk, which development has been discontinued as it is feature-complete (bug fixes will still be provided). Another package will be, of course, debimg 0.1 once it’s released and of course the python-libisofs bindings. Ubuntu packages I requested syncs for dir2ogg and ndisgtk (after I uploaded sync’able versions to Debian) and for aria2, which was not installable before. I have also reported some bugs and used 8.04 for some time. debimg stuff I released debimg 0.0.3 on 4th April. This is the first release to require Python 2.5 and also the first release which uses the new media module, which provides a generic interface to disk creation. I actually have not worked on debimg since that day, mainly because I did not have enough time. In May, I hope to add support for more architectures (at least theoretically, by providing a generic way of handling bootloaders and other non-packages and non-dists files) and release 0.1. debimg 0.1 will not contain any features related to python-libisofs, because the focus is getting the basic functionality. I have also not uploaded any new netinst build on jak-linux.org, since March. debimg and the Debian Project News Debimg will appear in the second issue of the Debian Project News, I’m currently working on the text for it. (BTW, I have also fixed one link in the first issue of the DPN) debimg and Ubuntu I have suggested to switch Ubuntu’s image building to debimg, and offered to do everything needed to do this. Given the speed of debimg and that the current features almost match the requirements of Ubuntu, this seems to be a great idea. python-libisofs As you may know, I released a first preview of the python-libisofs bindings some days ago, with almost complete support for creating image files. The next steps will be reading and growing images and of course, the bindings for libburn and libisoburn. Switching from Ubuntu 8.04 to Debian unstable I am currently working on migrating my laptop from Ubuntu 8.04 to Debian unstable, in order to be able to work better on my packages. Since most of my packages are sync’able now, this enables more efficient development. Another reason is to help the lenny release. This does not mean that I will be less active on the Ubuntu side, at least not much. Let’s make Debian Lenny and Ubuntu Intrepid the best releases ever.

Meike Reichle: Open Source Census - kinda fishy

I recently read about the Open Source Census and thought it would be a nice thing to also put my vote in and make sure my operating system of choice was properly represented (currently it doesn't seem to be). After creating an account there, downloading a 45M tgz including among other things a complete java runtime environment, starting the scan tool that takes neither a -h nor a --help parameter and watching it hog 70% CPU for over 20 minutes I lost patience and killed the script. Somehow this whole thing is not exactly inspiring confidence and I start getting an idea why there are currently (Thu Apr 24 12:47:57 CEST 2008) only 53 Debian users who submitted their data. Although it's a pity Debian is (and will probably continue to be) so underrepresented there, I can't say I blame anyone for not taking part.

Enrico Zini: How to not start a service by default

How to not start a service by default Use case: in my laptop, I sometimes need MySQL, PostgreSQL or Apache in order to test some software that I'm developing, but I do not want them on all the time. The solution is: rm /etc/rc*.d/S*mysql* (thanks to Wouter) update-rc.d will not touch your symlinks as long as there is at least one still around for a package. Also, this leaves the stop symlinks around, so that when I start one of these services for development, it will still be properly stopped on shutdown.

Benjamin Mako Hill: Talks at CommunityOne

In the last leg of what has been marathon traveling over the last two months, I'm going to be heading back to San Francisco to give two talks at CommunityOne. CommunityOne is a new one-day conference that Sun is putting on -- along side it's massive JavaOne conference -- that focuses on free software, open source, and non-Sun projects. I'm going to be there talking about free software and free culture. I will be giving updated versions of the two talks that I have at the FSF members meetings over first two years. In the first talk, I'll be making the case for a strong free culture movement and in the second I'll be talking about liberating network services. If you will be at the conference, or just in the Bay area, and would like to meet up, I'll be in the area for most of a week and would love to arrange something. Just get in contact.

Sune Vuorela: sexybuntu

First off, several different people blogged about ubuntu being sexy because of this phallic splash screen:feistysplash Later on, as noticed on this very blog, ubuntu started working on the release, “Ubuntu Goatse”. And now finally, “Ubuntu Hardon” has been released. I wonder where they will head next. But good luck. Comments have been hard

Jordi Mallach: Filtering Planet Debian authors

Several people have been discussing what material is appropriate or not for feeds syndicated by Planet Debian. It's basically the same discussion that also pops up every now and then in any big planet like GNOME's, KDE's, Ubuntu's or ours, with some people advocating for Free Software or techie stuff content only, and an apparent majority liking and defending that people write about their latest Debian hack, but also how wonderful their vacation in Paris were, or how their favourite politician did this or that. For some time now, Planet Debian has a small new feature that might have gone unnoticed by many, and could help some readers get rid of undesired content from the post listings. Steve Kemp added a cookie-based per-author filtering system to Planet a few weeks ago. Next to each author name you'll see a link which can be used to collapse all entries by the author. This setting will be saved in a browser cookie, and can be reverted by clicking on the + link next to the collapsed author. To expand all hidden posts, use the Show all link in the Planet's right column above the subscription list. So, if reading about baby Jesus annoys you, just click on and be happy.

Erich Schubert: Stupid restrictions - DHL label printing

Sometimes, companies come up with the most stupid restrictions. And unfortunately, other companies enable them to do that.In this particular case, the DHL parcel service and Acrobat teamed up: You can buy and print shipping labels online with DHL. I thought I'd give that a try, especially since there is a 24h dropbox nearby.The label can be printed either using a Java applet or a PDF file. It thought PDF - sounds great. But it isn't. It's a very special PDF file. It has a scriped printing button that will print with the default settings (so it comes out at a completely different printer that I would have wanted to print it). In fact I would have expected the printing dialog to come up, and thought the button had not functioned at all. Also I could probably not have used it if I had opened the PDF file in a different PDF viewer. At my own laptop I might not even have Adobe Reader anymore - I use Evince. It's faster and has a much better UI. But I don't have a printer, so I used a computer at the university which used Acrobat by default, fortunately.And: you may only print the real shipping label once. Only 'sample' labels can be printed arbitrarily often. This is counted on the server side, btw., and also applies to the Java applet.Apparently you also must not rename the PDF file (WTF?) and you need to be online to print the file. So you can't save the PDF file and take it to an offline computer that does have a printer...Dear DHL: have you heard of that ancient technology called 'Photocopiers', sometimes also dubbed 'Xerox'? You know... lots of people still have these. Heck, I figure I could even use Adobe Reader to print the label into another PDF file with the print restrictions removed...So you gain nothing by preventing multiple printouts, but you can seriously annoy users (e.g. when their printer malfunctions)Please stop imposing such stupid restrictions on users.

Aigars Mahinovs: Baby Jesus violation meme

Most absurd religious bullshit in long time. Baby Jesus cries like being stabbed in the eye with a fork. It is like a sweet gay love orgy between baby Mohamed, baby Jesus and baby Abraham while baby L. Ron Hubbard films it all and baby Buddha gives artistic directions. Wouldn’t you want to see that Holy Trinity? Just as real and inspiring as the other one. Baby Jesus is a fictional character just like Donald Duck or Terminator, get over it. If your personality is fully determined by several thousand years old megalomaniac fantasies to the point where you are unable to accept satire about it, you might have serious psychological issues and should seek professional help. If people get seriously offended at anything written online it is their own personal psychiatric problem. The fact that such irrational over-offensiveness is promoted in US. Opinion is an opinion even when stated as a fact or amusing expression or observation. Being offended by an opinion is a clear sign of lack of personal integrity and self-awareness. Don’t enforce your own psychological deficiencies on others or baby jesus will cry like he crapped his pants before the age of diapers.

Russ Allbery: New journal

Previously, my journal was managed by Movable Type. Originally, Six Apart seemed like a cool company, but I should have known better than to trust anything that wasn't open source. They started screwing with the license, it was never packaged properly, and then of course it became far too painful to upgrade. I've been wanting to fix this for some time, and have occasionally poked at other blog software. Serendipity looked like a winner for a while, but then I spent two days fighting with it and while I got it to mostly look like what I want, that was demoralizing. I hate spending large quantities of time fighting with someone else's software to get it to do what I want, particularly when I then have to write plugins and additions to get what feels to me like basic functionality. It would be one thing if I had time and inclination to get involved as a developer, but usually what Web 2.0 software developers want to pursue and what I care about are almost entirely at odds. During my recent vacation, I finally realized that I just wanted something that used all the infrastructure I already have. I have a macro language that I like for generating web pages, I have a page design that I like; the journal one isn't bad, but it doesn't match. I don't care about nearly all of the features of blog software. I could use something that's much better-designed (and free software) like ikiwiki, but I don't particularly like wikis either. (That's another story that I should write up sometime.) I really just wanted something that works like my book reviews work and lets me maintain the whole thing in spin. So I just gave up and wrote it. It probably took me more time than it would take to beat some piece of blog software into submission, but now it's done, I know how it works, it knows what I want to do, and I don't have to fight with it again with every upgrade. So this is my first post with my new journal software, with an RSS feed generated by my own code. There will probably be bugs for a while to iron out, but it will also make it far easier for me to maintain multiple RSS feeds with different topics, post reviews to my journal even more automatically, and add automatic posting for other things. The main loss is comments. With this system, my entire web site can be static, which I love. But that means no comment scripts. Since almost no one was commenting on my journal anyway (as opposed to mailing me or discussing posts elsewhere), I think I'm okay with that. Eventually I may mirror my journal somewhere else where there are comments. All of the old posts have been converted over, including old comments. Old reviews with no comments have become redirects to the permanent review pages. Let me know if you see anything weird.

23 April 2008

Christian Perrier: More news from the lenny l10n NMU campaign

A few news from the campaign of NMU's targeted at bringing po-debconf translation ratio as high as possible for as many languages as possible (and also improve packaging quality quite significantly on many loosely maintained packages). Maintainers are incredibly cooperative (at least those who are active..:-)). l10n NMUs are always welcomed. Some prefer uploading themselves which is of course perfectly OK. I will now also focus my efforts to minimize uncoordinated changes to debconf templates. Those are generally motivated by the will to follow writing style guidelines, which is perfectly OK. I however still suggest maintainers to send call for translation updates *before* uploading packages with modified templates. Will probably soon post that suggestion to -release.

Joey Hess: dh implementation

I've implemented last night's design, in debhelper 7.0.0. Currently fully supported are packages that use the autotools, or perl's MakeMaker, or python setup.py, or a simple Makefile. The other classes of packages will be added as bugs are filed about them. I've uploaded a few of my own packages converted to use debhelper 7 with minimised rules files, so there are a range of examples in incoming: Early adopters, have at it!

Russell Coker: Offensive Blog Posts

There has been ongoing debate in the Debian community for a number of years about what standards of behavior should be expected. Matthew Garrett sets a new low by making a joke about Jesus being molested as a child [1]. While I believe that debate and discussion about religion is a good thing, such comments about someone who is widely regarded as a God (part of the Holy Trinity) seems to provide no value and just needlessly offends people. I used to be a Christian, and while I have great disagreements with most Christians about issues of religion I still believe that Jesus (as described in the bible) was a good person and deserves some respect. I don’t believe that blasphemy should be illegal, but some minimum standards should be observed when discussing religion. Next there is the issue of child molesting, most people agree that there’s nothing amusing in that - so I hope that nothing more needs to be said about violating babies. Finally there is the issue of rape in general often being treated as a joke in the computer industry (I am not sure how prevalent this is in the wider community). One example that is from a Wired article: “We were raped by Microsoft. Bill Gates did it personally. Introducing Gates to the president of a small company is like introducing Mike Tyson to a virgin” [2]. I admit that finding examples of this on the web is not easy, part of it is due to such slang use being more common in spoken communication than in written communication, another is the vast number of slang terms that are used. A Google search for “male rape” [3] turns up some informative articles. One FAQ suggests that 3% of men will be raped as an adult [4] - I expect that some guys will decide that it’s not so funny when they realise that it could happen to them. For people who’s knowledge of the English language is not as good as that of Matthew and I, here is the dictionary definition of the word “violated” [5].

Sylvain Le Gall: ocaml-gettext on-going progress to version 0.3.0

Thanks to Richard Jones, from Red Hat, i have been able to be enough motivated to start thinking to do a new release. Richard provide me with a patch which help to get rid of ocaml-ast-analyze and replace it using camlp4 from OCaml 3.10.1. I spent the last week removing problems concerning the merge action of "ocaml-gettext" executable and reworking the build system to get something cleaner. I will spend a few more days to get rid of camlidl and try to see if there is a simple solution to handle UTF-8 in PO file. Probable release date: 2008/04/27....

Norbert Tretkowski: The future of MySQL Cluster in Debian

MySQL 5.1.24 was released last week. I am nearly done with preparing and testing the updated package for Debian, and will upload it to experimental within the next few days. MySQL AB decided to disable Cluster support from their official binaries with 5.1.24, but unfortunately they forgot to add a note to the release notes. It was only mentioned in a bugreport where someone asked why mysqld does no longer understand the --ndbcluster option in 5.1.24:
It was decided that we do not support NDB Cluster in the 5.1 release but do a general release of the Carrier Grade Edition 6.2 branch (which is based on MySQL 5.1) instead as it has received substantial improvements on the cluster side that can not be backported to 5.1 for now.

So while the 5.1.24 source still includes the cluster storage it is not built into the binaries released by us. A MySQL Cluster 6.2.x binary release is expected to be become available before end of April.
I am still thinking about how we should handle the new situation in Debian, hence I will keep Cluster support enabled at least for the first 5.1.24 upload. Maybe we will see a separate mysql-cluster (or mysql-cge) package in Debian soon...

Rob Taylor: Nokia funds D-Bus based Accessibility

Nokia will be funding Codethink in the development of a replacement for AT-SPI based on D-Bus. The aim will be to make a cross-desktop accessibility framework that can be used by both Qt/KDE and GTK+/GNOME applications and other applications that currently make use of ATK. Mark Doffman will be heading up the work and is collaborating with Mike Gorse at Novell who has already started working on this, thanks to Novell’s UIA effort. The main architectural aims will be to cut drastically the amount of of IPC used and generally be lighter than AT-SPI is at the moment. We’ll be working to support both ATK and QAccessible. I’ve applied for a project on freedesktop.org to house this, so when those are up and running that’ll be the main place for discussion. In the meantime, feel free to ask questions on the accessibility-atspi mailing list at the linux foundation or for IRC, #a11y on GIMPNet. Thanks for this goes to Nokia and all in the accessibility community that have supported us in making this happen! Update:
I should also note we will also have a very strong focus on supporting automated testing tools, so anyone out there working in that area is more then welcome to join in and tell us what needs fixing with AT-SPI.

Matthew Garrett



Note that by "Enable Touchpad" it also means "Make my touchpad mouse buttons work". For machines that are only equipped with a touchpad (and, indeed, some that are equipped with a trackpoint as well - it depends on how it's wired up), the only option is to figure out that the space bar or enter will save you.

(Ubuntu-specific change, introduced in 8.04)

Neil Williams: filetype highlighting annoyances

anjuta is my favourite IDE for C work - the configurable symbol browser/highlighter, the ability to right click on a function name or typedef and go straight to that part of the relevant source file somewhere else in the project (or outside), the debug support, mostly sane syntax highlighting (i.e. when it works it is perfect, when it doesn't work it doesn't try and make things worse). geany is very competent too, although possibly better suited to small tasks. (The compile and build menu options in geany don't always use the existing Makefile.)

Recently anjuta has developed an annoying habit of complaining about filetypes it claims not to understand (e.g. configure.in ac, Makefile.am - quite important files in the general C workload), geany (my favourite text editor, especially for perl) does those well but doesn't seem to support highlighting ChangeLog or debian/changelog - a task left to gedit but I can't use gedit for source code because the highlighting and general support of normal source code is truly awful, especially for perl.

(I got comments last time I rated geany higher than gedit - it's a question of focus. gedit cannot do everything - at least not well - but it tries anyway and therefore fails badly. Geany has far, far superior source code highlighting and an incredibly useful symbol browser because it has a more "source code" focus. I'm not going to go scrabbling around in gedit to create a customised highlighting scheme and only have two or three colours for perl is completely unacceptable in gedit (and changing colour scheme as no effect), as is the lack of a symbol browser.) Besides, geany loads and runs much faster than gedit.

Compare for yourself: Geany:
geany.png>

or gedit:
gedit.png

(inlined images removed - originals behind the links are quite large)

I mean, WTF? No separate colour to distinguish interpreter keywords or function names from plain text strings in gedit?? Duh? Badly broken regexp highlighting that highlights only the $ at the end? The entire file is like that - there are three colours in all. 99.9% is puce, variable names are olive and characters like line endings or tab markers are blue. Yes, I can change those colours but what's the point of changing everything that is now in puce into blue when what I need is some parts to be blue, some parts to be light blue, some parts to be red and some parts to be yellow. The gedit perl highlighting has to be the worst I've seen in any editor. It's almost easier in monochrome. Perl is by far the worst but gedit C highlighting isn't much better.

Compare with geany where keywords are always identifiable, regexps are marked up clearly, no silly marking of line ending characters inside a string, sane marking up of pod content and HERE documents and variable highlighting - and it never gets confused.

Needless to say, vi (or more precisely vim) does all the highlighting with aplomb, even though asking for a symbol browser in vim is a bit excessive, even for me.

vi.png

Why can't I have a single GUI that does highlighting as well as vim ? Geany is the closest of the three - lacking only ChangeLog and debian/changelog (and debian/control) highlighting, anjuta is almost there (once that annoying bug is fixed - already filed by someone else) but gedit? What? Has groundhog day been changed to 1st April somewhere? They're having a laugh, must be.

Joey Hess: cdbs killer (design phase)

simple case Imagine a very simple debian/rules, that should work for most packages w/o modification:
#!/usr/bin/make -f
build:
    dh build
clean:
    dh clean
binary-arch:
    dh binary-arch
binary-indep:
    dh binary-indep
binary: build binary-arch binary-indep
absurdly simple case
AKA debian/rules zen guru level.
#!/usr/bin/make -f
%:
    dh %@
the complex cases Often you'll want to handle configuring by hand. (And maybe, run automake too.)
build:
    dh build --before configure
    #aclocal
    #autoheader
    #automake --add-missing
    #autoconf
    ./configure --kitchen-sink=yes
    dh build --after configure
Here's how to skip two steps in a row (configure and build):
build:
    dh build --before configure
    ./mondoconfig
    make universe-explode-in-delight GROOVINESS=420
    dh build --after build
Another common case is wanting to run some code manually after a particular debhelper command is run.
binary: build
    dh binary --until dh_fixperms
    # dh_fixperms has run, now override it for one program
    chmod 4755 debian/foo/usr/bin/foo
    # and continue
    dh binary
Suppose you hate dh_strip, and just don't want it to run. (This might be a contrived example; if people frequently don't want to run a few commands in a set, it may be better to have -X exclude them.)
binary: build
    dh binary --before dh_strip
    dh binary --after dh_strip
Maybe you want to run a command out of order. This should be no problem:
binary: build
    dh binary --until dh_fixperms
    dh_install foo usr/bin
    dh binary --after dh_fixperms
A separate install target can be added if you like. And maybe you want to run make install by hand in it. (This is tricky because dh binary needs to avoid running dh_auto_install which was skipped over in the install target.)
install: build
    dh install --before install
    $(MAKE) install PREFIX=debian/tmp
    dh install --after install
binary: install
    dh binary
Once you have an install target, you can do this to run some commands manually after the install target runs, and before the remaining steps are run to build a binary.
binary: install
    dh_strip -X foo
    dh_fixperms -X bar
    dh binary --remaining
If the --remaining was left off, dh binary would only run commands in its list after dh_fixperms. With --remaining, it runs commands that haven't run before, avoiding running dh_strip and dh_fixperms again. A more elaborate way to do the same thing, without needing a separate install target is this.
binary: build
    dh binary --before dh_strip
    dh_strip -X foo
    dh binary --after dh_strip --before dh_fixperms
    dh_fixperms -X bar
    dh binary --after dh_fixperms
the dh_auto_* commands dh_auto_* are thin wrappers, with enough intelligence to handle 90% of cases (autofoo, perl/python packages, etc) automatically. These will rarely be run by hand, instead if they don't do what is needed, they can just be skipped. the dh command dh runs a set of other debhelper commands in order (and prints their names as it does so). The set that it runs is determined by its parameter. The sets of commands are: Possibly dh does smart optimisations to avoid running lesser-used commands if they will do nothing. (Or not.) Each debhelper command will record when it's successfully run in debian/package.log.debhelper. (Which dh_clean deletes.) So dh can tell which commands have already been run, for which packages, and skip those. Options passed to dh are passed on to each command it runs, which is useful for common options like -v, -X, and the like. For that matter, you can use it for uncommon options as well, since commands will ignore options that don't apply to them. dh has a few options of its own: cmd can be a full name of a debhelper command, or a substring. It'll first search for a command exactly matching the name, to avoid any ambiguity. For example, "--before dh_installdeb" does not refer to dh_installdebconf. Otoh, "--before build" is much easier to type, and clearer, than "--before dhautobuild". If there are multiple substring matches, the last in the command list is taken. So "--before install" stops before dh_auto_install, and not before the earlier dh_install. Each time dh is run, it examines the log, and finds the last logged command that is in its list of commands to run. It then continues with the following command in its list. (Or the one after --after, if that was specified. Or if --remaining was specified, start at the first command in the list that is not in the log.) So... If you run debian/rules build twice, and it just has "dh build" in it, the second run will be a no-op. The same as if the build target touched a build-stamp. This is generally considered a feature, so I'll consider it a feature in dh too. (To force a rebuild, run dh_clean to remove the log.) If you run debian/rules binary, and a build hasn't happened yet, it will run the build steps first. Even if the rules file is a bit lame (or over-golfed), and doesn't have the binary target explicitly depend on the build target. Ditto for the install target. If a rules file runs a command out of order, it'll need to use --after to get dh back on track. If you manually run a debhelper command at the command line, running debian/rules binary will skip forward until after that command. Similarly, if debian/rules binary is interrupted (or fails), running it again will resume after the last debhelper command run. This is a bit of a behavior change, and could be considered a bug, but is easy enough to work around by running debian/rules clean binary. (Or by manually deleting the log.)

Next.

Previous.