Commit Graph

756 Commits

Author SHA1 Message Date
slakmagik
497e34feaf two tweaks noticed in testing
Exported TMPDIR from sbopkg.conf.

Worded the error message on mktemp failure to hopefully be more helpful
by suggesting a likely cause of failure.
2011-02-05 03:19:19 +00:00
slakmagik
0cd0d3ae7f updated NEWS/THANKS to reflect r853 2011-02-05 03:19:14 +00:00
slakmagik
482aed1f9b revise documentation
Major reformatting and some textual modifications of
src/usr/doc/sbopkg-*/* including breaking out the credits from the
script into a detailed THANKS file, renaming and reformatting
ChangeLog.txt into NEWS, renaming the sample queuefiles from *.sqf to
*.sqf.sample, and making lesser modifications to all the other docs.
2011-02-05 03:18:48 +00:00
slakmagik
fa831cdd97 renamed ChangeLog.txt to NEWS 2011-02-05 03:18:40 +00:00
slakmagik
ecdc8e9e73 add Spanish translations of the manuals
Much thanks to Pablo Castano Fernandez for doing these translations.
2011-01-25 00:08:01 +00:00
slakmagik
c2590f6aca make assigning to TMPDIR in sbopkg.conf work
Move the assignment to SBOPKGTMP (via mktemp and its TMPDIR) to after
sourcing the config file. Thanks to Ken Roberts for reporting the issue
and providing a preliminary fix.

Also modify config_check() to check for obsolete variables as it does
for required variables. Also modify cleanup() to only try to remove
SBOPKGTMP if it exists.
2011-01-21 07:45:37 +00:00
slakmagik
74306e5424 rectify a documentation omission from r838
Remove documentation for removed config file option SBOPKGTMP and
document its replacement, TMPDIR. Add TMPDIR (and comments) to the
config file.

Thanks to dive for raising this issue.
2011-01-21 07:45:29 +00:00
slakmagik
50a005bc3e address the old bash/dir_init() part of issue 55
r845 addresses part of a problem with sbopkg code and bash 3x array
handling but not all of it. When creating an array with the += operator,
if the array creation code was triggered, the item doing so should have
been assigned to index 0 and, instead, an empty string was being
assigned to 0 and the item was being assigned to index 1, resulting in a
blank line being output before the proper item. Thanks to greinze for
pointing this out. Explicitly declaring the variable an array seems to
solve this.
2011-01-21 05:48:07 +00:00
slakmagik
5c2ae15a42 addressed issue 49 (TAG not passed to SlackBuild)
Modified build_package() to export whatever we're using for REPO_TAG as
TAG.
2010-12-02 00:49:41 +00:00
slakmagik
d51de9267c addressed issue 50 (-o does nothing)
Applied patch by Mauro which modified get_source_names() to only attempt
to ls SRCNAME if SRCNAME is not empty so that it doesn't list the entire
cache directory and break get_obsolete_sources(). This was triggered by
django, whose DOWNLOAD was given as
"http://www.djangoproject.com/download/1.2.3/tarball/"

Signed-off-by: slakmagik <slakmagik@gmail.com>
2010-12-02 00:49:34 +00:00
slakmagik
f17e5ae404 addressed issue 48 (MKDIR_PROMPT ignored)
r819 mostly replaced directory_checks() and ck_dir() with dir_init() but
forgot about the MKDIR_PROMPT variable used in ck_dir(). So again wrapped
the prompting in a conditional based on that setting and moved the
action outside the conditional.
2010-12-02 00:49:26 +00:00
slakmagik
dac7bd21c9 tag and release 0.34.0 2010-11-12 04:07:45 +00:00
slakmagik
23fc2049ca corrected a problem in dir_init() w/older bashes
Changed an implicit array reference to DI_OUTPUT to an explicit one.
Also made a potential error message declare its origin.
2010-11-12 03:15:55 +00:00
slakmagik
c066f66f9c added several package renames 2010-11-06 02:44:35 +00:00
slakmagik
5fb9fd2a2e corrected typo in English man page
Forgot this in the last commit. :( Thanks to Marie-Claude Collilieux for
spotting this.
2010-07-29 01:48:36 +00:00
slakmagik
8cc3142bc6 updated French man pages in trunk
Thanks to Marie-Claude Collilieux (also noted in the ChangeLog).
2010-07-29 01:38:16 +00:00
slakmagik
0862608534 added two package renames to both branches
Also added a rename to the bugfix branch which had been added to trunk after
the branch point - now the two files are in sync (just in case we do another
0.33.x release).
2010-07-28 04:15:52 +00:00
slakmagik
ed6bfaac16 updated French man pages
Thanks to Marie-Claude Collilieux.
2010-07-24 22:59:20 +00:00
chess.griffin
59a35dd5fa update the current-* files in /tools so sbopkg.org site will display correct version and download links 2010-07-20 19:30:59 +00:00
slakmagik
badc768e12 address security hole; overhaul tempfile handling
This revision corrects a security issue introduced in r762 and a trap
lost in r819. The basic idea is to revert the unsafe operator from r762
and then replace sbopkg's static SBOPKGTMP directory with a more secure,
volatile one created by mktemp and to use it and a new batch of traps to
simplify creation and cleanup of tmp dirs and files.

Tmp/trap/cleanup changes:

* /etc/sbopkg/sbopkg.conf.new: removed old SBOPKGTMP variable.
* config_check(): ditto. Also removed everything about unexpected files
  since the new SBOPKGTMP should take care of that.
* dir_init(): removed SBOPKGTMP variable and its use. Dumped the
  ALLOW_MULTI/mcookie part, since the new SBOPKGTMP should take care of
  that.
* script-wide: removed all calls to cleanup(), except for the new call
  from the traps.
* check_for_updates(): reverted the redirection operator
* build_package(): now uses the volatile SBOPKGTMP directly if/when we
  CLEANUP, rather than a volatile subdir in a static SBOPKGTMP.
* cleanup(): changed all the specific deletions of the contents of the
  old SBOPKGTMP to a general deletion of the entire new SBOPKGTMP.
  Dumped the ALLOW_MULTI stuff since it can't be triggered now (rm -r of
  a mktemp vs. a rmdir of an mcookie).
* control_c(): made a comment more specific; made the function a lot
  quieter; removed the cleanup/exit parts now trapped.
* main: added traps; assigned to SBOPKGTMP internally with a mktemp
  invocation that respects TMPDIR and moved up all SBOPKGTMP variables
  that had to wait on sourcing the config file since they no longer have
  to wait for that.

Unrelated changes that I tripped over along the way:

* pid_check(): combine PIDFILE declaration and assignment and shorten
  comment.
* info_item(): changed use of filenames to use of variables.
* sync_repo(): made an error condition exit 1 rather than 0.
* get_source(): changed PIDLIST to SBOPKG_PIDLIST like it is elsewhere.
* pick_file(): establish a RETURN trap to clean out files which are now
  referred to by variables rather than semi-random deletions of files
  referred to by filenames.
* process_queue(): now moves the built package from the tmpdir before
  installing rather than after so people's PACKAGE LOCATION lines aren't
  screwed up in their package db.
* main: combined a command and exit status check into the one 'if'. Also
  changed some more filenames to vars and removed two that didn't need
  to be declared there. (They can be local to their functions since r831
  or so.)
2010-07-20 02:05:28 +00:00
slakmagik
871eef1e2c made sbopkg's use of SRCDIR more transparent 2010-07-09 04:18:29 +00:00
slakmagik
e5318d9d8e allowed user to retry a failed https download
Added check_cert_prompt() which is called from get_source() which
prompts the user to append '--no-check-certificate' to WGETFLAGS if it
is not already present, and tries again. Previously, this was handled by
changing WGETFLAGS manually (which is still possible) but this handles
it interactively on a case by case basis and may help new users who
aren't aware that modifying WGETFLAGS would be a solution. Thanks to
Chess and Mauro for review and suggestions.
2010-07-09 04:18:13 +00:00
slakmagik
c7553e2101 made a couple of small aesthetic tweaks
Made sbopkg quit announcing its GPG checks twice and made it clear what
the build options line was in the summary output.
2010-06-29 14:56:57 +00:00
slakmagik
0bd695fa24 implemented CLI build option passing
Created parse_arguments() and modified main to call it and use_options()
to use the results. Updated the man page to reflect the changes.

Also caught up on the ChangeLog.
2010-06-29 14:56:51 +00:00
slakmagik
f5efdc1fea made it possible to specify the b,g,i,s flags multiple times
Previously, the user had to quote multiple arguments to a single flag.
This is still possible but now there's the option of using the flags
multiple times with a single arg to each with no quoting.
2010-06-29 14:56:46 +00:00
slakmagik
3a92318fa8 fixed command line search with the -s/-g flags
* search_package(): modified to return a sorted list
* gen_search_package(): moved my select menu to the new function.
* search_and_display(): new function which takes one or more arguments
  (literal or quoted globs) from the command line (-s) and uses
  search_package() to return an array of possible matches. If more than
  one app is returned, it presents the user with a menu. It displays the
  standard files associated with the app the user chooses. If
  search_package() only returns one app, it displays the associated
  files immediately. Despite being a new function, this merely restores
  old functionality (albeit somewhat improved) which had been broken.
* main: moved the old code from the SEARCH test block to the new
  function, replacing it with a call to that function.
* main: temporarily disabled pathname expansion in part of the GENSEARCH
  test block (and in part of the new function) so it wouldn't break if
  someone searched for 'fu*' with a 'fubar' file in the current
  directory.

Also modified the man page and one comment regarding details of these
flags/functions.
2010-06-29 14:56:42 +00:00
chess.griffin
29c2e449e5 fix an ARCH display issue in the updates screen; thanks to alkos333, Marc Payne, and David Spencer for confirming the issue, and thanks to David for testing the fix. 2010-06-18 01:49:31 +00:00
slakmagik
183aa1e372 created fix_urls() to handle quirky URLs
This broke out a sed line used in a couple of places (and which needed
to be extended) into a commented function. This specifically addresses
dzen2, as well as the zarafa problems found while dealing with dzen2.
Also tightened up a regex that caused problems while dealing with
similar quirks. Also modified comments in these areas.

Note that virtualbox (no longer a problem) and calcurse (now
specifically handled) were handled by two generic substitution commands,
which have been removed. If these commands were catching things besides
virtualbox and calcurse, this will cause a regression but it's not
considered likely; it will let us know what *needs* to be fixed; and it
should be easy to do so.
2010-06-17 19:06:08 +00:00
slakmagik
87ee1582a2 updated ChangeLog
Also removed a bit of brain damage (long day). Also, thanks to Chess and
Mauro for review and discussion of the prompt patches.
2010-06-15 00:18:40 +00:00
slakmagik
22f8de1ad5 revised error_read and its calls
Brought the error_read() calls more into conformance with standard
'read's. Two items still differ significantly: since the 'read' is in
error_read() and must handle a variety of prompts, prompts are done
before the call with 'printf's and since error_read is restricted to Y/N
values, the prompts have to use those for at least two of their options.

* error_read(): modified comments to reflect current status. Made read
  use '-e' like the rest of the reads. Got rid of the '$1's and 'eval's
  and used a simple assignment to REPLY. While the "(as specified with
  '-e')" echo should never happen unless ON_ERROR was set to
  stop/continue, it's still better to assign it to a variable tied
  directly to where it's supposed to occur.
2010-06-14 23:54:31 +00:00
slakmagik
69224bfd1c made user prompts more consistent
All direct uses of the 'read' builtin are now close to the following
format: possibly a block of statement text to the user output by
whatever means are handiest then, if not an 'anykey' prompt, a loop
which prompts and checks for valid input. The prompt is generally a
concise line in the forms of

    read -p "(A)pples or (O)ranges?: "
    read -n1 -p "Press any key to continue: "

Then a case statement handles the input in the format:

    A|a) apple_action ;;
    O|o) orange_action ;;
    *) unknown_response ;;

Also misc minor changes such as modifying wording or option letters,
changing linebreaks in case statements, etc.

Beyond simple wording changes in the statement text, there was also:

* remove_files(): removed the 'echo -e foo\n' which seemed unnecessary.
* use_options(): added the SAVEDOPT and QUEUEOPT variables which are
  used in read's prompt to customize it to the nature of the actually
  possible choices and removed the 'else's we don't need to display.
2010-06-14 23:54:26 +00:00
slakmagik
a21d663040 combined/revised install_package()/do_install()
* do_install(): moved a revised form into install_package(), removing
  this one.
* install_package(): tried to make sure we local-ized all the vars we
  need; saved two variables and two stat calls with one find; put a
  missing loop around our read prompt; made the key line the argument of
  read's -p flag; put the breaks and returns in the right places; and,
  in terms of what was brought in from do_install(): removed the unused
  loop from around the rename check and upgradepkg call; modified
  variables to use install_package()s and dequoted the surviving
  PKG_NAME.
2010-06-14 23:54:21 +00:00
slakmagik
2ee1c2345a reversed ChangeLog handling and updated it
Now we write changes to */src/usr/doc/ChangeLog.txt and generate
*/tools/ChangeLog-latest.txt. User visible changes since the last
release were added to the former.

