6 years agoTry to make it easier for when I update the build script template.
Steve Youngs [Mon, 10 Mar 2014 09:09:43 +0000 (19:09 +1000)]
Try to make it easier for when I update the build script template.

It's most likely incredibly hacky, but this changeset gives a pkgusr a way
to incrementally and interactively apply updates to their build script
when the central template script in /etc/pkgusr/skel-package is updated.

If the central template script is newer than the pkgusr's a notice is
printed to their stdout on login that contains further instructions of how
to proceed.

The actual updating is done via #'ediff-files in an interactive SXEmacs
session.  That way the pkgusr can "cherrypick" the changes.

* lisp/bld-update.el: New.  Update build scripts via ediff.

* etc/pkgusr/handy_funcs (build-update): New.  Calls SXEmacs with
ediff-files on ~/build and /etc/pkgusr/skel-package/build
(checkupdates): Checks to see if the build script in
/etc/pkgusr/skel-package is newer than the one in $HOME

* etc/pkgusr/bash_profile (CHECKUPDATES): New.

Signed-off-by: Steve Youngs <>
6 years agoFix a bunch of little things from the previous changeset.
Steve Youngs [Mon, 10 Mar 2014 03:27:58 +0000 (13:27 +1000)]
Fix a bunch of little things from the previous changeset.

* usr/lib/pkgusr/chgrp: Fix shell quoting.
Better test for GIDs vs names

* usr/lib/pkgusr/chmod: Fix shell quoting.
Fix inf-loop in symbol->octal conversion.

* usr/lib/pkgusr/chown: Fix shell quoting.
Fix logic in user test.
Better tests for UID/GID vs names.

* usr/lib/pkgusr/install: Re-factor getopts cmdline parsing.
(_dirs): Use $pristinecmd instead of $@,
exit if not creating directory.
(_leading_dirs): Removed, not needed.
(_perms): Better test for symbol vs octal.
Call /bin/chmod directly in the hack-o-matic.
(_group): Better test for GID vs name
(_owner): Better test for UID vs name

* usr/lib/pkgusr/mkdir:  Remove spurious `fi'.
Logged 'install cmd suggestion' had incorrect -g option.

* usr/bin/forall_direntries_from (prune_prefixes): Add
/usr/lib/pkgusr.  Non-pkgusrs are not allowed in this directory

* usr/bin/grep_all_regular_files_for (prune_prefixes): Ditto.

* etc/pkgusr/bash_profile (SUPPRESSLOCALEDIR): Typo.

Signed-off-by: Steve Youngs <>
6 years agoMajor overhaul -- most scripts rewritten or updated.
Steve Youngs [Sun, 9 Mar 2014 06:33:48 +0000 (16:33 +1000)]
Major overhaul -- most scripts rewritten or updated.

* etc/pkgusr/bash_profile (LESSCHARSET): Everything's god-damned
UTF-8 these days
(PKG_CONFIG_PATH): More readable.

* etc/pkgusr/handy_funcs (find_pkg_deps): New.
(instg): New, for grepping install logs for '*** msg'.
(less-or-cat): New, for log viewing, does what it says.
(H-pkg): Much nicer format, pipe through less.
General tidy up.  Convert a lot of tiny functions to aliases, plus
added a couple of new ones... ipkg->showinst, gpkg->showgen

* etc/pkgusr/skel-package/build (SRCTREE): New.
(configure_commands): Use $SRCTREE
(update_commands): Use find_pkg_deps()

* etc/pkgusr/zsh/zsh-pkgtools (pkgwant): Use grep -w to eliminate
false positives.

* etc/sudoers.d/99-pkgusr: New.  Sudo config to allow pkgusrs to
run ldconfig as root.

* usr/bin/forall_direntries_from: Update Bastard settings.
Make -noleaf optional, default off.
Update comments.

* usr/bin/grep_all_regular_files_for: Ditto.

* usr/bin/list_suspicious_files: Ditto.

* usr/bin/header-symbol-search: Update Bastard settings.

* usr/bin/library-symbol-search: Ditto.

* usr/bin/ Get charset from `file -i' to see if
strings can be used.

* usr/bin/uninstall_package (run): Only remove directories if they
are empty.
Do NOT let root use this script.

* usr/lib/pkgusr/chgrp: Handle cases where chgrp options are used
and also where the user is not a member of the group trying to be
changed to.  Handle both names and GIDs
Don't let root use this script.

* usr/lib/pkgusr/chmod: Handle cases where chmod options are used
and also all set{uid,gid,sticky} bit operations.
Don't let root use this script.

* usr/lib/pkgusr/chown: Rewrite.  Handle all chown scenarios.
Don't let root use this script.

* usr/lib/pkgusr/mkdir: Comment about the irrelevance to my
Don't let root use this script.

* usr/lib/pkgusr/update-pkg-project (upd_pkg_deps): New, use it,
does what it says.

* usr/lib/pkgusr/install: Complete rewrite.
Don't let root use this script.

* usr/lib/pkgusr/ldconfig: New. Wrapper to run ldconfig via sudo.

* installdir.lst: Update.

* README: Update.

