Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

appimageTools.wrapAppImage: remove version from pname #271071

Merged
merged 8 commits into from
Apr 24, 2024

Conversation

pbsds
Copy link
Member

@pbsds pbsds commented Nov 30, 2023

Description of changes

Prior to this PR:

nix-repl> mendeley.name
"mendeley-2.105.0"

nix-repl> mendeley.pname
"mendeley-2.105.0"

With this PR:

nix-repl> mendeley.name
"mendeley-2.105.0"

nix-repl> mendeley.pname
"mendeley"

The erroneous pnames has been the source of many issues, especially since the wrapped software tends to be unfree. nixpkgs.config.allowUnfreePredicate, even when using lib.getName would need to include the version number. Fixes like this will become a thing of the past.

An other common fix we don't need to apply any more is mv $out/bin/$pname $out/bin/${pname} to strip the version from the resulting binary in bin/. Here is a listing of the likely affected files which this PR will fix before dropping the WIP: prefix:

rg wrapType -l | xargs grep mv
pkgs/applications/video/molotov/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/video/losslesscut-bin/build-from-appimage.nix:    mv $out/bin/{${pname}-${version},losslesscut}
pkgs/applications/graphics/upscayl/default.nix:      mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/video/electronplayer/electronplayer.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/graphics/pureref/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/editors/codux/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/networking/cozy-drive/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/networking/instant-messengers/keet/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/networking/instant-messengers/session-desktop/default.nix:    mv bin/session-desktop-${version} bin/session-desktop
pkgs/applications/networking/instant-messengers/beeper/default.nix:    mv bin/${name} bin/${pname}
pkgs/applications/networking/instant-messengers/zulip/default.nix:    mv "$out/bin/${pname}-${version}" "$out/bin/${pname}"
pkgs/applications/networking/instant-messengers/caprine-bin/build-from-appimage.nix:    mv $out/bin/{${pname}-${version},caprine}
pkgs/applications/networking/mailreaders/electron-mail/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/networking/cluster/openlens/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/networking/cluster/lens/linux.nix:      mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/networking/feedreaders/fluent-reader/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/networking/station/default.nix:    mv $out/bin/{${name},${pname}}
pkgs/applications/networking/Sylk/default.nix:  extraInstallCommands = "mv $out/bin/{${name},${pname}}";
pkgs/applications/networking/newsreaders/raven-reader/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/networking/irc/irccloud/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/audio/sonixd/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/audio/cider/default.nix:      mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/audio/museeks/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/audio/ytmdesktop/default.nix:    mv $out/bin/{${name},${pname}}
pkgs/applications/misc/neo4j-desktop/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/misc/marktext/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/misc/fspy/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/misc/notable/default.nix:    mv $out/bin/{${name},${pname}}
pkgs/applications/misc/devdocs-desktop/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/misc/joplin-desktop/default.nix:      mv $out/bin/{${pname}-${version},${pname}}
pkgs/applications/misc/zettlr/generic.nix:    mv $out/bin/{${name},${pname}}
pkgs/applications/misc/chrysalis/default.nix:    mv $out/bin/{${name},${pname}}
pkgs/applications/misc/lunatask/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/misc/protonup-qt/default.nix:    mv $out/bin/{${pname}-${version},${pname}}
pkgs/applications/misc/notesnook/default.nix:      mv $out/bin/{${pname}-${version},${pname}}
pkgs/applications/misc/mobilecoin-wallet/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/misc/firefly-desktop/default.nix:    mv $out/bin/${pname}-${version} $out/bin/firefly-desktop
pkgs/applications/misc/golden-cheetah-bin/default.nix:    mv $out/bin/${pname}-${version} $out/bin/GoldenCheetah
pkgs/applications/misc/anytype/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/office/timeular/default.nix:    mv $out/bin/{${pname}-${version},${pname}}
pkgs/applications/version-management/radicle-upstream/default.nix:      mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/science/biology/jbrowse/default.nix:    mv $out/bin/jbrowse-${version} $out/bin/jbrowse-desktop
pkgs/applications/office/notion-app-enhanced/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/office/p3x-onenote/default.nix:    armv7l-linux = "-armv7l";
pkgs/applications/office/p3x-onenote/default.nix:    armv7l-linux = "1pvr8f1ccl4nyfmshn3v3jfaa5x519rsy57g4pdapffj10vpbkb8";
pkgs/applications/office/p3x-onenote/default.nix:    mv $out/bin/${name} $out/bin/p3x-onenote
pkgs/applications/office/p3x-onenote/default.nix:    platforms = [ "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
pkgs/applications/office/mendeley/default.nix:    mv $out/bin/$pname $out/bin/${executableName}
pkgs/applications/office/tusk/default.nix:    mv $out/bin/{${pname}-${version},${pname}}
pkgs/applications/blockchains/crypto-org-wallet/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/blockchains/trezor-suite/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/applications/blockchains/mycrypto/default.nix:    mv $out/bin/{${name},${pname}}
pkgs/applications/blockchains/mycrypto/default.nix:    mv $out/share/icons/hicolor/{0x0,256x256}
pkgs/applications/blockchains/ledger-live-desktop/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/applications/blockchains/zecwallet-lite/default.nix:      mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/development/web/bootstrap-studio/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/development/tools/altair-graphql-client/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/tools/networking/mockoon/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/tools/networking/motrix/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/tools/networking/requestly/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/tools/misc/via/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/tools/misc/wootility/default.nix:  extraInstallCommands = "mv $out/bin/{${pname}-${version},${pname}}";
pkgs/tools/misc/vial/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/tools/misc/mathpix-snipping-tool/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/tools/misc/betterdiscord-installer/default.nix:    sha256 = "103acb11qmvjmf6g9lgsfm5jyahfwfdqw0x9w6lmv1hzwbs26dsr";
pkgs/tools/misc/betterdiscord-installer/default.nix:    mv $out/bin/${name} $out/bin/${pname}
pkgs/tools/security/buttercup-desktop/default.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/by-name/hi/hifile/package.nix:    mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/by-name/si/simplex-chat-desktop/package.nix:      mv $out/bin/${pname}-${version} $out/bin/${pname}
pkgs/by-name/be/beekeeper-studio/package.nix:    mv $out/bin/{${pname}-${version},${pname}}
pkgs/by-name/im/immersed-vr/package.nix:    mv $out/bin/{${name},${pname}}
pkgs/by-name/lu/lunar-client/package.nix:    mv $out/bin/{${pname}-${version},${pname}}
pkgs/games/osu-lazer/bin.nix:      mv -v $out/bin/${pname}-${version} $out/bin/osu\!

I'll run a nixpkgs-review over night

closes #262506 (parallel effort)
closes #262350
fixes #267508

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Priorities

Add a 👍 reaction to pull requests you find important.

@pbsds pbsds mentioned this pull request Nov 30, 2023
13 tasks
@pbsds pbsds marked this pull request as ready for review November 30, 2023 01:54
@pbsds
Copy link
Member Author

pbsds commented Nov 30, 2023

Result of nixpkgs-review pr 271071 run on x86_64-linux 1

1 package blacklisted:
  • appimage-run-tests
86 packages failed to build:
  • Sylk
  • altair
  • androidStudioPackages.beta
  • anytype
  • arduino-ci
  • arduino-cli
  • bazecor
  • beekeeper-studio
  • beeper
  • betterdiscord-installer
  • bloomrpc
  • bootstrap-studio
  • buttercup-desktop
  • caprine-bin
  • chrysalis
  • cider
  • ciscoPacketTracer7
  • codux
  • cozy-drive
  • crypto-org-wallet
  • davinci-resolve
  • devdocs-desktop
  • electron-mail
  • electronplayer
  • firefly-desktop
  • flexoptix-app
  • fluent-reader
  • framesh
  • fspy
  • hifile
  • houdini
  • immersed-vr
  • irccloud
  • jbrowse
  • jetbrains-toolbox
  • joplin-desktop
  • keet
  • lbry
  • ledger-live-desktop
  • lens
  • losslesscut-bin
  • lunar-client
  • lunatask
  • marktext
  • mathpix-snipping-tool
  • mobilecoin-wallet
  • mockoon
  • molotov
  • motrix
  • museeks
  • mycrypto
  • neo4j-desktop
  • notable
  • notesnook
  • notion-app-enhanced
  • nuclear
  • onlyoffice-bin_7_5
  • openlens
  • osu-lazer-bin
  • p3x-onenote
  • plexamp
  • polypane
  • protonup-qt
  • pureref
  • quartus-prime-lite
  • radicle-upstream
  • raven-reader
  • remnote
  • requestly
  • session-desktop
  • simplex-chat-desktop
  • sonixd
  • station
  • timeular
  • trezor-suite
  • tusk
  • upscayl
  • via
  • vial
  • vscode-fhs
  • vscodium-fhs
  • wootility
  • ytmdesktop
  • zecwallet-lite
  • zettlr
  • zulip
72 packages built:
  • android-studio
  • androidStudioPackages.canary
  • androidStudioPackages.dev
  • appimage-run
  • arduino
  • arduino-core
  • beyond-identity
  • bitscope.chart
  • bitscope.console
  • bitscope.display
  • bitscope.dso
  • bitscope.logic
  • bitscope.meter
  • bitscope.proto
  • bitscope.server
  • bottles
  • conda
  • dropbox
  • dropbox-cli
  • dropbox-cli.nautilusExtension
  • esphome
  • esphome.dist
  • expressvpn
  • game-rs
  • hamsket
  • heroic
  • hover
  • insync
  • itch
  • kingstvis
  • kodiPackages.steam-launcher
  • ldtk
  • left4gore-bin
  • lightworks
  • lutris
  • lutris-free
  • mate.caja-dropbox
  • mendeley
  • minigalaxy
  • minigalaxy.dist
  • nextflow
  • pdfstudio2021
  • pdfstudio2022
  • pdfstudio2023
  • pdfstudioviewer
  • platformio
  • playonlinux
  • plex
  • protontricks
  • protontricks.dist
  • rambox
  • saleae-logic-2
  • shticker-book-unwritten
  • sidequest
  • space-station-14-launcher
  • sparrow
  • ssb-patchwork
  • steam
  • steam-rom-manager
  • steam-run
  • steam-small
  • steam-tui
  • steamPackages.steam-fhsenv-without-steam
  • steamPackages.steamcmd
  • teensyduino
  • todoist-electron
  • typora
  • unityhub
  • unvanquished
  • vmware-workstation
  • xivlauncher
  • xlights

@pbsds pbsds changed the title WIP: appimageTools.wrapAppImage: remove version from pname appimageTools.wrapAppImage: remove version from pname Nov 30, 2023
@pbsds pbsds requested a review from bjornfor November 30, 2023 20:05
Copy link
Member

@Atemu Atemu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please split this out into two PRs. One making it possible to pass pname + version into appimage tools and one changing all the bad name usages in packaged appimages to land after the first one. It's hard to review the actual change when there's 82 commits that don't really have anything to do with it. Honestly, the adjustments should probably all be one big tree-wide: commit.

I've tried adding pname support to appimage tools "properly" a little while ago but haven't found the time to finish it yet.

Comment on lines 34 to 36
name = if args ? name && args.name != null then args.name else "${pname}-${version}";
pname = if args ? pname && args.pname != null then args.pname else lib.getName args.name;
version = if args ? version && args.version != null then args.version else lib.getVersion args.name;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned in #262506, I don't think we should ever "infer" pname from a name when we could instead pass pname directly.

Copy link
Member Author

@pbsds pbsds Dec 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kinda agree, but would the alternative be to make pname required, or to fallback to name? That issue seems intent on not affecting existing packages while i figured there aren't that many to fix yet

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bump. Personally i'd like to decouple the basename of the resulting $out/bin binary produced in buildFHSEnvBubblewrap from pname and name entirely.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ftr, all the packages i fix in this PR now passes in pname explicitly.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds like a good idea and I'm for an additional binaryName arg that defaults to pname but it has nothing to do with the concern I voiced here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

first building a combined name and then trying to parse the individual parts out again

This is not the case in this PR. If pname or version is passed in then they are used as is with no modification. Only if pname or version is missing are they extracted from name.

Copy link
Member Author

@pbsds pbsds Dec 10, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a better fix for this issue would be to adjust wrapType2 to take version + pname without name and stop passing custom combined names everywhere.

EDIT: (emphasis mine)

I can move name into args as well, but cases like this still call for a combined name. I'll see what i can do

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've got my changes cleaned up. There's still some bugs left to squish but just so that we don't duplicate work here: Atemu@258615c

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And duplicate we did. I went in a direction where we don't use null, which greatly simplifies the logic

@pbsds
Copy link
Member Author

pbsds commented Dec 2, 2023

building electron a couple of times took a while.

Result of nixpkgs-review pr 271071 run on x86_64-linux 1

1 package blacklisted:
  • appimage-run-tests
4 packages failed to build:
  • ciscoPacketTracer7
  • flexoptix-app
  • houdini
  • pureref
154 packages built:
  • Sylk
  • altair
  • android-studio
  • androidStudioPackages.beta
  • androidStudioPackages.canary
  • androidStudioPackages.dev
  • anytype
  • appimage-run
  • arduino
  • arduino-ci
  • arduino-cli
  • arduino-core
  • bazecor
  • beekeeper-studio
  • beeper
  • betterdiscord-installer
  • beyond-identity
  • bitscope.chart
  • bitscope.console
  • bitscope.display
  • bitscope.dso
  • bitscope.logic
  • bitscope.meter
  • bitscope.proto
  • bitscope.server
  • bloomrpc
  • bootstrap-studio
  • bottles
  • buttercup-desktop
  • caprine-bin
  • chrysalis
  • cider
  • codux
  • conda
  • cozy-drive
  • crypto-org-wallet
  • davinci-resolve
  • devdocs-desktop
  • dropbox
  • dropbox-cli
  • dropbox-cli.nautilusExtension
  • electron-mail
  • electronplayer
  • esphome
  • esphome.dist
  • expressvpn
  • firefly-desktop
  • fluent-reader
  • framesh
  • fspy
  • game-rs
  • hamsket
  • heroic
  • hifile
  • hover
  • immersed-vr
  • insync
  • irccloud
  • itch
  • jbrowse
  • jetbrains-toolbox
  • joplin-desktop
  • keet
  • kingstvis
  • kodiPackages.steam-launcher
  • lbry
  • ldtk
  • ledger-live-desktop
  • left4gore-bin
  • lens
  • lightworks
  • losslesscut-bin
  • lunar-client
  • lunatask
  • lutris
  • lutris-free
  • marktext
  • mate.caja-dropbox
  • mathpix-snipping-tool
  • mendeley
  • minigalaxy
  • minigalaxy.dist
  • mobilecoin-wallet
  • mockoon
  • molotov
  • motrix
  • museeks
  • mycrypto
  • neo4j-desktop
  • nextflow
  • notable
  • notesnook
  • notion-app-enhanced
  • nuclear
  • onlyoffice-bin_7_5
  • openlens
  • osu-lazer-bin
  • p3x-onenote
  • pdfstudio2021
  • pdfstudio2022
  • pdfstudio2023
  • pdfstudioviewer
  • platformio
  • playonlinux
  • plex
  • plexamp
  • polypane
  • protontricks
  • protontricks.dist
  • protonup-qt
  • quartus-prime-lite
  • radicle-upstream
  • rambox
  • raven-reader
  • remnote
  • requestly
  • saleae-logic-2
  • session-desktop
  • shticker-book-unwritten
  • sidequest
  • simplex-chat-desktop
  • sonixd
  • space-station-14-launcher
  • sparrow
  • ssb-patchwork
  • station
  • steam
  • steam-rom-manager
  • steam-run
  • steam-small
  • steam-tui
  • steamPackages.steam-fhsenv-without-steam
  • steamPackages.steamcmd
  • teensyduino
  • timeular
  • todoist-electron
  • trezor-suite
  • tusk
  • typora
  • unityhub
  • unvanquished
  • upscayl
  • via
  • vial
  • vmware-workstation
  • vscode-fhs
  • vscodium-fhs
  • wootility
  • xivlauncher
  • xlights
  • ytmdesktop
  • zecwallet-lite
  • zettlr
  • zulip

The remaining failures are due to requireFile and a 404.

@pbsds
Copy link
Member Author

pbsds commented Dec 2, 2023

Please split this out into two PRs.

Is it preferred to merge a mass breakage?

It's hard to review the actual change when there's 82 commits that don't really have anything to do with it. Honestly

The commits view is great, and you only need to check the top two. I could squash it if you prefer.

@Atemu
Copy link
Member

Atemu commented Dec 2, 2023

Is it preferred to merge a mass breakage?

No, it should stay compatible anyways.

I could squash it if you prefer.

I'd prefer one commit because it's much easier to digest and also revert. It's also easier to tell it's a tree-wide change when you're looking at the history of any file touched by this.

Copy link
Member Author

@pbsds pbsds left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The cleanup you wished for.

IMO the final commit (02266f6299781f0e86fdee2cb4de749428f51dea) is somewhat pedantic and should be removed.

@@ -233,7 +232,7 @@ in runCommandLocal name {
'';
inherit args fhsenv;
};
} ''
}) ''
mkdir -p $out/bin
ln -s ${bin} $out/bin/${pname}
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ultimately, this line is why we cannot get rid of pname = args.pname or (lib.getName args.name). The fix is to decouple the binary name from the package name but that is way out of scope for this PR

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. We can get rid of it right now. If you're explicitly passing a name with a version in it, you will get an executable with exactly that name; that's how it should work.

