From baptiste at bitsofnetworks.org Mon Sep 3 11:51:45 2018 From: baptiste at bitsofnetworks.org (Baptiste Jonglez) Date: Mon, 3 Sep 2018 11:51:45 +0200 Subject: [cfarm-admins] Offer for Sparc machines In-Reply-To: <5E98E64C-A515-4B98-B0F7-6E6563FCE19A@opencsw.org> References: <20180720220329.GA29778@lud.localdomain> <7944B5CD-09CB-4D64-82B7-A82016E31169@opencsw.org> <20180804093108.GA9288@lud.localdomain> <20180805112240.GD16937@lud.localdomain> <1C7777BF-A9C8-408F-9489-29EC9036ADA0@opencsw.org> <20180814172500.GA14857@tuxmachine.localdomain> <93A04338-928E-4F7B-9278-2B7F1410BE60@opencsw.org> <20180817232307.GA21053@lud.localdomain> <5E98E64C-A515-4B98-B0F7-6E6563FCE19A@opencsw.org> Message-ID: <20180903095145.GA8099@tuxmachine.localdomain> On 20-08-18, Dagobert Michelsen wrote: > > 1) solaris11 has bash by default for new accounts, but solaris10 has sh. > > Is it possible to set bash as default shell on solaris10 too? > > Nope, the default shell can only be changed in Solaris 11. For Solaris 10 > you have to explicitly add ?-s /usr/bin/bash? to useradd or use usermod > later on to change the shell. If you use ansible you may specify the shell > path in the respective module. Ok, this is slightly annoying to do in our setup, but I will give it a try. > > 2) on a related note, on solaris10, there is an error when logging in: > > > > -sh: PATH=/usr/bin:/usr/sbin: is not an identifier > > I guess you are talking about user bjonglez. The problem is the following > line in .profile of the users home: > > export PATH=/usr/bin:/usr/sbin > > 3) on both solaris10 and solaris11, /opt/csw/bin/ is not in the $PATH > > THe default is now added in /etc/profile. In your current configuration > to ~/.profile overwrites this setting, so a different skeleton may be > advisable. How is your setup on the other buildfarm hosts? Do you have > a standard skeleton? Oh, I see, these two issues are actually the same. What happened is that /etc/skel/.profile from solaris11 was installed to $HOME, and because $HOME is shared between the two machines, solaris10 complained. I have updated /etc/skel/.profile not to set the PATH. We don't have a common skeleton because things vary depending on the OS. > > 4) solaris11 has a German locale (LANG=de_DE.UTF-8), and solaris10 has no > > locale at all. Can you set en_US.UTF-8 for both? > > Sure: Thanks! I have one last issue on solaris10: creating a new user fails both with ansible and plain useradd: gcc-solaris10# useradd -m foobar cp: /home/foobar: Operation not applicable chown: /home/foobar: No such file or directory It seems like it should create the home under /export/home, not /home. The manpage for useradd mentions a "basedir" option but it does not actually work: gcc-solaris10# useradd -b /export -m foobar UX: useradd: ERROR: invalid syntax. Do you have an idea of what's wrong? If it works with a plain useradd call (so that we don't have to change our ansible setup just for this machine) it's even better. > The machine is located in Kiel, Germany and our company which is sponsoring the > machine is Baltic Online http://baltic-online.de > Our company is also sponsoring the OpenCSW buildfarm so we are also strongly associated > with OpenCSW. It would be nice if you could mention both Baltic Online and OpenCSW :-) Ok, I have updated https://cfarm.tetaneutral.net/machines/list/ accordingly. Thanks, Baptiste -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From dam at opencsw.org Tue Sep 4 09:50:33 2018 From: dam at opencsw.org (Dagobert Michelsen) Date: Tue, 4 Sep 2018 09:50:33 +0200 Subject: [cfarm-admins] Offer for Sparc machines In-Reply-To: <20180903095145.GA8099@tuxmachine.localdomain> References: <20180720220329.GA29778@lud.localdomain> <7944B5CD-09CB-4D64-82B7-A82016E31169@opencsw.org> <20180804093108.GA9288@lud.localdomain> <20180805112240.GD16937@lud.localdomain> <1C7777BF-A9C8-408F-9489-29EC9036ADA0@opencsw.org> <20180814172500.GA14857@tuxmachine.localdomain> <93A04338-928E-4F7B-9278-2B7F1410BE60@opencsw.org> <20180817232307.GA21053@lud.localdomain> <5E98E64C-A515-4B98-B0F7-6E6563FCE19A@opencsw.org> <20180903095145.GA8099@tuxmachine.localdomain> Message-ID: <28B4D3FD-A0F2-4AB4-81D6-75EDA28F981D@opencsw.org> Hi Baptiste, Am 03.09.2018 um 11:51 schrieb Baptiste Jonglez : > I have one last issue on solaris10: creating a new user fails both with > ansible and plain useradd: > > gcc-solaris10# useradd -m foobar > cp: /home/foobar: Operation not applicable > chown: /home/foobar: No such file or directory > > It seems like it should create the home under /export/home, not /home. > The manpage for useradd mentions a "basedir" option but it does not > actually work: > > gcc-solaris10# useradd -b /export -m foobar > UX: useradd: ERROR: invalid syntax. > > Do you have an idea of what's wrong? If it works with a plain useradd > call (so that we don't have to change our ansible setup just for this > machine) it's even better. Ok, here is what is going on: in the old days you had a network of machines, each carrying some homedirs under /export/home/ when disks were small and expensive. These were automounted to /home/ on the machine where you login, either by nfs or lofs. That means you can only create under /export/home and mount under /home. Essentially I don?t really care about this legacy setup as we don?t use NFS anyway and the homedirs are shared by lofs from the global zone. I have changed the configuration to make /home a symlink to /export/home. Please note there is one directory ?farm? under /export/home which I use for farm setup, all the compilers, patches and stuff is located there. I can move it away if needed. >> The machine is located in Kiel, Germany and our company which is sponsoring the >> machine is Baltic Online http://baltic-online.de >> Our company is also sponsoring the OpenCSW buildfarm so we are also strongly associated >> with OpenCSW. It would be nice if you could mention both Baltic Online and OpenCSW :-) > > Ok, I have updated https://cfarm.tetaneutral.net/machines/list/ accordingly. Excellent, thanks! BTW, I read that you can are interested in a buildbot CI setup. I have some experience with buildbot as we at OpenCSW already use that to verify clean compilation on Solaris for a number of upstream projects. If needed I can lend you a hand. Best regards ? Dago -- "You don't become great by trying to be great, you become great by wanting to do something, and then doing it so hard that you become great in the process." - xkcd #896 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 873 bytes Desc: Message signed with OpenPGP URL: From dam at opencsw.org Tue Sep 4 13:33:52 2018 From: dam at opencsw.org (Dagobert Michelsen) Date: Tue, 4 Sep 2018 13:33:52 +0200 Subject: [cfarm-admins] Offer for Sparc machines In-Reply-To: <20180904110612.GA9554@tuxmachine.localdomain> References: <20180804093108.GA9288@lud.localdomain> <20180805112240.GD16937@lud.localdomain> <1C7777BF-A9C8-408F-9489-29EC9036ADA0@opencsw.org> <20180814172500.GA14857@tuxmachine.localdomain> <93A04338-928E-4F7B-9278-2B7F1410BE60@opencsw.org> <20180817232307.GA21053@lud.localdomain> <5E98E64C-A515-4B98-B0F7-6E6563FCE19A@opencsw.org> <20180903095145.GA8099@tuxmachine.localdomain> <28B4D3FD-A0F2-4AB4-81D6-75EDA28F981D@opencsw.org> <20180904110612.GA9554@tuxmachine.localdomain> Message-ID: Hi Baptiste, Am 04.09.2018 um 13:06 schrieb Baptiste Jonglez : > On 04-09-18, Dagobert Michelsen wrote: >> Am 03.09.2018 um 11:51 schrieb Baptiste Jonglez : >>> Do you have an idea of what's wrong? If it works with a plain useradd >>> call (so that we don't have to change our ansible setup just for this >>> machine) it's even better. >> >> Ok, here is what is going on: in the old days you had a network of machines, >> each carrying some homedirs under /export/home/ when disks were small >> and expensive. These were automounted to /home/ on the machine where >> you login, either by nfs or lofs. That means you can only create under /export/home >> and mount under /home. >> >> Essentially I don?t really care about this legacy setup as we don?t use NFS >> anyway and the homedirs are shared by lofs from the global zone. >> I have changed the configuration to make /home a symlink to /export/home. > > I see, thanks for the explanations and the symlink. I have now deployed > all farm users and SSH keys, and will announce the availability of the new > machines within a few days. Ok, cool, please do! >> Please note there is one directory ?farm? under /export/home which I use for farm setup, >> all the compilers, patches and stuff is located there. I can move it away if needed. > > Is it intended to be used directly by farm users? If so, it should > probably go into /opt. Otherwise, it's fine here, I will add "farm" to > the list of blacklisted user names to avoid surprises ;) Yeah, the place is not good. I moved the directory to /export/farm. >> BTW, I read that you can are interested in a buildbot CI setup. I have some experience >> with buildbot as we at OpenCSW already use that to verify clean compilation on Solaris >> for a number of upstream projects. If needed I can lend you a hand. > > I know that several people run buildbot on the farm themselves. Do you > think it could make sense to provide buildbot as a service on all farm > machines? I always wanted to have some real cross-platform travis, but there are a number of problems with ?BaaS?: - individual slaves are connected to only one master - the master is controlled by a global configuration So it doesn?t really scale for multiple users on the whole farm. What we could do it set up a global buildbot triggered by the official git repo and feed back CI status for all platforms available on the farm. For now I installed the OpenCSW-package for the Buildbot Slave on both machines so you can easily use buildslave create-slave Best regards ? Dago -- "You don't become great by trying to be great, you become great by wanting to do something, and then doing it so hard that you become great in the process." - xkcd #896 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 873 bytes Desc: Message signed with OpenPGP URL: From baptiste at bitsofnetworks.org Tue Sep 4 13:06:12 2018 From: baptiste at bitsofnetworks.org (Baptiste Jonglez) Date: Tue, 4 Sep 2018 13:06:12 +0200 Subject: [cfarm-admins] Offer for Sparc machines In-Reply-To: <28B4D3FD-A0F2-4AB4-81D6-75EDA28F981D@opencsw.org> References: <20180804093108.GA9288@lud.localdomain> <20180805112240.GD16937@lud.localdomain> <1C7777BF-A9C8-408F-9489-29EC9036ADA0@opencsw.org> <20180814172500.GA14857@tuxmachine.localdomain> <93A04338-928E-4F7B-9278-2B7F1410BE60@opencsw.org> <20180817232307.GA21053@lud.localdomain> <5E98E64C-A515-4B98-B0F7-6E6563FCE19A@opencsw.org> <20180903095145.GA8099@tuxmachine.localdomain> <28B4D3FD-A0F2-4AB4-81D6-75EDA28F981D@opencsw.org> Message-ID: <20180904110612.GA9554@tuxmachine.localdomain> On 04-09-18, Dagobert Michelsen wrote: > Hi Baptiste, > > Am 03.09.2018 um 11:51 schrieb Baptiste Jonglez : > > Do you have an idea of what's wrong? If it works with a plain useradd > > call (so that we don't have to change our ansible setup just for this > > machine) it's even better. > > Ok, here is what is going on: in the old days you had a network of machines, > each carrying some homedirs under /export/home/ when disks were small > and expensive. These were automounted to /home/ on the machine where > you login, either by nfs or lofs. That means you can only create under /export/home > and mount under /home. > > Essentially I don?t really care about this legacy setup as we don?t use NFS > anyway and the homedirs are shared by lofs from the global zone. > I have changed the configuration to make /home a symlink to /export/home. I see, thanks for the explanations and the symlink. I have now deployed all farm users and SSH keys, and will announce the availability of the new machines within a few days. > Please note there is one directory ?farm? under /export/home which I use for farm setup, > all the compilers, patches and stuff is located there. I can move it away if needed. Is it intended to be used directly by farm users? If so, it should probably go into /opt. Otherwise, it's fine here, I will add "farm" to the list of blacklisted user names to avoid surprises ;) > BTW, I read that you can are interested in a buildbot CI setup. I have some experience > with buildbot as we at OpenCSW already use that to verify clean compilation on Solaris > for a number of upstream projects. If needed I can lend you a hand. I know that several people run buildbot on the farm themselves. Do you think it could make sense to provide buildbot as a service on all farm machines? In any case, feel free to subscribe to https://lists.tetaneutral.net/listinfo/cfarm-users if you want to participate in the compile farm discussions. Regards, Baptiste -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From baptiste at bitsofnetworks.org Tue Sep 4 14:35:14 2018 From: baptiste at bitsofnetworks.org (Baptiste Jonglez) Date: Tue, 4 Sep 2018 14:35:14 +0200 Subject: gcc210, gcc211: gcc fails In-Reply-To: References: <20180904111000.GB9554@tuxmachine.localdomain> Message-ID: <20180904123514.GG24230@tuxmachine.localdomain> Hi, On 04-09-18, Carl Eugen Hoyos wrote: > Thank you, connecting works! > > Just in case this isn't known: > On solaris11 (where shell etc. work better), gcc does not work > while it works on solaris10 (where auto-completion is missing): > $ gcc -c test.c > /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/as: > unrecognized option `-m32' > Similar for "-m64". Thanks for testing. I'm not expert in Solaris, but the people from the OpenCSW build farm can probably help! For the shell issue on solaris10, this is precisely one of the remaining issue we have to fix before announcing the availability of the machines. Regards, Baptiste -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: From dam at opencsw.org Tue Sep 4 18:08:13 2018 From: dam at opencsw.org (Dagobert Michelsen) Date: Tue, 4 Sep 2018 18:08:13 +0200 Subject: gcc210, gcc211: gcc fails In-Reply-To: <20180904123514.GG24230@tuxmachine.localdomain> References: <20180904111000.GB9554@tuxmachine.localdomain> <20180904123514.GG24230@tuxmachine.localdomain> Message-ID: Hi, Am 04.09.2018 um 14:35 schrieb Baptiste Jonglez via buildfarm : > On 04-09-18, Carl Eugen Hoyos wrote: >> Thank you, connecting works! >> >> Just in case this isn't known: >> On solaris11 (where shell etc. work better), gcc does not work >> while it works on solaris10 (where auto-completion is missing): >> $ gcc -c test.c >> /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/as: >> unrecognized option `-m32' >> Similar for "-m64". > > Thanks for testing. I'm not expert in Solaris, but the people from the > OpenCSW build farm can probably help! Ok, found it, gcc implicitly tries to invoke Solaris ?as? which was not installed and fell back to GNU as which does not know the option. Installing "developer/assembler? fixed the issue. Please keep me posted if you find other oddities on the Solaris machines. Best regards ? Dago -- "You don't become great by trying to be great, you become great by wanting to do something, and then doing it so hard that you become great in the process." - xkcd #896 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 873 bytes Desc: Message signed with OpenPGP URL: From dam at opencsw.org Wed Sep 5 11:12:36 2018 From: dam at opencsw.org (Dagobert Michelsen) Date: Wed, 5 Sep 2018 11:12:36 +0200 Subject: gcc210, gcc211: gcc fails In-Reply-To: References: <20180904111000.GB9554@tuxmachine.localdomain> <20180904123514.GG24230@tuxmachine.localdomain> Message-ID: <5441E25D-988D-4066-961C-549D5F017127@opencsw.org> Hi Carl, Am 05.09.2018 um 00:15 schrieb Carl Eugen Hoyos : > Thank you, the remaining issue I currently see is that Solaris 10 (gcc210) > defaults to /bin/sh which makes running (FFmpeg) configure impossible > while the Solaris 11 system (gcc211) defaults to bash making everything > much easier. > > How is a non-root user supposed to overwrite the default shell? First let me understand what specifically the problem is: the default shell is the shell that is invoked when you log in. You can execute any shell you want by just executing it, e.g. by typing ?bash?. This is not directly related to what ?configure? does. Configure is a shell script that invokes the shell with something like #!/bin/sh On Solaris /bin/sh is not bash and this cannot be changed. Personally I would consider a configure script that uses bashisms defective. However, nowadays that many projects assume Unix == Linux and therefore sh == bash, so if upstream is unwilling I suggest to invoke configure with bash like bash configure ?prefix=? Best regards ? Dago -- "You don't become great by trying to be great, you become great by wanting to do something, and then doing it so hard that you become great in the process." - xkcd #896 From dam at opencsw.org Wed Sep 5 12:58:20 2018 From: dam at opencsw.org (Dagobert Michelsen) Date: Wed, 5 Sep 2018 12:58:20 +0200 Subject: gcc210, gcc211: gcc fails In-Reply-To: References: <20180904111000.GB9554@tuxmachine.localdomain> <20180904123514.GG24230@tuxmachine.localdomain> <5441E25D-988D-4066-961C-549D5F017127@opencsw.org> Message-ID: <28DBBB87-DCCA-4F30-A69F-B6377725F7B4@opencsw.org> Hi Carl, Am 05.09.2018 um 12:09 schrieb Carl Eugen Hoyos : > 2018-09-05 11:12 GMT+02:00, Dagobert Michelsen : >> First let me understand what specifically the problem is: the default >> shell is the shell that is invoked when you log in. You can execute >> any shell you want by just executing it, e.g. by typing ?bash?. >> >> This is not directly related to what ?configure? does. Configure is >> a shell script that invokes the shell with something like >> #!/bin/sh >> On Solaris /bin/sh is not bash and this cannot be changed. > > But it works fine on Solaris 11, ie all the scripts with shebang > "#!/bin/sh" (and many bashisms) work and both (FFmpeg's) > configure and the (bash-driven) version file creator scripts > and the (bash-driven) self-test scripts work on gcc211 but > not gcc210 where I currently have to edit the shebangs or > I cannot build and test. This is because /bin/sh on Solaris 11 is ksh93 and not an original Bourne Shell. This is an integral part of Solaris 10 and cannot be changed. Of course you can decide to port it to Solaris 11+, but porting to Solaris 10 requires that /bin/sh is a Bourne Shell. >> Personally I would consider a configure script that uses >> bashisms defective. > > This may be true but it was decided a decade ago that to build > FFmpeg, a bash-compatible shell is necessary (which is even > provided by aix). > Many battles have been fought about this, I believe it does not > make sense to start another one (too many real-life bugs exist > in FFmpeg). Probably not. Then it may be best to do something like perl -inpe "s,/bin/sh,/bin/bash,? configure ... The most elegant way would be if configure would detect shells and/or honour $SHELL and replace the shebang of these utility scripts with the configured shell. That way it could use bashisms and allow the user to cope with defunct shells in a standard upstream-compliant way. Best regards ? Dago -- "You don't become great by trying to be great, you become great by wanting to do something, and then doing it so hard that you become great in the process." - xkcd #896 From ceffmpeg at gmail.com Wed Sep 5 00:15:51 2018 From: ceffmpeg at gmail.com (Carl Eugen Hoyos) Date: Wed, 5 Sep 2018 00:15:51 +0200 Subject: gcc210, gcc211: gcc fails In-Reply-To: References: <20180904111000.GB9554@tuxmachine.localdomain> <20180904123514.GG24230@tuxmachine.localdomain> Message-ID: 2018-09-04 18:08 GMT+02:00, Dagobert Michelsen : > Hi, > > Am 04.09.2018 um 14:35 schrieb Baptiste Jonglez via buildfarm > : >> On 04-09-18, Carl Eugen Hoyos wrote: >>> Thank you, connecting works! >>> >>> Just in case this isn't known: >>> On solaris11 (where shell etc. work better), gcc does not work >>> while it works on solaris10 (where auto-completion is missing): >>> $ gcc -c test.c >>> /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/../../../../sparc-sun-solaris2.10/bin/as: >>> unrecognized option `-m32' >>> Similar for "-m64". >> >> Thanks for testing. I'm not expert in Solaris, but the people from the >> OpenCSW build farm can probably help! > > Ok, found it, gcc implicitly tries to invoke Solaris ?as? which was not > installed and fell back to GNU as which does not know the option. > Installing "developer/assembler? fixed the issue. Thank you, I can confirm that gcc works now. > Please keep me posted if you find other oddities on the Solaris machines. Thank you, the remaining issue I currently see is that Solaris 10 (gcc210) defaults to /bin/sh which makes running (FFmpeg) configure impossible while the Solaris 11 system (gcc211) defaults to bash making everything much easier. How is a non-root user supposed to overwrite the default shell? Carl Eugen From ceffmpeg at gmail.com Wed Sep 5 12:09:08 2018 From: ceffmpeg at gmail.com (Carl Eugen Hoyos) Date: Wed, 5 Sep 2018 12:09:08 +0200 Subject: gcc210, gcc211: gcc fails In-Reply-To: <5441E25D-988D-4066-961C-549D5F017127@opencsw.org> References: <20180904111000.GB9554@tuxmachine.localdomain> <20180904123514.GG24230@tuxmachine.localdomain> <5441E25D-988D-4066-961C-549D5F017127@opencsw.org> Message-ID: 2018-09-05 11:12 GMT+02:00, Dagobert Michelsen : > Am 05.09.2018 um 00:15 schrieb Carl Eugen Hoyos : >> Thank you, the remaining issue I currently see is that Solaris 10 >> (gcc210) defaults to /bin/sh which makes running (FFmpeg) >> configure impossible while the Solaris 11 system (gcc211) >> defaults to bash making everything much easier. >> >> How is a non-root user supposed to overwrite the default shell? > > First let me understand what specifically the problem is: the default > shell is the shell that is invoked when you log in. You can execute > any shell you want by just executing it, e.g. by typing ?bash?. > > This is not directly related to what ?configure? does. Configure is > a shell script that invokes the shell with something like > #!/bin/sh > On Solaris /bin/sh is not bash and this cannot be changed. But it works fine on Solaris 11, ie all the scripts with shebang "#!/bin/sh" (and many bashisms) work and both (FFmpeg's) configure and the (bash-driven) version file creator scripts and the (bash-driven) self-test scripts work on gcc211 but not gcc210 where I currently have to edit the shebangs or I cannot build and test. > Personally I would consider a configure script that uses > bashisms defective. This may be true but it was decided a decade ago that to build FFmpeg, a bash-compatible shell is necessary (which is even provided by aix). Many battles have been fought about this, I believe it does not make sense to start another one (too many real-life bugs exist in FFmpeg). > However, nowadays that many projects assume Unix == Linux > and therefore sh == bash, so if upstream is unwilling I suggest > to invoke configure with bash like bash configure ?prefix=? This was always necessary anyway, the issue is now that several necessary scripts exist in the FFmpeg source apart from configure. Carl Eugen From dam at opencsw.org Mon Sep 10 11:56:00 2018 From: dam at opencsw.org (Dagobert Michelsen) Date: Mon, 10 Sep 2018 11:56:00 +0200 Subject: install new pkgs! In-Reply-To: <6b427ca8-9b3c-9430-aa9b-87c95f948e14@opencsw.org> References: <6b427ca8-9b3c-9430-aa9b-87c95f948e14@opencsw.org> Message-ID: Hi Riccardo, Am 10.09.2018 um 11:28 schrieb Riccardo Mottola : > please install these packages! finally :) on all 4 machines. > > gnustep_back-0.26.2,REV=2018.09.08-SunOS5.10-i386-CSW.pkg.gz > gnustep_back-0.26.2,REV=2018.09.08-SunOS5.10-sparc-CSW.pkg.gz > gnustep_back-0.26.2,REV=2018.09.08-SunOS5.9-i386-CSW.pkg.gz > gnustep_back-0.26.2,REV=2018.09.08-SunOS5.9-sparc-CSW.pkg.gz Done. Best regards ? Dago -- "You don't become great by trying to be great, you become great by wanting to do something, and then doing it so hard that you become great in the process." - xkcd #896