Also re-added a re-re-rename that SBo keeps waffling about. ;)
2010-06-14 04:47:10 +00:00
chess.griffin
1ca33a80d9 fix URL to changelog at sbopkg.org (now a direct to ChangeLog in SVN) 2010-06-14 02:17:23 +00:00
slakmagik
e22a5a3574 replaced read fallbacks with new unknown_response()
* unknown_response(): new function to specify calling function and
  unknown input in the error message.
* any functions with '{error_,}read's in them: replaced 'local ANS/read
  ANS/case $ANS' with 'local REPLY/read/case $REPLY' and all '*) Unknown
  response' with '*) unknown_response'.
* several functions: added missing 'local REPLY'
* get_source(): removed stale 'ANS'
* read_info(): reformatted case statement

Also made two other probably unnecessary changes to help with hunting an
elusive bug.

* error_read(): modified to loudly bomb out if it's somehow acquired an
  impossible value.
* main: modified ON_ERROR so it's even more impossible for it to get the
  wrong value.
2010-06-12 01:37:44 +00:00
slakmagik
2447fd7a14 re{named,wrote} directory_checks() into dir_init()
Previously, the user was confronted with 7 prompts for directory
creation on first run to which they could hit enter or ^C in response.
The main purpose of this revision is to provide a nice printout and a
single question to which they can hit 'y/n'.