If you've got pname and version, you should simply pass those and you will get "correct" behaviour.

We should not add code for potential wrong usages that violates the principle of least surprise. It's conceivable for example that an intended package name may look like a version or that a user might want the executable to be versioned. Those use-cases should not be forbidden because someone might perhaps use it wrong.

Copy link
Member Author

@pbsds pbsds Dec 10, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great. With #271071 (comment) answered the fix becomes quite simple, please view 49ea55661e278c5fa6d05e86ba2cdb9a1ef0a94f

@pbsds
Copy link
Member Author

pbsds commented Dec 10, 2023

Result of nixpkgs-review pr 271071 run on x86_64-linux 1

1 package blacklisted:
  • appimage-run-tests
4 packages failed to build:
  • ciscoPacketTracer7
  • flexoptix-app
  • houdini
  • pureref
154 packages built:
  • Sylk
  • altair
  • android-studio
  • androidStudioPackages.beta
  • androidStudioPackages.canary
  • androidStudioPackages.dev
  • anytype
  • appimage-run
  • arduino
  • arduino-ci
  • arduino-cli
  • arduino-core
  • bazecor
  • beekeeper-studio
  • beeper
  • betterdiscord-installer
  • beyond-identity
  • bitscope.chart
  • bitscope.console
  • bitscope.display
  • bitscope.dso
  • bitscope.logic
  • bitscope.meter
  • bitscope.proto
  • bitscope.server
  • bloomrpc
  • bootstrap-studio
  • bottles
  • buttercup-desktop
  • caprine-bin
  • chrysalis
  • cider
  • codux
  • conda
  • cozy-drive
  • crypto-org-wallet
  • davinci-resolve
  • devdocs-desktop
  • dropbox
  • dropbox-cli
  • dropbox-cli.nautilusExtension
  • electron-mail
  • electronplayer
  • esphome
  • esphome.dist
  • expressvpn
  • firefly-desktop
  • fluent-reader
  • framesh
  • fspy
  • game-rs
  • hamsket
  • heroic
  • hifile
  • hover
  • immersed-vr
  • insync
  • irccloud
  • itch
  • jbrowse
  • jetbrains-toolbox
  • joplin-desktop
  • keet
  • kingstvis
  • kodiPackages.steam-launcher
  • lbry
  • ldtk
  • ledger-live-desktop
  • left4gore-bin
  • lens
  • lightworks
  • losslesscut-bin
  • lunar-client
  • lunatask
  • lutris
  • lutris-free
  • marktext
  • mate.caja-dropbox
  • mathpix-snipping-tool
  • mendeley
  • minigalaxy
  • minigalaxy.dist
  • mobilecoin-wallet
  • mockoon
  • molotov
  • motrix
  • museeks
  • mycrypto
  • neo4j-desktop
  • nextflow
  • notable
  • notesnook
  • notion-app-enhanced
  • nuclear
  • onlyoffice-bin_7_5
  • openlens
  • osu-lazer-bin
  • p3x-onenote
  • pdfstudio2021
  • pdfstudio2022
  • pdfstudio2023
  • pdfstudioviewer
  • platformio
  • playonlinux
  • plex
  • plexamp
  • polypane
  • protontricks
  • protontricks.dist
  • protonup-qt
  • quartus-prime-lite
  • radicle-upstream
  • rambox
  • raven-reader
  • remnote
  • requestly
  • saleae-logic-2
  • session-desktop
  • shticker-book-unwritten
  • sidequest
  • simplex-chat-desktop
  • sonixd
  • space-station-14-launcher
  • sparrow
  • ssb-patchwork
  • station
  • steam
  • steam-rom-manager
  • steam-run
  • steam-small
  • steam-tui
  • steamPackages.steam-fhsenv-without-steam
  • steamPackages.steamcmd
  • teensyduino
  • timeular
  • todoist-electron
  • trezor-suite
  • tusk
  • typora
  • unityhub
  • unvanquished
  • upscayl
  • via
  • vial
  • vmware-workstation
  • vscode-fhs
  • vscodium-fhs
  • wootility
  • xivlauncher
  • xlights
  • ytmdesktop
  • zecwallet-lite
  • zettlr
  • zulip

