<div dir="ltr"><div class="gmail_default" style="font-family:tahoma,sans-serif"><span style="font-family:arial,sans-serif">On Sun, Aug 20, 2017 at 8:57 AM, Rich Shepard </span><span dir="ltr" style="font-family:arial,sans-serif"><<a href="mailto:rshepard@appl-ecosys.com" target="_blank">rshepard@appl-ecosys.com</a>></span><span style="font-family:arial,sans-serif"> wrote:</span><br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">  I've just upgraded my desktop server/workstation from 14.1 to 14.2. I have<br>
180 SBo packages installed and all (except postfix which I upgraded to get<br>
mail working again) need to be recompiled with the new libraries. This is<br>
separate from upgrading already installed packages using sbopkg ... I think.<br>
<br>
  Has anyone written a script that will go through each directory tree<br>
(e.g., Databases/, Developent/, GIS/) and recompile each package in there?<br></blockquote><div><br></div><div><div class="gmail_default" style="font-family:tahoma,sans-serif">​I have not done this.  But here's a quick and dirty that should do the job for you:</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">for i in $(find /var/log/packages -name *SBo -exec basename {} \; | sed -E 's/-(x86_64|i586|noarch).*// ' | sed 's/-[0-9._]*$//'); do sbopkg -e continue -Bi; done</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default" style="font-family:tahoma,sans-serif">This finds all SBo packages installed on your system according to /var/log/packages and strips all but the package names themselves out of the results.​  You can see the package names it finds by replacing the sbopkg command with an echo:</div><div class="gmail_default" style="font-family:tahoma,sans-serif"><br></div><div class="gmail_default"><font face="tahoma, sans-serif">for i in $(find /var/log/packages -name *SBo -exec basename {} \; | sed -E 's/-(x86_64|i586|noarch).*// ' | sed 's/-[0-9._]*$//'); do echo $i; done</font><br></div><div class="gmail_default"><font face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font face="tahoma, sans-serif">I have only tested it up to this point.  I didn't actually run sbopkg because I'm about to head out for the rest of the day.  But the sbopkg command included in the original one should download all newer versions than you have installed and rebuild them.  It will not skip existing versions so if you already have the latest version, it should not download it but still rebuild from source.  If for some reason you want to skip existing packages of the same version, add a '-k' option to the sbopkg command.</font></div><div class="gmail_default"><font face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font face="tahoma, sans-serif">There are some unknowns here for me.  I don't upgrade Slackware in place.  I have always reinstalled from scratch so I don't know how sbopkg handles this.  It's possible it will decide that since you are now looking at a different repository that all of your packages are out of date even if you have the same versions installed for some of them.  This would actually not be a bad thing since there have been some changes to the standard conventions in the 14.2 scripts over the 14.1 scripts.  Besides, the bulk of the time in this is going to be from rebuilding, not downloading.  Unless there is a bandwidth cap issue, re-downloading all slackbuilds would probably be the best way to go.</font></div><div class="gmail_default"><font face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font face="tahoma, sans-serif">Also, I'm assuming you have already updated sbopkg to the latest version, reconfigured sbopkg for 14.2, and run "sbopkg -r" before running this script.  What I put together will not do any of this for you.  It will only use your sbopkg installation as it is to download, build, and install packages.</font></div><div class="gmail_default"><font face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font face="tahoma, sans-serif">Feel free to give it a shot.  If you do, please let us know how it works out.</font></div></div><div class="gmail_default"><font face="tahoma, sans-serif"><br></font></div><div class="gmail_default"><font face="tahoma, sans-serif">Eric</font></div></div></div></div>