This led to a cascade of changes but it's all focused on establishing
sbopkg's needed directories and even results in fewer loc.

* directory_checks(): replaced with dir_init()
* config_check(): the ALLOW_MULTI check there was creating a directory
  rather than checking the config, so moved it to dir_init(). Also made
  the directory creation non-interactive since it's only creating a
  tmpdir in an already-created sbopkg directory.
* sync_repo(): moved the directory_check() call to select_repository()
  since being able to switch repos mid-run in the dialog
  select_repository() interface is the direct (and only) reason for
  calling dir_init() after startup. Removed the check_write() call and
  all the rest related to it as it was no longer needed.
* select_repository(): aside from gaining the item just mentioned, the
  'save setting' dialog was wrapped in a conditional based on whether
  the user actually chose to create the new repo dir.
* ck_dir(): removed. The seven calls in directory_checks() went with
  that function and the one in config_check() was also removed, since
  it's now handled by dir_init() non-interactively, leaving it unused.
* check_write(): removed. The single call from sync_repo() was removed,
  as discussed above, leaving it unused.
* pid_check(): now does a quick check for ALLOW_MULTI, making that a black
  box that does the right thing.
* main: as just mentioned, the ALLOW_MULTI check was moved into
  pid_check(). ALLOW_MULTI already gets special treatment in cleanup()
  and did in config_check() and does in dir_init(), so it might as well
  in pid_check() rather than being tested for in main. And, of course,
  replaced the directory_checks() call with one to dir_init().