@Atemu
Copy link
Member

Atemu commented Dec 11, 2023

Could you spin out the ~80 commits that touch packages into another PR? Ideally into one tree-wide: commit.

For now they're extremely hard to review and block the merge due to conflicts.

@pbsds
Copy link
Member Author

pbsds commented Dec 12, 2023

Result of nixpkgs-review pr 271071 run on x86_64-linux 1

1 package blacklisted:
  • appimage-run-tests
57 packages failed to build:
  • altair
  • bazecor
  • beekeeper-studio
  • beeper
  • bloomrpc
  • bootstrap-studio
  • buttercup-desktop
  • caprine-bin
  • chrysalis
  • cider
  • ciscoPacketTracer7
  • codux
  • firefly-desktop
  • flexoptix-app
  • fluent-reader
  • framesh
  • fspy
  • hifile
  • houdini
  • immersed-vr
  • jbrowse
  • jetbrains-toolbox
  • joplin-desktop
  • keet
  • ledger-live-desktop
  • losslesscut-bin
  • lunar-client
  • lunatask
  • marktext
  • mendeley
  • mockoon
  • molotov
  • motrix
  • museeks
  • notable
  • notesnook
  • nuclear
  • openlens
  • osu-lazer-bin
  • plexamp
  • polypane
  • protonup-qt
  • pureref
  • radicle-upstream
  • raven-reader
  • remnote
  • requestly
  • session-desktop
  • simplex-chat-desktop
  • sonixd
  • timeular
  • todoist-electron
  • tusk
  • upscayl
  • wootility
  • zecwallet-lite
  • zulip