* LFS-pkgusr-hint.txt: Updated to current version of the
LFS hint.

Signed-off-by: Steve Youngs <>
6 years agoFix Zsh completion
Steve Youngs [Fri, 14 Feb 2014 03:39:51 +0000 (13:39 +1000)]
Fix Zsh completion

* zsh-completion:
  Rewrite Zsh completion

6 years agoRewrite Zsh completion
Steve Youngs [Fri, 14 Feb 2014 03:39:20 +0000 (13:39 +1000)]
Rewrite Zsh completion

* etc/pkgusr/zsh/_zsh-pkgtools: Rewrite.  User completion is done
on _JUST_ the package users and not all users.

Signed-off-by: Steve Youngs <>
6 years agooh crap... Typo
Steve Youngs [Thu, 13 Feb 2014 11:29:56 +0000 (21:29 +1000)]
oh crap... Typo

6 years agoMinor zsh updates
Steve Youngs [Thu, 13 Feb 2014 11:08:00 +0000 (21:08 +1000)]
Minor zsh updates

* minor_tweaks:
  Update the Zsh pkgtools.

6 years agoUpdate the Zsh pkgtools.
Steve Youngs [Thu, 13 Feb 2014 11:07:29 +0000 (21:07 +1000)]
Update the Zsh pkgtools.

Added a function to find reverse dependencies and fixed a couple of minor
niggling things.

* etc/pkgusr/zsh/zsh-pkgtools (pkgwant): New function that lists
packages that depend on a certain pkg.

* etc/pkgusr/zsh/zsh-pkgtools (H-pkg): Mention pkgwant().

* etc/pkgusr/zsh/zsh-pkgtools (xtar,vtar): Fix bug where xz files
weren't being detected.

* etc/pkgusr/zsh/zsh-pkgtools (pkg_ldconfig): Prevent spurious

* etc/pkgusr/zsh/_zsh-pkgtools: Tab-complete users for pkgwant.

Signed-off-by: Steve Youngs <>
7 years agoAdd rudimentary dep tracking
Steve Youngs [Sun, 3 Feb 2013 02:41:03 +0000 (12:41 +1000)]
Add rudimentary dep tracking

* pkgdeps:
  Add some rudimentary dependency tracking.

7 years agoAdd some rudimentary dependency tracking.
Steve Youngs [Sun, 3 Feb 2013 02:39:46 +0000 (12:39 +1000)]
Add some rudimentary dependency tracking.

"tracking" is probably an over-statement.  What this does is to store a
package's run-time so deps (gleaned from ldd) in its .project.  The build
script template has been updated to find/store them, and functions have
been added to handy_funcs to view them.

I've also gotten rid of most of the uses of pinky in the aux functions and
simplified them.

* etc/pkgusr/skel-package/.project (Deps): New.

* etc/pkgusr/skel-package/build (update_commands): Add magic to
find the run-time deps.

* etc/pkgusr/handy_funcs (deps): Show the dependencies.

* etc/pkgusr/handy_funcs (H-pkg): Add `deps'.

* etc/pkgusr/handy_funcs (showinst,showgen,srepo,trepo,web):
Remove unnecessary use of pinky.

* etc/pkgusr/zsh/_zsh-pkgtools: Add `dpkg'.

* etc/pkgusr/zsh/zsh-pkgtools (H-pkg): Add `dpkg'.

* etc/pkgusr/zsh/zsh-pkgtools (dpkg): New.

* etc/pkgusr/zsh/zsh-pkgtools (upkg,Lpkg,vpkg,ipkg,gpkg,wpkg,pkgrepo):
        Remove unnecessary use of pinky, sed, etc to simplify.

* lisp/pkgusr.el (pkgusr-pkg-deps): New.  Bind `H-c D' to it.

* lisp/pkgusr.el (pkgusr-pkg-url): Remove unnecessary use of pinky.

* lisp/pkgusr.el (pkgusr-pkg-repo): Ditto.

* lisp/pkgusr.el (pkgusr-pkg-version): Ditto.

* lisp/pkgusr.el (pkgusr-pkg-description): Ditto.

Signed-off-by: Steve Youngs <>
8 years agominor updates
Steve Youngs [Wed, 19 Dec 2012 00:55:29 +0000 (10:55 +1000)]
minor updates

Signed-off-by: Steve Youngs <>
8 years agoFix Tramp usage
Steve Youngs [Sat, 23 Jun 2012 04:06:55 +0000 (14:06 +1000)]
Fix Tramp usage

* tramp-fix:
  Fix Tramp usage.

8 years agoFix Tramp usage.
Steve Youngs [Sat, 23 Jun 2012 04:05:07 +0000 (14:05 +1000)]
Fix Tramp usage.

The Tramp in XEmacs packages is a gazillion years out of date, things have
changed... Most notably, the multi-hop syntax.

* lisp/pkgusr.el (pkgusr-find-file): Update for latest Tramp.

Signed-off-by: Steve Youngs <>
10 years agoInitial git import v0.5
Steve Youngs [Tue, 30 Nov 2010 15:25:40 +0000 (01:25 +1000)]
Initial git import

Signed-off-by: Steve Youngs <>