Compare commits
No commits in common. 'master' and 'vim' have entirely different histories.
17 changed files with 369 additions and 1149 deletions
@ -1,95 +0,0 @@ |
|||
# List of tested packages using convert32pkg. |
|||
# This list is safe to use with massconvert32.sh and safe to install. |
|||
# Note that these are from slackware 14.2, including patches. -current is unsupported. |
|||
|
|||
# a |
|||
bzip2 |
|||
dbus |
|||
eudev |
|||
xz |
|||
|
|||
# ap |
|||
cups |
|||
mpg123 |
|||
|
|||
# d |
|||
libtool |
|||
llvm |
|||
|
|||
# l |
|||
alsa-lib |
|||
atk |
|||
cairo |
|||
elfutils |
|||
expat |
|||
freetype |
|||
gdk-pixbuf2 |
|||
glib2 |
|||
glibc |
|||
gmp |
|||
gst-plugins-base |
|||
gstreamer |
|||
gtk+2 |
|||
harfbuzz |
|||
icu4c |
|||
lcms2 |
|||
libexif |
|||
libffi |
|||
libgphoto2 |
|||
libidn |
|||
libieee1284 |
|||
libjpeg-turbo |
|||
libnl3 |
|||
libpcap |
|||
libpng |
|||
libtiff |
|||
libunistring |
|||
libusb |
|||
libxml2 |
|||
libxslt |
|||
ncurses |
|||
orc |
|||
pango |
|||
sdl |
|||
svgalib |
|||
v4l-utils |
|||
zlib |
|||
gamin |
|||
|
|||
# n |
|||
cyrus-sasl |
|||
gnutls |
|||
libgcrypt |
|||
libgpg-error |
|||
nettle |
|||
openldap-client |
|||
openssl |
|||
p11-kit |
|||
|
|||
# x |
|||
fontconfig |
|||
glu |
|||
libX11 |
|||
libXau |
|||
libXcomposite |
|||
libXcursor |
|||
libXdamage |
|||
libXdmcp |
|||
libXext |
|||
libXfixes |
|||
libXi |
|||
libXinerama |
|||
libXrandr |
|||
libXrender |
|||
libXv |
|||
libXvMC |
|||
libXxf86vm |
|||
libdrm |
|||
libpciaccess |
|||
libxcb |
|||
libxshmfence |
|||
mesa |
|||
pixman |
|||
|
|||
# xap |
|||
sane |
@ -1,144 +0,0 @@ |
|||
#!/bin/sh -e |
|||
|
|||
pkginfodir='/var/log/packages/' |
|||
pkgscriptdir='/var/log/scripts/' |
|||
|
|||
if [ "$#" -lt 1 ]; then |
|||
echo "Usage: $0 <package32> [package64]" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
pkg32="$(realpath "$1")" |
|||
unset pkg64 |
|||
[ "$2" ] && pkg64="$(realpath "$2")" |
|||
|
|||
# Extract all package info |
|||
# See /sbin/installpkg |
|||
pkgbase="$(echo "$pkg32" | sed -e 's?.*/??;s/\.t[bglx]z$//')" |
|||
pkgext="$(echo "$pkg32" | sed -e 's?.*/??;s/.*\.\(t[bglx]z\)$/\1/')" |
|||
pkgname="$(echo "$pkgbase" | sed -e 's?-[^-]*-[^-]*-[^-]*$??')" |
|||
pkgver="$(echo "$pkgbase" | sed -e 's?.*-\([^-]*\)-[^-]*-[^-]*$?\1?')" |
|||
pkgarch="$(echo "$pkgbase" | sed -e 's?.*-[^-]*-\([^-]*\)-[^-]*$?\1?')" |
|||
pkgbuild="$(echo "$pkgbase" | sed -e 's?.*-[^-]*-[^-]*-\([^-]*\)$?\1?')" |
|||
|
|||
case "$pkgarch" in |
|||
i?86) pkgarch=x86_64 ;; |
|||
*) |
|||
echo "Unsupported package architecture '$pkgarch'. Can't proceed." 1>&2 |
|||
exit 1 |
|||
;; |
|||
esac |
|||
|
|||
pkginfo="$pkginfodir/$pkgname-$pkgver-$pkgarch-$pkgbuild" |
|||
pkgscript="$pkgscriptdir/$pkgname-$pkgver-$pkgarch-$pkgbuild" |
|||
|
|||
case "$pkgext" in |
|||
tgz) tool=gzip ;; |
|||
tbz) tool=bzip2 ;; |
|||
tlz) tool=lzma ;; |
|||
txz) tool=xz ;; |
|||
esac |
|||
|
|||
temp="$(mktemp -d)" |
|||
trap "rm -rf '$temp'" EXIT |
|||
|
|||
cd "$temp" |
|||
explodepkg "$pkg32" |
|||
|
|||
# Remove all files present in the 64bit package |
|||
if [ "$pkg64" ]; then |
|||
echo |
|||
echo "Removing files:" |
|||
$tool -cd "$pkg64" | tar-1.13 t | grep -v '^install/' | while read -r file; do |
|||
echo "./$file" |
|||
rm -f "./$file" 2> /dev/null || true |
|||
done |
|||
else |
|||
if [ ! -f "$pkginfo" ]; then |
|||
echo "Package '$pkgname-$pkgver-$pkgarch-$pkgbuild' is not installed. Can't proceed." 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
# See /sbin/removepkg |
|||
if fgrep './' "$pkginfo" 1> /dev/null 2>&1; then |
|||
TRIGGER='^\.\/' |
|||
else |
|||
TRIGGER='FILE LIST:' |
|||
fi |
|||
|
|||
echo |
|||
echo 'Removing files:' |
|||
sed -n "/$TRIGGER/,/^$/p" "$pkginfo" | fgrep -v 'FILE LIST:' | grep -v '^install/' | while read -r file; do |
|||
echo "./$file" |
|||
rm -f "./$file" 2> /dev/null || true |
|||
done |
|||
fi |
|||
|
|||
# Clean empty directories |
|||
echo |
|||
echo 'Empty directories:' |
|||
find . -type d -empty -print -delete |
|||
|
|||
# Remove all symlinks present in the 64bit package |
|||
if [ -f install/doinst.sh ]; then |
|||
if [ "$pkg64" ]; then |
|||
if ! $tool -cd "$pkg64" | tar-1.13 xO install/doinst.sh > install/doinst.64; then |
|||
echo "Failed to extract install/doinst.sh from '$pkg64'. Can't proceed." 1>&2 |
|||
exit 1 |
|||
fi |
|||
else |
|||
if [ ! -f "$pkgscript" ]; then |
|||
echo "Package '$pkgname-$pkgver-$pkgarch-$pkgbuild' is installed but has no installation script. Can't proceed." 1>&2 |
|||
exit 1 |
|||
fi |
|||
cp "$pkgscript" install/doinst.64 |
|||
fi |
|||
|
|||
# There's some packages that need special treatment |
|||
if [ "$pkgname" = 'glib2' -o "$pkgname" = 'cups' -o "$pkgname" = 'sane' ]; then |
|||
sed -i -e '/^for file in/,/^done/d' install/doinst.sh |
|||
fi |
|||
if [ "$pkgname" = 'cups' ]; then |
|||
sed -i -e '/^if \[ -e etc\/rc.d\/rc.cups \]; then/,/^fi/d' install/doinst.sh |
|||
fi |
|||
if [ "$pkgname" = 'eudev' ]; then |
|||
sed -i -e '/^if \[ \(-e etc\/rc.d\/rc.udev\|-r etc\/rc.d\/rc.udev.new\) \]; then/,/^fi/d' install/doinst.sh |
|||
fi |
|||
if [ "$pkgname" = 'dbus' ]; then |
|||
sed -i -e '/^if \[ \(-e etc\/rc.d\/rc.messagebus\|-r etc\/rc.d\/rc.messagebus.new\) \]; then/,/^fi/d' install/doinst.sh |
|||
fi |
|||
|
|||
# Extract all lines treating with symlinks or config files. See /sbin/removepkg |
|||
sed -n -e 's,^[ ]*( [ ]*cd[ ]* .* [ ]*; [ ]*\(rm\|ln\) [ ]*-\(rf\|sf\)[ ]* .* [ ]*)[ ]*$,&,p' \ |
|||
-e 's,^[ ]*config .*[ ]*$,&,p' install/doinst.64 > install/doinst |
|||
rm install/doinst.64 |
|||
|
|||
echo |
|||
echo 'Removed lines in doinst.sh:' |
|||
if [ -s install/doinst ]; then |
|||
fgrep -xf install/doinst install/doinst.sh || true |
|||
|
|||
# Remove all symlinks present in the 64bit package |
|||
fgrep -vxf install/doinst install/doinst.sh > install/doinst.sh.new || true |
|||
mv install/doinst.sh.new install/doinst.sh |
|||
|
|||
# If the resulting doinst.sh is empty, remove it. |
|||
if [ ! -s install/doinst.sh ]; then |
|||
rm install/doinst.sh |
|||
fi |
|||
fi |
|||
rm install/doinst |
|||
fi |
|||
|
|||
# Rename package in slack-desc |
|||
if [ -f install/slack-desc ]; then |
|||
sed -i -e '/^\$\|#\| *|/!s/^[^:]*:/convert32-&/' install/slack-desc |
|||
fi |
|||
|
|||
if ! find . | grep -v '^.$\|^./install' > /dev/null; then |
|||
echo |
|||
echo 'Package is empty. Not running makepkg.' 1>&2 |
|||
exit 0 |
|||
fi |
|||
|
|||
makepkg -l n -c n "$OLDPWD/convert32-$pkgname-$pkgver-$pkgarch-$pkgbuild.$pkgext" |
@ -1,229 +0,0 @@ |
|||
#!/bin/sh |
|||
set -e |
|||
|
|||
# This is a SlackBuild script for building as-original-as-possible kernel packages. |
|||
# It combines existing SlackBuilds and other files in the slackware source tree with vanilla SlackBuild conventions in a way that is clean and functional. |
|||
# Unlike the "official" method of building a Slackware kernel, it builds and installs everything in $TMP, so it doesn't taint the host system, and you can build it as a regular user under fakeroot, if you wanted to. |
|||
# This often means that the $PKG directory is used as an intermediate directory to run a SlackBuild in, and that said SlackBuilds may need to be modified to run properly in $PKG. |
|||
|
|||
# This script is tailored for x86_64. i?86 support is untested, and would need more modifications (such as building the -smp kernels and fixing $TMP in the packaging SlackBuilds). |
|||
# Other architectures can be added, provided the source tree for them is anywhere close to the original slackware tree. |
|||
|
|||
# This SlackBuild should be placed in the "source/k" directory of the source DVD. |
|||
# However, this directory doesn't contain all the files we need, as they're scattered all throughout the slackware tree. |
|||
|
|||
# This code may help prepare the source directory: |
|||
if [ "$1" = prepare ]; then |
|||
shift |
|||
|
|||
if [ $# -lt 3 ]; then |
|||
echo Usage: $0 prepare \<source\> \<install\> \<output\> 1>&2 |
|||
echo e.g. $0 prepare /mnt/tmp/slackware-14.2-source-dvd/source /mnt/tmp/slackware64-14.2-install-dvd/slackware64 ./kernel 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
SOURCE=$1 |
|||
INSTALL=$2 |
|||
OUT=$3 |
|||
|
|||
# Copy the "source/k" directory |
|||
cp -aT $SOURCE/k $OUT |
|||
|
|||
# Copy the "source/d/kernel-headers" and "source/a/kernel-firmware" directories into it |
|||
cp -at $OUT $SOURCE/d/kernel-headers $SOURCE/a/kernel-firmware |
|||
|
|||
# Copy "slackware*/k/kernel-source-*-noarch-*.txt" to use as slack-desc for kernel-source into it |
|||
mkdir -p $OUT/kernel-source |
|||
cp -aT $INSTALL/k/kernel-source-*-noarch-*.txt $OUT/kernel-source/slack-desc |
|||
|
|||
# Copy the SlackBuild |
|||
cp -at $OUT $0 |
|||
|
|||
exit |
|||
fi |
|||
|
|||
PKGNAM=${PKGNAM:-linux} |
|||
BASEVER=${BASEVER:-4.4.14} |
|||
VERSION=${VERSION:-$BASEVER} |
|||
ARCH=${ARCH:-x86_64} |
|||
KARCH=${KARCH:-x86} |
|||
BUILD=${BUILD:-1} |
|||
|
|||
CWD=$(pwd) |
|||
TMP=${TMP:-/tmp/kernel} |
|||
|
|||
NUMJOBS=${NUMJOBS:-" -j7 "} |
|||
|
|||
export VERSION ARCH BUILD TMP |
|||
|
|||
# Extract the kernel source |
|||
mkdir -p $TMP |
|||
cd $TMP |
|||
rm -rf $PKGNAM-$BASEVER $PKGNAM-$VERSION |
|||
tar xvf $CWD/$PKGNAM-$BASEVER.tar.xz |
|||
|
|||
# Rename the kernel source directory to the proper VERSION |
|||
# This is useful if you're applying stable patches and the actual VERSION is different from the one the tarball is named after |
|||
if [ "$BASEVER" != "$VERSION" ]; then |
|||
mv $PKGNAM-$BASEVER $PKGNAM-$VERSION |
|||
fi |
|||
|
|||
# Apply patches |
|||
cd $PKGNAM-$VERSION |
|||
#xzcat $CWD/patch-x.x.xx.xz | patch -p1 --verbose |
|||
|
|||
|
|||
# |
|||
# Build kernel-headers |
|||
# |
|||
cd $TMP/$PKGNAM-$VERSION |
|||
|
|||
# Install the kernel headers |
|||
PKG=$TMP/package-kernel-headers |
|||
rm -rf $PKG |
|||
mkdir -p $PKG/usr |
|||
make $NUMJOBS INSTALL_HDR_PATH=$PKG/usr headers_install |
|||
|
|||
# Apply some modifications that are present in the original kernel-headers package |
|||
find $PKG/usr -type f -a ! -name '*.h' -delete |
|||
rm -rf $PKG/usr/include/drm |
|||
mv $PKG/usr/include/asm $PKG/usr/include/asm-$KARCH |
|||
ln -sf asm-$KARCH $PKG/usr/include/asm |
|||
|
|||
# Install the slack-desc |
|||
mkdir -p $PKG/install |
|||
cat $CWD/kernel-headers/slack-desc > $PKG/install/slack-desc |
|||
|
|||
# Create the package |
|||
cd $PKG |
|||
/sbin/makepkg -l y -c n $TMP/kernel-headers-$(echo $VERSION | tr - _)-$KARCH-$BUILD.txz |
|||
|
|||
|
|||
# |
|||
# Build kernel-huge |
|||
# |
|||
cd $TMP/$PKGNAM-$VERSION |
|||
|
|||
# Build the kernel image |
|||
make $NUMJOBS mrproper |
|||
cat $CWD/config-$ARCH/config-huge-* > .config |
|||
make $NUMJOBS oldconfig |
|||
make $NUMJOBS bzImage |
|||
|
|||
# Prepare the directory to run the packaging SlackBuild in |
|||
PKG=$TMP/kernel-huge |
|||
rm -rf $PKG |
|||
mkdir -p $PKG |
|||
cp arch/$KARCH/boot/bzImage $PKG |
|||
cp System.map $PKG |
|||
cp .config $PKG/config |
|||
|
|||
# Copy the packaging SlackBuild |
|||
cp -aT $CWD/packaging-$ARCH/kernel-huge $PKG |
|||
|
|||
# Run the packaging SlackBuild |
|||
cd $PKG |
|||
./kernel-huge.SlackBuild |
|||
|
|||
|
|||
# |
|||
# Build kernel-generic |
|||
# |
|||
cd $TMP/$PKGNAM-$VERSION |
|||
|
|||
# Build the kernel image |
|||
make $NUMJOBS mrproper |
|||
cat $CWD/config-$ARCH/config-generic-* > .config |
|||
make $NUMJOBS oldconfig |
|||
make $NUMJOBS bzImage |
|||
|
|||
# Prepare the directory to run the packaging SlackBuild in |
|||
PKG=$TMP/kernel-generic |
|||
rm -rf $PKG |
|||
mkdir -p $PKG |
|||
cp arch/$KARCH/boot/bzImage $PKG |
|||
cp System.map $PKG |
|||
cp .config $PKG/config |
|||
|
|||
# Copy the packaging SlackBuild |
|||
cp -aT $CWD/packaging-$ARCH/kernel-generic $PKG |
|||
|
|||
# Run the packaging SlackBuild |
|||
cd $PKG |
|||
./kernel-generic.SlackBuild |
|||
|
|||
|
|||
# |
|||
# Build kernel-modules |
|||
# |
|||
cd $TMP/$PKGNAM-$VERSION |
|||
|
|||
# Build the kernel modules with the already-present kernel-generic config |
|||
make $NUMJOBS modules |
|||
|
|||
# Prepare the directory to run the packaging SlackBuild in |
|||
PKG=$TMP/kernel-modules |
|||
rm -rf $PKG |
|||
mkdir -p $PKG |
|||
make $NUMJOBS INSTALL_MOD_PATH=$PKG modules_install |
|||
|
|||
# Point the build and source links to the proper source directory in /usr/src, as packaged in kernel-source |
|||
rm -f $PKG/lib/modules/$VERSION/build $PKG/lib/modules/$VERSION/source |
|||
ln -s /usr/src/$PKGNAM-$VERSION $PKG/lib/modules/$VERSION/build |
|||
ln -s /usr/src/$PKGNAM-$VERSION $PKG/lib/modules/$VERSION/source |
|||
|
|||
# Copy the packaging SlackBuild |
|||
cp -aT $CWD/packaging-$ARCH/kernel-modules $PKG |
|||
|
|||
# Prefix absolute module paths in the SlackBuild with $CWD, since we installed the modules there |
|||
sed -i -e 's@/lib/modules/@$CWD&@' $PKG/kernel-modules.SlackBuild |
|||
|
|||
# Run the packaging SlackBuild |
|||
cd $PKG |
|||
KERNELRELEASE=$VERSION ./kernel-modules.SlackBuild |
|||
|
|||
|
|||
# |
|||
# Build kernel-source |
|||
# |
|||
cd $TMP/$PKGNAM-$VERSION |
|||
|
|||
# Cleanup the source directory that was prepared and built with the kernel-generic config |
|||
make $NUMJOBS clean |
|||
make $NUMJOBS prepare |
|||
rm .version .config.old |
|||
|
|||
# Install the kernel source |
|||
PKG=$TMP/package-kernel-source |
|||
rm -rf $PKG |
|||
mkdir -p $PKG/usr/src |
|||
ln -s $PKGNAM-$VERSION $PKG/usr/src/$PKGNAM |
|||
|
|||
# Install the slack-desc |
|||
mkdir -p $PKG/install |
|||
cat $CWD/kernel-source/slack-desc > $PKG/install/slack-desc |
|||
|
|||
# Create the package |
|||
cd $PKG |
|||
mv $TMP/$PKGNAM-$VERSION usr/src |
|||
/sbin/makepkg -l y -c n $TMP/kernel-source-$(echo $VERSION | tr - _)-noarch-$BUILD.txz |
|||
|
|||
|
|||
# |
|||
# Build kernel-firmware |
|||
# |
|||
cd $TMP |
|||
|
|||
# Prepare the directory to run the packaging SlackBuild in |
|||
PKG=$TMP/kernel-firmware |
|||
rm -rf $PKG |
|||
mkdir -p $PKG |
|||
cp -aT $CWD/kernel-firmware $PKG |
|||
|
|||
# Use --depth=1 to cause git to not to download the entire history |
|||
sed -i -e 's/git clone/& --depth=1/' $PKG/kernel-firmware.SlackBuild |
|||
|
|||
# Run the packaging SlackBuild |
|||
cd $PKG |
|||
unset VERSION # The script uses `date` to make a $VERSION |
|||
./kernel-firmware.SlackBuild |
@ -1,151 +0,0 @@ |
|||
#!/bin/sh |
|||
set -eu |
|||
|
|||
if [ "$(id -u)" != 0 ]; then |
|||
echo "This script needs root permissions!" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
if [ "$#" -lt 2 ]; then |
|||
echo "Usage: $0 [-a arch] [-v version] [-m mirror] [-b localmirror]" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
|
|||
version='14.2' |
|||
arch="$(uname -m)" |
|||
mirror='https://mirrors.slackware.com/slackware' |
|||
base='' |
|||
|
|||
# Minimal amount of packages required to run installpkg, removepkg and upgradepkg |
|||
# bzip2 and gzip are optional, but required to support .tgz and .tbz packages |
|||
# All of these exist in the 'a' package set |
|||
packages_pkgtools=' |
|||
aaa_base |
|||
aaa_elflibs |
|||
bash |
|||
bzip2 |
|||
coreutils |
|||
etc |
|||
findutils |
|||
glibc-solibs |
|||
grep |
|||
gzip |
|||
pkgtools |
|||
sed |
|||
tar |
|||
util-linux |
|||
xz |
|||
' |
|||
|
|||
# Minimal amount of packages required to run slackpkg without the dialog interface |
|||
# gnupg is optional, but required to verify the GPG signatures of packages |
|||
# ca-certificates, openssl, bin and perl are optional, but required for HTTPS support |
|||
# These exist over the 'a', 'ap' and 'n' package sets |
|||
# perl exists in the 'd' package set |
|||
# openssl and ca-certificates need to be installed last (after perl and bin, at least) for the doinst.sh to run correctly |
|||
packages_slackpkg=' |
|||
bin |
|||
diffutils |
|||
gawk |
|||
gnupg |
|||
openssl-solibs |
|||
perl |
|||
slackpkg |
|||
wget |
|||
which |
|||
|
|||
openssl |
|||
ca-certificates |
|||
' |
|||
|
|||
# Parse arguments |
|||
while getopts "v:a:m:b:" opt; do |
|||
case "$opt" in |
|||
v) version="$OPTARG" ;; |
|||
a) arch="$OPTARG" ;; |
|||
m) mirror="$OPTARG" ;; |
|||
b) base="$(realpath "$OPTARG")" # Path to local mirror, to get the files from. |
|||
esac |
|||
done |
|||
|
|||
# Build final variables |
|||
case "$arch" in |
|||
x86_64) |
|||
pkgmain='slackware64' |
|||
;; |
|||
|
|||
*) |
|||
pkgmain='slackware' |
|||
;; |
|||
esac |
|||
release="$pkgmain-$version" |
|||
initrd='isolinux/initrd.img' |
|||
checksums='CHECKSUMS.md5' |
|||
|
|||
# Create working directory |
|||
temp="$(mktemp -d -t "$(basename "$0")".XXXXXX)" |
|||
trap "rm -rf '$temp'" EXIT |
|||
destdir="$PWD" |
|||
cd "$temp" |
|||
|
|||
# Function to download (or copy) a file |
|||
get() { |
|||
if [ "$base" ]; then |
|||
cp "$base/$1" "$2" |
|||
else |
|||
wget "$mirror/$release/$1" -O "$2" |
|||
fi |
|||
} |
|||
|
|||
# Function to verify files based on the checksums file |
|||
check() { |
|||
printf '%s' "$(tail +13 CHECKSUMS.md5 | grep "^[0-9a-f]* ./$1$" | cut -d ' ' -f 1) $2" | md5sum -c --quiet - |
|||
} |
|||
|
|||
# Get the full path to a package |
|||
package() { |
|||
tail +13 CHECKSUMS.md5 | grep "^[0-9a-f]* ./$pkgmain/[^/]*/$1-[^-]*-[^-]*-[^-]*\.t.z$" | cut -d ' ' -f 3- | cut -c 3- |
|||
} |
|||
|
|||
# Download checksums |
|||
get "$checksums" CHECKSUMS.md5 |
|||
|
|||
# Download installer initrd.img |
|||
get "$initrd" initrd.img |
|||
check "$initrd" initrd.img |
|||
|
|||
# Unpack and prepare the installer |
|||
zcat initrd.img | cpio -id |
|||
rm -rf initrd.img mnt pkg |
|||
mkdir -p mnt/pkg pkg |
|||
|
|||
# Download packages |
|||
for pkg in $packages_pkgtools; do |
|||
path="$(package "$pkg")" |
|||
name="$(basename "$path")" |
|||
|
|||
get "$path" "pkg/$name" |
|||
check "$path" "pkg/$name" |
|||
echo "$name" >> pkg/_ |
|||
done |
|||
for pkg in $packages_slackpkg; do |
|||
path="$(package "$pkg")" |
|||
name="$(basename "$path")" |
|||
|
|||
get "$path" "mnt/pkg/$name" |
|||
check "$path" "mnt/pkg/$name" |
|||
echo "$name" >> mnt/pkg/_ |
|||
done |
|||
|
|||
# Bootstrap pkgtools and it's dependencies |
|||
env -i chroot . sh -l -c 'while read pkg; do /usr/lib/setup/installpkg --root /mnt --terse "/pkg/$pkg"; done < /pkg/_' |
|||
|
|||
# Install slackpkg and it's dependencies |
|||
env -i chroot mnt sh -l -c 'while read pkg; do /sbin/installpkg --terse "/pkg/$pkg"; done < /pkg/_' |
|||
|
|||
# Configuration |
|||
printf '%s\n' "$mirror/$release/" >> mnt/etc/slackpkg/mirrors |
|||
|
|||
# Compress the package |
|||
tar cvJf "$destdir/$release.tar.xz" --sort=name --exclude=./pkg -C mnt . |
@ -1,63 +0,0 @@ |
|||
#!/bin/sh -e |
|||
set -e |
|||
|
|||
if [ "$(id -u)" != 0 ]; then |
|||
echo "This script needs root permissions!" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
if [ "$#" -lt 2 ]; then |
|||
echo "Usage: $0 <slackware> <chroot>" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
slackware="$(realpath "$1")" |
|||
chroot="$(realpath "$2")" |
|||
|
|||
temp="$(mktemp -d -t makechroot.XXXXXX)" |
|||
|
|||
# Make sure we clean up properly before exitting |
|||
cleanup() { |
|||
mountpoint -q "$temp/mnt" && umount "$temp/mnt" |
|||
mountpoint -q "$temp/dvd" && umount "$temp/dvd" |
|||
rm -rf "$temp" |
|||
} |
|||
trap 'cleanup' EXIT |
|||
|
|||
# Extract the initrd |
|||
cd "$temp" |
|||
gzip -cd "$slackware/isolinux/initrd.img" | cpio -id |
|||
|
|||
# Mount the dvd |
|||
mkdir dvd |
|||
mount --bind "$slackware" dvd |
|||
|
|||
# Mount the destination |
|||
mkdir -p "$chroot" |
|||
mount --bind "$chroot" mnt |
|||
|
|||
# Install the packages |
|||
env -i chroot . sh -l -c ' |
|||
/usr/lib/setup/installpkg --root /mnt --terse /dvd/slackware*/*/*.t?z |
|||
|
|||
cd /mnt |
|||
for script in \ |
|||
04.mkfontdir \ |
|||
05.fontconfig \ |
|||
07.update-desktop-database \ |
|||
07.update-mime-database \ |
|||
08.gtk-update-icon-cache \ |
|||
11.cacerts \ |
|||
cups-genppdupdate |
|||
do |
|||
var/log/setup/setup.$script |
|||
done |
|||
chroot . /usr/bin/update-gtk-immodules > /dev/null 2>&1 |
|||
chroot . /usr/bin/update-gdk-pixbuf-loaders > /dev/null 2>&1 |
|||
chroot . /usr/bin/update-pango-querymodules > /dev/null 2>&1 |
|||
chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas > /dev/null 2>&1 |
|||
' |
|||
# We only run a few setup scripts that do not require user interaction, and deal with updating caches and such, which is not done (properly) by the doinst.sh scripts. |
|||
# To get a full list, run: bzcat MANIFEST.bz2 | awk '{print $6}' | grep '^var/log/setup/setup\.' | sort |
|||
# Besides the setup scripts, we also need to run some programs which are usually ran from /etc/rc.d/rc.M, but not from the setup scripts. |
|||
# This is tailored to Slackware 14.2. I'm unsure whether it'll work properly on any other version. |
@ -1,58 +0,0 @@ |
|||
#!/bin/sh |
|||
set -e |
|||
|
|||
# DISCLAIMER |
|||
# Don't ever think of installing every single package generated with this script. |
|||
# While it *should* not cause any problems, doing so is simply overkill, untested, and not recommended in the least. |
|||
|
|||
if [ "$#" -lt 2 ]; then |
|||
echo "Usage: $0 <slackware> <slackware64> [whitelist]" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
scriptdir="$(realpath "$(dirname "$0")")" |
|||
|
|||
slackware="$1" |
|||
slackware64="$2" |
|||
whitelist="$3" |
|||
|
|||
find "$slackware" -type f -name "*.t?z" -printf '%P\n' | sort | while read -r pkg; do |
|||
# See /sbin/installpkg |
|||
pkgbase="$(echo "$pkg" | sed -e 's?.*/??;s/\.t[bglx]z$//')" |
|||
pkgext="$(echo "$pkg" | sed -e 's?.*/??;s/.*\.\(t[bglx]z\)$/\1/')" |
|||
pkgname="$(echo "$pkgbase" | sed -e 's?-[^-]*-[^-]*-[^-]*$??')" |
|||
pkgver="$(echo "$pkgbase" | sed -e 's?.*-\([^-]*\)-[^-]*-[^-]*$?\1?')" |
|||
pkgarch="$(echo "$pkgbase" | sed -e 's?.*-[^-]*-\([^-]*\)-[^-]*$?\1?')" |
|||
|
|||
if [ "$whitelist" ]; then |
|||
if ! grep -v '^#' "$whitelist" | fgrep -xq "$pkgname"; then |
|||
continue |
|||
fi |
|||
fi |
|||
|
|||
case "$pkgarch" in |
|||
i?86) pkgarch=x86_64 ;; |
|||
# Architecture-independent stuff |
|||
noarch|fw) continue ;; |
|||
# Only kernel-headers uses x86 as pkgarch. That doesn't need conversion. |
|||
x86) continue ;; |
|||
*) |
|||
echo "WARNING: Package '$pkg' has an unsupported architecture: '$pkgarch'" |
|||
exit |
|||
;; |
|||
esac |
|||
|
|||
if [ ! -f "$slackware64/$(dirname "$pkg")/$pkgname-$pkgver-$pkgarch-"*".$pkgext" ]; then |
|||
echo "WARNING: Package '$pkg' doesn't exist in slackware64, or there were multiple with different build versions." |
|||
continue |
|||
fi |
|||
|
|||
rpkg="$(realpath "$slackware/$pkg")" |
|||
rpkg64="$(realpath "$slackware64/$(dirname "$pkg")/$pkgname-$pkgver-$pkgarch-"*".$pkgext")" |
|||
|
|||
mkdir -p "$(dirname "$pkg")" |
|||
|
|||
( cd "$(dirname "$pkg")" |
|||
"$scriptdir/convert32pkg.sh" "$rpkg" "$rpkg64" |
|||
) |
|||
done |
@ -1,188 +0,0 @@ |
|||
#!/bin/sh |
|||
set -e |
|||
|
|||
gpgkey='' |
|||
timestamp="$(LC_ALL=C date -u)" |
|||
cachedir='.cache' |
|||
|
|||
# Cleanup |
|||
if [ "$1" = 'clean' ]; then |
|||
rm -rf "$cachedir" ChangeLog.txt PACKAGES.TXT MANIFEST.bz2 FILELIST.TXT CHECKSUMS.md5 CHECKSUMS.md5.asc GPG-KEY |
|||
find . -regex '.*\.t[bglx]z$' | while read -r package; do |
|||
pkgbase="$(echo "$package" | sed 's?.*/??;s/\.t[bglx]z$//')" |
|||
rm -f "$(dirname "$package")/$pkgbase.txt" |
|||
rm -f "$package.asc" |
|||
done |
|||
|
|||
exit |
|||
fi |
|||
|
|||
mkdir -p "$cachedir" |
|||
|
|||
# Process all packages |
|||
find . -regex '.*\.t[bglx]z$' | while read -r package; do |
|||
case "$package" in |
|||
*.tgz) |
|||
tool=gzip |
|||
;; |
|||
*.tbz) |
|||
tool=bzip2 |
|||
;; |
|||
*.tlz) |
|||
tool=lzma |
|||
;; |
|||
*.txz) |
|||
tool=xz |
|||
;; |
|||
esac |
|||
|
|||
# See the pkgbase and package_name functions in /sbin/installpkg |
|||
pkgbase="$(echo "$package" | sed 's?.*/??;s/\.t[bglx]z$//')" |
|||
pkgdir="$(dirname "$package")" |
|||
pkgname="$(echo "$pkgbase" | sed 's?-[^-]*-[^-]*-[^-]*$??')" |
|||
|
|||
pkgtxt="$pkgdir/$pkgbase.txt" |
|||
pkgmeta="$cachedir/$pkgdir/$pkgbase.meta" |
|||
pkgmanifest="$cachedir/$pkgdir/$pkgbase.manifest" |
|||
pkgsize="$cachedir/$pkgdir/$pkgbase.size" |
|||
pkgusize="$cachedir/$pkgdir/$pkgbase.usize" |
|||
|
|||
pkgsum="$cachedir/$pkgdir/$pkgbase.checksum" |
|||
|
|||
if [ -f "$pkgtxt" -a \ |
|||
-f "$pkgmeta" -a \ |
|||
-f "$pkgmanifest" -a \ |
|||
-f "$pkgsize" -a \ |
|||
-f "$pkgusize" -a \ |
|||
-f "$pkgsum" ]; then |
|||
if [ "$gpgkey" ]; then |
|||
if [ -f "$package.asc" ]; then |
|||
md5sum --status -c "$pkgsum" && continue |
|||
fi |
|||
else |
|||
md5sum --status -c "$pkgsum" && continue |
|||
fi |
|||
fi |
|||
|
|||
echo "Adding $package..." |
|||
mkdir -p "$cachedir/$pkgdir" |
|||
|
|||
# Decompress the package |
|||
tmppkg="$(mktemp)" |
|||
$tool -cd "$package" > "$tmppkg" |
|||
|
|||
# Get package size |
|||
du -k "$package" | cut -f 1 > "$pkgsize" |
|||
du -k "$tmppkg" | cut -f 1 > "$pkgusize" |
|||
|
|||
# Generate .txt file (see /usr/bin/slackdtxt) |
|||
(tar xOf "$tmppkg" install/slack-desc 2> /dev/null || echo "$pkgname:") | egrep -v '^($|#| *\|)' > "$pkgtxt" |
|||
|
|||
# Create manifest for this package |
|||
cat > "$pkgmanifest" << EOF |
|||
++======================================== |
|||
|| |
|||
|| Package: $package |
|||
|| |
|||
++======================================== |
|||
$(TZ=EST tar tvvf "$tmppkg") |
|||
|
|||
|
|||
EOF |
|||
|
|||
# Create metadata for this package |
|||
# Source for the sed line: https://stackoverflow.com/questions/1444406/how-can-i-delete-duplicate-lines-in-a-file-in-unix#1444433 |
|||
cat > "$pkgmeta" << EOF |
|||
PACKAGE NAME: $(basename "$package") |
|||
PACKAGE LOCATION: $pkgdir |
|||
PACKAGE SIZE (compressed): $(cat "$pkgsize" | xargs) K |
|||
PACKAGE SIZE (uncompressed): $(cat "$pkgusize" | xargs) K |
|||
PACKAGE DESCRIPTION: |
|||
$(cat "$pkgtxt" | sed -e '$!N; /^\(.*\)\n\1$/!P; D') |
|||
|
|||
EOF |
|||
|
|||
# Sign the package |
|||
rm -f "$package.asc" |
|||
[ "$gpgkey" ] && gpg -bas --use-agent --batch -u "$gpgkey" "$package" |
|||
|
|||
# Remove decompressed package |
|||
rm -f "$tmppkg" |
|||
|
|||
# Save checksum |
|||
md5sum "$package" > "$pkgsum" |
|||
done |
|||
|
|||
# Generate shitty ChangeLog.txt |
|||
echo "$timestamp" > ChangeLog.txt |
|||
|
|||
# Create GPG-KEY |
|||
if [ "$gpgkey" ]; then |
|||
gpg --list-keys "$gpgkey" > GPG-KEY |
|||
gpg -a --export "$gpgkey" >> GPG-KEY |
|||
fi |
|||
|
|||
# Generate PACKAGES.TXT |
|||
echo "Generating PACKAGES.TXT..." |
|||
|
|||
cat > PACKAGES.TXT << EOF |
|||
|
|||
PACKAGES.TXT; $timestamp |
|||
|
|||
This file provides details on the Slackware packages found |
|||
in this directory. |
|||
|
|||
Total size of all packages (compressed): $(expr \( 0$(find "$cachedir" -type f -name '*.size' | xargs cat | xargs printf ' + %s') \) / 1024 || true) MB |
|||
Total size of all packages (uncompressed): $(expr \( 0$(find "$cachedir" -type f -name '*.usize' | xargs cat | xargs printf ' + %s') \) / 1024 || true) MB |
|||
|
|||
|
|||
EOF |
|||
|
|||
# https://stackoverflow.com/questions/4255603/sort-files-by-basename#4256095 |
|||
find "$cachedir" -type f -name '*.meta' | perl -e 'print sort{($p=$a)=~s!.*/!!;($q=$b)=~s!.*/!!;$p cmp$q}<>' | xargs cat >> PACKAGES.TXT |
|||
|
|||
echo >> PACKAGES.TXT |
|||
|
|||
# Generate MANIFEST.bz2 |
|||
echo "Generating MANIFEST.bz2..." |
|||
find "$cachedir" -type f -name '*.manifest' | sort | xargs cat | bzip2 -9 -z > MANIFEST.bz2 |
|||
|
|||
# Generate FILELIST.TXT |
|||
echo "Generating FILELIST.TXT..." |
|||
|
|||
cat > FILELIST.TXT << EOF |
|||
$timestamp |
|||
|
|||
Here is the file list for this directory. If you are using a |
|||
mirror site and find missing or extra files in the disk |
|||
subdirectories, please have the archive administrator refresh |
|||
the mirror. |
|||
|
|||
EOF |
|||
find . ! -path "./$cachedir/*" -a ! -name "$cachedir" | sort | xargs fakeroot ls -ld --time-style=long-iso > FILELIST.TXT |
|||
|
|||
# Generate CHECKSUMS.md5 |
|||
echo "Generating CHECKSUMS.md5..." |
|||
|
|||
cat > CHECKSUMS.md5 << EOF |
|||
These are the MD5 message digests for the files in this directory. |
|||
If you want to test your files, use 'md5sum' and compare the values to |
|||
the ones listed here. |
|||
|
|||
To test all these files, use this command: |
|||
|
|||
tail +13 CHECKSUMS.md5 | md5sum -c --quiet - | less |
|||
|
|||
'md5sum' can be found in the GNU coreutils package on ftp.gnu.org in |
|||
/pub/gnu, or at any GNU mirror site. |
|||
|
|||
MD5 message digest Filename |
|||
EOF |
|||
find . -type f -a ! -path "./$cachedir/*" | sort | xargs md5sum >> CHECKSUMS.md5 |
|||
|
|||
# Sign CHECKSUMS.md5 |
|||
rm -f CHECKSUMS.md5.asc |
|||
[ "$gpgkey" ] && gpg -bas --use-agent --batch -u "$gpgkey" CHECKSUMS.md5 |
|||
|
|||
# Remove tmpdir |
|||
rm -rf "$tmpdir" |
@ -1,143 +0,0 @@ |
|||
#!/bin/sh |
|||
set -eu |
|||
|
|||
if [ "$(id -u)" != 0 ]; then |
|||
echo "This script needs root permissions!" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
if [ "$#" -lt 1 ]; then |
|||
echo "Usage: $0 [-a arch] [-m mirror] <chroot>" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
|
|||
arch="$(uname -m)" |
|||
mirror='https://mirrors.slackware.com/slackware/slackware64-current' |
|||
|
|||
# Minimal amount of packages required to run installpkg, removepkg, upgradepkg, explodepkg and makepkg |
|||
# All of these exist in the 'a' package set |
|||
packages_pkgtools=' |
|||
aaa_base |
|||
aaa_elflibs |
|||
bash |
|||
coreutils |
|||
etc |
|||
findutils |
|||
glibc-solibs |
|||
grep |
|||
pkgtools |
|||
sed |
|||
tar |
|||
util-linux |
|||
which |
|||
xz |
|||
' |
|||
|
|||
# Minimal amount of packages required to run slackpkg without the dialog interface |
|||
# Supporting https, gpg, and upgrade-all. |
|||
# These exist over the 'a', 'ap', 'n' and 'l' package sets |
|||
# ca-certificates needs to be installed after openssl for the doinst.sh to run correctly |
|||
packages_extra=' |
|||
bzip2 |
|||
diffutils |
|||
gawk |
|||
gnupg |
|||
gzip |
|||
libpsl |
|||
libunistring |
|||
pcre2 |
|||
slackpkg |
|||
wget |
|||
|
|||
openssl |
|||
ca-certificates |
|||
' |
|||
|
|||
# Parse arguments |
|||
while getopts "a:m:" opt; do |
|||
case "$opt" in |
|||
a) arch="$OPTARG" ;; |
|||
m) |
|||
if [ -d "$OPTARG" ]; then |
|||
mirror="$(realpath "$OPTARG")" |
|||
else |
|||
mirror="$OPTARG" |
|||
fi |
|||
;; |
|||
esac |
|||
done |
|||
shift $(expr $OPTIND - 1) |
|||
[ "$#" -ge 1 ] && [ "$1" = "--" ] && shift |
|||
|
|||
# Build final variables |
|||
case "$arch" in |
|||
x86_64) pkgmain='slackware64' ;; |
|||
*) pkgmain='slackware' ;; |
|||
esac |
|||
initrd='isolinux/initrd.img' |
|||
checksums='CHECKSUMS.md5' |
|||
chroot="$(realpath "$1")" |
|||
|
|||
# Create working directory |
|||
temp="$(mktemp -d -t "$(basename "$0")".XXXXXX)" |
|||
cleanup() { |
|||
if mountpoint -q "$temp/mnt/pkg"; then |
|||
umount "$temp/mnt/pkg" |
|||
rmdir "$temp/mnt/pkg" |
|||
fi |
|||
mountpoint -q "$temp/mnt" && umount "$temp/mnt" |
|||
rm -rf "$temp" |
|||
} |
|||
trap 'cleanup' EXIT |
|||
cd "$temp" |
|||
|
|||
# Function to download (or copy) a file |
|||
get() { |
|||
if [ -d "$mirror" ]; then |
|||
cp "$mirror/$1" "$2" |
|||
else |
|||
wget "$mirror/$1" -O "$2" |
|||
fi |
|||
} |
|||
|
|||
# Function to verify files based on the checksums file |
|||
check() { |
|||
printf '%s' "$(tail +13 CHECKSUMS.md5 | grep "^[0-9a-f]* ./$1$" | cut -d ' ' -f 1) $2" | md5sum -c --quiet - |
|||
} |
|||
|
|||
# Get the full path to a package |
|||
package() { |
|||
tail +13 CHECKSUMS.md5 | grep "^[0-9a-f]* ./$pkgmain/[^/]*/$1-[^-]*-[^-]*-[^-]*\.t.z$" | cut -d ' ' -f 3- | cut -c 3- |
|||
} |
|||
|
|||
# Download checksums |
|||
get "$checksums" CHECKSUMS.md5 |
|||
|
|||
# Download installer initrd.img |
|||
get "$initrd" initrd.img |
|||
check "$initrd" initrd.img |
|||
|
|||
# Unpack and prepare the installer |
|||
xz -cd initrd.img | cpio -id |
|||
rm -f initrd.img |
|||
mkdir -p pkg "$chroot" |
|||
mount --bind "$chroot" mnt |
|||
mkdir -p mnt/pkg |
|||
mount --bind pkg mnt/pkg |
|||
|
|||
# Download packages |
|||
for pkg in $packages_pkgtools $packages_extra; do |
|||
path="$(package "$pkg")" |
|||
name="$(basename "$path")" |
|||
get "$path" "pkg/$name" |
|||
check "$path" "pkg/$name" |
|||
done |
|||
for pkg in $packages_pkgtools; do echo "$(basename "$(package "$pkg")")" >> pkg/__; done |
|||
for pkg in $packages_extra; do echo "$(basename "$(package "$pkg")")" >> pkg/_; done |
|||
|
|||
# Bootstrap pkgtools and its dependencies |
|||
env -i chroot . sh -l -c 'while read pkg; do /sbin/installpkg --root /mnt --terse "/pkg/$pkg"; done < /pkg/__' |
|||
|
|||
# Install slackpkg and its dependencies |
|||
env -i chroot mnt sh -l -c 'while read pkg; do /sbin/installpkg --terse "/pkg/$pkg"; done < /pkg/_' |
@ -1,63 +0,0 @@ |
|||
#!/bin/sh -e |
|||
set -e |
|||
|
|||
if [ "$(id -u)" != 0 ]; then |
|||
echo "This script needs root permissions!" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
if [ "$#" -lt 2 ]; then |
|||
echo "Usage: $0 <slackware> <chroot>" 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
slackware="$(realpath "$1")" |
|||
chroot="$(realpath "$2")" |
|||
|
|||
temp="$(mktemp -d -t makechroot.XXXXXX)" |
|||
|
|||
# Make sure we clean up properly before exitting |
|||
cleanup() { |
|||
mountpoint -q "$temp/mnt" && umount "$temp/mnt" |
|||
mountpoint -q "$temp/dvd" && umount "$temp/dvd" |
|||
rm -rf "$temp" |
|||
} |
|||
trap 'cleanup' EXIT |
|||
|
|||
# Extract the initrd |
|||
cd "$temp" |
|||
xz -cd "$slackware/isolinux/initrd.img" | cpio -id |
|||
|
|||
# Mount the dvd |
|||
mkdir dvd |
|||
mount --bind "$slackware" dvd |
|||
|
|||
# Mount the destination |
|||
mkdir -p "$chroot" |
|||
mount --bind "$chroot" mnt |
|||
|
|||
# Install the packages |
|||
env -i chroot . sh -l -c ' |
|||
/sbin/installpkg --root /mnt --terse /dvd/slackware*/*/*.t?z |
|||
|
|||
cd /mnt |
|||
for script in \ |
|||
04.mkfontdir \ |
|||
05.fontconfig \ |
|||
07.update-desktop-database \ |
|||
07.update-mime-database \ |
|||
08.gtk-update-icon-cache \ |
|||
11.cacerts \ |
|||
cups-genppdupdate |
|||
do |
|||
var/lib/pkgtools/setup/setup.$script |
|||
done |
|||
chroot . /usr/bin/update-gtk-immodules > /dev/null 2>&1 |
|||
HOME=/root chroot . /usr/bin/update-gdk-pixbuf-loaders > /dev/null 2>&1 |
|||
chroot . /usr/bin/update-pango-querymodules > /dev/null 2>&1 |
|||
chroot . /usr/bin/glib-compile-schemas /usr/share/glib-2.0/schemas > /dev/null 2>&1 |
|||
' |
|||
# We only run a few setup scripts that do not require user interaction, and deal with updating caches and such, which is not done (properly) by the doinst.sh scripts. |
|||
# To get a full list, run: bzcat MANIFEST.bz2 | awk '{print $6}' | grep '^var/log/setup/setup\.' | sort |
|||
# Besides the setup scripts, we also need to run some programs which are usually ran from /etc/rc.d/rc.M, but not from the setup scripts. |
|||
# This is tailored to Slackware 15.0-current, I'm unsure whether it'll work properly on any other version. |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,120 @@ |
|||
[Desktop Entry] |
|||
Encoding=UTF-8 |
|||
Name=Vi IMproved |
|||
Name[af]=Vi Verbeterde |
|||
Name[ar]=في.أي المحسن |
|||
Name[bn]=ভি-আই উন্নত |
|||
Name[br]=Vi gwellaet |
|||
Name[ca]=Vi millorat |
|||
Name[cy]=VIM (Vi wedi'i wella) |
|||
Name[da]=Vi IMproved (Vi forbedret) |
|||
Name[eo]=VIM |
|||
Name[fa]=Vi پیشرفت کرده VIM |
|||
Name[hi]=वीआई इम्प्रूव्ड |
|||
Name[hu]=VIM |
|||
Name[is]=Vi endurbættur (vim) |
|||
Name[it]=Vi iMproved |
|||
Name[ko]=더 나은 Vi |
|||
Name[mn]=Сайжирсан Vi |
|||
Name[nso]=KAonafaditswe ka Vi |
|||
Name[oc]=VI aMillorat |
|||
Name[pl]=Poprawiony VI (vim) |
|||
Name[pt_BR]=Vi melhorado |
|||
Name[ru]=Улучшенный vi |
|||
Name[rw]=Vi Ivuguruwe |
|||
Name[sl]=Izboljšani vi (vim) |
|||
Name[sv]=Förbättrad Vi |
|||
Name[ta]=Vi மேம்படுத்தப்பட்ட |
|||
Name[tg]=Vi пешрафт кардаи VIM |
|||
Name[th]=VI IMprove |
|||
Name[uz]=Яхшиланган Vi |
|||
Name[ven]=Vi Khwinifhadzhwa |
|||
Name[vi]=Vi Cải tiến |
|||
Name[wa]=VIM |
|||
Name[zh_CN]=改进的 VI (VIM) |
|||
Name[zh_TW]=VIM |
|||
Name[zu]=I-Vi yenziwe ngcono |
|||
GenericName=Text Editor |
|||
GenericName[af]=Teks Redigeerder |
|||
GenericName[ar]=محرر نصوص |
|||
GenericName[az]=Mətn Editoru |
|||
GenericName[be]=Тэкставы рэдактар |
|||
GenericName[bg]=Текстов редактор |
|||
GenericName[bn]=টেক্সট সম্পাদক |
|||
GenericName[br]=Aozer skrid |
|||
GenericName[bs]=Tekst editor |
|||
GenericName[ca]=Editor de text |
|||
GenericName[cs]=Textový editor |
|||
GenericName[cy]=Golygydd Testun |
|||
GenericName[da]= Teksteditor |
|||
GenericName[de]=Texteditor |
|||
GenericName[el]=Επεξεργαστής κειμένου |
|||
GenericName[eo]=Tekstredaktilo |
|||
GenericName[es]=Editor de texto |
|||
GenericName[et]=Tekstiredaktor |
|||
GenericName[eu]=Testu editorea |
|||
GenericName[fa]=ویرایشگر متن |
|||
GenericName[fi]=Tekstieditori |
|||
GenericName[fo]=Tekstritil |
|||
GenericName[fr]=Éditeur de texte |
|||
GenericName[fy]=Tekst Bewurker |
|||
GenericName[ga]=Eagarthóir Téacs |
|||
GenericName[gl]=Editor de Textos |
|||
GenericName[he]=עורך טקסט |
|||
GenericName[hi]=पाठ संपादक |
|||
GenericName[hr]=Uređivač teksta |
|||
GenericName[hsb]=Wobdźěłar tekstow |
|||
GenericName[hu]=Szövegszerkesztő |
|||
GenericName[is]=Textaritill |
|||
GenericName[it]=Editor di testi |
|||
GenericName[ja]=テキストエディタ |
|||
GenericName[km]=កម្មវិធីវាយអត្ថបទ |
|||
GenericName[ko]=글월 편집기 |
|||
GenericName[lo]=ເຄື່ອງມືແກ້ໄຂຂໍ້ຄວາມ |
|||
GenericName[lt]=Teksto rengyklė |
|||
GenericName[lv]=Teksta Redaktors |
|||
GenericName[mk]=Уредувач на текст |
|||
GenericName[mn]=Текст боловсруулагч |
|||
GenericName[ms]=Penyunting Teks |
|||
GenericName[mt]=Editur tat-test |
|||
GenericName[nb]=Skriveprogram |
|||
GenericName[nds]=Texteditor |
|||
GenericName[nl]=Teksteditor |
|||
GenericName[nn]=Skriveprogram |
|||
GenericName[nso]=Mofetosi wa Sengwalwana |
|||
GenericName[pa]=ਪਾਠ ਸੰਪਾਦਕ |
|||
GenericName[pl]=Edytor tekstu |
|||
GenericName[pt]=Editor de Texto |
|||
GenericName[pt_BR]=Editor de Texto |
|||
GenericName[ro]=Editor de text |
|||
GenericName[ru]=Текстовый редактор |
|||
GenericName[rw]=Muhinduzi Umwandiko |
|||
GenericName[se]=Čállinprográmma |
|||
GenericName[sk]=Textový editor |
|||
GenericName[sl]=Urejevalnik besedil |
|||
GenericName[sr]=Уређивач текста |
|||
GenericName[sr@Latn]=Uređivač teksta |
|||
GenericName[ss]=Sihleli sembhalo |
|||
GenericName[sv]=Texteditor |
|||
GenericName[ta]=உரை தொகுப்பாளர் |
|||
GenericName[tg]=Муҳаррири матн |
|||
GenericName[th]=โปรแกรมแก้ไขข้อความ |
|||
GenericName[tr]=Metin Düzenleyici |
|||
GenericName[tt]=Mäten Tözätkeçe |
|||
GenericName[uk]=Редактор текстів |
|||
GenericName[uz]=Матн таҳрирчи |
|||
GenericName[ven]=Musengulusi wa Manwalwa |
|||
GenericName[vi]=Trình soạn văn bản |
|||
GenericName[wa]=Aspougneu di tecse |
|||
GenericName[xh]=Umhleli Wombhalo |
|||
GenericName[zh_CN]=文本编辑器 |
|||
GenericName[zh_TW]=文字編輯器 |
|||
GenericName[zu]=Umlungisi wombhalo |
|||
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; |
|||
Exec=gvim -f %f |
|||
Icon=gvim.png |
|||
Type=Application |
|||
Terminal=false |
|||
X-KDE-StartupNotify=true |
|||
X-KDE-AuthorizeAction=shell_access |
|||
Categories=TextEditor; |
After Width: | Height: | Size: 8.1 KiB |
@ -1,15 +0,0 @@ |
|||
This repo contains all my slackware modifications of the base install. |
|||
Additional packages are contained in RocketLinux and built in a non-standard manner. |
|||
|
|||
This branch contains a few scripts I use, related to slackware. |
|||
|
|||
- kernel.SlackBuild is capable of building a near-identical slackware kernel |
|||
- convert32pkg.sh converts a 32bit package to be installable on 64bit (by |
|||
removing everything present in the 64bit package). |
|||
It is only designed to support some packages in the official slackware iso, |
|||
because there's all kinds of packages that need special treatment, |
|||
especially for their doinst.sh scripts. |
|||
- massconvert32.sh calls convert32pkg.sh over an entire package directory |
|||
- update-repo.sh is my shitty implementation of a slackware repo generator, |
|||
that tries to generate everything as close to the official slackware repo as |
|||
possible. |
@ -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------------------------------------------------------| |
|||
vim: vim (Vi IMproved) |
|||
vim: |
|||
vim: Vim is an almost compatible version of the UNIX editor vi. Many new |
|||
vim: features have been added: multi level undo, command line history, |
|||
vim: filename completion, block operations, and more. |
|||
vim: |
|||
vim: Vim's development is led by Bram Moolenaar. |
|||
vim: |
|||
vim: This package also contains the Exuberant Ctags program |
|||
vim: written by Darren Hiebert. |
|||
vim: |
@ -0,0 +1,230 @@ |
|||
#!/bin/sh |
|||
|
|||
# Copyright 2008, 2009, 2010, 2013, 2016 Patrick J. Volkerding, Sebeka, Minnesota, 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. |
|||
|
|||
VIMBRANCH=8.1 |
|||
CTAGSVER=5.8 |
|||
BUILD=${BUILD:-1} |
|||
|
|||
CWD=$(pwd) |
|||
|
|||
if [ "$1" = "check" ]; then |
|||
VERSION=$(echo vim-${VIMBRANCH}*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev) |
|||
NEWVERSION="$(echo $(basename $(wget -q -O - https://github.com/vim/vim/releases | grep -F v${VIMBRANCH} | head -n 1 | cut -f 2 -d \" )) | cut -b2- )" |
|||
|
|||
if [ ! "$NEWVERSION" ]; then |
|||
echo "Failed to fetch latest version" |
|||
exit |
|||
fi |
|||
|
|||
if [ "$VERSION" != "$NEWVERSION" ]; then |
|||
echo "New version available: $NEWVERSION" |
|||
exit |
|||
fi |
|||
|
|||
echo "No updates available" |
|||
exit |
|||
fi |
|||
|
|||
if [ -r vim-${VIMBRANCH}*.tar.xz ]; then # if there's a source archive already, use the version number from it: |
|||
VERSION=$(echo vim-${VIMBRANCH}*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev) |
|||
else # need to fetch the latest source archive for this branch: |
|||
VERSION="$(echo $(basename $(wget -q -O - https://github.com/vim/vim/releases | grep -F v${VIMBRANCH} | head -n 1 | cut -f 2 -d \" )) | cut -b2- )" |
|||
( lftpget https://github.com/vim/vim/archive/v${VERSION}.tar.gz |
|||
gzip -d v${VERSION}.tar.gz |
|||
mv v${VERSION}.tar vim-${VERSION}.tar |
|||
xz -9 -v vim-${VERSION}.tar |
|||
if [ ! -r vim-${VERSION}.tar.xz ]; then |
|||
echo "ERROR: Something went wrong trying to fetch https://github.com/vim/vim/archive/v${VERSION}.tar.gz" |
|||
exit 1 |
|||
fi |
|||
) || exit 1 |
|||
fi |
|||
|
|||
# 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 |
|||
|
|||
NUMJOBS=${NUMJOBS:-" -j7 "} |
|||
|
|||
PYVER=$(python -V 2>&1 | cut -f 2 -d' ' | cut -f 1-2 -d.) |
|||
|
|||
if [ "$ARCH" = "x86_64" ]; then |
|||
export SLKCFLAGS="-O2 -fPIC" |
|||
export LIBDIRSUFFIX="64" |
|||
else |
|||
export SLKCFLAGS="-O2" |
|||
export LIBDIRSUFFIX="" |
|||
fi |
|||
export SLKLDFLAGS="-L/usr/lib${LIBDIRSUFFIX}" |
|||
|
|||
TMP=${TMP:-/tmp} |
|||
PKG=$TMP/package-vim |
|||
|
|||
rm -rf $PKG |
|||
mkdir -p $TMP $PKG |
|||
|
|||
# ctags was once a part of vim, |
|||
# but now we have to bundle it in |
|||
cd $TMP |
|||
rm -rf ctags-$CTAGSVER |
|||
tar xvf $CWD/ctags-$CTAGSVER.tar.xz || exit 1 |
|||
cd ctags-$CTAGSVER |
|||
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 {} \; |
|||
CFLAGS="$SLKCFLAGS" LDFLAGS="$SLKLDFLAGS" \ |
|||
./configure \ |
|||
--prefix=/usr \ |
|||
--build=$ARCH-slackware-linux |
|||
make $NUMJOBS || make || exit 1 |
|||
mkdir -p $PKG/usr/bin |
|||
cat ctags > $PKG/usr/bin/ctags |
|||
chmod 755 $PKG/usr/bin/ctags |
|||
mkdir -p $PKG/usr/man/man1 |
|||
cat ctags.1 | gzip -9c > $PKG/usr/man/man1/ctags.1.gz |
|||
mkdir -p $PKG/usr/doc/ctags-$CTAGSVER |
|||
cp -a \ |
|||
COPYING* EXTENDING.html FAQ INSTALL INSTALL.oth NEWS README* \ |
|||
$PKG/usr/doc/ctags-$CTAGSVER |
|||
chmod 644 $PKG/usr/doc/ctags-$CTAGSVER/* |
|||
|
|||
cd $TMP |
|||
rm -rf vim-${VERSION} |
|||
tar xvf $CWD/vim-${VERSION}.tar.xz || exit 1 |
|||
|
|||
config_vim() { |
|||
CFLAGS="$SLKCFLAGS" \ |
|||
./configure \ |
|||
$* \ |
|||
--prefix=/usr \ |
|||
--enable-pythoninterp \ |
|||
--with-python-config-dir=/usr/lib${LIBDIRSUFFIX}/python$PYVER/config \ |
|||
--enable-perlinterp \ |
|||
--disable-tclinterp \ |
|||
--enable-multibyte \ |
|||
--enable-cscope \ |
|||
--with-features=huge \ |
|||
--with-compiledby="<volkerdi@slackware.com>" \ |
|||
--build=$ARCH-slackware-linux |
|||
|
|||
# I had been adding this, but got 100% complaints and 0% kudos: |
|||
# --enable-rubyinterp |
|||
} |
|||
|
|||
cd $TMP/vim-$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 {} \; |
|||
|
|||
config_vim --with-x --enable-gui=gtk2 |
|||
make $NUMJOBS || make || exit 1 |
|||
make install DESTDIR=$PKG || exit 1 |
|||
|
|||
rsync -lprvt $PKG/usr/share/man/ $PKG/usr/man/ |
|||
rm -r $PKG/usr/share/man |
|||
|
|||
cp -a runtime/vimrc_example.vim runtime/vimrc.new |
|||
|
|||
# Don't make backups in /var/spool/cron/*, which fixes "crontab -e": |
|||
zcat $CWD/vim.vimrc.diff.gz | patch -p1 --verbose || exit 1 |
|||
|
|||
# Add patched vimrc to the package: |
|||
cat runtime/vimrc.new > $PKG/usr/share/vim/vimrc.new |
|||
|
|||
# Fix manpage symlinks: |
|||
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 |
|||
|
|||
# Legacy binary links: |
|||
( cd $PKG/usr/bin ; rm -rf ex ) |
|||
( cd $PKG/usr/bin ; ln -sf vim ex ) |
|||
( cd $PKG/usr/bin ; rm -rf rview ) |
|||
( cd $PKG/usr/bin ; ln -sf vim rview ) |
|||
( cd $PKG/usr/bin ; rm -rf rvim ) |
|||
( cd $PKG/usr/bin ; ln -sf vim rvim ) |
|||
( cd $PKG/usr/bin ; rm -rf view ) |
|||
( cd $PKG/usr/bin ; ln -sf vim view ) |
|||
( cd $PKG/usr/bin ; rm -rf eview ) |
|||
( cd $PKG/usr/bin ; ln -sf vim eview ) |
|||
( cd $PKG/usr/bin ; rm -rf evim ) |
|||
( cd $PKG/usr/bin ; ln -sf vim evim ) |
|||
|
|||
mkdir -p $PKG/usr/doc/vim-$VERSION |
|||
cp -a README.txt $PKG/usr/doc/vim-$VERSION |
|||
find $PKG/usr/doc/vim-$VERSION -type f | xargs chmod 644 |
|||
( cd $PKG/usr/doc/vim-$VERSION ; rm -rf doc ) |
|||
( cd $PKG/usr/doc/vim-$VERSION ; ln -sf /usr/share/vim/vim$(echo $VIMBRANCH | tr -d .) doc ) |
|||
|
|||
mkdir -p $PKG/install |
|||
cat $CWD/slack-desc.vim > $PKG/install/slack-desc |
|||
cat << EOF > $PKG/install/doinst.sh |
|||
#!/bin/sh |
|||
config() { |
|||
NEW="\$1" |
|||
OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)" |
|||
# If there's no config file by that name, mv it over: |
|||
if [ ! -r \$OLD ]; then |
|||
mv \$NEW \$OLD |
|||
elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy |
|||
rm \$NEW |
|||
fi |
|||
# Otherwise, we leave the .new copy for the admin to consider... |
|||
} |
|||
config usr/share/vim/vimrc.new |
|||
EOF |
|||
zcat $CWD/doinst.sh.gz >> $PKG/install/doinst.sh |
|||
|
|||
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ |
|||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null |
|||
|
|||
mkdir -p $PKG/usr/share/applications |
|||
cp -a $CWD/gvim.desktop $PKG/usr/share/applications |
|||
mkdir -p $PKG/usr/share/pixmaps |
|||
cp -a $CWD/gvim.png $PKG/usr/share/pixmaps |
|||
|
|||
cd $PKG |
|||
/sbin/makepkg -l y -c n $TMP/vim-$VERSION-$ARCH-$BUILD.txz |
|||
|
Binary file not shown.
Loading…
Reference in new issue