1 # Jirafeau's change log
3 ## Note about upgrading
5 "in-place upgrade" refers to this general procedure:
7 1. Backup your Jirafeau installation!
8 2. Block access to Jirafeau
9 3. Checkout the new version with Git using the [tagged release](https://gitlab.com/jirafeau/Jirafeau/tags)
10 * If you have installed Jirafeau just by uploading files on your server, you can download the desired version, overwrite/remove all files and chown/chmod files if needed. Keep a backup of your local configuration file tough.
11 4. With you browser, go to your Jirafeau root page
12 5. Follow the installation wizard, it should propose you the same data folder or even update automatically
13 6. Check your `/lib/config.local.php` and compare it with the `/lib/config.original.php` to see if new configuration items are available. If a new item is missing in your `config.local.php`, this may trigger some errors as Jirafeau may expect to have them.
15 ## Version 4.6.x (not yet released)
21 - Removed the download button and the corresponding link for encrypted files from the admin interface
22 - Fixed an issue with sending the wrong filesize after decrypting an encrypted file
23 - Fixed the possibility to bypass the check for CVE-2022-30110 (prevent preview of SVG images) by sending a manipulated HTTP request with a MIME type like "image/svg+XML".
24 - We now provide Docker images for AMD64 and ARM64 systems
25 - Lots of code refactoring and cleanup
26 - Few more little fixes
27 - Typo and spelling mistakes
28 - Upgrade from 4.6.0: in-place upgrade
30 New configuration items:
31 - `one_time_download_preselected` for preselecting the checkbox for deleting the file after the first download
35 - New configuration options for allowing to require, check or generate file download passwords
36 - Re-implemented server side encryption using PHP's `Sodium` extension (the formerly used `mcrypt` extension is deprecated)
37 - Keep and show basic download stats
38 - Removed Lighttpd's `mod_usertrack` from Docker config
39 - Added `<meta name="viewport"…` to template header to support responsive themes
40 - Removed usage of deprecated `strftime()` function
41 - Few more little fixes
42 - Typo and spelling mistakes
43 - Upgrade from 4.5.0: in-place upgrade
45 New configuration items:
46 - `download_password_requirement`, `download_password_gen_len`, `download_password_gen_chars`, `download_password_policy` and `download_password_policy_regex` for configuring file download passwords
47 - `admin_ip` for limiting access to the admin interface to certain IP addresses
48 - `admin_http_auth_user` is now an array (the possibility to use a string is preserved for backward compatibility)
52 - Even more new translation, thanks a lot to all contributors!
53 - Support for automatic dark theme
54 - Fixed wobling admin buttons (light and dark default themes)
55 - Disable file deduplication by default
56 - Fix side effects of setting too high values in php configuration for async upload
57 - Add support for X-Sendfile
58 - Retry on more type of possible errors
59 - Move docker image to PHP 8.1
60 - Print more error details in case of issue
61 - Few more little fixes
62 - IRC channel to discuss :)
64 New configuration items:
65 - `max_upload_chunk_size_bytes` option
67 - Defaulting `file_hash` option from `md5` to `random`
72 - Admin pannel can output informations for bug opening
74 - Fix autocomplete field for passwords
76 - Disallow file preview for image/svg+xml files
77 - Expiry after a fortnight (2 weeks)
78 - Typo and spelling mistakes
79 - Upgrade from 4.3.0: in-place upgrade
81 New configuration items:
82 - `fortnight` value in `availabilities` array (default to `true`)
86 - Fix various docker errors
87 - Fix various upload errors
88 - Add composer (useful for CI)
90 - Add option 'store_uploader_ip' to avoid uploaders ip logging
91 - Upgrade from 4.2.0: in-place upgrade
93 New configuration items:
94 - `store_uploader_ip` (default to `true`)
98 - New file_hash option to eventually speed-up file identification process
99 - one_time_download is now optional
100 - Litespeed workaround for large files
101 - Admin interface can compute data folder size
102 - REUSE compliance test
103 - multiple docker features: mcrypt support, daily cleanup, unprivileged user
104 - Add upload password capability in script options
105 - Various bugfixes around retries and error management
106 - Automatically lower chunk size sent to server refusing large chunks
107 - Romanian lang support and other various lang support
108 - Upgrade from 4.1.1: in-place upgrade
112 - Fix lang sanity check
113 - Upgrade from 4.1.0: in-place upgrade
117 - Fix upload password and allowed ip (#201)
118 - Code refactorisation of IP checking
119 - Fix expiration dates
120 - Add better support for Accept-Language
122 - More languages supported and language fixes
123 - Upgrade from 4.0.0: in-place upgrade
127 - Removed plain-text password support for admin auth (breaking change).
128 - Default folder sub-division to 8 characters (breaking change).
129 - New option `upload_ip_nopassword` to allow a list of IP to access Jirafeau without password
130 - Bugfix with LibreJS
131 - Other minor bug fixes
132 - More languages supported
134 ### Upgrade from 3.4.1 to 4.0.0
136 You may have to change your administrator password in your config file as admin password are only stored using sha256 (SHA2).
137 To do so, edit `lib/config.local.php` and update `admin_password` option using `echo -n MyNewPassw0rd | sha256sum` command.
139 Subfolder division changed in Jirafeau storage. You can either start from a fresh `var-` folder or you need to migrate your data.
141 In order to migrate your existing data:
142 1. Be sure to have a working backup of your Jirafeau instance and/or the rest of your hosting before any operation
143 2. Go to `var-` folder
144 3. Be sure you have read and write permissions on files and folders with your current user
145 4. Run the following commands:
147 # Migrate files folder
148 find files -type f ! -name "*_count" | while read f; do bn="$(basename "$f")"; dst="files/${bn:0:8}/${bn:8:8}/${bn:16:8}/${bn:24:8}/"; mkdir -p "$dst"; mv "$f" "$dst" ; mv "${f}_count" "$dst"; done; find files -maxdepth 1 -type d -iname "?" -exec rm -rf {} \;
149 # Migrate links folder
150 find links -type f | while read link; do bn="$(basename "$link")"; mkdir "links/$bn"; mv "$link" "links/$bn/"; done; find links -maxdepth 1 -type d -iname "?" -exec rm -rf {} \;
155 - Security fixes, thanks [Bishopfox Team](https://www.bishopfox.com/)
158 - Advertise JavaScript license for LibreJS compatibility
160 - Upgrade from 3.4.0: in-place upgrade
164 - Add encryption support in bash script
165 - Refactoring of lang system for simpler management
166 - Removed installation step asking for language
167 - Merged weblate contributions
168 - Fixed some spelling issues
169 - Upgrade from 3.3.0 : in-place upgrade
173 - Added Docker Support
174 - Added a copy button next to links to copy URLs in clipboard
175 - Now use a delete page to confirm file deletion (#136)
176 - Fixed object ProgressEvent Error (#127)
177 - Added configuration tips for web servers
180 - Removed useless alias API support (some old toy)
181 - Upgrade from 3.2.1 : in-place upgrade
185 - fix download view after an upload
186 - Upgrade from 3.2.0 : in-place upgrade
190 - Update translations from Update translations from weblate
192 - Fix regression on admin password setting
193 - Upgrade from 3.1.0 : in-place upgrade
197 - Fix regression on user authentication (see #113)
198 - Some cosmetic change
199 - Upgrade from 3.0.0 : in-place upgrade
203 - Remove XHTML doctype, support HTML5 only → breaking change for older browsers
204 - Remove redundant code
205 - Remove baseurl usage and set absolute links instead, which for example fixes SSL issues
206 - Extend contribution guide
207 - Switch to PSR-2 code style (fix line endings, indentations, whitespaces, etc)
208 - Declare system requirements
209 - Catch API errors in upload form
210 - Allow clients to upload files depending on IP or password
211 - Set UTC as timezone to prevent date/time issues
212 - Show readable date & time information
213 - Fix UI glitches in admin panel and upload form
214 - Upgrade from 2.0.0 : in-place upgrade
218 - Various documentation improvements
219 - Simplify automatic generation of local configuration file
221 - Bash Script: Enhanced help, show version, return link to web view as well
222 - »Terms of Service« refactored - Enable admin to overwrite the ToS, without changing existing source code → breaking, see upgrade notes
224 ### Upgrade from version 1.2.0 to 2.0.0
226 The "Terms of Service" text file changed.
227 To reuse a custom version of your ToS, move your ```/tos_text.php``` file to ```/lib/tos.local.txt``` and remove all HTML und PHP Tags, leaving a regular text file.
231 - Link on API page to generate bash script
232 - More informative error codes for API
233 - Security Fix: Prevent authentication bypass for admin interface
234 - CLI script to remove expired files automatically with a cron job
235 - SHA-256 hash the admin password
236 - New theme "elegantish"
237 - Fix for JavaScript MIME-Type, prevents blocking the resource on some servers
238 - Show download link for a file in admin interface
239 - Default time for expiration (set to 'month' by default)
240 - New expiration time: 'quarter'
241 - A lot of translation contributions
243 - Upgrade from 1.1: in-place upgrade
248 - Add optional server side encryption
249 - Unlimited file size upload using HTML5 file API
250 - Show speed and estimated time during upload
252 - A lot of new languages
253 - Small API to upload files
254 - Limit access to Jirafeau using IP, mask, passwords
255 - Manage (some) proxy headers
256 - Configure your maximal upload size
257 - Configure file's lifetime durations
259 - Get Jirafeau's version in admin interface
261 ### Upgrade from version 1.0 to 1.1
263 - Download URL changed. Add a rewrite rule in your web server configuration to rename ```file.php``` to ```f.php``` to make older, still existing links work again-
264 - The default theme changed. Optionally change the theme in ```lib/config.local.php``` to "courgette"
268 The very first version of Jirafeau after the fork of Jyraphe.
272 - Delete link for each upload
273 - No more clear text password storage
274 - Simple language support
275 - Add an admin interface
278 - New path system to manage large number of files
279 - New option to show a page at download time
280 - Add option to activate or not preview mode