101 packages built:
  • Sylk
  • android-studio
  • androidStudioPackages.beta
  • androidStudioPackages.canary
  • androidStudioPackages.dev
  • anytype
  • appimage-run
  • arduino
  • arduino-ci
  • arduino-cli
  • arduino-core
  • betterdiscord-installer
  • beyond-identity
  • bitscope.chart
  • bitscope.console
  • bitscope.display
  • bitscope.dso
  • bitscope.logic
  • bitscope.meter
  • bitscope.proto
  • bitscope.server
  • bottles
  • conda
  • cozy-drive
  • crypto-org-wallet
  • davinci-resolve
  • devdocs-desktop
  • dropbox
  • dropbox-cli
  • dropbox-cli.nautilusExtension
  • electron-mail
  • electronplayer
  • esphome
  • esphome.dist
  • expressvpn
  • game-rs
  • hamsket
  • heroic
  • hover
  • insync
  • irccloud
  • itch
  • kingstvis
  • kodiPackages.steam-launcher
  • lbry
  • ldtk
  • left4gore-bin
  • lens
  • lightworks
  • lutris
  • lutris-free
  • mate.caja-dropbox
  • mathpix-snipping-tool
  • minigalaxy
  • minigalaxy.dist
  • mobilecoin-wallet
  • mycrypto
  • neo4j-desktop
  • nextflow
  • notion-app-enhanced
  • onlyoffice-bin_7_5
  • p3x-onenote
  • pdfstudio2021
  • pdfstudio2022
  • pdfstudio2023
  • pdfstudioviewer
  • platformio
  • playonlinux
  • plex
  • protontricks
  • protontricks.dist
  • quartus-prime-lite
  • rambox
  • saleae-logic-2
  • shticker-book-unwritten
  • sidequest
  • space-station-14-launcher
  • sparrow
  • ssb-patchwork
  • station
  • steam
  • steam-rom-manager
  • steam-run
  • steam-small
  • steam-tui
  • steamPackages.steam-fhsenv-without-steam
  • steamPackages.steamcmd
  • teensyduino
  • trezor-suite
  • typora
  • unityhub
  • unvanquished
  • via
  • vial
  • vmware-workstation
  • vscode-fhs
  • vscodium-fhs
  • xivlauncher
  • xlights
  • ytmdesktop
  • zettlr

