diff --git a/.circleci/config.yml b/.circleci/config.yml index 48d86a97c4cb..d3d8c6417a59 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1847,22 +1847,6 @@ jobs: - matrix_notify_failure_unless_pr - matrix_notify_release_unless_pr - b_alpine_docker: - <<: *base_cimg_small - steps: - - setup_remote_docker: - # Always build from scratch to use current packages. - # This job is only meant to run nightly so build time is not an issue. - docker_layer_caching: false - - checkout - - run: - name: Build and tag the container - command: scripts/docker_deploy_manual.sh develop "file://$PWD" --no-push - - run: - name: Smoke test - command: docker run --pull=never ethereum/solc:build-alpine --version - - matrix_notify_failure_unless_pr - workflows: version: 2 @@ -2047,9 +2031,6 @@ workflows: - b_ubu: *requires_nothing - t_ubu_soltest_deprecated_evm_versions: *requires_b_ubu - # Build in a Docker container (on Alpine Linux) - - b_alpine_docker: *requires_nothing - nightly-ossfuzz: triggers: diff --git a/.gitignore b/.gitignore index a9430fd98263..8d7ee768a75c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,6 @@ /commit_hash.txt /prerelease.txt -# Auth config for ppa release -/.release_ppa_auth - # Compiled Object files *.slo *.lo diff --git a/Changelog.md b/Changelog.md index 53039947bc9c..fe00bd644b0a 100644 --- a/Changelog.md +++ b/Changelog.md @@ -10,6 +10,8 @@ Bugfixes: * Yul Optimizer: Fix edge case in which invalid Yul code is produced by ExpressionSimplifier due to expressions being substituted that contain out-of-scope variables. Build System: +* Docker: Discontinue DockerHub as a binary distribution channel. +* Ubuntu PPA Packages: Discontinue the PPA as a binary distribution channel. * Update minimum version requirements of Boost to 1.83.0 for non-windows builds and of GCC and Clang to 13.3 and 18.1.3, respectively. Fixes infinite recursion on `boost::rational` comparison affecting compiler binaries built with GCC<14.0 and Boost<1.75. ### 0.8.30 (2025-05-07) diff --git a/ReleaseChecklist.md b/ReleaseChecklist.md index f0148cd0e69d..9f8edb50c80f 100644 --- a/ReleaseChecklist.md +++ b/ReleaseChecklist.md @@ -3,11 +3,6 @@ ### Requirements - [ ] GitHub account with access to [solidity](https://github.com/argotorg/solidity), [solc-js](https://github.com/argotorg/solc-js), [solc-bin](https://github.com/argotorg/solc-bin), [solidity-website](https://github.com/argotorg/solidity-website). -- [ ] DockerHub account with push rights to the [`solc` image](https://hub.docker.com/r/ethereum/solc). -- [ ] Launchpad (Ubuntu One) account with a membership in the ["Ethereum" team](https://launchpad.net/~ethereum) and - a gnupg key for your email in the `ethereum.org` domain (has to be version 1, gpg2 won't work). -- [ ] Ubuntu/Debian dependencies of the Docker script: `docker-buildx`. -- [ ] Ubuntu/Debian dependencies of the PPA scripts: `devscripts`, `debhelper`, `dput`, `git`, `wget`, `ca-certificates`. - [ ] [npm Registry](https://www.npmjs.com) account added as a collaborator for the [`solc` package](https://www.npmjs.com/package/solc). - [ ] Access to the [solidity_lang Twitter account](https://twitter.com/solidity_lang). - [ ] [Reddit](https://www.reddit.com) account that is at least 10 days old with a minimum of 20 comment karma (`/r/ethereum` requirements). @@ -22,8 +17,6 @@ At least a day before the release: - [ ] Rerun CI on the top commits of main branches in all repositories that do not have daily activity by creating a test branch or PR: - [ ] `solc-js` - [ ] `solc-bin` (make sure the bytecode comparison check did run) -- [ ] (Optional) Create a prerelease in our Ubuntu PPA by following the steps in the PPA section below on `develop` rather than on a tag. - This is recommended especially when dealing with PPA for the first time, when we add a new Ubuntu version or when the PPA scripts were modified in this release cycle. - [ ] Verify that the release tarball of `solc-js` works. Bump version locally, add `soljson.js` from CI, build it, compare the file structure with the previous version, install it locally and try to use it. - [ ] Review [Learning from Past Releases](https://notes.argot.org/@solidity-release-mistakes) to make sure you don't repeat the same mistakes. @@ -79,23 +72,6 @@ At least a day before the release: ### Homebrew and MacOS - [ ] Update the version and the hash (`sha256sum solidity_$VERSION.tar.gz`) in the [`solidity` formula in Homebrew core repository](https://github.com/Homebrew/homebrew-core/blob/master/Formula/s/solidity.rb). -### Docker -- [ ] Make sure `docker-buildx` is installed. -- [ ] Run `./scripts/docker_deploy_manual.sh v$VERSION`. - -### PPA -- [ ] Create `.release_ppa_auth` at the root of your local Solidity checkout and set `LAUNCHPAD_EMAIL` and `LAUNCHPAD_KEYID` to your key's email and key id. -- [ ] Double-check that the `DISTRIBUTIONS` list in `scripts/release_ppa.sh` contains the most recent versions of Ubuntu. -- [ ] Run `scripts/release_ppa.sh v$VERSION` to create the PPA release. - This will create a single package containing static binary for older Ubuntu versions in the [`~ethereum/ethereum-static` PPA](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum-static) - and separate packages with dynamically-linked binaries for recent versions (those listed in `DISTRIBUTIONS`) in the [`~ethereum/ethereum` PPA](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum). -- [ ] Wait for the build to be finished and published for *all architectures* (currently we only build for `amd64`, but we may add `arm` in the future). - **SERIOUSLY: DO NOT PROCEED EARLIER!!!** -- [ ] *After* the package with the static build is *published*, use it to create packages for older Ubuntu versions. - Copy the static package to the [`~ethereum/ethereum` PPA](https://launchpad.net/~ethereum/+archive/ubuntu/ethereum) - for the destination series `Trusty`, `Xenial`, `Bionic`, and `Focal` - while selecting `Copy existing binaries`. - ### Release solc-js - [ ] Wait until solc-bin was properly deployed. You can test this via remix - a test run through remix is advisable anyway. - [ ] Increment the version number, create a pull request for that, merge it after tests succeeded. diff --git a/docs/installing-solidity.rst b/docs/installing-solidity.rst index 6c6d6029a189..221a36f55def 100644 --- a/docs/installing-solidity.rst +++ b/docs/installing-solidity.rst @@ -72,79 +72,40 @@ Please refer to the solc-js repository for instructions. Docker ====== -Docker images of Solidity builds are available using the ``solc`` image from the ``ethereum`` organization. -Use the ``stable`` tag for the latest released version, and ``nightly`` for potentially unstable changes in the ``develop`` branch. +Docker images of Solidity builds up to version 0.8.30 are available on DockerHub as ``ethereum/solc``. +However, we have discontinued this distribution method and future versions will not be added there. -The Docker image runs the compiler executable so that you can pass all compiler arguments to it. -For example, the command below pulls the stable version of the ``solc`` image (if you do not have it already), -and runs it in a new container, passing the ``--help`` argument. - -.. code-block:: bash - - docker run ethereum/solc:stable --help - -.. note:: - - Specific compiler versions are supported as the Docker image tag such as ``ethereum/solc:0.8.23``. - We will be passing the ``stable`` tag here instead of specific version tag to ensure that users get - the latest version by default and avoid the issue of an out-of-date version. - -To use the Docker image to compile Solidity files on the host machine, mount a -local folder for input and output, and specify the contract to compile. For example: - -.. code-block:: bash - - docker run \ - --volume "/tmp/some/local/path/:/sources/" \ - ethereum/solc:stable \ - /sources/Contract.sol \ - --abi \ - --bin \ - --output-dir /sources/output/ - -You can also use the standard JSON interface (which is recommended when using the compiler with tooling). -When using this interface, it is not necessary to mount any directories as long as the JSON input is -self-contained (i.e. it does not refer to any external files that would have to be -:ref:`loaded by the import callback `). - -.. code-block:: bash - - docker run ethereum/solc:stable --standard-json < input.json > output.json +The images contain only a statically-linked compiler binary and were provided merely for convenience, +as a way to download and manage multiple versions using Docker. +On systems with Docker already installed this made it possible to use any version of the +compiler with a simple ``docker run ethereum/solc:`` command. Linux Packages ============== -Binary packages of Solidity are available at -`solidity/releases `_. - -We also have PPAs for Ubuntu, you can get the latest stable -version using the following commands: +We provide :ref:`standalone binaries ` of the compiler that should run on most +distributions without any additional installation steps. -.. code-block:: bash - - sudo add-apt-repository ppa:ethereum/ethereum - sudo apt-get update - sudo apt-get install solc +Some Linux distributions provide their own packages. +These packages are not directly maintained by us but usually kept up-to-date by the respective +package maintainers. -The nightly version can be installed using these commands: +Ubuntu packages for versions up to 0.8.30 are available in the +`ethereum/ethereum PPA `_. +However, we have discontinued this distribution method and future versions will not be added there. -.. code-block:: bash - - sudo add-apt-repository ppa:ethereum/ethereum - sudo add-apt-repository ppa:ethereum/ethereum-dev - sudo apt-get update - sudo apt-get install solc - -Furthermore, some Linux distributions provide their own packages. These packages are not directly -maintained by us but usually kept up-to-date by the respective package maintainers. - -For example, Arch Linux has packages for the latest development version as AUR packages: `solidity `_ -and `solidity-bin `_. +Arch Linux provides a script for building and installing the latest release version in its AUR +repository: `solidity `_. +Alternatively, one can also install official binaries using the +`solidity-bin `_ script. .. note:: Please be aware that `AUR `_ packages - are user-produced content and unofficial packages. Exercise caution when using them. + are produced and maintained by users and not vetted in any way by the distro maintainers. + Exercise caution when using them. + +On Nix, unofficial builds are available via `solc.nix `_. There is also a `snap package `_, however, it is **currently unmaintained**. It is installable in all the `supported Linux distros `_. To @@ -207,6 +168,8 @@ Install it using ``brew``: # eg. Install 0.4.8 brew install solidity.rb +.. _static-binaries: + Static Binaries =============== diff --git a/scripts/Dockerfile b/scripts/Dockerfile deleted file mode 100644 index 6df9337ec862..000000000000 --- a/scripts/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -FROM alpine AS build -MAINTAINER chriseth -#Official solidity docker image - -#Establish working directory as solidity -WORKDIR /solidity - -# Build dependencies -RUN apk update && apk add boost-dev boost-static build-base cmake git clang - -#Copy working directory on travis to the image -COPY / $WORKDIR - -# Number of parallel jobs during build -# or 0 for auto-computing (max(1, CPU_core_count * 2/3), a greedy value) -ARG BUILD_CONCURRENCY="0" - -#Install dependencies, eliminate annoying warnings -RUN sed -i -E -e 's/include /include /' /usr/include/boost/asio/detail/socket_types.hpp -RUN cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DTESTS=0 -DSOLC_LINK_STATIC=1 -RUN make solc \ - -j$(awk "BEGIN { \ - if (${BUILD_CONCURRENCY} != 0) { \ - print(${BUILD_CONCURRENCY}); \ - } else { \ - x=($(grep -c ^processor /proc/cpuinfo) * 2/3); \ - if (x > 1) { \ - printf(\"%d\n\", x); \ - } else { \ - print(1); \ - } \ - } \ - }") -RUN strip solc/solc - -FROM scratch -COPY --from=build /solidity/solc/solc /usr/bin/solc -ENTRYPOINT ["/usr/bin/solc"] diff --git a/scripts/Dockerfile_alpine b/scripts/Dockerfile_alpine deleted file mode 100644 index 21bba456670d..000000000000 --- a/scripts/Dockerfile_alpine +++ /dev/null @@ -1,5 +0,0 @@ -FROM alpine -MAINTAINER chriseth - -COPY upload/solc-static-linux /usr/local/bin/solc -ENTRYPOINT ["/usr/local/bin/solc"] diff --git a/scripts/common.sh b/scripts/common.sh index 0ca602ee6a60..a25fe5a82444 100644 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -40,28 +40,6 @@ else function printLog { echo -e "$(tput setaf 3)$1$(tput sgr0)"; } fi -function checkDputEntries -{ - local pattern="$1" - grep "${pattern}" /etc/dput.cf --quiet || \ - fail "Error: Missing ${pattern//\\/} section in /etc/dput.cf (check top comment in release_ppa.sh for more information)." -} - -function sourcePPAConfig -{ - [[ "$LAUNCHPAD_KEYID" == "" && "$LAUNCHPAD_EMAIL" == "" ]] || fail - - # source keyid and email from .release_ppa_auth - if [[ -e .release_ppa_auth ]] - then - # shellcheck source=/dev/null - source "${REPO_ROOT}/.release_ppa_auth" - fi - - [[ "$LAUNCHPAD_KEYID" != "" && "$LAUNCHPAD_EMAIL" != "" ]] || \ - fail "Error: Couldn't find variables \$LAUNCHPAD_KEYID or \$LAUNCHPAD_EMAIL in sourced file .release_ppa_auth (check top comment in $0 for more information)." -} - function printStackTrace { printWarning "" diff --git a/scripts/docker_deploy_manual.sh b/scripts/docker_deploy_manual.sh deleted file mode 100755 index 196a3b36c388..000000000000 --- a/scripts/docker_deploy_manual.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash - -set -e - -REPO_ROOT="$(dirname "$0")/.." -# shellcheck source=scripts/common.sh -source "${REPO_ROOT}/scripts/common.sh" - -image="ethereum/solc" - -if (( $# < 1 || $# > 3 )); then - fail "Usage: $0 [repo URL] [--no-push]" -fi - -branch="$1" -repo_url="${2:-https://github.com/argotorg/solidity.git}" - -if (( $# >= 3 )); then - [[ $3 == --no-push ]] || fail "Invalid flag: $3. Expected --no-push." - publish=false -else - publish=true -fi - -#docker login - -DIR=$(mktemp -d) -( -cd "$DIR" - -git clone --recursive --depth 2 "$repo_url" -b "$branch" solidity -cd solidity -commithash=$(git rev-parse --short=8 HEAD) -echo -n "$commithash" > commit_hash.txt -version=$("$(dirname "$0")/get_version.sh") -if [ "$branch" = v"$version" ] -then - echo -n > prerelease.txt -else - date -u +"nightly.%Y.%-m.%-d" > prerelease.txt -fi - -function tag_and_push -{ - docker tag "$image:$1" "$image:$2" - [[ $publish == false ]] || docker push "$image:$2" -} - -rm -rf .git -docker buildx build -t "$image":build -f scripts/Dockerfile . --progress=plain -tmp_container=$(docker create "$image":build sh) - -# Alpine image -mkdir -p upload -docker cp "${tmp_container}":/usr/bin/solc upload/solc-static-linux -docker buildx build -t "$image":build-alpine -f scripts/Dockerfile_alpine . --progress=plain - -if [ "$branch" = "develop" ] -then - tag_and_push build nightly - tag_and_push build nightly-"$version"-"$commithash" - tag_and_push build-alpine nightly-alpine - tag_and_push build-alpine nightly-alpine-"$version"-"$commithash" -elif [ "$branch" = v"$version" ] -then - tag_and_push build stable - tag_and_push build "$version" - tag_and_push build-alpine stable-alpine - tag_and_push build-alpine "$version"-alpine -else - echo "Not publishing docker image from branch or tag $branch" -fi -) -rm -rf "$DIR" diff --git a/scripts/release_ppa.sh b/scripts/release_ppa.sh deleted file mode 100755 index 6c1fd51dbfcc..000000000000 --- a/scripts/release_ppa.sh +++ /dev/null @@ -1,292 +0,0 @@ -#!/usr/bin/env bash -############################################################################## -## This is used to package .deb packages and upload them to the launchpad -## ppa servers for building. -## -## You can pass a branch name as argument to this script (which, if no argument is given, -## will default to "develop"). -## -## If the given branch matches a release version tag, the resulting package will be uploaded to -## ethereum/ethereum PPA, or ethereum/ethereum-dev PPA otherwise. -## -## It will clone the Solidity git from github, determine the version, -## create a source archive and push it to the ubuntu ppa servers. -## -## To interact with launchpad, you need to set the variables $LAUNCHPAD_EMAIL -## and $LAUNCHPAD_KEYID in the file .release_ppa_auth in the root directory of -## the project to your launchpad email and pgp keyid. -## This could for example look like this: -## -## LAUNCHPAD_EMAIL=your-launchpad-email@ethereum.org -## LAUNCHPAD_KEYID=123ABCFFFFFFFF -## -## Additionally the following entries in /etc/dput.cf are required: -## -## [ethereum-dev] -## fqdn = ppa.launchpad.net -## method = ftp -## incoming = ~ethereum/ethereum-dev -## login = anonymous -## -## [ethereum] -## fqdn = ppa.launchpad.net -## method = ftp -## incoming = ~ethereum/ethereum -## login = anonymous -## -## [ethereum-static] -## fqdn = ppa.launchpad.net -## method = ftp -## incoming = ~ethereum/ethereum-static -## login = anonymous -## -############################################################################## - -set -e - - -REPO_ROOT="$(dirname "$0")/.." - -# shellcheck source=scripts/common.sh -source "${REPO_ROOT}/scripts/common.sh" - -if [ -z "$1" ] -then - branch=develop -else - branch=$1 -fi - -is_release() { - [[ "${branch}" =~ ^v[0-9]+(\.[0-9]+)*$ ]] -} - -sourcePPAConfig - -packagename=solc - -# This needs to be a still active release -static_build_distribution=noble - -DISTRIBUTIONS="jammy noble oracular plucky" - -if is_release -then - DISTRIBUTIONS="$DISTRIBUTIONS STATIC" - - # Sanity checks - checkDputEntries "\[ethereum\]" - checkDputEntries "\[ethereum-static\]" -else - # Sanity check - checkDputEntries "\[ethereum-dev\]" -fi - -for distribution in $DISTRIBUTIONS -do -cd /tmp/ -rm -rf "$distribution" -mkdir "$distribution" -cd "$distribution" - -if [ "$distribution" = STATIC ] -then - pparepo=ethereum-static - CMAKE_OPTIONS="-DSOLC_LINK_STATIC=On -DCMAKE_EXE_LINKER_FLAGS=-static" -else - if is_release - then - pparepo=ethereum - else - pparepo=ethereum-dev - fi - CMAKE_OPTIONS="" -fi -ppafilesurl=https://launchpad.net/~ethereum/+archive/ubuntu/${pparepo}/+files - -# Fetch source -git clone --depth 2 --recursive https://github.com/argotorg/solidity.git -b "$branch" -mv solidity solc - -# Determine version -cd solc -version=$("$(dirname "$0")/get_version.sh") -commithash=$(git rev-parse --short=8 HEAD) -commitdate=$(git show --format=%ci HEAD | head -n 1 | cut - -b1-10 | sed -e 's/-0?/./' | sed -e 's/-0?/./') - -echo "$commithash" > commit_hash.txt -if is_release -then - debversion="$version" - echo -n > prerelease.txt # proper release -else - debversion="$version~develop-$commitdate-$commithash" -fi - -# gzip will create different tars all the time and we are not allowed -# to upload the same file twice with different contents, so we only -# create it once. -if [ ! -e "/tmp/${packagename}_${debversion}.orig.tar.gz" ] -then - tar --exclude .git -czf "/tmp/${packagename}_${debversion}.orig.tar.gz" . -fi -cp "/tmp/${packagename}_${debversion}.orig.tar.gz" ../ - -# Create debian package information - -mkdir debian -echo 9 > debian/compat -cat < debian/control -Source: solc -Section: science -Priority: extra -Maintainer: Christian (Buildserver key) -Build-Depends: debhelper (>= 9.0.0), - cmake, - g++ (>= 5.0), - git, - libgmp-dev, - libboost-all-dev, - automake, - libtool, - scons -Standards-Version: 3.9.5 -Homepage: https://ethereum.org -Vcs-Git: https://github.com/argotorg/solidity.git -Vcs-Browser: https://github.com/argotorg/solidity - -Package: solc -Architecture: any-amd64 -Multi-Arch: same -Depends: \${shlibs:Depends}, \${misc:Depends} -Conflicts: libethereum (<= 1.2.9) -Description: Solidity compiler. - The commandline interface to the Solidity smart contract compiler. -EOF -cat < debian/rules -#!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. -# -# Modified to make a template file for a multi-binary package with separated -# build-arch and build-indep targets by Bill Allombert 2001 - -# Uncomment this to turn on verbose mode. -export DH_VERBOSE=1 - -# This has to be exported to make some magic below work. -export DH_OPTIONS - - -%: - dh \$@ --buildsystem=cmake #--with sphinxdoc - -override_dh_auto_test: - -#override_dh_installdocs: -# make -C docs html -# dh_installdocs docs/_build/html - -override_dh_shlibdeps: - dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info - -override_dh_auto_configure: - dh_auto_configure -- -DTESTS=OFF -DFETCHCONTENT_FULLY_DISCONNECTED=OFF ${CMAKE_OPTIONS} -EOF -cat < debian/copyright -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: solc -Source: https://github.com/argotorg/solidity - -Files: * -Copyright: 2014-2016 Ethereum -License: GPL-3.0+ - -Files: debian/* -Copyright: 2016 Ethereum -License: GPL-3.0+ - -License: GPL-3.0+ - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - . - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program. If not, see . - . - On Debian systems, the complete text of the GNU General - Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". -EOF -cat < debian/changelog -solc (0.0.1-0ubuntu1) saucy; urgency=low - - * Initial release. - - -- Christian Mon, 03 Feb 2016 14:50:20 +0000 -EOF -echo docs > debian/docs -mkdir debian/source -echo "3.0 (quilt)" > debian/source/format -chmod +x debian/rules - -versionsuffix=0ubuntu1~${distribution} -# bump version / add entry to changelog -EMAIL="$LAUNCHPAD_EMAIL" dch -v "1:${debversion}-${versionsuffix}" "git build of ${commithash}" - - -# build source package -# If packages is rejected because original source is already present, add -# -sd to remove it from the .changes file -# -d disables the build dependencies check -debuild -S -d -sa -us -uc - -# prepare .changes file for Launchpad -if [ "$distribution" = STATIC ] -then - sed -i -e "s/UNRELEASED/${static_build_distribution}/" -e s/urgency=medium/urgency=low/ ../*.changes -else - sed -i -e "s/UNRELEASED/${distribution}/" -e s/urgency=medium/urgency=low/ ../*.changes -fi - -# check if ubuntu already has the source tarball -( -cd .. -orig="${packagename}_${debversion}.orig.tar.gz" -# shellcheck disable=SC2012 -orig_size=$(ls -l "$orig" | cut -d ' ' -f 5) -orig_sha1=$(sha1sum "$orig" | cut -d ' ' -f 1) -orig_sha256=$(sha256sum "$orig" | cut -d ' ' -f 1) -orig_md5=$(md5sum "$orig" | cut -d ' ' -f 1) - -if wget --quiet -O "$orig-tmp" "$ppafilesurl/$orig" -then - echo "[WARN] Original tarball found in Ubuntu archive, using it instead" - mv "$orig-tmp" "$orig" - # shellcheck disable=SC2012 - new_size=$(ls -l ./*.orig.tar.gz | cut -d ' ' -f 5) - new_sha1=$(sha1sum "$orig" | cut -d ' ' -f 1) - new_sha256=$(sha256sum "$orig" | cut -d ' ' -f 1) - new_md5=$(md5sum "$orig" | cut -d ' ' -f 1) - sed -i -e "s,$orig_sha1,$new_sha1,g" -e "s,$orig_sha256,$new_sha256,g" -e "s,$orig_size,$new_size,g" -e "s,$orig_md5,$new_md5,g" ./*.dsc - sed -i -e "s,$orig_sha1,$new_sha1,g" -e "s,$orig_sha256,$new_sha256,g" -e "s,$orig_size,$new_size,g" -e "s,$orig_md5,$new_md5,g" ./*.changes -fi -) - -# sign the package -debsign --re-sign -k "${LAUNCHPAD_KEYID}" "../${packagename}_${debversion}-${versionsuffix}_source.changes" - -# upload -dput "${pparepo}" "../${packagename}_${debversion}-${versionsuffix}_source.changes" - -done