2010-06-12 01:10:32 +00:00
slakmagik
7355d65b9f reordered sections and items in sbopkg.conf.new
Also reformatted comments to 72 cols. No textual/functional changes.
2010-06-12 01:00:21 +00:00
slakmagik
65289af69c modified parameter expansions in sbopkg.conf.new
Modified all parameter expansions to use default values.

Also tweaked some wording and spacing and fixed an sbopkg-breaking typo
from the last commit of this file.
2010-06-12 01:00:17 +00:00
slakmagik
a441d09eba Modified documentation to (almost) auto-update
Replaced variable data with 'xxxDATAxxx' tags. The tags are replaced by
the revised release script. This way, only that file needs to have,
e.g., 'size' changed and it will propagate to the README and both
manpages, rather than requiring three separate edits. Also, sbopkg.conf
and sbopkg.conf(5) will always automatically be in sync.
2010-06-08 02:59:46 +00:00
slakmagik
8ecc889b18 Copyrights, timeouts, typo
A shotgun commit that updates the copyright notices, bumps the default
timeouts of rsync and wget from 10/15 to 30 and fixes a doubled word.
2010-06-02 23:26:03 +00:00
slakmagik
7461e231fa Change DEBUG to DEBUG_UPDATES
Also shortened how we test for whether DEBUG(_UPDATES) is 0,1,2 and made
DEBUG_UPDATES use default values if unset, rather than being set
directly to a default value.