@Atemu Atemu self-assigned this Dec 12, 2023
@pbsds
Copy link
Member Author

pbsds commented Dec 18, 2023

Is there any interest in merging this?

If so please either run a nixpkgs-review right before doing so or let me know, because more affected packages keep being added and i'd like to have a list of what to fix in #273719

@DanielSidhion
Copy link
Member

This looks like a great improvement and would like to see it merged. From my quick look at the changes they look good, but I explicitly didn't think about potential breakages because I'm assuming they'll be fixed in #273719

I found this PR because I'm documenting some stuff related to appimageTools in #276029, and this PR would change some text there, so I'll keep an eye on it to update the docs accordingly.

Copy link
Member

@Atemu Atemu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple smaller things.

I'd also like to see another nixpkgs-review for basic QA. Currently not near my x86_64-linux machine, so I can't easily do this myself.

If that comes back positive, this is ready I think :)

pkgs/build-support/build-fhsenv-bubblewrap/default.nix Outdated Show resolved Hide resolved
pkgs/build-support/appimage/default.nix Outdated Show resolved Hide resolved
pkgs/build-support/build-fhsenv-bubblewrap/buildFHSEnv.nix Outdated Show resolved Hide resolved
@pbsds
Copy link
Member Author

pbsds commented Jan 5, 2024

