| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Upstream fixes:
* Bug preventing buildings from being placed where there would be a
path/flooring tile in front of the door.
* Music not playing at the Luau festival and in town.
* Clients occasionally crashing in rainy weather.
* Server crash when there are no available network adapters.
* The load menu showing 'no saved games' while searching for files.
* Crash that occurred if you collided with a monster on the first
frame you entered a new location.
* Robin forgetting that she's meant to upgrade a farmhand cabin if
the farmhand disconnects abnormally.
* Farmhands not being able to set the next day's weather with rain
totems.
* Farmhands 'swimming' inside their cabins if they're disconnected
while swimming in the spa.
* Swimming-related visual bugs in on farmers' faces.
* Furniture rotation graphical glitch.
* A crash that occurs if you try to copy an invite code while
remotely logged into the machine the game is running on.
* A German localisation issue with '%Farm' appearing in text instead
of the farm's name.
* Spouse NPCs not kissing farmers.
Also some various internal changes requested on the modding wishlist.
The upstream URL with the release notes is:
https://community.playstarbound.com/threads/stardew-valley-multiplayer-known-issues-fixes.147892/
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
| |
This is part of Nix since version 2.0 and has been removed in
NixOS/nixpkgs@490ca6aa8ae89d0639e1e148774c3cd426fc699a as it's no longer
needed as a separate package.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @devhell
|
|
|
|
|
|
|
| |
This is used by Habitica and for maintaining my fork I sometimes[TM]
unfortunately have to edit .vue files.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From the official Obnam project homepage:
The Obnam project is retired. See
https://blog.liw.fi/posts/2017/08/13/retiring_obnam/ for more
information. Please use another backup solution instead.
Subsequently it has been removed in
NixOS/nixpkgs@8bb5c76365c3178c77980ffe7e1e5edb35d2f8d7.
I've removed the package here in Vuizvui, because it leads to an
evaluation error on Hydra.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @devhell
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is mainly to catch up with the syntax highlighting fixes that were
done in the respective plugins.
The setlocals in ftplugin/nix.vim from LnL7's plugin are now gone and
it's one setlocal with line continuation, so I had to turn the simple
grep into a small sed script.
Another thing I added while at it is to add the single quote to
iskeyword, because it can be part of a Nix identifier. I did that by
replacing the dash, because the latter now is part of the setlocal of
the aforementioned ftplugin.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
| |
These small fixes mark the end of the beta:
* Changes to the NetList events we added for modding
* Gift limits not resetting sometimes in single-player
So we now can finally get rid of the "stardew-valley-beta" attribute and
track the stable version from now on.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
The name "hook" is a not very good derivation name to distinguish it
from other hooks, so let's actually name them.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Thanks to @layus for pointing out that there is at least one other game
(Epistory) which has the same FMOD issue as Bastion has.
So I decided to move this into a setup hook that automatically discovers
whether it's the affected FMOD version and NOPs out the calls to
system().
In summary: If another game is affected, all that's needed now is to add
fixFmodHook to nativeBuildInputs.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @layus
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For Albion, Settlers 2 and World of Xeen we need to explicitly add
gogUnpackHook, because for those the derivation containing the game data
is not created via our buildGame wrapper.
Everything else is just done by removing unpackCmd and unzip from the
package arguments. One exception is Thimbleweed Park, which relied on
custom path for unzip in order to get the desktop icon, but with our now
hook, we get that icon now in xdg-icon.png with a flat directory
structure.
I've tested this by building all the games from GOG that we have
packaged here. However, I didn't test whether every single one actually
runs.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should make all the extra unpackCmd attributes for the GOG games
superfluous and make the expression way less convoluted, especially the
games based on Unity3D.
Right now however, the gogUnpackHook is added to buildGame, which is
used for all games, not only for the GOG ones. While it doesn't really
hurt or affect non-GOG games, it's still part of the build closure so we
might want to apply this to GOG only at some day.
For that, we need to restructure our whole packaging layout, because we
want to have a way to override buildGame only for a certain namespace
but without introducing too much churn or duplicating things.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @layus
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Upstream fixes:
* Bug with Magsphere spell not collecting projectiles as it should
* Bug with Frost Feint not freezing enemies when the decoy was struck
* Bug that caused Air Burst Dash effect to not show up
* Bug where Takeout Box would grant max shield in post boss PvP
battles
* Armor of Greed causing players to lose gold during post boss PvP
battles
* Bug that would end the game on double-ko situations during post boss
PvP battles
* Bug with loading screen not showing 2nd player on the game board
* Artifacting on the loading screen
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I've recently moved the autoPatchelfHook execution to postFixup in
NixOS/nixpkgs@f1fbf818c4a94c67fcdb171ba00f1fef4a0aef2a, because it was
conflicting with patchelf's own setup hook.
So we now need to run the fixup of libfmodex after the autoPatchelfHook,
which we do by adding another phase in postPhases.
Alongside this I also fixed a small escaping error with ${rpath:+:},
which needs to be quoted using two single quotes.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
User is likely to switch, so let's add Firefox alongside to Chromium and
eventually remove Chromium at some day.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @dwenola
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Upstream changes:
* Fix Grandpa's event and witch event happening simultaniously can
lock the game up
* Give full house achievement in player-player marriage births
* Fix Black screen (until you click) after player-player childbirth
* Fix children not appearing in farmhouse for player-player marriage
* Fix buildings evaluating current position as ineligible move space
* Fix prismatic shard rate too high after reaching bottom of mines
* Fix stardrop not rewarding for player-player marriages
* Fix instantly brewing wine
* Fix horse duplication bug
* Fix Krobus winter event quest typo
* Fix crash when entering railroad area
* Fix disconnect issues reported in 1.3.25
* Fix fishing rod crash bug
* Fix farmhands unable to get rid of children at dark shrine
* Allow players to fix their saves by removing duplicate museum items
* Fix players are able to simultaneously donate/rearrange the museum
* Fix spouse NPCs not kissing back in multiplayer
* Fix farmhands talking to NPCs playing unique animations causing them
to stop animating
* Fix lack of spouse patio animations
* Fix host seeing spouse dialogue for farmhand spouses
* Allow to mount horse while farmer is playing an animation (e.g.
picking up an item)
* Fix animals eating twice as much if they're outside while the player
sleeps.
* Add ValueAdded/ValueRemoved events to NetList
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
| |
* runExecline: like runCommand, but a lot more lightweight
* symlink: symlink a given list of links together
* importer: a small DSL to “import” “modules” into a build context
Some highlights:
* runExecline does not use any stdenv (apart from the `execline` build)
* symlink uses netstrings to pass correct fields into the derivation
* no use of bash, everything uses execline.
|
|
|
|
|
|
|
| |
Getting a message like "Type {thetype} not found." is not very helpful,
so let's add the $ in front of the string.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This introduces a new environment variable called
NIX_SANDBOX_DEBUG_INJECT_FILES. The name is intentionally very long so
that people hopefully *only* use it for debugging.
What this does is to just bind-mount the given source file to a given
destination file in the chroot.
For example:
NIX_SANDBOX_DEBUG_INJECT_FILES=/foo/bar=/bar/foo somethingSandboxed
The file /foo/bar outside of the sandbox will be bind-mounted to
/bar/foo within the sandbox. Several files can be separated via colon.
Of course the most interesting use case here (and the reason for this
feature) is that we can overlay files in the Nix store without the need
to rebuild anything, so we can quickly patch specific files.
In my case I'm using this so I can use radare2 to patch the assembly of
some binaries quickly for debugging/reverse engineering.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
| |
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @dwenola
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I now experienced the crash for the second time whenever my machine
starts swapping. The details about the crash(es) and the corresponding
fix can be found at:
https://bugs.chromium.org/p/chromium/issues/detail?id=822360
When the patch lands in mainline and stable, we can revert this very
commit.
Signed-off-by: aszlig <aszlig@nix.build>
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Since NixOS/nixpkgs@402ee4e9eaf08a697672718cd502067c726a7c73, mpv by
itself no longer has a script argument but there is now
"mpv-with-scripts", which boils down to something similar.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Profpatsch, @sternenseemann
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Upstream fixes since 1.3.23:
1.3.24 (10 July 2018):
* Players stuck on "Connecting to online services..." screen
* Crystalarium item swap exploit
* Furniture can be used to complete bundles
* Milk requirements for certain cooking recipes (now can accept either
Milk or Large Milk)
* Summer weather forecast bug
* Furniture duplication bug
* Long tool use animation bug
* Warp tile player & shadow animation bug
* "Cloud Country" not being added to the jukebox if you create a game
via the co-op menu
* Cooking food in the kitchen using ingredients from the wrong fridge
* Item debris duplication bug
1.3.25 (16 July 2018):
* Experimental network usage optimizations
* Infinite ingredient use exploit when cooking in the kitchen
* NPC marriage dialogue appearing for non-spouse players
* Lack of experience gained for harvesting crops with the scythe
* Inability to cancel moving a building
* Game occasionally locking up on a black screen at 2am
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was the whole reason why I implemented the monogame-patcher even
though it is very useful for other games as well.
So the main issue why patching was needed is that the game writes its
savegames into the same directories as other assets, so we need to be
very careful about which method we patch and how in order to avoid
failures to load other assets rather than savegames.
However while in principle the game runs fine there is a Heisenbug
hidden, so it segfaults whenever strace is not used. Here is the
backtrace:
#0 0x0000000000f973be in ?? ()
#1 0x0000000000f8f444 in ?? ()
#2 0x0000000000f2379b in ?? ()
#3 0x0000000000f2940b in ?? ()
#4 0x0000000000f1fa87 in ?? ()
#5 0x00000000008e8cc8 in ?? ()
#6 0x00007ffff79bc5a7 in start_thread () from libpthread.so.0
#7 0x00007ffff61cf22f in clone () from libc.so.6
Disassembly around 0xf973be:
f973a2: 45 0f b6 4f 02 movzbl 0x2(%r15),%r9d
f973a7: ba 04 00 00 00 mov $0x4,%edx
f973ac: 41 80 f9 02 cmp $0x2,%r9b
f973b0: 74 05 je f973b7
f973b2: 41 0f b6 57 03 movzbl 0x3(%r15),%edx
f973b7: 48 8b 40 30 mov 0x30(%rax),%rax
f973bb: 83 f9 1b cmp $0x1b,%ecx
>f973be: 8b 40 08 mov 0x8(%rax),%eax
f973c1: 89 44 24 58 mov %eax,0x58(%rsp)
f973c5: 0f 86 6d 01 00 00 jbe f97538
f973cb: c6 44 24 5f 00 movb $0x0,0x5f(%rsp)
f973d0: 45 31 ff xor %r15d,%r15d
f973d3: 89 54 24 28 mov %edx,0x28(%rsp)
f973d7: 89 74 24 20 mov %esi,0x20(%rsp)
f973db: 44 88 44 24 18 mov %r8b,0x18(%rsp)
f973e0: 44 88 4c 24 30 mov %r9b,0x30(%rsp)
f973e5: e8 16 fa 92 ff callq 8c6e00
The last callq is for <operator new(unsigned long)@@Base+0x27c9d0>, so
I'd suppose this might be a bug in the patched Mono version of Unity but
could also be a chain reaction (who knows).
Probably the reason why it works with strace might be a race condition,
but I haven't thoroughly debugged this. Especially if there are no
symbols available it's very hard to debug, so I'll leave that to some
day in the future.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far we only matched a substring of a type, which isn't very exact of
course. We also weren't able to specify the method to patch.
Now the methods that are being patched can be specified by using
Type::Method. If it's just Type without a method all the methods of the
type and its subtypes are patched.
I also added a small check to make sure that all of these methods were
found, and if not an error is thrown.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
If there is a command line usage error, we really don't want the program
to return exit status 0 (success), so let's actually set the return
value on WithParsed().
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
We really want to make sure that things were actually patched, so just
silently skipping everything is not an option.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
If we want to replace a call with one that's not in a module which is
currently referenced by the target file we now have another command line
flag for replace-call (-a) where we can specify the additional DLL file.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
While there won't be any .git directories within ./src, I still create
Vim swap files all the time when editing stuff. So let's make sure that
those swap files are not included in the src input of the derivation.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By default the assemblies are searched in the current working directory,
but when patching an assembly in some other directory than the current
the patcher will fail to resolve assemblies residing beneath the target
file.
So we just add the directory of the target file to the search path.
I also moved all of the assemblies in the test to be in a subdir so we
can verify that this indeed works and we won't regress in the future.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the command is not executed inside a terminal the value of
Console.WindowWidth is 0 and thus we will get an exception from
CommandLineParser:
Unhandled Exception:
System.ArgumentOutOfRangeException: Length cannot be less than zero.
Parameter name: length
at System.String.Substring ...
at CommandLine.Text.HelpText.AddOption ...
...
So let's initialize the parser with settings and if WindowWidth is 0 we
just add 80 as the width.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using an IEnumerable for the search and replace arguments isn't really a
very good idea, because it makes command line usage very annoying and
messes up the usage description.
I originally made this an IEnumerable because I wanted to have a way to
specify multiple replacements, but we can simply run the patcher twice
or more times.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far we have searched for methods in two steps: First get all the
types and then find all of the constructors or method definitions.
The match for the actual method definition was done first for the type
and then again for the full definition of the method/constructor.
For the replace-call subcommand this also means that we don't have a
very good way to find the type, because if we wanted to keep doing this
in two steps we would need to parse the type name out of the one given
as the replacement string in replace-call.
So now we recurse through *all* the constructors and methods and do a
full match against the specified replacement string, both for
replace-call and for fix-filestreams.
Compared to the implementation so far we also do this just once instead
of every time we find a call or FileStream constructor.
I also overhauled the way we do testing, because in the end writing
tests using NUnit would introduce a lot of code churn because we need to
make a lot of external calls. The shell is especially useful for exactly
that and our tests are now just a plain shell script.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mainly this is so we can prepare for running unit tests, so we get the
latest version of NUnit and run the console test runner.
Currently there is only a dummy test which always succeeds, but it's
there so that we can fill out the boilerplate later.
I also moved the option definitions into a separate file so they don't
clutter up the main file.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I really would have preferred a simple Makefile, but with that we can't
use buildDotnetPackage and we also need to take care of butchering the
dependencies manually.
So I moved everything to src/ and added a csproj file to clean up most
of the cruft and just use buildDotnetPackage with minimal attributes.
In addition to that I also added assembly info, so that the command line
help will show the proper author name, copyright, yaddayadda...
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's a very early version which I did for a Unity3d game and it
*desperately* needs a cleanup.
An example command line:
monogame-patcher replace-call -i Assembly-CSharp.dll \
'System.String UnityEngine.Application::get_dataPath()' \
'System.String UnityEngine.Application::get_persistentDataPath()' \
IniParser SaveMeta
Right now the replace-call subcommand has UnityEngine.Application
hardcoded, so this won't work for other types than
UnityEngine.Application.
However, I'm going to refactor the whole patcher very soon and add some
tests, so this whole mess will be cleaned up.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patcher using Cecil is now in its own derivation and can thus be
easily added via nativeBuildInputs. Patching FileStream types is so
common that it comes in handy for other games using Mono.
I also improved the patcher a little bit so it accepts command line
arguments and it's easier to add the types that needed to be patched
directly via command line arguments.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
| |
This is a really good GraphViz viewer and since I need to do some GV
this integrates nicely with my workflow.
|
|
|
|
| |
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
Most of these machines have limited RAM and come to a crawl whenever
swap space needs to be used.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
| |
The zswap module is essentially what I had here, so let's just use that
instead.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
| |
Even though these options are rather opinionated rather than generally
useful, it makes sense to have an option for that because I'm going to
use it for my managed machines as well.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
| |
The Ransome Unbeeped DLC doesn't have a data/noarch/support directory
which we need for the icon so we need to change the unpack root to
data/noarch. This shouldn't make the unpacking phase that much longer
because the only additional files that get unpacked are small scripts
and docs.
Signed-off-by: aszlig <aszlig@nix.build>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With fetchHumbleBundle finally being able to fetch the game with my
account, I think it's time to update the Nix expression. :-)
The game's binary is basically nothing more than just a wrapped Mono, so
we can use directly Mono from <nixpkgs> instead of patching the wrapper.
I also stubbed out the symbols for libsteam_api.so, which might be a
good idea to provide for other games as well but in a more generic way.
Another thing that was needed solely because of my stubbornness was to
patch out the system() libc library call in libfmodex.so, because I
didn't want to add /bin/sh to the sandbox.
So in summary: The new expression now is sandboxed, doesn't use the
wrapper anymore and also has a desktop entry :-)
Unfortunately I haven't found a changelog online to see what has changed
between the 20120620 and 20161016.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @layus
|