summaryrefslogtreecommitdiffstats
path: root/deps/util-linux
diff options
context:
space:
mode:
Diffstat (limited to 'deps/util-linux')
-rw-r--r--deps/util-linux/adjtimex_1.29-2.2.diff.gzbin0 -> 53236 bytes
-rw-r--r--deps/util-linux/bsdstrings-util-linux_overflow.diff.gzbin0 -> 434 bytes
-rw-r--r--deps/util-linux/ddate.1115
-rw-r--r--deps/util-linux/ddate.c399
-rw-r--r--deps/util-linux/doinst.sh.gzbin0 -> 427 bytes
-rw-r--r--deps/util-linux/pam.d-su/su11
-rw-r--r--deps/util-linux/pam.d-su/su-l6
-rw-r--r--deps/util-linux/pam.d/chfn6
-rw-r--r--deps/util-linux/pam.d/chsh6
-rw-r--r--deps/util-linux/pam.d/login15
-rw-r--r--deps/util-linux/pam.d/runuser5
-rw-r--r--deps/util-linux/pam.d/runuser-l4
-rw-r--r--deps/util-linux/rc.setterm13
-rw-r--r--deps/util-linux/scsi_ioctl.h48
-rw-r--r--deps/util-linux/setserial-rc.serial.diff.gzbin0 -> 729 bytes
-rw-r--r--deps/util-linux/setserial-undef_TIOCGHAYESESP.diff.gzbin0 -> 376 bytes
-rw-r--r--deps/util-linux/slack-desc19
-rw-r--r--deps/util-linux/su.default3
-rwxr-xr-xdeps/util-linux/util-linux.SlackBuild381
-rw-r--r--deps/util-linux/util-linux.do.not.list.ram.devices.diff.gzbin0 -> 275 bytes
-rw-r--r--deps/util-linux/util-linux.fdisk-no-solaris.diff.gzbin0 -> 335 bytes
-rw-r--r--deps/util-linux/ziptool-fix_build.patch.gzbin0 -> 386 bytes
22 files changed, 1031 insertions, 0 deletions
diff --git a/deps/util-linux/adjtimex_1.29-2.2.diff.gz b/deps/util-linux/adjtimex_1.29-2.2.diff.gz
new file mode 100644
index 0000000..832e728
--- /dev/null
+++ b/deps/util-linux/adjtimex_1.29-2.2.diff.gz
Binary files differ
diff --git a/deps/util-linux/bsdstrings-util-linux_overflow.diff.gz b/deps/util-linux/bsdstrings-util-linux_overflow.diff.gz
new file mode 100644
index 0000000..0aa3f6b
--- /dev/null
+++ b/deps/util-linux/bsdstrings-util-linux_overflow.diff.gz
Binary files differ
diff --git a/deps/util-linux/ddate.1 b/deps/util-linux/ddate.1
new file mode 100644
index 0000000..ec4ee81
--- /dev/null
+++ b/deps/util-linux/ddate.1
@@ -0,0 +1,115 @@
+.\" All Rites Reversed. This file is in the PUBLIC DOMAIN.
+.\" Kallisti.
+.TH DDATE 1 "Bureaucracy 3161" "ddate" "Emperor Norton User Command"
+.SH NAME
+ddate \- convert Gregorian dates to Discordian dates
+.SH SYNOPSIS
+.B ddate
+.RI [ \fB+\fPformat]
+.RI [ date ]
+.SH DESCRIPTION
+.B ddate
+prints the date in Discordian date format.
+.PP
+If called with no arguments,
+.B ddate
+will get the current system date, convert this to the Discordian
+date format and print this on the standard output. Alternatively, a
+Gregorian date may be specified on the command line, in the form of a numerical
+day, month and year.
+.PP
+If a format string is specified, the Discordian date will be printed in
+a format specified by the string. This mechanism works similarly to the
+format string mechanism of
+.B date(1),
+only almost completely differently. The fields are:
+.IP %A
+Full name of the day of the week (i.e., Sweetmorn)
+.IP %a
+Abbreviated name of the day of the week (i.e., SM)
+.IP %B
+Full name of the season (i.e., Chaos)
+.IP %b
+Abbreviated name of the season (i.e., Chs)
+.IP %d
+Cardinal number of day in season (i.e., 23)
+.IP %e
+Ordinal number of day in season (i.e., 23rd)
+.IP %H
+Name of current Holyday, if any
+.IP %N
+Magic code to prevent rest of format from being printed unless today is
+a Holyday.
+.IP %n
+Newline
+.IP %t
+Tab
+.IP %X
+Number of days remaining until X-Day. (Not valid if the SubGenius options
+are not compiled in.)
+.IP %{
+.IP %}
+Used to enclose the part of the string which is to be replaced with the
+words "St. Tib's Day" if the current day is St. Tib's Day.
+.IP %\.
+Try it and see.
+.bp
+.SH EXAMPLES
+.nf
+% ddate
+.br
+Sweetmorn, Bureaucracy 42, 3161 YOLD
+.PP
+% ddate +'Today is %{%A, the %e of %B%}, %Y. %N%nCelebrate %H'
+.br
+Today is Sweetmorn, the 42nd of Bureaucracy, 3161.
+.PP
+% ddate +"It's %{%A, the %e of %B%}, %Y. %N%nCelebrate %H" 26 9 1995
+.br
+It's Prickle-Prickle, the 50th of Bureaucracy, 3161.
+.br
+Celebrate Bureflux
+.PP
+% ddate +"Today's %{%A, the %e of %B%}, %Y. %N%nCelebrate %H" 29 2 1996
+.br
+Today's St. Tib's Day, 3162.
+.br
+
+.SH BUGS
+
+.B ddate(1)
+will produce undefined behavior if asked to produce the date for St. Tib's
+day and its format string does not contain the St. Tib's Day delimiters
+%{ and %}.
+
+.SH NOTE
+
+After `X-Day' passed without incident, the Church of the SubGenius
+declared that it had got the year upside down - X-Day is actually in 8661 AD
+rather than 1998 AD. Thus, the True X-Day is Cfn 40, 9827.
+
+.SH AUTHOR
+.nh
+Original program by Druel the Chaotic aka Jeremy Johnson (mpython@gnu.ai.mit.edu)
+.br
+Major rewrite by Lee H:. O:. Smith, KYTP, aka Andrew Bulhak (acb@dev.null.org)
+.br
+Gregorian B.C.E. dates fixed by Chaplain Nyan the Wiser, aka Dan Dart (ntw@dandart.co.uk)
+.br
+Five tons of flax.
+
+.SH DISTRIBUTION POLICY
+
+Public domain. All rites reversed.
+
+.SH SEE ALSO
+
+date(1),
+.br
+http://www.subgenius.com/
+.br
+Malaclypse the Younger,
+.I "Principia Discordia, Or How I Found Goddess And What I Did To Her When I Found Her"
+
+.SH AVAILABILITY
+The ddate command is available from https://github.com/bo0ts/ddate.
diff --git a/deps/util-linux/ddate.c b/deps/util-linux/ddate.c
new file mode 100644
index 0000000..4c2a0f8
--- /dev/null
+++ b/deps/util-linux/ddate.c
@@ -0,0 +1,399 @@
+/* $ DVCS ID: $jer|,523/lhos,KYTP!41023161\b"?" <<= DO NOT DELETE! */
+
+/* ddate.c .. converts boring normal dates to fun Discordian Date -><-
+ written the 65th day of The Aftermath in the Year of Our Lady of
+ Discord 3157 by Druel the Chaotic aka Jeremy Johnson aka
+ mpython@gnu.ai.mit.edu
+ 28 Sever St Apt #3
+ Worcester MA 01609
+
+ and I'm not responsible if this program messes anything up (except your
+ mind, I'm responsible for that)
+
+ (k) YOLD 3161 and all time before and after.
+ Reprint, reuse, and recycle what you wish.
+ This program is in the public domain. Distribute freely. Or not.
+
+ Majorly hacked, extended and bogotified/debogotified on
+ Sweetmorn, Bureaucracy 42, 3161 YOLD, by Lee H:. O:. Smith, KYTP,
+ aka Andrew Bulhak, aka acb@dev.null.org
+
+ Slightly hackled and crackled by a sweet firey stove on
+ Boomtime, the 53rd day of Bureaucracy in the YOLD 3179,
+ by Chaplain Nyan the Wiser, aka Dan Dart, aka ntw@dandart.co.uk
+
+ and I'm not responsible if this program messes anything up (except your
+ mind, I'm responsible for that) (and that goes for me as well --lhos)
+
+ Version history:
+ Bureflux 3161: First release of enhanced ddate with format strings
+ 59 Bcy, 3161: PRAISE_BOB and KILL_BOB options split, other minor
+ changes.
+ 53 Bcy, 3179: Fixed gregorian date conversions less than YOLD 1167
+
+ 1999-02-22 Arkadiusz Miskiewicz <misiek@pld.ORG.PL>
+ - added Native Language Support
+
+ 2000-03-17 Burt Holzman <holzman+ddate@gmail.com>
+ - added range checks for dates
+
+ 2014-06-07 William Woodruff <william@tuffbizz.com>
+ - removed gettext dependent locale code
+
+ 15th of Confusion, 3180:
+ - call out adherents of the wrong fruit
+
+ FIVE TONS OF FLAX
+*/
+
+/* configuration options VVVVV READ THIS!!! */
+
+/* If you wish ddate(1) to print the date in the same format as Druel's
+ * original ddate when called in immediate mode, define OLD_IMMEDIATE_FMT
+ */
+
+#define OLD_IMMEDIATE_FMT
+
+/* If you wish to use the US format for aneristic dates (m-d-y), as opposed to
+ * the Commonwealth format, define US_FORMAT.
+ */
+
+/* #define US_FORMAT */
+
+/* If you are ideologically, theologically or otherwise opposed to the
+ * Church of the SubGenius and do not wish your copy of ddate(1) to contain
+ * code for counting down to X-Day, undefine KILL_BOB */
+
+#define KILL_BOB 13013
+
+/* If you wish ddate(1) to contain SubGenius slogans, define PRAISE_BOB */
+
+/*#define PRAISE_BOB 13013*/
+
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <stdio.h>
+
+
+// work around includes and defines from formerly c.h
+#ifndef ARRAY_SIZE
+# define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
+#endif
+
+/* &a[0] degrades to a pointer: a different type from an array */
+# define __must_be_array(a) \
+ BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(__typeof__(a), __typeof__(&a[0])))
+
+#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
+
+/* work around hacks for standalone package */
+#define PACKAGE "ddate"
+#define PACKAGE_STRING "Stand Alone"
+
+#ifndef __GNUC__
+#define inline /* foo */
+#endif
+
+#ifdef KILL_BOB
+int xday_countdown(int yday, int year);
+#endif
+
+
+/* string constants */
+
+char *day_long[5] = {
+ "Sweetmorn", "Boomtime", "Pungenday", "Prickle-Prickle", "Setting Orange"
+};
+
+char *day_short[5] = {"SM","BT","PD","PP","SO"};
+
+char *season_long[5] = {
+ "Chaos", "Discord", "Confusion", "Bureaucracy", "The Aftermath"
+};
+
+char *season_short[5] = {"Chs", "Dsc", "Cfn", "Bcy", "Afm"};
+
+char *holyday[5][2] = {
+ { "Mungday", "Chaoflux" },
+ { "Mojoday", "Discoflux" },
+ { "Syaday", "Confuflux" },
+ { "Zaraday", "Bureflux" },
+ { "Maladay", "Afflux" }
+};
+
+struct disc_time {
+ int season; /* 0-4 */
+ int day; /* 0-72 */
+ int yday; /* 0-365 */
+ int year; /* 3066- */
+};
+
+char *excl[] = {
+ "Hail Eris!", "All Hail Discordia!", "Kallisti!", "Fnord.", "Or not.",
+ "Wibble.", "Pzat!", "P'tang!", "Frink!",
+#ifdef PRAISE_BOB
+ "Slack!", "Praise \"Bob\"!", "Or kill me.",
+#endif /* PRAISE_BOB */
+ /* randomness, from the Net and other places. Feel free to add (after
+ checking with the relevant authorities, of course). */
+ "Grudnuk demand sustenance!", "Keep the Lasagna flying!",
+ "You are what you see.",
+ "Or is it?", "This statement is false.",
+ "Lies and slander, sire!", "Hee hee hee!",
+#if defined(linux) || defined (__linux__) || defined (__linux)
+ "Hail Eris, Hack Linux!",
+#elif defined(__APPLE__)
+ "This Fruit is not the True Fruit of Discord.",
+#endif
+ ""
+};
+
+char default_fmt[] = "%{%A, %B %d%}, %Y YOLD";
+char *default_immediate_fmt=
+#ifdef OLD_IMMEDIATE_FMT
+"Today is %{%A, the %e day of %B%} in the YOLD %Y%N%nCelebrate %H"
+#else
+default_fmt
+#endif
+;
+
+#define DY(y) (y+1166)
+
+static inline char *ending(int i) {
+ return i/10==1?"th":(i%10==1?"st":(i%10==2?"nd":(i%10==3?"rd":"th")));
+}
+
+static inline int leapp(int i) {
+ return (!(DY(i)%4))&&((DY(i)%100)||(!(DY(i)%400)));
+}
+
+/* select a random string */
+static inline char *sel(char **strings, int num) {
+ return(strings[random()%num]);
+}
+
+void print(struct disc_time,char **); /* old */
+void format(char *buf, const char* fmt, struct disc_time dt);
+/* read a fortune file */
+int load_fortunes(char *fn, char *delim, char** result);
+
+struct disc_time convert(int,int);
+struct disc_time makeday(int,int,int);
+
+int
+main (int argc, char *argv[]) {
+ long t;
+ struct tm *eris;
+ int bob,raw;
+ struct disc_time hastur;
+ char schwa[23*17], *fnord=0;
+ int pi;
+ char *progname, *p;
+
+ progname = argv[0];
+ if ((p = strrchr(progname, '/')) != NULL)
+ progname = p+1;
+
+ srandom(time(NULL));
+ /* do args here */
+ for(pi=1; pi<argc; pi++) {
+ switch(argv[pi][0]) {
+ case '+': fnord=argv[pi]+1; break;
+ case '-':
+ switch(argv[pi][1]) {
+ case 'V':
+ printf(("%s (%s)\n"), progname, PACKAGE_STRING);
+ default: goto usage;
+ }
+ default: goto thud;
+ }
+ }
+
+ thud:
+ if (argc-pi==3){
+ int moe=atoi(argv[pi]), larry=atoi(argv[pi+1]), curly=atoi(argv[pi+2]);
+ hastur=makeday(
+#ifdef US_FORMAT
+ moe,larry,
+#else
+ larry,moe,
+#endif
+ curly);
+ if (hastur.season == -1) {
+ printf("Invalid date -- out of range\n");
+ return -1;
+ }
+ fnord=fnord?fnord:default_fmt;
+ } else if (argc!=pi) {
+ usage:
+ fprintf(stderr,("usage: %s [+format] [day month year]\n"), argv[0]);
+ exit(1);
+ } else {
+ t= time(NULL);
+ eris=localtime(&t);
+ bob=eris->tm_yday; /* days since Jan 1. */
+ raw=eris->tm_year; /* years since 1980 */
+ hastur=convert(bob,raw);
+ fnord=fnord?fnord:default_immediate_fmt;
+ }
+ format(schwa, fnord, hastur);
+ printf("%s\n", schwa);
+
+ return 0;
+}
+
+void format(char *buf, const char* fmt, struct disc_time dt)
+{
+ int tib_start=-1, tib_end=0;
+ int i, fmtlen=strlen(fmt);
+ char *bufptr=buf;
+
+/* fprintf(stderr, "format(%p, \"%s\", dt)\n", buf, fmt);*/
+
+ /* first, find extents of St. Tib's Day area, if defined */
+ for(i=0; i<fmtlen; i++) {
+ if(fmt[i]=='%') {
+ switch(fmt[i+1]) {
+ case 'A':
+ case 'a':
+ case 'd':
+ case 'e':
+ if(tib_start>0) tib_end=i+1;
+ else tib_start=i;
+ break;
+ case '{': tib_start=i; break;
+ case '}': tib_end=i+1; break;
+ }
+ }
+ }
+
+ /* now do the formatting */
+ buf[0]=0;
+
+ for(i=0; i<fmtlen; i++) {
+ if((i==tib_start) && (dt.day==-1)) {
+ /* handle St. Tib's Day */
+ strcpy(bufptr, ("St. Tib's Day"));
+ bufptr += strlen(bufptr);
+ i=tib_end;
+ } else {
+ if(fmt[i]=='%') {
+ char *wibble=0, snarf[23];
+ switch(fmt[++i]) {
+ case 'A': wibble=day_long[dt.yday%5]; break;
+ case 'a': wibble=day_short[dt.yday%5]; break;
+ case 'B': wibble=season_long[dt.season]; break;
+ case 'b': wibble=season_short[dt.season]; break;
+ case 'd': sprintf(snarf, "%d", dt.day+1); wibble=snarf; break;
+ case 'e': sprintf(snarf, "%d%s", dt.day+1, ending(dt.day+1));
+ wibble=snarf; break;
+ case 'H': if(dt.day==4||dt.day==49)
+ wibble=holyday[dt.season][dt.day==49]; break;
+ case 'N': if(dt.day!=4&&dt.day!=49) goto eschaton; break;
+ case 'n': *(bufptr++)='\n'; break;
+ case 't': *(bufptr++)='\t'; break;
+
+ case 'Y': sprintf(snarf, "%d", dt.year); wibble=snarf; break;
+ case '.': wibble=sel(excl, ARRAY_SIZE(excl));
+ break;
+#ifdef KILL_BOB
+ case 'X': sprintf(snarf, "%d",
+ xday_countdown(dt.yday, dt.year));
+ wibble = snarf; break;
+#endif /* KILL_BOB */
+ }
+ if(wibble) {
+/* fprintf(stderr, "wibble = (%s)\n", wibble);*/
+ strcpy(bufptr, wibble); bufptr+=strlen(wibble);
+ }
+ } else {
+ *(bufptr++) = fmt[i];
+ }
+ }
+ }
+ eschaton:
+ *(bufptr)=0;
+}
+
+struct disc_time makeday(int imonth,int iday,int iyear) /*i for input */
+{
+ struct disc_time funkychickens;
+
+ int cal[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
+ int dayspast=0;
+
+ memset(&funkychickens,0,sizeof(funkychickens));
+ /* basic range checks */
+ if (imonth < 1 || imonth > 12 || iyear == 0) {
+ funkychickens.season = -1;
+ return funkychickens;
+ }
+ if (iday < 1 || iday > cal[imonth-1]) {
+ if (!(imonth == 2 && iday == 29 && iyear%4 == 0 &&
+ (iyear%100 != 0 || iyear%400 == 0))) {
+ funkychickens.season = -1;
+ return funkychickens;
+ }
+ }
+
+ imonth--;
+ /* note: gregorian year 0 doesn't exist so
+ * add one if user specifies a year less than 0 */
+ funkychickens.year= iyear+1166 + ((0 > iyear)?1:0);
+ while(imonth>0) { dayspast+=cal[--imonth]; }
+ funkychickens.day=dayspast+iday-1;
+ funkychickens.season=0;
+ if((funkychickens.year%4)==2) {
+ if (funkychickens.day==59 && iday==29) funkychickens.day=-1;
+ }
+ funkychickens.yday=funkychickens.day;
+/* note: EQUAL SIGN...hopefully that fixes it */
+ while(funkychickens.day>=73) {
+ funkychickens.season++;
+ funkychickens.day-=73;
+ }
+ return funkychickens;
+}
+
+struct disc_time convert(int nday, int nyear)
+{ struct disc_time funkychickens;
+
+ funkychickens.year = nyear+3066;
+ funkychickens.day=nday;
+ funkychickens.season=0;
+ if ((funkychickens.year%4)==2)
+ {if (funkychickens.day==59)
+ funkychickens.day=-1;
+ else if (funkychickens.day >59)
+ funkychickens.day-=1;
+ }
+ funkychickens.yday=funkychickens.day;
+ while (funkychickens.day>=73)
+ { funkychickens.season++;
+ funkychickens.day-=73;
+ }
+ return funkychickens;
+
+ }
+
+#ifdef KILL_BOB
+
+/* Code for counting down to X-Day, X-Day being Cfn 40, 3164
+ *
+ * After `X-Day' passed without incident, the CoSG declared that it had
+ * got the year upside down --- X-Day is actually in 8661 AD rather than
+ * 1998 AD.
+ *
+ * Thus, the True X-Day is Cfn 40, 9827.
+ *
+ */
+
+int xday_countdown(int yday, int year) {
+ int r=(185-yday)+(((yday<59)&&(leapp(year)))?1:0);
+ while(year<9827) r+=(leapp(++year)?366:365);
+ while(year>9827) r-=(leapp(year--)?366:365);
+ return r;
+}
+
+#endif
diff --git a/deps/util-linux/doinst.sh.gz b/deps/util-linux/doinst.sh.gz
new file mode 100644
index 0000000..80b759d
--- /dev/null
+++ b/deps/util-linux/doinst.sh.gz
Binary files differ
diff --git a/deps/util-linux/pam.d-su/su b/deps/util-linux/pam.d-su/su
new file mode 100644
index 0000000..c28a252
--- /dev/null
+++ b/deps/util-linux/pam.d-su/su
@@ -0,0 +1,11 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+# Uncomment the following line to implicitly trust users in the "wheel" group.
+#auth sufficient pam_wheel.so trust use_uid
+# Uncomment the following line to require a user to be in the "wheel" group.
+#auth required pam_wheel.so use_uid
+auth include system-auth
+account include system-auth
+password include system-auth
+session include system-auth
+session optional pam_xauth.so
diff --git a/deps/util-linux/pam.d-su/su-l b/deps/util-linux/pam.d-su/su-l
new file mode 100644
index 0000000..654dc24
--- /dev/null
+++ b/deps/util-linux/pam.d-su/su-l
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth include su
+account include su
+password include su
+session optional pam_keyinit.so force revoke
+session include su
diff --git a/deps/util-linux/pam.d/chfn b/deps/util-linux/pam.d/chfn
new file mode 100644
index 0000000..2dbc0aa
--- /dev/null
+++ b/deps/util-linux/pam.d/chfn
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth include system-auth
+account include system-auth
+password include system-auth
+session include system-auth
diff --git a/deps/util-linux/pam.d/chsh b/deps/util-linux/pam.d/chsh
new file mode 100644
index 0000000..2dbc0aa
--- /dev/null
+++ b/deps/util-linux/pam.d/chsh
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth include system-auth
+account include system-auth
+password include system-auth
+session include system-auth
diff --git a/deps/util-linux/pam.d/login b/deps/util-linux/pam.d/login
new file mode 100644
index 0000000..93923f9
--- /dev/null
+++ b/deps/util-linux/pam.d/login
@@ -0,0 +1,15 @@
+#%PAM-1.0
+auth required pam_securetty.so
+# To set a limit on failed authentications, the pam_tally2 module
+# can be enabled. See pam_tally2(8) for options.
+#auth required pam_tally2.so deny=4 unlock_time=1200
+auth include system-auth
+auth include postlogin
+account required pam_nologin.so
+account include system-auth
+password include system-auth
+session include system-auth
+session include postlogin
+session required pam_loginuid.so
+-session optional pam_ck_connector.so nox11
+-session optional pam_elogind.so
diff --git a/deps/util-linux/pam.d/runuser b/deps/util-linux/pam.d/runuser
new file mode 100644
index 0000000..5344abf
--- /dev/null
+++ b/deps/util-linux/pam.d/runuser
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+session optional pam_keyinit.so revoke
+session required pam_limits.so
+session required pam_unix.so
diff --git a/deps/util-linux/pam.d/runuser-l b/deps/util-linux/pam.d/runuser-l
new file mode 100644
index 0000000..5ba318a
--- /dev/null
+++ b/deps/util-linux/pam.d/runuser-l
@@ -0,0 +1,4 @@
+#%PAM-1.0
+auth include runuser
+session optional pam_keyinit.so force revoke
+session include runuser
diff --git a/deps/util-linux/rc.setterm b/deps/util-linux/rc.setterm
new file mode 100644
index 0000000..b98b102
--- /dev/null
+++ b/deps/util-linux/rc.setterm
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+# This file provides the command line for the setterm utility to set the
+# terminal attributes (primarily used for screen blanking and power
+# management).
+
+# Screen blanks after 15 minutes idle time, and powers down in one hour
+# if the kernel supports APM or ACPI power management (default setting):
+/bin/setterm -blank 15 -powersave powerdown -powerdown 60
+
+# Screen does not blank or use power management features:
+#/bin/setterm -blank 0 -powersave off -powerdown 0
+
diff --git a/deps/util-linux/scsi_ioctl.h b/deps/util-linux/scsi_ioctl.h
new file mode 100644
index 0000000..edb9525
--- /dev/null
+++ b/deps/util-linux/scsi_ioctl.h
@@ -0,0 +1,48 @@
+#ifndef _SCSI_IOCTL_H
+#define _SCSI_IOCTL_H
+
+#define SCSI_IOCTL_SEND_COMMAND 1
+#define SCSI_IOCTL_TEST_UNIT_READY 2
+#define SCSI_IOCTL_BENCHMARK_COMMAND 3
+#define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */
+#define SCSI_IOCTL_START_UNIT 5
+#define SCSI_IOCTL_STOP_UNIT 6
+/* The door lock/unlock constants are compatible with Sun constants for
+ the cdrom */
+#define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */
+#define SCSI_IOCTL_DOORUNLOCK 0x5381 /* unlock the mechanism */
+
+#define SCSI_REMOVAL_PREVENT 1
+#define SCSI_REMOVAL_ALLOW 0
+
+#ifdef __KERNEL__
+
+struct scsi_device;
+
+/*
+ * Structures used for scsi_ioctl et al.
+ */
+
+typedef struct scsi_ioctl_command {
+ unsigned int inlen;
+ unsigned int outlen;
+ unsigned char data[0];
+} Scsi_Ioctl_Command;
+
+typedef struct scsi_idlun {
+ __u32 dev_id;
+ __u32 host_unique_id;
+} Scsi_Idlun;
+
+/* Fibre Channel WWN, port_id struct */
+typedef struct scsi_fctargaddress {
+ __u32 host_port_id;
+ unsigned char host_wwn[8]; // include NULL term.
+} Scsi_FCTargAddress;
+
+extern int scsi_ioctl(struct scsi_device *, int, void __user *);
+extern int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd,
+ void __user *arg, struct file *filp);
+
+#endif /* __KERNEL__ */
+#endif /* _SCSI_IOCTL_H */
diff --git a/deps/util-linux/setserial-rc.serial.diff.gz b/deps/util-linux/setserial-rc.serial.diff.gz
new file mode 100644
index 0000000..d64124c
--- /dev/null
+++ b/deps/util-linux/setserial-rc.serial.diff.gz
Binary files differ
diff --git a/deps/util-linux/setserial-undef_TIOCGHAYESESP.diff.gz b/deps/util-linux/setserial-undef_TIOCGHAYESESP.diff.gz
new file mode 100644
index 0000000..2ea4d08
--- /dev/null
+++ b/deps/util-linux/setserial-undef_TIOCGHAYESESP.diff.gz
Binary files differ
diff --git a/deps/util-linux/slack-desc b/deps/util-linux/slack-desc
new file mode 100644
index 0000000..2ddf351
--- /dev/null
+++ b/deps/util-linux/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------|
+util-linux: util-linux (a huge collection of essential utilities)
+util-linux:
+util-linux: The util-linux package is a huge collection of random utilities
+util-linux: that are essential to run a Linux system.
+util-linux:
+util-linux: Homepage: https://www.kernel.org/pub/linux/utils/util-linux/
+util-linux:
+util-linux:
+util-linux:
+util-linux:
+util-linux:
diff --git a/deps/util-linux/su.default b/deps/util-linux/su.default
new file mode 100644
index 0000000..73fb50a
--- /dev/null
+++ b/deps/util-linux/su.default
@@ -0,0 +1,3 @@
+# Ensure that ENV_SUPATH from /etc/login.defs is used for the $PATH when
+# 'su' is used. Otherwise /sbin paths will be missing unless 'su -' is used.
+ALWAYS_SET_PATH yes
diff --git a/deps/util-linux/util-linux.SlackBuild b/deps/util-linux/util-linux.SlackBuild
new file mode 100755
index 0000000..3c33fe5
--- /dev/null
+++ b/deps/util-linux/util-linux.SlackBuild
@@ -0,0 +1,381 @@
+#!/bin/bash
+
+# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2017, 2018, 2020 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Slackware build script for util-linux
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=util-linux
+VERSION=${VERSION:-$(echo util-linux*.tar.xz | cut -d - -f 3 | rev | cut -f 3- -d . | rev)}
+BUILD=${BUILD:-2}
+
+ADJTIMEXVERS=1.29
+SETSERIALVERS=2.17
+ZIPTOOLVERS=1.4.0
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-util-linux
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP || exit 1
+rm -rf util-linux-$VERSION
+tar xvf $CWD/util-linux-$VERSION.tar.xz || exit 1
+cd util-linux-$VERSION || exit 1
+chown -R root.root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# Choose correct options depending on whether PAM is installed:
+if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
+ LOGIN_OPTIONS=""
+ # By default, don't use the util-linux version of /bin/su:
+ SHIP_SU=${SHIP_SU:-NO}
+ # Add /etc/pam.d config files:
+ rm -rf $PKG/etc/pam.d
+ mkdir -p $PKG/etc/pam.d
+ for file in $CWD/pam.d/* ; do
+ cp -a ${file} $PKG/etc/pam.d/
+ done
+ if [ "$SHIP_SU" = "YES" ]; then
+ # Add su default file to ensure using ENV_SUPATH with 'su':
+ mkdir -p $PKG/etc/default
+ cp -a $CWD/su.default $PKG/etc/default/su.new
+ chown root:root $PKG/etc/default/su.new
+ chmod 644 $PKG/etc/default/su.new
+ # Add su /etc/pam.d files:
+ cp -a $CWD/pam.d-su/* $PKG/etc/pam.d/
+ fi
+ # Ensure correct perms/ownership on files in /etc/pam.d/:
+ chown root:root $PKG/etc/pam.d/*
+ chmod 644 $PKG/etc/pam.d/*
+ # Don't clobber existing config files:
+ find $PKG/etc/pam.d -type f -exec mv {} {}.new \;
+else
+ # Don't use the util-linux version of /bin/su.
+ # It can't be built without PAM anyway.
+ SHIP_SU=NO
+ LOGIN_OPTIONS="--disable-login"
+fi
+
+# Changing the fdisk -l output (this was done prior to util-linux-ng) broke
+# our installation scripts, so we have changed the name of partition type
+# 83 back to "Linux swap":
+zcat $CWD/util-linux.fdisk-no-solaris.diff.gz | patch -p1 --verbose || exit 1
+
+# Revert to the behavior of earlier versions of fdisk which did not list the
+# /dev/ram* devices in 'fdisk -l' output:
+zcat $CWD/util-linux.do.not.list.ram.devices.diff.gz | patch -p1 --verbose || exit 1
+
+# This just call the configure script with $1 either being 2 for python2
+# or 3 for python3.
+#
+# The releasenotes say to use --runstatedir, but it doesn't work and the
+# configure script fails. So we'll leave things using localstatedir, but
+# check again later:
+#
+# --runstatedir=/run
+configure_with_python(){
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/util-linux-$VERSION \
+ --disable-static \
+ --enable-agetty \
+ --enable-kill \
+ --disable-last \
+ --enable-libmount-support-mtab \
+ --enable-line \
+ --enable-mesg \
+ --enable-partx \
+ --enable-pg \
+ --enable-raw \
+ --enable-rename \
+ $LOGIN_OPTIONS \
+ --enable-schedutils \
+ --enable-wall \
+ --enable-write \
+ --enable-use-tty-group \
+ --enable-libblkid \
+ --enable-libmount \
+ --enable-libuuid \
+ --disable-uuidd \
+ --with-python=$1 \
+ --build=$ARCH-slackware-linux
+}
+
+CFLAGS="$SLKCFLAGS" \
+ configure_with_python 2 || exit 1
+
+make $NUMJOBS || make || exit 1
+make install $NUMJOBS DESTDIR=$PKG || exit 1
+
+# These need to be setuid root to work properly (only built for PAM):
+if [ -r $PKG/usr/bin/chfn ]; then
+ chmod 4711 $PKG/usr/bin/chfn
+fi
+if [ -r $PKG/usr/bin/chsh ]; then
+ chmod 4711 $PKG/usr/bin/chsh
+fi
+
+# Build python3 bindings for libmount:
+make clean
+CFLAGS="$SLKCFLAGS" \
+ configure_with_python 3 || exit 1
+make $NUMJOBS \
+ install-pylibmountexecLTLIBRARIES \
+ install-pylibmountexecPYTHON \
+ DESTDIR=$PKG || exit 1
+
+# Remove all overlap with the shadow package, since --disable-login doesn't quite do that:
+rm $PKG/sbin/nologin $PKG/usr/man/man8/nologin.8 $PKG/sbin/sulogin $PKG/usr/man/man8/sulogin.8
+
+# If we aren't shipping su, remove the files:
+if [ "$SHIP_SU" = "NO" ]; then
+ rm -f $PKG/bin/su
+ rm -f $PKG/usr/man/man1/su.1
+ rm -f $PKG/usr/share/bash-completion/completions/su
+fi
+
+# Move the libblkid, libfdisk, libmount, libsmartcols, and
+# libuuid libraries to /lib${LIBSUFFIX}:
+mkdir -p $PKG/lib${LIBDIRSUFFIX}
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ mv libblkid.so.1* $PKG/lib${LIBDIRSUFFIX}
+ mv libfdisk.so.1* $PKG/lib${LIBDIRSUFFIX}
+ mv libmount.so.1* $PKG/lib${LIBDIRSUFFIX}
+ mv libsmartcols.so.1* $PKG/lib${LIBDIRSUFFIX}
+ mv libuuid.so.1* $PKG/lib${LIBDIRSUFFIX}
+ rm -f libblkid.so libfdisk.so libmount.so libsmartcols.so libuuid.so
+ ln -sf ../../lib${LIBDIRSUFFIX}/libblkid.so.1 libblkid.so
+ ln -sf ../../lib${LIBDIRSUFFIX}/libfdisk.so.1 libfdisk.so
+ ln -sf ../../lib${LIBDIRSUFFIX}/libmount.so.1 libmount.so
+ ln -sf ../../lib${LIBDIRSUFFIX}/libsmartcols.so.1 libsmartcols.so
+ ln -sf ../../lib${LIBDIRSUFFIX}/libuuid.so.1 libuuid.so
+)
+
+# Moving things around that have been in the same place
+# for 15 years is, IMHO, not a wise idea AT ALL.
+# If this had to be moved, some place out of /usr might
+# have shown a grain of insight...
+if [ -r $PKG/usr/sbin/fdformat ]; then
+ mkdir -p $PKG/usr/bin
+ mv $PKG/usr/sbin/fdformat $PKG/usr/bin/fdformat
+ # Now since stuff will start looking in this new place,
+ # we have no choice but to link these:
+ ( cd $PKG/usr/sbin
+ ln -sf ../bin/fdformat .
+ )
+fi
+
+# Add the rc.setterm init script to set default terminal attributes:
+mkdir -p $PKG/etc/rc.d
+cp -a $CWD/rc.setterm $PKG/etc/rc.d/rc.setterm.new
+chown root:root $PKG/etc/rc.d/rc.setterm.new
+chmod 755 $PKG/etc/rc.d/rc.setterm.new
+
+# ddate.{1,c} taken from https://github.com/bo0ts/ddate:
+cp -a $CWD/ddate.? .
+cc -O -o ddate ddate.c
+cp -a ddate $PKG/usr/bin
+cat ddate.1 > $PKG/usr/man/man1/ddate.1
+chown root:root $PKG/usr/bin/ddate
+
+# Build ziptool (install as jaztool to avoid conflict with libzip):
+cd $TMP || exit 1
+rm -rf ziptool-$ZIPTOOLVERS
+tar xvf $CWD/ziptool-$ZIPTOOLVERS.tar.xz || exit 1
+cd ziptool-$ZIPTOOLVERS || exit 1
+zcat $CWD/ziptool-fix_build.patch.gz | patch -p1 || exit 1
+mkdir scsi
+cat $CWD/scsi_ioctl.h > scsi/scsi_ioctl.h
+chown -R root:root .
+make || exit 1
+strip ziptool
+cat ziptool > $PKG/sbin/jaztool
+chmod 0755 $PKG/sbin/jaztool
+mkdir -p $PKG/usr/doc/ziptool-$ZIPTOOLVERS
+cp -a README $PKG/usr/doc/ziptool-$ZIPTOOLVERS
+chmod 644 $PKG/usr/doc/ziptool-$ZIPTOOLVERS/*
+cat ziptool.1.gz > $PKG/usr/man/man1/jaztool.1.gz
+
+# Build bsdstrings
+cd $TMP || exit 1
+rm -rf bsdstrings
+tar xvf $CWD/bsdstrings.tar.gz || exit 1
+cd bsdstrings || exit 1
+zcat $CWD/bsdstrings-util-linux_overflow.diff.gz | patch -p1 --verbose || exit 1
+make || exit 1
+strip strings
+cat strings > $PKG/usr/bin/strings-BSD
+chmod 0755 $PKG/usr/bin/strings-BSD
+cat strings.1 | gzip -9c > $PKG/usr/man/man1/strings-BSD.1.gz
+
+# Build adjtimex
+cd $TMP || exit 1
+rm -rf adjtimex-$ADJTIMEXVERS
+tar xvf $CWD/adjtimex_${ADJTIMEXVERS}.orig.tar.gz || exit 1
+cd adjtimex-$ADJTIMEXVERS || exit 1
+chown -R root:root .
+zcat $CWD/adjtimex_1.29-2.2.diff.gz | patch -p1 || exit 1
+CFLAGS=-O2 ./configure --prefix=/usr || exit 1
+make || exit 1
+strip adjtimex
+cat adjtimex > $PKG/sbin/adjtimex
+chmod 0755 $PKG/sbin/adjtimex
+cat adjtimex.8 | gzip -9c > $PKG/usr/man/man8/adjtimex.8.gz
+mkdir -p $PKG/usr/doc/adjtimex-$ADJTIMEXVERS
+cp -a COPYING COPYRIGHT README README.ru adjtimex.lsm \
+ $PKG/usr/doc/adjtimex-$ADJTIMEXVERS
+
+# Build setserial
+cd $TMP || exit 1
+rm -rf setserial-$SETSERIALVERS
+tar xvf $CWD/setserial-$SETSERIALVERS.tar.gz || exit 1
+cd setserial-$SETSERIALVERS || exit 1
+chown -R root:root .
+zcat $CWD/setserial-rc.serial.diff.gz | patch -E -p1 --verbose || exit 1
+zcat $CWD/setserial-undef_TIOCGHAYESESP.diff.gz | patch -E -p1 --verbose || exit 1
+# The original config.{guess,sub} do not work on x86_64
+cp -p /usr/share/libtool/config/config.{guess,sub} .
+./configure --prefix=/usr || exit 1
+make || exit 1
+strip setserial
+cat setserial > $PKG/sbin/setserial
+chmod 0755 $PKG/sbin/setserial
+mkdir -p $PKG/etc/rc.d
+cat rc.serial > $PKG/etc/rc.d/rc.serial.new
+cat serial.conf > $PKG/etc/serial.conf.new
+cat setserial.8 | gzip -9c > $PKG/usr/man/man8/setserial.8.gz
+
+# These have always traditionally been available before /usr
+# might be mounted:
+( cd $PKG/usr/bin
+ mv getopt setterm $PKG/bin
+ cd $PKG/usr/bin
+ ln -s ../../bin/getopt .
+ ln -s ../../bin/setterm .
+)
+
+cd $TMP/util-linux-$VERSION # Go back home :)
+
+# Now let's add some important symlinks :)
+( cd $PKG/sbin
+ ln -s ../bin/mount .
+ ln -s ../bin/umount .
+ #ln -s ziptool jaztool
+ ln -s hwclock clock
+ cd $PKG/usr/sbin
+ ln -s ../../sbin/cfdisk .
+ ln -s ../../sbin/ctrlaltdel .
+ ln -s ../../sbin/sfdisk .
+ cd $PKG/usr/bin
+ ln -s ../sbin/readprofile .
+ # tunelp was removed by upstream:
+ #ln -s ../sbin/tunelp .
+ ln -s ../../bin/more .
+ ln -s ../../sbin/raw .
+ cd $PKG/usr/man/man1
+ #ln -s ziptool.1 jaztool.1
+ cd $PKG/usr/man/man8
+ ln -s hwclock.8 clock.8
+)
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Don't ship .la files:
+rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info page and remove dir file
+rm $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+
+mkdir -p $PKG/usr/doc/util-linux-$VERSION
+cp -a AUTHORS COPYING* DEPRECATED NEWS README* \
+ Documentation/v${VERSION}-ReleaseNotes \
+ Documentation/licenses/* Documentation/{TODO,*.txt} \
+ $PKG/usr/doc/util-linux-$VERSION
+
+mkdir $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/util-linux-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/deps/util-linux/util-linux.do.not.list.ram.devices.diff.gz b/deps/util-linux/util-linux.do.not.list.ram.devices.diff.gz
new file mode 100644
index 0000000..fa79e82
--- /dev/null
+++ b/deps/util-linux/util-linux.do.not.list.ram.devices.diff.gz
Binary files differ
diff --git a/deps/util-linux/util-linux.fdisk-no-solaris.diff.gz b/deps/util-linux/util-linux.fdisk-no-solaris.diff.gz
new file mode 100644
index 0000000..73a3183
--- /dev/null
+++ b/deps/util-linux/util-linux.fdisk-no-solaris.diff.gz
Binary files differ
diff --git a/deps/util-linux/ziptool-fix_build.patch.gz b/deps/util-linux/ziptool-fix_build.patch.gz
new file mode 100644
index 0000000..f367eb0
--- /dev/null
+++ b/deps/util-linux/ziptool-fix_build.patch.gz
Binary files differ