summaryrefslogtreecommitdiffstats
path: root/source/a/util-linux
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/util-linux')
-rw-r--r--source/a/util-linux/0001-mount-old-fix-encryption-usage.patch88
-rw-r--r--source/a/util-linux/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch31
-rw-r--r--source/a/util-linux/bsdstrings-util-linux_overflow.diff20
-rw-r--r--source/a/util-linux/column-fix_long_opts.diff15
-rw-r--r--source/a/util-linux/ddate.1115
-rw-r--r--source/a/util-linux/ddate.c399
-rw-r--r--source/a/util-linux/partx.data.type.diff11
-rw-r--r--source/a/util-linux/util-linux-2.27.1.tar.sign17
-rwxr-xr-xsource/a/util-linux/util-linux.SlackBuild80
-rw-r--r--source/a/util-linux/util-linux.fdisk-no-solaris.diff7
10 files changed, 594 insertions, 189 deletions
diff --git a/source/a/util-linux/0001-mount-old-fix-encryption-usage.patch b/source/a/util-linux/0001-mount-old-fix-encryption-usage.patch
deleted file mode 100644
index afe6e5c91..000000000
--- a/source/a/util-linux/0001-mount-old-fix-encryption-usage.patch
+++ /dev/null
@@ -1,88 +0,0 @@
---- ./mount/mount.c.orig 2012-05-25 04:44:58.993195438 -0500
-+++ ./mount/mount.c 2012-08-02 12:04:52.455435631 -0500
-@@ -41,6 +41,7 @@
- #include "nls.h"
- #include "blkdev.h"
- #include "strutils.h"
-+#include "xgetpass.h"
-
- #define DO_PS_FIDDLING
-
-@@ -1238,6 +1239,8 @@
- int looptype;
- uintmax_t offset = 0, sizelimit = 0;
- struct loopdev_cxt lc;
-+ char *pwd = NULL;
-+ int ret = EX_FAIL;
-
- /*
- * In the case of a loop mount, either type is of the form lo@/dev/loop5
-@@ -1317,8 +1320,18 @@
- return EX_FAIL;
- }
-
-+ if (opt_encryption) {
-+#ifdef MCL_FUTURE
-+ if (mlockall(MCL_CURRENT | MCL_FUTURE)) {
-+ error(_("mount: couldn't lock into memory"));
-+ return EX_FAIL;
-+ }
-+#endif
-+ pwd = xgetpass(pfd, _("Password: "));
-+ }
-+
- loopcxt_init(&lc, 0);
-- /* loopcxt_enable_debug(&lc, 1); */
-+ /*loopcxt_enable_debug(&lc, 1);*/
-
- if (*loopdev && **loopdev)
- loopcxt_set_device(&lc, *loopdev); /* use loop=<devname> */
-@@ -1343,6 +1356,8 @@
- rc = loopcxt_set_offset(&lc, offset);
- if (!rc && sizelimit)
- rc = loopcxt_set_sizelimit(&lc, sizelimit);
-+ if (!rc && opt_encryption && pwd)
-+ loopcxt_set_encryption(&lc, opt_encryption, pwd);
- if (!rc)
- loopcxt_set_flags(&lc, loop_opts);
-
-@@ -1358,8 +1373,7 @@
- break; /* success */
-
- if (rc != -EBUSY) {
-- if (verbose)
-- printf(_("mount: failed setting up loop device\n"));
-+ error(_("mount: %s: failed setting up loop device: %m"), *loopfile);
- if (!opt_loopdev) {
- my_free(*loopdev);
- *loopdev = NULL;
-@@ -1399,9 +1413,15 @@
- }
- }
-
-- return 0;
-+ ret = 0;
- err:
-- return EX_FAIL;
-+ if (pwd) {
-+ char *p = pwd;
-+ while (*p)
-+ *p++ = '\0';
-+ free(pwd);
-+ }
-+ return ret;
- }
-
-
---- ./mount/Makefile.am.orig 2012-05-25 04:44:58.000000000 -0500
-+++ ./mount/Makefile.am 2012-08-02 12:04:14.958439138 -0500
-@@ -23,7 +23,8 @@
- $(top_srcdir)/lib/at.c \
- $(top_srcdir)/lib/sysfs.c \
- $(top_srcdir)/lib/loopdev.c \
-- $(top_srcdir)/lib/strutils.c
-+ $(top_srcdir)/lib/strutils.c \
-+ $(top_srcdir)/lib/xgetpass.c
-
- # generic flags for all programs
- # -- note that pkg-config autoconf macros (pkg.m4) does not differentiate
diff --git a/source/a/util-linux/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch b/source/a/util-linux/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch
deleted file mode 100644
index 4d3622c32..000000000
--- a/source/a/util-linux/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- ./fdisk/fdisk.c.orig 2012-05-25 04:44:58.977195366 -0500
-+++ ./fdisk/fdisk.c 2012-08-02 12:00:59.692457377 -0500
-@@ -569,6 +569,19 @@
- lba_is_aligned(unsigned long long lba)
- {
- unsigned int granularity = max(phy_sector_size, min_io_size);
-+ unsigned long long offset;
-+
-+ if (grain > granularity)
-+ granularity = grain;
-+ offset = (lba * sector_size) & (granularity - 1);
-+
-+ return !((granularity + alignment_offset - offset) & (granularity - 1));
-+}
-+
-+static int
-+lba_is_phy_aligned(unsigned long long lba)
-+{
-+ unsigned int granularity = max(phy_sector_size, min_io_size);
- unsigned long long offset = (lba * sector_size) & (granularity - 1);
-
- return !((granularity + alignment_offset - offset) & (granularity - 1));
-@@ -1808,7 +1821,7 @@
- static void
- check_alignment(unsigned long long lba, int partition)
- {
-- if (!lba_is_aligned(lba))
-+ if (!lba_is_phy_aligned(lba))
- printf(_("Partition %i does not start on physical sector boundary.\n"),
- partition + 1);
- }
diff --git a/source/a/util-linux/bsdstrings-util-linux_overflow.diff b/source/a/util-linux/bsdstrings-util-linux_overflow.diff
new file mode 100644
index 000000000..127ff9d0c
--- /dev/null
+++ b/source/a/util-linux/bsdstrings-util-linux_overflow.diff
@@ -0,0 +1,20 @@
+From db281fc97f1d665a61acabfd8d5933130996b29f Mon Sep 17 00:00:00 2001
+From: mancha <mancha1@zoho.com>
+Date: Wed, 29 Oct 2014
+Subject: Heap overflow
+
+Fix heap-buffer-overflow in strings.c as bundled by util-linux
+through version 2.9 and as shipped by Slackware Linux and
+Slackware derivatives.
+
+--- a/strings.c
++++ b/strings.c
+@@ -124,7 +124,7 @@ main(argc, argv)
+ if (minlen == -1)
+ minlen = DEF_LEN;
+
+- if (!(bfr = malloc((u_int)minlen))) {
++ if (!(bfr = malloc((u_int)minlen + 1))) {
+ (void)fprintf(stderr, "strings: %s\n", strerror(errno));
+ exit(1);
+ }
diff --git a/source/a/util-linux/column-fix_long_opts.diff b/source/a/util-linux/column-fix_long_opts.diff
deleted file mode 100644
index e5215db7b..000000000
--- a/source/a/util-linux/column-fix_long_opts.diff
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -Naur util-linux-2.21.2/text-utils/column.c util-linux-2.21.2.patched//text-utils/column.c
---- util-linux-2.21.2/text-utils/column.c 2012-05-25 05:44:59.000000000 -0400
-+++ util-linux-2.21.2.patched//text-utils/column.c 2012-08-14 05:22:17.000000000 -0400
-@@ -121,9 +121,9 @@
- {
- { "help", 0, 0, 'h' },
- { "version", 0, 0, 'V' },
-- { "columns", 0, 0, 'c' },
-+ { "columns", 1, 0, 'c' },
- { "table", 0, 0, 't' },
-- { "separator", 0, 0, 's' },
-+ { "separator", 1, 0, 's' },
- { "fillrows", 0, 0, 'x' },
- { NULL, 0, 0, 0 },
- };
diff --git a/source/a/util-linux/ddate.1 b/source/a/util-linux/ddate.1
new file mode 100644
index 000000000..ec4ee81d9
--- /dev/null
+++ b/source/a/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/source/a/util-linux/ddate.c b/source/a/util-linux/ddate.c
new file mode 100644
index 000000000..4c2a0f8f7
--- /dev/null
+++ b/source/a/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/source/a/util-linux/partx.data.type.diff b/source/a/util-linux/partx.data.type.diff
deleted file mode 100644
index 9811c0bda..000000000
--- a/source/a/util-linux/partx.data.type.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./partx/partx.h.orig 2012-05-25 04:44:58.994195443 -0500
-+++ ./partx/partx.h 2013-08-07 21:06:30.899997659 -0500
-@@ -23,7 +23,7 @@
- }
-
- static inline int partx_add_partition(int fd, int partno,
-- unsigned long start, unsigned long size)
-+ long long start, long long size)
- {
- struct blkpg_ioctl_arg a;
- struct blkpg_partition p;
diff --git a/source/a/util-linux/util-linux-2.27.1.tar.sign b/source/a/util-linux/util-linux-2.27.1.tar.sign
new file mode 100644
index 000000000..671c7f6ff
--- /dev/null
+++ b/source/a/util-linux/util-linux-2.27.1.tar.sign
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iQIcBAABAgAGBQJWN0FGAAoJEOS3HV7sOcKEwYIP/0eA52LeAeSVAb3hATWA0TMg
+N0zfKyRECDxRuwdQW3yyjtypd4Cir6QlgyBrqLyXSskVuIj0dq7S1mlI/Xa94IFU
+Fa2lmzyAcxvl33Bv/Fljh/GeVSqqmUHk8q1ecRh7DYR1Lda6xzfCFs2Dl3Q5JXK/
+k2tTgNug0+f8E6LT/5qrrXeDS+O7/hAtRqqA6yHkAHGqYV2RgBJ9NDAanaGYXDeB
+abrduP2xRIvJ9oYOrayG5WH/wAY/sKT433zx20J9ZZvtutTV4VF2ML9zfeQiYitY
+hoQOGt5tJW/CfvU2DUaBlTlrXW/MnMQE8KDWn64NbokA3HOxrW+7wJ/gJCp+7e7v
+gLELeLLTnMq3NX++SR5I2I2fvqBejYykcaOQMHi9DK+UZed/CBJKR+6SF1WKOndI
+GRYJSs9DAXL3dJCSCp6V4fqf+Lfr2Vv4z+Jo8EzIIIlfly1cZx2Blx7C0Y6CNETA
+fYPYYKW7qKHsdS5J2Axf8vNIHQsRhkpiUltjQHQ+rIAmx1hl/10a7Fd9KkqFEJV2
+R0zLPaJK8d9gEWHRdzQNozABZVeR8PV3WXuDD2XjC2T30ldlFNlbzyWhDiPf6DNk
+tIEi3f+RTTltIvCobChq+Ri2dKM0+wAV/FwwR31E/YgJIpUWfJNKRwWT8Ja887JN
+j5aNV18qjet7TUosKYqm
+=BMBT
+-----END PGP SIGNATURE-----
diff --git a/source/a/util-linux/util-linux.SlackBuild b/source/a/util-linux/util-linux.SlackBuild
index b348d83eb..4d6046024 100755
--- a/source/a/util-linux/util-linux.SlackBuild
+++ b/source/a/util-linux/util-linux.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2015 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,25 +22,27 @@
# Slackware build script for util-linux
-VERSION=${VERSION:-$(echo util-linux*.tar.?z* | cut -d - -f 3 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-6}
+VERSION=${VERSION:-$(echo util-linux*.tar.xz | cut -d - -f 3 | rev | cut -f 3- -d . | rev)}
+BUILD=${BUILD:-1}
ADJTIMEXVERS=1.29
SETSERIALVERS=2.17
ZIPTOOLVERS=1.4.0
+NUMJOBS=${--j8}
+
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
+ 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 [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
@@ -70,38 +72,11 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Disabled login stuff from being built, as this is provided by shadow
-#
-# /sbin/elvtune is not built, as configure says it only works with 2.2 and
-# 2.4 kernels
-
-# This block is handled near the bottom of the script in symlink creation
-# /bin/setterm -- now located in /usr/bin/setterm
-# /bin/getopt -- same as setterm
-# /usr/bin/readprofile -- now in /usr/sbin
-# /usr/bin/tunelp -- same as readprofile
-
# 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
-# Fix loop encryption:
-zcat $CWD/0001-mount-old-fix-encryption-usage.patch.gz | patch -p1 --verbose || exit 1
-
-# Fix fdisk granularity on 512 byte sector size devices:
-zcat $CWD/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch.gz | patch -p1 --verbose || exit 1
-
-# 20120814 bkw: fix "column --separator <anything>" segfault
-zcat $CWD/column-fix_long_opts.diff.gz | patch -p1 --verbose || exit 1
-
-# Fix data type in partx to prevent silently truncating partition sizes and
-# offsets to 4GB on 32-bit platforms:
-zcat $CWD/partx.data.type.diff.gz | patch -p1 --verbose || exit 1
-
-# Regenerate, since patch 0001 hits mount/Makefile.am:
-./autogen.sh
-
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
@@ -112,8 +87,8 @@ CFLAGS="$SLKCFLAGS" \
--infodir=/usr/info \
--docdir=/usr/doc/util-linux-$VERSION \
--disable-static \
- --enable-arch \
--enable-agetty \
+ --disable-eject \
--enable-kill \
--disable-last \
--enable-line \
@@ -122,32 +97,46 @@ CFLAGS="$SLKCFLAGS" \
--enable-raw \
--enable-rename \
--enable-reset \
- --disable-login-utils \
+ --disable-login \
--enable-schedutils \
--enable-wall \
--enable-write \
--enable-use-tty-group \
--enable-libblkid \
--enable-libmount \
- --enable-libmount-mount \
--enable-libuuid \
--disable-uuidd \
- --enable-ddate \
+ --with-python=2 \
+ --without-readline \
--build=$ARCH-slackware-linux \
|| exit 1
-make || exit 1
+# UNUSED, but maybe needed if we enable readline here:
+#
+# Yet another project that doesn't seem to get that -readline requires either
+# -ltermcap or -lncurses on systems that don't make assumptions...
+#sed -i -e 's|-lreadline|\0 -lncursesw|g' Makefile
+
+make $NUMBJOBS || make || exit 1
make install DESTDIR=$PKG || make install DESTDIR=$PKG
-# Move the libblkid, libmount, and libuuid libraries to /lib${LIBSUFFIX}
+# 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
+
+# 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 libmount.so libuuid.so
+ 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
)
@@ -165,6 +154,13 @@ if [ -r $PKG/usr/sbin/fdformat ]; then
)
fi
+# 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
cd $TMP || exit 1
rm -rf ziptool-$ZIPTOOLVERS
@@ -188,6 +184,7 @@ 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
@@ -279,7 +276,8 @@ cd $TMP/util-linux-$VERSION # Go back home :)
ln -s ../../sbin/sfdisk .
cd $PKG/usr/bin
ln -s ../sbin/readprofile .
- ln -s ../sbin/tunelp .
+ # tunelp was removed by upstream:
+ #ln -s ../sbin/tunelp .
ln -s ../../bin/more .
ln -s ../../sbin/raw .
cd $PKG/usr/man/man1
diff --git a/source/a/util-linux/util-linux.fdisk-no-solaris.diff b/source/a/util-linux/util-linux.fdisk-no-solaris.diff
index a3aa100e9..a495ffac2 100644
--- a/source/a/util-linux/util-linux.fdisk-no-solaris.diff
+++ b/source/a/util-linux/util-linux.fdisk-no-solaris.diff
@@ -1,6 +1,7 @@
---- ./fdisk/i386_sys_types.c.orig 2007-04-25 07:43:38.000000000 -0500
-+++ ./fdisk/i386_sys_types.c 2008-03-31 14:53:52.000000000 -0500
-@@ -53,7 +53,7 @@
+diff -Nur util-linux-2.24.2.orig/include/pt-mbr-partnames.h util-linux-2.24.2/include/pt-mbr-partnames.h
+--- util-linux-2.24.2.orig/include/pt-mbr-partnames.h 2014-04-24 02:37:04.352704164 -0500
++++ util-linux-2.24.2/include/pt-mbr-partnames.h 2014-07-03 03:33:27.054574467 -0500
+@@ -49,7 +49,7 @@
{0x75, N_("PC/IX")},
{0x80, N_("Old Minix")}, /* Minix 1.4a and earlier */
{0x81, N_("Minix / old Linux")},/* Minix 1.4b and later */