From fd0f97ccfeda469f70302e6dd621c111c588c783 Mon Sep 17 00:00:00 2001 From: lulol Date: Sun, 26 Jun 2022 16:34:06 +0000 Subject: [PATCH 01/14] Add AppImageBuilder Builds an appimage with mlnet+gui executable. https://github.com/ygrek/mldonkey/pull/65#issuecomment-1105902001 git clone https://github.com/ygrek/mldonkey.git cd mldonkey ./configure --enable-batch --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 --prefix=/usr make wget https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.0.3/appimage-builder-1.0.3-x86_64.AppImage appimage-builder-1.0.3-x86_64.AppImage To run the optional appimage-builder tests you need docker installed and permissions. --- AppImageBuilder.yml | 105 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 AppImageBuilder.yml diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml new file mode 100644 index 00000000..ccd35f54 --- /dev/null +++ b/AppImageBuilder.yml @@ -0,0 +1,105 @@ +# appimage-builder recipe see https://appimage-builder.readthedocs.io for details +version: 1 + +script: + # Download, configure and make +# - git clone https://github.com/ygrek/mldonkey.git +# - cd mldonkey +# - ./configure --enable-batch --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 --> +# - make + # Remove any previous build + - rm -rf AppDir | true + # Get application version +# - ./mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#APP_VERSION=\1#p" >> $BUILDER_ENV +# - cat "$BUILDER_ENV" +# - APP_VERSION=$("$SOURCE_DIR"/mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p") +# - echo "$APP_VERSION" + # Make some needed dirs + - mkdir -p "$TARGET_APPDIR"/usr/bin + - mkdir -p "$TARGET_APPDIR"/usr/share/icons/default + - mkdir -p "$TARGET_APPDIR"/usr/share/applications + # Copy the application data into the AppDir + - cp "$SOURCE_DIR"/mlnet+gui "$TARGET_APPDIR"/usr/bin/ + - cp "$SOURCE_DIR"/distrib/mldonkey.desktop "$TARGET_APPDIR"/usr/share/applications + - cp "$SOURCE_DIR"/icons/rsvg/type_source_normal.svg "$TARGET_APPDIR"/usr/share/icons/default/mldonkey.svg + # Relocatable by bruteforce patching + - sed -i -e 's#/usr#././#g' "$TARGET_APPDIR"/usr/bin/mlnet+gui + # Create symlink + - ln -s ./usr/bin/mlnet+gui "$TARGET_APPDIR"/mldonkey_gui + +AppDir: + path: ./AppDir + app_info: + id: mldonkey + name: mldonkey + icon: mldonkey +# version: {{APP_VERSION}} +# version: ${APP_VERSION} +# version: $APP_VERSION + version: 3.1.7.git + exec: mldonkey_gui + exec_args: $@ + apt: + arch: + - amd64 +# allow_unauthenticated: true + sources: + - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse' + - sourceline: 'deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse' + - sourceline: 'deb http://archive.canonical.com/ubuntu/ focal partner' + include: + - ca-certificates + - libc6 + - bzip2 + - librsvg2-2 + - libmagic1 + - libmagic-mgc + - libminiupnpc17 + - libnatpmp1 + - libgtk2.0-0 + - libatk-adaptor + - libgail-common + - libgd3 + - perl-base + - dash + - make + files: + include: + - lib64/ld-linux-x86-64.so.2 + - /usr/lib/file/libmagic-mgc + exclude: + - usr/share/man + - usr/share/doc/*/ANNOUNCE* + - usr/share/doc/*/AUTHORS* + - usr/share/doc/*/FAQ* + - usr/share/doc/*/HOWTO* + - usr/share/doc/*/NEWS* + - usr/share/doc/*/README* + - usr/share/doc/*/THANKS* + - usr/share/doc/*/TODO* + - usr/share/doc/*/changelog* + - usr/share/doc/*/copyright* + - usr/share/doc/*/examples/* + test: + fedora-30: + image: appimagecrafters/tests-env:fedora-30 + command: ./AppRun + debian-stable: + image: appimagecrafters/tests-env:debian-stable + command: ./AppRun + archlinux-latest: + image: appimagecrafters/tests-env:archlinux-latest + command: ./AppRun + centos-7: + image: appimagecrafters/tests-env:centos-7 + command: ./AppRun + ubuntu-xenial: + image: appimagecrafters/tests-env:ubuntu-xenial + command: ./AppRun +AppImage: + arch: x86_64 + update-information: None +# sign-key: None From 3b8c99bcc21b4474f96e6ecaad1188a5133b3557 Mon Sep 17 00:00:00 2001 From: lulol Date: Sun, 26 Jun 2022 17:11:09 +0000 Subject: [PATCH 02/14] Copy ocamlformat.opam Copy opam to ocamlformat.opam to fix ocaml-ci workflow? --- ocamlformat.opam | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 ocamlformat.opam diff --git a/ocamlformat.opam b/ocamlformat.opam new file mode 100644 index 00000000..396ad9fb --- /dev/null +++ b/ocamlformat.opam @@ -0,0 +1,27 @@ +opam-version: "2.0" +name: "mldonkey" +synopsis: "Cross-platform multi-network peer-to-peer daemon" +description: """ +Supported networks include: + * eDonkey (with Overnet and Kad) + * BitTorrent (with DHT) + * Direct Connect + * HTTP/FTP +MLdonkey core runs as a background daemon and provides several control +interfaces : telnet, web, and binary protocol for third party GUIs.""" +maintainer: "ygrek@autistici.org" +authors: "mldonkey team" +license: "GPL-2.0-only" +homepage: "http://mldonkey.sourceforge.net/" +dev-repo: "git+https://github.com/ygrek/mldonkey.git" +bug-reports: "https://github.com/ygrek/mldonkey/issues" +depends: [ + "ocaml" {>= "4.00.0"} + "camlp4" + "conf-zlib" + "num" +] +build: [ + ["./configure" "--enable-debug" "--prefix" prefix] + [make] +] From 19d793477ae10a2b77a7a8d6820ab71ce1365c75 Mon Sep 17 00:00:00 2001 From: lulol Date: Thu, 30 Jun 2022 22:47:00 +0000 Subject: [PATCH 03/14] Move AppImageBuilder.yml to the packages dir --- packages/appimage/AppImageBuilder.yml | 106 ++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 packages/appimage/AppImageBuilder.yml diff --git a/packages/appimage/AppImageBuilder.yml b/packages/appimage/AppImageBuilder.yml new file mode 100644 index 00000000..443c74cd --- /dev/null +++ b/packages/appimage/AppImageBuilder.yml @@ -0,0 +1,106 @@ +# appimage-builder recipe see https://appimage-builder.readthedocs.io for details +version: 1 + +script: + # Download, configure and make +# - git clone https://github.com/ygrek/mldonkey.git +# - cd mldonkey +# - ./configure --enable-batch --enable-upnp-natpmp --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 --> +# - make + # Remove any previous build + - rm -rf AppDir | true + # Get application version +# - ./mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#APP_VERSION=\1#p" >> $BUILDER_ENV +# - cat "$BUILDER_ENV" +# - APP_VERSION=$("$SOURCE_DIR"/mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p") +# - echo "$APP_VERSION" + # Make some needed dirs + - mkdir -p "$TARGET_APPDIR"/usr/bin + - mkdir -p "$TARGET_APPDIR"/usr/share/icons/default + - mkdir -p "$TARGET_APPDIR"/usr/share/applications + # Copy the application data into the AppDir + - cp "$SOURCE_DIR"/mlnet+gui "$TARGET_APPDIR"/usr/bin/ + - cp "$SOURCE_DIR"/distrib/mldonkey.desktop "$TARGET_APPDIR"/usr/share/applications + - cp "$SOURCE_DIR"/icons/rsvg/type_source_normal.svg "$TARGET_APPDIR"/usr/share/icons/default/mldonkey.svg + # Relocatable by bruteforce patching + - sed -i -e 's#/usr#././#g' "$TARGET_APPDIR"/usr/bin/mlnet+gui + # Create symlink + - ln -s ./usr/bin/mlnet+gui "$TARGET_APPDIR"/mldonkey_gui + +AppDir: + path: ./AppDir + app_info: + id: mldonkey + name: mldonkey + icon: mldonkey +# version: {{APP_VERSION}} +# version: ${APP_VERSION} +# version: $APP_VERSION + version: 3.1.7.git + exec: mldonkey_gui + exec_args: $@ + apt: + arch: + - amd64 +# allow_unauthenticated: true + sources: + - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse' + - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse' + - sourceline: 'deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse' + - sourceline: 'deb http://archive.canonical.com/ubuntu/ focal partner' + include: + - ca-certificates + - libc6 + - bzip2 + - librsvg2-2 + - libmagic1 + - libmagic-mgc + - libminiupnpc17 + - libnatpmp1 + - libgtk2.0-0 + - libatk-adaptor + - libgail-common + - libgd3 + - perl-base + - dash + - make + files: + include: + - lib64/ld-linux-x86-64.so.2 + - /usr/lib/file/libmagic-mgc + exclude: + - usr/share/man + - usr/share/doc/*/ANNOUNCE* + - usr/share/doc/*/AUTHORS* + - usr/share/doc/*/FAQ* + - usr/share/doc/*/HOWTO* + - usr/share/doc/*/NEWS* + - usr/share/doc/*/README* + - usr/share/doc/*/THANKS* + - usr/share/doc/*/TODO* + - usr/share/doc/*/changelog* + - usr/share/doc/*/copyright* + - usr/share/doc/*/examples/* + test: + fedora-30: + image: appimagecrafters/tests-env:fedora-30 + command: ./AppRun + debian-stable: + image: appimagecrafters/tests-env:debian-stable + command: ./AppRun + archlinux-latest: + image: appimagecrafters/tests-env:archlinux-latest + command: ./AppRun + centos-7: + image: appimagecrafters/tests-env:centos-7 + command: ./AppRun + ubuntu-xenial: + image: appimagecrafters/tests-env:ubuntu-xenial + command: ./AppRun +AppImage: + arch: x86_64 + update-information: None +# sign-key: None + From e8cc36299aaee439866e404cc928ab99834c1042 Mon Sep 17 00:00:00 2001 From: lulol Date: Thu, 30 Jun 2022 22:48:03 +0000 Subject: [PATCH 04/14] Move AppImageBuilder.yml to packages dir --- AppImageBuilder.yml | 105 -------------------------------------------- 1 file changed, 105 deletions(-) delete mode 100644 AppImageBuilder.yml diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml deleted file mode 100644 index ccd35f54..00000000 --- a/AppImageBuilder.yml +++ /dev/null @@ -1,105 +0,0 @@ -# appimage-builder recipe see https://appimage-builder.readthedocs.io for details -version: 1 - -script: - # Download, configure and make -# - git clone https://github.com/ygrek/mldonkey.git -# - cd mldonkey -# - ./configure --enable-batch --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 --> -# - make - # Remove any previous build - - rm -rf AppDir | true - # Get application version -# - ./mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#APP_VERSION=\1#p" >> $BUILDER_ENV -# - cat "$BUILDER_ENV" -# - APP_VERSION=$("$SOURCE_DIR"/mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p") -# - echo "$APP_VERSION" - # Make some needed dirs - - mkdir -p "$TARGET_APPDIR"/usr/bin - - mkdir -p "$TARGET_APPDIR"/usr/share/icons/default - - mkdir -p "$TARGET_APPDIR"/usr/share/applications - # Copy the application data into the AppDir - - cp "$SOURCE_DIR"/mlnet+gui "$TARGET_APPDIR"/usr/bin/ - - cp "$SOURCE_DIR"/distrib/mldonkey.desktop "$TARGET_APPDIR"/usr/share/applications - - cp "$SOURCE_DIR"/icons/rsvg/type_source_normal.svg "$TARGET_APPDIR"/usr/share/icons/default/mldonkey.svg - # Relocatable by bruteforce patching - - sed -i -e 's#/usr#././#g' "$TARGET_APPDIR"/usr/bin/mlnet+gui - # Create symlink - - ln -s ./usr/bin/mlnet+gui "$TARGET_APPDIR"/mldonkey_gui - -AppDir: - path: ./AppDir - app_info: - id: mldonkey - name: mldonkey - icon: mldonkey -# version: {{APP_VERSION}} -# version: ${APP_VERSION} -# version: $APP_VERSION - version: 3.1.7.git - exec: mldonkey_gui - exec_args: $@ - apt: - arch: - - amd64 -# allow_unauthenticated: true - sources: - - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse' - - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse' - - sourceline: 'deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse' - - sourceline: 'deb http://archive.canonical.com/ubuntu/ focal partner' - include: - - ca-certificates - - libc6 - - bzip2 - - librsvg2-2 - - libmagic1 - - libmagic-mgc - - libminiupnpc17 - - libnatpmp1 - - libgtk2.0-0 - - libatk-adaptor - - libgail-common - - libgd3 - - perl-base - - dash - - make - files: - include: - - lib64/ld-linux-x86-64.so.2 - - /usr/lib/file/libmagic-mgc - exclude: - - usr/share/man - - usr/share/doc/*/ANNOUNCE* - - usr/share/doc/*/AUTHORS* - - usr/share/doc/*/FAQ* - - usr/share/doc/*/HOWTO* - - usr/share/doc/*/NEWS* - - usr/share/doc/*/README* - - usr/share/doc/*/THANKS* - - usr/share/doc/*/TODO* - - usr/share/doc/*/changelog* - - usr/share/doc/*/copyright* - - usr/share/doc/*/examples/* - test: - fedora-30: - image: appimagecrafters/tests-env:fedora-30 - command: ./AppRun - debian-stable: - image: appimagecrafters/tests-env:debian-stable - command: ./AppRun - archlinux-latest: - image: appimagecrafters/tests-env:archlinux-latest - command: ./AppRun - centos-7: - image: appimagecrafters/tests-env:centos-7 - command: ./AppRun - ubuntu-xenial: - image: appimagecrafters/tests-env:ubuntu-xenial - command: ./AppRun -AppImage: - arch: x86_64 - update-information: None -# sign-key: None From 79b9e540fd13825af42a8d9f2824ea50ff00d907 Mon Sep 17 00:00:00 2001 From: lulol Date: Thu, 30 Jun 2022 22:51:36 +0000 Subject: [PATCH 05/14] Add workflow to manually build an mlnet+gui appimage --- .github/workflows/appimage.yml | 79 ++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .github/workflows/appimage.yml diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml new file mode 100644 index 00000000..0d156958 --- /dev/null +++ b/.github/workflows/appimage.yml @@ -0,0 +1,79 @@ +# Manually triggered build of mlnet, mlgui and utils binaries and appimage with mlnet+gui + +name: Build AppImage + +on: + workflow_dispatch + +jobs: + build: + runs-on: ubuntu-20.04 + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install dependencies + run: sudo apt-get install -y --no-install-recommends camlp4 libnum-ocaml-dev libminiupnpc-dev libnatpmp-dev libbz2-dev librsvg2-dev libmagic-dev libgtk2.0-dev liblablgtk2-ocaml-dev liblablgtk2-gl-ocaml-dev liblablgtk2-gnome-ocaml-dev libgd-dev + + - name: Configure options + run: ./configure --enable-batch --enable-upnp-natpmp --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 + + - name: Build binaries + run: make + + - name: Build utils + run: make utils + + - name: Upload mlnet binary + uses: actions/upload-artifact@v3 + with: + name: mlnet + path: mlnet + + - name: Upload binaries + utils + uses: actions/upload-artifact@v3 + with: + name: Binaries + path: | + mlnet + mlgui + bt_dht_node + copysources + get_range + make_torrent + mld_hash + subconv + svg_converter + if-no-files-found: warn + + - name: Upload mlnet+gui binary + uses: actions/upload-artifact@v3 + with: + name: mlnet+gui + path: mlnet+gui + if-no-files-found: warn + +# appimage: +# needs: build +# runs-on: ubuntu-latest +# steps: +# - uses: actions/download-artifact@v3 +# with: +# name: mlnet+gui + + - name: Download AppImageBuilder + run: wget https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.0.3/appimage-builder-1.0.3-x86_64.AppImage && chmod +x appimage-builder-1.0.3-x86_64.AppImage + + - name: Link recipe since env SOURCE_DIR=. doesn't work + run: ln -s packages/appimage/AppImageBuilder.yml AppImageBuilder.yml + + - name: Build AppImage + run: ./appimage-builder-1.0.3-x86_64.AppImage --skip-tests + + - name: Upload AppImage + uses: actions/upload-artifact@v3 + with: + name: mldonkey_AppImage + path: mldonkey-*.AppImage + From 81d5f0f82ea9b4a9d4c15cc72548bfbd06927da2 Mon Sep 17 00:00:00 2001 From: lulol Date: Thu, 30 Jun 2022 22:52:52 +0000 Subject: [PATCH 06/14] Delete ocamlformat.opam --- ocamlformat.opam | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 ocamlformat.opam diff --git a/ocamlformat.opam b/ocamlformat.opam deleted file mode 100644 index 396ad9fb..00000000 --- a/ocamlformat.opam +++ /dev/null @@ -1,27 +0,0 @@ -opam-version: "2.0" -name: "mldonkey" -synopsis: "Cross-platform multi-network peer-to-peer daemon" -description: """ -Supported networks include: - * eDonkey (with Overnet and Kad) - * BitTorrent (with DHT) - * Direct Connect - * HTTP/FTP -MLdonkey core runs as a background daemon and provides several control -interfaces : telnet, web, and binary protocol for third party GUIs.""" -maintainer: "ygrek@autistici.org" -authors: "mldonkey team" -license: "GPL-2.0-only" -homepage: "http://mldonkey.sourceforge.net/" -dev-repo: "git+https://github.com/ygrek/mldonkey.git" -bug-reports: "https://github.com/ygrek/mldonkey/issues" -depends: [ - "ocaml" {>= "4.00.0"} - "camlp4" - "conf-zlib" - "num" -] -build: [ - ["./configure" "--enable-debug" "--prefix" prefix] - [make] -] From 32787eaa307703bed8c1db247beeb784ae6c7ed0 Mon Sep 17 00:00:00 2001 From: lulol Date: Tue, 30 Jul 2024 21:59:16 +0000 Subject: [PATCH 07/14] Add ocaml ocaml-findlib and liblablgtk2-ocaml-dev Add ocaml ocaml-findlib and liblablgtk2-ocaml-dev to the apt-get install --- .github/workflows/appimage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 0d156958..be739e4b 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -14,7 +14,7 @@ jobs: uses: actions/checkout@v2 - name: Install dependencies - run: sudo apt-get install -y --no-install-recommends camlp4 libnum-ocaml-dev libminiupnpc-dev libnatpmp-dev libbz2-dev librsvg2-dev libmagic-dev libgtk2.0-dev liblablgtk2-ocaml-dev liblablgtk2-gl-ocaml-dev liblablgtk2-gnome-ocaml-dev libgd-dev + run: sudo apt-get install -y --no-install-recommends ocaml ocaml-findlib liblablgtk2-ocaml-dev camlp4 libnum-ocaml-dev libminiupnpc-dev libnatpmp-dev libbz2-dev librsvg2-dev libmagic-dev libgtk2.0-dev liblablgtk2-ocaml-dev liblablgtk2-gl-ocaml-dev liblablgtk2-gnome-ocaml-dev libgd-dev - name: Configure options run: ./configure --enable-batch --enable-upnp-natpmp --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 From c4a030823da5540d4d1ecde12fead6b9781e5068 Mon Sep 17 00:00:00 2001 From: lulol Date: Thu, 1 Aug 2024 17:32:08 +0000 Subject: [PATCH 08/14] remove pipe to true From the example recipes https://appimage-builder.readthedocs.io/en/latest/intro/tutorial.html#creating-the-appimage - rm -rf AppDir | true --- packages/appimage/AppImageBuilder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/appimage/AppImageBuilder.yml b/packages/appimage/AppImageBuilder.yml index 443c74cd..e7aacdba 100644 --- a/packages/appimage/AppImageBuilder.yml +++ b/packages/appimage/AppImageBuilder.yml @@ -8,7 +8,7 @@ script: # - ./configure --enable-batch --enable-upnp-natpmp --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 --> # - make # Remove any previous build - - rm -rf AppDir | true + - rm -rf AppDir # Get application version # - ./mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#APP_VERSION=\1#p" >> $BUILDER_ENV # - cat "$BUILDER_ENV" From 4fe024f709462e6a5754ee0bb2c16beb3dd0a16e Mon Sep 17 00:00:00 2001 From: lulol Date: Fri, 9 Aug 2024 14:44:49 +0000 Subject: [PATCH 09/14] Update versions and add requested changes Update to 22.04 jammy repo, add app version from env and remove commented code --- packages/appimage/AppImageBuilder.yml | 34 +++++++-------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/packages/appimage/AppImageBuilder.yml b/packages/appimage/AppImageBuilder.yml index e7aacdba..9090131f 100644 --- a/packages/appimage/AppImageBuilder.yml +++ b/packages/appimage/AppImageBuilder.yml @@ -2,18 +2,8 @@ version: 1 script: - # Download, configure and make -# - git clone https://github.com/ygrek/mldonkey.git -# - cd mldonkey -# - ./configure --enable-batch --enable-upnp-natpmp --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 --> -# - make # Remove any previous build - rm -rf AppDir - # Get application version -# - ./mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#APP_VERSION=\1#p" >> $BUILDER_ENV -# - cat "$BUILDER_ENV" -# - APP_VERSION=$("$SOURCE_DIR"/mlnet+gui -v 2>&1 | sed -ne "s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p") -# - echo "$APP_VERSION" # Make some needed dirs - mkdir -p "$TARGET_APPDIR"/usr/bin - mkdir -p "$TARGET_APPDIR"/usr/share/icons/default @@ -22,10 +12,6 @@ script: - cp "$SOURCE_DIR"/mlnet+gui "$TARGET_APPDIR"/usr/bin/ - cp "$SOURCE_DIR"/distrib/mldonkey.desktop "$TARGET_APPDIR"/usr/share/applications - cp "$SOURCE_DIR"/icons/rsvg/type_source_normal.svg "$TARGET_APPDIR"/usr/share/icons/default/mldonkey.svg - # Relocatable by bruteforce patching - - sed -i -e 's#/usr#././#g' "$TARGET_APPDIR"/usr/bin/mlnet+gui - # Create symlink - - ln -s ./usr/bin/mlnet+gui "$TARGET_APPDIR"/mldonkey_gui AppDir: path: ./AppDir @@ -33,23 +19,19 @@ AppDir: id: mldonkey name: mldonkey icon: mldonkey -# version: {{APP_VERSION}} -# version: ${APP_VERSION} -# version: $APP_VERSION - version: 3.1.7.git - exec: mldonkey_gui + version: ${APP_VERSION} + exec: usr/bin/mlnet+gui exec_args: $@ apt: arch: - amd64 -# allow_unauthenticated: true sources: - - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse' - key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' - - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse' - - sourceline: 'deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse' - - sourceline: 'deb http://security.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse' - - sourceline: 'deb http://archive.canonical.com/ubuntu/ focal partner' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy main restricted universe multiverse' + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse' + - sourceline: 'deb [arch=amd64] http://archive.canonical.com/ubuntu/ jammy partner' include: - ca-certificates - libc6 From 55986c9361a64ed80285b42fba67d3ec545c02aa Mon Sep 17 00:00:00 2001 From: lulol Date: Fri, 9 Aug 2024 14:48:46 +0000 Subject: [PATCH 10/14] Update build system version, add requested changes Update functions and build system versions. Add new dependencies. Create a VERSION file. Pack artifacts more logically. And requested changes. --- .github/workflows/appimage.yml | 91 ++++++++++++++++++++++++---------- 1 file changed, 64 insertions(+), 27 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index be739e4b..24a836b7 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -5,19 +5,22 @@ name: Build AppImage on: workflow_dispatch +env: + APPIMAGEBUILDER_VERSION: 1.1.0 + jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Checkout code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get install -y --no-install-recommends ocaml ocaml-findlib liblablgtk2-ocaml-dev camlp4 libnum-ocaml-dev libminiupnpc-dev libnatpmp-dev libbz2-dev librsvg2-dev libmagic-dev libgtk2.0-dev liblablgtk2-ocaml-dev liblablgtk2-gl-ocaml-dev liblablgtk2-gnome-ocaml-dev libgd-dev + run: sudo apt-get install -y --no-install-recommends autoconf ocaml ocaml-findlib liblablgtk2-ocaml-dev camlp4 libnum-ocaml-dev libminiupnpc-dev libnatpmp-dev libbz2-dev librsvg2-dev libmagic-dev libgtk2.0-dev liblablgtk2-ocaml-dev liblablgtk2-gl-ocaml-dev liblablgtk2-gnome-ocaml-dev libgd-dev - name: Configure options - run: ./configure --enable-batch --enable-upnp-natpmp --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 + run: ./configure --enable-batch --enable-upnp-natpmp --disable-directconnect --disable-fasttrack --disable-gnutella --disable-gnutella2 --enable-gui=newgui2 - name: Build binaries run: make @@ -25,19 +28,25 @@ jobs: - name: Build utils run: make utils - - name: Upload mlnet binary - uses: actions/upload-artifact@v3 - with: - name: mlnet - path: mlnet + - name: Save version file + run: | + ./mlnet -v 2>&1 | sed -ne "1s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p" > VERSION + echo "VERSION=$(cat VERSION)" - - name: Upload binaries + utils - uses: actions/upload-artifact@v3 + - name: Upload mlnet and mlgui binaries + uses: actions/upload-artifact@v4 with: - name: Binaries + name: mlnet and mlgui path: | mlnet mlgui + VERSION + + - name: Upload utils + uses: actions/upload-artifact@v4 + with: + name: Utils + path: | bt_dht_node copysources get_range @@ -45,34 +54,62 @@ jobs: mld_hash subconv svg_converter + VERSION if-no-files-found: warn - name: Upload mlnet+gui binary - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: mlnet+gui - path: mlnet+gui + path: | + mlnet+gui + VERSION if-no-files-found: warn -# appimage: -# needs: build -# runs-on: ubuntu-latest -# steps: -# - uses: actions/download-artifact@v3 -# with: -# name: mlnet+gui + appimage: + needs: build + runs-on: ubuntu-22.04 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Download mlnet+gui binary + uses: actions/download-artifact@v4 + with: + name: mlnet+gui + + - name: Install dependencies + run: sudo apt-get install -y --no-install-recommends libfuse2 - - name: Download AppImageBuilder - run: wget https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.0.3/appimage-builder-1.0.3-x86_64.AppImage && chmod +x appimage-builder-1.0.3-x86_64.AppImage + # env SOURCE_DIR=. doesn't work with --recipe packages/appimage/AppImageBuilder.yml + - name: Link recipe + run: ln -s packages/appimage/AppImageBuilder.yml AppImageBuilder.yml - - name: Link recipe since env SOURCE_DIR=. doesn't work - run: ln -s packages/appimage/AppImageBuilder.yml AppImageBuilder.yml + - name: Restore mlnet+gui executable permisions + run: | + chmod +x mlnet+gui + ls -l - name: Build AppImage - run: ./appimage-builder-1.0.3-x86_64.AppImage --skip-tests + run: | + # Get application version + APP_VERSION="$(cat VERSION)" + echo "APP_VERSION=$APP_VERSION" + export APP_VERSION + # Download appimage-builder + APPIMAGEBUILDER_FILE="appimage-builder-${APPIMAGEBUILDER_VERSION}-x86_64.AppImage" + APPIMAGEBUILDER_URL="https://github.com/AppImageCrafters/appimage-builder/releases/download/v${APPIMAGEBUILDER_VERSION}/${APPIMAGEBUILDER_FILE}" + wget "${APPIMAGEBUILDER_URL}" + ## Check the hash to verify that it was correctly downloaded + #echo "Checking hash" + #curl -L "${APPIMAGEBUILDER_URL}.zsync" \ + #| sed -ne "1,9s/^sha-1:\s*\([[:xdigit:]]\{40\}\)/\1 *${APPIMAGEBUILDER_FILE}/ip" \ + #| sha1sum --warn --check - + chmod +x "${APPIMAGEBUILDER_FILE}" + ./"${APPIMAGEBUILDER_FILE}" --skip-tests - name: Upload AppImage - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: mldonkey_AppImage path: mldonkey-*.AppImage From 2a8ec5e27a30afb615ef0b11f23c1bc1f9129bc7 Mon Sep 17 00:00:00 2001 From: lulol Date: Sat, 10 Aug 2024 16:44:30 +0000 Subject: [PATCH 11/14] Add version labels to generated artifacts Add version, arch and os labels to generated artifacts. Remove now unneeded VERSION file. --- .github/workflows/appimage.yml | 37 +++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 24a836b7..f5a1e195 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -10,7 +10,10 @@ env: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-22.04] steps: - name: Checkout code @@ -30,22 +33,25 @@ jobs: - name: Save version file run: | - ./mlnet -v 2>&1 | sed -ne "1s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p" > VERSION - echo "VERSION=$(cat VERSION)" + VERSION=$(./mlnet -v 2>&1 | sed -ne "1s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p") + { + echo "APP_VERSION=$VERSION" + echo "HOST_TYPE=$HOSTTYPE" + echo "OS_TYPE=${{matrix.os}}" + } | tee -a $GITHUB_ENV - name: Upload mlnet and mlgui binaries uses: actions/upload-artifact@v4 with: - name: mlnet and mlgui + name: mlnet-and-mlgui-${{env.APP_VERSION}}-${{env.HOST_TYPE}}-${{env.OS_TYPE}} path: | mlnet mlgui - VERSION - name: Upload utils uses: actions/upload-artifact@v4 with: - name: Utils + name: mldonkey-utils-${{env.APP_VERSION}}-${{env.HOST_TYPE}}-${{env.OS_TYPE}} path: | bt_dht_node copysources @@ -54,19 +60,22 @@ jobs: mld_hash subconv svg_converter - VERSION if-no-files-found: warn - name: Upload mlnet+gui binary uses: actions/upload-artifact@v4 with: - name: mlnet+gui - path: | - mlnet+gui - VERSION + name: mlnet+gui-${{env.APP_VERSION}}-${{env.HOST_TYPE}}-${{env.OS_TYPE}} + path: mlnet+gui if-no-files-found: warn + outputs: + APP_VERSION: ${{env.APP_VERSION}} + HOST_TYPE: ${{env.HOST_TYPE}} + OS_TYPE: ${{env.OS_TYPE}} + appimage: + if: ${{ needs.build.outputs.OS_TYPE == 'ubuntu-22.04' }} needs: build runs-on: ubuntu-22.04 steps: @@ -76,7 +85,7 @@ jobs: - name: Download mlnet+gui binary uses: actions/download-artifact@v4 with: - name: mlnet+gui + name: mlnet+gui-${{needs.build.outputs.APP_VERSION}}-${{needs.build.outputs.HOST_TYPE}}-${{needs.build.outputs.OS_TYPE}} - name: Install dependencies run: sudo apt-get install -y --no-install-recommends libfuse2 @@ -93,7 +102,7 @@ jobs: - name: Build AppImage run: | # Get application version - APP_VERSION="$(cat VERSION)" + APP_VERSION="${{needs.build.outputs.APP_VERSION}}" echo "APP_VERSION=$APP_VERSION" export APP_VERSION # Download appimage-builder @@ -111,6 +120,6 @@ jobs: - name: Upload AppImage uses: actions/upload-artifact@v4 with: - name: mldonkey_AppImage + name: mldonkey-${{needs.build.outputs.APP_VERSION}}-${{needs.build.outputs.HOST_TYPE}}.AppImage path: mldonkey-*.AppImage From 85c0444f5f9704dd5e118f7bb11bab9da346aa00 Mon Sep 17 00:00:00 2001 From: lulol Date: Sat, 10 Aug 2024 22:30:53 +0000 Subject: [PATCH 12/14] Build appimage only for x86_64 appimage-builder is currently only released for x86_64 --- .github/workflows/appimage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index f5a1e195..66ba486e 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -75,7 +75,7 @@ jobs: OS_TYPE: ${{env.OS_TYPE}} appimage: - if: ${{ needs.build.outputs.OS_TYPE == 'ubuntu-22.04' }} + if: ${{ needs.build.outputs.OS_TYPE == 'ubuntu-22.04' && needs.build.outputs.HOST_TYPE == 'x86_64' }} needs: build runs-on: ubuntu-22.04 steps: @@ -106,7 +106,7 @@ jobs: echo "APP_VERSION=$APP_VERSION" export APP_VERSION # Download appimage-builder - APPIMAGEBUILDER_FILE="appimage-builder-${APPIMAGEBUILDER_VERSION}-x86_64.AppImage" + APPIMAGEBUILDER_FILE="appimage-builder-${APPIMAGEBUILDER_VERSION}-${{needs.build.outputs.HOST_TYPE}}.AppImage" APPIMAGEBUILDER_URL="https://github.com/AppImageCrafters/appimage-builder/releases/download/v${APPIMAGEBUILDER_VERSION}/${APPIMAGEBUILDER_FILE}" wget "${APPIMAGEBUILDER_URL}" ## Check the hash to verify that it was correctly downloaded From 75606efed02b636816e69a89df44e5276fe7e471 Mon Sep 17 00:00:00 2001 From: lulol Date: Sat, 17 Aug 2024 14:10:08 +0000 Subject: [PATCH 13/14] Add static hash check for downloaded appimage-builder --- .github/workflows/appimage.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 66ba486e..096f52ca 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -7,6 +7,7 @@ on: env: APPIMAGEBUILDER_VERSION: 1.1.0 + APPIMAGEBUILDER_SHA1SUM: 6f83a789f6c47a745b97d1b0b3f1df2e7eea7a09 jobs: build: @@ -31,7 +32,7 @@ jobs: - name: Build utils run: make utils - - name: Save version file + - name: Save version run: | VERSION=$(./mlnet -v 2>&1 | sed -ne "1s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p") { @@ -109,11 +110,8 @@ jobs: APPIMAGEBUILDER_FILE="appimage-builder-${APPIMAGEBUILDER_VERSION}-${{needs.build.outputs.HOST_TYPE}}.AppImage" APPIMAGEBUILDER_URL="https://github.com/AppImageCrafters/appimage-builder/releases/download/v${APPIMAGEBUILDER_VERSION}/${APPIMAGEBUILDER_FILE}" wget "${APPIMAGEBUILDER_URL}" - ## Check the hash to verify that it was correctly downloaded - #echo "Checking hash" - #curl -L "${APPIMAGEBUILDER_URL}.zsync" \ - #| sed -ne "1,9s/^sha-1:\s*\([[:xdigit:]]\{40\}\)/\1 *${APPIMAGEBUILDER_FILE}/ip" \ - #| sha1sum --warn --check - + # Check the hash to verify that it was correctly downloaded + echo "${APPIMAGEBUILDER_SHA1SUM} *${APPIMAGEBUILDER_FILE}" | sha1sum --check --strict chmod +x "${APPIMAGEBUILDER_FILE}" ./"${APPIMAGEBUILDER_FILE}" --skip-tests From 1e6d34e1b72bfc0a38298f3a9acc606c2a5ae52d Mon Sep 17 00:00:00 2001 From: lulol Date: Sun, 20 Oct 2024 14:36:02 +0000 Subject: [PATCH 14/14] Add HEAD commit hash to version Add HEAD commit short hash to artifacts version when mlnet version includes the git string --- .github/workflows/appimage.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 096f52ca..66d8ec2f 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -35,8 +35,9 @@ jobs: - name: Save version run: | VERSION=$(./mlnet -v 2>&1 | sed -ne "1s#^.*Starting MLDonkey \([^ ]\+\) .*#\1#p") + echo "$VERSION" | grep -i git && COMMIT="_$(git rev-parse --short HEAD)" { - echo "APP_VERSION=$VERSION" + echo "APP_VERSION=${VERSION}${COMMIT}" echo "HOST_TYPE=$HOSTTYPE" echo "OS_TYPE=${{matrix.os}}" } | tee -a $GITHUB_ENV