I seem to have forgot to add --post-results to the run i started right before leaving. Sorry for being unresponsive during the holidays.

Result of nixpkgs-review pr 271071 run on x86_64-linux 1

3 packages marked as broken and skipped:
  • electron-fiddle
  • golden-cheetah-bin
  • runescape
1 package blacklisted:
  • appimage-run-tests
63 packages failed to build:
  • altair
  • arduino-ide
  • badlion-client
  • bazecor
  • beekeeper-studio
  • beeper
  • bloomrpc
  • bootstrap-studio
  • buttercup-desktop
  • caprine-bin
  • chrysalis
  • cider
  • ciscoPacketTracer7
  • codux
  • esphome
  • esphome.dist
  • firefly-desktop
  • flexoptix-app
  • fluent-reader
  • framesh
  • fspy
  • hifile
  • houdini
  • immersed-vr
  • jbrowse
  • jetbrains-toolbox
  • joplin-desktop
  • keet
  • ledger-live-desktop
  • losslesscut-bin
  • lunar-client
  • lunatask
  • marktext
  • mendeley
  • mockoon
  • molotov
  • motrix
  • museeks
  • notable
  • notesnook
  • nuclear
  • openlens
  • osu-lazer-bin
  • pdfstudioviewer
  • plexamp
  • polypane
  • protonup-qt
  • pureref
  • radicle-upstream
  • raven-reader
  • remnote
  • requestly
  • session-desktop
  • simplex-chat-desktop
  • sonixd
  • spacedrive
  • timeular
  • todoist-electron
  • tusk
  • upscayl
  • wootility
  • zecwallet-lite
  • zulip
