diff --git a/.rubocop.yml b/.rubocop.yml index d47da7d..85e4686 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -109,3 +109,27 @@ Style/RedundantArgument: # (new in 1.4) Style/SwapValues: # (new in 1.1) Enabled: false + +Gemspec/DateAssignment: # (new in 1.10) + Enabled: true + +Lint/NumberedParameterAssignment: # (new in 1.9) + Enabled: true + +Lint/OrAssignmentToConstant: # (new in 1.9) + Enabled: true + +Lint/SymbolConversion: # (new in 1.9) + Enabled: true + +Lint/TripleQuotes: # (new in 1.9) + Enabled: true + +Style/HashConversion: # (new in 1.10) + Enabled: true + +Style/IfWithBooleanLiteralBranches: # (new in 1.9) + Enabled: true + +Style/StringChars: # (new in 1.12) + Enabled: true diff --git a/Gemfile.lock b/Gemfile.lock index d381be1..6f37514 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,14 +1,14 @@ GEM remote: https://rubygems.org/ specs: - ast (2.4.1) + ast (2.4.2) parallel (1.20.1) parser (3.0.0.0) ast (~> 2.4.1) rainbow (3.0.0) - regexp_parser (2.0.3) + regexp_parser (2.1.1) rexml (3.2.4) - rubocop (1.8.0) + rubocop (1.12.0) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) @@ -17,7 +17,7 @@ GEM rubocop-ast (>= 1.2.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.4.0) + rubocop-ast (1.4.1) parser (>= 2.7.1.5) ruby-progressbar (1.11.0) unicode-display_width (2.0.0) @@ -29,4 +29,4 @@ DEPENDENCIES rubocop (~> 1.7) BUNDLED WITH - 2.1.4 + 2.2.3 diff --git a/Rakefile b/Rakefile index 4ff446c..f94ba83 100644 --- a/Rakefile +++ b/Rakefile @@ -11,8 +11,8 @@ require_relative 'lib/package' require_relative 'lib/download' task :dmd do - version = '2.095.1' - dub_version = '1.24.1' + version = '2.096.0' + dub_version = '1.25.0' dscanner_version = '0.11.0' dcd_version = '0.13.1' tarball_name = "dmd.#{version}.linux.tar.xz" @@ -80,7 +80,7 @@ task :dmd do end task :composer do - version = '2.0.8' + version = '2.0.11' package = Package.new 'development/composer', version: version, diff --git a/config/config.rb.example b/config/config.rb.example index ef6b0c3..5f34073 100644 --- a/config/config.rb.example +++ b/config/config.rb.example @@ -2,5 +2,6 @@ CONFIG = { remote_path: 'example.com:/srv/httpd/some/path', - download_url: 'https://example.com/some/path' + download_url: 'https://example.com/some/path', + branch: 'user/nick/updates' } diff --git a/lib/download.rb b/lib/download.rb index 2f002d2..cb09c42 100644 --- a/lib/download.rb +++ b/lib/download.rb @@ -8,8 +8,6 @@ require_relative '../config/config' require_relative 'package' require 'net/http' -MY_BRANCH = 'user/belka/updates' - def write_download(target, response) checksum = Digest::MD5.new @@ -135,11 +133,11 @@ end def commit(package_path, version) message = "#{package_path}: Updated for version #{version}" - unless system('git', '-C', 'slackbuilds', 'checkout', MY_BRANCH, + unless system('git', '-C', 'slackbuilds', 'checkout', CONFIG[:branch], err: '/dev/null') - sh "git -C slackbuilds checkout -b #{MY_BRANCH} master" + sh 'git', '-C', 'slackbuilds', 'checkout', '-b', CONFIG[:branch], 'master' end - sh "git -C slackbuilds add #{package_path}" - sh %(git -C slackbuilds commit -S -m "#{message}") - # sh "git -C slackbuilds push origin #{branch}" + sh 'git', '-C', 'slackbuilds', 'add', package_path + sh 'git', '-C', 'slackbuilds', 'commit', '-S', '-m', message + # sh 'git', '-C', 'slackbuilds', 'push', 'origin', CONFIG[:branch] end diff --git a/scripts/gcc-d.SlackBuild b/scripts/gcc-d.SlackBuild deleted file mode 100755 index 3e77d2c..0000000 --- a/scripts/gcc-d.SlackBuild +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh - -# Slackware build script for gcc-d - -# Copyright 2017-2018 Eugene Wissner, Dachau, Germany -# -# Based on the GCC build script by 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. - -PRGNAM=gcc-d -SRCNAM=gdc -VERSION=${VERSION:-2.081.2} -GCC_VERSION=8.2.0 -HOST_GDC=2.076.0_b5 -HOST_GCC=5.5.0 -BUILD=${BUILD:-1} -TAG=${TAG:-_SBo} - -if [ -z "$ARCH" ]; then - case "$(uname -m)" in - i?86) ARCH=i586 ;; - arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; - *) ARCH=$(uname -m) ;; - esac - export ARCH -fi - -CWD=$(pwd) -TMP=${TMP:-/tmp/SBo} -PKG=$TMP/package-$PRGNAM -OUTPUT=${OUTPUT:-/tmp} - -if [ "$ARCH" = "i586" ]; then - SLKCFLAGS="-O2 -march=i586 -mtune=i686" - LIBDIRSUFFIX="" - LIB_ARCH=i386 -elif [ "$ARCH" = "i686" ]; then - SLKCFLAGS="-O2 -march=i686 -mtune=i686" - LIBDIRSUFFIX="" - LIB_ARCH=i386 -elif [ "$ARCH" = "x86_64" ]; then - SLKCFLAGS="-O2 -fPIC" - LIBDIRSUFFIX="64" - LIB_ARCH=amd64 -elif [ "$ARCH" = "armv7hl" ]; then - SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" - LIBDIRSUFFIX="" - LIB_ARCH=armv7hl -else - SLKCFLAGS="-O2" - LIBDIRSUFFIX="" - LIB_ARCH=$ARCH -fi - -case "$ARCH" in - arm*) TARGET=$ARCH-slackware-linux-gnueabi ;; - *) TARGET=$ARCH-slackware-linux ;; -esac - -if [ "$ARCH" != "x86_64" ]; then - GCC_ARCHOPTS="--with-arch=$ARCH" -else - GCC_ARCHOPTS="--disable-multilib" -fi - -set -e -rm -rf $PKG -mkdir -p $TMP $PKG $OUTPUT - -# -# Build bootstrap compiler -# -cd $TMP -rm -rf $SRCNAM-$HOST_GDC gcc-$HOST_GCC -tar xvf $CWD/gcc-$HOST_GCC.tar.?z* -tar xvf $CWD/$SRCNAM-$HOST_GDC.tar.?z* - -# Apply patches. -cd $TMP/gcc-$HOST_GCC/gcc - -cd $TMP/$SRCNAM-$HOST_GDC -sh setup-gcc.sh ../gcc-$HOST_GCC - -cd $TMP/gcc-$HOST_GCC -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -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 {} \; - -rm -rf $TMP/bootstrap-gcc-d - -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -../gcc-$HOST_GCC/configure \ - --prefix=$TMP/bootstrap-$PRGNAM \ - --enable-shared \ - --disable-bootstrap \ - --enable-languages=c,c++,d \ - --enable-threads=posix \ - --enable-checking=release \ - --with-system-zlib \ - --with-python-dir=/lib$LIBDIRSUFFIX/python2.7/site-packages \ - --enable-libstdcxx-dual-abi \ - --disable-libunwind-exceptions \ - --enable-__cxa_atexit \ - --enable-libssp \ - --enable-lto \ - --disable-install-libiberty \ - --with-gnu-ld \ - --verbose \ - --with-arch-directory=$LIB_ARCH \ - $GCC_ARCHOPTS \ - --target=${TARGET} \ - --build=${TARGET} \ - --host=${TARGET} - -make -make install - -# -# Build D compiler -# -cd $TMP -rm -rf $SRCNAM-$VERSION gcc-$GCC_VERSION -tar xvf $CWD/gcc-$GCC_VERSION.tar.?z* -tar xvf $CWD/$SRCNAM-$VERSION.tar.?z* - -# Apply patches. -cd $TMP/gcc-$GCC_VERSION/gcc - -cd $TMP/$SRCNAM-$VERSION -sh setup-gcc.sh ../gcc-$GCC_VERSION - -cd $TMP/gcc-$GCC_VERSION -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -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 {} \; - -CC="$TMP/bootstrap-$PRGNAM/bin/gcc" \ -CXX="$TMP/bootstrap-$PRGNAM/bin/g++" \ -CPP="$TMP/bootstrap-$PRGNAM/bin/cpp" \ -GDC="$TMP/bootstrap-$PRGNAM/bin/gdc" \ -LD="$TMP/bootstrap-$PRGNAM/bin/gcc" \ -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ -../gcc-$GCC_VERSION/configure \ - --prefix=/usr \ - --libdir=/usr/lib$LIBDIRSUFFIX \ - --mandir=/usr/man \ - --infodir=/usr/info \ - --enable-shared \ - --disable-bootstrap \ - --enable-languages=c,c++,d \ - --enable-threads=posix \ - --enable-checking=release \ - --with-system-zlib \ - --with-python-dir=/lib$LIBDIRSUFFIX/python2.7/site-packages \ - --enable-libstdcxx-dual-abi \ - --disable-libunwind-exceptions \ - --enable-__cxa_atexit \ - --enable-libssp \ - --enable-lto \ - --disable-install-libiberty \ - --with-gnu-ld \ - --verbose \ - --with-arch-directory=$LIB_ARCH \ - --program-suffix="-`echo $GCC_VERSION | cut -d. -f1`" \ - --with-pkgversion="GDC $VERSION" \ - $GCC_ARCHOPTS \ - --target=${TARGET} \ - --build=${TARGET} \ - --host=${TARGET} - -make -make install DESTDIR=$PKG - -# Remove not D related stuff, already available in GCC -find $PKG/usr/info -type f -not -name "*gdc*" -delete -rm -r $PKG/usr/man/man7 -rm -r $PKG/usr/share -#rm -r $PKG/usr/include - -#find $PKG/usr/libexec/gcc \ -# \( -type f -or -type l \) -not -name "cc1d" \ -# -delete - -#find $PKG/usr/lib$LIBDIRSUFFIX/gcc -mindepth 3 \ -# \( -type f -or -type l \) -not -regex ".*/d/.*" \ -# -delete - -#find $PKG/usr/lib$LIBDIRSUFFIX -maxdepth 1 \ -# \( -type f -or -type l \) \ -# -not \( -name "*phobos*" -or -name "*gdruntime*" \) \ -# -delete - -( - cd $PKG/usr/lib$LIBDIRSUFFIX - rm -r python2.7 *.py *.o \ - libasan.{a,la,so} \ - libatomic.{a,la,so,so.1} \ - libcc1.* libgcc_s.* libgomp.* libitm.* liblsan.* \ - libquadmath.* libsanitizer.spec libssp* \ - libstdc++fs.* libstdc++.{a,la,so,so.6} \ - libsupc++.* libtsan.* \ - libubsan.{a,la,so} -) - -find $PKG/usr -type d -empty -delete - - -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true - -find $PKG/usr/man -type f -exec gzip -9 {} \; -for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done - -gzip -9 $PKG/usr/info/*.info - -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cp $TMP/$SRCNAM-$VERSION/README.md $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild - -mkdir -p $PKG/install -cat $CWD/slack-desc > $PKG/install/slack-desc -cat $CWD/doinst.sh > $PKG/install/doinst.sh - -cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}