├── .github └── workflows │ ├── ci.yml │ └── update.yaml ├── .gitignore ├── CODEOWNERS ├── README.md ├── SDL ├── README.md ├── SDL-1.2.15.json ├── SDL_Pango-0.1.2-API-adds.patch ├── SDL_image-1.2.12.json ├── SDL_mixer-1.2.12.json ├── SDL_net-1.2.8.json ├── SDL_pango-0.1.2.json ├── SDL_ttf-2.0.11.json ├── sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch ├── sdl-libx11-build.patch ├── sdl-sysloadso-buffer-length.patch └── sdl12-compat.json ├── cld2 ├── CMakeLists.txt └── cld2.json ├── clutter └── clutter.json ├── dbus-glib └── dbus-glib.json ├── glew └── glew.json ├── glu └── glu-9.json ├── gtk2 ├── arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch ├── gtk2-common-themes.json ├── gtk2-fix-crash-in-show-uri.patch ├── gtk2-gcc14.patch ├── gtk2-use-adwaita-theme.patch ├── gtk2.json ├── murrine-engine-fix-crash.patch └── readme.md ├── gudev └── gudev.json ├── gzdoom ├── 0001-Fix-libxmp-playback.patch ├── description.patch ├── game-music-emu.json ├── gzdoom.json └── zmusic.json ├── intltool ├── intltool-0.51.json └── intltool-perl5.26-regex-fixes.patch ├── lame ├── lame-3.99.5.json ├── lame-ansi2knr2devnull.patch ├── lame-gtk1-ac-directives.patch ├── lame-msse.patch └── lame-tinfo.patch ├── libappindicator ├── Makefile ├── libappindicator-fix-crash-from-incorrect-signal-emission.patch ├── libappindicator-fix-crash-iterating-icon-themes.patch ├── libappindicator-ftbfs.patch ├── libappindicator-gtk2-12.10.json ├── libappindicator-gtk3-12.10.json ├── libappindicator-gtk3-introspection-12.10.json ├── libappindicator-no-python.patch └── libappindicator.json.in ├── libayatana-appindicator ├── 0001-Fix-HAVE_VALGRIND-AM_CONDITIONAL.patch ├── 0001-Make-introspection-configurable.patch └── libayatana-appindicator-gtk3.json ├── libcanberra ├── 0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch └── libcanberra.json ├── libmad └── libmad.json ├── libsecret └── libsecret.json ├── libsoup └── libsoup-2.4.json ├── libusb └── libusb.json ├── linux-audio ├── dssi.json ├── fftw3f-static.json ├── fftw3f.json ├── fluidsynth2-static.json ├── fluidsynth2.json ├── ladspa.json ├── lash.json ├── libinstpatch.json ├── liblo-static.json ├── liblo.json ├── lilv-static.json ├── lilv.json ├── lrdf.json ├── lv2.json ├── patches │ ├── lash-0.5.3-no-static-lib.patch │ ├── lash-build.patch │ ├── lash-configure.patch │ ├── lash-gcc47.patch │ ├── lash-linking.patch │ ├── raptor-libxml.patch │ └── stk-install.sh └── stk.json ├── lua5.1 ├── 0004-Fix-stack-overflow-in-vararg-functions.patch ├── lua-5.1.5-so.patch └── lua-5.1.5.json ├── lua5.3 ├── lua-5.3.5.json ├── lua.pc.in ├── luaconf.patch └── makefile-add-liblua.so-rule.patch ├── lua5.4 ├── lua-5.4.json ├── lua.pc.in ├── luaconf.patch └── makefile-add-liblua.so-rule.patch ├── luajit └── luajit.json ├── lzo └── lzo.json ├── mac └── mac.json ├── physfs └── physfs.json ├── pygame ├── audiofile-gcc6.patch ├── cython-fixes.patch ├── fluidsynth-no-rawmidi.patch ├── glib.patch └── pygame-1.9.6.json ├── pygtk ├── pygtk.json └── pygtk.patch ├── python2.7 └── python-2.7.json ├── smpeg ├── smpeg-0.4.5.json ├── smpeg-am-prog-as.patch ├── smpeg-export-mpegaudio-class.patch ├── smpeg-gcc6.patch └── smpeg-no-gtk.patch ├── squashfs-tools └── squashfs-tools.json ├── update-checker.sh └── vorbisgain ├── 0001-temp_files.patch ├── 0002-errno.patch ├── 0003-manpage.patch ├── 0004-vorbisgain_mtime.patch ├── 0005-double_fclose.patch ├── 0006-manpage_hyphens.patch ├── 0007-recursively_spelling.patch ├── 0008-manpage_recursion_mistake.patch ├── 0009-hardening.patch ├── 0010-fclose.patch ├── README.md └── vorbisgain_0.37-2.json /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: master 6 | pull_request: 7 | branches: master 8 | workflow_dispatch: 9 | 10 | jobs: 11 | CI: 12 | runs-on: ubuntu-latest 13 | steps: 14 | # 4.2.2 15 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 16 | with: 17 | persist-credentials: false 18 | 19 | - name: Set up dependencies 20 | run: | 21 | sudo add-apt-repository ppa:flatpak/stable 22 | sudo apt-get update 23 | sudo apt-get install -y flatpak 24 | flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo 25 | flatpak install flathub -y org.flatpak.Builder 26 | 27 | - name: Validate manifests 28 | run: | 29 | set -e 30 | for i in $(find . -type f -name "*.json"); do flatpak run org.flatpak.Builder --show-manifest "$i"; done 31 | rm -rf .flatpak-builder 32 | 33 | find . -maxdepth 1 -mindepth 1 -type d ! -path './.github' ! -path './.git' | while read dir; do 34 | if [ "$(find "$dir" -maxdepth 1 -type f -name '*.json' | wc -l)" -eq 0 ]; then 35 | echo "Error: $dir has no JSON manifest" 36 | exit 1 37 | fi 38 | done 39 | 40 | files="$(find . -type f \( -name '*.yml' -o -name '*.yaml' \) ! -path './.github/*' ! -path './.git')" 41 | if [ -n "$files" ]; then 42 | echo "Error: YML/YAML file found: $files" 43 | exit 1 44 | fi 45 | -------------------------------------------------------------------------------- /.github/workflows/update.yaml: -------------------------------------------------------------------------------- 1 | name: Check for updates 2 | on: 3 | schedule: # for scheduling to work this file must be in the default branch 4 | - cron: "0 0 * * 0" # 00:00 on every Sunday 5 | workflow_dispatch: # can be manually dispatched under GitHub's "Actions" tab 6 | 7 | jobs: 8 | flatpak-external-data-checker: 9 | runs-on: ubuntu-latest 10 | 11 | strategy: 12 | matrix: 13 | branch: [ master ] # list all branches to check 14 | 15 | steps: 16 | # 4.2.2 17 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 18 | with: 19 | ref: ${{ matrix.branch }} 20 | 21 | - uses: docker://ghcr.io/flathub-infra/flatpak-external-data-checker:latest@sha256:9e64f59dc8b92b4e7cf325a3f2ef98a64beaf721b58803801d3bf66269203221 22 | env: 23 | GIT_AUTHOR_NAME: flathubbot 24 | GIT_COMMITTER_NAME: flathubbot 25 | GIT_AUTHOR_EMAIL: sysadmin@flathub.org 26 | GIT_COMMITTER_EMAIL: sysadmin@flathub.org 27 | EMAIL: sysadmin@flathub.org 28 | GITHUB_TOKEN: ${{ secrets.FLATHUBBOT_TOKEN }} 29 | with: 30 | # We don't want the default entrypoint, we want our own script 31 | entrypoint: ./update-checker.sh 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .flatpak-builder/ 2 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | # Fallback on Flathub admins for unowned shared modules 2 | * @flathub/reviewers 3 | 4 | update-checker.sh @flathub/reviewers 5 | .github/ @flathub/reviewers 6 | 7 | /dbus-glib/ @TingPing 8 | /clutter/ @A6GibKm 9 | /gtk2/ @TingPing 10 | /gudev/ @Erick555 11 | /intltool/ @TingPing 12 | /libappindicator/ @TingPing 13 | /libcanberra/ @hadess 14 | /libusb/ @A6GibKm 15 | /physfs/ @Mailaender 16 | /python2.7/ @bilelmoussaoui 17 | /linux-audio/ @hfiguiere 18 | /libsoup/ @hfiguiere 19 | /mac/ @enzo1982 @Eonfge 20 | /pygtk/ @Eonfge 21 | /gzdoom/ @Eonfge 22 | /vorbisgain/ @Eonfge 23 | /luajit/ @ranisalt 24 | /lzo/ @AKoskovich 25 | /squashfs-tools/ @AKoskovich 26 | /libayatana-appindicator/ @AKoskovich 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This repository contains commonly shared modules and is intended to be used as a git submodule. 2 | 3 | Each submodule may include additional instructions to be used properly. Please check the folder containing that module to see if anything extra needs to be done. 4 | 5 | ## Adding 6 | 7 | To use shared modules for packaging an application, add the submodule: 8 | 9 | ``` 10 | git submodule add https://github.com/flathub/shared-modules.git 11 | ``` 12 | 13 | ## Usage 14 | 15 | Then modules from this repository can be specified in an application 16 | manifest. 17 | 18 | ```json 19 | "modules": [ 20 | "shared-modules/SDL/SDL-1.2.15.json", 21 | { 22 | "name": "foo" 23 | } 24 | ] 25 | ``` 26 | And for a YAML manifest: 27 | ```YAML 28 | modules: 29 | - shared-modules/SDL/SDL-1.2.15.json 30 | 31 | - name: foo 32 | ``` 33 | 34 | ## Updating 35 | 36 | To update the submodule: 37 | 38 | ``` 39 | git submodule update --remote --merge 40 | ``` 41 | 42 | ## Removing 43 | 44 | To remove the submodule: 45 | 46 | ``` 47 | git submodule deinit -f -- shared-modules 48 | rm -rf .git/modules/shared-modules 49 | git rm -f shared-modules 50 | rm .gitmodules 51 | ``` 52 | 53 | We provide an automatic updating mechanism for submodules located here. In order to utilize it: 54 | 55 | - Set up x-checker-data for your sources: https://github.com/flathub/flatpak-external-data-checker#url-checker 56 | 57 | And it will check for updates in a weekly basis. 58 | 59 | Please do not request adding modules unless they are widely used in 60 | the Flathub repository. 61 | 62 | All shared modules manifests in this repository are, and need to be, in the JSON format, 63 | which is supported by both Flatpak manifest formats, JSON and YAML. 64 | -------------------------------------------------------------------------------- /SDL/README.md: -------------------------------------------------------------------------------- 1 | This submodule contains the manifests and several patches for SDL1 and its compatibility layer. 2 | 3 | If using the compatibility layer, please add the SDL2 submodule as a dependency as well to benefit from the latest bug fixes. 4 | -------------------------------------------------------------------------------- /SDL/SDL-1.2.15.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDL1", 3 | "rm-configure": true, 4 | "config-opts": ["--disable-static"], 5 | "cleanup": [ 6 | "/bin", 7 | "/share/man", 8 | "/share/aclocal", 9 | "/include", 10 | "/lib/pkgconfig", 11 | "/lib/*.la", 12 | "/lib/*.a" 13 | ], 14 | "sources": [ 15 | { 16 | "type": "archive", 17 | "url": "https://www.libsdl.org/release/SDL-1.2.15.tar.gz", 18 | "sha256": "d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00" 19 | }, 20 | { 21 | "type": "patch", 22 | "path": "sdl-libx11-build.patch" 23 | }, 24 | { 25 | "type": "patch", 26 | "path": "sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch" 27 | }, 28 | { 29 | "type": "patch", 30 | "path": "sdl-sysloadso-buffer-length.patch" 31 | }, 32 | { 33 | "type": "script", 34 | "dest-filename": "autogen.sh", 35 | "commands": [ 36 | "sed -i -e 's/.*AM_PATH_ESD.*//' configure.in", 37 | "cp -p /usr/share/automake-*/config.{sub,guess} build-scripts", 38 | "aclocal", 39 | "libtoolize", 40 | "autoconf" 41 | ] 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /SDL/SDL_Pango-0.1.2-API-adds.patch: -------------------------------------------------------------------------------- 1 | diff -Naupr SDL_Pango-0.1.2.orig/src/SDL_Pango.c SDL_Pango-0.1.2/src/SDL_Pango.c 2 | --- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2004-12-10 10:06:33.000000000 +0100 3 | +++ SDL_Pango-0.1.2/src/SDL_Pango.c 2006-09-29 17:42:09.000000000 +0200 4 | @@ -723,13 +723,8 @@ SDLPango_CopyFTBitmapToSurface( 5 | SDL_UnlockSurface(surface); 6 | } 7 | 8 | -/*! 9 | - Create a context which contains Pango objects. 10 | - 11 | - @return A pointer to the context as a SDLPango_Context*. 12 | -*/ 13 | SDLPango_Context* 14 | -SDLPango_CreateContext() 15 | +SDLPango_CreateContext_GivenFontDesc(const char* font_desc) 16 | { 17 | SDLPango_Context *context = g_malloc(sizeof(SDLPango_Context)); 18 | G_CONST_RETURN char *charset; 19 | @@ -743,8 +738,7 @@ SDLPango_CreateContext() 20 | pango_context_set_language (context->context, pango_language_from_string (charset)); 21 | pango_context_set_base_dir (context->context, PANGO_DIRECTION_LTR); 22 | 23 | - context->font_desc = pango_font_description_from_string( 24 | - MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE)); 25 | + context->font_desc = pango_font_description_from_string(font_desc); 26 | 27 | context->layout = pango_layout_new (context->context); 28 | 29 | @@ -762,6 +756,17 @@ SDLPango_CreateContext() 30 | } 31 | 32 | /*! 33 | + Create a context which contains Pango objects. 34 | + 35 | + @return A pointer to the context as a SDLPango_Context*. 36 | +*/ 37 | +SDLPango_Context* 38 | +SDLPango_CreateContext() 39 | +{ 40 | + SDLPango_CreateContext_GivenFontDesc(MAKE_FONT_NAME(DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE)); 41 | +} 42 | + 43 | +/*! 44 | Free a context. 45 | 46 | @param *context [i/o] Context to be free 47 | @@ -1053,6 +1058,20 @@ SDLPango_SetMarkup( 48 | pango_layout_set_font_description (context->layout, context->font_desc); 49 | } 50 | 51 | +void 52 | +SDLPango_SetText_GivenAlignment( 53 | + SDLPango_Context *context, 54 | + const char *text, 55 | + int length, 56 | + SDLPango_Alignment alignment) 57 | +{ 58 | + pango_layout_set_attributes(context->layout, NULL); 59 | + pango_layout_set_text (context->layout, text, length); 60 | + pango_layout_set_auto_dir (context->layout, TRUE); 61 | + pango_layout_set_alignment (context->layout, alignment); 62 | + pango_layout_set_font_description (context->layout, context->font_desc); 63 | +} 64 | + 65 | /*! 66 | Set plain text to context. 67 | Text must be utf-8. 68 | @@ -1067,11 +1086,7 @@ SDLPango_SetText( 69 | const char *text, 70 | int length) 71 | { 72 | - pango_layout_set_attributes(context->layout, NULL); 73 | - pango_layout_set_text (context->layout, text, length); 74 | - pango_layout_set_auto_dir (context->layout, TRUE); 75 | - pango_layout_set_alignment (context->layout, PANGO_ALIGN_LEFT); 76 | - pango_layout_set_font_description (context->layout, context->font_desc); 77 | + SDLPango_SetText_GivenAlignment(context, text, length, SDLPANGO_ALIGN_LEFT); 78 | } 79 | 80 | /*! 81 | diff -Naupr SDL_Pango-0.1.2.orig/src/SDL_Pango.h SDL_Pango-0.1.2/src/SDL_Pango.h 82 | --- SDL_Pango-0.1.2.orig/src/SDL_Pango.h 2004-12-10 10:06:33.000000000 +0100 83 | +++ SDL_Pango-0.1.2/src/SDL_Pango.h 2006-09-29 17:42:09.000000000 +0200 84 | @@ -109,12 +109,20 @@ typedef enum { 85 | SDLPANGO_DIRECTION_NEUTRAL /*! Neutral */ 86 | } SDLPango_Direction; 87 | 88 | - 89 | +/*! 90 | + Specifies alignment of text. See Pango reference for detail 91 | +*/ 92 | +typedef enum { 93 | + SDLPANGO_ALIGN_LEFT, 94 | + SDLPANGO_ALIGN_CENTER, 95 | + SDLPANGO_ALIGN_RIGHT 96 | +} SDLPango_Alignment; 97 | 98 | extern DECLSPEC int SDLCALL SDLPango_Init(); 99 | 100 | extern DECLSPEC int SDLCALL SDLPango_WasInit(); 101 | 102 | +extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext_GivenFontDesc(const char* font_desc); 103 | extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext(); 104 | 105 | extern DECLSPEC void SDLCALL SDLPango_FreeContext( 106 | @@ -157,6 +165,12 @@ extern DECLSPEC void SDLCALL SDLPango_Se 107 | const char *markup, 108 | int length); 109 | 110 | +extern DECLSPEC void SDLCALL SDLPango_SetText_GivenAlignment( 111 | + SDLPango_Context *context, 112 | + const char *text, 113 | + int length, 114 | + SDLPango_Alignment alignment); 115 | + 116 | extern DECLSPEC void SDLCALL SDLPango_SetText( 117 | SDLPango_Context *context, 118 | const char *markup, 119 | -------------------------------------------------------------------------------- /SDL/SDL_image-1.2.12.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDL_image", 3 | "config-opts": ["--disable-static"], 4 | "rm-configure": true, 5 | "cleanup": [ 6 | "/include", 7 | "/lib/pkgconfig", 8 | "*.la", 9 | "*.a" 10 | ], 11 | "sources": [ 12 | { 13 | "type": "archive", 14 | "url": "https://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz", 15 | "sha256": "0b90722984561004de84847744d566809dbb9daf732a9e503b91a1b5a84e5699" 16 | }, 17 | { 18 | "type": "script", 19 | "dest-filename": "autogen.sh", 20 | "commands": [ 21 | "AUTOMAKE=\"automake --foreign\" autoreconf -vfi" 22 | ] 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /SDL/SDL_mixer-1.2.12.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDL_mixer", 3 | "config-opts": ["--disable-static"], 4 | "cleanup": [ 5 | "/include", 6 | "/lib/pkgconfig", 7 | "/lib/*.la" 8 | ], 9 | "rm-configure": true, 10 | "sources": [ 11 | { 12 | "type": "archive", 13 | "url": "https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.12.tar.gz", 14 | "sha256": "1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a" 15 | }, 16 | { 17 | "type": "script", 18 | "dest-filename": "autogen.sh", 19 | "commands": [ 20 | "rm acinclude/libtool.m4", 21 | "rm acinclude/lt*", 22 | "AUTOMAKE=\"automake --foreign\" autoreconf -vfi -I acinclude", 23 | "cp -p /usr/share/automake-*/config.{sub,guess} build-scripts" 24 | ] 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /SDL/SDL_net-1.2.8.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDL_net", 3 | "config-opts": ["--disable-static"], 4 | "rm-configure": true, 5 | "sources": [ 6 | { 7 | "type": "archive", 8 | "url": "https://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.8.tar.gz", 9 | "sha256": "5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4" 10 | }, 11 | { 12 | "type": "script", 13 | "dest-filename": "autogen.sh", 14 | "commands": [ 15 | "AUTOMAKE=\"automake --foreign\" autoreconf -vfi" 16 | ] 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /SDL/SDL_pango-0.1.2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDL_pango", 3 | "config-opts": ["--disable-static"], 4 | "rm-configure": true, 5 | "sources": [ 6 | { 7 | "type": "archive", 8 | "url": "https://downloads.sourceforge.net/project/sdlpango/SDL_Pango/0.1.2/SDL_Pango-0.1.2.tar.gz", 9 | "sha256": "7f75d3b97acf707c696ea126424906204ebfa07660162de925173cdd0257eba4" 10 | }, 11 | { 12 | "type": "patch", 13 | "path": "SDL_Pango-0.1.2-API-adds.patch" 14 | }, 15 | { 16 | "type": "script", 17 | "dest-filename": "autogen.sh", 18 | "commands": [ 19 | "autoreconf -vfi" 20 | ] 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /SDL/SDL_ttf-2.0.11.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SDL_ttf", 3 | "config-opts": ["--disable-static"], 4 | "rm-configure": true, 5 | "config-opts": [ 6 | "ac_cv_path_FREETYPE_CONFIG=pkg-config freetype2" 7 | ], 8 | "cleanup": [ 9 | "/include", 10 | "/lib/pkgconfig", 11 | "*.la", 12 | "*.a" 13 | ], 14 | "sources": [ 15 | { 16 | "type": "archive", 17 | "url": "https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz", 18 | "sha256": "724cd895ecf4da319a3ef164892b72078bd92632a5d812111261cde248ebcdb7" 19 | }, 20 | { 21 | "type": "script", 22 | "dest-filename": "autogen.sh", 23 | "commands": [ 24 | "AUTOMAKE=\"automake --foreign\" autoreconf -vfi" 25 | ] 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /SDL/sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch: -------------------------------------------------------------------------------- 1 | Description: Do not harness backing store by default 2 | xorg-server 1.15 enables backing store if composite extension is enabled 3 | (default settings). Harnessing backing store through compositor leads to 4 | tearing effect. 5 | This patch reverts default harnessing backing store to conditional use if 6 | SDL_VIDEO_X11_BACKINGSTORE environment variable exists. 7 | Origin: https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/1280665/comments/1 8 | Bug: https://bugzilla.libsdl.org/show_bug.cgi?id=2383 9 | Bug-Debian: https://bugs.debian.org/747168 10 | 11 | --- a/src/video/x11/SDL_x11video.c 12 | +++ b/src/video/x11/SDL_x11video.c 13 | @@ -1088,10 +1088,8 @@ 14 | } 15 | } 16 | 17 | -#if 0 /* This is an experiment - are the graphics faster now? - nope. */ 18 | if ( SDL_getenv("SDL_VIDEO_X11_BACKINGSTORE") ) 19 | -#endif 20 | - /* Cache the window in the server, when possible */ 21 | + /* Cache the window in the server when possible, on request */ 22 | { 23 | Screen *xscreen; 24 | XSetWindowAttributes a; 25 | -------------------------------------------------------------------------------- /SDL/sdl-libx11-build.patch: -------------------------------------------------------------------------------- 1 | 2 | # HG changeset patch 3 | # User Azamat H. Hackimov 4 | # Date 1370184533 -21600 5 | # Node ID 91ad7b43317a6387e115ecdf63a49137f47e42c8 6 | # Parent f7fd5c3951b9ed922fdf696f7182e71b58a13268 7 | Fix compilation with libX11 >= 1.5.99.902. 8 | 9 | These changes fixes bug #1769 for SDL 1.2 10 | (http://bugzilla.libsdl.org/show_bug.cgi?id=1769). 11 | 12 | diff -r f7fd5c3951b9 -r 91ad7b43317a configure.in 13 | --- a/configure.in Wed Apr 17 00:56:53 2013 -0700 14 | +++ b/configure.in Sun Jun 02 20:48:53 2013 +0600 15 | @@ -1169,6 +1169,17 @@ 16 | if test x$definitely_enable_video_x11_xrandr = xyes; then 17 | AC_DEFINE(SDL_VIDEO_DRIVER_X11_XRANDR) 18 | fi 19 | + AC_MSG_CHECKING(for const parameter to _XData32) 20 | + have_const_param_xdata32=no 21 | + AC_TRY_COMPILE([ 22 | + #include 23 | + extern int _XData32(Display *dpy,register _Xconst long *data,unsigned len); 24 | + ],[ 25 | + ],[ 26 | + have_const_param_xdata32=yes 27 | + AC_DEFINE(SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32) 28 | + ]) 29 | + AC_MSG_RESULT($have_const_param_xdata32) 30 | fi 31 | fi 32 | } 33 | diff -r f7fd5c3951b9 -r 91ad7b43317a include/SDL_config.h.in 34 | --- a/include/SDL_config.h.in Wed Apr 17 00:56:53 2013 -0700 35 | +++ b/include/SDL_config.h.in Sun Jun 02 20:48:53 2013 +0600 36 | @@ -283,6 +283,7 @@ 37 | #undef SDL_VIDEO_DRIVER_WINDIB 38 | #undef SDL_VIDEO_DRIVER_WSCONS 39 | #undef SDL_VIDEO_DRIVER_X11 40 | +#undef SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32 41 | #undef SDL_VIDEO_DRIVER_X11_DGAMOUSE 42 | #undef SDL_VIDEO_DRIVER_X11_DYNAMIC 43 | #undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT 44 | diff -r f7fd5c3951b9 -r 91ad7b43317a src/video/x11/SDL_x11sym.h 45 | --- a/src/video/x11/SDL_x11sym.h Wed Apr 17 00:56:53 2013 -0700 46 | +++ b/src/video/x11/SDL_x11sym.h Sun Jun 02 20:48:53 2013 +0600 47 | @@ -165,7 +165,11 @@ 48 | */ 49 | #ifdef LONG64 50 | SDL_X11_MODULE(IO_32BIT) 51 | +#if SDL_VIDEO_DRIVER_X11_CONST_PARAM_XDATA32 52 | +SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return) 53 | +#else 54 | SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return) 55 | +#endif 56 | SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),) 57 | #endif 58 | 59 | 60 | -------------------------------------------------------------------------------- /SDL/sdl-sysloadso-buffer-length.patch: -------------------------------------------------------------------------------- 1 | Origin: https://github.com/libsdl-org/SDL-1.2/commit/447ec3d2c360902aa648bec44b612a040248871e 2 | From: Ozkan Sezer 3 | Description: loadso, dlsym, SDL_LoadFunction: cleanup the underscored name path. 4 | - strlcpy was passed a wrong buffer length parameter. has worked so 5 | far by luck. 6 | - use memcpy instead of strlcpy for simplicity. 7 | - 'append' has been a typo: should be 'prepend'. 8 | diff --git a/src/loadso/dlopen/SDL_sysloadso.c b/src/loadso/dlopen/SDL_sysloadso.c 9 | index 7985ee7f9..56331a1f0 100644 10 | --- a/src/loadso/dlopen/SDL_sysloadso.c 11 | +++ b/src/loadso/dlopen/SDL_sysloadso.c 12 | @@ -45,11 +45,11 @@ void *SDL_LoadFunction(void *handle, const char *name) 13 | { 14 | void *symbol = dlsym(handle, name); 15 | if ( symbol == NULL ) { 16 | - /* append an underscore for platforms that need that. */ 17 | - size_t len = 1+SDL_strlen(name)+1; 18 | - char *_name = SDL_stack_alloc(char, len); 19 | + /* prepend an underscore for platforms that need that. */ 20 | + size_t len = SDL_strlen(name)+1; 21 | + char *_name = SDL_stack_alloc(char, len+1); 22 | _name[0] = '_'; 23 | - SDL_strlcpy(&_name[1], name, len); 24 | + SDL_memcpy(&_name[1], name, len); 25 | symbol = dlsym(handle, _name); 26 | SDL_stack_free(_name); 27 | if ( symbol == NULL ) { 28 | -------------------------------------------------------------------------------- /SDL/sdl12-compat.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sdl12-compat", 3 | "buildsystem": "cmake-ninja", 4 | "cleanup": [ 5 | "bin/sdl-config" 6 | ], 7 | "sources": [ 8 | { 9 | "type": "archive", 10 | "url": "https://github.com/libsdl-org/sdl12-compat/archive/refs/tags/release-1.2.68.tar.gz", 11 | "sha256": "63c6e4dcc1154299e6f363c872900be7f3dcb3e42b9f8f57e05442ec3d89d02d" 12 | } 13 | ], 14 | "modules": [ 15 | "../glu/glu-9.json" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /cld2/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8) 2 | project (cld2) 3 | enable_language(CXX) 4 | 5 | set (VERSION "0.0.197") 6 | set (common_SOURCE_FILES 7 | internal/cldutil.cc 8 | internal/cldutil_shared.cc 9 | internal/compact_lang_det.cc 10 | internal/compact_lang_det_hint_code.cc 11 | internal/compact_lang_det_impl.cc 12 | internal/debug.cc 13 | internal/fixunicodevalue.cc 14 | internal/generated_entities.cc 15 | internal/generated_language.cc 16 | internal/generated_ulscript.cc 17 | internal/getonescriptspan.cc 18 | internal/lang_script.cc 19 | internal/offsetmap.cc 20 | internal/scoreonescriptspan.cc 21 | internal/tote.cc 22 | internal/utf8statetable.cc 23 | ) 24 | 25 | set (cld2_SOURCE_FILES 26 | internal/generated_distinct_bi_0.cc 27 | internal/cld_generated_cjk_uni_prop_80.cc 28 | internal/cld2_generated_cjk_compatible.cc 29 | internal/cld_generated_cjk_delta_bi_4.cc 30 | internal/cld2_generated_quadchrome_2.cc 31 | internal/cld2_generated_deltaoctachrome.cc 32 | internal/cld2_generated_distinctoctachrome.cc 33 | internal/cld_generated_score_quad_octa_2.cc 34 | ) 35 | 36 | set (cld2_full_SOURCE_FILES 37 | internal/generated_distinct_bi_0.cc 38 | internal/cld_generated_cjk_uni_prop_80.cc 39 | internal/cld2_generated_cjk_compatible.cc 40 | internal/cld_generated_cjk_delta_bi_32.cc 41 | internal/cld2_generated_quad0122.cc 42 | internal/cld2_generated_deltaocta0122.cc 43 | internal/cld2_generated_distinctocta0122.cc 44 | internal/cld_generated_score_quad_octa_0122.cc 45 | ) 46 | 47 | set (cld2_dynamic_SOURCE_FILES 48 | internal/cld2_dynamic_data.cc 49 | internal/cld2_dynamic_data_loader.cc 50 | ) 51 | 52 | add_library(cld2 SHARED ${common_SOURCE_FILES} ${cld2_SOURCE_FILES}) 53 | set_target_properties(cld2 PROPERTIES 54 | ENABLE_EXPORTS On 55 | OUTPUT_NAME cld2 56 | VERSION ${VERSION} 57 | SOVERSION 0 58 | ) 59 | add_library(cld2_full SHARED ${cld2_full_SOURCE_FILES}) 60 | set_target_properties(cld2_full PROPERTIES 61 | ENABLE_EXPORTS On 62 | OUTPUT_NAME cld2_full 63 | VERSION ${VERSION} 64 | SOVERSION 0 65 | ) 66 | 67 | add_library(cld2_dynamic SHARED ${cld2_dynamic_SOURCE_FILES}) 68 | set_target_properties(cld2_dynamic PROPERTIES 69 | ENABLE_EXPORTS On 70 | OUTPUT_NAME cld2_dynamic 71 | VERSION ${VERSION} 72 | SOVERSION 0 73 | COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE" 74 | ) 75 | install(TARGETS cld2 DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE}) 76 | install(TARGETS cld2_full DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE}) 77 | install(TARGETS cld2_dynamic DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE}) 78 | 79 | set (cld2_internal_HEADERS 80 | internal/cld2_dynamic_compat.h 81 | internal/cld2_dynamic_data_extractor.h 82 | internal/cld2_dynamic_data.h 83 | internal/cld2_dynamic_data_loader.h 84 | internal/cld2tablesummary.h 85 | internal/cldutil.h 86 | internal/cldutil_offline.h 87 | internal/cldutil_shared.h 88 | internal/compact_lang_det_hint_code.h 89 | internal/compact_lang_det_impl.h 90 | internal/debug.h 91 | internal/fixunicodevalue.h 92 | internal/generated_language.h 93 | internal/generated_ulscript.h 94 | internal/getonescriptspan.h 95 | internal/integral_types.h 96 | internal/lang_script.h 97 | internal/langspan.h 98 | internal/offsetmap.h 99 | internal/port.h 100 | internal/scoreonescriptspan.h 101 | internal/stringpiece.h 102 | internal/tote.h 103 | internal/unittest_data.h 104 | internal/utf8acceptinterchange.h 105 | internal/utf8prop_lettermarkscriptnum.h 106 | internal/utf8repl_lettermarklower.h 107 | internal/utf8scannot_lettermarkspecial.h 108 | internal/utf8statetable.h 109 | ) 110 | 111 | install(FILES ${cld2_internal_HEADERS} DESTINATION include/cld2/internal) 112 | set (cld2_public_HEADERS 113 | public/compact_lang_det.h 114 | public/encodings.h 115 | ) 116 | install(FILES ${cld2_public_HEADERS} DESTINATION include/cld2/public) 117 | 118 | set (full_SOURCE_FILES 119 | internal/cld_generated_cjk_uni_prop_80.cc 120 | internal/cld2_generated_cjk_compatible.cc 121 | internal/cld_generated_cjk_delta_bi_32.cc 122 | internal/generated_distinct_bi_0.cc 123 | internal/cld2_generated_quad0122.cc 124 | internal/cld2_generated_deltaocta0122.cc 125 | internal/cld2_generated_distinctocta0122.cc 126 | internal/cld_generated_score_quad_octa_0122.cc 127 | ) 128 | 129 | add_executable(compact_lang_det_test_full ${full_SOURCE_FILES} internal/compact_lang_det_test.cc) 130 | add_executable(cld2_unittest_full ${full_SOURCE_FILES} internal/cld2_unittest_full.cc) 131 | add_executable(cld2_unittest_full_avoid ${full_SOURCE_FILES} internal/cld2_unittest_full.cc) 132 | set_target_properties(cld2_unittest_full_avoid PROPERTIES COMPILE_FLAGS "-Davoid_utf8_string_constants") 133 | 134 | add_executable(cld2_dynamic_data_tool internal/cld2_dynamic_data_extractor.cc internal/cld2_dynamic_data_tool.cc) 135 | add_executable(compact_lang_det_dynamic_test_chrome ${common_SOURCE_FILES} internal/cld2_dynamic_data_extractor.cc internal/compact_lang_det_test.cc) 136 | add_executable(cld2_dynamic_unittest ${common_SOURCE_FILES} internal/cld2_unittest.cc) 137 | set_target_properties(compact_lang_det_dynamic_test_chrome PROPERTIES COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE") 138 | set_target_properties(cld2_dynamic_unittest PROPERTIES COMPILE_FLAGS "-DCLD2_DYNAMIC_MODE") 139 | 140 | add_executable(compact_lang_det_test_chrome_2 internal/compact_lang_det_test.cc) 141 | add_executable(compact_lang_det_test_chrome_16 internal/compact_lang_det_test.cc) 142 | add_executable(cld2_unittest_chrome_2 internal/cld2_unittest.cc) 143 | add_executable(cld2_unittest_avoid_chrome_2 internal/cld2_unittest.cc) 144 | set_target_properties(cld2_unittest_avoid_chrome_2 PROPERTIES COMPILE_FLAGS "-Davoid_utf8_string_constants") 145 | 146 | target_link_libraries(compact_lang_det_test_full cld2) 147 | target_link_libraries(cld2_unittest_full cld2) 148 | target_link_libraries(cld2_unittest_full_avoid cld2) 149 | target_link_libraries(cld2_dynamic_data_tool cld2 cld2_dynamic) 150 | target_link_libraries(compact_lang_det_dynamic_test_chrome cld2_dynamic) 151 | target_link_libraries(cld2_dynamic_unittest cld2_dynamic) 152 | target_link_libraries(compact_lang_det_test_chrome_2 cld2) 153 | target_link_libraries(compact_lang_det_test_chrome_16 cld2) 154 | target_link_libraries(cld2_unittest_chrome_2 cld2) 155 | target_link_libraries(cld2_unittest_avoid_chrome_2 cld2) 156 | -------------------------------------------------------------------------------- /cld2/cld2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cld2", 3 | "buildsystem": "simple", 4 | "build-options": { 5 | "cxxflags": "-std=c++98" 6 | }, 7 | "build-commands": [ 8 | "cp CMakeLists.txt ./cld2", 9 | "cd cld2 && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=/app -DCMAKE_BUILD_TYPE=Release", 10 | "cd cld2/build && make && make install" 11 | ], 12 | "sources":[ 13 | { 14 | "type": "git", 15 | "url": "https://github.com/CLD2Owners/cld2.git", 16 | "commit": "84b58a5d7690ebf05a91406f371ce00c3daf31c0", 17 | "dest": "cld2" 18 | }, 19 | { 20 | "type": "file", 21 | "path": "CMakeLists.txt" 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /clutter/clutter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "clutter-gtk", 3 | "cleanup": [ 4 | "/share/gtk-doc" 5 | ], 6 | "sources": [ 7 | { 8 | "type": "archive", 9 | "url": "https://download.gnome.org/sources/clutter-gtk/1.8/clutter-gtk-1.8.4.tar.xz", 10 | "sha256": "521493ec038973c77edcb8bc5eac23eed41645117894aaee7300b2487cb42b06" 11 | } 12 | ], 13 | "modules": [ 14 | { 15 | "name": "cogl", 16 | "config-opts": [ 17 | "--disable-cogl-gst", 18 | "--disable-gtk-doc", 19 | "--enable-xlib-egl-platform", 20 | "--enable-wayland-egl-platform" 21 | ], 22 | "cleanup": [ 23 | "/share/gtk-doc", 24 | "/share/cogl/examples-data" 25 | ], 26 | "sources": [ 27 | { 28 | "type": "archive", 29 | "url": "https://download.gnome.org/sources/cogl/1.22/cogl-1.22.8.tar.xz", 30 | "sha256": "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759" 31 | } 32 | ] 33 | }, 34 | { 35 | "name": "clutter", 36 | "config-opts": [ 37 | "--disable-gtk-doc", 38 | "--enable-egl-backend", 39 | "--enable-wayland-backend" 40 | ], 41 | "cleanup": [ 42 | "/share/gtk-doc" 43 | ], 44 | "sources": [ 45 | { 46 | "type": "archive", 47 | "url": "https://download.gnome.org/sources/clutter/1.26/clutter-1.26.4.tar.xz", 48 | "sha256": "8b48fac159843f556d0a6be3dbfc6b083fc6d9c58a20a49a6b4919ab4263c4e6" 49 | } 50 | ] 51 | }, 52 | { 53 | "name": "clutter-gst", 54 | "config-opts": [ 55 | "--disable-gtk-doc" 56 | ], 57 | "cleanup": [ 58 | "/share/gtk-doc" 59 | ], 60 | "sources": [ 61 | { 62 | "type": "archive", 63 | "url": "https://download.gnome.org/sources/clutter-gst/3.0/clutter-gst-3.0.27.tar.xz", 64 | "sha256": "fe69bd6c659d24ab30da3f091eb91cd1970026d431179b0724f13791e8ad9f9d" 65 | } 66 | ] 67 | } 68 | ] 69 | } 70 | -------------------------------------------------------------------------------- /dbus-glib/dbus-glib.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dbus-glib", 3 | "cleanup": [ 4 | "*.la", 5 | "/bin", 6 | "/etc", 7 | "/include", 8 | "/libexec", 9 | "/share/gtk-doc", 10 | "/share/man" 11 | ], 12 | "config-opts": [ 13 | "--disable-static", 14 | "--disable-gtk-doc" 15 | ], 16 | "sources": [ 17 | { 18 | "type": "archive", 19 | "url": "https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.112.tar.gz", 20 | "sha256": "7d550dccdfcd286e33895501829ed971eeb65c614e73aadb4a08aeef719b143a" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /glew/glew.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glew", 3 | "no-autogen": true, 4 | "make-args": [ 5 | "GLEW_PREFIX=${FLATPAK_DEST}", 6 | "GLEW_DEST=${FLATPAK_DEST}", 7 | "LIBDIR=${FLATPAK_DEST}/lib", 8 | "CFLAGS.EXTRA:=${CFLAGS} -fPIC", 9 | "LDFLAGS.EXTRA=${LDFLAGS}" 10 | ], 11 | "make-install-args": [ 12 | "GLEW_PREFIX=${FLATPAK_DEST}", 13 | "GLEW_DEST=${FLATPAK_DEST}", 14 | "LIBDIR=${FLATPAK_DEST}/lib", 15 | "CFLAGS.EXTRA:=${CFLAGS} -fPIC", 16 | "LDFLAGS.EXTRA=${LDFLAGS}" 17 | ], 18 | "sources": [ 19 | { 20 | "type": "archive", 21 | "url": "https://downloads.sourceforge.net/project/glew/glew/2.2.0/glew-2.2.0.tgz", 22 | "sha256": "d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1" 23 | } 24 | ], 25 | "cleanup": [ 26 | "/include", 27 | "/lib/pkgconfig", 28 | "/lib/*.a" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /glu/glu-9.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "glu", 3 | "buildsystem": "meson", 4 | "sources": [ 5 | { 6 | "type": "archive", 7 | "url": "https://archive.mesa3d.org/glu/glu-9.0.3.tar.xz", 8 | "sha256": "bd43fe12f374b1192eb15fe20e45ff456b9bc26ab57f0eee919f96ca0f8a330f" 9 | } 10 | ], 11 | "cleanup": [ "/include", "/lib/*.a", "/lib/*.la", "/lib/pkgconfig" ] 12 | } 13 | -------------------------------------------------------------------------------- /gtk2/arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch: -------------------------------------------------------------------------------- 1 | From d5e0034183564df5fec8e4dde1705116c7b38021 Mon Sep 17 00:00:00 2001 2 | From: Patrick Griffis 3 | Date: Sat, 16 May 2020 18:00:36 -0700 4 | Subject: [PATCH] Replace Inkscape dependency with rsvg-convert 5 | 6 | rsvg-convert is a *much* smaller dependency that all systems with 7 | a functioning GTK installation should have easy access to. 8 | --- 9 | common/gtk-2.0/Makefile.am | 6 +----- 10 | common/gtk-2.0/render-asset.sh | 16 ++++++++-------- 11 | common/gtk-3.0/common.am | 12 ++---------- 12 | common/xfwm4/Makefile.am | 6 +----- 13 | common/xfwm4/render-asset.sh | 16 ++++++++-------- 14 | configure.ac | 8 ++------ 15 | 6 files changed, 22 insertions(+), 42 deletions(-) 16 | 17 | diff --git a/common/gtk-2.0/Makefile.am b/common/gtk-2.0/Makefile.am 18 | index 010823a..873013a 100644 19 | --- a/common/gtk-2.0/Makefile.am 20 | +++ b/common/gtk-2.0/Makefile.am 21 | @@ -35,11 +35,7 @@ $(light): $(srcdir)/light/assets.svg | light/assets 22 | $(dark): $(srcdir)/dark/assets.svg | dark/assets 23 | 24 | $(light) $(dark): 25 | -if INKSCAPE_1_0_OR_NEWER 26 | - $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null 27 | -else !INKSCAPE_1_0_OR_NEWER 28 | - $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null 29 | -endif 30 | + $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-x=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) --dpi-y=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null 31 | $(OPTIPNG) -o7 --quiet "$@" 32 | 33 | menubar-toolbar/%-dark.png: dark/assets/%.png | menubar-toolbar 34 | diff --git a/common/gtk-2.0/render-asset.sh b/common/gtk-2.0/render-asset.sh 35 | index 6685414..f6198af 100755 36 | --- a/common/gtk-2.0/render-asset.sh 37 | +++ b/common/gtk-2.0/render-asset.sh 38 | @@ -1,7 +1,7 @@ 39 | #!/bin/bash 40 | set -ueo pipefail 41 | 42 | -INKSCAPE="$(which inkscape)" 43 | +RSVG_CONVERT="$(which rsvg-convert)" 44 | OPTIPNG="$(which optipng)" 45 | 46 | ASSETS_DIR="$1" 47 | @@ -14,9 +14,9 @@ if [[ -f "${result_file}" ]] ; then 48 | echo "${result_file} already exists." 49 | else 50 | echo "Rendering '${result_file}'" 51 | - "$INKSCAPE" --export-id="$i" \ 52 | - --export-id-only \ 53 | - --export-png="${result_file}" "$SRC_FILE" >/dev/null \ 54 | + "$RSVG_CONVERT" --export-id="$i" \ 55 | + --format=png 56 | + --output="${result_file}" "$SRC_FILE" >/dev/null \ 57 | && "$OPTIPNG" -o7 --quiet "${result_file}" 58 | fi 59 | 60 | @@ -26,10 +26,10 @@ if [[ "$OPTION_GTK2_HIDPI" == "true" ]]; then 61 | echo "${result_file_hidpi} already exists." 62 | else 63 | echo "Rendering '${result_file_hidpi}'" 64 | - "$INKSCAPE" --export-id="$i" \ 65 | - --export-id-only \ 66 | - --export-dpi=192 \ 67 | - --export-png="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ 68 | + "$RSVG_CONVERT" --export-id="$i" \ 69 | + --dpi-x=192 --dpi-y=192 \ 70 | + --format=png 71 | + --output="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ 72 | && "$OPTIPNG" -o7 --quiet "${result_file_hidpi}" 73 | fi 74 | fi 75 | diff --git a/common/gtk-3.0/common.am b/common/gtk-3.0/common.am 76 | index a93d01d..9e4b102 100644 77 | --- a/common/gtk-3.0/common.am 78 | +++ b/common/gtk-3.0/common.am 79 | @@ -14,19 +14,11 @@ clean: 80 | rm -rf assets/ light/ dark/ darker/ lighter/ 81 | 82 | $(normal): $(srcdir)/assets.svg | assets 83 | -if INKSCAPE_1_0_OR_NEWER 84 | - $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=96 "$<" >/dev/null 85 | -else !INKSCAPE_1_0_OR_NEWER 86 | - $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=96 "$<" >/dev/null 87 | -endif 88 | + $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-y=96 --dpi-x=96 "$<" >/dev/null 89 | $(OPTIPNG) -o7 --quiet "$@" 90 | 91 | $(hidpi): $(srcdir)/assets.svg | assets 92 | -if INKSCAPE_1_0_OR_NEWER 93 | - $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --export-dpi=192 "$<" >/dev/null 94 | -else !INKSCAPE_1_0_OR_NEWER 95 | - $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --export-dpi=192 "$<" >/dev/null 96 | -endif 97 | + $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --dpi-y=192 --dpi-x=192 "$<" >/dev/null 98 | $(OPTIPNG) -o7 --quiet "$@" 99 | 100 | .PHONY: normal hidpi clean 101 | diff --git a/common/xfwm4/Makefile.am b/common/xfwm4/Makefile.am 102 | index e5fbdc5..1f21183 100644 103 | --- a/common/xfwm4/Makefile.am 104 | +++ b/common/xfwm4/Makefile.am 105 | @@ -17,11 +17,7 @@ $(light): $(srcdir)/light/assets.svg | light/assets 106 | $(dark): $(srcdir)/dark/assets.svg | dark/assets 107 | 108 | $(light) $(dark): 109 | -if INKSCAPE_1_0_OR_NEWER 110 | - $(INKSCAPE) --export-id-only --export-filename="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null 111 | -else !INKSCAPE_1_0_OR_NEWER 112 | - $(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null 113 | -endif 114 | + $(RSVG_CONVERT) --format=png --output="$@" --export-id="$(basename $(notdir $@))" --dpi-y=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) --dpi-x=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null 115 | $(OPTIPNG) -o7 --quiet "$@" 116 | 117 | .PHONY: light dark clean 118 | diff --git a/common/xfwm4/render-asset.sh b/common/xfwm4/render-asset.sh 119 | index 6685414..f6198af 100755 120 | --- a/common/xfwm4/render-asset.sh 121 | +++ b/common/xfwm4/render-asset.sh 122 | @@ -1,7 +1,7 @@ 123 | #!/bin/bash 124 | set -ueo pipefail 125 | 126 | -INKSCAPE="$(which inkscape)" 127 | +RSVG_CONVERT="$(which rsvg-convert)" 128 | OPTIPNG="$(which optipng)" 129 | 130 | ASSETS_DIR="$1" 131 | @@ -14,9 +14,9 @@ if [[ -f "${result_file}" ]] ; then 132 | echo "${result_file} already exists." 133 | else 134 | echo "Rendering '${result_file}'" 135 | - "$INKSCAPE" --export-id="$i" \ 136 | - --export-id-only \ 137 | - --export-png="${result_file}" "$SRC_FILE" >/dev/null \ 138 | + "$RSVG_CONVERT" --export-id="$i" \ 139 | + --format=png 140 | + --output="${result_file}" "$SRC_FILE" >/dev/null \ 141 | && "$OPTIPNG" -o7 --quiet "${result_file}" 142 | fi 143 | 144 | @@ -26,10 +26,10 @@ if [[ "$OPTION_GTK2_HIDPI" == "true" ]]; then 145 | echo "${result_file_hidpi} already exists." 146 | else 147 | echo "Rendering '${result_file_hidpi}'" 148 | - "$INKSCAPE" --export-id="$i" \ 149 | - --export-id-only \ 150 | - --export-dpi=192 \ 151 | - --export-png="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ 152 | + "$RSVG_CONVERT" --export-id="$i" \ 153 | + --dpi-x=192 --dpi-y=192 \ 154 | + --format=png 155 | + --output="${result_file_hidpi}" "$SRC_FILE" >/dev/null \ 156 | && "$OPTIPNG" -o7 --quiet "${result_file_hidpi}" 157 | fi 158 | fi 159 | diff --git a/configure.ac b/configure.ac 160 | index f0725f1..1a52cc7 100644 161 | --- a/configure.ac 162 | +++ b/configure.ac 163 | @@ -48,12 +48,8 @@ AM_CONDITIONAL([GNOME_SHELL_3_32_OR_NEWER], [test "0$GNOME_SHELL_VERSMNR" -ge 31 164 | AS_IF([test "x$ENABLE_CINNAMON" != xno], [ARC_CINNAMON]) 165 | 166 | AS_IF([test "x$ENABLE_GTK2" != xno -o "x$ENABLE_GTK3" != xno -o "x$ENABLE_XFWM" != xno], [ 167 | - AC_PATH_PROG([INKSCAPE], [inkscape]) 168 | - AS_IF([test "x$ac_cv_path_INKSCAPE" = x], [AC_MSG_ERROR([inkscape not found])]) 169 | - AS_IF([test "x$ac_cv_path_INKSCAPE" != x], 170 | - [INKSCAPE_VERSMJR=`inkscape --version 2> /dev/null | cut -d' ' -f2 | cut -d'.' -f1`] 171 | - AM_CONDITIONAL([INKSCAPE_1_0_OR_NEWER], [test "x$INKSCAPE_VERSMJR" = x1]) 172 | - ) 173 | + AC_PATH_PROG([RSVG_CONVERT], [rsvg-convert]) 174 | + AS_IF([test "x$ac_cv_path_RSVG_CONVERT" = x], [AC_MSG_ERROR([rsvg-convert not found])]) 175 | AC_PATH_PROG([OPTIPNG], [optipng]) 176 | AS_IF([test "x$ac_cv_path_OPTIPNG" = x], [AC_MSG_ERROR([optipng not found])]) 177 | ]) 178 | -- 179 | 2.26.0 180 | 181 | -------------------------------------------------------------------------------- /gtk2/gtk2-common-themes.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gtk2-common-themes", 3 | "buildsystem": "simple", 4 | "build-commands": [], 5 | "modules": [ 6 | { 7 | "name": "sassc", 8 | "// NOTE": "This is used by Yaru, Greybird, and Materia", 9 | "cleanup": ["*"], 10 | "sources": [ 11 | { 12 | "type": "archive", 13 | "url": "https://github.com/sass/sassc/archive/3.5.0.tar.gz", 14 | "sha256": "26f54e31924b83dd706bc77df5f8f5553a84d51365f0e3c566df8de027918042" 15 | }, 16 | { 17 | "type": "script", 18 | "commands": ["autoreconf -si"] 19 | } 20 | ], 21 | "modules": [ 22 | { 23 | "name": "libsass", 24 | "cleanup": ["*"], 25 | "sources": [ 26 | { 27 | "type": "archive", 28 | "url": "https://github.com/sass/libsass/archive/3.5.4.tar.gz", 29 | "sha256": "5f61cbcddaf8e6ef7a725fcfa5d05297becd7843960f245197ebb655ff868770" 30 | }, 31 | { 32 | "type": "script", 33 | "commands": ["autoreconf -si"] 34 | } 35 | ] 36 | } 37 | ] 38 | }, 39 | { 40 | "name": "gtk2-murrine-engine", 41 | "rm-configure": true, 42 | "// NOTE": "Used by Arc and CrosAdapta", 43 | "cleanup": [ 44 | "*.la" 45 | ], 46 | "sources": [ 47 | { 48 | "type": "archive", 49 | "url": "https://download.gnome.org/sources/murrine/0.98/murrine-0.98.2.tar.xz", 50 | "sha256": "e9c68ae001b9130d0f9d1b311e8121a94e5c134b82553ba03971088e57d12c89" 51 | }, 52 | { 53 | "type": "patch", 54 | "path": "murrine-engine-fix-crash.patch" 55 | }, 56 | { 57 | "type": "script", 58 | "commands": [ 59 | "rm config.guess", 60 | "autoreconf -si" 61 | ] 62 | } 63 | ] 64 | }, 65 | { 66 | "name": "cros-adapta-gtk2-theme", 67 | "// NOTE": "This is used by Chrome OS", 68 | "buildsystem": "simple", 69 | "build-commands": [ 70 | "install -Dm644 index.theme ${FLATPAK_DEST}/share/themes/CrosAdapta/index.theme", 71 | "cp -r gtk-2.0 ${FLATPAK_DEST}/share/themes/CrosAdapta" 72 | ], 73 | "sources": [ 74 | { 75 | "type": "git", 76 | "url": "https://chromium.googlesource.com/chromiumos/third_party/cros-adapta", 77 | "commit": "eb6d8c1832b9181926df107faf41a80887fd982c" 78 | } 79 | ] 80 | }, 81 | { 82 | "name": "arc-gtk2-theme", 83 | "// NOTE": "This is used by Solus and is popular", 84 | "// FIXME": "This has a dependency on inkscape and my patch isn't quite good enough sadly", 85 | "disabled": true, 86 | "config-opts": [ 87 | "--disable-gnome-shell", 88 | "--disable-cinnamon", 89 | "--disable-gtk3", 90 | "--disable-metacity", 91 | "--disable-xfwm", 92 | "--disable-plank", 93 | "--disable-openbox", 94 | "--disable-unity" 95 | ], 96 | "sources": [ 97 | { 98 | "type": "archive", 99 | "url": "https://github.com/jnsh/arc-theme/releases/download/20200513/arc-theme-20200513.tar.xz", 100 | "sha256": "cd268b878d6ad7c81b7acc0f89b66e26ee9a9a92eafb03b792318d51707f1962" 101 | }, 102 | { 103 | "type": "patch", 104 | "path": "arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch" 105 | }, 106 | { 107 | "type": "shell", 108 | "commands": ["sed -i 's|\"$srcdir/configure\" $@||' autogen.sh"] 109 | } 110 | ], 111 | "modules": [ 112 | { 113 | "name": "optipng", 114 | "cleanup": ["*"], 115 | "sources": [ 116 | { 117 | "type": "archive", 118 | "url": "https://prdownloads.sourceforge.net/optipng/optipng-0.7.7.tar.gz", 119 | "sha256": "4f32f233cef870b3f95d3ad6428bfe4224ef34908f1b42b0badf858216654452" 120 | } 121 | ] 122 | } 123 | ] 124 | }, 125 | { 126 | "name": "breeze-gtk2-theme", 127 | "// NOTE": "This is used by KDE by default.", 128 | "buildsystem": "simple", 129 | "build-commands": [ 130 | "find breeze-gtk/src -name '*.scss' -print -execdir sed -i 's#\\.\\./assets/#./assets/#' {} \\;", 131 | "cd breeze-gtk/src && sed -i 's/@PYTHON_EXECUTABLE@/python3/g' build_theme.sh.cmake && ./build_theme.sh.cmake -c BreezeLight -t ${FLATPAK_BUILDER_BUILDDIR}/Breeze -r ${FLATPAK_BUILDER_BUILDDIR}/breeze/colors", 132 | "mkdir -p ${FLATPAK_DEST}/share/themes/Breeze/", 133 | "cp -rv --no-preserve=ownership ${FLATPAK_BUILDER_BUILDDIR}/Breeze/gtk-2.0 ${FLATPAK_DEST}/share/themes/Breeze/", 134 | "cp -rv --no-preserve=ownership ${FLATPAK_BUILDER_BUILDDIR}/Breeze/assets ${FLATPAK_DEST}/share/themes/Breeze/" 135 | ], 136 | "sources": [ 137 | { 138 | "type": "archive", 139 | "url": "https://download.kde.org/stable/plasma/5.27.6/breeze-gtk-5.27.6.tar.xz", 140 | "sha256": "ac2aab13b9224ddea6560fdbac9fe9d93a08a86787f95b95c43a95b134836bda", 141 | "dest": "breeze-gtk", 142 | "x-checker-data": { 143 | "type": "anitya", 144 | "project-id": 8761, 145 | "stable-only": true, 146 | "url-template": "https://download.kde.org/stable/plasma/$version/breeze-gtk-$version.tar.xz" 147 | } 148 | }, 149 | { 150 | "type": "archive", 151 | "url": "https://download.kde.org/stable/plasma/5.27.6/breeze-5.27.6.tar.xz", 152 | "sha256": "5d9a8d7e5b061ce4183c4f842b0e82e6132b6c8e7ebc2c1d579baa066ffa6c6c", 153 | "dest": "breeze", 154 | "x-checker-data": { 155 | "type": "anitya", 156 | "project-id": 8761, 157 | "stable-only": true, 158 | "url-template": "https://download.kde.org/stable/plasma/$version/breeze-$version.tar.xz" 159 | } 160 | } 161 | ], 162 | "modules": [ 163 | { 164 | "name": "python3-cairo", 165 | "cleanup": ["*"], 166 | "buildsystem": "simple", 167 | "build-commands": [ 168 | "pip3 install --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=\"${FLATPAK_DEST}\" pycairo" 169 | ], 170 | "sources": [ 171 | { 172 | "type": "file", 173 | "url": "https://files.pythonhosted.org/packages/69/ca/9e9fa2e8be0876a9bbf046a1be7ee33e61d4fdfbd1fd25c76c1bdfddf8c4/pycairo-1.23.0.tar.gz", 174 | "sha256": "9b61ac818723adc04367301317eb2e814a83522f07bbd1f409af0dada463c44c", 175 | "x-checker-data": { 176 | "type": "pypi", 177 | "name": "pycairo" 178 | } 179 | }, 180 | { 181 | "type": "file", 182 | "url": "https://files.pythonhosted.org/packages/25/f3/d68c20919bc774c6cb127f1762f2f2f999d700a58198556e883dd3700e58/setuptools-67.6.0.tar.gz", 183 | "sha256": "2ee892cd5f29f3373097f5a814697e397cf3ce313616df0af11231e2ad118077", 184 | "x-checker-data": { 185 | "type": "pypi", 186 | "name": "setuptools" 187 | } 188 | }, 189 | { 190 | "type": "file", 191 | "url": "https://files.pythonhosted.org/packages/a2/b8/6a06ff0f13a00fc3c3e7d222a995526cbca26c1ad107691b6b1badbbabf1/wheel-0.38.4.tar.gz", 192 | "sha256": "965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac", 193 | "x-checker-data": { 194 | "type": "pypi", 195 | "name": "wheel" 196 | } 197 | } 198 | ] 199 | } 200 | ] 201 | }, 202 | { 203 | "name": "elementary-gtk2-theme", 204 | "// NOTE": "This is used by Elementary OS", 205 | "buildsystem": "meson", 206 | "cleanup": [ 207 | "/share/themes/elementary/gtk-3.0", 208 | "/share/themes/elementary/plank", 209 | "/share/plank" 210 | ], 211 | "sources": [ 212 | { 213 | "type": "archive", 214 | "url": "https://github.com/elementary/stylesheet/archive/5.4.2.tar.gz", 215 | "sha256": "3bc37723daf4ce0b7c9ce4c125ef0055affe8d6654981388ec87d4a23a1ae0ec" 216 | } 217 | ] 218 | }, 219 | { 220 | "name": "yaru-gtk2-theme", 221 | "// NOTE": "This is used by Ubuntu", 222 | "buildsystem": "meson", 223 | "config-opts": [ 224 | "-Dicons=false", 225 | "-Dsounds=false", 226 | "-Dgnome-shell=false", 227 | "-Dsessions=false" 228 | ], 229 | "cleanup": [ 230 | "/share/themes/Yaru*/gtk-3.0", 231 | "/share/themes/Yaru*/gtk-3.20", 232 | "/share/themes/Yaru*/unity" 233 | ], 234 | "sources": [ 235 | { 236 | "type": "archive", 237 | "url": "https://github.com/ubuntu/yaru/archive/20.10.1.tar.gz", 238 | "sha256": "9da2605088674edf2694a8215b7344fb5209b308dd8220ea21667a914dc8c55d" 239 | } 240 | ] 241 | }, 242 | { 243 | "name": "greybird-gtk2-theme", 244 | "// NOTE": "This is used by many XFCE distros", 245 | "buildsystem": "meson", 246 | "cleanup": [ 247 | "/share/themes/Greybird*/xfwm4", 248 | "/share/themes/Greybird*/gnome-shell", 249 | "/share/themes/Greybird*/gtk-3.0", 250 | "/share/themes/Greybird*/metacity-1", 251 | "/share/themes/Greybird*/xfce-notify-4.0", 252 | "/share/themes/Greybird*/plank", 253 | "/share/themes/Greybird*/unity", 254 | "/share/themes/Greybird*/*.emerald" 255 | ], 256 | "sources": [ 257 | { 258 | "type": "archive", 259 | "url": "https://github.com/shimmerproject/Greybird/archive/v3.22.12.tar.gz", 260 | "sha256": "410804cd5daca33cbc5c7c4a179f3a334ced87f408e515fc5d9c083a04bec4bc" 261 | } 262 | ] 263 | }, 264 | { 265 | "name": "materia-gtk2-theme", 266 | "// NOTE": "This is used by Ubuntu Studio", 267 | "buildsystem": "meson", 268 | "cleanup": [ 269 | "/share/themes/Materia*/xfwm4", 270 | "/share/themes/Materia*/gnome-shell", 271 | "/share/themes/Materia*/gtk-3.0", 272 | "/share/themes/Materia*/metacity-1", 273 | "/share/themes/Materia*/cinnamon", 274 | "/share/themes/Materia*/chrome", 275 | "/share/themes/Materia*/plank", 276 | "/share/themes/Materia*/unity" 277 | ], 278 | "sources": [ 279 | { 280 | "type": "git", 281 | "url": "https://github.com/nana-4/materia-theme.git", 282 | "commit": "b36b379c9256b67e5f63a60c6faf6912f1845b66" 283 | } 284 | ] 285 | } 286 | ] 287 | } 288 | -------------------------------------------------------------------------------- /gtk2/gtk2-fix-crash-in-show-uri.patch: -------------------------------------------------------------------------------- 1 | From 536da7a15c1737bc63c8ecba5ccac40cc2170860 Mon Sep 17 00:00:00 2001 2 | From: Matthias Clasen 3 | Date: Mon, 19 Apr 2021 16:39:53 -0400 4 | Subject: [PATCH] Fix a possible crash in gtk_show_uri 5 | 6 | g_file_get_basename can return NULL. 7 | Deal with it somehow. 8 | 9 | Fixes: #3883 10 | --- 11 | gdk/x11/gdkapplaunchcontext-x11.c | 3 +++ 12 | 1 file changed, 3 insertions(+) 13 | 14 | diff --git a/gdk/x11/gdkapplaunchcontext-x11.c b/gdk/x11/gdkapplaunchcontext-x11.c 15 | index 8051229ba5..2341bb2e1f 100644 16 | --- a/gdk/x11/gdkapplaunchcontext-x11.c 17 | +++ b/gdk/x11/gdkapplaunchcontext-x11.c 18 | @@ -45,6 +45,9 @@ get_display_name (GFile *file, 19 | if (name == NULL) 20 | { 21 | name = g_file_get_basename (file); 22 | + if (name == NULL) 23 | + name = g_file_get_uri (file); 24 | + 25 | if (!g_utf8_validate (name, -1, NULL)) 26 | { 27 | tmp = name; 28 | -- 29 | GitLab 30 | 31 | -------------------------------------------------------------------------------- /gtk2/gtk2-use-adwaita-theme.patch: -------------------------------------------------------------------------------- 1 | diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c 2 | index 186a8f5cb2..f5c39b5afe 100644 3 | --- a/gdk/x11/gdkevents-x11.c 4 | +++ b/gdk/x11/gdkevents-x11.c 5 | @@ -3000,6 +3000,50 @@ check_transform (const gchar *xsettings_name, 6 | return TRUE; 7 | } 8 | 9 | +static gchar * 10 | +gtk_rc_get_theme_dir (void) 11 | +{ 12 | + const gchar *var; 13 | + gchar *path; 14 | + 15 | + var = g_getenv ("GTK_DATA_PREFIX"); 16 | + 17 | + if (var) 18 | + path = g_build_filename (var, "share", "themes", NULL); 19 | + else 20 | + path = g_build_filename ("/app", "share", "themes", NULL); 21 | + 22 | + return path; 23 | +} 24 | + 25 | +static gboolean 26 | +theme_name_valid (XSettingsSetting *setting) 27 | +{ 28 | + gboolean res = FALSE; 29 | + 30 | + if (setting->type == XSETTINGS_TYPE_STRING) 31 | + { 32 | + char *theme_name = setting->data.v_string; 33 | + gchar *theme_dir = gtk_rc_get_theme_dir (); 34 | + gchar *path = g_build_filename (theme_dir, theme_name, "gtk-2.0", "gtkrc", NULL); 35 | + 36 | + if (g_file_test (path, G_FILE_TEST_EXISTS)) 37 | + res = TRUE; 38 | + else if (g_str_has_suffix (theme_name, "-Dark") || 39 | + g_str_has_suffix (theme_name, "-dark")) 40 | + { 41 | + setting->data.v_string = g_strdup ("Adwaita-dark"); 42 | + g_free (theme_name); 43 | + res = TRUE; 44 | + } 45 | + 46 | + g_free (theme_dir); 47 | + g_free (path); 48 | + } 49 | + 50 | + return res; 51 | +} 52 | + 53 | /** 54 | * gdk_screen_get_setting: 55 | * @screen: the #GdkScreen where the setting is located 56 | @@ -3050,6 +3094,11 @@ gdk_screen_get_setting (GdkScreen *screen, 57 | if (result != XSETTINGS_SUCCESS) 58 | goto out; 59 | 60 | + if (strcmp (name, "gtk-theme-name") == 0 && 61 | + (setting->type != XSETTINGS_TYPE_STRING || 62 | + !theme_name_valid (setting))) 63 | + goto out; 64 | + 65 | switch (setting->type) 66 | { 67 | case XSETTINGS_TYPE_INT: 68 | diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c 69 | index 3fbbf00548..5c0a4b33d2 100644 70 | --- a/gtk/gtksettings.c 71 | +++ b/gtk/gtksettings.c 72 | @@ -312,7 +312,7 @@ gtk_settings_class_init (GtkSettingsClass *class) 73 | #ifdef G_OS_WIN32 74 | "MS-Windows", 75 | #else 76 | - "Raleigh", 77 | + "Adwaita", 78 | #endif 79 | GTK_PARAM_READWRITE), 80 | NULL); 81 | -------------------------------------------------------------------------------- /gtk2/gtk2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gnome-themes-extra", 3 | "rm-configure": true, 4 | "config-opts": [ 5 | "--disable-dependency-tracking", 6 | "--disable-gtk3-engine" 7 | ], 8 | "cleanup": [ 9 | "/share/themes/Adwaita/gtk-3.0", 10 | "/share/themes/Adwaita-dark/gtk-3.0", 11 | "/share/themes/HighContrast/gtk-3.0", 12 | "*.la" 13 | ], 14 | "sources": [ 15 | { 16 | "type": "archive", 17 | "url": "https://download.gnome.org/sources/gnome-themes-extra/3.28/gnome-themes-extra-3.28.tar.xz", 18 | "sha256": "7c4ba0bff001f06d8983cfc105adaac42df1d1267a2591798a780bac557a5819" 19 | }, 20 | { 21 | "type": "shell", 22 | "//": "We want to avoid generating icons as its 99% of the build time and gnome runtime has it", 23 | "commands": [ 24 | "sed -i 's/icons//' themes/HighContrast/Makefile.am" 25 | ] 26 | }, 27 | { 28 | "type": "script", 29 | "commands": [ 30 | "autoreconf -fsi" 31 | ] 32 | } 33 | ], 34 | "modules": [ 35 | "../intltool/intltool-0.51.json", 36 | { 37 | "name": "gtk2", 38 | "cleanup": [ 39 | "/bin", 40 | "/share/gtk-2.0", 41 | "/share/aclocal", 42 | "/share/gtk-doc", 43 | "/lib/pkgconfig", 44 | "/lib/gtk-2.0/include", 45 | "/include", 46 | "*.la" 47 | ], 48 | "x-cpe": { 49 | "product": "gtk+" 50 | }, 51 | "config-opts": [ 52 | "--disable-dependency-tracking", 53 | "--disable-gtk-doc-html", 54 | "--disable-introspection", 55 | "--with-xinput=xfree" 56 | ], 57 | "sources": [ 58 | { 59 | "type": "archive", 60 | "url": "https://download.gnome.org/sources/gtk+/2.24/gtk+-2.24.33.tar.xz", 61 | "sha256": "ac2ac757f5942d318a311a54b0c80b5ef295f299c2a73c632f6bfb1ff49cc6da" 62 | }, 63 | { 64 | "type": "patch", 65 | "path": "gtk2-use-adwaita-theme.patch" 66 | }, 67 | { 68 | "type": "patch", 69 | "paths": [ 70 | "gtk2-fix-crash-in-show-uri.patch", 71 | "gtk2-gcc14.patch" 72 | ] 73 | } 74 | ] 75 | }, 76 | { 77 | "name": "ibus-gtk2", 78 | "config-opts": [ 79 | "--disable-xim", 80 | "--disable-dconf", 81 | "--disable-gconf", 82 | "--disable-memconf", 83 | "--disable-schemas-compile", 84 | "--disable-schemas-install", 85 | "--disable-gtk3", 86 | "--disable-setup", 87 | "--disable-ui", 88 | "--disable-engine", 89 | "--disable-python-library", 90 | "--disable-libnotify", 91 | "--disable-emoji-dict", 92 | "--disable-appindicator", 93 | "--disable-glibtest", 94 | "--disable-tests", 95 | "--disable-unicode-dict", 96 | "--disable-introspection", 97 | "--disable-python2" 98 | ], 99 | "make-install-args": [ 100 | "-C", "client/gtk2" 101 | ], 102 | "post-install": [ 103 | "gtk-query-immodules-2.0 > immodules.cache", 104 | "install immodules.cache -t $(pkg-config --variable=libdir gtk+-2.0)/gtk-2.0/2.10.0/" 105 | ], 106 | "sources": [ 107 | { 108 | "type": "archive", 109 | "url": "https://github.com/ibus/ibus/releases/download/1.5.23/ibus-1.5.23.tar.gz", 110 | "sha256": "b7e8d5bdb7d71a5ba4ee43cdf374675f77121a71c1679c9b9e7e02875bd0e150" 111 | } 112 | ] 113 | } 114 | ] 115 | } 116 | -------------------------------------------------------------------------------- /gtk2/murrine-engine-fix-crash.patch: -------------------------------------------------------------------------------- 1 | Index: gtk2-engines-murrine-0.98.2/src/murrine_style.c 2 | =================================================================== 3 | --- gtk2-engines-murrine-0.98.2.orig/src/murrine_style.c 4 | +++ gtk2-engines-murrine-0.98.2/src/murrine_style.c 5 | @@ -2171,6 +2171,7 @@ murrine_style_draw_layout (GtkStyle 6 | cairo_t *cr; 7 | cr = murrine_begin_paint (window, area); 8 | cairo_translate (cr, x+xos, y+yos); 9 | + pango_cairo_update_layout (cr, layout); 10 | pango_cairo_layout_path (cr, layout); 11 | murrine_set_color_rgba (cr, &temp, 0.5); 12 | cairo_stroke (cr); 13 | -------------------------------------------------------------------------------- /gtk2/readme.md: -------------------------------------------------------------------------------- 1 | This directory contains two manifests: 2 | 3 | - `gtk2.json` 4 | 5 | This contains a build of GTK2, the ibus input module, and the Adwaita and HighContrast themes. 6 | 7 | - `gtk2-common-themes.json` 8 | 9 | This contains a collection of commonly used GTK2 themes that users might have. This is optional as it does build a few things. 10 | Without the matching theme the build of GTK2 here will always default to Adwaita. 11 | -------------------------------------------------------------------------------- /gudev/gudev.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gudev", 3 | "buildsystem": "meson", 4 | "config-opts": [ 5 | "-Dtests=disabled", 6 | "-Dvapi=disabled", 7 | "-Dintrospection=disabled", 8 | "-Dgtk_doc=false" 9 | ], 10 | "cleanup": [ 11 | "/include", 12 | "/etc", 13 | "/libexec", 14 | "/sbin", 15 | "/lib/pkgconfig", 16 | "/lib/systemd", 17 | "/man", 18 | "/share/aclocal", 19 | "/share/doc", 20 | "/share/gtk-doc", 21 | "/share/man", 22 | "/share/pkgconfig", 23 | "*.la", 24 | "*.a" 25 | ], 26 | "sources": [ 27 | { 28 | "type": "archive", 29 | "url": "https://download.gnome.org/sources/libgudev/238/libgudev-238.tar.xz", 30 | "sha256": "61266ab1afc9d73dbc60a8b2af73e99d2fdff47d99544d085760e4fa667b5dd1" 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /gzdoom/0001-Fix-libxmp-playback.patch: -------------------------------------------------------------------------------- 1 | From f6facdaa683e7159b7569d5287a088da352a7c92 Mon Sep 17 00:00:00 2001 2 | From: Andrew Rabert 3 | Date: Sat, 11 Jan 2025 00:26:08 -0500 4 | Subject: [PATCH] Fix libxmp playback Fixes crashing when the int16_buffer is 5 | smaller than the desired len. Particularly, I was seeing the int16_buffer 6 | with a size of 0. 7 | 8 | --- 9 | source/streamsources/music_libxmp.cpp | 2 +- 10 | 1 file changed, 1 insertion(+), 1 deletion(-) 11 | 12 | diff --git a/source/streamsources/music_libxmp.cpp b/source/streamsources/music_libxmp.cpp 13 | index e235b06..999e046 100644 14 | --- a/source/streamsources/music_libxmp.cpp 15 | +++ b/source/streamsources/music_libxmp.cpp 16 | @@ -126,7 +126,7 @@ bool XMPSong::SetSubsong(int subsong) 17 | 18 | bool XMPSong::GetData(void *buffer, size_t len) 19 | { 20 | - if ((len / 4) < int16_buffer.size()) 21 | + if ((len / 4) > int16_buffer.size()) 22 | int16_buffer.resize(len / 4); 23 | 24 | int ret = xmp_play_buffer(context, (void*)int16_buffer.data(), len / 2, m_Looping? INT_MAX : 0); 25 | -- 26 | 2.47.1 27 | 28 | -------------------------------------------------------------------------------- /gzdoom/description.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/d_iwad.cpp b/src/d_iwad.cpp 2 | index b421b1b35..9f0b16948 100644 3 | --- a/src/d_iwad.cpp 4 | +++ b/src/d_iwad.cpp 5 | @@ -683,9 +683,10 @@ int FIWadManager::IdentifyVersion (TArray &wadfiles, const char *iwad, 6 | "2. Edit your ~/Library/Preferences/" GAMENAMELOWERCASE ".ini and add the directories\n" 7 | "of your iwads to the list beneath [IWADSearch.Directories]"); 8 | #else 9 | - "1. Place one or more of these wads in ~/.config/" GAMENAMELOWERCASE "/.\n" 10 | - "2. Edit your ~/.config/" GAMENAMELOWERCASE "/" GAMENAMELOWERCASE ".ini and add the directories of your\n" 11 | - "iwads to the list beneath [IWADSearch.Directories]"); 12 | + "1. Place one or more of these wads in ~/.var/app/org.zdoom.GZDoom/.config/" GAMENAMELOWERCASE "/\n" 13 | + "2. Edit your ~/.var/app/org.zdoom.GZDoom/.config/" GAMENAMELOWERCASE "/" GAMENAMELOWERCASE ".ini and\n" 14 | + " add the directories of your iwads to the list beneath [IWADSearch.Directories]\n" 15 | + "3. Validate your Flatpak permissions, so that Flatpak has access to your directories with wads"); 16 | #endif 17 | } 18 | int pick = 0; 19 | -------------------------------------------------------------------------------- /gzdoom/game-music-emu.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "game-music-emu", 3 | "buildsystem": "cmake-ninja", 4 | "config-opts": [ 5 | "-DCMAKE_BUILD_TYPE=RelWithDebInfo" 6 | ], 7 | "sources": [ 8 | { 9 | "type": "archive", 10 | "url": "https://github.com/libgme/game-music-emu/archive/refs/tags/0.6.4.tar.gz", 11 | "sha256": "f2360feb5a32ace226c583df4faf6eff74145c81264aaea11e17a1af2f6f101a", 12 | "x-checker-data": { 13 | "type": "anitya", 14 | "project-id": 866, 15 | "stable-only": true, 16 | "url-template": "https://github.com/libgme/game-music-emu/archive/refs/tags/$version.tar.gz" 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /gzdoom/gzdoom.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gzdoom", 3 | "buildsystem": "cmake-ninja", 4 | "config-opts": [ 5 | "-DCMAKE_BUILD_TYPE=Release" 6 | ], 7 | "cleanup": [ 8 | "/lib/*.a", 9 | "/lib/*.la", 10 | "/lib/pkgconfig", 11 | "/include" 12 | ], 13 | "sources": [ 14 | { 15 | "type": "git", 16 | "url": "https://github.com/zdoom/gzdoom.git", 17 | "tag": "g4.14.2", 18 | "commit": "99aa489d09015a95bb78df2b30ede29f328cc874", 19 | "x-checker-data": { 20 | "type": "anitya", 21 | "project-id": 17531, 22 | "stable-only": true, 23 | "tag-template": "g$version" 24 | } 25 | }, 26 | { 27 | "type": "patch", 28 | "path": "description.patch" 29 | }, 30 | { 31 | "type": "shell", 32 | "commands": [ 33 | "sed -i \"s/org.zdoom.GZDoom/${FLATPAK_ID}/g\" src/d_iwad.cpp" 34 | ] 35 | } 36 | ], 37 | "modules": [ 38 | "../linux-audio/libinstpatch.json", 39 | "../linux-audio/fluidsynth2.json", 40 | "./game-music-emu.json", 41 | "./zmusic.json", 42 | { 43 | "name": "libsndfile", 44 | "buildsystem": "autotools", 45 | "sources": [ 46 | { 47 | "type": "archive", 48 | "url": "https://github.com/libsndfile/libsndfile/releases/download/1.2.2/libsndfile-1.2.2.tar.xz", 49 | "sha256": "3799ca9924d3125038880367bf1468e53a1b7e3686a934f098b7e1d286cdb80e", 50 | "x-checker-data": { 51 | "type": "anitya", 52 | "project-id": 13277, 53 | "stable-only": true, 54 | "url-template": "https://github.com/libsndfile/libsndfile/releases/download/$version/libsndfile-$version.tar.xz" 55 | } 56 | } 57 | ] 58 | } 59 | ] 60 | } 61 | -------------------------------------------------------------------------------- /gzdoom/zmusic.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zmusic", 3 | "buildsystem": "cmake-ninja", 4 | "config-opts": [ 5 | "-DCMAKE_BUILD_TYPE=Release" 6 | ], 7 | "sources": [ 8 | { 9 | "type": "archive", 10 | "url": "https://github.com/zdoom/ZMusic/archive/1.1.14.tar.gz", 11 | "sha256": "f04410fe4ea08136f37703e7715c27df4c8532ace1e721cf40c6f303a93acc54", 12 | "x-checker-data": { 13 | "type": "anitya", 14 | "project-id": 153600, 15 | "stable-only": true, 16 | "url-template": "https://github.com/zdoom/ZMusic/archive/$version.tar.gz" 17 | } 18 | }, 19 | { 20 | "type": "patch", 21 | "path": "0001-Fix-libxmp-playback.patch" 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /intltool/intltool-0.51.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "intltool", 3 | "cleanup": [ "*" ], 4 | "sources": [ 5 | { 6 | "type": "archive", 7 | "url": "https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz", 8 | "sha256": "67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd" 9 | }, 10 | { 11 | "type": "patch", 12 | "path": "intltool-perl5.26-regex-fixes.patch" 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /intltool/intltool-perl5.26-regex-fixes.patch: -------------------------------------------------------------------------------- 1 | Description: Escape "{", to prevent complaints from perl 5.22 and 5.26 2 | Author: Roderich Schupp 3 | Author: gregor herrmann 4 | Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788705 5 | Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=826471 6 | Bug-Upstream: https://bugs.launchpad.net/intltool/+bug/1490906 7 | 8 | Index: intltool-0.51.0/intltool-update.in 9 | =================================================================== 10 | --- intltool-0.51.0.orig/intltool-update.in 2017-07-23 17:24:35.113169465 +0200 11 | +++ intltool-0.51.0/intltool-update.in 2017-07-23 17:24:35.109169052 +0200 12 | @@ -1062,13 +1062,13 @@ 13 | } 14 | } 15 | 16 | - if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) 17 | + if ($str =~ /^(.*)\$\{?([A-Z_]+)}?(.*)$/) 18 | { 19 | my $rest = $3; 20 | my $untouched = $1; 21 | my $sub = ""; 22 | # Ignore recursive definitions of variables 23 | - $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/; 24 | + $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\$\{?$2}?/; 25 | 26 | return SubstituteVariable ("$untouched$sub$rest"); 27 | } 28 | @@ -1190,10 +1190,10 @@ 29 | $name =~ s/\(+$//g; 30 | $version =~ s/\(+$//g; 31 | 32 | - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); 33 | - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); 34 | - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); 35 | - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); 36 | + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/); 37 | + $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/); 38 | + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/); 39 | + $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/); 40 | } 41 | 42 | if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m) 43 | @@ -1219,11 +1219,11 @@ 44 | $version =~ s/\(+$//g; 45 | $bugurl =~ s/\(+$//g if (defined $bugurl); 46 | 47 | - $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); 48 | - $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); 49 | - $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); 50 | - $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); 51 | - $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\${?\w+}?/); 52 | + $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/); 53 | + $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/); 54 | + $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/); 55 | + $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/); 56 | + $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\$\{?\w+}?/); 57 | } 58 | 59 | # \s makes this not work, why? 60 | -------------------------------------------------------------------------------- /lame/lame-3.99.5.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lame", 3 | "rm-configure": true, 4 | "config-opts": ["--disable-static"], 5 | "sources": [ 6 | { 7 | "type": "archive", 8 | "url": "https://downloads.sourceforge.net/lame/lame-3.99.5.tar.gz", 9 | "sha256": "24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff" 10 | }, 11 | { 12 | "type": "patch", 13 | "path": "lame-msse.patch" 14 | }, 15 | { 16 | "type": "patch", 17 | "path": "lame-gtk1-ac-directives.patch" 18 | }, 19 | { 20 | "type": "patch", 21 | "path": "lame-ansi2knr2devnull.patch" 22 | }, 23 | { 24 | "type": "patch", 25 | "path": "lame-tinfo.patch", 26 | "strip-components": 0 27 | }, 28 | { 29 | "type": "script", 30 | "dest-filename": "autogen.sh", 31 | "commands": [ 32 | "autoreconf -vfi" 33 | ] 34 | } 35 | ], 36 | "cleanup": ["/bin", "/include", "/share/doc", "/share/man", "*.la"] 37 | } 38 | -------------------------------------------------------------------------------- /lame/lame-ansi2knr2devnull.patch: -------------------------------------------------------------------------------- 1 | Description: Patch out remaining ansi2knr. 2 | Author: Dimitri John Ledkov 3 | Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755111 4 | --- a/configure.in 5 | +++ b/configure.in 6 | @@ -78,7 +78,6 @@ 7 | fi 8 | 9 | dnl more automake stuff 10 | -AM_C_PROTOTYPES 11 | 12 | AC_CHECK_HEADER(dmalloc.h) 13 | if test "${ac_cv_header_dmalloc_h}" = "yes"; then 14 | --- a/doc/man/Makefile.am 15 | +++ b/doc/man/Makefile.am 16 | @@ -1,6 +1,6 @@ 17 | ## $Id: Makefile.am,v 1.1 2000/10/22 11:39:44 aleidinger Exp $ 18 | 19 | -AUTOMAKE_OPTIONS = foreign ansi2knr 20 | +AUTOMAKE_OPTIONS = foreign 21 | 22 | man_MANS = lame.1 23 | EXTRA_DIST = ${man_MANS} 24 | --- a/libmp3lame/i386/Makefile.am 25 | +++ b/libmp3lame/i386/Makefile.am 26 | @@ -1,6 +1,6 @@ 27 | ## $Id: Makefile.am,v 1.26 2011/04/04 09:42:34 aleidinger Exp $ 28 | 29 | -AUTOMAKE_OPTIONS = foreign $(top_srcdir)/ansi2knr 30 | +AUTOMAKE_OPTIONS = foreign 31 | 32 | DEFS = @DEFS@ @CONFIG_DEFS@ 33 | 34 | --- a/doc/html/Makefile.am 35 | +++ b/doc/html/Makefile.am 36 | @@ -1,6 +1,6 @@ 37 | ## $Id: Makefile.am,v 1.7 2010/09/30 20:58:40 jaz001 Exp $ 38 | 39 | -AUTOMAKE_OPTIONS = foreign ansi2knr 40 | +AUTOMAKE_OPTIONS = foreign 41 | 42 | docdir = $(datadir)/doc 43 | pkgdocdir = $(docdir)/$(PACKAGE) 44 | -------------------------------------------------------------------------------- /lame/lame-gtk1-ac-directives.patch: -------------------------------------------------------------------------------- 1 | Description: Include GTK-1 autoconf directives in build system. 2 | Origin: http://anonscm.debian.org/gitweb/?p=pkg-multimedia/lame.git;a=tree;f=debian/patches 3 | Forwarded: yes 4 | Applied-Upstream: http://lame.cvs.sf.net/viewvc/lame/lame/acinclude.m4?revision=1.6 5 | 6 | --- a/acinclude.m4 7 | +++ b/acinclude.m4 8 | @@ -85,4 +85,197 @@ 9 | [AC_MSG_WARN(can't check for IEEE854 compliant 80 bit floats)] 10 | )])]) # alex_IEEE854_FLOAT80 11 | 12 | +# Configure paths for GTK+ 13 | +# Owen Taylor 97-11-3 14 | 15 | +dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) 16 | +dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS 17 | +dnl 18 | +AC_DEFUN([AM_PATH_GTK], 19 | +[dnl 20 | +dnl Get the cflags and libraries from the gtk-config script 21 | +dnl 22 | +AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)], 23 | + gtk_config_prefix="$withval", gtk_config_prefix="") 24 | +AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)], 25 | + gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="") 26 | +AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program], 27 | + , enable_gtktest=yes) 28 | + 29 | + for module in . $4 30 | + do 31 | + case "$module" in 32 | + gthread) 33 | + gtk_config_args="$gtk_config_args gthread" 34 | + ;; 35 | + esac 36 | + done 37 | + 38 | + if test x$gtk_config_exec_prefix != x ; then 39 | + gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" 40 | + if test x${GTK_CONFIG+set} != xset ; then 41 | + GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config 42 | + fi 43 | + fi 44 | + if test x$gtk_config_prefix != x ; then 45 | + gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" 46 | + if test x${GTK_CONFIG+set} != xset ; then 47 | + GTK_CONFIG=$gtk_config_prefix/bin/gtk-config 48 | + fi 49 | + fi 50 | + 51 | + AC_PATH_PROG(GTK_CONFIG, gtk-config, no) 52 | + min_gtk_version=ifelse([$1], ,0.99.7,$1) 53 | + AC_MSG_CHECKING(for GTK - version >= $min_gtk_version) 54 | + no_gtk="" 55 | + if test "$GTK_CONFIG" = "no" ; then 56 | + no_gtk=yes 57 | + else 58 | + GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags` 59 | + GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs` 60 | + gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \ 61 | + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` 62 | + gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \ 63 | + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` 64 | + gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \ 65 | + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` 66 | + if test "x$enable_gtktest" = "xyes" ; then 67 | + ac_save_CFLAGS="$CFLAGS" 68 | + ac_save_LIBS="$LIBS" 69 | + CFLAGS="$CFLAGS $GTK_CFLAGS" 70 | + LIBS="$GTK_LIBS $LIBS" 71 | +dnl 72 | +dnl Now check if the installed GTK is sufficiently new. (Also sanity 73 | +dnl checks the results of gtk-config to some extent 74 | +dnl 75 | + rm -f conf.gtktest 76 | + AC_TRY_RUN([ 77 | +#include 78 | +#include 79 | +#include 80 | + 81 | +int 82 | +main () 83 | +{ 84 | + int major, minor, micro; 85 | + char *tmp_version; 86 | + 87 | + system ("touch conf.gtktest"); 88 | + 89 | + /* HP/UX 9 (%@#!) writes to sscanf strings */ 90 | + tmp_version = g_strdup("$min_gtk_version"); 91 | + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { 92 | + printf("%s, bad version string\n", "$min_gtk_version"); 93 | + exit(1); 94 | + } 95 | + 96 | + if ((gtk_major_version != $gtk_config_major_version) || 97 | + (gtk_minor_version != $gtk_config_minor_version) || 98 | + (gtk_micro_version != $gtk_config_micro_version)) 99 | + { 100 | + printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 101 | + $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, 102 | + gtk_major_version, gtk_minor_version, gtk_micro_version); 103 | + printf ("*** was found! If gtk-config was correct, then it is best\n"); 104 | + printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); 105 | + printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); 106 | + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); 107 | + printf("*** required on your system.\n"); 108 | + printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n"); 109 | + printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n"); 110 | + printf("*** before re-running configure\n"); 111 | + } 112 | +#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION) 113 | + else if ((gtk_major_version != GTK_MAJOR_VERSION) || 114 | + (gtk_minor_version != GTK_MINOR_VERSION) || 115 | + (gtk_micro_version != GTK_MICRO_VERSION)) 116 | + { 117 | + printf("*** GTK+ header files (version %d.%d.%d) do not match\n", 118 | + GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); 119 | + printf("*** library (version %d.%d.%d)\n", 120 | + gtk_major_version, gtk_minor_version, gtk_micro_version); 121 | + } 122 | +#endif /* defined (GTK_MAJOR_VERSION) ... */ 123 | + else 124 | + { 125 | + if ((gtk_major_version > major) || 126 | + ((gtk_major_version == major) && (gtk_minor_version > minor)) || 127 | + ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) 128 | + { 129 | + return 0; 130 | + } 131 | + else 132 | + { 133 | + printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", 134 | + gtk_major_version, gtk_minor_version, gtk_micro_version); 135 | + printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", 136 | + major, minor, micro); 137 | + printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); 138 | + printf("***\n"); 139 | + printf("*** If you have already installed a sufficiently new version, this error\n"); 140 | + printf("*** probably means that the wrong copy of the gtk-config shell script is\n"); 141 | + printf("*** being found. The easiest way to fix this is to remove the old version\n"); 142 | + printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n"); 143 | + printf("*** correct copy of gtk-config. (In this case, you will have to\n"); 144 | + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); 145 | + printf("*** so that the correct libraries are found at run-time))\n"); 146 | + } 147 | + } 148 | + return 1; 149 | +} 150 | +],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) 151 | + CFLAGS="$ac_save_CFLAGS" 152 | + LIBS="$ac_save_LIBS" 153 | + fi 154 | + fi 155 | + if test "x$no_gtk" = x ; then 156 | + AC_MSG_RESULT(yes) 157 | + ifelse([$2], , :, [$2]) 158 | + else 159 | + AC_MSG_RESULT(no) 160 | + if test "$GTK_CONFIG" = "no" ; then 161 | + echo "*** The gtk-config script installed by GTK could not be found" 162 | + echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in" 163 | + echo "*** your path, or set the GTK_CONFIG environment variable to the" 164 | + echo "*** full path to gtk-config." 165 | + else 166 | + if test -f conf.gtktest ; then 167 | + : 168 | + else 169 | + echo "*** Could not run GTK test program, checking why..." 170 | + CFLAGS="$CFLAGS $GTK_CFLAGS" 171 | + LIBS="$LIBS $GTK_LIBS" 172 | + AC_TRY_LINK([ 173 | +#include 174 | +#include 175 | +], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], 176 | + [ echo "*** The test program compiled, but did not run. This usually means" 177 | + echo "*** that the run-time linker is not finding GTK or finding the wrong" 178 | + echo "*** version of GTK. If it is not finding GTK, you'll need to set your" 179 | + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" 180 | + echo "*** to the installed location Also, make sure you have run ldconfig if that" 181 | + echo "*** is required on your system" 182 | + echo "***" 183 | + echo "*** If you have an old version installed, it is best to remove it, although" 184 | + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" 185 | + echo "***" 186 | + echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that" 187 | + echo "*** came with the system with the command" 188 | + echo "***" 189 | + echo "*** rpm --erase --nodeps gtk gtk-devel" ], 190 | + [ echo "*** The test program failed to compile or link. See the file config.log for the" 191 | + echo "*** exact error that occured. This usually means GTK was incorrectly installed" 192 | + echo "*** or that you have moved GTK since it was installed. In the latter case, you" 193 | + echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ]) 194 | + CFLAGS="$ac_save_CFLAGS" 195 | + LIBS="$ac_save_LIBS" 196 | + fi 197 | + fi 198 | + GTK_CFLAGS="" 199 | + GTK_LIBS="" 200 | + ifelse([$3], , :, [$3]) 201 | + fi 202 | + AC_SUBST(GTK_CFLAGS) 203 | + AC_SUBST(GTK_LIBS) 204 | + rm -f conf.gtktest 205 | +]) 206 | -------------------------------------------------------------------------------- /lame/lame-msse.patch: -------------------------------------------------------------------------------- 1 | Description: Build xmm_quantize_sub.c with -msse 2 | Author: Sebastian Ramacher 3 | Bug: http://sourceforge.net/p/lame/bugs/443/ 4 | Bug-Debian: https://bugs.debian.org/760047 5 | Forwarded: http://sourceforge.net/p/lame/bugs/443/ 6 | Last-Update: 2014-08-31 7 | 8 | --- lame-3.99.5+repack1.orig/libmp3lame/vector/Makefile.am 9 | +++ lame-3.99.5+repack1/libmp3lame/vector/Makefile.am 10 | @@ -20,6 +20,7 @@ xmm_sources = xmm_quantize_sub.c 11 | 12 | if WITH_XMM 13 | liblamevectorroutines_la_SOURCES = $(xmm_sources) 14 | +liblamevectorroutines_la_CFLAGS = -msse 15 | endif 16 | 17 | noinst_HEADERS = lame_intrin.h 18 | -------------------------------------------------------------------------------- /lame/lame-tinfo.patch: -------------------------------------------------------------------------------- 1 | initscr is not used anywhere in lame sourcetree, check for used tgetent instead 2 | check for separate tinfo library optionally built out from libncurses source tree, 3 | like used in debian and gentoo 4 | - ssuominen@g.o 5 | 6 | http://bugs.gentoo.org/454322 7 | 8 | --- configure.in 9 | +++ configure.in 10 | @@ -372,9 +372,10 @@ 11 | 12 | AC_CHECK_HEADERS(termcap.h) 13 | AC_CHECK_HEADERS(ncurses/termcap.h) 14 | -AC_CHECK_LIB(termcap, initscr, HAVE_TERMCAP="termcap") 15 | -AC_CHECK_LIB(curses, initscr, HAVE_TERMCAP="curses") 16 | -AC_CHECK_LIB(ncurses, initscr, HAVE_TERMCAP="ncurses") 17 | +AC_CHECK_LIB(termcap, tgetent, HAVE_TERMCAP="termcap") 18 | +AC_CHECK_LIB(curses, tgetent, HAVE_TERMCAP="curses") 19 | +AC_CHECK_LIB(ncurses, tgetent, HAVE_TERMCAP="ncurses") 20 | +AC_CHECK_LIB(tinfo, tgetent, HAVE_TERMCAP="tinfo") 21 | 22 | AM_ICONV 23 | 24 | -------------------------------------------------------------------------------- /libappindicator/Makefile: -------------------------------------------------------------------------------- 1 | all: libappindicator-gtk3-introspection-12.10.json libappindicator-gtk3-12.10.json libappindicator-gtk2-12.10.json 2 | 3 | libappindicator-gtk3-introspection-12.10.json: libappindicator.json.in 4 | sed -e 's/@GTK_VER@/3/g' -e 's/@INTROSPECTION@/yes/g' $< > $@ 5 | 6 | libappindicator-gtk3-12.10.json: libappindicator.json.in 7 | sed -e 's/@GTK_VER@/3/g' -e 's/@INTROSPECTION@/no/g' $< > $@ 8 | 9 | libappindicator-gtk2-12.10.json: libappindicator.json.in 10 | sed -e 's/@GTK_VER@/2/g' -e 's/@INTROSPECTION@/no/g' $< > $@ -------------------------------------------------------------------------------- /libappindicator/libappindicator-fix-crash-from-incorrect-signal-emission.patch: -------------------------------------------------------------------------------- 1 | --- libappindicator-12.10.0/src/app-indicator.c 2012-07-11 13:28:34.415113869 -0400 2 | +++ wrk/src/app-indicator.c 2020-03-19 12:14:47.813191652 -0400 3 | @@ -443,7 +443,7 @@ 4 | G_STRUCT_OFFSET (AppIndicatorClass, new_icon), 5 | NULL, NULL, 6 | g_cclosure_marshal_VOID__VOID, 7 | - G_TYPE_NONE, 0, G_TYPE_NONE); 8 | + G_TYPE_NONE, 0); 9 | 10 | /** 11 | * AppIndicator::new-attention-icon: 12 | @@ -457,7 +457,7 @@ 13 | G_STRUCT_OFFSET (AppIndicatorClass, new_attention_icon), 14 | NULL, NULL, 15 | g_cclosure_marshal_VOID__VOID, 16 | - G_TYPE_NONE, 0, G_TYPE_NONE); 17 | + G_TYPE_NONE, 0); 18 | 19 | /** 20 | * AppIndicator::new-status: 21 | @@ -505,7 +505,7 @@ 22 | G_STRUCT_OFFSET (AppIndicatorClass, connection_changed), 23 | NULL, NULL, 24 | g_cclosure_marshal_VOID__BOOLEAN, 25 | - G_TYPE_NONE, 1, G_TYPE_BOOLEAN, G_TYPE_NONE); 26 | + G_TYPE_NONE, 1, G_TYPE_BOOLEAN); 27 | 28 | /** 29 | * AppIndicator::new-icon-theme-path: 30 | @@ -1175,7 +1175,7 @@ 31 | gchar * guide = priv->label_guide != NULL ? priv->label_guide : ""; 32 | 33 | g_signal_emit(G_OBJECT(self), signals[NEW_LABEL], 0, 34 | - label, guide, TRUE); 35 | + label, guide); 36 | if (priv->dbus_registration != 0 && priv->connection != NULL) { 37 | GError * error = NULL; 38 | 39 | @@ -1490,7 +1490,7 @@ 40 | static void 41 | theme_changed_cb (GtkIconTheme * theme, gpointer user_data) 42 | { 43 | - g_signal_emit (user_data, signals[NEW_ICON], 0, TRUE); 44 | + g_signal_emit (user_data, signals[NEW_ICON], 0); 45 | 46 | AppIndicator * self = (AppIndicator *)user_data; 47 | AppIndicatorPrivate *priv = self->priv; 48 | @@ -1904,7 +1904,7 @@ 49 | } 50 | 51 | if (changed) { 52 | - g_signal_emit (self, signals[NEW_ATTENTION_ICON], 0, TRUE); 53 | + g_signal_emit (self, signals[NEW_ATTENTION_ICON], 0); 54 | 55 | if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { 56 | GError * error = NULL; 57 | @@ -1982,7 +1982,7 @@ 58 | } 59 | 60 | if (changed) { 61 | - g_signal_emit (self, signals[NEW_ICON], 0, TRUE); 62 | + g_signal_emit (self, signals[NEW_ICON], 0); 63 | 64 | if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { 65 | GError * error = NULL; 66 | @@ -2048,7 +2048,7 @@ 67 | 68 | self->priv->icon_theme_path = g_strdup(icon_theme_path); 69 | 70 | - g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, self->priv->icon_theme_path, TRUE); 71 | + g_signal_emit (self, signals[NEW_ICON_THEME_PATH], 0, self->priv->icon_theme_path); 72 | 73 | if (self->priv->dbus_registration != 0 && self->priv->connection != NULL) { 74 | GError * error = NULL; 75 | -------------------------------------------------------------------------------- /libappindicator/libappindicator-fix-crash-iterating-icon-themes.patch: -------------------------------------------------------------------------------- 1 | --- libappindicator-12.10.0/src/app-indicator.c 2 | +++ libappindicator-12.10.0/src/app-indicator.c 3 | @@ -1606,7 +1606,7 @@ status_icon_changes (AppIndicator * self, gpointer data) 4 | gint n_elements, i; 5 | gboolean found=FALSE; 6 | gtk_icon_theme_get_search_path(icon_theme, &path, &n_elements); 7 | - for (i=0; i< n_elements || path[i] == NULL; i++) { 8 | + for (i=0; i< n_elements; i++) { 9 | if(g_strcmp0(path[i], self->priv->icon_theme_path) == 0) { 10 | found=TRUE; 11 | break; 12 | -------------------------------------------------------------------------------- /libappindicator/libappindicator-ftbfs.patch: -------------------------------------------------------------------------------- 1 | From: Olivier Tilloy 2 | Date: Tue 2018-03-20 12:47:56 +0000 3 | Subject: [PATCH] libappindicator FTBFS on bionic 4 | 5 | Fix build failures on bionic, 6 | and update Vcs-* fields in debian/control. (LP: #1757121) 7 | 8 | Approved by: Marco Trevisan (Treviño) 9 | --- 10 | --- libappindicator-12.10.0/src/app-indicator.c 2017-02-15 14:10:41 +0000 11 | +++ libappindicator-12.10.0/src/app-indicator.c 2018-03-20 12:38:59 +0000 12 | @@ -2196,7 +2196,7 @@ app_indicator_set_secondary_activate_tar 13 | 14 | g_return_if_fail (GTK_IS_WIDGET (menuitem)); 15 | 16 | - priv->sec_activate_target = g_object_ref(G_OBJECT(menuitem)); 17 | + priv->sec_activate_target = g_object_ref(menuitem); 18 | priv->sec_activate_enabled = widget_is_menu_child(self, menuitem); 19 | g_signal_connect(menuitem, "parent-set", G_CALLBACK(sec_activate_target_parent_changed), self); 20 | } 21 | -------------------------------------------------------------------------------- /libappindicator/libappindicator-gtk2-12.10.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libappindicator", 3 | "build-options": { 4 | "cflags": "-Wno-error", 5 | "make-args": [ "-j1" ] 6 | }, 7 | "rm-configure": true, 8 | "config-opts": [ 9 | "--disable-static", 10 | "--disable-gtk-doc", 11 | "--disable-tests", 12 | "--disable-mono-tests", 13 | "--enable-introspection=no", 14 | "--with-gtk=2" 15 | ], 16 | "cleanup": [ 17 | "/include", 18 | "/lib/pkgconfig", 19 | "/lib/*.la", 20 | "/share/gtk-doc", 21 | "/share/gir-1.0" 22 | ], 23 | "sources": [ 24 | { 25 | "type": "archive", 26 | "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz", 27 | "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f" 28 | }, 29 | { 30 | "type": "patch", 31 | "path": "libappindicator-ftbfs.patch" 32 | }, 33 | { 34 | "type": "patch", 35 | "path": "libappindicator-no-python.patch" 36 | }, 37 | { 38 | "type": "patch", 39 | "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" 40 | }, 41 | { 42 | "type": "patch", 43 | "path": "libappindicator-fix-crash-iterating-icon-themes.patch" 44 | }, 45 | { 46 | "type": "script", 47 | "commands": ["autoreconf -sfi"], 48 | "dest-filename": "autogen.sh" 49 | } 50 | ], 51 | "modules": [ 52 | "../intltool/intltool-0.51.json", 53 | "../dbus-glib/dbus-glib.json", 54 | { 55 | "name": "libdbusmenu", 56 | "build-options": { 57 | "cflags": "-Wno-error", 58 | "env": { 59 | "HAVE_VALGRIND_FALSE": "#", 60 | "HAVE_VALGRIND_TRUE": "" 61 | } 62 | }, 63 | "cleanup": [ 64 | "/include", 65 | "/libexec", 66 | "/lib/pkgconfig", 67 | "/lib/*.la", 68 | "/share/doc", 69 | "/share/libdbusmenu", 70 | "/share/gtk-doc", 71 | "/share/gir-1.0" 72 | ], 73 | "config-opts": [ 74 | "--disable-static", 75 | "--disable-gtk-doc", 76 | "--enable-introspection=no", 77 | "--disable-vala", 78 | "--disable-dumper", 79 | "--disable-tests", 80 | "--with-gtk=2" 81 | ], 82 | "sources": [ 83 | { 84 | "type": "archive", 85 | "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", 86 | "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" 87 | } 88 | ] 89 | }, 90 | { 91 | "name": "libindicator", 92 | "build-options": { 93 | "cflags": "-Wno-error" 94 | }, 95 | "cleanup": [ 96 | "/include", 97 | "/libexec", 98 | "/lib/pkgconfig", 99 | "/lib/*.la", 100 | "/share/libindicator", 101 | "/share/gtk-doc", 102 | "/share/gir-1.0" 103 | ], 104 | "config-opts": [ 105 | "--disable-static", 106 | "--disable-tests", 107 | "--with-gtk=2" 108 | ], 109 | "sources": [ 110 | { 111 | "type": "archive", 112 | "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz", 113 | "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f" 114 | }, 115 | { 116 | "type": "shell", 117 | "commands": [ 118 | "# FTBFS fix", 119 | "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac" 120 | ] 121 | }, 122 | { 123 | "type": "script", 124 | "commands": ["autoreconf -sfi"], 125 | "dest-filename": "autogen.sh" 126 | } 127 | ] 128 | } 129 | ] 130 | } 131 | -------------------------------------------------------------------------------- /libappindicator/libappindicator-gtk3-12.10.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libappindicator", 3 | "build-options": { 4 | "cflags": "-Wno-error", 5 | "make-args": [ "-j1" ] 6 | }, 7 | "rm-configure": true, 8 | "config-opts": [ 9 | "--disable-static", 10 | "--disable-gtk-doc", 11 | "--disable-tests", 12 | "--disable-mono-tests", 13 | "--enable-introspection=no", 14 | "--with-gtk=3" 15 | ], 16 | "cleanup": [ 17 | "/include", 18 | "/lib/pkgconfig", 19 | "/lib/*.la", 20 | "/share/gtk-doc", 21 | "/share/gir-1.0" 22 | ], 23 | "sources": [ 24 | { 25 | "type": "archive", 26 | "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz", 27 | "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f" 28 | }, 29 | { 30 | "type": "patch", 31 | "path": "libappindicator-ftbfs.patch" 32 | }, 33 | { 34 | "type": "patch", 35 | "path": "libappindicator-no-python.patch" 36 | }, 37 | { 38 | "type": "patch", 39 | "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" 40 | }, 41 | { 42 | "type": "patch", 43 | "path": "libappindicator-fix-crash-iterating-icon-themes.patch" 44 | }, 45 | { 46 | "type": "script", 47 | "commands": ["autoreconf -sfi"], 48 | "dest-filename": "autogen.sh" 49 | } 50 | ], 51 | "modules": [ 52 | "../intltool/intltool-0.51.json", 53 | "../dbus-glib/dbus-glib.json", 54 | { 55 | "name": "libdbusmenu", 56 | "build-options": { 57 | "cflags": "-Wno-error", 58 | "env": { 59 | "HAVE_VALGRIND_FALSE": "#", 60 | "HAVE_VALGRIND_TRUE": "" 61 | } 62 | }, 63 | "cleanup": [ 64 | "/include", 65 | "/libexec", 66 | "/lib/pkgconfig", 67 | "/lib/*.la", 68 | "/share/doc", 69 | "/share/libdbusmenu", 70 | "/share/gtk-doc", 71 | "/share/gir-1.0" 72 | ], 73 | "config-opts": [ 74 | "--disable-static", 75 | "--disable-gtk-doc", 76 | "--enable-introspection=no", 77 | "--disable-vala", 78 | "--disable-dumper", 79 | "--disable-tests", 80 | "--with-gtk=3" 81 | ], 82 | "sources": [ 83 | { 84 | "type": "archive", 85 | "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", 86 | "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" 87 | } 88 | ] 89 | }, 90 | { 91 | "name": "libindicator", 92 | "build-options": { 93 | "cflags": "-Wno-error" 94 | }, 95 | "cleanup": [ 96 | "/include", 97 | "/libexec", 98 | "/lib/pkgconfig", 99 | "/lib/*.la", 100 | "/share/libindicator", 101 | "/share/gtk-doc", 102 | "/share/gir-1.0" 103 | ], 104 | "config-opts": [ 105 | "--disable-static", 106 | "--disable-tests", 107 | "--with-gtk=3" 108 | ], 109 | "sources": [ 110 | { 111 | "type": "archive", 112 | "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz", 113 | "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f" 114 | }, 115 | { 116 | "type": "shell", 117 | "commands": [ 118 | "# FTBFS fix", 119 | "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac" 120 | ] 121 | }, 122 | { 123 | "type": "script", 124 | "commands": ["autoreconf -sfi"], 125 | "dest-filename": "autogen.sh" 126 | } 127 | ] 128 | } 129 | ] 130 | } 131 | -------------------------------------------------------------------------------- /libappindicator/libappindicator-gtk3-introspection-12.10.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libappindicator", 3 | "build-options": { 4 | "cflags": "-Wno-error", 5 | "make-args": [ "-j1" ] 6 | }, 7 | "rm-configure": true, 8 | "config-opts": [ 9 | "--disable-static", 10 | "--disable-gtk-doc", 11 | "--disable-tests", 12 | "--disable-mono-tests", 13 | "--enable-introspection=yes", 14 | "--with-gtk=3" 15 | ], 16 | "cleanup": [ 17 | "/include", 18 | "/lib/pkgconfig", 19 | "/lib/*.la", 20 | "/share/gtk-doc", 21 | "/share/gir-1.0" 22 | ], 23 | "sources": [ 24 | { 25 | "type": "archive", 26 | "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz", 27 | "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f" 28 | }, 29 | { 30 | "type": "patch", 31 | "path": "libappindicator-ftbfs.patch" 32 | }, 33 | { 34 | "type": "patch", 35 | "path": "libappindicator-no-python.patch" 36 | }, 37 | { 38 | "type": "patch", 39 | "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" 40 | }, 41 | { 42 | "type": "patch", 43 | "path": "libappindicator-fix-crash-iterating-icon-themes.patch" 44 | }, 45 | { 46 | "type": "script", 47 | "commands": ["autoreconf -sfi"], 48 | "dest-filename": "autogen.sh" 49 | } 50 | ], 51 | "modules": [ 52 | "../intltool/intltool-0.51.json", 53 | "../dbus-glib/dbus-glib.json", 54 | { 55 | "name": "libdbusmenu", 56 | "build-options": { 57 | "cflags": "-Wno-error", 58 | "env": { 59 | "HAVE_VALGRIND_FALSE": "#", 60 | "HAVE_VALGRIND_TRUE": "" 61 | } 62 | }, 63 | "cleanup": [ 64 | "/include", 65 | "/libexec", 66 | "/lib/pkgconfig", 67 | "/lib/*.la", 68 | "/share/doc", 69 | "/share/libdbusmenu", 70 | "/share/gtk-doc", 71 | "/share/gir-1.0" 72 | ], 73 | "config-opts": [ 74 | "--disable-static", 75 | "--disable-gtk-doc", 76 | "--enable-introspection=yes", 77 | "--disable-vala", 78 | "--disable-dumper", 79 | "--disable-tests", 80 | "--with-gtk=3" 81 | ], 82 | "sources": [ 83 | { 84 | "type": "archive", 85 | "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", 86 | "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" 87 | } 88 | ] 89 | }, 90 | { 91 | "name": "libindicator", 92 | "build-options": { 93 | "cflags": "-Wno-error" 94 | }, 95 | "cleanup": [ 96 | "/include", 97 | "/libexec", 98 | "/lib/pkgconfig", 99 | "/lib/*.la", 100 | "/share/libindicator", 101 | "/share/gtk-doc", 102 | "/share/gir-1.0" 103 | ], 104 | "config-opts": [ 105 | "--disable-static", 106 | "--disable-tests", 107 | "--with-gtk=3" 108 | ], 109 | "sources": [ 110 | { 111 | "type": "archive", 112 | "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz", 113 | "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f" 114 | }, 115 | { 116 | "type": "shell", 117 | "commands": [ 118 | "# FTBFS fix", 119 | "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac" 120 | ] 121 | }, 122 | { 123 | "type": "script", 124 | "commands": ["autoreconf -sfi"], 125 | "dest-filename": "autogen.sh" 126 | } 127 | ] 128 | } 129 | ] 130 | } 131 | -------------------------------------------------------------------------------- /libappindicator/libappindicator.json.in: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libappindicator", 3 | "build-options": { 4 | "cflags": "-Wno-error", 5 | "make-args": [ "-j1" ] 6 | }, 7 | "rm-configure": true, 8 | "config-opts": [ 9 | "--disable-static", 10 | "--disable-gtk-doc", 11 | "--disable-tests", 12 | "--disable-mono-tests", 13 | "--enable-introspection=@INTROSPECTION@", 14 | "--with-gtk=@GTK_VER@" 15 | ], 16 | "cleanup": [ 17 | "/include", 18 | "/lib/pkgconfig", 19 | "/lib/*.la", 20 | "/share/gtk-doc", 21 | "/share/gir-1.0" 22 | ], 23 | "sources": [ 24 | { 25 | "type": "archive", 26 | "url": "https://launchpad.net/libappindicator/12.10/12.10.0/+download/libappindicator-12.10.0.tar.gz", 27 | "sha256": "d5907c1f98084acf28fd19593cb70672caa0ca1cf82d747ba6f4830d4cc3b49f" 28 | }, 29 | { 30 | "type": "patch", 31 | "path": "libappindicator-ftbfs.patch" 32 | }, 33 | { 34 | "type": "patch", 35 | "path": "libappindicator-no-python.patch" 36 | }, 37 | { 38 | "type": "patch", 39 | "path": "libappindicator-fix-crash-from-incorrect-signal-emission.patch" 40 | }, 41 | { 42 | "type": "patch", 43 | "path": "libappindicator-fix-crash-iterating-icon-themes.patch" 44 | }, 45 | { 46 | "type": "script", 47 | "commands": ["autoreconf -sfi"], 48 | "dest-filename": "autogen.sh" 49 | } 50 | ], 51 | "modules": [ 52 | "../intltool/intltool-0.51.json", 53 | "../dbus-glib/dbus-glib.json", 54 | { 55 | "name": "libdbusmenu", 56 | "build-options": { 57 | "cflags": "-Wno-error", 58 | "env": { 59 | "HAVE_VALGRIND_FALSE": "#", 60 | "HAVE_VALGRIND_TRUE": "" 61 | } 62 | }, 63 | "cleanup": [ 64 | "/include", 65 | "/libexec", 66 | "/lib/pkgconfig", 67 | "/lib/*.la", 68 | "/share/doc", 69 | "/share/libdbusmenu", 70 | "/share/gtk-doc", 71 | "/share/gir-1.0" 72 | ], 73 | "config-opts": [ 74 | "--disable-static", 75 | "--disable-gtk-doc", 76 | "--enable-introspection=@INTROSPECTION@", 77 | "--disable-vala", 78 | "--disable-dumper", 79 | "--disable-tests", 80 | "--with-gtk=@GTK_VER@" 81 | ], 82 | "sources": [ 83 | { 84 | "type": "archive", 85 | "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", 86 | "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" 87 | } 88 | ] 89 | }, 90 | { 91 | "name": "libindicator", 92 | "build-options": { 93 | "cflags": "-Wno-error" 94 | }, 95 | "cleanup": [ 96 | "/include", 97 | "/libexec", 98 | "/lib/pkgconfig", 99 | "/lib/*.la", 100 | "/share/libindicator", 101 | "/share/gtk-doc", 102 | "/share/gir-1.0" 103 | ], 104 | "config-opts": [ 105 | "--disable-static", 106 | "--disable-tests", 107 | "--with-gtk=@GTK_VER@" 108 | ], 109 | "sources": [ 110 | { 111 | "type": "archive", 112 | "url": "https://launchpad.net/libindicator/12.10/12.10.1/+download/libindicator-12.10.1.tar.gz", 113 | "sha256": "b2d2e44c10313d5c9cd60db455d520f80b36dc39562df079a3f29495e8f9447f" 114 | }, 115 | { 116 | "type": "shell", 117 | "commands": [ 118 | "# FTBFS fix", 119 | "sed -e '/LIBINDICATOR_LIBS/ s/\\$LIBM/ $LIBM/' -i configure.ac" 120 | ] 121 | }, 122 | { 123 | "type": "script", 124 | "commands": ["autoreconf -sfi"], 125 | "dest-filename": "autogen.sh" 126 | } 127 | ] 128 | } 129 | ] 130 | } 131 | -------------------------------------------------------------------------------- /libayatana-appindicator/0001-Fix-HAVE_VALGRIND-AM_CONDITIONAL.patch: -------------------------------------------------------------------------------- 1 | From 729546c51806a1b3ea6cb6efb7a115b1baa811f1 Mon Sep 17 00:00:00 2001 2 | From: =?UTF-8?q?Stefan=20Br=C3=BCns?= 3 | Date: Mon, 18 Nov 2019 19:58:53 +0100 4 | Subject: [PATCH 1/1] Fix HAVE_VALGRIND AM_CONDITIONAL 5 | 6 | The AM_CONDITIONAL should also be run with --disable-tests, otherwise 7 | HAVE_VALGRIND is undefined. 8 | --- 9 | configure | 4 ++-- 10 | configure.ac | 2 +- 11 | 2 files changed, 3 insertions(+), 3 deletions(-) 12 | 13 | diff --git a/configure b/configure 14 | index 831a3bb..8913b9b 100644 15 | --- a/configure 16 | +++ b/configure 17 | @@ -14801,6 +14801,8 @@ else 18 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 19 | $as_echo "yes" >&6; } 20 | have_valgrind=yes 21 | +fi 22 | + 23 | fi 24 | if test "x$have_valgrind" = "xyes"; then 25 | HAVE_VALGRIND_TRUE= 26 | @@ -14811,8 +14813,6 @@ else 27 | fi 28 | 29 | 30 | -fi 31 | - 32 | 33 | 34 | 35 | diff --git a/configure.ac b/configure.ac 36 | index ace54d1..cbd38a6 100644 37 | --- a/configure.ac 38 | +++ b/configure.ac 39 | @@ -120,8 +120,8 @@ PKG_CHECK_MODULES(DBUSMENUTESTS, json-glib-1.0 >= $JSON_GLIB_REQUIRED_VERSION 40 | [have_tests=yes] 41 | ) 42 | PKG_CHECK_MODULES(DBUSMENUTESTSVALGRIND, valgrind, have_valgrind=yes, have_valgrind=no) 43 | -AM_CONDITIONAL([HAVE_VALGRIND], [test "x$have_valgrind" = "xyes"]) 44 | ]) 45 | +AM_CONDITIONAL([HAVE_VALGRIND], [test "x$have_valgrind" = "xyes"]) 46 | 47 | AC_SUBST(DBUSMENUTESTS_CFLAGS) 48 | AC_SUBST(DBUSMENUTESTS_LIBS) 49 | -- 50 | 2.46.2 51 | 52 | -------------------------------------------------------------------------------- /libayatana-appindicator/0001-Make-introspection-configurable.patch: -------------------------------------------------------------------------------- 1 | From 8a09e6ad33c58c017c0c8fd756da036fc39428ea Mon Sep 17 00:00:00 2001 2 | From: Alexander Koskovich 3 | Date: Sun, 29 Sep 2024 13:47:54 -0400 4 | Subject: [PATCH 1/1] Make introspection configurable 5 | 6 | --- 7 | CMakeLists.txt | 1 + 8 | src/CMakeLists.txt | 4 ++++ 9 | 2 files changed, 5 insertions(+) 10 | 11 | diff --git a/CMakeLists.txt b/CMakeLists.txt 12 | index 0e13fcd..f3e9ec0 100644 13 | --- a/CMakeLists.txt 14 | +++ b/CMakeLists.txt 15 | @@ -12,6 +12,7 @@ endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) 16 | option(ENABLE_TESTS "Enable all tests and checks" OFF) 17 | option(ENABLE_COVERAGE "Enable coverage reports (includes enabling all tests and checks)" OFF) 18 | option(ENABLE_WERROR "Treat all build warnings as errors" OFF) 19 | +option(ENABLE_INTROSPECTION "Enable introspection" ON) 20 | 21 | if(ENABLE_COVERAGE) 22 | set(ENABLE_TESTS ON) 23 | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt 24 | index 5b3638d..aca9481 100644 25 | --- a/src/CMakeLists.txt 26 | +++ b/src/CMakeLists.txt 27 | @@ -108,6 +108,8 @@ install(TARGETS "ayatana-ido3-0.4" LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIB 28 | 29 | # AyatanaIdo3-0.4.gir 30 | 31 | +if (ENABLE_INTROSPECTION) 32 | + 33 | find_package(GObjectIntrospection REQUIRED QUIET) 34 | 35 | if (INTROSPECTION_FOUND) 36 | @@ -183,3 +185,5 @@ if (INTROSPECTION_FOUND) 37 | endif () 38 | 39 | endif () 40 | + 41 | +endif () 42 | -- 43 | 2.46.2 44 | 45 | -------------------------------------------------------------------------------- /libayatana-appindicator/libayatana-appindicator-gtk3.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libayatana-appindicator", 3 | "buildsystem": "cmake-ninja", 4 | "cleanup": [ 5 | "/include", 6 | "/lib/pkgconfig" 7 | ], 8 | "config-opts": [ 9 | "-DENABLE_BINDINGS_MONO=NO", 10 | "-DENABLE_BINDINGS_VALA=NO", 11 | "-DENABLE_GTKDOC=NO" 12 | ], 13 | "modules": [ 14 | "../intltool/intltool-0.51.json", 15 | { 16 | "name": "libdbusmenu", 17 | "buildsystem": "autotools", 18 | "build-options": { 19 | "cflags": "-Wno-error" 20 | }, 21 | "cleanup": [ 22 | "*.la", 23 | "/include", 24 | "/lib/pkgconfig", 25 | "/libexec", 26 | "/share/doc", 27 | "/share/gtk-doc" 28 | ], 29 | "config-opts": [ 30 | "--with-gtk=3", 31 | "--disable-dumper", 32 | "--disable-static", 33 | "--disable-tests", 34 | "--disable-gtk-doc", 35 | "--enable-introspection=no", 36 | "--disable-vala" 37 | ], 38 | "sources": [ 39 | { 40 | "type": "archive", 41 | "url": "https://launchpad.net/libdbusmenu/16.04/16.04.0/+download/libdbusmenu-16.04.0.tar.gz", 42 | "sha256": "b9cc4a2acd74509435892823607d966d424bd9ad5d0b00938f27240a1bfa878a" 43 | }, 44 | { 45 | "type": "patch", 46 | "paths": [ 47 | "0001-Fix-HAVE_VALGRIND-AM_CONDITIONAL.patch" 48 | ] 49 | } 50 | ] 51 | }, 52 | { 53 | "name": "ayatana-ido", 54 | "buildsystem": "cmake-ninja", 55 | "cleanup": [ 56 | "/include", 57 | "/lib/pkgconfig" 58 | ], 59 | "config-opts": [ 60 | "-DENABLE_INTROSPECTION=OFF" 61 | ], 62 | "sources": [ 63 | { 64 | "type": "git", 65 | "url": "https://github.com/AyatanaIndicators/ayatana-ido.git", 66 | "tag": "0.10.4", 67 | "commit": "f968079b09e2310fefc3fc307359025f1c74b3eb", 68 | "x-checker-data": { 69 | "type": "git", 70 | "tag-pattern": "^([\\d.]+)$" 71 | } 72 | }, 73 | { 74 | "type": "patch", 75 | "paths": [ 76 | "0001-Make-introspection-configurable.patch" 77 | ] 78 | } 79 | ] 80 | }, 81 | { 82 | "name": "libayatana-indicator", 83 | "buildsystem": "cmake-ninja", 84 | "cleanup": [ 85 | "/include", 86 | "/lib/pkgconfig", 87 | "/libexec", 88 | "/share" 89 | ], 90 | "sources": [ 91 | { 92 | "type": "git", 93 | "url": "https://github.com/AyatanaIndicators/libayatana-indicator.git", 94 | "tag": "0.9.4", 95 | "commit": "611bb384b73fa6311777ba4c41381a06f5b99dad", 96 | "x-checker-data": { 97 | "type": "git", 98 | "tag-pattern": "^([\\d.]+)$" 99 | } 100 | } 101 | ] 102 | } 103 | ], 104 | "sources": [ 105 | { 106 | "type": "git", 107 | "url": "https://github.com/AyatanaIndicators/libayatana-appindicator.git", 108 | "tag": "0.5.94", 109 | "commit": "31e8bb083b307e1cc96af4874a94707727bd1e79", 110 | "x-checker-data": { 111 | "type": "git", 112 | "tag-pattern": "^([\\d.]+)$" 113 | } 114 | } 115 | ] 116 | } 117 | -------------------------------------------------------------------------------- /libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch: -------------------------------------------------------------------------------- 1 | From d6dd5cdf45c1aac6c0519c8a4f5f89321770fb53 Mon Sep 17 00:00:00 2001 2 | From: Michael Meeks 3 | Date: Fri, 9 Nov 2012 16:16:40 +0000 4 | Subject: [PATCH] gtk: Don't assume all GdkDisplays are GdkX11Displays: 5 | broadway/wayland 6 | 7 | Co-Authored-By: Bastien Nocera 8 | --- 9 | src/canberra-gtk-module.c | 15 +++++++++++++++ 10 | src/canberra-gtk.c | 28 ++++++++++++++++++++++------ 11 | 2 files changed, 37 insertions(+), 6 deletions(-) 12 | 13 | diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c 14 | index 67791f0..c1532ab 100644 15 | --- a/src/canberra-gtk-module.c 16 | +++ b/src/canberra-gtk-module.c 17 | @@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) { 18 | guchar *data = NULL; 19 | gint ret = -1; 20 | 21 | +#ifdef GDK_IS_X11_DISPLAY 22 | + if (!GDK_IS_X11_DISPLAY(d)) 23 | + return 0; 24 | +#endif 25 | + 26 | if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), 27 | gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), 28 | 0, G_MAXLONG, False, XA_CARDINAL, &type_return, 29 | @@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) { 30 | guchar *data = NULL; 31 | gint ret = -1; 32 | 33 | +#ifdef GDK_IS_X11_DISPLAY 34 | + if (!GDK_IS_X11_DISPLAY(d)) 35 | + return 0; 36 | +#endif 37 | + 38 | if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)), 39 | gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"), 40 | 0, G_MAXLONG, False, XA_CARDINAL, &type_return, 41 | @@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) { 42 | gboolean ret = FALSE; 43 | Atom xembed; 44 | 45 | +#ifdef GDK_IS_X11_DISPLAY 46 | + if (!GDK_IS_X11_DISPLAY(d)) 47 | + return FALSE; 48 | +#endif 49 | + 50 | /* Gnome Panel applets are XEMBED windows. We need to make sure we 51 | * ignore them */ 52 | 53 | diff --git a/src/canberra-gtk.c b/src/canberra-gtk.c 54 | index 34446f5..47285f8 100644 55 | --- a/src/canberra-gtk.c 56 | +++ b/src/canberra-gtk.c 57 | @@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) { 58 | guchar *data = NULL; 59 | gint ret = -1; 60 | 61 | +#ifdef GDK_IS_X11_DISPLAY 62 | + if (!GDK_IS_X11_DISPLAY(d)) 63 | + return 0; 64 | +#endif 65 | + 66 | if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), 67 | gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), 68 | 0, G_MAXLONG, False, XA_CARDINAL, &type_return, 69 | @@ -254,18 +259,28 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { 70 | 71 | if (gtk_widget_get_realized(GTK_WIDGET(w))) { 72 | GdkWindow *dw = NULL; 73 | +#ifdef GDK_IS_X11_DISPLAY 74 | GdkScreen *screen = NULL; 75 | +#endif 76 | GdkDisplay *display = NULL; 77 | gint x = -1, y = -1, width = -1, height = -1, screen_width = -1, screen_height = -1; 78 | 79 | - if ((dw = gtk_widget_get_window(GTK_WIDGET(w)))) 80 | - if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_XID, "%lu", (unsigned long) GDK_WINDOW_XID(dw))) < 0) 81 | - return ret; 82 | + if ((dw = gtk_widget_get_window(GTK_WIDGET(w)))) { 83 | +#ifdef GDK_IS_X11_DISPLAY 84 | + if (GDK_IS_X11_DISPLAY(display)) { 85 | + if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_XID, "%lu", (unsigned long) GDK_WINDOW_XID(dw))) < 0) 86 | + return ret; 87 | + } 88 | +#endif 89 | + } 90 | 91 | if ((display = gtk_widget_get_display(GTK_WIDGET(w)))) { 92 | - if ((t = gdk_display_get_name(display))) 93 | +#ifdef GDK_IS_X11_DISPLAY 94 | + if (GDK_IS_X11_DISPLAY(display) && (t = gdk_display_get_name(display))) { 95 | if ((ret = ca_proplist_sets(p, CA_PROP_WINDOW_X11_DISPLAY, t)) < 0) 96 | return ret; 97 | + } 98 | +#endif 99 | 100 | if (dw) { 101 | gint desktop = window_get_desktop(display, dw); 102 | @@ -276,7 +291,8 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { 103 | } 104 | } 105 | 106 | - if ((screen = gtk_widget_get_screen(GTK_WIDGET(w)))) { 107 | +#ifdef GDK_IS_X11_DISPLAY 108 | + if (GDK_IS_X11_DISPLAY(display) && (screen = gtk_widget_get_screen(GTK_WIDGET(w)))) { 109 | 110 | if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_SCREEN, "%i", gdk_screen_get_number(screen))) < 0) 111 | return ret; 112 | @@ -285,7 +301,7 @@ int ca_gtk_proplist_set_for_widget(ca_proplist *p, GtkWidget *widget) { 113 | if ((ret = ca_proplist_setf(p, CA_PROP_WINDOW_X11_MONITOR, "%i", gdk_screen_get_monitor_at_window(screen, dw))) < 0) 114 | return ret; 115 | } 116 | - 117 | +#endif 118 | /* FIXME, this might cause a round trip */ 119 | 120 | if (dw) { 121 | -- 122 | 2.34.1 123 | 124 | -------------------------------------------------------------------------------- /libcanberra/libcanberra.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libcanberra", 3 | "cleanup": [ 4 | "*.la", 5 | "/bin", 6 | "/etc", 7 | "/include", 8 | "/lib/gnome-settings-daemon-3.0", 9 | "/lib/gtk-3.0", 10 | "/lib/pkgconfig", 11 | "/libexec", 12 | "/share/doc", 13 | "/share/gdm", 14 | "/share/gnome", 15 | "/share/gtk-doc", 16 | "/share/man", 17 | "/share/vala" 18 | ], 19 | "config-opts": [ 20 | "--disable-static", 21 | "--disable-gtk-doc", 22 | "--disable-oss", 23 | "--enable-pulse", 24 | "--disable-udev", 25 | "--disable-gtk", 26 | "--enable-gtk3", 27 | "--disable-lynx" 28 | ], 29 | "sources": [ 30 | { 31 | "type": "archive", 32 | "url": "http://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz", 33 | "sha256": "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72" 34 | }, 35 | { 36 | "type": "patch", 37 | "path": "0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch" 38 | } 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /libmad/libmad.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "libmad", 3 | "buildsystem": "cmake-ninja", 4 | "sources": [ 5 | { 6 | "type" : "archive", 7 | "url" : "https://codeberg.org/tenacityteam/libmad/releases/download/0.16.4/libmad-0.16.4.tar.gz", 8 | "sha256" : "0f6bfb36c554075494b5fc2c646d08de7364819540f23bab30ae73fa1b5cfe65" 9 | } 10 | ], 11 | "cleanup": [ 12 | "/include", 13 | "/lib/cmake", 14 | "/lib/pkgconfig" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /libsecret/libsecret.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libsecret", 3 | "buildsystem": "meson", 4 | "config-opts": [ 5 | "-Dmanpage=false", 6 | "-Dvapi=false", 7 | "-Dgtk_doc=false", 8 | "-Dintrospection=false" 9 | ], 10 | "cleanup": [ 11 | "/bin", 12 | "/include", 13 | "/lib/pkgconfig", 14 | "/share/man" 15 | ], 16 | "sources": [ 17 | { 18 | "type": "archive", 19 | "url": "https://download.gnome.org/sources/libsecret/0.21/libsecret-0.21.6.tar.xz", 20 | "sha256": "747b8c175be108c880d3adfb9c3537ea66e520e4ad2dccf5dce58003aeeca090" 21 | } 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /libsoup/libsoup-2.4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libsoup-2.4", 3 | "buildsystem": "meson", 4 | "config-opts": [ 5 | "-Dtests=false" 6 | ], 7 | "sources": [ 8 | { 9 | "type": "archive", 10 | "url": "https://download.gnome.org/sources/libsoup/2.74/libsoup-2.74.3.tar.xz", 11 | "sha256": "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13" 12 | } 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /libusb/libusb.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libusb", 3 | "config-opts": [ 4 | "--disable-static" 5 | ], 6 | "cleanup": [ 7 | "/lib/*.la", 8 | "/lib/pkgconfig", 9 | "/include" 10 | ], 11 | "sources": [ 12 | { 13 | "type": "archive", 14 | "url": "https://github.com/libusb/libusb/releases/download/v1.0.28/libusb-1.0.28.tar.bz2", 15 | "sha256": "966bb0d231f94a474eaae2e67da5ec844d3527a1f386456394ff432580634b29", 16 | "x-checker-data": { 17 | "type": "anitya", 18 | "project-id": 1749, 19 | "stable-only": true, 20 | "url-template": "https://github.com/libusb/libusb/releases/download/v$version/libusb-$version.tar.bz2" 21 | } 22 | } 23 | ], 24 | "post-install": [ 25 | "install -Dm644 COPYING ${FLATPAK_DEST}/share/licenses/libusb/COPYING" 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /linux-audio/dssi.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dssi", 3 | "rm-configure": true, 4 | "config-opts": [ 5 | "--disable-static" 6 | ], 7 | "cleanup": [ 8 | "/bin", 9 | "/include", 10 | "/lib/dssi", 11 | "/lib/pkgconfig", 12 | "/share/man", 13 | "*.la" 14 | ], 15 | "sources": [ 16 | { 17 | "type": "archive", 18 | "url": "http://download.sf.net/sourceforge/dssi/dssi-1.1.1.tar.gz", 19 | "sha256": "f2c82b073a947c8255284249097667f9b14e660bf86186f3fcd3b3b3e087814e" 20 | }, 21 | { 22 | "type": "script", 23 | "commands": [ 24 | "autoreconf -fiv" 25 | ], 26 | "dest-filename": "autogen.sh" 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /linux-audio/fftw3f-static.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fftw3f", 3 | "config-opts": [ 4 | "--enable-threads", 5 | "--enable-static", 6 | "--disable-shared", 7 | "--enable-float" 8 | ], 9 | "build-options": { 10 | "cflags": "-fPIC", 11 | "arch": { 12 | "x86_64": { 13 | "config-opts": [ 14 | "--enable-sse2", 15 | "--enable-avx", 16 | "--enable-avx-128-fma" 17 | ] 18 | }, 19 | "aarch64": { 20 | "config-opts": [ 21 | "--enable-neon" 22 | ] 23 | } 24 | } 25 | }, 26 | "sources": [ 27 | { 28 | "type": "archive", 29 | "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", 30 | "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" 31 | } 32 | ], 33 | "cleanup": [ 34 | "/bin", 35 | "/include", 36 | "/lib/cmake", 37 | "/lib/pkgconfig", 38 | "/share/info", 39 | "/share/man", 40 | "*.a", 41 | "*.la", 42 | "*.so" 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /linux-audio/fftw3f.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fftw3f", 3 | "config-opts": [ 4 | "--enable-threads", 5 | "--enable-shared", 6 | "--disable-static", 7 | "--enable-float" 8 | ], 9 | "build-options": { 10 | "arch": { 11 | "x86_64": { 12 | "config-opts": [ 13 | "--enable-sse2", 14 | "--enable-avx", 15 | "--enable-avx-128-fma" 16 | ] 17 | }, 18 | "aarch64": { 19 | "config-opts": [ 20 | "--enable-neon" 21 | ] 22 | } 23 | } 24 | }, 25 | "sources": [ 26 | { 27 | "type": "archive", 28 | "url": "https://www.fftw.org/fftw-3.3.10.tar.gz", 29 | "sha256": "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467" 30 | } 31 | ], 32 | "cleanup": [ 33 | "/bin", 34 | "/include", 35 | "/lib/cmake", 36 | "/lib/pkgconfig", 37 | "/share/man", 38 | "/share/info", 39 | "*.la", 40 | "*.so" 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /linux-audio/fluidsynth2-static.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fluidsynth", 3 | "buildsystem": "cmake-ninja", 4 | "build-options": { 5 | "cflags": "-fPIC", 6 | "cxxflags": "-fPIC" 7 | }, 8 | "config-opts": [ 9 | "-DBUILD_SHARED_LIBS=OFF", 10 | "-Denable-jack=OFF", 11 | "-Denable-pipewire=OFF" 12 | ], 13 | "cleanup": [ 14 | "/bin", 15 | "/include", 16 | "/lib/cmake", 17 | "/lib/pkgconfig", 18 | "/share/man", 19 | "*.so", 20 | "*.a" 21 | ], 22 | "sources": [ 23 | { 24 | "type": "archive", 25 | "url": "https://github.com/FluidSynth/fluidsynth/archive/v2.3.5.tar.gz", 26 | "sha256": "f89e8e983ecfb4a5b4f5d8c2b9157ed18d15ed2e36246fa782f18abaea550e0d" 27 | } 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /linux-audio/fluidsynth2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fluidsynth", 3 | "buildsystem": "cmake-ninja", 4 | "cleanup": [ 5 | "/bin", 6 | "/include", 7 | "/lib/cmake", 8 | "/lib/pkgconfig", 9 | "/share/man", 10 | "*.so" 11 | ], 12 | "sources": [ 13 | { 14 | "type": "archive", 15 | "url": "https://github.com/FluidSynth/fluidsynth/archive/v2.3.5.tar.gz", 16 | "sha256": "f89e8e983ecfb4a5b4f5d8c2b9157ed18d15ed2e36246fa782f18abaea550e0d" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /linux-audio/ladspa.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ladspa", 3 | "no-autogen": true, 4 | "subdir": "src", 5 | "make-install-args": [ 6 | "INSTALL_PLUGINS_DIR=/app/lib/ladspa", 7 | "INSTALL_INCLUDE_DIR=/app/include", 8 | "INSTALL_BINARY_DIR=/app/bin" 9 | ], 10 | "cleanup": [ 11 | "/include" 12 | ], 13 | "sources": [ 14 | { 15 | "type": "archive", 16 | "url": "http://www.ladspa.org/download/ladspa_sdk_1.17.tgz", 17 | "sha256": "27d24f279e4b81bd17ecbdcc38e4c42991bb388826c0b200067ce0eb59d3da5b" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /linux-audio/lash.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lash", 3 | "rm-configure": true, 4 | "config-opts": [ 5 | "--disable-static", 6 | "--disable-serv-inst", 7 | "CFLAGS=-D_GNU_SOURCE" 8 | ], 9 | "cleanup": [ 10 | "/include", 11 | "/lib/pkgconfig", 12 | "*.la" 13 | ], 14 | "sources": [ 15 | { 16 | "type": "archive", 17 | "url": "https://download.savannah.gnu.org/releases/lash/lash-0.5.4.tar.gz", 18 | "sha256": "105a7da84415c4725c6bcad28e70f23aeb4534f94fc80ca262b6a2cef2226c16" 19 | }, 20 | { 21 | "type": "patch", 22 | "strip-components": 0, 23 | "paths": [ 24 | "patches/lash-0.5.3-no-static-lib.patch", 25 | "patches/lash-configure.patch" 26 | ] 27 | }, 28 | { 29 | "type": "patch", 30 | "paths": [ 31 | "patches/lash-gcc47.patch", 32 | "patches/lash-linking.patch", 33 | "patches/lash-build.patch" 34 | ] 35 | }, 36 | { 37 | "type": "script", 38 | "commands": [ 39 | "autoreconf -fiv" 40 | ], 41 | "dest-filename": "autogen.sh" 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /linux-audio/libinstpatch.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libinstpatch", 3 | "buildsystem": "cmake-ninja", 4 | "config-opts": [ 5 | "-DLIB_SUFFIX=" 6 | ], 7 | "cleanup": [ 8 | "/include", 9 | "/lib/pkgconfig", 10 | "/share/doc" 11 | ], 12 | "sources": [ 13 | { 14 | "type": "archive", 15 | "url": "https://github.com/swami/libinstpatch/archive/v1.1.6.tar.gz", 16 | "sha256": "8e9861b04ede275d712242664dab6ffa9166c7940fea3b017638681d25e10299" 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /linux-audio/liblo-static.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "liblo", 3 | "cleanup": [ 4 | "/bin", 5 | "/include", 6 | "/lib/pkgconfig", 7 | "*.la", 8 | "*.a", 9 | "*.so" 10 | ], 11 | "build-options": { 12 | "cflags": "-fPIC -Wno-error=use-after-free" 13 | }, 14 | "config-opts": [ 15 | "--enable-static", 16 | "--disable-shared" 17 | ], 18 | "sources": [ 19 | { 20 | "type": "archive", 21 | "url": "http://download.sf.net/sourceforge/liblo/liblo-0.31.tar.gz", 22 | "sha256": "2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750" 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /linux-audio/liblo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "liblo", 3 | "build-options": { 4 | "cflags": "-Wno-error=use-after-free" 5 | }, 6 | "cleanup": [ 7 | "/bin", 8 | "/include", 9 | "/lib/pkgconfig", 10 | "*.la", 11 | "*.so" 12 | ], 13 | "sources": [ 14 | { 15 | "type": "archive", 16 | "url": "http://download.sf.net/sourceforge/liblo/liblo-0.31.tar.gz", 17 | "sha256": "2b4f446e1220dcd624ecd8405248b08b7601e9a0d87a0b94730c2907dbccc750" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /linux-audio/lilv-static.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lilv", 3 | "buildsystem": "meson", 4 | "config-opts": [ 5 | "--default-library=static" 6 | ], 7 | "modules": [ 8 | { 9 | "name": "serd", 10 | "buildsystem": "meson", 11 | "config-opts": [ 12 | "--default-library=static" 13 | ], 14 | "sources": [ 15 | { 16 | "type": "archive", 17 | "url": "https://download.drobilla.net/serd-0.30.16.tar.xz", 18 | "sha256": "f50f486da519cdd8d03b20c9e42414e459133f5a244411d8e63caef8d9ac9146" 19 | } 20 | ], 21 | "post-install": [ 22 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/serd ../COPYING" 23 | ], 24 | "cleanup": [ 25 | "/bin", 26 | "/include", 27 | "/lib/pkgconfig", 28 | "/share/man" 29 | ] 30 | }, 31 | { 32 | "name": "sord", 33 | "buildsystem": "meson", 34 | "config-opts": [ 35 | "--default-library=static" 36 | ], 37 | "sources": [ 38 | { 39 | "type": "archive", 40 | "url": "https://download.drobilla.net/sord-0.16.14.tar.xz", 41 | "sha256": "220fd97d5fcb216e7b85db66f685bfdaad7dc58a50d1f96dfb2558dbc6c4731b" 42 | } 43 | ], 44 | "post-install": [ 45 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/sord ../COPYING" 46 | ], 47 | "cleanup": [ 48 | "/bin", 49 | "/include", 50 | "/lib/pkgconfig", 51 | "/share/doc", 52 | "/share/man" 53 | ] 54 | }, 55 | { 56 | "name": "sratom", 57 | "buildsystem": "meson", 58 | "config-opts": [ 59 | "--default-library=static" 60 | ], 61 | "cleanup": [ 62 | "/include", 63 | "/lib/pkgconfig" 64 | ], 65 | "sources": [ 66 | { 67 | "type": "archive", 68 | "url": "https://download.drobilla.net/sratom-0.6.14.tar.xz", 69 | "sha256": "9982faf40db83aedd9b3850e499fecd6852b8b4ba6dede514013655cffaca1e6" 70 | } 71 | ], 72 | "post-install": [ 73 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/sratom ../COPYING" 74 | ] 75 | } 76 | ], 77 | "sources": [ 78 | { 79 | "type": "archive", 80 | "url": "https://download.drobilla.net/lilv-0.24.20.tar.xz", 81 | "sha256": "4fb082b9b8b286ea92bbb71bde6b75624cecab6df0cc639ee75a2a096212eebc" 82 | } 83 | ], 84 | "post-install": [ 85 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/lilv ../COPYING" 86 | ], 87 | "cleanup": [ 88 | "/bin", 89 | "/etc", 90 | "/include", 91 | "/lib/pkgconfig", 92 | "/share/man" 93 | ] 94 | } 95 | -------------------------------------------------------------------------------- /linux-audio/lilv.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lilv", 3 | "buildsystem": "meson", 4 | "modules": [ 5 | { 6 | "name": "serd", 7 | "buildsystem": "meson", 8 | "sources": [ 9 | { 10 | "type": "archive", 11 | "url": "https://download.drobilla.net/serd-0.30.16.tar.xz", 12 | "sha256": "f50f486da519cdd8d03b20c9e42414e459133f5a244411d8e63caef8d9ac9146" 13 | } 14 | ], 15 | "post-install": [ 16 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/serd ../COPYING" 17 | ], 18 | "cleanup": [ 19 | "/bin", 20 | "/include", 21 | "/lib/pkgconfig", 22 | "/share/man" 23 | ] 24 | }, 25 | { 26 | "name": "sord", 27 | "buildsystem": "meson", 28 | "sources": [ 29 | { 30 | "type": "archive", 31 | "url": "https://download.drobilla.net/sord-0.16.14.tar.xz", 32 | "sha256": "220fd97d5fcb216e7b85db66f685bfdaad7dc58a50d1f96dfb2558dbc6c4731b" 33 | } 34 | ], 35 | "post-install": [ 36 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/sord ../COPYING" 37 | ], 38 | "cleanup": [ 39 | "/bin", 40 | "/include", 41 | "/lib/pkgconfig", 42 | "/share/doc", 43 | "/share/man" 44 | ] 45 | }, 46 | { 47 | "name": "sratom", 48 | "buildsystem": "meson", 49 | "cleanup": [ 50 | "/include", 51 | "/lib/pkgconfig" 52 | ], 53 | "sources": [ 54 | { 55 | "type": "archive", 56 | "url": "https://download.drobilla.net/sratom-0.6.14.tar.xz", 57 | "sha256": "9982faf40db83aedd9b3850e499fecd6852b8b4ba6dede514013655cffaca1e6" 58 | } 59 | ], 60 | "post-install": [ 61 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/sratom ../COPYING" 62 | ] 63 | } 64 | ], 65 | "sources": [ 66 | { 67 | "type": "archive", 68 | "url": "https://download.drobilla.net/lilv-0.24.20.tar.xz", 69 | "sha256": "4fb082b9b8b286ea92bbb71bde6b75624cecab6df0cc639ee75a2a096212eebc" 70 | } 71 | ], 72 | "post-install": [ 73 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/lilv ../COPYING" 74 | ], 75 | "cleanup": [ 76 | "/bin", 77 | "/etc", 78 | "/include", 79 | "/lib/pkgconfig", 80 | "/share/man" 81 | ] 82 | } 83 | -------------------------------------------------------------------------------- /linux-audio/lrdf.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lrdf", 3 | "rm-configure": true, 4 | "cleanup": [ 5 | "/include", 6 | "/lib/pkgconfig", 7 | "*.so", 8 | "*.la", 9 | "/share/man" 10 | ], 11 | "config-opts": [ 12 | "--disable-static" 13 | ], 14 | "modules": [ 15 | "ladspa.json", 16 | { 17 | "name": "raptor2", 18 | "cleanup": [ 19 | "/include", 20 | "/lib/pkgconfig", 21 | "*.la", 22 | "/share/gtk-doc", 23 | "*.so", 24 | "/share/man" 25 | ], 26 | "config-opts": [ 27 | "--disable-static" 28 | ], 29 | "sources": [ 30 | { 31 | "type": "archive", 32 | "url": "https://download.librdf.org/source/raptor2-2.0.16.tar.gz", 33 | "sha256": "089db78d7ac982354bdbf39d973baf09581e6904ac4c92a98c5caadb3de44680" 34 | }, 35 | { 36 | "type": "patch", 37 | "path": "patches/raptor-libxml.patch" 38 | } 39 | ] 40 | } 41 | ], 42 | "sources": [ 43 | { 44 | "type": "archive", 45 | "url": "https://github.com/swh/LRDF/tarball/0.5.0", 46 | "dest-filename": "swh-LRDF-0.5.0-0-g7ebc032.tar.gz", 47 | "sha256": "013002b91ef209827fe99552b8c7f0b569cddb3d6f1439bedbd8bafe1956a93c" 48 | }, 49 | { 50 | "type": "script", 51 | "commands": [ 52 | "autoreconf -fiv" 53 | ], 54 | "dest-filename": "autogen.sh" 55 | } 56 | ] 57 | } 58 | -------------------------------------------------------------------------------- /linux-audio/lv2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lv2", 3 | "buildsystem": "meson", 4 | "cleanup": [ 5 | "/bin", 6 | "/include", 7 | "/lib/pkgconfig", 8 | "/share" 9 | ], 10 | "sources": [ 11 | { 12 | "type": "archive", 13 | "url": "https://lv2plug.in/spec/lv2-1.18.10.tar.xz", 14 | "sha256": "78c51bcf21b54e58bb6329accbb4dae03b2ed79b520f9a01e734bd9de530953f" 15 | } 16 | ], 17 | "post-install": [ 18 | "install -Dm644 -t $FLATPAK_DEST/share/licenses/lv2 ../COPYING", 19 | "ln -sf lv2.pc $FLATPAK_DEST/lib/pkgconfig/lv2core.pc" 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /linux-audio/patches/lash-0.5.3-no-static-lib.patch: -------------------------------------------------------------------------------- 1 | --- lash-1.0.pc.in~ 2007-10-07 06:33:27.000000000 -0700 2 | +++ lash-1.0.pc.in 2007-10-07 06:35:00.000000000 -0700 3 | @@ -7,6 +7,5 @@ 4 | Description: Audio session management 5 | Requires: @PC_REQUIRES@ 6 | Version: @PACKAGE_VERSION@ 7 | -Libs: -llash 8 | -Libs.static: -lpthread -luuid 9 | +Libs: -llash -lpthread -luuid 10 | Cflags: -I${includedir}/lash-1.0 11 | -------------------------------------------------------------------------------- /linux-audio/patches/lash-build.patch: -------------------------------------------------------------------------------- 1 | diff --git a/clients/synth/lash.c b/clients/synth/lash.c 2 | index 03717ae..1c5d321 100644 3 | --- a/clients/synth/lash.c 4 | +++ b/clients/synth/lash.c 5 | @@ -23,6 +23,8 @@ 6 | #include "config.h" 7 | 8 | #include 9 | +#include 10 | +#include 11 | 12 | #include 13 | 14 | -------------------------------------------------------------------------------- /linux-audio/patches/lash-configure.patch: -------------------------------------------------------------------------------- 1 | --- configure.ac 2007-11-14 16:58:51.000000000 -0500 2 | +++ configure.ac.new 2019-01-24 13:48:46.284377086 -0500 3 | @@ -2,7 +2,7 @@ 4 | AC_CONFIG_SRCDIR([lash/types.h]) 5 | AC_CONFIG_HEADER([config.h]) 6 | AM_INIT_AUTOMAKE 7 | -AM_ACLOCAL_INCLUDE([m4]) 8 | +dnl AM_ACLOCAL_INCLUDE([m4]) 9 | 10 | ### Check for programs ### 11 | AC_LANG([C]) 12 | -------------------------------------------------------------------------------- /linux-audio/patches/lash-gcc47.patch: -------------------------------------------------------------------------------- 1 | diff -rupN lash-0.5.4.old/liblash/lash.c lash-0.5.4/liblash/lash.c 2 | --- lash-0.5.4.old/liblash/lash.c 2007-03-09 10:34:40.000000000 -0500 3 | +++ lash-0.5.4/liblash/lash.c 2012-07-22 18:17:46.003963521 -0400 4 | @@ -22,6 +22,7 @@ 5 | #include 6 | #include 7 | #include 8 | +#include 9 | #include 10 | #include 11 | #include 12 | -------------------------------------------------------------------------------- /linux-audio/patches/lash-linking.patch: -------------------------------------------------------------------------------- 1 | diff -rupN lash-0.5.4.old/clients/control/Makefile.am lash-0.5.4/clients/control/Makefile.am 2 | --- lash-0.5.4.old/clients/control/Makefile.am 2007-01-13 13:20:03.000000000 -0500 3 | +++ lash-0.5.4/clients/control/Makefile.am 2010-02-10 03:08:04.000000000 -0500 4 | @@ -18,6 +18,6 @@ lash_control_CFLAGS = $(LASH_CFLAGS) 5 | 6 | lash_control_LDADD = \ 7 | $(top_builddir)/liblash/liblash.la \ 8 | - $(LASH_LIBS) @READLINE_LIBS@ 9 | + $(LASH_LIBS) @READLINE_LIBS@ -luuid 10 | 11 | endif 12 | diff -rupN lash-0.5.4.old/clients/control/Makefile.in lash-0.5.4/clients/control/Makefile.in 13 | --- lash-0.5.4.old/clients/control/Makefile.in 2007-11-14 17:00:09.000000000 -0500 14 | +++ lash-0.5.4/clients/control/Makefile.in 2010-02-10 03:09:26.000000000 -0500 15 | @@ -236,7 +236,7 @@ AM_CPPFLAGS = -I$(top_srcdir) 16 | @HAVE_READLINE_TRUE@lash_control_CFLAGS = $(LASH_CFLAGS) 17 | @HAVE_READLINE_TRUE@lash_control_LDADD = \ 18 | @HAVE_READLINE_TRUE@ $(top_builddir)/liblash/liblash.la \ 19 | -@HAVE_READLINE_TRUE@ $(LASH_LIBS) @READLINE_LIBS@ 20 | +@HAVE_READLINE_TRUE@ $(LASH_LIBS) @READLINE_LIBS@ -luuid 21 | 22 | all: all-am 23 | 24 | diff -rupN lash-0.5.4.old/clients/panel/Makefile.am lash-0.5.4/clients/panel/Makefile.am 25 | --- lash-0.5.4.old/clients/panel/Makefile.am 2005-09-13 01:22:59.000000000 -0400 26 | +++ lash-0.5.4/clients/panel/Makefile.am 2010-02-10 03:17:10.000000000 -0500 27 | @@ -13,7 +13,7 @@ lash_panel_CFLAGS = \ 28 | 29 | lash_panel_LDADD = \ 30 | $(top_builddir)/liblash/liblash.la \ 31 | - $(GTK2_LIBS) 32 | + $(GTK2_LIBS) -luuid 33 | 34 | if HAVE_GTK2 35 | bin_PROGRAMS = lash_panel 36 | diff -rupN lash-0.5.4.old/clients/panel/Makefile.in lash-0.5.4/clients/panel/Makefile.in 37 | --- lash-0.5.4.old/clients/panel/Makefile.in 2007-11-14 17:00:09.000000000 -0500 38 | +++ lash-0.5.4/clients/panel/Makefile.in 2010-02-10 03:17:23.000000000 -0500 39 | @@ -230,7 +230,7 @@ lash_panel_CFLAGS = \ 40 | 41 | lash_panel_LDADD = \ 42 | $(top_builddir)/liblash/liblash.la \ 43 | - $(GTK2_LIBS) 44 | + $(GTK2_LIBS) -luuid 45 | 46 | all: all-am 47 | 48 | diff -rupN lash-0.5.4.old/clients/synth/Makefile.am lash-0.5.4/clients/synth/Makefile.am 49 | --- lash-0.5.4.old/clients/synth/Makefile.am 2005-09-13 01:22:59.000000000 -0400 50 | +++ lash-0.5.4/clients/synth/Makefile.am 2010-02-10 03:22:39.000000000 -0500 51 | @@ -20,4 +20,4 @@ lash_synth_LDADD = \ 52 | $(JACK_LIBS) \ 53 | $(ALSA_LIBS) \ 54 | $(GTK2_LIBS) \ 55 | - -lpthread 56 | + -lpthread -lm 57 | diff -rupN lash-0.5.4.old/clients/synth/Makefile.in lash-0.5.4/clients/synth/Makefile.in 58 | --- lash-0.5.4.old/clients/synth/Makefile.in 2007-11-14 17:00:10.000000000 -0500 59 | +++ lash-0.5.4/clients/synth/Makefile.in 2010-02-10 03:22:51.000000000 -0500 60 | @@ -238,7 +238,7 @@ lash_synth_LDADD = \ 61 | $(JACK_LIBS) \ 62 | $(ALSA_LIBS) \ 63 | $(GTK2_LIBS) \ 64 | - -lpthread 65 | + -lpthread -lm 66 | 67 | all: all-am 68 | 69 | diff -rupN lash-0.5.4.old/lashd/Makefile.am lash-0.5.4/lashd/Makefile.am 70 | --- lash-0.5.4.old/lashd/Makefile.am 2006-09-16 16:27:46.000000000 -0400 71 | +++ lash-0.5.4/lashd/Makefile.am 2010-07-23 15:13:59.000000000 -0400 72 | @@ -32,6 +32,7 @@ lashd_LDADD = \ 73 | $(ALSA_LIBS) \ 74 | $(XML2_LIBS) \ 75 | $(UUID_LIBS) \ 76 | + -lpthread \ 77 | $(top_builddir)/liblash/liblash.la 78 | 79 | lashd_CFLAGS = \ 80 | diff -rupN lash-0.5.4.old/lashd/Makefile.in lash-0.5.4/lashd/Makefile.in 81 | --- lash-0.5.4.old/lashd/Makefile.in 2007-11-14 17:00:10.000000000 -0500 82 | +++ lash-0.5.4/lashd/Makefile.in 2010-07-23 15:14:29.000000000 -0400 83 | @@ -262,6 +262,7 @@ lashd_LDADD = \ 84 | $(ALSA_LIBS) \ 85 | $(XML2_LIBS) \ 86 | $(UUID_LIBS) \ 87 | + -lpthread \ 88 | $(top_builddir)/liblash/liblash.la 89 | 90 | lashd_CFLAGS = \ 91 | -------------------------------------------------------------------------------- /linux-audio/patches/raptor-libxml.patch: -------------------------------------------------------------------------------- 1 | From 4dbc4c1da2a033c497d84a1291c46f416a9cac51 Mon Sep 17 00:00:00 2001 2 | From: David Anes 3 | Date: Thu, 4 May 2023 11:54:02 +0200 4 | Subject: [PATCH] Remove the access to entities 'checked' private symbol for 5 | libxml2 2.11.0 6 | 7 | Since version 2.11.0, some private symbols that were never intended 8 | as public API/ABI have been removed from libxml2, therefore the field 9 | 'checked' is no longer present and raptor fails to build in this 10 | scenario. 11 | --- 12 | src/raptor_libxml.c | 3 ++- 13 | 1 file changed, 2 insertions(+), 1 deletion(-) 14 | 15 | diff --git a/src/raptor_libxml.c b/src/raptor_libxml.c 16 | index 538c2c8e..8bcee139 100644 17 | --- a/src/raptor_libxml.c 18 | +++ b/src/raptor_libxml.c 19 | @@ -246,10 +246,11 @@ raptor_libxml_getEntity(void* user_data, const xmlChar *name) 20 | 21 | ret->owner = 1; 22 | 23 | -#if LIBXML_VERSION >= 20627 24 | +#if LIBXML_VERSION >= 20627 && LIBXML_VERSION < 21100 25 | /* Checked field was released in 2.6.27 on 2006-10-25 26 | * http://git.gnome.org/browse/libxml2/commit/?id=a37a6ad91a61d168ecc4b29263def3363fff4da6 27 | * 28 | + * and was later removed in version 2.11.0 29 | */ 30 | 31 | /* Mark this entity as having been checked - never do this again */ 32 | -------------------------------------------------------------------------------- /linux-audio/patches/stk-install.sh: -------------------------------------------------------------------------------- 1 | 2 | INCLUDE_DIR=/app/include 3 | DATA_DIR=/app/share 4 | LIB_DIR=/app/lib 5 | BIN_DIR=/app/bin 6 | 7 | 8 | 9 | 10 | install -Dm644 -t $INCLUDE_DIR/stk include/* 11 | install -Dm644 -t $LIB_DIR src/libstk.* 12 | install -Dm644 -t $DATA_DIR/stk/rawwaves rawwaves/*.raw 13 | 14 | #cp -pr projects/demo/tcl $DATA_DIR/stk/demo 15 | #cp -pr projects/demo/scores $DATA_DIR/stk/demo 16 | #cp -p projects/demo/demo $BIN_DIR/stk-demo 17 | #cp -p projects/demo/Md2Skini $BIN_DIR/Md2Skini 18 | #for f in Banded Drums Modal Physical Shakers StkDemo Voice ; do 19 | # chmod +x projects/demo/$f 20 | # sed -e 's,\./demo,$BIN_DIR/stk-demo,' -e '1i#! /bin/sh' \ 21 | # -i projects/demo/$f 22 | # cp -p projects/demo/$f $DATA_DIR/stk/demo 23 | #done 24 | 25 | #cp -pr projects/examples/midifiles $DATA_DIR/stk/examples 26 | #cp -pr projects/examples/rawwaves $DATA_DIR/stk/examples 27 | #cp -pr projects/examples/scores $DATA_DIR/stk/examples 28 | #for f in sine sineosc foursine audioprobe midiprobe duplex play \ 29 | # record inetIn inetOut rtsine crtsine bethree controlbee \ 30 | # threebees playsmf grains ; do 31 | # cp -p projects/examples/$f $BIN_DIR/stk-$f 32 | # # absolute links, will be shortened later 33 | # ln -s $BIN_DIR/stk-$f $DATA_DIR/stk/examples/$f 34 | #done 35 | 36 | install -Dm644 -t $DATA_DIR/stk/effects projects/effects/tcl 37 | install -Dm644 -t $BIN_DIR/stk-effects projects/effects/effects 38 | sed -e 's,\./effects,$BIN_DIR/stk-effects,' -e '1i#! /bin/sh' \ 39 | -i projects/effects/StkEffects 40 | install -Dm644 -t $DATA_DIR/stk/effects projects/effects/StkEffects 41 | 42 | install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/tcl 43 | install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/rawwaves 44 | install -Dm644 -t $BIN_DIR/stk-ragamat projects/ragamatic/ragamat 45 | sed -e 's,\./ragamat,$BIN_DIR/stk-ragamat,' -e '1i#! /bin/sh' \ 46 | -i projects/ragamatic/Raga 47 | install -Dm644 -t $DATA_DIR/stk/ragamatic projects/ragamatic/Raga 48 | 49 | install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/tcl 50 | install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/scores 51 | install -Dm644 -t $BIN_DIR/stk-eguitar projects/eguitar/eguitar 52 | sed -e 's,\./eguitar,$BIN_DIR/stk-eguitar,' -e '1i#! /bin/sh' \ 53 | -i projects/eguitar/ElectricGuitar 54 | install -Dm644 -t $DATA_DIR/stk/eguitar projects/eguitar/ElectricGuitar 55 | -------------------------------------------------------------------------------- /linux-audio/stk.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stk", 3 | "build-commands": [ 4 | "make -j $FLATPAK_BUILDER_N_JOBS -C src", 5 | "make -j $FLATPAK_BUILDER_N_JOBS -C projects/effects libeffects", 6 | "make -j $FLATPAK_BUILDER_N_JOBS -C projects/ragamatic libragamat", 7 | "make -j $FLATPAK_BUILDER_N_JOBS -C projects/eguitar libeguitar" 8 | ], 9 | "post-install": [ 10 | "sh ./stk-install.sh" 11 | ], 12 | "cleanup": [ 13 | "/bin/*", 14 | "/include", 15 | "*.a" 16 | ], 17 | "sources": [ 18 | { 19 | "type": "archive", 20 | "url": "http://ccrma.stanford.edu/software/stk/release/stk-4.6.1.tar.gz", 21 | "sha256": "e77ba3c80cdd93ca02c34098b9b7f918df3d648c87f1ed5d94fe854debd6d101" 22 | }, 23 | { 24 | "type": "file", 25 | "path": "patches/stk-install.sh" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /lua5.1/0004-Fix-stack-overflow-in-vararg-functions.patch: -------------------------------------------------------------------------------- 1 | From: Enrico Tassi 2 | Date: Tue, 26 Aug 2014 16:20:55 +0200 3 | Subject: Fix stack overflow in vararg functions 4 | 5 | --- 6 | src/ldo.c | 2 +- 7 | 1 file changed, 1 insertion(+), 1 deletion(-) 8 | 9 | diff --git a/src/ldo.c b/src/ldo.c 10 | index d1bf786..30333bf 100644 11 | --- a/src/ldo.c 12 | +++ b/src/ldo.c 13 | @@ -274,7 +274,7 @@ int luaD_precall (lua_State *L, StkId func, int nresults) { 14 | CallInfo *ci; 15 | StkId st, base; 16 | Proto *p = cl->p; 17 | - luaD_checkstack(L, p->maxstacksize); 18 | + luaD_checkstack(L, p->maxstacksize + p->numparams); 19 | func = restorestack(L, funcr); 20 | if (!p->is_vararg) { /* no varargs? */ 21 | base = func + 1; 22 | -------------------------------------------------------------------------------- /lua5.1/lua-5.1.5-so.patch: -------------------------------------------------------------------------------- 1 | diff -ur lua-5.1.4/src/Makefile lua-5.1.4-new/src/Makefile 2 | --- lua-5.1.4/src/Makefile 2008-01-19 20:37:58.000000000 +0100 3 | +++ lua-5.1.4-new/src/Makefile 2012-02-23 18:26:43.000000000 +0100 4 | @@ -23,6 +23,7 @@ 5 | PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris 6 | 7 | LUA_A= liblua.a 8 | +LUA_SO= liblua.so 9 | CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \ 10 | lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \ 11 | lundump.o lvm.o lzio.o 12 | @@ -36,7 +37,7 @@ 13 | LUAC_O= luac.o print.o 14 | 15 | ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) 16 | -ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 17 | +ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T) 18 | ALL_A= $(LUA_A) 19 | 20 | default: $(PLAT) 21 | @@ -51,6 +52,11 @@ 22 | $(AR) $@ $? 23 | $(RANLIB) $@ 24 | 25 | +$(LUA_SO): $(CORE_O) $(LIB_O) 26 | + $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) 27 | + ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) 28 | + ln -sf $(LUA_SO).$(R) $(LUA_SO) 29 | + 30 | $(LUA_T): $(LUA_O) $(LUA_A) 31 | $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 32 | 33 | --- lua-5.1.4/Makefile 2008-08-12 02:40:48.000000000 +0200 34 | +++ lua-5.1.4-new/Makefile 2012-02-23 19:06:32.000000000 +0100 35 | @@ -53,7 +53,7 @@ 36 | all: $(PLAT) 37 | 38 | $(PLATS) clean: 39 | - cd src && $(MAKE) $@ 40 | + cd src && $(MAKE) $@ V=$(V) R=$(R) 41 | 42 | test: dummy 43 | src/lua test/hello.lua 44 | -------------------------------------------------------------------------------- /lua5.1/lua-5.1.5.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lua-5.1", 3 | "buildsystem": "simple", 4 | "build-commands": [ 5 | "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", 6 | "make INSTALL_TOP=$FLATPAK_DEST TO_LIB='liblua.a liblua.so.5.1.5' install", 7 | "ln -sf liblua.so.5.1.5 $FLATPAK_DEST/lib/liblua.so", 8 | "ln -sf liblua.so.5.1.5 $FLATPAK_DEST/lib/liblua.so.5.1", 9 | "install -Dm0644 etc/lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", 10 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua51.pc", 11 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.1.pc", 12 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.1.pc" 13 | ], 14 | "sources": [ 15 | { 16 | "type": "archive", 17 | "url": "https://www.lua.org/ftp/lua-5.1.5.tar.gz", 18 | "sha256": "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333" 19 | }, 20 | { 21 | "type": "patch", 22 | "path": "lua-5.1.5-so.patch" 23 | }, 24 | { 25 | "type": "patch", 26 | "path": "0004-Fix-stack-overflow-in-vararg-functions.patch" 27 | }, 28 | { 29 | "type": "shell", 30 | "commands": [ 31 | "sed -i \"s|/usr/local|$FLATPAK_DEST|\" etc/lua.pc src/luaconf.h" 32 | ] 33 | } 34 | ], 35 | "cleanup": [ 36 | "*.a", 37 | "/bin", 38 | "/include", 39 | "/lib/pkgconfig", 40 | "/man" 41 | ] 42 | } 43 | -------------------------------------------------------------------------------- /lua5.3/lua-5.3.5.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lua-5.3", 3 | "buildsystem": "simple", 4 | "build-commands": [ 5 | "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", 6 | "make TO_LIB=liblua.so.5.3.5 INSTALL_TOP=$FLATPAK_DEST install", 7 | "ln -sf liblua.so.5.3.5 $FLATPAK_DEST/lib/liblua.so", 8 | "ln -sf liblua.so.5.3.5 $FLATPAK_DEST/lib/liblua.so.5.3", 9 | "make INSTALL_TOP=${FLATPAK_DEST} pc > lua.pc", 10 | "cat lua.pc.in >> lua.pc", 11 | "install -Dm644 lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", 12 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua53.pc", 13 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.3.pc", 14 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.3.pc" 15 | ], 16 | "sources": [ 17 | { 18 | "type": "archive", 19 | "url": "https://www.lua.org/ftp/lua-5.3.5.tar.gz", 20 | "sha256": "0c2eed3f960446e1a3e4b9a1ca2f3ff893b6ce41942cf54d5dd59ab4b3b058ac" 21 | }, 22 | { 23 | "type": "patch", 24 | "path": "makefile-add-liblua.so-rule.patch" 25 | }, 26 | { 27 | "type": "file", 28 | "path": "lua.pc.in" 29 | }, 30 | { 31 | "type": "patch", 32 | "path": "luaconf.patch" 33 | } 34 | ], 35 | "cleanup": [ 36 | "/bin", 37 | "/include", 38 | "/lib/pkgconfig", 39 | "/man" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /lua5.3/lua.pc.in: -------------------------------------------------------------------------------- 1 | exec_prefix=${prefix} 2 | 3 | Name: Lua 4 | Description: An Extensible Extension Language 5 | Version: ${version} 6 | Requires: 7 | Libs: -L${libdir} -llua -lm 8 | Cflags: -I${includedir} -------------------------------------------------------------------------------- /lua5.3/luaconf.patch: -------------------------------------------------------------------------------- 1 | diff --git a/Makefile b/Makefile 2 | index 119110d..22b1f31 100644 3 | --- a/Makefile 4 | +++ b/Makefile 5 | @@ -46,7 +46,7 @@ TO_MAN= lua.1 luac.1 6 | 7 | # Lua version and release. 8 | V= 5.3 9 | -R= $V.4 10 | +R= $V.5 11 | 12 | # Targets start here. 13 | all: $(PLAT) 14 | diff --git a/src/luaconf.h b/src/luaconf.h 15 | index 9eeeea6..95250da 100644 16 | --- a/src/luaconf.h 17 | +++ b/src/luaconf.h 18 | @@ -11,6 +11,9 @@ 19 | #include 20 | #include 21 | 22 | +#define LUA_COMPAT_5_1 23 | +#define LUA_COMPAT_5_2 24 | + 25 | 26 | /* 27 | ** =================================================================== 28 | @@ -200,7 +203,7 @@ 29 | 30 | #else /* }{ */ 31 | 32 | -#define LUA_ROOT "/usr/local/" 33 | +#define LUA_ROOT "$FLATPAK_DEST/" 34 | #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" 35 | #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" 36 | #define LUA_PATH_DEFAULT \ 37 | @@ -745,7 +748,7 @@ 38 | @@ of a function in debug information. 39 | ** CHANGE it if you want a different size. 40 | */ 41 | -#define LUA_IDSIZE 60 42 | +#define LUA_IDSIZE 512 43 | 44 | 45 | /* 46 | -------------------------------------------------------------------------------- /lua5.3/makefile-add-liblua.so-rule.patch: -------------------------------------------------------------------------------- 1 | diff --git a/Makefile b/Makefile 2 | index 7fa91c8..dccf485 100644 3 | --- a/Makefile 4 | +++ b/Makefile 5 | @@ -52,7 +52,7 @@ R= $V.0 6 | all: $(PLAT) 7 | 8 | $(PLATS) clean: 9 | - cd src && $(MAKE) $@ 10 | + cd src && $(MAKE) $@ V=$(V) R=$(R) 11 | 12 | test: dummy 13 | src/lua -v 14 | diff --git a/src/Makefile b/src/Makefile 15 | index 2e7a412..fa5769f 100644 16 | --- a/src/Makefile 17 | +++ b/src/Makefile 18 | @@ -29,6 +29,7 @@ MYOBJS= 19 | PLATS= aix bsd c89 freebsd generic linux macosx mingw posix solaris 20 | 21 | LUA_A= liblua.a 22 | +LUA_SO= liblua.so 23 | CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \ 24 | lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \ 25 | ltm.o lundump.o lvm.o lzio.o 26 | @@ -43,7 +44,7 @@ LUAC_T= luac 27 | LUAC_O= luac.o 28 | 29 | ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) 30 | -ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 31 | +ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) 32 | ALL_A= $(LUA_A) 33 | 34 | # Targets start here. 35 | @@ -59,6 +60,12 @@ $(LUA_A): $(BASE_O) 36 | $(AR) $@ $(BASE_O) 37 | $(RANLIB) $@ 38 | 39 | +$(LUA_SO): $(CORE_O) $(LIB_O) 40 | + $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) 41 | + ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) 42 | + ln -sf $(LUA_SO).$(R) $(LUA_SO) 43 | + 44 | + 45 | $(LUA_T): $(LUA_O) $(LUA_A) 46 | $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 47 | -------------------------------------------------------------------------------- /lua5.4/lua-5.4.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lua-5.4", 3 | "buildsystem": "simple", 4 | "build-commands": [ 5 | "make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux", 6 | "make TO_LIB=liblua.so.5.4.6 INSTALL_TOP=$FLATPAK_DEST install", 7 | "ln -sf liblua.so.5.4.6 $FLATPAK_DEST/lib/liblua.so", 8 | "ln -sf liblua.so.5.4.6 $FLATPAK_DEST/lib/liblua.so.5.4", 9 | "make INSTALL_TOP=${FLATPAK_DEST} pc > lua.pc", 10 | "cat lua.pc.in >> lua.pc", 11 | "install -Dm644 lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc", 12 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua54.pc", 13 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.4.pc", 14 | "ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.4.pc" 15 | ], 16 | "sources": [ 17 | { 18 | "type": "archive", 19 | "url": "https://www.lua.org/ftp/lua-5.4.6.tar.gz", 20 | "sha256": "7d5ea1b9cb6aa0b59ca3dde1c6adcb57ef83a1ba8e5432c0ecd06bf439b3ad88" 21 | }, 22 | { 23 | "type": "patch", 24 | "path": "makefile-add-liblua.so-rule.patch" 25 | }, 26 | { 27 | "type": "file", 28 | "path": "lua.pc.in" 29 | }, 30 | { 31 | "type": "patch", 32 | "path": "luaconf.patch" 33 | } 34 | ], 35 | "cleanup": [ 36 | "/bin", 37 | "/include", 38 | "/lib/pkgconfig", 39 | "/man" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /lua5.4/lua.pc.in: -------------------------------------------------------------------------------- 1 | exec_prefix=${prefix} 2 | 3 | Name: Lua 4 | Description: An Extensible Extension Language 5 | Version: ${version} 6 | Requires: 7 | Libs: -L${libdir} -llua -lm 8 | Cflags: -I${includedir} -------------------------------------------------------------------------------- /lua5.4/luaconf.patch: -------------------------------------------------------------------------------- 1 | diff --git a/src/luaconf.h b/src/luaconf.h 2 | index 137103e..fe255c4 100644 3 | --- a/src/luaconf.h 4 | +++ b/src/luaconf.h 5 | @@ -11,6 +11,9 @@ 6 | #include 7 | #include 8 | 9 | +#define LUA_COMPAT_5_1 10 | +#define LUA_COMPAT_5_2 11 | + 12 | 13 | /* 14 | ** =================================================================== 15 | @@ -223,7 +226,7 @@ 16 | 17 | #else /* }{ */ 18 | 19 | -#define LUA_ROOT "/usr/local/" 20 | +#define LUA_ROOT "$FLATPAK_DEST/" 21 | #define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" 22 | #define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" 23 | 24 | @@ -756,7 +759,7 @@ 25 | ** of a function in debug information. 26 | ** CHANGE it if you want a different size. 27 | */ 28 | -#define LUA_IDSIZE 60 29 | +#define LUA_IDSIZE 512 30 | 31 | 32 | /* 33 | -------------------------------------------------------------------------------- /lua5.4/makefile-add-liblua.so-rule.patch: -------------------------------------------------------------------------------- 1 | --- a/Makefile 2021-12-24 10:55:05.836294155 -0500 2 | +++ b/Makefile 2021-03-02 15:04:35.000000000 -0500 3 | @@ -52,7 +52,7 @@ 4 | all: $(PLAT) 5 | 6 | $(PLATS) help test clean: 7 | - @cd src && $(MAKE) $@ 8 | + @cd src && $(MAKE) $@ V=$(V) R=$(R) 9 | 10 | install: dummy 11 | cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) 12 | --- a/src/Makefile 2021-12-24 10:56:23.279935521 -0500 13 | +++ b/src/Makefile 2021-02-09 13:47:17.000000000 -0500 14 | @@ -32,6 +32,7 @@ 15 | PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris 16 | 17 | LUA_A= liblua.a 18 | +LUA_SO= liblua.so 19 | CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o 20 | LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o 21 | BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) 22 | @@ -44,7 +44,7 @@ 23 | LUAC_O= luac.o 24 | 25 | ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) 26 | -ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 27 | +ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) 28 | ALL_A= $(LUA_A) 29 | 30 | # Targets start here. 31 | @@ -60,6 +60,11 @@ 32 | $(AR) $@ $(BASE_O) 33 | $(RANLIB) $@ 34 | 35 | +$(LUA_SO): $(CORE_O) $(LIB_O) 36 | + $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) 37 | + ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) 38 | + ln -sf $(LUA_SO).$(R) $(LUA_SO) 39 | + 40 | $(LUA_T): $(LUA_O) $(LUA_A) 41 | $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) 42 | 43 | -------------------------------------------------------------------------------- /luajit/luajit.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "luajit", 3 | "no-autogen": true, 4 | "make-args": [ 5 | "BUILDMODE=dynamic", 6 | "PREFIX=${FLATPAK_DEST}" 7 | ], 8 | "make-install-args": [ 9 | "PREFIX=${FLATPAK_DEST}" 10 | ], 11 | "sources": [ 12 | { 13 | "type": "git", 14 | "url": "https://github.com/openresty/luajit2.git", 15 | "tag": "v2.1-20250117", 16 | "commit": "93162f34e7424cd0ea3c4046a9ffacce621626bc", 17 | "x-checker-data": { 18 | "type": "git", 19 | "tag-pattern": "^v([\\d.-]+)$", 20 | "stable-only": false 21 | } 22 | } 23 | ], 24 | "cleanup": [ 25 | "/bin", 26 | "/include", 27 | "/lib/pkgconfig", 28 | "/share/man" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /lzo/lzo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lzo", 3 | "cleanup": [ 4 | "/include", 5 | "/lib/pkgconfig", 6 | "/share/doc", 7 | "*.la" 8 | ], 9 | "config-opts": [ 10 | "--disable-dependency-tracking", 11 | "--disable-static", 12 | "--enable-shared" 13 | ], 14 | "sources": [ 15 | { 16 | "type": "archive", 17 | "url": "https://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz", 18 | "sha256": "c0f892943208266f9b6543b3ae308fab6284c5c90e627931446fb49b4221a072", 19 | "x-checker-data": { 20 | "type": "anitya", 21 | "project-id": 1868, 22 | "stable-only": false, 23 | "url-template": "https://www.oberhumer.com/opensource/lzo/download/lzo-$version.tar.gz" 24 | } 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /mac/mac.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libmac", 3 | "buildsystem": "cmake", 4 | "cleanup": [ 5 | "/include/MAC" 6 | ], 7 | "sources": [ 8 | { 9 | "type": "archive", 10 | "url": "https://freac.org/patches/MAC_1076_SDK.zip", 11 | "sha256": "d0c8e69f2dbe337feb0d9e0a2a24e0bbb6f50613f0c88d0d0cf121cf603995d3", 12 | "strip-components": 0 13 | } 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /physfs/physfs.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PhysicsFS", 3 | "buildsystem": "cmake-ninja", 4 | "config-opts": [ "-DPHYSFS_BUILD_TEST=OFF", "-DPHYSFS_BUILD_STATIC=OFF" ], 5 | "cleanup": [ 6 | "/include", 7 | "/lib/pkgconfig", 8 | "/bin" 9 | ], 10 | "sources": [ 11 | { 12 | "type": "archive", 13 | "url": "https://icculus.org/physfs/downloads/physfs-3.0.2.tar.bz2", 14 | "sha256": "304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863", 15 | "size": 194888 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /pygame/audiofile-gcc6.patch: -------------------------------------------------------------------------------- 1 | From b62c902dd258125cac86cd2df21fc898035a43d3 Mon Sep 17 00:00:00 2001 2 | From: Michael Pruett 3 | Date: Mon, 29 Aug 2016 23:08:26 -0500 4 | Subject: [PATCH] Fix undefined behavior in sign conversion. 5 | Origin: https://github.com/mpruett/audiofile/commit/b62c902dd258125cac86cd2df21fc898035a43d3 6 | 7 | --- 8 | diff --git a/libaudiofile/modules/SimpleModule.h b/libaudiofile/modules/SimpleModule.h 9 | index 03c6c69..bad85ad 100644 10 | --- a/libaudiofile/modules/SimpleModule.h 11 | +++ b/libaudiofile/modules/SimpleModule.h 12 | @@ -123,7 +123,8 @@ struct signConverter 13 | typedef typename IntTypes::UnsignedType UnsignedType; 14 | 15 | static const int kScaleBits = (Format + 1) * CHAR_BIT - 1; 16 | - static const int kMinSignedValue = -1 << kScaleBits; 17 | + static const int kMaxSignedValue = (((1 << (kScaleBits - 1)) - 1) << 1) + 1; 18 | + static const int kMinSignedValue = -kMaxSignedValue - 1; 19 | 20 | struct signedToUnsigned : public std::unary_function 21 | { 22 | -------------------------------------------------------------------------------- /pygame/cython-fixes.patch: -------------------------------------------------------------------------------- 1 | From ff04ba4bfbe65929534f61a9f66a39d03c973b78 Mon Sep 17 00:00:00 2001 2 | From: bbhtt 3 | Date: Sat, 9 Sep 2023 15:15:00 +0530 4 | Subject: [PATCH 1/2] Cython fixes 5 | 6 | --- 7 | src_c/pypm.pyx | 4 +++- 8 | 1 file changed, 3 insertions(+), 1 deletion(-) 9 | 10 | diff --git a/src_c/pypm.pyx b/src_c/pypm.pyx 11 | index d66e7a10..706726c6 100644 12 | --- a/src_c/pypm.pyx 13 | +++ b/src_c/pypm.pyx 14 | @@ -5,6 +5,8 @@ 15 | # harrison@media.mit.edu 16 | # written in Pyrex 17 | 18 | +# cython: language_level=2 19 | + 20 | __version__ = "0.0.6" 21 | 22 | import array 23 | @@ -277,7 +279,7 @@ cdef class Output: 24 | PmPtr = &Pt_Time 25 | 26 | if self.debug: 27 | - print "Opening Midi Output" 28 | + print "Opening Midi Output", output_device 29 | 30 | # Why is buffer size 0 here? 31 | err = Pm_OpenOutput(&(self.midi), output_device, NULL, 0, PmPtr, NULL, 32 | -- 33 | 2.41.0 34 | 35 | -------------------------------------------------------------------------------- /pygame/fluidsynth-no-rawmidi.patch: -------------------------------------------------------------------------------- 1 | diff -rupN fluidsynth-1.1.6.orig/src/drivers/fluid_alsa.c fluidsynth-1.1.6/src/drivers/fluid_alsa.c 2 | --- fluidsynth-1.1.6.orig/src/drivers/fluid_alsa.c 2012-08-16 05:01:13.000000000 +0100 3 | +++ fluidsynth-1.1.6/src/drivers/fluid_alsa.c 2017-02-28 21:26:57.033244239 +0000 4 | @@ -96,7 +96,7 @@ struct fluid_alsa_formats_t fluid_alsa_f 5 | }; 6 | 7 | 8 | - 9 | +#if 0 10 | /* 11 | * fluid_alsa_rawmidi_driver_t 12 | * 13 | @@ -119,7 +119,7 @@ fluid_midi_driver_t* new_fluid_alsa_rawm 14 | 15 | int delete_fluid_alsa_rawmidi_driver(fluid_midi_driver_t* p); 16 | static void fluid_alsa_midi_run(void* d); 17 | - 18 | +#endif 19 | 20 | /* 21 | * fluid_alsa_seq_driver_t 22 | @@ -535,7 +535,7 @@ static void fluid_alsa_audio_run_s16 (vo 23 | * 24 | */ 25 | 26 | - 27 | +#if 0 28 | void fluid_alsa_rawmidi_driver_settings(fluid_settings_t* settings) 29 | { 30 | fluid_settings_register_str(settings, "midi.alsa.device", "default", 0, NULL, NULL); 31 | @@ -698,7 +698,7 @@ fluid_alsa_midi_run(void* d) 32 | } 33 | } 34 | } 35 | - 36 | +#endif 37 | /************************************************************** 38 | * 39 | * Alsa sequencer 40 | diff -rupN fluidsynth-1.1.6.orig/src/drivers/fluid_mdriver.c fluidsynth-1.1.6/src/drivers/fluid_mdriver.c 41 | --- fluidsynth-1.1.6.orig/src/drivers/fluid_mdriver.c 2012-08-16 05:01:13.000000000 +0100 42 | +++ fluidsynth-1.1.6/src/drivers/fluid_mdriver.c 2017-02-28 21:24:43.887833321 +0000 43 | @@ -24,11 +24,13 @@ 44 | 45 | /* ALSA */ 46 | #if ALSA_SUPPORT 47 | +#if 0 48 | fluid_midi_driver_t* new_fluid_alsa_rawmidi_driver(fluid_settings_t* settings, 49 | handle_midi_event_func_t handler, 50 | void* event_handler_data); 51 | int delete_fluid_alsa_rawmidi_driver(fluid_midi_driver_t* p); 52 | void fluid_alsa_rawmidi_driver_settings(fluid_settings_t* settings); 53 | +#endif 54 | 55 | fluid_midi_driver_t* new_fluid_alsa_seq_driver(fluid_settings_t* settings, 56 | handle_midi_event_func_t handler, 57 | @@ -109,10 +111,12 @@ struct fluid_mdriver_definition_t fluid_ 58 | fluid_oss_midi_driver_settings }, 59 | #endif 60 | #if ALSA_SUPPORT 61 | +#if 0 62 | { "alsa_raw", 63 | new_fluid_alsa_rawmidi_driver, 64 | delete_fluid_alsa_rawmidi_driver, 65 | fluid_alsa_rawmidi_driver_settings }, 66 | +#endif 67 | { "alsa_seq", 68 | new_fluid_alsa_seq_driver, 69 | delete_fluid_alsa_seq_driver, 70 | -------------------------------------------------------------------------------- /pygame/glib.patch: -------------------------------------------------------------------------------- 1 | From 24d1e9c28518cb4b01344eaf8377f2d6d489ad50 Mon Sep 17 00:00:00 2001 2 | From: bbhtt 3 | Date: Sat, 9 Sep 2023 12:04:16 +0530 4 | Subject: [PATCH] Fix deprecated GStaticMutex init with glib-2.70 5 | 6 | --- 7 | src/drivers/fluid_jack.c | 2 +- 8 | 1 file changed, 1 insertion(+), 1 deletion(-) 9 | 10 | diff --git a/src/drivers/fluid_jack.c b/src/drivers/fluid_jack.c 11 | index fe3cd752..613a9820 100644 12 | --- a/src/drivers/fluid_jack.c 13 | +++ b/src/drivers/fluid_jack.c 14 | @@ -100,7 +100,7 @@ int fluid_jack_driver_process(jack_nframes_t nframes, void *arg); 15 | int delete_fluid_jack_midi_driver(fluid_midi_driver_t *p); 16 | 17 | 18 | -static fluid_mutex_t last_client_mutex = G_STATIC_MUTEX_INIT; /* Probably not necessary, but just in case drivers are created by multiple threads */ 19 | +static fluid_mutex_t last_client_mutex; /* Probably not necessary, but just in case drivers are created by multiple threads */ 20 | static fluid_jack_client_t *last_client = NULL; /* Last unpaired client. For audio/MIDI driver pairing. */ 21 | 22 | 23 | -- 24 | 2.41.0 25 | 26 | -------------------------------------------------------------------------------- /pygame/pygame-1.9.6.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pygame", 3 | "sources": [ 4 | { 5 | "type": "archive", 6 | "url": "https://files.pythonhosted.org/packages/0f/9c/78626be04e193c0624842090fe5555b3805c050dfaa81c8094d6441db2be/pygame-1.9.6.tar.gz", 7 | "sha256": "301c6428c0880ecd4a9e3951b80e539c33863b6ff356a443db1758de4f297957" 8 | }, 9 | { 10 | "type": "patch", 11 | "path": "cython-fixes.patch" 12 | } 13 | ], 14 | "buildsystem": "simple", 15 | "build-commands": [ 16 | "python setup.py cython install --prefix=/app --root=/" 17 | ], 18 | "cleanup": [ 19 | "/include", 20 | "/lib/pkgconfig", 21 | "/share/man", 22 | "*.la", 23 | "*.a" 24 | ], 25 | "build-options": { 26 | "env": { 27 | "PORTMIDI_INC_PORTTIME": "1", 28 | "PYGAME_EXTRA_BASE": "/app" 29 | }, 30 | "arch": { 31 | "aarch64": { 32 | "env": { 33 | "ORIGLIBDIRS": "/lib:/lib64:/lib/aarch64-linux-gnu" 34 | } 35 | }, 36 | "arm": { 37 | "env": { 38 | "ORIGLIBDIRS": "/lib:/lib/arm-linux-gnueabihf" 39 | } 40 | }, 41 | "i386": { 42 | "env": { 43 | "ORIGLIBDIRS": "/lib:/lib/i386-linux-gnu" 44 | } 45 | }, 46 | "x86_64": { 47 | "env": { 48 | "ORIGLIBDIRS": "/lib:/lib64:/lib/x86_64-linux-gnu" 49 | } 50 | } 51 | } 52 | }, 53 | "modules": [ 54 | "../SDL/SDL-1.2.15.json", 55 | "../SDL/SDL_image-1.2.12.json", 56 | "../SDL/SDL_ttf-2.0.11.json", 57 | "../smpeg/smpeg-0.4.5.json", 58 | "../SDL/SDL_mixer-1.2.12.json", 59 | { 60 | "name": "audiofile", 61 | "cleanup": [ 62 | "/include", 63 | "/lib/pkgconfig", 64 | "/share/man", 65 | "*.la", 66 | "*.a" 67 | ], 68 | "sources": [ 69 | { 70 | "type": "archive", 71 | "url": "http://audiofile.68k.org/audiofile-0.3.6.tar.gz", 72 | "sha256": "cdc60df19ab08bfe55344395739bb08f50fc15c92da3962fac334d3bff116965" 73 | }, 74 | { 75 | "type": "patch", 76 | "path": "audiofile-gcc6.patch" 77 | } 78 | ] 79 | }, 80 | { 81 | "name": "libmikmod", 82 | "cleanup": [ 83 | "/include", 84 | "/lib/pkgconfig", 85 | "/share/aclocal", 86 | "/share/info", 87 | "/share/man", 88 | "*.la", 89 | "*.a" 90 | ], 91 | "sources": [ 92 | { 93 | "type": "archive", 94 | "url": "https://sourceforge.net/projects/mikmod/files/libmikmod/3.3.11.1/libmikmod-3.3.11.1.tar.gz", 95 | "sha256": "ad9d64dfc8f83684876419ea7cd4ff4a41d8bcd8c23ef37ecb3a200a16b46d19" 96 | } 97 | ] 98 | }, 99 | { 100 | "name": "fluidsynth", 101 | "buildsystem": "cmake-ninja", 102 | "config-opts": [ 103 | "-DCMAKE_BUILD_TYPE=Release" 104 | ], 105 | "cleanup": [ 106 | "/include", 107 | "/lib/pkgconfig", 108 | "/lib64/pkgconfig", 109 | "/share/man", 110 | "*.la", 111 | "*.a" 112 | ], 113 | "sources": [ 114 | { 115 | "type": "archive", 116 | "url": "https://github.com/FluidSynth/fluidsynth/archive/refs/tags/v1.1.11.tar.gz", 117 | "sha256": "da8878ff374d12392eecf87e96bad8711b8e76a154c25a571dd8614d1af80de8" 118 | }, 119 | { 120 | "type": "patch", 121 | "path": "fluidsynth-no-rawmidi.patch" 122 | }, 123 | { 124 | "type": "patch", 125 | "path": "glib.patch" 126 | } 127 | ] 128 | }, 129 | { 130 | "name": "portmidi", 131 | "buildsystem": "cmake-ninja", 132 | "config-opts": [ 133 | "-DCMAKE_BUILD_TYPE=Release", 134 | "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:STRING=/app/lib", 135 | "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:STRING=/app/lib", 136 | "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY:STRING=/app/bin" 137 | ], 138 | "cleanup": [ 139 | "/include", 140 | "/lib/pkgconfig", 141 | "/share/man", 142 | "*.la", 143 | "*.a" 144 | ], 145 | "sources": [ 146 | { 147 | "type": "archive", 148 | "url": "https://github.com/PortMidi/portmidi/archive/refs/tags/v2.0.4.tar.gz", 149 | "sha256": "64893e823ae146cabd3ad7f9a9a9c5332746abe7847c557b99b2577afa8a607c" 150 | } 151 | ] 152 | } 153 | ] 154 | } 155 | -------------------------------------------------------------------------------- /pygtk/pygtk.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pygtk", 3 | "config-opts": [ 4 | "--disable-docs" 5 | ], 6 | "sources": [ 7 | { 8 | "type": "archive", 9 | "url": "https://download.gnome.org/sources/pygtk/2.24/pygtk-2.24.0.tar.gz", 10 | "sha256": "6e3e54fa6e65a69ac60bd58cb2e60a57f3346ac52efe995f3d10b6c38c972fd8" 11 | }, 12 | { 13 | "type": "patch", 14 | "path": "pygtk.patch" 15 | }, 16 | { 17 | "type": "shell", 18 | "commands": [ 19 | "cp -p /usr/share/automake-*/config.{sub,guess} ." 20 | ] 21 | } 22 | ], 23 | "cleanup": [ 24 | "/bin", 25 | "/include/pygtk-2.0", 26 | "*.la", 27 | "/lib/pkgconfig", 28 | "/lib/pygtk", 29 | "/share/gtk-doc", 30 | "/share/pygtk" 31 | ], 32 | "modules": [ 33 | { 34 | "name": "python2-pycairo", 35 | "buildsystem": "meson", 36 | "config-opts": [ 37 | "-Dpython=python2" 38 | ], 39 | "cleanup": [ 40 | "/include/pycairo", 41 | "/lib/pkgconfig", 42 | "/lib/python2.7/site-packages/cairo/include" 43 | ], 44 | "sources": [ 45 | { 46 | "type": "archive", 47 | "url": "https://github.com/pygobject/pycairo/releases/download/v1.18.2/pycairo-1.18.2.tar.gz", 48 | "sha256": "dcb853fd020729516e8828ad364084e752327d4cff8505d20b13504b32b16531" 49 | } 50 | ] 51 | }, 52 | { 53 | "name": "pygobject", 54 | "config-opts": [ 55 | "--disable-glibtest" 56 | ], 57 | "cleanup": [ 58 | "/bin", 59 | "/include/pygtk-2.0", 60 | "*.la", 61 | "/lib/pkgconfig", 62 | "/share/gtk-doc", 63 | "/share/pygobject" 64 | ], 65 | "sources": [ 66 | { 67 | "type": "archive", 68 | "url": "https://download.gnome.org/sources/pygobject/2.28/pygobject-2.28.7.tar.xz", 69 | "sha256": "bb9d25a3442ca7511385a7c01b057492095c263784ef31231ffe589d83a96a5a" 70 | } 71 | ] 72 | }, 73 | { 74 | "name": "libglade", 75 | "rm-configure": true, 76 | "cleanup": [ 77 | "/bin", 78 | "/include/libglade-2.0", 79 | "*.a", 80 | "*.la", 81 | "/lib/pkgconfig", 82 | "/share/gtk-doc", 83 | "/share/xml/libglade" 84 | ], 85 | "sources": [ 86 | { 87 | "type": "archive", 88 | "url": "https://download.gnome.org/sources/libglade/2.6/libglade-2.6.4.tar.gz", 89 | "sha256": "c41d189b68457976069073e48d6c14c183075d8b1d8077cb6dfb8b7c5097add3" 90 | }, 91 | { 92 | "type": "shell", 93 | "commands": [ 94 | "rm -f config.guess" 95 | ] 96 | }, 97 | { 98 | "type": "script", 99 | "commands": [ 100 | "autoreconf -fiv" 101 | ], 102 | "dest-filename": "autogen.sh" 103 | } 104 | ] 105 | } 106 | ] 107 | } 108 | -------------------------------------------------------------------------------- /pygtk/pygtk.patch: -------------------------------------------------------------------------------- 1 | From 877164b6b70780468a31d8211f29421b6f34b0c8 Mon Sep 17 00:00:00 2001 2 | From: Mathieu Bridon 3 | Date: Thu, 24 Oct 2019 22:58:36 +0200 4 | Subject: [PATCH] Drop the PangoFont find_shaper virtual method 5 | 6 | This API has been removed from Pango 1.44.6, because it was completely 7 | unused by anything. 8 | 9 | However, PyGTK tries to bind everything, even unused API. 10 | 11 | Removing this from PyGTK means we can build it against the latest Pango 12 | again. 13 | --- 14 | pango.defs | 9 --------- 15 | 1 file changed, 9 deletions(-) 16 | 17 | diff --git a/pango.defs b/pango.defs 18 | index 2a79ecc..862667a 100644 19 | --- a/pango.defs 20 | +++ b/pango.defs 21 | @@ -1391,15 +1391,6 @@ 22 | ) 23 | ) 24 | 25 | -(define-virtual find_shaper 26 | - (of-object "PangoFont") 27 | - (return-type "PangoEngineShape*") 28 | - (parameters 29 | - '("PangoLanguage*" "lang") 30 | - '("guint32" "ch") 31 | - ) 32 | -) 33 | - 34 | (define-virtual get_glyph_extents 35 | (of-object "PangoFont") 36 | (return-type "none") 37 | -- 38 | 2.21.0 39 | 40 | -------------------------------------------------------------------------------- /python2.7/python-2.7.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "python-2.7", 3 | "sources": [ 4 | { 5 | "type": "archive", 6 | "url": "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz", 7 | "sha256": "b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43" 8 | } 9 | ], 10 | "config-opts": [ 11 | "--enable-shared", 12 | "--with-ensurepip=yes", 13 | "--with-system-expat", 14 | "--with-system-ffi", 15 | "--enable-loadable-sqlite-extensions", 16 | "--with-dbmliborder=gdbm", 17 | "--enable-unicode=ucs4" 18 | ], 19 | "post-install": [ 20 | /* Theres seem to be a permissions missmatch that causes the debug stripping to fail */ 21 | "chmod 644 $FLATPAK_DEST/lib/libpython2.7.so.1.0" 22 | ], 23 | "cleanup": [ 24 | "/bin/2to3*", 25 | "/bin/easy_install*", 26 | "/bin/idle*", 27 | "/bin/pydoc*", 28 | "/bin/python*-config", 29 | "/bin/pyvenv*", 30 | "/include", 31 | "/lib/pkgconfig", 32 | "/lib/python*/config", 33 | "/share", 34 | 35 | /* Test scripts */ 36 | "/lib/python*/test", 37 | "/lib/python*/*/test", 38 | "/lib/python*/*/tests", 39 | "/lib/python*/lib-tk/test", 40 | "/lib/python*/lib-dynload/_*_test.*.so", 41 | "/lib/python*/lib-dynload/_test*.*.so", 42 | 43 | /* Unused modules */ 44 | "/lib/python*/idlelib", 45 | "/lib/python*/tkinter*", 46 | "/lib/python*/turtle*", 47 | "/lib/python*/lib2to3*", 48 | 49 | /* Static library */ 50 | "/lib/python2.7/config/libpython2.7.a" 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /smpeg/smpeg-0.4.5.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "smpeg", 3 | "config-opts": ["--disable-static"], 4 | "cleanup": [ 5 | "/bin", 6 | "/man", 7 | "/include", 8 | "/share/aclocal", 9 | "/share/man", 10 | "*.la", 11 | "*.a" 12 | ], 13 | "rm-configure": true, 14 | "sources": [ 15 | { 16 | "type": "archive", 17 | "url": "http://http.debian.net/debian/pool/main/s/smpeg/smpeg_0.4.5+cvs20030824.orig.tar.gz", 18 | "sha256": "1276ea797dd9fde8a12dd3f33f180153922544c28ca9fc7b477c018876be1916" 19 | }, 20 | { 21 | "type": "shell", 22 | "commands": [ 23 | "sed -i '/^## libtool.m4/,/^#####/d' acinclude.m4" 24 | ] 25 | }, 26 | { 27 | "type": "script", 28 | "dest-filename": "autogen.sh", 29 | "commands": [ 30 | "AUTOMAKE=\"automake --foreign --add-missing --force-missing\" autoreconf -vfi" 31 | ] 32 | }, 33 | { 34 | "type": "patch", 35 | "path": "smpeg-am-prog-as.patch" 36 | }, 37 | { 38 | "type": "patch", 39 | "path": "smpeg-export-mpegaudio-class.patch" 40 | }, 41 | { 42 | "type": "patch", 43 | "path": "smpeg-no-gtk.patch" 44 | }, 45 | { 46 | "type": "patch", 47 | "path": "smpeg-gcc6.patch" 48 | } 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /smpeg/smpeg-am-prog-as.patch: -------------------------------------------------------------------------------- 1 | Index: smpeg-0.4.5+cvs20030824/configure.in 2 | =================================================================== 3 | --- smpeg-0.4.5+cvs20030824.orig/configure.in 4 | +++ smpeg-0.4.5+cvs20030824/configure.in 5 | @@ -57,6 +57,7 @@ 6 | AC_LIBTOOL_WIN32_DLL 7 | AM_PROG_LIBTOOL 8 | AC_PROG_INSTALL 9 | +AM_PROG_AS 10 | 11 | dnl Ugh. 12 | AS="$CC" 13 | -------------------------------------------------------------------------------- /smpeg/smpeg-export-mpegaudio-class.patch: -------------------------------------------------------------------------------- 1 | --- smpeg-0.4.5+cvs20030824.orig/MPEGaudio.h 2 | +++ smpeg-0.4.5+cvs20030824/MPEGaudio.h 3 | @@ -149,6 +149,14 @@ 4 | }; 5 | 6 | /* The actual MPEG audio class */ 7 | + 8 | +class MPEGaudio; 9 | +void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len); 10 | +int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len); 11 | +#ifdef THREADED_AUDIO 12 | +int Decode_MPEGaudio(void *udata); 13 | +#endif 14 | + 15 | class MPEGaudio : public MPEGerror, public MPEGaudioaction { 16 | 17 | friend void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len); 18 | -------------------------------------------------------------------------------- /smpeg/smpeg-gcc6.patch: -------------------------------------------------------------------------------- 1 | Description: Fix compiling with GCC 6. 2 | Author: Johannes Brandstätter 3 | Bug-Debian: https://bugs.debian.org/811742 4 | Last-Update: <2016-09-24> 5 | 6 | Index: smpeg-0.4.5+cvs20030824/audio/huffmantable.cpp 7 | =================================================================== 8 | --- smpeg-0.4.5+cvs20030824.orig/audio/huffmantable.cpp 9 | +++ smpeg-0.4.5+cvs20030824/audio/huffmantable.cpp 10 | @@ -9,6 +9,7 @@ 11 | #include "config.h" 12 | #endif 13 | 14 | +#include 15 | #include "MPEGaudio.h" 16 | 17 | static const unsigned int 18 | @@ -550,11 +551,11 @@ htd33[ 31][2]={{ 16, 1},{ 8, 1},{ 4, 19 | 20 | const HUFFMANCODETABLE MPEGaudio::ht[HTN]= 21 | { 22 | - { 0, 0-1, 0-1, 0, 0, htd33}, 23 | + { 0, UINT_MAX, UINT_MAX, 0, 0, htd33}, 24 | { 1, 2-1, 2-1, 0, 7,htd01}, 25 | { 2, 3-1, 3-1, 0, 17,htd02}, 26 | { 3, 3-1, 3-1, 0, 17,htd03}, 27 | - { 4, 0-1, 0-1, 0, 0, htd33}, 28 | + { 4, UINT_MAX, UINT_MAX, 0, 0, htd33}, 29 | { 5, 4-1, 4-1, 0, 31,htd05}, 30 | { 6, 4-1, 4-1, 0, 31,htd06}, 31 | { 7, 6-1, 6-1, 0, 71,htd07}, 32 | @@ -564,7 +565,7 @@ const HUFFMANCODETABLE MPEGaudio::ht[HTN 33 | {11, 8-1, 8-1, 0,127,htd11}, 34 | {12, 8-1, 8-1, 0,127,htd12}, 35 | {13,16-1,16-1, 0,511,htd13}, 36 | - {14, 0-1, 0-1, 0, 0, htd33}, 37 | + {14, UINT_MAX, UINT_MAX, 0, 0, htd33}, 38 | {15,16-1,16-1, 0,511,htd15}, 39 | {16,16-1,16-1, 1,511,htd16}, 40 | {17,16-1,16-1, 2,511,htd16}, 41 | -------------------------------------------------------------------------------- /smpeg/smpeg-no-gtk.patch: -------------------------------------------------------------------------------- 1 | From 62cda978596a323cd7042722f906df906007e5b5 Mon Sep 17 00:00:00 2001 2 | From: Cosimo Cecchi 3 | Date: Sat, 15 Apr 2017 13:24:39 -0700 4 | Subject: [PATCH] Comment out GTK detection 5 | 6 | --- 7 | configure.in | 14 +++++++------- 8 | 1 file changed, 7 insertions(+), 7 deletions(-) 9 | 10 | diff --git a/configure.in b/configure.in 11 | index 20b1355..2cb4753 100644 12 | --- a/configure.in 13 | +++ b/configure.in 14 | @@ -208,13 +208,13 @@ AC_ARG_ENABLE(gtk_player, 15 | [ --enable-gtk-player build a GTk sample SMPEG player [default=yes]], 16 | , enable_gtk_player=yes) 17 | have_gtk=no 18 | -if test x$enable_gtk_player = xyes; then 19 | - AM_PATH_GTK(1.2.1, have_gtk=yes) 20 | - if test x$have_gtk = xyes; then 21 | - CFLAGS="$CFLAGS $GTK_CFLAGS" 22 | - fi 23 | - AC_SUBST(GTK_LIBS) 24 | -fi 25 | +dnl if test x$enable_gtk_player = xyes; then 26 | +dnl AM_PATH_GTK(1.2.1, have_gtk=yes) 27 | +dnl if test x$have_gtk = xyes; then 28 | +dnl CFLAGS="$CFLAGS $GTK_CFLAGS" 29 | +dnl fi 30 | +dnl AC_SUBST(GTK_LIBS) 31 | +dnl fi 32 | AM_CONDITIONAL(HAVE_GTK, test x$have_gtk = xyes) 33 | 34 | dnl See if we can build the Mesa player 35 | -- 36 | 2.12.2 37 | 38 | -------------------------------------------------------------------------------- /squashfs-tools/squashfs-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "squashfs-tools", 3 | "buildsystem": "simple", 4 | "build-commands": [ 5 | "XZ_SUPPORT=1 LZO_SUPPORT=1 ZSTD_SUPPORT=1 GZIP_SUPPORT=1 make -C squashfs-tools -j ${FLATPAK_BUILDER_N_JOBS} install INSTALL_DIR=${FLATPAK_DEST}/bin INSTALL_MANPAGES_DIR=${FLATPAK_DEST}/man/man1" 6 | ], 7 | "cleanup": [ 8 | "/man" 9 | ], 10 | "sources": [ 11 | { 12 | "type": "git", 13 | "url": "https://github.com/plougher/squashfs-tools.git", 14 | "tag": "4.6.1", 15 | "commit": "d8cb82d9840330f9344ec37b992595b5d7b44184", 16 | "x-checker-data": { 17 | "type": "git", 18 | "tag-pattern": "^([\\d.]+)$" 19 | } 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /update-checker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | git config --global --add safe.directory /github/workspace 6 | 7 | function reset_to_master() { 8 | current_branch="$(git rev-parse --abbrev-ref HEAD)" 9 | 10 | if [[ -n $(git status --porcelain) ]]; then 11 | echo "Uncommitted changes present" 12 | exit 1 13 | fi 14 | 15 | if [[ "$current_branch" == update-* ]]; then 16 | echo "Resetting to master branch" 17 | git checkout master 18 | fi 19 | } 20 | 21 | # Args to pass to the data checker 22 | args=("--update" "--never-fork") 23 | exclusions=( 24 | "./gtk2/gtk2-common-themes.json" 25 | ) 26 | # Initialize an array to store file paths 27 | file_paths=() 28 | 29 | # Iterate over directories next to the script 30 | for dir in ./*/; do 31 | # Search for files with the extensions .yaml, .yml, and .json 32 | files=("$dir"*.yaml "$dir"*.yml "$dir"*.json) 33 | 34 | # Iterate over the files 35 | for file in "${files[@]}"; do 36 | # Check if the file exists and contains "x-checker-data" 37 | if [[ -f "$file" ]] && grep -q "x-checker-data" "$file"; then 38 | # Add the file path to the array 39 | file_paths+=("$file") 40 | fi 41 | done 42 | done 43 | 44 | # Print the file paths in the array 45 | for path in "${file_paths[@]}"; do 46 | if [[ " ${exclusions[*]} " == *" $path "* ]]; then 47 | echo "Skipping excluded file: $path" 48 | continue 49 | fi 50 | echo "Running data checker on: $path" 51 | 52 | # If we're not running in a container, use the Flatpak. Else, assume we're 53 | # running in a container and call the data checker directly. 54 | if [[ ! -f /run/.containerenv && ! -f /.dockerenv ]]; then 55 | flatpak run --filesystem="$(pwd)" org.flathub.flatpak-external-data-checker "${args[@]}" "$path" || true 56 | reset_to_master 57 | else 58 | /app/flatpak-external-data-checker "${args[@]}" "$path" || true 59 | reset_to_master 60 | fi 61 | done 62 | 63 | -------------------------------------------------------------------------------- /vorbisgain/0001-temp_files.patch: -------------------------------------------------------------------------------- 1 | Description: Apply patch to use temp files, which are dependent 2 | on the file which is beeing processed, instead always using the same 3 | filename, which can result to data loss in scenarios where two or more 4 | vorbis processes are running parallel. 5 | Author: Pavel N. Krivitsky 6 | Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505164 7 | Forwarded: no 8 | --- 9 | vorbis.c | 17 +++++++++-------- 10 | 1 file changed, 9 insertions(+), 8 deletions(-) 11 | 12 | --- a/vorbis.c 13 | +++ b/vorbis.c 14 | @@ -56,7 +56,7 @@ 15 | #define PROGRESS_FORMAT_SIZE 8 16 | #define MIN_FILENAME_SIZE 5 17 | #define MIN_MIDDLE_TRUNCATE_SIZE 20 18 | -#define TEMP_NAME "vorbisgain.tmpXXXXXX" 19 | +#define TEMP_EXT ".vgain.tmpXXXXXX" 20 | 21 | 22 | /** 23 | @@ -684,11 +684,10 @@ 24 | } 25 | } 26 | 27 | - /* Make sure temp is in same folder as file. And yes, the malloc is larger 28 | - * than necessary (and not always needed). Lets keep it simple though (at 29 | - * the expense of a few bytes)... 30 | + /* Construct a temporary file name by appending TEMP_EXT to 31 | + * the name of the file being modified. 32 | */ 33 | - temp_name = malloc(strlen(filename) + sizeof(TEMP_NAME)); 34 | + temp_name = malloc(strlen(filename)*sizeof(char) + sizeof(TEMP_EXT)); 35 | 36 | if (temp_name == NULL) 37 | { 38 | @@ -697,7 +696,7 @@ 39 | } 40 | 41 | strcpy(temp_name, filename); 42 | - strcpy((char *) last_path(temp_name), TEMP_NAME); 43 | + strcat(temp_name, TEMP_EXT); 44 | 45 | #ifdef WIN32 46 | temp_name = _mktemp(temp_name); 47 | @@ -779,6 +778,7 @@ 48 | file_error(_("Note: Couldn't set mode for file '%s': "), filename); 49 | } 50 | 51 | +#if 0 /* Disable for Debian, this surprises people and is not useful --liw */ 52 | utime_buf.actime = stat_buf.st_atime; 53 | utime_buf.modtime = stat_buf.st_mtime; 54 | 55 | @@ -786,6 +786,7 @@ 56 | { 57 | file_error(_("Note: Couldn't set time for file '%s': "), filename); 58 | } 59 | +#endif 60 | 61 | result = 0; 62 | 63 | @@ -817,10 +818,10 @@ 64 | 65 | if (delete_temp) 66 | { 67 | - if (remove(TEMP_NAME) != 0) 68 | + if (remove(temp_name) != 0) 69 | { 70 | file_error(_("Note: Couldn't remove temporary file '%s': "), 71 | - TEMP_NAME); 72 | + temp_name); 73 | } 74 | } 75 | 76 | -------------------------------------------------------------------------------- /vorbisgain/0002-errno.patch: -------------------------------------------------------------------------------- 1 | Description: Zero errno before readdir call. 2 | From: http://bugs.debian.org/375110 3 | Forwarded: no 4 | --- 5 | recurse.c | 3 +++ 6 | 1 file changed, 3 insertions(+) 7 | 8 | --- a/recurse.c 9 | +++ b/recurse.c 10 | @@ -408,6 +408,7 @@ 11 | */ 12 | static int read_dir(DIRECTORY *directory) 13 | { 14 | + errno = 0; 15 | directory->entry = readdir(directory->dir); 16 | 17 | if (directory->entry != NULL) 18 | @@ -622,6 +623,7 @@ 19 | /* Check for wildcards */ 20 | settings->pattern = last_path(my_path); 21 | 22 | +#if 0 /* Disable for Debian, as it suprises people. --liw */ 23 | if (contains_pattern(settings->pattern)) 24 | { 25 | /* Strip last part of path */ 26 | @@ -637,6 +639,7 @@ 27 | } 28 | } 29 | else 30 | +#endif 31 | { 32 | settings->pattern = NULL; 33 | } 34 | -------------------------------------------------------------------------------- /vorbisgain/0003-manpage.patch: -------------------------------------------------------------------------------- 1 | Description: Man page says --silent, should be --skip 2 | From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=355783 3 | Forwarded: no 4 | --- 5 | vorbisgain.1 | 60 ++++++++++++----------------------------------------------- 6 | 1 file changed, 13 insertions(+), 47 deletions(-) 7 | 8 | --- a/vorbisgain.1 9 | +++ b/vorbisgain.1 10 | @@ -2,10 +2,8 @@ 11 | .\" groff -man -Tascii vorbisgain.1 12 | .\" 13 | .TH vorbisgain 1 "2004 Jan 3" "" "VorbisGain" 14 | - 15 | .SH NAME 16 | vorbisgain \- calculate the replay gain for Ogg Vorbis files 17 | - 18 | .SH SYNOPSIS 19 | .B vorbisgain 20 | [ 21 | @@ -16,7 +14,6 @@ 22 | .I album gain 23 | ] 24 | .I input_files \fR... 25 | - 26 | .SH DESCRIPTION 27 | .B vorbisgain 28 | calculates the ReplayGain values for the named Ogg Vorbis input files and 29 | @@ -27,7 +24,6 @@ 30 | uses a default target level of 89 dB, rather than the 83 dB recommended by the 31 | ReplayGain standard, when calculating the gain to apply. (Some players include 32 | a pre-amplification setting with which the target level can be changed.) 33 | - 34 | .PP 35 | .B vorbisgain 36 | input files must be Ogg Vorbis I files with 1 or 2 channels and a sample rate 37 | @@ -35,21 +31,16 @@ 38 | kHz. If an input file contains multiple streams (i.e., it is chained), the 39 | streams must all have the same format, in terms of sampling frequency and 40 | number of channels. 41 | - 42 | .PP 43 | All streams in a chained file are processed, but the ReplayGain tags are 44 | only written to (or removed from) the first stream. 45 | - 46 | .SH OPTIONS 47 | - 48 | .IP "-h, --help" 49 | Show command help. 50 | - 51 | .IP "-a, --album" 52 | Activates album mode, in which the album gain (sometimes called the audiophile 53 | gain) is calculated in addition to the track gain (sometimes called the radio 54 | gain). 55 | - 56 | .IP "-g n, --album-gain=n" 57 | Sets the album gain value to use. Default is to calculate it, if 58 | .I -a 59 | @@ -59,38 +50,31 @@ 60 | dB, specifying the 61 | .B change 62 | in volume that should be applied. 63 | - 64 | .IP "-c, --clean" 65 | Remove any ReplayGain tags from the specified files. If a file does not 66 | contain any ReplayGain tags, the file is not modified. 67 | - 68 | .IP "-C, --convert" 69 | Convert old format ReplayGain tags to a new format (see section TAG FORMAT 70 | below for details). If a file does not contain all ReplayGain tags that are 71 | needed for a conversion, the file is not modified. The album peak tag is 72 | only created if 73 | .I -a 74 | -is specified, and the album gain value is then checked for concistency. 75 | +is specified, and the album gain value is then checked for consistency. 76 | Otherwise any album gain is converted without any checks. 77 | - 78 | .IP "-d, --display-only" 79 | Display the result only; do not write anything to disk. This applies to all 80 | options. 81 | - 82 | .IP "-f, --fast" 83 | Only calculate the gain for files that do not contain all replay gain tags 84 | needed (the album gain and peak tags are only considered if 85 | .I -a 86 | has been specified). 87 | - 88 | .IP "-n, --no-progress" 89 | Only display results, but don't show progress in percentages and times. This 90 | can be useful if the output is piped into other programs. 91 | - 92 | .IP "-q, --quiet" 93 | Do not display any output while processing. Only error and warning messages will 94 | be printed. 95 | - 96 | .IP "-r, --recursive" 97 | Enter directories (recursively) and search for files, if directories or file 98 | patterns are specified. 99 | @@ -98,65 +82,51 @@ 100 | Only available if 101 | .B vorbisgain 102 | was configured with --enable-recursive. 103 | - 104 | -.IP "-s, --silent" 105 | -Sliently skip any non-Vorbis files found. Vorbis files that can't be processed 106 | +.IP "-s, --skip" 107 | +Silently skip any non-Vorbis files found. Vorbis files that can't be processed 108 | for some reason are skipped as well, though not silently. Default is to stop 109 | when such files are encountered. 110 | - 111 | .IP "-v, --version" 112 | Display the version of the program. 113 | - 114 | .SH EXAMPLES 115 | - 116 | Simplest version. Calculate the track gain and peak only. 117 | .PP 118 | .RS 119 | vorbisgain somefile.ogg 120 | .RE 121 | - 122 | .PP 123 | Note that the following examples are only possible if 124 | .B vorbisgain 125 | was configured with --enable-recursive. 126 | - 127 | .PP 128 | Calculate the album gain and peak, in addition to the track gain and peak, for 129 | all .ogg files in the directory "music" (and all subdirectories). All files in 130 | one directory are treated as belonging to the same album. Files that already 131 | have ReplayGain tags are not re-calculated. Note the quotes, as they cause the 132 | shell to not do any filename globbing: 133 | - 134 | .PP 135 | .RS 136 | vorbisgain -a -f -r "music/*.ogg" 137 | .RE 138 | - 139 | .PP 140 | Calculate the album gain. The files specified before the directory "album" 141 | are treated as one album, the files in the directory "album" as another 142 | album and the remaining files as a third album: 143 | - 144 | .PP 145 | .RS 146 | vorbisgain -a -r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg 147 | .RE 148 | - 149 | .PP 150 | Remove all replaygain tags from a collection of oggs: 151 | - 152 | .PP 153 | .RS 154 | vorbisgain -c -r "music/*.ogg" 155 | .RE 156 | - 157 | .SH TAG FORMAT 158 | - 159 | .B vorbisgain 160 | creates tags like these (when in 161 | .I -a 162 | mode): 163 | - 164 | .PP 165 | .RS 166 | REPLAYGAIN_TRACK_GAIN=-7.03 dB 167 | @@ -170,18 +140,15 @@ 168 | .RS 169 | REPLAYGAIN_ALBUM_PEAK=1.21822226 170 | .RE 171 | - 172 | .PP 173 | Gain specifies how much the volume should be changed before playback, in dB. 174 | Peak is the maximum sample value of the file before any gain has been 175 | applied, where 1.0 means "full sample value" (32,767 when decoding to signed 176 | 16 bit samples). 177 | - 178 | .PP 179 | Earlier versions of 180 | .B vorbisgain 181 | (before 0.30) created the following tags: 182 | - 183 | .PP 184 | .RS 185 | RG_RADIO 186 | @@ -192,7 +159,6 @@ 187 | .RS 188 | RG_AUDIOPHILE 189 | .RE 190 | - 191 | .PP 192 | When 193 | .I -c 194 | @@ -200,44 +166,44 @@ 195 | REPLAYGAIN_TRACK_PEAK, RG_AUDIOPHILE to REPLAYGAIN_ALBUM_GAIN and 196 | REPLAYGAIN_ALBUM_PEAK is calculated as the maximum of all RG_PEAK tags in 197 | the album. 198 | - 199 | .SH AUTHORS 200 | - 201 | .TP 202 | Program Code: 203 | .br 204 | Gian-Carlo Pascutto 205 | .br 206 | Magnus Holmgren 207 | - 208 | .TP 209 | ReplayGain Analysis Code: 210 | .br 211 | Glen Sawyer 212 | .br 213 | Frank Klemm (http://www.uni-jena.de/~pfk/) 214 | - 215 | .TP 216 | Man Page: 217 | .br 218 | Magnus Holmgren 219 | - 220 | .SH BUGS 221 | - 222 | None known. 223 | - 224 | .SH SEE ALSO 225 | - 226 | .TP 227 | http://sjeng.org/vorbisgain.html 228 | Home page for VorbisGain. The latest version, and a Windows executable, 229 | can be found here. 230 | - 231 | .TP 232 | http://www.replaygain.org/ 233 | Contains detailed information about ReplayGain and how it is calculated. 234 | - 235 | .TP 236 | http://www.hydrogenaudio.org/ 237 | Discussion forum for audio compression and related issues, including Ogg 238 | Vorbis and VorbisGain. 239 | +.SH NOTE 240 | +The version of vorbisgain packaged for Debian differs in two ways from 241 | +the upstream version. First, it does not retain the modification time 242 | +of the input file: if tags are changed in a file, the mtime will change. 243 | +Second, it does not try to process wildcards in filenames. This makes 244 | +it impossible to say "process all foo*.ogg in all subdirectories", but 245 | +also avoids problems with filenames that actually contain wildcards. 246 | +Without this change, "vorbisgain *.ogg" in a directory with a file that 247 | +contains a question mark would result in that file being treated as 248 | +being in a different album. 249 | -------------------------------------------------------------------------------- /vorbisgain/0004-vorbisgain_mtime.patch: -------------------------------------------------------------------------------- 1 | Description: When a file's metadata is updated, the mtime is changed 2 | to the current time. Whether this is correct or not is often a 3 | religious issue (metadata-vs-data), but, generally, all other 4 | tag-editing software choose to keep the timestamp. 5 | . 6 | Since the upstream fixed the issue, it is bad to ignore the fix 7 | altogether. At the very least, there should be a command-line 8 | option to follow the upstream and The Only Right(tm) behaviour. 9 | Author: Adam Borowski 10 | Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=445958 11 | --- 12 | vorbis.c | 18 ++++++++++-------- 13 | vorbis.h | 2 +- 14 | vorbisgain.1 | 7 ++++++- 15 | vorbisgain.c | 20 ++++++++++++++------ 16 | vorbisgain.h | 1 + 17 | 5 files changed, 32 insertions(+), 16 deletions(-) 18 | 19 | --- a/vorbis.c 20 | +++ b/vorbis.c 21 | @@ -557,7 +557,8 @@ 22 | * message has been printed). 23 | */ 24 | int write_gains(const char *filename, float track_peak, float track_gain, 25 | - float album_peak, float album_gain, int verbose, int remove_tags) 26 | + float album_peak, float album_gain, int verbose, int remove_tags, 27 | + SETTINGS* settings) 28 | { 29 | struct stat stat_buf; 30 | struct utimbuf utime_buf; 31 | @@ -778,15 +779,16 @@ 32 | file_error(_("Note: Couldn't set mode for file '%s': "), filename); 33 | } 34 | 35 | -#if 0 /* Disable for Debian, this surprises people and is not useful --liw */ 36 | - utime_buf.actime = stat_buf.st_atime; 37 | - utime_buf.modtime = stat_buf.st_mtime; 38 | - 39 | - if (utime(filename, &utime_buf) != 0) 40 | + if (!settings->trample_mtime) 41 | { 42 | - file_error(_("Note: Couldn't set time for file '%s': "), filename); 43 | + utime_buf.actime = stat_buf.st_atime; 44 | + utime_buf.modtime = stat_buf.st_mtime; 45 | + 46 | + if (utime(filename, &utime_buf) != 0) 47 | + { 48 | + file_error(_("Note: Couldn't set time for file '%s': "), filename); 49 | + } 50 | } 51 | -#endif 52 | 53 | result = 0; 54 | 55 | --- a/vorbisgain.1 56 | +++ b/vorbisgain.1 57 | @@ -72,6 +72,10 @@ 58 | .IP "-n, --no-progress" 59 | Only display results, but don't show progress in percentages and times. This 60 | can be useful if the output is piped into other programs. 61 | +.IP "-p, --preserve-mtime" 62 | +Do not trample upon the timestamps of any files being worked on. This obeys 63 | +the expected data-vs-metadata behaviour, but can confuse some naive 64 | +archivers. 65 | .IP "-q, --quiet" 66 | Do not display any output while processing. Only error and warning messages will 67 | be printed. 68 | @@ -200,7 +204,8 @@ 69 | .SH NOTE 70 | The version of vorbisgain packaged for Debian differs in two ways from 71 | the upstream version. First, it does not retain the modification time 72 | -of the input file: if tags are changed in a file, the mtime will change. 73 | +of the input file by default: if tags are changed in a file, the mtime will 74 | +change; you can specify "-p" to get the normal behaviour. 75 | Second, it does not try to process wildcards in filenames. This makes 76 | it impossible to say "process all foo*.ogg in all subdirectories", but 77 | also avoids problems with filenames that actually contain wildcards. 78 | --- a/vorbisgain.c 79 | +++ b/vorbisgain.c 80 | @@ -235,7 +235,7 @@ 81 | { 82 | if (write_gains(file->filename, file->track_peak, 83 | file->track_gain, album_peak, file->album_gain, 84 | - !settings->quiet, 0) < 0) 85 | + !settings->quiet, 0, settings) < 0) 86 | { 87 | return -1; 88 | } 89 | @@ -288,7 +288,7 @@ 90 | else 91 | { 92 | if (write_gains(file->filename, NO_PEAK, NO_GAIN, 93 | - NO_PEAK, NO_GAIN, !settings->quiet, 1) < 0) 94 | + NO_PEAK, NO_GAIN, !settings->quiet, 1, settings) < 0) 95 | { 96 | return -1; 97 | } 98 | @@ -425,7 +425,8 @@ 99 | if (!settings->album) 100 | { 101 | if (!settings->display_only && write_gains(file->filename, 102 | - file->track_peak, file->track_gain, NO_PEAK, NO_GAIN, 0, 0) < 0) 103 | + file->track_peak, file->track_gain, NO_PEAK, NO_GAIN, 0, 0, 104 | + settings) < 0) 105 | { 106 | return -1; 107 | } 108 | @@ -466,7 +467,7 @@ 109 | 110 | if (write_gains(file->filename, file->track_peak, 111 | file->track_gain, album_peak, album_gain, 112 | - !settings->quiet, 0) < 0) 113 | + !settings->quiet, 0, settings) < 0) 114 | { 115 | return -1; 116 | } 117 | @@ -497,6 +498,7 @@ 118 | fprintf(stderr, _(" -h, --help Print this help text\n")); 119 | fprintf(stderr, _(" -n, --no-progress Don't show progress, just print results\n")); 120 | fprintf(stderr, _(" -q, --quiet Don't print any output (except errors)\n")); 121 | + fprintf(stderr, _(" -p, --preserve-mtime Don't change the timestamps\n")); 122 | #ifdef ENABLE_RECURSIVE 123 | fprintf(stderr, _(" -r, --recursive Search for files recursivly, each folder as an album\n")); 124 | #endif 125 | @@ -522,6 +524,7 @@ 126 | {"fast", 0, NULL, 'f'}, 127 | {"help", 0, NULL, 'h'}, 128 | {"no-progress", 0, NULL, 'n'}, 129 | + {"preserve-mtime",0,NULL, 'p'}, 130 | {"quiet", 0, NULL, 'q'}, 131 | #ifdef ENABLE_RECURSIVE 132 | {"recursive", 0, NULL, 'r'}, 133 | @@ -533,9 +536,9 @@ 134 | 135 | 136 | #ifdef ENABLE_RECURSIVE 137 | -#define ARG_STRING "acCdfg:hnqrst:v" 138 | +#define ARG_STRING "acCdfg:hnpqrst:v" 139 | #else 140 | -#define ARG_STRING "acCdfg:hnqst:v" 141 | +#define ARG_STRING "acCdfg:hnpqst:v" 142 | #endif 143 | 144 | 145 | @@ -549,6 +552,7 @@ 146 | memset(&settings, 0, sizeof(settings)); 147 | settings.first_file = 1; 148 | settings.album_gain = NO_GAIN; 149 | + settings.trample_mtime = 1; 150 | settings.show_progress = 1; 151 | 152 | #ifdef WIN32 153 | @@ -623,6 +627,10 @@ 154 | settings.show_progress = 0; 155 | break; 156 | 157 | + case 'p': 158 | + settings.trample_mtime = 0; 159 | + break; 160 | + 161 | case 'q': 162 | settings.quiet = 1; 163 | break; 164 | --- a/vorbisgain.h 165 | +++ b/vorbisgain.h 166 | @@ -31,6 +31,7 @@ 167 | int convert; /**< Convert old format tags to new format */ 168 | int display_only; 169 | int fast; /**< Skip files that already have all needed tags */ 170 | + int trample_mtime; 171 | int quiet; 172 | #ifdef ENABLE_RECURSIVE 173 | int recursive; 174 | --- a/vorbis.h 175 | +++ b/vorbis.h 176 | @@ -15,6 +15,6 @@ 177 | SETTINGS *settings); 178 | extern int write_gains(const char *filename, float track_peak, 179 | float track_gain, float album_gain, float album_peak, int verbose, 180 | - int remove_tags); 181 | + int remove_tags, SETTINGS *settings); 182 | 183 | #endif /* VG_VORBIS_H */ 184 | -------------------------------------------------------------------------------- /vorbisgain/0005-double_fclose.patch: -------------------------------------------------------------------------------- 1 | Description: Don't call fclose() twice. 2 | Author: Jonathan Neuschäfer 3 | Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=632947 4 | --- 5 | vorbis.c | 5 ----- 6 | 1 file changed, 5 deletions(-) 7 | 8 | --- a/vorbis.c 9 | +++ b/vorbis.c 10 | @@ -813,11 +813,6 @@ 11 | fclose(infile); 12 | } 13 | 14 | - if (infile != NULL) 15 | - { 16 | - fclose(infile); 17 | - } 18 | - 19 | if (delete_temp) 20 | { 21 | if (remove(temp_name) != 0) 22 | -------------------------------------------------------------------------------- /vorbisgain/0006-manpage_hyphens.patch: -------------------------------------------------------------------------------- 1 | Description: Resolved hyphen-used-as-minus-sign lintian complaints. 2 | Forwarded: no 3 | --- a/vorbisgain.1 4 | +++ b/vorbisgain.1 5 | @@ -85,7 +85,7 @@ 6 | .I Note: 7 | Only available if 8 | .B vorbisgain 9 | -was configured with --enable-recursive. 10 | +was configured with \-\-enable\-recursive. 11 | .IP "-s, --skip" 12 | Silently skip any non-Vorbis files found. Vorbis files that can't be processed 13 | for some reason are skipped as well, though not silently. Default is to stop 14 | @@ -101,7 +101,7 @@ 15 | .PP 16 | Note that the following examples are only possible if 17 | .B vorbisgain 18 | -was configured with --enable-recursive. 19 | +was configured with \-\-enable\-recursive. 20 | .PP 21 | Calculate the album gain and peak, in addition to the track gain and peak, for 22 | all .ogg files in the directory "music" (and all subdirectories). All files in 23 | @@ -110,7 +110,7 @@ 24 | shell to not do any filename globbing: 25 | .PP 26 | .RS 27 | -vorbisgain -a -f -r "music/*.ogg" 28 | +vorbisgain \-a \-f \-r "music/*.ogg" 29 | .RE 30 | .PP 31 | Calculate the album gain. The files specified before the directory "album" 32 | @@ -118,13 +118,13 @@ 33 | album and the remaining files as a third album: 34 | .PP 35 | .RS 36 | -vorbisgain -a -r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg 37 | +vorbisgain \-a \-r a.ogg b.ogg c.ogg album d.ogg e.ogg f.ogg 38 | .RE 39 | .PP 40 | Remove all replaygain tags from a collection of oggs: 41 | .PP 42 | .RS 43 | -vorbisgain -c -r "music/*.ogg" 44 | +vorbisgain \-c \-r "music/*.ogg" 45 | .RE 46 | .SH TAG FORMAT 47 | .B vorbisgain 48 | @@ -205,7 +205,7 @@ 49 | The version of vorbisgain packaged for Debian differs in two ways from 50 | the upstream version. First, it does not retain the modification time 51 | of the input file by default: if tags are changed in a file, the mtime will 52 | -change; you can specify "-p" to get the normal behaviour. 53 | +change; you can specify "\-p" to get the normal behaviour. 54 | Second, it does not try to process wildcards in filenames. This makes 55 | it impossible to say "process all foo*.ogg in all subdirectories", but 56 | also avoids problems with filenames that actually contain wildcards. 57 | -------------------------------------------------------------------------------- /vorbisgain/0007-recursively_spelling.patch: -------------------------------------------------------------------------------- 1 | Description: "recursivly" should be spelled "recursively". Thanks Adam. 2 | From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=661999 3 | Forwarded: no 4 | --- a/vorbisgain.c 5 | +++ b/vorbisgain.c 6 | @@ -500,7 +500,7 @@ 7 | fprintf(stderr, _(" -q, --quiet Don't print any output (except errors)\n")); 8 | fprintf(stderr, _(" -p, --preserve-mtime Don't change the timestamps\n")); 9 | #ifdef ENABLE_RECURSIVE 10 | - fprintf(stderr, _(" -r, --recursive Search for files recursivly, each folder as an album\n")); 11 | + fprintf(stderr, _(" -r, --recursive Search for files recursively, each folder as an album\n")); 12 | #endif 13 | fprintf(stderr, _(" -s, --skip Skip non-Vorbis or faulty files\n")); 14 | fprintf(stderr, _(" -v, --version Display version number and exit\n\n")); 15 | -------------------------------------------------------------------------------- /vorbisgain/0008-manpage_recursion_mistake.patch: -------------------------------------------------------------------------------- 1 | Description: The manpage shows methods that don't work. They have been replaced. 2 | From: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=447402 3 | Forwarded: no 4 | --- a/vorbisgain.1 5 | +++ b/vorbisgain.1 6 | @@ -110,7 +110,7 @@ 7 | shell to not do any filename globbing: 8 | .PP 9 | .RS 10 | -vorbisgain \-a \-f \-r "music/*.ogg" 11 | +vorbisgain \-a \-f \-r music/ 12 | .RE 13 | .PP 14 | Calculate the album gain. The files specified before the directory "album" 15 | @@ -124,7 +124,7 @@ 16 | Remove all replaygain tags from a collection of oggs: 17 | .PP 18 | .RS 19 | -vorbisgain \-c \-r "music/*.ogg" 20 | +vorbisgain \-c \-r music/ 21 | .RE 22 | .SH TAG FORMAT 23 | .B vorbisgain 24 | -------------------------------------------------------------------------------- /vorbisgain/0009-hardening.patch: -------------------------------------------------------------------------------- 1 | Description: Allow build with dh compat level 9 (debian build flags) 2 | Forwarded: no 3 | --- a/misc.c 4 | +++ b/misc.c 5 | @@ -56,7 +56,7 @@ 6 | vfprintf(stderr, message, args); 7 | va_end(args); 8 | 9 | - fprintf(stderr, strerror(err_num)); 10 | + fputs(strerror(err_num), stderr); 11 | fprintf(stderr, "\n"); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /vorbisgain/0010-fclose.patch: -------------------------------------------------------------------------------- 1 | Solve "too many open files" by closing those which are not compatible with vorbisgain. Thanks to Marcel Rehberg for the patch. 2 | --- a/vorbis.c 3 | +++ b/vorbis.c 4 | @@ -357,7 +357,8 @@ 5 | { 6 | vorbis_error(result, _("Couldn't process '%s': "), filename); 7 | } 8 | - 9 | + // make sure file is closed, since ov_open failed we are still responsible 10 | + fclose(file); 11 | return -1; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /vorbisgain/README.md: -------------------------------------------------------------------------------- 1 | Vorbisgain comes in two version; 2 | - The main source: https://sjeng.org/ftp/vorbis/ 3 | - The Debian version: http://deb.debian.org/debian/pool/main/v/vorbisgain/ 4 | 5 | The catch is... Debian has 10 patches: 6 | - 0001-temp_files.patch 7 | - 0002-errno.patch 8 | - 0003-manpage.patch 9 | - 0004-vorbisgain_mtime.patch 10 | - 0005-double_fclose.patch 11 | - 0006-manpage_hyphens.patch 12 | - 0007-recursively_spelling.patch 13 | - 0008-manpage_recursion_mistake.patch 14 | - 0009-hardening.patch 15 | - 0010-fclose.patch 16 | 17 | Of particular concern are 0005, 0009 and 0010 which might have implications for memory-leaks and string inputs. 18 | 19 | ## Other points of concern 20 | 21 | https://pkgs.org/download/vorbisgain 22 | 23 | Lots of distributions don't include these patches as well, but I prefer to stick with the tried and tested package from Debian. 24 | -------------------------------------------------------------------------------- /vorbisgain/vorbisgain_0.37-2.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vorbisgain", 3 | "buildsystem": "autotools", 4 | "cleanup": [ 5 | "/man" 6 | ], 7 | "sources": [ 8 | { 9 | "type": "archive", 10 | "url": "http://deb.debian.org/debian/pool/main/v/vorbisgain/vorbisgain_0.37.orig.tar.gz", 11 | "sha256": "dd6db051cad972bcac25d47b4a9e40e217bb548a1f16328eddbb4e66613530ec" 12 | }, 13 | { 14 | "type": "patch", 15 | "paths": [ 16 | "0001-temp_files.patch", 17 | "0002-errno.patch", 18 | "0003-manpage.patch", 19 | "0004-vorbisgain_mtime.patch", 20 | "0005-double_fclose.patch", 21 | "0006-manpage_hyphens.patch", 22 | "0007-recursively_spelling.patch", 23 | "0008-manpage_recursion_mistake.patch", 24 | "0009-hardening.patch", 25 | "0010-fclose.patch" 26 | ] 27 | } 28 | ] 29 | } 30 | --------------------------------------------------------------------------------