99 packages built:
  • Sylk
  • android-studio (androidStudioPackages.stable)
  • androidStudioPackages.beta
  • androidStudioPackages.canary
  • androidStudioPackages.dev
  • anytype
  • appimage-run
  • arduino
  • arduino-ci
  • arduino-cli
  • arduino-core
  • betterdiscord-installer
  • beyond-identity
  • bitscope.chart
  • bitscope.console
  • bitscope.display
  • bitscope.dso
  • bitscope.logic
  • bitscope.meter
  • bitscope.proto
  • bitscope.server
  • bottles
  • conda
  • cozy-drive
  • crypto-org-wallet
  • devdocs-desktop
  • dropbox
  • dropbox-cli
  • dropbox-cli.nautilusExtension
  • electron-mail
  • electronplayer
  • expressvpn
  • fahclient
  • game-rs
  • hamsket
  • heroic
  • hover
  • insync
  • irccloud
  • itch
  • kingstvis
  • kodiPackages.steam-launcher
  • lbry
  • ldtk
  • left4gore-bin
  • lens
  • lightworks
  • lutris
  • lutris-free
  • mate.caja-dropbox
  • mathpix-snipping-tool
  • minigalaxy
  • minigalaxy.dist
  • mobilecoin-wallet
  • mycrypto
  • neo4j-desktop
  • nextflow
  • notion-app-enhanced
  • onlyoffice-bin_7_5 (onlyoffice-bin_latest)
  • p3x-onenote
  • pdfstudio2021
  • pdfstudio2022
  • pdfstudio2023
  • platformio
  • playonlinux
  • plex
  • protontricks
  • protontricks.dist
  • quartus-prime-lite
  • rambox
  • saleae-logic-2
  • shticker-book-unwritten
  • sidequest
  • space-station-14-launcher
  • sparrow
  • ssb-patchwork
  • station
  • steam (steamPackages.steam-fhsenv)
  • steam-rom-manager
  • steam-run
  • steam-small (steamPackages.steam-fhsenv-small)
  • steam-tui
  • steamPackages.steam-fhsenv-without-steam
  • steamcmd (steamPackages.steamcmd)
  • teensyduino
  • trezor-suite
  • typora
  • unigine-superposition
  • unityhub
  • unvanquished
  • via
  • vial
  • vmware-workstation
  • vscode-fhs
  • vscodium-fhs
  • xivlauncher
  • xlights
  • ytmdesktop
  • zettlr

EDIT: i'm a silly goose. Creating a full rebuild is easy, just touch some white space. Merge this whenever

Copy link
Member

@Atemu Atemu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All commits that touch the same attrpath have already been squashed.

You didn't have to go quite that far; my concern was only that a significant portion of code was added and then removed again.

There's likely one or two packages that were missed but that's okay when we're touching hundreds of packages.

One thing I just remembered is that this is a breaking change. You should probably add a release note for that.

The doc/build-helpers/special/fhs-environments.section.md should also be updated to reflect the new arguments that should be used.

I'd then also like to see a final nixpkgs-review. You still have the sources local, right?

Diff LGTM.

pbsds and others added 8 commits April 24, 2024 15:26
@pbsds
Copy link
Member Author

pbsds commented Apr 24, 2024

nixpkgs-review in progress

@pbsds
Copy link
Member Author

pbsds commented Apr 24, 2024

Result of nixpkgs-review pr 271071 run on x86_64-linux 1

2 packages marked as broken and skipped:
  • itch
  • radicle-upstream
2 packages blacklisted:
  • appimage-run-tests
  • nixos-install-tools
5 packages failed to build:
  • badlion-client
  • ciscoPacketTracer7
  • houdini
  • pdfstudio2023
  • pdfstudioviewer
