@pheem49/mint 1.8.1 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/Cargo.lock +3 -3
  2. package/Cargo.toml +1 -1
  3. package/README.md +0 -17
  4. package/Release_Note.md +137 -58
  5. package/bin/mint +0 -0
  6. package/crates/mint-cli/src/agent.rs +150 -45
  7. package/crates/mint-cli/src/image.rs +8 -8
  8. package/crates/mint-cli/src/main.rs +929 -412
  9. package/crates/mint-cli/src/onboard.rs +108 -108
  10. package/crates/mint-cli/src/setup.rs +143 -143
  11. package/crates/mint-core/src/agent_loop.rs +1 -0
  12. package/crates/mint-core/src/api_server.rs +108 -52
  13. package/crates/mint-core/src/browser.rs +56 -1
  14. package/crates/mint-core/src/channels.rs +1 -0
  15. package/crates/mint-core/src/chat.rs +126 -8
  16. package/crates/mint-core/src/code_tools.rs +18 -20
  17. package/crates/mint-core/src/config.rs +245 -17
  18. package/crates/mint-core/src/image_gen.rs +5 -5
  19. package/crates/mint-core/src/lib.rs +16 -2
  20. package/crates/mint-core/src/memory.rs +6 -1
  21. package/crates/mint-core/src/orchestration.rs +260 -72
  22. package/crates/mint-core/src/pictures.rs +3 -4
  23. package/crates/mint-core/src/semantic.rs +1 -1
  24. package/crates/mint-core/src/shell.rs +1 -1
  25. package/crates/mint-core/src/skills.rs +46 -19
  26. package/crates/mint-core/src/tts.rs +3 -1
  27. package/flatpak/com.pheem49.mint.desktop +9 -0
  28. package/flatpak/com.pheem49.mint.metainfo.xml +35 -0
  29. package/flatpak/com.pheem49.mint.yaml +52 -0
  30. package/package.json +1 -1
  31. package/shared-modules/.github/workflows/ci.yml +120 -0
  32. package/shared-modules/.github/workflows/update.yaml +28 -0
  33. package/shared-modules/CODEOWNERS +23 -0
  34. package/shared-modules/README.md +79 -0
  35. package/shared-modules/SDL/README.md +3 -0
  36. package/shared-modules/SDL/SDL-1.2.15.json +51 -0
  37. package/shared-modules/SDL/SDL_Pango-0.1.2-API-adds.patch +118 -0
  38. package/shared-modules/SDL/SDL_image-1.2.12.json +25 -0
  39. package/shared-modules/SDL/SDL_mixer-1.2.12.json +27 -0
  40. package/shared-modules/SDL/SDL_net-1.2.8.json +19 -0
  41. package/shared-modules/SDL/SDL_pango-0.1.2.json +26 -0
  42. package/shared-modules/SDL/SDL_ttf-2.0.11.json +28 -0
  43. package/shared-modules/SDL/libsdl-1.2.15-strict-prototypes.patch +316 -0
  44. package/shared-modules/SDL/sdl-check-for-SDL_VIDEO_X11_BACKINGSTORE.patch +24 -0
  45. package/shared-modules/SDL/sdl-libx11-build.patch +59 -0
  46. package/shared-modules/SDL/sdl-sysloadso-buffer-length.patch +27 -0
  47. package/shared-modules/SDL/sdl12-compat.json +22 -0
  48. package/shared-modules/SDL2/SDL2_image.json +27 -0
  49. package/shared-modules/SDL2/SDL2_ttf.json +29 -0
  50. package/shared-modules/cld2/CMakeLists.txt +157 -0
  51. package/shared-modules/cld2/cld2.json +24 -0
  52. package/shared-modules/clutter/clutter.json +72 -0
  53. package/shared-modules/dbus-glib/dbus-glib.json +29 -0
  54. package/shared-modules/glew/glew.json +36 -0
  55. package/shared-modules/glu/glu-9.json +12 -0
  56. package/shared-modules/gtk2/arc-gtk2-theme-Replace-Inkscape-dependency-with-rsvg-convert.patch +180 -0
  57. package/shared-modules/gtk2/gtk2-common-themes.json +360 -0
  58. package/shared-modules/gtk2/gtk2-fix-crash-in-show-uri.patch +30 -0
  59. package/shared-modules/gtk2/gtk2-gcc14.patch +281 -0
  60. package/shared-modules/gtk2/gtk2-gcc15.patch +250 -0
  61. package/shared-modules/gtk2/gtk2-murrine-c99.patch +34 -0
  62. package/shared-modules/gtk2/gtk2-use-adwaita-theme.patch +80 -0
  63. package/shared-modules/gtk2/gtk2.json +120 -0
  64. package/shared-modules/gtk2/ibus-gcc15.patch +13 -0
  65. package/shared-modules/gtk2/murrine-engine-fix-crash.patch +12 -0
  66. package/shared-modules/gtk2/readme.md +10 -0
  67. package/shared-modules/intltool/intltool-0.51.json +20 -0
  68. package/shared-modules/intltool/intltool-perl5.26-regex-fixes.patch +59 -0
  69. package/shared-modules/lame/0001-Build-xmm_quantize_sub.c-with-msse.patch +34 -0
  70. package/shared-modules/lame/0002-Include-GTK-1-autoconf-directives-in-build-system.patch +222 -0
  71. package/shared-modules/lame/0003-Patch-out-remaining-ansi2knr.patch +70 -0
  72. package/shared-modules/lame/0004-initscr-is-not-used-anywhere-in-lame-sourcetree.patch +41 -0
  73. package/shared-modules/lame/0005-Update-autoconf.patch +81 -0
  74. package/shared-modules/lame/lame-3.99.5.json +32 -0
  75. package/shared-modules/libappindicator/libappindicator-gtk2-12.10.json +140 -0
  76. package/shared-modules/libappindicator/libappindicator-gtk3-12.10.json +140 -0
  77. package/shared-modules/libappindicator/libappindicator-gtk3-introspection-12.10.json +140 -0
  78. package/shared-modules/libappindicator/patches/0001-libappindicator-ftbfs.patch +20 -0
  79. package/shared-modules/libappindicator/patches/0002-libappindicator-no-python.patch +888 -0
  80. package/shared-modules/libappindicator/patches/0003-libappindicator-fix-crash-from-incorrect-signal-emission.patch +74 -0
  81. package/shared-modules/libappindicator/patches/0004-libappindicator-fix-crash-iterating-icon-themes.patch +11 -0
  82. package/shared-modules/libayatana-appindicator/0001-Fix-HAVE_VALGRIND-AM_CONDITIONAL.patch +51 -0
  83. package/shared-modules/libayatana-appindicator/0001-Make-introspection-configurable.patch +44 -0
  84. package/shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json +121 -0
  85. package/shared-modules/libcanberra/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch +123 -0
  86. package/shared-modules/libcanberra/libcanberra.json +44 -0
  87. package/shared-modules/libmad/libmad.json +19 -0
  88. package/shared-modules/libsecret/libsecret.json +23 -0
  89. package/shared-modules/libsoup/libsoup-2.4.json +14 -0
  90. package/shared-modules/libusb/libusb.json +27 -0
  91. package/shared-modules/linux-audio/dssi.json +31 -0
  92. package/shared-modules/linux-audio/fftw3f-static.json +44 -0
  93. package/shared-modules/linux-audio/fftw3f.json +42 -0
  94. package/shared-modules/linux-audio/fluidsynth2-static.json +36 -0
  95. package/shared-modules/linux-audio/fluidsynth2.json +25 -0
  96. package/shared-modules/linux-audio/ladspa.json +26 -0
  97. package/shared-modules/linux-audio/lash.json +35 -0
  98. package/shared-modules/linux-audio/libinstpatch.json +16 -0
  99. package/shared-modules/linux-audio/liblo-static.json +22 -0
  100. package/shared-modules/linux-audio/liblo.json +17 -0
  101. package/shared-modules/linux-audio/lilv-static.json +94 -0
  102. package/shared-modules/linux-audio/lilv.json +89 -0
  103. package/shared-modules/linux-audio/lrdf.json +57 -0
  104. package/shared-modules/linux-audio/lv2.json +20 -0
  105. package/shared-modules/linux-audio/patches/lash/0001-configure-remove-aclocal-m4.patch +29 -0
  106. package/shared-modules/linux-audio/patches/lash/0002-Fix-build-with-recent-gcc.patch +73 -0
  107. package/shared-modules/linux-audio/patches/lash/0003-Fix-linking.patch +136 -0
  108. package/shared-modules/linux-audio/patches/raptor-libxml.patch +31 -0
  109. package/shared-modules/linux-audio/patches/stk-install.sh +54 -0
  110. package/shared-modules/linux-audio/stk.json +28 -0
  111. package/shared-modules/lua5.1/0004-Fix-stack-overflow-in-vararg-functions.patch +21 -0
  112. package/shared-modules/lua5.1/lua-5.1.5-so.patch +43 -0
  113. package/shared-modules/lua5.1/lua-5.1.5.json +42 -0
  114. package/shared-modules/lua5.3/lua-5.3.5.json +41 -0
  115. package/shared-modules/lua5.3/lua.pc.in +8 -0
  116. package/shared-modules/lua5.3/luaconf.patch +47 -0
  117. package/shared-modules/lua5.3/makefile-add-liblua.so-rule.patch +47 -0
  118. package/shared-modules/lua5.4/lua-5.4.json +41 -0
  119. package/shared-modules/lua5.4/lua.pc.in +8 -0
  120. package/shared-modules/lua5.4/luaconf.patch +34 -0
  121. package/shared-modules/lua5.4/makefile-add-liblua.so-rule.patch +42 -0
  122. package/shared-modules/luajit/luajit.json +30 -0
  123. package/shared-modules/lzo/lzo.json +27 -0
  124. package/shared-modules/mac/mac.json +18 -0
  125. package/shared-modules/physfs/physfs.json +26 -0
  126. package/shared-modules/pygame/audiofile-gcc6.patch +21 -0
  127. package/shared-modules/pygame/cython-fixes.patch +34 -0
  128. package/shared-modules/pygame/fluidsynth-no-rawmidi.patch +69 -0
  129. package/shared-modules/pygame/glib.patch +25 -0
  130. package/shared-modules/pygame/pygame1-python2.json +157 -0
  131. package/shared-modules/pygtk/pygtk-c99.patch +15 -0
  132. package/shared-modules/pygtk/pygtk.json +117 -0
  133. package/shared-modules/pygtk/pygtk.patch +39 -0
  134. package/shared-modules/python2.7/python-2.7.json +48 -0
  135. package/shared-modules/smpeg/smpeg-0.4.5.json +50 -0
  136. package/shared-modules/smpeg/smpeg-am-prog-as.patch +12 -0
  137. package/shared-modules/smpeg/smpeg-export-mpegaudio-class.patch +17 -0
  138. package/shared-modules/smpeg/smpeg-gcc6.patch +40 -0
  139. package/shared-modules/smpeg/smpeg-no-gtk.patch +37 -0
  140. package/shared-modules/squashfs-tools/squashfs-tools.json +25 -0
  141. package/shared-modules/update-checker.sh +50 -0
  142. package/shared-modules/vorbisgain/0001-temp_files.patch +75 -0
  143. package/shared-modules/vorbisgain/0002-errno.patch +33 -0
  144. package/shared-modules/vorbisgain/0003-manpage.patch +248 -0
  145. package/shared-modules/vorbisgain/0004-vorbisgain_mtime.patch +183 -0
  146. package/shared-modules/vorbisgain/0005-double_fclose.patch +21 -0
  147. package/shared-modules/vorbisgain/0006-manpage_hyphens.patch +56 -0
  148. package/shared-modules/vorbisgain/0007-recursively_spelling.patch +14 -0
  149. package/shared-modules/vorbisgain/0008-manpage_recursion_mistake.patch +23 -0
  150. package/shared-modules/vorbisgain/0009-hardening.patch +13 -0
  151. package/shared-modules/vorbisgain/0010-fclose.patch +13 -0
  152. package/shared-modules/vorbisgain/README.md +23 -0
  153. package/shared-modules/vorbisgain/vorbisgain_0.37-2.json +29 -0
  154. package/src/renderer/shared/agentProgress.ts +145 -0
  155. package/src/renderer/shared/calculator.ts +52 -0
  156. package/src/renderer/shared/components/AgentActivityDrawer.tsx +72 -0
  157. package/src/renderer/shared/components/AgentActivityTable.tsx +85 -0
  158. package/src/renderer/shared/components/ApprovalCard.tsx +93 -0
  159. package/src/renderer/shared/components/ChatCodeBlock.tsx +75 -0
  160. package/src/renderer/shared/components/ThinkingBlock.tsx +101 -0
  161. package/src/renderer/shared/constants/models.ts +91 -0
  162. package/src/renderer/shared/platform.ts +82 -0
  163. package/src/renderer/shared/types.ts +140 -0
  164. package/src/renderer/shared/utils/agentActivity.ts +187 -0
  165. package/src/renderer/shared/utils/approval.ts +1 -0
  166. package/src/renderer/shared/utils/approval.tsx +64 -0
  167. package/src/renderer/shared/utils/fileIcons.ts +135 -0
  168. package/src/renderer/shared/utils/markdown.tsx +347 -0
  169. package/src/renderer/shared/utils/providers.ts +36 -0
  170. package/src/renderer/shared/utils/speech.ts +216 -0
  171. package/src/renderer/shared/utils/ui.ts +147 -0
  172. package/src/renderer/src/agentProgress.ts +11 -39
  173. package/src/renderer/src/calculator.ts +3 -46
  174. package/src/renderer/src/components/ChatPanel.tsx +219 -1308
  175. package/src/renderer/src/components/MintDashboard.tsx +67 -170
  176. package/src/renderer/src/components/PicturesLibrary.tsx +32 -8
  177. package/src/renderer/src/components/Settings/AgentsTab.tsx +381 -0
  178. package/src/renderer/src/components/Settings/AutomationTab.tsx +0 -22
  179. package/src/renderer/src/components/Settings/GeneralTab.tsx +256 -2
  180. package/src/renderer/src/components/SettingsWindow.tsx +120 -3
  181. package/src/renderer/src/components/WorkspacePanel.tsx +7 -125
  182. package/src/renderer/src/css/styles.css +100 -0
  183. package/src/renderer/src/tauri.ts +128 -143
  184. package/src/renderer/src-web/agentProgress.ts +11 -39
  185. package/src/renderer/src-web/calculator.ts +3 -46
  186. package/src/renderer/src-web/components/ChatPanel.tsx +219 -1306
  187. package/src/renderer/src-web/components/MintDashboard.tsx +42 -170
  188. package/src/renderer/src-web/components/PicturesLibrary.tsx +23 -29
  189. package/src/renderer/src-web/components/Settings/AgentsTab.tsx +381 -0
  190. package/src/renderer/src-web/components/Settings/AutomationTab.tsx +0 -22
  191. package/src/renderer/src-web/components/Settings/GeneralTab.tsx +254 -3
  192. package/src/renderer/src-web/components/SettingsWindow.tsx +127 -3
  193. package/src/renderer/src-web/css/styles.css +100 -0
  194. package/src/renderer/src-web/tauri.ts +180 -102
  195. package/src-tauri/src/desktop.rs +18 -16
  196. package/src-tauri/src/discord_rpc.rs +1 -1
  197. package/src-tauri/src/lib.rs +168 -40
  198. package/src-tauri/src/webhooks.rs +1 -0
  199. package/src-tauri/src/workflows.rs +1 -0
  200. package/src-tauri/tauri.conf.json +1 -1