This entire variable may be removed shortly but, until then, there's
this.
2010-06-02 23:06:02 +00:00
slakmagik
4b35bdf032 Yet more manpage tweaks and cleanups
In HACKING, I moved two points, modified two points, moved and modified
one point, and added two points. I also separated all points with a
blank line as is consistent with the first list in the file.

In both man pages, I shortened most 'SlackBuilds.org' references to
'SBo'; shortened most 'SlackBuild scripts' references to 'SlackBuilds';
added some missed root prompt symbols; and added a few missed .Bs and
.Is or flipped a wrong one for the right one.

In sbopkg.conf.5, I added 'simultaneously' in ALLOW_MULTI; revised a
line in KEEPLOG, and one in LOGFILE; and flipped a couple of
inconsistent .PP/.RS pairs to .RS/.PP.

In sbopkg.8, I added a comma in a list; redid a sequence of bold/roman
in the '-e' arg list; changed 'another configuration file' to 'FILE';
and flipped the out-of-order -r/-R flags.
2010-06-02 23:05:51 +00:00
slakmagik
1978ab59a9 Correct a glitch in each man page
Started a sentence on another sentence's line in sbopkg.conf(5) and left
a separator at double lines when it should have been changed to single
in sbopkg(8).
2010-06-02 23:05:41 +00:00
slakmagik
355a3176fb Mostly font changes to both man pages
Also added several more points to HACKING which cover most of the other
changes - there are a few semantic/textual changes in here, too. The
largest changes are probably a making the 'type' of the conf values a
part of the 'template', moving and adding complete authors to both
2010-06-02 23:05:31 +00:00
slakmagik
b555c36c94 Do away with the LOGDIR variable
The revision removes LOGDIR from sbopkg, sbopkg.conf.new, and
sbopkg.conf(5) and adds the previously missing LOGFILE value to
sbopkg.conf(5). Now, with a test for a setting to absolute path, we use
the dirname of LOGFILE rather than LOGDIR.
2010-06-02 23:05:19 +00:00
slakmagik
123b3799bc Reorder options in sbopkg.conf(5)
Despite the huge diff, nothing was changed but alphabetizing the
options.
2010-06-02 23:05:09 +00:00
slakmagik
1e0fe22e0a Modified rendition of defaults in sbopkg.conf(5)
This makes all config file values be rendered the same way, with the entire
line in its own paragraph, which is set to fixed-width font (for postscript
output) and shortens and simplifies the intro line in keeping with the
whole-line consistency.
2010-06-02 23:05:01 +00:00
slakmagik
7e26d3b5d5 General textual revisions to manpages
Also corrected one point in HACKING relevant to earlier revisions and
added three more points relevant to this one. However, the vast majority
of changes in this revision don't fall under those three points or any
easily generalizable description. They're just attempts at more clarity,
consistency, accuracy, etc. Oh, and some punctuation, too.
2010-06-02 23:04:50 +00:00
slakmagik
3a57bf9bd4 Misc textual fixes/changes to the man pages
Fixed the NAME sections and man page cross references; tried to make
VARIABLES reflect whether they were used in an expanded sense or not;
changed an .IP list with non-standard bullets to a .TP with standard;
added standard NOTES section to sbopkg.conf and changed the .SH under it
to .SS and also changed the INSTRUCTIONS .SH in sbopkg(8) to an .SS of
DESCRIPTION; changed the FILES section from dashed .PP to undashed .TPs,
and changed the font to .I; changed the SEE ALSO section by removing
quotes, adding commas, reducing individual file references to the
general doc dir which was given a full path and changing its font to
.IR; and redid the tags in the OPTIONS section of sbopkg(8), making
replaceable args italic, changing the dashes, adding the missing
argument to the -f option.
2010-06-02 23:04:40 +00:00
slakmagik
bb498e4f15 Change size of tag in sbopkg.conf.5, s/.br/.IP/
Also did away with extraneous arguments to subsequent .TPs.
2010-06-02 23:04:30 +00:00