168 packages built:
  • Sylk
  • altair
  • alvr
  • am2rlauncher
  • android-studio
  • androidStudioPackages.beta
  • androidStudioPackages.canary
  • androidStudioPackages.dev
  • anytype
  • appimage-run
  • arduino
  • arduino-ci
  • arduino-cli
  • arduino-core
  • arduino-ide
  • bazecor
  • beekeeper-studio
  • beeper
  • betterdiscord-installer
  • beyond-identity
  • bitscope.chart
  • bitscope.console
  • bitscope.display
  • bitscope.dso
  • bitscope.logic
  • bitscope.meter
  • bitscope.proto
  • bitscope.server
  • bloomrpc
  • bootstrap-studio
  • bottles
  • buttercup-desktop
  • caido
  • caprine-bin
  • chrysalis
  • cider
  • codux
  • conda
  • cozy-drive
  • crypto-org-wallet
  • deskreen
  • devdocs-desktop
  • dropbox
  • dropbox-cli
  • dropbox-cli.nautilusExtension
  • electron-mail
  • electronplayer
  • esphome
  • esphome.dist
  • expressvpn
  • fahclient
  • firefly-desktop
  • flexoptix-app
  • fluent-reader
  • framesh
  • game-rs
  • hamsket
  • heroic
  • hifile
  • hoppscotch
  • hover
  • immersed-vr
  • irccloud
  • jan
  • jbrowse
  • jetbrains-toolbox
  • joplin-desktop
  • kchat
  • keet
  • kingstvis
  • kmeet
  • kodiPackages.steam-launcher
  • lbry
  • ldtk
  • ledger-live-desktop
  • left4gore-bin
  • lens
  • lightworks
  • listen1
  • lmstudio
  • losslesscut-bin
  • lunar-client
  • lunatask
  • lutris
  • lutris-free
  • marktext
  • mate.caja-dropbox
  • mathpix-snipping-tool
  • mendeley
  • minigalaxy
  • minigalaxy.dist
  • miru
  • mobilecoin-wallet
  • mockoon
  • molotov
  • motrix
  • mqttx
  • museeks
  • mycrypto
  • neo4j-desktop
  • nextflow
  • nosql-workbench
  • notable
  • notesnook
  • notion-app-enhanced
  • nuclear
  • onlyoffice-bin_latest
  • openlens
  • osu-lazer-bin
  • p3x-onenote
  • parsify
  • pdfstudio2021
  • pdfstudio2022
  • platformio
  • playonlinux
  • plex
  • plexamp
  • polypane
  • protontricks
  • protontricks.dist
  • protonup-qt
  • pureref
  • quartus-prime-lite
  • rambox
  • raven-reader
  • remnote
  • requestly
  • saleae-logic-2
  • session-desktop
  • shticker-book-unwritten
  • sidequest
  • simplex-chat-desktop
  • sonixd
  • space-station-14-launcher
  • spacedrive
  • sparrow
  • ssb-patchwork
  • station
  • steam
  • steam-rom-manager
  • steam-run
  • steam-small
  • steam-tui
  • steamPackages.steam-fhsenv-without-steam
  • steamPackages.steamcmd
  • svp
  • teensyduino
  • timeular
  • todoist-electron
  • trezor-suite
  • tusk
  • tutanota-desktop
  • typora
  • unigine-superposition
  • unityhub
  • unvanquished
  • upscayl
  • via
  • vial
  • vmware-workstation
  • vscode-fhs
  • vscodium-fhs
  • wootility
  • xivlauncher
  • xlights
  • zecwallet-lite
  • zettlr
  • zulip

failures are due to requireFile, except for badlion-client which has a hash error

@Atemu Atemu merged commit 2432c6b into NixOS:master Apr 24, 2024
25 of 26 checks passed
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/breaking-changes-announcement-for-unstable/17574/48

@sersorrel sersorrel mentioned this pull request Apr 24, 2024
12 tasks
ShamrockLee added a commit to ShamrockLee/nixpkgs that referenced this pull request Apr 25, 2024
Pass attributes `pname` and `version` directly into appimage.wrapType2,
instead of attribute set update ('//'), to ensure that they survive
across overriding.

This is possible as the pname-version passing of buildFHSEnvBubblewrap,
buildFHSEnv, and appimageTools.wrapAppImage is fixed.[1]

[1]: NixOS#271071
@pbsds pbsds mentioned this pull request May 3, 2024
13 tasks
@gcleroux gcleroux mentioned this pull request May 14, 2024
13 tasks
PassiveLemon added a commit to PassiveLemon/lemonake that referenced this pull request May 31, 2024
NixOS/nixpkgs#271071

Didn't realize this was a thing which would explain the previous breakages.
pbsds added a commit to pbsds/nixpkgs that referenced this pull request May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

buildFHSEnvBubblewrap incorrectly includes version string in pname of derivation
9 participants