| 6 Sep 2023 |
infinisil | AMB-plugins
ArchiSteamFarm
AusweisApp2
BeatSaberModManager
CHOWTapeModel
ChowCentaur
ChowKick
ChowPhaser
CoinMP
DisnixWebService
EBTKS
EmptyEpsilon
FIL-plugins
Fabric
HentaiAtHome
LAStools
LASzip
LASzip2
LibreArp
LibreArp-lv2
Literate
MIDIVisualizer
MMA
NSPlist
OSCAR
OVMF
OVMFFull
PageEdit
PlistCpp
QuadProgpp
R
SDL
SDL2
SDL2_gfx
SDL2_image
SDL2_image_2_0_5
SDL2_mixer
SDL2_mixer_2_0
SDL2_net
SDL2_sound
SDL2_ttf
SDL_Pango
SDL_audiolib
SDL_classic
SDL_compat
SDL_gfx
SDL_gpu
SDL_image
SDL_mixer
SDL_net
SDL_sixel
SDL_sound
SDL_stretch
SDL_ttf
SP800-90B_EntropyAssessment
SPAdes
SkypeExport
StormLib
Sylk
ViennaRNA
Xaw3d
_86Box
addOpenGLRunpath
anonymousPro
apacheAnt
apacheAnt_1_9
apacheHttpd
apacheHttpd_2_4
apacheKafka
apacheKafka_2_8
apacheKafka_3_0
apacheKafka_3_1
apacheKafka_3_2
apacheKafka_3_3
apacheKafka_3_4
apacheKafka_3_5
apeClex
arduinoOTA
armTrustedFirmwareAllwinner
armTrustedFirmwareAllwinnerH6
armTrustedFirmwareAllwinnerH616
armTrustedFirmwareQemu
armTrustedFirmwareRK3328
armTrustedFirmwareRK3399
armTrustedFirmwareS905
armTrustedFirmwareTools
artyFX
attemptoClex
audaciousQt5
auditBlasHook
autoPatchelfHook
autoreconfHook
autoreconfHook264
autoreconfHook269
avrlibcCross
b43FirmwareCutter
b43Firmware_5_1_138
b43Firmware_6_30_163_46
ballAndPaddle
bareboxTools
bashInteractive
bashInteractiveFHS
bashSnippets
bintoolsDualAs
bintoolsNoLibc
binutilsNoLibc
breakpointHook
bsdSetupHook
c-aresMinimal
caffeWithCuda
ccacheStdenv
ccacheWrapper
cdparanoiaIII
checkSSLCert
chromiumBeta
chromiumDev
ciscoPacketTracer7
ciscoPacketTracer8
clang-sierraHack
clang-sierraHack-stdenv
clangMultiStdenv
clangStdenv
clangStdenvNoLibs
clearlyU
cmakeCurses
cmakeMinimal
cmakeWithGui
codeblocksFull
colmapWithCuda
commonsBcel
commonsBsf
commonsCompress
commonsDaemon
commonsFileUpload
commonsIo
commonsLang
commonsLogging
commonsMath
connmanFull
connmanMinimal
construoBase
copyDesktopItems
copyPkgconfigItems
crawlTiles
crossLibcStdenv
curlFull
curlHTTP3
curlMinimal
curlWithGnuTls
dblatexFull
dejavu_fontsEnv
desktopToDarwinBundle
dieHook
diffoscopeMinimal
discourseAllPlugins
distccMasquerade
distccStdenv
distccWrapper
edUnstable
emptyDirectory
emptyFile
emscriptenStdenv
enableGCOVInstrumentation
ensureNewerSourcesForZipFilesHook
etBook
evolutionWithPlugins
faissWithCuda
fakeNss
fastJson
fastStdenv
faustPhysicalModeling
fftwFloat
fftwLongDouble
fftwMpi
fftwQuad
fftwSinglePrec
findXMLCatalogs
fixDarwinDylibNames
foomatic-db-ppds-withNonfreeDb
freerdpUnstable
fusionInventory
gImageReader
gaucheBootstrap
gawkInteractive
gcc10Stdenv
gcc10StdenvCompat
gcc11Stdenv
gcc12Stdenv
gcc13Stdenv
gcc49Stdenv
gcc6Stdenv
gcc7Stdenv
gcc8Stdenv
gcc9Stdenv
gccCrossLibcStdenv
gccForLibs
gccMultiStdenv
gccStdenv
gccStdenvNoLibs
gdalMinimal
gdbHostCpuOnly
geoipWithDatabase
ghostscriptX
gitFull
gitMinimal
gitRepo
gitSVN
glibcCross
glibcInfo
glibcLocales
glibcLocalesUtf8
gnuradio3_8Minimal
gnuradio3_9Minimal
gnuradioMinimal
gogUnpackHook
gromacsCudaMpi
gromacsDouble
gromacsDoubleMpi
gromacsMpi
gutenprintBin
harfbuzzFull
hplipWithPlugin
hydraAntLogger
iconConvTools
imagemagick6Big
imagemagickBig
imlib2Full
infamousPlugins
inspircdMinimal
installShellFiles
intel2200BGFirmware
ircdHybrid
javaCup
jre8Plugin
jrePlugin
katagoCPU
katagoTensorRT
katagoWithCuda
keepBuildTree
kissfftFloat
klibcShrunk
labelImg
ladspaH
ladspaPlugins
libAfterImage
libGDSII
libGL
libGLU
libHX
libLAS
libbladeRF
libcxxStdenv
libdbiDrivers
libdbiDriversBase
libfakeXinerama
libffiBoot
libiconvReal
libintPsi4
liblastfmSF
librealsenseWithCuda
librealsenseWithoutCuda
libxml2Python
linuxConsoleTools
linuxHeaders
linuxHeaders_5_19
linuxPackages_custom_tinyconfig_kernel
lklWithFirewall
lockfileProgs
luminanceHDR
mailnagWithPlugins
makeBinaryWrapper
makeGCOVReport
makeInitrdNGTool
makeShellWrapper
makeWrapper
maple-mono-NF
maple-mono-SC-NF
melonDS
memorymappingHook
memstreamHook
mercurialFull
mesonEmulatorHook
metaBuildEnv
metersLv2
microcodeAmd
microcodeIntel
miniHttpd
mitschemeX11
mjpegtoolsFull
mlton20180207Binary
mltonHEAD
monkeysAudio
monoDLLFixer
monotoneViz
mooSpace
moveBuildTree
mpiCheckPhaseHook
msp430GccSupport
msp430Newlib
msp430NewlibCross
multiStdenv
muonStandalone
muslCross
nanopbMalloc
newlib-nanoCross
newlibCross
nextpnrWithGui
nginxMainline
nginxQuic
nginxShibboleth
nginxStable
nixStatic
nssTools
nuXmv
nukeReferences
nushellFull
octaveFull
oneDNN
oneDNN_2
openalSoft
openblasCompat
opencv3WithoutCuda
openlpFull
opensyclWithRocm
opusTools
patchPpdFilesHook
patchRcPathBash
patchRcPathCsh
patchRcPathFish
patchRcPathPosix
patchelfStable
patchelfUnstable
pcmciaUtils
pcscliteWithPolkit
pkg-configUpstream
plexRaw
polybarFull
postgresqlTestHook
primusLib
pruneLibtoolFiles
pulseaudioFull
pyCA
python27Full
python2Full
python310Full
python311Full
python38Full
python39Full
python3Full
python3Minimal
qFlipper
qMasterPassword
qt5Full
quartoMinimal
quasselClient
quasselDaemon
rWrapper
radianWrapper
ragelDev
ragelStable
raspberrypiWirelessFirmware
removeReferencesTo
retroarchBare
retroarchFull
rocmClangStdenv
rpPPPoE
rstudioServerWrapper
rstudioWrapper
runtimeShellPackage
sageWithDoc
samba4Full
sambaFull
sbclBootstrap
separateDebugInfo
setJavaClassPath
setupDebugInfoDirs
shortenPerlShebang
simpleBuildTool
simpleTpmPk11
sladeUnstable
slibGuile
smlnjBootstrap
sourceHighlight
spaceFM
sphinxHook
springLobby
sqitchMysql
sqitchPg
squashfsTools
stdenvNoCC
stdenvNoLibs
storeBackup
strongswanNM
strongswanTNC
subversionClient
suidChroot
superTux
superTuxKart
surge-XT
swiProlog
swiPrologWithGui
swigWithJava
synergyWithoutGUI
systemdMinimal
systemdStage1
systemdStage1Network
tests-stdenv-gcc-stageCompare
texinfoInteractive
thinkingRock
tlaplusToolbox
tsm-client-withGui
twitterBootstrap
ubootA20OlinuxinoLime
ubootA20OlinuxinoLime2EMMC
ubootAmx335xEVM
ubootBananaPi
ubootBananaPim3
ubootBananaPim64
ubootClearfog
ubootCubieboard2
ubootGuruplug
ubootJetsonTK1
ubootLibreTechCC
ubootNanoPCT4
ubootNovena
ubootOdroidC2
ubootOdroidXU3
ubootOlimexA64Olinuxino
ubootOrangePi3
ubootOrangePiPc
ubootOrangePiZero
ubootOrangePiZero2
ubootOrangePiZeroPlus2H5
ubootPcduino3Nano
ubootPine64
ubootPine64LTS
ubootPinebook
ubootPinebookPro
ubootQemuAarch64
ubootQemuArm
ubootQemuRiscv64Smode
ubootQemuX86
ubootROCPCRK3399
ubootRaspberryPi
ubootRaspberryPi2
ubootRaspberryPi3_32bit
ubootRaspberryPi3_64bit
ubootRaspberryPi4_32bit
ubootRaspberryPi4_64bit
ubootRaspberryPiZero
ubootRock64
ubootRockPi4
ubootRockPro64
ubootSheevaplug
ubootSopine
ubootTools
ubootUtilite
ubootWandboard
uclibcCross
unifiLTS
unixODBC
unzipNLS
updateAutotoolsGnuConfigScriptsHook
useOldCXXAbi
util-linuxMinimal
vaapiVdpau
validatePkgConfig
veriT
virtualboxExtpack
virtualboxHardened
virtualboxHeadless
virtualboxWithExtpack
virtualglLib
vtkWithQt5
vtk_8_withQt5
vtk_9_withQt5
westonLite
wrapGAppsHook
wrapGAppsHook4
wrapGAppsNoGuiHook
wrapVdr
writeDarwinBundle
wxGTK31
wxGTK32
wxSVG
xcb-util-cursor-HEAD
xcbuild6Hook
xcbuildHook
xdeltaUnstable
xgboostWithCuda
xpraWithNvenc
xxHash
yarGen
zfsStable
zfsUnstable
| 18:27:38 |
infinisil | This is
nix-instantiate --eval -E 'with import ./. { config.allowAliases = false; }; lib.attrNames (lib.filterAttrs (name: value: let isDerivation = builtins.tryEval (lib.isDerivation value); in name != lib.toLower name && isDerivation.success && isDerivation.value) pkgs)' --strict --json | jq -r '.[]'
| 18:28:05 |
Artturin | 1285 vs 495 damn | 18:29:13 |
infinisil | Not sure why we need that convention fwiw | 18:29:42 |
infinisil | I guess it's more consistent, easier to find it, less chance of making a mistake in the name | 18:30:15 |
infinisil | Fair enough | 18:30:18 |
K900 | What convention? | 18:30:20 |
infinisil | In reply to @infinisil:matrix.org
The pname and the version attribute must not contain uppercase letters — e.g., "mplayer" instead of "MPlayer"`.
Huh TIL, from https://github.com/NixOS/nixpkgs/tree/master/pkgs#package-naming
K900 ⚡️: | 18:30:58 |
K900 | Oh yeah I'm not sure about pname | 18:31:20 |
K900 | But attribute names should really be lower case | 18:31:24 |
infinisil | Maybe we should have pname match the attribute name too though | 18:32:05 |
K900 | I don't really care on that one | 18:35:53 |
davidak | that makes it much less confusing | 18:56:14 |
| 7 Sep 2023 |
DavHau | In reply to @infinisil:matrix.org Maybe we should have pname match the attribute name too though Yes please. Establishing that pattern is also important for downstream projects. Associating the log of a failed build with the correct package file can often be a nightmare, especially for team members with little nix experience. | 20:55:43 |
DavHau | Its also important if we want to better integrate package updates. We can attach an update script to a package via passthru, but that script needs to know the location of the package definition. Hardcoding the location breaks portability. A mechanism to compute the package location from the attribute path is needed. | 23:10:24 |
DavHau | * Its also important if we want to better integrate package updates. We can attach an update script to a package via passthru, but that script needs to know the location of the package definition. Hardcoding the location breaks portability. A mechanism to compute the package location from the package name is benefitial. | 23:12:44 |
| 8 Sep 2023 |
@piegames:matrix.org | I think currently update scripts are executed in the package's folder, and finding the Nixpkgs root can be done with a simple git command | 06:04:25 |
@piegames:matrix.org | Update scripts should already be invariant to their location | 06:04:49 |
| Alesya Huzik joined the room. | 09:59:01 |
Artturin | When python...callPackage is is gotten rid of everything should be switched to pythonXXPackages instead of python.pkgs. https://github.com/NixOS/nixpkgs/issues/211340 | 10:44:48 |
figsoda | In reply to @infinisil:matrix.org Ah neat! Note that the folder structure should be treated as internal to Nixpkgs, there is no API guarantee that it will not change over time. Considering that, it would be great if we could figure out a proper API that Nixpkgs could expose for this. Maybe it should be as simple as pkgs.preferredDirectoryForPackage "foo" = ./pkgs/by-name/fo/foo just implemented the feature in nix-init, I think one thing that would help is if some constants and shard_for_package are exposed in a crate | 18:34:46 |
tomberek | infinisil: Amazing talk today. Very well done. Bravo! | 22:54:03 |
infinisil | Thanks! ☺️ | 22:55:26 |
infinisil | In reply to @figsoda:matrix.org just implemented the feature in nix-init, I think one thing that would help is if some constants and shard_for_package are exposed in a crate It is internal, but we could maybe just mark it as such. Can you open an issue or a PR to discuss this? | 22:59:40 |
figsoda | In reply to @infinisil:matrix.org It is internal, but we could maybe just mark it as such. Can you open an issue or a PR to discuss this? https://github.com/NixOS/nixpkgs/issues/254122 | 23:06:46 |
figsoda | not much more information aside from what was already said, but this would be a good place to aggregate the discussion | 23:07:27 |
infinisil | figsoda: Can you ping @nixpkgs-architecture/team in the issue so it's going to the teams notifications? That would be great :) | 23:12:53 |
infinisil | Updating it should work | 23:12:58 |
figsoda | updated the issue to ping @nixpkgs-architecture and @nixpkgs-architecture/team since the latter wasn't giving me a preview | 23:15:23 |
infinisil | Ah darn, yeah I think we need to push some people to move the architecture team into the nixos org, because apparently these pings don't work :/ | 23:31:36 |