view_app_file(), view_readmes(): This puts the dep info back into the
README display by cat'ing the README and grep'ing the .info file into a
temporary README. This doesn't touch the command line show_readme() as
that actually shows both the README and .info files already.
Thanks to Joni Martikainen for the suggestion.
(While editing the NEWS file, I also moved the -r item to FEATURES
since, while legal, -r combos weren't useful and now they are, so I
guess it's more a featureling than a modification.)
This primarily revises start_dialog_queue() to provide a download-only
dialog UI.
* global: make many more minor textual changes which replace 'build' and
'build queue' references with more general references including
'queue'
* info_item(): rename the 'Build' option to 'Process' (moving 'build'
into the new description of 'Download/build/install') as it always
could build or install and can now download, too.
* add_item_to_queue(),process_queue(): tweaked size of dialog widget
* start_dialog_queue(), process_queue(), main: rewrite
start_dialog_queue() as a menu which provides the download-only option
in addition to build, install, and cancel. Combine the two error
handling instances in it (which would have been three) and the one in
main into one chunk in process_queue().
* usr/doc/README{,-queuefiles}, usr/man/man*: more 'build'-related
textual tweaks
* usr/doc/THANKS: remembered to add the r905 RFE credit
Thanks to Mauro for discussion and review.
Make changes to reflect the logic that "'install' includes 'build'
includes 'download'" vs. "'build' and 'buildinstall' are separate
alternatives, both of which implicitly assume 'download'":
* Expand {QUEUE,}TYPE's possible values to include
'download|build|install' and create set_type() to set it in place of
'build|buildinstall' and using the DOWNLOADONLY variable and the
{B,I}FLAGs.
* main: delete {B,I}FLAG from the 'unset' section and from the option
parsing
* main, set_type(): break out the option testing error message and
TYPE assignments into set_type() which, rather than assigning to
TYPE in one place and testing {B,I}FLAG in another, assigns to TYPE
unless TYPE is already set and has a different value, in which case
we error out. (People should theoretically be able to call -d, -b,
-i and have each trump the previous ('-b foo -i foo' should
download, build, and install foo), but calling '-b foo -i bar' is
problematic at best.)
* process_queue(),start_dialog_queue(): replace 'buildinstall's with
'install's
* Clean up sbopkg's download/build/install logging and output:
* check_source(): log that we've found the source and return if we're
only doing a download.
* process_package(): s/Building/Processing/; use pre-existent
QUEUETYPE variable with new possible value of 'download'; say we've
downloaded and return 1 rather than just breaking.
* log_queuetype(): create by breaking out some redundancy in
process_queue() relating to the PRE-CHECK and SUMMARY logs and make
it handle 'Download only' in addition to build/install.
* process_queue(): remove references to 'PACKAGE BUILDING/INSTALLING'
because it can be downloading also and 'PACKAGE
DOWNLOADING/BUILDING/INSTALLING' seems excessive; use
log_queuetype()
* main: switch the -d and -D flags. It's not good to shuffle flags
generally, but -d is probably rarely used and download would better be
lowercase to be consistent with -b/uild and -i/nstall.
* main: while messing with options, sorted the getopts list, the option
parsing, and the help output as though it had been sorted with 'sort
-f' (previously, capitalized options were inconsistently sorted).
* src/usr/doc/NEWS,src/usr/man/man8/sbopkg.8: document user-visible
aspects of the above (-d/-D), tweaking the DESCRIPTION and the -b, -i,
-k and -R flags in the manual.
* build_package(): rename the bulk to process_package() and split out a
chunk as a new build_package(), causing a break out of the function if
DOWNLOADONLY is set and calling build_package() if not.
* build_package(): create from a piece of the earlier build_package().
* process_queue(): call process_package() rather than build_package().
* main: add DOWNLOADONLY and the -D flag.
* various: modify comments to reflect current code
Thanks to Mauro Giachero for this patch. :)
Don't assume the reader knows what "queuefiles", "rename files", or
"repo files" are (even though repos and queues are briefly mentioned in
"ABOUT"). Instead, describe what they're for.
check_for_updates(), view_readmes(), search_package(), string_search(),
remove_obsolete_sources(): add mindepth/maxdepth flags (using a DEPTH
variable in string_search() (because it varies) and a FIND_FLAGS
variable in check_for_updates() (because it's reused)) to the find
commands that operate in the REPO. This will avoid matching things or
trying to use things like openvswitch/xen/foo when xen/foo is intended.
Thanks to David Somero for reporting this.
and additional VERSION parms. Now examples in sbopkg(8) and README-repos
which depend on Slackware/SBo versions won't have to choose between
being updated manually or looking out-of-date but will be updated
automatically. The sbopkg VERSIONs are just to be more consistent with
other usage - while svn users won't get to have manual pages saying
'SVN', the manuals' talking about an sbopkg/SVN dir were wrong and the
other uses were at least inconsistent and it's all vcs-specific anyway.
This revision is a tip of the iceberg to a larger backend release
process change. Which. will. happen. any. day... now....
* sbopkg.conf.5: removed the reference to the -O flag in the WGETFLAGS
section, which hasn't been true since 0.20.0. I caught this in
sbopkg.conf almost a year ago in r817 but kept missing it here. Also
clarified where what-would-be-the-TMP-files go when CLEANUP is set
and TMP is ignored.
* sbopkg.8: two trivial tweaks.
i.e., rename usr/doc/queuefiles/* to usr/doc/contrib/queuefiles/*
usr/contrib will provide a place to add other contrib items, such as
bash completions.
The assignment to SRCNAME was trying to cut out the longest match of
'%/download' rather than cutting off '/download'. The notable practical
effect was not recognizing that we had a source in the cache, since
foo.tar.gz/download != foo.tar.gz, so downloading it again. (Again, I
wonder how this could have ever gotten through testing and, again, I
feel like this sort of botched parameter expansion has happened before,
but can't find it in the vcs.)
Sure seems like I tested this and it worked but I guess I focused on
view_queue() and list_packages() at the wrong time. I knew
remove_files() (via view_cache_dir()) had a quoted list since source
names can include any kind of lunacy, unlike package names, but forgot
to allow for it. So allow zero or more dquotes around LINE.
A cluster of changes related to creating symlinks in the
/etc/{renames,repos}.d directories that point to the corresponding
README in sbopkg's docdir and then generally updating most
build-related files and getting it all documented.
* 50-default: renamed to 50-default.renames
* NEWS: note symlink docs and rename issues
* README-renames: update to reflect new default filename and the fact
that the files must end in '.renames'.
* sbopkg.conf.5, sbopkg.8: update to reflect the new renames stuff
(and the earlier repo file/dir-related changes I forgot to document
there).
* sbopkg: get_new_name(), get_old_name(): have grep only look through
*.renames files and not, say, symlinks to READMEs.
* doinst.sh: bring into alignment with the current SBo template.
* tools/sbopkg.SlackBuild: make links from README-repos and
README-renames to READMEs in the corresponding /etc/sbopkg/*.d
directories.
* tools/slack-desc: bring into alignment with the current SBo
template.
* tools/sspm: update address, add printe() and use it.
If we keep the Id keyword in sbopkg's config file, users having their
'sbopkg.conf' Id'ed as 'sbopkg.conf.new' can cause confusion, as seen on
LQ. So call it 'sbopkg.conf' in revision control and append '.new' when
creating the package.
This is a cluster of changes that fell out from adding the new repo
file earlier.
* select_repository(): changed the function to create a larger box
with a different title and text and reordered menu items, both
vertically (via the previously changed repos.d files) and
horizontally (via reordering the item text). Also fixed a bug
discovered while testing, which involves changing the repo even when
directory creation is aborted. Now we store OLD_* vars and restore
them and re-run set_repo_vars() on abort.
* utilities_menu(): equivalent reordering.
* dir_init(): changed to produce hopefully better output rather than
wrongly implying that a directory that does exist doesn't. Also some
ad hackery for git. I'm tempted to throw the whole function out -
some programs might ask about mucking with a users $HOME but most
don't ask to create necessary system files.
* main: modified how we acquire REPO_NAME and REPO_BRANCH when
CUSTOMVER is set.
* NEWS: caught up with this and other recent changes.
Adding ponce's branch/fork thing of SBo for -current - it's supported as
far as including this to make it easier for people to use but no
further. Also got rid of most of the comments in the other files - there
are no user-serviceable parts inside and the filenames and descriptions
describe the files well enough, so this just keeps the key line. We'll
be linking the README in the repos.d directory so we can just say 'read
the README', especially as I recently changed the filename of the
README.
Set this to anything and avoid the stupid sucking side effects of
redirecting stderr.
Also abbreviated a comment right above what I added - it's not first run
but every run and the end of functions pretty much implies the start of
main.
/etc/sbopkg/repos.d/50-sb64.repo -> /etc/sbopkg/repos.d/70-sb64.repo
/etc/sbopkg/repos.d/60-local.repo -> /etc/sbopkg/repos.d/50-local.repo
This places the unsupported repo after the local repo and makes ?0 room
for Ponce's (also unsupported) repo.
Some more of this snuck back in or never got split in the first place -
this is just whitespace/escaped newline stuff except I did create a
local VER variable in get_source_names() to shorten a line with several
references to VERSION.
- KNOWN_ISSUES: rephrase the dialog navigation section in a way that
should be more suitable for the forthcoming (when it's ready)
Slackware release which will have an updated dialog. Rephrase the
certcheck section to discuss the prompt behavior and to point out
how the 'openssl-certs' package can help with, but not eliminate,
the issue.
- NEWS: add an item summarizing these document revisions and add the
branch ChangeLog sections.
When we started what became 0.30.0, we created an 0.27.0 stable
branch and the changes in that branch were only included in that
branch's ChangeLog.txt. Ditto the 0.33.1 security branch. But all
releases should be documented in the NEWS file, so now they are.
- README: add a block that describes all the other doc/ files, add a
note about GPG checking, change the name of the HELP section to
GETTING HELP.
Some of the doc files are mentioned in the CONTRIBUTING section but
a comprehensive list with descriptions in the GETTING HELP section
is more, um, helpful.
- README-*: tweak the wording, mostly to reflect the last commit's
name change, and reorder some text to put the emphasis on the files
rather than the directory. Also make a couple of other tweaks.
- THANKS: add a note about making corrections and slightly reorder the
text around that change for better flow and emphasis.
The .d is treated as an extension which triggers unwanted syntax
highlighting in vim - there are multiple ways around this but the .d
extension isn't necessary (queuefiles are also kept in a directory but
it isn't 'README-queuefiles.d' and the READMEs discuss files and formats
as much as directories) and removing it is the simplest, most effective,
most general change.
If foo and foobar were in a list and foobar was deselected, it would get
switched back on because foo would equally address foobar. So
s/$LINE/^$LINE /
This modifies list_packages() to call view_readmes() if VIEW_READMES is
set (and that variable was changed from PREVIEW_READMES). And it
documents it in the manual, help output, and NEWS.
- remove_files(): this had an 'Invert all' button which didn't
entirely work, as it simply toggled all on/off rather than
reflecting selection state (it was more 'Select/Deselect All'). By
changing the order of the buttons and using selection_state(), it
now can now 'Invert Sel'ections. The button order had to be juggled
because dialog only outputs a list on 0/3. So now it asks to delete
and defaults to Cancel with '--defaultno' rather than asking to keep
and defaulting to OK. Also cleaned up the dialog invocation in
general and cleaned up the sed/redirect creation of
$FILES_CHECKLIST. Also changed the 'ERROR' title for not finding
anything to 'NOTICE' since it's not an error to, e.g., not have any
obsolete sources.
- reverse_choices(): deleted since it was no longer used.
- remove_obsolete_sources(), browse_categories(): similar sed cleanups
as above.
- selection_state(): clarified comments, remembered to add LINE as a
local var, and anchored a regex whose $ got lost.
This creates selection_state() (so that the user's selections can be
preserved when the menu is regenerated in the loop) and breaks out
mk_pkg_lists() (so that, when packages are removed, they are also
removed from the menu). Before, this simply broke out of the loop but
that forced the user to re-enter the menu if they wanted to do anything
else with it.
Wrap list_packages()'s main dialog widget in a while loop so the user
can return to deletion selection after reading readmes. Also correct the
text in the widget (s/uninstall/remove./).
PKG_LIST is now no longer used directly but makes for easier
manipulation into both PKG_CHECKLIST for the dialog menu and README_LIST
(created via nvabt2n()) as input for view_readmes(). Added the extra
button that calls view_readmes() with README_LIST.
While I was here, changed the package removal confirmation dialog to use
'--separate-output' and dumped the tr that was removing the quotes
dialog otherwise puts in.