@@ -0,0 +1,50 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ DEFAULT_BRANCH="master"
6
+
7
+ git config --global --add safe.directory /github/workspace
8
+
9
+ # Args to pass to the data checker
10
+ args=("--update" "--never-fork")
11
+ # Format: "./path/to/manifest_file.json"
12
+ exclusions=()
13
+ # Initialize an array to store file paths
14
+ file_paths=()
15
+
16
+ # Iterate over directories next to the script
17
+ for dir in ./*/; do
18
+ # Search for files with the extensions .yaml, .yml, and .json
19
+ files=("$dir"*.yaml "$dir"*.yml "$dir"*.json)
20
+
21
+ # Iterate over the files
22
+ for file in "${files[@]}"; do
23
+ # Check if the file exists and contains "x-checker-data"
24
+ if [[ -f "$file" ]] && grep -q "x-checker-data" "$file"; then
25
+ # Add the file path to the array
26
+ file_paths+=("$file")
27
+ fi
28
+ done
29
+ done
30
+
31
+ # Print the file paths in the array
32
+ for path in "${file_paths[@]}"; do
33
+ if [[ " ${exclusions[*]} " == *" $path "* ]]; then
34
+ echo "Skipping excluded file: $path"
35
+ continue
36
+ fi
37
+ echo "Running data checker on: $path"
38
+
39
+ # If we're not running in a container, use the Flatpak. Else, assume we're
40
+ # running in a container and call the data checker directly.
41
+ if [[ ! -f /run/.containerenv && ! -f /.dockerenv ]]; then
42
+ git switch -fC "$DEFAULT_BRANCH" origin/"$DEFAULT_BRANCH"
43
+ flatpak run --filesystem="$(pwd)" org.flathub.flatpak-external-data-checker "${args[@]}" "$path" || true
44
+ git switch -fC "$DEFAULT_BRANCH" origin/"$DEFAULT_BRANCH"
45
+ else
46
+ git switch -fC "$DEFAULT_BRANCH" origin/"$DEFAULT_BRANCH"
47
+ /app/flatpak-external-data-checker "${args[@]}" "$path" || true
48
+ git switch -fC "$DEFAULT_BRANCH" origin/"$DEFAULT_BRANCH"
49
+ fi
50
+ done
@@ -0,0 +1,75 @@
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 <pavel@krivitsky.name>
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
+
@@ -0,0 +1,33 @@
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
+ }
@@ -0,0 +1,248 @@
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 <gcp@sjeng.org>
205
+ .br
206
+ Magnus Holmgren <lear@algonet.se>
207
+ -
208
+ .TP
209
+ ReplayGain Analysis Code:
210
+ .br
211
+ Glen Sawyer <glensawyer@hotmail.com>
212
+ .br
213
+ Frank Klemm (http://www.uni-jena.de/~pfk/)
214
+ -
215
+ .TP
216
+ Man Page:
217
+ .br
218
+ Magnus Holmgren <lear@algonet.se>
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.
@@ -0,0 +1,183 @@
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 <kilobyte@angband.pl>
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 */
@@ -0,0 +1,21 @@
1
+ Description: Don't call fclose() twice.
2
+ Author: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
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)
@@ -0,0 +1,56 @@
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.
@@ -0,0 +1,14 @@
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"));