View previous topic :: View next topic |
Author |
Message |
jw5801 Apprentice
Joined: 12 Jun 2008 Posts: 251 Location: Melbourne, Australia
|
Posted: Tue Nov 03, 2009 12:53 pm Post subject: |
|
|
ppurka wrote: | jw5801 wrote: | Ah, cool. No bugs, but a feature request: Would it be possible/simple to print the time taken to emerge each package where you're currently printing 'Done!'? | This is now available in version 20091102 |
Excellent, thanks very much! I'm getting a syntax error with the new version though, not a very helpful error though...
Code: | jw@Andornor ~/scripts $ bash quietemerge-20091102
quietemerge-20091102: line 673: syntax error: unexpected end of file |
|
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Tue Nov 03, 2009 3:12 pm Post subject: |
|
|
jw5801 wrote: |
Excellent, thanks very much! I'm getting a syntax error with the new version though, not a very helpful error though...
Code: | jw@Andornor ~/scripts $ bash quietemerge-20091102
quietemerge-20091102: line 673: syntax error: unexpected end of file |
| I have no idea how that happened. The file quietemerge-20091102 that I uploaded to http://code.google.com/p/quietemerge/downloads/list does not have that error. On the other hand the file quietemerge has that error. Both of them should be the same file.
It is fixed now. It looks like in testing the script or just before uploading I might have pressed a key or something in gvim. That (unintentionally) altered some part of the script. Sorry for this. I hate bugs. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
jprobichaud Tux's lil' helper
Joined: 28 Jan 2009 Posts: 81 Location: Montreal, Qc
|
Posted: Wed Nov 04, 2009 10:31 pm Post subject: |
|
|
ppurka wrote: | Ha! Bug in genlop!! Code: | ~> genlop -t "=dev-libs/apr-1.3.9" --date 2 minute ago
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1039, <_GEN_0> line 23512.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1040, <_GEN_0> line 23512.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1042, <_GEN_0> line 23512.
* dev-libs/apr
Tue Nov 3 00:01:33 2009 >>> dev-libs/apr-1.3.9
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1078, <_GEN_0> line 23512.
merge time: 5 days, 5 hours, 1 minute and 33 seconds.
~> genlop -t "=dev-libs/apr-1.3.9"
* dev-libs/apr
Tue Nov 3 00:01:33 2009 >>> dev-libs/apr-1.3.9
merge time: 1 minute and 31 seconds. |
Updated Version 20091102 to work around genlop bug |
Which version of genlop do you have? I have 0.30.8-r2 and I can't produce this bug... |
|
Back to top |
|
|
jprobichaud Tux's lil' helper
Joined: 28 Jan 2009 Posts: 81 Location: Montreal, Qc
|
Posted: Wed Nov 04, 2009 11:07 pm Post subject: |
|
|
I spoke too soon... I now have the issue myself, with the latest quietemerge ...
Code: |
* Install app-emulation/emul-linux-x86-qtlibs-20081109. 49 seconds.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1075, <_GEN_0> line 103950.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1076, <_GEN_0> line 103950.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1078, <_GEN_0> line 103950.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1114, <_GEN_0> line 103950.
* Install net-fs/samba-libs-3.4.3-r1. 6 days, 22 hours, 46 minutes and 3 seconds.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1075, <_GEN_0> line 103959.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1076, <_GEN_0> line 103959.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1078, <_GEN_0> line 103959.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1114, <_GEN_0> line 103959.
* Install net-fs/samba-server-3.4.3-r1. 6 days, 22 hours, 57 minutes and 57 seconds.
|
And obviously, the 6 days isn't real!
I'll try to check genlop to see if I could find the bug |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Wed Nov 04, 2009 11:37 pm Post subject: |
|
|
jprobichaud wrote: | I spoke too soon... I now have the issue myself, with the latest quietemerge ...
Code: |
* Install app-emulation/emul-linux-x86-qtlibs-20081109. 49 seconds.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1075, <_GEN_0> line 103950.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1076, <_GEN_0> line 103950.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1078, <_GEN_0> line 103950.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1114, <_GEN_0> line 103950.
* Install net-fs/samba-libs-3.4.3-r1. 6 days, 22 hours, 46 minutes and 3 seconds.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1075, <_GEN_0> line 103959.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1076, <_GEN_0> line 103959.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1078, <_GEN_0> line 103959.
Use of uninitialized value in subtraction (-) at /usr/bin/genlop line 1114, <_GEN_0> line 103959.
* Install net-fs/samba-server-3.4.3-r1. 6 days, 22 hours, 57 minutes and 57 seconds.
|
And obviously, the 6 days isn't real!
I'll try to check genlop to see if I could find the bug | Hi,
The problem is that genlop gives the correct estimate if I increase the time in Code: | genlop -t "=cat/pkg-ver" --date 3 minute ago | This was set to 1 minute in an earlier version of the script, and I noticed that increasing it to 3 minutes is good enough to stop that error from occuring in genlop; except it surely isn't good enough for all cases.
I don't want to increase the time too much since then it would create a problem with my parsing of genlop's output, if you emerged the same package twice in a row within the same time limit. The other option is for me to implement a counter myself. But that is a really clumsy option, especially when genlop already does it. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
jprobichaud Tux's lil' helper
Joined: 28 Jan 2009 Posts: 81 Location: Montreal, Qc
|
Posted: Thu Nov 05, 2009 1:43 am Post subject: |
|
|
ppurka wrote: |
I don't want to increase the time too much since then it would create a problem with my parsing of genlop's output, if you emerged the same package twice in a row within the same time limit. The other option is for me to implement a counter myself. But that is a really clumsy option, especially when genlop already does it. |
Ah, I understand. What about doing:
Code: |
jrobicha@localhost ~ $ genlop -t kde-base/kwrited --date 1 day ago | tail -n 3 | head -n 1
Wed Nov 4 18:58:13 2009 >>> kde-base/kwrited-4.3.3
|
Actually, we can even skip the "--date ..." part. |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Thu Nov 05, 2009 1:47 am Post subject: |
|
|
jprobichaud wrote: | ppurka wrote: |
I don't want to increase the time too much since then it would create a problem with my parsing of genlop's output, if you emerged the same package twice in a row within the same time limit. The other option is for me to implement a counter myself. But that is a really clumsy option, especially when genlop already does it. |
Ah, I understand. What about doing:
Code: |
jrobicha@localhost ~ $ genlop -t kde-base/kwrited --date 1 day ago | tail -n 3 | head -n 1
Wed Nov 4 18:58:13 2009 >>> kde-base/kwrited-4.3.3
|
Actually, we can even skip the "--date ..." part. | Yes, something like that would be an option. Not that I am happy about using a bunch of pipes.
I will update the script with something similar to this. Let's hope genlop doesn't fail me again.
I don't want to skip the --date part. A simple thing like showing the merged time would be a highly inefficient operation if I don't give the --date part. I expect that genlop will take less time to parse emerge.log if I give it a date argument. If genlop still parses the whole emerge.log, then it is being really inefficient. Some people here have installations which are several years old and hence might have huge emerge.logs. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
jw5801 Apprentice
Joined: 12 Jun 2008 Posts: 251 Location: Melbourne, Australia
|
Posted: Thu Nov 05, 2009 2:50 am Post subject: |
|
|
ppurka wrote: | jw5801 wrote: |
Excellent, thanks very much! I'm getting a syntax error with the new version though, not a very helpful error though...
Code: | jw@Andornor ~/scripts $ bash quietemerge-20091102
quietemerge-20091102: line 673: syntax error: unexpected end of file |
| I have no idea how that happened. The file quietemerge-20091102 that I uploaded to http://code.google.com/p/quietemerge/downloads/list does not have that error. On the other hand the file quietemerge has that error. Both of them should be the same file.
It is fixed now. It looks like in testing the script or just before uploading I might have pressed a key or something in gvim. That (unintentionally) altered some part of the script. Sorry for this. I hate bugs. |
Yeah, dunno what would make it give that error. Possibly some not properly encoded character somewhere. Anyway, all better now!
Cheers!
jw |
|
Back to top |
|
|
jprobichaud Tux's lil' helper
Joined: 28 Jan 2009 Posts: 81 Location: Montreal, Qc
|
Posted: Thu Nov 05, 2009 3:07 am Post subject: |
|
|
ppurka wrote: |
I don't want to skip the --date part. A simple thing like showing the merged time would be a highly inefficient operation if I don't give the --date part. I expect that genlop will take less time to parse emerge.log if I give it a date argument. If genlop still parses the whole emerge.log, then it is being really inefficient. Some people here have installations which are several years old and hence might have huge emerge.logs. |
shocking truth: genlop is 'really' inefficient.
I've ran these commands multiple times and I'm giving you the representative numbers:
With the date argument:
Code: |
$ time genlop -t kde-base/kwrited --date 1 day ago | tail -n 3 | head -n 1
Wed Nov 4 18:58:13 2009 >>> kde-base/kwrited-4.3.3
real 0m1.935s
user 0m1.803s
sys 0m0.045s
|
And without:
Code: |
$ time genlop -t kde-base/kwrited | tail -n 3 | head -n 1
Wed Nov 4 18:58:13 2009 >>> kde-base/kwrited-4.3.3
real 0m1.580s
user 0m1.348s
sys 0m0.033s
|
It's faster because it doesn't have to do date comparison all the time...
I know by experience, genlop is highly inefficient. It's a really good tool that I like alot, but it is not coded in a way that is scalable. I've submitted a patch to improve it but I didn't had an answer yet. It's the 2nd time that I try to contribute to this tool, but to no avail... Maybe I should just 'fork' it. |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Thu Nov 05, 2009 3:49 am Post subject: |
|
|
jprobichaud wrote: | shocking truth: genlop is 'really' inefficient. | This is bad. Really bad Quote: | I know by experience, genlop is highly inefficient. It's a really good tool that I like alot, but it is not coded in a way that is scalable. I've submitted a patch to improve it but I didn't had an answer yet. It's the 2nd time that I try to contribute to this tool, but to no avail... Maybe I should just 'fork' it. | Maybe you can contact the author(s) directly by email? And point them to the bug reports perhaps? _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Thu Nov 05, 2009 5:11 am Post subject: |
|
|
Update: Version 20091105. Changelog:
* Work around the bug in genlop. Again.
* Make "Enter" select "yes" at the prompt when --ask is used. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
jw5801 Apprentice
Joined: 12 Jun 2008 Posts: 251 Location: Melbourne, Australia
|
Posted: Thu Nov 05, 2009 5:22 am Post subject: |
|
|
ppurka wrote: | jprobichaud wrote: | shocking truth: genlop is 'really' inefficient. | This is bad. Really bad Quote: | I know by experience, genlop is highly inefficient. It's a really good tool that I like alot, but it is not coded in a way that is scalable. I've submitted a patch to improve it but I didn't had an answer yet. It's the 2nd time that I try to contribute to this tool, but to no avail... Maybe I should just 'fork' it. | Maybe you can contact the author(s) directly by email? And point them to the bug reports perhaps? |
Maybe as a rather hacky workaround you could create a second file with just the last however many lines you need to check from /var/log/emerge.log and get genlop to parse that?
Code: | jw@Andornor ~ $ time genlop qt-webkit
* x11-libs/qt-webkit
Thu Nov 5 16:10:39 2009 >>> x11-libs/qt-webkit-4.5.3
real 0m2.162s
user 0m0.762s
sys 0m0.038s
jw@Andornor ~ $ tail -n100 /var/log/emerge.log > /tmp/quietemerge-short-emerge.log && time genlop -f /tmp/quietemerge-short-emerge.log qt-webkit
using logfile /tmp/quietemerge-short-emerge.log
* x11-libs/qt-webkit
Thu Nov 5 16:10:39 2009 >>> x11-libs/qt-webkit-4.5.3
real 0m0.346s
user 0m0.151s
sys 0m0.025s |
Seems to make a lot of difference. I'm currently compiling, so the real time is a bit skewed, but you can see the big drop in user time. |
|
Back to top |
|
|
jprobichaud Tux's lil' helper
Joined: 28 Jan 2009 Posts: 81 Location: Montreal, Qc
|
Posted: Thu Nov 05, 2009 5:47 am Post subject: |
|
|
ppurka wrote: | Maybe you can contact the author(s) directly by email? And point them to the bug reports perhaps? |
Every time the bug gets 'touched' they receive an email, maybe there will be some action at some point...
Cheers |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Thu Nov 05, 2009 6:21 am Post subject: |
|
|
jw5801 wrote: | Maybe as a rather hacky workaround you could create a second file with just the last however many lines you need to check from /var/log/emerge.log and get genlop to parse that? | Interesting. I will keep this in mind for a later revision. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Fri Nov 13, 2009 1:17 am Post subject: |
|
|
Update to version 20091112. Changelog:- Bug fix: ACCESS VIOLATION SUMMARY wasn't being caught. This might still be buggy :-/
- Bug fix: Some packages would output many lines on the countdown.
- Bug fix: --resume didn't use to update term title.
- Show preserved libs found and do conf update even if some package has failed.
- Show the # of failed, # of skipped and # of packages left to emerge.
- Thanks to jw5801 and jprobichaud for discussion and ideas regarding usage of genlop. genlop is slightly faster now in showing merge time.
- Broke off all common portions of the script into their own functions.
The failed packages, etc are shown like this: Code: | -------------------------------- Starting emerge -------------------------------
* Install rox-base/rox-lib-2.0.5-r1. Error!
* Skipped rox-base/thumbs-0.1.4 due to --keep-going
* Install app-admin/eselect-1.2.3. 11 seconds.
* [ ERROR!! ] Emerge: 1 failed, 1 skipped, 0 left
See /tmp/output.log.
* Preserved libraries found: See /tmp/output.log |
_________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
jw5801 Apprentice
Joined: 12 Jun 2008 Posts: 251 Location: Melbourne, Australia
|
Posted: Wed Nov 18, 2009 12:19 am Post subject: |
|
|
Hmm... interesting point raised by Patrick Lauer in a blog post.
I've just discovered the EMERGE_DEFAULT_OPTS make.conf variable, which comes in handy (before I was creating an alias to emerge, so that --ask was the default), however I've noticed that your script doesn't handle --ask when it's passed via EMERGE_DEFAULT_OPTS. If you can work out a way to detect --ask being passed in this form, that would be awesome, otherwise it might be best to add "--ignore-default-opts" to the emerge calls in the script. |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Wed Nov 18, 2009 1:28 am Post subject: |
|
|
jw5801 wrote: | Hmm... interesting point raised by Patrick Lauer in a blog post.
I've just discovered the EMERGE_DEFAULT_OPTS make.conf variable, which comes in handy (before I was creating an alias to emerge, so that --ask was the default), however I've noticed that your script doesn't handle --ask when it's passed via EMERGE_DEFAULT_OPTS. If you can work out a way to detect --ask being passed in this form, that would be awesome, otherwise it might be best to add "--ignore-default-opts" to the emerge calls in the script. | Does --pretend even work when you have --ask in your EMERGE_DEFAULT_OPTS?
I think I can not even ignore the EMERGE_DEFAULT_OPTS since some people may have options other than --ask (for example --with-bdeps=y) which do not affect this script, and which will actually enhance/modify their emerge behaviour. If I ignore the default opts, then this script will not work as I intended it to,- that is, to be a simple way of showing what emerge is doing without interfering with emerge itself.
EDIT: -p seems to work even with --ask in EMERGE_DEFAULT_OPTS. But, I can see where the problem will be. I will be backgrounding emerge by emerge -q pkg >& log_file and then emerge will wait for an answer. In fact, when I tried it out just now, the emerge process had stopped: Code: |
~> EMERGE_DEFAULT_OPTS="--ask" emerge -q rox >& /dev/null &
[1] 10673
~>
[1] + suspended (tty input) EMERGE_DEFAULT_OPTS="--ask" emerge -q rox >&/dev/null
| So, unless you foreground emerge you will not be able to pass any options to emerge. I think there may be other complications too. Best option would be to launch this script as EMERGE_DEFAULT_OPTS="" quietemerge <other options>. You can create an alias for this. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
jw5801 Apprentice
Joined: 12 Jun 2008 Posts: 251 Location: Melbourne, Australia
|
Posted: Wed Nov 18, 2009 1:47 am Post subject: |
|
|
ppurka wrote: | jw5801 wrote: | Hmm... interesting point raised by Patrick Lauer in a blog post.
I've just discovered the EMERGE_DEFAULT_OPTS make.conf variable, which comes in handy (before I was creating an alias to emerge, so that --ask was the default), however I've noticed that your script doesn't handle --ask when it's passed via EMERGE_DEFAULT_OPTS. If you can work out a way to detect --ask being passed in this form, that would be awesome, otherwise it might be best to add "--ignore-default-opts" to the emerge calls in the script. |
Does --pretend even work when you have --ask in your EMERGE_DEFAULT_OPTS? |
Yeah, if you pass both --pretend and --ask to emerge, it ignores --ask.
Quote: | I think I can not even ignore the EMERGE_DEFAULT_OPTS since some people may have options other than --ask (for example --with-bdeps=y) which do not affect this script, and which will actually enhance/modify their emerge behaviour. If I ignore the default opts, then this script will not work as I intended it to,- that is, to be a simple way of showing what emerge is doing without interfering with emerge itself. |
Yeah, that's a very good point. I wonder if there's a way to specifically ignore --ask, using sed, or some such? I'll try and hack something together to parse EMERGE_DEFAULT_OPTS and post back. |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Wed Nov 18, 2009 1:50 am Post subject: |
|
|
jw5801 wrote: | Yeah, that's a very good point. I wonder if there's a way to specifically ignore --ask, using sed, or some such? I'll try and hack something together to parse EMERGE_DEFAULT_OPTS and post back. | I am sorry, I just tried out some things and edited my earlier post. See the edit for why it is not a good idea to have --ask and background emerge.
BTW, you don't need to hack anything. My script already does all the necessary hacking when it parses the command line arguments. I won't need to rewrite much, but my above comments still hold. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
jw5801 Apprentice
Joined: 12 Jun 2008 Posts: 251 Location: Melbourne, Australia
|
Posted: Wed Nov 18, 2009 2:06 am Post subject: |
|
|
ppurka wrote: | EDIT: -p seems to work even with --ask in EMERGE_DEFAULT_OPTS. But, I can see where the problem will be. I will be backgrounding emerge by emerge -q pkg >& log_file and then emerge will wait for an answer. In fact, when I tried it out just now, the emerge process had stopped: Code: |
~> EMERGE_DEFAULT_OPTS="--ask" emerge -q rox >& /dev/null &
[1] 10673
~>
[1] + suspended (tty input) EMERGE_DEFAULT_OPTS="--ask" emerge -q rox >&/dev/null
| So, unless you foreground emerge you will not be able to pass any options to emerge. I think there may be other complications too. Best option would be to launch this script as EMERGE_DEFAULT_OPTS="" quietemerge <other options>. You can create an alias for this. |
Yeah, that's essentially what I've done.
Quote: | BTW, you don't need to hack anything. My script already does all the necessary hacking when it parses the command line arguments. I won't need to rewrite much, but my above comments still hold. |
I was thinking perhaps something to read EMERGE_DEFAULT_OPTS, catch everything that isn't '--ask' and add it to the options passed on the command line, then run emerge with --ignore-default-opts and the options parsed from EMERGE_DEFAULT_OPTS as well as those read from stdin? Obviously if --ask is detected in EMERGE_DEFAULT_OPTS you'd then set e_opt_ask=1.
I guess that's probably similar to what you've done for parsing the command line arguments. |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Wed Nov 18, 2009 4:58 am Post subject: |
|
|
jw5801 wrote: | I was thinking perhaps something to read EMERGE_DEFAULT_OPTS, catch everything that isn't '--ask' and add it to the options passed on the command line, then run emerge with --ignore-default-opts and the options parsed from EMERGE_DEFAULT_OPTS as well as those read from stdin? Obviously if --ask is detected in EMERGE_DEFAULT_OPTS you'd then set e_opt_ask=1.
I guess that's probably similar to what you've done for parsing the command line arguments. | Yes. I got another idea with not providing EMERGE_DEFAULT_OPTS in the emerge command line itself. I will try it out and update the script if it works. Otherwise I will use this method that you mention. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Fri Nov 20, 2009 5:32 am Post subject: |
|
|
Update to version 20091120: Changelog:
* Respect --ask in EMERGE_DEFAULT_OPTS
@jw5801 My idea didn't work out I wanted to do emerge <<<'yes' > log_file &. But it didn't work for some reason. I can't be bothered to figure out why. Your method works just fine. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
jw5801 Apprentice
Joined: 12 Jun 2008 Posts: 251 Location: Melbourne, Australia
|
Posted: Fri Nov 20, 2009 5:57 am Post subject: |
|
|
ppurka wrote: | Update to version 20091120: Changelog:
* Respect --ask in EMERGE_DEFAULT_OPTS
@jw5801 My idea didn't work out I wanted to do emerge <<<'yes' > log_file &. But it didn't work for some reason. I can't be bothered to figure out why. Your method works just fine. |
Oo, that would be very neat, not sure why it isn't working though... apparently emerge thinks it isn't running in a terminal if you do it that way. |
|
Back to top |
|
|
0x4a47 n00b
Joined: 24 Mar 2004 Posts: 18
|
Posted: Fri Nov 20, 2009 10:39 am Post subject: |
|
|
hi,
just found and tried quietemerge (Version: 20091120). i think it doesn't handle fetch restriction packages well:
Code: |
# quietemerge -u --deep --newuse world
------------------------------------------------------ Pretended emerge -------------------------------------------------------
These are the packages that would be merged, in order:
Calculating dependencies ... done!
[ebuild N F ] dev-java/ibm-jdk-bin-1.4.2.13 USE="X alsa -doc -examples -javacomm (-nsplugin)" 57,710 kB [0]
[ebuild R ] mail-client/claws-mail-3.7.3 USE="bogofilter crypt dbus dillo gnome gnutls imap ipv6 ldap nntp session smime spamassassin ssl xface -doc -pda -spell -startup-notification (-kde%*)" 0 kB [0=>1]
Total: 2 packages (1 new, 1 reinstall), Size of downloads: 57,710 kB
Fetch Restriction: 1 package (1 unsatisfied)
Portage tree and overlays:
[0] /usr/portage
[1] /usr/local/portage
Total ETA: 4 minutes.
------------------------------------------------------- Starting emerge -------------------------------------------------------
* Install dev-java/ibm-jdk-bin-1.4.2.13. Done!
|
of course nothing has been "done" because the package couldn't be downloaded. the other reinstall of "claws-mail" didn't process either of course. if i set "SHOW_MERGE_TIME=1" then it just exits without any information (no "done") of what just happened (because ibm-jdk-bin is new and has never been installed).
the file /tmp/output.log shows the whole message of the ibm-jdk-bin package and where to download it though.
is there a way to make quietemerge more friendly with such packages?
another thing is security related, called "symlink attack" (e.g. see http://www.infosecwriters.com/texts.php?op=display&id=159 ). could you please change the hardcoded TMPFILE=/tmp/output.log in line 314 to TMPFILE=`mktemp`. for users being able to find the tmp file location for debug output you'd have to output the path somewhere while running quietemerge. |
|
Back to top |
|
|
ppurka Advocate
Joined: 26 Dec 2004 Posts: 3256
|
Posted: Fri Nov 20, 2009 12:44 pm Post subject: |
|
|
0x4a47 wrote: | hi,
just found and tried quietemerge (Version: 20091120). i think it doesn't handle fetch restriction packages well:
Code: |
# quietemerge -u --deep --newuse world
------------------------------------------------------ Pretended emerge -------------------------------------------------------
These are the packages that would be merged, in order:
Calculating dependencies ... done!
[ebuild N F ] dev-java/ibm-jdk-bin-1.4.2.13 USE="X alsa -doc -examples -javacomm (-nsplugin)" 57,710 kB [0]
[ebuild R ] mail-client/claws-mail-3.7.3 USE="bogofilter crypt dbus dillo gnome gnutls imap ipv6 ldap nntp session smime spamassassin ssl xface -doc -pda -spell -startup-notification (-kde%*)" 0 kB [0=>1]
Total: 2 packages (1 new, 1 reinstall), Size of downloads: 57,710 kB
Fetch Restriction: 1 package (1 unsatisfied)
Portage tree and overlays:
[0] /usr/portage
[1] /usr/local/portage
Total ETA: 4 minutes.
------------------------------------------------------- Starting emerge -------------------------------------------------------
* Install dev-java/ibm-jdk-bin-1.4.2.13. Done!
|
of course nothing has been "done" because the package couldn't be downloaded. the other reinstall of "claws-mail" didn't process either of course. if i set "SHOW_MERGE_TIME=1" then it just exits without any information (no "done") of what just happened (because ibm-jdk-bin is new and has never been installed).
the file /tmp/output.log shows the whole message of the ibm-jdk-bin package and where to download it though.
is there a way to make quietemerge more friendly with such packages? | Very good! I think I don't have any fetch restricted files in my system which is why I never ran into this bug (I recently did a quietemerge -e world). I will update the script soon to catch such events.
Quote: | another thing is security related, called "symlink attack" (e.g. see http://www.infosecwriters.com/texts.php?op=display&id=159 ). could you please change the hardcoded TMPFILE=/tmp/output.log in line 314 to TMPFILE=`mktemp`. for users being able to find the tmp file location for debug output you'd have to output the path somewhere while running quietemerge. | That is something I was unaware of. The TMPFILE I create is created with the id of root and uses default permissions which gives only read attribute to other users. If you have another malicious user with root privileges then it is really unfortunate. I am against changing this to mktemp since it will create a bunch of files (over time) in /tmp which I want to avoid. Secondly there is also the case that the users will have to remember to read my output carefully everytime.
What I will do though is delete the file just before redirecting to it. That should mitigate any security concerns. There is a final security concern and that is what happens when your malicious root user changes the file during compilation. That is some vulnerability which can happen even with mktemp, so I don't think it is something which can be avoided.
I guess I can use mktemp for some other tmpfiles in the script. That I will do. _________________ emerge --quiet redefined | E17 vids: I, II | Now using kde5 | e is unstable :-/ |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|